Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f2ff23d authored by Jesper Nilsson's avatar Jesper Nilsson
Browse files

CRISv32: Add arch optimized strcmp.



Add an optimized strcmp for CRISv32. This improves strcmp performance
with about 25% when comparing a 55 character string with itself.

Signed-off-by: default avatarEdgar Iglesias <edgar@axis.com>
Acked-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
parent b0903ee8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3,5 +3,5 @@
#

lib-y  = checksum.o checksumcopy.o string.o usercopy.o memset.o \
	csumcpfruser.o spinlock.o delay.o
	csumcpfruser.o spinlock.o delay.o strcmp.o
+21 −0
Original line number Diff line number Diff line
; strcmp.S -- CRISv32 version.
; Copyright (C) 2008 AXIS Communications AB
; Written by Edgar E. Iglesias
;
; This source code is licensed under the GNU General Public License,
; Version 2.  See the file COPYING for more details.

	.global	strcmp
	.type	strcmp,@function
strcmp:
1:
	move.b	[$r10+], $r12
	seq	$r13
	sub.b	[$r11+], $r12
	or.b	$r12, $r13
	beq	1b
	nop

	ret
	movs.b	$r12, $r10
	.size	strcmp, . - strcmp
+6 −0
Original line number Diff line number Diff line
@@ -11,4 +11,10 @@ extern void *memcpy(void *, const void *, size_t);
#define __HAVE_ARCH_MEMSET
extern void *memset(void *, int, size_t);

#ifdef CONFIG_ETRAX_ARCH_V32
/* For v32 we provide strcmp.  */
#define __HAVE_ARCH_STRCMP
extern int strcmp(const char *s1, const char *s2);
#endif

#endif