All Methods Instance Methods Concrete Methods
Modifier and Type |
Method and Description |
protected SPARCAddressValue |
asAddressValue(Value address) |
void |
beforeRegisterAllocation()
Called just before register allocation is performed on the LIR owned by this generator.
|
boolean |
canInlineConstant(JavaConstant 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.
|
protected SPARCLIRInstruction |
createMove(AllocatableValue dst,
Value src) |
protected LIRInstruction |
createStackMove(AllocatableValue result,
Value input) |
Variable |
emitAdd(LIRKind resultKind,
Value a,
Value b,
boolean setFlags) |
Variable |
emitAddress(StackSlotValue address) |
Variable |
emitAnd(Value a,
Value b) |
Variable |
emitArrayEquals(Kind kind,
Value array1,
Value array2,
Value length) |
private Variable |
emitBinary(LIRKind resultKind,
SPARCArithmetic op,
boolean commutative,
Value a,
Value b) |
private Variable |
emitBinary(LIRKind resultKind,
SPARCArithmetic op,
boolean commutative,
Value a,
Value b,
LIRFrameState state) |
private Variable |
emitBinaryConst(LIRKind resultKind,
SPARCArithmetic op,
AllocatableValue a,
JavaConstant b,
LIRFrameState state) |
private Variable |
emitBinaryVar(LIRKind resultKind,
SPARCArithmetic op,
AllocatableValue a,
AllocatableValue b,
LIRFrameState state) |
Variable |
emitBitCount(Value operand) |
Variable |
emitBitScanForward(Value operand) |
Variable |
emitBitScanReverse(Value operand) |
Variable |
emitByteSwap(Value input) |
protected boolean |
emitCompare(PlatformKind cmpKind,
Value a,
Value b)
This method emits the compare instruction, and may reorder the operands.
|
void |
emitCompareBranch(PlatformKind cmpKind,
Value x,
Value y,
Condition cond,
boolean unorderedIsTrue,
LabelRef trueDestination,
LabelRef falseDestination,
double trueDestinationProbability) |
Variable |
emitConditionalMove(PlatformKind cmpKind,
Value left,
Value right,
Condition cond,
boolean unorderedIsTrue,
Value trueValue,
Value falseValue) |
private AllocatableValue |
emitConvert2Op(LIRKind kind,
SPARCArithmetic op,
AllocatableValue input) |
private AllocatableValue |
emitConvertMove(LIRKind kind,
AllocatableValue input) |
void |
emitData(AllocatableValue dst,
byte[] data)
Emits an op that loads the address of some raw data.
|
void |
emitDeoptimize(Value actionAndReason,
Value speculation,
LIRFrameState state) |
Value |
emitDiv(Value a,
Value b,
LIRFrameState state) |
Value |
emitFloatConvert(FloatConvert op,
Value inputVal) |
protected void |
emitForeignCallOp(ForeignCallLinkage linkage,
Value result,
Value[] arguments,
Value[] temps,
LIRFrameState info)
Emits the single call operation at the heart of generating LIR for a
foreign call.
|
private void |
emitIntegerTest(Value a,
Value b) |
void |
emitIntegerTestBranch(Value left,
Value right,
LabelRef trueDestination,
LabelRef falseDestination,
double trueDestinationProbability) |
Variable |
emitIntegerTestMove(Value left,
Value right,
Value trueValue,
Value falseValue) |
void |
emitJump(LabelRef label) |
void |
emitLoadConstantTableBase() |
Value |
emitMathAbs(Value input) |
Value |
emitMathSqrt(Value input) |
void |
emitMembar(int barriers) |
void |
emitMove(AllocatableValue dst,
Value src) |
Variable |
emitMul(Value a,
Value b,
boolean setFlags) |
private Value |
emitMulHigh(SPARCArithmetic opcode,
Value a,
Value b) |
Value |
emitMulHigh(Value a,
Value b) |
Value |
emitNarrow(Value inputVal,
int bits) |
Value |
emitNegate(Value input) |
Value |
emitNot(Value input) |
void |
emitNullCheck(Value address,
LIRFrameState state) |
Variable |
emitOr(Value a,
Value b) |
void |
emitOverflowCheckBranch(LabelRef overflow,
LabelRef noOverflow,
LIRKind cmpLIRKind,
double overflowProbability) |
AllocatableValue |
emitReinterpret(LIRKind to,
Value inputVal) |
Value |
emitRem(Value a,
Value b,
LIRFrameState state) |
void |
emitReturn(Value input)
Emits a return instruction.
|
private Variable |
emitShift(SPARCArithmetic op,
Value a,
Value b) |
Variable |
emitShl(Value a,
Value b) |
Variable |
emitShr(Value a,
Value b) |
Value |
emitSignExtend(Value inputVal,
int fromBits,
int toBits) |
Value |
emitSignExtendLoad(LIRKind kind,
Value address,
LIRFrameState state) |
void |
emitStrategySwitch(SwitchStrategy strategy,
Variable key,
LabelRef[] keyTargets,
LabelRef defaultTarget) |
Variable |
emitSub(LIRKind resultKind,
Value a,
Value b,
boolean setFlags) |
protected void |
emitTableSwitch(int lowKey,
LabelRef defaultTarget,
LabelRef[] targets,
Value key) |
Value |
emitUDiv(Value a,
Value b,
LIRFrameState state) |
Value |
emitUMulHigh(Value a,
Value b) |
private Variable |
emitUnary(SPARCArithmetic op,
Value input) |
Value |
emitURem(Value a,
Value b,
LIRFrameState state) |
Variable |
emitUShr(Value a,
Value b) |
Variable |
emitXor(Value a,
Value b) |
Value |
emitZeroExtend(Value inputVal,
int fromBits,
int toBits) |
protected SPARC |
getArchitecture() |
protected Variable |
getConstantTableBase() |
LIRGeneratorTool.SpillMoveFactory |
getSpillMoveFactory() |
private StackSlotValue |
getTempSlot(LIRKind kind) |
private Value |
loadSimm11(Value value) |
private void |
moveBetweenFpGp(AllocatableValue dst,
AllocatableValue src) |