* 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:
Jonas Maebe 2016-07-08 07:46:45 +00:00
parent ee5a64c2f8
commit cd5817a689
2 changed files with 11 additions and 5 deletions

View File

@ -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;

View File

@ -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;