aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Agner <stefan@agner.ch>2019-01-24 21:43:40 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2019-02-01 21:44:15 +0000
commiteb7ff9023e4f2998d527b37bffe794759800332a (patch)
tree878af160c3f54133610c71dd74f7256fee8e9edf
parentARM: 8828/1: uaccess: use unified assembler language syntax (diff)
downloadlinux-dev-eb7ff9023e4f2998d527b37bffe794759800332a.tar.xz
linux-dev-eb7ff9023e4f2998d527b37bffe794759800332a.zip
ARM: 8829/1: spinlock: use unified assembler language syntax
Convert the conditional infix to a postfix to make sure this inline assembly is unified syntax. Since gcc assumes non-unified syntax when emitting ARM instructions, make sure to define the syntax as unified. This allows to use LLVM's integrated assembler. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r--arch/arm/include/asm/spinlock.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h
index 099c78fcf62d..8f009e788ad4 100644
--- a/arch/arm/include/asm/spinlock.h
+++ b/arch/arm/include/asm/spinlock.h
@@ -210,11 +210,12 @@ static inline void arch_read_lock(arch_rwlock_t *rw)
prefetchw(&rw->lock);
__asm__ __volatile__(
+" .syntax unified\n"
"1: ldrex %0, [%2]\n"
" adds %0, %0, #1\n"
" strexpl %1, %0, [%2]\n"
WFE("mi")
-" rsbpls %0, %1, #0\n"
+" rsbspl %0, %1, #0\n"
" bmi 1b"
: "=&r" (tmp), "=&r" (tmp2)
: "r" (&rw->lock)