Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/common/lib/libc/arch/arm/atomic apcs-gnu only passes one reg...
details: https://anonhg.NetBSD.org/src/rev/ae434fab39cf
branches: trunk
changeset: 327354:ae434fab39cf
user: matt <matt%NetBSD.org@localhost>
date: Wed Mar 05 17:20:48 2014 +0000
description:
apcs-gnu only passes one register on the stack.
ldrd always loads little endian (low address, low register).
diffstat:
common/lib/libc/arch/arm/atomic/atomic_cas_64.S | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
diffs (25 lines):
diff -r 9731f559495a -r ae434fab39cf common/lib/libc/arch/arm/atomic/atomic_cas_64.S
--- a/common/lib/libc/arch/arm/atomic/atomic_cas_64.S Wed Mar 05 16:33:33 2014 +0000
+++ b/common/lib/libc/arch/arm/atomic/atomic_cas_64.S Wed Mar 05 17:20:48 2014 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_cas_64.S,v 1.9 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_cas_64.S,v 1.10 2014/03/05 17:20:48 matt Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -41,13 +41,8 @@
#ifdef __ARM_EABI__
ldrd r4, r5, [sp, #16] /* fetch new value */
#else
-#if __ARMEB__
- ldr r5, [sp, #16] /* fetch new value */
- ldr r4, [sp, #20] /* fetch new value */
-#else
- ldr r4, [sp, #16] /* fetch new value */
- ldr r5, [sp, #20] /* fetch new value */
-#endif
+ ldr r5, [sp, #16] /* second word third argument */
+ mov r4, r3 /* first word third argument */
mov r3, r2 /* r2 will be overwritten by r1 which ... */
mov r2, r1 /* r1 will be overwritten by ldrexd */
#endif
Home |
Main Index |
Thread Index |
Old Index