org.jikesrvm.compilers.opt.ir
Class MIR_CacheOp

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

public final class MIR_CacheOp
extends InstructionFormat

The MIR_CacheOp 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_CacheOp()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_CacheOp.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_CacheOp.
static Instruction create(Operator o, Operand Address)
          Create an instruction of the MIR_CacheOp instruction format.
static Operand getAddress(Instruction i)
          Get the operand called Address from the argument instruction.
static Operand getClearAddress(Instruction i)
          Get the operand called Address from the argument instruction clearing its instruction pointer.
static boolean hasAddress(Instruction i)
          Does the argument instruction have a non-null operand named Address?
static int indexOfAddress(Instruction i)
          Return the index of the operand called Address in the argument instruction.
static Instruction mutate(Instruction i, Operator o, Operand Address)
          Mutate the argument instruction into an instruction of the MIR_CacheOp instruction format having the specified operator and operands.
static void setAddress(Instruction i, Operand Address)
          Set the operand called Address 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_CacheOp

public MIR_CacheOp()
Method Detail

conforms

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

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

conforms

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

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

getAddress

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

getClearAddress

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

setAddress

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

indexOfAddress

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

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

hasAddress

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

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

create

public static Instruction create(Operator o,
                                 Operand Address)
Create an instruction of the MIR_CacheOp instruction format.

Parameters:
o - the instruction's operator
Address - the instruction's Address operand
Returns:
the newly created MIR_CacheOp instruction

mutate

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

Parameters:
i - the instruction to mutate
o - the instruction's operator
Address - the instruction's Address operand
Returns:
the mutated instruction