Module Name: src Committed By: matt Date: Sun Aug 11 04:40:06 UTC 2013
Modified Files: src/sys/arch/arm/arm: lock_cas.S Log Message: unified syntax, make it play nice with thumb To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/arm/lock_cas.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm/lock_cas.S diff -u src/sys/arch/arm/arm/lock_cas.S:1.9 src/sys/arch/arm/arm/lock_cas.S:1.10 --- src/sys/arch/arm/arm/lock_cas.S:1.9 Fri Aug 31 23:42:34 2012 +++ src/sys/arch/arm/arm/lock_cas.S Sun Aug 11 04:40:05 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: lock_cas.S,v 1.9 2012/08/31 23:42:34 matt Exp $ */ +/* $NetBSD: lock_cas.S,v 1.10 2013/08/11 04:40:05 matt Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -108,8 +108,8 @@ STRONG_ALIAS(atomic_cas_ptr_ni,_lock_cas #endif /* !_ARM_ARCH_6 */ #ifdef __PROG32 -#define SAVE_REGS stmfd sp!, {r4-r5} -#define RESTORE_REGS ldmfd sp!, {r4-r5} +#define SAVE_REGS push {r4-r5} +#define RESTORE_REGS pop {r4-r5} #else /* Need to save R14_svc because it'll get trampled if we take a page fault. */ #define SAVE_REGS stmfd sp!, {r4-r6, r14} @@ -126,32 +126,29 @@ ENTRY(ucas_32) str r5, [r4, #PCB_ONFAULT] .globl _C_LABEL(ucas_32_ras_start) + mov ip, r0 _C_LABEL(ucas_32_ras_start): -#ifdef MULTIPROCESSOR -1: ldrex r5, [r0] /* we should have access */ +#if defined(MULTIPROCESSOR) || defined(_ARM_ARCH_6) +1: ldrex r5, [ip] /* we should have access */ cmp r1, r5 bne 2f - strex ip, r2, [r0] - cmp ip, #0 + strex r0, r2, [ip] + cmp r0, #0 bne 1b 2: #else - ldrt r5, [r0] + ldrt r5, [ip] cmp r1, r5 - streqt r2, [r0] + strteq r2, [ip] + mov r0, #0 #endif .globl _C_LABEL(ucas_32_ras_end) _C_LABEL(ucas_32_ras_end): str r5, [r3] - mov r0, #0 - str r0, [r4, #PCB_ONFAULT] - RESTORE_REGS - RET - .Lucasfault: - mov r5, #0 - str r5, [r4, #PCB_ONFAULT] + movs r3, #0 + str r3, [r4, #PCB_ONFAULT] RESTORE_REGS RET END(ucas_32)