fix arm atomic asm register constraint

the "m" constraint could give a memory reference with an offset that's
not compatible with ldrex/strex, so the arm-specific "Q" constraint is
needed instead.
This commit is contained in:
Rich Felker 2014-04-07 04:28:12 -04:00
parent 1974bffa2d
commit efe07b0f89

View File

@ -37,7 +37,7 @@ static inline int __k_cas(int t, int s, volatile int *p)
" beq 1b\n"
" mcr p15,0,r0,c7,c10,5\n"
: "=&r"(ret)
: "r"(t), "r"(s), "m"(*p)
: "r"(t), "r"(s), "Q"(*p)
: "memory", "cc" );
return ret;
}