# ifndef __INTEL_COMPILER
__asm__ __volatile__("xchg4 %0=%1,%2"
: "=r"(oldval), "=m"(*addr)
- : "r"(n), "1"(*addr) : "memory");
+ : "r"(n) : "memory");
# else
oldval = _InterlockedExchange(addr, n);
# endif
* this code will likely need to be updated. */
/* See linuxthreads/sysdeps/arm/pt-machine.h in glibc-2.1 */
__asm__ __volatile__("swp %0, %1, [%2]"
- : "=r"(oldval)
+ : "=&r"(oldval)
: "r"(1), "r"(addr)
: "memory");
return oldval;