On 10/30/2013 12:07 PM, Sebastian Macke wrote: >>> case JUMP_BRANCH: >>> { >>> int l1 = gen_new_label(); >>> - tcg_gen_brcondi_tl(TCG_COND_NE, dc->btaken, 0, l1); >>> + tcg_gen_brcondi_tl(TCG_COND_NE, jmp_pc, 0, l1); >>> gen_goto_tb(dc, 1, dc->pc); >>> gen_set_label(l1); >>> - tcg_temp_free(dc->btaken); >>> gen_goto_tb(dc, 0, dc->j_target); >>> break; >> ... here. > > But j_target is not known when the delayed slot is translated separately. > (E.g. > if the delayed slot is at a page boundary.)
Hmm. This was just guesswork on my part since I don't have a tree with your previous patch set applied; j_target of course doesn't exist in master. Do you have a publicly accessible tree with all your patches applied? I'd like to re-read the logic in the proper context. r~