Skip to content

Instantly share code, notes, and snippets.

@mpenick
Created May 12, 2015 00:43
Show Gist options
  • Select an option

  • Save mpenick/3d050379fd646a710ef6 to your computer and use it in GitHub Desktop.

Select an option

Save mpenick/3d050379fd646a710ef6 to your computer and use it in GitHub Desktop.
; Generated with: gcc-4.8 -O0 -S -Iinclude -Isrc/unix -Isrc src/unix/async.c
.file "async.c"
.text
.type uv__req_init, @function
uv__req_init:
.LFB2:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movl %edx, -20(%rbp)
movq -16(%rbp), %rax
movl -20(%rbp), %edx
movl %edx, 8(%rax)
movq -16(%rbp), %rax
addq $16, %rax
movq -8(%rbp), %rdx
addq $32, %rdx
movq %rdx, (%rax)
movq -16(%rbp), %rax
leaq 24(%rax), %rdx
movq -8(%rbp), %rax
movq 40(%rax), %rax
movq %rax, (%rdx)
movq -16(%rbp), %rax
addq $24, %rax
movq (%rax), %rax
movq -16(%rbp), %rdx
addq $16, %rdx
movq %rdx, (%rax)
movq -8(%rbp), %rax
addq $40, %rax
movq -16(%rbp), %rdx
addq $16, %rdx
movq %rdx, (%rax)
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2:
.size uv__req_init, .-uv__req_init
.type uv__update_time, @function
uv__update_time:
.LFB3:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movq %rdi, -8(%rbp)
movl $1, %edi
call uv__hrtime
movabsq $4835703278458516699, %rdx
mulq %rdx
shrq $18, %rdx
movq -8(%rbp), %rax
movq %rdx, 544(%rax)
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE3:
.size uv__update_time, .-uv__update_time
.type uv__basename_r, @function
uv__basename_r:
.LFB4:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -24(%rbp)
movq -24(%rbp), %rax
movl $47, %esi
movq %rax, %rdi
call strrchr
movq %rax, -8(%rbp)
cmpq $0, -8(%rbp)
jne .L4
movq -24(%rbp), %rax
jmp .L5
.L4:
movq -8(%rbp), %rax
addq $1, %rax
.L5:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE4:
.size uv__basename_r, .-uv__basename_r
.type cmpxchgi, @function
cmpxchgi:
.LFB5:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movl %esi, -12(%rbp)
movl %edx, -16(%rbp)
movl -16(%rbp), %ecx
movl -12(%rbp), %eax
movq -8(%rbp), %rdx
lock cmpxchgl %ecx, (%rdx)
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE5:
.size cmpxchgi, .-cmpxchgi
.type cmpxchgl, @function
cmpxchgl:
.LFB6:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq -24(%rbp), %rcx
movq -16(%rbp), %rax
movq -8(%rbp), %rdx
lock cmpxchgq %rcx, (%rdx)
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE6:
.size cmpxchgl, .-cmpxchgl
.type cpu_relax, @function
cpu_relax:
.LFB7:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
#APP
# 56 "src/unix/atomic-ops.h" 1
rep; nop
# 0 "" 2
#NO_APP
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE7:
.size cpu_relax, .-cpu_relax
.globl uv_async_init
.type uv_async_init, @function
uv_async_init:
.LFB8:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movq -24(%rbp), %rax
leaq 448(%rax), %rcx
movq -24(%rbp), %rax
movl $uv__async_event, %edx
movq %rcx, %rsi
movq %rax, %rdi
call uv__async_start
movl %eax, -4(%rbp)
cmpl $0, -4(%rbp)
je .L12
movl -4(%rbp), %eax
jmp .L13
.L12:
movq -32(%rbp), %rax
movq -24(%rbp), %rdx
movq %rdx, 8(%rax)
movq -32(%rbp), %rax
movl $1, 16(%rax)
movq -32(%rbp), %rax
movl $8192, 88(%rax)
movq -32(%rbp), %rax
addq $32, %rax
movq -24(%rbp), %rdx
addq $16, %rdx
movq %rdx, (%rax)
movq -32(%rbp), %rax
leaq 40(%rax), %rdx
movq -24(%rbp), %rax
movq 24(%rax), %rax
movq %rax, (%rdx)
movq -32(%rbp), %rax
addq $40, %rax
movq (%rax), %rax
movq -32(%rbp), %rdx
addq $32, %rdx
movq %rdx, (%rax)
movq -24(%rbp), %rax
addq $24, %rax
movq -32(%rbp), %rdx
addq $32, %rdx
movq %rdx, (%rax)
movq -32(%rbp), %rax
movq $0, 80(%rax)
movq -32(%rbp), %rax
movq -40(%rbp), %rdx
movq %rdx, 96(%rax)
movq -32(%rbp), %rax
movl $0, 120(%rax)
movq -32(%rbp), %rax
addq $104, %rax
movq -24(%rbp), %rdx
addq $432, %rdx
movq %rdx, (%rax)
movq -32(%rbp), %rax
leaq 112(%rax), %rdx
movq -24(%rbp), %rax
movq 440(%rax), %rax
movq %rax, (%rdx)
movq -32(%rbp), %rax
addq $112, %rax
movq (%rax), %rax
movq -32(%rbp), %rdx
addq $104, %rdx
movq %rdx, (%rax)
movq -24(%rbp), %rax
addq $440, %rax
movq -32(%rbp), %rdx
addq $104, %rdx
movq %rdx, (%rax)
movq -32(%rbp), %rax
movl 88(%rax), %eax
andl $16384, %eax
testl %eax, %eax
je .L14
jmp .L15
.L14:
movq -32(%rbp), %rax
movl 88(%rax), %eax
orb $64, %ah
movl %eax, %edx
movq -32(%rbp), %rax
movl %edx, 88(%rax)
movq -32(%rbp), %rax
movl 88(%rax), %eax
andl $8192, %eax
testl %eax, %eax
je .L15
movq -32(%rbp), %rax
movq 8(%rax), %rax
movl 8(%rax), %edx
addl $1, %edx
movl %edx, 8(%rax)
.L15:
movl $0, %eax
.L13:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE8:
.size uv_async_init, .-uv_async_init
.globl uv_async_send
.type uv_async_send, @function
uv_async_send:
.LFB9:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
addq $120, %rax
movl (%rax), %eax
testl %eax, %eax
je .L17
movl $0, %eax
jmp .L18
.L17:
movq -8(%rbp), %rax
addq $120, %rax
movl $1, %edx
movl $0, %esi
movq %rax, %rdi
call cmpxchgi
testl %eax, %eax
jne .L19
movq -8(%rbp), %rax
movq 8(%rax), %rax
addq $448, %rax
movq %rax, %rdi
call uv__async_send
.L19:
movl $0, %eax
.L18:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE9:
.size uv_async_send, .-uv_async_send
.globl uv__async_close
.type uv__async_close, @function
uv__async_close:
.LFB10:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
addq $112, %rax
movq (%rax), %rax
movq -8(%rbp), %rdx
movq 104(%rdx), %rdx
movq %rdx, (%rax)
movq -8(%rbp), %rax
addq $104, %rax
movq (%rax), %rax
leaq 8(%rax), %rdx
movq -8(%rbp), %rax
movq 112(%rax), %rax
movq %rax, (%rdx)
movq -8(%rbp), %rax
movl 88(%rax), %eax
andl $16384, %eax
testl %eax, %eax
jne .L21
jmp .L20
.L21:
movq -8(%rbp), %rax
movl 88(%rax), %eax
andb $191, %ah
movl %eax, %edx
movq -8(%rbp), %rax
movl %edx, 88(%rax)
movq -8(%rbp), %rax
movl 88(%rax), %eax
andl $8192, %eax
testl %eax, %eax
je .L20
movq -8(%rbp), %rax
movq 8(%rax), %rax
movl 8(%rax), %edx
subl $1, %edx
movl %edx, 8(%rax)
.L20:
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE10:
.size uv__async_close, .-uv__async_close
.type uv__async_event, @function
uv__async_event:
.LFB11:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movl %edx, -36(%rbp)
movq -24(%rbp), %rax
movq 432(%rax), %rax
movq %rax, -16(%rbp)
jmp .L24
.L28:
movq -16(%rbp), %rax
subq $104, %rax
movq %rax, -8(%rbp)
movq -8(%rbp), %rax
addq $120, %rax
movl $0, %edx
movl $1, %esi
movq %rax, %rdi
call cmpxchgi
testl %eax, %eax
jne .L25
jmp .L26
.L25:
movq -8(%rbp), %rax
movq 96(%rax), %rax
testq %rax, %rax
jne .L27
jmp .L26
.L27:
movq -8(%rbp), %rax
movq 96(%rax), %rax
movq -8(%rbp), %rdx
movq %rdx, %rdi
call *%rax
.L26:
movq -16(%rbp), %rax
movq (%rax), %rax
movq %rax, -16(%rbp)
.L24:
movq -24(%rbp), %rax
addq $432, %rax
cmpq -16(%rbp), %rax
jne .L28
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE11:
.size uv__async_event, .-uv__async_event
.section .rodata
.LC0:
.string "src/unix/async.c"
.LC1:
.string "n == sizeof(val)"
.text
.type uv__async_io, @function
uv__async_io:
.LFB12:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $1104, %rsp
movq %rdi, -1080(%rbp)
movq %rsi, -1088(%rbp)
movl %edx, -1092(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movl $0, -1068(%rbp)
.L36:
movq -1088(%rbp), %rax
movl 48(%rax), %eax
leaq -1040(%rbp), %rcx
movl $1024, %edx
movq %rcx, %rsi
movl %eax, %edi
call read
movq %rax, -1056(%rbp)
cmpq $0, -1056(%rbp)
jle .L30
movq -1056(%rbp), %rax
addl %eax, -1068(%rbp)
.L30:
cmpq $1024, -1056(%rbp)
jne .L31
jmp .L32
.L31:
cmpq $-1, -1056(%rbp)
je .L33
jmp .L34
.L33:
call __errno_location
movl (%rax), %eax
cmpl $11, %eax
je .L34
call __errno_location
movl (%rax), %eax
cmpl $11, %eax
je .L34
call __errno_location
movl (%rax), %eax
cmpl $4, %eax
jne .L35
jmp .L32
.L35:
call abort
.L32:
jmp .L36
.L34:
movq -1088(%rbp), %rax
subq $8, %rax
movq %rax, -1048(%rbp)
movq -1048(%rbp), %rax
movl 64(%rax), %eax
cmpl $-1, %eax
jne .L37
cmpl $8, -1068(%rbp)
je .L38
movl $__PRETTY_FUNCTION__.7457, %ecx
movl $130, %edx
movl $.LC0, %esi
movl $.LC1, %edi
call __assert_fail
.L38:
movq -1040(%rbp), %rax
movq %rax, -1064(%rbp)
movq -1048(%rbp), %rax
movq (%rax), %rax
movq -1064(%rbp), %rdx
movq -1048(%rbp), %rsi
movq -1080(%rbp), %rcx
movq %rcx, %rdi
call *%rax
nop
jmp .L29
.L37:
movq -1048(%rbp), %rax
movq (%rax), %rax
movl -1068(%rbp), %edx
movq -1048(%rbp), %rsi
movq -1080(%rbp), %rcx
movq %rcx, %rdi
call *%rax
.L29:
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L40
call __stack_chk_fail
.L40:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE12:
.size uv__async_io, .-uv__async_io
.section .rodata
.LC2:
.string ""
.text
.globl uv__async_send
.type uv__async_send, @function
uv__async_send:
.LFB13:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -40(%rbp)
movq $.LC2, -16(%rbp)
movq $1, -8(%rbp)
movq -40(%rbp), %rax
movl 64(%rax), %eax
movl %eax, -24(%rbp)
cmpl $-1, -24(%rbp)
jne .L42
movq $val.7465, -16(%rbp)
movq $8, -8(%rbp)
movq -40(%rbp), %rax
movl 56(%rax), %eax
movl %eax, -24(%rbp)
.L42:
movq -8(%rbp), %rdx
movq -16(%rbp), %rcx
movl -24(%rbp), %eax
movq %rcx, %rsi
movl %eax, %edi
call write
movl %eax, -20(%rbp)
cmpl $-1, -20(%rbp)
jne .L43
call __errno_location
movl (%rax), %eax
cmpl $4, %eax
je .L42
.L43:
movl -20(%rbp), %eax
cltq
cmpq -8(%rbp), %rax
jne .L44
jmp .L41
.L44:
cmpl $-1, -20(%rbp)
jne .L46
call __errno_location
movl (%rax), %eax
cmpl $11, %eax
je .L47
call __errno_location
movl (%rax), %eax
cmpl $11, %eax
jne .L46
.L47:
jmp .L41
.L46:
call abort
.L41:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE13:
.size uv__async_send, .-uv__async_send
.globl uv__async_init
.type uv__async_init, @function
uv__async_init:
.LFB14:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
movl $-1, 56(%rax)
movq -8(%rbp), %rax
movl $-1, 64(%rax)
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE14:
.size uv__async_init, .-uv__async_init
.section .rodata
.LC3:
.string "/proc/self/fd/%d"
.text
.globl uv__async_start
.type uv__async_start, @function
uv__async_start:
.LFB15:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
pushq %rbx
subq $120, %rsp
.cfi_offset 3, -24
movq %rdi, -104(%rbp)
movq %rsi, -112(%rbp)
movq %rdx, -120(%rbp)
movq %fs:40, %rax
movq %rax, -24(%rbp)
xorl %eax, %eax
movq -112(%rbp), %rax
movl 56(%rax), %eax
cmpl $-1, %eax
je .L50
movl $0, %eax
jmp .L56
.L50:
call uv__async_eventfd
movl %eax, -88(%rbp)
cmpl $0, -88(%rbp)
js .L52
movl -88(%rbp), %eax
movl %eax, -80(%rbp)
movl $-1, -76(%rbp)
jmp .L53
.L52:
cmpl $-38, -88(%rbp)
jne .L53
leaq -80(%rbp), %rax
movl $2048, %esi
movq %rax, %rdi
call uv__make_pipe
movl %eax, -88(%rbp)
cmpl $0, -88(%rbp)
jne .L53
movl -80(%rbp), %edx
leaq -64(%rbp), %rax
movl %edx, %ecx
movl $.LC3, %edx
movl $32, %esi
movq %rax, %rdi
movl $0, %eax
call snprintf
leaq -64(%rbp), %rax
movl $2, %esi
movq %rax, %rdi
call uv__open_cloexec
movl %eax, -84(%rbp)
cmpl $0, -84(%rbp)
js .L53
movl -80(%rbp), %eax
movl %eax, %edi
call uv__close
movl -76(%rbp), %eax
movl %eax, %edi
call uv__close
movl -84(%rbp), %eax
movl %eax, -80(%rbp)
movl -84(%rbp), %eax
movl %eax, -76(%rbp)
.L53:
cmpl $0, -88(%rbp)
jns .L55
movl -88(%rbp), %eax
jmp .L56
.L55:
movl -80(%rbp), %eax
movq -112(%rbp), %rdx
leaq 8(%rdx), %rcx
movl %eax, %edx
movl $uv__async_io, %esi
movq %rcx, %rdi
call uv__io_init
movq -112(%rbp), %rax
leaq 8(%rax), %rcx
movq -104(%rbp), %rax
movl $1, %edx
movq %rcx, %rsi
movq %rax, %rdi
call uv__io_start
movl -76(%rbp), %edx
movq -112(%rbp), %rax
movl %edx, 64(%rax)
movq -112(%rbp), %rax
movq -120(%rbp), %rdx
movq %rdx, (%rax)
movl $0, %eax
.L56:
movq -24(%rbp), %rbx
xorq %fs:40, %rbx
je .L57
call __stack_chk_fail
.L57:
addq $120, %rsp
popq %rbx
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE15:
.size uv__async_start, .-uv__async_start
.globl uv__async_stop
.type uv__async_stop, @function
uv__async_stop:
.LFB16:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -16(%rbp), %rax
movl 56(%rax), %eax
cmpl $-1, %eax
jne .L59
jmp .L58
.L59:
movq -16(%rbp), %rax
movl 64(%rax), %eax
cmpl $-1, %eax
je .L61
movq -16(%rbp), %rax
movl 64(%rax), %edx
movq -16(%rbp), %rax
movl 56(%rax), %eax
cmpl %eax, %edx
je .L62
movq -16(%rbp), %rax
movl 64(%rax), %eax
movl %eax, %edi
call uv__close
.L62:
movq -16(%rbp), %rax
movl $-1, 64(%rax)
.L61:
movq -16(%rbp), %rax
leaq 8(%rax), %rcx
movq -8(%rbp), %rax
movl $1, %edx
movq %rcx, %rsi
movq %rax, %rdi
call uv__io_stop
movq -16(%rbp), %rax
movl 56(%rax), %eax
movl %eax, %edi
call uv__close
movq -16(%rbp), %rax
movl $-1, 56(%rax)
.L58:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE16:
.size uv__async_stop, .-uv__async_stop
.type uv__async_eventfd, @function
uv__async_eventfd:
.LFB17:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movl no_eventfd2.7486(%rip), %eax
testl %eax, %eax
je .L64
jmp .L65
.L64:
movl $526336, %esi
movl $0, %edi
call uv__eventfd2
movl %eax, -4(%rbp)
cmpl $-1, -4(%rbp)
je .L66
movl -4(%rbp), %eax
jmp .L67
.L66:
call __errno_location
movl (%rax), %eax
cmpl $38, %eax
je .L68
call __errno_location
movl (%rax), %eax
negl %eax
jmp .L67
.L68:
movl $1, no_eventfd2.7486(%rip)
.L65:
movl no_eventfd.7487(%rip), %eax
testl %eax, %eax
je .L69
jmp .L70
.L69:
movl $0, %edi
call uv__eventfd
movl %eax, -4(%rbp)
cmpl $-1, -4(%rbp)
je .L71
movl -4(%rbp), %eax
movl $1, %esi
movl %eax, %edi
call uv__cloexec
movl -4(%rbp), %eax
movl $1, %esi
movl %eax, %edi
call uv__nonblock
movl -4(%rbp), %eax
jmp .L67
.L71:
call __errno_location
movl (%rax), %eax
cmpl $38, %eax
je .L72
call __errno_location
movl (%rax), %eax
negl %eax
jmp .L67
.L72:
movl $1, no_eventfd.7487(%rip)
.L70:
movl $-38, %eax
.L67:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE17:
.size uv__async_eventfd, .-uv__async_eventfd
.section .rodata
.type __PRETTY_FUNCTION__.7457, @object
.size __PRETTY_FUNCTION__.7457, 13
__PRETTY_FUNCTION__.7457:
.string "uv__async_io"
.align 8
.type val.7465, @object
.size val.7465, 8
val.7465:
.quad 1
.local no_eventfd2.7486
.comm no_eventfd2.7486,4,4
.local no_eventfd.7487
.comm no_eventfd.7487,4,4
.ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2"
.section .note.GNU-stack,"",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment