aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64/strcmp.S
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-03-06 00:10:21 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-03-06 00:10:21 +0000
commit2d67d91ac08aa2f793d220ad8712541fefa0ba79 (patch)
tree26aa1d67b2b91074c8d2ca4206a938661ccf739d /sysdeps/powerpc/powerpc64/strcmp.S
parentcdcf361fda31ec8b3e93e89d5aa26ee5b68f8867 (diff)
downloadglibc-2d67d91ac08aa2f793d220ad8712541fefa0ba79.zip
glibc-2d67d91ac08aa2f793d220ad8712541fefa0ba79.tar.gz
glibc-2d67d91ac08aa2f793d220ad8712541fefa0ba79.tar.bz2
Remove powerpc64 bounded-pointers code.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/strcmp.S')
-rw-r--r--sysdeps/powerpc/powerpc64/strcmp.S22
1 files changed, 2 insertions, 20 deletions
diff --git a/sysdeps/powerpc/powerpc64/strcmp.S b/sysdeps/powerpc/powerpc64/strcmp.S
index 46600d5..c9d6dac 100644
--- a/sysdeps/powerpc/powerpc64/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/strcmp.S
@@ -17,29 +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 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)
CALL_MCOUNT 2
#define rTMP r0
#define rRTN r3
#define rSTR1 r3 /* first string arg */
#define rSTR2 r4 /* second string arg */
-/* Note: The Bounded pointer support in this code is broken. This code
- was inherited from PPC32 and that support was never completed.
- Current PPC gcc does not support -fbounds-check or -fbounded-pointers.
- These artifacts are left in the code as a reminder in case we need
- bounded pointer support in the future. */
-#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 0xfefefefefefefeff (-0x0101010101010101) */
@@ -47,9 +36,6 @@ EALIGN (BP_SYM(strcmp), 4, 0)
#define rNEG r9 /* ~(word in s1 | 0x7f7f7f7f7f7f7f7f) */
#define rBITDIF r10 /* bits that differ in s1 & s2 words */
- CHECK_BOUNDS_LOW (rSTR1, rTMP, rHIGH1)
- CHECK_BOUNDS_LOW (rSTR2, rTMP, rHIGH2)
-
dcbt 0,rSTR1
or rTMP, rSTR2, rSTR1
dcbt 0,rSTR2
@@ -98,7 +84,6 @@ L(endstring):
blr
L(equal):
li rRTN, 0
- /* GKM FIXME: check high bounds. */
blr
L(different):
@@ -113,7 +98,6 @@ L(highbit):
srdi rWORD2, rWORD2, 56
srdi rWORD1, rWORD1, 56
sub rRTN, rWORD1, rWORD2
- /* GKM FIXME: check high bounds. */
blr
@@ -137,11 +121,9 @@ L(u1): cmpwi cr1, rWORD1, 0
cmpd 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)