[PATCH v2 6/9] target/hppa: Strip upper 32-bits of IOR on unaligned access error

deller@kernel.org posted 9 patches 10 months, 3 weeks ago
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Helge Deller <deller@gmx.de>
There is a newer version of this series
[PATCH v2 6/9] target/hppa: Strip upper 32-bits of IOR on unaligned access error
Posted by deller@kernel.org 10 months, 3 weeks ago
From: Helge Deller <deller@gmx.de>

Limit IOR to the lower 32-bits on failure.
Keep patch short for easier backporting.

Signed-off-by: Helge Deller <deller@gmx.de>
---
 target/hppa/cpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 04de1689d7..3c384d5855 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -112,7 +112,7 @@ void hppa_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
     cs->exception_index = EXCP_UNALIGN;
     if (env->psw & PSW_Q) {
         /* ??? Needs tweaking for hppa64.  */
-        env->cr[CR_IOR] = addr;
+        env->cr[CR_IOR] = (uint32_t)addr;
         env->cr[CR_ISR] = addr >> 32;
     }
 
-- 
2.43.0
Re: [PATCH v2 6/9] target/hppa: Strip upper 32-bits of IOR on unaligned access error
Posted by Richard Henderson 10 months, 3 weeks ago
On 1/8/24 00:22, deller@kernel.org wrote:
> From: Helge Deller <deller@gmx.de>
> 
> Limit IOR to the lower 32-bits on failure.
> Keep patch short for easier backporting.
> 
> Signed-off-by: Helge Deller <deller@gmx.de>
> ---
>   target/hppa/cpu.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
> index 04de1689d7..3c384d5855 100644
> --- a/target/hppa/cpu.c
> +++ b/target/hppa/cpu.c
> @@ -112,7 +112,7 @@ void hppa_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
>       cs->exception_index = EXCP_UNALIGN;
>       if (env->psw & PSW_Q) {
>           /* ??? Needs tweaking for hppa64.  */
> -        env->cr[CR_IOR] = addr;
> +        env->cr[CR_IOR] = (uint32_t)addr;
>           env->cr[CR_ISR] = addr >> 32;
>       }
>   

Likewise, might need raise_exception_with_ior.

r~