$ zig version
0.14.0-dev.2940+d0d5ca2b6
$ zig build-obj foo.zig -OReleaseFast
$ objdump -d foo.o
foo.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <foo>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 8b 07 mov (%rdi),%rax
7: 48 8b 4f 10 mov 0x10(%rdi),%rcx
b: 48 8d 14 c8 lea (%rax,%rcx,8),%rdx
f: 48 85 c9 test %rcx,%rcx
12: 48 b9 aa aa aa aa aa movabs $0xaaaaaaaaaaaaaaaa,%rcx
19: aa aa aa
1c: 48 0f 44 d1 cmove %rcx,%rdx
20: 0f b6 12 movzbl (%rdx),%edx
23: 48 0f 44 c1 cmove %rcx,%rax
27: 48 8b 00 mov (%rax),%rax
2a: ff 24 d5 00 00 00 00 jmp *0x0(,%rdx,8)
31: b8 00 00 00 00 mov $0x0,%eax
36: e9 49 08 00 00 jmp 884 <foo+0x884>
3b: 48 89 45 f0 mov %rax,-0x10(%rbp)
3f: c6 45 f8 03 movb $0x3,-0x8(%rbp)
43: e9 38 08 00 00 jmp 880 <foo+0x880>
48: 48 89 45 f0 mov %rax,-0x10(%rbp)
4c: c6 45 f8 26 movb $0x26,-0x8(%rbp)
50: e9 2b 08 00 00 jmp 880 <foo+0x880>
55: 48 89 45 f0 mov %rax,-0x10(%rbp)
59: c6 45 f8 2e movb $0x2e,-0x8(%rbp)
5d: e9 1e 08 00 00 jmp 880 <foo+0x880>
62: 48 89 45 f0 mov %rax,-0x10(%rbp)
66: c6 45 f8 0c movb $0xc,-0x8(%rbp)
6a: e9 11 08 00 00 jmp 880 <foo+0x880>
6f: 48 89 45 f0 mov %rax,-0x10(%rbp)
73: c6 45 f8 25 movb $0x25,-0x8(%rbp)
77: e9 04 08 00 00 jmp 880 <foo+0x880>
7c: 48 89 45 f0 mov %rax,-0x10(%rbp)
80: c6 45 f8 14 movb $0x14,-0x8(%rbp)
84: e9 f7 07 00 00 jmp 880 <foo+0x880>
89: 48 89 45 f0 mov %rax,-0x10(%rbp)
8d: c6 45 f8 16 movb $0x16,-0x8(%rbp)
91: e9 ea 07 00 00 jmp 880 <foo+0x880>
96: 48 89 45 f0 mov %rax,-0x10(%rbp)
9a: c6 45 f8 3b movb $0x3b,-0x8(%rbp)
9e: e9 dd 07 00 00 jmp 880 <foo+0x880>
a3: 48 89 45 f0 mov %rax,-0x10(%rbp)
a7: c6 45 f8 1f movb $0x1f,-0x8(%rbp)
ab: e9 d0 07 00 00 jmp 880 <foo+0x880>
b0: 48 89 45 f0 mov %rax,-0x10(%rbp)
b4: c6 45 f8 2f movb $0x2f,-0x8(%rbp)
b8: e9 c3 07 00 00 jmp 880 <foo+0x880>
bd: 48 89 45 f0 mov %rax,-0x10(%rbp)
c1: c6 45 f8 55 movb $0x55,-0x8(%rbp)
c5: e9 b6 07 00 00 jmp 880 <foo+0x880>
ca: 48 89 45 f0 mov %rax,-0x10(%rbp)
ce: c6 45 f8 09 movb $0x9,-0x8(%rbp)
d2: e9 a9 07 00 00 jmp 880 <foo+0x880>
d7: 89 45 f0 mov %eax,-0x10(%rbp)
da: c6 45 f8 3c movb $0x3c,-0x8(%rbp)
de: e9 9d 07 00 00 jmp 880 <foo+0x880>
e3: 48 89 45 f0 mov %rax,-0x10(%rbp)
e7: c6 45 f8 20 movb $0x20,-0x8(%rbp)
eb: e9 90 07 00 00 jmp 880 <foo+0x880>
f0: 48 89 45 f0 mov %rax,-0x10(%rbp)
f4: c6 45 f8 02 movb $0x2,-0x8(%rbp)
f8: e9 83 07 00 00 jmp 880 <foo+0x880>
fd: 48 89 45 f0 mov %rax,-0x10(%rbp)
101: c6 45 f8 56 movb $0x56,-0x8(%rbp)
105: e9 76 07 00 00 jmp 880 <foo+0x880>
10a: 48 89 45 f0 mov %rax,-0x10(%rbp)
10e: c6 45 f8 4e movb $0x4e,-0x8(%rbp)
112: e9 69 07 00 00 jmp 880 <foo+0x880>
117: 89 45 f0 mov %eax,-0x10(%rbp)
11a: c6 45 f8 3f movb $0x3f,-0x8(%rbp)
11e: e9 5d 07 00 00 jmp 880 <foo+0x880>
123: 48 89 45 f0 mov %rax,-0x10(%rbp)
127: c6 45 f8 0a movb $0xa,-0x8(%rbp)
12b: e9 50 07 00 00 jmp 880 <foo+0x880>
130: 48 89 45 f0 mov %rax,-0x10(%rbp)
134: c6 45 f8 0d movb $0xd,-0x8(%rbp)
138: e9 43 07 00 00 jmp 880 <foo+0x880>
13d: 48 89 45 f0 mov %rax,-0x10(%rbp)
141: c6 45 f8 5a movb $0x5a,-0x8(%rbp)
145: e9 36 07 00 00 jmp 880 <foo+0x880>
14a: 48 89 45 f0 mov %rax,-0x10(%rbp)
14e: c6 45 f8 31 movb $0x31,-0x8(%rbp)
152: e9 29 07 00 00 jmp 880 <foo+0x880>
157: 48 89 45 f0 mov %rax,-0x10(%rbp)
15b: c6 45 f8 49 movb $0x49,-0x8(%rbp)
15f: e9 1c 07 00 00 jmp 880 <foo+0x880>
164: 89 45 f0 mov %eax,-0x10(%rbp)
167: c6 45 f8 40 movb $0x40,-0x8(%rbp)
16b: e9 10 07 00 00 jmp 880 <foo+0x880>
170: 48 89 45 f0 mov %rax,-0x10(%rbp)
174: c6 45 f8 63 movb $0x63,-0x8(%rbp)
178: e9 03 07 00 00 jmp 880 <foo+0x880>
17d: 48 89 45 f0 mov %rax,-0x10(%rbp)
181: c6 45 f8 0e movb $0xe,-0x8(%rbp)
185: e9 f6 06 00 00 jmp 880 <foo+0x880>
18a: 89 45 f0 mov %eax,-0x10(%rbp)
18d: c6 45 f8 01 movb $0x1,-0x8(%rbp)
191: e9 ea 06 00 00 jmp 880 <foo+0x880>
196: 48 89 45 f0 mov %rax,-0x10(%rbp)
19a: c6 45 f8 5c movb $0x5c,-0x8(%rbp)
19e: e9 dd 06 00 00 jmp 880 <foo+0x880>
1a3: 48 89 45 f0 mov %rax,-0x10(%rbp)
1a7: c6 45 f8 11 movb $0x11,-0x8(%rbp)
1ab: e9 d0 06 00 00 jmp 880 <foo+0x880>
1b0: 48 89 45 f0 mov %rax,-0x10(%rbp)
1b4: c6 45 f8 4c movb $0x4c,-0x8(%rbp)
1b8: e9 c3 06 00 00 jmp 880 <foo+0x880>
1bd: 89 45 f0 mov %eax,-0x10(%rbp)
1c0: c6 45 f8 77 movb $0x77,-0x8(%rbp)
1c4: e9 b7 06 00 00 jmp 880 <foo+0x880>
1c9: 48 89 45 f0 mov %rax,-0x10(%rbp)
1cd: c6 45 f8 51 movb $0x51,-0x8(%rbp)
1d1: e9 aa 06 00 00 jmp 880 <foo+0x880>
1d6: 48 89 45 f0 mov %rax,-0x10(%rbp)
1da: c6 45 f8 7e movb $0x7e,-0x8(%rbp)
1de: e9 9d 06 00 00 jmp 880 <foo+0x880>
1e3: 89 45 f0 mov %eax,-0x10(%rbp)
1e6: c6 45 f8 43 movb $0x43,-0x8(%rbp)
1ea: e9 91 06 00 00 jmp 880 <foo+0x880>
1ef: 89 45 f0 mov %eax,-0x10(%rbp)
1f2: c6 45 f8 08 movb $0x8,-0x8(%rbp)
1f6: e9 85 06 00 00 jmp 880 <foo+0x880>
1fb: 48 89 45 f0 mov %rax,-0x10(%rbp)
1ff: c6 45 f8 12 movb $0x12,-0x8(%rbp)
203: e9 78 06 00 00 jmp 880 <foo+0x880>
208: 48 89 45 f0 mov %rax,-0x10(%rbp)
20c: c6 45 f8 37 movb $0x37,-0x8(%rbp)
210: e9 6b 06 00 00 jmp 880 <foo+0x880>
215: 48 89 45 f0 mov %rax,-0x10(%rbp)
219: c6 45 f8 1a movb $0x1a,-0x8(%rbp)
21d: e9 5e 06 00 00 jmp 880 <foo+0x880>
222: 89 45 f0 mov %eax,-0x10(%rbp)
225: c6 45 f8 3d movb $0x3d,-0x8(%rbp)
229: e9 52 06 00 00 jmp 880 <foo+0x880>
22e: 48 89 45 f0 mov %rax,-0x10(%rbp)
232: c6 45 f8 38 movb $0x38,-0x8(%rbp)
236: e9 45 06 00 00 jmp 880 <foo+0x880>
23b: 48 89 45 f0 mov %rax,-0x10(%rbp)
23f: c6 45 f8 67 movb $0x67,-0x8(%rbp)
243: e9 38 06 00 00 jmp 880 <foo+0x880>
248: 48 89 45 f0 mov %rax,-0x10(%rbp)
24c: c6 45 f8 59 movb $0x59,-0x8(%rbp)
250: e9 2b 06 00 00 jmp 880 <foo+0x880>
255: 48 89 45 f0 mov %rax,-0x10(%rbp)
259: c6 45 f8 62 movb $0x62,-0x8(%rbp)
25d: e9 1e 06 00 00 jmp 880 <foo+0x880>
262: b8 00 00 00 00 mov $0x0,%eax
267: e9 18 06 00 00 jmp 884 <foo+0x884>
26c: 48 89 45 f0 mov %rax,-0x10(%rbp)
270: c6 45 f8 74 movb $0x74,-0x8(%rbp)
274: e9 07 06 00 00 jmp 880 <foo+0x880>
279: 89 45 f0 mov %eax,-0x10(%rbp)
27c: c6 45 f8 3e movb $0x3e,-0x8(%rbp)
280: e9 fb 05 00 00 jmp 880 <foo+0x880>
285: 89 45 f0 mov %eax,-0x10(%rbp)
288: c6 45 f8 7a movb $0x7a,-0x8(%rbp)
28c: e9 ef 05 00 00 jmp 880 <foo+0x880>
291: 48 89 45 f0 mov %rax,-0x10(%rbp)
295: c6 45 f8 71 movb $0x71,-0x8(%rbp)
299: e9 e2 05 00 00 jmp 880 <foo+0x880>
29e: 48 89 45 f0 mov %rax,-0x10(%rbp)
2a2: c6 45 f8 5e movb $0x5e,-0x8(%rbp)
2a6: e9 d5 05 00 00 jmp 880 <foo+0x880>
2ab: 89 45 f0 mov %eax,-0x10(%rbp)
2ae: c6 45 f8 86 movb $0x86,-0x8(%rbp)
2b2: e9 c9 05 00 00 jmp 880 <foo+0x880>
2b7: b8 00 00 00 00 mov $0x0,%eax
2bc: e9 c3 05 00 00 jmp 884 <foo+0x884>
2c1: 48 89 45 f0 mov %rax,-0x10(%rbp)
2c5: c6 45 f8 1e movb $0x1e,-0x8(%rbp)
2c9: e9 b2 05 00 00 jmp 880 <foo+0x880>
2ce: 48 89 45 f0 mov %rax,-0x10(%rbp)
2d2: c6 45 f8 15 movb $0x15,-0x8(%rbp)
2d6: e9 a5 05 00 00 jmp 880 <foo+0x880>
2db: 48 89 45 f0 mov %rax,-0x10(%rbp)
2df: c6 45 f8 64 movb $0x64,-0x8(%rbp)
2e3: e9 98 05 00 00 jmp 880 <foo+0x880>
2e8: 89 45 f0 mov %eax,-0x10(%rbp)
2eb: c6 45 f8 8e movb $0x8e,-0x8(%rbp)
2ef: e9 8c 05 00 00 jmp 880 <foo+0x880>
2f4: b8 00 00 00 00 mov $0x0,%eax
2f9: e9 86 05 00 00 jmp 884 <foo+0x884>
2fe: 48 89 45 f0 mov %rax,-0x10(%rbp)
302: c6 45 f8 22 movb $0x22,-0x8(%rbp)
306: e9 75 05 00 00 jmp 880 <foo+0x880>
30b: 48 89 45 f0 mov %rax,-0x10(%rbp)
30f: c6 45 f8 27 movb $0x27,-0x8(%rbp)
313: e9 68 05 00 00 jmp 880 <foo+0x880>
318: 48 89 45 f0 mov %rax,-0x10(%rbp)
31c: c6 45 f8 99 movb $0x99,-0x8(%rbp)
320: e9 5b 05 00 00 jmp 880 <foo+0x880>
325: 48 89 45 f0 mov %rax,-0x10(%rbp)
329: c6 45 f8 66 movb $0x66,-0x8(%rbp)
32d: e9 4e 05 00 00 jmp 880 <foo+0x880>
332: 48 89 45 f0 mov %rax,-0x10(%rbp)
336: c6 45 f8 7d movb $0x7d,-0x8(%rbp)
33a: e9 41 05 00 00 jmp 880 <foo+0x880>
33f: 48 89 45 f0 mov %rax,-0x10(%rbp)
343: c6 45 f8 9b movb $0x9b,-0x8(%rbp)
347: e9 34 05 00 00 jmp 880 <foo+0x880>
34c: 48 89 45 f0 mov %rax,-0x10(%rbp)
350: c6 45 f8 88 movb $0x88,-0x8(%rbp)
354: e9 27 05 00 00 jmp 880 <foo+0x880>
359: 48 89 45 f0 mov %rax,-0x10(%rbp)
35d: c6 45 f8 79 movb $0x79,-0x8(%rbp)
361: e9 1a 05 00 00 jmp 880 <foo+0x880>
366: 48 89 45 f0 mov %rax,-0x10(%rbp)
36a: c6 45 f8 34 movb $0x34,-0x8(%rbp)
36e: e9 0d 05 00 00 jmp 880 <foo+0x880>
373: 48 89 45 f0 mov %rax,-0x10(%rbp)
377: c6 45 f8 6f movb $0x6f,-0x8(%rbp)
37b: e9 00 05 00 00 jmp 880 <foo+0x880>
380: 48 89 45 f0 mov %rax,-0x10(%rbp)
384: c6 45 f8 28 movb $0x28,-0x8(%rbp)
388: e9 f3 04 00 00 jmp 880 <foo+0x880>
38d: 48 89 45 f0 mov %rax,-0x10(%rbp)
391: c6 45 f8 57 movb $0x57,-0x8(%rbp)
395: e9 e6 04 00 00 jmp 880 <foo+0x880>
39a: 89 45 f0 mov %eax,-0x10(%rbp)
39d: c6 45 f8 9e movb $0x9e,-0x8(%rbp)
3a1: e9 da 04 00 00 jmp 880 <foo+0x880>
3a6: 48 89 45 f0 mov %rax,-0x10(%rbp)
3aa: c6 45 f8 30 movb $0x30,-0x8(%rbp)
3ae: e9 cd 04 00 00 jmp 880 <foo+0x880>
3b3: 48 89 45 f0 mov %rax,-0x10(%rbp)
3b7: c6 45 f8 58 movb $0x58,-0x8(%rbp)
3bb: e9 c0 04 00 00 jmp 880 <foo+0x880>
3c0: 48 89 45 f0 mov %rax,-0x10(%rbp)
3c4: c6 45 f8 78 movb $0x78,-0x8(%rbp)
3c8: e9 b3 04 00 00 jmp 880 <foo+0x880>
3cd: 48 89 45 f0 mov %rax,-0x10(%rbp)
3d1: c6 45 f8 a5 movb $0xa5,-0x8(%rbp)
3d5: e9 a6 04 00 00 jmp 880 <foo+0x880>
3da: b8 00 00 00 00 mov $0x0,%eax
3df: e9 a0 04 00 00 jmp 884 <foo+0x884>
3e4: 48 89 45 f0 mov %rax,-0x10(%rbp)
3e8: c6 45 f8 2a movb $0x2a,-0x8(%rbp)
3ec: e9 8f 04 00 00 jmp 880 <foo+0x880>
3f1: 48 89 45 f0 mov %rax,-0x10(%rbp)
3f5: c6 45 f8 6d movb $0x6d,-0x8(%rbp)
3f9: e9 82 04 00 00 jmp 880 <foo+0x880>
3fe: 48 89 45 f0 mov %rax,-0x10(%rbp)
402: c6 45 f8 69 movb $0x69,-0x8(%rbp)
406: e9 75 04 00 00 jmp 880 <foo+0x880>
40b: 48 89 45 f0 mov %rax,-0x10(%rbp)
40f: c6 45 f8 9d movb $0x9d,-0x8(%rbp)
413: e9 68 04 00 00 jmp 880 <foo+0x880>
418: 48 89 45 f0 mov %rax,-0x10(%rbp)
41c: c6 45 f8 a0 movb $0xa0,-0x8(%rbp)
420: e9 5b 04 00 00 jmp 880 <foo+0x880>
425: 48 89 45 f0 mov %rax,-0x10(%rbp)
429: c6 45 f8 90 movb $0x90,-0x8(%rbp)
42d: e9 4e 04 00 00 jmp 880 <foo+0x880>
432: 48 89 45 f0 mov %rax,-0x10(%rbp)
436: c6 45 f8 91 movb $0x91,-0x8(%rbp)
43a: e9 41 04 00 00 jmp 880 <foo+0x880>
43f: 48 89 45 f0 mov %rax,-0x10(%rbp)
443: c6 45 f8 a7 movb $0xa7,-0x8(%rbp)
447: e9 34 04 00 00 jmp 880 <foo+0x880>
44c: 48 89 45 f0 mov %rax,-0x10(%rbp)
450: c6 45 f8 10 movb $0x10,-0x8(%rbp)
454: e9 27 04 00 00 jmp 880 <foo+0x880>
459: 48 89 45 f0 mov %rax,-0x10(%rbp)
45d: c6 45 f8 13 movb $0x13,-0x8(%rbp)
461: e9 1a 04 00 00 jmp 880 <foo+0x880>
466: 48 89 45 f0 mov %rax,-0x10(%rbp)
46a: c6 45 f8 9a movb $0x9a,-0x8(%rbp)
46e: e9 0d 04 00 00 jmp 880 <foo+0x880>
473: 48 89 45 f0 mov %rax,-0x10(%rbp)
477: c6 45 f8 2c movb $0x2c,-0x8(%rbp)
47b: e9 00 04 00 00 jmp 880 <foo+0x880>
480: 48 89 45 f0 mov %rax,-0x10(%rbp)
484: c6 45 f8 6a movb $0x6a,-0x8(%rbp)
488: e9 f3 03 00 00 jmp 880 <foo+0x880>
48d: 48 89 45 f0 mov %rax,-0x10(%rbp)
491: c6 45 f8 a6 movb $0xa6,-0x8(%rbp)
495: e9 e6 03 00 00 jmp 880 <foo+0x880>
49a: 48 89 45 f0 mov %rax,-0x10(%rbp)
49e: c6 45 f8 a2 movb $0xa2,-0x8(%rbp)
4a2: e9 d9 03 00 00 jmp 880 <foo+0x880>
4a7: 48 89 45 f0 mov %rax,-0x10(%rbp)
4ab: c6 45 f8 a8 movb $0xa8,-0x8(%rbp)
4af: e9 cc 03 00 00 jmp 880 <foo+0x880>
4b4: 48 89 45 f0 mov %rax,-0x10(%rbp)
4b8: c6 45 f8 a9 movb $0xa9,-0x8(%rbp)
4bc: e9 bf 03 00 00 jmp 880 <foo+0x880>
4c1: 89 45 f0 mov %eax,-0x10(%rbp)
4c4: c6 45 f8 4d movb $0x4d,-0x8(%rbp)
4c8: e9 b3 03 00 00 jmp 880 <foo+0x880>
4cd: 48 89 45 f0 mov %rax,-0x10(%rbp)
4d1: c6 45 f8 47 movb $0x47,-0x8(%rbp)
4d5: e9 a6 03 00 00 jmp 880 <foo+0x880>
4da: 48 89 45 f0 mov %rax,-0x10(%rbp)
4de: c6 45 f8 8a movb $0x8a,-0x8(%rbp)
4e2: e9 99 03 00 00 jmp 880 <foo+0x880>
4e7: 48 89 45 f0 mov %rax,-0x10(%rbp)
4eb: c6 45 f8 98 movb $0x98,-0x8(%rbp)
4ef: e9 8c 03 00 00 jmp 880 <foo+0x880>
4f4: 48 89 45 f0 mov %rax,-0x10(%rbp)
4f8: c6 45 f8 4b movb $0x4b,-0x8(%rbp)
4fc: e9 7f 03 00 00 jmp 880 <foo+0x880>
501: 48 89 45 f0 mov %rax,-0x10(%rbp)
505: c6 45 f8 80 movb $0x80,-0x8(%rbp)
509: e9 72 03 00 00 jmp 880 <foo+0x880>
50e: 48 89 45 f0 mov %rax,-0x10(%rbp)
512: c6 45 f8 5d movb $0x5d,-0x8(%rbp)
516: e9 65 03 00 00 jmp 880 <foo+0x880>
51b: 48 89 45 f0 mov %rax,-0x10(%rbp)
51f: c6 45 f8 95 movb $0x95,-0x8(%rbp)
523: e9 58 03 00 00 jmp 880 <foo+0x880>
528: 48 89 45 f0 mov %rax,-0x10(%rbp)
52c: c6 45 f8 6c movb $0x6c,-0x8(%rbp)
530: e9 4b 03 00 00 jmp 880 <foo+0x880>
535: 48 89 45 f0 mov %rax,-0x10(%rbp)
539: c6 45 f8 a4 movb $0xa4,-0x8(%rbp)
53d: e9 3e 03 00 00 jmp 880 <foo+0x880>
542: 48 89 45 f0 mov %rax,-0x10(%rbp)
546: c6 45 f8 68 movb $0x68,-0x8(%rbp)
54a: e9 31 03 00 00 jmp 880 <foo+0x880>
54f: 48 89 45 f0 mov %rax,-0x10(%rbp)
553: c6 45 f8 6b movb $0x6b,-0x8(%rbp)
557: e9 24 03 00 00 jmp 880 <foo+0x880>
55c: 48 89 45 f0 mov %rax,-0x10(%rbp)
560: c6 45 f8 94 movb $0x94,-0x8(%rbp)
564: e9 17 03 00 00 jmp 880 <foo+0x880>
569: 48 89 45 f0 mov %rax,-0x10(%rbp)
56d: c6 45 f8 9c movb $0x9c,-0x8(%rbp)
571: e9 0a 03 00 00 jmp 880 <foo+0x880>
576: 48 89 45 f0 mov %rax,-0x10(%rbp)
57a: c6 45 f8 a3 movb $0xa3,-0x8(%rbp)
57e: e9 fd 02 00 00 jmp 880 <foo+0x880>
583: 48 89 45 f0 mov %rax,-0x10(%rbp)
587: c6 45 f8 97 movb $0x97,-0x8(%rbp)
58b: e9 f0 02 00 00 jmp 880 <foo+0x880>
590: 89 45 f0 mov %eax,-0x10(%rbp)
593: c6 45 f8 9f movb $0x9f,-0x8(%rbp)
597: e9 e4 02 00 00 jmp 880 <foo+0x880>
59c: 48 89 45 f0 mov %rax,-0x10(%rbp)
5a0: c6 45 f8 a1 movb $0xa1,-0x8(%rbp)
5a4: e9 d7 02 00 00 jmp 880 <foo+0x880>
5a9: 48 89 45 f0 mov %rax,-0x10(%rbp)
5ad: c6 45 f8 8b movb $0x8b,-0x8(%rbp)
5b1: e9 ca 02 00 00 jmp 880 <foo+0x880>
5b6: 48 89 45 f0 mov %rax,-0x10(%rbp)
5ba: c6 45 f8 89 movb $0x89,-0x8(%rbp)
5be: e9 bd 02 00 00 jmp 880 <foo+0x880>
5c3: 48 89 45 f0 mov %rax,-0x10(%rbp)
5c7: c6 45 f8 7c movb $0x7c,-0x8(%rbp)
5cb: e9 b0 02 00 00 jmp 880 <foo+0x880>
5d0: 48 89 45 f0 mov %rax,-0x10(%rbp)
5d4: c6 45 f8 19 movb $0x19,-0x8(%rbp)
5d8: e9 a3 02 00 00 jmp 880 <foo+0x880>
5dd: 48 89 45 f0 mov %rax,-0x10(%rbp)
5e1: c6 45 f8 2b movb $0x2b,-0x8(%rbp)
5e5: e9 96 02 00 00 jmp 880 <foo+0x880>
5ea: 48 89 45 f0 mov %rax,-0x10(%rbp)
5ee: c6 45 f8 29 movb $0x29,-0x8(%rbp)
5f2: e9 89 02 00 00 jmp 880 <foo+0x880>
5f7: 48 89 45 f0 mov %rax,-0x10(%rbp)
5fb: c6 45 f8 54 movb $0x54,-0x8(%rbp)
5ff: e9 7c 02 00 00 jmp 880 <foo+0x880>
604: 48 89 45 f0 mov %rax,-0x10(%rbp)
608: c6 45 f8 93 movb $0x93,-0x8(%rbp)
60c: e9 6f 02 00 00 jmp 880 <foo+0x880>
611: 48 89 45 f0 mov %rax,-0x10(%rbp)
615: c6 45 f8 53 movb $0x53,-0x8(%rbp)
619: e9 62 02 00 00 jmp 880 <foo+0x880>
61e: 48 89 45 f0 mov %rax,-0x10(%rbp)
622: c6 45 f8 36 movb $0x36,-0x8(%rbp)
626: e9 55 02 00 00 jmp 880 <foo+0x880>
62b: 48 89 45 f0 mov %rax,-0x10(%rbp)
62f: c6 45 f8 32 movb $0x32,-0x8(%rbp)
633: e9 48 02 00 00 jmp 880 <foo+0x880>
638: 48 89 45 f0 mov %rax,-0x10(%rbp)
63c: c6 45 f8 39 movb $0x39,-0x8(%rbp)
640: e9 3b 02 00 00 jmp 880 <foo+0x880>
645: 48 89 45 f0 mov %rax,-0x10(%rbp)
649: c6 45 f8 33 movb $0x33,-0x8(%rbp)
64d: e9 2e 02 00 00 jmp 880 <foo+0x880>
652: b8 00 00 00 00 mov $0x0,%eax
657: e9 28 02 00 00 jmp 884 <foo+0x884>
65c: 48 89 45 f0 mov %rax,-0x10(%rbp)
660: c6 45 f8 96 movb $0x96,-0x8(%rbp)
664: e9 17 02 00 00 jmp 880 <foo+0x880>
669: 48 89 45 f0 mov %rax,-0x10(%rbp)
66d: c6 45 f8 70 movb $0x70,-0x8(%rbp)
671: e9 0a 02 00 00 jmp 880 <foo+0x880>
676: 48 89 45 f0 mov %rax,-0x10(%rbp)
67a: c6 45 f8 7f movb $0x7f,-0x8(%rbp)
67e: e9 fd 01 00 00 jmp 880 <foo+0x880>
683: 48 89 45 f0 mov %rax,-0x10(%rbp)
687: c6 45 f8 6e movb $0x6e,-0x8(%rbp)
68b: e9 f0 01 00 00 jmp 880 <foo+0x880>
690: 48 89 45 f0 mov %rax,-0x10(%rbp)
694: c6 45 f8 92 movb $0x92,-0x8(%rbp)
698: e9 e3 01 00 00 jmp 880 <foo+0x880>
69d: 48 89 45 f0 mov %rax,-0x10(%rbp)
6a1: c6 45 f8 8d movb $0x8d,-0x8(%rbp)
6a5: e9 d6 01 00 00 jmp 880 <foo+0x880>
6aa: 48 89 45 f0 mov %rax,-0x10(%rbp)
6ae: c6 45 f8 8c movb $0x8c,-0x8(%rbp)
6b2: e9 c9 01 00 00 jmp 880 <foo+0x880>
6b7: 48 89 45 f0 mov %rax,-0x10(%rbp)
6bb: c6 45 f8 35 movb $0x35,-0x8(%rbp)
6bf: e9 bc 01 00 00 jmp 880 <foo+0x880>
6c4: b8 00 00 00 00 mov $0x0,%eax
6c9: e9 b6 01 00 00 jmp 884 <foo+0x884>
6ce: 48 89 45 f0 mov %rax,-0x10(%rbp)
6d2: c6 45 f8 8f movb $0x8f,-0x8(%rbp)
6d6: e9 a5 01 00 00 jmp 880 <foo+0x880>
6db: 48 89 45 f0 mov %rax,-0x10(%rbp)
6df: c6 45 f8 73 movb $0x73,-0x8(%rbp)
6e3: e9 98 01 00 00 jmp 880 <foo+0x880>
6e8: 48 89 45 f0 mov %rax,-0x10(%rbp)
6ec: c6 45 f8 18 movb $0x18,-0x8(%rbp)
6f0: e9 8b 01 00 00 jmp 880 <foo+0x880>
6f5: 48 89 45 f0 mov %rax,-0x10(%rbp)
6f9: c6 45 f8 3a movb $0x3a,-0x8(%rbp)
6fd: e9 7e 01 00 00 jmp 880 <foo+0x880>
702: 48 89 45 f0 mov %rax,-0x10(%rbp)
706: c6 45 f8 21 movb $0x21,-0x8(%rbp)
70a: e9 71 01 00 00 jmp 880 <foo+0x880>
70f: 48 89 45 f0 mov %rax,-0x10(%rbp)
713: c6 45 f8 61 movb $0x61,-0x8(%rbp)
717: e9 64 01 00 00 jmp 880 <foo+0x880>
71c: 48 89 45 f0 mov %rax,-0x10(%rbp)
720: c6 45 f8 72 movb $0x72,-0x8(%rbp)
724: e9 57 01 00 00 jmp 880 <foo+0x880>
729: 48 89 45 f0 mov %rax,-0x10(%rbp)
72d: c6 45 f8 2d movb $0x2d,-0x8(%rbp)
731: e9 4a 01 00 00 jmp 880 <foo+0x880>
736: 48 89 45 f0 mov %rax,-0x10(%rbp)
73a: c6 45 f8 75 movb $0x75,-0x8(%rbp)
73e: e9 3d 01 00 00 jmp 880 <foo+0x880>
743: 48 89 45 f0 mov %rax,-0x10(%rbp)
747: c6 45 f8 7b movb $0x7b,-0x8(%rbp)
74b: e9 30 01 00 00 jmp 880 <foo+0x880>
750: 48 89 45 f0 mov %rax,-0x10(%rbp)
754: c6 45 f8 60 movb $0x60,-0x8(%rbp)
758: e9 23 01 00 00 jmp 880 <foo+0x880>
75d: 48 89 45 f0 mov %rax,-0x10(%rbp)
761: c6 45 f8 1b movb $0x1b,-0x8(%rbp)
765: e9 16 01 00 00 jmp 880 <foo+0x880>
76a: 48 89 45 f0 mov %rax,-0x10(%rbp)
76e: c6 45 f8 52 movb $0x52,-0x8(%rbp)
772: e9 09 01 00 00 jmp 880 <foo+0x880>
777: 48 89 45 f0 mov %rax,-0x10(%rbp)
77b: c6 45 f8 5f movb $0x5f,-0x8(%rbp)
77f: e9 fc 00 00 00 jmp 880 <foo+0x880>
784: 89 45 f0 mov %eax,-0x10(%rbp)
787: c6 45 f8 41 movb $0x41,-0x8(%rbp)
78b: e9 f0 00 00 00 jmp 880 <foo+0x880>
790: 89 45 f0 mov %eax,-0x10(%rbp)
793: c6 45 f8 76 movb $0x76,-0x8(%rbp)
797: e9 e4 00 00 00 jmp 880 <foo+0x880>
79c: 89 45 f0 mov %eax,-0x10(%rbp)
79f: c6 45 f8 42 movb $0x42,-0x8(%rbp)
7a3: e9 d8 00 00 00 jmp 880 <foo+0x880>
7a8: 48 89 45 f0 mov %rax,-0x10(%rbp)
7ac: c6 45 f8 5b movb $0x5b,-0x8(%rbp)
7b0: e9 cb 00 00 00 jmp 880 <foo+0x880>
7b5: 48 89 45 f0 mov %rax,-0x10(%rbp)
7b9: c6 45 f8 44 movb $0x44,-0x8(%rbp)
7bd: e9 be 00 00 00 jmp 880 <foo+0x880>
7c2: 48 89 45 f0 mov %rax,-0x10(%rbp)
7c6: c6 45 f8 65 movb $0x65,-0x8(%rbp)
7ca: e9 b1 00 00 00 jmp 880 <foo+0x880>
7cf: 48 89 45 f0 mov %rax,-0x10(%rbp)
7d3: c6 45 f8 0f movb $0xf,-0x8(%rbp)
7d7: e9 a4 00 00 00 jmp 880 <foo+0x880>
7dc: 48 89 45 f0 mov %rax,-0x10(%rbp)
7e0: c6 45 f8 4a movb $0x4a,-0x8(%rbp)
7e4: e9 97 00 00 00 jmp 880 <foo+0x880>
7e9: b8 00 00 00 00 mov $0x0,%eax
7ee: e9 91 00 00 00 jmp 884 <foo+0x884>
7f3: 48 89 45 f0 mov %rax,-0x10(%rbp)
7f7: c6 45 f8 23 movb $0x23,-0x8(%rbp)
7fb: e9 80 00 00 00 jmp 880 <foo+0x880>
800: 48 89 45 f0 mov %rax,-0x10(%rbp)
804: c6 45 f8 4f movb $0x4f,-0x8(%rbp)
808: eb 76 jmp 880 <foo+0x880>
80a: 48 89 45 f0 mov %rax,-0x10(%rbp)
80e: c6 45 f8 50 movb $0x50,-0x8(%rbp)
812: eb 6c jmp 880 <foo+0x880>
814: 48 89 45 f0 mov %rax,-0x10(%rbp)
818: c6 45 f8 1c movb $0x1c,-0x8(%rbp)
81c: eb 62 jmp 880 <foo+0x880>
81e: 48 89 45 f0 mov %rax,-0x10(%rbp)
822: c6 45 f8 17 movb $0x17,-0x8(%rbp)
826: eb 58 jmp 880 <foo+0x880>
828: 48 89 45 f0 mov %rax,-0x10(%rbp)
82c: c6 45 f8 48 movb $0x48,-0x8(%rbp)
830: eb 4e jmp 880 <foo+0x880>
832: 48 89 45 f0 mov %rax,-0x10(%rbp)
836: c6 45 f8 07 movb $0x7,-0x8(%rbp)
83a: eb 44 jmp 880 <foo+0x880>
83c: 48 89 45 f0 mov %rax,-0x10(%rbp)
840: c6 45 f8 24 movb $0x24,-0x8(%rbp)
844: eb 3a jmp 880 <foo+0x880>
846: 48 89 45 f0 mov %rax,-0x10(%rbp)
84a: c6 45 f8 46 movb $0x46,-0x8(%rbp)
84e: eb 30 jmp 880 <foo+0x880>
850: 48 89 45 f0 mov %rax,-0x10(%rbp)
854: c6 45 f8 1d movb $0x1d,-0x8(%rbp)
858: eb 26 jmp 880 <foo+0x880>
85a: 48 89 45 f0 mov %rax,-0x10(%rbp)
85e: c6 45 f8 05 movb $0x5,-0x8(%rbp)
862: eb 1c jmp 880 <foo+0x880>
864: 48 89 45 f0 mov %rax,-0x10(%rbp)
868: c6 45 f8 0b movb $0xb,-0x8(%rbp)
86c: eb 12 jmp 880 <foo+0x880>
86e: 48 89 45 f0 mov %rax,-0x10(%rbp)
872: c6 45 f8 06 movb $0x6,-0x8(%rbp)
876: eb 08 jmp 880 <foo+0x880>
878: 48 89 45 f0 mov %rax,-0x10(%rbp)
87c: c6 45 f8 04 movb $0x4,-0x8(%rbp)
880: 48 8d 45 f0 lea -0x10(%rbp),%rax
884: 8b 48 08 mov 0x8(%rax),%ecx
887: 89 4d e8 mov %ecx,-0x18(%rbp)
88a: 48 8b 00 mov (%rax),%rax
88d: 48 89 45 e0 mov %rax,-0x20(%rbp)
891: 8b 45 e8 mov -0x18(%rbp),%eax
894: 89 45 f8 mov %eax,-0x8(%rbp)
897: 48 8b 45 e0 mov -0x20(%rbp),%rax
89b: 48 89 45 f0 mov %rax,-0x10(%rbp)
89f: 48 8d 45 f0 lea -0x10(%rbp),%rax
8a3: 48 89 45 d0 mov %rax,-0x30(%rbp)
8a7: 48 8d 45 d0 lea -0x30(%rbp),%rax
8ab: 48 89 45 d8 mov %rax,-0x28(%rbp)
8af: 5d pop %rbp
8b0: c3 ret
The implementation of
std.MultiArrayListuses aninline elseto construct a tagged union from the tag and data which leads to bad code generation in all release modes.https://godbolt.org/z/7Kxz9q8fG
Show Code
Show Disassembly