mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 17:29:33 +02:00
* support multiple register paralocs in tcgobj.a_loadfpu_ref_cgpara()
git-svn-id: trunk@30223 -
This commit is contained in:
parent
cea2741339
commit
6d02aedf70
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user