示例#1
0
 public TrashedRegisterSummarizer(IProcessorArchitecture arch, Procedure proc, ProcedureFlow pf, SymbolicEvaluationContext ctx)
 {
     this.arch = arch;
     this.proc = proc;
     this.pf   = pf;
     trashed   = arch.CreateRegisterBitset();
     preserved = arch.CreateRegisterBitset();
     this.ctx  = ctx;
     this.cmp  = new ExpressionValueComparer();
 }
 public TrashedRegisterSummarizer(IProcessorArchitecture arch, Procedure proc, ProcedureFlow pf, SymbolicEvaluationContext ctx)
 {
     this.arch = arch;
     this.proc = proc;
     this.pf = pf;
     trashed = arch.CreateRegisterBitset();
     preserved = arch.CreateRegisterBitset();
     this.ctx = ctx;
     this.cmp = new ExpressionValueComparer();
 }
示例#3
0
        public ProcedureFlow(Procedure proc, IProcessorArchitecture arch)
        {
            this.proc = proc;

            PreservedRegisters = arch.CreateRegisterBitset();
            TrashedRegisters   = arch.CreateRegisterBitset();
            ConstantRegisters  = new Dictionary <Storage, Constant>();

            ByPass  = arch.CreateRegisterBitset();
            MayUse  = arch.CreateRegisterBitset();
            LiveOut = arch.CreateRegisterBitset();

            StackArguments = new Hashtable();
        }
示例#4
0
        public ProcedureFlow(Procedure proc, IProcessorArchitecture arch)
        {
            this.proc = proc;

            PreservedRegisters = arch.CreateRegisterBitset();
            TrashedRegisters = arch.CreateRegisterBitset();
            ConstantRegisters = new Dictionary<Storage, Constant>();

            ByPass = arch.CreateRegisterBitset();
            MayUse = arch.CreateRegisterBitset();
            LiveOut = arch.CreateRegisterBitset();

            StackArguments = new Hashtable();
        }