[haiku-commits] haiku: hrev44847 - in src/system/libroot/posix: glibc/arch/arm arch/arm

  • From: ithamar.adema@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 16 Nov 2012 15:59:17 +0100 (CET)

hrev44847 adds 3 changesets to branch 'master'
old head: a03044aa5bdcd7b9cc8256fc7c346f57fe750cd0
new head: fb32cff77057649e64af9c3e3130b8eaa13466a1
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=fb32cff+^a03044a

----------------------------------------------------------------------------

2d4e165: ARM/libroot: Some last fp bits-n-pieces

d9a0abe: ARM/libroot: Enable sig{set,long}jmp

fb32cff: ARM/libroot: and more fp calls....

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

3 files changed, 114 insertions(+), 3 deletions(-)
src/system/libroot/posix/arch/arm/Jamfile        |  6 ++
src/system/libroot/posix/glibc/arch/arm/Jamfile  | 14 ++-
.../libroot/posix/glibc/arch/arm/e_sqrtf.c       | 97 ++++++++++++++++++++

############################################################################

Commit:      2d4e1654f3476f74bf5f71960772bfc177bd9201
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2d4e165
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Fri Nov 16 12:16:51 2012 UTC

ARM/libroot: Some last fp bits-n-pieces

----------------------------------------------------------------------------

diff --git a/src/system/libroot/posix/glibc/arch/arm/Jamfile 
b/src/system/libroot/posix/glibc/arch/arm/Jamfile
index deb19a0..38d21d5 100644
--- a/src/system/libroot/posix/glibc/arch/arm/Jamfile
+++ b/src/system/libroot/posix/glibc/arch/arm/Jamfile
@@ -34,11 +34,12 @@ local genericSources =
        s_isnan.c s_isnanf.c
        s_signbit.c s_signbitf.c s_signbitl.c
 
-       s_floor.c
+       s_floor.c s_floorf.c
        s_ceil.c s_ceilf.c
        s_modf.c
        w_pow.c e_pow.c slowpow.c
-       e_exp.c slowexp.c
+       w_exp.c e_exp.c slowexp.c
+       s_frexp.c s_expm1.c
        dosincos.c
        doasin.c
        sincos32.c
@@ -51,10 +52,15 @@ local genericSources =
        e_asin.c w_asin.c
        e_log10.c w_log10.c
        e_acos.c w_acos.c
-       e_atan2.c w_atan2.c mpatan2.c mpatan.c mptan.c mpsqrt.c
+       e_atan2.c w_atan2.c mpatan2.c mpatan.c mptan.c mpsqrt.c w_sqrt.c 
w_sqrtf.c
        e_fmod.c w_fmod.c
        e_log.c w_log.c
+       e_cosh.c w_cosh.c
+       e_sinh.c w_sinh.c
        s_ldexp.c s_ldexpf.c
+       s_scalbnf.c s_scalbn.c
+       s_copysign.c
+       s_tanh.c
 ;
 
 MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o :
@@ -63,6 +69,7 @@ MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o :
 
 MergeObject posix_gnu_arch_$(TARGET_ARCH)_others.o :
        e_sqrt.c
+       e_sqrtf.c
 ;
 
 MergeObjectFromObjects posix_gnu_arch_$(TARGET_ARCH).o : :
