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