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 :