[PATCH v2 4/7] target/sparc: Loosen decode of RDPSR for v7

Richard Henderson posted 7 patches 5 months, 1 week ago
Maintainers: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>
[PATCH v2 4/7] target/sparc: Loosen decode of RDPSR for v7
Posted by Richard Henderson 5 months, 1 week ago
For v7, bits [18:0] are ignored.
For v8, bits [18:14] are reserved and bits [13:0] are ignored.

Fixes: 668bb9b755e ("target/sparc: Move RDPSR, RDHPR to decodetree")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/sparc/insns.decode | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode
index 74848996ae..1c6403ad8a 100644
--- a/target/sparc/insns.decode
+++ b/target/sparc/insns.decode
@@ -158,14 +158,16 @@ CALL    01 i:s30
 }
 
 {
-  RDPSR             10 rd:5  101001 00000 0 0000000000000
-  RDHPR_hpstate     10 rd:5  101001 00000 0 0000000000000
+  [
+    RDHPR_hpstate       10 rd:5  101001 00000 0 0000000000000
+    RDHPR_htstate       10 rd:5  101001 00001 0 0000000000000
+    RDHPR_hintp         10 rd:5  101001 00011 0 0000000000000
+    RDHPR_htba          10 rd:5  101001 00101 0 0000000000000
+    RDHPR_hver          10 rd:5  101001 00110 0 0000000000000
+    RDHPR_hstick_cmpr   10 rd:5  101001 11111 0 0000000000000
+  ]
+  RDPSR                 10 rd:5  101001 ----- - -------------
 }
-RDHPR_htstate       10 rd:5  101001 00001 0 0000000000000
-RDHPR_hintp         10 rd:5  101001 00011 0 0000000000000
-RDHPR_htba          10 rd:5  101001 00101 0 0000000000000
-RDHPR_hver          10 rd:5  101001 00110 0 0000000000000
-RDHPR_hstick_cmpr   10 rd:5  101001 11111 0 0000000000000
 
 {
   WRPSR             10 00000 110001 ..... . .............  @n_r_ri
-- 
2.43.0
Re: [PATCH v2 4/7] target/sparc: Loosen decode of RDPSR for v7
Posted by Mark Cave-Ayland 4 months, 3 weeks ago
On 05/09/2025 12:51, Richard Henderson wrote:

> For v7, bits [18:0] are ignored.
> For v8, bits [18:14] are reserved and bits [13:0] are ignored.
> 
> Fixes: 668bb9b755e ("target/sparc: Move RDPSR, RDHPR to decodetree")
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   target/sparc/insns.decode | 16 +++++++++-------
>   1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode
> index 74848996ae..1c6403ad8a 100644
> --- a/target/sparc/insns.decode
> +++ b/target/sparc/insns.decode
> @@ -158,14 +158,16 @@ CALL    01 i:s30
>   }
>   
>   {
> -  RDPSR             10 rd:5  101001 00000 0 0000000000000
> -  RDHPR_hpstate     10 rd:5  101001 00000 0 0000000000000
> +  [
> +    RDHPR_hpstate       10 rd:5  101001 00000 0 0000000000000
> +    RDHPR_htstate       10 rd:5  101001 00001 0 0000000000000
> +    RDHPR_hintp         10 rd:5  101001 00011 0 0000000000000
> +    RDHPR_htba          10 rd:5  101001 00101 0 0000000000000
> +    RDHPR_hver          10 rd:5  101001 00110 0 0000000000000
> +    RDHPR_hstick_cmpr   10 rd:5  101001 11111 0 0000000000000
> +  ]
> +  RDPSR                 10 rd:5  101001 ----- - -------------
>   }
> -RDHPR_htstate       10 rd:5  101001 00001 0 0000000000000
> -RDHPR_hintp         10 rd:5  101001 00011 0 0000000000000
> -RDHPR_htba          10 rd:5  101001 00101 0 0000000000000
> -RDHPR_hver          10 rd:5  101001 00110 0 0000000000000
> -RDHPR_hstick_cmpr   10 rd:5  101001 11111 0 0000000000000
>   
>   {
>     WRPSR             10 00000 110001 ..... . .............  @n_r_ri

This looks like it matches the behaviour of the old decoder.

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.