org.jikesrvm.compilers.opt.ir
Class MIR_Call

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

public final class MIR_Call
extends InstructionFormat

The MIR_Call 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_Call()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_Call.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_Call.
static Instruction create(Operator o, RegisterOperand Result, RegisterOperand Result2, int numVarOps)
          Create an instruction of the MIR_Call instruction format.
static Instruction create(Operator o, RegisterOperand Result, RegisterOperand Result2, MethodOperand Method, int numVarOps)
          Create an instruction of the MIR_Call instruction format.
static Instruction create(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, int numVarOps)
          Create an instruction of the MIR_Call instruction format.
static Instruction create(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, MethodOperand Method, int numVarOps)
          Create an instruction of the MIR_Call instruction format.
static Instruction create0(Operator o, RegisterOperand Result, RegisterOperand Result2)
          Create an instruction of the MIR_Call instruction format with 0 variable arguments.
static Instruction create0(Operator o, RegisterOperand Result, RegisterOperand Result2, MethodOperand Method)
          Create an instruction of the MIR_Call instruction format with 0 variable arguments.
static Instruction create0(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target)
          Create an instruction of the MIR_Call instruction format with 0 variable arguments.
static Instruction create0(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, MethodOperand Method)
          Create an instruction of the MIR_Call instruction format with 0 variable arguments.
static Instruction create1(Operator o, RegisterOperand Result, RegisterOperand Result2, MethodOperand Method, Operand Param_1)
          Create an instruction of the MIR_Call instruction format with 1 variable arguments.
static Instruction create1(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Param_1)
          Create an instruction of the MIR_Call instruction format with 1 variable arguments.
static Instruction create1(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, MethodOperand Method, Operand Param_1)
          Create an instruction of the MIR_Call instruction format with 1 variable arguments.
static Instruction create1(Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, Operand Param_1)
          Create an instruction of the MIR_Call instruction format with 1 variable arguments.
static MethodOperand getClearMethod(Instruction i)
          Get the operand called Method from the argument instruction clearing its instruction pointer.
static Operand getClearParam(Instruction i, int k)
          Get the k'th operand called Param from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearResult(Instruction i)
          Get the operand called Result from the argument instruction clearing its instruction pointer.
static RegisterOperand getClearResult2(Instruction i)
          Get the operand called Result2 from the argument instruction clearing its instruction pointer.
static Operand getClearTarget(Instruction i)
          Get the operand called Target from the argument instruction clearing its instruction pointer.
static MethodOperand getMethod(Instruction i)
          Get the operand called Method from the argument instruction.
static int getNumberOfParams(Instruction i)
          How many variable-length operands called Params does the argument instruction have?
static Operand getParam(Instruction i, int k)
          Get the k'th operand called Param from the argument instruction.
static RegisterOperand getResult(Instruction i)
          Get the operand called Result from the argument instruction.
static RegisterOperand getResult2(Instruction i)
          Get the operand called Result2 from the argument instruction.
static Operand getTarget(Instruction i)
          Get the operand called Target from the argument instruction.
static boolean hasMethod(Instruction i)
          Does the argument instruction have a non-null operand named Method?
static boolean hasParam(Instruction i, int k)
          Does the argument instruction have a non-null k'th operand named Param?
static boolean hasParams(Instruction i)
          Does the argument instruction have any operands named Param?
static boolean hasResult(Instruction i)
          Does the argument instruction have a non-null operand named Result?
static boolean hasResult2(Instruction i)
          Does the argument instruction have a non-null operand named Result2?
static boolean hasTarget(Instruction i)
          Does the argument instruction have a non-null operand named Target?
static int indexOfMethod(Instruction i)
          Return the index of the operand called Method in the argument instruction.
static int indexOfParam(Instruction i, int k)
          Return the index of the k'th operand called Param in the argument instruction.
static int indexOfParams(Instruction i)
          Return the index of the first operand called Param in the argument instruction.
static int indexOfResult(Instruction i)
          Return the index of the operand called Result in the argument instruction.
static int indexOfResult2(Instruction i)
          Return the index of the operand called Result2 in the argument instruction.
static int indexOfTarget(Instruction i)
          Return the index of the operand called Target in the argument instruction.
