1
1
openmpi/opal/asm/base/AMD64.asm
Brian Barrett aa28207fdc don't include gas assembler hints
This commit was SVN r8400.
2005-12-07 18:18:36 +00:00

80 строки
1.3 KiB
NASM

START_FILE
TEXT
START_FUNC(opal_atomic_mb)
pushq %rbp
movq %rsp, %rbp
leave
ret
END_FUNC(opal_atomic_mb)
START_FUNC(opal_atomic_rmb)
pushq %rbp
movq %rsp, %rbp
leave
ret
END_FUNC(opal_atomic_rmb)
START_FUNC(opal_atomic_wmb)
pushq %rbp
movq %rsp, %rbp
leave
ret
END_FUNC(opal_atomic_wmb)
START_FUNC(opal_atomic_cmpset_32)
pushq %rbp
movq %rsp, %rbp
movq %rdi, -8(%rbp)
movl %esi, -12(%rbp)
movl %edx, -16(%rbp)
movl -16(%rbp), %ecx
movq -8(%rbp), %rdx
movl -12(%rbp), %eax
cmpxchgl %ecx,(%rdx)
movq %rax, -24(%rbp)
movl -24(%rbp), %eax
movl %eax, -28(%rbp)
movl -28(%rbp), %eax
cmpl -12(%rbp), %eax
sete %al
movzbl %al, %eax
movl %eax, -28(%rbp)
movl -28(%rbp), %eax
leave
ret
END_FUNC(opal_atomic_cmpset_32)
START_FUNC(opal_atomic_cmpset_64)
pushq %rbp
movq %rsp, %rbp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq -24(%rbp), %rcx
movq -8(%rbp), %rdx
movq -16(%rbp), %rax
cmpxchgq %rcx,(%rdx)
movq %rax, -32(%rbp)
movq -32(%rbp), %rax
cmpq -16(%rbp), %rax
sete %al
movzbl %al, %eax
leave
ret
END_FUNC(opal_atomic_cmpset_64)
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)