On 30/10/2013 12:47 PM, Richard Henderson wrote:
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.
After you are the second who demanded it:
https://github.com/s-macke/qemu/tree/or32-optimize


r~


Reply via email to