* fixed passing of record parameters on win64

git-svn-id: trunk@4583 -
This commit is contained in:
florian 2006-09-09 16:33:15 +00:00
parent f5c45419d6
commit 24ae32c855

View File

@ -98,8 +98,11 @@ unit cpupara;
begin
if p.size<=16 then
begin
{$warning TODO location depends on the fields}
loc1:=LOC_REFERENCE;
if (target_info.system=system_x86_64_win64) and
(p.size<=8) then
loc1:=LOC_REGISTER
else
loc1:=LOC_REFERENCE;
end
else
loc1:=LOC_REFERENCE;
@ -107,13 +110,23 @@ unit cpupara;
objectdef:
begin
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
loc1:=LOC_REGISTER;
end;
arraydef:
begin
loc1:=LOC_REFERENCE;
if (target_info.system=system_x86_64_win64) and
(p.size<=8) then
loc1:=LOC_REGISTER
else
loc1:=LOC_REFERENCE;
end;
variantdef:
loc1:=LOC_REFERENCE;