qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] target/hppa: mask upper iaoq bits when returning to narrow m


From: Richard Henderson
Subject: Re: [PATCH] target/hppa: mask upper iaoq bits when returning to narrow mode
Date: Mon, 1 Apr 2024 08:43:58 -1000
User-agent: Mozilla Thunderbird

On 4/1/24 04:52, Sven Schnelle wrote:
For unknown reasons, Java 1.5 on 64-bit HP-UX 11.11 does signed
computation of the new IAOQ value in the signal handler. In the
current code these bits are not masked when returning to narrow
mode, causing java to crash.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
---
  target/hppa/sys_helper.c | 4 ++++
  1 file changed, 4 insertions(+)

diff --git a/target/hppa/sys_helper.c b/target/hppa/sys_helper.c
index 208e51c086..3bbc2da71b 100644
--- a/target/hppa/sys_helper.c
+++ b/target/hppa/sys_helper.c
@@ -83,6 +83,10 @@ void HELPER(rfi)(CPUHPPAState *env)
      env->iaoq_f = env->cr[CR_IIAOQ];
      env->iaoq_b = env->cr_back[1];
+ if (!(env->cr[CR_IPSW] & PSW_W)) {
+        env->iaoq_f &= 0xffffffff;
+        env->iaoq_b &= 0xffffffff;
+    }

This shouldn't be needed, because we are already masking these bits later, in cpu_get_tb_cpu_state. But I do have some cleanups in this area, and perhaps one of them matters.


Please try

https://gitlab.com/rth7680/qemu/-/commit/d06e0303595a63565593ab2a5d42f312135b9ded


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]