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 Fix non-EABI loading of argu...
details: https://anonhg.NetBSD.org/src/rev/d1d9c3786e5a
branches: trunk
changeset: 794033:d1d9c3786e5a
user: matt <matt%NetBSD.org@localhost>
date: Tue Mar 04 03:50:37 2014 +0000
description:
Fix non-EABI loading of argument. Deal with endian issues.
Fixes PR/48635
diffstat:
common/lib/libc/arch/arm/atomic/atomic_cas_64.S | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diffs (25 lines):
diff -r fd8b02e65a45 -r d1d9c3786e5a common/lib/libc/arch/arm/atomic/atomic_cas_64.S
--- a/common/lib/libc/arch/arm/atomic/atomic_cas_64.S Tue Mar 04 03:49:07 2014 +0000
+++ b/common/lib/libc/arch/arm/atomic/atomic_cas_64.S Tue Mar 04 03:50:37 2014 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_cas_64.S,v 1.6 2014/03/04 03:34:22 matt Exp $ */
+/* $NetBSD: atomic_cas_64.S,v 1.7 2014/03/04 03:50:37 matt Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -40,9 +40,13 @@
mov ip, r0 /* we need r0 for return value */
#ifdef __ARM_EABI__
ldrd r4, r5, [sp, #16] /* fetch new value */
+#elif __ARMEB__
+ ldr r5, [sp, #16] /* fetch new value */
+ ldr r4, [sp, #20] /* fetch new value */
#else
- ldr r4, [sp, #0] /* fetch new value */
- ldr r5, [sp, #4] /* fetch new value */
+ ldr r4, [sp, #16] /* fetch new value */
+ ldr r5, [sp, #20] /* fetch new value */
+#endif
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