Преглед изворни кода

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.

sater пре 40 година
родитељ
комит
0dc5d2c310
1 измењених фајлова са 3 додато и 2 уклоњено
  1. 3 2
      lang/pc/pem/pem.p

+ 3 - 2
lang/pc/pem/pem.p

@@ -1207,7 +1207,7 @@ end end;
 
 procedure temporary(fsp:sp;r:integer);
 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;
 
 procedure genhol;
@@ -2780,7 +2780,8 @@ begin with b do begin
 	begin
 	  if not spset then
 	    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
 	    end;
 	  argdlb(llp^.labdlb); lino:=lino+1; genop(ps_rom);