org.jikesrvm.compilers.opt.ir
Class CondMove

java.lang.Object
  extended by org.jikesrvm.compilers.opt.ir.InstructionFormat
      extended by org.jikesrvm.compilers.opt.ir.CondMove

public final class CondMove
extends InstructionFormat

The CondMove InstructionFormat class. The header comment for Instruction contains an explanation of the role of InstructionFormats in the opt compiler's IR.


Field Summary
 
Fields inherited from class org.jikesrvm.compilers.opt.ir.InstructionFormat
ALoad_format, ALoad_traits, ARCH_INDEPENDENT_INSTR_FORMAT_END_format, AStore_format, AStore_traits, Athrow_format, Athrow_traits, Attempt_format, Attempt_traits, BBend_format, BBend_traits, Binary_format, Binary_traits, BooleanCmp_format, BooleanCmp_traits, BoundsCheck_format, BoundsCheck_traits, CacheOp_format, CacheOp_traits, Call_format, Call_traits, CondMove_format, CondMove_traits, Empty_format, Empty_traits, GetField_format, GetField_traits, GetStatic_format, GetStatic_traits, Goto_format, Goto_traits, GuardedBinary_format, GuardedBinary_traits, GuardedSet_format, GuardedSet_traits, GuardedUnary_format, GuardedUnary_traits, IfCmp_format, IfCmp_traits, IfCmp2_format, IfCmp2_traits, InlineGuard_format, InlineGuard_traits, InstanceOf_format, InstanceOf_traits, InstrumentedCounter_format, InstrumentedCounter_traits, Label_format, Label_traits, Load_format, Load_traits, LookupSwitch_format, LookupSwitch_traits, LowTableSwitch_format, LowTableSwitch_traits, MIN_OPERAND_ARRAY_LENGTH, MIR_BinaryAcc_format, MIR_BinaryAcc_traits, MIR_Branch_format, MIR_Branch_traits, MIR_CacheOp_format, MIR_CacheOp_traits, MIR_Call_format, MIR_Call_traits, MIR_CaseLabel_format, MIR_CaseLabel_traits, MIR_Compare_format, MIR_Compare_traits, MIR_CompareExchange_format, MIR_CompareExchange_traits, MIR_CompareExchange8B_format, MIR_CompareExchange8B_traits, MIR_CondBranch_format, MIR_CondBranch_traits, MIR_CondBranch2_format, MIR_CondBranch2_traits, MIR_CondMove_format, MIR_CondMove_traits, MIR_ConvertDW2QW_format, MIR_ConvertDW2QW_traits, MIR_Divide_format, MIR_Divide_traits, MIR_DoubleShift_format, MIR_DoubleShift_traits, MIR_Empty_format, MIR_Empty_traits, MIR_FSave_format, MIR_FSave_traits, MIR_Lea_format, MIR_Lea_traits, MIR_LowTableSwitch_format, MIR_LowTableSwitch_traits, MIR_Move_format, MIR_Move_traits, MIR_Multiply_format, MIR_Multiply_traits, MIR_Nullary_format, MIR_Nullary_traits, MIR_RDTSC_format, MIR_RDTSC_traits, MIR_Return_format, MIR_Return_traits, MIR_Set_format, MIR_Set_traits, MIR_Test_format, MIR_Test_traits, MIR_Trap_format, MIR_Trap_traits, MIR_TrapIf_format, MIR_TrapIf_traits, MIR_Unary_format, MIR_Unary_traits, MIR_UnaryAcc_format, MIR_UnaryAcc_traits, MIR_UnaryNoRes_format, MIR_UnaryNoRes_traits, MIR_XChng_format, MIR_XChng_traits, MonitorOp_format, MonitorOp_traits, Move_format, Move_traits, Multianewarray_format, Multianewarray_traits, New_format, New_traits, NewArray_format, NewArray_traits, Nullary_format, Nullary_traits, NullCheck_format, NullCheck_traits, OsrBarrier_format, OsrBarrier_traits, OsrPoint_format, OsrPoint_traits, Phi_format, Phi_traits, Prepare_format, Prepare_traits, Prologue_format, Prologue_traits, PutField_format, PutField_traits, PutStatic_format, PutStatic_traits, Return_format, Return_traits, Store_format, Store_traits, StoreCheck_format, StoreCheck_traits, TableSwitch_format, TableSwitch_traits, Trap_format, Trap_traits, TrapIf_format, TrapIf_traits, TypeCheck_format, TypeCheck_traits, Unary_format, Unary_traits, Unassigned_format, ZeroCheck_format, ZeroCheck_traits
 
Constructor Summary
CondMove()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for CondMove.
static boolean conforms(Operator o)
          InstructionFormat identification method for CondMove.
