target/arm: Implement FPCR.AH handling for scalar FABS and FABD
authorPeter Maydell <peter.maydell@linaro.org>
Sat, 1 Feb 2025 16:39:35 +0000 (16:39 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 11 Feb 2025 16:22:07 +0000 (16:22 +0000)
commitd091ce2d3f5bad6df30c686558807bcffb0c5a96
treeda7731a41dc13491edcc5374c9db3b33b0b013f8
parente76df44d2dd06018016f35aff41258ce356d6e40
target/arm: Implement FPCR.AH handling for scalar FABS and FABD

FPCR.AH == 1 mandates that taking the absolute value of a NaN should
not change its sign bit.  This means we can no longer use
gen_vfp_abs*() everywhere but must instead generate slightly more
complex code when FPCR.AH is set.

Implement these semantics for scalar FABS and FABD.  This change also
affects all other instructions whose psuedocode calls FPAbs(); we
will extend the change to those instructions in following commits.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
target/arm/tcg/translate-a64.c