[PATCH v2 6/7] lib/arm64/spinlock: Fix inline assembly for Clang

Thomas Huth
2020-10-01T07:22:55Z

/home/travis/build/huth/kvm-unit-tests/lib/arm64/spinlock.c:29:12: error:
value size does not match register size specified by the constraint and
modifier [-Werror,-Wasm-operand-widths]
: "=&r" (val), "=&r" (fail)
^
/home/travis/build/huth/kvm-unit-tests/lib/arm64/spinlock.c:27:9: note: use
constraint modifier "w"
" mov %0, #1\n"
^~
%w0

Use the "w" modifier as suggested to fix the issue.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
lib/arm64/spinlock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/arm64/spinlock.c b/lib/arm64/spinlock.c
index fac4fc9..258303d 100644
--- a/lib/arm64/spinlock.c
+++ b/lib/arm64/spinlock.c
@@ -24,7 +24,7 @@ void spin_lock(struct spinlock *lock)
asm volatile(
"1: ldaxr %w0, [%2]\n"
" cbnz %w0, 1b\n"
- " mov %0, #1\n"
+ " mov %w0, #1\n"
" stxr %w1, %w0, [%2]\n"
: "=&r" (val), "=&r" (fail)
: "r" (&lock->v)
--
2.18.2