static Instruction create(Operator o, RegisterOperand Result, Operand Val1, Operand Val2, ConditionOperand Cond, Operand TrueValue, Operand FalseValue)
          Create an instruction of the CondMove instruction format.
static ConditionOperand getClearCond(Instruction i)
          Get the operand called Cond from the argument instruction clearing its instruction pointer.
static Operand getClearFalseValue(Instruction i)
          Get the operand called FalseValue from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearResult(Instruction i)
          Get the operand called Result from the argument instruction clearing its instruction pointer.
static Operand getClearTrueValue(Instruction i)
          Get the operand called TrueValue from the argument instruction clearing its instruction pointer.
static Operand getClearVal1(Instruction i)
          Get the operand called Val1 from the argument instruction clearing its instruction pointer.
static Operand getClearVal2(Instruction i)
          Get the operand called Val2 from the argument instruction clearing its instruction pointer.
static ConditionOperand getCond(Instruction i)
          Get the operand called Cond from the argument instruction.
static Operand getFalseValue(Instruction i)
          Get the operand called FalseValue from the argument instruction.
static RegisterOperand getResult(Instruction i)
          Get the operand called Result from the argument instruction.
static Operand getTrueValue(Instruction i)
          Get the operand called TrueValue from the argument instruction.
static Operand getVal1(Instruction i)
          Get the operand called Val1 from the argument instruction.
static Operand getVal2(Instruction i)
          Get the operand called Val2 from the argument instruction.
static boolean hasCond(Instruction i)
          Does the argument instruction have a non-null operand named Cond?
static boolean hasFalseValue(Instruction i)
          Does the argument instruction have a non-null operand named FalseValue?
static boolean hasResult(Instruction i)
          Does the argument instruction have a non-null operand named Result?
static boolean hasTrueValue(Instruction i)
          Does the argument instruction have a non-null operand named TrueValue?
static boolean hasVal1(Instruction i)
          Does the argument instruction have a non-null operand named Val1?
static boolean hasVal2(Instruction i)
          Does the argument instruction have a non-null operand named Val2?
static int indexOfCond(Instruction i)
          Return the index of the operand called Cond in the argument instruction.
static int indexOfFalseValue(Instruction i)
          Return the index of the operand called FalseValue in the argument instruction.
static int indexOfResult(Instruction i)
          Return the index of the operand called Result in the argument instruction.
static int indexOfTrueValue(Instruction i)
          Return the index of the operand called TrueValue in the argument instruction.
static int indexOfVal1(Instruction i)
          Return the index of the operand called Val1 in the argument instruction.
static int indexOfVal2(Instruction i)
          Return the index of the operand called Val2 in the argument instruction.
static Instruction mutate(Instruction i, Operator o, RegisterOperand Result, Operand Val1, Operand Val2, ConditionOperand Cond, Operand TrueValue, Operand FalseValue)
          Mutate the argument instruction into an instruction of the CondMove instruction format having the specified operator and operands.
static void setCond(Instruction i, ConditionOperand Cond)
          Set the operand called Cond in the argument instruction to the argument operand.
static void setFalseValue(Instruction i, Operand FalseValue)
          Set the operand called FalseValue in the argument instruction to the argument operand.
static void setResult(Instruction i, RegisterOperand Result)
          Set the operand called Result in the argument instruction to the argument operand.
static void setTrueValue(Instruction i, Operand TrueValue)
          Set the operand called TrueValue in the argument instruction to the argument operand.
static void setVal1(Instruction i, Operand Val1)
          Set the operand called Val1 in the argument instruction to the argument operand.
static void setVal2(Instruction i, Operand Val2)
          Set the operand called Val2 in the argument instruction to the argument operand.
 
Methods inherited from class org.jikesrvm.compilers.opt.ir.InstructionFormat
fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CondMove

public CondMove()
Method Detail

conforms

public static boolean conforms(Instruction i)
InstructionFormat identification method for CondMove.

Parameters:
i - an instruction
Returns:
true if the InstructionFormat of the argument instruction is CondMove or false if it is not.

conforms

public static boolean conforms(Operator o)
InstructionFormat identification method for CondMove.

Parameters:
o - an instruction
Returns:
true if the InstructionFormat of the argument operator is CondMove or false if it is not.

getResult

public static RegisterOperand getResult(Instruction i)
Get the operand called Result from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Result

getClearResult

public static RegisterOperand getClearResult(Instruction i)
Get the operand called Result from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Result

setResult

public static void setResult(Instruction i,
                             RegisterOperand Result)
Set the operand called Result in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
Result - the operand to store

indexOfResult

public static int indexOfResult(Instruction i)
Return the index of the operand called Result in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called Result in the argument instruction

hasResult

public static boolean hasResult(Instruction i)
Does the argument instruction have a non-null operand named Result?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named Result or false if it does not.

getVal1

public static Operand getVal1(Instruction i)
Get the operand called Val1 from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Val1

getClearVal1

public static Operand getClearVal1(Instruction i)
Get the operand called Val1 from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Val1

setVal1

public static void setVal1(Instruction i,
                           Operand Val1)
Set the operand called Val1 in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
Val1 - the operand to store

indexOfVal1

public static int indexOfVal1(Instruction i)
Return the index of the operand called Val1 in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called Val1 in the argument instruction

hasVal1

public static boolean hasVal1(Instruction i)
Does the argument instruction have a non-null operand named Val1?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named Val1 or false if it does not.

getVal2

public static Operand getVal2(Instruction i)
Get the operand called Val2 from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Val2

getClearVal2

public static Operand getClearVal2(Instruction i)
Get the operand called Val2 from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Val2

setVal2

public static void setVal2(Instruction i,
                           Operand Val2)
Set the operand called Val2 in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
Val2 - the operand to store

indexOfVal2

public static int indexOfVal2(Instruction i)
Return the index of the operand called Val2 in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called Val2 in the argument instruction

hasVal2

public static boolean hasVal2(Instruction i)
Does the argument instruction have a non-null operand named Val2?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named Val2 or false if it does not.

getCond

public static ConditionOperand getCond(Instruction i)
Get the operand called Cond from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Cond

getClearCond

public static ConditionOperand getClearCond(Instruction i)
Get the operand called Cond from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called Cond

setCond

public static void setCond(Instruction i,
                           ConditionOperand Cond)
Set the operand called Cond in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
Cond - the operand to store

indexOfCond

public static int indexOfCond(Instruction i)
Return the index of the operand called Cond in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called Cond in the argument instruction

hasCond

public static boolean hasCond(Instruction i)
Does the argument instruction have a non-null operand named Cond?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named Cond or false if it does not.

getTrueValue

public static Operand getTrueValue(Instruction i)
Get the operand called TrueValue from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called TrueValue

getClearTrueValue

public static Operand getClearTrueValue(Instruction i)
Get the operand called TrueValue from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called TrueValue

setTrueValue

public static void setTrueValue(Instruction i,
                                Operand TrueValue)
Set the operand called TrueValue in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
TrueValue - the operand to store

indexOfTrueValue

public static int indexOfTrueValue(Instruction i)
Return the index of the operand called TrueValue in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called TrueValue in the argument instruction

hasTrueValue

public static boolean hasTrueValue(Instruction i)
Does the argument instruction have a non-null operand named TrueValue?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named TrueValue or false if it does not.

getFalseValue

public static Operand getFalseValue(Instruction i)
Get the operand called FalseValue from the argument instruction. Note that the returned operand will still point to its containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called FalseValue

getClearFalseValue

public static Operand getClearFalseValue(Instruction i)
Get the operand called FalseValue from the argument instruction clearing its instruction pointer. The returned operand will not point to any containing instruction.

Parameters:
i - the instruction to fetch the operand from
Returns:
the operand called FalseValue

setFalseValue

public static void setFalseValue(Instruction i,
                                 Operand FalseValue)
Set the operand called FalseValue in the argument instruction to the argument operand. The operand will now point to the argument instruction as its containing instruction.

Parameters:
i - the instruction in which to store the operand
FalseValue - the operand to store

indexOfFalseValue

public static int indexOfFalseValue(Instruction i)
Return the index of the operand called FalseValue in the argument instruction.

Parameters:
i - the instruction to access.
Returns:
the index of the operand called FalseValue in the argument instruction

hasFalseValue

public static boolean hasFalseValue(Instruction i)
Does the argument instruction have a non-null operand named FalseValue?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has an non-null operand named FalseValue or false if it does not.

create

public static Instruction create(Operator o,
                                 RegisterOperand Result,
                                 Operand Val1,
                                 Operand Val2,
                                 ConditionOperand Cond,
                                 Operand TrueValue,
                                 Operand FalseValue)
Create an instruction of the CondMove instruction format.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Val1 - the instruction's Val1 operand
Val2 - the instruction's Val2 operand
Cond - the instruction's Cond operand
TrueValue - the instruction's TrueValue operand
FalseValue - the instruction's FalseValue operand
Returns:
the newly created CondMove instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand Result,
                                 Operand Val1,
                                 Operand Val2,
                                 ConditionOperand Cond,
                                 Operand TrueValue,
                                 Operand FalseValue)
Mutate the argument instruction into an instruction of the CondMove instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Result - the instruction's Result operand
Val1 - the instruction's Val1 operand
Val2 - the instruction's Val2 operand
Cond - the instruction's Cond operand
TrueValue - the instruction's TrueValue operand
FalseValue - the instruction's FalseValue operand
Returns:
the mutated instruction