dotgnu-libjit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libjit-developers] Register allocation bug


From: Rhys Weatherley
Subject: Re: [Libjit-developers] Register allocation bug
Date: Sun, 31 Oct 2004 11:32:43 +1000
User-agent: KMail/1.4.3

On Sunday 31 October 2004 11:03 am, Evin Robertson wrote:
> The program at the end of this email segfaults with libjit 0.0.4 using
> the x86 back-end.
>
> The problem appears to be with register allocation.
>
> The second to last line of procedure run is miscompiled.  It generates
> a series of codes like:
>
> 40200206:       b9 c8 23 06 08          mov    $0x80623c8,%ecx
> 4020020b:       8b 4d e4                mov    0xffffffe4(%ebp),%ecx
> 4020020e:       89 09                   mov    %ecx,(%ecx)
>
> It loads the address of a global into ecx, then loads the value of the
> local variable into ecx as well.  It attempts the write, but the
> destination address has been overwritten.
>
> I don't understand the register allocation stuff well enough to repair
> the bug myself.

Fixed in CVS now.  It was something weird to do with constants as destination
pointers.

Cheers,

Rhys.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]