org.jikesrvm.compilers.opt.ir
Class AStore

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

public final class AStore
extends InstructionFormat

The AStore 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
AStore()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for AStore.
static boolean conforms(Operator o)
          InstructionFormat identification method for AStore.
static Instruction create(Operator o, Operand Value, Operand Array, Operand Index, LocationOperand Location, Operand Guard)
          Create an instruction of the AStore instruction format.
static Operand getArray(Instruction i)
          Get the operand called Array from the argument instruction.
static Operand getClearArray(Instruction i)
          Get the operand called Array from the argument instruction clearing its instruction pointer.
static Operand getClearGuard(Instruction i)
          Get the operand called Guard from the argument instruction clearing its instruction pointer.
static Operand getClearIndex(Instruction i)
          Get the operand called Index from the argument instruction clearing its instruction pointer.
static LocationOperand getClearLocation(Instruction i)
          Get the operand called Location from the argument instruction clearing its instruction pointer.
static Operand getClearValue(Instruction i)
          Get the operand called Value from the argument instruction clearing its instruction pointer.
static Operand getGuard(Instruction i)
          Get the operand called Guard from the argument instruction.
static Operand getIndex(Instruction i)
          Get the operand called Index from the argument instruction.
static LocationOperand getLocation(Instruction i)
          Get the operand called Location from the argument instruction.
static Operand getValue(Instruction i)
          Get the operand called Value from the argument instruction.
static boolean hasArray(Instruction i)
          Does the argument instruction have a non-null operand named Array?
static boolean hasGuard(Instruction i)
          Does the argument instruction have a non-null operand named Guard?
static boolean hasIndex(Instruction i)
          Does the argument instruction have a non-null operand named Index?
static boolean hasLocation(Instruction i)
          Does the argument instruction have a non-null operand named Location?
static boolean hasValue(Instruction i)
          Does the argument instruction have a non-null operand named Value?
static int indexOfArray(Instruction i)
          Return the index of the operand called Array in the argument instruction.
static int indexOfGuard(Instruction i)
          Return the index of the operand called Guard in the argument instruction.
static int indexOfIndex(Instruction i)
          Return the index of the operand called Index in the argument instruction.
static int indexOfLocation(Instruction i)
          Return the index of the operand called Location in the argument instruction.
static int indexOfValue(Instruction i)
          Return the index of the operand called Value in the argument instruction.
static Instruction mutate(Instruction i, Operator o, Operand Value, Operand Array, Operand Index, LocationOperand Location, Operand Guard)
          Mutate the argument instruction into an instruction of the AStore instruction format having the specified operator and operands.
static void setArray(Instruction i, Operand Array)
          Set the operand called Array in the argument instruction to the argument operand.
static void setGuard(Instruction i, Operand Guard)
          Set the operand called Guard in the argument instruction to the argument operand.
static void setIndex(Instruction i, Operand Index)
          Set the operand called Index in the argument instruction to the argument operand.
static void setLocation(Instruction i, LocationOperand Location)
          Set the operand called Location in the argument instruction to the argument operand.
static void setValue(Instruction i, Operand Value)
          Set the operand called Value 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

AStore

public AStore()
Method Detail

conforms

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

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

conforms

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

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

getValue

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

getClearValue

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

setValue

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

indexOfValue

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

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

hasValue

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

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

getArray

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

getClearArray

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

setArray

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

indexOfArray

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

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

hasArray

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

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

getIndex

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

getClearIndex

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

setIndex

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

indexOfIndex

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

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

hasIndex

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

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

getLocation

public static LocationOperand getLocation(Instruction i)
Get the operand called Location 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 Location

getClearLocation

public static LocationOperand getClearLocation(Instruction i)
Get the operand called Location 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 Location

setLocation

public static void setLocation(Instruction i,
                               LocationOperand Location)
Set the operand called Location 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
Location - the operand to store

indexOfLocation

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

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

hasLocation

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

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

getGuard

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

getClearGuard

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

setGuard

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

indexOfGuard

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

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

hasGuard

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

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

create

public static Instruction create(Operator o,
                                 Operand Value,
                                 Operand Array,
                                 Operand Index,
                                 LocationOperand Location,
                                 Operand Guard)
Create an instruction of the AStore instruction format.

Parameters:
o - the instruction's operator
Value - the instruction's Value operand
Array - the instruction's Array operand
Index - the instruction's Index operand
Location - the instruction's Location operand
Guard - the instruction's Guard operand
Returns:
the newly created AStore instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 Operand Value,
                                 Operand Array,
                                 Operand Index,
                                 LocationOperand Location,
                                 Operand Guard)
Mutate the argument instruction into an instruction of the AStore instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Value - the instruction's Value operand
Array - the instruction's Array operand
Index - the instruction's Index operand
Location - the instruction's Location operand
Guard - the instruction's Guard operand
Returns:
the mutated instruction