public abstract static class AMD64Move.PointerCompressionOp extends AMD64LIRInstruction
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
protected CompressEncoding |
encoding |
protected LIRKindTool |
lirKindTool |
protected boolean |
nonNull |
TYPEADDRESS_FLAGS, ALLOWED_FLAGS| Modifier | Constructor and Description |
|---|---|
protected |
PointerCompressionOp(LIRInstructionClass<? extends AMD64Move.PointerCompressionOp> type,
AllocatableValue result,
Value input,
AllocatableValue baseRegister,
CompressEncoding encoding,
boolean nonNull,
LIRKindTool lirKindTool) |
| Modifier and Type | Method and Description |
|---|---|
static void |
emitUncompressWithBaseRegister(AMD64MacroAssembler masm,
Register inputAndResultReg,
Register baseReg,
int shift,
boolean preserveFlagsRegister)
Emits code to uncompress the compressed oop in
inputAndResultReg by left shifting
it shift bits, adding it to baseReg and storing the result back in
inputAndResultReg. |
static void |
emitUncompressWithBaseRegister(AMD64MacroAssembler masm,
Register resultReg,
Register baseReg,
Register inputReg,
int shift,
boolean preserveFlagsRegister)
Emits code to uncompress the compressed oop in
inputReg by left shifting it
shift bits, adding it to baseReg and storing the result in
resultReg. |
protected Register |
getBaseRegister() |
Value |
getInput() |
AllocatableValue |
getResult() |
protected Register |
getResultRegister() |
protected int |
getShift() |
static boolean |
hasBase(CompressEncoding encoding) |
protected void |
move(LIRKind kind,
CompilationResultBuilder crb,
AMD64MacroAssembler masm)
|
emitCode, 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, visitEachTempprotected final LIRKindTool lirKindTool
protected final CompressEncoding encoding
protected final boolean nonNull
protected PointerCompressionOp(LIRInstructionClass<? extends AMD64Move.PointerCompressionOp> type, AllocatableValue result, Value input, AllocatableValue baseRegister, CompressEncoding encoding, boolean nonNull, LIRKindTool lirKindTool)
public static boolean hasBase(CompressEncoding encoding)
public final Value getInput()
public final AllocatableValue getResult()
protected final Register getResultRegister()
protected final Register getBaseRegister()
protected final int getShift()
protected final void move(LIRKind kind, CompilationResultBuilder crb, AMD64MacroAssembler masm)
public static void emitUncompressWithBaseRegister(AMD64MacroAssembler masm, Register inputAndResultReg, Register baseReg, int shift, boolean preserveFlagsRegister)
inputAndResultReg by left shifting
it shift bits, adding it to baseReg and storing the result back in
inputAndResultReg.public static void emitUncompressWithBaseRegister(AMD64MacroAssembler masm, Register resultReg, Register baseReg, Register inputReg, int shift, boolean preserveFlagsRegister)
inputReg by left shifting it
shift bits, adding it to baseReg and storing the result in
resultReg.