* Revert r17695 because it breaks cycling.

git-svn-id: trunk@17698 -
This commit is contained in:
sergei 2011-06-08 19:19:24 +00:00
parent 95b63aa583
commit c40b8d92c7
2 changed files with 6 additions and 11 deletions

View File

@ -1234,7 +1234,10 @@ unit cpupara;
begin begin
intparareg:=0; intparareg:=0;
mmparareg:=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_paraloc_info_intern(p,side,p.paras,intparareg,mmparareg,parasize,false);
{ Create Function result paraloc } { Create Function result paraloc }
create_funcretloc_info(p,side); create_funcretloc_info(p,side);

View File

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