Преглед на файлове

* Fixed fast spilling functionality by re-adding the code that initializes
precoloured nodes to degree 255. I would like to play hangman on the one
who removed that code.

daniel преди 22 години
родител
ревизия
90e1ca64f3
променени са 2 файла, в които са добавени 17 реда и са изтрити 3 реда
  1. 7 2
      compiler/psub.pas
  2. 10 1
      compiler/rgobj.pas

+ 7 - 2
compiler/psub.pas

@@ -701,7 +701,7 @@ implementation
                     internalerror(200309041);
                     internalerror(200309041);
                   fastspill:=rg.spill_registers(aktproccode,rg.spillednodes);
                   fastspill:=rg.spill_registers(aktproccode,rg.spillednodes);
                 end;
                 end;
-            until (rg.spillednodes=''){ or not fastspill};
+            until (rg.spillednodes='') or not fastspill;
             aktproccode.translate_registers(rg.colour);
             aktproccode.translate_registers(rg.colour);
 (*
 (*
 {$ifndef NoOpt}
 {$ifndef NoOpt}
@@ -1317,7 +1317,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.145  2003-09-10 19:14:31  daniel
+  Revision 1.146  2003-09-12 19:07:42  daniel
+    * Fixed fast spilling functionality by re-adding the code that initializes
+      precoloured nodes to degree 255. I would like to play hangman on the one
+      who removed that code.
+
+  Revision 1.145  2003/09/10 19:14:31  daniel
     * Failed attempt to restore broken fastspill functionality
     * Failed attempt to restore broken fastspill functionality
 
 
   Revision 1.144  2003/09/09 20:59:27  daniel
   Revision 1.144  2003/09/09 20:59:27  daniel

+ 10 - 1
compiler/rgobj.pas

@@ -462,6 +462,8 @@ unit rgobj;
 
 
     constructor Trgobj.create(Acpu_registers:byte;const Ausable:string);
     constructor Trgobj.create(Acpu_registers:byte;const Ausable:string);
 
 
+    var i:Tsuperregister;
+
      begin
      begin
        used_in_proc_int := [];
        used_in_proc_int := [];
        used_in_proc_other:=[];
        used_in_proc_other:=[];
@@ -484,6 +486,8 @@ unit rgobj;
        fillchar(degree,sizeof(degree),0);
        fillchar(degree,sizeof(degree),0);
        {Precoloured nodes should have an infinite degree, which we can approach
        {Precoloured nodes should have an infinite degree, which we can approach
         by 255.}
         by 255.}
+       for i:=first_int_supreg to last_int_supreg do
+         degree[i]:=255;
        fillchar(movelist,sizeof(movelist),0);
        fillchar(movelist,sizeof(movelist),0);
        worklist_moves:=Tlinkedlist.create;
        worklist_moves:=Tlinkedlist.create;
        usable_registers:=Ausable;
        usable_registers:=Ausable;
@@ -2221,7 +2225,12 @@ end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.74  2003-09-11 11:54:59  florian
+  Revision 1.75  2003-09-12 19:07:42  daniel
+    * Fixed fast spilling functionality by re-adding the code that initializes
+      precoloured nodes to degree 255. I would like to play hangman on the one
+      who removed that code.
+
+  Revision 1.74  2003/09/11 11:54:59  florian
     * improved arm code generation
     * improved arm code generation
     * move some protected and private field around
     * move some protected and private field around
     * the temp. register for register parameters/arguments are now released
     * the temp. register for register parameters/arguments are now released