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 Fetch value from correct sta...



details:   https://anonhg.NetBSD.org/src/rev/3c797f25cb13
branches:  trunk
changeset: 327290:3c797f25cb13
user:      matt <matt%NetBSD.org@localhost>
date:      Tue Mar 04 03:34:22 2014 +0000

description:
Fetch value from correct stack location.  Push an even number of registers
so ldrd won't fail.

diffstat:

 common/lib/libc/arch/arm/atomic/atomic_cas_64.S |  8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diffs (31 lines):

diff -r d72c8ede0772 -r 3c797f25cb13 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:24:03 2014 +0000
+++ b/common/lib/libc/arch/arm/atomic/atomic_cas_64.S   Tue Mar 04 03:34:22 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: atomic_cas_64.S,v 1.5 2013/11/30 21:09:11 joerg Exp $  */
+/*     $NetBSD: atomic_cas_64.S,v 1.6 2014/03/04 03:34:22 matt Exp $   */
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -36,10 +36,10 @@
  * and kernel.
  */
 ENTRY_NP(_atomic_cas_64)
-       push    {r4, r5, r6}            /* save temporaries */
+       push    {r4-r7}                 /* save temporaries */
        mov     ip, r0                  /* we need r0 for return value */
 #ifdef __ARM_EABI__
-       ldrd    r4, r5, [sp]            /* fetch new value */
+       ldrd    r4, r5, [sp, #16]       /* fetch new value */
 #else
        ldr     r4, [sp, #0]            /* fetch new value */
        ldr     r5, [sp, #4]            /* fetch new value */
@@ -65,7 +65,7 @@
        mcr     p15, 0, ip, c7, c10, 4  /* data synchronization barrier */
 #endif
 2:
-       pop     {r4, r5, r6}            /* restore temporaries */
+       pop     {r4-r7}                 /* restore temporaries */
        RET                             /* return. */
 END(_atomic_cas_64)
 



Home | Main Index | Thread Index | Old Index