diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 31222426c..c2270b52b 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2015-01-23 Corinna Vinschen + + Complete action from 2001-12-18: + * libc/machine/i386/f_*: Remove duplicate files. + 2015-01-22 Yaakov Selkowitz * libc/sys/sparc64/sys/time.h: #include for time_t. diff --git a/newlib/libc/machine/i386/f_atan2.S b/newlib/libc/machine/i386/f_atan2.S deleted file mode 100644 index 5bb074f80..000000000 --- a/newlib/libc/machine/i386/f_atan2.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of atan2 using Intel float instructions. - - double _f_atan2 (double y, double x); - -Function computes arctan ( y / x ). -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_atan2) - SOTYPE_FUNCTION(_f_atan2) - -SYM (_f_atan2): - pushl ebp - movl esp,ebp - fldl 8(ebp) - fldl 16(ebp) - fpatan - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_atan2f.S b/newlib/libc/machine/i386/f_atan2f.S deleted file mode 100644 index 6df0c7539..000000000 --- a/newlib/libc/machine/i386/f_atan2f.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of atan2f using Intel float instructions. - - float _f_atan2f (float y, float x); - -Function computes arctan ( y / x ). -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_atan2f) - SOTYPE_FUNCTION(_f_atan2f) - -SYM (_f_atan2f): - pushl ebp - movl esp,ebp - flds 8(ebp) - flds 12(ebp) - fpatan - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_exp.c b/newlib/libc/machine/i386/f_exp.c deleted file mode 100644 index 0ec721b7b..000000000 --- a/newlib/libc/machine/i386/f_exp.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998,2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of exp using Intel float instructions. - - double _f_exp (double x); - -Function computes e ** x. The following special cases exist: - 1. if x is 0.0 ==> return 1.0 - 2. if x is infinity ==> return infinity - 3. if x is -infinity ==> return 0.0 - 4. if x is NaN ==> return x -There is no error checking or setting of errno. -*/ - - -#include -#include -#include "f_math.h" - -double _f_exp (double x) -{ - if (check_finite(x)) - { - double result; - asm ("fldl2e; fmulp; fld %%st; frndint; fsub %%st,%%st(1); fxch;" \ - "fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1); fmulp" : - "=t"(result) : "0"(x)); - return result; - } - else if (x == -infinity()) - return 0.0; - - return x; -} - -#endif diff --git a/newlib/libc/machine/i386/f_expf.c b/newlib/libc/machine/i386/f_expf.c deleted file mode 100644 index b32d1f208..000000000 --- a/newlib/libc/machine/i386/f_expf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of exp using Intel float instructions. - - float _f_expf (float x); - -Function computes e ** x. The following special cases exist: - 1. if x is 0.0 ==> return 1.0 - 2. if x is infinity ==> return infinity - 3. if x is -infinity ==> return 0.0 - 4. if x is NaN ==> return x -There is no error checking or setting of errno. -*/ - - -#include -#include -#include "f_math.h" - -float _f_expf (float x) -{ - if (check_finitef(x)) - { - float result; - asm ("fldl2e; fmulp; fld %%st; frndint; fsub %%st,%%st(1); fxch;" \ - "fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1); fmulp" : - "=t"(result) : "0"(x)); - return result; - } - else if (x == -infinityf()) - return 0.0; - - return x; -} - -#endif diff --git a/newlib/libc/machine/i386/f_frexp.S b/newlib/libc/machine/i386/f_frexp.S deleted file mode 100644 index febe115bc..000000000 --- a/newlib/libc/machine/i386/f_frexp.S +++ /dev/null @@ -1,48 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of frexp using Intel float instructions. - - double _f_frexp (double x, int *exp); - -Function splits x into y * 2 ** z. It then -returns the value of y and updates *exp with z. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_frexp) - SOTYPE_FUNCTION(_f_frexp) - -SYM (_f_frexp): - pushl ebp - movl esp,ebp - fldl 8(ebp) - movl 16(ebp),eax - - fxtract - fld1 - fchs - fxch - fscale - fstp st1 - fxch - fld1 - faddp - fistpl 0(eax) - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_frexpf.S b/newlib/libc/machine/i386/f_frexpf.S deleted file mode 100644 index 909026d66..000000000 --- a/newlib/libc/machine/i386/f_frexpf.S +++ /dev/null @@ -1,48 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of frexpf using Intel float instructions. - - float _f_frexpf (float x, int *exp); - -Function splits x into y * 2 ** z. It then -returns the value of y and updates *exp with z. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_frexpf) - SOTYPE_FUNCTION(_f_frexpf) - -SYM (_f_frexpf): - pushl ebp - movl esp,ebp - flds 8(ebp) - movl 12(ebp),eax - - fxtract - fld1 - fchs - fxch - fscale - fstp st1 - fxch - fld1 - faddp - fistpl 0(eax) - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_ldexp.S b/newlib/libc/machine/i386/f_ldexp.S deleted file mode 100644 index e7b83c438..000000000 --- a/newlib/libc/machine/i386/f_ldexp.S +++ /dev/null @@ -1,38 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of ldexp using Intel float instructions. - - double _f_ldexp (double x, int exp); - -Function calculates x * 2 ** exp. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_ldexp) - SOTYPE_FUNCTION(_f_ldexp) - -SYM (_f_ldexp): - pushl ebp - movl esp,ebp - fild 16(ebp) - fldl 8(ebp) - fscale - fstp st1 - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_ldexpf.S b/newlib/libc/machine/i386/f_ldexpf.S deleted file mode 100644 index 59d53548c..000000000 --- a/newlib/libc/machine/i386/f_ldexpf.S +++ /dev/null @@ -1,38 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of ldexpf using Intel float instructions. - - float _f_ldexpf (float x, int exp); - -Function calculates x * 2 ** exp. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_ldexpf) - SOTYPE_FUNCTION(_f_ldexpf) - -SYM (_f_ldexpf): - pushl ebp - movl esp,ebp - fild 12(ebp) - flds 8(ebp) - fscale - fstp st1 - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_log.S b/newlib/libc/machine/i386/f_log.S deleted file mode 100644 index 70e62cbc5..000000000 --- a/newlib/libc/machine/i386/f_log.S +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of log using Intel float instructions. - - double _f_log (double x); - -Function calculates the log base e of x. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_log) - SOTYPE_FUNCTION(_f_log) - -SYM (_f_log): - pushl ebp - movl esp,ebp - - fld1 - fldl2e - fdivrp - fldl 8(ebp) - fyl2x - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_log10.S b/newlib/libc/machine/i386/f_log10.S deleted file mode 100644 index 8d1b87319..000000000 --- a/newlib/libc/machine/i386/f_log10.S +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of log10 using Intel float instructions. - - double _f_log10 (double x); - -Function calculates the log base 10 of x. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_log10) - SOTYPE_FUNCTION(_f_log10) - -SYM (_f_log10): - pushl ebp - movl esp,ebp - - fld1 - fldl2t - fdivrp - fldl 8(ebp) - fyl2x - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_log10f.S b/newlib/libc/machine/i386/f_log10f.S deleted file mode 100644 index 66ec5062e..000000000 --- a/newlib/libc/machine/i386/f_log10f.S +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of logf using Intel float instructions. - - float _f_log10f (float x); - -Function calculates the log base 10 of x. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_log10f) - SOTYPE_FUNCTION(_f_log10f) - -SYM (_f_log10f): - pushl ebp - movl esp,ebp - - fld1 - fldl2t - fdivrp - flds 8(ebp) - fyl2x - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_logf.S b/newlib/libc/machine/i386/f_logf.S deleted file mode 100644 index 3fafa8d84..000000000 --- a/newlib/libc/machine/i386/f_logf.S +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of logf using Intel float instructions. - - float _f_logf (float x); - -Function calculates the log base e of x. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_logf) - SOTYPE_FUNCTION(_f_logf) - -SYM (_f_logf): - pushl ebp - movl esp,ebp - - fld1 - fldl2e - fdivrp - flds 8(ebp) - fyl2x - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_math.h b/newlib/libc/machine/i386/f_math.h deleted file mode 100644 index bd44b1e92..000000000 --- a/newlib/libc/machine/i386/f_math.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __F_MATH_H__ -#define __F_MATH_H__ - -#include <_ansi.h> -#include "fdlibm.h" - -__inline__ -static -int -_DEFUN (check_finite, (x), - double x) -{ - __int32_t hx; - GET_HIGH_WORD(hx,x); - return (int)((__uint32_t)((hx&0x7fffffff)-0x7ff00000)>>31); -} - -__inline__ -static -int -_DEFUN (check_finitef, (x), - float x) -{ - __int32_t ix; - GET_FLOAT_WORD(ix,x); - return (int)((__uint32_t)((ix&0x7fffffff)-0x7f800000)>>31); -} - -#endif /* __F_MATH_H__ */ diff --git a/newlib/libc/machine/i386/f_pow.c b/newlib/libc/machine/i386/f_pow.c deleted file mode 100644 index 050faa371..000000000 --- a/newlib/libc/machine/i386/f_pow.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of pow using Intel float instructions. - - double _f_pow (double x, double y); - -Function calculates x to power of y. -The function optimizes the case where x is >0.0 and y is finite. -In such a case, there is no error checking or setting of errno. -All other cases defer to normal pow() function which will -set errno as normal. -*/ - -#include -#include -#include "f_math.h" - -double _f_pow (double x, double y) -{ - /* following sequence handles the majority of cases for pow() */ - if (x > 0.0 && check_finite(y)) - { - double result; - /* calculate x ** y as 2 ** (y log2(x)). On Intel, can only - raise 2 to an integer or a small fraction, thus, we have - to perform two steps 2**integer portion * 2**fraction. */ - asm ("fldl 8(%%ebp); fyl2x; fld %%st; frndint; fsub %%st,%%st(1);" \ - "fxch; fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1);"\ - "fmulp" : "=t" (result) : "0" (y)); - return result; - } - else /* all other strange cases, defer to normal pow() */ - return pow (x,y); -} - -#endif diff --git a/newlib/libc/machine/i386/f_powf.c b/newlib/libc/machine/i386/f_powf.c deleted file mode 100644 index ca3ef60c7..000000000 --- a/newlib/libc/machine/i386/f_powf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of pow using Intel float instructions. - - float _f_powf (float x, float y); - -Function calculates x to power of y. -The function optimizes the case where x is >0.0 and y is finite. -In such a case, there is no error checking or setting of errno. -All other cases defer to normal powf() function which will -set errno as normal. -*/ - -#include -#include -#include "f_math.h" - -float _f_powf (float x, float y) -{ - /* following sequence handles the majority of cases for pow() */ - if (x > 0.0 && check_finitef(y)) - { - float result; - /* calculate x ** y as 2 ** (y log2(x)). On Intel, can only - raise 2 to an integer or a small fraction, thus, we have - to perform two steps 2**integer portion * 2**fraction. */ - asm ("flds 8(%%ebp); fyl2x; fld %%st; frndint; fsub %%st,%%st(1);" \ - "fxch; fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1);"\ - "fmulp" : "=t" (result) : "0" (y)); - return result; - } - else /* all other strange cases, defer to normal pow() */ - return powf (x,y); -} - -#endif diff --git a/newlib/libc/machine/i386/f_tan.S b/newlib/libc/machine/i386/f_tan.S deleted file mode 100644 index c7c370470..000000000 --- a/newlib/libc/machine/i386/f_tan.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of tan using Intel float instructions. - - double _f_tan (double x); - -Function calculates the tangent of x. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_tan) - SOTYPE_FUNCTION(_f_tan) - -SYM (_f_tan): - pushl ebp - movl esp,ebp - fldl 8(ebp) - fptan - fincstp - - leave - ret - -#endif diff --git a/newlib/libc/machine/i386/f_tanf.S b/newlib/libc/machine/i386/f_tanf.S deleted file mode 100644 index 6afda9e73..000000000 --- a/newlib/libc/machine/i386/f_tanf.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. - * - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if !defined(_SOFT_FLOAT) - -/* -Fast version of tanf using Intel float instructions. - - float _f_tanf (float x); - -Function calculates the tangent of x. -There is no error checking or setting of errno. -*/ - - #include "i386mach.h" - - .global SYM (_f_tanf) - SOTYPE_FUNCTION(_f_tanf) - -SYM (_f_tanf): - pushl ebp - movl esp,ebp - flds 8(ebp) - fptan - fincstp - - leave - ret - -#endif