diff options
author | Mikael Ronstrom <mikael@mysql.com> | 2009-12-21 14:08:11 +0100 |
---|---|---|
committer | Mikael Ronstrom <mikael@mysql.com> | 2009-12-21 14:08:11 +0100 |
commit | ec93c3ed238c591b0167a8d7f08772308f4e7bd5 (patch) | |
tree | b5c2538f72d550bb8f8398ade3d2dc07cb51e96e | |
parent | d4f23f0cf6db38731a161c5c7b0b056fc67e5c02 (diff) | |
download | mariadb-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
-rw-r--r-- | include/atomic/x86-gcc.h | 2 |
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 |