public class AMD64MulDivOp extends AMD64LIRInstruction
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use
Modifier and Type | Field and Description |
---|---|
protected AllocatableValue |
highResult |
protected AllocatableValue |
highX |
protected AllocatableValue |
lowResult |
protected AllocatableValue |
lowX |
private AMD64Assembler.AMD64MOp |
opcode |
private AMD64Assembler.OperandSize |
size |
protected LIRFrameState |
state |
static LIRInstructionClass<AMD64MulDivOp> |
TYPE |
protected AllocatableValue |
y |
ADDRESS_FLAGS, ALLOWED_FLAGS
Constructor and Description |
---|
AMD64MulDivOp(AMD64Assembler.AMD64MOp opcode,
AMD64Assembler.OperandSize size,
LIRKind resultKind,
AllocatableValue x,
AllocatableValue y) |
AMD64MulDivOp(AMD64Assembler.AMD64MOp opcode,
AMD64Assembler.OperandSize size,
LIRKind resultKind,
AllocatableValue highX,
AllocatableValue lowX,
AllocatableValue y,
LIRFrameState state) |
Modifier and Type | Method and Description |
---|---|
void |
emitCode(CompilationResultBuilder crb,
AMD64MacroAssembler masm) |
AllocatableValue |
getHighResult() |
AllocatableValue |
getLowResult() |
AllocatableValue |
getQuotient() |
AllocatableValue |
getRemainder() |
void |
verify() |
emitCode
destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getLIRInstructionClass, hasOperands, hasState, id, name, setId, toString, toStringWithIdPrefix, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemp
public static final LIRInstructionClass<AMD64MulDivOp> TYPE
private final AMD64Assembler.AMD64MOp opcode
private final AMD64Assembler.OperandSize size
protected AllocatableValue highResult
protected AllocatableValue lowResult
protected AllocatableValue highX
protected AllocatableValue lowX
protected AllocatableValue y
protected LIRFrameState state
public AMD64MulDivOp(AMD64Assembler.AMD64MOp opcode, AMD64Assembler.OperandSize size, LIRKind resultKind, AllocatableValue x, AllocatableValue y)
public AMD64MulDivOp(AMD64Assembler.AMD64MOp opcode, AMD64Assembler.OperandSize size, LIRKind resultKind, AllocatableValue highX, AllocatableValue lowX, AllocatableValue y, LIRFrameState state)
public AllocatableValue getHighResult()
public AllocatableValue getLowResult()
public AllocatableValue getQuotient()
public AllocatableValue getRemainder()
public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm)
emitCode
in class AMD64LIRInstruction
public void verify()
verify
in class LIRInstruction