Skip to content

Instantly share code, notes, and snippets.

@9il
Created December 25, 2015 07:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 9il/47aea1621a9fba609869 to your computer and use it in GitHub Desktop.
Save 9il/47aea1621a9fba609869 to your computer and use it in GitHub Desktop.
NDSlice loops check
//LDC 0.17
//ldmd2 -c -O -inline -release -boundscheck=off -mcpu=native source/app.d -I../dip80-ndslice/source/
//otool -vt app.o > app.ldc.s
app.o:
(__TEXT,__text) sectionca
__D3app11nd_test_valFS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SlicedZv:
0000000000000000 pushq %r14
0000000000000002 pushq %rbx
0000000000000003 movq 0x18(%rsp), %r10
0000000000000008 testq %r10, %r10
000000000000000b je 0x93
0000000000000011 movq 0x20(%rsp), %r8
0000000000000016 testq %r8, %r8
0000000000000019 je 0x93
000000000000001b movq 0x28(%rsp), %r14
0000000000000020 testq %r14, %r14
0000000000000023 je 0x93
0000000000000025 leaq 0x18(%rsp), %rax
000000000000002a movq 0x30(%rsp), %r9
000000000000002f movq 0x38(%rsp), %rdi
0000000000000034 movq 0x40(%rsp), %rcx
0000000000000039 movq 0x30(%rax), %r11
000000000000003d shlq $0x3, %r9
0000000000000041 shlq $0x3, %rdi
0000000000000045 shlq $0x3, %rcx
0000000000000049 nopl (%rax)
0000000000000050 movq %r11, %rax
0000000000000053 movq %r8, %rsi
0000000000000056 nopw %cs:(%rax,%rax)
0000000000000060 movq %rax, %rbx
0000000000000063 movq %r14, %rdx
0000000000000066 nopw %cs:(%rax,%rax)
0000000000000070 vaddsd (%rbx), %xmm0, %xmm1
0000000000000074 vmovsd %xmm1, (%rbx)
0000000000000078 addq %rcx, %rbx
000000000000007b addq $-0x1, %rdx
000000000000007f jne 0x70
0000000000000081 addq %rdi, %rax
0000000000000084 addq $-0x1, %rsi
0000000000000088 jne 0x60
000000000000008a addq %r9, %r11
000000000000008d addq $-0x1, %r10
0000000000000091 jne 0x50
0000000000000093 popq %rbx
0000000000000094 popq %r14
0000000000000096 retq
0000000000000097 nopw (%rax,%rax)
__D3app14nd_test_slice1FS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceS3std12experimental7ndslice5slice17__T5SliceVmi1TPdZ5SliceZv:
00000000000000a0 pushq %r15
00000000000000a2 pushq %r14
00000000000000a4 pushq %r13
00000000000000a6 pushq %r12
00000000000000a8 pushq %rbx
00000000000000a9 movq 0x48(%rsp), %r10
00000000000000ae testq %r10, %r10
00000000000000b1 je 0x15a
00000000000000b7 movq 0x50(%rsp), %r8
00000000000000bc testq %r8, %r8
00000000000000bf je 0x15a
00000000000000c5 movq 0x58(%rsp), %r14
00000000000000ca testq %r14, %r14
00000000000000cd je 0x15a
00000000000000d3 leaq 0x48(%rsp), %rcx
00000000000000d8 movq 0x38(%rsp), %rsi
00000000000000dd movq 0x40(%rsp), %r15
00000000000000e2 movq 0x60(%rsp), %r9
00000000000000e7 movq 0x68(%rsp), %r12
00000000000000ec movq 0x70(%rsp), %rax
00000000000000f1 movq 0x30(%rcx), %r11
00000000000000f5 shlq $0x3, %rsi
00000000000000f9 shlq $0x3, %r9
00000000000000fd shlq $0x3, %r12
0000000000000101 shlq $0x3, %rax
0000000000000105 nopw %cs:(%rax,%rax)
0000000000000110 movq %r11, %rdi
0000000000000113 movq %r8, %r13
0000000000000116 nopw %cs:(%rax,%rax)
0000000000000120 movq %rdi, %rbx
0000000000000123 movq %r15, %rcx
0000000000000126 movq %r14, %rdx
0000000000000129 nopl (%rax)
0000000000000130 vmovsd (%rbx), %xmm0 ## xmm0 = mem[0],zero
0000000000000134 vaddsd (%rcx), %xmm0, %xmm0
0000000000000138 vmovsd %xmm0, (%rbx)
000000000000013c addq %rsi, %rcx
000000000000013f addq %rax, %rbx
0000000000000142 addq $-0x1, %rdx
0000000000000146 jne 0x130
0000000000000148 addq %r12, %rdi
000000000000014b addq $-0x1, %r13
000000000000014f jne 0x120
0000000000000151 addq %r9, %r11
0000000000000154 addq $-0x1, %r10
0000000000000158 jne 0x110
000000000000015a popq %rbx
000000000000015b popq %r12
000000000000015d popq %r13
000000000000015f popq %r14
0000000000000161 popq %r15
0000000000000163 retq
0000000000000164 nopw %cs:(%rax,%rax)
__D3app14nd_test_slice2FS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceS3std12experimental7ndslice5slice17__T5SliceVmi2TPdZ5SliceZv:
0000000000000170 pushq %rbp
0000000000000171 pushq %r15
0000000000000173 pushq %r14
0000000000000175 pushq %r13
0000000000000177 pushq %r12
0000000000000179 pushq %rbx
000000000000017a movq 0x60(%rsp), %r11
000000000000017f testq %r11, %r11
0000000000000182 je 0x24f
0000000000000188 leaq 0x60(%rsp), %rcx
000000000000018d movq 0x48(%rsp), %r12
0000000000000192 movq 0x50(%rsp), %rdx
0000000000000197 movq 0x58(%rsp), %rax
000000000000019c movq %rax, -0x8(%rsp)
00000000000001a1 movq 0x68(%rsp), %rsi
00000000000001a6 movq %rsi, -0x10(%rsp)
00000000000001ab movq 0x70(%rsp), %r9
00000000000001b0 movq 0x78(%rsp), %r10
00000000000001b5 movq 0x80(%rsp), %rdi
00000000000001bd movq 0x88(%rsp), %rax
00000000000001c5 movq 0x30(%rcx), %r15
00000000000001c9 testq %rsi, %rsi
00000000000001cc sete %cl
00000000000001cf testq %r9, %r9
00000000000001d2 sete %r14b
00000000000001d6 orb %cl, %r14b
00000000000001d9 shlq $0x3, %r12
00000000000001dd shlq $0x3, %rdx
00000000000001e1 shlq $0x3, %r10
00000000000001e5 shlq $0x3, %rdi
00000000000001e9 shlq $0x3, %rax
00000000000001ed nopl (%rax)
00000000000001f0 movq %r15, %rsi
00000000000001f3 movq -0x8(%rsp), %r8
00000000000001f8 movq -0x10(%rsp), %rcx
00000000000001fd testb %r14b, %r14b
0000000000000200 jne 0x246
0000000000000202 nopw %cs:(%rax,%rax)
0000000000000210 movq %rsi, %rbp
0000000000000213 movq %r8, %rbx
0000000000000216 movq %r9, %r13
0000000000000219 nopl (%rax)
0000000000000220 vmovsd (%rbp), %xmm0 ## xmm0 = mem[0],zero
0000000000000225 vaddsd (%rbx), %xmm0, %xmm0
0000000000000229 vmovsd %xmm0, (%rbp)
000000000000022e addq %rdx, %rbx
0000000000000231 addq %rax, %rbp
0000000000000234 addq $-0x1, %r13
0000000000000238 jne 0x220
000000000000023a addq %r12, %r8
000000000000023d addq %rdi, %rsi
0000000000000240 addq $-0x1, %rcx
0000000000000244 jne 0x210
0000000000000246 addq %r10, %r15
0000000000000249 addq $-0x1, %r11
000000000000024d jne 0x1f0
000000000000024f popq %rbx
0000000000000250 popq %r12
0000000000000252 popq %r13
0000000000000254 popq %r14
0000000000000256 popq %r15
0000000000000258 popq %rbp
0000000000000259 retq
000000000000025a nopw (%rax,%rax)
__D3app14nd_test_slice3FS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceZv:
0000000000000260 pushq %rbp
0000000000000261 pushq %r15
0000000000000263 pushq %r14
0000000000000265 pushq %r13
0000000000000267 pushq %r12
0000000000000269 pushq %rbx
000000000000026a movq 0x70(%rsp), %r11
000000000000026f testq %r11, %r11
0000000000000272 je 0x364
0000000000000278 leaq 0x70(%rsp), %rcx
000000000000027d leaq 0x38(%rsp), %rdx
0000000000000282 movq 0x50(%rsp), %rbp
0000000000000287 movq 0x58(%rsp), %r13
000000000000028c movq 0x60(%rsp), %rsi
0000000000000291 movq 0x78(%rsp), %rbx
0000000000000296 movq %rbx, -0x10(%rsp)
000000000000029b movq 0x80(%rsp), %r10
00000000000002a3 movq 0x88(%rsp), %r15
00000000000002ab movq 0x90(%rsp), %rdi
00000000000002b3 movq 0x98(%rsp), %rax
00000000000002bb movq 0x30(%rdx), %r14
00000000000002bf movq 0x30(%rcx), %r12
00000000000002c3 testq %rbx, %rbx
00000000000002c6 sete %cl
00000000000002c9 testq %r10, %r10
00000000000002cc sete %dl
00000000000002cf orb %cl, %dl
00000000000002d1 movb %dl, -0x11(%rsp)
00000000000002d5 shlq $0x3, %rbp
00000000000002d9 movq %rbp, -0x8(%rsp)
00000000000002de shlq $0x3, %r13
00000000000002e2 shlq $0x3, %rsi
00000000000002e6 shlq $0x3, %r15
00000000000002ea shlq $0x3, %rdi
00000000000002ee shlq $0x3, %rax
00000000000002f2 nopw %cs:(%rax,%rax)
0000000000000300 movq %r12, %r8
0000000000000303 movq %r14, %r9
0000000000000306 movq -0x10(%rsp), %rdx
000000000000030b cmpb $0x0, -0x11(%rsp)
0000000000000310 jne 0x356
0000000000000312 nopw %cs:(%rax,%rax)
0000000000000320 movq %r8, %rbp
0000000000000323 movq %r9, %rbx
0000000000000326 movq %r10, %rcx
0000000000000329 nopl (%rax)
0000000000000330 vmovsd (%rbp), %xmm0 ## xmm0 = mem[0],zero
0000000000000335 vaddsd (%rbx), %xmm0, %xmm0
0000000000000339 vmovsd %xmm0, (%rbp)
000000000000033e addq %rsi, %rbx
0000000000000341 addq %rax, %rbp
0000000000000344 addq $-0x1, %rcx
0000000000000348 jne 0x330
000000000000034a addq %r13, %r9
000000000000034d addq %rdi, %r8
0000000000000350 addq $-0x1, %rdx
0000000000000354 jne 0x320
0000000000000356 addq -0x8(%rsp), %r14
000000000000035b addq %r15, %r12
000000000000035e addq $-0x1, %r11
0000000000000362 jne 0x300
0000000000000364 popq %rbx
0000000000000365 popq %r12
0000000000000367 popq %r13
0000000000000369 popq %r14
000000000000036b popq %r15
000000000000036d popq %rbp
000000000000036e retq
000000000000036f nop
__D3app14nd_test_array1FS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceAdZv:
0000000000000370 pushq %r15
0000000000000372 pushq %r14
0000000000000374 pushq %r12
0000000000000376 pushq %rbx
0000000000000377 movq 0x28(%rsp), %r10
000000000000037c testq %r10, %r10
000000000000037f je 0x3fb
0000000000000381 leaq 0x28(%rsp), %rax
0000000000000386 movq 0x30(%rsp), %r9
000000000000038b movq 0x38(%rsp), %r15
0000000000000390 movq 0x40(%rsp), %r8
0000000000000395 movq 0x48(%rsp), %r14
000000000000039a movq 0x50(%rsp), %rcx
000000000000039f movq 0x30(%rax), %r11
00000000000003a3 shlq $0x3, %r8
00000000000003a7 shlq $0x3, %r14
00000000000003ab shlq $0x3, %rcx
00000000000003af nop
00000000000003b0 movq %r11, %rdi
00000000000003b3 movq %r9, %r12
00000000000003b6 testq %r9, %r9
00000000000003b9 je 0x3f2
00000000000003bb nopl (%rax,%rax)
00000000000003c0 movq %rdi, %rax
00000000000003c3 movq %rsi, %rdx
00000000000003c6 movq %r15, %rbx
00000000000003c9 testq %r15, %r15
00000000000003cc je 0x3e9
00000000000003ce nop
00000000000003d0 vmovsd (%rax), %xmm0 ## xmm0 = mem[0],zero
00000000000003d4 vaddsd (%rdx), %xmm0, %xmm0
00000000000003d8 vmovsd %xmm0, (%rax)
00000000000003dc addq $0x8, %rdx
00000000000003e0 addq %rcx, %rax
00000000000003e3 addq $-0x1, %rbx
00000000000003e7 jne 0x3d0
00000000000003e9 addq %r14, %rdi
00000000000003ec addq $-0x1, %r12
00000000000003f0 jne 0x3c0
00000000000003f2 addq %r8, %r11
00000000000003f5 addq $-0x1, %r10
00000000000003f9 jne 0x3b0
00000000000003fb popq %rbx
00000000000003fc popq %r12
00000000000003fe popq %r14
0000000000000400 popq %r15
0000000000000402 retq
0000000000000403 nopw %cs:(%rax,%rax)
__D3app14nd_test_array2FS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceAAdZv:
0000000000000410 pushq %r15
0000000000000412 pushq %r14
0000000000000414 pushq %r13
0000000000000416 pushq %r12
0000000000000418 pushq %rbx
0000000000000419 movq 0x30(%rsp), %r10
000000000000041e testq %r10, %r10
0000000000000421 je 0x4af
0000000000000427 leaq 0x30(%rsp), %rax
000000000000042c movq 0x38(%rsp), %r9
0000000000000431 movq 0x40(%rsp), %r15
0000000000000436 movq 0x48(%rsp), %r8
000000000000043b movq 0x50(%rsp), %r14
0000000000000440 movq 0x58(%rsp), %rcx
0000000000000445 movq 0x30(%rax), %r11
0000000000000449 shlq $0x3, %r8
000000000000044d shlq $0x3, %r14
0000000000000451 shlq $0x3, %rcx
0000000000000455 nopw %cs:(%rax,%rax)
0000000000000460 movq %r11, %r13
0000000000000463 movq %rsi, %rbx
0000000000000466 movq %r9, %r12
0000000000000469 testq %r9, %r9
000000000000046c je 0x4a6
000000000000046e nop
0000000000000470 testq %r15, %r15
0000000000000473 je 0x499
0000000000000475 movq 0x8(%rbx), %rdx
0000000000000479 movq %r13, %rax
000000000000047c movq %r15, %rdi
000000000000047f nop
0000000000000480 vmovsd (%rax), %xmm0 ## xmm0 = mem[0],zero
0000000000000484 vaddsd (%rdx), %xmm0, %xmm0
0000000000000488 vmovsd %xmm0, (%rax)
000000000000048c addq $0x8, %rdx
0000000000000490 addq %rcx, %rax
0000000000000493 addq $-0x1, %rdi
0000000000000497 jne 0x480
0000000000000499 addq $0x10, %rbx
000000000000049d addq %r14, %r13
00000000000004a0 addq $-0x1, %r12
00000000000004a4 jne 0x470
00000000000004a6 addq %r8, %r11
00000000000004a9 addq $-0x1, %r10
00000000000004ad jne 0x460
00000000000004af popq %rbx
00000000000004b0 popq %r12
00000000000004b2 popq %r13
00000000000004b4 popq %r14
00000000000004b6 popq %r15
00000000000004b8 retq
00000000000004b9 nopl (%rax)
__D3app14nd_test_array3FS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceAAAdZv:
00000000000004c0 pushq %r15
00000000000004c2 pushq %r14
00000000000004c4 pushq %r13
00000000000004c6 pushq %r12
00000000000004c8 pushq %rbx
00000000000004c9 movq 0x30(%rsp), %r10
00000000000004ce testq %r10, %r10
00000000000004d1 je 0x563
00000000000004d7 leaq 0x30(%rsp), %rax
00000000000004dc movq 0x38(%rsp), %r9
00000000000004e1 movq 0x40(%rsp), %r15
00000000000004e6 movq 0x48(%rsp), %r8
00000000000004eb movq 0x50(%rsp), %r14
00000000000004f0 movq 0x58(%rsp), %rcx
00000000000004f5 movq 0x30(%rax), %r11
00000000000004f9 shlq $0x3, %r8
00000000000004fd shlq $0x3, %r14
0000000000000501 shlq $0x3, %rcx
0000000000000505 nopw %cs:(%rax,%rax)
0000000000000510 testq %r9, %r9
0000000000000513 je 0x556
0000000000000515 movq 0x8(%rsi), %r13
0000000000000519 movq %r11, %rdi
000000000000051c movq %r9, %r12
000000000000051f nop
0000000000000520 testq %r15, %r15
0000000000000523 je 0x549
0000000000000525 movq 0x8(%r13), %rdx
0000000000000529 movq %rdi, %rbx
000000000000052c movq %r15, %rax
000000000000052f nop
0000000000000530 vmovsd (%rbx), %xmm0 ## xmm0 = mem[0],zero
0000000000000534 vaddsd (%rdx), %xmm0, %xmm0
0000000000000538 vmovsd %xmm0, (%rbx)
000000000000053c addq $0x8, %rdx
0000000000000540 addq %rcx, %rbx
0000000000000543 addq $-0x1, %rax
0000000000000547 jne 0x530
0000000000000549 addq $0x10, %r13
000000000000054d addq %r14, %rdi
0000000000000550 addq $-0x1, %r12
0000000000000554 jne 0x520
0000000000000556 addq $0x10, %rsi
000000000000055a addq %r8, %r11
000000000000055d addq $-0x1, %r10
0000000000000561 jne 0x510
0000000000000563 popq %rbx
0000000000000564 popq %r12
0000000000000566 popq %r13
0000000000000568 popq %r14
000000000000056a popq %r15
000000000000056c retq
000000000000056d nopl (%rax)
__D3app9elem_testFS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SlicedZv:
0000000000000570 pushq %rbp
0000000000000571 pushq %r15
0000000000000573 pushq %r14
0000000000000575 pushq %r13
0000000000000577 pushq %r12
0000000000000579 pushq %rbx
000000000000057a movq 0x38(%rsp), %r8
000000000000057f movq 0x40(%rsp), %r9
0000000000000584 movq 0x48(%rsp), %rdx
0000000000000589 movq 0x50(%rsp), %r10
000000000000058e movq 0x58(%rsp), %rax
0000000000000593 movq 0x60(%rsp), %rdi
0000000000000598 movq 0x68(%rsp), %rbx
000000000000059d movq %r9, %rcx
00000000000005a0 imulq %r8, %rcx
00000000000005a4 imulq %rdx, %rcx
00000000000005a8 movq %rdi, %rsi
00000000000005ab imulq %rdx, %rsi
00000000000005af movq %rdi, %r13
00000000000005b2 subq %rsi, %r13
00000000000005b5 addq %rax, %r13
00000000000005b8 imulq %r9, %rax
00000000000005bc shlq $0x3, %rdi
00000000000005c0 movq %rdi, %r15
00000000000005c3 negq %r15
00000000000005c6 movq %r13, %r12
00000000000005c9 subq %rax, %r12
00000000000005cc addq %r10, %r12
00000000000005cf imulq %r8, %r10
00000000000005d3 xorl %r14d, %r14d
00000000000005d6 jmp 0x600
00000000000005d8 addq $0x1, %r14
00000000000005dc cmpq %r8, %r14
00000000000005df movl $0x0, %ebp
00000000000005e4 cmovaeq %rbp, %r14
00000000000005e8 movq %r10, %rax
00000000000005eb cmovbq %rbp, %rax
00000000000005ef movq %r12, %rbp
00000000000005f2 subq %rax, %rbp
00000000000005f5 leaq (%rsi,%rbp,8), %rbx
00000000000005f9 nopl (%rax)
0000000000000600 xorl %eax, %eax
0000000000000602 movq %rbx, %rsi
0000000000000605 xorl %ebx, %ebx
0000000000000607 xorl %ebp, %ebp
0000000000000609 nopl (%rax)
0000000000000610 movq %rbx, %r11
0000000000000613 cmpq %rbp, %rcx
0000000000000616 je 0x647
0000000000000618 vaddsd (%rsi), %xmm0, %xmm1
000000000000061c vmovsd %xmm1, (%rsi)
0000000000000620 addq $0x1, %rbp
0000000000000624 leaq -0x1(%r11), %rbx
0000000000000628 addq %rdi, %rsi
000000000000062b cmpq %rdx, %rbp
000000000000062e jb 0x610
0000000000000630 addq %r15, %rsi
0000000000000633 leaq -0x1(%rcx,%r11), %rcx
0000000000000638 leaq (%rsi,%r13,8), %rbx
000000000000063c addq $0x1, %rax
0000000000000640 cmpq %r9, %rax
0000000000000643 jb 0x602
0000000000000645 jmp 0x5d8
0000000000000647 popq %rbx
0000000000000648 popq %r12
000000000000064a popq %r13
000000000000064c popq %r14
000000000000064e popq %r15
0000000000000650 popq %rbp
0000000000000651 retq
0000000000000652 nopw %cs:(%rax,%rax)
__D3app9same_testFS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceS3std12experimental7ndslice5slice17__T5SliceVmi3TPdZ5SliceZv:
0000000000000660 pushq %r15
0000000000000662 pushq %r14
0000000000000664 pushq %r12
0000000000000666 pushq %rbx
0000000000000667 movq 0x60(%rsp), %r10
000000000000066c testq %r10, %r10
000000000000066f je 0x710
0000000000000675 leaq 0x60(%rsp), %rax
000000000000067a leaq 0x28(%rsp), %rdx
000000000000067f movq 0x68(%rsp), %r8
0000000000000684 movq 0x70(%rsp), %r15
0000000000000689 movq 0x78(%rsp), %r9
000000000000068e movq 0x80(%rsp), %r12
0000000000000696 movq 0x88(%rsp), %rcx
000000000000069e movq 0x30(%rdx), %r11
00000000000006a2 movq 0x30(%rax), %r14
00000000000006a6 shlq $0x3, %r9
00000000000006aa shlq $0x3, %r12
00000000000006ae shlq $0x3, %rcx
00000000000006b2 nopw %cs:(%rax,%rax)
00000000000006c0 movq %r11, %rsi
00000000000006c3 movq %r14, %rbx
00000000000006c6 movq %r8, %rax
00000000000006c9 testq %r8, %r8
00000000000006cc je 0x704
00000000000006ce nop
00000000000006d0 movl $0x0, %edx
00000000000006d5 movq %r15, %rdi
00000000000006d8 testq %r15, %r15
00000000000006db je 0x6f8
00000000000006dd nopl (%rax)
00000000000006e0 vmovsd (%rbx,%rdx), %xmm0 ## xmm0 = mem[0],zero
00000000000006e5 vaddsd (%rsi,%rdx), %xmm0, %xmm0
00000000000006ea vmovsd %xmm0, (%rbx,%rdx)
00000000000006ef addq %rcx, %rdx
00000000000006f2 addq $-0x1, %rdi
00000000000006f6 jne 0x6e0
00000000000006f8 addq %r12, %rbx
00000000000006fb addq %r12, %rsi
00000000000006fe addq $-0x1, %rax
0000000000000702 jne 0x6d0
0000000000000704 addq %r9, %r14
0000000000000707 addq %r9, %r11
000000000000070a addq $-0x1, %r10
000000000000070e jne 0x6c0
0000000000000710 popq %rbx
0000000000000711 popq %r12
0000000000000713 popq %r14
0000000000000715 popq %r15
0000000000000717 retq
0000000000000718 nopl (%rax,%rax)
__D3app10crazy_testFS3std12experimental7ndslice5slice17__T5SliceVmi4TPdZ5SliceZv:
0000000000000720 pushq %r14
0000000000000722 pushq %rbx
0000000000000723 movq 0x18(%rsp), %r11
0000000000000728 movq 0x30(%rsp), %rdx
000000000000072d movq 0x50(%rsp), %r14
0000000000000732 movq 0x48(%rsp), %r9
0000000000000737 movq 0x38(%rsp), %rsi
000000000000073c movq 0x40(%rsp), %r10
0000000000000741 movq 0x58(%rsp), %r8
0000000000000746 movabsq $-0x5555555555555555, %rax ## imm = 0xAAAAAAAAAAAAAAAB
0000000000000750 mulxq %rax, %rax, %rdi
0000000000000755 shrq %rdi
0000000000000758 leaq (%rdi,%rdi,2), %rcx
000000000000075c movq %rdx, %rax
000000000000075f subq %rcx, %rax
0000000000000762 cmpq $0x3, %rdx
0000000000000766 jb 0x76c
0000000000000768 leaq (%r14,%r14,2), %r14
000000000000076c cmpq $0x1, %rax
0000000000000770 sbbq $-0x1, %rdi
0000000000000774 testq %r11, %r11
0000000000000777 je 0x785
0000000000000779 leaq -0x1(%r11), %rax
000000000000077d imulq %rsi, %rax
0000000000000781 leaq (%r8,%rax,8), %r8
0000000000000785 testq %rdi, %rdi
0000000000000788 je 0x7ea
000000000000078a movl $0x2, %ebx
000000000000078f subq %r11, %rbx
0000000000000792 imulq $0x7, %r9, %rax
0000000000000796 leaq (%rax,%r10,8), %rax
000000000000079a leaq (%rsi,%rsi), %rcx
000000000000079e subq %rcx, %rax
00000000000007a1 leaq (%r8,%rax,8), %rcx
00000000000007a5 shlq $0x3, %r14
00000000000007a9 shlq $0x3, %rsi
00000000000007ad negq %rsi
00000000000007b0 vmovsd 0x2110(%rip), %xmm0 ## xmm0 = mem[0],zero
00000000000007b8 nopl (%rax,%rax)
00000000000007c0 movq %rcx, %rax
00000000000007c3 movq %rbx, %rdx
00000000000007c6 cmpq $0x2, %r11
00000000000007ca je 0x7e1
00000000000007cc nopl (%rax)
00000000000007d0 vmulsd (%rax), %xmm0, %xmm1
00000000000007d4 vmovsd %xmm1, (%rax)
00000000000007d8 addq %rsi, %rax
00000000000007db addq $0x1, %rdx
00000000000007df jne 0x7d0
00000000000007e1 addq %r14, %rcx
00000000000007e4 addq $-0x1, %rdi
00000000000007e8 jne 0x7c0
00000000000007ea popq %rbx
00000000000007eb popq %r14
00000000000007ed retq
00000000000007ee nop
__D3app16__moduleinfoCtorZ:
00000000000007f0 movq (%rip), %rax
00000000000007f7 movq (%rax), %rcx
00000000000007fa movq %rcx, (%rip)
0000000000000801 leaq (%rip), %rcx
0000000000000808 movq %rcx, (%rax)
000000000000080b retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment