org.jikesrvm.compilers.opt.ir
Class ResultCarrier

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

public final class ResultCarrier
extends InstructionFormat

InstructionFormats that have a Result (which is RegisterOperand)


Field Summary
private static int[] _index
           
 
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
ResultCarrier()
           
 
Method Summary
static boolean conforms(Instruction i)
          Does the instruction belong to an instruction format that has an operand called Result?
static boolean conforms(Operator o)
          Does the operator belong to an instruction format that has an operand called Result?
static RegisterOperand getClearResult(Instruction i)
          Get the operand called Result from the argument instruction clearing its instruction pointer.
static RegisterOperand getResult(Instruction i)
          Get the operand called Result from the argument instruction.
static boolean hasResult(Instruction i)
          Does the argument instruction have a non-null operand named Result?
static int indexOfResult(Instruction i)
          Return the index of the operand called Result in the argument instruction.
static void setResult(Instruction i, RegisterOperand op)
          Set the operand called Result 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
 

Field Detail

_index

private static final int[] _index
Constructor Detail

ResultCarrier

public ResultCarrier()
Method Detail

conforms

public static boolean conforms(Instruction i)
Does the instruction belong to an instruction format that has an operand called Result?

Parameters:
i - the instruction to test
Returns:
true if the instruction's instruction format has an operand called Result and false if it does not.

conforms

public static boolean conforms(Operator o)
Does the operator belong to an instruction format that has an operand called Result?

Parameters:
o - the operator to test
Returns:
true if the instruction's instruction format has an operand called Result and false if it does not.

getResult

public static RegisterOperand 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 RegisterOperand 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,
                             RegisterOperand op)
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
op - 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.