On Fri, 2024-10-25 at 15:12 +0100, Peter Maydell wrote:
> Set the 2-NaN propagation rule explicitly in env->fpu_status.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> target/s390x/cpu.c | 1 +
> fpu/softfloat-specialize.c.inc | 5 ++---
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index 4e41a3dff59..514c70f3010 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -205,6 +205,7 @@ static void s390_cpu_reset_hold(Object *obj,
> ResetType type)
> /* tininess for underflow is detected before rounding */
> set_float_detect_tininess(float_tininess_before_rounding,
> &env->fpu_status);
> + set_float_2nan_prop_rule(float_2nan_prop_s_ab, &env-
> >fpu_status);
> /* fall through */
> case RESET_TYPE_S390_CPU_NORMAL:
> env->psw.mask &= ~PSW_MASK_RI;
> diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-
> specialize.c.inc
> index 4e51cf8d083..a0c740e544d 100644
> --- a/fpu/softfloat-specialize.c.inc
> +++ b/fpu/softfloat-specialize.c.inc
> @@ -403,10 +403,9 @@ static int pickNaN(FloatClass a_cls, FloatClass
> b_cls,
> #if defined(TARGET_AVR) || defined(TARGET_HEXAGON) \
> || defined(TARGET_RISCV) || defined(TARGET_SH4) \
> || defined(TARGET_TRICORE) || defined(TARGET_ARM) ||
> defined(TARGET_MIPS) \
> - || defined(TARGET_LOONGARCH64) || defined(TARGET_HPPA)
> + || defined(TARGET_LOONGARCH64) || defined(TARGET_HPPA) \
> + || defined(TARGET_S390X)
> g_assert_not_reached();
> -#elif defined(TARGET_S390X)
> - rule = float_2nan_prop_s_ab;
> #elif defined(TARGET_PPC) || defined(TARGET_M68K)
> /*
> * PowerPC propagation rules:
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Thanks!