Module Name:    src
Committed By:   matt
Date:           Mon Aug 19 00:56:12 UTC 2013

Modified Files:
        src/common/lib/libc/arch/arm/string: strcmp.S

Log Message:
Thumbify


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/arch/arm/string/strcmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/lib/libc/arch/arm/string/strcmp.S
diff -u src/common/lib/libc/arch/arm/string/strcmp.S:1.1 src/common/lib/libc/arch/arm/string/strcmp.S:1.2
--- src/common/lib/libc/arch/arm/string/strcmp.S:1.1	Tue Dec 20 19:28:49 2005
+++ src/common/lib/libc/arch/arm/string/strcmp.S	Mon Aug 19 00:56:12 2013
@@ -1,4 +1,4 @@
-/*      $NetBSD: strcmp.S,v 1.1 2005/12/20 19:28:49 christos Exp $ */
+/*      $NetBSD: strcmp.S,v 1.2 2013/08/19 00:56:12 matt Exp $ */
 
 /*
  * Copyright (c) 2002 ARM Ltd
@@ -30,14 +30,24 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: strcmp.S,v 1.1 2005/12/20 19:28:49 christos Exp $")
+RCSID("$NetBSD: strcmp.S,v 1.2 2013/08/19 00:56:12 matt Exp $")
 
 ENTRY(strcmp)
-1:
-	ldrb	r2, [r0], #1
+#if !defined(__thumb__)
+1:	ldrb	r2, [r0], #1
 	ldrb	r3, [r1], #1
 	cmp	r2, #1
 	cmpcs	r2, r3
+#else
+	subs	r1, r1, r0	/* this allows us to only one increment */
+1:	ldrb	r2, [r0]
+	ldrb	r3, [r1, r0]
+	adds	r0, r0, #1	/* increment */
+	cmp	r2, #1
+	bcc	2f
+	cmp	r2, r3
+#endif
 	beq	1b
-	sub	r0, r2, r3
+2:	subs	r0, r2, r3
 	RET
+END(strcmp)

Reply via email to