powerpc/string: Implement optimized memset variants
Based on Matthew Wilcox's patches for other architectures. Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
00e7c259e9
commit
694fc88ce2
@@ -13,6 +13,23 @@
|
||||
#include <asm/ppc_asm.h>
|
||||
#include <asm/export.h>
|
||||
|
||||
_GLOBAL(__memset16)
|
||||
rlwimi r4,r4,16,0,15
|
||||
/* fall through */
|
||||
|
||||
_GLOBAL(__memset32)
|
||||
rldimi r4,r4,32,0
|
||||
/* fall through */
|
||||
|
||||
_GLOBAL(__memset64)
|
||||
neg r0,r3
|
||||
andi. r0,r0,7
|
||||
cmplw cr1,r5,r0
|
||||
b .Lms
|
||||
EXPORT_SYMBOL(__memset16)
|
||||
EXPORT_SYMBOL(__memset32)
|
||||
EXPORT_SYMBOL(__memset64)
|
||||
|
||||
_GLOBAL(memset)
|
||||
neg r0,r3
|
||||
rlwimi r4,r4,8,16,23
|
||||
@@ -20,7 +37,7 @@ _GLOBAL(memset)
|
||||
rlwimi r4,r4,16,0,15
|
||||
cmplw cr1,r5,r0 /* do we get that far? */
|
||||
rldimi r4,r4,32,0
|
||||
PPC_MTOCRF(1,r0)
|
||||
.Lms: PPC_MTOCRF(1,r0)
|
||||
mr r6,r3
|
||||
blt cr1,8f
|
||||
beq+ 3f /* if already 8-byte aligned */
|
||||
|
Reference in New Issue
Block a user