Просмотр исходного кода

* change push/pop in getreg/ungetreg

peter 22 лет назад
Родитель
Сommit
1c11c95b3c
1 измененных файлов с 9 добавлено и 6 удалено
  1. 9 6
      compiler/x86/cgx86.pas

+ 9 - 6
compiler/x86/cgx86.pas

@@ -1273,9 +1273,9 @@ unit cgx86;
         { load destination }
         a_load_reg_reg(list,OS_INT,OS_INT,NR_ESP,r);
 
-        { don't destroy the registers! }
-        list.concat(Taicpu.op_reg(A_PUSH,S_L,NR_ECX));
-        list.concat(Taicpu.op_reg(A_PUSH,S_L,NR_ESI));
+        { Allocate other registers }
+        rg.getexplicitregisterint(list,NR_ECX);
+        rg.getexplicitregisterint(list,NR_ESI);
 
         { load count }
         a_load_ref_reg(list,OS_INT,OS_INT,lenref,NR_ECX);
@@ -1312,8 +1312,8 @@ unit cgx86;
           S_L : list.concat(Taicpu.Op_none(A_MOVSD,S_NO));
         end;
         rg.ungetregisterint(list,r);
-        list.concat(Taicpu.op_reg(A_POP,S_L,NR_ESI));
-        list.concat(Taicpu.op_reg(A_POP,S_L,NR_ECX));
+        rg.ungetregisterint(list,NR_ESI);
+        rg.ungetregisterint(list,NR_ECX);
 
         { patch the new address }
         a_load_reg_ref(list,OS_INT,OS_INT,NR_ESP,ref);
@@ -1607,7 +1607,10 @@ unit cgx86;
 end.
 {
   $Log$
-  Revision 1.65  2003-09-25 13:13:32  florian
+  Revision 1.66  2003-09-25 21:29:16  peter
+    * change push/pop in getreg/ungetreg
+
+  Revision 1.65  2003/09/25 13:13:32  florian
     * more x86-64 fixes
 
   Revision 1.64  2003/09/11 11:55:00  florian