Browse Source

* added fix for missing register deallocation (-dregallocfix)

Jonas Maebe 26 years ago
parent
commit
9881d340cc
1 changed files with 15 additions and 4 deletions
  1. 15 4
      compiler/cg386ld.pas

+ 15 - 4
compiler/cg386ld.pas

@@ -549,9 +549,17 @@ implementation
                                   p^.right^.location.register,
                                   p^.right^.location.register,
                                   p^.left^.location.register)))
                                   p^.left^.location.register)))
                               else
                               else
-                                exprasmlist^.concat(new(pai386,op_reg_ref(A_MOV,opsize,
-                                  p^.right^.location.register,
-                                  newreference(p^.left^.location.reference))));
+{$IfDef regallocfix}
+                                Begin
+{$EndIf regallocfix}
+                                  exprasmlist^.concat(new(pai386,op_reg_ref(A_MOV,opsize,
+                                    p^.right^.location.register,
+                                    newreference(p^.left^.location.reference))));
+{$IfDef regallocfix}
+                                  ungetregister(p^.right^.location.register);
+                                  del_reference(p^.left^.location.reference);
+                                end;
+{$EndIf regallocfix}
 
 
                               if is_64bitint(p^.right^.resulttype) then
                               if is_64bitint(p^.right^.resulttype) then
                                 begin
                                 begin
@@ -797,7 +805,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.47  1999-03-31 13:55:07  peter
+  Revision 1.48  1999-04-09 15:48:47  jonas
+    * added fix for missing register deallocation (-dregallocfix)
+
+  Revision 1.47  1999/03/31 13:55:07  peter
     * assembler inlining working for ag386bin
     * assembler inlining working for ag386bin
 
 
   Revision 1.46  1999/03/24 23:16:52  peter
   Revision 1.46  1999/03/24 23:16:52  peter