* always extend parameters < sizeof(aint) to sizeof(aint) for darwin/x86

git-svn-id: trunk@3628 -
This commit is contained in:
Jonas Maebe 2006-05-22 10:42:55 +00:00
parent da85b3db8c
commit cc7cea1a5d

View File

@ -407,7 +407,17 @@ unit cpupara;
else
begin
paralen:=push_size(hp.varspez,hp.vartype.def,p.proccalloption);
paracgsize:=def_cgsize(hp.vartype.def);
{ darwin/x86 requires that parameters < sizeof(aint) are sign/ }
{ zero extended to sizeof(aint) }
if (target_info.system = system_i386_darwin) and
(side = callerside) and
(paralen < sizeof(aint)) then
begin
paralen := sizeof(aint);
paracgsize:=OS_INT;
end
else
paracgsize:=def_cgsize(hp.vartype.def);
end;
hp.paraloc[side].reset;
hp.paraloc[side].size:=paracgsize;