2
0
Эх сурвалжийг харах

* Revert r17695 because it breaks cycling.

git-svn-id: trunk@17698 -
sergei 14 жил өмнө
parent
commit
c40b8d92c7

+ 4 - 1
compiler/x86_64/cpupara.pas

@@ -1234,7 +1234,10 @@ unit cpupara;
       begin
         intparareg:=0;
         mmparareg:=0;
-        parasize:=0;
+        if target_info.system=system_x86_64_win64 then
+          parasize:=4*8
+        else
+          parasize:=0;
         create_paraloc_info_intern(p,side,p.paras,intparareg,mmparareg,parasize,false);
         { Create Function result paraloc }
         create_funcretloc_info(p,side);

+ 2 - 10
compiler/x86_64/cpupi.pas

@@ -42,7 +42,6 @@ implementation
 
     uses
       systems,
-      globtype,
       globals,
       cutils,
       symconst,
@@ -55,8 +54,7 @@ implementation
           begin
             if not(po_assembler in procdef.procoptions) and
               (tg.direction > 0) then
-            { the spilling area is needed only for non-leaf procedures }
-              tg.setfirsttemp(tg.direction*maxpushedparasize+(4*8*ord(pi_do_call in flags)));
+              tg.setfirsttemp(tg.direction*maxpushedparasize+4*8);
           end
         else
           tg.setfirsttemp(tg.direction*maxpushedparasize);
@@ -77,13 +75,7 @@ implementation
         { RSP should be aligned on 16 bytes }
         result:=Align(tg.direction*tg.lasttemp+maxpushedparasize,16);
         if target_info.system=system_x86_64_win64 then
-          begin
-          { case tg.direction>0 is handled above in set_first_temp_offset
-            (tg.setfirsttemp also sets tg.lasttemp, therefore the 32 byte
-             spilling area is already included in result) }
-            if (tg.direction<0) and (pi_do_call in flags) then
-              inc(result,4*8);
-          end;
+          inc(result,4*8);
       end;