Browse Source

* added missing regalloc for ecx in range check code

Jonas Maebe 25 years ago
parent
commit
95f2c6f732
1 changed files with 8 additions and 4 deletions
  1. 8 4
      compiler/cgai386.pas

+ 8 - 4
compiler/cgai386.pas

@@ -2122,7 +2122,8 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
                begin
                  exprasmlist^.concat(new(paicpu,op_reg(A_PUSH,S_L,R_ECX)));
                  popecx:=true;
-               end;
+               end
+                 else exprasmlist^.concat(new(pairegalloc,alloc(R_ECX)));
               if is_reg then
                emit_reg_reg(op,opsize,p^.location.register,R_ECX)
               else
@@ -2160,7 +2161,8 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
               emitlab(poslabel);
             end;
            if popecx then
-            exprasmlist^.concat(new(paicpu,op_reg(A_POP,S_L,R_ECX)));
+            exprasmlist^.concat(new(paicpu,op_reg(A_POP,S_L,R_ECX)))
+           else exprasmlist^.concat(new(pairegalloc,dealloc(R_ECX)));
          end
         else
          begin
@@ -3738,7 +3740,10 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
 end.
 {
   $Log$
-  Revision 1.79  2000-02-09 13:22:50  peter
+  Revision 1.80  2000-02-09 17:36:10  jonas
+    * added missing regalloc for ecx in range check code
+
+  Revision 1.79  2000/02/09 13:22:50  peter
     * log truncated
 
   Revision 1.78  2000/02/04 21:00:31  florian
@@ -3820,5 +3825,4 @@ end.
 
   Revision 1.59  1999/11/15 14:04:00  pierre
    * self pointer stabs for local function was wrong
-
 }