mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 14:29:14 +02:00
* Revert r17695 because it breaks cycling.
git-svn-id: trunk@17698 -
This commit is contained in:
parent
95b63aa583
commit
c40b8d92c7
@ -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);
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user