Browse Source

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

git-svn-id: branches/z80@44552 -
nickysn 5 years ago
parent
commit
e43834c5d0
1 changed files with 11 additions and 0 deletions
  1. 11 0
      compiler/z80/rgcpu.pas

+ 11 - 0
compiler/z80/rgcpu.pas

@@ -216,6 +216,17 @@ unit rgcpu;
                     instr.loadref(1,spilltemp);
                     result:=true;
                   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;