mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 21:09:27 +02:00
+ fill the treference segment correctly in the load node for localvarsyms and
paravarsyms that are passed by reference in a i8086 far data memory model git-svn-id: trunk@27277 -
This commit is contained in:
parent
122f66b11a
commit
897802c7c4
@ -454,7 +454,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
hregister:=hlcg.getaddressregister(current_asmdata.CurrAsmList,voidpointertype);
|
hregister:=hlcg.getaddressregister(current_asmdata.CurrAsmList,voidpointertype);
|
||||||
{ we need to load only an address }
|
{ we need to load only an address }
|
||||||
location.size:=OS_ADDR;
|
location.size:=int_cgsize(voidpointertype.size);
|
||||||
hlcg.a_load_loc_reg(current_asmdata.CurrAsmList,voidpointertype,voidpointertype,location,hregister);
|
hlcg.a_load_loc_reg(current_asmdata.CurrAsmList,voidpointertype,voidpointertype,location,hregister);
|
||||||
end;
|
end;
|
||||||
{ assume packed records may always be unaligned }
|
{ assume packed records may always be unaligned }
|
||||||
@ -464,6 +464,10 @@ implementation
|
|||||||
else
|
else
|
||||||
location_reset_ref(location,LOC_REFERENCE,newsize,1);
|
location_reset_ref(location,LOC_REFERENCE,newsize,1);
|
||||||
location.reference.base:=hregister;
|
location.reference.base:=hregister;
|
||||||
|
{$ifdef i8086}
|
||||||
|
if current_settings.x86memorymodel in x86_far_data_models then
|
||||||
|
location.reference.segment:=GetNextReg(hregister);
|
||||||
|
{$endif i8086}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ make const a LOC_CREFERENCE }
|
{ make const a LOC_CREFERENCE }
|
||||||
|
Loading…
Reference in New Issue
Block a user