示例#1
0
            public void Add(InstructionInBlock ins, int registerIndex)
            {
                var isDest   = ins.IsDestinationRegister(registerIndex);
                var isSource = ins.IsSourceRegister(registerIndex);

                if (isDest)
                {
                    AddWrite(ins);
                }
                if (isSource)
                {
                    Reads.Add(ins);
                }
                ;

                if (ins.Instruction.Code == RCode.Check_cast || ins.Instruction.Code == RCode.New_instance)
                {
                    CheckCastsAndNewInstance.Add(ins);
                }

                if (!isDest && !isSource)
                {
                    Debug.Assert(false);
                }
            }
示例#2
0
            public void Add(InstructionInBlock ins, int registerIndex)
            {
                var isDest = ins.IsDestinationRegister(registerIndex);
                var isSource = ins.IsSourceRegister(registerIndex);

                if (isDest)   AddWrite(ins);
                if (isSource) Reads.Add(ins); ;

                if(ins.Instruction.Code == RCode.Check_cast || ins.Instruction.Code == RCode.New_instance)
                    CheckCastsAndNewInstance.Add(ins);
                
                if(!isDest && !isSource)
                    Debug.Assert(false);
            }