+ " .set mips3 \n" \
+ "1: ll %0, %1 # load counter \n" \
+ " .set mips0 \n" \
+ " addu %0, 1 # increment \n" \
+ " .set mips3 \n" \
+ " sc %0, %1 # try to store, checking for atomicity \n" \
+ " .set mips0 \n" \
+ " beqz %0, 1b # if not atomic (0), try again \n" \
+ : "=&r" (temp), "=m" (ref.count) \
+ : "m" (ref.count) \
+ : ); \