qemu/target/arm
Peter Maydell e07b48995a target/arm: Use FPST_A64_F16 for halfprec-to-other conversions
We should be using the F16-specific float_status for conversions from
half-precision, because halfprec inputs never set Input Denormal.

Without FEAT_AHP, using the wrong fpst here had no effect, because
the only difference between the A64_F16 and A64 fpst is its handling
of flush-to-zero on input and output, and the helper functions
vfp_fcvt_f16_to_* and vfp_fcvt_*_to_f16 all explicitly squash the
relevant flushing flags, and flush_inputs_to_zero was the only way
that IDC could be set.

With FEAT_AHP, the FPCR.AH=1 behaviour sets IDC for
input_denormal_used, which we will only ignore in
vfp_get_fpsr_from_host() for the A64_F16 fpst; so it matters that we
use that one for f16 inputs (and the normal one for single/double to
f16 conversions).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250124162836.2332150-27-peter.maydell@linaro.org
2025-01-28 18:40:19 +00:00
..
hvf include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
tcg target/arm: Use FPST_A64_F16 for halfprec-to-other conversions 2025-01-28 18:40:19 +00:00
arch_dump.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
arm-powerctl.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
arm-powerctl.h target/arm/arm-powerctl: Add new arm_set_cpu_on_and_reset() 2019-02-28 11:03:04 +00:00
arm-qmp-cmds.c target/arm: add new property to select pauth-qarma5 2025-01-13 12:35:34 +00:00
common-semi-target.h target/arm/common-semi-target.h: Remove unnecessary boot.h include 2023-10-19 14:32:13 +01:00
cortex-regs.c target/arm: Saturate L2CTLR_EL1 core count field rather than overflowing 2023-05-18 11:39:33 +01:00
cpregs.h target/arm: Add ARM_CP_ADD_TLBI_NXS type flag for NXS insns 2024-12-17 15:17:46 +00:00
cpu-features.h target/arm: Implement fine-grained-trap handling for FEAT_XS 2024-12-17 15:17:46 +00:00
cpu-param.h license: Update deprecated SPDX tag LGPL-2.0+ to LGPL-2.0-or-later 2024-09-20 10:11:59 +03:00
cpu-qom.h target/arm: Add support for Non-maskable Interrupt 2024-04-25 10:21:04 +01:00
cpu.c target/arm: Remove now-unused vfp.fp_status_f16 and FPST_FPCR_F16 2025-01-28 18:40:19 +00:00
cpu.h target/arm: Remove now-unused vfp.fp_status_f16 and FPST_FPCR_F16 2025-01-28 18:40:19 +00:00
cpu64.c target/arm: change default pauth algorithm to impdef 2025-01-13 12:35:34 +00:00
debug_helper.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
gdbstub.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
gdbstub64.c gdbstub: Add support for MTE in system mode 2024-09-10 23:33:51 +01:00
gtimer.h target/arm: Move GTimer definitions to new 'gtimer.h' header 2024-01-26 11:30:49 +00:00
helper.c target/arm: arm_reset_sve_state() should set FPSR, not FPCR 2025-01-28 18:40:19 +00:00
helper.h target/arm: Use float_status in helper_vfp_fcvt{ds,sd} 2024-12-17 15:05:42 +00:00
hvf_arm.h hvf: arm: Implement and use hvf_get_physical_address_range 2024-09-13 15:31:47 +01:00
hyp_gdbstub.c target/arm: remove break after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
idau.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
internals.h accel/tcg: Move gen_intermediate_code to TCGCPUOps.translate_core 2024-12-24 08:32:15 -08:00
Kconfig kconfig: express dependency of individual boards on libfdt 2024-05-10 15:45:15 +02:00
kvm-consts.h exec: Rename NEED_CPU_H -> COMPILING_PER_TARGET 2024-04-26 09:49:51 +02:00
kvm-stub.c target/arm: Avoid bare abort() or assert(0) 2022-05-05 09:35:51 +01:00
kvm.c acpi/ghes: better name GHES memory error function 2025-01-15 13:07:10 -05:00
kvm_arm.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
machine.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
meson.build target/arm: Move v7m-related code from cpu32.c into a separate file 2024-03-08 14:45:03 +00:00
multiprocessing.h target/arm: Expose arm_cpu_mp_affinity() in 'multiprocessing.h' header 2024-01-26 11:30:48 +00:00
ptw.c arm/ptw: Honour WXN/UWXN and SIF in short-format descriptors 2024-11-19 13:02:06 +00:00
syndrome.h target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 13:51:57 +00:00
tcg-stubs.c target/arm: Move some TLBI insns to their own source file 2024-12-13 15:41:09 +00:00
trace-events target/arm: Implement FEAT_ECV CNTPOFF_EL2 handling 2024-03-07 12:19:03 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vfp_helper.c fpu: Rename float_flag_output_denormal to float_flag_output_denormal_flushed 2025-01-28 18:40:19 +00:00