Skip to content

Instantly share code, notes, and snippets.

@saethlin
Created May 14, 2017 02:33
Show Gist options
  • Save saethlin/168af45f0775604e873b20fb3c8eb3bb to your computer and use it in GitHub Desktop.
Save saethlin/168af45f0775604e873b20fb3c8eb3bb to your computer and use it in GitHub Desktop.
leapfrog with some explicit loops
----------------------------------ASSEMBLY nrt----------------------------------
.text
.file "<string>"
.globl nrt_atomic_add
.p2align 4, 0x90
.type nrt_atomic_add,@function
nrt_atomic_add:
movl $1, %eax
lock xaddq %rax, (%rdi)
addq $1, %rax
retq
.Lfunc_end0:
.size nrt_atomic_add, .Lfunc_end0-nrt_atomic_add
.globl nrt_atomic_sub
.p2align 4, 0x90
.type nrt_atomic_sub,@function
nrt_atomic_sub:
movq $-1, %rax
lock xaddq %rax, (%rdi)
addq $-1, %rax
retq
.Lfunc_end1:
.size nrt_atomic_sub, .Lfunc_end1-nrt_atomic_sub
.globl nrt_atomic_cas
.p2align 4, 0x90
.type nrt_atomic_cas,@function
nrt_atomic_cas:
xorl %r8d, %r8d
movq %rsi, %rax
lock cmpxchgq %rdx, (%rdi)
sete %r8b
movq %rax, (%rcx)
movl %r8d, %eax
retq
.Lfunc_end2:
.size nrt_atomic_cas, .Lfunc_end2-nrt_atomic_cas
.globl NRT_MemInfo_data_fast
.p2align 4, 0x90
.type NRT_MemInfo_data_fast,@function
NRT_MemInfo_data_fast:
movq 24(%rdi), %rax
retq
.Lfunc_end3:
.size NRT_MemInfo_data_fast, .Lfunc_end3-NRT_MemInfo_data_fast
.globl NRT_incref
.p2align 4, 0x90
.type NRT_incref,@function
NRT_incref:
testq %rdi, %rdi
je .LBB4_1
lock addq $1, (%rdi)
retq
.LBB4_1:
retq
.Lfunc_end4:
.size NRT_incref, .Lfunc_end4-NRT_incref
.globl NRT_decref
.p2align 4, 0x90
.type NRT_decref,@function
NRT_decref:
.cfi_startproc
testq %rdi, %rdi
je .LBB5_2
movq $-1, %rax
lock xaddq %rax, (%rdi)
cmpq $1, %rax
je .LBB5_3
.LBB5_2:
retq
.LBB5_3:
movabsq $NRT_MemInfo_call_dtor, %rax
jmpq *%rax
.Lfunc_end5:
.size NRT_decref, .Lfunc_end5-NRT_decref
.cfi_endproc
.globl nrt_unresolved_abort
.p2align 4, 0x90
.type nrt_unresolved_abort,@function
nrt_unresolved_abort:
movabsq $.const.picklebuf.140174803665544, %rax
movq %rax, (%rsi)
movl $1, %eax
retq
.Lfunc_end6:
.size nrt_unresolved_abort, .Lfunc_end6-nrt_unresolved_abort
.type .const.picklebuf.140174803665544,@object
.section .rodata,"a",@progbits
.p2align 3
.const.picklebuf.140174803665544:
.quad .const.pickledata.140174803665544
.long 101
.zero 4
.size .const.picklebuf.140174803665544, 16
.type .const.pickledata.140174803665544,@object
.p2align 4
.const.pickledata.140174803665544:
.ascii "\200\004\225Z\000\000\000\000\000\000\000\214\bbuiltins\224\214\fRuntimeError\224\223\224\2146numba jitted function aborted due to unresolved symbol\224\205\224\206\224."
.size .const.pickledata.140174803665544, 101
.section ".note.GNU-stack","",@progbits
================================================================================
-------------------------------ASSEMBLY leapfrog--------------------------------
.text
.file "<string>"
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
.LCPI0_0:
.quad 4585925428558828667
.LCPI0_1:
.quad 4590429028186199163
.LCPI0_2:
.quad 4645133162144333824
.LCPI0_3:
.quad -4768654942473954831
.text
.globl _ZN8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE
.p2align 4, 0x90
.type _ZN8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE,@function
_ZN8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE:
.cfi_startproc
pushq %rbp
.Lcfi0:
.cfi_def_cfa_offset 16
pushq %r15
.Lcfi1:
.cfi_def_cfa_offset 24
pushq %r14
.Lcfi2:
.cfi_def_cfa_offset 32
pushq %r13
.Lcfi3:
.cfi_def_cfa_offset 40
pushq %r12
.Lcfi4:
.cfi_def_cfa_offset 48
pushq %rbx
.Lcfi5:
.cfi_def_cfa_offset 56
subq $184, %rsp
.Lcfi6:
.cfi_def_cfa_offset 240
.Lcfi7:
.cfi_offset %rbx, -56
.Lcfi8:
.cfi_offset %r12, -48
.Lcfi9:
.cfi_offset %r13, -40
.Lcfi10:
.cfi_offset %r14, -32
.Lcfi11:
.cfi_offset %r15, -24
.Lcfi12:
.cfi_offset %rbp, -16
movq %r9, 40(%rsp)
movq %r8, 32(%rsp)
movq %rsi, 56(%rsp)
movq %rdi, 48(%rsp)
movq 432(%rsp), %rbp
movq 408(%rsp), %r15
movq 360(%rsp), %r13
movq 288(%rsp), %r12
movq 264(%rsp), %r14
movabsq $NRT_incref, %rbx
movq %rcx, 24(%rsp)
movq %rcx, %rdi
callq *%rbx
movq %r12, %rdi
callq *%rbx
movq %r13, %rdi
movq 400(%rsp), %r13
callq *%rbx
movq %rbp, %rdi
callq *%rbx
movq 336(%rsp), %rsi
movq 248(%rsp), %r8
movq %r13, %rax
sarq $63, %rax
andq %r13, %rax
movq %rax, 136(%rsp)
imulq %r15, %rax
movq %r15, %rcx
notq %rcx
cmpq $-2, %rcx
movq $-1, %rdx
cmovgq %rcx, %rdx
leaq (%rdx,%r15), %rcx
leaq 8(,%rcx,8), %r9
leaq (%r14,%r14), %rdi
leaq (%rsi,%rsi), %rbp
leaq 1(%r14,%r14), %rcx
leaq 1(%rsi,%rsi), %r10
leaq (%r15,%r15), %rbx
movq %rbx, 88(%rsp)
leaq 1(%r15,%r15), %rbx
movq %rbx, 80(%rsp)
testq %r13, %r13
setle %r11b
testq %r15, %r15
setle %bl
orb %r11b, %bl
movb %bl, 7(%rsp)
addq $-1, %rax
subq %rdx, %rax
movq 320(%rsp), %rdx
movq 392(%rsp), %rbx
leaq (%rbx,%rax,8), %rax
movq %rax, 128(%rsp)
leaq (,%r15,8), %rax
movq %rax, 160(%rsp)
leaq (,%r14,8), %rbx
movabsq $.LCPI0_0, %rax
vmovsd (%rax), %xmm8
movabsq $.LCPI0_3, %rax
vmovsd (%rax), %xmm0
movabsq $.LCPI0_1, %rax
vmovsd (%rax), %xmm1
vmovsd %xmm1, 72(%rsp)
movabsq $.LCPI0_2, %rax
vmovsd (%rax), %xmm1
vmovsd %xmm1, 64(%rsp)
vxorpd %xmm2, %xmm2, %xmm2
movq %r9, 16(%rsp)
movq %rdi, 120(%rsp)
movq %rbp, 112(%rsp)
movq %rcx, 104(%rsp)
movq %r10, 96(%rsp)
vmovsd %xmm8, 152(%rsp)
vmovsd %xmm0, 144(%rsp)
.LBB0_1:
vmovsd %xmm2, 8(%rsp)
vmulsd (%rdx), %xmm8, %xmm0
vaddsd (%r8), %xmm0, %xmm0
vmovsd %xmm0, (%r8)
vmulsd 8(%rdx), %xmm8, %xmm0
vaddsd 8(%r8), %xmm0, %xmm0
vmovsd %xmm0, 8(%r8)
vmulsd 16(%rdx), %xmm8, %xmm0
vaddsd 16(%r8), %xmm0, %xmm0
vmovsd %xmm0, 16(%r8)
vmulsd (%rdx,%rsi,8), %xmm8, %xmm0
vaddsd (%r8,%r14,8), %xmm0, %xmm0
vmovsd %xmm0, (%r8,%r14,8)
vmulsd 8(%rdx,%rsi,8), %xmm8, %xmm0
vaddsd 8(%r8,%r14,8), %xmm0, %xmm0
vmovsd %xmm0, 8(%r8,%r14,8)
vmulsd 16(%rdx,%rsi,8), %xmm8, %xmm0
vaddsd 16(%r8,%r14,8), %xmm0, %xmm0
vmovsd %xmm0, 16(%r8,%r14,8)
vmulsd (%rdx,%rbp,8), %xmm8, %xmm0
vaddsd (%r8,%rdi,8), %xmm0, %xmm0
vmovsd %xmm0, (%r8,%rdi,8)
vmulsd (%rdx,%r10,8), %xmm8, %xmm0
vaddsd (%r8,%rcx,8), %xmm0, %xmm0
vmovsd %xmm0, (%r8,%rcx,8)
vmulsd 16(%rdx,%rbp,8), %xmm8, %xmm0
vaddsd 16(%r8,%rdi,8), %xmm0, %xmm0
vmovsd %xmm0, 16(%r8,%rdi,8)
cmpb $0, 7(%rsp)
movq 160(%rsp), %r12
jne .LBB0_4
movq 128(%rsp), %r15
movq 136(%rsp), %rbp
.p2align 4, 0x90
.LBB0_3:
xorl %esi, %esi
movq %r15, %rdi
movq %r9, %rdx
movabsq $memset, %rax
callq *%rax
movq 16(%rsp), %r9
addq $1, %rbp
addq %r12, %r15
cmpq %r13, %rbp
jl .LBB0_3
.LBB0_4:
vmovsd 152(%rsp), %xmm8
vaddsd 8(%rsp), %xmm8, %xmm9
movl $3, %r10d
xorl %r11d, %r11d
movq 248(%rsp), %r8
vxorps %xmm7, %xmm7, %xmm7
vmovsd 144(%rsp), %xmm0
.p2align 4, 0x90
.LBB0_5:
movq %r11, %rsi
movq %r10, %rbp
leaq -1(%rbp), %r10
movq %rsi, %rax
imulq %r14, %rax
movq %rax, 8(%rsp)
movq %rsi, %r13
imulq 408(%rsp), %r13
leaq 1(%rsi), %r11
xorl %eax, %eax
leaq -1(%rax), %rax
xorl %r15d, %r15d
movq %r8, %rdi
movq 464(%rsp), %rdx
movl $3, %ecx
testq %rcx, %rcx
jg .LBB0_11
jmp .LBB0_6
.LBB0_9:
addq $1, %rax
vdivsd %xmm4, %xmm0, %xmm4
andq 472(%rsp), %r12
addq %r15, %r12
vmulsd -8(%rdx,%r12,8), %xmm4, %xmm4
vmulsd %xmm4, %xmm3, %xmm3
movq 392(%rsp), %rdx
vaddsd (%rdx,%r13,8), %xmm3, %xmm3
vmovsd %xmm3, (%rdx,%r13,8)
vmulsd %xmm4, %xmm2, %xmm2
vaddsd 8(%rdx,%r13,8), %xmm2, %xmm2
vmovsd %xmm2, 8(%rdx,%r13,8)
vmulsd %xmm4, %xmm1, %xmm1
vaddsd 16(%rdx,%r13,8), %xmm1, %xmm1
vmovsd %xmm1, 16(%rdx,%r13,8)
movq %rax, %r15
leaq -1(%rax), %rax
movq %r8, %rdi
movq %r11, %rdx
movq 16(%rsp), %r9
movq 168(%rsp), %r11
movq 176(%rsp), %rbp
.p2align 4, 0x90
.LBB0_10:
testq %rcx, %rcx
jle .LBB0_6
.LBB0_11:
addq $-1, %rcx
addq $8, %rdx
addq %rbx, %rdi
addq $1, %rax
cmpq %rax, %rsi
je .LBB0_10
movq %rbp, 176(%rsp)
movq %r11, 168(%rsp)
movq 464(%rsp), %r11
movq 8(%rsp), %r9
vmovsd (%r8,%r9,8), %xmm3
movq %rax, %r12
sarq $63, %r12
movq %r14, %r8
movq %r12, %r14
andq 256(%rsp), %r14
addq %r15, %r14
leaq -8(,%r14,8), %rbp
movq %r8, %r14
movq 248(%rsp), %r8
imulq %r14, %rbp
vmovsd 8(%r8,%r9,8), %xmm1
vsubsd 8(%rbp,%rdi), %xmm1, %xmm2
vmovsd 16(%r8,%r9,8), %xmm1
vsubsd 16(%rbp,%rdi), %xmm1, %xmm1
vmulsd %xmm2, %xmm2, %xmm4
vmulsd %xmm1, %xmm1, %xmm5
vsubsd (%rbp,%rdi), %xmm3, %xmm3
vmulsd %xmm3, %xmm3, %xmm6
vaddsd %xmm4, %xmm6, %xmm4
vaddsd %xmm5, %xmm4, %xmm4
vsqrtsd %xmm4, %xmm4, %xmm4
vmulsd %xmm4, %xmm4, %xmm5
vmulsd %xmm5, %xmm4, %xmm4
vucomisd %xmm7, %xmm4
jne .LBB0_9
jp .LBB0_9
jmp .LBB0_13
.p2align 4, 0x90
.LBB0_6:
cmpq $1, %rbp
jg .LBB0_5
movq 392(%rsp), %rcx
vmovsd 72(%rsp), %xmm3
vmulsd (%rcx), %xmm3, %xmm1
movq 320(%rsp), %rdx
vaddsd (%rdx), %xmm1, %xmm1
vmovsd %xmm1, (%rdx)
vmulsd 8(%rcx), %xmm3, %xmm2
vaddsd 8(%rdx), %xmm2, %xmm2
vmovsd %xmm2, 8(%rdx)
vmulsd 16(%rcx), %xmm3, %xmm2
vaddsd 16(%rdx), %xmm2, %xmm2
vmovsd %xmm2, 16(%rdx)
vmulsd %xmm8, %xmm1, %xmm1
vaddsd (%r8), %xmm1, %xmm1
vmovsd %xmm1, (%r8)
vmulsd 8(%rdx), %xmm8, %xmm1
vaddsd 8(%r8), %xmm1, %xmm1
vmovsd %xmm1, 8(%r8)
vmulsd 16(%rdx), %xmm8, %xmm1
vaddsd 16(%r8), %xmm1, %xmm1
vmovsd %xmm1, 16(%r8)
movq 408(%rsp), %rax
vmulsd (%rcx,%rax,8), %xmm3, %xmm1
movq 336(%rsp), %rsi
vaddsd (%rdx,%rsi,8), %xmm1, %xmm1
vmovsd %xmm1, (%rdx,%rsi,8)
vmulsd 8(%rcx,%rax,8), %xmm3, %xmm2
vaddsd 8(%rdx,%rsi,8), %xmm2, %xmm2
vmovsd %xmm2, 8(%rdx,%rsi,8)
vmulsd 16(%rcx,%rax,8), %xmm3, %xmm2
vaddsd 16(%rdx,%rsi,8), %xmm2, %xmm2
vmovsd %xmm2, 16(%rdx,%rsi,8)
vmulsd %xmm8, %xmm1, %xmm1
vaddsd (%r8,%r14,8), %xmm1, %xmm1
vmovsd %xmm1, (%r8,%r14,8)
vmulsd 8(%rdx,%rsi,8), %xmm8, %xmm1
vaddsd 8(%r8,%r14,8), %xmm1, %xmm1
vmovsd %xmm1, 8(%r8,%r14,8)
vmulsd 16(%rdx,%rsi,8), %xmm8, %xmm1
vaddsd 16(%r8,%r14,8), %xmm1, %xmm1
vmovsd %xmm1, 16(%r8,%r14,8)
movq 88(%rsp), %rax
vmulsd (%rcx,%rax,8), %xmm3, %xmm1
movq 112(%rsp), %rbp
vaddsd (%rdx,%rbp,8), %xmm1, %xmm1
vmovsd %xmm1, (%rdx,%rbp,8)
movq 80(%rsp), %rdi
vmulsd (%rcx,%rdi,8), %xmm3, %xmm2
movq 96(%rsp), %r10
vaddsd (%rdx,%r10,8), %xmm2, %xmm2
vmovsd %xmm2, (%rdx,%r10,8)
vmulsd 16(%rcx,%rax,8), %xmm3, %xmm2
vaddsd 16(%rdx,%rbp,8), %xmm2, %xmm2
vmovsd %xmm2, 16(%rdx,%rbp,8)
vmulsd %xmm8, %xmm1, %xmm1
movq 120(%rsp), %rdi
vaddsd (%r8,%rdi,8), %xmm1, %xmm1
vmovsd %xmm1, (%r8,%rdi,8)
vmulsd (%rdx,%r10,8), %xmm8, %xmm1
movq 104(%rsp), %rcx
vaddsd (%r8,%rcx,8), %xmm1, %xmm1
vmovsd %xmm1, (%r8,%rcx,8)
vmulsd 16(%rdx,%rbp,8), %xmm8, %xmm1
vaddsd 16(%r8,%rdi,8), %xmm1, %xmm1
vmovsd %xmm1, 16(%r8,%rdi,8)
vaddsd %xmm8, %xmm9, %xmm2
vmovsd 64(%rsp), %xmm1
vucomisd %xmm2, %xmm1
movq 400(%rsp), %r13
ja .LBB0_1
movabsq $NRT_decref, %rbx
movq 288(%rsp), %rdi
movq %r8, %rbp
callq *%rbx
movq 432(%rsp), %rdi
callq *%rbx
movq 360(%rsp), %rdi
callq *%rbx
movq 48(%rsp), %rax
movq 24(%rsp), %rcx
movq %rcx, (%rax)
movq 32(%rsp), %rcx
movq %rcx, 8(%rax)
movq 40(%rsp), %rcx
movq %rcx, 16(%rax)
movq 240(%rsp), %rcx
movq %rcx, 24(%rax)
movq %rbp, 32(%rax)
movq 256(%rsp), %rcx
movq %rcx, 40(%rax)
movq %r14, 48(%rax)
movq 272(%rsp), %rcx
movq %rcx, 56(%rax)
movq 280(%rsp), %rcx
movq %rcx, 64(%rax)
xorl %eax, %eax
jmp .LBB0_14
.LBB0_13:
movabsq $.const.picklebuf.140174789618696, %rax
movq 56(%rsp), %rcx
movq %rax, (%rcx)
movl $1, %eax
.LBB0_14:
addq $184, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
.Lfunc_end0:
.size _ZN8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE, .Lfunc_end0-_ZN8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE
.cfi_endproc
.globl _ZN7cpython8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE
.p2align 4, 0x90
.type _ZN7cpython8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE,@function
_ZN7cpython8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE:
.cfi_startproc
pushq %rbp
.Lcfi13:
.cfi_def_cfa_offset 16
.Lcfi14:
.cfi_offset %rbp, -16
movq %rsp, %rbp
.Lcfi15:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
andq $-32, %rsp
subq $800, %rsp
.Lcfi16:
.cfi_offset %rbx, -56
.Lcfi17:
.cfi_offset %r12, -48
.Lcfi18:
.cfi_offset %r13, -40
.Lcfi19:
.cfi_offset %r14, -32
.Lcfi20:
.cfi_offset %r15, -24
movq %rdi, %rbx
leaq 224(%rsp), %r11
leaq 232(%rsp), %r14
movabsq $.const.leapfrog, %r10
movabsq $PyArg_UnpackTuple, %r15
leaq 248(%rsp), %r8
leaq 240(%rsp), %r9
movl $4, %edx
movl $4, %ecx
xorl %eax, %eax
movq %rsi, %rdi
movq %r10, %rsi
pushq %r11
pushq %r14
callq *%r15
addq $16, %rsp
vxorps %ymm0, %ymm0, %ymm0
vmovaps %ymm0, 576(%rsp)
vmovaps %ymm0, 544(%rsp)
movq $0, 608(%rsp)
vmovaps %ymm0, 480(%rsp)
vmovaps %ymm0, 448(%rsp)
movq $0, 512(%rsp)
vmovaps %ymm0, 384(%rsp)
vmovaps %ymm0, 352(%rsp)
movq $0, 416(%rsp)
vmovups %ymm0, 664(%rsp)
vmovaps %ymm0, 640(%rsp)
testl %eax, %eax
je .LBB1_24
testq %rbx, %rbx
je .LBB1_26
movq 24(%rbx), %r12
testq %r12, %r12
je .LBB1_18
movq 248(%rsp), %rdi
movabsq $NRT_adapt_ndarray_from_python, %r14
leaq 544(%rsp), %rsi
vzeroupper
callq *%r14
testl %eax, %eax
jne .LBB1_24
movq 544(%rsp), %rax
movq %rax, 72(%rsp)
movq 552(%rsp), %rax
movq %rax, 40(%rsp)
movq 560(%rsp), %rax
movq %rax, 32(%rsp)
movq 568(%rsp), %r15
movq 576(%rsp), %r13
movq 584(%rsp), %rbx
movq 592(%rsp), %rax
movq %rax, 64(%rsp)
movq 600(%rsp), %rax
movq %rax, 56(%rsp)
movq 608(%rsp), %rax
movq %rax, 48(%rsp)
movq 240(%rsp), %rdi
leaq 448(%rsp), %rsi
callq *%r14
testl %eax, %eax
jne .LBB1_22
movq %rbx, 24(%rsp)
movq 448(%rsp), %rbx
movq 456(%rsp), %rax
movq %rax, 16(%rsp)
movq 464(%rsp), %rax
movq %rax, 8(%rsp)
movq 472(%rsp), %rax
movq %rax, (%rsp)
movq 480(%rsp), %rax
movq %rax, 208(%rsp)
movq 488(%rsp), %rax
movq %rax, 200(%rsp)
movq 496(%rsp), %rax
movq %rax, 192(%rsp)
movq 504(%rsp), %rax
movq %rax, 184(%rsp)
movq 512(%rsp), %rax
movq %rax, 176(%rsp)
movq 232(%rsp), %rdi
leaq 352(%rsp), %rsi
callq *%r14
testl %eax, %eax
jne .LBB1_21
movq %r13, 160(%rsp)
movq %r15, 168(%rsp)
movq %rbx, 80(%rsp)
movq 352(%rsp), %r15
movq %r14, %rax
movq 360(%rsp), %r14
movq 368(%rsp), %rbx
movq 376(%rsp), %r13
movq 384(%rsp), %rcx
movq %rcx, 152(%rsp)
movq 392(%rsp), %rcx
movq %rcx, 144(%rsp)
movq 400(%rsp), %rcx
movq %rcx, 136(%rsp)
movq 408(%rsp), %rcx
movq %rcx, 128(%rsp)
movq 416(%rsp), %rcx
movq %rcx, 120(%rsp)
movq 224(%rsp), %rdi
leaq 640(%rsp), %rsi
callq *%rax
testl %eax, %eax
jne .LBB1_20
movq %r12, 88(%rsp)
movq %rbx, 104(%rsp)
movq 640(%rsp), %rax
movq %rax, 112(%rsp)
movq 648(%rsp), %r11
movq %r13, 96(%rsp)
movq 656(%rsp), %r13
movq 664(%rsp), %rbx
movq 672(%rsp), %rdx
movq 680(%rsp), %r10
movq 688(%rsp), %r12
vxorps %ymm0, %ymm0, %ymm0
vmovaps %ymm0, 288(%rsp)
vmovaps %ymm0, 256(%rsp)
movq $0, 320(%rsp)
subq $8, %rsp
leaq 264(%rsp), %rdi
leaq 224(%rsp), %rsi
movq 80(%rsp), %rcx
movq 48(%rsp), %r8
movq 40(%rsp), %r9
pushq %r12
pushq %r10
pushq %rdx
pushq %rbx
pushq %r13
pushq %r11
pushq %rax
pushq 184(%rsp)
pushq 200(%rsp)
pushq 216(%rsp)
pushq 232(%rsp)
pushq 248(%rsp)
pushq 200(%rsp)
pushq 216(%rsp)
pushq %r14
pushq %r15
movq %r15, %r14
pushq 312(%rsp)
pushq 328(%rsp)
pushq 344(%rsp)
pushq 360(%rsp)
pushq 376(%rsp)
pushq 176(%rsp)
pushq 192(%rsp)
pushq 208(%rsp)
movq 280(%rsp), %r13
pushq %r13
pushq 256(%rsp)
pushq 272(%rsp)
pushq 288(%rsp)
pushq 256(%rsp)
pushq 400(%rsp)
pushq 416(%rsp)
movabsq $_ZN8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE, %rax
vzeroupper
callq *%rax
addq $256, %rsp
movl %eax, %ebx
movq 216(%rsp), %rax
movq %rax, (%rsp)
movq 256(%rsp), %r15
movq 264(%rsp), %rax
movq %rax, 64(%rsp)
movq 272(%rsp), %rax
movq %rax, 56(%rsp)
movq 280(%rsp), %rax
movq %rax, 48(%rsp)
movq 288(%rsp), %rax
movq %rax, 40(%rsp)
movq 296(%rsp), %rax
movq %rax, 32(%rsp)
movq 304(%rsp), %rax
movq %rax, 24(%rsp)
movq 312(%rsp), %rax
movq %rax, 16(%rsp)
movq 320(%rsp), %rax
movq %rax, 8(%rsp)
movabsq $NRT_decref, %r12
movq 72(%rsp), %rdi
callq *%r12
movq %r13, %rdi
callq *%r12
movq %r14, %rdi
callq *%r12
movq 112(%rsp), %rdi
callq *%r12
cmpl $-2, %ebx
je .LBB1_10
testl %ebx, %ebx
jne .LBB1_11
movq 88(%rsp), %rax
movq 24(%rax), %rdi
movabsq $PyList_GetItem, %rax
xorl %esi, %esi
callq *%rax
movq %r15, 704(%rsp)
movq 64(%rsp), %rcx
movq %rcx, 712(%rsp)
movq 56(%rsp), %rcx
movq %rcx, 720(%rsp)
movq 48(%rsp), %rcx
movq %rcx, 728(%rsp)
movq 40(%rsp), %rcx
movq %rcx, 736(%rsp)
movq 32(%rsp), %rcx
movq %rcx, 744(%rsp)
movq 24(%rsp), %rcx
movq %rcx, 752(%rsp)
movq 16(%rsp), %rcx
movq %rcx, 760(%rsp)
movq 8(%rsp), %rcx
movq %rcx, 768(%rsp)
movabsq $NRT_adapt_ndarray_to_python, %rbx
leaq 704(%rsp), %rdi
movl $2, %esi
movl $1, %edx
movq %rax, %rcx
callq *%rbx
jmp .LBB1_25
.LBB1_10:
movabsq $_Py_NoneStruct, %rbx
movabsq $Py_IncRef, %rax
movq %rbx, %rdi
callq *%rax
movq %rbx, %rax
jmp .LBB1_25
.LBB1_11:
jle .LBB1_14
movabsq $PyErr_Clear, %rax
callq *%rax
movq (%rsp), %rax
movl 8(%rax), %esi
movq (%rax), %rdi
movabsq $numba_unpickle, %rax
callq *%rax
testq %rax, %rax
je .LBB1_24
movabsq $numba_do_raise, %rcx
movq %rax, %rdi
callq *%rcx
jmp .LBB1_24
.LBB1_14:
cmpl $-3, %ebx
je .LBB1_17
cmpl $-1, %ebx
je .LBB1_24
movabsq $PyExc_SystemError, %rdi
movabsq $".const.unknown error when calling native function", %rsi
jmp .LBB1_19
.LBB1_17:
movabsq $PyExc_StopIteration, %rdi
movabsq $PyErr_SetNone, %rax
jmp .LBB1_23
.LBB1_18:
movabsq $PyExc_RuntimeError, %rdi
movabsq $".const.missing Environment", %rsi
.LBB1_19:
movabsq $PyErr_SetString, %rax
vzeroupper
callq *%rax
jmp .LBB1_24
.LBB1_20:
movabsq $NRT_decref, %rax
movq %r15, %rdi
callq *%rax
movq 80(%rsp), %rbx
.LBB1_21:
movabsq $NRT_decref, %rax
movq %rbx, %rdi
callq *%rax
.LBB1_22:
movabsq $NRT_decref, %rax
movq 72(%rsp), %rdi
.LBB1_23:
callq *%rax
.LBB1_24:
xorl %eax, %eax
.LBB1_25:
leaq -40(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
vzeroupper
retq
.LBB1_26:
movabsq $".const.Fatal error: missing _dynfunc.Closure", %rdi
movabsq $puts, %rax
vzeroupper
callq *%rax
.Lfunc_end1:
.size _ZN7cpython8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE, .Lfunc_end1-_ZN7cpython8__main__12leapfrog$241E5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi2E1C7mutable7alignedE5ArrayIdLi1E1C7mutable7alignedE
.cfi_endproc
.weak NRT_incref
.p2align 4, 0x90
.type NRT_incref,@function
NRT_incref:
testq %rdi, %rdi
je .LBB2_1
lock addq $1, (%rdi)
retq
.LBB2_1:
retq
.Lfunc_end2:
.size NRT_incref, .Lfunc_end2-NRT_incref
.weak NRT_decref
.p2align 4, 0x90
.type NRT_decref,@function
NRT_decref:
.cfi_startproc
testq %rdi, %rdi
je .LBB3_2
movq $-1, %rax
lock xaddq %rax, (%rdi)
cmpq $1, %rax
je .LBB3_3
.LBB3_2:
retq
.LBB3_3:
movabsq $NRT_MemInfo_call_dtor, %rax
jmpq *%rax
.Lfunc_end3:
.size NRT_decref, .Lfunc_end3-NRT_decref
.cfi_endproc
.type .const.picklebuf.140174789618696,@object
.section .rodata,"a",@progbits
.p2align 3
.const.picklebuf.140174789618696:
.quad .const.pickledata.140174789618696
.long 68
.zero 4
.size .const.picklebuf.140174789618696, 16
.type .const.pickledata.140174789618696,@object
.p2align 4
.const.pickledata.140174789618696:
.ascii "\200\004\2259\000\000\000\000\000\000\000\214\bbuiltins\224\214\021ZeroDivisionError\224\223\224\214\020division by zero\224\205\224\206\224."
.size .const.pickledata.140174789618696, 68
.type .const.leapfrog,@object
.const.leapfrog:
.asciz "leapfrog"
.size .const.leapfrog, 9
.type ".const.Fatal error: missing _dynfunc.Closure",@object
.p2align 4
".const.Fatal error: missing _dynfunc.Closure":
.asciz "Fatal error: missing _dynfunc.Closure"
.size ".const.Fatal error: missing _dynfunc.Closure", 38
.type ".const.missing Environment",@object
.p2align 4
".const.missing Environment":
.asciz "missing Environment"
.size ".const.missing Environment", 20
.type ".const.unknown error when calling native function",@object
.p2align 4
".const.unknown error when calling native function":
.asciz "unknown error when calling native function"
.size ".const.unknown error when calling native function", 43
.section ".note.GNU-stack","",@progbits
================================================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment