target/hppa: Fix IOR and ISR on error in probe
Put correct values (depending on CPU arch) into IOR and ISR on fault. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> (cherry picked from commit 31efbe72c6cc54b9cbc2505d78870a8a87a8d392) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
abf489be5a
commit
067aa95c47
@ -351,11 +351,7 @@ target_ulong HELPER(probe)(CPUHPPAState *env, target_ulong addr,
|
|||||||
excp = hppa_get_physical_address(env, addr, mmu_idx, 0, &phys,
|
excp = hppa_get_physical_address(env, addr, mmu_idx, 0, &phys,
|
||||||
&prot, NULL);
|
&prot, NULL);
|
||||||
if (excp >= 0) {
|
if (excp >= 0) {
|
||||||
if (env->psw & PSW_Q) {
|
hppa_set_ior_and_isr(env, addr, MMU_IDX_MMU_DISABLED(mmu_idx));
|
||||||
/* ??? Needs tweaking for hppa64. */
|
|
||||||
env->cr[CR_IOR] = addr;
|
|
||||||
env->cr[CR_ISR] = addr >> 32;
|
|
||||||
}
|
|
||||||
if (excp == EXCP_DTLB_MISS) {
|
if (excp == EXCP_DTLB_MISS) {
|
||||||
excp = EXCP_NA_DTLB_MISS;
|
excp = EXCP_NA_DTLB_MISS;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user