Prevent superfluous label generation
This commit is contained in:
parent
bd1da2f86c
commit
e1b6ddca2c
|
@ -181,15 +181,24 @@ STATIC jump_cross(l1,l2,b1,b2)
|
||||||
|
|
||||||
/* Now adjust the EM text */
|
/* Now adjust the EM text */
|
||||||
l = PREV(l1);
|
l = PREV(l1);
|
||||||
|
while (l && INSTR(l) == op_lab) {
|
||||||
|
l1 = l;
|
||||||
|
l = PREV(l);
|
||||||
|
}
|
||||||
if (l == (line_p) 0) {
|
if (l == (line_p) 0) {
|
||||||
b1->b_start = (line_p) 0;
|
b1->b_start = (line_p) 0;
|
||||||
} else {
|
} else {
|
||||||
l->l_next = (line_p) 0;
|
l->l_next = (line_p) 0;
|
||||||
}
|
}
|
||||||
l = newline(OPINSTRLAB);
|
if (INSTR(l1) == op_lab) {
|
||||||
l->l_instr = op_lab;
|
l = l1;
|
||||||
INSTRLAB(l) = freshlabel();
|
}
|
||||||
DLINK(l,l1);
|
else {
|
||||||
|
l = newline(OPINSTRLAB);
|
||||||
|
l->l_instr = op_lab;
|
||||||
|
INSTRLAB(l) = freshlabel();
|
||||||
|
DLINK(l,l1);
|
||||||
|
}
|
||||||
b->b_start = l;
|
b->b_start = l;
|
||||||
for (l = l2; INSTR(l) != op_bra; l = l->l_next) {
|
for (l = l2; INSTR(l) != op_bra; l = l->l_next) {
|
||||||
assert (l != (line_p) 0);
|
assert (l != (line_p) 0);
|
||||||
|
|
Loading…
Reference in a new issue