public final class AMD64ZapRegistersOp extends AMD64LIRInstruction implements StandardOp.SaveRegistersOp
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
static LIRInstructionClass<AMD64ZapRegistersOp> |
TYPE |
protected Register[] |
zappedRegisters
The registers that are zapped.
|
protected JavaConstant[] |
zapValues
The garbage values that are written to the registers.
|
ADDRESS_FLAGS, ALLOWED_FLAGS| Constructor and Description |
|---|
AMD64ZapRegistersOp(Register[] zappedRegisters,
JavaConstant[] zapValues) |
| Modifier and Type | Method and Description |
|---|---|
void |
emitCode(CompilationResultBuilder crb,
AMD64MacroAssembler masm) |
RegisterSaveLayout |
getMap(FrameMap frameMap)
Gets a map from the saved registers saved by this operation to the frame slots in which
they are saved.
|
int |
remove(Set<Register> doNotSave)
Prunes
doNotSave from the registers saved by this operation. |
boolean |
supportsRemove()
Determines if the
StandardOp.SaveRegistersOp.remove(Set) operation is supported for this object. |
emitCodedestroysCallerSavedRegisters, 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, visitEachTemppublic static final LIRInstructionClass<AMD64ZapRegistersOp> TYPE
protected final Register[] zappedRegisters
protected JavaConstant[] zapValues
public AMD64ZapRegistersOp(Register[] zappedRegisters, JavaConstant[] zapValues)
public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm)
emitCode in class AMD64LIRInstructionpublic boolean supportsRemove()
StandardOp.SaveRegistersOpStandardOp.SaveRegistersOp.remove(Set) operation is supported for this object.supportsRemove in interface StandardOp.SaveRegistersOppublic int remove(Set<Register> doNotSave)
StandardOp.SaveRegistersOpdoNotSave from the registers saved by this operation.remove in interface StandardOp.SaveRegistersOpdoNotSave - registers that should not be saved by this operationpublic RegisterSaveLayout getMap(FrameMap frameMap)
StandardOp.SaveRegistersOpgetMap in interface StandardOp.SaveRegistersOpframeMap - used to convert a
virtual slot to a frame slot index