public class HotSpotLockStack extends LIRInstruction
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use
Modifier and Type | Field and Description |
---|---|
private static StackSlotValue[] |
EMPTY |
private FrameMapBuilder |
frameMapBuilder |
private StackSlotValue[] |
locks |
private LIRKind |
slotKind |
static LIRInstructionClass<HotSpotLockStack> |
TYPE |
ADDRESS_FLAGS, ALLOWED_FLAGS
Constructor and Description |
---|
HotSpotLockStack(FrameMapBuilder frameMapBuilder,
LIRKind slotKind) |
Modifier and Type | Method and Description |
---|---|
void |
emitCode(CompilationResultBuilder crb) |
StackSlotValue |
makeLockSlot(int lockDepth)
Gets a stack slot for a lock at a given lock nesting depth, allocating it first if necessary.
|
destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getLIRInstructionClass, hasOperands, hasState, id, name, setId, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemp
public static final LIRInstructionClass<HotSpotLockStack> TYPE
private static final StackSlotValue[] EMPTY
private StackSlotValue[] locks
private final FrameMapBuilder frameMapBuilder
public HotSpotLockStack(FrameMapBuilder frameMapBuilder, LIRKind slotKind)
public StackSlotValue makeLockSlot(int lockDepth)
public void emitCode(CompilationResultBuilder crb)
emitCode
in class LIRInstruction