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
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
|
.*
Disassembly of section \.iplt:
00009000 <f7-0x3c>:
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
9000: e28fc600 add ip, pc, #0
9004: e28cca08 add ip, ip, #32768 ; 0x8000
9008: e5bcf004 ldr pc, \[ip, #4\]!
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
900c: e28fc600 add ip, pc, #0
9010: e28cca07 add ip, ip, #28672 ; 0x7000
9014: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc
#------------------------------------------------------------------------------
#------ thumb entry to f3's .iplt entry
#------------------------------------------------------------------------------
9018: 4778 bx pc
901a: 46c0 nop ; \(mov r8, r8\)
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
901c: e28fc600 add ip, pc, #0
9020: e28cca07 add ip, ip, #28672 ; 0x7000
9024: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0
#------------------------------------------------------------------------------
#------ thumb entry to f4's .iplt entry
#------------------------------------------------------------------------------
9028: 4778 bx pc
902a: 46c0 nop ; \(mov r8, r8\)
#------------------------------------------------------------------------------
#------ f4's .iplt entry
#------------------------------------------------------------------------------
902c: e28fc600 add ip, pc, #0
9030: e28cca07 add ip, ip, #28672 ; 0x7000
9034: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4
#------------------------------------------------------------------------------
#------ thumb entry to f7
#------------------------------------------------------------------------------
9038: 4778 bx pc
903a: 46c0 nop ; \(mov r8, r8\)
0000903c <f7>:
903c: e28fc600 add ip, pc, #0
9040: e28cca07 add ip, ip, #28672 ; 0x7000
9044: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8
00009048 <f5>:
9048: e28fc600 add ip, pc, #0
904c: e28cca07 add ip, ip, #28672 ; 0x7000
9050: e5bcffd0 ldr pc, \[ip, #4048\]! ; 0xfd0
#------------------------------------------------------------------------------
#------ thumb entry to f8
#------------------------------------------------------------------------------
9054: 4778 bx pc
9056: 46c0 nop ; \(mov r8, r8\)
00009058 <f8>:
9058: e28fc600 add ip, pc, #0
905c: e28cca07 add ip, ip, #28672 ; 0x7000
9060: e5bcffc4 ldr pc, \[ip, #4036\]! ; 0xfc4
00009064 <f6>:
9064: e28fc600 add ip, pc, #0
9068: e28cca07 add ip, ip, #28672 ; 0x7000
906c: e5bcffbc ldr pc, \[ip, #4028\]! ; 0xfbc
Disassembly of section \.text:
0000a000 <f1>:
a000: e1a0f00e mov pc, lr
0000a004 <f2>:
a004: 46f7 mov pc, lr
\.\.\.
0000a008 <f3>:
a008: e1a0f00e mov pc, lr
0000a00c <f4>:
a00c: 46f7 mov pc, lr
a00e: 0000 movs r0, r0
a010: e1a0f00e mov pc, lr
a014: 46f7 mov pc, lr
a016: 0000 movs r0, r0
a018: e1a0f00e mov pc, lr
a01c: 46f7 mov pc, lr
\.\.\.
0000a020 <_start>:
a020: eb0017f6 bl 10000 <foo>
a024: ea0017f5 b 10000 <foo>
a028: 0a0017f4 beq 10000 <foo>
a02c: e59f4014 ldr r4, \[pc, #20\] ; a048 <_start\+0x28>
a030: e59f4014 ldr r4, \[pc, #20\] ; a04c <_start\+0x2c>
a034: e59f4014 ldr r4, \[pc, #20\] ; a050 <_start\+0x30>
a038: e59f4014 ldr r4, \[pc, #20\] ; a054 <_start\+0x34>
a03c: e59f5014 ldr r5, \[pc, #20\] ; a058 <_start\+0x38>
a040: e3004000 movw r4, #0
a044: e3404001 movt r4, #1
#------------------------------------------------------------------------------
#------ foo
#------------------------------------------------------------------------------
a048: 00010000 \.word 0x00010000
#------------------------------------------------------------------------------
#------ PC-relative offset of foo
#------------------------------------------------------------------------------
a04c: 00005fb4 \.word 0x00005fb4
#------------------------------------------------------------------------------
#------ GP-relative offset of foo
#------------------------------------------------------------------------------
a050: fffff000 \.word 0xfffff000
#------------------------------------------------------------------------------
#------ .got offset for foo
#------------------------------------------------------------------------------
a054: 00000040 \.word 0x00000040
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for foo
#------------------------------------------------------------------------------
a058: 00006fd4 \.word 0x00006fd4
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a05c: ebfffbe7 bl 9000 <f7-0x3c>
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a060: eafffbe6 b 9000 <f7-0x3c>
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a064: 0afffbe5 beq 9000 <f7-0x3c>
a068: e59f4014 ldr r4, \[pc, #20\] ; a084 <_start\+0x64>
a06c: e59f4014 ldr r4, \[pc, #20\] ; a088 <_start\+0x68>
a070: e59f4014 ldr r4, \[pc, #20\] ; a08c <_start\+0x6c>
a074: e59f4014 ldr r4, \[pc, #20\] ; a090 <_start\+0x70>
a078: e59f5014 ldr r5, \[pc, #20\] ; a094 <_start\+0x74>
a07c: e3094000 movw r4, #36864 ; 0x9000
a080: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a084: 00009000 \.word 0x00009000
#------------------------------------------------------------------------------
#------ PC-relative offset of f1's .iplt entry
#------------------------------------------------------------------------------
a088: ffffef78 \.word 0xffffef78
#------------------------------------------------------------------------------
#------ GP-relative offset of f1's .iplt entry
#------------------------------------------------------------------------------
a08c: ffff8000 \.word 0xffff8000
#------------------------------------------------------------------------------
#------ .got offset for f1's .iplt entry
#------------------------------------------------------------------------------
a090: 00000030 \.word 0x00000030
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f1's .iplt entry
#------------------------------------------------------------------------------
a094: 00006f9c \.word 0x00006f9c
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a098: ebfffbdb bl 900c <f7-0x30>
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a09c: eafffbda b 900c <f7-0x30>
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a0a0: 0afffbd9 beq 900c <f7-0x30>
a0a4: e59f4014 ldr r4, \[pc, #20\] ; a0c0 <_start\+0xa0>
a0a8: e59f4014 ldr r4, \[pc, #20\] ; a0c4 <_start\+0xa4>
a0ac: e59f4014 ldr r4, \[pc, #20\] ; a0c8 <_start\+0xa8>
a0b0: e59f4014 ldr r4, \[pc, #20\] ; a0cc <_start\+0xac>
a0b4: e59f5014 ldr r5, \[pc, #20\] ; a0d0 <_start\+0xb0>
a0b8: e309400c movw r4, #36876 ; 0x900c
a0bc: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a0c0: 0000900c \.word 0x0000900c
#------------------------------------------------------------------------------
#------ PC-relative offset of f2's .iplt entry
#------------------------------------------------------------------------------
a0c4: ffffef48 \.word 0xffffef48
#------------------------------------------------------------------------------
#------ GP-relative offset of f2's .iplt entry
#------------------------------------------------------------------------------
a0c8: ffff800c \.word 0xffff800c
#------------------------------------------------------------------------------
#------ .got offset for f2's .iplt entry
#------------------------------------------------------------------------------
a0cc: 00000034 \.word 0x00000034
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f2's .iplt entry
#------------------------------------------------------------------------------
a0d0: 00006f64 \.word 0x00006f64
a0d4: ebfffbdb bl 9048 <f5>
a0d8: eafffbda b 9048 <f5>
a0dc: 0afffbd9 beq 9048 <f5>
a0e0: e59f4014 ldr r4, \[pc, #20\] ; a0fc <_start\+0xdc>
a0e4: e59f4014 ldr r4, \[pc, #20\] ; a100 <_start\+0xe0>
a0e8: e59f4014 ldr r4, \[pc, #20\] ; a104 <_start\+0xe4>
a0ec: e59f4014 ldr r4, \[pc, #20\] ; a108 <_start\+0xe8>
a0f0: e59f5014 ldr r5, \[pc, #20\] ; a10c <_start\+0xec>
a0f4: e3094048 movw r4, #36936 ; 0x9048
a0f8: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f5
#------------------------------------------------------------------------------
a0fc: 00009048 \.word 0x00009048
#------------------------------------------------------------------------------
#------ PC-relative offset of f5
#------------------------------------------------------------------------------
a100: ffffef48 \.word 0xffffef48
#------------------------------------------------------------------------------
#------ GP-relative offset of f5
#------------------------------------------------------------------------------
a104: ffff8048 \.word 0xffff8048
#------------------------------------------------------------------------------
#------ .got offset for f5
#------------------------------------------------------------------------------
a108: 00000048 \.word 0x00000048
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f5
#------------------------------------------------------------------------------
a10c: 00006f3c \.word 0x00006f3c
a110: ebfffbd3 bl 9064 <f6>
a114: eafffbd2 b 9064 <f6>
a118: 0afffbd1 beq 9064 <f6>
a11c: e59f4014 ldr r4, \[pc, #20\] ; a138 <_start\+0x118>
a120: e59f4014 ldr r4, \[pc, #20\] ; a13c <_start\+0x11c>
a124: e59f4014 ldr r4, \[pc, #20\] ; a140 <_start\+0x120>
a128: e59f4014 ldr r4, \[pc, #20\] ; a144 <_start\+0x124>
a12c: e59f5014 ldr r5, \[pc, #20\] ; a148 <_start\+0x128>
a130: e3094064 movw r4, #36964 ; 0x9064
a134: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f6
#------------------------------------------------------------------------------
a138: 00009064 \.word 0x00009064
#------------------------------------------------------------------------------
#------ PC-relative offset of f6
#------------------------------------------------------------------------------
a13c: ffffef28 \.word 0xffffef28
#------------------------------------------------------------------------------
#------ GP-relative offset of f6
#------------------------------------------------------------------------------
a140: ffff8064 \.word 0xffff8064
#------------------------------------------------------------------------------
#------ .got offset for f6
#------------------------------------------------------------------------------
a144: 00000050 \.word 0x00000050
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f6
#------------------------------------------------------------------------------
a148: 00006f08 \.word 0x00006f08
0000a14c <_thumb>:
a14c: f005 ff58 bl 10000 <foo>
a150: f005 bf56 b\.w 10000 <foo>
a154: f005 8754 beq\.w 10000 <foo>
a158: 4c04 ldr r4, \[pc, #16\] ; \(a16c <_thumb\+0x20>\)
a15a: f8df 4014 ldr\.w r4, \[pc, #20\] ; a170 <_thumb\+0x24>
a15e: 4c05 ldr r4, \[pc, #20\] ; \(a174 <_thumb\+0x28>\)
a160: 4c05 ldr r4, \[pc, #20\] ; \(a178 <_thumb\+0x2c>\)
a162: 4d06 ldr r5, \[pc, #24\] ; \(a17c <_thumb\+0x30>\)
a164: f240 0400 movw r4, #0
a168: f2c0 0401 movt r4, #1
#------------------------------------------------------------------------------
#------ foo
#------------------------------------------------------------------------------
a16c: 00010000 \.word 0x00010000
#------------------------------------------------------------------------------
#------ PC-relative offset of foo
#------------------------------------------------------------------------------
a170: 00005e90 \.word 0x00005e90
#------------------------------------------------------------------------------
#------ GP-relative offset of foo
#------------------------------------------------------------------------------
a174: fffff000 \.word 0xfffff000
#------------------------------------------------------------------------------
#------ .got offset for foo
#------------------------------------------------------------------------------
a178: 00000040 \.word 0x00000040
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for foo
#------------------------------------------------------------------------------
a17c: 00006eb0 \.word 0x00006eb0
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
a180: f7fe ef4c blx 901c <f7-0x20>
#------------------------------------------------------------------------------
#------ thumb entry to f3's .iplt entry
#------------------------------------------------------------------------------
a184: f7fe bf48 b\.w 9018 <f7-0x24>
#------------------------------------------------------------------------------
#------ thumb entry to f3's .iplt entry
#------------------------------------------------------------------------------
a188: f43e af46 beq\.w 9018 <f7-0x24>
a18c: 4c04 ldr r4, \[pc, #16\] ; \(a1a0 <_thumb\+0x54>\)
a18e: f8df 4014 ldr\.w r4, \[pc, #20\] ; a1a4 <_thumb\+0x58>
a192: 4c05 ldr r4, \[pc, #20\] ; \(a1a8 <_thumb\+0x5c>\)
a194: 4c05 ldr r4, \[pc, #20\] ; \(a1ac <_thumb\+0x60>\)
a196: 4d06 ldr r5, \[pc, #24\] ; \(a1b0 <_thumb\+0x64>\)
a198: f249 041c movw r4, #36892 ; 0x901c
a19c: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
a1a0: 0000901c \.word 0x0000901c
#------------------------------------------------------------------------------
#------ PC-relative offset of f3's .iplt entry
#------------------------------------------------------------------------------
a1a4: ffffee78 \.word 0xffffee78
#------------------------------------------------------------------------------
#------ GP-relative offset of f3's .iplt entry
#------------------------------------------------------------------------------
a1a8: ffff801c \.word 0xffff801c
#------------------------------------------------------------------------------
#------ .got offset for f3's .iplt entry
#------------------------------------------------------------------------------
a1ac: 00000038 \.word 0x00000038
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f3's .iplt entry
#------------------------------------------------------------------------------
a1b0: 00006e88 \.word 0x00006e88
#------------------------------------------------------------------------------
#------ f4's .iplt entry
#------------------------------------------------------------------------------
a1b4: f7fe ef3a blx 902c <f7-0x10>
#------------------------------------------------------------------------------
#------ thumb entry to f4's .iplt entry
#------------------------------------------------------------------------------
a1b8: f7fe bf36 b\.w 9028 <f7-0x14>
#------------------------------------------------------------------------------
#------ thumb entry to f4's .iplt entry
#------------------------------------------------------------------------------
a1bc: f43e af34 beq\.w 9028 <f7-0x14>
a1c0: 4c04 ldr r4, \[pc, #16\] ; \(a1d4 <_thumb\+0x88>\)
a1c2: f8df 4014 ldr\.w r4, \[pc, #20\] ; a1d8 <_thumb\+0x8c>
a1c6: 4c05 ldr r4, \[pc, #20\] ; \(a1dc <_thumb\+0x90>\)
a1c8: 4c05 ldr r4, \[pc, #20\] ; \(a1e0 <_thumb\+0x94>\)
a1ca: 4d06 ldr r5, \[pc, #24\] ; \(a1e4 <_thumb\+0x98>\)
a1cc: f249 042c movw r4, #36908 ; 0x902c
a1d0: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f4's .iplt entry
#------------------------------------------------------------------------------
a1d4: 0000902c \.word 0x0000902c
#------------------------------------------------------------------------------
#------ PC-relative offset of f4's .iplt entry
#------------------------------------------------------------------------------
a1d8: ffffee54 \.word 0xffffee54
#------------------------------------------------------------------------------
#------ GP-relative offset of f4's .iplt entry
#------------------------------------------------------------------------------
a1dc: ffff802c \.word 0xffff802c
#------------------------------------------------------------------------------
#------ .got offset for f4's .iplt entry
#------------------------------------------------------------------------------
a1e0: 0000003c \.word 0x0000003c
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f4's .iplt entry
#------------------------------------------------------------------------------
a1e4: 00006e58 \.word 0x00006e58
a1e8: f7fe ef28 blx 903c <f7>
#------------------------------------------------------------------------------
#------ thumb entry to f7
#------------------------------------------------------------------------------
a1ec: f7fe bf24 b\.w 9038 <f7-0x4>
#------------------------------------------------------------------------------
#------ thumb entry to f7
#------------------------------------------------------------------------------
a1f0: f43e af22 beq\.w 9038 <f7-0x4>
a1f4: 4c04 ldr r4, \[pc, #16\] ; \(a208 <_thumb\+0xbc>\)
a1f6: f8df 4014 ldr\.w r4, \[pc, #20\] ; a20c <_thumb\+0xc0>
a1fa: 4c05 ldr r4, \[pc, #20\] ; \(a210 <_thumb\+0xc4>\)
a1fc: 4c05 ldr r4, \[pc, #20\] ; \(a214 <_thumb\+0xc8>\)
a1fe: 4d06 ldr r5, \[pc, #24\] ; \(a218 <_thumb\+0xcc>\)
a200: f249 043c movw r4, #36924 ; 0x903c
a204: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f7
#------------------------------------------------------------------------------
a208: 0000903c \.word 0x0000903c
#------------------------------------------------------------------------------
#------ PC-relative offset of f7
#------------------------------------------------------------------------------
a20c: ffffee30 \.word 0xffffee30
#------------------------------------------------------------------------------
#------ GP-relative offset of f7
#------------------------------------------------------------------------------
a210: ffff803c \.word 0xffff803c
#------------------------------------------------------------------------------
#------ .got offset for f7
#------------------------------------------------------------------------------
a214: 00000044 \.word 0x00000044
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f7
#------------------------------------------------------------------------------
a218: 00006e2c \.word 0x00006e2c
a21c: f7fe ef1c blx 9058 <f8>
#------------------------------------------------------------------------------
#------ thumb entry to f8
#------------------------------------------------------------------------------
a220: f7fe bf18 b\.w 9054 <f5\+0xc>
#------------------------------------------------------------------------------
#------ thumb entry to f8
#------------------------------------------------------------------------------
a224: f43e af16 beq\.w 9054 <f5\+0xc>
a228: 4c04 ldr r4, \[pc, #16\] ; \(a23c <_thumb\+0xf0>\)
a22a: f8df 4014 ldr\.w r4, \[pc, #20\] ; a240 <_thumb\+0xf4>
a22e: 4c05 ldr r4, \[pc, #20\] ; \(a244 <_thumb\+0xf8>\)
a230: 4c05 ldr r4, \[pc, #20\] ; \(a248 <_thumb\+0xfc>\)
a232: 4d06 ldr r5, \[pc, #24\] ; \(a24c <_thumb\+0x100>\)
a234: f249 0458 movw r4, #36952 ; 0x9058
a238: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f8
#------------------------------------------------------------------------------
a23c: 00009058 \.word 0x00009058
#------------------------------------------------------------------------------
#------ PC-relative offset of f8
#------------------------------------------------------------------------------
a240: ffffee18 \.word 0xffffee18
#------------------------------------------------------------------------------
#------ GP-relative offset of f8
#------------------------------------------------------------------------------
a244: ffff8058 \.word 0xffff8058
#------------------------------------------------------------------------------
#------ .got offset for f8
#------------------------------------------------------------------------------
a248: 0000004c \.word 0x0000004c
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f8
#------------------------------------------------------------------------------
a24c: 00006e00 \.word 0x00006e00
|