Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/fpu/softfloat-parts.h | 12 ++++++++++++
fpu/softfloat-parts.c.inc | 4 ++--
fpu/softfloat-specialize.c.inc | 4 ++--
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/include/fpu/softfloat-parts.h b/include/fpu/softfloat-parts.h
index f631c38c79..9f7ee34d6a 100644
--- a/include/fpu/softfloat-parts.h
+++ b/include/fpu/softfloat-parts.h
@@ -163,4 +163,16 @@ float64 float64_round_pack_canonical(FloatParts64 *p, float_status *s);
float128 float128_round_pack_canonical(FloatParts128 *p, float_status *s);
floatx80 floatx80_round_pack_canonical(FloatParts128 *p, float_status *s);
+/*
+ * NaN handling
+ */
+
+FloatParts64 parts64_default_nan(float_status *status);
+FloatParts128 parts128_default_nan(float_status *status);
+
+FloatParts64 parts64_pick_nan(const FloatParts64 *, const FloatParts64 *,
+ float_status *);
+FloatParts128 parts128_pick_nan(const FloatParts128 *, const FloatParts128 *,
+ float_status *);
+
#endif
diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc
index 642ad5dfb9..cdab18bf26 100644
--- a/fpu/softfloat-parts.c.inc
+++ b/fpu/softfloat-parts.c.inc
@@ -37,8 +37,8 @@ static FloatPartsN partsN(return_nan)(const FloatPartsN *a, float_status *s)
return *a;
}
-static FloatPartsN partsN(pick_nan)(const FloatPartsN *a, const FloatPartsN *b,
- float_status *s)
+FloatPartsN partsN(pick_nan)(const FloatPartsN *a, const FloatPartsN *b,
+ float_status *s)
{
bool have_snan = false;
const FloatPartsN *ret;
diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc
index 2723bf5e61..485f082cf8 100644
--- a/fpu/softfloat-specialize.c.inc
+++ b/fpu/softfloat-specialize.c.inc
@@ -118,7 +118,7 @@ static bool parts_is_snan_frac(uint64_t frac, float_status *status)
| The pattern for a default generated deconstructed floating-point NaN.
*----------------------------------------------------------------------------*/
-static FloatParts64 parts64_default_nan(float_status *status)
+FloatParts64 parts64_default_nan(float_status *status)
{
bool sign = 0;
uint64_t frac;
@@ -142,7 +142,7 @@ static FloatParts64 parts64_default_nan(float_status *status)
};
}
-static FloatParts128 parts128_default_nan(float_status *status)
+FloatParts128 parts128_default_nan(float_status *status)
{
/*
* Extrapolate from the choices made by parts64_default_nan to fill
--
2.43.0