mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 10:09:20 +02:00
* force objects and records only into memory if their address is passed, hint from Jonas, improves code after r29139
git-svn-id: trunk@29344 -
This commit is contained in:
parent
66adabf63c
commit
1178fdc98f
@ -325,12 +325,13 @@ implementation
|
|||||||
paramanager.push_addr_param(parasym.varspez,parasym.vardef,
|
paramanager.push_addr_param(parasym.varspez,parasym.vardef,
|
||||||
aktcallnode.procdefinition.proccalloption));
|
aktcallnode.procdefinition.proccalloption));
|
||||||
|
|
||||||
{ objects or advanced records could be located in registers if they are the result of a type case, see e.g. webtbs\tw26075.pp }
|
|
||||||
if not(left.location.loc in [LOC_CREFERENCE,LOC_REFERENCE]) then
|
|
||||||
hlcg.location_force_mem(current_asmdata.CurrAsmList,left.location,left.resultdef);
|
|
||||||
|
|
||||||
if pushaddr then
|
if pushaddr then
|
||||||
push_addr_para
|
begin
|
||||||
|
{ objects or advanced records could be located in registers if they are the result of a type case, see e.g. webtbs\tw26075.pp }
|
||||||
|
if not(left.location.loc in [LOC_CREFERENCE,LOC_REFERENCE]) then
|
||||||
|
hlcg.location_force_mem(current_asmdata.CurrAsmList,left.location,left.resultdef);
|
||||||
|
push_addr_para
|
||||||
|
end
|
||||||
else
|
else
|
||||||
push_value_para;
|
push_value_para;
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user