summaryrefslogtreecommitdiff
path: root/include/atomic
diff options
context:
space:
mode:
authorMikael Ronstrom <mikael@mysql.com>2009-12-21 14:08:11 +0100
committerMikael Ronstrom <mikael@mysql.com>2009-12-21 14:08:11 +0100
commitec93c3ed238c591b0167a8d7f08772308f4e7bd5 (patch)
treeb5c2538f72d550bb8f8398ade3d2dc07cb51e96e /include/atomic
parentd4f23f0cf6db38731a161c5c7b0b056fc67e5c02 (diff)
downloadmariadb-git-ec93c3ed238c591b0167a8d7f08772308f4e7bd5.tar.gz
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
Diffstat (limited to 'include/atomic')
-rw-r--r--include/atomic/x86-gcc.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/atomic/x86-gcc.h b/include/atomic/x86-gcc.h
index 32839e0a67d..77c32f8d70c 100644
--- a/include/atomic/x86-gcc.h
+++ b/include/atomic/x86-gcc.h
@@ -108,7 +108,7 @@
int32 ebx=(set & 0xFFFFFFFF), ecx=(set >> 32); \
asm volatile ("push %%ebx; movl %3, %%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))
#endif