* support multiple register paralocs in tcgobj.a_loadfpu_ref_cgpara()

git-svn-id: trunk@30223 -
This commit is contained in:
Jonas Maebe 2015-03-14 18:36:46 +00:00
parent cea2741339
commit 6d02aedf70

View File

@ -1644,13 +1644,22 @@ implementation
var
href : treference;
hsize: tcgsize;
paraloc: PCGParaLocation;
begin
case cgpara.location^.loc of
LOC_FPUREGISTER,LOC_CFPUREGISTER:
begin
cgpara.check_simple_location;
paramanager.alloccgpara(list,cgpara);
a_loadfpu_ref_reg(list,size,size,ref,cgpara.location^.register);
paraloc:=cgpara.location;
href:=ref;
while assigned(paraloc) do
begin
if not(paraloc^.loc in [LOC_FPUREGISTER,LOC_CFPUREGISTER]) then
internalerror(2015031501);
a_loadfpu_ref_reg(list,paraloc^.size,paraloc^.size,href,paraloc^.register);
inc(href.offset,tcgsize2size[paraloc^.size]);
paraloc:=paraloc^.next;
end;
end;
LOC_REFERENCE,LOC_CREFERENCE:
begin