On Sat, 1 Feb 2025 at 16:40, Peter Maydell <peter.mayd...@linaro.org> wrote: > > When FPCR.AH is set, various behaviours of AArch64 floating point > operations which are controlled by softfloat config settings change: > * tininess and ftz detection before/after rounding > * NaN propagation order > * result of 0 * Inf + NaN > * default NaN value > > When the guest changes the value of the AH bit, switch these config > settings on the fp_status_a64 and fp_status_f16_a64 float_status > fields. > > This requires us to make the arm_set_default_fp_behaviours() function > global, since we now need to call it from cpu.c and vfp_helper.c; we > move it to vfp_helper.c so it can be next to the new > arm_set_ah_fp_behaviours(). > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
This turns out to need this tweak folding in to avoid compile failures on the kvm-only config: #include "exec/helper-proto.h" #include "internals.h" #include "cpu-features.h" +#include "fpu/softfloat.h" #ifdef CONFIG_TCG #include "qemu/log.h" -#include "fpu/softfloat.h" #endif (Once this has landed I'm tempted to clean up vfp_helper.c so that e.g. the tcg-only parts get moved into tcg/ rather than almost all of the file being inside an ifdef.) -- PMM