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

* update used_in_proc only in trgobj.translate_registers, before it might cause unnecessary pushes of actually unused registers

git-svn-id: trunk@33526 -
florian 9 жил өмнө
parent
commit
2a28f5a85d

+ 2 - 3
compiler/rgobj.pas

@@ -1465,7 +1465,6 @@ unit rgobj;
                    reginfo[n].colour:=c;
                    reginfo[n].colour:=c;
                    found:=true;
                    found:=true;
                    supregset_include(colourednodes,n);
                    supregset_include(colourednodes,n);
-                   include(used_in_proc,c);
                    break;
                    break;
                  end;
                  end;
             end;
             end;
@@ -1478,8 +1477,6 @@ unit rgobj;
           n:=coalescednodes.buf^[i-1];
           n:=coalescednodes.buf^[i-1];
           k:=get_alias(n);
           k:=get_alias(n);
           reginfo[n].colour:=reginfo[k].colour;
           reginfo[n].colour:=reginfo[k].colour;
-          if reginfo[k].colour<first_imaginary then
-            include(used_in_proc,reginfo[k].colour);
         end;
         end;
     end;
     end;
 
 
@@ -1806,6 +1803,8 @@ unit rgobj;
                         else
                         else
                           begin
                           begin
                             u:=reginfo[getsupreg(reg)].colour;
                             u:=reginfo[getsupreg(reg)].colour;
+                            include(used_in_proc,u);
+
 {$ifdef EXTDEBUG}
 {$ifdef EXTDEBUG}
                             if u>=maxreginfo then
                             if u>=maxreginfo then
                               internalerror(2015040501);
                               internalerror(2015040501);