org.jikesrvm.compilers.opt.ir
Class MIR_Trap

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

public final class MIR_Trap
extends InstructionFormat

The MIR_Trap 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_Trap()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_Trap.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_Trap.
static Instruction create(Operator o, RegisterOperand GuardResult, TrapCodeOperand TrapCode)
          Create an instruction of the MIR_Trap instruction format.
static RegisterOperand getClearGuardResult(Instruction i)
          Get the operand called GuardResult from the argument instruction clearing its instruction pointer.
static TrapCodeOperand getClearTrapCode(Instruction i)
          Get the operand called TrapCode from the argument instruction clearing its instruction pointer.
static RegisterOperand getGuardResult(Instruction i)
          Get the operand called GuardResult from the argument instruction.
static TrapCodeOperand getTrapCode(Instruction i)
          Get the operand called TrapCode from the argument instruction.
static boolean hasGuardResult(Instruction i)
          Does the argument instruction have a non-null operand named GuardResult?
static boolean hasTrapCode(Instruction i)
          Does the argument instruction have a non-null operand named TrapCode?
static int indexOfGuardResult(Instruction i)
          Return the index of the operand called GuardResult in the argument instruction.
static int indexOfTrapCode(Instruction i)
          Return the index of the operand called TrapCode in the argument instruction.
static Instruction mutate(Instruction i, Operator o, RegisterOperand GuardResult, TrapCodeOperand TrapCode)
          Mutate the argument instruction into an instruction of the MIR_Trap instruction format having the specified operator and operands.
static void setGuardResult(Instruction i, RegisterOperand GuardResult)
          Set the operand called GuardResult in the argument instruction to the argument operand.
static void setTrapCode(Instruction i, TrapCodeOperand TrapCode)
          Set the operand called TrapCode 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_Trap

public MIR_Trap()
Method Detail

conforms

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

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

conforms

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

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

getGuardResult

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

getClearGuardResult

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

setGuardResult

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

indexOfGuardResult

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

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

hasGuardResult

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

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

getTrapCode

public static TrapCodeOperand getTrapCode(Instruction i)
Get the operand called TrapCode 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 TrapCode

getClearTrapCode

public static TrapCodeOperand getClearTrapCode(Instruction i)
Get the operand called TrapCode 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 TrapCode

setTrapCode

public static void setTrapCode(Instruction i,
                               TrapCodeOperand TrapCode)
Set the operand called TrapCode 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
TrapCode - the operand to store

indexOfTrapCode

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

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

hasTrapCode

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

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

create

public static Instruction create(Operator o,
                                 RegisterOperand GuardResult,
                                 TrapCodeOperand TrapCode)
Create an instruction of the MIR_Trap instruction format.

Parameters:
o - the instruction's operator
GuardResult - the instruction's GuardResult operand
TrapCode - the instruction's TrapCode operand
Returns:
the newly created MIR_Trap instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand GuardResult,
                                 TrapCodeOperand TrapCode)
Mutate the argument instruction into an instruction of the MIR_Trap instruction format having the specified operator and operands.

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