Added output of mes ms_gto
Fixed bug: The frontend generated a mes ms_reg for the local temp where the stackpointer was kept in destination procedures for a non local goto. This was wrong.
This commit is contained in:
parent
0796d79a9a
commit
0dc5d2c310
|
@ -1207,7 +1207,7 @@ end end;
|
||||||
|
|
||||||
procedure temporary(fsp:sp;r:integer);
|
procedure temporary(fsp:sp;r:integer);
|
||||||
begin inita(fsp,negaddr(fsp));
|
begin inita(fsp,negaddr(fsp));
|
||||||
genreg(sizeof(fsp,wordmult),a.pos.ad,r)
|
if r>=0 then genreg(sizeof(fsp,wordmult),a.pos.ad,r)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure genhol;
|
procedure genhol;
|
||||||
|
@ -2780,7 +2780,8 @@ begin with b do begin
|
||||||
begin
|
begin
|
||||||
if not spset then
|
if not spset then
|
||||||
begin spset:=true;
|
begin spset:=true;
|
||||||
temporary(nilptr,reg_pointer); ssp:=a.pos.ad;
|
gencst(ps_mes,ms_gto); argend;
|
||||||
|
temporary(nilptr,-1); ssp:=a.pos.ad;
|
||||||
gencst(op_lor,1); store
|
gencst(op_lor,1); store
|
||||||
end;
|
end;
|
||||||
argdlb(llp^.labdlb); lino:=lino+1; genop(ps_rom);
|
argdlb(llp^.labdlb); lino:=lino+1; genop(ps_rom);
|
||||||
|
|
Loading…
Reference in a new issue