diff mbox series

[v2,for-10.0,46/54] target/sh4: Set default NaN pattern explicitly

Message ID 20241202131347.498124-47-peter.maydell@linaro.org
State Superseded
Headers show
Series fpu: Remove pickNaNMulAdd, default-NaN ifdefs | expand

Commit Message

Peter Maydell Dec. 2, 2024, 1:13 p.m. UTC
Set the default NaN pattern explicitly for sh4. Note that sh4
is one of the only three targets (the others being HPPA and
sometimes MIPS) that has snan_bit_is_one set.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 target/sh4/cpu.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Richard Henderson Dec. 2, 2024, 5:35 p.m. UTC | #1
On 12/2/24 07:13, Peter Maydell wrote:
> Set the default NaN pattern explicitly for sh4. Note that sh4
> is one of the only three targets (the others being HPPA and
> sometimes MIPS) that has snan_bit_is_one set.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   target/sh4/cpu.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c
> index 8f07261dcfd..d5008859b8e 100644
> --- a/target/sh4/cpu.c
> +++ b/target/sh4/cpu.c
> @@ -127,6 +127,8 @@ static void superh_cpu_reset_hold(Object *obj, ResetType type)
>       set_flush_to_zero(1, &env->fp_status);
>   #endif
>       set_default_nan_mode(1, &env->fp_status);
> +    /* sign bit clear, set all frac bits other than msb */
> +    set_float_default_nan_pattern(0b00111111, &env->fp_status);
>   }
>   
>   static void superh_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
diff mbox series

Patch

diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c
index 8f07261dcfd..d5008859b8e 100644
--- a/target/sh4/cpu.c
+++ b/target/sh4/cpu.c
@@ -127,6 +127,8 @@  static void superh_cpu_reset_hold(Object *obj, ResetType type)
     set_flush_to_zero(1, &env->fp_status);
 #endif
     set_default_nan_mode(1, &env->fp_status);
+    /* sign bit clear, set all frac bits other than msb */
+    set_float_default_nan_pattern(0b00111111, &env->fp_status);
 }
 
 static void superh_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)