target/arm: Check NaN mode before silencing NaN
authorJoe Komlodi <joe.komlodi@xilinx.com>
Fri, 25 Jun 2021 23:02:54 +0000 (16:02 -0700)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 2 Jul 2021 10:48:36 +0000 (11:48 +0100)
commit103e7579ddbd539fbe38e150da78264d0496023a
treef4b78e090d7d0379e2eb0400b82038ea68555923
parent95079d5c79a315426fef19b0245db06b71e6c863
target/arm: Check NaN mode before silencing NaN

If the CPU is running in default NaN mode (FPCR.DN == 1) and we execute
FRSQRTE, FRECPE, or FRECPX with a signaling NaN, parts_silence_nan_frac() will
assert due to fpst->default_nan_mode being set.

To avoid this, we check to see what NaN mode we're running in before we call
floatxx_silence_nan().

Signed-off-by: Joe Komlodi <joe.komlodi@xilinx.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 1624662174-175828-2-git-send-email-joe.komlodi@xilinx.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper-a64.c
target/arm/vfp_helper.c