Skip to content

Commit

Permalink
sparc: Commonize memcmp assembler.
Browse files Browse the repository at this point in the history
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Dec 9, 2008
1 parent ae984d7 commit 18cdae6
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 63 deletions.
2 changes: 0 additions & 2 deletions arch/sparc/kernel/sparc_ksyms_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ extern void (*bzero_1page)(void *);
extern void *__bzero(void *, size_t);
extern void *__memscan_zero(void *, size_t);
extern void *__memscan_generic(void *, int, size_t);
extern int __memcmp(const void *, const void *, __kernel_size_t);
extern int __strncmp(const char *, const char *, __kernel_size_t);

extern int __ashrdi3(int, int);
Expand Down Expand Up @@ -211,7 +210,6 @@ EXPORT_SYMBOL(bzero_1page);
EXPORT_SYMBOL(__bzero);
EXPORT_SYMBOL(__memscan_zero);
EXPORT_SYMBOL(__memscan_generic);
EXPORT_SYMBOL(__memcmp);
EXPORT_SYMBOL(__strncmp);
EXPORT_SYMBOL(__memmove);

Expand Down
2 changes: 0 additions & 2 deletions arch/sparc/kernel/sparc_ksyms_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
extern void *__bzero(void *, size_t);
extern void *__memscan_zero(void *, size_t);
extern void *__memscan_generic(void *, int, size_t);
extern int __memcmp(const void *, const void *, __kernel_size_t);
extern __kernel_size_t strlen(const char *);
extern void sys_sigsuspend(void);
extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg);
Expand Down Expand Up @@ -223,7 +222,6 @@ EXPORT_SYMBOL(copy_user_page);
EXPORT_SYMBOL(__bzero);
EXPORT_SYMBOL(__memscan_zero);
EXPORT_SYMBOL(__memscan_generic);
EXPORT_SYMBOL(__memcmp);
EXPORT_SYMBOL(__memset);

EXPORT_SYMBOL(csum_partial);
Expand Down
2 changes: 1 addition & 1 deletion arch/sparc/lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ lib-$(CONFIG_SPARC32) += memcpy.o memset.o
lib-y += strlen.o
lib-y += checksum_$(BITS).o
lib-$(CONFIG_SPARC32) += blockops.o
lib-y += memscan_$(BITS).o memcmp_$(BITS).o strncmp_$(BITS).o
lib-y += memscan_$(BITS).o memcmp.o strncmp_$(BITS).o
lib-y += strncpy_from_user_$(BITS).o strlen_user_$(BITS).o
lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
lib-$(CONFIG_SPARC32) += copy_user.o locks.o
Expand Down
27 changes: 27 additions & 0 deletions arch/sparc/lib/memcmp.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* Sparc optimized memcmp code.
*
* Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
* Copyright (C) 2000, 2008 David S. Miller (davem@davemloft.net)
*/

#include <linux/linkage.h>
#include <asm/asm.h>

.text
ENTRY(memcmp)
cmp %o2, 0
1: BRANCH32(be, pn, 2f)
nop
ldub [%o0], %g7
ldub [%o1], %g3
sub %o2, 1, %o2
add %o0, 1, %o0
add %o1, 1, %o1
subcc %g7, %g3, %g3
BRANCH32(be, pt, 1b)
cmp %o2, 0
retl
mov %g3, %o0
2: retl
mov 0, %o0
ENDPROC(memcmp)
30 changes: 0 additions & 30 deletions arch/sparc/lib/memcmp_32.S

This file was deleted.

28 changes: 0 additions & 28 deletions arch/sparc/lib/memcmp_64.S

This file was deleted.

0 comments on commit 18cdae6

Please sign in to comment.