org.jikesrvm.jni.ia32
Class JNIExceptionDeliverer

java.lang.Object
  extended by org.jikesrvm.runtime.ExceptionDeliverer
      extended by org.jikesrvm.jni.ia32.JNIExceptionDeliverer

public class JNIExceptionDeliverer
extends ExceptionDeliverer

Exception delivery mechanisms for JNI on IA32


Constructor Summary
JNIExceptionDeliverer()
           
 
Method Summary
 void deliverException(CompiledMethod compiledMethod, Address catchBlockInstructionAddress, Throwable exceptionObject, ArchitectureSpecific.Registers registers)
          Deliver exception, not possible for JNI methods
 void unwindStackFrame(CompiledMethod compiledMethod, ArchitectureSpecific.Registers registers)
          Unwind registers/stack through JNI method
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JNIExceptionDeliverer

public JNIExceptionDeliverer()
Method Detail

deliverException

public void deliverException(CompiledMethod compiledMethod,
                             Address catchBlockInstructionAddress,
                             Throwable exceptionObject,
                             ArchitectureSpecific.Registers registers)
Deliver exception, not possible for JNI methods

Specified by:
deliverException in class ExceptionDeliverer
Parameters:
compiledMethod - method whose catch block is to receive control
catchBlockInstructionAddress - instruction address at which to begin execution of catch block
exceptionObject - exception object to be passed as argument to catch block
registers - registers to be loaded before passing control to catch block
See Also:
ExceptionDeliverer.deliverException(org.jikesrvm.compilers.common.CompiledMethod, org.vmmagic.unboxed.Address, java.lang.Throwable, org.jikesrvm.ArchitectureSpecific.Registers)

unwindStackFrame

public void unwindStackFrame(CompiledMethod compiledMethod,
                             ArchitectureSpecific.Registers registers)
Unwind registers/stack through JNI method

Specified by:
unwindStackFrame in class ExceptionDeliverer
Parameters:
compiledMethod - method whose stackframe is to be unwound
registers - thread state to be updated by restoring non-volatiles and unwinding the stackframe
See Also:
ExceptionDeliverer.unwindStackFrame(org.jikesrvm.compilers.common.CompiledMethod, org.jikesrvm.ArchitectureSpecific.Registers)