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~