interpreter question, darwin libffi

Andreas Tobler toa@pop.agri.ch
Sun Feb 2 14:06:00 GMT 2003


Hi,
I'm still trying to investigate the InvokeReturn failure on libgcj darwin.
The native InvokeReturn passes but the interpreted one fails with a bus 
error when I come to pass the long or double result.
I tracked down the situation to a point where the POPL in interpret.cc 
overwrites my stackpointer from libffi. Coming back into libffi I can't 
return since I don't know where I was.
Now I don't understand the interpret.cc part enough to say whether it is 
a bug in libffi or in the interpreter.
In interpret.cc my POPL definition is this one:
# define POPL() ({ _Jv_word2 w2; \
 w2.ia[1] = (--sp)->ia[0]; \
 w2.ia[0] = (--sp)->ia[0]; w2.l; })
My SIZEOF_VOID_P is 4 long.
In _Jv_InterpMethod::run I don't see where my stack is coming from.
It would be great to get some clarification here, as I don't know which 
direction I should continue investigating.
TIA,
Andreas


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /