2
0
Эх сурвалжийг харах

* replace 'inc/dec orgreg' with 'inc/dec spilltemp' in trgcpu.do_spill_replace

git-svn-id: branches/z80@44552 -
nickysn 5 жил өмнө
parent
commit
e43834c5d0

+ 11 - 0
compiler/z80/rgcpu.pas

@@ -216,6 +216,17 @@ unit rgcpu;
                     instr.loadref(1,spilltemp);
                     instr.loadref(1,spilltemp);
                     result:=true;
                     result:=true;
                   end;
                   end;
+              end
+            { Replace 'inc orgreg' with 'inc spilltemp'
+              and     'dec orgreg' with 'dec spilltemp' }
+            else if (opcode in [A_INC,A_DEC]) and (ops=1) and (oper[0]^.typ=top_reg) then
+              begin
+                if (getregtype(oper[0]^.reg)=regtype) and
+                   (get_alias(getsupreg(oper[0]^.reg))=orgreg) then
+                  begin
+                    instr.loadref(0,spilltemp);
+                    result:=true;
+                  end;
               end;
               end;
           end;
           end;
       end;
       end;