public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] Use uint32_t sign argument to math error functions
@ 2018-06-27 13:53 Corinna Vinschen
  0 siblings, 0 replies; only message in thread
From: Corinna Vinschen @ 2018-06-27 13:53 UTC (permalink / raw)
  To: newlib-cvs

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=cfbcbd1c95b5cbd40650b188027f4ef1850ac236

commit cfbcbd1c95b5cbd40650b188027f4ef1850ac236
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Mon Jun 25 17:39:27 2018 +0100

    Use uint32_t sign argument to math error functions
    
    This change is equivalent to the commit
    https://github.com/ARM-software/optimized-routines/commit/c65db17340782d647c49e17cbba244862dc38402
    and only affects code that is from the Arm optimized-routines project.
    
    It does not affect the observable behaviour, but the code generation
    can be different on 64bit targets.  The intention is to make the
    portable semantics of the code obvious by using a fixed size type.

Diff:
---
 newlib/libm/common/math_config.h |  8 ++++----
 newlib/libm/common/math_errf.c   | 12 ++++++------
 newlib/libm/common/sf_pow.c      |  6 +++---
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/newlib/libm/common/math_config.h b/newlib/libm/common/math_config.h
index 6d87376..e4b53fc 100644
--- a/newlib/libm/common/math_config.h
+++ b/newlib/libm/common/math_config.h
@@ -199,10 +199,10 @@ eval_as_double (double x)
 # define unlikely(x) (x)
 #endif
 
-HIDDEN float __math_oflowf (unsigned long);
-HIDDEN float __math_uflowf (unsigned long);
-HIDDEN float __math_may_uflowf (unsigned long);
-HIDDEN float __math_divzerof (unsigned long);
+HIDDEN float __math_oflowf (uint32_t);
+HIDDEN float __math_uflowf (uint32_t);
+HIDDEN float __math_may_uflowf (uint32_t);
+HIDDEN float __math_divzerof (uint32_t);
 HIDDEN float __math_invalidf (float);
 
 /* Shared between expf, exp2f and powf.  */
diff --git a/newlib/libm/common/math_errf.c b/newlib/libm/common/math_errf.c
index 60b1bb3..92eaf88 100644
--- a/newlib/libm/common/math_errf.c
+++ b/newlib/libm/common/math_errf.c
@@ -1,5 +1,5 @@
 /* Single-precision math error handling.
-   Copyright (c) 2017 ARM Ltd.  All rights reserved.
+   Copyright (c) 2017-2018 ARM Ltd.  All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
@@ -45,14 +45,14 @@ with_errnof (float y, int e)
 
 /* NOINLINE prevents fenv semantics breaking optimizations.  */
 NOINLINE static float
-xflowf (unsigned long sign, float y)
+xflowf (uint32_t sign, float y)
 {
   y = (sign ? -y : y) * y;
   return with_errnof (y, ERANGE);
 }
 
 HIDDEN float
-__math_uflowf (unsigned long sign)
+__math_uflowf (uint32_t sign)
 {
   return xflowf (sign, 0x1p-95f);
 }
@@ -61,20 +61,20 @@ __math_uflowf (unsigned long sign)
 /* Underflows to zero in some non-nearest rounding mode, setting errno
    is valid even if the result is non-zero, but in the subnormal range.  */
 HIDDEN float
-__math_may_uflowf (unsigned long sign)
+__math_may_uflowf (uint32_t sign)
 {
   return xflowf (sign, 0x1.4p-75f);
 }
 #endif
 
 HIDDEN float
-__math_oflowf (unsigned long sign)
+__math_oflowf (uint32_t sign)
 {
   return xflowf (sign, 0x1p97f);
 }
 
 HIDDEN float
-__math_divzerof (unsigned long sign)
+__math_divzerof (uint32_t sign)
 {
   float y = 0;
   return with_errnof ((sign ? -1 : 1) / y, ERANGE);
diff --git a/newlib/libm/common/sf_pow.c b/newlib/libm/common/sf_pow.c
index 6741a34..2aa91c9 100644
--- a/newlib/libm/common/sf_pow.c
+++ b/newlib/libm/common/sf_pow.c
@@ -1,5 +1,5 @@
 /* Single-precision pow function.
-   Copyright (c) 2017 ARM Ltd.  All rights reserved.
+   Copyright (c) 2017-2018 ARM Ltd.  All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
@@ -93,7 +93,7 @@ log2_inline (uint32_t ix)
    (in case of fast toint intrinsics) or not.  The unscaled xd must be
    in [-1021,1023], sign_bias sets the sign of the result.  */
 static inline double_t
-exp2_inline (double_t xd, unsigned long sign_bias)
+exp2_inline (double_t xd, uint32_t sign_bias)
 {
   uint64_t ki, ski, t;
   /* double_t for better performance on targets with FLT_EVAL_METHOD==2.  */
@@ -152,7 +152,7 @@ zeroinfnan (uint32_t ix)
 float
 powf (float x, float y)
 {
-  unsigned long sign_bias = 0;
+  uint32_t sign_bias = 0;
   uint32_t ix, iy;
 
   ix = asuint (x);


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-06-27 13:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-27 13:53 [newlib-cygwin] Use uint32_t sign argument to math error functions Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).