Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
---
include/fpu/softfloat-parts.h | 15 +++++++++++++++
fpu/softfloat-parts.c.inc | 6 +++---
fpu/softfloat-specialize.c.inc | 4 ++--
3 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/include/fpu/softfloat-parts.h b/include/fpu/softfloat-parts.h
index 1329bc4d2f..8c3a94bbbc 100644
--- a/include/fpu/softfloat-parts.h
+++ b/include/fpu/softfloat-parts.h
@@ -163,6 +163,21 @@ 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 *);
+
+FloatParts64 parts64_return_nan(const FloatParts64 *a, float_status *s);
+FloatParts128 parts128_return_nan(const FloatParts128 *a, float_status *s);
+
/*
* Operations
*/
diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc
index 1cd0df4159..7d4b40022b 100644
--- a/fpu/softfloat-parts.c.inc
+++ b/fpu/softfloat-parts.c.inc
@@ -15,7 +15,7 @@
* indicated otherwise.
*/
-static FloatPartsN partsN(return_nan)(const FloatPartsN *a, float_status *s)
+FloatPartsN partsN(return_nan)(const FloatPartsN *a, float_status *s)
{
switch (a->cls) {
case float_class_snan:
@@ -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