struct line {
line_p l_next; /* maintains linked list */
- line_p l_prev; /* for back referencing loc's */
byte l_instr; /* instruction number */
byte l_optyp; /* specifies what follows */
un_l_a l_a;
do_tes()
{
- register line_p insptr = instrs, oldlin = NULL;
+ register line_p insptr = instrs, oldlin = NULL, oldlin2 = NULL;
init_state();
tes_pseudos();
while (insptr != NULL) {
- insptr->l_prev = oldlin;
+ tes_instr(insptr, oldlin, oldlin2);
+ oldlin2 = oldlin;
oldlin = insptr;
- tes_instr(insptr);
insptr = insptr->l_next;
}
}
#define INSTR(lnp) (lnp->l_instr & BMASK)
#define TYPE(lnp) lnp->l_optyp
-#define PREV(lnp) lnp->l_prev
#define SHORT(lnp) lnp->l_a.la_short
#define MINI(lnp) ((lnp->l_optyp & BMASK) - Z_OPMINI)
}
}
-tes_instr(lnp)
-line_p lnp;
+tes_instr(lnp, x, y)
+line_p lnp, x, y;
{
char *s;
register instr = INSTR(lnp);
register int arg, argdef;
- line_p x = PREV(lnp);
- line_p y = (x == (line_p) 0 ? (line_p) 0 : PREV(x));
int neg = 0;
if (instr == op_lab) {