Module Name:    src
Committed By:   matt
Date:           Sun Aug 11 04:56:32 UTC 2013

Modified Files:
        src/common/lib/libc/arch/arm/string: memcmp.S memcpy_arm.S
            memcpy_xscale.S memmove.S memset.S strcpy_arm.S strrchr_arm.S

Log Message:
Switch to unified syntax
use RET/RETc
use push/pop


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/arch/arm/string/memcmp.S
cvs rdiff -u -r1.3 -r1.4 src/common/lib/libc/arch/arm/string/memcpy_arm.S \
    src/common/lib/libc/arch/arm/string/memset.S \
    src/common/lib/libc/arch/arm/string/strrchr_arm.S
cvs rdiff -u -r1.2 -r1.3 src/common/lib/libc/arch/arm/string/memcpy_xscale.S \
    src/common/lib/libc/arch/arm/string/strcpy_arm.S
cvs rdiff -u -r1.4 -r1.5 src/common/lib/libc/arch/arm/string/memmove.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/memcmp.S
diff -u src/common/lib/libc/arch/arm/string/memcmp.S:1.1 src/common/lib/libc/arch/arm/string/memcmp.S:1.2
--- src/common/lib/libc/arch/arm/string/memcmp.S:1.1	Tue Dec 20 19:28:49 2005
+++ src/common/lib/libc/arch/arm/string/memcmp.S	Sun Aug 11 04:56:32 2013
@@ -1,4 +1,4 @@
-/*      $NetBSD: memcmp.S,v 1.1 2005/12/20 19:28:49 christos Exp $ */
+/*      $NetBSD: memcmp.S,v 1.2 2013/08/11 04:56:32 matt Exp $ */
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -64,7 +64,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: memcmp.S,v 1.1 2005/12/20 19:28:49 christos Exp $")
+RCSID("$NetBSD: memcmp.S,v 1.2 2013/08/11 04:56:32 matt Exp $")
 
 ENTRY(memcmp)
 	mov	ip, r0
@@ -76,7 +76,7 @@ ENTRY(memcmp)
 
 	/* Are both addresses aligned the same way? */
 	cmp	r2, #0x00
-	eornes	r3, ip, r1
+	eorsne	r3, ip, r1
 	RETc(eq)			/* len == 0, or same addresses! */
 	tst	r3, #0x03
 	subne	r2, r2, #0x01
@@ -157,23 +157,23 @@ ENTRY(memcmp)
 	ldrb	r0, [ip, #0x00]		/* r0 = b1#0 */
 	ldrb	r2, [r1, #0x01]		/* r2 = b2#1 */
 	subs	r0, r0, r3		/* r0 = b1#0 - b2#0 */
-	ldreqb	r3, [ip, #0x01]		/* r3 = b1#1 */
+	ldrbeq	r3, [ip, #0x01]		/* r3 = b1#1 */
 	RETc(ne)			/* Return if mismatch on #0 */
 	subs	r0, r3, r2		/* r0 = b1#1 - b2#1 */
-	ldreqb	r3, [r1, #0x02]		/* r3 = b2#2 */
-	ldreqb	r0, [ip, #0x02]		/* r0 = b1#2 */
+	ldrbeq	r3, [r1, #0x02]		/* r3 = b2#2 */
+	ldrbeq	r0, [ip, #0x02]		/* r0 = b1#2 */
 	RETc(ne)			/* Return if mismatch on #1 */
 	ldrb	r2, [r1, #0x03]		/* r2 = b2#3 */
 	subs	r0, r0, r3		/* r0 = b1#2 - b2#2 */
-	ldreqb	r3, [ip, #0x03]		/* r3 = b1#3 */
+	ldrbeq	r3, [ip, #0x03]		/* r3 = b1#3 */
 	RETc(ne)			/* Return if mismatch on #2 */
 	subs	r0, r3, r2		/* r0 = b1#3 - b2#3 */
-	ldreqb	r3, [r1, #0x04]		/* r3 = b2#4 */
-	ldreqb	r0, [ip, #0x04]		/* r0 = b1#4 */
+	ldrbeq	r3, [r1, #0x04]		/* r3 = b2#4 */
+	ldrbeq	r0, [ip, #0x04]		/* r0 = b1#4 */
 	RETc(ne)			/* Return if mismatch on #3 */
 	ldrb	r2, [r1, #0x05]		/* r2 = b2#5 */
 	subs	r0, r0, r3		/* r0 = b1#4 - b2#4 */
-	ldreqb	r3, [ip, #0x05]		/* r3 = b1#5 */
+	ldrbeq	r3, [ip, #0x05]		/* r3 = b1#5 */
 	RETc(ne)			/* Return if mismatch on #4 */
 	sub	r0, r3, r2		/* r0 = b1#5 - b2#5 */
 	RET

Index: src/common/lib/libc/arch/arm/string/memcpy_arm.S
diff -u src/common/lib/libc/arch/arm/string/memcpy_arm.S:1.3 src/common/lib/libc/arch/arm/string/memcpy_arm.S:1.4
--- src/common/lib/libc/arch/arm/string/memcpy_arm.S:1.3	Mon Jan 28 06:23:44 2013
+++ src/common/lib/libc/arch/arm/string/memcpy_arm.S	Sun Aug 11 04:56:32 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: memcpy_arm.S,v 1.3 2013/01/28 06:23:44 matt Exp $	*/
+/*	$NetBSD: memcpy_arm.S,v 1.4 2013/08/11 04:56:32 matt Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@ STRONG_ALIAS(__aeabi_memcpy, memcpy)
 /* LINTSTUB: Func: void *memcpy(void *dst, const void *src, size_t len) */
 ENTRY(memcpy)
 	/* save leaf functions having to store this away */
-	stmdb	sp!, {r0, lr}		/* memcpy() returns dest addr */
+	push	{r0, lr}		/* memcpy() returns dest addr */
 
 	subs	r2, r2, #4
 	blt	.Lmemcpy_l4		/* less than 4 bytes */
@@ -82,7 +82,7 @@ ENTRY(memcpy)
 	blt	.Lmemcpy_l12		/* less than 12 bytes (4 from above) */
 	subs	r2, r2, #0x14
 	blt	.Lmemcpy_l32		/* less than 32 bytes (12 from above) */
-	stmdb	sp!, {r4}		/* borrow r4 */
+	push	{r4}		/* borrow r4 */
 
 	/* blat 32 bytes at a time */
 	/* XXX for really big copies perhaps we should use more registers */
@@ -95,19 +95,19 @@ ENTRY(memcpy)
 	bge	.Lmemcpy_loop32
 
 	cmn	r2, #0x10
-	ldmgeia	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
-	stmgeia	r0!, {r3, r4, r12, lr}
+	ldmiage	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
+	stmiage	r0!, {r3, r4, r12, lr}
 	subge	r2, r2, #0x10
-	ldmia	sp!, {r4}		/* return r4 */
+	pop	{r4}		/* return r4 */
 
 .Lmemcpy_l32:
 	adds	r2, r2, #0x14
 
 	/* blat 12 bytes at a time */
 .Lmemcpy_loop12:
-	ldmgeia	r1!, {r3, r12, lr}
-	stmgeia	r0!, {r3, r12, lr}
-	subges	r2, r2, #0x0c
+	ldmiage	r1!, {r3, r12, lr}
+	stmiage	r0!, {r3, r12, lr}
+	subsge	r2, r2, #0x0c
 	bge	.Lmemcpy_loop12
 
 .Lmemcpy_l12:
@@ -117,27 +117,27 @@ ENTRY(memcpy)
 	subs	r2, r2, #4
 	ldrlt	r3, [r1], #4
 	strlt	r3, [r0], #4
-	ldmgeia	r1!, {r3, r12}
-	stmgeia	r0!, {r3, r12}
+	ldmiage	r1!, {r3, r12}
+	stmiage	r0!, {r3, r12}
 	subge	r2, r2, #4
 
 .Lmemcpy_l4:
 	/* less than 4 bytes to go */
 	adds	r2, r2, #4
 #ifdef __APCS_26_
-	ldmeqia sp!, {r0, pc}^		/* done */
+	ldmiaeq sp!, {r0, pc}^		/* done */
 #else
-	ldmeqia	sp!, {r0, pc}		/* done */
+	popeq	{r0, pc}		/* done */
 #endif
 	/* copy the crud byte at a time */
 	cmp	r2, #2
 	ldrb	r3, [r1], #1
 	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
-	ldmia	sp!, {r0, pc}
+	ldrbge	r3, [r1], #1
+	strbge	r3, [r0], #1
+	ldrbgt	r3, [r1], #1
+	strbgt	r3, [r0], #1
+	pop	{r0, pc}
 
 	/* erg - unaligned destination */
 .Lmemcpy_destul:
@@ -147,10 +147,10 @@ ENTRY(memcpy)
 	/* align destination with byte copies */
 	ldrb	r3, [r1], #1
 	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
+	ldrbge	r3, [r1], #1
+	strbge	r3, [r0], #1
+	ldrbgt	r3, [r1], #1
+	strbgt	r3, [r0], #1
 	subs	r2, r2, r12
 	blt	.Lmemcpy_l4		/* less the 4 bytes */
 
@@ -168,7 +168,7 @@ ENTRY(memcpy)
 	cmp	r2, #0x0c
 	blt	.Lmemcpy_srcul1loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5}
+	push	{r4, r5}
 
 .Lmemcpy_srcul1loop16:
 #ifdef __ARMEB__
@@ -197,7 +197,7 @@ ENTRY(memcpy)
 	stmia	r0!, {r3-r5, r12}
 	subs	r2, r2, #0x10
 	bge	.Lmemcpy_srcul1loop16
-	ldmia	sp!, {r4, r5}
+	pop	{r4, r5}
 	adds	r2, r2, #0x0c
 	blt	.Lmemcpy_srcul1l4
 
@@ -225,7 +225,7 @@ ENTRY(memcpy)
 	cmp	r2, #0x0c
 	blt	.Lmemcpy_srcul2loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5}
+	push	{r4, r5}
 
 .Lmemcpy_srcul2loop16:
 #ifdef __ARMEB__
@@ -254,7 +254,7 @@ ENTRY(memcpy)
 	stmia	r0!, {r3-r5, r12}
 	subs	r2, r2, #0x10
 	bge	.Lmemcpy_srcul2loop16
-	ldmia	sp!, {r4, r5}
+	pop	{r4, r5}
 	adds	r2, r2, #0x0c
 	blt	.Lmemcpy_srcul2l4
 
@@ -282,7 +282,7 @@ ENTRY(memcpy)
 	cmp	r2, #0x0c
 	blt	.Lmemcpy_srcul3loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5}
+	push	{r4, r5}
 
 .Lmemcpy_srcul3loop16:
 #ifdef __ARMEB__
@@ -311,7 +311,7 @@ ENTRY(memcpy)
 	stmia	r0!, {r3-r5, r12}
 	subs	r2, r2, #0x10
 	bge	.Lmemcpy_srcul3loop16
-	ldmia	sp!, {r4, r5}
+	pop	{r4, r5}
 	adds	r2, r2, #0x0c
 	blt	.Lmemcpy_srcul3l4
 
@@ -334,3 +334,4 @@ ENTRY(memcpy)
 .Lmemcpy_srcul3l4:
 	sub	r1, r1, #1
 	b	.Lmemcpy_l4
+END(memcpy)
Index: src/common/lib/libc/arch/arm/string/memset.S
diff -u src/common/lib/libc/arch/arm/string/memset.S:1.3 src/common/lib/libc/arch/arm/string/memset.S:1.4
--- src/common/lib/libc/arch/arm/string/memset.S:1.3	Mon Jan 28 06:23:44 2013
+++ src/common/lib/libc/arch/arm/string/memset.S	Sun Aug 11 04:56:32 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: memset.S,v 1.3 2013/01/28 06:23:44 matt Exp $	*/
+/*	$NetBSD: memset.S,v 1.4 2013/08/11 04:56:32 matt Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -128,39 +128,39 @@ ENTRY(memset)
 .Lmemset_loop128:
 	subs	r1, r1, #0x80
 #ifdef _ARM_ARCH_DWORD_OK
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-#else
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+#else
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
 #endif
 	bgt	.Lmemset_loop128
 	RETc(eq)			/* Zero length so just exit */
@@ -171,15 +171,15 @@ ENTRY(memset)
 .Lmemset_loop32:
 	subs	r1, r1, #0x20
 #ifdef _ARM_ARCH_DWORD_OK
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-#else
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+#else
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
 #endif
 	bgt	.Lmemset_loop32
 	RETc(eq)			/* Zero length so just exit */
@@ -188,11 +188,11 @@ ENTRY(memset)
 
 	/* Deal with 16 bytes or more */
 #ifdef _ARM_ARCH_DWORD_OK
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
+	strdge	r2, [ip], #0x08
 #else
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
+	stmiage	ip!, {r2-r3}
 #endif
 	RETc(eq)			/* Zero length so just exit */
 
@@ -215,17 +215,17 @@ ENTRY(memset)
 #endif
 
 	strb	r3, [ip], #0x01		/* Set 1 byte */
-	strgeb	r3, [ip], #0x01		/* Set another byte */
-	strgtb	r3, [ip]		/* and a third */
+	strbge	r3, [ip], #0x01		/* Set another byte */
+	strbgt	r3, [ip]		/* and a third */
 	RET				/* Exit */
 
 .Lmemset_wordunaligned:
 	rsb	r2, r2, #0x004
 	strb	r3, [ip], #0x01		/* Set 1 byte */
 	cmp	r2, #0x02
-	strgeb	r3, [ip], #0x01		/* Set another byte */
+	strbge	r3, [ip], #0x01		/* Set another byte */
 	sub	r1, r1, r2
-	strgtb	r3, [ip], #0x01		/* and a third */
+	strbgt	r3, [ip], #0x01		/* and a third */
 	cmp	r1, #0x04		/* More than 4 bytes left? */
 	bge	.Lmemset_wordaligned	/* Yup */
 
@@ -234,6 +234,6 @@ ENTRY(memset)
 	RETc(eq)				/* Zero length so exit */
 	strb	r3, [ip], #0x01		/* Set 1 byte */
 	cmp	r1, #0x02
-	strgeb	r3, [ip], #0x01		/* Set another byte */
-	strgtb	r3, [ip]		/* and a third */
+	strbge	r3, [ip], #0x01		/* Set another byte */
+	strbgt	r3, [ip]		/* and a third */
 	RET				/* Exit */
Index: src/common/lib/libc/arch/arm/string/strrchr_arm.S
diff -u src/common/lib/libc/arch/arm/string/strrchr_arm.S:1.3 src/common/lib/libc/arch/arm/string/strrchr_arm.S:1.4
--- src/common/lib/libc/arch/arm/string/strrchr_arm.S:1.3	Fri Feb  8 02:19:36 2013
+++ src/common/lib/libc/arch/arm/string/strrchr_arm.S	Sun Aug 11 04:56:32 2013
@@ -29,7 +29,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: strrchr_arm.S,v 1.3 2013/02/08 02:19:36 matt Exp $")
+RCSID("$NetBSD: strrchr_arm.S,v 1.4 2013/08/11 04:56:32 matt Exp $")
 
 #ifdef __ARMEL__
 #define	BYTE0	0x000000ff
@@ -105,8 +105,8 @@ ENTRY(strrchr)
 	bics	r5, r5, r4		/* clear any NUL match bits */
 	beq	.Ldone			/*   no remaining matches, we're done */
 	movs	r3, r4, lshi #8		/* shift up a byte */
-	orrnes	r3, r3, r3, lshi #8	/* if non 0, copy up to next byte */
-	orrnes	r3, r3, r3, lshi #8	/* if non 0, copy up to last byte */
+	orrsne	r3, r3, r3, lshi #8	/* if non 0, copy up to next byte */
+	orrsne	r3, r3, r3, lshi #8	/* if non 0, copy up to last byte */
 	bics	r5, r5, r3		/* clear match bits */
 	beq	.Ldone			/*   no remaining matches, we're done */
 .Lfind_match:

Index: src/common/lib/libc/arch/arm/string/memcpy_xscale.S
diff -u src/common/lib/libc/arch/arm/string/memcpy_xscale.S:1.2 src/common/lib/libc/arch/arm/string/memcpy_xscale.S:1.3
--- src/common/lib/libc/arch/arm/string/memcpy_xscale.S:1.2	Thu Jun 21 21:37:04 2007
+++ src/common/lib/libc/arch/arm/string/memcpy_xscale.S	Sun Aug 11 04:56:32 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: memcpy_xscale.S,v 1.2 2007/06/21 21:37:04 scw Exp $	*/
+/*	$NetBSD: memcpy_xscale.S,v 1.3 2013/08/11 04:56:32 matt Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -51,12 +51,12 @@ ENTRY(memcpy)
 	ldrb	ip, [r1], #0x01
 	sub	r2, r2, #0x01
 	strb	ip, [r3], #0x01
-	ldrleb	ip, [r1], #0x01
+	ldrble	ip, [r1], #0x01
 	suble	r2, r2, #0x01
-	strleb	ip, [r3], #0x01
-	ldrltb	ip, [r1], #0x01
+	strble	ip, [r3], #0x01
+	ldrblt	ip, [r1], #0x01
 	sublt	r2, r2, #0x01
-	strltb	ip, [r3], #0x01
+	strblt	ip, [r3], #0x01
 
 	/* Destination buffer is now word aligned */
 .Lmemcpy_wordaligned:
@@ -66,7 +66,7 @@ ENTRY(memcpy)
 	/* Quad-align the destination buffer */
 	tst	r3, #0x07		/* Already quad aligned? */
 	ldrne	ip, [r1], #0x04
-	stmfd	sp!, {r4-r9}		/* Free up some registers */
+	push	{r4-r9}		/* Free up some registers */
 	subne	r2, r2, #0x04
 	strne	ip, [r3], #0x04
 
@@ -133,8 +133,8 @@ ENTRY(memcpy)
 
 .Lmemcpy_w_lessthan128:
 	adds	r2, r2, #0x80		/* Adjust for extra sub */
-	ldmeqfd	sp!, {r4-r9}
-	bxeq	lr			/* Return now if done */
+	popeq	{r4-r9}
+	RETc(eq)			/* Return now if done */
 	subs	r2, r2, #0x20
 	blt	.Lmemcpy_w_lessthan32
 
@@ -158,8 +158,8 @@ ENTRY(memcpy)
 
 .Lmemcpy_w_lessthan32:
 	adds	r2, r2, #0x20		/* Adjust for extra sub */
-	ldmeqfd	sp!, {r4-r9}
-	bxeq	lr			/* Return now if done */
+	popeq	{r4-r9}
+	RETc(eq)			/* Return now if done */
 
 	and	r4, r2, #0x18
 	rsbs	r4, r4, #0x18
@@ -185,21 +185,21 @@ ENTRY(memcpy)
 	strd	r4, [r3], #0x08
 
 	/* Less than 8 bytes remaining */
-	ldmfd	sp!, {r4-r9}
-	bxeq	lr			/* Return now if done */
+	pop	{r4-r9}
+	RETc(eq)			/* Return now if done */
 	subs	r2, r2, #0x04
 	ldrge	ip, [r1], #0x04
 	strge	ip, [r3], #0x04
-	bxeq	lr			/* Return now if done */
+	RETc(eq)			/* Return now if done */
 	addlt	r2, r2, #0x04
 	ldrb	ip, [r1], #0x01
 	cmp	r2, #0x02
-	ldrgeb	r2, [r1], #0x01
+	ldrbge	r2, [r1], #0x01
 	strb	ip, [r3], #0x01
-	ldrgtb	ip, [r1]
-	strgeb	r2, [r3], #0x01
-	strgtb	ip, [r3]
-	bx	lr
+	ldrbgt	ip, [r1]
+	strbge	r2, [r3], #0x01
+	strbgt	ip, [r3]
+	RET
 
 
 /*
@@ -207,7 +207,7 @@ ENTRY(memcpy)
  * The destination buffer is word aligned, but the source buffer is not.
  */
 .Lmemcpy_bad_align:
-	stmfd	sp!, {r4-r7}
+	push	{r4-r7}
 	bic	r1, r1, #0x03
 	cmp	ip, #2
 	ldr	ip, [r1], #0x04
@@ -287,8 +287,8 @@ ENTRY(memcpy)
 	str	r6, [r3], #0x04
 	str	r7, [r3], #0x04
 	subs	r2, r2, #0x10
-	ldmeqfd	sp!, {r4-r7}
-	bxeq	lr			/* Return now if done */
+	popeq	{r4-r7}
+	RETc(eq)			/* Return now if done */
 
 .Lmemcpy_bad1_loop16_short:
 	subs	r2, r2, #0x04
@@ -385,8 +385,8 @@ ENTRY(memcpy)
 	str	r6, [r3], #0x04
 	str	r7, [r3], #0x04
 	subs	r2, r2, #0x10
-	ldmeqfd	sp!, {r4-r7}
-	bxeq	lr			/* Return now if done */
+	popeq	{r4-r7}
+	RETc(eq)			/* Return now if done */
 
 .Lmemcpy_bad2_loop16_short:
 	subs	r2, r2, #0x04
@@ -483,8 +483,8 @@ ENTRY(memcpy)
 	str	r6, [r3], #0x04
 	str	r7, [r3], #0x04
 	subs	r2, r2, #0x10
-	ldmeqfd	sp!, {r4-r7}
-	bxeq	lr			/* Return now if done */
+	popeq	{r4-r7}
+	RETc(eq)			/* Return now if done */
 
 .Lmemcpy_bad3_loop16_short:
 	subs	r2, r2, #0x04
@@ -509,17 +509,17 @@ ENTRY(memcpy)
 	sub	r1, r1, #0x01
 
 .Lmemcpy_bad_done:
-	ldmfd	sp!, {r4-r7}
+	pop	{r4-r7}
 	adds	r2, r2, #0x04
-	bxeq	lr
+	RETc(eq)
 	ldrb	ip, [r1], #0x01
 	cmp	r2, #0x02
-	ldrgeb	r2, [r1], #0x01
+	ldrbge	r2, [r1], #0x01
 	strb	ip, [r3], #0x01
-	ldrgtb	ip, [r1]
-	strgeb	r2, [r3], #0x01
-	strgtb	ip, [r3]
-	bx	lr
+	ldrbgt	ip, [r1]
+	strbge	r2, [r3], #0x01
+	strbgt	ip, [r3]
+	RET
 
 
 /*
@@ -531,7 +531,7 @@ ENTRY(memcpy)
 #ifndef _STANDALONE
 	add	pc, pc, r2, lsl #2
 	nop
-	bx	lr			/* 0x00 */
+	RET				/* 0x00 */
 	b	.Lmemcpy_bytewise	/* 0x01 */
 	b	.Lmemcpy_bytewise	/* 0x02 */
 	b	.Lmemcpy_bytewise	/* 0x03 */
@@ -550,9 +550,9 @@ ENTRY(memcpy)
 	ldrb	ip, [r1], #0x01
 1:	subs	r2, r2, #0x01
 	strb	ip, [r3], #0x01
-	ldrneb	ip, [r1], #0x01
+	ldrbne	ip, [r1], #0x01
 	bne	1b
-	bx	lr
+	RET
 
 #ifndef _STANDALONE
 /******************************************************************************
@@ -573,7 +573,7 @@ ENTRY(memcpy)
  */
 	ldr	r2, [r1]
 	str	r2, [r0]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -589,7 +589,7 @@ ENTRY(memcpy)
 	orr	r3, r3, r2, lsl #24	/* r3 = 3210 */
 #endif
 	str	r3, [r0]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -604,7 +604,7 @@ ENTRY(memcpy)
 #endif
 	orr	r3, r2, r3, lsl #16
 	str	r3, [r0]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -620,7 +620,7 @@ ENTRY(memcpy)
 	orr	r3, r3, r2, lsl #8	/* r3 = 3210 */
 #endif
 	str	r3, [r0]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -639,7 +639,7 @@ ENTRY(memcpy)
 	strb	r1, [r0, #0x03]
 #endif
 	strh	r3, [r0, #0x01]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -651,7 +651,7 @@ ENTRY(memcpy)
 	strb	r2, [r0]
 	strh	r3, [r0, #0x01]
 	strb	r1, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -672,7 +672,7 @@ ENTRY(memcpy)
 #endif
 	strh	r2, [r0, #0x01]
 	strb	r3, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -684,7 +684,7 @@ ENTRY(memcpy)
 	strb	r2, [r0]
 	strh	r3, [r0, #0x01]
 	strb	r1, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -700,7 +700,7 @@ ENTRY(memcpy)
 	mov	r3, r2, lsr #16
 	strh	r3, [r0, #0x02]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -718,7 +718,7 @@ ENTRY(memcpy)
 	orr	r2, r2, r3, lsl #8	/* r2 = xx32 */
 #endif
 	strh	r2, [r0, #0x02]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -728,7 +728,7 @@ ENTRY(memcpy)
 	ldrh	r3, [r1, #0x02]
 	strh	r2, [r0]
 	strh	r3, [r0, #0x02]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -746,7 +746,7 @@ ENTRY(memcpy)
 	orr	r3, r3, r2, lsr #24	/* r3 = 3210 */
 #endif
 	strh	r3, [r0]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -766,7 +766,7 @@ ENTRY(memcpy)
 	strh	r3, [r0, #0x01]
 	strb	r1, [r0, #0x03]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -778,7 +778,7 @@ ENTRY(memcpy)
 	strb	r2, [r0]
 	strh	r3, [r0, #0x01]
 	strb	r1, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -803,7 +803,7 @@ ENTRY(memcpy)
 	mov	r3, r3, lsr #8		/* r3 = ...3 */
 	strb	r3, [r0, #0x03]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 /*
@@ -815,7 +815,7 @@ ENTRY(memcpy)
 	strb	r2, [r0]
 	strh	r3, [r0, #0x01]
 	strb	r1, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_4_PAD
 
 
@@ -839,7 +839,7 @@ ENTRY(memcpy)
 	ldrh	r3, [r1, #0x04]
 	str	r2, [r0]
 	strh	r3, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -857,7 +857,7 @@ ENTRY(memcpy)
 	mov	r3, r3, lsr #8		/* BE:r3 = .345  LE:r3 = .x54 */
 	str	r2, [r0]
 	strh	r3, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -876,7 +876,7 @@ ENTRY(memcpy)
 	str	r2, [r0]
 	strh	r1, [r0, #0x04]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -898,7 +898,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0]
 	strh	r1, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -921,7 +921,7 @@ ENTRY(memcpy)
 #endif
 	strh	r3, [r0, #0x03]
 	strb	r2, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -935,7 +935,7 @@ ENTRY(memcpy)
 	strh	r3, [r0, #0x01]
 	strh	ip, [r0, #0x03]
 	strb	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -962,7 +962,7 @@ ENTRY(memcpy)
 	orr	r3, r3, r1, lsl #8	/* r3 = 4321 */
 	strh	r3, [r0, #0x01]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -976,7 +976,7 @@ ENTRY(memcpy)
 	strh	r3, [r0, #0x01]
 	strh	ip, [r0, #0x03]
 	strb	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -997,7 +997,7 @@ ENTRY(memcpy)
 	strh	r3, [r0]
 	str	r2, [r0, #0x02]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1015,7 +1015,7 @@ ENTRY(memcpy)
 #endif
 	strh	r1, [r0]
 	str	r2, [r0, #0x02]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1025,7 +1025,7 @@ ENTRY(memcpy)
 	ldr	r3, [r1, #0x02]
 	strh	r2, [r0]
 	str	r3, [r0, #0x02]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1045,7 +1045,7 @@ ENTRY(memcpy)
 #endif
 	strh	r3, [r0]
 	str	r1, [r0, #0x02]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1066,7 +1066,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0, #0x01]
 	strb	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1080,7 +1080,7 @@ ENTRY(memcpy)
 	strh	r3, [r0, #0x01]
 	strh	ip, [r0, #0x03]
 	strb	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1101,7 +1101,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0, #0x01]
 	strb	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 /*
@@ -1113,7 +1113,7 @@ ENTRY(memcpy)
 	strb	r2, [r0]
 	str	r3, [r0, #0x01]
 	strb	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_6_PAD
 
 
@@ -1137,7 +1137,7 @@ ENTRY(memcpy)
 	ldr	r3, [r1, #0x04]
 	str	r2, [r0]
 	str	r3, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1158,7 +1158,7 @@ ENTRY(memcpy)
 #endif
 	str	r3, [r0]
 	str	r2, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1178,7 +1178,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0]
 	str	r3, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1199,7 +1199,7 @@ ENTRY(memcpy)
 #endif
 	str	r3, [r0]
 	str	r2, [r0, #0x04]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1224,7 +1224,7 @@ ENTRY(memcpy)
 #endif
 	strh	r1, [r0, #0x01]
 	str	r3, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1238,7 +1238,7 @@ ENTRY(memcpy)
 	strh	r3, [r0, #0x01]
 	str	ip, [r0, #0x03]
 	strb	r1, [r0, #0x07]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1266,7 +1266,7 @@ ENTRY(memcpy)
 #endif
 	strh	ip, [r0, #0x01]
 	str	r3, [r0, #0x03]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1287,7 +1287,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0, #0x03]
 	strb	r1, [r0, #0x07]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1307,7 +1307,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0, #0x02]
 	strh	r3, [r0, #0x06]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1330,7 +1330,7 @@ ENTRY(memcpy)
 #endif
 	str	r1, [r0, #0x02]
 	strh	r3, [r0, #0x06]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1342,7 +1342,7 @@ ENTRY(memcpy)
 	strh	r2, [r0]
 	str	ip, [r0, #0x02]
 	strh	r3, [r0, #0x06]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1365,7 +1365,7 @@ ENTRY(memcpy)
 #endif
 	str	r3, [r0, #0x02]
 	strh	r2, [r0]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1390,7 +1390,7 @@ ENTRY(memcpy)
 	orr	r2, r2, r3, lsl #24	/* r2 = 4321 */
 	str	r2, [r0, #0x01]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1411,7 +1411,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0, #0x01]
 	strb	r1, [r0, #0x07]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1439,7 +1439,7 @@ ENTRY(memcpy)
 #endif
 	str	ip, [r0, #0x01]
 	strh	r1, [r0, #0x05]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /*
@@ -1453,7 +1453,7 @@ ENTRY(memcpy)
 	str	ip, [r0, #0x01]
 	strh	r3, [r0, #0x05]
 	strb	r1, [r0, #0x07]
-	bx	lr
+	RET
 	LMEMCPY_8_PAD
 
 /******************************************************************************
@@ -1478,7 +1478,7 @@ ENTRY(memcpy)
 	str	r2, [r0]
 	str	r3, [r0, #0x04]
 	str	r1, [r0, #0x08]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1506,7 +1506,7 @@ ENTRY(memcpy)
 #endif
 	str	r2, [r0, #0x04]
 	str	r1, [r0]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1533,7 +1533,7 @@ ENTRY(memcpy)
 #endif
 	str	r3, [r0, #0x04]
 	str	r1, [r0, #0x08]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1561,7 +1561,7 @@ ENTRY(memcpy)
 #endif
 	str	r3, [r0, #0x04]
 	str	r1, [r0, #0x08]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1590,7 +1590,7 @@ ENTRY(memcpy)
 	str	r2, [r0, #0x03]
 	str	r1, [r0, #0x07]
 	strb	ip, [r0, #0x0b]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1606,7 +1606,7 @@ ENTRY(memcpy)
 	str	ip, [r0, #0x03]
 	str	r2, [r0, #0x07]
 	strb	r1, [r0, #0x0b]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1640,7 +1640,7 @@ ENTRY(memcpy)
 	str	r3, [r0, #0x03]
 	str	r2, [r0, #0x07]
 	strb	r1, [r0, #0x0b]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1670,7 +1670,7 @@ ENTRY(memcpy)
 	str	r3, [r0, #0x03]
 	str	ip, [r0, #0x07]
 	strb	r1, [r0, #0x0b]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1696,7 +1696,7 @@ ENTRY(memcpy)
 	str	r1, [r0, #0x02]
 	str	r3, [r0, #0x06]
 	strh	r2, [r0, #0x0a]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1725,7 +1725,7 @@ ENTRY(memcpy)
 	str	r2, [r0, #0x02]
 	str	r3, [r0, #0x06]
 	strh	r1, [r0, #0x0a]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1739,7 +1739,7 @@ ENTRY(memcpy)
 	str	r3, [r0, #0x02]
 	str	ip, [r0, #0x06]
 	strh	r1, [r0, #0x0a]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1768,7 +1768,7 @@ ENTRY(memcpy)
 	str	r2, [r0, #0x06]
 	str	r3, [r0, #0x02]
 	strh	r1, [r0]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1802,7 +1802,7 @@ ENTRY(memcpy)
 	mov	r1, r1, lsr #16		/* r1 = ...B */
 	strb	r1, [r0, #0x0b]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1832,7 +1832,7 @@ ENTRY(memcpy)
 	str	r3, [r0, #0x05]
 	str	ip, [r0, #0x01]
 	strb	r1, [r0]
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1873,7 +1873,7 @@ ENTRY(memcpy)
 	strh	ip, [r0, #0x09]
 	strb	r1, [r0, #0x0b]
 #endif
-	bx	lr
+	RET
 	LMEMCPY_C_PAD
 
 /*
@@ -1889,5 +1889,5 @@ ENTRY(memcpy)
 	str	ip, [r0, #0x05]
 	strh	r2, [r0, #0x09]
 	strb	r1, [r0, #0x0b]
-	bx	lr
+	RET
 #endif	/* !_STANDALONE */
Index: src/common/lib/libc/arch/arm/string/strcpy_arm.S
diff -u src/common/lib/libc/arch/arm/string/strcpy_arm.S:1.2 src/common/lib/libc/arch/arm/string/strcpy_arm.S:1.3
--- src/common/lib/libc/arch/arm/string/strcpy_arm.S:1.2	Thu Jan 10 04:51:49 2013
+++ src/common/lib/libc/arch/arm/string/strcpy_arm.S	Sun Aug 11 04:56:32 2013
@@ -29,7 +29,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: strcpy_arm.S,v 1.2 2013/01/10 04:51:49 matt Exp $")
+RCSID("$NetBSD: strcpy_arm.S,v 1.3 2013/08/11 04:56:32 matt Exp $")
 
 #ifdef STRLCPY
 #ifdef _LIBC
@@ -85,7 +85,7 @@ ENTRY(FUNCNAME)
 	cmp	r2, #1			/* is length 1 or less? */
 	bhi	1f			/*   no, do normal */
 	moveq	r3, #0			/*   = 1? load NUL */
-	streqb	r3, [r0]		/*   = 1? write NUL to dst */
+	strbeq	r3, [r0]		/*   = 1? write NUL to dst */
 	mov	r0, r1			/* move src to r0 */
 	b	PLT_SYM(_C_LABEL(strlen)) /* and tailcall strlen */
 1:
@@ -125,7 +125,7 @@ ENTRY(FUNCNAME)
 	beq	.Lend_of_string		/*   yes, we are done */
 #if defined(STRLCPY)
 	subs	r2, r2, #1		/* subtract one from count */
-	streqb	r2, [r0], #1		/*    zero? write trailing NUL */
+	strbeq	r2, [r0], #1		/*    zero? write trailing NUL */
 	beq	.Ldst_full		/*    zero? the dst has no more room */
 #endif
 	b	.Ldst_align		/* loop around for next byte */
@@ -423,7 +423,7 @@ ENTRY(FUNCNAME)
 	cmp	r2, #-1			/* tried to write 3 bytes? */
 	blt	1f			/*   less, partial word write */
 	cmp	r2, #0			/* no space left? */
-	streqb	r2, [r0]		/* write the final NUL */
+	strbeq	r2, [r0]		/* write the final NUL */
 	bicne	r5, r5, #BYTE3		/* clear trailing NUL */
 	strne	r5, [r0]		/* write last word */
 	b	.Ldst_full_word_aligned	/* the dst buffer is full */

Index: src/common/lib/libc/arch/arm/string/memmove.S
diff -u src/common/lib/libc/arch/arm/string/memmove.S:1.4 src/common/lib/libc/arch/arm/string/memmove.S:1.5
--- src/common/lib/libc/arch/arm/string/memmove.S:1.4	Mon Jan 28 06:23:44 2013
+++ src/common/lib/libc/arch/arm/string/memmove.S	Sun Aug 11 04:56:32 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: memmove.S,v 1.4 2013/01/28 06:23:44 matt Exp $	*/
+/*	$NetBSD: memmove.S,v 1.5 2013/08/11 04:56:32 matt Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@ ENTRY(bcopy)
 	moveq	r0, #0			/* Quick abort for len=0 */
 	RETc(eq)
 
-	stmdb	sp!, {r0, lr}		/* memmove() returns dest addr */
+	push	{r0, lr}		/* memmove() returns dest addr */
 	subs	r2, r2, #4
 	blt	.Lmemmove_fl4		/* less than 4 bytes */
 	ands	r12, r0, #3
@@ -76,7 +76,7 @@ ENTRY(bcopy)
 	blt	.Lmemmove_fl12		/* less than 12 bytes (4 from above) */
 	subs	r2, r2, #0x14
 	blt	.Lmemmove_fl32		/* less than 32 bytes (12 from above) */
-	stmdb	sp!, {r4}		/* borrow r4 */
+	push	{r4}		/* borrow r4 */
 
 	/* blat 32 bytes at a time */
 	/* XXX for really big copies perhaps we should use more registers */
@@ -89,19 +89,19 @@ ENTRY(bcopy)
 	bge	.Lmemmove_floop32
 
 	cmn	r2, #0x10
-	ldmgeia	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
-	stmgeia	r0!, {r3, r4, r12, lr}
+	ldmiage	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
+	stmiage	r0!, {r3, r4, r12, lr}
 	subge	r2, r2, #0x10
-	ldmia	sp!, {r4}		/* return r4 */
+	pop	{r4}		/* return r4 */
 
 .Lmemmove_fl32:
 	adds	r2, r2, #0x14
 
 	/* blat 12 bytes at a time */
 .Lmemmove_floop12:
-	ldmgeia	r1!, {r3, r12, lr}
-	stmgeia	r0!, {r3, r12, lr}
-	subges	r2, r2, #0x0c
+	ldmiage	r1!, {r3, r12, lr}
+	stmiage	r0!, {r3, r12, lr}
+	subsge	r2, r2, #0x0c
 	bge	.Lmemmove_floop12
 
 .Lmemmove_fl12:
@@ -111,24 +111,24 @@ ENTRY(bcopy)
 	subs	r2, r2, #4
 	ldrlt	r3, [r1], #4
 	strlt	r3, [r0], #4
-	ldmgeia	r1!, {r3, r12}
-	stmgeia	r0!, {r3, r12}
+	ldmiage	r1!, {r3, r12}
+	stmiage	r0!, {r3, r12}
 	subge	r2, r2, #4
 
 .Lmemmove_fl4:
 	/* less than 4 bytes to go */
 	adds	r2, r2, #4
-	ldmeqia	sp!, {r0, pc}		/* done */
+	popeq	{r0, pc}		/* done */
 
 	/* copy the crud byte at a time */
 	cmp	r2, #2
 	ldrb	r3, [r1], #1
 	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
-	ldmia	sp!, {r0, pc}
+	ldrbge	r3, [r1], #1
+	strbge	r3, [r0], #1
+	ldrbgt	r3, [r1], #1
+	strbgt	r3, [r0], #1
+	pop	{r0, pc}
 
 	/* erg - unaligned destination */
 .Lmemmove_fdestul:
@@ -138,10 +138,10 @@ ENTRY(bcopy)
 	/* align destination with byte copies */
 	ldrb	r3, [r1], #1
 	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
+	ldrbge	r3, [r1], #1
+	strbge	r3, [r0], #1
+	ldrbgt	r3, [r1], #1
+	strbgt	r3, [r0], #1
 	subs	r2, r2, r12
 	blt	.Lmemmove_fl4		/* less the 4 bytes */
 
@@ -159,7 +159,7 @@ ENTRY(bcopy)
 	cmp	r2, #0x0c
 	blt	.Lmemmove_fsrcul1loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5}
+	push	{r4, r5}
 
 .Lmemmove_fsrcul1loop16:
 #ifdef __ARMEB__
@@ -188,7 +188,7 @@ ENTRY(bcopy)
 	stmia	r0!, {r3-r5, r12}
 	subs	r2, r2, #0x10
 	bge	.Lmemmove_fsrcul1loop16
-	ldmia	sp!, {r4, r5}
+	pop	{r4, r5}
 	adds	r2, r2, #0x0c
 	blt	.Lmemmove_fsrcul1l4
 
@@ -216,7 +216,7 @@ ENTRY(bcopy)
 	cmp	r2, #0x0c
 	blt	.Lmemmove_fsrcul2loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5}
+	push	{r4, r5}
 
 .Lmemmove_fsrcul2loop16:
 #ifdef __ARMEB__
@@ -245,7 +245,7 @@ ENTRY(bcopy)
 	stmia	r0!, {r3-r5, r12}
 	subs	r2, r2, #0x10
 	bge	.Lmemmove_fsrcul2loop16
-	ldmia	sp!, {r4, r5}
+	pop	{r4, r5}
 	adds	r2, r2, #0x0c
 	blt	.Lmemmove_fsrcul2l4
 
@@ -273,7 +273,7 @@ ENTRY(bcopy)
 	cmp	r2, #0x0c
 	blt	.Lmemmove_fsrcul3loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5}
+	push	{r4, r5}
 
 .Lmemmove_fsrcul3loop16:
 #ifdef __ARMEB__
@@ -302,7 +302,7 @@ ENTRY(bcopy)
 	stmia	r0!, {r3-r5, r12}
 	subs	r2, r2, #0x10
 	bge	.Lmemmove_fsrcul3loop16
-	ldmia	sp!, {r4, r5}
+	pop	{r4, r5}
 	adds	r2, r2, #0x0c
 	blt	.Lmemmove_fsrcul3l4
 
@@ -340,7 +340,7 @@ ENTRY(bcopy)
 	/* We have aligned source and destination */
 	subs	r2, r2, #8
 	blt	.Lmemmove_bl12		/* less than 12 bytes (4 from above) */
-	stmdb	sp!, {r4, lr}
+	push	{r4, lr}
 	subs	r2, r2, #0x14		/* less than 32 bytes (12 from above) */
 	blt	.Lmemmove_bl32
 
@@ -356,14 +356,14 @@ ENTRY(bcopy)
 
 .Lmemmove_bl32:
 	cmn	r2, #0x10
-	ldmgedb	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
-	stmgedb	r0!, {r3, r4, r12, lr}
+	ldmdbge	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
+	stmdbge	r0!, {r3, r4, r12, lr}
 	subge	r2, r2, #0x10
 	adds	r2, r2, #0x14
-	ldmgedb	r1!, {r3, r12, lr}	/* blat a remaining 12 bytes */
-	stmgedb	r0!, {r3, r12, lr}
+	ldmdbge	r1!, {r3, r12, lr}	/* blat a remaining 12 bytes */
+	stmdbge	r0!, {r3, r12, lr}
 	subge	r2, r2, #0x0c
-	ldmia	sp!, {r4, lr}
+	pop	{r4, lr}
 
 .Lmemmove_bl12:
 	adds	r2, r2, #8
@@ -371,8 +371,8 @@ ENTRY(bcopy)
 	subs	r2, r2, #4
 	ldrlt	r3, [r1, #-4]!
 	strlt	r3, [r0, #-4]!
-	ldmgedb	r1!, {r3, r12}
-	stmgedb	r0!, {r3, r12}
+	ldmdbge	r1!, {r3, r12}
+	stmdbge	r0!, {r3, r12}
 	subge	r2, r2, #4
 
 .Lmemmove_bl4:
@@ -384,10 +384,10 @@ ENTRY(bcopy)
 	cmp	r2, #2
 	ldrb	r3, [r1, #-1]!
 	strb	r3, [r0, #-1]!
-	ldrgeb	r3, [r1, #-1]!
-	strgeb	r3, [r0, #-1]!
-	ldrgtb	r3, [r1, #-1]!
-	strgtb	r3, [r0, #-1]!
+	ldrbge	r3, [r1, #-1]!
+	strbge	r3, [r0, #-1]!
+	ldrbgt	r3, [r1, #-1]!
+	strbgt	r3, [r0, #-1]!
 	RET
 
 	/* erg - unaligned destination */
@@ -397,10 +397,10 @@ ENTRY(bcopy)
 	/* align destination with byte copies */
 	ldrb	r3, [r1, #-1]!
 	strb	r3, [r0, #-1]!
-	ldrgeb	r3, [r1, #-1]!
-	strgeb	r3, [r0, #-1]!
-	ldrgtb	r3, [r1, #-1]!
-	strgtb	r3, [r0, #-1]!
+	ldrbge	r3, [r1, #-1]!
+	strbge	r3, [r0, #-1]!
+	ldrbgt	r3, [r1, #-1]!
+	strbgt	r3, [r0, #-1]!
 	subs	r2, r2, r12
 	blt	.Lmemmove_bl4		/* less than 4 bytes to go */
 	ands	r12, r1, #3
@@ -417,7 +417,7 @@ ENTRY(bcopy)
 	cmp	r2, #0x0c
 	blt	.Lmemmove_bsrcul3loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5, lr}
+	push	{r4, r5, lr}
 
 .Lmemmove_bsrcul3loop16:
 #ifdef __ARMEB__
@@ -446,7 +446,7 @@ ENTRY(bcopy)
 	stmdb	r0!, {r4, r5, r12, lr}
 	subs	r2, r2, #0x10
 	bge	.Lmemmove_bsrcul3loop16
-	ldmia	sp!, {r4, r5, lr}
+	pop	{r4, r5, lr}
 	adds	r2, r2, #0x0c
 	blt	.Lmemmove_bsrcul3l4
 
@@ -474,7 +474,7 @@ ENTRY(bcopy)
 	cmp	r2, #0x0c
 	blt	.Lmemmove_bsrcul2loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5, lr}
+	push	{r4, r5, lr}
 
 .Lmemmove_bsrcul2loop16:
 #ifdef __ARMEB__
@@ -503,7 +503,7 @@ ENTRY(bcopy)
 	stmdb	r0!, {r4, r5, r12, lr}
 	subs	r2, r2, #0x10
 	bge	.Lmemmove_bsrcul2loop16
-	ldmia	sp!, {r4, r5, lr}
+	pop	{r4, r5, lr}
 	adds	r2, r2, #0x0c
 	blt	.Lmemmove_bsrcul2l4
 
@@ -531,7 +531,7 @@ ENTRY(bcopy)
 	cmp	r2, #0x0c
 	blt	.Lmemmove_bsrcul1loop4
 	sub	r2, r2, #0x0c
-	stmdb	sp!, {r4, r5, lr}
+	push	{r4, r5, lr}
 
 .Lmemmove_bsrcul1loop32:
 #ifdef __ARMEB__
@@ -560,7 +560,7 @@ ENTRY(bcopy)
 	stmdb	r0!, {r4, r5, r12, lr}
 	subs	r2, r2, #0x10
 	bge	.Lmemmove_bsrcul1loop32
-	ldmia	sp!, {r4, r5, lr}
+	pop	{r4, r5, lr}
 	adds	r2, r2, #0x0c
 	blt	.Lmemmove_bsrcul1l4
 

Reply via email to