Module Name: src Committed By: matt Date: Wed Mar 5 17:20:48 UTC 2014
Modified Files: src/common/lib/libc/arch/arm/atomic: atomic_cas_64.S Log Message: apcs-gnu only passes one register on the stack. ldrd always loads little endian (low address, low register). To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/common/lib/libc/arch/arm/atomic/atomic_cas_64.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/atomic/atomic_cas_64.S diff -u src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S:1.9 src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S:1.10 --- src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S:1.9 Tue Mar 4 16:15:28 2014 +++ src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S Wed Mar 5 17:20:48 2014 @@ -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 @@ ENTRY_NP(_atomic_cas_64) #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