develooper Front page | perl.perl6.internals | Postings from November 2002

Re: [CVS ci] JIT bug fix

Thread Previous | Thread Next
From:
Leopold Toetsch
Date:
November 13, 2002 06:51
Subject:
Re: [CVS ci] JIT bug fix
Message ID:
3DD26645.9010604@toetsch.at
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


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About