__asm__ __volatile__ (".set noreorder\n"  "mb; ldq_l %0,%2\n"  "or $31,2,%1\n"  ".set reorder" : "=r" (__tmp), "=r" (__rtn) : "m" (__lock));
__asm__ __volatile__ ("mb; ldq_l %0,%1"  : "=r" (__tmp) : "m" (*__lock)); __rtn = 2;
__spin_try_lock (register __spin_lock_t *__lock){  register long int __rtn, __tmp;  do    {      __asm__ __volatile__ (".set noreorder\n"			    /* %0 is TMP, %1 is RTN, %2 is LOCK.  */			    "mb; ldq_l %0,%2\n" /* Load lock into TMP.  */			    "or $31,2,%1\n" /* Locked value in RTN.  */			    ".set reorder"			    : "=r" (__tmp), "=r" (__rtn) : "m" (__lock));      if (__tmp)	/* The lock is already taken.  */	return 0;      /* The lock is not taken; try to get it now.  */      __asm__ __volatile__ ("stq_c %0,%1" : "+r" (__rtn), "+m" (__lock));      /* RTN is clear if stq_c was interrupted; loop to try the lock again.  */   } while (! __rtn);  /* RTN is now nonzero; we have the lock.  */  return __rtn;}