org.jikesrvm.compilers.opt.ir
Class MIR_CondBranch2

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

public final class MIR_CondBranch2
extends InstructionFormat

The MIR_CondBranch2 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_CondBranch2()
           
 
Method Summary
static boolean conforms(Instruction i)
          InstructionFormat identification method for MIR_CondBranch2.
static boolean conforms(Operator o)
          InstructionFormat identification method for MIR_CondBranch2.
static Instruction create(Operator o, IA32ConditionOperand Cond1, BranchOperand Target1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchOperand Target2, BranchProfileOperand BranchProfile2)
          Create an instruction of the MIR_CondBranch2 instruction format.
static Instruction create(Operator o, IA32ConditionOperand Cond1, BranchOperand Target1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchProfileOperand BranchProfile2)
          Create an instruction of the MIR_CondBranch2 instruction format.
static Instruction create(Operator o, IA32ConditionOperand Cond1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchOperand Target2, BranchProfileOperand BranchProfile2)
          Create an instruction of the MIR_CondBranch2 instruction format.
static Instruction create(Operator o, IA32ConditionOperand Cond1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchProfileOperand BranchProfile2)
          Create an instruction of the MIR_CondBranch2 instruction format.
static BranchProfileOperand getBranchProfile1(Instruction i)
          Get the operand called BranchProfile1 from the argument instruction.
static BranchProfileOperand getBranchProfile2(Instruction i)
          Get the operand called BranchProfile2 from the argument instruction.
static BranchProfileOperand getClearBranchProfile1(Instruction i)
          Get the operand called BranchProfile1 from the argument instruction clearing its instruction pointer.
static BranchProfileOperand getClearBranchProfile2(Instruction i)
          Get the operand called BranchProfile2 from the argument instruction clearing its instruction pointer.
static IA32ConditionOperand getClearCond1(Instruction i)
          Get the operand called Cond1 from the argument instruction clearing its instruction pointer.
static IA32ConditionOperand getClearCond2(Instruction i)
          Get the operand called Cond2 from the argument instruction clearing its instruction pointer.
static BranchOperand getClearTarget1(Instruction i)
          Get the operand called Target1 from the argument instruction clearing its instruction pointer.
static BranchOperand getClearTarget2(Instruction i)
          Get the operand called Target2 from the argument instruction clearing its instruction pointer.
static IA32ConditionOperand getCond1(Instruction i)
          Get the operand called Cond1 from the argument instruction.
static IA32ConditionOperand getCond2(Instruction i)
          Get the operand called Cond2 from the argument instruction.
static BranchOperand getTarget1(Instruction i)
          Get the operand called Target1 from the argument instruction.
static BranchOperand getTarget2(Instruction i)
          Get the operand called Target2 from the argument instruction.
static boolean hasBranchProfile1(Instruction i)
          Does the argument instruction have a non-null operand named BranchProfile1?
static boolean hasBranchProfile2(Instruction i)
          Does the argument instruction have a non-null operand named BranchProfile2?
static boolean hasCond1(Instruction i)
          Does the argument instruction have a non-null operand named Cond1?
static boolean hasCond2(Instruction i)
          Does the argument instruction have a non-null operand named Cond2?
static boolean hasTarget1(Instruction i)
          Does the argument instruction have a non-null operand named Target1?
static boolean hasTarget2(Instruction i)
          Does the argument instruction have a non-null operand named Target2?
static int indexOfBranchProfile1(Instruction i)
          Return the index of the operand called BranchProfile1 in the argument instruction.
static int indexOfBranchProfile2(Instruction i)
          Return the index of the operand called BranchProfile2 in the argument instruction.
static int indexOfCond1(Instruction i)
          Return the index of the operand called Cond1 in the argument instruction.
static int indexOfCond2(Instruction i)
          Return the index of the operand called Cond2 in the argument instruction.
static int indexOfTarget1(Instruction i)
          Return the index of the operand called Target1 in the argument instruction.
static int indexOfTarget2(Instruction i)
          Return the index of the operand called Target2 in the argument instruction.
static Instruction mutate(Instruction i, Operator o, IA32ConditionOperand Cond1, BranchOperand Target1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchOperand Target2, BranchProfileOperand BranchProfile2)
          Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.
static Instruction mutate(Instruction i, Operator o, IA32ConditionOperand Cond1, BranchOperand Target1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchProfileOperand BranchProfile2)
          Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.
static Instruction mutate(Instruction i, Operator o, IA32ConditionOperand Cond1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchOperand Target2, BranchProfileOperand BranchProfile2)
          Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.
static Instruction mutate(Instruction i, Operator o, IA32ConditionOperand Cond1, BranchProfileOperand BranchProfile1, IA32ConditionOperand Cond2, BranchProfileOperand BranchProfile2)
          Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.
static void setBranchProfile1(Instruction i, BranchProfileOperand BranchProfile1)
          Set the operand called BranchProfile1 in the argument instruction to the argument operand.
static void setBranchProfile2(Instruction i, BranchProfileOperand BranchProfile2)
          Set the operand called BranchProfile2 in the argument instruction to the argument operand.
static void setCond1(Instruction i, IA32ConditionOperand Cond1)
          Set the operand called Cond1 in the argument instruction to the argument operand.
