|
@@ -1644,13 +1644,22 @@ implementation
|
|
var
|
|
var
|
|
href : treference;
|
|
href : treference;
|
|
hsize: tcgsize;
|
|
hsize: tcgsize;
|
|
|
|
+ paraloc: PCGParaLocation;
|
|
begin
|
|
begin
|
|
case cgpara.location^.loc of
|
|
case cgpara.location^.loc of
|
|
LOC_FPUREGISTER,LOC_CFPUREGISTER:
|
|
LOC_FPUREGISTER,LOC_CFPUREGISTER:
|
|
begin
|
|
begin
|
|
- cgpara.check_simple_location;
|
|
|
|
paramanager.alloccgpara(list,cgpara);
|
|
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;
|
|
end;
|
|
LOC_REFERENCE,LOC_CREFERENCE:
|
|
LOC_REFERENCE,LOC_CREFERENCE:
|
|
begin
|
|
begin
|