org.jikesrvm.compilers.opt.ir
Class MIR_DoubleShift

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

public final class MIR_DoubleShift
extends InstructionFormat

The MIR_DoubleShift 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_DoubleShift()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_DoubleShift.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_DoubleShift.
static Instruction create(Operator o, Operand Result, RegisterOperand Source, Operand BitsToShift)
          Create an instruction of the MIR_DoubleShift instruction format.
static Operand getBitsToShift(Instruction i)
          Get the operand called BitsToShift from the argument instruction.
static Operand getClearBitsToShift(Instruction i)
          Get the operand called BitsToShift from the argument instruction clearing its instruction pointer.
static Operand getClearResult(Instruction i)
          Get the operand called Result from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearSource(Instruction i)
          Get the operand called Source from the argument instruction clearing its instruction pointer.
static Operand getResult(Instruction i)
          Get the operand called Result from the argument instruction.
static RegisterOperand getSource(Instruction i)
          Get the operand called Source from the argument instruction.
static boolean hasBitsToShift(Instruction i)
          Does the argument instruction have a non-null operand named BitsToShift?
static boolean hasResult(Instruction i)
          Does the argument instruction have a non-null operand named Result?
static boolean hasSource(Instruction i)
          Does the argument instruction have a non-null operand named Source?
static int indexOfBitsToShift(Instruction i)
          Return the index of the operand called BitsToShift in the argument instruction.
static int indexOfResult(Instruction i)
          Return the index of the operand called Result in the argument instruction.
static int indexOfSource(Instruction i)
          Return the index of the operand called Source in the argument instruction.
static Instruction mutate(Instruction i, Operator o, Operand Result, RegisterOperand Source, Operand BitsToShift)
          Mutate the argument instruction into an instruction of the MIR_DoubleShift instruction format having the specified operator and operands.
static void setBitsToShift(Instruction i, Operand BitsToShift)
          Set the operand called BitsToShift in the argument instruction to the argument operand.
static void setResult(Instruction i, Operand Result)
          Set the operand called Result in the argument instruction to the argument operand.
static void setSource(Instruction i, RegisterOperand Source)
          Set the operand called Source 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_DoubleShift

public MIR_DoubleShift()
Method Detail

conforms

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

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

conforms

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

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

getResult

public static Operand 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 Operand 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,
                             Operand 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.

getSource

public static RegisterOperand getSource(Instruction i)
Get the operand called Source 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 Source

getClearSource

public static RegisterOperand getClearSource(Instruction i)
Get the operand called Source 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 Source

setSource

public static void setSource(Instruction i,
                             RegisterOperand Source)
Set the operand called Source 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
Source - the operand to store

indexOfSource

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

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

hasSource

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

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

getBitsToShift

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

getClearBitsToShift

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

setBitsToShift

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

indexOfBitsToShift

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

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

hasBitsToShift

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

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

create

public static Instruction create(Operator o,
                                 Operand Result,
                                 RegisterOperand Source,
                                 Operand BitsToShift)
Create an instruction of the MIR_DoubleShift instruction format.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Source - the instruction's Source operand
BitsToShift - the instruction's BitsToShift operand
Returns:
the newly created MIR_DoubleShift instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 Operand Result,
                                 RegisterOperand Source,
                                 Operand BitsToShift)
Mutate the argument instruction into an instruction of the MIR_DoubleShift 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
Source - the instruction's Source operand
BitsToShift - the instruction's BitsToShift operand
Returns:
the mutated instruction