Added local optimization of lin to lni.
This commit is contained in:
parent
ced0ffabbd
commit
25a7b2ae22
1 changed files with 15 additions and 2 deletions
|
@ -4,6 +4,8 @@ static char rcsid[] = "$Header$";
|
||||||
|
|
||||||
#include "nopt.h"
|
#include "nopt.h"
|
||||||
|
|
||||||
|
static Linenumber = 0; /* Local optimization of lin to lni if possible */
|
||||||
|
|
||||||
OO_mkcalls(p)
|
OO_mkcalls(p)
|
||||||
struct instr *p;
|
struct instr *p;
|
||||||
{
|
{
|
||||||
|
@ -108,6 +110,7 @@ OO_mkcalls(p)
|
||||||
case op_fif:
|
case op_fif:
|
||||||
O_fif(p->acst); break;
|
O_fif(p->acst); break;
|
||||||
case op_fil:
|
case op_fil:
|
||||||
|
Linenumber = 0;
|
||||||
if(p->argtype==nof_ptyp) O_fil_dlb(p->adlb, p->anoff);
|
if(p->argtype==nof_ptyp) O_fil_dlb(p->adlb, p->anoff);
|
||||||
else O_fil_dnam(p->adnam, p->asoff); break;
|
else O_fil_dnam(p->adnam, p->asoff); break;
|
||||||
case op_gto:
|
case op_gto:
|
||||||
|
@ -125,6 +128,7 @@ OO_mkcalls(p)
|
||||||
case op_ior:
|
case op_ior:
|
||||||
O_ior(p->acst); break;
|
O_ior(p->acst); break;
|
||||||
case op_lab:
|
case op_lab:
|
||||||
|
Linenumber = 0;
|
||||||
O_df_ilb(p->alab); break;
|
O_df_ilb(p->alab); break;
|
||||||
case op_lae:
|
case op_lae:
|
||||||
if(p->argtype==nof_ptyp) O_lae_dlb(p->adlb, p->anoff);
|
if(p->argtype==nof_ptyp) O_lae_dlb(p->adlb, p->anoff);
|
||||||
|
@ -149,9 +153,18 @@ OO_mkcalls(p)
|
||||||
case op_lim:
|
case op_lim:
|
||||||
O_lim(); break;
|
O_lim(); break;
|
||||||
case op_lin:
|
case op_lin:
|
||||||
O_lin(p->acst); break;
|
if(Linenumber && p->acst == ++Linenumber) {
|
||||||
|
O_lni();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
O_lin(p->acst);
|
||||||
|
Linenumber = p->acst;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case op_lni:
|
case op_lni:
|
||||||
O_lni(); break;
|
O_lni();
|
||||||
|
Linenumber++;
|
||||||
|
break;
|
||||||
case op_loc:
|
case op_loc:
|
||||||
O_loc(p->acst); break;
|
O_loc(p->acst); break;
|
||||||
case op_loe:
|
case op_loe:
|
||||||
|
|
Loading…
Reference in a new issue