mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Force use of c-register in CAS instruction on x86-32 bit architecture, b-register used for push and pop, so don't want to give compile the chance to choose the wrong register
This commit is contained in:
@ -108,7 +108,7 @@
|
|||||||
int32 ebx=(set & 0xFFFFFFFF), ecx=(set >> 32); \
|
int32 ebx=(set & 0xFFFFFFFF), ecx=(set >> 32); \
|
||||||
asm volatile ("push %%ebx; movl %3, %%ebx;" \
|
asm volatile ("push %%ebx; movl %3, %%ebx;" \
|
||||||
LOCK_prefix "; cmpxchg8b %0; setz %2; pop %%ebx"\
|
LOCK_prefix "; cmpxchg8b %0; setz %2; pop %%ebx"\
|
||||||
: "+m" (*a), "+A" (*cmp), "=q" (ret) \
|
: "+m" (*a), "+A" (*cmp), "=c" (ret) \
|
||||||
:"m" (ebx), "c" (ecx))
|
:"m" (ebx), "c" (ecx))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user