(".set	mips2\n\t" "/* Inline spinlock test & set */\n\t"
("/* Inline spinlock test & set */\n\t"
testandset (int *spinlock){  long int ret, temp;  __asm__ __volatile__    (".set	mips2\n\t"     "/* Inline spinlock test & set */\n\t"     "1:\n\t"     "ll	%0,%3\n\t"     ".set	push\n\t"     ".set	noreorder\n\t"     "bnez	%0,2f\n\t"     " li	%1,1\n\t"     ".set	pop\n\t"     "sc	%1,%2\n\t"     "beqz	%1,1b\n"     "2:\n\t"     "/* End spinlock test & set */"     : "=&r" (ret), "=&r" (temp), "=m" (*spinlock)     : "m" (*spinlock)     : "memory");  return ret;}