powerpc: Remove assembly versions of strcpy, strcat, strlen and strcmp
authorAnton Blanchard <anton@samba.org>
Wed, 25 May 2016 22:38:13 +0000 (08:38 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 14 Jun 2016 03:58:25 +0000 (13:58 +1000)
A number of our assembly implementations of string functions do not
align their hot loops. I was going to align them manually, but I
realised that they are are almost instruction for instruction
identical to what gcc produces, with the advantage that gcc does
align them.

In light of that, let's just remove the assembly versions.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/string.h
arch/powerpc/lib/ppc_ksyms.c
arch/powerpc/lib/string.S

index e40010abcaf134f53bbcf639bf6999b856a42a2a..da3cdffca440931051add9bd312b2c6b06bd3814 100644 (file)
@@ -3,12 +3,8 @@
 
 #ifdef __KERNEL__
 
-#define __HAVE_ARCH_STRCPY
 #define __HAVE_ARCH_STRNCPY
-#define __HAVE_ARCH_STRLEN
-#define __HAVE_ARCH_STRCMP
 #define __HAVE_ARCH_STRNCMP
-#define __HAVE_ARCH_STRCAT
 #define __HAVE_ARCH_MEMSET
 #define __HAVE_ARCH_MEMCPY
 #define __HAVE_ARCH_MEMMOVE
index c422812f74054e7e20442160eb65f77bf29bffa6..ae69d846a84162dd37c0c5819cbdf994b6b6c627 100644 (file)
@@ -9,11 +9,7 @@ EXPORT_SYMBOL(memmove);
 EXPORT_SYMBOL(memcmp);
 EXPORT_SYMBOL(memchr);
 
-EXPORT_SYMBOL(strcpy);
 EXPORT_SYMBOL(strncpy);
-EXPORT_SYMBOL(strcat);
-EXPORT_SYMBOL(strlen);
-EXPORT_SYMBOL(strcmp);
 EXPORT_SYMBOL(strncmp);
 
 #ifndef CONFIG_GENERIC_CSUM
index c80fb49ce607f6da3f195fa4263eabec35c03e66..a9470567df474a76af53b20c9fc155032805ae7c 100644 (file)
        PPC_LONG_ALIGN
        .text
        
-_GLOBAL(strcpy)
-       addi    r5,r3,-1
-       addi    r4,r4,-1
-1:     lbzu    r0,1(r4)
-       cmpwi   0,r0,0
-       stbu    r0,1(r5)
-       bne     1b
-       blr
-
 /* This clears out any unused part of the destination buffer,
    just as the libc version does.  -- paulus */
 _GLOBAL(strncpy)
@@ -45,30 +36,6 @@ _GLOBAL(strncpy)
        bdnz    2b
        blr
 
-_GLOBAL(strcat)
-       addi    r5,r3,-1
-       addi    r4,r4,-1
-1:     lbzu    r0,1(r5)
-       cmpwi   0,r0,0
-       bne     1b
-       addi    r5,r5,-1
-1:     lbzu    r0,1(r4)
-       cmpwi   0,r0,0
-       stbu    r0,1(r5)
-       bne     1b
-       blr
-
-_GLOBAL(strcmp)
-       addi    r5,r3,-1
-       addi    r4,r4,-1
-1:     lbzu    r3,1(r5)
-       cmpwi   1,r3,0
-       lbzu    r0,1(r4)
-       subf.   r3,r0,r3
-       beqlr   1
-       beq     1b
-       blr
-
 _GLOBAL(strncmp)
        PPC_LCMPI 0,r5,0
        beq-    2f
@@ -85,14 +52,6 @@ _GLOBAL(strncmp)
 2:     li      r3,0
        blr
 
-_GLOBAL(strlen)
-       addi    r4,r3,-1
-1:     lbzu    r0,1(r4)
-       cmpwi   0,r0,0
-       bne     1b
-       subf    r3,r3,r4
-       blr
-
 #ifdef CONFIG_PPC32
 _GLOBAL(memcmp)
        PPC_LCMPI 0,r5,0