]> Savannah Git Hosting - gnulib.git/commitdiff
setpayload*: Support newer MIPS CPUs.
authorBruno Haible <bruno@clisp.org>
Fri, 19 Apr 2024 00:14:41 +0000 (02:14 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 19 Apr 2024 00:14:41 +0000 (02:14 +0200)
* lib/setpayload.c (setpayload): On MIPS CPUs with MIPS_NAN2008_DOUBLE,
accept a zero payload.
* lib/setpayloadf.c (setpayloadf): On MIPS CPUs with MIPS_NAN2008_FLOAT,
accept a zero payload.
* lib/setpayloadl.c (setpayloadl): On MIPS CPUs with
MIPS_NAN2008_LONG_DOUBLE, accept a zero payload.
* m4/setpayload.m4 (gl_FUNC_SETPAYLOADF, gl_FUNC_SETPAYLOAD,
gl_FUNC_SETPAYLOADL): Invoke gl_NAN_MIPS.
* modules/setpayload (Files): Add m4/nan-mips.m4.
* modules/setpayloadf (Files): Likewise.
* modules/setpayloadl (Files): Likewise.

ChangeLog
lib/setpayload.c
lib/setpayloadf.c
lib/setpayloadl.c
m4/setpayload.m4
modules/setpayload
modules/setpayloadf
modules/setpayloadl

index 825968df32784a77e1d8a095d4e57f1cc44886c6..b3c806d91cadcc944654d6570524c294d5a081be 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2024-04-18  Bruno Haible  <bruno@clisp.org>
+
+       setpayload*: Support newer MIPS CPUs.
+       * lib/setpayload.c (setpayload): On MIPS CPUs with MIPS_NAN2008_DOUBLE,
+       accept a zero payload.
+       * lib/setpayloadf.c (setpayloadf): On MIPS CPUs with MIPS_NAN2008_FLOAT,
+       accept a zero payload.
+       * lib/setpayloadl.c (setpayloadl): On MIPS CPUs with
+       MIPS_NAN2008_LONG_DOUBLE, accept a zero payload.
+       * m4/setpayload.m4 (gl_FUNC_SETPAYLOADF, gl_FUNC_SETPAYLOAD,
+       gl_FUNC_SETPAYLOADL): Invoke gl_NAN_MIPS.
+       * modules/setpayload (Files): Add m4/nan-mips.m4.
+       * modules/setpayloadf (Files): Likewise.
+       * modules/setpayloadl (Files): Likewise.
+
 2024-04-18  Bruno Haible  <bruno@clisp.org>
 
        totalorder*: Support newer MIPS CPUs.
index fa5c7ad866fa71e9a190955f9d60edf7d0b0a456..d4744ee827548d832cf5b5c55fc0c06173bdacd1 100644 (file)
@@ -31,7 +31,7 @@ setpayload (double *result, double payload)
 {
 #if DBL_MANT_DIG == 53
   if (
-# if defined __hppa || defined __mips__ || defined __sh__
+# if defined __hppa || (defined __mips__ && !MIPS_NAN2008_DOUBLE) || defined __sh__
       /* A zero payload is not allowed, because that would denote Infinity.
          Cf. snan.h.  */
       payload > 0.0
index 1f02bc45933710e7e56544275c7adf25ea12f6bb..40b66dfa9baed395ef2020e28834597ae3ba22d1 100644 (file)
@@ -31,7 +31,7 @@ setpayloadf (float *result, float payload)
 {
 #if FLT_MANT_DIG == 24
   if (
-# if defined __hppa || defined __mips__ || defined __sh__
+# if defined __hppa || (defined __mips__ && !MIPS_NAN2008_FLOAT) || defined __sh__
       /* A zero payload is not allowed, because that would denote Infinity.
          Cf. snan.h.  */
       payload > 0.0f
index 6b5a1e24df1e23d16c25f4a5be4c43fba31f43f3..d7d0469e386a2544b342b1b0653d8647a981addc 100644 (file)
@@ -50,7 +50,7 @@ setpayloadl (long double *result, long double payload)
 # if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 106 || LDBL_MANT_DIG == 113) \
      && defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
   if (
-#  if defined __hppa || defined __mips__ || defined __sh__
+#  if defined __hppa || (defined __mips__ && !MIPS_NAN2008_LONG_DOUBLE) || defined __sh__
       /* A zero payload is not allowed, because that would denote Infinity.
          Cf. snan.h.  */
       payload > 0.0L
index 5238dd0de5dcf3c3d5073b789bbb3098121ede65..c1d6ec9244d2f85a0920ff2800b0294704c1b1dc 100644 (file)
@@ -1,5 +1,5 @@
 # setpayload.m4
-# serial 1
+# serial 2
 dnl Copyright 2024 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -17,6 +17,8 @@ AC_DEFUN([gl_FUNC_SETPAYLOADF],
   fi
   if test $HAVE_SETPAYLOADF = 0; then
     SETPAYLOADF_LIBM=
+    dnl Prerequisite of lib/setpayloadf.c.
+    gl_NAN_MIPS
   fi
   AC_SUBST([SETPAYLOADF_LIBM])
 ])
@@ -33,6 +35,8 @@ AC_DEFUN_ONCE([gl_FUNC_SETPAYLOAD],
   fi
   if test $HAVE_SETPAYLOAD = 0; then
     SETPAYLOAD_LIBM=
+    dnl Prerequisite of lib/setpayload.c.
+    gl_NAN_MIPS
   fi
   AC_SUBST([SETPAYLOAD_LIBM])
 ])
@@ -58,6 +62,7 @@ AC_DEFUN([gl_FUNC_SETPAYLOADL],
     fi
     dnl Prerequisite of lib/setpayloadl.c.
     gl_LONG_DOUBLE_EXPONENT_LOCATION
+    gl_NAN_MIPS
   fi
   AC_SUBST([SETPAYLOADL_LIBM])
 ])
index 677335a3aebd9c5fa238d916d5795aa5b3044a1a..0a5cda2eb8e5a14f960db9a5ef64326265eaf5c1 100644 (file)
@@ -5,6 +5,7 @@ Files:
 lib/setpayload.c
 m4/mathfunc.m4
 m4/setpayload.m4
+m4/nan-mips.m4
 
 Depends-on:
 math
index 05856e62da82c8afb0457e5c01b975dcafa45971..e26f1f8be2af99d059fdcb7bf4251f4aee6f26d5 100644 (file)
@@ -5,6 +5,7 @@ Files:
 lib/setpayloadf.c
 m4/mathfunc.m4
 m4/setpayload.m4
+m4/nan-mips.m4
 
 Depends-on:
 math
index 0a94431d5ddbfb1b8026c93d95bed260a992cc84..2d058f672beca6d4a3191d2bb065797c39cfa2af 100644 (file)
@@ -6,6 +6,7 @@ lib/setpayloadl.c
 m4/mathfunc.m4
 m4/setpayload.m4
 m4/exponentl.m4
+m4/nan-mips.m4
 
 Depends-on:
 math