aboutsummaryrefslogtreecommitdiff
path: root/translate-i386.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-06-30 13:12:32 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-06-30 13:12:32 +0000
commit68a7931591fca65ac5dc2e1b23688e08d1c328a6 (patch)
treed7b9f908c23ad553d88eef3ab594ec9c700d31a1 /translate-i386.c
parentc9159e5321628a29bcc26216f0166e9cdd7e4b26 (diff)
reduced irq latency
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@296 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'translate-i386.c')
-rw-r--r--translate-i386.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/translate-i386.c b/translate-i386.c
index b477ac4adb..8a7147c556 100644
--- a/translate-i386.c
+++ b/translate-i386.c
@@ -3331,12 +3331,14 @@ long disas_insn(DisasContext *s, uint8_t *pc_start)
if (!s->vm86) {
if (s->cpl <= s->iopl) {
gen_op_sti();
+ s->is_jmp = 2; /* give a chance to handle pending irqs */
} else {
gen_exception(s, EXCP0D_GPF, pc_start - s->cs_base);
}
} else {
if (s->iopl == 3) {
gen_op_sti();
+ s->is_jmp = 2; /* give a chance to handle pending irqs */
} else {
gen_exception(s, EXCP0D_GPF, pc_start - s->cs_base);
}