"	 membar		#StoreLoad | #StoreStore\n"
"	 nop\n"
static void inline __write_lock(rwlock_t *lock){	unsigned long mask, tmp1, tmp2;	mask = 0x80000000UL;	__asm__ __volatile__("1:	lduw		[%2], %0\n""	brnz,pn		%0, 2f\n""4:	 or		%0, %3, %1\n""	cas		[%2], %0, %1\n""	cmp		%0, %1\n""	bne,pn		%%icc, 1b\n""	 membar		#StoreLoad | #StoreStore\n""	.subsection	2\n""2:	lduw		[%2], %0\n""	brnz,pt		%0, 2b\n""	 membar		#LoadLoad\n""	ba,a,pt		%%xcc, 4b\n""	.previous"	: "=&r" (tmp1), "=&r" (tmp2)	: "r" (lock), "r" (mask)	: "memory");}