mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-22 18:42:40 +02:00
* fixed passing of record parameters on win64
git-svn-id: trunk@4583 -
This commit is contained in:
parent
f5c45419d6
commit
24ae32c855
@ -98,7 +98,10 @@ unit cpupara;
|
|||||||
begin
|
begin
|
||||||
if p.size<=16 then
|
if p.size<=16 then
|
||||||
begin
|
begin
|
||||||
{$warning TODO location depends on the fields}
|
if (target_info.system=system_x86_64_win64) and
|
||||||
|
(p.size<=8) then
|
||||||
|
loc1:=LOC_REGISTER
|
||||||
|
else
|
||||||
loc1:=LOC_REFERENCE;
|
loc1:=LOC_REFERENCE;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -107,12 +110,22 @@ unit cpupara;
|
|||||||
objectdef:
|
objectdef:
|
||||||
begin
|
begin
|
||||||
if is_object(p) then
|
if is_object(p) then
|
||||||
loc1:=LOC_REFERENCE
|
begin
|
||||||
|
if (target_info.system=system_x86_64_win64) and
|
||||||
|
(p.size<=8) then
|
||||||
|
loc1:=LOC_REGISTER
|
||||||
|
else
|
||||||
|
loc1:=LOC_REFERENCE;
|
||||||
|
end
|
||||||
else
|
else
|
||||||
loc1:=LOC_REGISTER;
|
loc1:=LOC_REGISTER;
|
||||||
end;
|
end;
|
||||||
arraydef:
|
arraydef:
|
||||||
begin
|
begin
|
||||||
|
if (target_info.system=system_x86_64_win64) and
|
||||||
|
(p.size<=8) then
|
||||||
|
loc1:=LOC_REGISTER
|
||||||
|
else
|
||||||
loc1:=LOC_REFERENCE;
|
loc1:=LOC_REFERENCE;
|
||||||
end;
|
end;
|
||||||
variantdef:
|
variantdef:
|
||||||
|
Loading…
Reference in New Issue
Block a user