From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KwxxR-0000Pw-Ts for qemu-devel@nongnu.org; Mon, 03 Nov 2008 06:50:58 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KwxxK-0000M4-IP for qemu-devel@nongnu.org; Mon, 03 Nov 2008 06:50:53 -0500 Received: from [199.232.76.173] (port=36462 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KwxxK-0000Lw-EO for qemu-devel@nongnu.org; Mon, 03 Nov 2008 06:50:50 -0500 Received: from lizzard.sbs.de ([194.138.37.39]:15237) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KwxxJ-0005Os-MD for qemu-devel@nongnu.org; Mon, 03 Nov 2008 06:50:50 -0500 Received: from mail1.sbs.de (localhost [127.0.0.1]) by lizzard.sbs.de (8.12.11.20060308/8.12.11) with ESMTP id mA3BokoU019584 for ; Mon, 3 Nov 2008 12:50:46 +0100 Received: from [139.25.109.167] (mchn012c.mchp.siemens.de [139.25.109.167] (may be forged)) by mail1.sbs.de (8.12.11.20060308/8.12.11) with ESMTP id mA3BokKB031590 for ; Mon, 3 Nov 2008 12:50:46 +0100 Resent-To: qemu-devel@nongnu.org Resent-Message-Id: <490EE596.50307@siemens.com> Message-Id: <20081103103601.043831357@mchn012c.ww002.siemens.net> Date: Mon, 03 Nov 2008 11:36:05 +0100 From: Jan Kiszka References: <20081103103558.213902776@mchn012c.ww002.siemens.net> Subject: [Qemu-devel] [PATCH 07/12] Remove premature memop TB terminations Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: 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 --- exec.c | 4 ---- target-arm/translate.c | 6 ------ target-m68k/translate.c | 6 ------ 3 files changed, 16 deletions(-) Index: b/exec.c =================================================================== --- a/exec.c +++ b/exec.c @@ -1319,10 +1319,6 @@ int cpu_watchpoint_insert(CPUState *env, 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; Index: b/target-arm/translate.c =================================================================== --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -8715,12 +8715,6 @@ static inline void gen_intermediate_code 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 Index: b/target-m68k/translate.c =================================================================== --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -2979,12 +2979,6 @@ gen_intermediate_code_internal(CPUState 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) &&