Esempio n. 1
0
 public LoadConstant(ArmConditionCode condition, Variable dst, uint constant)
     : base(condition)
 {
     Constant = constant;
     VariableDefs.Add(dst);
     Operands.Add((true, dst));
 }
 public FunctionEntrance(Function func, Variable[] regVars)
     : base(ArmConditionCode.ARM_CC_AL)
 {
     VariableDefs.Add(regVars[0]);
     VariableDefs.Add(regVars[1]);
     VariableDefs.Add(regVars[2]);
     VariableDefs.Add(regVars[3]);
     VariableDefs.Add(regVars[13]);
     VariableDefs.Add(regVars[14]);
     foreach (var stackVar in func.StackVariables)
     {
         if (stackVar.Address >= 0)
         {
             VariableDefs.Add(stackVar);
         }
     }
 }
Esempio n. 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);
 }