aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2023-11-10 01:11:24 +0100
committerRichard Henderson <richard.henderson@linaro.org>2023-11-13 09:17:07 -0800
commite722e5a11212f3080456dea1c3cc5b231d1d3a2d (patch)
treec604d41e0d45c201372aaeb25abb368507227fd2 /target
parent576fc9376d7f220a21807bd7759d297acb4b6072 (diff)
downloadqemu-e722e5a11212f3080456dea1c3cc5b231d1d3a2d.zip
qemu-e722e5a11212f3080456dea1c3cc5b231d1d3a2d.tar.gz
qemu-e722e5a11212f3080456dea1c3cc5b231d1d3a2d.tar.bz2
target/hppa: Fix calculation of CR_IIASQ back register
Need to use iasq_b and iaoq_b to determine back register of CR_IIASQ. This fixes random faults when booting up Linux user space. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target')
-rw-r--r--target/hppa/int_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index 467ee7d..98e9d68 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -126,7 +126,7 @@ void hppa_cpu_do_interrupt(CPUState *cs)
env->cr[CR_IIASQ] =
hppa_form_gva_psw(old_psw, env->iasq_f, env->iaoq_f) >> 32;
env->cr_back[0] =
- hppa_form_gva_psw(old_psw, env->iasq_f, env->iaoq_f) >> 32;
+ hppa_form_gva_psw(old_psw, env->iasq_b, env->iaoq_b) >> 32;
} else {
env->cr[CR_IIASQ] = 0;
env->cr_back[0] = 0;