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)