org.jikesrvm.compilers.opt.ir
Class MIR_CompareExchange8B

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

public final class MIR_CompareExchange8B
extends InstructionFormat

The MIR_CompareExchange8B 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_CompareExchange8B()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_CompareExchange8B.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_CompareExchange8B.
static Instruction create(Operator o, RegisterOperand OldValueHigh, RegisterOperand OldValueLow, MemoryOperand MemAddr, RegisterOperand NewValueHigh, RegisterOperand NewValueLow)
          Create an instruction of the MIR_CompareExchange8B instruction format.
static MemoryOperand getClearMemAddr(Instruction i)
          Get the operand called MemAddr from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearNewValueHigh(Instruction i)
          Get the operand called NewValueHigh from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearNewValueLow(Instruction i)
          Get the operand called NewValueLow from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearOldValueHigh(Instruction i)
          Get the operand called OldValueHigh from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearOldValueLow(Instruction i)
          Get the operand called OldValueLow from the argument instruction clearing its instruction pointer.
static MemoryOperand getMemAddr(Instruction i)
          Get the operand called MemAddr from the argument instruction.
static RegisterOperand getNewValueHigh(Instruction i)
          Get the operand called NewValueHigh from the argument instruction.
static RegisterOperand getNewValueLow(Instruction i)
          Get the operand called NewValueLow from the argument instruction.
static RegisterOperand getOldValueHigh(Instruction i)
          Get the operand called OldValueHigh from the argument instruction.
static RegisterOperand getOldValueLow(Instruction i)
          Get the operand called OldValueLow from the argument instruction.
static boolean hasMemAddr(Instruction i)
          Does the argument instruction have a non-null operand named MemAddr?
static boolean hasNewValueHigh(Instruction i)
          Does the argument instruction have a non-null operand named NewValueHigh?
static boolean hasNewValueLow(Instruction i)
          Does the argument instruction have a non-null operand named NewValueLow?
static boolean hasOldValueHigh(Instruction i)
          Does the argument instruction have a non-null operand named OldValueHigh?
static boolean hasOldValueLow(Instruction i)
          Does the argument instruction have a non-null operand named OldValueLow?
static int indexOfMemAddr(Instruction i)
          Return the index of the operand called MemAddr in the argument instruction.
static int indexOfNewValueHigh(Instruction i)
          Return the index of the operand called NewValueHigh in the argument instruction.
static int indexOfNewValueLow(Instruction i)
          Return the index of the operand called NewValueLow in the argument instruction.
static int indexOfOldValueHigh(Instruction i)
          Return the index of the operand called OldValueHigh in the argument instruction.
static int indexOfOldValueLow(Instruction i)
          Return the index of the operand called OldValueLow in the argument instruction.
static Instruction mutate(Instruction i, Operator o, RegisterOperand OldValueHigh, RegisterOperand OldValueLow, MemoryOperand MemAddr, RegisterOperand NewValueHigh, RegisterOperand NewValueLow)
          Mutate the argument instruction into an instruction of the MIR_CompareExchange8B instruction format having the specified operator and operands.
static void setMemAddr(Instruction i, MemoryOperand MemAddr)
          Set the operand called MemAddr in the argument instruction to the argument operand.
static void setNewValueHigh(Instruction i, RegisterOperand NewValueHigh)
          Set the operand called NewValueHigh in the argument instruction to the argument operand.
static void setNewValueLow(Instruction i, RegisterOperand NewValueLow)
          Set the operand called NewValueLow in the argument instruction to the argument operand.
static void setOldValueHigh(Instruction i, RegisterOperand OldValueHigh)
          Set the operand called OldValueHigh in the argument instruction to the argument operand.
static void setOldValueLow(Instruction i, RegisterOperand OldValueLow)
          Set the operand called OldValueLow 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_CompareExchange8B

public MIR_CompareExchange8B()
Method Detail

conforms

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

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

conforms

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

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

getOldValueHigh

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

getClearOldValueHigh

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

setOldValueHigh

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

indexOfOldValueHigh

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

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

hasOldValueHigh

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

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

getOldValueLow

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

getClearOldValueLow

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

setOldValueLow

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

indexOfOldValueLow

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

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

hasOldValueLow

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

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

getMemAddr

public static MemoryOperand getMemAddr(Instruction i)
Get the operand called MemAddr 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 MemAddr

getClearMemAddr

public static MemoryOperand getClearMemAddr(Instruction i)
Get the operand called MemAddr 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 MemAddr

setMemAddr

public static void setMemAddr(Instruction i,
                              MemoryOperand MemAddr)
Set the operand called MemAddr 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
MemAddr - the operand to store

indexOfMemAddr

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

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

hasMemAddr

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

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

getNewValueHigh

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

getClearNewValueHigh

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

setNewValueHigh

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

indexOfNewValueHigh

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

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

hasNewValueHigh

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

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

getNewValueLow

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

getClearNewValueLow

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

setNewValueLow

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

indexOfNewValueLow

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

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

hasNewValueLow

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

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

create

public static Instruction create(Operator o,
                                 RegisterOperand OldValueHigh,
                                 RegisterOperand OldValueLow,
                                 MemoryOperand MemAddr,
                                 RegisterOperand NewValueHigh,
                                 RegisterOperand NewValueLow)
Create an instruction of the MIR_CompareExchange8B instruction format.

Parameters:
o - the instruction's operator
OldValueHigh - the instruction's OldValueHigh operand
OldValueLow - the instruction's OldValueLow operand
MemAddr - the instruction's MemAddr operand
NewValueHigh - the instruction's NewValueHigh operand
NewValueLow - the instruction's NewValueLow operand
Returns:
the newly created MIR_CompareExchange8B instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand OldValueHigh,
                                 RegisterOperand OldValueLow,
                                 MemoryOperand MemAddr,
                                 RegisterOperand NewValueHigh,
                                 RegisterOperand NewValueLow)
Mutate the argument instruction into an instruction of the MIR_CompareExchange8B instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
OldValueHigh - the instruction's OldValueHigh operand
OldValueLow - the instruction's OldValueLow operand
MemAddr - the instruction's MemAddr operand
NewValueHigh - the instruction's NewValueHigh operand
NewValueLow - the instruction's NewValueLow operand
Returns:
the mutated instruction