瀏覽代碼

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

git-svn-id: branches/z80@44552 -
nickysn 5 年之前
父節點
當前提交
e43834c5d0
共有 1 個文件被更改,包括 11 次插入0 次删除
  1. 11 0
      compiler/z80/rgcpu.pas

+ 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;