Daniel Grunblatt wrote:
> On Wednesday 13 November 2002 08:06, Leopold Toetsch wrote:
>
>>I could localize a long outstanding bug in JIT causing 4 perl6 tests to
>>fail.
> I wonder who was the #%$# that introduced that bug ..... D'OH! :)
Wow, Daniel, the lost son himself ;-)
So I immediately have a question (or some):
I'm currently studying jit.c and I'm wondering, it it wouldn't be better
to allocate registers for a whole basic block, and only store/load the
used registers for non JITed sections when necessary. These normally
don't have a lot of IRegs, so we could save a bunch of store/load's.
And 2), when doing this, I would change
char intval_map[INT_REGISTERS_TO_MAP] =
{ emit_EDI, emit_EBX, emit_EDX, emit_ECX };
to use callee saved regs first (ebx, edi, esi), and then (edx, ecx),
which would mean, that the first 3 registers wouldn't be globbered by
external functions. The current usage of esi could be done by ebp, I
think. This would need some defines, how many/which registers are callee
saved (like CALL_USED_REGISTERS in gcc/config/*).
What do you think of this?
leo
- [CVS ci] JIT bug fix Leopold Toetsch
- Re: [CVS ci] JIT bug fix Daniel Grunblatt
- Re: [CVS ci] JIT bug fix Leopold Toetsch
- Re: [CVS ci] JIT bug fix Steve Fink
- Re: [CVS ci] JIT bug fix Daniel Grunblatt