示例#1
0
 public FunctionExit(Variable returnValue)
     : base(ArmConditionCode.ARM_CC_AL)
 {
     if (returnValue != null)
     {
         VariableUses.Add(returnValue);
     }
 }
示例#2
0
 public Branch(ArmConditionCode condition, BasicBlock destination, Variable cpsr = null)
     : base(condition)
 {
     if (destination == null)
     {
         throw new ArgumentNullException(nameof(destination));
     }
     Destination = destination;
     if (condition != ArmConditionCode.ARM_CC_AL && cpsr != null)
     {
         VariableUses.Add(cpsr);
         FlagsUseOperand = cpsr;
     }
 }
示例#3
0
 public LongAdd(Variable dstLo, Variable dstHi, Variable opALo, Variable opAHi, Operand opBLo, Operand opBHi)
     : base(ArmConditionCode.ARM_CC_AL)
 {
     Operands.Add((true, dstLo));
     Operands.Add((true, dstHi));
     Operands.Add((false, opALo));
     Operands.Add((false, opAHi));
     Operands.Add((false, opBLo));
     Operands.Add((false, opBHi));
     VariableUses.Add(opALo);
     VariableUses.Add(opAHi);
     if (opBLo is Variable)
     {
         VariableUses.Add((Variable)opBLo);
     }
     if (opBHi is Variable)
     {
         VariableUses.Add((Variable)opBHi);
     }
     VariableDefs.Add(dstLo);
     VariableDefs.Add(dstHi);
 }