summaryrefslogtreecommitdiff
path: root/sysdeps/i386
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/add_n.S23
-rw-r--r--sysdeps/i386/addmul_1.S20
-rw-r--r--sysdeps/i386/bp-asm.h143
-rw-r--r--sysdeps/i386/bsd-_setjmp.S15
-rw-r--r--sysdeps/i386/bsd-setjmp.S17
-rw-r--r--sysdeps/i386/configure12
-rw-r--r--sysdeps/i386/configure.in6
-rw-r--r--sysdeps/i386/dl-machine.h6
-rw-r--r--sysdeps/i386/fpu/fegetenv.c5
-rw-r--r--sysdeps/i386/fpu/fesetenv.c5
-rw-r--r--sysdeps/i386/fpu/feupdateenv.c5
-rw-r--r--sysdeps/i386/fpu/fsetexcptflg.c5
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps1036
-rw-r--r--sysdeps/i386/fpu/math-tests.h26
-rw-r--r--sysdeps/i386/fpu/s_frexp.S13
-rw-r--r--sysdeps/i386/fpu/s_frexpf.S13
-rw-r--r--sysdeps/i386/fpu/s_frexpl.S13
-rw-r--r--sysdeps/i386/fpu/s_remquo.S13
-rw-r--r--sysdeps/i386/fpu/s_remquof.S13
-rw-r--r--sysdeps/i386/fpu/s_remquol.S13
-rw-r--r--sysdeps/i386/i486/strcat.S22
-rw-r--r--sysdeps/i386/i486/strlen.S14
-rw-r--r--sysdeps/i386/i586/add_n.S23
-rw-r--r--sysdeps/i386/i586/addmul_1.S20
-rw-r--r--sysdeps/i386/i586/bzero.S2
-rw-r--r--sysdeps/i386/i586/lshift.S21
-rw-r--r--sysdeps/i386/i586/memcpy.S20
-rw-r--r--sysdeps/i386/i586/mempcpy.S4
-rw-r--r--sysdeps/i386/i586/memset.S20
-rw-r--r--sysdeps/i386/i586/mul_1.S20
-rw-r--r--sysdeps/i386/i586/rshift.S21
-rw-r--r--sysdeps/i386/i586/strchr.S42
-rw-r--r--sysdeps/i386/i586/strcpy.S20
-rw-r--r--sysdeps/i386/i586/strlen.S14
-rw-r--r--sysdeps/i386/i586/sub_n.S23
-rw-r--r--sysdeps/i386/i586/submul_1.S20
-rw-r--r--sysdeps/i386/i686/Makefile2
-rw-r--r--sysdeps/i386/i686/add_n.S23
-rw-r--r--sysdeps/i386/i686/bzero.S2
-rw-r--r--sysdeps/i386/i686/memcmp.S20
-rw-r--r--sysdeps/i386/i686/memcpy.S19
-rw-r--r--sysdeps/i386/i686/memmove.S31
-rw-r--r--sysdeps/i386/i686/mempcpy.S25
-rw-r--r--sysdeps/i386/i686/memset.S20
-rw-r--r--sysdeps/i386/i686/strcmp.S27
-rw-r--r--sysdeps/i386/i686/strtok.S60
-rw-r--r--sysdeps/i386/i686/strtok_r.S4
-rw-r--r--sysdeps/i386/lshift.S21
-rw-r--r--sysdeps/i386/memchr.S33
-rw-r--r--sysdeps/i386/memcmp.S24
-rw-r--r--sysdeps/i386/mul_1.S20
-rw-r--r--sysdeps/i386/rawmemchr.S23
-rw-r--r--sysdeps/i386/rshift.S21
-rw-r--r--sysdeps/i386/setjmp.S15
-rw-r--r--sysdeps/i386/start.S10
-rw-r--r--sysdeps/i386/stpcpy.S22
-rw-r--r--sysdeps/i386/stpncpy.S33
-rw-r--r--sysdeps/i386/strchr.S25
-rw-r--r--sysdeps/i386/strchrnul.S23
-rw-r--r--sysdeps/i386/strcspn.S14
-rw-r--r--sysdeps/i386/strpbrk.S24
-rw-r--r--sysdeps/i386/strrchr.S23
-rw-r--r--sysdeps/i386/strspn.S14
-rw-r--r--sysdeps/i386/strtok.S56
-rw-r--r--sysdeps/i386/strtok_r.S4
-rw-r--r--sysdeps/i386/sub_n.S23
-rw-r--r--sysdeps/i386/submul_1.S20
67 files changed, 1422 insertions, 967 deletions
diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S
index f5ac4e9a76..dddbe7dd1e 100644
--- a/sysdeps/i386/add_n.S
+++ b/sysdeps/i386/add_n.S
@@ -19,18 +19,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+8 /* space for 2 saved regs */
+#define PARMS 4+8 /* space for 2 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define S2 S1+PTR_SIZE
-#define SIZE S2+PTR_SIZE
+#define S1 RES+4
+#define S2 S1+4
+#define SIZE S2+4
.text
-ENTRY (BP_SYM (__mpn_add_n))
- ENTER
+ENTRY (__mpn_add_n)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -43,13 +40,6 @@ ENTRY (BP_SYM (__mpn_add_n))
cfi_rel_offset (esi, 0)
movl S2(%esp),%edx
movl SIZE(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ecx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%edx, S2(%esp), %ecx)
- shrl $2, %ecx
-#endif
movl %ecx,%eax
shrl $3,%ecx /* compute count for unrolled loop */
negl %eax
@@ -117,6 +107,5 @@ L(oop): movl (%esi),%eax
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_add_n))
+END (__mpn_add_n)
diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S
index c18666fbef..ee2a78b470 100644
--- a/sysdeps/i386/addmul_1.S
+++ b/sysdeps/i386/addmul_1.S
@@ -19,13 +19,11 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define SIZE S1+PTR_SIZE
+#define S1 RES+4
+#define SIZE S1+4
#define S2LIMB SIZE+4
#define res_ptr edi
@@ -34,8 +32,7 @@
#define s2_limb ebx
.text
-ENTRY (BP_SYM (__mpn_addmul_1))
- ENTER
+ENTRY (__mpn_addmul_1)
pushl %res_ptr
cfi_adjust_cfa_offset (4)
@@ -53,12 +50,6 @@ ENTRY (BP_SYM (__mpn_addmul_1))
movl SIZE(%esp), %sizeP
movl S2LIMB(%esp), %s2_limb
cfi_rel_offset (s2_limb, 0)
-#if __BOUNDED_POINTERS__
- shll $2, %sizeP /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
- CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
- shrl $2, %sizeP
-#endif
leal (%res_ptr,%sizeP,4), %res_ptr
leal (%s1_ptr,%sizeP,4), %s1_ptr
negl %sizeP
@@ -91,6 +82,5 @@ L(oop):
cfi_adjust_cfa_offset (-4)
cfi_restore (res_ptr)
- LEAVE
ret
-END (BP_SYM (__mpn_addmul_1))
+END (__mpn_addmul_1)
diff --git a/sysdeps/i386/bp-asm.h b/sysdeps/i386/bp-asm.h
deleted file mode 100644
index 2026b24f8b..0000000000
--- a/sysdeps/i386/bp-asm.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Bounded-pointer definitions for x86 assembler.
- Copyright (C) 2000-2013 Free Software Foundation, Inc.
- Contributed by Greg McGary <greg@mcgary.org>
- This file is part of the GNU C Library. Its master source is NOT part of
- the C library, however. The master source lives in the GNU MP 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 _bp_asm_h_
-# define _bp_asm_h_ 1
-
-# if __ASSEMBLER__
-
-# if __BOUNDED_POINTERS__
-
-/* Bounded pointers occupy three words. */
-# define PTR_SIZE 12
-/* Bounded pointer return values are passed back through a hidden
- argument that points to caller-allocate space. The hidden arg
- occupies one word on the stack. */
-# define RTN_SIZE 4
-/* Although the caller pushes the hidden arg, the callee is
- responsible for popping it. */
-# define RET_PTR ret $RTN_SIZE
-/* Maintain frame pointer chain in leaf assembler functions for the benefit
- of debugging stack traces when bounds violations occur. */
-# define ENTER pushl %ebp; movl %esp, %ebp
-# define LEAVE movl %ebp, %esp; popl %ebp
-/* Stack space overhead of procedure-call linkage: return address and
- frame pointer. */
-# define LINKAGE 8
-/* Stack offset of return address after calling ENTER. */
-# define PCOFF 4
-
-/* Int 5 is the "bound range" exception also raised by the "bound"
- instruction. */
-# define BOUNDS_VIOLATED int $5
-
-# define CHECK_BOUNDS_LOW(VAL_REG, BP_MEM) \
- cmpl 4+BP_MEM, VAL_REG; \
- jae 0f; /* continue if value >= low */ \
- BOUNDS_VIOLATED; \
- 0:
-
-# define CHECK_BOUNDS_HIGH(VAL_REG, BP_MEM, Jcc) \
- cmpl 8+BP_MEM, VAL_REG; \
- Jcc 0f; /* continue if value < high */ \
- BOUNDS_VIOLATED; \
- 0:
-
-# define CHECK_BOUNDS_BOTH(VAL_REG, BP_MEM) \
- cmpl 4+BP_MEM, VAL_REG; \
- jb 1f; /* die if value < low */ \
- cmpl 8+BP_MEM, VAL_REG; \
- jb 0f; /* continue if value < high */ \
- 1: BOUNDS_VIOLATED; \
- 0:
-
-# define CHECK_BOUNDS_BOTH_WIDE(VAL_REG, BP_MEM, LENGTH) \
- CHECK_BOUNDS_LOW(VAL_REG, BP_MEM); \
- addl LENGTH, VAL_REG; \
- cmpl 8+BP_MEM, VAL_REG; \
- jbe 0f; /* continue if value <= high */ \
- BOUNDS_VIOLATED; \
- 0: subl LENGTH, VAL_REG /* restore value */
-
-/* Take bounds from BP_MEM and affix them to the pointer
- value in %eax, stuffing all into memory at RTN(%esp).
- Use %edx as a scratch register. */
-
-# define RETURN_BOUNDED_POINTER(BP_MEM) \
- movl RTN(%esp), %edx; \
- movl %eax, 0(%edx); \
- movl 4+BP_MEM, %eax; \
- movl %eax, 4(%edx); \
- movl 8+BP_MEM, %eax; \
- movl %eax, 8(%edx)
-
-# define RETURN_NULL_BOUNDED_POINTER \
- movl RTN(%esp), %edx; \
- movl %eax, 0(%edx); \
- movl %eax, 4(%edx); \
- movl %eax, 8(%edx)
-
-/* The caller of __errno_location is responsible for allocating space
- for the three-word BP return-value and passing pushing its address
- as an implicit first argument. */
-# define PUSH_ERRNO_LOCATION_RETURN \
- subl $8, %esp; \
- subl $4, %esp; \
- pushl %esp
-
-/* __errno_location is responsible for popping the implicit first
- argument, but we must pop the space for the BP itself. We also
- dereference the return value in order to dig out the pointer value. */
-# define POP_ERRNO_LOCATION_RETURN \
- popl %eax; \
- addl $8, %esp
-
-# else /* !__BOUNDED_POINTERS__ */
-
-/* Unbounded pointers occupy one word. */
-# define PTR_SIZE 4
-/* Unbounded pointer return values are passed back in the register %eax. */
-# define RTN_SIZE 0
-/* Use simple return instruction for unbounded pointer values. */
-# define RET_PTR ret
-/* Don't maintain frame pointer chain for leaf assembler functions. */
-# define ENTER
-# define LEAVE
-/* Stack space overhead of procedure-call linkage: return address only. */
-# define LINKAGE 4
-/* Stack offset of return address after calling ENTER. */
-# define PCOFF 0
-
-# define CHECK_BOUNDS_LOW(VAL_REG, BP_MEM)
-# define CHECK_BOUNDS_HIGH(VAL_REG, BP_MEM, Jcc)
-# define CHECK_BOUNDS_BOTH(VAL_REG, BP_MEM)
-# define CHECK_BOUNDS_BOTH_WIDE(VAL_REG, BP_MEM, LENGTH)
-# define RETURN_BOUNDED_POINTER(BP_MEM)
-
-# define RETURN_NULL_BOUNDED_POINTER
-
-# define PUSH_ERRNO_LOCATION_RETURN
-# define POP_ERRNO_LOCATION_RETURN
-
-# endif /* !__BOUNDED_POINTERS__ */
-
-# endif /* __ASSEMBLER__ */
-
-#endif /* _bp_asm_h_ */
diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
index ae52283b86..54483fea56 100644
--- a/sysdeps/i386/bsd-_setjmp.S
+++ b/sysdeps/i386/bsd-_setjmp.S
@@ -22,20 +22,16 @@
#include <sysdep.h>
#include <jmpbuf-offsets.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
#include <stap-probe.h>
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define JMPBUF PARMS
-#define SIGMSK JMPBUF+PTR_SIZE
+#define SIGMSK JMPBUF+4
-ENTRY (BP_SYM (_setjmp))
- ENTER
+ENTRY (_setjmp)
xorl %eax, %eax
movl JMPBUF(%esp), %edx
- CHECK_BOUNDS_BOTH_WIDE (%edx, JMPBUF(%esp), $(JB_SIZE+4))
/* Save registers. */
movl %ebx, (JB_BX*4)(%edx)
@@ -46,16 +42,15 @@ ENTRY (BP_SYM (_setjmp))
PTR_MANGLE (%ecx)
#endif
movl %ecx, (JB_SP*4)(%edx)
- movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
+ movl 0(%esp), %ecx /* Save PC we are returning to now. */
LIBC_PROBE (setjmp, 3, 4@%edx, -4@$0, 4@%ecx)
#ifdef PTR_MANGLE
PTR_MANGLE (%ecx)
#endif
movl %ecx, (JB_PC*4)(%edx)
- LEAVE
movl %ebp, (JB_BP*4)(%edx) /* Save caller's frame pointer. */
movl %eax, JB_SIZE(%edx) /* No signal mask set. */
ret
-END (BP_SYM (_setjmp))
+END (_setjmp)
libc_hidden_def (_setjmp)
diff --git a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
index a845821233..b6daa8c036 100644
--- a/sysdeps/i386/bsd-setjmp.S
+++ b/sysdeps/i386/bsd-setjmp.S
@@ -22,22 +22,18 @@
#include <sysdep.h>
#include <jmpbuf-offsets.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
#include <stap-probe.h>
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define JMPBUF PARMS
-#define SIGMSK JMPBUF+PTR_SIZE
+#define SIGMSK JMPBUF+4
-ENTRY (BP_SYM (setjmp))
+ENTRY (setjmp)
/* Note that we have to use a non-exported symbol in the next
jump since otherwise gas will emit it as a jump through the
PLT which is what we cannot use here. */
- ENTER
movl JMPBUF(%esp), %eax
- CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
/* Save registers. */
movl %ebx, (JB_BX*4)(%eax)
@@ -48,13 +44,12 @@ ENTRY (BP_SYM (setjmp))
PTR_MANGLE (%ecx)
#endif
movl %ecx, (JB_SP*4)(%eax)
- movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
+ movl 0(%esp), %ecx /* Save PC we are returning to now. */
LIBC_PROBE (setjmp, 3, 4@%eax, -4@$1, 4@%ecx)
#ifdef PTR_MANGLE
PTR_MANGLE (%ecx)
#endif
movl %ecx, (JB_PC*4)(%eax)
- LEAVE /* pop frame pointer to prepare for tail-call. */
movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */
/* Call __sigjmp_save. */
@@ -62,10 +57,10 @@ ENTRY (BP_SYM (setjmp))
cfi_adjust_cfa_offset (4)
pushl 8(%esp)
cfi_adjust_cfa_offset (4)
- call BP_SYM (__sigjmp_save)
+ call __sigjmp_save
popl %ecx
cfi_adjust_cfa_offset (-4)
popl %edx
cfi_adjust_cfa_offset (-4)
ret
-END (BP_SYM (setjmp))
+END (setjmp)
diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure
index 7b3683f600..d81b613a81 100644
--- a/sysdeps/i386/configure
+++ b/sysdeps/i386/configure
@@ -66,6 +66,8 @@ if test $libc_cv_cc_sse4 = yes; then
$as_echo "#define HAVE_SSE4_SUPPORT 1" >>confdefs.h
fi
+config_vars="$config_vars
+config-cflags-sse4 = $libc_cv_cc_sse4"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler -mtune=i686 support" >&5
$as_echo_n "checking for assembler -mtune=i686 support... " >&6; }
@@ -86,6 +88,8 @@ fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_as_i686" >&5
$as_echo "$libc_cv_as_i686" >&6; }
+config_vars="$config_vars
+config-asflags-i686 = $libc_cv_as_i686"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support" >&5
$as_echo_n "checking for AVX support... " >&6; }
@@ -110,6 +114,8 @@ if test $libc_cv_cc_avx = yes; then
$as_echo "#define HAVE_AVX_SUPPORT 1" >>confdefs.h
fi
+config_vars="$config_vars
+config-cflags-avx = $libc_cv_cc_avx"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5
$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; }
@@ -134,6 +140,8 @@ if test $libc_cv_cc_sse2avx = yes; then
$as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h
fi
+config_vars="$config_vars
+config-cflags-sse2avx = $libc_cv_cc_sse2avx"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5
$as_echo_n "checking for FMA4 support... " >&6; }
@@ -158,6 +166,8 @@ if test $libc_cv_cc_fma4 = yes; then
$as_echo "#define HAVE_FMA4_SUPPORT 1" >>confdefs.h
fi
+config_vars="$config_vars
+have-mfma4 = $libc_cv_cc_fma4"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mno-vzeroupper support" >&5
$as_echo_n "checking for -mno-vzeroupper support... " >&6; }
@@ -178,6 +188,8 @@ fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_novzeroupper" >&5
$as_echo "$libc_cv_cc_novzeroupper" >&6; }
+config_vars="$config_vars
+config-cflags-novzeroupper = $libc_cv_cc_novzeroupper"
$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in
index 36cb3e46e0..9967a160ba 100644
--- a/sysdeps/i386/configure.in
+++ b/sysdeps/i386/configure.in
@@ -12,6 +12,7 @@ LIBC_TRY_CC_OPTION([-msse4], [libc_cv_cc_sse4=yes], [libc_cv_cc_sse4=no])
if test $libc_cv_cc_sse4 = yes; then
AC_DEFINE(HAVE_SSE4_SUPPORT)
fi
+LIBC_CONFIG_VAR([config-cflags-sse4], [$libc_cv_cc_sse4])
dnl Check if -Wa,-mtune=i686 works.
AC_CACHE_CHECK(for assembler -mtune=i686 support, libc_cv_as_i686, [dnl
@@ -19,6 +20,7 @@ LIBC_TRY_CC_OPTION([-Wa,-mtune=i686],
[libc_cv_as_i686=yes],
[libc_cv_as_i686=no])
])
+LIBC_CONFIG_VAR([config-asflags-i686], [$libc_cv_as_i686])
dnl Check if -mavx works.
AC_CACHE_CHECK(for AVX support, libc_cv_cc_avx, [dnl
@@ -27,6 +29,7 @@ LIBC_TRY_CC_OPTION([-mavx], [libc_cv_cc_avx=yes], [libc_cv_cc_avx=no])
if test $libc_cv_cc_avx = yes; then
AC_DEFINE(HAVE_AVX_SUPPORT)
fi
+LIBC_CONFIG_VAR([config-cflags-avx], [$libc_cv_cc_avx])
dnl Check if -msse2avx works.
AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl
@@ -37,6 +40,7 @@ LIBC_TRY_CC_OPTION([-msse2avx],
if test $libc_cv_cc_sse2avx = yes; then
AC_DEFINE(HAVE_SSE2AVX_SUPPORT)
fi
+LIBC_CONFIG_VAR([config-cflags-sse2avx], [$libc_cv_cc_sse2avx])
dnl Check if -mfma4 works.
AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl
@@ -45,6 +49,7 @@ LIBC_TRY_CC_OPTION([-mfma4], [libc_cv_cc_fma4=yes], [libc_cv_cc_fma4=no])
if test $libc_cv_cc_fma4 = yes; then
AC_DEFINE(HAVE_FMA4_SUPPORT)
fi
+LIBC_CONFIG_VAR([have-mfma4], [$libc_cv_cc_fma4])
dnl Check if -mno-vzeroupper works.
AC_CACHE_CHECK(for -mno-vzeroupper support, libc_cv_cc_novzeroupper, [dnl
@@ -52,6 +57,7 @@ LIBC_TRY_CC_OPTION([-mno-vzeroupper],
[libc_cv_cc_novzeroupper=yes],
[libc_cv_cc_novzeroupper=no])
])
+LIBC_CONFIG_VAR([config-cflags-novzeroupper], [$libc_cv_cc_novzeroupper])
dnl It is always possible to access static and hidden symbols in an
dnl position independent way.
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index a1e40d8eb0..0b4c46736d 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -144,18 +144,16 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
#ifdef IN_DL_RUNTIME
-# if !defined PROF && !__BOUNDED_POINTERS__
+# ifndef PROF
/* We add a declaration of this function here so that in dl-runtime.c
the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters
in registers.
We cannot use this scheme for profiling because the _mcount call
destroys the passed register information. */
-/* GKM FIXME: Fix trampoline to pass bounds so we can do
- without the `__unbounded' qualifier. */
#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), stdcall, unused))
-extern ElfW(Addr) _dl_fixup (struct link_map *__unbounded l,
+extern ElfW(Addr) _dl_fixup (struct link_map *l,
ElfW(Word) reloc_offset)
ARCH_FIXUP_ATTRIBUTE;
extern ElfW(Addr) _dl_profile_fixup (struct link_map *l,
diff --git a/sysdeps/i386/fpu/fegetenv.c b/sysdeps/i386/fpu/fegetenv.c
index df7fced10e..c650f9fe05 100644
--- a/sysdeps/i386/fpu/fegetenv.c
+++ b/sysdeps/i386/fpu/fegetenv.c
@@ -18,7 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <bp-sym.h>
int
__fegetenv (fenv_t *envp)
@@ -36,8 +35,8 @@ __fegetenv (fenv_t *envp)
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
libm_hidden_ver (__fegetenv, fegetenv)
-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
diff --git a/sysdeps/i386/fpu/fesetenv.c b/sysdeps/i386/fpu/fesetenv.c
index aee1ee0b3f..94178e13c9 100644
--- a/sysdeps/i386/fpu/fesetenv.c
+++ b/sysdeps/i386/fpu/fesetenv.c
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <assert.h>
-#include <bp-sym.h>
int
@@ -80,8 +79,8 @@ __fesetenv (const fenv_t *envp)
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
strong_alias (__fesetenv, __old_fesetenv)
-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
#endif
libm_hidden_ver (__fesetenv, fesetenv)
-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
+versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c
index e3659798e7..b2a810add3 100644
--- a/sysdeps/i386/fpu/feupdateenv.c
+++ b/sysdeps/i386/fpu/feupdateenv.c
@@ -18,7 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <bp-sym.h>
#include <unistd.h>
#include <dl-procinfo.h>
#include <ldsodefs.h>
@@ -53,8 +52,8 @@ __feupdateenv (const fenv_t *envp)
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
strong_alias (__feupdateenv, __old_feupdateenv)
-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
+compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
#endif
libm_hidden_ver (__feupdateenv, feupdateenv)
-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
+versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
diff --git a/sysdeps/i386/fpu/fsetexcptflg.c b/sysdeps/i386/fpu/fsetexcptflg.c
index d197aaabb5..0c328272d7 100644
--- a/sysdeps/i386/fpu/fsetexcptflg.c
+++ b/sysdeps/i386/fpu/fsetexcptflg.c
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <math.h>
-#include <bp-sym.h>
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
@@ -64,7 +63,7 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts)
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
+compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
#endif
-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
+versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index fd0180ffd6..5bf58273c9 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -275,18 +275,158 @@ ifloat: 1
Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 1.0 i) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 1.0 i) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i) == 3.141592653377875508152537040020250564229 - 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i) == 3.141592653377875508152537040020250564229 + 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i) == 3.141592643999491532482601997450598791535 - 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i) == 3.141592643999491532482601997450598791535 + 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i) == 1.572134236154454360143880041170803681211 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i) == 1.572134236154454360143880041170803681211 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 - 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 + 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
double: 1
float: 1
@@ -315,16 +455,42 @@ ldouble: 1
Test "Imaginary part of: cacos (-1.5 - 0x1.fp-16385 i) == 3.141592653589793238462643383279502884197 + 9.624236501192068949955178268487368462704e-1 i":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i) == 1.394493894017929688812643125003661339452 - 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 - 1.0 i) == 1.394493894017929688812643125003661339452 + 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 1.0 i) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
float: 1
ifloat: 1
@@ -333,24 +499,164 @@ float: 1
ifloat: 1
ildouble: 2
ldouble: 2
+Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 + 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 + 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i) == 0.0 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i) == 0.0 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i) == 1.569458417435338878318763342108699202986 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i) == 1.569458417435338878318763342108699202986 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691638670687364 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691638670687364 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442097 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442097 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442097 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442097 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i) == 1.570796325518966635014803151387033957091 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i) == 1.570796325518966635014803151387033957091 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
double: 1
idouble: 1
Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
double: 1
idouble: 1
+Test "Real part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
double: 1
float: 1
@@ -562,18 +868,196 @@ ifloat: 1
Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.000002p0 i) == -0.0 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.000002p0 i) == -0.0 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i) == -1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 - 1.0 i) == -1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i) == -1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 - 0x1p-63 i) == -1.570796326582978888921215348380499122131 - 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i) == -1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i) == -1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i) == -1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i) == -1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i) == -1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i) == -1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i) == -3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i) == -3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Real part of: casin (-0x1.fp-129 + 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i) == -2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Real part of: casin (-0x1.fp-129 - 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i) == -2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Real part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i) == -1.570092458683774885078102529858632363236e-16 + 8.813735870195431822418551933572982483664e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i) == -1.570092458683774885078102529858632363236e-16 - 8.813735870195431822418551933572982483664e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i) == -7.666467083416870406778649849746878368519e-20 + 8.813735870195430253092739958139610131001e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i) == -7.666467083416870406778649849746878368519e-20 - 8.813735870195430253092739958139610131001e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
double: 1
float: 1
@@ -602,6 +1086,38 @@ ldouble: 1
Test "Imaginary part of: casin (-1.5 - 0x1.fp-16385 i) == -1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.000002p0 i) == 0.0 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.000002p0 i) == 0.0 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 + 1.0 i) == 1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 - 1.0 i) == 1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
double: 1
float: 1
@@ -614,24 +1130,170 @@ float: 1
ifloat: 1
ildouble: 2
ldouble: 2
+Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i) == 1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1.0000000000000002p0 - 0x1p-63 i) == 1.570796326582978888921215348380499122131 - 5.116146586219826555037807251857670783420e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i) == 1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i) == 1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i) == 1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i) == 1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i) == 1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i) == 1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i) == 3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i) == 3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Real part of: casin (0x1.fp-129 + 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i) == 2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Real part of: casin (0x1.fp-129 - 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i) == 2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
double: 1
idouble: 1
+Test "Real part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
double: 1
idouble: 1
Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
double: 1
idouble: 1
+Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i) == 1.570092458683774885078102529858632363236e-16 + 8.813735870195431822418551933572982483664e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i) == 1.570092458683774885078102529858632363236e-16 - 8.813735870195431822418551933572982483664e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i) == 7.666467083416870406778649849746878368519e-20 + 8.813735870195430253092739958139610131001e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i) == 7.666467083416870406778649849746878368519e-20 - 8.813735870195430253092739958139610131001e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
double: 1
float: 1
@@ -682,6 +1344,12 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
double: 2
float: 1
@@ -689,6 +1357,16 @@ idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
double: 2
float: 1
@@ -696,9 +1374,65 @@ idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i) == -8.813735870195430253092739958139610131001e-1 + 7.666467083416870406778649849746878368519e-20 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i) == -8.813735870195430253092739958139610131001e-1 - 7.666467083416870406778649849746878368519e-20 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i) == -8.813735870195431822418551933572982483664e-1 + 1.570092458683774885078102529858632363236e-16 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i) == -8.813735870195431822418551933572982483664e-1 - 1.570092458683774885078102529858632363236e-16 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0.0 i) == -8.813736713132375348727889167749389235161e-1 + 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0.0 i) == -8.813736713132375348727889167749389235161e-1 - 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1.fp-1025 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0x1.fp-1025 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0x1.fp-1025 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
@@ -714,6 +1448,24 @@ ldouble: 1
Test "Real part of: casinh (-0x1.fp-16385 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i) == -4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i) == -4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0x1.0000000000000002p0 i) == -5.116146586219826555037807251857670783420e-10 + 1.570796326582978888921215348380499122131 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0x1p-63 - 0x1.0000000000000002p0 i) == -5.116146586219826555037807251857670783420e-10 - 1.570796326582978888921215348380499122131 i":
+ildouble: 2
+ldouble: 2
Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
double: 2
float: 1
@@ -721,6 +1473,50 @@ idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
+Test "Real part of: casinh (-1.0 + 0.25 i) == -8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i) == -8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
double: 2
float: 1
@@ -728,6 +1524,50 @@ idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
+Test "Real part of: casinh (-1.0 - 0.25 i) == -8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i) == -8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
double: 2
float: 1
@@ -764,6 +1604,12 @@ idouble: 3
ifloat: 6
ildouble: 5
ldouble: 5
+Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
double: 1
float: 1
@@ -771,6 +1617,16 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
double: 1
float: 1
@@ -778,6 +1634,16 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
float: 1
ifloat: 1
@@ -788,9 +1654,55 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i) == 8.813735870195430253092739958139610131001e-1 + 7.666467083416870406778649849746878368519e-20 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i) == 8.813735870195430253092739958139610131001e-1 - 7.666467083416870406778649849746878368519e-20 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i) == 8.813735870195431822418551933572982483664e-1 + 1.570092458683774885078102529858632363236e-16 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i) == 8.813735870195431822418551933572982483664e-1 - 1.570092458683774885078102529858632363236e-16 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0.0 i) == 8.813736713132375348727889167749389235161e-1 + 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.000002p0 - 0.0 i) == 8.813736713132375348727889167749389235161e-1 - 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.fp-1025 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1.fp-1025 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1.fp-1025 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
@@ -806,22 +1718,128 @@ ldouble: 1
Test "Real part of: casinh (0x1.fp-16385 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i) == 4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i) == 4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
double: 1
idouble: 1
Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
double: 1
idouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 + 0x1.0000000000000002p0 i) == 5.116146586219826555037807251857670783420e-10 + 1.570796326582978888921215348380499122131 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0x1p-63 - 0x1.0000000000000002p0 i) == 5.116146586219826555037807251857670783420e-10 - 1.570796326582978888921215348380499122131 i":
+ildouble: 2
+ldouble: 2
Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (1.0 + 0.25 i) == 8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i) == 8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (1.0 - 0.25 i) == 8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i) == 8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
double: 1
idouble: 1
@@ -2475,6 +3493,12 @@ ldouble: 2
Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
float: 1
ifloat: 1
+Test "j0 (0x1p1023) == -1.5665258060609012834424478437196679802783e-155":
+double: 1
+idouble: 1
+Test "j0 (0x1p16382) == -1.2193782500509000574176799046642541129387e-2466":
+ildouble: 1
+ldouble: 1
Test "j0 (10.0) == -0.245935764451348335197760862485328754":
double: 3
float: 1
@@ -2508,6 +3532,9 @@ ldouble: 1
Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
double: 1
idouble: 1
+Test "j1 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+ildouble: 1
+ldouble: 1
Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
double: 2
float: 1
@@ -3285,6 +4312,9 @@ idouble: 1
Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
double: 1
idouble: 1
+Test "y0 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+ildouble: 1
+ldouble: 1
Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
double: 2
float: 1
@@ -3329,6 +4359,12 @@ ldouble: 1
Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
float: 1
ifloat: 1
+Test "y1 (0x1p1023) == 1.5665258060609012834424478437196679802783e-155":
+double: 1
+idouble: 1
+Test "y1 (0x1p16382) == 1.2193782500509000574176799046642541129387e-2466":
+ildouble: 1
+ldouble: 1
Test "y1 (1.0) == -0.781212821300288716547150000047964821":
double: 1
idouble: 1
diff --git a/sysdeps/i386/fpu/math-tests.h b/sysdeps/i386/fpu/math-tests.h
new file mode 100644
index 0000000000..00c5f6c4d1
--- /dev/null
+++ b/sysdeps/i386/fpu/math-tests.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests. 32-bit x86 version.
+ Copyright (C) 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/>. */
+
+/* On 32-bit x86, versions of GCC up to at least 4.8 are happy to use FPU load
+ instructions for sNaN values, and loading a float or double sNaN value will
+ already raise an INVALID exception as well as turn the sNaN into a qNaN,
+ rendering certain tests infeasible in this scenario. */
+#define SNAN_TESTS_float 0
+#define SNAN_TESTS_double 0
+
+#include_next <math-tests.h>
diff --git a/sysdeps/i386/fpu/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S
index 15dc70d489..037019e91c 100644
--- a/sysdeps/i386/fpu/s_frexp.S
+++ b/sysdeps/i386/fpu/s_frexp.S
@@ -18,8 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <machine/asm.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
.section .rodata
@@ -34,14 +32,13 @@ two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
#define MO(op) op
#endif
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define VAL0 PARMS
#define VAL1 VAL0+4
#define EXPP VAL1+4
.text
-ENTRY (BP_SYM (__frexp))
- ENTER
+ENTRY (__frexp)
movl VAL0(%esp), %ecx
movl VAL1(%esp), %eax
@@ -78,11 +75,9 @@ ENTRY (BP_SYM (__frexp))
/* Store %ecx in the variable pointed to by the second argument,
get the factor from the stack and return. */
1: movl EXPP(%esp), %eax
- CHECK_BOUNDS_BOTH_WIDE (%eax, EXPP(%esp), $4)
fldl VAL0(%esp)
movl %ecx, (%eax)
- LEAVE
ret
-END (BP_SYM (__frexp))
-weak_alias (BP_SYM (__frexp), BP_SYM (frexp))
+END (__frexp)
+weak_alias (__frexp, frexp)
diff --git a/sysdeps/i386/fpu/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S
index 53dcacff8a..f8d903d778 100644
--- a/sysdeps/i386/fpu/s_frexpf.S
+++ b/sysdeps/i386/fpu/s_frexpf.S
@@ -18,8 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <machine/asm.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
.section .rodata
@@ -34,13 +32,12 @@ two25: .byte 0, 0, 0, 0x4c
#define MO(op) op
#endif
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define VAL PARMS
#define EXPP VAL+4
.text
-ENTRY (BP_SYM (__frexpf))
- ENTER
+ENTRY (__frexpf)
movl VAL(%esp), %eax
xorl %ecx, %ecx
@@ -75,11 +72,9 @@ ENTRY (BP_SYM (__frexpf))
/* Store %ecx in the variable pointed to by the second argument,
get the factor from the stack and return. */
1: movl EXPP(%esp), %eax
- CHECK_BOUNDS_BOTH_WIDE (%eax, EXPP(%esp), $4)
flds VAL(%esp)
movl %ecx, (%eax)
- LEAVE
ret
-END (BP_SYM (__frexpf))
-weak_alias (BP_SYM (__frexpf), BP_SYM (frexpf))
+END (__frexpf)
+weak_alias (__frexpf, frexpf)
diff --git a/sysdeps/i386/fpu/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S
index 21338a72bd..e32b4d5a10 100644
--- a/sysdeps/i386/fpu/s_frexpl.S
+++ b/sysdeps/i386/fpu/s_frexpl.S
@@ -18,8 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <machine/asm.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
.section .rodata
@@ -34,15 +32,14 @@ two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
#define MO(op) op
#endif
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define VAL0 PARMS
#define VAL1 VAL0+4
#define VAL2 VAL1+4
#define EXPP VAL2+4
.text
-ENTRY (BP_SYM (__frexpl))
- ENTER
+ENTRY (__frexpl)
movl VAL0(%esp), %ecx
movl VAL2(%esp), %eax
@@ -80,11 +77,9 @@ ENTRY (BP_SYM (__frexpl))
/* Store %ecx in the variable pointed to by the second argument,
get the factor from the stack and return. */
1: movl EXPP(%esp), %eax
- CHECK_BOUNDS_BOTH_WIDE (%eax, EXPP(%esp), $4)
fldt VAL0(%esp)
movl %ecx, (%eax)
- LEAVE
ret
-END (BP_SYM (__frexpl))
-weak_alias (BP_SYM (__frexpl), BP_SYM (frexpl))
+END (__frexpl)
+weak_alias (__frexpl, frexpl)
diff --git a/sysdeps/i386/fpu/s_remquo.S b/sysdeps/i386/fpu/s_remquo.S
index 5056593214..341285db30 100644
--- a/sysdeps/i386/fpu/s_remquo.S
+++ b/sysdeps/i386/fpu/s_remquo.S
@@ -5,17 +5,14 @@
*/
#include <machine/asm.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define DVDND PARMS
#define DVSOR DVDND+8
#define QUOP DVSOR+8
.text
-ENTRY (BP_SYM (__remquo))
- ENTER
+ENTRY (__remquo)
fldl DVSOR(%esp)
fldl DVDND(%esp)
@@ -36,7 +33,6 @@ ENTRY (BP_SYM (__remquo))
shrl %cl, %eax
andl $7, %eax
movl QUOP(%esp), %ecx
- CHECK_BOUNDS_BOTH_WIDE (%ecx, QUOP(%esp), $4)
movl DVDND+4(%esp), %edx
xorl DVSOR+4(%esp), %edx
testl $0x80000000, %edx
@@ -44,7 +40,6 @@ ENTRY (BP_SYM (__remquo))
negl %eax
1: movl %eax, (%ecx)
- LEAVE
ret
-END (BP_SYM (__remquo))
-weak_alias (BP_SYM (__remquo), BP_SYM (remquo))
+END (__remquo)
+weak_alias (__remquo, remquo)
diff --git a/sysdeps/i386/fpu/s_remquof.S b/sysdeps/i386/fpu/s_remquof.S
index d3c5965be4..62063f068f 100644
--- a/sysdeps/i386/fpu/s_remquof.S
+++ b/sysdeps/i386/fpu/s_remquof.S
@@ -5,17 +5,14 @@
*/
#include <machine/asm.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define DVDND PARMS
#define DVSOR DVDND+4
#define QUOP DVSOR+4
.text
-ENTRY (BP_SYM (__remquof))
- ENTER
+ENTRY (__remquof)
flds DVSOR(%esp)
flds DVDND(%esp)
@@ -36,7 +33,6 @@ ENTRY (BP_SYM (__remquof))
shrl %cl, %eax
andl $7, %eax
movl QUOP(%esp), %ecx
- CHECK_BOUNDS_BOTH_WIDE (%ecx, QUOP(%esp), $4)
movl DVDND(%esp), %edx
xorl DVSOR(%esp), %edx
testl $0x80000000, %edx
@@ -44,7 +40,6 @@ ENTRY (BP_SYM (__remquof))
negl %eax
1: movl %eax, (%ecx)
- LEAVE
ret
-END (BP_SYM (__remquof))
-weak_alias (BP_SYM (__remquof), BP_SYM (remquof))
+END (__remquof)
+weak_alias (__remquof, remquof)
diff --git a/sysdeps/i386/fpu/s_remquol.S b/sysdeps/i386/fpu/s_remquol.S
index 65240adbe4..f3d84fc7c2 100644
--- a/sysdeps/i386/fpu/s_remquol.S
+++ b/sysdeps/i386/fpu/s_remquol.S
@@ -5,17 +5,14 @@
*/
#include <machine/asm.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define DVDND PARMS
#define DVSOR DVDND+12
#define QUOP DVSOR+12
.text
-ENTRY (BP_SYM (__remquol))
- ENTER
+ENTRY (__remquol)
fldt DVSOR(%esp)
fldt DVDND(%esp)
@@ -36,7 +33,6 @@ ENTRY (BP_SYM (__remquol))
shrl %cl, %eax
andl $7, %eax
movl QUOP(%esp), %ecx
- CHECK_BOUNDS_BOTH_WIDE (%ecx, QUOP(%esp), $4)
movl DVDND+8(%esp), %edx
xorl DVSOR+8(%esp), %edx
testl $0x8000, %edx
@@ -44,7 +40,6 @@ ENTRY (BP_SYM (__remquol))
negl %eax
1: movl %eax, (%ecx)
- LEAVE
ret
-END (BP_SYM (__remquol))
-weak_alias (BP_SYM (__remquol), BP_SYM (remquol))
+END (__remquol)
+weak_alias (__remquol, remquol)
diff --git a/sysdeps/i386/i486/strcat.S b/sysdeps/i386/i486/strcat.S
index 6549b5c162..7d45862a2a 100644
--- a/sysdeps/i386/i486/strcat.S
+++ b/sysdeps/i386/i486/strcat.S
@@ -21,25 +21,20 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
.text
-ENTRY (BP_SYM (strcat))
- ENTER
+ENTRY (strcat)
pushl %edi /* Save callee-safe register. */
cfi_adjust_cfa_offset (4)
movl DEST(%esp), %edx
movl SRC(%esp), %ecx
- CHECK_BOUNDS_LOW (%edx, DEST(%esp))
- CHECK_BOUNDS_LOW (%ecx, SRC(%esp))
testb $0xff, (%ecx) /* Is source string empty? */
jz L(8) /* yes => return */
@@ -260,14 +255,11 @@ L(9): movb %al, (%ecx,%edx) /* store first byte of last word */
movb %ah, 3(%ecx,%edx) /* store fourth byte of last word */
-L(8): /* GKM FIXME: check high bounds */
- movl DEST(%esp), %eax /* start address of destination is result */
- RETURN_BOUNDED_POINTER (DEST(%esp))
+L(8): movl DEST(%esp), %eax /* start address of destination is result */
popl %edi /* restore saved register */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (strcat))
+ ret
+END (strcat)
libc_hidden_builtin_def (strcat)
diff --git a/sysdeps/i386/i486/strlen.S b/sysdeps/i386/i486/strlen.S
index 743918044e..67bee4eb2b 100644
--- a/sysdeps/i386/i486/strlen.S
+++ b/sysdeps/i386/i486/strlen.S
@@ -20,18 +20,14 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define STR PARMS
.text
-ENTRY (BP_SYM (strlen))
- ENTER
+ENTRY (strlen)
movl STR(%esp), %ecx
- CHECK_BOUNDS_LOW (%ecx, STR(%esp))
movl %ecx, %eax /* duplicate it */
andl $3, %ecx /* mask alignment bits */
@@ -129,10 +125,8 @@ L(3): testb %cl, %cl /* is first byte NUL? */
jz L(2) /* yes => return pointer */
incl %eax /* increment pointer */
-L(2): CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- subl STR(%esp), %eax /* compute difference to string start */
+L(2): subl STR(%esp), %eax /* compute difference to string start */
- LEAVE
ret
-END (BP_SYM (strlen))
+END (strlen)
libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/i386/i586/add_n.S b/sysdeps/i386/i586/add_n.S
index 395c4b78f4..2d6161fa92 100644
--- a/sysdeps/i386/i586/add_n.S
+++ b/sysdeps/i386/i586/add_n.S
@@ -19,18 +19,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define S2 S1+PTR_SIZE
-#define SIZE S2+PTR_SIZE
+#define S1 RES+4
+#define S2 S1+4
+#define SIZE S2+4
.text
-ENTRY (BP_SYM (__mpn_add_n))
- ENTER
+ENTRY (__mpn_add_n)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -48,13 +45,6 @@ ENTRY (BP_SYM (__mpn_add_n))
movl S2(%esp),%ebx
cfi_rel_offset (ebx, 0)
movl SIZE(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ecx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
- shrl $2, %ecx
-#endif
movl (%ebx),%ebp
cfi_rel_offset (ebp, 4)
@@ -149,6 +139,5 @@ L(end2):
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_add_n))
+END (__mpn_add_n)
diff --git a/sysdeps/i386/i586/addmul_1.S b/sysdeps/i386/i586/addmul_1.S
index faf862502a..e18e405306 100644
--- a/sysdeps/i386/i586/addmul_1.S
+++ b/sysdeps/i386/i586/addmul_1.S
@@ -19,13 +19,11 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define SIZE S1+PTR_SIZE
+#define S1 RES+4
+#define SIZE S1+4
#define S2LIMB SIZE+4
#define res_ptr edi
@@ -34,8 +32,7 @@
#define s2_limb ebx
.text
-ENTRY (BP_SYM (__mpn_addmul_1))
- ENTER
+ENTRY (__mpn_addmul_1)
pushl %res_ptr
cfi_adjust_cfa_offset (4)
@@ -53,12 +50,6 @@ ENTRY (BP_SYM (__mpn_addmul_1))
movl SIZE(%esp), %size
movl S2LIMB(%esp), %s2_limb
cfi_rel_offset (s2_limb, 0)
-#if __BOUNDED_POINTERS__
- shll $2, %size /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
- CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
- shrl $2, %size
-#endif
leal (%res_ptr,%size,4), %res_ptr
leal (%s1_ptr,%size,4), %s1_ptr
negl %size
@@ -98,7 +89,6 @@ L(oop): adcl $0, %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (res_ptr)
- LEAVE
ret
#undef size
-END (BP_SYM (__mpn_addmul_1))
+END (__mpn_addmul_1)
diff --git a/sysdeps/i386/i586/bzero.S b/sysdeps/i386/i586/bzero.S
index 220aa47c3f..84d2f709c1 100644
--- a/sysdeps/i386/i586/bzero.S
+++ b/sysdeps/i386/i586/bzero.S
@@ -1,3 +1,3 @@
#define memset __bzero
#include <sysdeps/i386/i586/memset.S>
-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
+weak_alias (__bzero, bzero)
diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S
index 461e32dbe7..cda3aecef4 100644
--- a/sysdeps/i386/i586/lshift.S
+++ b/sysdeps/i386/i586/lshift.S
@@ -18,18 +18,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S RES+PTR_SIZE
-#define SIZE S+PTR_SIZE
+#define S RES+4
+#define SIZE S+4
#define CNT SIZE+4
.text
-ENTRY (BP_SYM (__mpn_lshift))
- ENTER
+ENTRY (__mpn_lshift)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -48,12 +45,6 @@ ENTRY (BP_SYM (__mpn_lshift))
movl SIZE(%esp),%ebx
cfi_rel_offset (ebx, 0)
movl CNT(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ebx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ebx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %ebx)
- shrl $2, %ebx
-#endif
/* We can use faster code for shift-by-1 under certain conditions. */
cmp $1,%ecx
@@ -155,7 +146,6 @@ L(end2):
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
/* We loop from least significant end of the arrays, which is only
@@ -261,6 +251,5 @@ L(L1): movl %edx,(%edi) /* store last limb */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_lshift))
+END (__mpn_lshift)
diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 206715482d..49f165241c 100644
--- a/sysdeps/i386/i586/memcpy.S
+++ b/sysdeps/i386/i586/memcpy.S
@@ -19,19 +19,17 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* BEWARE: `#ifdef memcpy' means that memcpy is redefined as `mempcpy',
and the return value is the byte after the last one copied in
the destination. */
#define MEMPCPY_P (defined memcpy)
-#define PARMS LINKAGE+8 /* space for 2 saved regs */
+#define PARMS 4+8 /* space for 2 saved regs */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
-#define LEN SRC+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
+#define LEN SRC+4
.text
#if defined PIC && !defined NOT_IN_libc
@@ -41,8 +39,7 @@ ENTRY (__memcpy_chk)
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__memcpy_chk)
#endif
-ENTRY (BP_SYM (memcpy))
- ENTER
+ENTRY (memcpy)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -54,8 +51,6 @@ ENTRY (BP_SYM (memcpy))
movl SRC(%esp), %esi
cfi_rel_offset (esi, 0)
movl LEN(%esp), %ecx
- CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
movl %edi, %eax
/* We need this in any case. */
@@ -127,9 +122,8 @@ L(1): rep; movsb
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (memcpy))
+ ret
+END (memcpy)
#if !MEMPCPY_P
libc_hidden_builtin_def (memcpy)
#endif
diff --git a/sysdeps/i386/i586/mempcpy.S b/sysdeps/i386/i586/mempcpy.S
index f492be7ca0..afc112d9d7 100644
--- a/sysdeps/i386/i586/mempcpy.S
+++ b/sysdeps/i386/i586/mempcpy.S
@@ -2,6 +2,6 @@
#define __memcpy_chk __mempcpy_chk
#include <sysdeps/i386/i586/memcpy.S>
-libc_hidden_def (BP_SYM (__mempcpy))
-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
+libc_hidden_def (__mempcpy)
+weak_alias (__mempcpy, mempcpy)
libc_hidden_builtin_def (mempcpy)
diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
index 07cd27fbcb..c194b102d7 100644
--- a/sysdeps/i386/i586/memset.S
+++ b/sysdeps/i386/i586/memset.S
@@ -20,19 +20,17 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
#define BZERO_P (defined memset)
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
+#define DEST RTN
#if BZERO_P
-# define LEN DEST+PTR_SIZE
+# define LEN DEST+4
#else
-# define CHR DEST+PTR_SIZE
+# define CHR DEST+4
# define LEN CHR+4
#endif
@@ -44,8 +42,7 @@ ENTRY (__memset_chk)
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__memset_chk)
#endif
-ENTRY (BP_SYM (memset))
- ENTER
+ENTRY (memset)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -53,7 +50,6 @@ ENTRY (BP_SYM (memset))
movl DEST(%esp), %edi
cfi_rel_offset (edi, 0)
movl LEN(%esp), %edx
- CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %edx)
#if BZERO_P
xorl %eax, %eax /* we fill with 0 */
#else
@@ -111,17 +107,15 @@ L(2): shrl $2, %ecx /* convert byte count to longword count */
#if !BZERO_P
/* Load result (only if used as memset). */
movl DEST(%esp), %eax /* start address of destination is result */
- RETURN_BOUNDED_POINTER (DEST(%esp))
#endif
popl %edi
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
#if BZERO_P
ret
#else
- RET_PTR
+ ret
#endif
-END (BP_SYM (memset))
+END (memset)
libc_hidden_builtin_def (memset)
diff --git a/sysdeps/i386/i586/mul_1.S b/sysdeps/i386/i586/mul_1.S
index 0026293188..f5bbea2b58 100644
--- a/sysdeps/i386/i586/mul_1.S
+++ b/sysdeps/i386/i586/mul_1.S
@@ -19,13 +19,11 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define SIZE S1+PTR_SIZE
+#define S1 RES+4
+#define SIZE S1+4
#define S2LIMB SIZE+4
#define res_ptr edi
@@ -34,8 +32,7 @@
#define s2_limb ebx
.text
-ENTRY (BP_SYM (__mpn_mul_1))
- ENTER
+ENTRY (__mpn_mul_1)
pushl %res_ptr
cfi_adjust_cfa_offset (4)
@@ -53,12 +50,6 @@ ENTRY (BP_SYM (__mpn_mul_1))
movl SIZE(%esp), %size
movl S2LIMB(%esp), %s2_limb
cfi_rel_offset (s2_limb, 0)
-#if __BOUNDED_POINTERS__
- shll $2, %size /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
- CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
- shrl $2, %size
-#endif
leal (%res_ptr,%size,4), %res_ptr
leal (%s1_ptr,%size,4), %s1_ptr
negl %size
@@ -94,7 +85,6 @@ L(oop): adcl $0, %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (res_ptr)
- LEAVE
ret
#undef size
-END (BP_SYM (__mpn_mul_1))
+END (__mpn_mul_1)
diff --git a/sysdeps/i386/i586/rshift.S b/sysdeps/i386/i586/rshift.S
index c5438ffc9e..37eff12f3c 100644
--- a/sysdeps/i386/i586/rshift.S
+++ b/sysdeps/i386/i586/rshift.S
@@ -18,18 +18,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S RES+PTR_SIZE
-#define SIZE S+PTR_SIZE
+#define S RES+4
+#define SIZE S+4
#define CNT SIZE+4
.text
-ENTRY (BP_SYM (__mpn_rshift))
- ENTER
+ENTRY (__mpn_rshift)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -48,12 +45,6 @@ ENTRY (BP_SYM (__mpn_rshift))
movl SIZE(%esp),%ebx
cfi_rel_offset (ebx, 0)
movl CNT(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ebx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ebx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %ebx)
- shrl $2, %ebx
-#endif
/* We can use faster code for shift-by-1 under certain conditions. */
cmp $1,%ecx
@@ -152,7 +143,6 @@ L(end2):
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
/* We loop from least significant end of the arrays, which is only
@@ -261,6 +251,5 @@ L(L1): movl %edx,(%edi) /* store last limb */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_rshift))
+END (__mpn_rshift)
diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
index d005b164f3..648d52830d 100644
--- a/sysdeps/i386/i586/strchr.S
+++ b/sysdeps/i386/i586/strchr.S
@@ -20,8 +20,6 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* This version is especially optimized for the i586 (and following?)
processors. This is mainly done by using the two pipelines. The
@@ -36,14 +34,13 @@
/* The magic value which is used throughout in the whole code. */
#define magic 0xfefefeff
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define CHR STR+PTR_SIZE
+#define STR RTN
+#define CHR STR+4
.text
-ENTRY (BP_SYM (strchr))
- ENTER
+ENTRY (strchr)
pushl %edi /* Save callee-safe registers. */
cfi_adjust_cfa_offset (-4)
@@ -57,7 +54,6 @@ ENTRY (BP_SYM (strchr))
movl STR(%esp), %eax
movl CHR(%esp), %edx
- CHECK_BOUNDS_LOW (%eax, STR(%esp))
movl %eax, %edi /* duplicate string pointer for later */
cfi_rel_offset (edi, 12)
@@ -82,7 +78,7 @@ ENTRY (BP_SYM (strchr))
jp L(0) /* exactly two bits set */
xorb (%eax), %cl /* is byte the one we are looking for? */
- jz L(2) /* yes => return pointer */
+ jz L(out) /* yes => return pointer */
xorb %dl, %cl /* load single byte and test for NUL */
je L(3) /* yes => return NULL */
@@ -91,7 +87,7 @@ ENTRY (BP_SYM (strchr))
incl %eax
cmpb %cl, %dl /* is byte == C? */
- je L(2) /* aligned => return pointer */
+ je L(out) /* aligned => return pointer */
cmpb $0, %cl /* is byte NUL? */
je L(3) /* yes => return NULL */
@@ -104,7 +100,7 @@ ENTRY (BP_SYM (strchr))
L(0): movb (%eax), %cl /* load single byte */
cmpb %cl, %dl /* is byte == C? */
- je L(2) /* aligned => return pointer */
+ je L(out) /* aligned => return pointer */
cmpb $0, %cl /* is byte NUL? */
je L(3) /* yes => return NULL */
@@ -274,23 +270,21 @@ L(1): xorl %ecx, %ebp /* (word^magic) */
L(5): subl $4, %eax /* adjust pointer */
testb %bl, %bl /* first byte == C? */
- jz L(2) /* yes => return pointer */
+ jz L(out) /* yes => return pointer */
incl %eax /* increment pointer */
testb %bh, %bh /* second byte == C? */
- jz L(2) /* yes => return pointer */
+ jz L(out) /* yes => return pointer */
shrl $16, %ebx /* make upper bytes accessible */
incl %eax /* increment pointer */
cmp $0, %bl /* third byte == C */
- je L(2) /* yes => return pointer */
+ je L(out) /* yes => return pointer */
incl %eax /* increment pointer */
-L(2): CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- RETURN_BOUNDED_POINTER (STR(%esp))
L(out): popl %ebp /* restore saved registers */
cfi_adjust_cfa_offset (-4)
cfi_restore (ebp)
@@ -305,8 +299,7 @@ L(out): popl %ebp /* restore saved registers */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
+ ret
cfi_adjust_cfa_offset (16)
cfi_rel_offset (edi, 12)
@@ -318,7 +311,7 @@ L(out): popl %ebp /* restore saved registers */
L(4): subl $4, %eax /* adjust pointer */
cmpb %dl, %cl /* first byte == C? */
- je L(2) /* yes => return pointer */
+ je L(out) /* yes => return pointer */
cmpb $0, %cl /* first byte == NUL? */
je L(3) /* yes => return NULL */
@@ -326,7 +319,7 @@ L(4): subl $4, %eax /* adjust pointer */
incl %eax /* increment pointer */
cmpb %dl, %ch /* second byte == C? */
- je L(2) /* yes => return pointer */
+ je L(out) /* yes => return pointer */
cmpb $0, %ch /* second byte == NUL? */
je L(3) /* yes => return NULL */
@@ -335,7 +328,7 @@ L(4): subl $4, %eax /* adjust pointer */
incl %eax /* increment pointer */
cmpb %dl, %cl /* third byte == C? */
- je L(2) /* yes => return pointer */
+ je L(out) /* yes => return pointer */
cmpb $0, %cl /* third byte == NUL? */
je L(3) /* yes => return NULL */
@@ -344,13 +337,12 @@ L(4): subl $4, %eax /* adjust pointer */
/* The test four the fourth byte is necessary! */
cmpb %dl, %ch /* fourth byte == C? */
- je L(2) /* yes => return pointer */
+ je L(out) /* yes => return pointer */
L(3): xorl %eax, %eax
- RETURN_NULL_BOUNDED_POINTER
jmp L(out)
-END (BP_SYM (strchr))
+END (strchr)
#undef index
-weak_alias (BP_SYM (strchr), BP_SYM (index))
+weak_alias (strchr, index)
libc_hidden_builtin_def (strchr)
diff --git a/sysdeps/i386/i586/strcpy.S b/sysdeps/i386/i586/strcpy.S
index af23bf5a26..c940369342 100644
--- a/sysdeps/i386/i586/strcpy.S
+++ b/sysdeps/i386/i586/strcpy.S
@@ -19,13 +19,11 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+12 /* space for 3 saved regs */
+#define PARMS 4+12 /* space for 3 saved regs */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
#ifndef USE_AS_STPCPY
# define STRCPY strcpy
@@ -34,8 +32,7 @@
#define magic 0xfefefeff
.text
-ENTRY (BP_SYM (STRCPY))
- ENTER
+ENTRY (STRCPY)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -48,8 +45,6 @@ ENTRY (BP_SYM (STRCPY))
cfi_rel_offset (edi, 8)
movl SRC(%esp), %esi
cfi_rel_offset (esi, 4)
- CHECK_BOUNDS_LOW (%edi, DEST(%esp))
- CHECK_BOUNDS_LOW (%esi, SRC(%esp))
xorl %eax, %eax
leal -1(%esi), %ecx
@@ -152,13 +147,11 @@ L(4): movb %dl, (%edi)
L(end): movb %ah, (%edi)
L(end2):
- /* GKM FIXME: check high bounds */
#ifdef USE_AS_STPCPY
movl %edi, %eax
#else
movl DEST(%esp), %eax
#endif
- RETURN_BOUNDED_POINTER (DEST(%esp))
popl %ebx
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
@@ -169,9 +162,8 @@ L(end2):
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (STRCPY))
+ ret
+END (STRCPY)
#ifndef USE_AS_STPCPY
libc_hidden_builtin_def (strcpy)
#endif
diff --git a/sysdeps/i386/i586/strlen.S b/sysdeps/i386/i586/strlen.S
index a145cb5684..b50fffa1fb 100644
--- a/sysdeps/i386/i586/strlen.S
+++ b/sysdeps/i386/i586/strlen.S
@@ -20,8 +20,6 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* This version is especially optimized for the i586 (and following?)
processors. This is mainly done by using the two pipelines. The
@@ -36,15 +34,13 @@
/* The magic value which is used throughout in the whole code. */
#define magic 0xfefefeff
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define STR PARMS
.text
-ENTRY (BP_SYM (strlen))
- ENTER
+ENTRY (strlen)
movl STR(%esp), %eax
- CHECK_BOUNDS_LOW (%eax, STR(%esp))
movl $3, %edx /* load mask (= 3) */
andl %eax, %edx /* separate last two bits of address */
@@ -178,11 +174,9 @@ L(3): subl $4, %eax /* correct too early pointer increment */
incl %eax /* increment pointer */
-L(2): CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- subl STR(%esp), %eax /* now compute the length as difference
+L(2): subl STR(%esp), %eax /* now compute the length as difference
between start and terminating NUL
character */
- LEAVE
ret
-END (BP_SYM (strlen))
+END (strlen)
libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/i386/i586/sub_n.S b/sysdeps/i386/i586/sub_n.S
index 5d3c70235e..3b40ff3e42 100644
--- a/sysdeps/i386/i586/sub_n.S
+++ b/sysdeps/i386/i586/sub_n.S
@@ -19,18 +19,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define S2 S1+PTR_SIZE
-#define SIZE S2+PTR_SIZE
+#define S1 RES+4
+#define S2 S1+4
+#define SIZE S2+4
.text
-ENTRY (BP_SYM (__mpn_sub_n))
- ENTER
+ENTRY (__mpn_sub_n)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -48,13 +45,6 @@ ENTRY (BP_SYM (__mpn_sub_n))
movl S2(%esp),%ebx
cfi_rel_offset (ebx, 0)
movl SIZE(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ecx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
- shrl $2, %ecx
-#endif
movl (%ebx),%ebp
cfi_rel_offset (ebp, 4)
@@ -149,6 +139,5 @@ L(end2):
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_sub_n))
+END (__mpn_sub_n)
diff --git a/sysdeps/i386/i586/submul_1.S b/sysdeps/i386/i586/submul_1.S
index 8e2b41a35e..97a9048d9f 100644
--- a/sysdeps/i386/i586/submul_1.S
+++ b/sysdeps/i386/i586/submul_1.S
@@ -19,13 +19,11 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define SIZE S1+PTR_SIZE
+#define S1 RES+4
+#define SIZE S1+4
#define S2LIMB SIZE+4
#define res_ptr edi
@@ -34,8 +32,7 @@
#define s2_limb ebx
.text
-ENTRY (BP_SYM (__mpn_submul_1))
- ENTER
+ENTRY (__mpn_submul_1)
pushl %res_ptr
cfi_adjust_cfa_offset (4)
@@ -53,12 +50,6 @@ ENTRY (BP_SYM (__mpn_submul_1))
movl SIZE(%esp), %size
movl S2LIMB(%esp), %s2_limb
cfi_rel_offset (s2_limb, 0)
-#if __BOUNDED_POINTERS__
- shll $2, %sizeP /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
- CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
- shrl $2, %sizeP
-#endif
leal (%res_ptr,%size,4), %res_ptr
leal (%s1_ptr,%size,4), %s1_ptr
negl %size
@@ -98,7 +89,6 @@ L(oop): adcl $0, %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (res_ptr)
- LEAVE
ret
#undef size
-END (BP_SYM (__mpn_submul_1))
+END (__mpn_submul_1)
diff --git a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile
index e6b2924584..01c2917892 100644
--- a/sysdeps/i386/i686/Makefile
+++ b/sysdeps/i386/i686/Makefile
@@ -15,13 +15,11 @@ CFLAGS-.o += -Wa,-mtune=i686
CFLAGS-.os += -Wa,-mtune=i686
CFLAGS-.op += -Wa,-mtune=i686
CFLAGS-.og += -Wa,-mtune=i686
-CFLAGS-.ob += -Wa,-mtune=i686
CFLAGS-.oS += -Wa,-mtune=i686
ASFLAGS-.o += -Wa,-mtune=i686
ASFLAGS-.os += -Wa,-mtune=i686
ASFLAGS-.op += -Wa,-mtune=i686
ASFLAGS-.og += -Wa,-mtune=i686
-ASFLAGS-.ob += -Wa,-mtune=i686
ASFLAGS-.oS += -Wa,-mtune=i686
endif
diff --git a/sysdeps/i386/i686/add_n.S b/sysdeps/i386/i686/add_n.S
index 5e91aad741..1e2cdc550c 100644
--- a/sysdeps/i386/i686/add_n.S
+++ b/sysdeps/i386/i686/add_n.S
@@ -19,22 +19,19 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+8 /* space for 2 saved regs */
+#define PARMS 4+8 /* space for 2 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define S2 S1+PTR_SIZE
-#define SIZE S2+PTR_SIZE
+#define S1 RES+4
+#define S2 S1+4
+#define SIZE S2+4
.text
#ifdef PIC
L(1): addl (%esp), %eax
ret
#endif
-ENTRY (BP_SYM (__mpn_add_n))
- ENTER
+ENTRY (__mpn_add_n)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -47,13 +44,6 @@ ENTRY (BP_SYM (__mpn_add_n))
cfi_rel_offset (esi, 0)
movl S2(%esp),%edx
movl SIZE(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ecx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%edx, S2(%esp), %ecx)
- shrl $2, %ecx
-#endif
movl %ecx,%eax
shrl $3,%ecx /* compute count for unrolled loop */
negl %eax
@@ -116,6 +106,5 @@ L(oop): movl (%esi),%eax
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_add_n))
+END (__mpn_add_n)
diff --git a/sysdeps/i386/i686/bzero.S b/sysdeps/i386/i686/bzero.S
index c1e4a6d50e..34b0faa91b 100644
--- a/sysdeps/i386/i686/bzero.S
+++ b/sysdeps/i386/i686/bzero.S
@@ -1,3 +1,3 @@
#define memset __bzero
#include <sysdeps/i386/i686/memset.S>
-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
+weak_alias (__bzero, bzero)
diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
index eacac8ee18..b8091a60ec 100644
--- a/sysdeps/i386/i686/memcmp.S
+++ b/sysdeps/i386/i686/memcmp.S
@@ -18,17 +18,15 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* Preserve EBX. */
+#define PARMS 4+4 /* Preserve EBX. */
#define BLK1 PARMS
-#define BLK2 BLK1+PTR_SIZE
-#define LEN BLK2+PTR_SIZE
+#define BLK2 BLK1+4
+#define LEN BLK2+4
#define ENTRANCE pushl %ebx; cfi_adjust_cfa_offset (4); \
- cfi_rel_offset (ebx, 0); ENTER
+ cfi_rel_offset (ebx, 0)
#define RETURN popl %ebx; cfi_adjust_cfa_offset (-4); \
- cfi_restore (ebx); LEAVE; ret
+ cfi_restore (ebx); ret
/* Load an entry in a jump table into EBX. TABLE is a jump table
with relative offsets. INDEX is a register contains the index
@@ -44,7 +42,7 @@
.text
ALIGN (4)
-ENTRY (BP_SYM (memcmp))
+ENTRY (memcmp)
ENTRANCE
movl BLK1(%esp), %eax
@@ -366,7 +364,7 @@ L(set):
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
RETURN
-END (BP_SYM (memcmp))
+END (memcmp)
.section .rodata
ALIGN (2)
@@ -406,5 +404,5 @@ L(table_32bytes) :
#undef bcmp
-weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
-libc_hidden_builtin_def (BP_SYM (memcmp))
+weak_alias (memcmp, bcmp)
+libc_hidden_builtin_def (memcmp)
diff --git a/sysdeps/i386/i686/memcpy.S b/sysdeps/i386/i686/memcpy.S
index e6dc87d77d..bb05c3d0b4 100644
--- a/sysdeps/i386/i686/memcpy.S
+++ b/sysdeps/i386/i686/memcpy.S
@@ -20,14 +20,12 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
-#define LEN SRC+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
+#define LEN SRC+4
.text
#if defined PIC && !defined NOT_IN_libc
@@ -37,8 +35,7 @@ ENTRY_CHK (__memcpy_chk)
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (__memcpy_chk)
#endif
-ENTRY (BP_SYM (memcpy))
- ENTER
+ENTRY (memcpy)
movl %edi, %eax
movl DEST(%esp), %edi
@@ -81,10 +78,8 @@ ENTRY (BP_SYM (memcpy))
.Lend: movl %eax, %edi
movl %edx, %esi
movl DEST(%esp), %eax
- RETURN_BOUNDED_POINTER (DEST(%esp))
- LEAVE
- RET_PTR
+ ret
/* When we come here the pointers do not have the same
alignment or the length is too short. No need to optimize for
@@ -99,5 +94,5 @@ ENTRY (BP_SYM (memcpy))
2: rep
movsl
jmp .Lend
-END (BP_SYM (memcpy))
+END (memcpy)
libc_hidden_builtin_def (memcpy)
diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
index 6079851477..8c53d4a9a9 100644
--- a/sysdeps/i386/i686/memmove.S
+++ b/sysdeps/i386/i686/memmove.S
@@ -20,22 +20,20 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* one spilled register */
+#define PARMS 4+4 /* one spilled register */
#define RTN PARMS
.text
#ifdef USE_AS_BCOPY
-# define SRC RTN+RTN_SIZE
-# define DEST SRC+PTR_SIZE
-# define LEN DEST+PTR_SIZE
+# define SRC RTN
+# define DEST SRC+4
+# define LEN DEST+4
#else
-# define DEST RTN+RTN_SIZE
-# define SRC DEST+PTR_SIZE
-# define LEN SRC+PTR_SIZE
+# define DEST RTN
+# define SRC DEST+4
+# define LEN SRC+4
# if defined PIC && !defined NOT_IN_libc
ENTRY_CHK (__memmove_chk)
@@ -46,8 +44,7 @@ END_CHK (__memmove_chk)
# endif
#endif
-ENTRY (BP_SYM (memmove))
- ENTER
+ENTRY (memmove)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -58,8 +55,6 @@ ENTRY (BP_SYM (memmove))
movl %esi, %edx
movl SRC(%esp), %esi
cfi_register (esi, edx)
- CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
movl %edi, %eax
subl %esi, %eax
@@ -79,15 +74,13 @@ ENTRY (BP_SYM (memmove))
cfi_restore (esi)
#ifndef USE_AS_BCOPY
movl DEST(%esp), %eax
- RETURN_BOUNDED_POINTER (DEST(%esp))
#endif
popl %edi
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
+ ret
cfi_adjust_cfa_offset (4)
cfi_rel_offset (edi, 0)
@@ -113,7 +106,6 @@ ENTRY (BP_SYM (memmove))
cfi_restore (esi)
#ifndef USE_AS_BCOPY
movl DEST(%esp), %eax
- RETURN_BOUNDED_POINTER (DEST(%esp))
#endif
cld
@@ -121,9 +113,8 @@ ENTRY (BP_SYM (memmove))
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (memmove))
+ ret
+END (memmove)
#ifndef USE_AS_BCOPY
libc_hidden_builtin_def (memmove)
#endif
diff --git a/sysdeps/i386/i686/mempcpy.S b/sysdeps/i386/i686/mempcpy.S
index 8022b7b959..97fd4966a9 100644
--- a/sysdeps/i386/i686/mempcpy.S
+++ b/sysdeps/i386/i686/mempcpy.S
@@ -20,14 +20,12 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
-#define LEN SRC+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
+#define LEN SRC+4
.text
#if defined PIC && !defined NOT_IN_libc
@@ -37,18 +35,15 @@ ENTRY_CHK (__mempcpy_chk)
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (__mempcpy_chk)
#endif
-ENTRY (BP_SYM (__mempcpy))
- ENTER
+ENTRY (__mempcpy)
movl LEN(%esp), %ecx
movl %edi, %eax
cfi_register (edi, eax)
movl DEST(%esp), %edi
- CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
movl %esi, %edx
cfi_register (esi, edx)
movl SRC(%esp), %esi
- CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
cld
shrl $1, %ecx
jnc 1f
@@ -62,11 +57,9 @@ ENTRY (BP_SYM (__mempcpy))
cfi_restore (edi)
movl %edx, %esi
cfi_restore (esi)
- RETURN_BOUNDED_POINTER (DEST(%esp))
- LEAVE
- RET_PTR
-END (BP_SYM (__mempcpy))
-libc_hidden_def (BP_SYM (__mempcpy))
-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
+ ret
+END (__mempcpy)
+libc_hidden_def (__mempcpy)
+weak_alias (__mempcpy, mempcpy)
libc_hidden_builtin_def (mempcpy)
diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
index ad0c9677fe..aed79a8aa9 100644
--- a/sysdeps/i386/i686/memset.S
+++ b/sysdeps/i386/i686/memset.S
@@ -20,20 +20,18 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
#define BZERO_P (defined memset)
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#if BZERO_P
# define DEST PARMS
-# define LEN DEST+PTR_SIZE
+# define LEN DEST+4
#else
# define RTN PARMS
-# define DEST RTN+RTN_SIZE
-# define CHR DEST+PTR_SIZE
+# define DEST RTN
+# define CHR DEST+4
# define LEN CHR+4
#endif
@@ -45,15 +43,13 @@ ENTRY_CHK (__memset_chk)
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (__memset_chk)
#endif
-ENTRY (BP_SYM (memset))
- ENTER
+ENTRY (memset)
cld
pushl %edi
cfi_adjust_cfa_offset (4)
movl DEST(%esp), %edx
movl LEN(%esp), %ecx
- CHECK_BOUNDS_BOTH_WIDE (%edx, DEST(%esp), %ecx)
#if BZERO_P
xorl %eax, %eax /* fill with 0 */
#else
@@ -90,19 +86,17 @@ ENTRY (BP_SYM (memset))
1:
#if !BZERO_P
movl DEST(%esp), %eax /* start address of destination is result */
- RETURN_BOUNDED_POINTER (DEST(%esp))
#endif
popl %edi
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
#if BZERO_P
ret
#else
- RET_PTR
+ ret
#endif
-END (BP_SYM (memset))
+END (memset)
libc_hidden_builtin_def (memset)
#if defined PIC && !defined NOT_IN_libc && !BZERO_P
diff --git a/sysdeps/i386/i686/strcmp.S b/sysdeps/i386/i686/strcmp.S
index b53260ffd6..6ca6220a02 100644
--- a/sysdeps/i386/i686/strcmp.S
+++ b/sysdeps/i386/i686/strcmp.S
@@ -19,21 +19,16 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define STR1 PARMS
-#define STR2 STR1+PTR_SIZE
+#define STR2 STR1+4
.text
-ENTRY (BP_SYM (strcmp))
- ENTER
+ENTRY (strcmp)
movl STR1(%esp), %ecx
movl STR2(%esp), %edx
- CHECK_BOUNDS_LOW (%ecx, STR1(%esp))
- CHECK_BOUNDS_LOW (%edx, STR2(%esp))
L(oop): movb (%ecx), %al
cmpb (%edx), %al
@@ -46,26 +41,12 @@ L(oop): movb (%ecx), %al
xorl %eax, %eax
/* when strings are equal, pointers rest one beyond
the end of the NUL terminators. */
- CHECK_BOUNDS_HIGH (%ecx, STR1(%esp), jbe)
- CHECK_BOUNDS_HIGH (%edx, STR2(%esp), jbe)
- LEAVE
ret
-#ifndef __BOUNDED_POINTERS__
L(neq): movl $1, %eax
movl $-1, %ecx
cmovbl %ecx, %eax
-#else
-L(neq): movl $1, %eax
- ja L(chk)
- negl %eax
- /* When strings differ, pointers rest on
- the unequal characters. */
-L(chk): CHECK_BOUNDS_HIGH (%ecx, STR1(%esp), jb)
- CHECK_BOUNDS_HIGH (%edx, STR2(%esp), jb)
-#endif
- LEAVE
ret
-END (BP_SYM (strcmp))
+END (strcmp)
libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/i386/i686/strtok.S b/sysdeps/i386/i686/strtok.S
index 794efbaed0..8848faf4d9 100644
--- a/sysdeps/i386/i686/strtok.S
+++ b/sysdeps/i386/i686/strtok.S
@@ -20,8 +20,6 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* This file can be used for three variants of the strtok function:
@@ -46,11 +44,7 @@
.type save_ptr, @object
.size save_ptr, 4
save_ptr:
-# if __BOUNDED_POINTERS__
- .space 12
-# else
.space 4
-# endif
# ifdef PIC
# define SAVE_PTR save_ptr@GOTOFF(%ebx)
@@ -62,15 +56,15 @@ save_ptr:
#endif
#if !defined USE_AS_STRTOK_R && defined PIC
-# define PARMS LINKAGE+256+4 /* space for table and saved PIC register */
+# define PARMS 4+256+4 /* space for table and saved PIC register */
#else
-# define PARMS LINKAGE+256 /* space for table */
+# define PARMS 4+256 /* space for table */
#endif
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define DELIM STR+PTR_SIZE
+#define STR RTN
+#define DELIM STR+4
#ifdef USE_AS_STRTOK_R
-# define SAVE DELIM+PTR_SIZE
+# define SAVE DELIM+4
#endif
.text
@@ -80,8 +74,7 @@ save_ptr:
ret
#endif
-ENTRY (BP_SYM (FUNCTION))
- ENTER
+ENTRY (FUNCTION)
#if !defined USE_AS_STRTOK_R && defined PIC
pushl %ebx /* Save PIC register. */
@@ -127,23 +120,7 @@ ENTRY (BP_SYM (FUNCTION))
cmove %eax, %edx
testl %edx, %edx
jz L(returnNULL)
-#if __BOUNDED_POINTERS__
-# ifdef USE_AS_STRTOK_R
- movl SAVE(%esp), %ecx /* borrow %ecx for a moment */
-# endif
- je L(0)
- /* Save bounds of incoming non-NULL STR into save area. */
- movl 4+STR(%esp), %eax
- movl %eax, 4+SAVE_PTR
- movl 8+STR(%esp), %eax
- movl %eax, 8+SAVE_PTR
-L(0): CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
-# ifdef USE_AS_STRTOK_R
- xorl %ecx, %ecx /* restore %ecx to zero */
-# endif
-#endif
movl DELIM(%esp), %eax /* Get start of delimiter set. */
- CHECK_BOUNDS_LOW (%eax, DELIM(%esp))
/* For understanding the following code remember that %ecx == 0 now.
Although all the following instruction only modify %cl we always
@@ -151,17 +128,17 @@ L(0): CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
L(2): movb (%eax), %cl /* get byte from stopset */
testb %cl, %cl /* is NUL char? */
- jz L(1_1) /* yes => start compare loop */
+ jz L(1) /* yes => start compare loop */
movb %cl, (%esp,%ecx) /* set corresponding byte in stopset table */
movb 1(%eax), %cl /* get byte from stopset */
testb $0xff, %cl /* is NUL char? */
- jz L(1_2) /* yes => start compare loop */
+ jz L(1) /* yes => start compare loop */
movb %cl, (%esp,%ecx) /* set corresponding byte in stopset table */
movb 2(%eax), %cl /* get byte from stopset */
testb $0xff, %cl /* is NUL char? */
- jz L(1_3) /* yes => start compare loop */
+ jz L(1) /* yes => start compare loop */
movb %cl, (%esp,%ecx) /* set corresponding byte in stopset table */
movb 3(%eax), %cl /* get byte from stopset */
@@ -170,16 +147,7 @@ L(2): movb (%eax), %cl /* get byte from stopset */
testb $0xff, %cl /* is NUL char? */
jnz L(2) /* no => process next dword from stopset */
-#if __BOUNDED_POINTERS__
- jmp L(1_0) /* pointer is correct for bounds check */
-L(1_3): incl %eax /* adjust pointer for bounds check */
-L(1_2): incl %eax /* ditto */
-L(1_1): incl %eax /* ditto */
-L(1_0): CHECK_BOUNDS_HIGH (%eax, DELIM(%esp), jbe)
-#else
-L(1_3):; L(1_2):; L(1_1): /* fall through */
-#endif
- leal -4(%edx), %eax /* prepare loop */
+L(1): leal -4(%edx), %eax /* prepare loop */
/* We use a neat trick for the following loop. Normally we would
have to test for two termination conditions
@@ -253,8 +221,6 @@ L(8): cmpl %eax, %edx
movl SAVE(%esp), %ecx
#endif
movl %edx, SAVE_PTR
- CHECK_BOUNDS_HIGH (%edx, SAVE_PTR, jb)
- RETURN_BOUNDED_POINTER (SAVE_PTR)
L(epilogue):
/* Remove the stopset table. */
@@ -265,8 +231,7 @@ L(epilogue):
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
#endif
- LEAVE
- RET_PTR
+ ret
L(returnNULL):
xorl %eax, %eax
@@ -274,7 +239,6 @@ L(returnNULL):
movl SAVE(%esp), %ecx
#endif
movl %edx, SAVE_PTR
- RETURN_NULL_BOUNDED_POINTER
jmp L(epilogue)
-END (BP_SYM (FUNCTION))
+END (FUNCTION)
diff --git a/sysdeps/i386/i686/strtok_r.S b/sysdeps/i386/i686/strtok_r.S
index 1c24ca85f5..353e076ba7 100644
--- a/sysdeps/i386/i686/strtok_r.S
+++ b/sysdeps/i386/i686/strtok_r.S
@@ -1,5 +1,5 @@
#define FUNCTION __strtok_r
#define USE_AS_STRTOK_R 1
#include <sysdeps/i386/i686/strtok.S>
-weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
-strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
+weak_alias (__strtok_r, strtok_r)
+strong_alias (__strtok_r, __GI___strtok_r)
diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
index 170d4e7727..771891e574 100644
--- a/sysdeps/i386/lshift.S
+++ b/sysdeps/i386/lshift.S
@@ -18,18 +18,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+12 /* space for 3 saved regs */
+#define PARMS 4+12 /* space for 3 saved regs */
#define RES PARMS
-#define S RES+PTR_SIZE
-#define SIZE S+PTR_SIZE
+#define S RES+4
+#define SIZE S+4
#define CNT SIZE+4
.text
-ENTRY (BP_SYM (__mpn_lshift))
- ENTER
+ENTRY (__mpn_lshift)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -44,12 +41,6 @@ ENTRY (BP_SYM (__mpn_lshift))
cfi_rel_offset (esi, 4)
movl SIZE(%esp),%edx
movl CNT(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %edx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %edx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %edx)
- shrl $2, %edx
-#endif
subl $4,%esi /* adjust s_ptr */
movl (%esi,%edx,4),%ebx /* read most significant limb */
@@ -92,7 +83,6 @@ L(1): movl (%esi,%edx,4),%eax
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
cfi_restore_state
@@ -109,6 +99,5 @@ L(end): shll %cl,%ebx /* compute least significant limb */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_lshift))
+END (__mpn_lshift)
diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
index 53cba10097..67995002ed 100644
--- a/sysdeps/i386/memchr.S
+++ b/sysdeps/i386/memchr.S
@@ -28,18 +28,15 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+8 /* space for 2 saved regs */
+#define PARMS 4+8 /* space for 2 saved regs */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define CHR STR+PTR_SIZE
+#define STR RTN
+#define CHR STR+4
#define LEN CHR+4
.text
-ENTRY (BP_SYM (__memchr))
- ENTER
+ENTRY (__memchr)
/* Save callee-safe registers used in this function. */
pushl %esi
@@ -53,7 +50,6 @@ ENTRY (BP_SYM (__memchr))
movl CHR(%esp), %edx /* c: byte we are looking for. */
movl LEN(%esp), %esi /* len: length of memory block. */
cfi_rel_offset (esi, 4)
- CHECK_BOUNDS_LOW (%eax, STR(%esp))
/* If my must not test more than three characters test
them one by one. This is especially true for 0. */
@@ -312,28 +308,15 @@ L(8): testb %cl, %cl /* test first byte in dword */
incl %eax /* increment source pointer */
/* No further test needed we we know it is one of the four bytes. */
-L(9):
-#if __BOUNDED_POINTERS__
- CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- /* If RTN pointer is phony, don't copy return value into it. */
- movl RTN(%esp), %ecx
- testl %ecx, %ecx
- jz L(pop)
- RETURN_BOUNDED_POINTER (STR(%esp))
-#endif
-L(pop): popl %edi /* pop saved registers */
+L(9): popl %edi /* pop saved registers */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
popl %esi
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
- LEAVE
- RET_PTR
-END (BP_SYM (__memchr))
+ ret
+END (__memchr)
-weak_alias (BP_SYM (__memchr), BP_SYM (memchr))
-#if !__BOUNDED_POINTERS__
-weak_alias (__memchr, __ubp_memchr)
-#endif
+weak_alias (__memchr, memchr)
libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
index f24ec9383f..21e0bfcd1c 100644
--- a/sysdeps/i386/memcmp.S
+++ b/sysdeps/i386/memcmp.S
@@ -18,17 +18,14 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define BLK1 PARMS
-#define BLK2 BLK1+PTR_SIZE
-#define LEN BLK2+PTR_SIZE
+#define BLK2 BLK1+4
+#define LEN BLK2+4
.text
-ENTRY (BP_SYM (memcmp))
- ENTER
+ENTRY (memcmp)
pushl %esi /* Save callee-safe registers. */
cfi_adjust_cfa_offset (4)
@@ -40,8 +37,6 @@ ENTRY (BP_SYM (memcmp))
cfi_rel_offset (esi, 0)
movl BLK2(%esp), %edi
movl LEN(%esp), %ecx
- CHECK_BOUNDS_LOW (%esi, BLK1(%esp))
- CHECK_BOUNDS_LOW (%edi, BLK2(%esp))
cld /* Set direction of comparison. */
@@ -64,18 +59,15 @@ ENTRY (BP_SYM (memcmp))
Note that the following operation does not change 0xffffffff. */
orb $1, %al /* Change 0 to 1. */
-L(1): CHECK_BOUNDS_HIGH (%esi, BLK1(%esp), jbe)
- CHECK_BOUNDS_HIGH (%edi, BLK2(%esp), jbe)
- popl %esi /* Restore registers. */
+L(1): popl %esi /* Restore registers. */
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
movl %edx, %edi
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (memcmp))
+END (memcmp)
#undef bcmp
-weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
-libc_hidden_builtin_def (BP_SYM (memcmp))
+weak_alias (memcmp, bcmp)
+libc_hidden_builtin_def (memcmp)
diff --git a/sysdeps/i386/mul_1.S b/sysdeps/i386/mul_1.S
index 4ecd33e98b..896ba12309 100644
--- a/sysdeps/i386/mul_1.S
+++ b/sysdeps/i386/mul_1.S
@@ -19,13 +19,11 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define SIZE S1+PTR_SIZE
+#define S1 RES+4
+#define SIZE S1+4
#define S2LIMB SIZE+4
#define res_ptr edi
@@ -34,8 +32,7 @@
#define s2_limb ebx
.text
-ENTRY (BP_SYM (__mpn_mul_1))
- ENTER
+ENTRY (__mpn_mul_1)
pushl %res_ptr
cfi_adjust_cfa_offset (4)
@@ -53,12 +50,6 @@ ENTRY (BP_SYM (__mpn_mul_1))
movl SIZE(%esp), %size
movl S2LIMB(%esp), %s2_limb
cfi_rel_offset (s2_limb, 0)
-#if __BOUNDED_POINTERS__
- shll $2, %size /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
- CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
- shrl $2, %size
-#endif
leal (%res_ptr,%size,4), %res_ptr
leal (%s1_ptr,%size,4), %s1_ptr
negl %size
@@ -90,7 +81,6 @@ L(oop):
cfi_adjust_cfa_offset (-4)
cfi_restore (res_ptr)
- LEAVE
ret
#undef size
-END (BP_SYM (__mpn_mul_1))
+END (__mpn_mul_1)
diff --git a/sysdeps/i386/rawmemchr.S b/sysdeps/i386/rawmemchr.S
index 1a8e33c44b..2bd20e0459 100644
--- a/sysdeps/i386/rawmemchr.S
+++ b/sysdeps/i386/rawmemchr.S
@@ -28,17 +28,14 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define CHR STR+PTR_SIZE
+#define STR RTN
+#define CHR STR+4
.text
-ENTRY (BP_SYM (__rawmemchr))
- ENTER
+ENTRY (__rawmemchr)
/* Save callee-safe register used in this function. */
pushl %edi
@@ -48,7 +45,6 @@ ENTRY (BP_SYM (__rawmemchr))
/* Load parameters into registers. */
movl STR(%esp), %eax
movl CHR(%esp), %edx
- CHECK_BOUNDS_LOW (%eax, STR(%esp))
/* At the moment %edx contains C. What we need for the
algorithm is C in all bytes of the dword. Avoid
@@ -215,15 +211,12 @@ L(8): testb %cl, %cl /* test first byte in dword */
/* No further test needed we we know it is one of the four bytes. */
L(9):
- CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- RETURN_BOUNDED_POINTER (STR(%esp))
popl %edi /* pop saved register */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (__rawmemchr))
+ ret
+END (__rawmemchr)
-libc_hidden_def (BP_SYM (__rawmemchr))
-weak_alias (BP_SYM (__rawmemchr), BP_SYM (rawmemchr))
+libc_hidden_def (__rawmemchr)
+weak_alias (__rawmemchr, rawmemchr)
diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
index 81af68dd7e..5f41227125 100644
--- a/sysdeps/i386/rshift.S
+++ b/sysdeps/i386/rshift.S
@@ -18,18 +18,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+12 /* space for 3 saved regs */
+#define PARMS 4+12 /* space for 3 saved regs */
#define RES PARMS
-#define S RES+PTR_SIZE
-#define SIZE S+PTR_SIZE
+#define S RES+4
+#define SIZE S+4
#define CNT SIZE+4
.text
-ENTRY (BP_SYM (__mpn_rshift))
- ENTER
+ENTRY (__mpn_rshift)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -44,12 +41,6 @@ ENTRY (BP_SYM (__mpn_rshift))
cfi_rel_offset (esi, 4)
movl SIZE(%esp),%edx
movl CNT(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %edx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %edx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %edx)
- shrl $2, %edx
-#endif
leal -4(%edi,%edx,4),%edi
leal (%esi,%edx,4),%esi
negl %edx
@@ -94,7 +85,6 @@ L(1): movl (%esi,%edx,4),%eax
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
cfi_restore_state
@@ -111,6 +101,5 @@ L(end): shrl %cl,%ebx /* compute most significant limb */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_rshift))
+END (__mpn_rshift)
diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
index 9c872f17a4..039f6c4fa3 100644
--- a/sysdeps/i386/setjmp.S
+++ b/sysdeps/i386/setjmp.S
@@ -19,19 +19,15 @@
#include <sysdep.h>
#include <jmpbuf-offsets.h>
#include <asm-syntax.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
#include <stap-probe.h>
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define JMPBUF PARMS
-#define SIGMSK JMPBUF+PTR_SIZE
+#define SIGMSK JMPBUF+4
-ENTRY (BP_SYM (__sigsetjmp))
- ENTER
+ENTRY (__sigsetjmp)
movl JMPBUF(%esp), %eax
- CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
/* Save registers. */
movl %ebx, (JB_BX*4)(%eax)
@@ -42,13 +38,12 @@ ENTRY (BP_SYM (__sigsetjmp))
PTR_MANGLE (%ecx)
#endif
movl %ecx, (JB_SP*4)(%eax)
- movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
+ movl 0(%esp), %ecx /* Save PC we are returning to now. */
LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx)
#ifdef PTR_MANGLE
PTR_MANGLE (%ecx)
#endif
movl %ecx, (JB_PC*4)(%eax)
- LEAVE /* pop frame pointer to prepare for tail-call. */
movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */
#if defined NOT_IN_libc && defined IS_IN_rtld
@@ -59,4 +54,4 @@ ENTRY (BP_SYM (__sigsetjmp))
/* Make a tail call to __sigjmp_save; it takes the same args. */
jmp __sigjmp_save
#endif
-END (BP_SYM (__sigsetjmp))
+END (__sigsetjmp)
diff --git a/sysdeps/i386/start.S b/sysdeps/i386/start.S
index afaf2cd020..51187652dc 100644
--- a/sysdeps/i386/start.S
+++ b/sysdeps/i386/start.S
@@ -52,8 +52,6 @@
NULL
*/
-#include "bp-sym.h"
-
.text
.globl _start
.type _start,@function
@@ -97,11 +95,11 @@ _start:
pushl %ecx /* Push second argument: argv. */
pushl %esi /* Push first argument: argc. */
- pushl BP_SYM (main)@GOT(%ebx)
+ pushl main@GOT(%ebx)
/* Call the user's main function, and exit with its value.
But let the libc call main. */
- call BP_SYM (__libc_start_main)@PLT
+ call __libc_start_main@PLT
#else
/* Push address of our own entry points to .fini and .init. */
pushl $__libc_csu_fini
@@ -110,11 +108,11 @@ _start:
pushl %ecx /* Push second argument: argv. */
pushl %esi /* Push first argument: argc. */
- pushl $BP_SYM (main)
+ pushl $main
/* Call the user's main function, and exit with its value.
But let the libc call main. */
- call BP_SYM (__libc_start_main)
+ call __libc_start_main
#endif
hlt /* Crash if somehow `exit' does return. */
diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
index 5c80c8ca22..3c7562ed4e 100644
--- a/sysdeps/i386/stpcpy.S
+++ b/sysdeps/i386/stpcpy.S
@@ -23,22 +23,17 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
.text
-ENTRY (BP_SYM (__stpcpy))
- ENTER
+ENTRY (__stpcpy)
movl DEST(%esp), %eax
movl SRC(%esp), %ecx
- CHECK_BOUNDS_LOW (%eax, DEST(%esp))
- CHECK_BOUNDS_LOW (%ecx, SRC(%esp))
subl %eax, %ecx /* magic: reduce number of loop variants
to one using addressing mode */
@@ -84,13 +79,10 @@ L(1): addl $4, %eax /* increment loop counter */
L(4): incl %eax
L(3): incl %eax
L(2):
- CHECK_BOUNDS_HIGH (%eax, DEST(%esp), jb)
- RETURN_BOUNDED_POINTER (DEST(%esp))
- LEAVE
- RET_PTR
-END (BP_SYM (__stpcpy))
+ ret
+END (__stpcpy)
-weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy))
+weak_alias (__stpcpy, stpcpy)
libc_hidden_def (__stpcpy)
libc_hidden_builtin_def (stpcpy)
diff --git a/sysdeps/i386/stpncpy.S b/sysdeps/i386/stpncpy.S
index 05fd12abc9..11882738d9 100644
--- a/sysdeps/i386/stpncpy.S
+++ b/sysdeps/i386/stpncpy.S
@@ -25,18 +25,15 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
-#define DEST RTN+RTN_SIZE
-#define SRC DEST+PTR_SIZE
-#define LEN SRC+PTR_SIZE
+#define DEST RTN
+#define SRC DEST+4
+#define LEN SRC+4
.text
-ENTRY (BP_SYM (__stpncpy))
- ENTER
+ENTRY (__stpncpy)
pushl %esi
cfi_adjust_cfa_offset (4)
@@ -45,8 +42,6 @@ ENTRY (BP_SYM (__stpncpy))
movl SRC(%esp), %esi
cfi_rel_offset (esi, 0)
movl LEN(%esp), %ecx
- CHECK_BOUNDS_LOW (%eax, DEST(%esp))
- CHECK_BOUNDS_LOW (%esi, SRC(%esp))
subl %eax, %esi /* magic: reduce number of loop variants
to one using addressing mode */
@@ -141,20 +136,12 @@ L(8):
L(3): decl %ecx /* all bytes written? */
jnz L(8) /* no, then again */
-L(9):
-#if __BOUNDED_POINTERS__
- addl %eax, %esi /* undo magic: %esi now points beyond end of SRC */
- CHECK_BOUNDS_HIGH (%esi, SRC(%esp), jbe)
- CHECK_BOUNDS_HIGH (%eax, DEST(%esp), jbe)
- RETURN_BOUNDED_POINTER (DEST(%esp))
-#endif
- popl %esi /* restore saved register content */
+L(9): popl %esi /* restore saved register content */
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
- LEAVE
- RET_PTR
-END (BP_SYM (__stpncpy))
+ ret
+END (__stpncpy)
-libc_hidden_def (BP_SYM (__stpncpy))
-weak_alias (BP_SYM (__stpncpy), BP_SYM (stpncpy))
+libc_hidden_def (__stpncpy)
+weak_alias (__stpncpy, stpncpy)
diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
index b0ba99b42b..666c7498fe 100644
--- a/sysdeps/i386/strchr.S
+++ b/sysdeps/i386/strchr.S
@@ -21,24 +21,20 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define CHR STR+PTR_SIZE
+#define STR RTN
+#define CHR STR+4
.text
-ENTRY (BP_SYM (strchr))
- ENTER
+ENTRY (strchr)
pushl %edi /* Save callee-safe registers used here. */
cfi_adjust_cfa_offset (4)
cfi_rel_offset (edi, 0)
movl STR(%esp), %eax
movl CHR(%esp), %edx
- CHECK_BOUNDS_LOW (%eax, STR(%esp))
/* At the moment %edx contains C. What we need for the
algorithm is C in all bytes of the dword. Avoid
@@ -243,13 +239,11 @@ L(11): movl (%eax), %ecx /* get word (= 4 bytes) in question */
L(2): /* Return NULL. */
xorl %eax, %eax
- RETURN_NULL_BOUNDED_POINTER
popl %edi /* restore saved register content */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
+ ret
cfi_adjust_cfa_offset (4)
cfi_rel_offset (edi, 0)
@@ -285,15 +279,12 @@ L(7): testb %cl, %cl /* is first byte C? */
incl %eax
L(6):
- CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- RETURN_BOUNDED_POINTER (STR(%esp))
popl %edi /* restore saved register content */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (strchr))
+ ret
+END (strchr)
-weak_alias (BP_SYM (strchr), BP_SYM (index))
+weak_alias (strchr, index)
libc_hidden_builtin_def (strchr)
diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
index d2879cf9c5..7ceb88ed8b 100644
--- a/sysdeps/i386/strchrnul.S
+++ b/sysdeps/i386/strchrnul.S
@@ -22,17 +22,14 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+4 /* space for 1 saved reg */
+#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define CHR STR+PTR_SIZE
+#define STR RTN
+#define CHR STR+4
.text
-ENTRY (BP_SYM (__strchrnul))
- ENTER
+ENTRY (__strchrnul)
pushl %edi /* Save callee-safe registers used here. */
cfi_adjust_cfa_offset (4)
@@ -40,7 +37,6 @@ ENTRY (BP_SYM (__strchrnul))
movl STR(%esp), %eax
movl CHR(%esp), %edx
- CHECK_BOUNDS_LOW (%eax, STR(%esp))
/* At the moment %edx contains CHR. What we need for the
algorithm is CHR in all bytes of the dword. Avoid
@@ -272,14 +268,11 @@ L(7): testb %cl, %cl /* is first byte CHR? */
/* It must be in the fourth byte and it cannot be NUL. */
incl %eax
-L(6): CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- RETURN_BOUNDED_POINTER (STR(%esp))
- popl %edi /* restore saved register content */
+L(6): popl %edi /* restore saved register content */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (__strchrnul))
+ ret
+END (__strchrnul)
-weak_alias (BP_SYM (__strchrnul), BP_SYM (strchrnul))
+weak_alias (__strchrnul, strchrnul)
diff --git a/sysdeps/i386/strcspn.S b/sysdeps/i386/strcspn.S
index 5f6633fea9..0c262d6001 100644
--- a/sysdeps/i386/strcspn.S
+++ b/sysdeps/i386/strcspn.S
@@ -22,20 +22,16 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define STR PARMS
-#define STOP STR+PTR_SIZE
+#define STOP STR+4
.text
-ENTRY (BP_SYM (strcspn))
- ENTER
+ENTRY (strcspn)
movl STR(%esp), %edx
movl STOP(%esp), %eax
- CHECK_BOUNDS_LOW (%edx, STR(%esp))
/* First we create a table with flags for all possible characters.
For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
@@ -236,11 +232,9 @@ L(5): incl %eax
L(4): addl $256, %esp /* remove stopset */
cfi_adjust_cfa_offset (-256)
- CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
subl %edx, %eax /* we have to return the number of valid
characters, so compute distance to first
non-valid character */
- LEAVE
ret
-END (BP_SYM (strcspn))
+END (strcspn)
libc_hidden_builtin_def (strcspn)
diff --git a/sysdeps/i386/strpbrk.S b/sysdeps/i386/strpbrk.S
index 617a119916..bbc0cbeb6f 100644
--- a/sysdeps/i386/strpbrk.S
+++ b/sysdeps/i386/strpbrk.S
@@ -22,21 +22,17 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define STOP STR+PTR_SIZE
+#define STR RTN
+#define STOP STR+4
.text
-ENTRY (BP_SYM (strpbrk))
- ENTER
+ENTRY (strpbrk)
movl STR(%esp), %edx
movl STOP(%esp), %eax
- CHECK_BOUNDS_LOW (%edx, STR(%esp))
/* First we create a table with flags for all possible characters.
For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
@@ -238,18 +234,10 @@ L(5): incl %eax
L(4): addl $256, %esp /* remove stopset */
cfi_adjust_cfa_offset (-256)
- CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
orb %cl, %cl /* was last character NUL? */
jnz L(7) /* no => return pointer */
xorl %eax, %eax
- RETURN_NULL_BOUNDED_POINTER
- LEAVE
- RET_PTR
-
-L(7): RETURN_BOUNDED_POINTER (STR(%esp))
-
- LEAVE
- RET_PTR
-END (BP_SYM (strpbrk))
+L(7): ret
+END (strpbrk)
libc_hidden_builtin_def (strpbrk)
diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
index 623cf4e348..31b8a4562c 100644
--- a/sysdeps/i386/strrchr.S
+++ b/sysdeps/i386/strrchr.S
@@ -21,17 +21,14 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+8 /* space for 2 saved regs */
+#define PARMS 4+8 /* space for 2 saved regs */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define CHR STR+PTR_SIZE
+#define STR RTN
+#define CHR STR+4
.text
-ENTRY (BP_SYM (strrchr))
- ENTER
+ENTRY (strrchr)
pushl %edi /* Save callee-safe registers used here. */
cfi_adjust_cfa_offset (4)
@@ -43,7 +40,6 @@ ENTRY (BP_SYM (strrchr))
movl STR(%esp), %esi
cfi_rel_offset (esi, 0)
movl CHR(%esp), %ecx
- CHECK_BOUNDS_LOW (%esi, STR(%esp))
/* At the moment %ecx contains C. What we need for the
algorithm is C in all bytes of the dword. Avoid
@@ -324,18 +320,15 @@ L(26): testb %dl, %dl /* is third byte == NUL */
jne L(2) /* no => skip */
leal 3(%esi), %eax /* store address as result */
-L(2): CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
- RETURN_BOUNDED_POINTER (STR(%esp))
- popl %esi /* restore saved register content */
+L(2): popl %esi /* restore saved register content */
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %edi
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
- RET_PTR
-END (BP_SYM (strrchr))
+ ret
+END (strrchr)
-weak_alias (BP_SYM (strrchr), BP_SYM (rindex))
+weak_alias (strrchr, rindex)
libc_hidden_builtin_def (strrchr)
diff --git a/sysdeps/i386/strspn.S b/sysdeps/i386/strspn.S
index decb9afdbc..1865e49202 100644
--- a/sysdeps/i386/strspn.S
+++ b/sysdeps/i386/strspn.S
@@ -22,20 +22,16 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define STR PARMS
-#define SKIP STR+PTR_SIZE
+#define SKIP STR+4
.text
-ENTRY (BP_SYM (strspn))
- ENTER
+ENTRY (strspn)
movl STR(%esp), %edx
movl SKIP(%esp), %eax
- CHECK_BOUNDS_LOW (%edx, STR(%esp))
/* First we create a table with flags for all possible characters.
For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
@@ -236,11 +232,9 @@ L(5): incl %eax
L(4): addl $256, %esp /* remove stopset */
cfi_adjust_cfa_offset (-256)
- CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
subl %edx, %eax /* we have to return the number of valid
characters, so compute distance to first
non-valid character */
- LEAVE
ret
-END (BP_SYM (strspn))
+END (strspn)
libc_hidden_builtin_def (strspn)
diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S
index 4dde8c70f9..79d540b603 100644
--- a/sysdeps/i386/strtok.S
+++ b/sysdeps/i386/strtok.S
@@ -20,8 +20,6 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
/* This file can be used for three variants of the strtok function:
@@ -46,11 +44,7 @@
.type save_ptr, @object
.size save_ptr, 4
save_ptr:
-# if __BOUNDED_POINTERS__
- .space 12
-# else
.space 4
-# endif
# ifdef PIC
# define SAVE_PTR save_ptr@GOTOFF(%ebx)
@@ -61,19 +55,17 @@ save_ptr:
# define FUNCTION strtok
#endif
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define RTN PARMS
-#define STR RTN+RTN_SIZE
-#define DELIM STR+PTR_SIZE
-#define SAVE DELIM+PTR_SIZE
+#define STR RTN
+#define DELIM STR+4
+#define SAVE DELIM+4
.text
-ENTRY (BP_SYM (FUNCTION))
- ENTER
+ENTRY (FUNCTION)
movl STR(%esp), %edx
movl DELIM(%esp), %eax
- CHECK_BOUNDS_LOW (%eax, DELIM(%esp))
#if !defined USE_AS_STRTOK_R && defined PIC
pushl %ebx /* Save PIC register. */
@@ -90,22 +82,7 @@ L(here):
/* If the pointer is NULL we have to use the stored value of
the last run. */
cmpl $0, %edx
-#if __BOUNDED_POINTERS__
- movl SAVE(%esp), %ecx
- je L(0)
- /* Save bounds of incoming non-NULL STR into save area. */
- movl 4+STR(%esp), %eax
- movl %eax, 4+SAVE_PTR
- movl 8+STR(%esp), %eax
- movl %eax, 8+SAVE_PTR
- CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
- jmp L(1)
-L(0): movl SAVE_PTR, %edx
- CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
- jmp L(1)
-#else
jne L(1)
-#endif
#ifdef USE_AS_STRTOK_R
/* The value is stored in the third argument. */
@@ -267,12 +244,12 @@ L(2): movb (%eax), %cl /* get byte from stopset */
movb 1(%eax), %cl /* get byte from stopset */
testb $0xff, %cl /* is NUL char? */
- jz L(1_2) /* yes => start compare loop */
+ jz L(1_1) /* yes => start compare loop */
movb %cl, (%esp,%ecx) /* set corresponding byte in stopset table */
movb 2(%eax), %cl /* get byte from stopset */
testb $0xff, %cl /* is NUL char? */
- jz L(1_3) /* yes => start compare loop */
+ jz L(1_1) /* yes => start compare loop */
movb %cl, (%esp,%ecx) /* set corresponding byte in stopset table */
movb 3(%eax), %cl /* get byte from stopset */
@@ -281,16 +258,7 @@ L(2): movb (%eax), %cl /* get byte from stopset */
testb $0xff, %cl /* is NUL char? */
jnz L(2) /* no => process next dword from stopset */
-#if __BOUNDED_POINTERS__
- jmp L(1_0) /* pointer is correct for bounds check */
-L(1_3): incl %eax /* adjust pointer for bounds check */
-L(1_2): incl %eax /* ditto */
-L(1_1): incl %eax /* ditto */
-L(1_0): CHECK_BOUNDS_HIGH (%eax, DELIM(%esp), jbe)
-#else
-L(1_3):; L(1_2):; L(1_1): /* fall through */
-#endif
- leal -4(%edx), %eax /* prepare loop */
+L(1_1): leal -4(%edx), %eax /* prepare loop */
/* We use a neat trick for the following loop. Normally we would
have to test for two termination conditions
@@ -370,8 +338,6 @@ L(11):
movl SAVE(%esp), %ecx
#endif
movl %edx, SAVE_PTR
- CHECK_BOUNDS_HIGH (%edx, SAVE_PTR, jb)
- RETURN_BOUNDED_POINTER (SAVE_PTR)
L(epilogue):
#if !defined USE_AS_STRTOK_R && defined PIC
@@ -379,8 +345,7 @@ L(epilogue):
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
#endif
- LEAVE
- RET_PTR
+ ret
L(returnNULL):
xorl %eax, %eax
@@ -388,7 +353,6 @@ L(returnNULL):
movl SAVE(%esp), %ecx
#endif
movl %edx, SAVE_PTR
- RETURN_NULL_BOUNDED_POINTER
jmp L(epilogue)
-END (BP_SYM (FUNCTION))
+END (FUNCTION)
diff --git a/sysdeps/i386/strtok_r.S b/sysdeps/i386/strtok_r.S
index f4a6a2c409..508729370a 100644
--- a/sysdeps/i386/strtok_r.S
+++ b/sysdeps/i386/strtok_r.S
@@ -1,5 +1,5 @@
#define FUNCTION __strtok_r
#define USE_AS_STRTOK_R 1
#include <sysdeps/i386/strtok.S>
-weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
-strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
+weak_alias (__strtok_r, strtok_r)
+strong_alias (__strtok_r, __GI___strtok_r)
diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
index 341e84988b..40d430d6ea 100644
--- a/sysdeps/i386/sub_n.S
+++ b/sysdeps/i386/sub_n.S
@@ -19,18 +19,15 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+8 /* space for 2 saved regs */
+#define PARMS 4+8 /* space for 2 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define S2 S1+PTR_SIZE
-#define SIZE S2+PTR_SIZE
+#define S1 RES+4
+#define S2 S1+4
+#define SIZE S2+4
.text
-ENTRY (BP_SYM (__mpn_sub_n))
- ENTER
+ENTRY (__mpn_sub_n)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -43,13 +40,6 @@ ENTRY (BP_SYM (__mpn_sub_n))
cfi_rel_offset (esi, 0)
movl S2(%esp),%edx
movl SIZE(%esp),%ecx
-#if __BOUNDED_POINTERS__
- shll $2, %ecx /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%edx, S2(%esp), %ecx)
- shrl $2, %ecx
-#endif
movl %ecx,%eax
shrl $3,%ecx /* compute count for unrolled loop */
negl %eax
@@ -117,6 +107,5 @@ L(oop): movl (%esi),%eax
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_sub_n))
+END (__mpn_sub_n)
diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S
index d4588f9101..a0ecfb5ed6 100644
--- a/sysdeps/i386/submul_1.S
+++ b/sysdeps/i386/submul_1.S
@@ -19,13 +19,11 @@
#include "sysdep.h"
#include "asm-syntax.h"
-#include "bp-sym.h"
-#include "bp-asm.h"
-#define PARMS LINKAGE+16 /* space for 4 saved regs */
+#define PARMS 4+16 /* space for 4 saved regs */
#define RES PARMS
-#define S1 RES+PTR_SIZE
-#define SIZE S1+PTR_SIZE
+#define S1 RES+4
+#define SIZE S1+4
#define S2LIMB SIZE+4
#define res_ptr edi
@@ -34,8 +32,7 @@
#define s2_limb ebx
.text
-ENTRY (BP_SYM (__mpn_submul_1))
- ENTER
+ENTRY (__mpn_submul_1)
pushl %edi
cfi_adjust_cfa_offset (4)
@@ -54,12 +51,6 @@ ENTRY (BP_SYM (__mpn_submul_1))
movl S1(%esp), %s1_ptr
movl SIZE(%esp), %sizeP
movl S2LIMB(%esp), %s2_limb
-#if __BOUNDED_POINTERS__
- shll $2, %sizeP /* convert limbs to bytes */
- CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
- CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
- shrl $2, %sizeP
-#endif
leal (%res_ptr,%sizeP,4), %res_ptr
leal (%s1_ptr,%sizeP,4), %s1_ptr
negl %sizeP
@@ -91,6 +82,5 @@ L(oop):
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
- LEAVE
ret
-END (BP_SYM (__mpn_submul_1))
+END (__mpn_submul_1)