aboutsummaryrefslogtreecommitdiff
path: root/target-i386/translate.c
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@web.de>2009-05-10 22:30:53 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-05-22 10:50:37 -0500
commita23978077ba006c8afdd842a448d5ac7106827ff (patch)
treef535e1e5be7d94f50ed623ce64a38213ad3f5a65 /target-i386/translate.c
parent37cb6fc37b21671a2e4fb9aad9ac3c3d8f92769b (diff)
x86: Add support for resume flag
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Diffstat (limited to 'target-i386/translate.c')
-rw-r--r--target-i386/translate.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/target-i386/translate.c b/target-i386/translate.c
index d45e9fe730..4726009375 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -2704,6 +2704,9 @@ static void gen_eob(DisasContext *s)
if (s->tb->flags & HF_INHIBIT_IRQ_MASK) {
gen_helper_reset_inhibit_irq();
}
+ if (s->tb->flags & HF_RF_MASK) {
+ gen_helper_reset_rf();
+ }
if (s->singlestep_enabled) {
gen_helper_debug();
} else if (s->tf) {
@@ -7687,7 +7690,8 @@ static inline void gen_intermediate_code_internal(CPUState *env,
for(;;) {
if (unlikely(!TAILQ_EMPTY(&env->breakpoints))) {
TAILQ_FOREACH(bp, &env->breakpoints, entry) {
- if (bp->pc == pc_ptr) {
+ if (bp->pc == pc_ptr &&
+ !((bp->flags & BP_CPU) && (tb->flags & HF_RF_MASK))) {
gen_debug(dc, pc_ptr - dc->cs_base);
break;
}