static Instruction mutate(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, int numVarOps)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.
static Instruction mutate(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, MethodOperand Method, int numVarOps)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.
static Instruction mutate(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, int numVarOps)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.
static Instruction mutate(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, MethodOperand Method, int numVarOps)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.
static Instruction mutate0(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate0(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, MethodOperand Method)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate0(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate0(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, MethodOperand Method)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate1(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, MethodOperand Method, Operand Param_1)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate1(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Param_1)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate1(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, MethodOperand Method, Operand Param_1)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static Instruction mutate1(Instruction i, Operator o, RegisterOperand Result, RegisterOperand Result2, Operand Target, Operand Param_1)
          Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.
static void resizeNumberOfParams(Instruction i, int numVarOps)
          Change the number of Params that may be stored in the argument instruction to numVarOps.
static void setMethod(Instruction i, MethodOperand Method)
          Set the operand called Method in the argument instruction to the argument operand.
static void setParam(Instruction i, int k, Operand o)
          Set the k'th operand called Param in the argument instruction to the argument operand.
static void setResult(Instruction i, RegisterOperand Result)
          Set the operand called Result in the argument instruction to the argument operand.
static void setResult2(Instruction i, RegisterOperand Result2)
          Set the operand called Result2 in the argument instruction to the argument operand.
static void setTarget(Instruction i, Operand Target)
          Set the operand called Target 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_Call

public MIR_Call()
Method Detail

conforms

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

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

conforms

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

Parameters:
o - an instruction
Returns:
true if the InstructionFormat of the argument operator is MIR_Call or false if it is 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 Result)
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
Result - 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.

getResult2

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

getClearResult2

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

setResult2

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

indexOfResult2

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

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

hasResult2

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

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

getTarget

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

getClearTarget

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

setTarget

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

indexOfTarget

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

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

hasTarget

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

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

getMethod

public static MethodOperand getMethod(Instruction i)
Get the operand called Method 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 Method

getClearMethod

public static MethodOperand getClearMethod(Instruction i)
Get the operand called Method 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 Method

setMethod

public static void setMethod(Instruction i,
                             MethodOperand Method)
Set the operand called Method 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
Method - the operand to store

indexOfMethod

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

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

hasMethod

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

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

getParam

public static Operand getParam(Instruction i,
                               int k)
Get the k'th operand called Param 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
k - the index of the operand
Returns:
the k'th operand called Param

getClearParam

public static Operand getClearParam(Instruction i,
                                    int k)
Get the k'th operand called Param 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
k - the index of the operand
Returns:
the k'th operand called Param

setParam

public static void setParam(Instruction i,
                            int k,
                            Operand o)
Set the k'th operand called Param 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
k - the index of the operand
o - the operand to store

indexOfParam

public static int indexOfParam(Instruction i,
                               int k)
Return the index of the k'th operand called Param in the argument instruction.

Parameters:
i - the instruction to access.
k - the index of the operand.
Returns:
the index of the k'th operand called Param in the argument instruction

hasParam

public static boolean hasParam(Instruction i,
                               int k)
Does the argument instruction have a non-null k'th operand named Param?

Parameters:
i - the instruction to access.
k - the index of the operand.
Returns:
true if the instruction has an non-null k'th operand named Param or false if it does not.

indexOfParams

public static int indexOfParams(Instruction i)
Return the index of the first operand called Param in the argument instruction.

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

hasParams

public static boolean hasParams(Instruction i)
Does the argument instruction have any operands named Param?

Parameters:
i - the instruction to access.
Returns:
true if the instruction has operands named Param or false if it does not.

getNumberOfParams

public static int getNumberOfParams(Instruction i)
How many variable-length operands called Params does the argument instruction have?

Parameters:
i - the instruction to access
Returns:
the number of operands called Params the instruction has

resizeNumberOfParams

public static void resizeNumberOfParams(Instruction i,
                                        int numVarOps)
Change the number of Params that may be stored in the argument instruction to numVarOps.

Parameters:
i - the instruction to access
numVarOps - the new number of variable operands called Params that may be stored in the instruction

create

public static Instruction create(Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 Operand Target,
                                 MethodOperand Method,
                                 int numVarOps)
Create an instruction of the MIR_Call instruction format.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Method - the instruction's Method operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the newly created MIR_Call instruction

create0

public static Instruction create0(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target,
                                  MethodOperand Method)
Create an instruction of the MIR_Call instruction format with 0 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Method - the instruction's Method operand
Returns:
the newly created MIR_Call instruction

create1

public static Instruction create1(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target,
                                  MethodOperand Method,
                                  Operand Param_1)
Create an instruction of the MIR_Call instruction format with 1 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Method - the instruction's Method operand
Param_1 - the k'th variable argument called Param
Returns:
the newly created MIR_Call instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 Operand Target,
                                 MethodOperand Method,
                                 int numVarOps)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Method - the instruction's Method operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the mutated instruction

