Browse Source

* fixed releasing of references (ppc also has a base and an index, not
just a base)

Jonas Maebe 22 years ago
parent
commit
a624d954f4
1 changed files with 15 additions and 1 deletions
  1. 15 1
      compiler/powerpc/cgcpu.pas

+ 15 - 1
compiler/powerpc/cgcpu.pas

@@ -47,6 +47,7 @@ unit cgcpu;
         function  getmmregister(list:Taasmoutput;size:Tcgsize):Tregister;override;
         procedure getexplicitregister(list:Taasmoutput;r:Tregister);override;
         procedure ungetregister(list:Taasmoutput;r:Tregister);override;
+        procedure ungetreference(list:Taasmoutput;const r:Treference);override;
         procedure add_move_instruction(instr:Taicpu);override;
         procedure do_register_allocation(list:Taasmoutput;headertai:tai);override;
         procedure allocexplicitregisters(list:Taasmoutput;rt:Tregistertype;r:Tcpuregisterset);override;
@@ -254,6 +255,15 @@ const
       end;
 
 
+    procedure tcgppc.ungetreference(list:Taasmoutput;const r:Treference);
+      begin
+        if r.base<>NR_NO then
+          rgint.ungetregister(list,r.base);
+        if r.index<>NR_NO then
+          rgint.ungetregister(list,r.index);
+      end;
+
+
     procedure tcgppc.allocexplicitregisters(list:Taasmoutput;rt:Tregistertype;r:Tcpuregisterset);
       begin
         case rt of
@@ -2489,7 +2499,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.134  2003-10-19 01:34:30  florian
+  Revision 1.135  2003-11-02 15:20:06  jonas
+    * fixed releasing of references (ppc also has a base and an index, not
+      just a base)
+
+  Revision 1.134  2003/10/19 01:34:30  florian
     * some ppc stuff fixed
     * memory leak fixed