harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Fursov" <mike.fur...@gmail.com>
Subject Re: [drlvm][jit][jet][x86_64] Lazy resolution for JET
Date Fri, 25 Jan 2008 13:11:48 GMT
On Jan 24, 2008 6:05 PM, Gregory Shimansky <gshimansky@apache.org> wrote:

>
> Can you also take a look at my changes in gen_args? Are they correct too?
>

The changes in gen_args  with 'args[0]' replaced with 'args[i]' are correct.
Original code has a bug.


> > Another problem here: in lazy resolution mode we need to 'vpark' all
> > registers for CCONV_HELPERS calls too.
>
> Hmm... I am not yet experienced with JIT well enough to understand this.
>  I have seen vpark calls in many places but I don't know what it does
> and why it is inserted. Could you please explain in a few words? BTW
> vpark is done at the beginning of the gen_invoke for the CallSig of the
> method.
>

vpark(AR) moves data from AR to memory. Doing this for CCONV_MANAGED we
ensure that all registers that are required by calling convention to perform
a managed call do not contain any information. But in lazy mode we perform
not only managed method call, but also a helper call to resolve the address
of the method. So, CCONV_HELPERS registers are also must be freed. The crash
can be reproduced only when calling conventions of these methods use
different sets of registers.


-- 
Mikhail Fursov

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message