Sfoglia il codice sorgente

* cleaned up do_spill_replace()

git-svn-id: trunk@27107 -
Jonas Maebe 11 anni fa
parent
commit
7ea92f48cc
1 ha cambiato i file con 3 aggiunte e 8 eliminazioni
  1. 3 8
      compiler/arm/rgcpu.pas

+ 3 - 8
compiler/arm/rgcpu.pas

@@ -301,11 +301,8 @@ unit rgcpu;
                    (get_alias(getsupreg(oper[1]^.reg))<>orgreg) then
                   begin
                     { str expects the register in oper[0] }
-                    oper[0]^.typ:=top_reg;
-                    oper[0]^.reg:=oper[1]^.reg;
-                    oper[1]^.typ:=top_ref;
-                    new(oper[1]^.ref);
-                    oper[1]^.ref^:=spilltemp;
+                    instr.loadreg(0,oper[1]^.reg);
+                    instr.loadref(1,spilltemp);
                     opcode:=A_STR;
                     result:=true;
                   end
@@ -313,9 +310,7 @@ unit rgcpu;
                    (get_alias(getsupreg(oper[1]^.reg))=orgreg) and
                    (get_alias(getsupreg(oper[0]^.reg))<>orgreg) then
                   begin
-                    oper[1]^.typ:=top_ref;
-                    new(oper[1]^.ref);
-                    oper[1]^.ref^:=spilltemp;
+                    instr.loadref(1,spilltemp);
                     opcode:=A_LDR;
                     result:=true;
                   end;