GIF flag handling fix (Alexander Graf)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 4 Jun 2008 17:07:08 +0000 (17:07 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 4 Jun 2008 17:07:08 +0000 (17:07 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4663 c046a42c-6fe2-441c-8c8c-71466251a162

target-i386/op_helper.c

index d5e1fc2..810c466 100644 (file)
@@ -4908,7 +4908,7 @@ void helper_vmrun(int aflag, int next_eip_addend)
         break;
     }
 
-    helper_stgi();
+    env->hflags2 |= HF2_GIF_MASK;
 
     if (int_ctl & V_IRQ_MASK) {
         env->interrupt_request |= CPU_INTERRUPT_VIRQ;
@@ -5266,7 +5266,7 @@ void helper_vmexit(uint32_t exit_code, uint64_t exit_info_1)
     stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_code), exit_code);
     stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_1), exit_info_1);
 
-    helper_clgi();
+    env->hflags2 &= ~HF2_GIF_MASK;
     /* FIXME: Resets the current ASID register to zero (host ASID). */
 
     /* Clears the V_IRQ and V_INTR_MASKING bits inside the processor. */