Revision 54ca9095
b/cpu-exec.c | ||
---|---|---|
904 | 904 |
/* we restore the process signal mask as the sigreturn should |
905 | 905 |
do it (XXX: use sigsetjmp) */ |
906 | 906 |
sigprocmask(SIG_SETMASK, old_set, NULL); |
907 |
raise_exception_err(EXCP0E_PAGE, env->error_code);
|
|
907 |
raise_exception_err(env->exception_index, env->error_code);
|
|
908 | 908 |
} else { |
909 | 909 |
/* activate soft MMU for this block */ |
910 | 910 |
env->hflags |= HF_SOFTMMU_MASK; |
b/target-i386/helper.c | ||
---|---|---|
3478 | 3478 |
} |
3479 | 3479 |
} |
3480 | 3480 |
if (retaddr) |
3481 |
raise_exception_err(EXCP0E_PAGE, env->error_code);
|
|
3481 |
raise_exception_err(env->exception_index, env->error_code);
|
|
3482 | 3482 |
else |
3483 |
raise_exception_err_norestore(EXCP0E_PAGE, env->error_code);
|
|
3483 |
raise_exception_err_norestore(env->exception_index, env->error_code);
|
|
3484 | 3484 |
} |
3485 | 3485 |
env = saved_env; |
3486 | 3486 |
} |
b/target-i386/helper2.c | ||
---|---|---|
566 | 566 |
env->cr[2] = addr; |
567 | 567 |
env->error_code = (is_write << PG_ERROR_W_BIT); |
568 | 568 |
env->error_code |= PG_ERROR_U_MASK; |
569 |
env->exception_index = EXCP0E_PAGE; |
|
569 | 570 |
return 1; |
570 | 571 |
} |
571 | 572 |
|
... | ... | |
620 | 621 |
/* test virtual address sign extension */ |
621 | 622 |
sext = (int64_t)addr >> 47; |
622 | 623 |
if (sext != 0 && sext != -1) { |
623 |
error_code = 0; |
|
624 |
goto do_fault; |
|
624 |
env->error_code = 0; |
|
625 |
env->exception_index = EXCP0D_GPF; |
|
626 |
return 1; |
|
625 | 627 |
} |
626 | 628 |
|
627 | 629 |
pml4e_addr = ((env->cr[3] & ~0xfff) + (((addr >> 39) & 0x1ff) << 3)) & |
... | ... | |
862 | 864 |
(env->cr[4] & CR4_PAE_MASK)) |
863 | 865 |
error_code |= PG_ERROR_I_D_MASK; |
864 | 866 |
env->error_code = error_code; |
867 |
env->exception_index = EXCP0E_PAGE; |
|
865 | 868 |
return 1; |
866 | 869 |
} |
867 | 870 |
|
Also available in: Unified diff