Revision 872929aa target-i386/helper.c

b/target-i386/helper.c
1096 1096
        (env->efer & MSR_EFER_NXE) &&
1097 1097
        (env->cr[4] & CR4_PAE_MASK))
1098 1098
        error_code |= PG_ERROR_I_D_MASK;
1099
    if (INTERCEPTEDl(_exceptions, 1 << EXCP0E_PAGE)) {
1100
        stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2), addr);
1099
    if (env->intercept_exceptions & (1 << EXCP0E_PAGE)) {
1100
        /* cr2 is not modified in case of exceptions */
1101
        stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2), 
1102
                 addr);
1101 1103
    } else {
1102 1104
        env->cr[2] = addr;
1103 1105
    }
1104 1106
    env->error_code = error_code;
1105 1107
    env->exception_index = EXCP0E_PAGE;
1106
    /* the VMM will handle this */
1107
    if (INTERCEPTEDl(_exceptions, 1 << EXCP0E_PAGE))
1108
        return 2;
1109 1108
    return 1;
1110 1109
}
1111 1110

  

Also available in: Unified diff