diff options
Diffstat (limited to 'sysdeps/i386')
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) |