public final class VerifyingMoveFactory extends MoveFactory
MoveFactory that checks that the instructions created adhere to the contract
of MoveFactory.MoveFactory.BackupSlotProvider, MoveFactory.RegisterBackupPair| Constructor and Description |
|---|
VerifyingMoveFactory(MoveFactory inner) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
allowConstantToStackMove(Constant constant) |
boolean |
canInlineConstant(Constant c)
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.
|
LIRInstruction |
createLoad(AllocatableValue result,
Constant input) |
LIRInstruction |
createMove(AllocatableValue result,
Value input) |
LIRInstruction |
createStackLoad(AllocatableValue result,
Constant input) |
LIRInstruction |
createStackMove(AllocatableValue result,
AllocatableValue input) |
mayEmbedConstantLoadpublic VerifyingMoveFactory(MoveFactory inner)
public boolean canInlineConstant(Constant c)
MoveFactorycanInlineConstant in class MoveFactoryc - The constant to check.public 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 LIRInstruction createMove(AllocatableValue result, Value input)
createMove in class MoveFactorypublic LIRInstruction createStackMove(AllocatableValue result, AllocatableValue input)
createStackMove in class MoveFactorypublic LIRInstruction createLoad(AllocatableValue result, Constant input)
createLoad in class MoveFactorypublic LIRInstruction createStackLoad(AllocatableValue result, Constant input)
createStackLoad in class MoveFactory