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. |
emitCode
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<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 AMD64LIRInstruction
public boolean supportsRemove()
StandardOp.SaveRegistersOp
StandardOp.SaveRegistersOp.remove(Set)
operation is supported for this object.supportsRemove
in interface StandardOp.SaveRegistersOp
public int remove(Set<Register> doNotSave)
StandardOp.SaveRegistersOp
doNotSave
from the registers saved by this operation.remove
in interface StandardOp.SaveRegistersOp
doNotSave
- registers that should not be saved by this operationpublic RegisterSaveLayout getMap(FrameMap frameMap)
StandardOp.SaveRegistersOp
getMap
in interface StandardOp.SaveRegistersOp
frameMap
- used to convert a
virtual slot to a frame slot index