Skip to content

Instantly share code, notes, and snippets.

@fujidig
Created March 22, 2014 19:57
Show Gist options
  • Save fujidig/9713301 to your computer and use it in GitHub Desktop.
Save fujidig/9713301 to your computer and use it in GitHub Desktop.
cl & objdump
C:\users\user>cl /c /Zi mt-benchmark.c
Microsoft(R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
mt-benchmark.c
C:\users\user>objdump -S mt-benchmark.obj
mt-benchmark.obj: file format pe-i386
Disassembly of section .text$mn:
00000000 <_next_mt_elem>:
0: 55 push %ebp
1: 8b ec mov %esp,%ebp
3: 8b 45 08 mov 0x8(%ebp),%eax
6: c1 e8 1e shr $0x1e,%eax
9: 33 45 08 xor 0x8(%ebp),%eax
c: 69 c0 65 89 07 6c imul $0x6c078965,%eax,%eax
12: 03 45 0c add 0xc(%ebp),%eax
15: 5d pop %ebp
16: c3 ret
17: cc int3
18: cc int3
19: cc int3
1a: cc int3
1b: cc int3
1c: cc int3
1d: cc int3
1e: cc int3
1f: cc int3
00000020 <_genrand>:
20: 55 push %ebp
21: 8b ec mov %esp,%ebp
23: 83 ec 08 sub $0x8,%esp
26: 8b 45 08 mov 0x8(%ebp),%eax
29: 25 00 00 00 80 and $0x80000000,%eax
2e: 8b 4d 0c mov 0xc(%ebp),%ecx
31: 81 e1 ff ff ff 7f and $0x7fffffff,%ecx
37: 0b c1 or %ecx,%eax
39: 89 45 fc mov %eax,-0x4(%ebp)
3c: 8b 55 fc mov -0x4(%ebp),%edx
3f: 83 e2 01 and $0x1,%edx
42: 74 09 je 4d <_genrand+0x2d>
44: c7 45 f8 df b0 08 99 movl $0x9908b0df,-0x8(%ebp)
4b: eb 07 jmp 54 <_genrand+0x34>
4d: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%ebp)
54: 8b 45 fc mov -0x4(%ebp),%eax
57: d1 e8 shr %eax
59: 33 45 10 xor 0x10(%ebp),%eax
5c: 33 45 f8 xor -0x8(%ebp),%eax
5f: 89 45 fc mov %eax,-0x4(%ebp)
62: 8b 4d fc mov -0x4(%ebp),%ecx
65: c1 e9 0b shr $0xb,%ecx
68: 33 4d fc xor -0x4(%ebp),%ecx
6b: 89 4d fc mov %ecx,-0x4(%ebp)
6e: 8b 55 fc mov -0x4(%ebp),%edx
71: c1 e2 07 shl $0x7,%edx
74: 81 e2 80 56 2c 9d and $0x9d2c5680,%edx
7a: 33 55 fc xor -0x4(%ebp),%edx
7d: 89 55 fc mov %edx,-0x4(%ebp)
80: 8b 45 fc mov -0x4(%ebp),%eax
83: c1 e0 0f shl $0xf,%eax
86: 25 00 00 c6 ef and $0xefc60000,%eax
8b: 33 45 fc xor -0x4(%ebp),%eax
8e: 89 45 fc mov %eax,-0x4(%ebp)
91: 8b 4d fc mov -0x4(%ebp),%ecx
94: c1 e9 12 shr $0x12,%ecx
97: 33 4d fc xor -0x4(%ebp),%ecx
9a: 89 4d fc mov %ecx,-0x4(%ebp)
9d: 8b 45 fc mov -0x4(%ebp),%eax
a0: 8b e5 mov %ebp,%esp
a2: 5d pop %ebp
a3: c3 ret
a4: cc int3
a5: cc int3
a6: cc int3
a7: cc int3
a8: cc int3
a9: cc int3
aa: cc int3
ab: cc int3
ac: cc int3
ad: cc int3
ae: cc int3
af: cc int3
000000b0 <_get_first_mt_result>:
b0: 55 push %ebp
b1: 8b ec mov %esp,%ebp
b3: 83 ec 14 sub $0x14,%esp
b6: 8b 45 08 mov 0x8(%ebp),%eax
b9: 89 45 f0 mov %eax,-0x10(%ebp)
bc: 6a 01 push $0x1
be: 8b 4d f0 mov -0x10(%ebp),%ecx
c1: 51 push %ecx
c2: e8 00 00 00 00 call c7 <_get_first_mt_result+0x17>
c7: 83 c4 08 add $0x8,%esp
ca: 89 45 f4 mov %eax,-0xc(%ebp)
cd: 8b 55 f4 mov -0xc(%ebp),%edx
d0: 89 55 f8 mov %edx,-0x8(%ebp)
d3: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%ebp)
da: eb 09 jmp e5 <_get_first_mt_result+0x35>
dc: 8b 45 fc mov -0x4(%ebp),%eax
df: 83 c0 01 add $0x1,%eax
e2: 89 45 fc mov %eax,-0x4(%ebp)
e5: 81 7d fc 8d 01 00 00 cmpl $0x18d,-0x4(%ebp)
ec: 7f 15 jg 103 <_get_first_mt_result+0x53>
ee: 8b 4d fc mov -0x4(%ebp),%ecx
f1: 51 push %ecx
f2: 8b 55 f8 mov -0x8(%ebp),%edx
f5: 52 push %edx
f6: e8 00 00 00 00 call fb <_get_first_mt_result+0x4b>
fb: 83 c4 08 add $0x8,%esp
fe: 89 45 f8 mov %eax,-0x8(%ebp)
101: eb d9 jmp dc <_get_first_mt_result+0x2c>
103: 8b 45 f8 mov -0x8(%ebp),%eax
106: 89 45 ec mov %eax,-0x14(%ebp)
109: 8b 4d ec mov -0x14(%ebp),%ecx
10c: 51 push %ecx
10d: 8b 55 f4 mov -0xc(%ebp),%edx
110: 52 push %edx
111: 8b 45 f0 mov -0x10(%ebp),%eax
114: 50 push %eax
115: e8 00 00 00 00 call 11a <_get_first_mt_result+0x6a>
11a: 83 c4 0c add $0xc,%esp
11d: 8b e5 mov %ebp,%esp
11f: 5d pop %ebp
120: c3 ret
121: cc int3
122: cc int3
123: cc int3
124: cc int3
125: cc int3
126: cc int3
127: cc int3
128: cc int3
129: cc int3
12a: cc int3
12b: cc int3
12c: cc int3
12d: cc int3
12e: cc int3
12f: cc int3
00000130 <_main>:
130: 55 push %ebp
131: 8b ec mov %esp,%ebp
133: 83 ec 0c sub $0xc,%esp
136: 83 7d 08 02 cmpl $0x2,0x8(%ebp)
13a: 75 1c jne 158 <_main+0x28>
13c: b8 04 00 00 00 mov $0x4,%eax
141: c1 e0 00 shl $0x0,%eax
144: 8b 4d 0c mov 0xc(%ebp),%ecx
147: 8b 14 01 mov (%ecx,%eax,1),%edx
14a: 52 push %edx
14b: e8 00 00 00 00 call 150 <_main+0x20>
150: 83 c4 04 add $0x4,%esp
153: 89 45 f4 mov %eax,-0xc(%ebp)
156: eb 07 jmp 15f <_main+0x2f>
158: c7 45 f4 40 42 0f 00 movl $0xf4240,-0xc(%ebp)
15f: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%ebp)
166: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
16d: eb 09 jmp 178 <_main+0x48>
16f: 8b 45 fc mov -0x4(%ebp),%eax
172: 83 c0 01 add $0x1,%eax
175: 89 45 fc mov %eax,-0x4(%ebp)
178: 8b 4d fc mov -0x4(%ebp),%ecx
17b: 3b 4d f4 cmp -0xc(%ebp),%ecx
17e: 7d 14 jge 194 <_main+0x64>
180: 8b 55 fc mov -0x4(%ebp),%edx
183: 52 push %edx
184: e8 00 00 00 00 call 189 <_main+0x59>
189: 83 c4 04 add $0x4,%esp
18c: 03 45 f8 add -0x8(%ebp),%eax
18f: 89 45 f8 mov %eax,-0x8(%ebp)
192: eb db jmp 16f <_main+0x3f>
194: 8b 45 f8 mov -0x8(%ebp),%eax
197: 50 push %eax
198: 68 00 00 00 00 push $0x0
19d: e8 00 00 00 00 call 1a2 <_main+0x72>
1a2: 83 c4 08 add $0x8,%esp
1a5: 33 c0 xor %eax,%eax
1a7: 8b e5 mov %ebp,%esp
1a9: 5d pop %ebp
1aa: c3 ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment