2005-02-10 00:06:54 +00:00
|
|
|
START_FILE
|
2005-01-27 01:39:55 +00:00
|
|
|
TEXT
|
|
|
|
|
2005-07-03 21:38:51 +00:00
|
|
|
START_FUNC(opal_atomic_mb)
|
2005-01-27 01:39:55 +00:00
|
|
|
pushq %rbp
|
|
|
|
movq %rsp, %rbp
|
|
|
|
leave
|
|
|
|
ret
|
2005-07-03 21:38:51 +00:00
|
|
|
END_FUNC(opal_atomic_mb)
|
2005-01-27 01:39:55 +00:00
|
|
|
|
|
|
|
|
2005-07-03 21:38:51 +00:00
|
|
|
START_FUNC(opal_atomic_rmb)
|
2005-01-27 01:39:55 +00:00
|
|
|
pushq %rbp
|
|
|
|
movq %rsp, %rbp
|
|
|
|
leave
|
|
|
|
ret
|
2005-07-03 21:38:51 +00:00
|
|
|
END_FUNC(opal_atomic_rmb)
|
2005-01-27 01:39:55 +00:00
|
|
|
|
|
|
|
|
2005-07-03 21:38:51 +00:00
|
|
|
START_FUNC(opal_atomic_wmb)
|
2005-01-27 01:39:55 +00:00
|
|
|
pushq %rbp
|
|
|
|
movq %rsp, %rbp
|
|
|
|
leave
|
|
|
|
ret
|
2005-07-03 21:38:51 +00:00
|
|
|
END_FUNC(opal_atomic_wmb)
|
2005-01-27 01:39:55 +00:00
|
|
|
|
|
|
|
|
2005-07-03 21:38:51 +00:00
|
|
|
START_FUNC(opal_atomic_cmpset_32)
|
2006-04-06 01:23:33 +00:00
|
|
|
movl %esi, %eax
|
|
|
|
lock; cmpxchgl %edx,(%rdi)
|
|
|
|
sete %dl
|
|
|
|
movzbl %dl, %eax
|
|
|
|
ret
|
2005-07-03 21:38:51 +00:00
|
|
|
END_FUNC(opal_atomic_cmpset_32)
|
2005-01-27 01:39:55 +00:00
|
|
|
|
|
|
|
|
2005-07-03 21:38:51 +00:00
|
|
|
START_FUNC(opal_atomic_cmpset_64)
|
2006-04-06 01:23:33 +00:00
|
|
|
movq %rsi, %rax
|
|
|
|
lock; cmpxchgq %rdx,(%rdi)
|
|
|
|
sete %dl
|
|
|
|
movzbl %dl, %eax
|
|
|
|
ret
|
2005-07-03 21:38:51 +00:00
|
|
|
END_FUNC(opal_atomic_cmpset_64)
|
2005-08-23 22:07:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
START_FUNC(opal_sys_timer_get_cycles)
|
|
|
|
rdtsc
|
|
|
|
salq $32, %rdx
|
|
|
|
mov %eax, %eax
|
|
|
|
orq %rdx, %rax
|
|
|
|
ret
|
|
|
|
END_FUNC(opal_sys_timer_get_cycles)
|