mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 08:48:08 +02:00
* patch by Christo Crause: reg. allocation information if non-volatile registers
are used for parameter passing as it is might happen on avr, resolves #36079 git-svn-id: trunk@43390 -
This commit is contained in:
parent
ee5fe9ef79
commit
fabe4cc067
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -17847,6 +17847,7 @@ tests/webtbs/tw35955.pp svneol=native#text/pascal
|
||||
tests/webtbs/tw35965.pp svneol=native#text/pascal
|
||||
tests/webtbs/tw35982.pp svneol=native#text/pascal
|
||||
tests/webtbs/tw36013.pp svneol=native#text/pascal
|
||||
tests/webtbs/tw36079.pp svneol=native#text/pascal
|
||||
tests/webtbs/tw3612.pp svneol=native#text/plain
|
||||
tests/webtbs/tw36156.pp svneol=native#text/plain
|
||||
tests/webtbs/tw36157.pp svneol=native#text/plain
|
||||
|
@ -1054,8 +1054,6 @@ implementation
|
||||
begin
|
||||
reorder_parameters;
|
||||
pushparas;
|
||||
{ free the resources allocated for the parameters }
|
||||
freeparas;
|
||||
end;
|
||||
|
||||
if callref then
|
||||
@ -1091,8 +1089,6 @@ implementation
|
||||
begin
|
||||
reorder_parameters;
|
||||
pushparas;
|
||||
{ free the resources allocated for the parameters }
|
||||
freeparas;
|
||||
end;
|
||||
|
||||
cg.alloccpuregisters(current_asmdata.CurrAsmList,R_INTREGISTER,regs_to_save_int);
|
||||
@ -1157,8 +1153,6 @@ implementation
|
||||
begin
|
||||
reorder_parameters;
|
||||
pushparas;
|
||||
{ free the resources allocated for the parameters }
|
||||
freeparas;
|
||||
end;
|
||||
|
||||
if callref then
|
||||
@ -1186,6 +1180,10 @@ implementation
|
||||
extra_post_call_code;
|
||||
end;
|
||||
|
||||
{ free the resources allocated for the parameters }
|
||||
if assigned(left) then
|
||||
freeparas;
|
||||
|
||||
{ Need to remove the parameters from the stack? }
|
||||
if procdefinition.proccalloption in clearstack_pocalls then
|
||||
begin
|
||||
|
18
tests/webtbs/tw36079.pp
Normal file
18
tests/webtbs/tw36079.pp
Normal file
@ -0,0 +1,18 @@
|
||||
{ %OPT=-O- -O1 }
|
||||
program tshlshr;
|
||||
|
||||
procedure test(value, required: int64);
|
||||
begin
|
||||
if value <> required then
|
||||
halt(1)
|
||||
else
|
||||
halt(0);
|
||||
end;
|
||||
|
||||
var
|
||||
longres : longint;
|
||||
|
||||
begin
|
||||
longres := 32768;
|
||||
test(longres, 32768);
|
||||
end.
|
Loading…
Reference in New Issue
Block a user