qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [5742] Remove premature memop TB terminations (Jan Kiszka)


From: Anthony Liguori
Subject: [Qemu-devel] [5742] Remove premature memop TB terminations (Jan Kiszka)
Date: Tue, 18 Nov 2008 20:26:41 +0000

Revision: 5742
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5742
Author:   aliguori
Date:     2008-11-18 20:26:41 +0000 (Tue, 18 Nov 2008)

Log Message:
-----------
Remove premature memop TB terminations (Jan Kiszka)

Now that we can properly restore the pc on watchpoint hits, there is no
more need for prematurely terminating TBs if watchpoints are present.
Remove all related bits.

Signed-off-by: Jan Kiszka <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>

Modified Paths:
--------------
    trunk/exec.c
    trunk/target-arm/translate.c
    trunk/target-m68k/translate.c

Modified: trunk/exec.c
===================================================================
--- trunk/exec.c        2008-11-18 20:24:06 UTC (rev 5741)
+++ trunk/exec.c        2008-11-18 20:26:41 UTC (rev 5742)
@@ -1325,10 +1325,6 @@
     env->watchpoints = wp;
 
     tlb_flush_page(env, addr);
-    /* FIXME: This flush is needed because of the hack to make memory ops
-       terminate the TB.  It can be removed once the proper IO trap and
-       re-execute bits are in.  */
-    tb_flush(env);
 
     if (watchpoint)
         *watchpoint = wp;

Modified: trunk/target-arm/translate.c
===================================================================
--- trunk/target-arm/translate.c        2008-11-18 20:24:06 UTC (rev 5741)
+++ trunk/target-arm/translate.c        2008-11-18 20:26:41 UTC (rev 5742)
@@ -8729,12 +8729,6 @@
             gen_set_label(dc->condlabel);
             dc->condjmp = 0;
         }
-        /* Terminate the TB on memory ops if watchpoints are present.  */
-        /* FIXME: This should be replacd by the deterministic execution
-         * IRQ raising bits.  */
-        if (dc->is_mem && env->watchpoints)
-            break;
-
         /* Translation stops when a conditional branch is enoutered.
          * Otherwise the subsequent code could get translated several times.
          * Also stop translation when a page boundary is reached.  This

Modified: trunk/target-m68k/translate.c
===================================================================
--- trunk/target-m68k/translate.c       2008-11-18 20:24:06 UTC (rev 5741)
+++ trunk/target-m68k/translate.c       2008-11-18 20:26:41 UTC (rev 5742)
@@ -3027,12 +3027,6 @@
         dc->insn_pc = dc->pc;
        disas_m68k_insn(env, dc);
         num_insns++;
-
-        /* Terminate the TB on memory ops if watchpoints are present.  */
-        /* FIXME: This should be replaced by the deterministic execution
-         * IRQ raising bits.  */
-        if (dc->is_mem && env->watchpoints)
-            break;
     } while (!dc->is_jmp && gen_opc_ptr < gen_opc_end &&
              !env->singlestep_enabled &&
              (pc_offset) < (TARGET_PAGE_SIZE - 32) &&






reply via email to

[Prev in Thread] Current Thread [Next in Thread]