diff options
56 files changed, 331 insertions, 482 deletions
@@ -1,3 +1,166 @@ +2013-02-28 Joseph Myers <joseph@codesourcery.com> + + [BZ #13550] + * sysdeps/powerpc/powerpc32/bp-asm.h: Remove file. + * sysdeps/powerpc/powerpc32/__longjmp-common.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__longjmp): Don't use BP_SYM and CHECK_BOUNDS_BOTH_WIDE_LIT. + * sysdeps/powerpc/powerpc32/a2/memcpy.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (memcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/add_n.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (__mpn_add_n): Don't use BP_SYM. + (__mpn_add_n) [__BOUNDED_POINTERS_]: Remove conditional code. + * sysdeps/powerpc/powerpc32/addmul_1.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (__mpn_addmul_1): Don't use BP_SYM. + (__mpn_addmul_1) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Don't include + <bp-sym.h>. + (_setjmp): Don't use BP_SYM. + (__novmx_setjmp): Likewise. + (__GI__setjmp): Likewise. + (__vmx_setjmp): Likewise. + * sysdeps/powerpc/powerpc32/bsd-setjmp.S: Don't include + <bp-sym.h>. + * sysdeps/powerpc/powerpc32/bzero.S: Don't include <bp-sym.h>. + (__bzero): Don't use BP_SYM. + (__bzero) [__BOUNDED_POINTERS__]: Remove conditional code. + (__bzero) [!__BOUNDED_POINTERS__]: Make code unconditional. + * sysdeps/powerpc/powerpc32/cell/memcpy.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__longjmp): Don't use BP_SYM and CHECK_BOUNDS_BOTH_WIDE_LIT. + * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__sigsetjmp): Don't use BP_SYM and CHECK_BOUNDS_BOTH_WIDE_LIT. + * sysdeps/powerpc/powerpc32/lshift.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (__mpn_lshift): Don't use BP_SYM. + (__mpn_lshift) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/powerpc/powerpc32/memset.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (memset): Don't use BP_SYM. + (memset) [__BOUNDED_POINTERS__]: Remove conditional code. + (memset) [!__BOUNDED_POINTERS__]: Make code unconditional. + * sysdeps/powerpc/powerpc32/mul_1.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (__mpn_mul_1): Don't use BP_SYM. + (__mpn_mul_1) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/powerpc/powerpc32/power4/memcmp.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memcmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power4/memcpy.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power4/memset.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memset): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power4/strncmp.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (strncmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power6/memcpy.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power6/memset.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memset): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/memchr.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__memchr): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/memcmp.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memcmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/memcpy.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/mempcpy.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__mempcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/memrchr.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__memrchr): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/memset.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (memset): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/rawmemchr.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__rawmemchr): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/strcasecmp.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__STRCMP): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/strchr.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (strchr): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/strchrnul.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__strchrnul): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/strlen.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (strlen): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/strncmp.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (strncmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/power7/strnlen.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__strnlen): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/rshift.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (__mpn_rshift): Don't use BP_SYM. + (__mpn_rshift) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/powerpc/powerpc32/setjmp-common.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__sigsetjmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/start.S: Don't include "bp-sym.h". + (L(start_addresses)): Don't use BP_SYM. + (_start): Likewise. + * sysdeps/powerpc/powerpc32/stpcpy.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (__stpcpy): Don't use BP_SYM and macros from bp-asm.h. + (__stpcpy) [__BOUNDED_POINTERS__]: Remove conditional code. + (__stpcpy) [!__BOUNDED_POINTERS__]: Make code unconditional. + * sysdeps/powerpc/powerpc32/strchr.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (strchr): Don't use BP_SYM.h and macros from bp-asm.h. + (strchr) [__BOUNDED_POINTERS__]: Remove conditional code. + (strchr) [!__BOUNDED_POINTERS__]: Make code unconditional. + * sysdeps/powerpc/powerpc32/strcmp.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (strcmp): Don't use BP_SYM and CHECK_BOUNDS_LOW. Remove GKM FIXME + comments. + (strcmp) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/powerpc/powerpc32/strcpy.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (strcpy): Don't use BP_SYM and macros from bp-asm.h. Remove GKM + FIXME comments. + (strcpy) [__BOUNDED_POINTERS__]: Remove conditional code. + (strcpy) [!__BOUNDED_POINTERS__]: Make code unconditional. + * sysdeps/powerpc/powerpc32/strlen.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (strlen): Don't use BP_SYM and CHECK_BOUNDS_LOW. Remove GKM FIXME + comment. + * sysdeps/powerpc/powerpc32/strncmp.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (strncmp): Don't use BP_SYM, + * sysdeps/powerpc/powerpc32/sub_n.S: Don't include <bp-sym.h> and + <bp-asm.h>. + (__mpn_sub_n): Don't use BP_SYM. + (__mpn_sub_n) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/powerpc/powerpc32/submul_1.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (__mpn_submul_1): Don't use BP_SYM. + (__mpn_submul_1) [__BOUNDED_POINTERS__]: Remove conditional code. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__brk): Don't use BP_SYM and DISCARD_BOUNDS. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (__clone): Don't use BP_SYM and DISCARD_BOUNDS. Remove GKM FIXME + comment. + 2013-02-28 Siddhesh Poyarekar <siddhesh@redhat.com> * sysdeps/powerpc/powerpc32/power4/fpu/mpa.c (add_magnitudes): diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc index c66dc07..2ba8e37 100644 --- a/ports/ChangeLog.powerpc +++ b/ports/ChangeLog.powerpc @@ -1,3 +1,31 @@ +2013-02-28 Joseph Myers <joseph@codesourcery.com> + + [BZ #13550] + * sysdeps/powerpc/powerpc32/405/memcmp.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (memcmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/405/memcpy.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (memcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/405/memset.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (memset): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/405/strcmp.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (strcmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/405/strcpy.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (strcpy): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/405/strlen.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (strlen): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/405/strncmp.S: Don't include + <bp-sym.h> and <bp-asm.h>. + (strncmp): Don't use BP_SYM. + * sysdeps/powerpc/powerpc32/476/memset.S: Don't include <bp-sym.h> + and <bp-asm.h>. + (memset): Don't use BP_SYM. + 2013-02-18 Siddhesh Poyarekar <siddhesh@redhat.com> * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist: diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S b/ports/sysdeps/powerpc/powerpc32/405/memcmp.S index 6a6439f..2849461 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S +++ b/ports/sysdeps/powerpc/powerpc32/405/memcmp.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* memcmp @@ -32,7 +30,7 @@ return src1 > src2, src1 < src2 or src1 = src2. If src1 = src2 and no null, repeat. */ -EALIGN (BP_SYM (memcmp), 5, 0) +EALIGN (memcmp, 5, 0) srwi. r6,r5,5 beq L(preword2_count_loop) mtctr r6 @@ -125,6 +123,6 @@ L(st2): blt cr5,L(l_r) addi r3,r0,-1 blr -END (BP_SYM (memcmp)) +END (memcmp) libc_hidden_builtin_def (memcmp) weak_alias (memcmp,bcmp) diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S b/ports/sysdeps/powerpc/powerpc32/405/memcpy.S index bca4f74..761e967 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S +++ b/ports/sysdeps/powerpc/powerpc32/405/memcpy.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* memcpy @@ -33,7 +31,7 @@ If 32 or more bytes to copy we use 32 byte copy loop. Finaly we copy 0-31 extra bytes. */ -EALIGN (BP_SYM (memcpy), 5, 0) +EALIGN (memcpy, 5, 0) /* Check if bytes to copy are greater than 256 and if source and destination are unaligned */ cmpwi r5,0x0100 @@ -128,5 +126,5 @@ L(word4_count_loop_no_dcbt): /* Copy 32 bytes at a time */ L(end_memcpy): mr r3,r0 blr -END (BP_SYM (memcpy)) +END (memcpy) libc_hidden_builtin_def (memcpy) diff --git a/ports/sysdeps/powerpc/powerpc32/405/memset.S b/ports/sysdeps/powerpc/powerpc32/405/memset.S index d07a976..b73dba8 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/memset.S +++ b/ports/sysdeps/powerpc/powerpc32/405/memset.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* memset @@ -37,7 +35,7 @@ If 16 or more words to set we use 16 word copy loop. Finaly we set 0-15 extra bytes with string store. */ -EALIGN (BP_SYM (memset), 5, 0) +EALIGN (memset, 5, 0) rlwinm r11,r4,0,24,31 rlwimi r11,r4,8,16,23 rlwimi r11,r11,16,0,15 @@ -150,5 +148,5 @@ L(postword2_count_loop): mtxer r7 stswx r8,0,r3 b L(end_memset) -END (BP_SYM (memset)) +END (memset) libc_hidden_builtin_def (memset) diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S b/ports/sysdeps/powerpc/powerpc32/405/strcmp.S index faa7cf3..c0b2190 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S +++ b/ports/sysdeps/powerpc/powerpc32/405/strcmp.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* strcmp @@ -34,7 +32,7 @@ return src1 > src2, src1 < src2 or src1 = src2. If src1 = src2 and no null, repeat. */ -EALIGN (BP_SYM(strcmp),5,0) +EALIGN (strcmp,5,0) neg r7,r3 clrlwi r7,r7,20 neg r8,r4 @@ -132,5 +130,5 @@ L(byte_loop): cmpwi r5,0 beq L(end_strcmp) b L(byte_loop) -END (BP_SYM (strcmp)) +END (strcmp) libc_hidden_builtin_def (strcmp) diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S b/ports/sysdeps/powerpc/powerpc32/405/strcpy.S index 88f8c8e..d7c8456 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S +++ b/ports/sysdeps/powerpc/powerpc32/405/strcpy.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* strcpy @@ -33,7 +31,7 @@ where in the last 8 bytes it is. Copy the appropriate bytes of the last 8 according to the null position. */ -EALIGN (BP_SYM (strcpy), 5, 0) +EALIGN (strcpy, 5, 0) neg r7,r4 subi r4,r4,1 clrlwi. r8,r7,29 @@ -105,5 +103,5 @@ L(last_bytes_copy_loop2): L(end_strcpy): blr -END (BP_SYM (strcpy)) +END (strcpy) libc_hidden_builtin_def (strcpy) diff --git a/ports/sysdeps/powerpc/powerpc32/405/strlen.S b/ports/sysdeps/powerpc/powerpc32/405/strlen.S index e267f4d..77d22ea 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/strlen.S +++ b/ports/sysdeps/powerpc/powerpc32/405/strlen.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* strlen @@ -31,7 +29,7 @@ the count and return the count value. We need to subtract one because we don't count the null character as a byte. */ -EALIGN (BP_SYM (strlen),5,0) +EALIGN (strlen,5,0) neg r7,r3 clrlwi. r8,r7,29 addi r4,0,0 @@ -73,5 +71,5 @@ L(byte_count_loop): L(end_strlen): addi r3,r4,-1 blr -END (BP_SYM (strlen)) +END (strlen) libc_hidden_builtin_def (strlen) diff --git a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S b/ports/sysdeps/powerpc/powerpc32/405/strncmp.S index a613869..3e2ba5f 100644 --- a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S +++ b/ports/sysdeps/powerpc/powerpc32/405/strncmp.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* strncmp @@ -39,7 +37,7 @@ return src1 > src2, src1 < src2 or src1 = src2. If src1 = src2 and no null, repeat. */ -EALIGN (BP_SYM(strncmp),5,0) +EALIGN (strncmp,5,0) neg r7,r3 clrlwi r7,r7,20 neg r8,r4 @@ -126,5 +124,5 @@ L(end_strncmp): L(st1): mfcr r3 blr -END (BP_SYM (strncmp)) +END (strncmp) libc_hidden_builtin_def (strncmp) diff --git a/ports/sysdeps/powerpc/powerpc32/476/memset.S b/ports/sysdeps/powerpc/powerpc32/476/memset.S index f681a89..48c21d6 100644 --- a/ports/sysdeps/powerpc/powerpc32/476/memset.S +++ b/ports/sysdeps/powerpc/powerpc32/476/memset.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* memset @@ -37,7 +35,7 @@ If 16 or more words to set we use 16 word copy loop. Finaly we set 0-15 extra bytes with string store. */ -EALIGN (BP_SYM (memset), 5, 0) +EALIGN (memset, 5, 0) rlwinm r11,r4,0,24,31 rlwimi r11,r4,8,16,23 rlwimi r11,r11,16,0,15 @@ -150,5 +148,5 @@ L(postword2_count_loop): mtxer r7 stswx r8,0,r3 b L(end_memset) -END (BP_SYM (memset)) +END (memset) libc_hidden_builtin_def (memset) diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S index 5154199..7874473 100644 --- a/sysdeps/powerpc/powerpc32/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc32/__longjmp-common.S @@ -23,11 +23,8 @@ #else # include <jmpbuf-offsets.h> #endif -#include <bp-sym.h> -#include <bp-asm.h> -ENTRY (BP_SYM (__longjmp)) - CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) +ENTRY (__longjmp) #if defined PTR_DEMANGLE || defined CHECK_SP lwz r24,(JB_GPR1*4)(r3) @@ -71,4 +68,4 @@ ENTRY (BP_SYM (__longjmp)) lwz r31,((JB_GPRS+17)*4)(r3) mr r3,r4 blr -END (BP_SYM (__longjmp)) +END (__longjmp) diff --git a/sysdeps/powerpc/powerpc32/a2/memcpy.S b/sysdeps/powerpc/powerpc32/a2/memcpy.S index d1192a3..f2f63b1 100644 --- a/sysdeps/powerpc/powerpc32/a2/memcpy.S +++ b/sysdeps/powerpc/powerpc32/a2/memcpy.S @@ -18,14 +18,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> #define PREFETCH_AHEAD 4 /* no cache lines SRC prefetching ahead */ #define ZERO_AHEAD 2 /* no cache lines DST zeroing ahead */ .machine a2 -EALIGN (BP_SYM (memcpy), 5, 0) +EALIGN (memcpy, 5, 0) CALL_MCOUNT dcbt 0,r4 /* Prefetch ONE SRC cacheline */ @@ -525,5 +523,5 @@ L(endloop2_128): b L(lessthancacheline) -END (BP_SYM (memcpy)) +END (memcpy) libc_hidden_builtin_def (memcpy) diff --git a/sysdeps/powerpc/powerpc32/add_n.S b/sysdeps/powerpc/powerpc32/add_n.S index 0db251a..7ce77e0 100644 --- a/sysdeps/powerpc/powerpc32/add_n.S +++ b/sysdeps/powerpc/powerpc32/add_n.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* mp_limb_t mpn_add_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size) @@ -28,14 +26,8 @@ possible 2-unrolled inner loop will not be. Also, watch out for the alignment... */ -EALIGN (BP_SYM (__mpn_add_n), 3, 0) +EALIGN (__mpn_add_n, 3, 0) -#if __BOUNDED_POINTERS__ - slwi r10,r6,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r5, r8, r9, r10) -#endif /* Set up for loop below. */ mtcrf 0x01,r6 srwi. r7,r6,1 @@ -73,4 +65,4 @@ L(0): lwz r9,4(r4) /* Return the carry. */ L(1): addze r3,r10 blr -END (BP_SYM (__mpn_add_n)) +END (__mpn_add_n) diff --git a/sysdeps/powerpc/powerpc32/addmul_1.S b/sysdeps/powerpc/powerpc32/addmul_1.S index 33a5202..88a01a1 100644 --- a/sysdeps/powerpc/powerpc32/addmul_1.S +++ b/sysdeps/powerpc/powerpc32/addmul_1.S @@ -17,18 +17,11 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* mp_limb_t mpn_addmul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_size_t s1_size, mp_limb_t s2_limb) Calculate res+s1*s2 and put result back in res; return carry. */ -ENTRY (BP_SYM (__mpn_addmul_1)) -#if __BOUNDED_POINTERS__ - slwi r10,r5,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) -#endif +ENTRY (__mpn_addmul_1) mtctr r5 lwz r0,0(r4) @@ -52,4 +45,4 @@ L(0): lwzu r0,4(r4) L(1): stw r8,4(r3) addze r3,r10 blr -END (BP_SYM (__mpn_addmul_1)) +END (__mpn_addmul_1) diff --git a/sysdeps/powerpc/powerpc32/bp-asm.h b/sysdeps/powerpc/powerpc32/bp-asm.h deleted file mode 100644 index 0e5d07b..0000000 --- a/sysdeps/powerpc/powerpc32/bp-asm.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Bounded-pointer definitions for PowerPC 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/>. */ - -#if __BOUNDED_POINTERS__ - -/* Byte offsets of BP components. */ -# define oVALUE 0 -# define oLOW 4 -# define oHIGH 8 - -/* Don't check bounds, just convert the BP register to its simple - pointer value. */ - -# define DISCARD_BOUNDS(rBP) \ - lwz rBP, oVALUE(rBP) - -/* Check low bound, with the side effect that the BP register is converted - its simple pointer value. Move the high bound into a register for - later use. */ - -# define CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH) \ - lwz rHIGH, oHIGH(rBP); \ - lwz rLOW, oLOW(rBP); \ - lwz rBP, oVALUE(rBP); \ - twllt rBP, rLOW - -/* Check the high bound, which is in a register, using the given - conditional trap instruction. */ - -# define CHECK_BOUNDS_HIGH(rVALUE, rHIGH, TWLcc) \ - TWLcc rVALUE, rHIGH - -/* Check the high bound, which is stored at the return-value's high - bound slot, using the given conditional trap instruction. */ - -# define CHECK_BOUNDS_HIGH_RTN(rVALUE, rHIGH, TWLcc) \ - lwz rHIGH, oHIGH(rRTN); \ - TWLcc rVALUE, rHIGH - -/* Check both bounds, with the side effect that the BP register is - converted to its simple pointer value. */ - -# define CHECK_BOUNDS_BOTH(rBP, rLOW, rHIGH) \ - CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH); \ - twlge rBP, rHIGH - -/* Check bounds on a memory region of given length, with the side - effect that the BP register is converted to its simple pointer - value. */ - -# define CHECK_BOUNDS_BOTH_WIDE(rBP, rLOW, rHIGH, rLENGTH) \ - CHECK_BOUNDS_LOW (rBP, rLOW, rHIGH); \ - sub rHIGH, rHIGH, rLENGTH; \ - twlgt rBP, rHIGH - -# define CHECK_BOUNDS_BOTH_WIDE_LIT(rBP, rLOW, rHIGH, LENGTH) \ - CHECK_BOUNDS_LOW (rBP, rLOW, rHIGH); \ - subi rHIGH, rHIGH, LENGTH; \ - twlgt rBP, rHIGH - -/* Store a pointer value register into the return-value's pointer - value slot. */ - -# define STORE_RETURN_VALUE(rVALUE) \ - stw rVALUE, oVALUE(rRTN) - -/* Store a low and high bounds into the return-value's pointer bounds - slots. */ - -# define STORE_RETURN_BOUNDS(rLOW, rHIGH) \ - stw rLOW, oLOW(rRTN); \ - stw rHIGH, oHIGH(rRTN) - -/* Stuff zero value/low/high into the BP addressed by rRTN. */ - -# define RETURN_NULL_BOUNDED_POINTER \ - li r4, 0; \ - STORE_RETURN_VALUE (r4); \ - STORE_RETURN_BOUNDS (r4, r4) - -#else - -# define DISCARD_BOUNDS(rBP) -# define CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH) -# define CHECK_BOUNDS_HIGH(rVALUE, rHIGH, TWLcc) -# define CHECK_BOUNDS_HIGH_RTN(rVALUE, rHIGH, TWLcc) -# define CHECK_BOUNDS_BOTH(rBP, rLOW, rHIGH) -# define CHECK_BOUNDS_BOTH_WIDE(rBP, rLOW, rHIGH, rLENGTH) -# define CHECK_BOUNDS_BOTH_WIDE_LIT(rBP, rLOW, rHIGH, LENGTH) -# define STORE_RETURN_VALUE(rVALUE) -# define STORE_RETURN_BOUNDS(rLOW, rHIGH) - -# define RETURN_NULL_BOUNDED_POINTER li rRTN, 0 - -#endif diff --git a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S index 24b80d2..95e8a5a 100644 --- a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S +++ b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S @@ -18,14 +18,13 @@ #include <shlib-compat.h> #include <libc-symbols.h> #include <sysdep.h> -#include <bp-sym.h> #if defined NOT_IN_libc /* Build a non-versioned object for rtld-*. */ -ENTRY (BP_SYM (_setjmp)) +ENTRY (_setjmp) li r4,0 /* Set second argument to 0. */ - b BP_SYM (__sigsetjmp@local) -END (BP_SYM (_setjmp)) + b __sigsetjmp@local +END (_setjmp) libc_hidden_def (_setjmp) #else /* Build a versioned object for libc. */ @@ -33,10 +32,10 @@ libc_hidden_def (_setjmp) # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) symbol_version (__novmx_setjmp,_setjmp,GLIBC_2.0); -ENTRY (BP_SYM (__novmx_setjmp)) +ENTRY (__novmx_setjmp) li r4,0 /* Set second argument to 0. */ - b BP_SYM (__novmx__sigsetjmp@local) -END (BP_SYM (__novmx_setjmp)) + b __novmx__sigsetjmp@local +END (__novmx_setjmp) libc_hidden_def (__novmx_setjmp) # endif /* defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) */ @@ -44,14 +43,14 @@ default_symbol_version (__vmx_setjmp,_setjmp,GLIBC_2.3.4) /* __GI__setjmp prototype is needed for ntpl i.e. _setjmp is defined as a libc_hidden_proto & is used in sysdeps/generic/libc-start.c if HAVE_CLEANUP_JMP_BUF is defined */ -ENTRY (BP_SYM (__GI__setjmp)) +ENTRY (__GI__setjmp) li r4,0 /* Set second argument to 0. */ - b BP_SYM (__vmx__sigsetjmp@local) -END (BP_SYM (__GI__setjmp)) + b __vmx__sigsetjmp@local +END (__GI__setjmp) -ENTRY (BP_SYM (__vmx_setjmp)) +ENTRY (__vmx_setjmp) li r4,0 /* Set second argument to 0. */ - b BP_SYM (__vmx__sigsetjmp@local) -END (BP_SYM (__vmx_setjmp)) + b __vmx__sigsetjmp@local +END (__vmx_setjmp) libc_hidden_def (__vmx_setjmp) #endif /* !NOT_IN_libc */ diff --git a/sysdeps/powerpc/powerpc32/bsd-setjmp.S b/sysdeps/powerpc/powerpc32/bsd-setjmp.S index bf95f01..1113ea5 100644 --- a/sysdeps/powerpc/powerpc32/bsd-setjmp.S +++ b/sysdeps/powerpc/powerpc32/bsd-setjmp.S @@ -18,7 +18,6 @@ #include <shlib-compat.h> #include <libc-symbols.h> #include <sysdep.h> -#include <bp-sym.h> #if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) diff --git a/sysdeps/powerpc/powerpc32/bzero.S b/sysdeps/powerpc/powerpc32/bzero.S index 2cbcb69..b569924 100644 --- a/sysdeps/powerpc/powerpc32/bzero.S +++ b/sysdeps/powerpc/powerpc32/bzero.S @@ -17,20 +17,11 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -ENTRY (BP_SYM (__bzero)) +ENTRY (__bzero) -#if __BOUNDED_POINTERS__ - mr r6,r4 - li r5,0 - mr r4,r3 - /* Tell memset that we don't want a return value. */ - li r3,0 -#else mr r5,r4 li r4,0 -#endif - b BP_SYM (memset)@local -END (BP_SYM (__bzero)) -weak_alias (BP_SYM (__bzero), BP_SYM (bzero)) + b memset@local +END (__bzero) +weak_alias (__bzero, bzero) diff --git a/sysdeps/powerpc/powerpc32/cell/memcpy.S b/sysdeps/powerpc/powerpc32/cell/memcpy.S index 6d7d4ce..f3605d7 100644 --- a/sysdeps/powerpc/powerpc32/cell/memcpy.S +++ b/sysdeps/powerpc/powerpc32/cell/memcpy.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> #define PREFETCH_AHEAD 6 /* no cache lines SRC prefetching ahead */ #define ZERO_AHEAD 4 /* no cache lines DST zeroing ahead */ @@ -41,7 +39,7 @@ .align 7 -EALIGN (BP_SYM (memcpy), 5, 0) +EALIGN (memcpy, 5, 0) CALL_MCOUNT dcbt 0,r4 /* Prefetch ONE SRC cacheline */ @@ -240,5 +238,5 @@ EALIGN (BP_SYM (memcpy), 5, 0) stb r0,0(r6) 1: blr -END (BP_SYM (memcpy)) +END (memcpy) libc_hidden_builtin_def (memcpy) diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S index 50b84e8..9d34cd9 100644 --- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S @@ -23,12 +23,9 @@ #else # include <jmpbuf-offsets.h> #endif -#include <bp-sym.h> -#include <bp-asm.h> .machine "altivec" -ENTRY (BP_SYM (__longjmp)) - CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) +ENTRY (__longjmp) #ifndef __NO_VMX__ # ifdef PIC mflr r6 @@ -173,4 +170,4 @@ L(no_vmx): lfd fp31,((JB_FPRS+17*2)*4)(r3) mr r3,r4 blr -END (BP_SYM (__longjmp)) +END (__longjmp) diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S index 17edbf6..46ea2b0 100644 --- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S +++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S @@ -23,12 +23,9 @@ #else # include <jmpbuf-offsets.h> #endif -#include <bp-sym.h> -#include <bp-asm.h> .machine "altivec" -ENTRY (BP_SYM (__sigsetjmp)) - CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) +ENTRY (__sigsetjmp) #ifdef PTR_MANGLE mr r5,r1 @@ -179,5 +176,5 @@ L(aligned_save_vmx): stvx 31,0,r6 L(no_vmx): #endif - b BP_SYM (__sigjmp_save@local) -END (BP_SYM (__sigsetjmp)) + b __sigjmp_save@local +END (__sigsetjmp) diff --git a/sysdeps/powerpc/powerpc32/lshift.S b/sysdeps/powerpc/powerpc32/lshift.S index 8e75084..1d83910 100644 --- a/sysdeps/powerpc/powerpc32/lshift.S +++ b/sysdeps/powerpc/powerpc32/lshift.S @@ -17,19 +17,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* mp_limb_t mpn_lshift (mp_ptr wp, mp_srcptr up, mp_size_t usize, unsigned int cnt) */ -EALIGN (BP_SYM (__mpn_lshift), 3, 0) +EALIGN (__mpn_lshift, 3, 0) -#if __BOUNDED_POINTERS__ - slwi r10,r5,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) -#endif mtctr r5 # copy size into CTR cmplwi cr0,r5,16 # is size < 16 slwi r0,r5,2 @@ -129,4 +122,4 @@ L(n): lwzu r10,-4(r4); \ DO_LSHIFT(30) DO_LSHIFT(31) -END (BP_SYM (__mpn_lshift)) +END (__mpn_lshift) diff --git a/sysdeps/powerpc/powerpc32/memset.S b/sysdeps/powerpc/powerpc32/memset.S index 45c79d8..c49bd03 100644 --- a/sysdeps/powerpc/powerpc32/memset.S +++ b/sysdeps/powerpc/powerpc32/memset.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5])); Returns 's'. @@ -29,21 +27,14 @@ takes advantage of the dcbz instruction. */ .section ".text" -EALIGN (BP_SYM (memset), 5, 1) +EALIGN (memset, 5, 1) #define rTMP r0 #define rRTN r3 /* initial value of 1st argument */ -#if __BOUNDED_POINTERS__ -# define rMEMP0 r4 /* original value of 1st arg */ -# define rCHR r5 /* char to set in each byte */ -# define rLEN r6 /* length of region to set */ -# define rMEMP r10 /* address at which we are storing */ -#else -# define rMEMP0 r3 /* original value of 1st arg */ -# define rCHR r4 /* char to set in each byte */ -# define rLEN r5 /* length of region to set */ -# define rMEMP r6 /* address at which we are storing */ -#endif +#define rMEMP0 r3 /* original value of 1st arg */ +#define rCHR r4 /* char to set in each byte */ +#define rLEN r5 /* length of region to set */ +#define rMEMP r6 /* address at which we are storing */ #define rALIGN r7 /* number of bytes we are setting now (when aligning) */ #define rMEMP2 r8 @@ -55,15 +46,6 @@ EALIGN (BP_SYM (memset), 5, 1) #define rCLS r8 /* Cache line size obtained from static. */ #define rCLM r9 /* Cache line size mask to check for cache alignment. */ -#if __BOUNDED_POINTERS__ - cmplwi cr1, rRTN, 0 - CHECK_BOUNDS_BOTH_WIDE (rMEMP0, rTMP, rTMP2, rLEN) - beq cr1, L(b0) - STORE_RETURN_VALUE (rMEMP0) - STORE_RETURN_BOUNDS (rTMP, rTMP2) -L(b0): -#endif - /* take care of case for size <= 4 */ cmplwi cr1, rLEN, 4 andi. rALIGN, rMEMP0, 3 @@ -321,5 +303,5 @@ L(handletail32): clrrwi. rALIGN, rLEN, 5 b L(nondcbz) -END (BP_SYM (memset)) +END (memset) libc_hidden_builtin_def (memset) diff --git a/sysdeps/powerpc/powerpc32/mul_1.S b/sysdeps/powerpc/powerpc32/mul_1.S index fc78658..0b474d4 100644 --- a/sysdeps/powerpc/powerpc32/mul_1.S +++ b/sysdeps/powerpc/powerpc32/mul_1.S @@ -17,19 +17,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* mp_limb_t mpn_mul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_size_t s1_size, mp_limb_t s2_limb) Calculate s1*s2 and put result in res_ptr; return carry. */ -ENTRY (BP_SYM (__mpn_mul_1)) -#if __BOUNDED_POINTERS__ - slwi r10,r5,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) -#endif +ENTRY (__mpn_mul_1) mtctr r5 lwz r0,0(r4) @@ -49,4 +42,4 @@ L(0): lwzu r0,4(r4) L(1): stw r7,4(r3) addze r3,r10 blr -END (BP_SYM (__mpn_mul_1)) +END (__mpn_mul_1) diff --git a/sysdeps/powerpc/powerpc32/power4/memcmp.S b/sysdeps/powerpc/powerpc32/power4/memcmp.S index bbee6f4..edec7ab 100644 --- a/sysdeps/powerpc/powerpc32/power4/memcmp.S +++ b/sysdeps/powerpc/powerpc32/power4/memcmp.S @@ -17,13 +17,11 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] memcmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5]) */ .machine power4 -EALIGN (BP_SYM(memcmp), 4, 0) +EALIGN (memcmp, 4, 0) CALL_MCOUNT #define rTMP r0 @@ -979,7 +977,7 @@ L(dureturn25): lwz r24,20(r1) lwz 1,0(1) blr -END (BP_SYM (memcmp)) +END (memcmp) libc_hidden_builtin_def (memcmp) weak_alias (memcmp, bcmp) diff --git a/sysdeps/powerpc/powerpc32/power4/memcpy.S b/sysdeps/powerpc/powerpc32/power4/memcpy.S index aa2aab1..d914663 100644 --- a/sysdeps/powerpc/powerpc32/power4/memcpy.S +++ b/sysdeps/powerpc/powerpc32/power4/memcpy.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]); Returns 'dst'. @@ -34,7 +32,7 @@ Each case has an optimized unrolled loop. */ .machine power4 -EALIGN (BP_SYM (memcpy), 5, 0) +EALIGN (memcpy, 5, 0) CALL_MCOUNT stwu 1,-32(1) @@ -420,6 +418,6 @@ EALIGN (BP_SYM (memcpy), 5, 0) lwz 31,24(1) addi 1,1,32 blr -END (BP_SYM (memcpy)) +END (memcpy) libc_hidden_builtin_def (memcpy) diff --git a/sysdeps/powerpc/powerpc32/power4/memset.S b/sysdeps/powerpc/powerpc32/power4/memset.S index 58497f4..1e8785c 100644 --- a/sysdeps/powerpc/powerpc32/power4/memset.S +++ b/sysdeps/powerpc/powerpc32/power4/memset.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5])); Returns 's'. @@ -28,7 +26,7 @@ to 0, to take advantage of the dcbz instruction. */ .machine power4 -EALIGN (BP_SYM (memset), 5, 0) +EALIGN (memset, 5, 0) CALL_MCOUNT #define rTMP r0 @@ -224,5 +222,5 @@ L(medium_28t): stw rCHR, -4(rMEMP) stw rCHR, -8(rMEMP) blr -END (BP_SYM (memset)) +END (memset) libc_hidden_builtin_def (memset) diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S index 50d79dc..b3a6997 100644 --- a/sysdeps/powerpc/powerpc32/power4/strncmp.S +++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S @@ -17,14 +17,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how the end-of-string testing works. */ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5]) */ -EALIGN (BP_SYM(strncmp), 4, 0) +EALIGN (strncmp, 4, 0) #define rTMP r0 #define rRTN r3 @@ -171,5 +169,5 @@ L(u4): sub rRTN, rWORD1, rWORD2 L(ux): li rRTN, 0 blr -END (BP_SYM (strncmp)) +END (strncmp) libc_hidden_builtin_def (strncmp) diff --git a/sysdeps/powerpc/powerpc32/power6/memcpy.S b/sysdeps/powerpc/powerpc32/power6/memcpy.S index 203c979..d900028 100644 --- a/sysdeps/powerpc/powerpc32/power6/memcpy.S +++ b/sysdeps/powerpc/powerpc32/power6/memcpy.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]); Returns 'dst'. @@ -34,7 +32,7 @@ Each case has an optimized unrolled loop. */ .machine power6 -EALIGN (BP_SYM (memcpy), 5, 0) +EALIGN (memcpy, 5, 0) CALL_MCOUNT stwu 1,-32(1) @@ -837,6 +835,6 @@ L(wdus_0): lwz 31,24(1) addi 1,1,32 blr -END (BP_SYM (memcpy)) +END (memcpy) libc_hidden_builtin_def (memcpy) diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S index 3612e7c..ce06630 100644 --- a/sysdeps/powerpc/powerpc32/power6/memset.S +++ b/sysdeps/powerpc/powerpc32/power6/memset.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5])); Returns 's'. @@ -28,7 +26,7 @@ to 0, to take advantage of the dcbz instruction. */ .machine power6 -EALIGN (BP_SYM (memset), 7, 0) +EALIGN (memset, 7, 0) CALL_MCOUNT #define rTMP r0 @@ -537,5 +535,5 @@ L(medium_28t): stw rCHR, -4(rMEMP) stw rCHR, -8(rMEMP) blr -END (BP_SYM (memset)) +END (memset) libc_hidden_builtin_def (memset) diff --git a/sysdeps/powerpc/powerpc32/power7/memchr.S b/sysdeps/powerpc/powerpc32/power7/memchr.S index 3d8389e..369e5e0 100644 --- a/sysdeps/powerpc/powerpc32/power7/memchr.S +++ b/sysdeps/powerpc/powerpc32/power7/memchr.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] memchr (char *s [r3], int byte [r4], int size [r5]) */ .machine power7 -ENTRY (BP_SYM (__memchr)) +ENTRY (__memchr) CALL_MCOUNT dcbt 0,r3 clrrwi r8,r3,2 @@ -202,6 +200,6 @@ L(loop_small): /* loop_small has been unrolled. */ li r3,0 blr -END (BP_SYM (__memchr)) -weak_alias (BP_SYM (__memchr), BP_SYM(memchr)) +END (__memchr) +weak_alias (__memchr, memchr) libc_hidden_builtin_def (memchr) diff --git a/sysdeps/powerpc/powerpc32/power7/memcmp.S b/sysdeps/powerpc/powerpc32/power7/memcmp.S index 815e3c3..f764b7c 100644 --- a/sysdeps/powerpc/powerpc32/power7/memcmp.S +++ b/sysdeps/powerpc/powerpc32/power7/memcmp.S @@ -17,15 +17,13 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] memcmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5]) */ .machine power7 -EALIGN (BP_SYM(memcmp),4,0) +EALIGN (memcmp,4,0) CALL_MCOUNT #define rTMP r0 @@ -982,6 +980,6 @@ L(dureturn25): lwz r24,20(r1) lwz 1,0(1) blr -END (BP_SYM (memcmp)) +END (memcmp) libc_hidden_builtin_def (memcmp) weak_alias (memcmp,bcmp) diff --git a/sysdeps/powerpc/powerpc32/power7/memcpy.S b/sysdeps/powerpc/powerpc32/power7/memcpy.S index 4f228d3..7f00778 100644 --- a/sysdeps/powerpc/powerpc32/power7/memcpy.S +++ b/sysdeps/powerpc/powerpc32/power7/memcpy.S @@ -18,14 +18,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]); Returns 'dst'. */ .machine power7 -EALIGN (BP_SYM (memcpy), 5, 0) +EALIGN (memcpy, 5, 0) CALL_MCOUNT stwu 1,-32(1) @@ -522,5 +520,5 @@ L(end_unaligned_loop): addi 1,1,32 blr -END (BP_SYM (memcpy)) +END (memcpy) libc_hidden_builtin_def (memcpy) diff --git a/sysdeps/powerpc/powerpc32/power7/mempcpy.S b/sysdeps/powerpc/powerpc32/power7/mempcpy.S index 9a88a1b..5ad4edb 100644 --- a/sysdeps/powerpc/powerpc32/power7/mempcpy.S +++ b/sysdeps/powerpc/powerpc32/power7/mempcpy.S @@ -18,14 +18,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] __mempcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]); Returns 'dst' + 'len'. */ .machine power7 -EALIGN (BP_SYM (__mempcpy), 5, 0) +EALIGN (__mempcpy, 5, 0) CALL_MCOUNT stwu 1,-32(1) @@ -464,7 +462,7 @@ L(end_unaligned_loop): addi 1,1,32 blr -END (BP_SYM (__mempcpy)) -libc_hidden_def (BP_SYM (__mempcpy)) -weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy)) +END (__mempcpy) +libc_hidden_def (__mempcpy) +weak_alias (__mempcpy, mempcpy) libc_hidden_builtin_def (mempcpy) diff --git a/sysdeps/powerpc/powerpc32/power7/memrchr.S b/sysdeps/powerpc/powerpc32/power7/memrchr.S index 9ff8d66..d1e3fda 100644 --- a/sysdeps/powerpc/powerpc32/power7/memrchr.S +++ b/sysdeps/powerpc/powerpc32/power7/memrchr.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] memrchr (char *s [r3], int byte [r4], int size [r5]) */ .machine power7 -ENTRY (BP_SYM (__memrchr)) +ENTRY (__memrchr) CALL_MCOUNT dcbt 0,r3 mr r7,r3 @@ -172,6 +170,6 @@ L(loop_small): ble L(null) b L(loop_small) -END (BP_SYM (__memrchr)) -weak_alias (BP_SYM (__memrchr), BP_SYM(memrchr)) +END (__memrchr) +weak_alias (__memrchr, memrchr) libc_hidden_builtin_def (memrchr) diff --git a/sysdeps/powerpc/powerpc32/power7/memset.S b/sysdeps/powerpc/powerpc32/power7/memset.S index 00283ab..360ea71 100644 --- a/sysdeps/powerpc/powerpc32/power7/memset.S +++ b/sysdeps/powerpc/powerpc32/power7/memset.S @@ -18,14 +18,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5])); Returns 's'. */ .machine power7 -EALIGN (BP_SYM (memset), 5, 0) +EALIGN (memset, 5, 0) CALL_MCOUNT .align 4 @@ -429,5 +427,5 @@ L(small): stw 4,4(10) blr -END (BP_SYM (memset)) +END (memset) libc_hidden_builtin_def (memset) diff --git a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S index e37d132..a80c74a 100644 --- a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S +++ b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] rawmemchr (void *s [r3], int c [r4]) */ .machine power7 -ENTRY (BP_SYM(__rawmemchr)) +ENTRY (__rawmemchr) CALL_MCOUNT dcbt 0,r3 clrrwi r8,r3,2 /* Align the address to word boundary. */ @@ -96,6 +94,6 @@ L(done): srwi r0,r0,3 /* Convert leading zeroes to bytes. */ add r3,r8,r0 /* Return address of the matching char. */ blr -END (BP_SYM (__rawmemchr)) +END (__rawmemchr) weak_alias (__rawmemchr,rawmemchr) libc_hidden_builtin_def (__rawmemchr) diff --git a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S index 52d73d9..7f0046c 100644 --- a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S +++ b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> #include <locale-defines.h> /* int [r3] strcasecmp (const char *s1 [r3], const char *s2 [r4] ) @@ -33,7 +31,7 @@ # define STRCMP strcasecmp #endif -ENTRY (BP_SYM (__STRCMP)) +ENTRY (__STRCMP) #define rRTN r3 /* Return value */ #define rSTR1 r5 /* 1st string */ @@ -125,7 +123,7 @@ L(loop): bnelr bne cr7,L(loop) blr -END (BP_SYM (__STRCMP)) +END (__STRCMP) -weak_alias (BP_SYM (__STRCMP), BP_SYM (STRCMP)) +weak_alias (__STRCMP, STRCMP) libc_hidden_builtin_def (__STRCMP) diff --git a/sysdeps/powerpc/powerpc32/power7/strchr.S b/sysdeps/powerpc/powerpc32/power7/strchr.S index 1a37958..0ecadb2 100644 --- a/sysdeps/powerpc/powerpc32/power7/strchr.S +++ b/sysdeps/powerpc/powerpc32/power7/strchr.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] strchr (char *s [r3], int c [r4]) */ .machine power7 -ENTRY (BP_SYM(strchr)) +ENTRY (strchr) CALL_MCOUNT dcbt 0,r3 clrrwi r8,r3,2 /* Align the address to word boundary. */ @@ -197,6 +195,6 @@ L(done_null): srwi r0,r0,3 /* Convert leading zeros to bytes. */ add r3,r8,r0 /* Return address of the matching null byte. */ blr -END (BP_SYM (strchr)) -weak_alias (BP_SYM (strchr), BP_SYM (index)) +END (strchr) +weak_alias (strchr, index) libc_hidden_builtin_def (strchr) diff --git a/sysdeps/powerpc/powerpc32/power7/strchrnul.S b/sysdeps/powerpc/powerpc32/power7/strchrnul.S index ae304ae..d4cacab 100644 --- a/sysdeps/powerpc/powerpc32/power7/strchrnul.S +++ b/sysdeps/powerpc/powerpc32/power7/strchrnul.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] strchrnul (char *s [r3], int c [r4]) */ .machine power7 -ENTRY (BP_SYM(__strchrnul)) +ENTRY (__strchrnul) CALL_MCOUNT dcbt 0,r3 clrrwi r8,r3,2 /* Align the address to word boundary. */ @@ -111,6 +109,6 @@ L(done): srwi r0,r0,3 /* Convert leading zeros to bytes. */ add r3,r8,r0 /* Return address of matching c/null byte. */ blr -END (BP_SYM (__strchrnul)) +END (__strchrnul) weak_alias (__strchrnul,strchrnul) libc_hidden_builtin_def (__strchrnul) diff --git a/sysdeps/powerpc/powerpc32/power7/strlen.S b/sysdeps/powerpc/powerpc32/power7/strlen.S index 7694f8a..b71a10f 100644 --- a/sysdeps/powerpc/powerpc32/power7/strlen.S +++ b/sysdeps/powerpc/powerpc32/power7/strlen.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] strlen (char *s [r3]) */ .machine power7 -ENTRY (BP_SYM (strlen)) +ENTRY (strlen) CALL_MCOUNT dcbt 0,r3 clrrwi r4,r3,2 /* Align the address to word boundary. */ @@ -93,5 +91,5 @@ L(done): srwi r0,r0,3 /* Convert leading zeroes to bytes. */ add r3,r5,r0 /* Compute final length. */ blr -END (BP_SYM (strlen)) +END (strlen) libc_hidden_builtin_def (strlen) diff --git a/sysdeps/powerpc/powerpc32/power7/strncmp.S b/sysdeps/powerpc/powerpc32/power7/strncmp.S index 3629783..b58630e 100644 --- a/sysdeps/powerpc/powerpc32/power7/strncmp.S +++ b/sysdeps/powerpc/powerpc32/power7/strncmp.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how the end-of-string testing works. */ @@ -26,7 +24,7 @@ const char *s2 [r4], size_t size [r5]) */ -EALIGN (BP_SYM(strncmp),5,0) +EALIGN (strncmp,5,0) #define rTMP r0 #define rRTN r3 @@ -175,5 +173,5 @@ L(u4): sub rRTN,rWORD1,rWORD2 L(ux): li rRTN,0 blr -END (BP_SYM (strncmp)) +END (strncmp) libc_hidden_builtin_def (strncmp) diff --git a/sysdeps/powerpc/powerpc32/power7/strnlen.S b/sysdeps/powerpc/powerpc32/power7/strnlen.S index ec716e7..ed08836 100644 --- a/sysdeps/powerpc/powerpc32/power7/strnlen.S +++ b/sysdeps/powerpc/powerpc32/power7/strnlen.S @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* int [r3] strnlen (char *s [r3], int size [r4]) */ .machine power7 -ENTRY (BP_SYM (__strnlen)) +ENTRY (__strnlen) CALL_MCOUNT dcbt 0,r3 clrrwi r8,r3,2 /* Align the address to word boundary. */ @@ -166,6 +164,6 @@ L(loop_small): cmplw r9,r7 bge L(end_max) b L(loop_small) -END (BP_SYM (__strnlen)) -weak_alias (BP_SYM (__strnlen), BP_SYM(strnlen)) +END (__strnlen) +weak_alias (__strnlen, strnlen) libc_hidden_builtin_def (strnlen) diff --git a/sysdeps/powerpc/powerpc32/rshift.S b/sysdeps/powerpc/powerpc32/rshift.S index 4fd9cb7..9cc63aa 100644 --- a/sysdeps/powerpc/powerpc32/rshift.S +++ b/sysdeps/powerpc/powerpc32/rshift.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* INPUT PARAMETERS res_ptr r3 @@ -26,12 +24,7 @@ size r5 cnt r6 */ -ENTRY (BP_SYM (__mpn_rshift)) -#if __BOUNDED_POINTERS__ - slwi r10,r5,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) -#endif +ENTRY (__mpn_rshift) mtctr r5 # copy size into CTR addi r7,r3,-4 # move adjusted res_ptr to free return reg subfic r8,r6,32 @@ -59,4 +52,4 @@ L(1): srw r0,r11,r6 L(2): srw r0,r10,r6 stw r0,4(r7) blr -END (BP_SYM (__mpn_rshift)) +END (__mpn_rshift) diff --git a/sysdeps/powerpc/powerpc32/setjmp-common.S b/sysdeps/powerpc/powerpc32/setjmp-common.S index a35507f..60b0026 100644 --- a/sysdeps/powerpc/powerpc32/setjmp-common.S +++ b/sysdeps/powerpc/powerpc32/setjmp-common.S @@ -23,12 +23,9 @@ #else # include <jmpbuf-offsets.h> #endif -#include <bp-sym.h> -#include <bp-asm.h> -ENTRY (BP_SYM (__sigsetjmp)) - CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) +ENTRY (__sigsetjmp) #ifdef PTR_MANGLE mr r5,r1 @@ -67,6 +64,6 @@ ENTRY (BP_SYM (__sigsetjmp)) li r3,0 blr #else - b BP_SYM (__sigjmp_save@local) + b __sigjmp_save@local #endif -END (BP_SYM (__sigsetjmp)) +END (__sigsetjmp) diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S index 6c69705..9d5f8d3 100644 --- a/sysdeps/powerpc/powerpc32/start.S +++ b/sysdeps/powerpc/powerpc32/start.S @@ -34,7 +34,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include "bp-sym.h" /* These are the various addresses we require. */ #ifdef PIC @@ -45,7 +44,7 @@ .align 2 L(start_addresses): .long _SDA_BASE_ - .long BP_SYM (main) + .long main .long __libc_csu_init .long __libc_csu_fini ASM_SIZE_DIRECTIVE(L(start_addresses)) @@ -78,7 +77,7 @@ ENTRY(_start) lwzu r13,L(start_addresses)@l(r8) #endif /* and continue in libc-start, in glibc. */ - b JUMPTARGET(BP_SYM (__libc_start_main)) + b JUMPTARGET(__libc_start_main) END(_start) /* Define a symbol for the first piece of initialized data. */ diff --git a/sysdeps/powerpc/powerpc32/stpcpy.S b/sysdeps/powerpc/powerpc32/stpcpy.S index 49f993d..03c6ddd 100644 --- a/sysdeps/powerpc/powerpc32/stpcpy.S +++ b/sysdeps/powerpc/powerpc32/stpcpy.S @@ -17,35 +17,23 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how the end-of-string testing works. */ /* char * [r3] stpcpy (char *dest [r3], const char *src [r4]) */ -EALIGN (BP_SYM (__stpcpy), 4, 0) +EALIGN (__stpcpy, 4, 0) #define rTMP r0 #define rRTN r3 -#if __BOUNDED_POINTERS__ -# define rDEST r4 /* pointer to previous word in dest */ -# define rSRC r5 /* pointer to previous word in src */ -# define rLOW r11 -# define rHIGH r12 -#else -# define rDEST r3 /* pointer to previous word in dest */ -# define rSRC r4 /* pointer to previous word in src */ -#endif +#define rDEST r3 /* pointer to previous word in dest */ +#define rSRC r4 /* pointer to previous word in src */ #define rWORD r6 /* current word from src */ #define rFEFE r7 /* 0xfefefeff */ #define r7F7F r8 /* 0x7f7f7f7f */ #define rNEG r9 /* ~(word in src | 0x7f7f7f7f) */ #define rALT r10 /* alternate word from src */ - CHECK_BOUNDS_LOW (rSRC, rLOW, rHIGH) - CHECK_BOUNDS_LOW (rDEST, rLOW, rHIGH) - STORE_RETURN_BOUNDS (rLOW, rHIGH) or rTMP, rSRC, rDEST clrlwi. rTMP, rTMP, 30 @@ -84,8 +72,6 @@ L(g1): rlwinm. rTMP, rALT, 8, 24, 31 stbu rTMP, 1(rDEST) beqlr- stbu rALT, 1(rDEST) - CHECK_BOUNDS_HIGH (rDEST, rHIGH, twlgt) - STORE_RETURN_VALUE (rDEST) blr /* Oh well. In this case, we just do a byte-by-byte copy. */ @@ -107,15 +93,11 @@ L(u0): lbzu rALT, 1(rSRC) cmpwi rWORD, 0 bne+ L(u0) L(u2): stbu rWORD, 1(rDEST) - CHECK_BOUNDS_HIGH (rDEST, rHIGH, twlgt) - STORE_RETURN_VALUE (rDEST) blr L(u1): stbu rALT, 1(rDEST) - CHECK_BOUNDS_HIGH (rDEST, rHIGH, twlgt) - STORE_RETURN_VALUE (rDEST) blr -END (BP_SYM (__stpcpy)) +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/powerpc/powerpc32/strchr.S b/sysdeps/powerpc/powerpc32/strchr.S index f2e0d26..c9952ee 100644 --- a/sysdeps/powerpc/powerpc32/strchr.S +++ b/sysdeps/powerpc/powerpc32/strchr.S @@ -17,26 +17,18 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how this works. */ /* char * [r3] strchr (const char *s [r3] , int c [r4] ) */ -ENTRY (BP_SYM (strchr)) +ENTRY (strchr) #define rTMP1 r0 #define rRTN r3 /* outgoing result */ -#if __BOUNDED_POINTERS__ -# define rSTR r4 -# define rCHR r5 /* byte we're looking for, spread over the whole word */ -# define rWORD r8 /* the current word */ -#else -# define rSTR r8 /* current word pointer */ -# define rCHR r4 /* byte we're looking for, spread over the whole word */ -# define rWORD r5 /* the current word */ -#endif +#define rSTR r8 /* current word pointer */ +#define rCHR r4 /* byte we're looking for, spread over the whole word */ +#define rWORD r5 /* the current word */ #define rCLZB rCHR /* leading zero byte count */ #define rFEFE r6 /* constant 0xfefefeff (-0x01010101) */ #define r7F7F r7 /* constant 0x7f7f7f7f */ @@ -45,8 +37,6 @@ ENTRY (BP_SYM (strchr)) #define rMASK r11 /* mask with the bits to ignore set to 0 */ #define rTMP3 r12 - CHECK_BOUNDS_LOW (rSTR, rTMP1, rTMP2) - STORE_RETURN_BOUNDS (rTMP1, rTMP2) rlwimi rCHR, rCHR, 8, 16, 23 li rMASK, -1 @@ -90,7 +80,6 @@ L(loopentry): L(missed): and. rTMP1, rTMP1, rTMP2 li rRTN, 0 - STORE_RETURN_VALUE (rSTR) beqlr /* It did happen. Decide which one was first... I'm not sure if this is actually faster than a sequence of @@ -108,8 +97,6 @@ L(missed): cntlzw rCLZB, rTMP2 srwi rCLZB, rCLZB, 3 add rRTN, rSTR, rCLZB - CHECK_BOUNDS_HIGH_RTN (rSTR, rTMP2, twlge) - STORE_RETURN_VALUE (rSTR) blr L(foundit): @@ -121,10 +108,8 @@ L(foundit): subi rSTR, rSTR, 4 srwi rCLZB, rCLZB, 3 add rRTN, rSTR, rCLZB - CHECK_BOUNDS_HIGH_RTN (rSTR, rTMP2, twlge) - STORE_RETURN_VALUE (rSTR) blr -END (BP_SYM (strchr)) +END (strchr) -weak_alias (BP_SYM (strchr), BP_SYM (index)) +weak_alias (strchr, index) libc_hidden_builtin_def (strchr) diff --git a/sysdeps/powerpc/powerpc32/strcmp.S b/sysdeps/powerpc/powerpc32/strcmp.S index d11e556..297ca3c 100644 --- a/sysdeps/powerpc/powerpc32/strcmp.S +++ b/sysdeps/powerpc/powerpc32/strcmp.S @@ -17,23 +17,17 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how the end-of-string testing works. */ /* int [r3] strcmp (const char *s1 [r3], const char *s2 [r4]) */ -EALIGN (BP_SYM (strcmp), 4, 0) +EALIGN (strcmp, 4, 0) #define rTMP r0 #define rRTN r3 #define rSTR1 r3 /* first string arg */ #define rSTR2 r4 /* second string arg */ -#if __BOUNDED_POINTERS__ -# define rHIGH1 r11 -# define rHIGH2 r12 -#endif #define rWORD1 r5 /* current word in s1 */ #define rWORD2 r6 /* current word in s2 */ #define rFEFE r7 /* constant 0xfefefeff (-0x01010101) */ @@ -41,8 +35,6 @@ EALIGN (BP_SYM (strcmp), 4, 0) #define rNEG r9 /* ~(word in s1 | 0x7f7f7f7f) */ #define rBITDIF r10 /* bits that differ in s1 & s2 words */ - CHECK_BOUNDS_LOW (rSTR1, rTMP, rHIGH1) - CHECK_BOUNDS_LOW (rSTR2, rTMP, rHIGH2) or rTMP, rSTR2, rSTR1 clrlwi. rTMP, rTMP, 30 @@ -82,7 +74,6 @@ L(endstring): bgelr+ cr1 L(equal): li rRTN, 0 - /* GKM FIXME: check high bounds. */ blr L(different): @@ -92,7 +83,6 @@ L(different): bgelr+ L(highbit): ori rRTN, rWORD2, 1 - /* GKM FIXME: check high bounds. */ blr @@ -116,11 +106,9 @@ L(u1): cmpwi cr1, rWORD1, 0 cmpw rWORD1, rWORD2 bne+ cr1, L(u0) L(u3): sub rRTN, rWORD1, rWORD2 - /* GKM FIXME: check high bounds. */ blr L(u4): lbz rWORD1, -1(rSTR1) sub rRTN, rWORD1, rWORD2 - /* GKM FIXME: check high bounds. */ blr -END (BP_SYM (strcmp)) +END (strcmp) libc_hidden_builtin_def (strcmp) diff --git a/sysdeps/powerpc/powerpc32/strcpy.S b/sysdeps/powerpc/powerpc32/strcpy.S index c240592..4ae577d 100644 --- a/sysdeps/powerpc/powerpc32/strcpy.S +++ b/sysdeps/powerpc/powerpc32/strcpy.S @@ -17,43 +17,27 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how the end-of-string testing works. */ /* char * [r3] strcpy (char *dest [r3], const char *src [r4]) */ -EALIGN (BP_SYM (strcpy), 4, 0) +EALIGN (strcpy, 4, 0) #define rTMP r0 #define rRTN r3 /* incoming DEST arg preserved as result */ -#if __BOUNDED_POINTERS__ -# define rDEST r4 /* pointer to previous word in dest */ -# define rSRC r5 /* pointer to previous word in src */ -# define rLOW r11 -# define rHIGH r12 -#else -# define rSRC r4 /* pointer to previous word in src */ -# define rDEST r5 /* pointer to previous word in dest */ -#endif +#define rSRC r4 /* pointer to previous word in src */ +#define rDEST r5 /* pointer to previous word in dest */ #define rWORD r6 /* current word from src */ #define rFEFE r7 /* constant 0xfefefeff (-0x01010101) */ #define r7F7F r8 /* constant 0x7f7f7f7f */ #define rNEG r9 /* ~(word in s1 | 0x7f7f7f7f) */ #define rALT r10 /* alternate word from src */ - CHECK_BOUNDS_LOW (rSRC, rLOW, rHIGH) - CHECK_BOUNDS_LOW (rDEST, rLOW, rHIGH) - STORE_RETURN_BOUNDS (rLOW, rHIGH) or rTMP, rSRC, rRTN clrlwi. rTMP, rTMP, 30 -#if __BOUNDED_POINTERS__ - addi rDEST, rDEST, -4 -#else addi rDEST, rRTN, -4 -#endif bne L(unaligned) lis rFEFE, -0x101 @@ -88,7 +72,6 @@ L(g1): rlwinm. rTMP, rALT, 8, 24, 31 stb rTMP, 6(rDEST) beqlr- stb rALT, 7(rDEST) - /* GKM FIXME: check high bound. */ blr /* Oh well. In this case, we just do a byte-by-byte copy. */ @@ -110,11 +93,9 @@ L(u0): lbzu rALT, 1(rSRC) cmpwi rWORD, 0 bne+ L(u0) L(u2): stb rWORD, 1(rDEST) - /* GKM FIXME: check high bound. */ blr L(u1): stb rALT, 1(rDEST) - /* GKM FIXME: check high bound. */ blr -END (BP_SYM (strcpy)) +END (strcpy) libc_hidden_builtin_def (strcpy) diff --git a/sysdeps/powerpc/powerpc32/strlen.S b/sysdeps/powerpc/powerpc32/strlen.S index b8193a6..9a6eafc 100644 --- a/sysdeps/powerpc/powerpc32/strlen.S +++ b/sysdeps/powerpc/powerpc32/strlen.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* The algorithm here uses the following techniques: @@ -72,7 +70,7 @@ /* int [r3] strlen (char *s [r3]) */ -ENTRY (BP_SYM (strlen)) +ENTRY (strlen) #define rTMP1 r0 #define rRTN r3 /* incoming STR arg, outgoing result */ @@ -88,7 +86,6 @@ ENTRY (BP_SYM (strlen)) #define rTMP3 r11 #define rTMP4 r12 - CHECK_BOUNDS_LOW (rRTN, rTMP1, rTMP2) clrrwi rSTR, rRTN, 2 lis r7F7F, 0x7f7f @@ -153,7 +150,6 @@ L(done0): subf rTMP1, rRTN, rSTR srwi rTMP3, rTMP3, 3 add rRTN, rTMP1, rTMP3 - /* GKM FIXME: check high bound. */ blr -END (BP_SYM (strlen)) +END (strlen) libc_hidden_builtin_def (strlen) diff --git a/sysdeps/powerpc/powerpc32/strncmp.S b/sysdeps/powerpc/powerpc32/strncmp.S index d9e274b..3cb6509 100644 --- a/sysdeps/powerpc/powerpc32/strncmp.S +++ b/sysdeps/powerpc/powerpc32/strncmp.S @@ -17,14 +17,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* See strlen.s for comments on how the end-of-string testing works. */ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5]) */ -EALIGN (BP_SYM(strncmp), 4, 0) +EALIGN (strncmp, 4, 0) #define rTMP r0 #define rRTN r3 @@ -156,5 +154,5 @@ L(u1): L(u2): lbzu rWORD1, -1(rSTR1) L(u3): sub rRTN, rWORD1, rWORD2 blr -END (BP_SYM (strncmp)) +END (strncmp) libc_hidden_builtin_def (strncmp) diff --git a/sysdeps/powerpc/powerpc32/sub_n.S b/sysdeps/powerpc/powerpc32/sub_n.S index 617680d..94d3d3e 100644 --- a/sysdeps/powerpc/powerpc32/sub_n.S +++ b/sysdeps/powerpc/powerpc32/sub_n.S @@ -17,8 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* mp_limb_t mpn_sub_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size) @@ -28,14 +26,7 @@ possible 2-unrolled inner loop will not be. Also, watch out for the alignment... */ -EALIGN (BP_SYM (__mpn_sub_n), 3, 1) - -#if __BOUNDED_POINTERS__ - slwi r10,r6,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r5, r8, r9, r10) -#endif +EALIGN (__mpn_sub_n, 3, 1) /* Set up for loop below. */ mtcrf 0x01,r6 @@ -74,4 +65,4 @@ L(0): L(1): subfe r3,r3,r3 neg r3,r3 blr -END (BP_SYM (__mpn_sub_n)) +END (__mpn_sub_n) diff --git a/sysdeps/powerpc/powerpc32/submul_1.S b/sysdeps/powerpc/powerpc32/submul_1.S index d32f833..d820318 100644 --- a/sysdeps/powerpc/powerpc32/submul_1.S +++ b/sysdeps/powerpc/powerpc32/submul_1.S @@ -17,19 +17,12 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> -#include <bp-sym.h> -#include <bp-asm.h> /* mp_limb_t mpn_submul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_size_t s1_size, mp_limb_t s2_limb) Calculate res-s1*s2 and put result back in res; return carry. */ -ENTRY (BP_SYM (__mpn_submul_1)) -#if __BOUNDED_POINTERS__ - slwi r10,r5,2 /* convert limbs to bytes */ - CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10) - CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10) -#endif +ENTRY (__mpn_submul_1) mtctr r5 lwz r0,0(r4) @@ -55,4 +48,4 @@ L(0): lwzu r0,4(r4) L(1): stw r8,4(r3) addze r3,r10 blr -END (BP_SYM (__mpn_submul_1)) +END (__mpn_submul_1) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S index 2fc9fa2..eb27f42 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S @@ -19,13 +19,10 @@ #include <sysdep.h> #define _ERRNO_H 1 #include <bits/errno.h> -#include <bp-sym.h> -#include <bp-asm.h> .comm __curbrk,4,4 .section ".text" -ENTRY (BP_SYM (__brk)) - DISCARD_BOUNDS (r3) /* the bounds are meaningless, so toss 'em */ +ENTRY (__brk) mflr r0 stwu r1,-16(r1) cfi_adjust_cfa_offset (16) @@ -50,6 +47,6 @@ ENTRY (BP_SYM (__brk)) blelr+ li r3,ENOMEM b __syscall_error@local -END (BP_SYM (__brk)) +END (__brk) -weak_alias (BP_SYM (__brk), BP_SYM (brk)) +weak_alias (__brk, brk) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S index 197b852..5790eff 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S @@ -20,8 +20,6 @@ #define _ERRNO_H 1 #include <bits/errno.h> #include <kernel-features.h> -#include <bp-sym.h> -#include <bp-asm.h> #define CLONE_VM 0x00000100 #define CLONE_THREAD 0x00010000 @@ -35,10 +33,7 @@ int flags [r5], void *arg [r6], void *parent_tid [r7], void *tls [r8], void *child_tid [r9]); */ -ENTRY (BP_SYM (__clone)) - /* GKM FIXME: add bounds checks, where sensible. */ - DISCARD_BOUNDS (r4) - DISCARD_BOUNDS (r6) +ENTRY (__clone) /* Check for child_stack == NULL || fn == NULL. */ cmpwi cr0,r4,0 @@ -124,6 +119,6 @@ L(badargs): b __syscall_error@local cfi_startproc -END (BP_SYM (__clone)) +END (__clone) -weak_alias (BP_SYM (__clone), BP_SYM (clone)) +weak_alias (__clone, clone) |