"0:  cs    %0,0,%1\n"
"0:  cs    %0,0,0(1)\n"
testandset (int *spinlock){  int ret;  __asm__ __volatile__(       "    lhi   0,1\n"       "    l     %0,%1\n"       "0:  cs    %0,0,%1\n"       "    jl    0b"       : "=&d" (ret), "+m" (*spinlock)       : : "0", "cc");  return ret;}