mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-03 21:09:36 +01:00
* also emit a tai_varloc() when regvars are initially assigned
o removed separate writing of the local variable/parameter location from
psub, as that is now triggered by thise tai_varloc
git-svn-id: trunk@34084 -
This commit is contained in:
parent
ee5a64c2f8
commit
cd5817a689
@ -690,6 +690,7 @@ implementation
|
||||
procedure gen_alloc_regvar(list:TAsmList;sym: tabstractnormalvarsym; allocreg: boolean);
|
||||
var
|
||||
usedef: tdef;
|
||||
varloc: tai_varloc;
|
||||
begin
|
||||
if allocreg then
|
||||
begin
|
||||
@ -762,6 +763,16 @@ implementation
|
||||
{$endif}
|
||||
cg.a_reg_sync(list,sym.initialloc.register);
|
||||
end;
|
||||
{$ifdef cpu64bitalu}
|
||||
if (sym.initialloc.size in [OS_128,OS_S128]) then
|
||||
varloc:=tai_varloc.create128(sym,sym.initialloc.register,sym.initialloc.registerhi)
|
||||
{$else cpu64bitalu}
|
||||
if (sym.initialloc.size in [OS_64,OS_S64]) then
|
||||
varloc:=tai_varloc.create64(sym,sym.initialloc.register,sym.initialloc.registerhi)
|
||||
{$endif cpu64bitalu}
|
||||
else
|
||||
varloc:=tai_varloc.create(sym,sym.initialloc.register);
|
||||
list.concat(varloc);
|
||||
sym.localloc:=sym.initialloc;
|
||||
end;
|
||||
|
||||
|
||||
@ -965,11 +965,6 @@ implementation
|
||||
if (tabstractnormalvarsym(p).localloc.registerhi<>NR_NO) then
|
||||
cg.translate_register(tabstractnormalvarsym(p).localloc.registerhi);
|
||||
end;
|
||||
if cs_asm_source in current_settings.globalswitches then
|
||||
begin
|
||||
TAsmList(list).concat(Tai_comment.Create(strpnew('Var '+tabstractnormalvarsym(p).realname+' located in register '+
|
||||
location_reg2string(tabstractnormalvarsym(p).localloc))));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user