svn commit: r286779 - head/contrib/compiler-rt/lib/builtins

Andrew Turner andrew at FreeBSD.org
Fri Aug 14 14:17:05 UTC 2015


Author: andrew
Date: Fri Aug 14 14:17:04 2015
New Revision: 286779
URL: https://svnweb.freebsd.org/changeset/base/286779

Log:
  Use __builtin_clzll to count the leading zero bits, the data is based on
  long long so __builtin_clz will return an incorrect value.
  
  Reviewed by:	emaste
  Differential Revision:	https://reviews.freebsd.org/D3375

Modified:
  head/contrib/compiler-rt/lib/builtins/floatditf.c
  head/contrib/compiler-rt/lib/builtins/floatunditf.c

Modified: head/contrib/compiler-rt/lib/builtins/floatditf.c
==============================================================================
--- head/contrib/compiler-rt/lib/builtins/floatditf.c	Fri Aug 14 13:58:18 2015	(r286778)
+++ head/contrib/compiler-rt/lib/builtins/floatditf.c	Fri Aug 14 14:17:04 2015	(r286779)
@@ -34,7 +34,7 @@ COMPILER_RT_ABI fp_t __floatditf(di_int 
     }
 
     // Exponent of (fp_t)a is the width of abs(a).
-    const int exponent = (aWidth - 1) - __builtin_clz(a);
+    const int exponent = (aWidth - 1) - __builtin_clzll(a);
     rep_t result;
 
     // Shift a into the significand field and clear the implicit bit.  Extra

Modified: head/contrib/compiler-rt/lib/builtins/floatunditf.c
==============================================================================
--- head/contrib/compiler-rt/lib/builtins/floatunditf.c	Fri Aug 14 13:58:18 2015	(r286778)
+++ head/contrib/compiler-rt/lib/builtins/floatunditf.c	Fri Aug 14 14:17:04 2015	(r286779)
@@ -25,7 +25,7 @@ COMPILER_RT_ABI fp_t __floatunditf(du_in
     if (a == 0) return fromRep(0);
 
     // Exponent of (fp_t)a is the width of abs(a).
-    const int exponent = (aWidth - 1) - __builtin_clz(a);
+    const int exponent = (aWidth - 1) - __builtin_clzll(a);
     rep_t result;
 
     // Shift a into the significand field and clear the implicit bit.


More information about the svn-src-head mailing list