diff --git a/exec.c b/exec.c index 0dd4aa3d8d..b49162cfe7 100644 --- a/exec.c +++ b/exec.c @@ -1325,10 +1325,6 @@ int cpu_watchpoint_insert(CPUState *env, target_ulong addr, target_ulong len, 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; diff --git a/target-arm/translate.c b/target-arm/translate.c index 237c5f6941..54eb0670b5 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -8729,12 +8729,6 @@ static inline void gen_intermediate_code_internal(CPUState *env, 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 diff --git a/target-m68k/translate.c b/target-m68k/translate.c index 49e2cb27df..a14f6c560c 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -3027,12 +3027,6 @@ gen_intermediate_code_internal(CPUState *env, TranslationBlock *tb, 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) &&