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