target/arm: Explicitly set 2-NaN propagation rule
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 5 Nov 2024 10:09:53 +0000 (10:09 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 5 Nov 2024 10:09:53 +0000 (10:09 +0000)
commitd1ff996788a41280e2e0213b9571afeca4d6ca90
treed2253df5e538d9731c2056e967b536245b1e0dce
parentd22c9949d73d714e1ea2caf033131d882ad1d66a
target/arm: Explicitly set 2-NaN propagation rule

Set the 2-NaN propagation rule explicitly in the float_status words
we use.  We wrap this plus the pre-existing setting of the
tininess-before-rounding flag in a new function
arm_set_default_fp_behaviours() to avoid repetition, since we have a
lot of float_status words at this point.

The situation with FPA11 emulation in linux-user is a little odd, and
arguably "correct" behaviour there would be to exactly match a real
Linux kernel's FPA11 emulation.  However FPA11 emulation is
essentially dead at this point and so it seems better to continue
with QEMU's current behaviour and leave a comment describing the
situation.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20241025141254.2141506-4-peter.maydell@linaro.org
fpu/softfloat-specialize.c.inc
linux-user/arm/nwfpe/fpa11.c
target/arm/cpu.c