org.jikesrvm.compilers.opt.ir
Class MIR_Multiply

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

public final class MIR_Multiply
extends InstructionFormat

The MIR_Multiply 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
MIR_Multiply()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_Multiply.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_Multiply.
static Instruction create(Operator o, Operand Result1, Operand Result2, Operand Value)
          Create an instruction of the MIR_Multiply instruction format.
static Operand getClearResult1(Instruction i)
          Get the operand called Result1 from the argument instruction clearing its instruction pointer.
static Operand getClearResult2(Instruction i)
          Get the operand called Result2 from the argument instruction clearing its instruction pointer.
static Operand getClearValue(Instruction i)
          Get the operand called Value from the argument instruction clearing its instruction pointer.
static Operand getResult1(Instruction i)
          Get the operand called Result1 from the argument instruction.
static Operand getResult2(Instruction i)
          Get the operand called Result2 from the argument instruction.
static Operand getValue(Instruction i)
          Get the operand called Value from the argument instruction.
static boolean hasResult1(Instruction i)
          Does the argument instruction have a non-null operand named Result1?
static boolean hasResult2(Instruction i)
          Does the argument instruction have a non-null operand named Result2?
static boolean hasValue(Instruction i)
          Does the argument instruction have a non-null operand named Value?
static int indexOfResult1(Instruction i)
          Return the index of the operand called Result1 in the argument instruction.
static int indexOfResult2(Instruction i)
          Return the index of the operand called Result2 in the argument instruction.
static int indexOfValue(Instruction i)
          Return the index of the operand called Value in the argument instruction.
static Instruction mutate(Instruction i, Operator o, Operand Result1, Operand Result2, Operand Value)
          Mutate the argument instruction into an instruction of the MIR_Multiply instruction format having the specified operator and operands.
static void setResult1(Instruction i, Operand Result1)
          Set the operand called Result1 in the argument instruction to the argument operand.
static void setResult2(Instruction i, Operand Result2)
          Set the operand called Result2 in the argument instruction to the argument operand.
static void setValue(Instruction i, Operand Value)
          Set the operand called Value 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

MIR_Multiply

public MIR_Multiply()
Method Detail

conforms

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

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

conforms

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

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

getResult1

public static Operand getResult1(Instruction i)
Get the operand called Result1 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 Result1

getClearResult1

public static Operand getClearResult1(Instruction i)
Get the operand called Result1 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 Result1

setResult1

public static void setResult1(Instruction i,
                              Operand Result1)
Set the operand called Result1 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
Result1 - the operand to store

indexOfResult1

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

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

hasResult1

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

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

getResult2

public static Operand getResult2(Instruction i)
Get the operand called Result2 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 Result2

getClearResult2

public static Operand getClearResult2(Instruction i)
Get the operand called Result2 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 Result2

setResult2

public static void setResult2(Instruction i,
                              Operand Result2)
Set the operand called Result2 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
Result2 - the operand to store

indexOfResult2

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

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

hasResult2

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

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

getValue

public static Operand getValue(Instruction i)
Get the operand called Value 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 Value

getClearValue

public static Operand getClearValue(Instruction i)
Get the operand called Value 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 Value

setValue

public static void setValue(Instruction i,
                            Operand Value)
Set the operand called Value 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
Value - the operand to store

indexOfValue

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

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

hasValue

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

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

create

public static Instruction create(Operator o,
                                 Operand Result1,
                                 Operand Result2,
                                 Operand Value)
Create an instruction of the MIR_Multiply instruction format.

Parameters:
o - the instruction's operator
Result1 - the instruction's Result1 operand
Result2 - the instruction's Result2 operand
Value - the instruction's Value operand
Returns:
the newly created MIR_Multiply instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 Operand Result1,
                                 Operand Result2,
                                 Operand Value)
Mutate the argument instruction into an instruction of the MIR_Multiply instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Result1 - the instruction's Result1 operand
Result2 - the instruction's Result2 operand
Value - the instruction's Value operand
Returns:
the mutated instruction