public abstract class AMD64MoveFactory extends AMD64MoveFactoryBase
MoveFactory.BackupSlotProvider, MoveFactory.RegisterBackupPair| Constructor and Description |
|---|
AMD64MoveFactory(MoveFactory.BackupSlotProvider backupSlotProvider) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
allowConstantToStackMove(Constant constant) |
boolean |
canInlineConstant(Constant con)
Checks whether the supplied constant can be used without loading it into a register for most
operations, i.e., for commonly used arithmetic, logical, and comparison operations.
|
AMD64LIRInstruction |
createLoad(AllocatableValue dst,
Constant src) |
AMD64LIRInstruction |
createMove(AllocatableValue dst,
Value src) |
LIRInstruction |
createStackLoad(AllocatableValue result,
Constant input) |
AMD64LIRInstruction |
createStackMove(AllocatableValue result,
AllocatableValue input,
Register scratchRegister,
AllocatableValue backupSlot) |
boolean |
mayEmbedConstantLoad(Constant constant)
Checks whether the loading of the supplied constant can be deferred until usage.
|
createStackMovepublic AMD64MoveFactory(MoveFactory.BackupSlotProvider backupSlotProvider)
public boolean canInlineConstant(Constant con)
MoveFactorycanInlineConstant in class MoveFactorycon - The constant to check.public boolean mayEmbedConstantLoad(Constant constant)
MoveFactorymayEmbedConstantLoad in class MoveFactorypublic boolean allowConstantToStackMove(Constant constant)
allowConstantToStackMove in class MoveFactoryconstant - The constant that might be moved to a stack slot.true if constant to stack moves are supported for this constant.public AMD64LIRInstruction createMove(AllocatableValue dst, Value src)
createMove in class MoveFactorypublic AMD64LIRInstruction createStackMove(AllocatableValue result, AllocatableValue input, Register scratchRegister, AllocatableValue backupSlot)
createStackMove in class AMD64MoveFactoryBasepublic AMD64LIRInstruction createLoad(AllocatableValue dst, Constant src)
createLoad in class MoveFactorypublic LIRInstruction createStackLoad(AllocatableValue result, Constant input)
createStackLoad in class MoveFactory