Commit 710dff70 authored by MySQL Build Team's avatar MySQL Build Team

Apply fix for bug#45131, "Problems building on 32-bit linux".

As described in the bug, the problem is not new in 5.4, but newly tickled.
We need a register whose lower 8 bits can be accessed, and must request
such from the assembler.  Using a "q" constraint instead of "r" constraint
accomplishes this.
parent 8ad23719
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
asm volatile (LOCK "; xadd %0, %1;" : "+r" (v) , "+m" (*a)) asm volatile (LOCK "; xadd %0, %1;" : "+r" (v) , "+m" (*a))
#endif #endif
#define make_atomic_swap_body(S) \ #define make_atomic_swap_body(S) \
asm volatile ("; xchg %0, %1;" : "+r" (v) , "+m" (*a)) asm volatile ("; xchg %0, %1;" : "+q" (v) , "+m" (*a))
#define make_atomic_cas_body(S) \ #define make_atomic_cas_body(S) \
asm volatile (LOCK "; cmpxchg %3, %0; setz %2;" \ asm volatile (LOCK "; cmpxchg %3, %0; setz %2;" \
: "+m" (*a), "+a" (*cmp), "=q" (ret): "r" (set)) : "+m" (*a), "+a" (*cmp), "=q" (ret): "r" (set))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment