This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
[PATCH roland/arm-avoid-r9] ARM: Use r10 instead of r9.
- From: Roland McGrath <roland at hack dot frob dot com>
- To: libc-ports at sourceware dot org
- Date: Wed, 27 Feb 2013 17:01:02 -0800 (PST)
- Subject: [PATCH roland/arm-avoid-r9] ARM: Use r10 instead of r9.
The arm-nacl ABI reserves r9 for the system (as EABI says some variants
might). r10 is just the same for other instruction-set and ABI issues,
so this uses r10 in place of r9.
Thanks,
Roland
ports/ChangeLog.arm
2013-02-27 Roland McGrath <roland@hack.frob.com>
* sysdeps/arm/memcpy.S: Use r10 instead of r9.
* sysdeps/arm/memmove.S: Likewise.
--- a/ports/sysdeps/arm/memcpy.S
+++ b/ports/sysdeps/arm/memcpy.S
@@ -187,13 +187,13 @@ ENTRY(memcpy)
CALGN( subcc r2, r2, ip )
CALGN( bcc 15f )
-11: stmfd sp!, {r5 - r9}
+11: stmfd sp!, {r5 - r8, r10}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r5, 0)
cfi_rel_offset (r6, 4)
cfi_rel_offset (r7, 8)
cfi_rel_offset (r8, 12)
- cfi_rel_offset (r9, 16)
+ cfi_rel_offset (r10, 16)
PLD( pld [r1, #0] )
PLD( subs r2, r2, #96 )
@@ -206,7 +206,7 @@ ENTRY(memcpy)
13: ldmia r1!, {r4, r5, r6, r7}
mov r3, lr, pull #\pull
subs r2, r2, #32
- ldmia r1!, {r8, r9, ip, lr}
+ ldmia r1!, {r8, r10, ip, lr}
orr r3, r3, r4, push #\push
mov r4, r4, pull #\pull
orr r4, r4, r5, push #\push
@@ -217,23 +217,23 @@ ENTRY(memcpy)
mov r7, r7, pull #\pull
orr r7, r7, r8, push #\push
mov r8, r8, pull #\pull
- orr r8, r8, r9, push #\push
- mov r9, r9, pull #\pull
- orr r9, r9, ip, push #\push
+ orr r8, r8, r10, push #\push
+ mov r10, r10, pull #\pull
+ orr r10, r10, ip, push #\push
mov ip, ip, pull #\pull
orr ip, ip, lr, push #\push
- stmia r0!, {r3, r4, r5, r6, r7, r8, r9, ip}
+ stmia r0!, {r3, r4, r5, r6, r7, r8, r10, ip}
bge 12b
PLD( cmn r2, #96 )
PLD( bge 13b )
- ldmfd sp!, {r5 - r9}
+ ldmfd sp!, {r5 - r8, r10}
cfi_adjust_cfa_offset (-20)
cfi_restore (r5)
cfi_restore (r6)
cfi_restore (r7)
cfi_restore (r8)
- cfi_restore (r9)
+ cfi_restore (r10)
14: ands ip, r2, #28
beq 16f
--- a/ports/sysdeps/arm/memmove.S
+++ b/ports/sysdeps/arm/memmove.S
@@ -202,13 +202,13 @@ ENTRY(memmove)
CALGN( subcc r2, r2, ip )
CALGN( bcc 15f )
-11: stmfd sp!, {r5 - r9}
+11: stmfd sp!, {r5 - r8, r10}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r5, 0)
cfi_rel_offset (r6, 4)
cfi_rel_offset (r7, 8)
cfi_rel_offset (r8, 12)
- cfi_rel_offset (r9, 16)
+ cfi_rel_offset (r10, 16)
PLD( pld [r1, #-4] )
PLD( subs r2, r2, #96 )
@@ -218,15 +218,15 @@ ENTRY(memmove)
PLD( pld [r1, #-96] )
12: PLD( pld [r1, #-128] )
-13: ldmdb r1!, {r7, r8, r9, ip}
+13: ldmdb r1!, {r7, r8, r10, ip}
mov lr, r3, push #\push
subs r2, r2, #32
ldmdb r1!, {r3, r4, r5, r6}
orr lr, lr, ip, pull #\pull
mov ip, ip, push #\push
- orr ip, ip, r9, pull #\pull
- mov r9, r9, push #\push
- orr r9, r9, r8, pull #\pull
+ orr ip, ip, r10, pull #\pull
+ mov r10, r10, push #\push
+ orr r10, r10, r8, pull #\pull
mov r8, r8, push #\push
orr r8, r8, r7, pull #\pull
mov r7, r7, push #\push
@@ -237,18 +237,18 @@ ENTRY(memmove)
orr r5, r5, r4, pull #\pull
mov r4, r4, push #\push
orr r4, r4, r3, pull #\pull
- stmdb r0!, {r4 - r9, ip, lr}
+ stmdb r0!, {r4 - r10, ip, lr}
bge 12b
PLD( cmn r2, #96 )
PLD( bge 13b )
- ldmfd sp!, {r5 - r9}
+ ldmfd sp!, {r5 - r10}
cfi_adjust_cfa_offset (-20)
cfi_restore (r5)
cfi_restore (r6)
cfi_restore (r7)
cfi_restore (r8)
- cfi_restore (r9)
+ cfi_restore (r10)
14: ands ip, r2, #28
beq 16f