static inline int a_sc(volatile int *p, int v)
{
int r;
- __asm__ __volatile__ ("strex %0,%1,%2" : "=&r"(r) : "r"(v), "Q"(*p) : "memory");
+ __asm__ __volatile__ ("strex %0,%2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory");
return !r;
}
#define a_crash a_crash
static inline void a_crash()
{
- __asm__ __volatile__(".byte 0xf1, 0xde"
+ __asm__ __volatile__(
#ifndef __thumb__
- ", 0xfd, 0xe7"
+ ".word 0xe7f000f0"
+#else
+ ".short 0xdeff"
#endif
: : : "memory");
}