* refactored cg64f32.splitparaloc64 to use cgpara.locations_count

git-svn-id: trunk@24531 -
This commit is contained in:
nickysn 2013-05-19 18:44:54 +00:00
parent 3e22ec43b5
commit 49bd829ffc

View File

@ -143,9 +143,10 @@ unit cg64f32;
cgparalo.intsize:=4;
cgparalo.alignment:=cgpara.alignment;
paraloclo:=cgparalo.add_location;
{ 4 parameter fields? }
if assigned(cgpara.location^.next) and assigned(cgpara.location^.next^.next) and assigned(cgpara.location^.next^.next^.next) then
case cgpara.locations_count of
4:
begin
{ 4 parameter fields? }
{ Order for multiple locations is always
paraloc^ -> high
paraloc^.next -> low }
@ -190,11 +191,10 @@ unit cg64f32;
paralochi^.size:=OS_S16
else
paraloclo2^.size:=OS_S16;
end
else
{ 2 parameter fields? }
if assigned(cgpara.location^.next) then
end;
2:
begin
{ 2 parameter fields? }
{ Order for multiple locations is always
paraloc^ -> high
paraloc^.next -> low }
@ -218,8 +218,8 @@ unit cg64f32;
paraloclo^.next:=nil;
paralochi^.size:=cgparahi.size;
paralochi^.next:=nil;
end
else
end;
1:
begin
{ single parameter, this can only be in memory }
if cgpara.location^.loc<>LOC_REFERENCE then
@ -244,6 +244,9 @@ unit cg64f32;
paralochi^.size:=cgparahi.size;
paralochi^.next:=nil;
end;
else
internalerror(2013051901);
end;
end;