Skip to content

Instantly share code, notes, and snippets.

@syoyo
Created November 1, 2008 11:37
Show Gist options
  • Save syoyo/21511 to your computer and use it in GitHub Desktop.
Save syoyo/21511 to your computer and use it in GitHub Desktop.
_isect:
pushl %ebp
movl %esp, %ebp
andl $-32, %esp
pushl %edi
pushl %esi
pushl %ebx
subl $468, %esp
movl 20(%ebp), %edi
movl 80(%ebp), %esi
movl 68(%ebp), %eax
movl 72(%ebp), %edx
vmovapd (%edi), %ymm0
movl 24(%ebp), %edi
vmovapd %ymm0, 160(%esp)
movl 76(%ebp), %ecx
call ___i686.get_pc_thunk.bx
"L00000000001$pb":
vmovapd (%edi), %ymm1
movl 28(%ebp), %edi
vmovapd %ymm1, 192(%esp)
vmovapd (%edi), %ymm2
movl 44(%ebp), %edi
vmovapd %ymm2, 224(%esp)
vmovapd (%edi), %ymm3
movl 48(%ebp), %edi
vmovapd %ymm3, 256(%esp)
vmovapd (%edi), %ymm4
movl 52(%ebp), %edi
vmovapd %ymm4, 32(%esp)
vmovapd (%edi), %ymm1
movl 56(%ebp), %edi
vmovapd (%edi), %ymm5
movl 60(%ebp), %edi
vmovapd %ymm5, 288(%esp)
vmovapd (%edi), %ymm7
movl 64(%ebp), %edi
vmovapd %ymm7, 320(%esp)
vmovapd (%edi), %ymm0
vmovapd %ymm0, 352(%esp)
movl 8(%ebp), %edi
vmulpd 192(%esp), %ymm0, %ymm2
vmulpd 224(%esp), %ymm7, %ymm3
vmulpd 192(%esp), %ymm5, %ymm4
vsubpd %ymm3, %ymm2, %ymm3
vmulpd 224(%esp), %ymm5, %ymm2
vmovapd %ymm3, 128(%esp)
vmulpd 160(%esp), %ymm0, %ymm3
vsubpd %ymm3, %ymm2, %ymm3
vmulpd 160(%esp), %ymm7, %ymm2
vmovapd %ymm3, 96(%esp)
vsubpd %ymm4, %ymm2, %ymm4
vmovapd %ymm4, 64(%esp)
vmovapd (%edi), %ymm2
movl 32(%ebp), %edi
vmovapd 128(%esp), %ymm7
vmovapd 32(%esp), %ymm0
vmulpd 256(%esp), %ymm7, %ymm6
vxorpd %xmm5, %xmm5, %xmm5
vmulpd 96(%esp), %ymm0, %ymm7
vaddpd %ymm7, %ymm6, %ymm7
vmulpd 64(%esp), %ymm1, %ymm6
vaddpd %ymm6, %ymm7, %ymm6
vsubpd (%edi), %ymm2, %ymm2
movl 12(%ebp), %edi
vmovapd (%edi), %ymm3
movl 36(%ebp), %edi
vsubpd (%edi), %ymm3, %ymm3
movl 16(%ebp), %edi
vmovapd (%edi), %ymm4
movl 40(%ebp), %edi
vsubpd (%edi), %ymm4, %ymm4
leal LC0-"L00000000001$pb"(%ebx), %edi
vmovapd (%edi), %ymm0
vdivpd %ymm6, %ymm0, %ymm7
vmulpd %ymm3, %ymm1, %ymm0
vmulpd %ymm6, %ymm6, %ymm6
vmovapd %ymm0, 384(%esp)
vmulpd %ymm2, %ymm1, %ymm1
vmulpd 32(%esp), %ymm4, %ymm0
vmovapd %ymm0, 416(%esp)
vmovapd 384(%esp), %ymm0
vsubpd 416(%esp), %ymm0, %ymm0
vmovapd %ymm0, 384(%esp)
vmulpd 256(%esp), %ymm4, %ymm0
vsubpd %ymm1, %ymm0, %ymm1
vmovapd %ymm1, (%esp)
vmulpd 32(%esp), %ymm2, %ymm1
vmulpd 256(%esp), %ymm3, %ymm0
vmulpd 64(%esp), %ymm4, %ymm4
vmulpd 96(%esp), %ymm3, %ymm3
vmulpd 128(%esp), %ymm2, %ymm2
vcmppd $30, LC1-"L00000000001$pb"(%ebx), %ymm6, %ymm6
vsubpd %ymm0, %ymm1, %ymm0
vaddpd %ymm3, %ymm2, %ymm2
vmovapd (%esp), %ymm1
vaddpd %ymm4, %ymm2, %ymm2
vmovapd 160(%esp), %ymm4
vmulpd %ymm7, %ymm2, %ymm2
vmulpd 384(%esp), %ymm4, %ymm3
vmulpd 192(%esp), %ymm1, %ymm4
vmulpd 320(%esp), %ymm1, %ymm1
vaddpd %ymm4, %ymm3, %ymm3
vmulpd 224(%esp), %ymm0, %ymm4
vmulpd 352(%esp), %ymm0, %ymm0
vaddpd %ymm4, %ymm3, %ymm3
vmovapd 288(%esp), %ymm4
vmulpd %ymm7, %ymm3, %ymm3
vmulpd 384(%esp), %ymm4, %ymm4
vmovapd %ymm4, 416(%esp)
vaddpd %ymm4, %ymm1, %ymm1
vcmppd $30, %ymm5, %ymm3, %ymm4
vaddpd %ymm0, %ymm1, %ymm1
vaddpd %ymm3, %ymm2, %ymm0
vmulpd %ymm7, %ymm1, %ymm1
vcmppd $17, (%edi), %ymm0, %ymm0
vmovapd (%edx), %ymm7
vandpd %ymm0, %ymm6, %ymm6
vcmppd $30, %ymm5, %ymm2, %ymm0
vcmppd $30, %ymm5, %ymm1, %ymm5
vandpd %ymm4, %ymm0, %ymm0
vandpd %ymm0, %ymm6, %ymm0
vandpd %ymm5, %ymm0, %ymm0
vcmppd $17, %ymm7, %ymm1, %ymm5
vandpd %ymm5, %ymm0, %ymm5
vblendvpd %ymm5, %ymm1, %ymm7, %ymm7
vmovapd %ymm7, (%edx)
vmovapd (%ecx), %ymm4
vblendvpd %ymm5, %ymm2, %ymm4, %ymm2
vmovapd %ymm2, (%ecx)
vmovapd (%esi), %ymm4
vblendvpd %ymm5, %ymm3, %ymm4, %ymm3
vmovapd %ymm3, (%esi)
vorpd (%eax), %ymm5, %ymm5
vmovapd %ymm5, (%eax)
addl $468, %esp
popl %ebx
popl %esi
popl %edi
movl %ebp, %esp
popl %ebp
ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment