qemu/target/sparc
Peter Maydell 5edd92d6c3 target/sparc: Initialize local scratch float_status from env->fp_status
In the helper functions flcmps and flcmpd we use a scratch float_status
so that we don't change the CPU state if the comparison raises any
floating point exception flags. Instead of zero-initializing this
scratch float_status, initialize it as a copy of env->fp_status. This
avoids the need to explicitly initialize settings like the NaN
propagation rule or others we might add to softfloat in future.

To do this we need to pass the CPU env pointer in to the helper.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20241202131347.498124-33-peter.maydell@linaro.org
2024-12-11 15:31:03 +00:00
..
asi.h target/sparc: Implement monitor ASIs 2024-06-05 09:11:17 -07:00
cpu-feature.h.inc target/sparc: Add feature bit for VIS4 2024-06-05 09:08:39 -07: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: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c target/sparc: Set Float3NaNPropRule explicitly 2024-12-11 15:30:58 +00:00
cpu.h target/sparc: Add FSR_QNE to tb_flags 2024-09-11 19:54:47 -07:00
fop_helper.c target/sparc: Initialize local scratch float_status from env->fp_status 2024-12-11 15:31:03 +00:00
gdbstub.c target/sparc: Replace abi_ulong by uint32_t for TARGET_ABI32 2024-04-26 15:31:37 +02:00
helper.c target/sparc: use signed denominator in sdiv helper 2024-06-19 13:50:22 -07:00
helper.h target/sparc: Initialize local scratch float_status from env->fp_status 2024-12-11 15:31:03 +00:00
insns.decode license: Update deprecated SPDX tag LGPL-2.0+ to LGPL-2.0-or-later 2024-09-20 10:11:59 +03:00
int32_helper.c target/sparc: Populate sparc32 FQ when raising fp exception 2024-09-11 19:54:42 -07:00
int64_helper.c target/sparc: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:25 +01:00
Kconfig meson: Introduce target-specific Kconfig 2021-07-09 18:21:34 +02:00
ldst_helper.c sparc/ldst_helper: make range overlap check more readable 2024-07-23 20:30:36 +02:00
machine.c target/sparc: Add FQ and FSR.QNE 2024-09-11 19:54:35 -07:00
meson.build target/sparc: Remove CC_OP leftovers 2023-11-05 12:03:17 -08:00
mmu_helper.c exec/cpu: Extract page-protection definitions to page-protection.h 2024-05-06 11:17:15 +02:00
monitor.c target/sparc: Handle FPRS correctly on big-endian hosts 2023-07-25 14:42:00 +02:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
translate.c target/sparc: Initialize local scratch float_status from env->fp_status 2024-12-11 15:31:03 +00:00
vis_helper.c target/sparc: Implement VIS4 comparisons 2024-06-05 09:09:36 -07:00
win_helper.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00