[newlib-cygwin] newlib: Don't do double divide in powf.

Corinna Vinschen corinna@sourceware.org
Wed Dec 13 10:34:00 GMT 2017


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

commit c874f1145ff5d2fa461cef21d6f8d575138fcdbf
Author: Jim Wilson <jimw@sifive.com>
Date:   Tue Dec 12 11:39:13 2017 -0800

    newlib: Don't do double divide in powf.
    
    * Use 0.0f instead of 0.0 in divide.

Diff:
---
 newlib/libm/math/wf_pow.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/newlib/libm/math/wf_pow.c b/newlib/libm/math/wf_pow.c
index 9a10254..f753b52 100644
--- a/newlib/libm/math/wf_pow.c
+++ b/newlib/libm/math/wf_pow.c
@@ -108,7 +108,9 @@
 		    if (_LIB_VERSION == _SVID_) 
 		        exc.retval = 0.0;
 		    else 
-		        exc.retval = 0.0/0.0;	/* X/Open allow NaN */
+		        /* Use a float divide, to avoid a soft-float double
+			   divide call on single-float only targets.  */
+		        exc.retval = (0.0f/0.0f);	/* X/Open allow NaN */
 		    if (_LIB_VERSION == _POSIX_) 
 		        errno = EDOM;
 		    else if (!matherr(&exc)) {



More information about the Newlib-cvs mailing list