public class UnwindExceptionToCallerStub extends SnippetStub
UnwindNode
. This stub executes in the frame of the method throwing an
exception and completes by jumping to the exception handler in the calling frame.Modifier and Type | Field and Description |
---|---|
static ForeignCallDescriptor |
EXCEPTION_HANDLER_FOR_RETURN_ADDRESS |
method, SnippetGraphUnderConstruction
code, compResult, linkage, providers
Constructor and Description |
---|
UnwindExceptionToCallerStub(HotSpotProviders providers,
HotSpotForeignCallLinkage linkage) |
Modifier and Type | Method and Description |
---|---|
private static boolean |
assertionsEnabled()
Determines if either Java assertions are enabled for
UnwindExceptionToCallerStub or
if this is a HotSpot build where the ASSERT mechanism is enabled. |
static Word |
exceptionHandlerForReturnAddress(ForeignCallDescriptor exceptionHandlerForReturnAddress,
Word thread,
Word returnAddress) |
protected Object |
getConstantParameterValue(int index,
String name) |
private static boolean |
logging() |
boolean |
preservesRegisters()
The current frame is unwound by this stub.
|
private static void |
unwindExceptionToCaller(Object exception,
Word returnAddress,
Register threadRegister) |
checkConstArg, debugScopeContext, getGraph, getInstalledCodeOwner, makeConstArgs, toString
getCode, getCompilationResult, getDestroyedRegisters, getLinkage, getRegisterConfig, getStubs, initDestroyedRegisters
public static final ForeignCallDescriptor EXCEPTION_HANDLER_FOR_RETURN_ADDRESS
public UnwindExceptionToCallerStub(HotSpotProviders providers, HotSpotForeignCallLinkage linkage)
public boolean preservesRegisters()
preservesRegisters
in class Stub
protected Object getConstantParameterValue(int index, String name)
getConstantParameterValue
in class SnippetStub
private static void unwindExceptionToCaller(Object exception, Word returnAddress, Register threadRegister)
private static boolean logging()
private static boolean assertionsEnabled()
UnwindExceptionToCallerStub
or
if this is a HotSpot build where the ASSERT mechanism is enabled.
This first check relies on the per-class assertion status which is why this method must be in this class.
public static Word exceptionHandlerForReturnAddress(ForeignCallDescriptor exceptionHandlerForReturnAddress, Word thread, Word returnAddress)