mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-02-27 04:01:45 +01:00
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.
This commit is contained in:
parent
5dcec7e539
commit
63ee281854
@ -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])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user