public class UncommonTrapStub extends SnippetStub
ATTENTION: We cannot do any complicated operations e.g. logging via printf in this snippet because we change the current stack layout and so the code is very sensitive to register allocation.
Modifier and Type | Field and Description |
---|---|
static LocationIdentity |
STACK_BANG_LOCATION |
private TargetDescription |
target |
method, SnippetGraphUnderConstruction
code, compResult, linkage, providers
Constructor and Description |
---|
UncommonTrapStub(HotSpotProviders providers,
TargetDescription target,
HotSpotForeignCallLinkage linkage) |
Modifier and Type | Method and Description |
---|---|
private static int |
deoptimizationUnpackDeopt() |
private static int |
deoptimizationUnpackUncommonTrap() |
private static int |
deoptimizationUnrollBlockCallerAdjustmentOffset() |
private static int |
deoptimizationUnrollBlockFramePcsOffset() |
private static int |
deoptimizationUnrollBlockFrameSizesOffset() |
private static int |
deoptimizationUnrollBlockInitialInfoOffset() |
private static int |
deoptimizationUnrollBlockNumberOfFramesOffset() |
private static int |
deoptimizationUnrollBlockSizeOfDeoptimizedFrameOffset() |
private static int |
deoptimizationUnrollBlockTotalFrameSizesOffset() |
protected Object |
getConstantParameterValue(int index,
String name) |
boolean |
preservesRegisters()
Determines if this stub preserves all registers apart from those it
destroys.
|
private static Word |
readRegister(Register register)
Reads the value of the passed register as a Word.
|
private static int |
stackBias()
Deprecated.
This method should go away as soon as JDK-8032410 hits the Graal repository.
|
private static int |
stackShadowPages() |
private static void |
uncommonTrapHandler(Register threadRegister,
Register stackPointerRegister)
Uncommon trap handler.
|
static int |
unpackFrames(ForeignCallDescriptor unpackFrames,
Word thread,
int mode) |
private static void |
writeRegister(Register register,
Word value)
Writes the value of the passed register.
|
checkConstArg, debugScopeContext, getGraph, getInstalledCodeOwner, makeConstArgs, toString
getCode, getCompilationResult, getDestroyedRegisters, getLinkage, getRegisterConfig, getStubs, initDestroyedRegisters
public static final LocationIdentity STACK_BANG_LOCATION
private final TargetDescription target
public UncommonTrapStub(HotSpotProviders providers, TargetDescription target, HotSpotForeignCallLinkage linkage)
public boolean preservesRegisters()
Stub
preservesRegisters
in class Stub
protected Object getConstantParameterValue(int index, String name)
getConstantParameterValue
in class SnippetStub
private static void uncommonTrapHandler(Register threadRegister, Register stackPointerRegister)
private static Word readRegister(Register register)
private static void writeRegister(Register register, Word value)
value
- value the register should be set toprivate static int stackShadowPages()
@Deprecated private static int stackBias()
private static int deoptimizationUnrollBlockSizeOfDeoptimizedFrameOffset()
private static int deoptimizationUnrollBlockCallerAdjustmentOffset()
private static int deoptimizationUnrollBlockNumberOfFramesOffset()
private static int deoptimizationUnrollBlockTotalFrameSizesOffset()
private static int deoptimizationUnrollBlockFrameSizesOffset()
private static int deoptimizationUnrollBlockFramePcsOffset()
private static int deoptimizationUnrollBlockInitialInfoOffset()
private static int deoptimizationUnpackDeopt()
private static int deoptimizationUnpackUncommonTrap()
public static int unpackFrames(ForeignCallDescriptor unpackFrames, Word thread, int mode)