[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 11/31] target/sparc: Move cpu_put_fsr(env, 0) call to reset
From: |
Peter Maydell |
Subject: |
[PULL 11/31] target/sparc: Move cpu_put_fsr(env, 0) call to reset |
Date: |
Tue, 5 Nov 2024 11:19:15 +0000 |
Currently we call cpu_put_fsr(0) in sparc_cpu_realizefn(), which
initializes various fields in the CPU struct:
* fsr_cexc_ftt
* fcc[]
* fsr_qne
* fsr
It also sets the rounding mode in env->fp_status.
This is largely pointless, because when we later reset the CPU
this will zero out all the fields up until the "end_reset_fields"
label, which includes all of these (but not fp_status!)
Move the cpu_put_fsr(env, 0) call to reset, because that expresses
the logical requirement: we want to reset FSR to 0 on every reset.
This isn't a behaviour change because the fields are all zero anyway.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20241025141254.2141506-12-peter.maydell@linaro.org
---
target/sparc/cpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index 54cb269e0af..e7f4068a162 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -76,6 +76,7 @@ static void sparc_cpu_reset_hold(Object *obj, ResetType type)
env->npc = env->pc + 4;
#endif
env->cache_control = 0;
+ cpu_put_fsr(env, 0);
}
#ifndef CONFIG_USER_ONLY
@@ -805,7 +806,6 @@ static void sparc_cpu_realizefn(DeviceState *dev, Error
**errp)
env->version |= env->def.maxtl << 8;
env->version |= env->def.nwindows - 1;
#endif
- cpu_put_fsr(env, 0);
cpu_exec_realizefn(cs, &local_err);
if (local_err != NULL) {
--
2.34.1
- [PULL 00/31] target-arm queue, Peter Maydell, 2024/11/05
- [PULL 02/31] tests/fp: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 04/31] target/mips: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 06/31] target/hppa: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 03/31] target/arm: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 09/31] target/m68k: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 05/31] target/loongarch: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 11/31] target/sparc: Move cpu_put_fsr(env, 0) call to reset,
Peter Maydell <=
- [PULL 07/31] target/s390x: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 15/31] target/i386: Set 2-NaN propagation rule explicitly, Peter Maydell, 2024/11/05
- [PULL 01/31] softfloat: Allow 2-operand NaN propagation rule to be set at runtime, Peter Maydell, 2024/11/05
- [PULL 10/31] target/m68k: Initialize float_status fields in gdb set/get functions, Peter Maydell, 2024/11/05
- [PULL 14/31] target/xtensa: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 08/31] target/ppc: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 17/31] target/microblaze: Move setting of float rounding mode to reset, Peter Maydell, 2024/11/05
- [PULL 12/31] target/sparc: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05
- [PULL 13/31] target/xtensa: Factor out calls to set_use_first_nan(), Peter Maydell, 2024/11/05
- [PULL 20/31] target/rx: Explicitly set 2-NaN propagation rule, Peter Maydell, 2024/11/05