org.jikesrvm.compilers.opt.ir
Class CacheOp

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

public final class CacheOp
extends InstructionFormat

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

CacheOp

public CacheOp()
Method Detail

conforms

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

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

conforms

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

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

getRef

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

getClearRef

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

setRef

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

indexOfRef

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

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

hasRef

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

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

create

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

Parameters:
o - the instruction's operator
Ref - the instruction's Ref operand
Returns:
the newly created CacheOp instruction

mutate

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

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