public static final class AArch64Move.StoreReleaseOp extends AArch64LIRInstruction
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
protected AArch64Kind |
accessKind |
protected AArch64AddressValue |
addressValue |
protected AllocatableValue |
input |
protected LIRFrameState |
state |
static LIRInstructionClass<AArch64Move.StoreReleaseOp> |
TYPE |
ADDRESS_FLAGS, ALLOWED_FLAGS| Constructor and Description |
|---|
StoreReleaseOp(AArch64Kind accessKind,
AArch64AddressValue address,
AllocatableValue input,
LIRFrameState state) |
| Modifier and Type | Method and Description |
|---|---|
void |
emitCode(CompilationResultBuilder crb,
AArch64MacroAssembler masm) |
protected int |
emitMemAccess(CompilationResultBuilder crb,
AArch64MacroAssembler masm)
Emit the memory access.
|
AArch64Kind |
getAccessKind() |
boolean |
makeNullCheckFor(Value value,
LIRFrameState nullCheckState,
int implicitNullCheckLimit) |
protected boolean |
mergingAllowed(CompilationResultBuilder crb,
int memPosition)
Checks whether the current memory access could be merged with the prior memory access.
|
emitCodeaddStackSlotsToTemporaries, destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getComment, getLIRInstructionClass, getPosition, hashCode, hasOperands, hasState, id, isLoadConstantOp, isMoveOp, isValueMoveOp, name, needsClearUpperVectorRegisters, setComment, setId, setPosition, toString, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemppublic static final LIRInstructionClass<AArch64Move.StoreReleaseOp> TYPE
protected AllocatableValue input
protected final AArch64Kind accessKind
protected AArch64AddressValue addressValue
protected LIRFrameState state
public StoreReleaseOp(AArch64Kind accessKind,
AArch64AddressValue address,
AllocatableValue input,
LIRFrameState state)
protected int emitMemAccess(CompilationResultBuilder crb, AArch64MacroAssembler masm)
public AArch64Kind getAccessKind()
protected boolean mergingAllowed(CompilationResultBuilder crb, int memPosition)
public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm)
emitCode in class AArch64LIRInstructionpublic boolean makeNullCheckFor(Value value,
LIRFrameState nullCheckState,
int implicitNullCheckLimit)
makeNullCheckFor in interface StandardOp.ImplicitNullCheck