12345678910111213141516171819202122232425262728293031323334353637383940 |
- #include "pthreadP.h"
- int
- pthread_spin_lock (pthread_spinlock_t *lock)
- {
- __asm__ __volatile
- ("1: ldstub [%0], %%g2\n"
- " orcc %%g2, 0x0, %%g0\n"
- " bne,a 2f\n"
- " ldub [%0], %%g2\n"
- ".subsection 2\n"
- "2: orcc %%g2, 0x0, %%g0\n"
- " bne,a 2b\n"
- " ldub [%0], %%g2\n"
- " b,a 1b\n"
- ".previous"
- :
- : "r" (lock)
- : "g2", "memory", "cc");
- return 0;
- }
|