[kaffe] Re: optimized JIT problems on x86

Patrick Tullmann tullmann@cs.utah.edu
Sat, 5 Oct 2002 17:26:46 -0600


I wrote:
> So, I'll volunteer to move Tim's fixes from JanosVM into a vanilla
> Kaffe tree and submit a new patch.

I've got a patch together that fixes the optimized JIT problem in
jni.c.  (The current code relies on various C functions being placed
together contiguously in source-code order when compiled).  Tim Stack
pointed out that just knowing the frame pointer for the active JNI
entrypoint would be sufficient to identify the JNI entrypoints on the
stack, and that sort of magic is already available on Kaffe platforms.

It passes all the FullTest.sh tests (with this patch I can get through
everything in FullTest without problems).  I'll probably check this in
sometime next week.  Let me know if I'm missing anything or if it
looks like I botched anything else up.

The patch is available here:
	http://www.tullmann.org/pat/kaffe/optjit-fix-v2.txt

And here's the ChangeLog entry:
  Patrick Tullmann  <pat@tullmann.org>
        * kaffe/kaffevm/classMethod.c: methodNeedsTrampoline is JIT-only
        * kaffe/kaffevm/exception.c, kaffe/kaffevm/exception.h,
        kaffe/kaffevm/jni.c, kaffe/kaffevm/stackTrace.h:
        Hide in-vm exception handling behind VmExceptHandler type (used to
        be vmException).  Mostly used in the interpreter, also used in JIT
        for catching errors at the JNI entry layer.  Update jni.c entry
        layer to track exceptions on per-function basis (instead of a
        fixed range of instruction addresses, fixes optimizer).

-Pat

----- ----- ---- ---  ---  --   -    -      -         -               -
Pat Tullmann                                       tullmann@cs.utah.edu
                 Does the name `Pavlov' ring a bell?