[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.
More information about the kaffe