mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-15 18:20:42 +02:00
Correct misplaced check for already visited blocks
This commit is contained in:
parent
1bd169cfa3
commit
f42a251ff1
3 changed files with 15 additions and 6 deletions
|
@ -1,3 +1,12 @@
|
|||
2013-10-30 Paulo Andrade <pcpa@gnu.org>
|
||||
|
||||
* lib/jit_print.c: Do not crash if calling jit_print from
|
||||
gdb before actually emitting code.
|
||||
|
||||
* lib/lightning.c: Correct misplaced check for already
|
||||
visited blocks on conditional branches, what was preventing
|
||||
proper merge live bit masks of forward blocks.
|
||||
|
||||
2013-10-30 Paulo Andrade <pcpa@gnu.org>
|
||||
|
||||
* lib/jit_x86-cpu.c: Correct not properly tested case of using
|
||||
|
|
|
@ -396,14 +396,14 @@ _jit_print(jit_state_t *_jit)
|
|||
continue;
|
||||
case jit_code_name:
|
||||
print_chr(' ');
|
||||
if (node->v.p)
|
||||
if (node->v.p && _jitc->emit)
|
||||
print_str(node->v.n->u.p);
|
||||
break;
|
||||
case jit_code_note:
|
||||
print_chr(' ');
|
||||
if (node->v.p)
|
||||
if (node->v.p && _jitc->emit)
|
||||
print_str(node->v.n->u.p);
|
||||
if (node->v.p && node->w.w)
|
||||
if (node->v.p && _jitc->emit && node->w.w)
|
||||
print_chr(':');
|
||||
if (node->w.w)
|
||||
print_dec(node->w.w);
|
||||
|
|
|
@ -1983,15 +1983,15 @@ _jit_update(jit_state_t *_jit, jit_node_t *node,
|
|||
goto restart;
|
||||
}
|
||||
block = _jitc->blocks.ptr + label->v.w;
|
||||
if (bmp_tst(label->v.w))
|
||||
continue;
|
||||
bmp_set(label->v.w);
|
||||
jit_regset_and(&ztmp, mask, &block->reglive);
|
||||
if (jit_regset_set_p(&ztmp)) {
|
||||
jit_regset_ior(live, live, &ztmp);
|
||||
jit_regset_com(&ztmp, &ztmp);
|
||||
jit_regset_and(mask, mask, &ztmp);
|
||||
}
|
||||
if (bmp_tst(label->v.w))
|
||||
continue;
|
||||
bmp_set(label->v.w);
|
||||
if (jit_regset_set_p(mask) == 0)
|
||||
return;
|
||||
/* restore mask if branch is conditional */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue