[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 18/72] target/hppa: Set FloatInfZeroNaNRule explicitly
From: |
Peter Maydell |
Subject: |
[PULL 18/72] target/hppa: Set FloatInfZeroNaNRule explicitly |
Date: |
Wed, 11 Dec 2024 16:19:10 +0000 |
Set the FloatInfZeroNaNRule explicitly for the HPPA target,
so we can remove the ifdef from pickNaNMulAdd().
As this is the last target to be converted to explicitly setting
the rule, we can remove the fallback code in pickNaNMulAdd()
entirely.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20241202131347.498124-14-peter.maydell@linaro.org
---
target/hppa/fpu_helper.c | 2 ++
fpu/softfloat-specialize.c.inc | 13 +------------
2 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/target/hppa/fpu_helper.c b/target/hppa/fpu_helper.c
index 0e44074ba82..393cae33bf9 100644
--- a/target/hppa/fpu_helper.c
+++ b/target/hppa/fpu_helper.c
@@ -55,6 +55,8 @@ void HELPER(loaded_fr0)(CPUHPPAState *env)
* HPPA does note implement a CPU reset method at all...
*/
set_float_2nan_prop_rule(float_2nan_prop_s_ab, &env->fp_status);
+ /* For inf * 0 + NaN, return the input NaN */
+ set_float_infzeronan_rule(float_infzeronan_dnan_never, &env->fp_status);
}
void cpu_hppa_loaded_fr0(CPUHPPAState *env)
diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc
index 05dec2fcb4c..3e4ec938b25 100644
--- a/fpu/softfloat-specialize.c.inc
+++ b/fpu/softfloat-specialize.c.inc
@@ -475,8 +475,6 @@ static int pickNaN(FloatClass a_cls, FloatClass b_cls,
static int pickNaNMulAdd(FloatClass a_cls, FloatClass b_cls, FloatClass c_cls,
bool infzero, float_status *status)
{
- FloatInfZeroNaNRule rule = status->float_infzeronan_rule;
-
/*
* We guarantee not to require the target to tell us how to
* pick a NaN if we're always returning the default NaN.
@@ -485,21 +483,12 @@ static int pickNaNMulAdd(FloatClass a_cls, FloatClass
b_cls, FloatClass c_cls,
*/
assert(!status->default_nan_mode);
- if (rule == float_infzeronan_none) {
- /*
- * Temporarily fall back to ifdef ladder
- */
-#if defined(TARGET_HPPA)
- rule = float_infzeronan_dnan_never;
-#endif
- }
-
if (infzero) {
/*
* Inf * 0 + NaN -- some implementations return the default NaN here,
* and some return the input NaN.
*/
- switch (rule) {
+ switch (status->float_infzeronan_rule) {
case float_infzeronan_dnan_never:
return 2;
case float_infzeronan_dnan_always:
--
2.34.1
- [PULL 09/72] tests/fp: Explicitly set inf-zero-nan rule, (continued)
- [PULL 09/72] tests/fp: Explicitly set inf-zero-nan rule, Peter Maydell, 2024/12/11
- [PULL 10/72] target/arm: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 11/72] target/s390: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 12/72] target/ppc: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 13/72] target/mips: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 14/72] target/sparc: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 15/72] target/xtensa: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 16/72] target/x86: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 19/72] softfloat: Pass have_snan to pickNaNMulAdd, Peter Maydell, 2024/12/11
- [PULL 17/72] target/loongarch: Set FloatInfZeroNaNRule explicitly, Peter Maydell, 2024/12/11
- [PULL 18/72] target/hppa: Set FloatInfZeroNaNRule explicitly,
Peter Maydell <=
- [PULL 20/72] softfloat: Allow runtime choice of NaN propagation for muladd, Peter Maydell, 2024/12/11
- [PULL 23/72] target/loongarch: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 24/72] target/ppc: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 22/72] target/arm: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 21/72] tests/fp: Explicitly set 3-NaN propagation rule, Peter Maydell, 2024/12/11
- [PULL 27/72] target/mips: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 28/72] target/xtensa: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 30/72] target/hppa: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 25/72] target/s390x: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11
- [PULL 26/72] target/sparc: Set Float3NaNPropRule explicitly, Peter Maydell, 2024/12/11