diff --git a/src/system/libroot/posix/glibc/arch/arm/e_sqrtf.c 
b/src/system/libroot/posix/glibc/arch/arm/e_sqrtf.c
new file mode 100644
index 0000000..7648ef4
--- /dev/null
+++ b/src/system/libroot/posix/glibc/arch/arm/e_sqrtf.c
@@ -0,0 +1,97 @@
+/* e_sqrtf.c -- float version of e_sqrt.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@xxxxxxxxxxx
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice 
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_sqrtf.c,v 1.4 1995/05/10 20:46:19 jtc Exp $";
+#endif
+
+#include "math.h"
+#include "math_private.h"
+
+#ifdef __STDC__
+static const float     one     = 1.0, tiny=1.0e-30;
+#else
+static float   one     = 1.0, tiny=1.0e-30;
+#endif
+
+#ifdef __STDC__
+       float __ieee754_sqrtf(float x)
+#else
+       float __ieee754_sqrtf(x)
+       float x;
+#endif
+{
+       float z;
+       int32_t sign = (int)0x80000000; 
+       int32_t ix,s,q,m,t,i;
+       u_int32_t r;
+
+       GET_FLOAT_WORD(ix,x);
+
+    /* take care of Inf and NaN */
+       if((ix&0x7f800000)==0x7f800000) {                       
+           return x*x+x;               /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
+                                          sqrt(-inf)=sNaN */
+       } 
+    /* take care of zero */
+       if(ix<=0) {
+           if((ix&(~sign))==0) return x;/* sqrt(+-0) = +-0 */
+           else if(ix<0)
+               return (x-x)/(x-x);             /* sqrt(-ve) = sNaN */
+       }
+    /* normalize x */
+       m = (ix>>23);
+       if(m==0) {                              /* subnormal x */
+           for(i=0;(ix&0x00800000)==0;i++) ix<<=1;
+           m -= i-1;
+       }
+       m -= 127;       /* unbias exponent */
+       ix = (ix&0x007fffff)|0x00800000;
+       if(m&1) /* odd m, double x to make it even */
+           ix += ix;
+       m >>= 1;        /* m = [m/2] */
+
+    /* generate sqrt(x) bit by bit */
+       ix += ix;
+       q = s = 0;              /* q = sqrt(x) */
+       r = 0x01000000;         /* r = moving bit from right to left */
+
+       while(r!=0) {
+           t = s+r; 
+           if(t<=ix) { 
+               s    = t+r; 
+               ix  -= t; 
+               q   += r; 
+           } 
+           ix += ix;
+           r>>=1;
+       }
+
+    /* use floating add to find out rounding direction */
+       if(ix!=0) {
+           z = one-tiny; /* trigger inexact flag */
+           if (z>=one) {
+               z = one+tiny;
+               if (z>one)
+                   q += 2;
+               else
+                   q += (q&1);
+           }
+       }
+       ix = (q>>1)+0x3f000000;
+       ix += (m <<23);
+       SET_FLOAT_WORD(z,ix);
+       return z;
+}

############################################################################

Commit:      d9a0abe46271f416317d9e85990bee68b47af1b0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d9a0abe
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Fri Nov 16 13:20:57 2012 UTC

ARM/libroot: Enable sig{set,long}jmp

----------------------------------------------------------------------------

diff --git a/src/system/libroot/posix/arch/arm/Jamfile 
b/src/system/libroot/posix/arch/arm/Jamfile
index 1526728..8eb8fd6 100644
--- a/src/system/libroot/posix/arch/arm/Jamfile
+++ b/src/system/libroot/posix/arch/arm/Jamfile
@@ -1,10 +1,16 @@
 SubDir HAIKU_TOP src system libroot posix arch arm ;
 
+
+UsePrivateHeaders [ FDirName system arch $(TARGET_ARCH) ] ;
+
 local genericSources =
+       setjmp_save_sigs.c
 ;
 
 MergeObject posix_arch_$(TARGET_ARCH).o :
        fenv.c
+       sigsetjmp.S
+       siglongjmp.S
 
        $(genericSources)
 ;

############################################################################

Revision:    hrev44847
Commit:      fb32cff77057649e64af9c3e3130b8eaa13466a1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fb32cff
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Fri Nov 16 14:58:11 2012 UTC

ARM/libroot: and more fp calls....

----------------------------------------------------------------------------

diff --git a/src/system/libroot/posix/glibc/arch/arm/Jamfile 
b/src/system/libroot/posix/glibc/arch/arm/Jamfile
index 38d21d5..5299ee5 100644
--- a/src/system/libroot/posix/glibc/arch/arm/Jamfile
+++ b/src/system/libroot/posix/glibc/arch/arm/Jamfile
@@ -61,6 +61,7 @@ local genericSources =
        s_scalbnf.c s_scalbn.c
        s_copysign.c
        s_tanh.c
+       s_lround.c s_lroundf.c s_round.c s_roundf.c
 ;
 
 MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o :


Other related posts:

  • » [haiku-commits] haiku: hrev44847 - in src/system/libroot/posix: glibc/arch/arm arch/arm - ithamar . adema