org.jikesrvm.compilers.opt.lir2mir.ia32
Class ComplexLIR2MIRExpansion
java.lang.Object
org.jikesrvm.compilers.opt.ir.IRTools
org.jikesrvm.compilers.opt.lir2mir.ia32.ComplexLIR2MIRExpansion
- Direct Known Subclasses:
- ArchitectureSpecificOpt.ComplexLIR2MIRExpansion
public abstract class ComplexLIR2MIRExpansion
- extends IRTools
Handles the conversion from LIR to MIR of operators whose
expansion requires the introduction of new control flow (new basic blocks).
Method Summary |
private static void |
basic_long_ifcmp(Instruction s,
IR ir,
ConditionOperand cond,
Register xh,
Register xl,
Operand yh,
Operand yl)
|
static void |
convert(IR ir)
Converts the given IR to low level IA32 IR. |
private static Instruction |
double_2int(Instruction s,
IR ir)
|
private static Instruction |
double_2long(Instruction s,
IR ir)
|
private static Instruction |
float_2int(Instruction s,
IR ir)
|
private static Instruction |
float_2long(Instruction s,
IR ir)
|
private static Instruction |
fp_ifcmp(Instruction s)
|
private static Instruction |
long_ifcmp_imm(Instruction s,
IR ir)
|
private static Instruction |
long_ifcmp(Instruction s,
IR ir)
|
private static Instruction |
long_mul(Instruction s,
IR ir)
|
private static Instruction |
long_shl(Instruction s,
IR ir)
|
private static Instruction |
long_shr(Instruction s,
IR ir)
|
private static Instruction |
long_ushr(Instruction s,
IR ir)
|
Methods inherited from class org.jikesrvm.compilers.opt.ir.IRTools |
A, AC, AC, CPOS, CR, D, DC, defDoublesAsUse, definedIn, F, FC, getCondMoveOp, getDefaultOperand, getLoadOp, getLoadOp, getMoveOp, getStoreOp, getStoreOp, I, IC, insertInstructionsAfter, L, LC, makeBlockOnEdge, mayBeVolatileFieldLoad, moveInstruction, moveIntoRegister, moveIntoRegister, nonPEIGC, TG, usedIn, useDoublesAsDef |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ComplexLIR2MIRExpansion
public ComplexLIR2MIRExpansion()
convert
public static void convert(IR ir)
- Converts the given IR to low level IA32 IR.
- Parameters:
ir
- IR to convert
float_2int
private static Instruction float_2int(Instruction s,
IR ir)
float_2long
private static Instruction float_2long(Instruction s,
IR ir)
double_2int
private static Instruction double_2int(Instruction s,
IR ir)
double_2long
private static Instruction double_2long(Instruction s,
IR ir)
long_shl
private static Instruction long_shl(Instruction s,
IR ir)
long_shr
private static Instruction long_shr(Instruction s,
IR ir)
long_ushr
private static Instruction long_ushr(Instruction s,
IR ir)
long_mul
private static Instruction long_mul(Instruction s,
IR ir)
long_ifcmp
private static Instruction long_ifcmp(Instruction s,
IR ir)
long_ifcmp_imm
private static Instruction long_ifcmp_imm(Instruction s,
IR ir)
basic_long_ifcmp
private static void basic_long_ifcmp(Instruction s,
IR ir,
ConditionOperand cond,
Register xh,
Register xl,
Operand yh,
Operand yl)
fp_ifcmp
private static Instruction fp_ifcmp(Instruction s)