[kaffe] More JIT3 Questions

Kevin D. Kissell kevink at mips.com
Wed Mar 26 00:01:02 PST 2003

> What I'd dearly like some help in understanding is:
> 1) Why on earth is a distinct register pair needed for
>      each frame-to-frame copy of the arguments?
>      The lifetime of those registers is limited to the
>      reload/push sequence.
> 2)  How can I either (a) prevent f12/f14 from being reallocated
>       when I'm "out" of FP registers, or (b) force the value to be
>      reloaded after a spill?  There is code to cause a reload if
>      the *slot* associated with the value is flagged for rread
>      use, but in this case the "slot" is the argument area of the
>      incoming frame, which, empirically, does not seem to be
>      so tagged.
> Any clues would be greatly appreciated.
>             Kevin K.

I'm still fumbling and grepping around, but for the moment it
certainly looks to me as if whoever wrote the jit3-mips.def
code is using the higher-level register management code
inappropriately, with the consequence that there is a lot
of memory traffic that could be eliminated by the simple
expedient of reserving 2-3 registers as MIPS/JIT temporaries
and using those for memory/memory copies, rather than
sucking the register allocator dry, then performing useless
spills/reloads.  But, again, I'm still groping/grepping around.

            Kevin K. 

More information about the kaffe mailing list