static void setCond2(Instruction i, IA32ConditionOperand Cond2)
          Set the operand called Cond2 in the argument instruction to the argument operand.
static void setTarget1(Instruction i, BranchOperand Target1)
          Set the operand called Target1 in the argument instruction to the argument operand.
static void setTarget2(Instruction i, BranchOperand Target2)
          Set the operand called Target2 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_CondBranch2

public MIR_CondBranch2()
Method Detail

conforms

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

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

conforms

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

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

getCond1

public static IA32ConditionOperand getCond1(Instruction i)
Get the operand called Cond1 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 Cond1

getClearCond1

public static IA32ConditionOperand getClearCond1(Instruction i)
Get the operand called Cond1 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 Cond1

setCond1

public static void setCond1(Instruction i,
                            IA32ConditionOperand Cond1)
Set the operand called Cond1 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
Cond1 - the operand to store

indexOfCond1

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

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

hasCond1

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

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

getTarget1

public static BranchOperand getTarget1(Instruction i)
Get the operand called Target1 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 Target1

getClearTarget1

public static BranchOperand getClearTarget1(Instruction i)
Get the operand called Target1 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 Target1

setTarget1

public static void setTarget1(Instruction i,
                              BranchOperand Target1)
Set the operand called Target1 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
Target1 - the operand to store

indexOfTarget1

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

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

hasTarget1

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

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

getBranchProfile1

public static BranchProfileOperand getBranchProfile1(Instruction i)
Get the operand called BranchProfile1 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 BranchProfile1

getClearBranchProfile1

public static BranchProfileOperand getClearBranchProfile1(Instruction i)
Get the operand called BranchProfile1 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 BranchProfile1

setBranchProfile1

public static void setBranchProfile1(Instruction i,
                                     BranchProfileOperand BranchProfile1)
Set the operand called BranchProfile1 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
BranchProfile1 - the operand to store

indexOfBranchProfile1

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

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

hasBranchProfile1

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

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

getCond2

public static IA32ConditionOperand getCond2(Instruction i)
Get the operand called Cond2 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 Cond2

getClearCond2

public static IA32ConditionOperand getClearCond2(Instruction i)
Get the operand called Cond2 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 Cond2

setCond2

public static void setCond2(Instruction i,
                            IA32ConditionOperand Cond2)
Set the operand called Cond2 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
Cond2 - the operand to store

indexOfCond2

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

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

hasCond2

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

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

getTarget2

public static BranchOperand getTarget2(Instruction i)
Get the operand called Target2 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 Target2

getClearTarget2

public static BranchOperand getClearTarget2(Instruction i)
Get the operand called Target2 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 Target2

setTarget2

public static void setTarget2(Instruction i,
                              BranchOperand Target2)
Set the operand called Target2 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
Target2 - the operand to store

indexOfTarget2

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

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

hasTarget2

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

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

getBranchProfile2

public static BranchProfileOperand getBranchProfile2(Instruction i)
Get the operand called BranchProfile2 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 BranchProfile2

getClearBranchProfile2

public static BranchProfileOperand getClearBranchProfile2(Instruction i)
Get the operand called BranchProfile2 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 BranchProfile2

setBranchProfile2

public static void setBranchProfile2(Instruction i,
                                     BranchProfileOperand BranchProfile2)
Set the operand called BranchProfile2 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
BranchProfile2 - the operand to store

indexOfBranchProfile2

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

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

hasBranchProfile2

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

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

create

public static Instruction create(Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchOperand Target1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchOperand Target2,
                                 BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.

Parameters:
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
Target1 - the instruction's Target1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
Target2 - the instruction's Target2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the newly created MIR_CondBranch2 instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchOperand Target1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchOperand Target2,
                                 BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
Target1 - the instruction's Target1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
Target2 - the instruction's Target2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the mutated instruction

create

public static Instruction create(Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchOperand Target1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.

Parameters:
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
Target1 - the instruction's Target1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the newly created MIR_CondBranch2 instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchOperand Target1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
Target1 - the instruction's Target1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the mutated instruction

create

public static Instruction create(Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchOperand Target2,
                                 BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.

Parameters:
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
Target2 - the instruction's Target2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the newly created MIR_CondBranch2 instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchOperand Target2,
                                 BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
Target2 - the instruction's Target2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the mutated instruction

create

public static Instruction create(Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchProfileOperand BranchProfile2)
Create an instruction of the MIR_CondBranch2 instruction format.

Parameters:
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the newly created MIR_CondBranch2 instruction

mutate

public static Instruction mutate(Instruction i,
                                 Operator o,
                                 IA32ConditionOperand Cond1,
                                 BranchProfileOperand BranchProfile1,
                                 IA32ConditionOperand Cond2,
                                 BranchProfileOperand BranchProfile2)
Mutate the argument instruction into an instruction of the MIR_CondBranch2 instruction format having the specified operator and operands.

Parameters:
i - the instruction to mutate
o - the instruction's operator
Cond1 - the instruction's Cond1 operand
BranchProfile1 - the instruction's BranchProfile1 operand
Cond2 - the instruction's Cond2 operand
BranchProfile2 - the instruction's BranchProfile2 operand
Returns:
the mutated instruction