From ffc781b1eda8d4a66e899d3a40a37094ad4f674f Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Wed, 23 Dec 2020 01:23:41 +0100 Subject: [PATCH] MINOR: atomic: don't use ; to separate instruction on aarch64. The assembler on MacOS aarch64 interprets ; as the beginning of comments, so it is not suitable for separating instructions in inline asm. Use \n instead. This should be backported to 2.3, 2.2, 2.1, 2.0 and 1.9. (cherry picked from commit 63ee28185430cbf5bdce21f82484f7de70fe4654) Signed-off-by: Christopher Faulet --- include/haproxy/atomic.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/include/haproxy/atomic.h b/include/haproxy/atomic.h index 3f26b6a..e21d7a3 100644 --- a/include/haproxy/atomic.h +++ b/include/haproxy/atomic.h @@ -504,17 +504,17 @@ static __inline int __ha_cas_dw(void *target, void *compare, void *set) uint64_t tmp1, tmp2; __asm__ __volatile__("1:" - "ldxp %0, %1, [%4];" - "mov %2, %0;" - "mov %3, %1;" - "eor %0, %0, %5;" - "eor %1, %1, %6;" - "orr %1, %0, %1;" - "mov %w0, #0;" - "cbnz %1, 2f;" - "stxp %w0, %7, %8, [%4];" - "cbnz %w0, 1b;" - "mov %w0, #1;" + "ldxp %0, %1, [%4]\n" + "mov %2, %0\n" + "mov %3, %1\n" + "eor %0, %0, %5\n" + "eor %1, %1, %6\n" + "orr %1, %0, %1\n" + "mov %w0, #0\n" + "cbnz %1, 2f\n" + "stxp %w0, %7, %8, [%4]\n" + "cbnz %w0, 1b\n" + "mov %w0, #1\n" "2:" : "=&r" (tmp1), "=&r" (tmp2), "=&r" (value[0]), "=&r" (value[1]) : "r" (target), "r" (((void **)(compare))[0]), "r" (((void **)(compare))[1]), "r" (((void **)(set))[0]), "r" (((void **)(set))[1]) -- 1.7.10.4