mutate0

public static Instruction mutate0(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target,
                                  MethodOperand Method)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Method - the instruction's Method operand
Returns:
the mutated instruction

mutate1

public static Instruction mutate1(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target,
                                  MethodOperand Method,
                                  Operand Param_1)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Method - the instruction's Method operand
Param_1 - the k'th variable argument called Param
Returns:
the mutated instruction

create

public static Instruction create(Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 Operand Target,
                                 int numVarOps)
Create an instruction of the MIR_Call instruction format.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the newly created MIR_Call instruction

create0

public static Instruction create0(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target)
Create an instruction of the MIR_Call instruction format with 0 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Returns:
the newly created MIR_Call instruction

create1

public static Instruction create1(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target,
                                  Operand Param_1)
Create an instruction of the MIR_Call instruction format with 1 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Param_1 - the k'th variable argument called Param
Returns:
the newly created MIR_Call instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 Operand Target,
                                 int numVarOps)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the mutated instruction

mutate0

public static Instruction mutate0(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Returns:
the mutated instruction

mutate1

public static Instruction mutate1(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Target,
                                  Operand Param_1)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Target - the instruction's Target operand
Param_1 - the k'th variable argument called Param
Returns:
the mutated instruction

create

public static Instruction create(Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 MethodOperand Method,
                                 int numVarOps)
Create an instruction of the MIR_Call instruction format.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Method - the instruction's Method operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the newly created MIR_Call instruction

create0

public static Instruction create0(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  MethodOperand Method)
Create an instruction of the MIR_Call instruction format with 0 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Method - the instruction's Method operand
Returns:
the newly created MIR_Call instruction

create1

public static Instruction create1(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  MethodOperand Method,
                                  Operand Param_1)
Create an instruction of the MIR_Call instruction format with 1 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Method - the instruction's Method operand
Param_1 - the k'th variable argument called Param
Returns:
the newly created MIR_Call instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 MethodOperand Method,
                                 int numVarOps)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Method - the instruction's Method operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the mutated instruction

mutate0

public static Instruction mutate0(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  MethodOperand Method)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Method - the instruction's Method operand
Returns:
the mutated instruction

mutate1

public static Instruction mutate1(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  MethodOperand Method,
                                  Operand Param_1)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Method - the instruction's Method operand
Param_1 - the k'th variable argument called Param
Returns:
the mutated instruction

create

public static Instruction create(Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 int numVarOps)
Create an instruction of the MIR_Call instruction format.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the newly created MIR_Call instruction

create0

public static Instruction create0(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2)
Create an instruction of the MIR_Call instruction format with 0 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Returns:
the newly created MIR_Call instruction

create1

public static Instruction create1(Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Param_1)
Create an instruction of the MIR_Call instruction format with 1 variable arguments.

Parameters:
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Param_1 - the k'th variable argument called Param
Returns:
the newly created MIR_Call instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 RegisterOperand Result,
                                 RegisterOperand Result2,
                                 int numVarOps)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
numVarOps - the number of variable length operands that will be stored in the insruction.
Returns:
the mutated instruction

mutate0

public static Instruction mutate0(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Returns:
the mutated instruction

mutate1

public static Instruction mutate1(Instruction i,
                                  Operator o,
                                  RegisterOperand Result,
                                  RegisterOperand Result2,
                                  Operand Param_1)
Mutate the argument instruction into an instruction of the MIR_Call instruction format having the specified operator, operands, and number of variable-length operands.

Parameters:
Result - the instruction's Result operand
Result2 - the instruction's Result2 operand
Param_1 - the k'th variable argument called Param
Returns:
the mutated instruction