public abstract static class StandardOp.SaveRegistersOp extends LIRInstruction
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
protected Register[] |
savedRegisters
The registers (potentially) saved by this operation.
|
protected AllocatableValue[] |
slots
The slots to which the registers are saved.
|
static LIRInstructionClass<StandardOp.SaveRegistersOp> |
TYPE |
ADDRESS_FLAGS, ALLOWED_FLAGS| Modifier | Constructor and Description |
|---|---|
protected |
SaveRegistersOp(LIRInstructionClass<? extends StandardOp.SaveRegistersOp> c,
Register[] savedRegisters,
AllocatableValue[] savedRegisterLocations) |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
emitCode(CompilationResultBuilder crb) |
RegisterSaveLayout |
getMap(FrameMap frameMap)
Gets a map from the saved registers saved by this operation to the frame slots in which
they are saved.
|
org.graalvm.collections.EconomicSet<Register> |
getSaveableRegisters() |
Register[] |
getSavedRegisters() |
AllocatableValue[] |
getSlots() |
int |
remove(org.graalvm.collections.EconomicSet<Register> doNotSave)
Prunes
doNotSave from the registers saved by this operation. |
addStackSlotsToTemporaries, 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<StandardOp.SaveRegistersOp> TYPE
protected final Register[] savedRegisters
protected final AllocatableValue[] slots
protected SaveRegistersOp(LIRInstructionClass<? extends StandardOp.SaveRegistersOp> c, Register[] savedRegisters, AllocatableValue[] savedRegisterLocations)
savedRegisters - the registers saved by this operation which may be subject to
pruningsavedRegisterLocations - the slots to which the registers are savedpublic int remove(org.graalvm.collections.EconomicSet<Register> doNotSave)
doNotSave from the registers saved by this operation.doNotSave - registers that should not be saved by this operationpublic RegisterSaveLayout getMap(FrameMap frameMap)
frameMap - used to convert a
virtual slot to a frame slot indexpublic Register[] getSavedRegisters()
public org.graalvm.collections.EconomicSet<Register> getSaveableRegisters()
public AllocatableValue[] getSlots()
public abstract void emitCode(CompilationResultBuilder crb)
emitCode in class LIRInstruction