-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatomic.x86_64
288 lines (256 loc) · 11.4 KB
/
atomic.x86_64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
atomic: file format elf64-x86-64
Disassembly of section .init:
00000000000004b8 <_init>:
4b8: 48 83 ec 08 sub $0x8,%rsp
4bc: 48 8b 05 25 0b 20 00 mov 0x200b25(%rip),%rax # 200fe8 <__gmon_start__>
4c3: 48 85 c0 test %rax,%rax
4c6: 74 02 je 4ca <_init+0x12>
4c8: ff d0 callq *%rax
4ca: 48 83 c4 08 add $0x8,%rsp
4ce: c3 retq
Disassembly of section .plt:
00000000000004d0 <.plt>:
4d0: ff 35 32 0b 20 00 pushq 0x200b32(%rip) # 201008 <_GLOBAL_OFFSET_TABLE_+0x8>
4d6: ff 25 34 0b 20 00 jmpq *0x200b34(%rip) # 201010 <_GLOBAL_OFFSET_TABLE_+0x10>
4dc: 0f 1f 40 00 nopl 0x0(%rax)
Disassembly of section .plt.got:
00000000000004e0 <__cxa_finalize@plt>:
4e0: ff 25 12 0b 20 00 jmpq *0x200b12(%rip) # 200ff8 <__cxa_finalize@GLIBC_2.2.5>
4e6: 66 90 xchg %ax,%ax
Disassembly of section .text:
00000000000004f0 <_start>:
4f0: 31 ed xor %ebp,%ebp
4f2: 49 89 d1 mov %rdx,%r9
4f5: 5e pop %rsi
4f6: 48 89 e2 mov %rsp,%rdx
4f9: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp
4fd: 50 push %rax
4fe: 54 push %rsp
4ff: 4c 8d 05 3a 02 00 00 lea 0x23a(%rip),%r8 # 740 <__libc_csu_fini>
506: 48 8d 0d c3 01 00 00 lea 0x1c3(%rip),%rcx # 6d0 <__libc_csu_init>
50d: 48 8d 3d a8 01 00 00 lea 0x1a8(%rip),%rdi # 6bc <main>
514: ff 15 c6 0a 20 00 callq *0x200ac6(%rip) # 200fe0 <__libc_start_main@GLIBC_2.2.5>
51a: f4 hlt
51b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000000520 <deregister_tm_clones>:
520: 48 8d 3d 01 0b 20 00 lea 0x200b01(%rip),%rdi # 201028 <__TMC_END__>
527: 55 push %rbp
528: 48 8d 05 f9 0a 20 00 lea 0x200af9(%rip),%rax # 201028 <__TMC_END__>
52f: 48 39 f8 cmp %rdi,%rax
532: 48 89 e5 mov %rsp,%rbp
535: 74 19 je 550 <deregister_tm_clones+0x30>
537: 48 8b 05 9a 0a 20 00 mov 0x200a9a(%rip),%rax # 200fd8 <_ITM_deregisterTMCloneTable>
53e: 48 85 c0 test %rax,%rax
541: 74 0d je 550 <deregister_tm_clones+0x30>
543: 5d pop %rbp
544: ff e0 jmpq *%rax
546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
54d: 00 00 00
550: 5d pop %rbp
551: c3 retq
552: 0f 1f 40 00 nopl 0x0(%rax)
556: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
55d: 00 00 00
0000000000000560 <register_tm_clones>:
560: 48 8d 3d c1 0a 20 00 lea 0x200ac1(%rip),%rdi # 201028 <__TMC_END__>
567: 48 8d 35 ba 0a 20 00 lea 0x200aba(%rip),%rsi # 201028 <__TMC_END__>
56e: 55 push %rbp
56f: 48 29 fe sub %rdi,%rsi
572: 48 89 e5 mov %rsp,%rbp
575: 48 c1 fe 03 sar $0x3,%rsi
579: 48 89 f0 mov %rsi,%rax
57c: 48 c1 e8 3f shr $0x3f,%rax
580: 48 01 c6 add %rax,%rsi
583: 48 d1 fe sar %rsi
586: 74 18 je 5a0 <register_tm_clones+0x40>
588: 48 8b 05 61 0a 20 00 mov 0x200a61(%rip),%rax # 200ff0 <_ITM_registerTMCloneTable>
58f: 48 85 c0 test %rax,%rax
592: 74 0c je 5a0 <register_tm_clones+0x40>
594: 5d pop %rbp
595: ff e0 jmpq *%rax
597: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
59e: 00 00
5a0: 5d pop %rbp
5a1: c3 retq
5a2: 0f 1f 40 00 nopl 0x0(%rax)
5a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
5ad: 00 00 00
00000000000005b0 <__do_global_dtors_aux>:
5b0: 80 3d 71 0a 20 00 00 cmpb $0x0,0x200a71(%rip) # 201028 <__TMC_END__>
5b7: 75 2f jne 5e8 <__do_global_dtors_aux+0x38>
5b9: 48 83 3d 37 0a 20 00 cmpq $0x0,0x200a37(%rip) # 200ff8 <__cxa_finalize@GLIBC_2.2.5>
5c0: 00
5c1: 55 push %rbp
5c2: 48 89 e5 mov %rsp,%rbp
5c5: 74 0c je 5d3 <__do_global_dtors_aux+0x23>
5c7: 48 8b 3d 52 0a 20 00 mov 0x200a52(%rip),%rdi # 201020 <__dso_handle>
5ce: e8 0d ff ff ff callq 4e0 <__cxa_finalize@plt>
5d3: e8 48 ff ff ff callq 520 <deregister_tm_clones>
5d8: c6 05 49 0a 20 00 01 movb $0x1,0x200a49(%rip) # 201028 <__TMC_END__>
5df: 5d pop %rbp
5e0: c3 retq
5e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
5e8: f3 c3 repz retq
5ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
00000000000005f0 <frame_dummy>:
5f0: 55 push %rbp
5f1: 48 89 e5 mov %rsp,%rbp
5f4: 5d pop %rbp
5f5: e9 66 ff ff ff jmpq 560 <register_tm_clones>
00000000000005fa <fence_relaxed>:
5fa: 55 push %rbp
5fb: 48 89 e5 mov %rsp,%rbp
5fe: 90 nop
5ff: 5d pop %rbp
600: c3 retq
0000000000000601 <fence_consume>:
601: 55 push %rbp
602: 48 89 e5 mov %rsp,%rbp
605: 90 nop
606: 5d pop %rbp
607: c3 retq
0000000000000608 <fence_acquire>:
608: 55 push %rbp
609: 48 89 e5 mov %rsp,%rbp
60c: 90 nop
60d: 5d pop %rbp
60e: c3 retq
000000000000060f <fence_release>:
60f: 55 push %rbp
610: 48 89 e5 mov %rsp,%rbp
613: 90 nop
614: 5d pop %rbp
615: c3 retq
0000000000000616 <fence_acq_rel>:
616: 55 push %rbp
617: 48 89 e5 mov %rsp,%rbp
61a: 90 nop
61b: 5d pop %rbp
61c: c3 retq
000000000000061d <fence_seq_cst>:
61d: 55 push %rbp
61e: 48 89 e5 mov %rsp,%rbp
621: 0f ae f0 mfence
624: 90 nop
625: 5d pop %rbp
626: c3 retq
0000000000000627 <load_u64_relaxed>:
627: 55 push %rbp
628: 48 89 e5 mov %rsp,%rbp
62b: 48 89 7d f8 mov %rdi,-0x8(%rbp)
62f: 48 8b 45 f8 mov -0x8(%rbp),%rax
633: 48 8b 00 mov (%rax),%rax
636: 5d pop %rbp
637: c3 retq
0000000000000638 <load_u64_seq_cst>:
638: 55 push %rbp
639: 48 89 e5 mov %rsp,%rbp
63c: 48 89 7d f8 mov %rdi,-0x8(%rbp)
640: 48 8b 45 f8 mov -0x8(%rbp),%rax
644: 48 8b 00 mov (%rax),%rax
647: 5d pop %rbp
648: c3 retq
0000000000000649 <load_u64_acquire>:
649: 55 push %rbp
64a: 48 89 e5 mov %rsp,%rbp
64d: 48 89 7d f8 mov %rdi,-0x8(%rbp)
651: 48 8b 45 f8 mov -0x8(%rbp),%rax
655: 48 8b 00 mov (%rax),%rax
658: 5d pop %rbp
659: c3 retq
000000000000065a <load_u64_consume>:
65a: 55 push %rbp
65b: 48 89 e5 mov %rsp,%rbp
65e: 48 89 7d f8 mov %rdi,-0x8(%rbp)
662: 48 8b 45 f8 mov -0x8(%rbp),%rax
666: 48 8b 00 mov (%rax),%rax
669: 5d pop %rbp
66a: c3 retq
000000000000066b <store_u64_relaxed>:
66b: 55 push %rbp
66c: 48 89 e5 mov %rsp,%rbp
66f: 48 89 7d f8 mov %rdi,-0x8(%rbp)
673: 48 89 75 f0 mov %rsi,-0x10(%rbp)
677: 48 8b 45 f8 mov -0x8(%rbp),%rax
67b: 48 8b 55 f0 mov -0x10(%rbp),%rdx
67f: 48 89 10 mov %rdx,(%rax)
682: 90 nop
683: 5d pop %rbp
684: c3 retq
0000000000000685 <store_u64_seq_cst>:
685: 55 push %rbp
686: 48 89 e5 mov %rsp,%rbp
689: 48 89 7d f8 mov %rdi,-0x8(%rbp)
68d: 48 89 75 f0 mov %rsi,-0x10(%rbp)
691: 48 8b 45 f8 mov -0x8(%rbp),%rax
695: 48 8b 55 f0 mov -0x10(%rbp),%rdx
699: 48 89 10 mov %rdx,(%rax)
69c: 0f ae f0 mfence
69f: 90 nop
6a0: 5d pop %rbp
6a1: c3 retq
00000000000006a2 <store_u64_release>:
6a2: 55 push %rbp
6a3: 48 89 e5 mov %rsp,%rbp
6a6: 48 89 7d f8 mov %rdi,-0x8(%rbp)
6aa: 48 89 75 f0 mov %rsi,-0x10(%rbp)
6ae: 48 8b 45 f8 mov -0x8(%rbp),%rax
6b2: 48 8b 55 f0 mov -0x10(%rbp),%rdx
6b6: 48 89 10 mov %rdx,(%rax)
6b9: 90 nop
6ba: 5d pop %rbp
6bb: c3 retq
00000000000006bc <main>:
6bc: 55 push %rbp
6bd: 48 89 e5 mov %rsp,%rbp
6c0: b8 00 00 00 00 mov $0x0,%eax
6c5: 5d pop %rbp
6c6: c3 retq
6c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
6ce: 00 00
00000000000006d0 <__libc_csu_init>:
6d0: 41 57 push %r15
6d2: 41 56 push %r14
6d4: 49 89 d7 mov %rdx,%r15
6d7: 41 55 push %r13
6d9: 41 54 push %r12
6db: 4c 8d 25 36 07 20 00 lea 0x200736(%rip),%r12 # 200e18 <__frame_dummy_init_array_entry>
6e2: 55 push %rbp
6e3: 48 8d 2d 36 07 20 00 lea 0x200736(%rip),%rbp # 200e20 <__init_array_end>
6ea: 53 push %rbx
6eb: 41 89 fd mov %edi,%r13d
6ee: 49 89 f6 mov %rsi,%r14
6f1: 4c 29 e5 sub %r12,%rbp
6f4: 48 83 ec 08 sub $0x8,%rsp
6f8: 48 c1 fd 03 sar $0x3,%rbp
6fc: e8 b7 fd ff ff callq 4b8 <_init>
701: 48 85 ed test %rbp,%rbp
704: 74 20 je 726 <__libc_csu_init+0x56>
706: 31 db xor %ebx,%ebx
708: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
70f: 00
710: 4c 89 fa mov %r15,%rdx
713: 4c 89 f6 mov %r14,%rsi
716: 44 89 ef mov %r13d,%edi
719: 41 ff 14 dc callq *(%r12,%rbx,8)
71d: 48 83 c3 01 add $0x1,%rbx
721: 48 39 dd cmp %rbx,%rbp
724: 75 ea jne 710 <__libc_csu_init+0x40>
726: 48 83 c4 08 add $0x8,%rsp
72a: 5b pop %rbx
72b: 5d pop %rbp
72c: 41 5c pop %r12
72e: 41 5d pop %r13
730: 41 5e pop %r14
732: 41 5f pop %r15
734: c3 retq
735: 90 nop
736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
73d: 00 00 00
0000000000000740 <__libc_csu_fini>:
740: f3 c3 repz retq
Disassembly of section .fini:
0000000000000744 <_fini>:
744: 48 83 ec 08 sub $0x8,%rsp
748: 48 83 c4 08 add $0x8,%rsp
74c: c3 retq