diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc32/power4/strncmp.S')
-rw-r--r-- | sysdeps/powerpc/powerpc32/power4/strncmp.S | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S index 70541430d5..12d829344c 100644 --- a/sysdeps/powerpc/powerpc32/power4/strncmp.S +++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S @@ -33,7 +33,7 @@ EALIGN (BP_SYM(strncmp), 4, 0) #define rSTR2 r4 /* second string arg */ #define rN r5 /* max string length */ /* Note: The Bounded pointer support in this code is broken. This code - was inherited from PPC32 and that support was never completed. + was inherited from PPC32 and that support was never completed. Current PPC gcc does not support -fbounds-check or -fbounded-pointers. */ #define rWORD1 r6 /* current word in s1 */ #define rWORD2 r7 /* current word in s2 */ @@ -58,7 +58,7 @@ EALIGN (BP_SYM(strncmp), 4, 0) clrlwi rN, rN, 30 addi rFEFE, rFEFE, -0x101 addi r7F7F, r7F7F, 0x7f7f - cmplwi cr1, rN, 0 + cmplwi cr1, rN, 0 beq L(unaligned) mtctr rTMP /* Power4 wants mtctr 1st in dispatch group. */ @@ -66,7 +66,7 @@ EALIGN (BP_SYM(strncmp), 4, 0) lwz rWORD2, 0(rSTR2) b L(g1) -L(g0): +L(g0): lwzu rWORD1, 4(rSTR1) bne- cr1, L(different) lwzu rWORD2, 4(rSTR2) @@ -76,11 +76,11 @@ L(g1): add rTMP, rFEFE, rWORD1 and. rTMP, rTMP, rNEG cmpw cr1, rWORD1, rWORD2 beq+ L(g0) - + /* OK. We've hit the end of the string. We need to be careful that we don't compare two strings as different because of gunk beyond the end of the strings... */ - + L(endstring): and rTMP, r7F7F, rWORD1 beq cr1, L(equal) @@ -166,7 +166,7 @@ L(u1): b L(u1) L(u3): sub rRTN, rWORD3, rWORD4 - blr + blr L(u4): sub rRTN, rWORD1, rWORD2 blr L(ux): @@ -174,4 +174,3 @@ L(ux): blr END (BP_SYM (strncmp)) libc_hidden_builtin_def (strncmp) - |