Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
---
fpu/softfloat-parts.c.inc | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc
index 7d4b40022b..211ecdf114 100644
--- a/fpu/softfloat-parts.c.inc
+++ b/fpu/softfloat-parts.c.inc
@@ -114,13 +114,15 @@ FloatPartsN partsN(pick_nan)(const FloatPartsN *a, const
FloatPartsN *b,
return *ret;
}
-static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN *a, FloatPartsN *b,
- FloatPartsN *c, float_status *s,
- int ab_mask, int abc_mask)
+static FloatPartsN partsN(pick_nan_muladd)(const FloatPartsN *a,
+ const FloatPartsN *b,
+ const FloatPartsN *c,
+ float_status *s,
+ int ab_mask, int abc_mask)
{
bool infzero = (ab_mask == float_cmask_infzero);
bool have_snan = (abc_mask & float_cmask_snan);
- FloatPartsN *ret;
+ const FloatPartsN *ret;
if (unlikely(have_snan)) {
float_raise(float_flag_invalid | float_flag_invalid_snan, s);
@@ -160,7 +162,7 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN *a,
FloatPartsN *b,
}
ret = c;
} else {
- FloatPartsN *val[R_3NAN_1ST_MASK + 1] = { a, b, c };
+ const FloatPartsN *val[R_3NAN_1ST_MASK + 1] = { a, b, c };
Float3NaNPropRule rule = s->float_3nan_prop_rule;
assert(rule != float_3nan_prop_none);
@@ -179,13 +181,12 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN
*a, FloatPartsN *b,
}
if (is_snan(ret->cls)) {
- *ret = partsN(silence_nan)(ret, s);
+ return partsN(silence_nan)(ret, s);
}
- return ret;
+ return *ret;
default_nan:
- *a = partsN(default_nan)(s);
- return a;
+ return partsN(default_nan)(s);
}
/*
@@ -698,7 +699,8 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *a,
FloatPartsN *b,
* off to the target-specific pick-a-NaN routine.
*/
if (unlikely(abc_mask & float_cmask_anynan)) {
- return partsN(pick_nan_muladd)(a, b, c, s, ab_mask, abc_mask);
+ *a = partsN(pick_nan_muladd)(a, b, c, s, ab_mask, abc_mask);
+ return a;
}
if (flags & float_muladd_negate_c) {
--
2.43.0