START_FILE TEXT ALIGN(4) START_FUNC(opal_atomic_mb) !#PROLOGUE# 0 !#PROLOGUE# 1 membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad retl nop END_FUNC(opal_atomic_mb) START_FUNC(opal_atomic_rmb) !#PROLOGUE# 0 !#PROLOGUE# 1 membar #LoadLoad retl nop END_FUNC(opal_atomic_rmb) START_FUNC(opal_atomic_wmb) !#PROLOGUE# 0 !#PROLOGUE# 1 membar #StoreStore retl nop END_FUNC(opal_atomic_wmb) START_FUNC(opal_atomic_cmpset_32) !#PROLOGUE# 0 !#PROLOGUE# 1 casa [%o0] 0x80, %o1, %o2 xor %o2, %o1, %o2 subcc %g0, %o2, %g0 retl subx %g0, -1, %o0 END_FUNC(opal_atomic_cmpset_32) START_FUNC(opal_atomic_cmpset_acq_32) !#PROLOGUE# 0 !#PROLOGUE# 1 casa [%o0] 0x80, %o1, %o2 xor %o2, %o1, %o2 subcc %g0, %o2, %g0 subx %g0, -1, %o0 membar #LoadLoad retl sra %o0, 0, %o0 END_FUNC(opal_atomic_cmpset_acq_32) START_FUNC(opal_atomic_cmpset_rel_32) !#PROLOGUE# 0 !#PROLOGUE# 1 membar #StoreStore casa [%o0] 0x80, %o1, %o2 xor %o2, %o1, %o2 subcc %g0, %o2, %g0 retl subx %g0, -1, %o0 END_FUNC(opal_atomic_cmpset_rel_32) START_FUNC(opal_atomic_cmpset_64) !#PROLOGUE# 0 !#PROLOGUE# 1 casxa [%o0] 0x80, %o1, %o2 mov 0, %o0 xor %o2, %o1, %o2 retl movre %o2, 1, %o0 END_FUNC(opal_atomic_cmpset_64) START_FUNC(opal_atomic_cmpset_acq_64) !#PROLOGUE# 0 !#PROLOGUE# 1 casxa [%o0] 0x80, %o1, %o2 mov 0, %o0 xor %o2, %o1, %o2 movre %o2, 1, %o0 membar #LoadLoad retl sra %o0, 0, %o0 END_FUNC(opal_atomic_cmpset_acq_64) START_FUNC(opal_atomic_cmpset_rel_64) !#PROLOGUE# 0 !#PROLOGUE# 1 membar #StoreStore casxa [%o0] 0x80, %o1, %o2 mov 0, %o0 xor %o2, %o1, %o2 retl movre %o2, 1, %o0 END_FUNC(opal_atomic_cmpset_rel_64) START_FUNC(opal_sys_timer_get_cycles) save %sp,-176,%sp rd %tick,%o0 ret ! Result = %i0 restore %o0,0,%o0 END_FUNC(opal_sys_timer_get_cycles)