summaryrefslogtreecommitdiff
path: root/libc/ports/sysdeps/powerpc/powerpc32/e500
diff options
context:
space:
mode:
Diffstat (limited to 'libc/ports/sysdeps/powerpc/powerpc32/e500')
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Makefile11
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Versions8
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp-common.S107
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp.S38
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix16.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix32.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix64.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix16.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix32.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix64.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrt.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrtf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fclrexcpt.c47
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fe_nomask.c31
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fedisblxcpt.c59
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feenablxcpt.c59
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetenv.c44
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetexcept.c30
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetround.c30
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feholdexcpt.c44
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_const.c26
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_libc.h76
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetenv.c44
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetround.c36
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feupdateenv.c56
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fgetexcptflg.c45
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprrest.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprsave.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fraiseexcpt.c28
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fsetexcptflg.c49
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/ftestexcept.c32
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_ldbl.h1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_private.h2
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceil.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceilf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysign.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignl.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabs.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsf.S28
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsl.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdim.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdimf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floor.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floorf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fma.c5
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmax.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaxf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmin.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fminf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnan.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnanf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrint.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrintf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llround.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llroundf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrint.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrintf.S28
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lround.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lroundf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyint.c5
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyintf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rint.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rintf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_round.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_roundf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_trunc.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_truncf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp-common.S103
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp.S43
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/spe.h12
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtofix.c700
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix16.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix32.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix64.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix16.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix32.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix64.c27
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/t_sqrt.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/tst-spepim.c493
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrt.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrtf.c1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Makefile4
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Subdirs1
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Versions19
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/fraiseexcept-soft.c28
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/sfp-machine.h65
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/e500/spe-raise.c66
89 files changed, 0 insertions, 2866 deletions
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Makefile b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Makefile
deleted file mode 100644
index 3e7c9e92f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-ifeq ($(subdir),stdlib)
-spepim_routines = atosfix16 atosfix32 atosfix64 atoufix16 atoufix32 atoufix64 \
- strtosfix16 strtosfix32 strtosfix64 strtoufix16 strtoufix32 strtoufix64
-sysdep_routines += $(spepim_routines)
-tests += tst-spepim
-ifeq ($(build-shared),yes)
-$(objpfx)tst-spepim: $(common-objpfx)math/libm.so$(libm.so-version)
-else
-$(objpfx)tst-spepim: $(common-objpfx)math/libm.a
-endif
-endif
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Versions b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Versions
deleted file mode 100644
index bd45e1dab..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/Versions
+++ /dev/null
@@ -1,8 +0,0 @@
-libc {
- GLIBC_2.3.3 {
- atosfix16; atosfix32; atosfix64;
- atoufix16; atoufix32; atoufix64;
- strtosfix16; strtosfix32; strtosfix64;
- strtoufix16; strtoufix32; strtoufix64;
- }
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp-common.S b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp-common.S
deleted file mode 100644
index fbbee6023..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp-common.S
+++ /dev/null
@@ -1,107 +0,0 @@
-/* longjmp for PowerPC E500.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- Contributed by Aldy Hernandez <aldyh@redhat.com>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ASM
-#define _SETJMP_H
-#ifdef __NO_VMX__
-# include <novmxsetjmp.h>
-#else
-# include <jmpbuf-offsets.h>
-#endif
-
-ENTRY (__longjmp)
-#if defined PTR_DEMANGLE || defined CHECK_SP
- lwz r24,(JB_GPR1*4)(r3)
-# ifdef CHECK_SP
-# ifdef PTR_DEMANGLE
- PTR_DEMANGLE3 (r24, r24, r25)
-# endif
- CHECK_SP (r24)
- mr r1,r24
-# endif
-#else
- lwz r1,(JB_GPR1*4)(r3)
-#endif
- lwz r0,(JB_LR*4)(r3)
- /*lfd fp14,((JB_FPRS+0*2)*4)(r3)*/
- evldd r14,((JB_FPRS+0*2)*4)(r3)
- lwz r14,((JB_GPRS+0)*4)(r3)
- /*lfd fp15,((JB_FPRS+1*2)*4)(r3)*/
- evldd r15,((JB_FPRS+1*2)*4)(r3)
- lwz r15,((JB_GPRS+1)*4)(r3)
- /*lfd fp16,((JB_FPRS+2*2)*4)(r3)*/
- evldd r16,((JB_FPRS+2*2)*4)(r3)
- lwz r16,((JB_GPRS+2)*4)(r3)
- /*lfd fp17,((JB_FPRS+3*2)*4)(r3)*/
- evldd r17,((JB_FPRS+3*2)*4)(r3)
- lwz r17,((JB_GPRS+3)*4)(r3)
- /*lfd fp18,((JB_FPRS+4*2)*4)(r3)*/
- evldd r18,((JB_FPRS+4*2)*4)(r3)
- lwz r18,((JB_GPRS+4)*4)(r3)
- /*lfd fp19,((JB_FPRS+5*2)*4)(r3)*/
- evldd r19,((JB_FPRS+5*2)*4)(r3)
- lwz r19,((JB_GPRS+5)*4)(r3)
- /*lfd fp20,((JB_FPRS+6*2)*4)(r3)*/
- evldd r20,((JB_FPRS+6*2)*4)(r3)
- lwz r20,((JB_GPRS+6)*4)(r3)
-#ifdef PTR_DEMANGLE
-# ifndef CHECK_SP
- PTR_DEMANGLE3 (r1, r24, r25)
-# endif
- PTR_DEMANGLE2 (r0, r25)
-#endif
- mtlr r0
- /*lfd fp21,((JB_FPRS+7*2)*4)(r3)*/
- evldd r21,((JB_FPRS+7*2)*4)(r3)
- lwz r21,((JB_GPRS+7)*4)(r3)
- /*lfd fp22,((JB_FPRS+8*2)*4)(r3)*/
- evldd r22,((JB_FPRS+8*2)*4)(r3)
- lwz r22,((JB_GPRS+8)*4)(r3)
- lwz r0,(JB_CR*4)(r3)
- /*lfd fp23,((JB_FPRS+9*2)*4)(r3)*/
- evldd r23,((JB_FPRS+9*2)*4)(r3)
- lwz r23,((JB_GPRS+9)*4)(r3)
- /*lfd fp24,((JB_FPRS+10*2)*4)(r3)*/
- evldd r24,((JB_FPRS+10*2)*4)(r3)
- lwz r24,((JB_GPRS+10)*4)(r3)
- /*lfd fp25,((JB_FPRS+11*2)*4)(r3)*/
- evldd r25,((JB_FPRS+11*2)*4)(r3)
- lwz r25,((JB_GPRS+11)*4)(r3)
- mtcrf 0xFF,r0
- /*lfd fp26,((JB_FPRS+12*2)*4)(r3)*/
- evldd r26,((JB_FPRS+12*2)*4)(r3)
- lwz r26,((JB_GPRS+12)*4)(r3)
- /*lfd fp27,((JB_FPRS+13*2)*4)(r3)*/
- evldd r27,((JB_FPRS+13*2)*4)(r3)
- lwz r27,((JB_GPRS+13)*4)(r3)
- /*lfd fp28,((JB_FPRS+14*2)*4)(r3)*/
- evldd r28,((JB_FPRS+14*2)*4)(r3)
- lwz r28,((JB_GPRS+14)*4)(r3)
- /*lfd fp29,((JB_FPRS+15*2)*4)(r3)*/
- evldd r29,((JB_FPRS+15*2)*4)(r3)
- lwz r29,((JB_GPRS+15)*4)(r3)
- /*lfd fp30,((JB_FPRS+16*2)*4)(r3)*/
- evldd r30,((JB_FPRS+16*2)*4)(r3)
- lwz r30,((JB_GPRS+16)*4)(r3)
- /*lfd fp31,((JB_FPRS+17*2)*4)(r3)*/
- evldd r31,((JB_FPRS+17*2)*4)(r3)
- lwz r31,((JB_GPRS+17)*4)(r3)
- mr r3,r4
- blr
-END (__longjmp)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp.S b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp.S
deleted file mode 100644
index 54d0c4b5a..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/__longjmp.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/* AltiVec/VMX (new) version of __longjmp for PowerPC.
- Copyright (C) 1995-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <libc-symbols.h>
-#include <shlib-compat.h>
-
-#if defined NOT_IN_libc
-/* Build a non-versioned object for rtld-*. */
-# include "__longjmp-common.S"
-
-#else /* !NOT_IN_libc */
-strong_alias (__vmx__longjmp, __longjmp);
-# define __longjmp __vmx__longjmp
-# include "__longjmp-common.S"
-
-# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
-# define __NO_VMX__
-# undef JB_SIZE
-# undef __longjmp
-# define __longjmp __novmx__longjmp
-# include "__longjmp-common.S"
-# endif
-#endif /* !NOT_IN_libc */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix16.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix16.c
deleted file mode 100644
index 112c1b303..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix16.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 16-bit signed fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <spe.h>
-
-int16_t
-atosfix16 (const char *str)
-{
- return strtosfix16 (str, NULL);
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix32.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix32.c
deleted file mode 100644
index 238a0f629..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix32.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 32-bit signed fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <spe.h>
-
-int32_t
-atosfix32 (const char *str)
-{
- return strtosfix32 (str, NULL);
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix64.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix64.c
deleted file mode 100644
index 274b642da..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atosfix64.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 64-bit signed fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <spe.h>
-
-int64_t
-atosfix64 (const char *str)
-{
- return strtosfix64 (str, NULL);
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix16.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix16.c
deleted file mode 100644
index 111735485..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix16.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 16-bit unsigned fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <spe.h>
-
-uint16_t
-atoufix16 (const char *str)
-{
- return strtoufix16 (str, NULL);
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix32.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix32.c
deleted file mode 100644
index de0f15f08..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix32.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 32-bit unsigned fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <spe.h>
-
-uint32_t
-atoufix32 (const char *str)
-{
- return strtoufix32 (str, NULL);
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix64.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix64.c
deleted file mode 100644
index b4abaae0f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/atoufix64.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 64-bit unsigned fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <spe.h>
-
-uint64_t
-atoufix64 (const char *str)
-{
- return strtoufix64 (str, NULL);
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrt.c
deleted file mode 100644
index bdbeff477..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrt.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/e_sqrt.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrtf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrtf.c
deleted file mode 100644
index 8b2f552e1..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/e_sqrtf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/e_sqrtf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fclrexcpt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fclrexcpt.c
deleted file mode 100644
index b11a64f49..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fclrexcpt.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-#undef feclearexcept
-int
-__feclearexcept (int excepts)
-{
- unsigned int fpescr;
-
- /* Get the current state. */
- fpescr = fegetenv_register ();
-
- /* Clear the relevant bits. */
- fpescr &= ~(excepts & FE_ALL_EXCEPT);
-
- /* Put the new state in effect. */
- fesetenv_register (fpescr);
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feclearexcept, __old_feclearexcept)
-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
-#endif
-
-libm_hidden_ver (__feclearexcept, feclearexcept)
-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fe_nomask.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fe_nomask.c
deleted file mode 100644
index bf5ed73b2..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fe_nomask.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Procedure definition for FE_NOMASK_ENV.
- Copyright (C) 1997-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <errno.h>
-
-/* This is presently a stub, until it's decided how the kernels should
- support this. */
-
-const fenv_t *
-__fe_nomask_env(void)
-{
- __set_errno (ENOSYS);
- return FE_ENABLED_ENV;
-}
-stub_warning (__fe_nomask_env)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fedisblxcpt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fedisblxcpt.c
deleted file mode 100644
index 4008dec41..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fedisblxcpt.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Disable floating-point exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-fedisableexcept (int excepts)
-{
- unsigned int result = 0, pflags, r;
- INTERNAL_SYSCALL_DECL (err);
-
- INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
-
- /* Save old enable bits. */
- if (pflags & PR_FP_EXC_OVF)
- result |= FE_OVERFLOW;
- if (pflags & PR_FP_EXC_UND)
- result |= FE_UNDERFLOW;
- if (pflags & PR_FP_EXC_INV)
- result |= FE_INVALID;
- if (pflags & PR_FP_EXC_DIV)
- result |= FE_DIVBYZERO;
- if (pflags & PR_FP_EXC_RES)
- result |= FE_INEXACT;
-
- if (excepts & FE_INEXACT)
- pflags &= ~PR_FP_EXC_RES;
- if (excepts & FE_DIVBYZERO)
- pflags &= ~PR_FP_EXC_DIV;
- if (excepts & FE_UNDERFLOW)
- pflags &= ~PR_FP_EXC_UND;
- if (excepts & FE_OVERFLOW)
- pflags &= ~PR_FP_EXC_OVF;
- if (excepts & FE_INVALID)
- pflags &= ~PR_FP_EXC_INV;
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- return result;
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feenablxcpt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feenablxcpt.c
deleted file mode 100644
index f41104399..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feenablxcpt.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Enable floating-point exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-feenableexcept (int excepts)
-{
- unsigned int result = 0, pflags, r;
- INTERNAL_SYSCALL_DECL (err);
-
- INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
-
- /* Save old enable bits. */
- if (pflags & PR_FP_EXC_OVF)
- result |= FE_OVERFLOW;
- if (pflags & PR_FP_EXC_UND)
- result |= FE_UNDERFLOW;
- if (pflags & PR_FP_EXC_INV)
- result |= FE_INVALID;
- if (pflags & PR_FP_EXC_DIV)
- result |= FE_DIVBYZERO;
- if (pflags & PR_FP_EXC_RES)
- result |= FE_INEXACT;
-
- if (excepts & FE_INEXACT)
- pflags |= PR_FP_EXC_RES;
- if (excepts & FE_DIVBYZERO)
- pflags |= PR_FP_EXC_DIV;
- if (excepts & FE_UNDERFLOW)
- pflags |= PR_FP_EXC_UND;
- if (excepts & FE_OVERFLOW)
- pflags |= PR_FP_EXC_OVF;
- if (excepts & FE_INVALID)
- pflags |= PR_FP_EXC_INV;
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- return result;
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetenv.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetenv.c
deleted file mode 100644
index 693121306..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetenv.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Store current floating-point environment.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-__fegetenv (fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
-
- INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &u.l[0]);
- u.l[1] = fegetenv_register ();
- *envp = u.fenv;
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
-#endif
-
-versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetexcept.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetexcept.c
deleted file mode 100644
index 71c1e19cb..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetexcept.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Get floating-point exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-fegetexcept (void)
-{
- unsigned long fpescr;
-
- fpescr = fegetenv_register ();
-
- return fpescr & FE_ALL_EXCEPT;
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetround.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetround.c
deleted file mode 100644
index 68b60ad08..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fegetround.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Return current rounding direction.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-#undef fegetround
-int
-fegetround (void)
-{
- unsigned long fpescr;
-
- fpescr = fegetenv_register ();
- return fpescr & 3;
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feholdexcpt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feholdexcpt.c
deleted file mode 100644
index b9e202d48..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feholdexcpt.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-feholdexcept (fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
-
-
- /* Get the current state. */
- INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &u.l[0]);
- u.l[1] = fegetenv_register ();
- *envp = u.fenv;
-
- /* Clear everything except for the rounding mode. */
- u.l[1] &= 3;
-
- /* Put the new state in effect. */
- fesetenv_register (u.l[1]);
-
- return 0;
-}
-libm_hidden_def (feholdexcept)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_const.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_const.c
deleted file mode 100644
index 15cf7f769..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_const.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Constants for fenv_bits.h.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* If the default argument is used we use this value. */
-const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
-0x0ULL;
-
-/* Floating-point environment where none of the exceptions are masked. */
-const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) =
-0xF00000000ULL;
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_libc.h b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_libc.h
deleted file mode 100644
index e068ee357..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fenv_libc.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Internal libc stuff for floating point environment routines.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _FENV_LIBC_H
-#define _FENV_LIBC_H 1
-
-#include <fenv.h>
-
-extern int __feraiseexcept_internal (int __excepts);
-
-/* Equivalent to fegetenv, but returns a fenv_t instead of taking a
- pointer. */
-#define fegetenv_register() \
- ({ unsigned fscr; asm volatile ("mfspefscr %0" : "=r" (fscr)); fscr; })
-
-/* Equivalent to fesetenv, but takes a fenv_t instead of a pointer. */
-#define fesetenv_register(fscr) \
- ({ asm volatile ("mtspefscr %0" : : "r" (fscr)); })
-
-typedef union
-{
- fenv_t fenv;
- unsigned int l[2];
-} fenv_union_t;
-
-/* Definitions of all the SPEFSCR bit numbers. */
-enum {
- SPEFSCR_SOVH = 0x80000000,
- SPEFSCR_OVH = 0x40000000,
- SPEFSCR_FGH = 0x20000000,
- SPEFSCR_FXH = 0x10000000,
- SPEFSCR_FINVH = 0x08000000,
- SPEFSCR_FDBZH = 0x04000000,
- SPEFSCR_FUNFH = 0x02000000,
- SPEFSCR_FOVFH = 0x01000000,
- /* 2 unused bits. */
- SPEFSCR_FINXS = 0x00200000,
- SPEFSCR_FINVS = 0x00100000,
- SPEFSCR_FDBZS = 0x00080000,
- SPEFSCR_FUNFS = 0x00040000,
- SPEFSCR_FOVFS = 0x00020000,
- SPEFSCR_MODE = 0x00010000,
- SPEFSCR_SOV = 0x00008000,
- SPEFSCR_OV = 0x00004000,
- SPEFSCR_FG = 0x00002000,
- SPEFSCR_FX = 0x00001000,
- SPEFSCR_FINV = 0x00000800,
- SPEFSCR_FDBZ = 0x00000400,
- SPEFSCR_FUNF = 0x00000200,
- SPEFSCR_FOVF = 0x00000100,
- /* 1 unused bit. */
- SPEFSCR_FINXE = 0x00000040,
- SPEFSCR_FINVE = 0x00000020,
- SPEFSCR_FDBZE = 0x00000010,
- SPEFSCR_FUNFE = 0x00000008,
- SPEFSCR_FOVFE = 0x00000004,
- SPEFSCR_FRMC = 0x00000003
-};
-
-#endif /* fenv_libc.h */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetenv.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetenv.c
deleted file mode 100644
index e9411a89d..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetenv.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Install given floating-point environment.
- Copyright (C) 1997-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-__fesetenv (const fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
-
- u.fenv = *envp;
- INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, &u.l[0]);
- fesetenv_register (u.l[1]);
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fesetenv, __old_fesetenv)
-compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
-#endif
-
-libm_hidden_ver (__fesetenv, fesetenv)
-versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetround.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetround.c
deleted file mode 100644
index 00cad37be..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fesetround.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Set current rounding direction.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-fesetround (int round)
-{
- unsigned long fpescr;
-
- if ((unsigned int) round > 3)
- return 1;
-
- fpescr = fegetenv_register ();
- fpescr = (fpescr & ~SPEFSCR_FRMC) | (round & 3);
- fesetenv_register (fpescr);
-
- return 0;
-}
-libm_hidden_def (fesetround)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feupdateenv.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feupdateenv.c
deleted file mode 100644
index 534ce9def..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/feupdateenv.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-__feupdateenv (const fenv_t *envp)
-{
- unsigned long fpescr, old, new, pflags;
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
-
- /* Save the currently set exceptions. */
- u.fenv = *envp;
- new = u.l[1];
- old = fegetenv_register ();
- new |= (old & FE_ALL_EXCEPT);
-
- INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
- pflags |= u.l[0];
- INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, pflags);
-
- /* Enable and raise (if appropriate) exceptions set in `new'. */
- fesetenv_register (new);
- feraiseexcept (new & FE_ALL_EXCEPT);
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feupdateenv, __old_feupdateenv)
-compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
-#endif
-
-libm_hidden_ver (__feupdateenv, feupdateenv)
-versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fgetexcptflg.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fgetexcptflg.c
deleted file mode 100644
index f530c0231..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fgetexcptflg.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Store current representation for exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__fegetexceptflag (fexcept_t *flagp, int excepts)
-{
- unsigned long fpescr;
-
- /* Get the current state. */
- fpescr = fegetenv_register ();
-
- /* ?? Classic PPC doesn't do anything with `excepts', so we'll do
- the same here. (We should really be ignoring exceptions in
- excepts) ?? */
- *flagp = fpescr & FE_ALL_EXCEPT;
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fegetexceptflag, __old_fegetexceptflag)
-compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
-#endif
-
-versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprrest.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprrest.c
deleted file mode 100644
index 1cc893170..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprrest.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprsave.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprsave.c
deleted file mode 100644
index 1cc893170..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fprsave.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fraiseexcpt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fraiseexcpt.c
deleted file mode 100644
index 6620a9f13..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fraiseexcpt.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Raise given exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-#undef feraiseexcept
-
-#define __FERAISEEXCEPT_INTERNAL feraiseexcept
-#include "../spe-raise.c"
-
-strong_alias (feraiseexcept, __feraiseexcept)
-libm_hidden_def (feraiseexcept)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fsetexcptflg.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fsetexcptflg.c
deleted file mode 100644
index 33712d8cf..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/fsetexcptflg.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Set floating-point environment exception handling.
- Copyright (C) 1997-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__fesetexceptflag (const fexcept_t *flagp, int excepts)
-{
- unsigned long spefscr;
- fexcept_t flag;
-
- /* Get the current state. */
- spefscr = fegetenv_register ();
-
- /* Ignore exceptions not listed in 'excepts'. */
- flag = *flagp & excepts;
-
- /* Replace the exception status */
- spefscr = (spefscr & ~(FE_ALL_EXCEPT & excepts)) | flag;
-
- /* Store the new status word (along with the rest of the environment). */
- fesetenv_register (spefscr);
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
-#endif
-
-versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/ftestexcept.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/ftestexcept.c
deleted file mode 100644
index ddb8f8685..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/ftestexcept.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Test exception in current environment.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-fetestexcept (int excepts)
-{
- unsigned long f;
-
- /* Get the current state. */
- f = fegetenv_register ();
-
- return f & excepts;
-}
-libm_hidden_def (fetestexcept)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_ldbl.h b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_ldbl.h
deleted file mode 100644
index e99166bfc..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_ldbl.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/ldbl-128ibm/math_ldbl.h>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_private.h b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_private.h
deleted file mode 100644
index 4909535f8..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/math_private.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Bypass sysdeps/powerpc/fpu/math_private.h and use generic header. */
-#include <../sysdeps/generic/math_private.h>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceil.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceil.c
deleted file mode 100644
index f3f34216f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceil.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_ceil.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceilf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceilf.c
deleted file mode 100644
index 2a71fcd7c..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_ceilf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_ceilf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysign.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysign.c
deleted file mode 100644
index 8616ca0bb..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysign.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_copysign.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignf.c
deleted file mode 100644
index 34bcb6cce..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_copysignf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignl.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignl.c
deleted file mode 100644
index 29a02868f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_copysignl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/ldbl-128ibm/s_copysignl.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabs.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabs.c
deleted file mode 100644
index 2ef531d44..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabs.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_fabs.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsf.S b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsf.S
deleted file mode 100644
index 296e214c7..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsf.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Floating-point absolute value. PowerPC E500 version.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__fabsf)
-/* float [r3] fabsf (float [r3] x) ; */
- efsabs r3,r3
- blr
-END(__fabsf)
-
-weak_alias(__fabsf,fabsf)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsl.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsl.c
deleted file mode 100644
index 33ebe78cb..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fabsl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/ldbl-128ibm/s_fabsl.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdim.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdim.c
deleted file mode 100644
index 5fb35edb5..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdim.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fdim.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdimf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdimf.c
deleted file mode 100644
index 42df1302d..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fdimf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fdimf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floor.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floor.c
deleted file mode 100644
index 2a43c817c..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floor.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_floor.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floorf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floorf.c
deleted file mode 100644
index d129d378f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_floorf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_floorf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fma.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fma.c
deleted file mode 100644
index 2ee721413..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fma.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <math/s_fma.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fma, fmal, GLIBC_2_1);
-#endif
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaf.c
deleted file mode 100644
index 5b7663f9a..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fmaf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmax.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmax.c
deleted file mode 100644
index 95edd5f3d..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmax.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fmax.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaxf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaxf.c
deleted file mode 100644
index 084fe72e9..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaxf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fmaxf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmin.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmin.c
deleted file mode 100644
index e072a91e7..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmin.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fmin.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fminf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fminf.c
deleted file mode 100644
index e37e4ac4e..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fminf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/s_fminf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnan.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnan.c
deleted file mode 100644
index dec5dd0bf..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnan.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_isnan.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnanf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnanf.c
deleted file mode 100644
index 3be64a220..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_isnanf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_isnanf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrint.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrint.c
deleted file mode 100644
index c8215aa17..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrint.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_llrint.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrintf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrintf.c
deleted file mode 100644
index b74275e9c..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llrintf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_llrintf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llround.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llround.c
deleted file mode 100644
index 69658f335..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llround.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_llround.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llroundf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llroundf.c
deleted file mode 100644
index 386777ea9..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_llroundf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_llroundf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrint.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrint.c
deleted file mode 100644
index 909e699a0..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrint.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_lrint.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrintf.S b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrintf.S
deleted file mode 100644
index 3d399a08e..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lrintf.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Round float to long int. PowerPC E500 version.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__lrintf)
-/* long int [r3] lrintf (float [r3] x) ; */
- efsctsi r3,r3
- blr
-END(__lrintf)
-
-weak_alias(__lrintf,lrintf)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lround.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lround.c
deleted file mode 100644
index 83a87836b..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lround.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_lround.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lroundf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lroundf.c
deleted file mode 100644
index 930abb527..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_lroundf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_lroundf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyint.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyint.c
deleted file mode 100644
index a8b7973ac..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyint.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_nearbyint.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1);
-#endif
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyintf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyintf.c
deleted file mode 100644
index 487742619..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyintf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_nearbyintf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rint.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rint.c
deleted file mode 100644
index b610359d3..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rint.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_rint.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rintf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rintf.c
deleted file mode 100644
index 6593140fa..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_rintf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_rintf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_round.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_round.c
deleted file mode 100644
index 4c006d482..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_round.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_round.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_roundf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_roundf.c
deleted file mode 100644
index e82d90aa1..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_roundf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_roundf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_trunc.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_trunc.c
deleted file mode 100644
index bc5ec5401..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_trunc.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/dbl-64/s_trunc.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_truncf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_truncf.c
deleted file mode 100644
index b8cc5f6bc..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_truncf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/ieee754/flt-32/s_truncf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp-common.S b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp-common.S
deleted file mode 100644
index bba304375..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp-common.S
+++ /dev/null
@@ -1,103 +0,0 @@
-/* setjmp for PowerPC E500.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- Contributed by Aldy Hernandez <aldyh@redhat.com>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ASM
-#ifdef __NO_VMX__
-# include <novmxsetjmp.h>
-#else
-# include <jmpbuf-offsets.h>
-#endif
-
-ENTRY (__sigsetjmp)
-#ifdef PTR_MANGLE
- mr r5,r1
- PTR_MANGLE(r5, r10)
- stw r5,(JB_GPR1*4)(3)
-#else
- stw r1,(JB_GPR1*4)(3)
-#endif
- mflr r0
- stw r14,((JB_GPRS+0)*4)(3)
-#ifdef PTR_MANGLE
- PTR_MANGLE2 (r0, r10)
- li r10,0
-#endif
- /*stfd fp14,((JB_FPRS+0*2)*4)(3)*/
- evstdd r14,((JB_FPRS+0*2)*4)(3)
- stw r0,(JB_LR*4)(3)
- stw r15,((JB_GPRS+1)*4)(3)
- /*stfd fp15,((JB_FPRS+1*2)*4)(3)*/
- evstdd r15,((JB_FPRS+1*2)*4)(3)
- mfcr r0
- stw r16,((JB_GPRS+2)*4)(3)
- /*stfd fp16,((JB_FPRS+2*2)*4)(3)*/
- evstdd r16,((JB_FPRS+2*2)*4)(3)
- stw r0,(JB_CR*4)(3)
- stw r17,((JB_GPRS+3)*4)(3)
- /*stfd fp17,((JB_FPRS+3*2)*4)(3)*/
- evstdd r17,((JB_FPRS+3*2)*4)(3)
- stw r18,((JB_GPRS+4)*4)(3)
- /*stfd fp18,((JB_FPRS+4*2)*4)(3)*/
- evstdd r18,((JB_FPRS+4*2)*4)(3)
- stw r19,((JB_GPRS+5)*4)(3)
- /*stfd fp19,((JB_FPRS+5*2)*4)(3)*/
- evstdd r19,((JB_FPRS+5*2)*4)(3)
- stw r20,((JB_GPRS+6)*4)(3)
- /*stfd fp20,((JB_FPRS+6*2)*4)(3)*/
- evstdd r20,((JB_FPRS+6*2)*4)(3)
- stw r21,((JB_GPRS+7)*4)(3)
- /*stfd fp21,((JB_FPRS+7*2)*4)(3)*/
- evstdd r21,((JB_FPRS+7*2)*4)(3)
- stw r22,((JB_GPRS+8)*4)(3)
- /*stfd fp22,((JB_FPRS+8*2)*4)(3)*/
- evstdd r22,((JB_FPRS+8*2)*4)(3)
- stw r23,((JB_GPRS+9)*4)(3)
- /*stfd fp23,((JB_FPRS+9*2)*4)(3)*/
- evstdd r23,((JB_FPRS+9*2)*4)(3)
- stw r24,((JB_GPRS+10)*4)(3)
- /*stfd fp24,((JB_FPRS+10*2)*4)(3)*/
- evstdd r24,((JB_FPRS+10*2)*4)(3)
- stw r25,((JB_GPRS+11)*4)(3)
- /*stfd fp25,((JB_FPRS+11*2)*4)(3)*/
- evstdd r25,((JB_FPRS+11*2)*4)(3)
- stw r26,((JB_GPRS+12)*4)(3)
- /*stfd fp26,((JB_FPRS+12*2)*4)(3)*/
- evstdd r26,((JB_FPRS+12*2)*4)(3)
- stw r27,((JB_GPRS+13)*4)(3)
- /*stfd fp27,((JB_FPRS+13*2)*4)(3)*/
- evstdd r27,((JB_FPRS+13*2)*4)(3)
- stw r28,((JB_GPRS+14)*4)(3)
- /*stfd fp28,((JB_FPRS+14*2)*4)(3)*/
- evstdd r28,((JB_FPRS+14*2)*4)(3)
- stw r29,((JB_GPRS+15)*4)(3)
- /*stfd fp29,((JB_FPRS+15*2)*4)(3)*/
- evstdd r29,((JB_FPRS+15*2)*4)(3)
- stw r30,((JB_GPRS+16)*4)(3)
- /*stfd fp30,((JB_FPRS+16*2)*4)(3)*/
- evstdd r30,((JB_FPRS+16*2)*4)(3)
- stw r31,((JB_GPRS+17)*4)(3)
- /*stfd fp31,((JB_FPRS+17*2)*4)(3)*/
- evstdd r31,((JB_FPRS+17*2)*4)(3)
-#if defined NOT_IN_libc && defined IS_IN_rtld
- li r3,0
- blr
-#else
- b __sigjmp_save@local
-#endif
-END (__sigsetjmp)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp.S b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp.S
deleted file mode 100644
index 851a5b908..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/setjmp.S
+++ /dev/null
@@ -1,43 +0,0 @@
-/* non alitivec (old) version of setjmp for PowerPC.
- Copyright (C) 1995-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include <libc-symbols.h>
-
-#if defined NOT_IN_libc
-/* Build a non-versioned object for rtld-*. */
-# include "setjmp-common.S"
-
-#else /* !NOT_IN_libc */
-/* Build a versioned object for libc. */
-default_symbol_version (__vmx__sigsetjmp,__sigsetjmp,GLIBC_2.3.4)
-# define __sigsetjmp __vmx__sigsetjmp
-# define __sigjmp_save __vmx__sigjmp_save
-# include "setjmp-common.S"
-
-# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
-# define __NO_VMX__
-# undef __sigsetjmp
-# undef __sigjmp_save
-# undef JB_SIZE
-symbol_version (__novmx__sigsetjmp,__sigsetjmp,GLIBC_2.0)
-# define __sigsetjmp __novmx__sigsetjmp
-# define __sigjmp_save __novmx__sigjmp_save
-# include "setjmp-common.S"
-# endif
-#endif /* !NOT_IN_libc */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/spe.h b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/spe.h
deleted file mode 100644
index 91bca2710..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/spe.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _SPE_H
-
-#include_next <spe.h>
-
-libc_hidden_proto (strtosfix16)
-libc_hidden_proto (strtosfix32)
-libc_hidden_proto (strtosfix64)
-libc_hidden_proto (strtoufix16)
-libc_hidden_proto (strtoufix32)
-libc_hidden_proto (strtoufix64)
-
-#endif
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtofix.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtofix.c
deleted file mode 100644
index e04e5be40..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtofix.c
+++ /dev/null
@@ -1,700 +0,0 @@
-/* Convert string representing a number to float value, using given locale.
- Copyright (C) 1997-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Cut down from strtod_l.c for converting to fixed-point, no locale
- choice, no grouping, narrow strings only. */
-
-
-#include <ctype.h>
-#include <errno.h>
-#include <fenv_libc.h>
-#include <locale/localeinfo.h>
-#include <locale.h>
-#include <math.h>
-#include <spe.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* The gmp headers need some configuration frobs. */
-#define HAVE_ALLOCA 1
-
-/* Include gmp-mparam.h first, such that definitions of _SHORT_LIMB
- and _LONG_LONG_LIMB in it can take effect into gmp.h. */
-#include <gmp-mparam.h>
-#include <gmp.h>
-#include <stdlib/gmp-impl.h>
-#include <stdlib/longlong.h>
-#include <stdlib/fpioconst.h>
-
-/*#define NDEBUG 1*/
-#include <assert.h>
-
-#if UNSIGNED
-#define RETURN_FRAC_BITS RETURN_TYPE_BITS
-#else
-#define RETURN_FRAC_BITS (RETURN_TYPE_BITS - 1)
-#endif
-
-#define RETURN(val,end) \
- do { if (endptr != NULL) *endptr = (char *) (end); \
- return val; } while (0)
-
-/* Definitions according to limb size used. */
-#if BITS_PER_MP_LIMB == 32
-# define MAX_DIG_PER_LIMB 9
-# define MAX_FAC_PER_LIMB 1000000000UL
-#elif BITS_PER_MP_LIMB == 64
-# define MAX_DIG_PER_LIMB 19
-# define MAX_FAC_PER_LIMB 10000000000000000000ULL
-#else
-# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
-#endif
-
-/* Local data structure. */
-static const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1] =
-{ 0, 10, 100,
- 1000, 10000, 100000L,
- 1000000L, 10000000L, 100000000L,
- 1000000000L
-#if BITS_PER_MP_LIMB > 32
- , 10000000000ULL, 100000000000ULL,
- 1000000000000ULL, 10000000000000ULL, 100000000000000ULL,
- 1000000000000000ULL, 10000000000000000ULL, 100000000000000000ULL,
- 1000000000000000000ULL, 10000000000000000000ULL
-#endif
-#if BITS_PER_MP_LIMB > 64
- #error "Need to expand tens_in_limb table to" MAX_DIG_PER_LIMB
-#endif
-};
-
-/* Define pow5 to be 5^(RETURN_FRAC_BITS + 1), shifted left so the
- most significant bit is set (as required by mpn_divrem), pow5size
- to be the size in limbs and pow5shift to be the shift. */
-#if RETURN_FRAC_BITS + 1 == 16
-# if BITS_PER_MP_LIMB == 32
-static const mp_limb_t pow5[] = { 0x04000000, 0x8e1bc9bf };
-# define pow5shift 26
-# define pow5size 2
-# else
-static const mp_limb_t pow5[] = { 0x8e1bc9bf04000000ull };
-# define pow5shift 26
-# define pow5size 1
-# endif
-#elif RETURN_FRAC_BITS + 1 == 17
-# if BITS_PER_MP_LIMB == 32
-static const mp_limb_t pow5[] = { 0xc5000000, 0xb1a2bc2e };
-# define pow5shift 24
-# define pow5size 2
-# else
-static const mp_limb_t pow5[] = { 0xb1a2bc2ec5000000ull };
-# define pow5shift 24
-# define pow5size 1
-# endif
-#elif RETURN_FRAC_BITS + 1 == 32
-# if BITS_PER_MP_LIMB == 32
-static const mp_limb_t pow5[] = { 0xf0200000, 0x2b70b59d, 0x9dc5ada8 };
-# define pow5shift 21
-# define pow5size 3
-# else
-static const mp_limb_t pow5[] = { 0xf020000000000000ull, 0x9dc5ada82b70b59dull };
-# define pow5shift 53
-# define pow5size 2
-# endif
-#elif RETURN_FRAC_BITS + 1 == 33
-# if BITS_PER_MP_LIMB == 32
-static const mp_limb_t pow5[] = { 0x6c280000, 0x364ce305, 0xc5371912 };
-# define pow5shift 19
-# define pow5size 3
-# else
-static const mp_limb_t pow5[] = { 0x6c28000000000000ull, 0xc5371912364ce305ull };
-# define pow5shift 51
-# define pow5size 2
-# endif
-#elif RETURN_FRAC_BITS + 1 == 64
-# if BITS_PER_MP_LIMB == 32
-static const mp_limb_t pow5[] = { 0x50f80800, 0xc76b25fb, 0x3cbf6b71, 0xffcfa6d5, 0xc2781f49 };
-# define pow5shift 11
-# define pow5size 5
-# else
-static const mp_limb_t pow5[] = { 0x50f8080000000000ull, 0x3cbf6b71c76b25fbull, 0xc2781f49ffcfa6d5ull };
-# define pow5shift 43
-# define pow5size 3
-# endif
-#elif RETURN_FRAC_BITS + 1 == 65
-# if BITS_PER_MP_LIMB == 32
-static const mp_limb_t pow5[] = { 0x25360a00, 0x3945ef7a, 0x8bef464e, 0x7fc3908a, 0xf316271c };
-# define pow5shift 9
-# define pow5size 5
-# else
-static const mp_limb_t pow5[] = { 0x25360a0000000000ull, 8bef464e3945ef7aull, 0xf316271c7fc3908aull };
-# define pow5shift 41
-# define pow5size 3
-# endif
-#else
-# error "Unknown RETURN_FRAC_BITS value."
-#endif
-
-/* Read a multi-precision integer starting at STR with exactly DIGCNT digits
- into N. Return the size of the number limbs in NSIZE. */
-static void
-str_to_mpn (const char *str, int digcnt, mp_limb_t *n, mp_size_t *nsize)
-{
- /* Number of digits for actual limb. */
- int cnt = 0;
- mp_limb_t low = 0;
- mp_limb_t start;
-
- *nsize = 0;
- assert (digcnt > 0);
- do
- {
- if (cnt == MAX_DIG_PER_LIMB)
- {
- if (*nsize == 0)
- {
- n[0] = low;
- *nsize = 1;
- }
- else
- {
- mp_limb_t cy;
- cy = __mpn_mul_1 (n, n, *nsize, MAX_FAC_PER_LIMB);
- cy += __mpn_add_1 (n, n, *nsize, low);
- if (cy != 0)
- {
- n[*nsize] = cy;
- ++(*nsize);
- }
- }
- cnt = 0;
- low = 0;
- }
-
- low = low * 10 + *str++ - '0';
- ++cnt;
- }
- while (--digcnt > 0);
-
- start = _tens_in_limb[cnt];
-
- if (*nsize == 0)
- {
- n[0] = low;
- *nsize = 1;
- }
- else
- {
- mp_limb_t cy;
- cy = __mpn_mul_1 (n, n, *nsize, start);
- cy += __mpn_add_1 (n, n, *nsize, low);
- if (cy != 0)
- n[(*nsize)++] = cy;
- }
-}
-
-/* Round a fixed point number according to the current rounding mode
- and set its sign. VAL is the initial part of the number
- (RETURN_TYPE_BITS for unsigned, one fewer for signed; values equal
- to -1.0 do not come here). SIGN is 1 for negative, 0 for positive;
- this function will not be called for negative numbers in the
- unsigned case. HALF is 1 if the next bit is 1; REST is 1 if any of
- the subsequent bits are 1. */
-static RETURN_TYPE
-round_and_set_sign (RETURN_TYPE val, int sign, int half, int rest)
-{
- int incr = 0;
- unsigned int mode = fegetenv_register ();
- mode &= 3;
- switch (mode)
- {
- case FE_TONEAREST:
- incr = (half && (rest || (val & 1)));
- break;
- case FE_TOWARDZERO:
- break;
- case FE_UPWARD:
- incr = (!sign && (half || rest));
- break;
- case FE_DOWNWARD:
- incr = (sign && (half || rest));
- break;
- }
- if (incr)
- {
- if (val == SAT_MAX)
- {
- if (sign)
- val = SAT_MIN;
- else
- {
- __set_errno (ERANGE);
- return SAT_MAX;
- }
- }
- else
- {
- val++;
- if (sign)
- val = -val;
- }
- }
- else if (sign)
- val = -val;
- return val;
-}
-
-/* Return a fixed point number with the value of the given string
- NPTR, handling out-of-range numbers as described in the SPE PIM.
- Set *ENDPTR to the character after the last used one. */
-RETURN_TYPE
-STRTOFIX (const char *nptr, char **endptr)
-{
- int negative; /* The sign of the number. */
- int exponent; /* Exponent of the number. */
-
- /* Numbers starting `0X' or `0x' have to be processed with base 16. */
- int base = 10;
-
- /* Running pointer after the last character processed in the string. */
- const char *cp;
- /* Start of significant part of the number. */
- const char *startp, *start_of_digits;
- /* Points at the character following the integer and fractional digits. */
- const char *expp;
- /* Total number of digit and number of digits in integer part. */
- int dig_no, int_no, lead_zero;
- /* Contains the last character read. */
- char c;
-
- /* The radix character of the current locale. */
- const char *decimal;
- size_t decimal_len;
- /* Used in several places. */
- int cnt;
-
- decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
- decimal_len = strlen (decimal);
- assert (decimal_len > 0);
-
- /* Prepare number representation. */
- exponent = 0;
- negative = 0;
-
- /* Parse string to get maximal legal prefix. We need the number of
- characters of the integer part, the fractional part and the exponent. */
- cp = nptr - 1;
- /* Ignore leading white space. */
- do
- c = *++cp;
- while (isspace (c));
-
- /* Get sign of the result. */
- if (c == '-')
- {
- negative = 1;
- c = *++cp;
- }
- else if (c == '+')
- c = *++cp;
-
- /* Return 0.0 if no legal string is found.
- No character is used even if a sign was found. */
- for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
- if (cp[cnt] != decimal[cnt])
- break;
- if (decimal[cnt] == '\0' && cp[cnt] >= '0' && cp[cnt] <= '9')
- {
- /* We accept it. This funny construct is here only to indent
- the code directly. */
- }
- else if (c < '0' || c > '9')
- {
- /* The SPE PIM says NaN and Inf are not supported. */
- /* It is really a text we do not recognize. */
- RETURN (0, nptr);
- }
-
- /* First look whether we are faced with a hexadecimal number. */
- if (c == '0' && tolower (cp[1]) == 'x')
- {
- /* Okay, it is a hexa-decimal number. Remember this and skip
- the characters. BTW: hexadecimal numbers must not be
- grouped. */
- base = 16;
- cp += 2;
- c = *cp;
- }
-
- /* Record the start of the digits, in case we will check their grouping. */
- start_of_digits = startp = cp;
-
- /* Ignore leading zeroes. This helps us to avoid useless computations. */
- while (c == '0')
- c = *++cp;
-
- /* If no other digit but a '0' is found the result is 0.0.
- Return current read pointer. */
- if ((c < '0' || c > '9')
- && (base != 16 || (c < (char) tolower ('a')
- || c > (char) tolower ('f')))
- && ({ for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
- if (decimal[cnt] != cp[cnt])
- break;
- decimal[cnt] != '\0'; })
- && (base != 16 || (cp == start_of_digits
- || (char) tolower (c) != 'p'))
- && (base == 16 || (char) tolower (c) != 'e'))
- {
- /* If CP is at the start of the digits, there was no correctly
- grouped prefix of the string; so no number found. */
- RETURN (0, cp == start_of_digits ? (base == 16 ? cp - 1 : nptr) : cp);
- }
-
- /* Remember first significant digit and read following characters until the
- decimal point, exponent character or any non-FP number character. */
- startp = cp;
- dig_no = 0;
- while (1)
- {
- if ((c >= '0' && c <= '9')
- || (base == 16 && tolower (c) >= 'a'
- && tolower (c) <= 'f'))
- ++dig_no;
- else
- {
- break;
- }
- c = *++cp;
- }
-
- /* We have the number digits in the integer part. Whether these are all or
- any is really a fractional digit will be decided later. */
- int_no = dig_no;
- lead_zero = int_no == 0 ? -1 : 0;
-
- /* Read the fractional digits. A special case are the 'american style'
- numbers like `16.' i.e. with decimal but without trailing digits. */
- if (
- ({ for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
- if (decimal[cnt] != cp[cnt])
- break;
- decimal[cnt] == '\0'; })
- )
- {
- cp += decimal_len;
- c = *cp;
- while ((c >= '0' && c <= '9') ||
- (base == 16 && tolower (c) >= 'a' && tolower (c) <= 'f'))
- {
- if (c != '0' && lead_zero == -1)
- lead_zero = dig_no - int_no;
- ++dig_no;
- c = *++cp;
- }
- }
-
- /* For numbers like "0x." with no hex digits, only the "0" is valid. */
- if (base == 16
- && startp == start_of_digits
- && dig_no == 0)
- RETURN (0, start_of_digits - 1);
-
- /* Remember start of exponent (if any). */
- expp = cp;
-
- /* Read exponent. */
- if ((base == 16 && tolower (c) == 'p')
- || (base != 16 && tolower (c) == 'e'))
- {
- int exp_negative = 0;
-
- c = *++cp;
- if (c == '-')
- {
- exp_negative = 1;
- c = *++cp;
- }
- else if (c == '+')
- c = *++cp;
-
- if (c >= '0' && c <= '9')
- {
- int exp_limit;
-
- /* Get the exponent limit. */
- if (base == 16)
- exp_limit = (exp_negative ?
- RETURN_TYPE_BITS + 4 * int_no :
- 4 - 4 * int_no + 4 * lead_zero);
- else
- exp_limit = (exp_negative ?
- (RETURN_TYPE_BITS + 2) / 3 + int_no :
- 1 - int_no + lead_zero);
-
- do
- {
- exponent *= 10;
-
- if (exponent > exp_limit)
- /* The exponent is too large/small to represent a valid
- number. */
- {
- RETURN_TYPE result;
-
- /* Accept all following digits as part of the exponent. */
- do
- ++cp;
- while (*cp >= '0' && *cp <= '9');
-
- /* We have to take care for special situation: a joker
- might have written "0.0e100000" which is in fact
- zero. */
- if (lead_zero == -1)
- result = 0;
-#if UNSIGNED
- else if (negative)
- {
- /* Saturate to 0. */
- __set_errno (ERANGE);
- result = SAT_MIN;
- }
-#endif
- else if (exp_negative)
- {
- /* Round to either 0 or smallest value. */
- result = round_and_set_sign (0, negative, 0, 1);
- }
- else
- {
- /* Overflow. */
- __set_errno (ERANGE);
- result = (negative ? SAT_MIN : SAT_MAX);
- }
-
- RETURN (result, cp);
- /* NOTREACHED */
- }
-
- exponent += c - '0';
- c = *++cp;
- }
- while (c >= '0' && c <= '9');
-
- if (exp_negative)
- exponent = -exponent;
- }
- else
- cp = expp;
- }
-
- /* We don't want to have to work with trailing zeroes after the radix. */
- if (dig_no > int_no)
- {
- while (expp[-1] == '0')
- {
- --expp;
- --dig_no;
- }
- assert (dig_no >= int_no);
- }
-
- if (dig_no == int_no && dig_no > 0)
- do
- {
- while (! (base == 16 ? isxdigit (expp[-1]) : isdigit (expp[-1])))
- --expp;
-
- if (expp[-1] != '0')
- break;
-
- --expp;
- --dig_no;
- --int_no;
- exponent += (base == 16 ? 4 : 1);
- }
- while (dig_no > 0);
-
- /* The whole string is parsed. Store the address of the next character. */
- if (endptr)
- *endptr = (char *) cp;
-
- if (dig_no == 0)
- return 0;
-
-#if UNSIGNED
- if (negative)
- {
- /* Saturate to 0. */
- __set_errno (ERANGE);
- return SAT_MIN;
- }
-#endif
-
- if (lead_zero)
- {
- /* Find the decimal point */
- while (1)
- {
- if (*startp == decimal[0])
- {
- for (cnt = 1; decimal[cnt] != '\0'; ++cnt)
- if (decimal[cnt] != startp[cnt])
- break;
- if (decimal[cnt] == '\0')
- break;
- }
- ++startp;
- }
- startp += lead_zero + decimal_len;
- exponent -= base == 16 ? 4 * lead_zero : lead_zero;
- dig_no -= lead_zero;
- }
-
- /* Normalize the exponent so that all digits can be considered to
- start just after the point. */
- exponent += base == 16 ? 4 * int_no : int_no;
-
- if (exponent > (base == 16 ? 4 : 1))
- {
- /* Overflow. */
- __set_errno (ERANGE);
- return (negative ? SAT_MIN : SAT_MAX);
- }
-
- /* Copy just the digits needed to a separate buffer. */
- int digits_needed = (base == 16 ? RETURN_TYPE_BITS / 4 + 2 : RETURN_FRAC_BITS + 1);
- char buf[RETURN_TYPE_BITS + 1];
- int digits_copied = 0;
- int extra = 0;
- int rdigno = dig_no;
- while (exponent < 0)
- {
- buf[digits_copied++] = '0';
- exponent += (base == 16 ? 4 : 1);
- if (digits_copied == digits_needed)
- return round_and_set_sign (0, negative, 0, 1);
- }
- while (digits_copied < digits_needed && rdigno > 0)
- {
- if (!(base == 16 ? isxdigit (*startp) : isdigit (*startp)))
- startp += decimal_len;
- buf[digits_copied++] = *startp++;
- rdigno--;
- }
- if (rdigno)
- extra = 1;
- else
- while (digits_copied < digits_needed)
- buf[digits_copied++] = '0';
-
- if (base == 10 && exponent == 1)
- {
- assert (buf[0] != '0');
- /* At least 1.0; see if there is overflow. */
- if (UNSIGNED
- || !negative
- || buf[0] > '1'
- || dig_no > 1)
- __set_errno (ERANGE);
- return (negative ? SAT_MIN : SAT_MAX);
- }
-
- if (base == 16 && exponent > 0)
- {
- int max_dig = (16 >> exponent) + '0';
- assert (buf[0] != '0');
- if (buf[0] >= max_dig)
- {
- /* At least 1.0; see if there is overflow. */
- if (UNSIGNED
- || !negative
- || buf[0] > max_dig
- || dig_no > 1)
- __set_errno (ERANGE);
- return (negative ? SAT_MIN : SAT_MAX);
- }
- }
-
- /* Now strictly in the range (0, 1) (though rounding may yet
- saturate to 1.0). */
- if (base == 10)
- assert (exponent == 0);
- else
- assert (exponent >= 0 && exponent <= 3);
-
- if (base == 16)
- {
- RETURN_TYPE r = 0;
- int half = 0;
- for (int i = 0; i < digits_needed; i++)
- {
- RETURN_TYPE val;
- int shift;
- if (isdigit (buf[i]))
- val = buf[i] - '0';
- else
- val = 10 + tolower (buf[i]) - 'a';
- shift = RETURN_FRAC_BITS - 4 + exponent - 4 * i;
- if (shift >= 0)
- r |= val << shift;
- else if (shift < -4)
- extra |= (val != 0);
- else
- {
- r |= val >> -shift;
- half = (val & (1 << (-shift - 1))) != 0;
- extra |= (val & ((1 << (-shift - 1)) - 1)) != 0;
- }
- }
- return round_and_set_sign (r, negative, half, extra);
- }
-
- /* Now we have RETURN_FRAC_BITS + 1 digits after the decimal point.
- Interpret these as an integer and divide by 5^(RETURN_FRAC_BITS +
- 1). If there is a remainder, set extra. If the result of the
- division is odd, set half. Divide by 2 again, and round the
- result. */
- mp_limb_t frac[8];
- mp_size_t fracsize;
- str_to_mpn (buf, digits_needed, frac, &fracsize);
- if (fracsize < pow5size)
- return round_and_set_sign (0, negative, 0, 1);
- frac[fracsize] = __mpn_lshift (frac, frac, fracsize, pow5shift);
- if (frac[fracsize])
- fracsize++;
- mp_limb_t quot[8];
- quot[fracsize - pow5size] = mpn_divmod (quot, frac, fracsize, pow5, pow5size);
- for (int i = 0; i < pow5size; i++)
- if (frac[i])
- extra = 1;
- int half = quot[0] & 1;
- RETURN_TYPE val = quot[0] >> 1;
-#if RETURN_FRAC_BITS > BITS_PER_MP_LIMB - 1
- val |= ((RETURN_TYPE) quot[1]) << (BITS_PER_MP_LIMB - 1);
-# if RETURN_FRAC_BITS > 2 * BITS_PER_MP_LIMB - 1
- val |= ((RETURN_TYPE) quot[2]) << (2 * BITS_PER_MP_LIMB - 1);
-# if RETURN_FRAC_BITS > 3 * BITS_PER_MP_LIMB - 1
-# error "Too many bits."
-# endif
-# endif
-#endif
- return round_and_set_sign (val, negative, half, extra);
-}
-
-libc_hidden_def (STRTOFIX)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix16.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix16.c
deleted file mode 100644
index b444f826b..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix16.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 16-bit signed fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define RETURN_TYPE int16_t
-#define UNSIGNED 0
-#define RETURN_TYPE_BITS 16
-#define SAT_MIN -0x8000
-#define SAT_MAX 0x7fff
-#define STRTOFIX strtosfix16
-
-#include "strtofix.c"
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix32.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix32.c
deleted file mode 100644
index 2b885d83f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix32.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 32-bit signed fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define RETURN_TYPE int32_t
-#define UNSIGNED 0
-#define RETURN_TYPE_BITS 32
-#define SAT_MIN 0x80000000
-#define SAT_MAX 0x7fffffff
-#define STRTOFIX strtosfix32
-
-#include "strtofix.c"
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix64.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix64.c
deleted file mode 100644
index 73bba1bd9..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtosfix64.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 64-bit signed fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define RETURN_TYPE int64_t
-#define UNSIGNED 0
-#define RETURN_TYPE_BITS 64
-#define SAT_MIN 0x8000000000000000LL
-#define SAT_MAX 0x7fffffffffffffffLL
-#define STRTOFIX strtosfix64
-
-#include "strtofix.c"
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix16.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix16.c
deleted file mode 100644
index 452bc7b45..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix16.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 16-bit unsigned fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define RETURN_TYPE uint16_t
-#define UNSIGNED 1
-#define RETURN_TYPE_BITS 16
-#define SAT_MIN 0
-#define SAT_MAX 0xffff
-#define STRTOFIX strtoufix16
-
-#include "strtofix.c"
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix32.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix32.c
deleted file mode 100644
index 8977212c8..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix32.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 32-bit unsigned fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define RETURN_TYPE uint32_t
-#define UNSIGNED 1
-#define RETURN_TYPE_BITS 32
-#define SAT_MIN 0
-#define SAT_MAX 0xffffffff
-#define STRTOFIX strtoufix32
-
-#include "strtofix.c"
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix64.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix64.c
deleted file mode 100644
index 2ace30c2d..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/strtoufix64.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Convert string to 64-bit unsigned fixed point.
- Copyright (C) 2006-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define RETURN_TYPE uint64_t
-#define UNSIGNED 1
-#define RETURN_TYPE_BITS 64
-#define SAT_MIN 0
-#define SAT_MAX 0xffffffffffffffffLL
-#define STRTOFIX strtoufix64
-
-#include "strtofix.c"
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/t_sqrt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/t_sqrt.c
deleted file mode 100644
index 1cc893170..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/t_sqrt.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/tst-spepim.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/tst-spepim.c
deleted file mode 100644
index 220df545f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/tst-spepim.c
+++ /dev/null
@@ -1,493 +0,0 @@
-/* Test SPE PIM functions.
- Copyright (C) 2007-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joseph Myers <joseph@codesourcery.com>, 2007.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fenv.h>
-#include <spe.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-typedef int16_t sint16_t;
-typedef int32_t sint32_t;
-typedef int64_t sint64_t;
-
-#define SAT_MAX_U16 0xffff
-#define SAT_MAX_U32 0xffffffffu
-#define SAT_MAX_U64 0xffffffffffffffffull
-#define SAT_MAX_S16 0x7fff
-#define SAT_MAX_S32 0x7fffffff
-#define SAT_MAX_S64 0x7fffffffffffffffll
-#define SAT_MIN_S16 (-SAT_MAX_S16 - 1)
-#define SAT_MIN_S32 (-SAT_MAX_S32 - 1)
-#define SAT_MIN_S64 (-SAT_MAX_S64 - 1)
-
-/* Test results for a single rounding mode. For each type of result,
- store the expected result and the expected errno. */
-struct res {
- sint16_t s16;
- int es16;
- sint32_t s32;
- int es32;
- sint64_t s64;
- int es64;
- uint16_t u16;
- int eu16;
- uint32_t u32;
- int eu32;
- uint64_t u64;
- int eu64;
-};
-
-struct testcase {
- /* String to test. */
- const char *s;
- /* Number of junk characters at end. */
- size_t njunk;
- /* Expected results for rounding to nearest, zero, upward and
- downward. */
- struct res res[4];
-};
-
-/* Saturating value. */
-#define SAT(VAL) VAL, ERANGE
-/* Unsaturating value. */
-#define UNSAT(VAL) VAL, 0
-/* Values saturating for both signed and unsigned. */
-#define SAT6(VAL0, VAL1, VAL2, VAL3, VAL4, VAL5) \
- { \
- SAT (VAL0), SAT (VAL1), SAT (VAL2), \
- SAT (VAL3), SAT (VAL4), SAT (VAL5) \
- }
-#define SAT6_MAX \
- SAT6 (SAT_MAX_S16, SAT_MAX_S32, SAT_MAX_S64, \
- SAT_MAX_U16, SAT_MAX_U32, SAT_MAX_U64)
-#define SAT6_MIN \
- SAT6 (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64, 0, 0, 0)
-/* Values saturating for unsigned but not signed. */
-#define SATNEG(VAL0, VAL1, VAL2) \
- { \
- UNSAT (VAL0), UNSAT (VAL1), UNSAT (VAL2), \
- SAT (0), SAT (0), SAT (0) \
- }
-/* Values not saturating. */
-#define UNSAT6(VAL0, VAL1, VAL2, VAL3, VAL4, VAL5) \
- { \
- UNSAT (VAL0), UNSAT (VAL1), UNSAT (VAL2), \
- UNSAT (VAL3), UNSAT (VAL4), UNSAT (VAL5) \
- }
-/* Results not depending on rounding mode. */
-#define EXACT_SAT6_MAX \
- { \
- SAT6_MAX, \
- SAT6_MAX, \
- SAT6_MAX, \
- SAT6_MAX \
- }
-#define EXACT_SAT6_MIN \
- { \
- SAT6_MIN, \
- SAT6_MIN, \
- SAT6_MIN, \
- SAT6_MIN \
- }
-#define EXACT_SATNEG(VAL0, VAL1, VAL2) \
- { \
- SATNEG (VAL0, VAL1, VAL2), \
- SATNEG (VAL0, VAL1, VAL2), \
- SATNEG (VAL0, VAL1, VAL2), \
- SATNEG (VAL0, VAL1, VAL2) \
- }
-#define EXACT_UNSAT6(VAL0, VAL1, VAL2, VAL3, VAL4, VAL5) \
- { \
- UNSAT6 (VAL0, VAL1, VAL2, VAL3, VAL4, VAL5), \
- UNSAT6 (VAL0, VAL1, VAL2, VAL3, VAL4, VAL5), \
- UNSAT6 (VAL0, VAL1, VAL2, VAL3, VAL4, VAL5), \
- UNSAT6 (VAL0, VAL1, VAL2, VAL3, VAL4, VAL5) \
- }
-
-static const struct testcase tests[] = {
- /* Strings evaluating to 0, including INF and NaN (not supported by
- SPE PIM functions). */
- { "", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "00", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "+0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "-0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0.0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { ".0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0.", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { " \n-0.", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0e100000000000000000", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { " \t 0e-100000000000000000", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x0.", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x.0", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x0.p100000000000000000", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "-0x0.p002000000000000000", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x.0p-100000000000000000", 0, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x", 1, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x.", 2, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { ".", 1, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { " .", 2, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "+.", 2, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { " +.", 3, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { " -.", 3, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0xp", 2, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x.p", 3, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "+0x.p", 3, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "-0x.p0", 4, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "0x0q", 1, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "INF", 3, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- { "nan", 3, EXACT_UNSAT6 (0, 0, 0, 0, 0, 0) },
- /* Strings evaluating to 1.0 or greater, saturating unconditionally. */
- { "1", 0, EXACT_SAT6_MAX },
- { "1.0", 0, EXACT_SAT6_MAX },
- { "1e0", 0, EXACT_SAT6_MAX },
- { "10e-1", 0, EXACT_SAT6_MAX },
- { "0.1e1", 0, EXACT_SAT6_MAX },
- { "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-100", 0, EXACT_SAT6_MAX },
- { "2", 0, EXACT_SAT6_MAX },
- { "0x1", 0, EXACT_SAT6_MAX },
- { "0x2p-1", 0, EXACT_SAT6_MAX },
- { "0x.8p1", 0, EXACT_SAT6_MAX },
- { "0x.40p2", 0, EXACT_SAT6_MAX },
- /* Strings evaluating to less than -1.0, saturating unconditionally. */
- { "-1.1", 0, EXACT_SAT6_MIN },
- { "-.11e1", 0, EXACT_SAT6_MIN },
- { "-11e-1", 0, EXACT_SAT6_MIN },
- { "-100", 0, EXACT_SAT6_MIN },
- { "-2", 0, EXACT_SAT6_MIN },
- { "-0x1.00000000000000000000000001", 0, EXACT_SAT6_MIN },
- { "-0x2.00000000000000000000000001p-1", 0, EXACT_SAT6_MIN },
- { "-0x0.80000000000000000000000001p1", 0, EXACT_SAT6_MIN },
- { "-1.000000000000000000000000000000000000000000000000000000000000000000000000000000001", 0, EXACT_SAT6_MIN },
- /* Strings evaluating to -1.0 exactly, saturating for unsigned but
- exactly representable for signed. */
- { "-1", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-1e", 1, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-1.0", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-10e-1", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-.1e+1", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-.0000000001e+10", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-10000000000e-10", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x1", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x1p+", 2, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x2p-1", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x4.0p-2", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x8.p-3", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x10p-4", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x.8p1", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x.4p+2", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x.2p+3", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x.1p+4", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- { "-0x.08p5", 0, EXACT_SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64) },
- /* Strings evaluating to exactly representable values between -1.0
- and 0.0, saturating for unsigned. */
- { "-0.5", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0.5e-", 2, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-05e-1", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-05000000000e-10", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0.5e0", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0.00000000005e10", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0x.8", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0x1p-1", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0x.4p1", 0, EXACT_SATNEG (-0x4000, -0x40000000, -0x4000000000000000ll) },
- { "-0.25", 0, EXACT_SATNEG (-0x2000, -0x20000000, -0x2000000000000000ll) },
- { "-2.5e-1", 0, EXACT_SATNEG (-0x2000, -0x20000000, -0x2000000000000000ll) },
- { "-0.75", 0, EXACT_SATNEG (-0x6000, -0x60000000, -0x6000000000000000ll) },
- { "-0.000030517578125", 0, EXACT_SATNEG (-0x0001, -0x00010000, -0x0001000000000000ll) },
- { "-0.376739501953125", 0, EXACT_SATNEG (-12345, -12345*0x10000, -12345*0x1000000000000ll) },
- { "-0x.dcba", 0, EXACT_SATNEG (-0x6e5d, -0x6e5d0000, -0x6e5d000000000000ll) },
- { "-0xd.cbap-4", 0, EXACT_SATNEG (-0x6e5d, -0x6e5d0000, -0x6e5d000000000000ll) },
- /* Strings evaluating to exactly representable values between 0.0
- and 1.0. */
- { "0.5", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0.5e-", 2, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "05e-1", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "05000000000e-10", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0.5e0", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0.00000000005e10", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0x.8", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0x1p-1", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0x.4p1", 0, EXACT_UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000000ull) },
- { "0.25", 0, EXACT_UNSAT6 (0x2000, 0x20000000, 0x2000000000000000ll, 0x4000, 0x40000000u, 0x4000000000000000ull) },
- { "2.5e-1", 0, EXACT_UNSAT6 (0x2000, 0x20000000, 0x2000000000000000ll, 0x4000, 0x40000000u, 0x4000000000000000ull) },
- { "0.75", 0, EXACT_UNSAT6 (0x6000, 0x60000000, 0x6000000000000000ll, 0xc000, 0xc0000000u, 0xc000000000000000ull) },
- { "0.000030517578125", 0, EXACT_UNSAT6 (0x0001, 0x00010000, 0x0001000000000000ll, 0x0002, 0x00020000u, 0x0002000000000000ull) },
- { "0.376739501953125", 0, EXACT_UNSAT6 (12345, 12345*0x10000, 12345*0x1000000000000ll, 12345*0x2, 12345*0x20000u, 12345*0x2000000000000ull) },
- { "0x.dcba", 0, EXACT_UNSAT6 (0x6e5d, 0x6e5d0000, 0x6e5d000000000000ll, 0xdcba, 0xdcba0000u, 0xdcba000000000000ull) },
- { "0xd.cbap-4", 0, EXACT_UNSAT6 (0x6e5d, 0x6e5d0000, 0x6e5d000000000000ll, 0xdcba, 0xdcba0000u, 0xdcba000000000000ull) },
- /* Strings evaluating to values between 0.0 and 1.0, depending on
- rounding mode. */
- { "0.1", 0,
- {
- UNSAT6 (0xccd, 0xccccccd, 0xccccccccccccccdll, 0x199a, 0x1999999au, 0x199999999999999aull),
- UNSAT6 (0xccc, 0xccccccc, 0xcccccccccccccccll, 0x1999, 0x19999999u, 0x1999999999999999ull),
- UNSAT6 (0xccd, 0xccccccd, 0xccccccccccccccdll, 0x199a, 0x1999999au, 0x199999999999999aull),
- UNSAT6 (0xccc, 0xccccccc, 0xcccccccccccccccll, 0x1999, 0x19999999u, 0x1999999999999999ull)
- }
- },
- { "0.5000152587890625", 0,
- {
- UNSAT6 (0x4000, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull),
- UNSAT6 (0x4000, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull),
- UNSAT6 (0x4001, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull),
- UNSAT6 (0x4000, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull)
- }
- },
- { "0.50001525878906250000000000000000000000000000000000000000000000000000000000001", 0,
- {
- UNSAT6 (0x4001, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull),
- UNSAT6 (0x4000, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull),
- UNSAT6 (0x4001, 0x40008001, 0x4000800000000001ll, 0x8002, 0x80010001u, 0x8001000000000001ull),
- UNSAT6 (0x4000, 0x40008000, 0x4000800000000000ll, 0x8001, 0x80010000u, 0x8001000000000000ull)
- }
- },
- { "0.50000000000000000008131516293641283255055896006524562835693359375", 0,
- {
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000001ll, 0x8000, 0x80000000u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4001, 0x40000001, 0x4000000000000001ll, 0x8001, 0x80000001u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull)
- }
- },
- { "0.50000000000000000008131516293641283255055896006524562835693359376", 0,
- {
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000001ll, 0x8000, 0x80000000u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4001, 0x40000001, 0x4000000000000001ll, 0x8001, 0x80000001u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull)
- }
- },
- { "0.50000000000000000008131516293641283255055896006524562835693359374", 0,
- {
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000001ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4001, 0x40000001, 0x4000000000000001ll, 0x8001, 0x80000001u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull)
- }
- },
- { "0x0.80000000000000018", 0,
- {
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000001ll, 0x8000, 0x80000000u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4001, 0x40000001, 0x4000000000000001ll, 0x8001, 0x80000001u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull)
- }
- },
- { "0x0.80000000000000017", 0,
- {
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000001ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull),
- UNSAT6 (0x4001, 0x40000001, 0x4000000000000001ll, 0x8001, 0x80000001u, 0x8000000000000002ull),
- UNSAT6 (0x4000, 0x40000000, 0x4000000000000000ll, 0x8000, 0x80000000u, 0x8000000000000001ull)
- }
- },
- /* Strings evaluating to values between -1.0 and 0.0, depending on
- rounding mode. */
- { "-0.1", 0,
- {
- SATNEG (-0xccd, -0xccccccd, -0xccccccccccccccdll),
- SATNEG (-0xccc, -0xccccccc, -0xcccccccccccccccll),
- SATNEG (-0xccc, -0xccccccc, -0xcccccccccccccccll),
- SATNEG (-0xccd, -0xccccccd, -0xccccccccccccccdll)
- }
- },
- { "-0.5000000000000000001626303258728256651011179201304912567138671875", 0,
- {
- SATNEG (-0x4000, -0x40000000, -0x4000000000000002ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4001, -0x40000001, -0x4000000000000002ll)
- }
- },
- { "-0.5000000000000000001626303258728256651011179201304912567138671874", 0,
- {
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4001, -0x40000001, -0x4000000000000002ll)
- }
- },
- { "-0.5000000000000000001626303258728256651011179201304912567138671876", 0,
- {
- SATNEG (-0x4000, -0x40000000, -0x4000000000000002ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4001, -0x40000001, -0x4000000000000002ll)
- }
- },
- { "-0x.8000000000000003", 0,
- {
- SATNEG (-0x4000, -0x40000000, -0x4000000000000002ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4001, -0x40000001, -0x4000000000000002ll)
- }
- },
- { "-0x.8000000000000002f", 0,
- {
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4000, -0x40000000, -0x4000000000000001ll),
- SATNEG (-0x4001, -0x40000001, -0x4000000000000002ll)
- }
- },
- /* Strings evaluating very close to 1.0, saturation depending on
- rounding mode. */
- { "0x.fffe1", 0,
- {
- { UNSAT (0x7fff), UNSAT (0x7fff0800), UNSAT (0x7fff080000000000ll), UNSAT (0xfffe), UNSAT (0xfffe1000u), UNSAT (0xfffe100000000000ull) },
- { UNSAT (0x7fff), UNSAT (0x7fff0800), UNSAT (0x7fff080000000000ll), UNSAT (0xfffe), UNSAT (0xfffe1000u), UNSAT (0xfffe100000000000ull) },
- { SAT (0x7fff), UNSAT (0x7fff0800), UNSAT (0x7fff080000000000ll), UNSAT (0xffff), UNSAT (0xfffe1000u), UNSAT (0xfffe100000000000ull) },
- { UNSAT (0x7fff), UNSAT (0x7fff0800), UNSAT (0x7fff080000000000ll), UNSAT (0xfffe), UNSAT (0xfffe1000u), UNSAT (0xfffe100000000000ull) }
- }
- },
- { "0x.ffff8", 0,
- {
- { SAT (0x7fff), UNSAT (0x7fffc000), UNSAT (0x7fffc00000000000ll), SAT (0xffff), UNSAT (0xffff8000u), UNSAT (0xffff800000000000ull) },
- { UNSAT (0x7fff), UNSAT (0x7fffc000), UNSAT (0x7fffc00000000000ll), UNSAT (0xffff), UNSAT (0xffff8000u), UNSAT (0xffff800000000000ull) },
- { SAT (0x7fff), UNSAT (0x7fffc000), UNSAT (0x7fffc00000000000ll), SAT (0xffff), UNSAT (0xffff8000u), UNSAT (0xffff800000000000ull) },
- { UNSAT (0x7fff), UNSAT (0x7fffc000), UNSAT (0x7fffc00000000000ll), UNSAT (0xffff), UNSAT (0xffff8000u), UNSAT (0xffff800000000000ull) }
- }
- },
- { "0x.fffffffffffffffff", 0,
- {
- { SAT (0x7fff), SAT (0x7fffffff), SAT (0x7fffffffffffffffll), SAT (0xffff), SAT (0xffffffffu), SAT (0xffffffffffffffffull) },
- { UNSAT (0x7fff), UNSAT (0x7fffffff), UNSAT (0x7fffffffffffffffll), UNSAT (0xffff), UNSAT (0xffffffffu), UNSAT (0xffffffffffffffffull) },
- { SAT (0x7fff), SAT (0x7fffffff), SAT (0x7fffffffffffffffll), SAT (0xffff), SAT (0xffffffffu), SAT (0xffffffffffffffffull) },
- { UNSAT (0x7fff), UNSAT (0x7fffffff), UNSAT (0x7fffffffffffffffll), UNSAT (0xffff), UNSAT (0xffffffffu), UNSAT (0xffffffffffffffffull) }
- }
- },
- /* Strings evaluating very close to -1.0, may round to -1 but only
- saturate for unsigned. */
- { "-0x.fffe1", 0,
- {
- SATNEG (-0x7fff, -0x7fff0800, -0x7fff080000000000ll),
- SATNEG (-0x7fff, -0x7fff0800, -0x7fff080000000000ll),
- SATNEG (-0x7fff, -0x7fff0800, -0x7fff080000000000ll),
- SATNEG (SAT_MIN_S16, -0x7fff0800, -0x7fff080000000000ll)
- }
- },
- { "-0x.ffffffffffffffff", 0,
- {
- SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64),
- SATNEG (-0x7fff, -0x7fffffff, -0x7fffffffffffffffll),
- SATNEG (-0x7fff, -0x7fffffff, -0x7fffffffffffffffll),
- SATNEG (SAT_MIN_S16, SAT_MIN_S32, SAT_MIN_S64)
- }
- }
-};
-
-static const int rounding_modes[4] = {
- FE_TONEAREST,
- FE_TOWARDZERO,
- FE_UPWARD,
- FE_DOWNWARD
-};
-
-static const char *const mode_names[4] = {
- "FE_TONEAREST",
- "FE_TOWARDZERO",
- "FE_UPWARD",
- "FE_DOWNWARD"
-};
-
-int
-main (void)
-{
- int passes = 0;
- int fails = 0;
- size_t i;
- for (i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
- {
- size_t j;
- for (j = 0; j < 4; j++)
- {
- if (fesetround (rounding_modes[j]) != 0)
- {
- printf ("fesetround (%s) failed.\n", mode_names[j]);
- abort ();
- }
-#define DO_TEST(SU, SZ, PR) \
- do { \
- SU##int##SZ##_t expret = tests[i].res[j].SU##SZ; \
- int experr = tests[i].res[j].e##SU##SZ; \
- size_t explen = strlen (tests[i].s) - tests[i].njunk; \
- SU##int##SZ##_t ret0, ret1; \
- int reterr; \
- size_t retlen; \
- char *ep; \
- errno = 0; \
- ret0 = strto##SU##fix##SZ (tests[i].s, &ep); \
- reterr = errno; \
- retlen = ep - tests[i].s; \
- if (ret0 == expret) \
- passes++; \
- else \
- { \
- fails++; \
- printf ("strto"#SU"fix"#SZ" (\"%s\") in mode %s " \
- "returned %0"PR"x, expected %0"PR"x.\n", \
- tests[i].s, mode_names[j], ret0, expret); \
- } \
- if (reterr == experr) \
- passes++; \
- else \
- { \
- fails++; \
- printf ("strto"#SU"fix"#SZ" (\"%s\") in mode %s " \
- "left errno as %d, expected %d.\n", \
- tests[i].s, mode_names[j], reterr, experr); \
- } \
- if (retlen == explen) \
- passes++; \
- else \
- { \
- fails++; \
- printf ("strto"#SU"fix"#SZ" (\"%s\") in mode %s " \
- "consumed %zu characters, expected %zu.\n", \
- tests[i].s, mode_names[j], retlen, explen); \
- } \
- if (experr == 0) \
- { \
- ret1 = ato##SU##fix##SZ (tests[i].s); \
- if (ret1 == expret) \
- passes++; \
- else \
- { \
- fails++; \
- printf ("ato"#SU"fix"#SZ" (\"%s\") in mode %s " \
- "returned %0"PR"x, expected %0"PR"x.\n", \
- tests[i].s, mode_names[j], ret1, expret); \
- } \
- } \
- } while (0)
- DO_TEST (s, 16, "4h");
- DO_TEST (s, 32, "8");
- DO_TEST (s, 64, "16ll");
- DO_TEST (u, 16, "4h");
- DO_TEST (u, 32, "8");
- DO_TEST (u, 64, "16ll");
- }
- }
- printf ("Number of passes: %d\nNumber of failures: %d\n", passes, fails);
- return fails != 0;
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrt.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrt.c
deleted file mode 100644
index 3721f24a7..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrt.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/w_sqrt.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrtf.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrtf.c
deleted file mode 100644
index 7c6ca901a..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/fpu/w_sqrtf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <math/w_sqrtf.c>
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Makefile b/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Makefile
deleted file mode 100644
index 2d7d09205..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# Double precision floating point gets emulated.
-ifeq ($(subdir),soft-fp)
-sysdep_routines += $(gcc-double-routines) fraiseexcept-soft
-endif
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Subdirs b/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Subdirs
deleted file mode 100644
index 87eadf302..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Subdirs
+++ /dev/null
@@ -1 +0,0 @@
-soft-fp
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Versions b/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Versions
deleted file mode 100644
index f126c9a8a..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/Versions
+++ /dev/null
@@ -1,19 +0,0 @@
-libc {
- GLIBC_2.3.3 {
- __feraiseexcept_soft;
- __adddf3; __truncdfsf2;
- __divdf3; __eqdf2;
- __extendsfdf2; __fixdfdi; __fixdfsi; __fixsfdi;
- __fixtfdi;
- __fixunsdfdi; __fixunsdfsi;
- __floatdidf; __floatsidf;
- __gedf2; __ledf2; __muldf3;
- __negdf2; __sqrtdf2; __subdf3;
- __truncdfsf2;
- }
- GLIBC_2.5 {
- __floatundidf; __floatunsidf;
- __unorddf2; __nedf2;
- __gtdf2; __ltdf2;
- }
-}
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/fraiseexcept-soft.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/fraiseexcept-soft.c
deleted file mode 100644
index d2bb5410f..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/fraiseexcept-soft.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Raise given exceptions.
- Copyright (C) 2004-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <libc-symbols.h>
-
-int __feraiseexcept_soft (int);
-libc_hidden_proto (__feraiseexcept_soft)
-
-#define __FERAISEEXCEPT_INTERNAL __feraiseexcept_soft
-#include "../spe-raise.c"
-libc_hidden_def (__feraiseexcept_soft)
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/sfp-machine.h b/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/sfp-machine.h
deleted file mode 100644
index 8b80e128b..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/soft-fp/sfp-machine.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _SFP_MACHINE_H_
-#define _SFP_MACHINE_H_
-#include <fenv_libc.h>
-#include <libc-symbols.h>
-
-int __feraiseexcept_soft (int);
-libc_hidden_proto (__feraiseexcept_soft)
-
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define _FP_MUL_MEAT_S(R,X,Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_D(R,X,Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y) \
- _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
-#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-/* Someone please check this. */
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
- do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
- && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
- { \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R,Y); \
- } \
- else \
- { \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R,X); \
- } \
- R##_c = FP_CLS_NAN; \
- } while (0)
-
-/* Exception flags. We use the bit positions of the appropriate bits
- in the FPEFSCR, which also correspond to the FE_* bits. This makes
- everything easier ;-). */
-#define FP_EX_INEXACT (1 << (63 - 42))
-#define FP_EX_INVALID (1 << (63 - 43))
-#define FP_EX_DIVZERO (1 << (63 - 44))
-#define FP_EX_UNDERFLOW (1 << (63 - 45))
-#define FP_EX_OVERFLOW (1 << (63 - 46))
-
-/* This will work inasmuch as FP_EX_* are the same as FE_*. */
-#define FP_HANDLE_EXCEPTIONS __feraiseexcept_soft (_fex)
-
-#define FP_ROUNDMODE (fegetenv_register() & 0x3)
-#endif /* _SFP_MACHINE_H_ */
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/e500/spe-raise.c b/libc/ports/sysdeps/powerpc/powerpc32/e500/spe-raise.c
deleted file mode 100644
index 79398e3b1..000000000
--- a/libc/ports/sysdeps/powerpc/powerpc32/e500/spe-raise.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Raise given exceptions.
- Copyright (C) 1997-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__FERAISEEXCEPT_INTERNAL (int excepts)
-{
- unsigned long f;
-
- f = fegetenv_register ();
- f |= (excepts & FE_ALL_EXCEPT);
- fesetenv_register (f);
-
- /* Force the operations that cause the exceptions. */
- if ((FE_INVALID & excepts) != 0)
- {
- /* ?? Does not set sticky bit ?? */
- /* 0 / 0 */
- asm volatile ("efsdiv %0,%0,%1" : : "r" (0), "r" (0));
- }
-
- if ((FE_DIVBYZERO & excepts) != 0)
- {
- /* 1.0 / 0.0 */
- asm volatile ("efsdiv %0,%0,%1" : : "r" (1.0F), "r" (0));
- }
-
- if ((FE_OVERFLOW & excepts) != 0)
- {
- /* ?? Does not set sticky bit ?? */
- /* Largest normalized number plus itself. */
- asm volatile ("efsadd %0,%0,%1" : : "r" (0x7f7fffff), "r" (0x7f7fffff));
- }
-
- if ((FE_UNDERFLOW & excepts) != 0)
- {
- /* ?? Does not set sticky bit ?? */
- /* Smallest normalized number times itself. */
- asm volatile ("efsmul %0,%0,%1" : : "r" (0x800000), "r" (0x800000));
- }
-
- if ((FE_INEXACT & excepts) != 0)
- {
- /* Smallest normalized minus 1.0 raises the inexact flag. */
- asm volatile ("efssub %0,%0,%1" : : "r" (0x00800000), "r" (1.0F));
- }
-
- /* Success. */
- return 0;
-}