Module Name: src Committed By: matt Date: Tue Mar 4 03:50:37 UTC 2014
Modified Files: src/common/lib/libc/arch/arm/atomic: atomic_cas_64.S Log Message: Fix non-EABI loading of argument. Deal with endian issues. Fixes PR/48635 To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 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.6 src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S:1.7 --- src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S:1.6 Tue Mar 4 03:34:22 2014 +++ src/common/lib/libc/arch/arm/atomic/atomic_cas_64.S Tue Mar 4 03:50:37 2014 @@ -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 @@ ENTRY_NP(_atomic_cas_64) 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