0
|
1
|
|
2 _ls: file format elf32-littlearm
|
|
3
|
|
4
|
|
5 Disassembly of section .text:
|
|
6
|
|
7 00000000 <fmtname>:
|
|
8 #include "user.h"
|
|
9 #include "fs.h"
|
|
10
|
|
11 char*
|
|
12 fmtname(char *path)
|
|
13 {
|
|
14 0: e92d4800 push {fp, lr}
|
|
15 4: e1a0b00d mov fp, sp
|
|
16 8: e24dd030 sub sp, sp, #48 ; 0x30
|
|
17 c: e1a01000 mov r1, r0
|
|
18 10: e50b0008 str r0, [fp, #-8]
|
|
19 14: e51b0008 ldr r0, [fp, #-8]
|
|
20 18: e50b0010 str r0, [fp, #-16]
|
|
21 1c: e50b1014 str r1, [fp, #-20] ; 0xffffffec
|
|
22 20: eb00013f bl 524 <strlen>
|
|
23 24: e51b1010 ldr r1, [fp, #-16]
|
|
24 28: e0810000 add r0, r1, r0
|
|
25 2c: e50b000c str r0, [fp, #-12]
|
|
26 30: eaffffff b 34 <fmtname+0x34>
|
|
27 34: e51b000c ldr r0, [fp, #-12]
|
|
28 38: e51b1008 ldr r1, [fp, #-8]
|
|
29 3c: e3a02000 mov r2, #0
|
|
30 40: e1500001 cmp r0, r1
|
|
31 44: e58d2018 str r2, [sp, #24]
|
|
32 48: 3a000007 bcc 6c <fmtname+0x6c>
|
|
33 4c: eaffffff b 50 <fmtname+0x50>
|
|
34 50: e51b000c ldr r0, [fp, #-12]
|
|
35 54: e5d00000 ldrb r0, [r0]
|
|
36 58: e3a01000 mov r1, #0
|
|
37 5c: e350002f cmp r0, #47 ; 0x2f
|
|
38 60: 13a01001 movne r1, #1
|
|
39 64: e58d1018 str r1, [sp, #24]
|
|
40 68: eaffffff b 6c <fmtname+0x6c>
|
|
41 6c: e59d0018 ldr r0, [sp, #24]
|
|
42 70: e3100001 tst r0, #1
|
|
43 74: 0a000005 beq 90 <fmtname+0x90>
|
|
44 78: eaffffff b 7c <fmtname+0x7c>
|
|
45 7c: eaffffff b 80 <fmtname+0x80>
|
|
46 80: e51b000c ldr r0, [fp, #-12]
|
|
47 84: e2400001 sub r0, r0, #1
|
|
48 88: e50b000c str r0, [fp, #-12]
|
|
49 8c: eaffffe8 b 34 <fmtname+0x34>
|
|
50 90: e51b000c ldr r0, [fp, #-12]
|
|
51 94: e2800001 add r0, r0, #1
|
|
52 98: e50b000c str r0, [fp, #-12]
|
|
53 9c: e51b000c ldr r0, [fp, #-12]
|
|
54 a0: eb00011f bl 524 <strlen>
|
|
55 a4: e350000e cmp r0, #14
|
|
56 a8: 3a000003 bcc bc <fmtname+0xbc>
|
|
57 ac: eaffffff b b0 <fmtname+0xb0>
|
|
58 b0: e51b000c ldr r0, [fp, #-12]
|
|
59 b4: e50b0004 str r0, [fp, #-4]
|
|
60 b8: ea00001b b 12c <fmtname+0x12c>
|
|
61 bc: e51b000c ldr r0, [fp, #-12]
|
|
62 c0: e58d0014 str r0, [sp, #20]
|
|
63 c4: eb000116 bl 524 <strlen>
|
|
64 c8: e59fe068 ldr lr, [pc, #104] ; 138 <fmtname+0x138>
|
|
65 cc: e58d0010 str r0, [sp, #16]
|
|
66 d0: e1a0000e mov r0, lr
|
|
67 d4: e59d1014 ldr r1, [sp, #20]
|
|
68 d8: e59d2010 ldr r2, [sp, #16]
|
|
69 dc: e58de00c str lr, [sp, #12]
|
|
70 e0: eb000218 bl 948 <memmove>
|
|
71 e4: e51b100c ldr r1, [fp, #-12]
|
|
72 e8: e58d0008 str r0, [sp, #8]
|
|
73 ec: e1a00001 mov r0, r1
|
|
74 f0: eb00010b bl 524 <strlen>
|
|
75 f4: e59d100c ldr r1, [sp, #12]
|
|
76 f8: e0810000 add r0, r1, r0
|
|
77 fc: e51b200c ldr r2, [fp, #-12]
|
|
78 100: e58d0004 str r0, [sp, #4]
|
|
79 104: e1a00002 mov r0, r2
|
|
80 108: eb000105 bl 524 <strlen>
|
|
81 10c: e260200e rsb r2, r0, #14
|
|
82 110: e3a01020 mov r1, #32
|
|
83 114: e59d0004 ldr r0, [sp, #4]
|
|
84 118: eb000116 bl 578 <memset>
|
|
85 11c: e59d100c ldr r1, [sp, #12]
|
|
86 120: e50b1004 str r1, [fp, #-4]
|
|
87 124: e58d0000 str r0, [sp]
|
|
88 128: eaffffff b 12c <fmtname+0x12c>
|
|
89 12c: e51b0004 ldr r0, [fp, #-4]
|
|
90 130: e1a0d00b mov sp, fp
|
|
91 134: e8bd8800 pop {fp, pc}
|
|
92 138: 00001604 .word 0x00001604
|
|
93
|
|
94 0000013c <ls>:
|
|
95 13c: e92d4830 push {r4, r5, fp, lr}
|
|
96 140: e28db008 add fp, sp, #8
|
|
97 144: e24dde26 sub sp, sp, #608 ; 0x260
|
|
98 148: e1a01000 mov r1, r0
|
|
99 14c: e50b000c str r0, [fp, #-12]
|
|
100 150: e51b000c ldr r0, [fp, #-12]
|
|
101 154: e3a02000 mov r2, #0
|
|
102 158: e58d102c str r1, [sp, #44] ; 0x2c
|
|
103 15c: e1a01002 mov r1, r2
|
|
104 160: eb00026d bl b1c <open>
|
|
105 164: e58d0054 str r0, [sp, #84] ; 0x54
|
|
106 168: e3500000 cmp r0, #0
|
|
107 16c: aa000005 bge 188 <ls+0x4c>
|
|
108 170: eaffffff b 174 <ls+0x38>
|
|
109 174: e51b200c ldr r2, [fp, #-12]
|
|
110 178: e59f11f8 ldr r1, [pc, #504] ; 378 <ls+0x23c>
|
|
111 17c: e3a00002 mov r0, #2
|
|
112 180: eb0002d1 bl ccc <printf>
|
|
113 184: ea000076 b 364 <ls+0x228>
|
|
114 188: e59d0054 ldr r0, [sp, #84] ; 0x54
|
|
115 18c: e28d1030 add r1, sp, #48 ; 0x30
|
|
116 190: eb00027c bl b88 <fstat>
|
|
117 194: e3500000 cmp r0, #0
|
|
118 198: aa000008 bge 1c0 <ls+0x84>
|
|
119 19c: eaffffff b 1a0 <ls+0x64>
|
|
120 1a0: e51b200c ldr r2, [fp, #-12]
|
|
121 1a4: e59f11c4 ldr r1, [pc, #452] ; 370 <ls+0x234>
|
|
122 1a8: e3a00002 mov r0, #2
|
|
123 1ac: eb0002c6 bl ccc <printf>
|
|
124 1b0: e59d0054 ldr r0, [sp, #84] ; 0x54
|
|
125 1b4: eb00023d bl ab0 <close>
|
|
126 1b8: e58d0028 str r0, [sp, #40] ; 0x28
|
|
127 1bc: ea000068 b 364 <ls+0x228>
|
|
128 1c0: e1dd03f0 ldrsh r0, [sp, #48] ; 0x30
|
|
129 1c4: e3500001 cmp r0, #1
|
|
130 1c8: e58d0024 str r0, [sp, #36] ; 0x24
|
|
131 1cc: 0a000013 beq 220 <ls+0xe4>
|
|
132 1d0: eaffffff b 1d4 <ls+0x98>
|
|
133 1d4: e59d0024 ldr r0, [sp, #36] ; 0x24
|
|
134 1d8: e3500002 cmp r0, #2
|
|
135 1dc: 1a00005c bne 354 <ls+0x218>
|
|
136 1e0: eaffffff b 1e4 <ls+0xa8>
|
|
137 1e4: e51b000c ldr r0, [fp, #-12]
|
|
138 1e8: ebffff84 bl 0 <fmtname>
|
|
139 1ec: e1dd33f0 ldrsh r3, [sp, #48] ; 0x30
|
|
140 1f0: e59de038 ldr lr, [sp, #56] ; 0x38
|
|
141 1f4: e59d1040 ldr r1, [sp, #64] ; 0x40
|
|
142 1f8: e1a0200d mov r2, sp
|
|
143 1fc: e5821004 str r1, [r2, #4]
|
|
144 200: e582e000 str lr, [r2]
|
|
145 204: e59f1160 ldr r1, [pc, #352] ; 36c <ls+0x230>
|
|
146 208: e3a02001 mov r2, #1
|
|
147 20c: e58d0020 str r0, [sp, #32]
|
|
148 210: e1a00002 mov r0, r2
|
|
149 214: e59d2020 ldr r2, [sp, #32]
|
|
150 218: eb0002ab bl ccc <printf>
|
|
151 21c: ea00004c b 354 <ls+0x218>
|
|
152 220: e51b000c ldr r0, [fp, #-12]
|
|
153 224: eb0000be bl 524 <strlen>
|
|
154 228: e2800010 add r0, r0, #16
|
|
155 22c: e3500c02 cmp r0, #512 ; 0x200
|
|
156 230: 9a000004 bls 248 <ls+0x10c>
|
|
157 234: eaffffff b 238 <ls+0xfc>
|
|
158 238: e59f1134 ldr r1, [pc, #308] ; 374 <ls+0x238>
|
|
159 23c: e3a00001 mov r0, #1
|
|
160 240: eb0002a1 bl ccc <printf>
|
|
161 244: ea000042 b 354 <ls+0x218>
|
|
162 248: e51b100c ldr r1, [fp, #-12]
|
|
163 24c: e28d005c add r0, sp, #92 ; 0x5c
|
|
164 250: e58d001c str r0, [sp, #28]
|
|
165 254: eb00006f bl 418 <strcpy>
|
|
166 258: e59d101c ldr r1, [sp, #28]
|
|
167 25c: e58d0018 str r0, [sp, #24]
|
|
168 260: e1a00001 mov r0, r1
|
|
169 264: eb0000ae bl 524 <strlen>
|
|
170 268: e59d101c ldr r1, [sp, #28]
|
|
171 26c: e0810000 add r0, r1, r0
|
|
172 270: e58d0058 str r0, [sp, #88] ; 0x58
|
|
173 274: e59d0058 ldr r0, [sp, #88] ; 0x58
|
|
174 278: e280e001 add lr, r0, #1
|
|
175 27c: e58de058 str lr, [sp, #88] ; 0x58
|
|
176 280: e3a0e02f mov lr, #47 ; 0x2f
|
|
177 284: e5c0e000 strb lr, [r0]
|
|
178 288: eaffffff b 28c <ls+0x150>
|
|
179 28c: e59d0054 ldr r0, [sp, #84] ; 0x54
|
|
180 290: e28d1044 add r1, sp, #68 ; 0x44
|
|
181 294: e3a02010 mov r2, #16
|
|
182 298: eb0001f2 bl a68 <read>
|
|
183 29c: e3500010 cmp r0, #16
|
|
184 2a0: 1a00002a bne 350 <ls+0x214>
|
|
185 2a4: eaffffff b 2a8 <ls+0x16c>
|
|
186 2a8: e1dd04b4 ldrh r0, [sp, #68] ; 0x44
|
|
187 2ac: e3500000 cmp r0, #0
|
|
188 2b0: 1a000001 bne 2bc <ls+0x180>
|
|
189 2b4: eaffffff b 2b8 <ls+0x17c>
|
|
190 2b8: eafffff3 b 28c <ls+0x150>
|
|
191 2bc: e59d0058 ldr r0, [sp, #88] ; 0x58
|
|
192 2c0: e28d1044 add r1, sp, #68 ; 0x44
|
|
193 2c4: e3811002 orr r1, r1, #2
|
|
194 2c8: e3a0200e mov r2, #14
|
|
195 2cc: eb00019d bl 948 <memmove>
|
|
196 2d0: e59d1058 ldr r1, [sp, #88] ; 0x58
|
|
197 2d4: e3a02000 mov r2, #0
|
|
198 2d8: e5c1200e strb r2, [r1, #14]
|
|
199 2dc: e28d105c add r1, sp, #92 ; 0x5c
|
|
200 2e0: e28d2030 add r2, sp, #48 ; 0x30
|
|
201 2e4: e58d0014 str r0, [sp, #20]
|
|
202 2e8: e1a00001 mov r0, r1
|
|
203 2ec: e1a01002 mov r1, r2
|
|
204 2f0: eb00014d bl 82c <stat>
|
|
205 2f4: e3500000 cmp r0, #0
|
|
206 2f8: aa000005 bge 314 <ls+0x1d8>
|
|
207 2fc: eaffffff b 300 <ls+0x1c4>
|
|
208 300: e59f1068 ldr r1, [pc, #104] ; 370 <ls+0x234>
|
|
209 304: e3a00001 mov r0, #1
|
|
210 308: e28d205c add r2, sp, #92 ; 0x5c
|
|
211 30c: eb00026e bl ccc <printf>
|
|
212 310: eaffffdd b 28c <ls+0x150>
|
|
213 314: e28d005c add r0, sp, #92 ; 0x5c
|
|
214 318: ebffff38 bl 0 <fmtname>
|
|
215 31c: e1dd33f0 ldrsh r3, [sp, #48] ; 0x30
|
|
216 320: e59de038 ldr lr, [sp, #56] ; 0x38
|
|
217 324: e59d1040 ldr r1, [sp, #64] ; 0x40
|
|
218 328: e1a0200d mov r2, sp
|
|
219 32c: e5821004 str r1, [r2, #4]
|
|
220 330: e582e000 str lr, [r2]
|
|
221 334: e59f1030 ldr r1, [pc, #48] ; 36c <ls+0x230>
|
|
222 338: e3a02001 mov r2, #1
|
|
223 33c: e58d0010 str r0, [sp, #16]
|
|
224 340: e1a00002 mov r0, r2
|
|
225 344: e59d2010 ldr r2, [sp, #16]
|
|
226 348: eb00025f bl ccc <printf>
|
|
227 34c: eaffffce b 28c <ls+0x150>
|
|
228 350: eaffffff b 354 <ls+0x218>
|
|
229 354: e59d0054 ldr r0, [sp, #84] ; 0x54
|
|
230 358: eb0001d4 bl ab0 <close>
|
|
231 35c: e58d000c str r0, [sp, #12]
|
|
232 360: eaffffff b 364 <ls+0x228>
|
|
233 364: e24bd008 sub sp, fp, #8
|
|
234 368: e8bd8830 pop {r4, r5, fp, pc}
|
|
235 36c: 000015bc .word 0x000015bc
|
|
236 370: 000015a8 .word 0x000015a8
|
|
237 374: 000015c9 .word 0x000015c9
|
|
238 378: 00001594 .word 0x00001594
|
|
239
|
|
240 0000037c <main>:
|
|
241 close(fd);
|
|
242 }
|
|
243
|
|
244 int
|
|
245 main(int argc, char *argv[])
|
|
246 {
|
|
247 37c: e92d4800 push {fp, lr}
|
|
248 380: e1a0b00d mov fp, sp
|
|
249 384: e24dd020 sub sp, sp, #32
|
|
250 388: e1a02001 mov r2, r1
|
|
251 38c: e1a03000 mov r3, r0
|
|
252 390: e3a0c000 mov ip, #0
|
|
253 394: e50bc004 str ip, [fp, #-4]
|
|
254 398: e50b0008 str r0, [fp, #-8]
|
|
255 39c: e50b100c str r1, [fp, #-12]
|
|
256 int i;
|
|
257
|
|
258 if(argc < 2){
|
|
259 3a0: e51b0008 ldr r0, [fp, #-8]
|
|
260 3a4: e3500001 cmp r0, #1
|
|
261 3a8: e58d200c str r2, [sp, #12]
|
|
262 3ac: e58d3008 str r3, [sp, #8]
|
|
263 3b0: ca000004 bgt 3c8 <main+0x4c>
|
|
264 3b4: eaffffff b 3b8 <main+0x3c>
|
|
265 ls(".");
|
|
266 3b8: e59f0054 ldr r0, [pc, #84] ; 414 <main+0x98>
|
|
267 3bc: ebffff5e bl 13c <ls>
|
|
268 exit();
|
|
269 3c0: eb00018d bl 9fc <exit>
|
|
270 3c4: e58d0004 str r0, [sp, #4]
|
|
271 }
|
|
272 for(i=1; i<argc; i++)
|
|
273 3c8: e3a00001 mov r0, #1
|
|
274 3cc: e58d0010 str r0, [sp, #16]
|
|
275 3d0: eaffffff b 3d4 <main+0x58>
|
|
276 3d4: e59d0010 ldr r0, [sp, #16]
|
|
277 3d8: e51b1008 ldr r1, [fp, #-8]
|
|
278 3dc: e1500001 cmp r0, r1
|
|
279 3e0: aa000009 bge 40c <main+0x90>
|
|
280 3e4: eaffffff b 3e8 <main+0x6c>
|
|
281 ls(argv[i]);
|
|
282 3e8: e51b000c ldr r0, [fp, #-12]
|
|
283 3ec: e59d1010 ldr r1, [sp, #16]
|
|
284 3f0: e7900101 ldr r0, [r0, r1, lsl #2]
|
|
285 3f4: ebffff50 bl 13c <ls>
|
|
286 3f8: eaffffff b 3fc <main+0x80>
|
|
287 for(i=1; i<argc; i++)
|
|
288 3fc: e59d0010 ldr r0, [sp, #16]
|
|
289 400: e2800001 add r0, r0, #1
|
|
290 404: e58d0010 str r0, [sp, #16]
|
|
291 408: eafffff1 b 3d4 <main+0x58>
|
|
292 exit();
|
|
293 40c: eb00017a bl 9fc <exit>
|
|
294 410: e58d0000 str r0, [sp]
|
|
295 414: 000015dc .word 0x000015dc
|
|
296
|
|
297 00000418 <strcpy>:
|
|
298 #include "fcntl.h"
|
|
299 #include "user.h"
|
|
300
|
|
301 char*
|
|
302 strcpy(char *s, char *t)
|
|
303 {
|
|
304 418: e24dd014 sub sp, sp, #20
|
|
305 41c: e1a02001 mov r2, r1
|
|
306 420: e1a03000 mov r3, r0
|
|
307 424: e58d0010 str r0, [sp, #16]
|
|
308 428: e58d100c str r1, [sp, #12]
|
|
309 42c: e59d0010 ldr r0, [sp, #16]
|
|
310 430: e58d0008 str r0, [sp, #8]
|
|
311 434: e58d2004 str r2, [sp, #4]
|
|
312 438: e58d3000 str r3, [sp]
|
|
313 43c: eaffffff b 440 <strcpy+0x28>
|
|
314 440: e59d000c ldr r0, [sp, #12]
|
|
315 444: e2801001 add r1, r0, #1
|
|
316 448: e58d100c str r1, [sp, #12]
|
|
317 44c: e5d00000 ldrb r0, [r0]
|
|
318 450: e59d1010 ldr r1, [sp, #16]
|
|
319 454: e2812001 add r2, r1, #1
|
|
320 458: e58d2010 str r2, [sp, #16]
|
|
321 45c: e5c10000 strb r0, [r1]
|
|
322 460: e3500000 cmp r0, #0
|
|
323 464: 0a000001 beq 470 <strcpy+0x58>
|
|
324 468: eaffffff b 46c <strcpy+0x54>
|
|
325 46c: eafffff3 b 440 <strcpy+0x28>
|
|
326 470: e59d0008 ldr r0, [sp, #8]
|
|
327 474: e28dd014 add sp, sp, #20
|
|
328 478: e12fff1e bx lr
|
|
329
|
|
330 0000047c <strcmp>:
|
|
331 47c: e24dd014 sub sp, sp, #20
|
|
332 480: e1a02001 mov r2, r1
|
|
333 484: e1a03000 mov r3, r0
|
|
334 488: e58d0010 str r0, [sp, #16]
|
|
335 48c: e58d100c str r1, [sp, #12]
|
|
336 490: e58d2008 str r2, [sp, #8]
|
|
337 494: e58d3004 str r3, [sp, #4]
|
|
338 498: eaffffff b 49c <strcmp+0x20>
|
|
339 49c: e59d0010 ldr r0, [sp, #16]
|
|
340 4a0: e5d00000 ldrb r0, [r0]
|
|
341 4a4: e3a01000 mov r1, #0
|
|
342 4a8: e3500000 cmp r0, #0
|
|
343 4ac: e58d1000 str r1, [sp]
|
|
344 4b0: 0a000009 beq 4dc <strcmp+0x60>
|
|
345 4b4: eaffffff b 4b8 <strcmp+0x3c>
|
|
346 4b8: e59d0010 ldr r0, [sp, #16]
|
|
347 4bc: e5d00000 ldrb r0, [r0]
|
|
348 4c0: e59d100c ldr r1, [sp, #12]
|
|
349 4c4: e5d11000 ldrb r1, [r1]
|
|
350 4c8: e3a02000 mov r2, #0
|
|
351 4cc: e1500001 cmp r0, r1
|
|
352 4d0: 03a02001 moveq r2, #1
|
|
353 4d4: e58d2000 str r2, [sp]
|
|
354 4d8: eaffffff b 4dc <strcmp+0x60>
|
|
355 4dc: e59d0000 ldr r0, [sp]
|
|
356 4e0: e3100001 tst r0, #1
|
|
357 4e4: 0a000007 beq 508 <strcmp+0x8c>
|
|
358 4e8: eaffffff b 4ec <strcmp+0x70>
|
|
359 4ec: e59d0010 ldr r0, [sp, #16]
|
|
360 4f0: e2800001 add r0, r0, #1
|
|
361 4f4: e58d0010 str r0, [sp, #16]
|
|
362 4f8: e59d000c ldr r0, [sp, #12]
|
|
363 4fc: e2800001 add r0, r0, #1
|
|
364 500: e58d000c str r0, [sp, #12]
|
|
365 504: eaffffe4 b 49c <strcmp+0x20>
|
|
366 508: e59d0010 ldr r0, [sp, #16]
|
|
367 50c: e5d00000 ldrb r0, [r0]
|
|
368 510: e59d100c ldr r1, [sp, #12]
|
|
369 514: e5d11000 ldrb r1, [r1]
|
|
370 518: e0400001 sub r0, r0, r1
|
|
371 51c: e28dd014 add sp, sp, #20
|
|
372 520: e12fff1e bx lr
|
|
373
|
|
374 00000524 <strlen>:
|
|
375 524: e24dd00c sub sp, sp, #12
|
|
376 528: e1a01000 mov r1, r0
|
|
377 52c: e58d0008 str r0, [sp, #8]
|
|
378 530: e3a00000 mov r0, #0
|
|
379 534: e58d0004 str r0, [sp, #4]
|
|
380 538: e58d1000 str r1, [sp]
|
|
381 53c: eaffffff b 540 <strlen+0x1c>
|
|
382 540: e59d0008 ldr r0, [sp, #8]
|
|
383 544: e59d1004 ldr r1, [sp, #4]
|
|
384 548: e7d00001 ldrb r0, [r0, r1]
|
|
385 54c: e3500000 cmp r0, #0
|
|
386 550: 0a000005 beq 56c <strlen+0x48>
|
|
387 554: eaffffff b 558 <strlen+0x34>
|
|
388 558: eaffffff b 55c <strlen+0x38>
|
|
389 55c: e59d0004 ldr r0, [sp, #4]
|
|
390 560: e2800001 add r0, r0, #1
|
|
391 564: e58d0004 str r0, [sp, #4]
|
|
392 568: eafffff4 b 540 <strlen+0x1c>
|
|
393 56c: e59d0004 ldr r0, [sp, #4]
|
|
394 570: e28dd00c add sp, sp, #12
|
|
395 574: e12fff1e bx lr
|
|
396
|
|
397 00000578 <memset>:
|
|
398 578: e92d4800 push {fp, lr}
|
|
399 57c: e1a0b00d mov fp, sp
|
|
400 580: e24dd02c sub sp, sp, #44 ; 0x2c
|
|
401 584: e1a03002 mov r3, r2
|
|
402 588: e1a0c001 mov ip, r1
|
|
403 58c: e1a0e000 mov lr, r0
|
|
404 590: e50b0004 str r0, [fp, #-4]
|
|
405 594: e50b1008 str r1, [fp, #-8]
|
|
406 598: e50b200c str r2, [fp, #-12]
|
|
407 59c: e51b0004 ldr r0, [fp, #-4]
|
|
408 5a0: e50b0010 str r0, [fp, #-16]
|
|
409 5a4: e51b0008 ldr r0, [fp, #-8]
|
|
410 5a8: e54b0011 strb r0, [fp, #-17] ; 0xffffffef
|
|
411 5ac: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
|
|
412 5b0: e1a01c00 lsl r1, r0, #24
|
|
413 5b4: e1811800 orr r1, r1, r0, lsl #16
|
|
414 5b8: e1811400 orr r1, r1, r0, lsl #8
|
|
415 5bc: e1810000 orr r0, r1, r0
|
|
416 5c0: e58d0014 str r0, [sp, #20]
|
|
417 5c4: e58d300c str r3, [sp, #12]
|
|
418 5c8: e58dc008 str ip, [sp, #8]
|
|
419 5cc: e58de004 str lr, [sp, #4]
|
|
420 5d0: eaffffff b 5d4 <memset+0x5c>
|
|
421 5d4: e51b000c ldr r0, [fp, #-12]
|
|
422 5d8: e3a01000 mov r1, #0
|
|
423 5dc: e3500000 cmp r0, #0
|
|
424 5e0: e58d1000 str r1, [sp]
|
|
425 5e4: 0a000006 beq 604 <memset+0x8c>
|
|
426 5e8: eaffffff b 5ec <memset+0x74>
|
|
427 5ec: e55b0010 ldrb r0, [fp, #-16]
|
|
428 5f0: e2000003 and r0, r0, #3
|
|
429 5f4: e3500000 cmp r0, #0
|
|
430 5f8: 13a00001 movne r0, #1
|
|
431 5fc: e58d0000 str r0, [sp]
|
|
432 600: eaffffff b 604 <memset+0x8c>
|
|
433 604: e59d0000 ldr r0, [sp]
|
|
434 608: e3100001 tst r0, #1
|
|
435 60c: 0a00000b beq 640 <memset+0xc8>
|
|
436 610: eaffffff b 614 <memset+0x9c>
|
|
437 614: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
|
|
438 618: e51b1010 ldr r1, [fp, #-16]
|
|
439 61c: e5c10000 strb r0, [r1]
|
|
440 620: eaffffff b 624 <memset+0xac>
|
|
441 624: e51b000c ldr r0, [fp, #-12]
|
|
442 628: e2400001 sub r0, r0, #1
|
|
443 62c: e50b000c str r0, [fp, #-12]
|
|
444 630: e51b0010 ldr r0, [fp, #-16]
|
|
445 634: e2800001 add r0, r0, #1
|
|
446 638: e50b0010 str r0, [fp, #-16]
|
|
447 63c: eaffffe4 b 5d4 <memset+0x5c>
|
|
448 640: e51b0010 ldr r0, [fp, #-16]
|
|
449 644: e58d0010 str r0, [sp, #16]
|
|
450 648: eaffffff b 64c <memset+0xd4>
|
|
451 64c: e51b000c ldr r0, [fp, #-12]
|
|
452 650: e3500004 cmp r0, #4
|
|
453 654: 3a00000b bcc 688 <memset+0x110>
|
|
454 658: eaffffff b 65c <memset+0xe4>
|
|
455 65c: e59d0014 ldr r0, [sp, #20]
|
|
456 660: e59d1010 ldr r1, [sp, #16]
|
|
457 664: e5810000 str r0, [r1]
|
|
458 668: eaffffff b 66c <memset+0xf4>
|
|
459 66c: e51b000c ldr r0, [fp, #-12]
|
|
460 670: e2400004 sub r0, r0, #4
|
|
461 674: e50b000c str r0, [fp, #-12]
|
|
462 678: e59d0010 ldr r0, [sp, #16]
|
|
463 67c: e2800004 add r0, r0, #4
|
|
464 680: e58d0010 str r0, [sp, #16]
|
|
465 684: eafffff0 b 64c <memset+0xd4>
|
|
466 688: e59d0010 ldr r0, [sp, #16]
|
|
467 68c: e50b0010 str r0, [fp, #-16]
|
|
468 690: eaffffff b 694 <memset+0x11c>
|
|
469 694: e51b000c ldr r0, [fp, #-12]
|
|
470 698: e3500000 cmp r0, #0
|
|
471 69c: 0a00000b beq 6d0 <memset+0x158>
|
|
472 6a0: eaffffff b 6a4 <memset+0x12c>
|
|
473 6a4: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
|
|
474 6a8: e51b1010 ldr r1, [fp, #-16]
|
|
475 6ac: e5c10000 strb r0, [r1]
|
|
476 6b0: eaffffff b 6b4 <memset+0x13c>
|
|
477 6b4: e51b000c ldr r0, [fp, #-12]
|
|
478 6b8: e2400001 sub r0, r0, #1
|
|
479 6bc: e50b000c str r0, [fp, #-12]
|
|
480 6c0: e51b0010 ldr r0, [fp, #-16]
|
|
481 6c4: e2800001 add r0, r0, #1
|
|
482 6c8: e50b0010 str r0, [fp, #-16]
|
|
483 6cc: eafffff0 b 694 <memset+0x11c>
|
|
484 6d0: e51b0004 ldr r0, [fp, #-4]
|
|
485 6d4: e1a0d00b mov sp, fp
|
|
486 6d8: e8bd8800 pop {fp, pc}
|
|
487
|
|
488 000006dc <strchr>:
|
|
489 6dc: e24dd014 sub sp, sp, #20
|
|
490 6e0: e1a02001 mov r2, r1
|
|
491 6e4: e1a03000 mov r3, r0
|
|
492 6e8: e58d000c str r0, [sp, #12]
|
|
493 6ec: e5cd100b strb r1, [sp, #11]
|
|
494 6f0: e58d2004 str r2, [sp, #4]
|
|
495 6f4: e58d3000 str r3, [sp]
|
|
496 6f8: eaffffff b 6fc <strchr+0x20>
|
|
497 6fc: e59d000c ldr r0, [sp, #12]
|
|
498 700: e5d00000 ldrb r0, [r0]
|
|
499 704: e3500000 cmp r0, #0
|
|
500 708: 0a00000e beq 748 <strchr+0x6c>
|
|
501 70c: eaffffff b 710 <strchr+0x34>
|
|
502 710: e59d000c ldr r0, [sp, #12]
|
|
503 714: e5d00000 ldrb r0, [r0]
|
|
504 718: e5dd100b ldrb r1, [sp, #11]
|
|
505 71c: e1500001 cmp r0, r1
|
|
506 720: 1a000003 bne 734 <strchr+0x58>
|
|
507 724: eaffffff b 728 <strchr+0x4c>
|
|
508 728: e59d000c ldr r0, [sp, #12]
|
|
509 72c: e58d0010 str r0, [sp, #16]
|
|
510 730: ea000007 b 754 <strchr+0x78>
|
|
511 734: eaffffff b 738 <strchr+0x5c>
|
|
512 738: e59d000c ldr r0, [sp, #12]
|
|
513 73c: e2800001 add r0, r0, #1
|
|
514 740: e58d000c str r0, [sp, #12]
|
|
515 744: eaffffec b 6fc <strchr+0x20>
|
|
516 748: e3a00000 mov r0, #0
|
|
517 74c: e58d0010 str r0, [sp, #16]
|
|
518 750: eaffffff b 754 <strchr+0x78>
|
|
519 754: e59d0010 ldr r0, [sp, #16]
|
|
520 758: e28dd014 add sp, sp, #20
|
|
521 75c: e12fff1e bx lr
|
|
522
|
|
523 00000760 <gets>:
|
|
524 760: e92d4800 push {fp, lr}
|
|
525 764: e1a0b00d mov fp, sp
|
|
526 768: e24dd020 sub sp, sp, #32
|
|
527 76c: e1a02001 mov r2, r1
|
|
528 770: e1a03000 mov r3, r0
|
|
529 774: e50b0004 str r0, [fp, #-4]
|
|
530 778: e50b1008 str r1, [fp, #-8]
|
|
531 77c: e3a00000 mov r0, #0
|
|
532 780: e50b000c str r0, [fp, #-12]
|
|
533 784: e58d2008 str r2, [sp, #8]
|
|
534 788: e58d3004 str r3, [sp, #4]
|
|
535 78c: eaffffff b 790 <gets+0x30>
|
|
536 790: e51b000c ldr r0, [fp, #-12]
|
|
537 794: e2800001 add r0, r0, #1
|
|
538 798: e51b1008 ldr r1, [fp, #-8]
|
|
539 79c: e1500001 cmp r0, r1
|
|
540 7a0: aa00001a bge 810 <gets+0xb0>
|
|
541 7a4: eaffffff b 7a8 <gets+0x48>
|
|
542 7a8: e3a00000 mov r0, #0
|
|
543 7ac: e28d100f add r1, sp, #15
|
|
544 7b0: e3a02001 mov r2, #1
|
|
545 7b4: eb0000ab bl a68 <read>
|
|
546 7b8: e58d0010 str r0, [sp, #16]
|
|
547 7bc: e59d0010 ldr r0, [sp, #16]
|
|
548 7c0: e3500000 cmp r0, #0
|
|
549 7c4: ca000001 bgt 7d0 <gets+0x70>
|
|
550 7c8: eaffffff b 7cc <gets+0x6c>
|
|
551 7cc: ea00000f b 810 <gets+0xb0>
|
|
552 7d0: e5dd000f ldrb r0, [sp, #15]
|
|
553 7d4: e51b1004 ldr r1, [fp, #-4]
|
|
554 7d8: e51b200c ldr r2, [fp, #-12]
|
|
555 7dc: e2823001 add r3, r2, #1
|
|
556 7e0: e50b300c str r3, [fp, #-12]
|
|
557 7e4: e7c10002 strb r0, [r1, r2]
|
|
558 7e8: e5dd000f ldrb r0, [sp, #15]
|
|
559 7ec: e350000a cmp r0, #10
|
|
560 7f0: 0a000004 beq 808 <gets+0xa8>
|
|
561 7f4: eaffffff b 7f8 <gets+0x98>
|
|
562 7f8: e5dd000f ldrb r0, [sp, #15]
|
|
563 7fc: e350000d cmp r0, #13
|
|
564 800: 1a000001 bne 80c <gets+0xac>
|
|
565 804: eaffffff b 808 <gets+0xa8>
|
|
566 808: ea000000 b 810 <gets+0xb0>
|
|
567 80c: eaffffdf b 790 <gets+0x30>
|
|
568 810: e51b0004 ldr r0, [fp, #-4]
|
|
569 814: e51b100c ldr r1, [fp, #-12]
|
|
570 818: e3a02000 mov r2, #0
|
|
571 81c: e7c02001 strb r2, [r0, r1]
|
|
572 820: e51b0004 ldr r0, [fp, #-4]
|
|
573 824: e1a0d00b mov sp, fp
|
|
574 828: e8bd8800 pop {fp, pc}
|
|
575
|
|
576 0000082c <stat>:
|
|
577 82c: e92d4800 push {fp, lr}
|
|
578 830: e1a0b00d mov fp, sp
|
|
579 834: e24dd020 sub sp, sp, #32
|
|
580 838: e1a02001 mov r2, r1
|
|
581 83c: e1a03000 mov r3, r0
|
|
582 840: e50b0008 str r0, [fp, #-8]
|
|
583 844: e50b100c str r1, [fp, #-12]
|
|
584 848: e51b0008 ldr r0, [fp, #-8]
|
|
585 84c: e3a01000 mov r1, #0
|
|
586 850: e58d2008 str r2, [sp, #8]
|
|
587 854: e58d3004 str r3, [sp, #4]
|
|
588 858: eb0000af bl b1c <open>
|
|
589 85c: e58d0010 str r0, [sp, #16]
|
|
590 860: e59d0010 ldr r0, [sp, #16]
|
|
591 864: e3500000 cmp r0, #0
|
|
592 868: aa000003 bge 87c <stat+0x50>
|
|
593 86c: eaffffff b 870 <stat+0x44>
|
|
594 870: e3e00000 mvn r0, #0
|
|
595 874: e50b0004 str r0, [fp, #-4]
|
|
596 878: ea000009 b 8a4 <stat+0x78>
|
|
597 87c: e59d0010 ldr r0, [sp, #16]
|
|
598 880: e51b100c ldr r1, [fp, #-12]
|
|
599 884: eb0000bf bl b88 <fstat>
|
|
600 888: e58d000c str r0, [sp, #12]
|
|
601 88c: e59d0010 ldr r0, [sp, #16]
|
|
602 890: eb000086 bl ab0 <close>
|
|
603 894: e59d100c ldr r1, [sp, #12]
|
|
604 898: e50b1004 str r1, [fp, #-4]
|
|
605 89c: e58d0000 str r0, [sp]
|
|
606 8a0: eaffffff b 8a4 <stat+0x78>
|
|
607 8a4: e51b0004 ldr r0, [fp, #-4]
|
|
608 8a8: e1a0d00b mov sp, fp
|
|
609 8ac: e8bd8800 pop {fp, pc}
|
|
610
|
|
611 000008b0 <atoi>:
|
|
612 8b0: e24dd010 sub sp, sp, #16
|
|
613 8b4: e1a01000 mov r1, r0
|
|
614 8b8: e58d000c str r0, [sp, #12]
|
|
615 8bc: e3a00000 mov r0, #0
|
|
616 8c0: e58d0008 str r0, [sp, #8]
|
|
617 8c4: e58d1004 str r1, [sp, #4]
|
|
618 8c8: eaffffff b 8cc <atoi+0x1c>
|
|
619 8cc: e59d000c ldr r0, [sp, #12]
|
|
620 8d0: e5d00000 ldrb r0, [r0]
|
|
621 8d4: e3a01000 mov r1, #0
|
|
622 8d8: e3500030 cmp r0, #48 ; 0x30
|
|
623 8dc: e58d1000 str r1, [sp]
|
|
624 8e0: ba000007 blt 904 <atoi+0x54>
|
|
625 8e4: eaffffff b 8e8 <atoi+0x38>
|
|
626 8e8: e59d000c ldr r0, [sp, #12]
|
|
627 8ec: e5d00000 ldrb r0, [r0]
|
|
628 8f0: e3a01000 mov r1, #0
|
|
629 8f4: e350003a cmp r0, #58 ; 0x3a
|
|
630 8f8: b3a01001 movlt r1, #1
|
|
631 8fc: e58d1000 str r1, [sp]
|
|
632 900: eaffffff b 904 <atoi+0x54>
|
|
633 904: e59d0000 ldr r0, [sp]
|
|
634 908: e3100001 tst r0, #1
|
|
635 90c: 0a00000a beq 93c <atoi+0x8c>
|
|
636 910: eaffffff b 914 <atoi+0x64>
|
|
637 914: e59d0008 ldr r0, [sp, #8]
|
|
638 918: e0800100 add r0, r0, r0, lsl #2
|
|
639 91c: e59d100c ldr r1, [sp, #12]
|
|
640 920: e2812001 add r2, r1, #1
|
|
641 924: e58d200c str r2, [sp, #12]
|
|
642 928: e5d11000 ldrb r1, [r1]
|
|
643 92c: e0810080 add r0, r1, r0, lsl #1
|
|
644 930: e2400030 sub r0, r0, #48 ; 0x30
|
|
645 934: e58d0008 str r0, [sp, #8]
|
|
646 938: eaffffe3 b 8cc <atoi+0x1c>
|
|
647 93c: e59d0008 ldr r0, [sp, #8]
|
|
648 940: e28dd010 add sp, sp, #16
|
|
649 944: e12fff1e bx lr
|
|
650
|
|
651 00000948 <memmove>:
|
|
652 948: e92d4800 push {fp, lr}
|
|
653 94c: e1a0b00d mov fp, sp
|
|
654 950: e24dd020 sub sp, sp, #32
|
|
655 954: e1a03002 mov r3, r2
|
|
656 958: e1a0c001 mov ip, r1
|
|
657 95c: e1a0e000 mov lr, r0
|
|
658 960: e50b0004 str r0, [fp, #-4]
|
|
659 964: e50b1008 str r1, [fp, #-8]
|
|
660 968: e50b200c str r2, [fp, #-12]
|
|
661 96c: e51b0004 ldr r0, [fp, #-4]
|
|
662 970: e58d0010 str r0, [sp, #16]
|
|
663 974: e51b0008 ldr r0, [fp, #-8]
|
|
664 978: e58d000c str r0, [sp, #12]
|
|
665 97c: e58d3008 str r3, [sp, #8]
|
|
666 980: e58dc004 str ip, [sp, #4]
|
|
667 984: e58de000 str lr, [sp]
|
|
668 988: eaffffff b 98c <memmove+0x44>
|
|
669 98c: e51b000c ldr r0, [fp, #-12]
|
|
670 990: e2401001 sub r1, r0, #1
|
|
671 994: e50b100c str r1, [fp, #-12]
|
|
672 998: e3500001 cmp r0, #1
|
|
673 99c: ba000009 blt 9c8 <memmove+0x80>
|
|
674 9a0: eaffffff b 9a4 <memmove+0x5c>
|
|
675 9a4: e59d000c ldr r0, [sp, #12]
|
|
676 9a8: e2801001 add r1, r0, #1
|
|
677 9ac: e58d100c str r1, [sp, #12]
|
|
678 9b0: e5d00000 ldrb r0, [r0]
|
|
679 9b4: e59d1010 ldr r1, [sp, #16]
|
|
680 9b8: e2812001 add r2, r1, #1
|
|
681 9bc: e58d2010 str r2, [sp, #16]
|
|
682 9c0: e5c10000 strb r0, [r1]
|
|
683 9c4: eafffff0 b 98c <memmove+0x44>
|
|
684 9c8: e51b0004 ldr r0, [fp, #-4]
|
|
685 9cc: e1a0d00b mov sp, fp
|
|
686 9d0: e8bd8800 pop {fp, pc}
|
|
687
|
|
688 000009d4 <raise>:
|
|
689 return vdst;
|
|
690 }
|
|
691
|
|
692 void
|
|
693 raise()
|
|
694 {}
|
|
695 9d4: e12fff1e bx lr
|
|
696
|
|
697 000009d8 <fork>:
|
|
698 9d8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
699 9dc: e1a04003 mov r4, r3
|
|
700 9e0: e1a03002 mov r3, r2
|
|
701 9e4: e1a02001 mov r2, r1
|
|
702 9e8: e1a01000 mov r1, r0
|
|
703 9ec: e3a00001 mov r0, #1
|
|
704 9f0: ef000000 svc 0x00000000
|
|
705 9f4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
706 9f8: e12fff1e bx lr
|
|
707
|
|
708 000009fc <exit>:
|
|
709 9fc: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
710 a00: e1a04003 mov r4, r3
|
|
711 a04: e1a03002 mov r3, r2
|
|
712 a08: e1a02001 mov r2, r1
|
|
713 a0c: e1a01000 mov r1, r0
|
|
714 a10: e3a00002 mov r0, #2
|
|
715 a14: ef000000 svc 0x00000000
|
|
716 a18: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
717 a1c: e12fff1e bx lr
|
|
718
|
|
719 00000a20 <wait>:
|
|
720 a20: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
721 a24: e1a04003 mov r4, r3
|
|
722 a28: e1a03002 mov r3, r2
|
|
723 a2c: e1a02001 mov r2, r1
|
|
724 a30: e1a01000 mov r1, r0
|
|
725 a34: e3a00003 mov r0, #3
|
|
726 a38: ef000000 svc 0x00000000
|
|
727 a3c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
728 a40: e12fff1e bx lr
|
|
729
|
|
730 00000a44 <pipe>:
|
|
731 a44: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
732 a48: e1a04003 mov r4, r3
|
|
733 a4c: e1a03002 mov r3, r2
|
|
734 a50: e1a02001 mov r2, r1
|
|
735 a54: e1a01000 mov r1, r0
|
|
736 a58: e3a00004 mov r0, #4
|
|
737 a5c: ef000000 svc 0x00000000
|
|
738 a60: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
739 a64: e12fff1e bx lr
|
|
740
|
|
741 00000a68 <read>:
|
|
742 a68: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
743 a6c: e1a04003 mov r4, r3
|
|
744 a70: e1a03002 mov r3, r2
|
|
745 a74: e1a02001 mov r2, r1
|
|
746 a78: e1a01000 mov r1, r0
|
|
747 a7c: e3a00005 mov r0, #5
|
|
748 a80: ef000000 svc 0x00000000
|
|
749 a84: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
750 a88: e12fff1e bx lr
|
|
751
|
|
752 00000a8c <write>:
|
|
753 a8c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
754 a90: e1a04003 mov r4, r3
|
|
755 a94: e1a03002 mov r3, r2
|
|
756 a98: e1a02001 mov r2, r1
|
|
757 a9c: e1a01000 mov r1, r0
|
|
758 aa0: e3a00010 mov r0, #16
|
|
759 aa4: ef000000 svc 0x00000000
|
|
760 aa8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
761 aac: e12fff1e bx lr
|
|
762
|
|
763 00000ab0 <close>:
|
|
764 ab0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
765 ab4: e1a04003 mov r4, r3
|
|
766 ab8: e1a03002 mov r3, r2
|
|
767 abc: e1a02001 mov r2, r1
|
|
768 ac0: e1a01000 mov r1, r0
|
|
769 ac4: e3a00015 mov r0, #21
|
|
770 ac8: ef000000 svc 0x00000000
|
|
771 acc: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
772 ad0: e12fff1e bx lr
|
|
773
|
|
774 00000ad4 <kill>:
|
|
775 ad4: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
776 ad8: e1a04003 mov r4, r3
|
|
777 adc: e1a03002 mov r3, r2
|
|
778 ae0: e1a02001 mov r2, r1
|
|
779 ae4: e1a01000 mov r1, r0
|
|
780 ae8: e3a00006 mov r0, #6
|
|
781 aec: ef000000 svc 0x00000000
|
|
782 af0: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
783 af4: e12fff1e bx lr
|
|
784
|
|
785 00000af8 <exec>:
|
|
786 af8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
787 afc: e1a04003 mov r4, r3
|
|
788 b00: e1a03002 mov r3, r2
|
|
789 b04: e1a02001 mov r2, r1
|
|
790 b08: e1a01000 mov r1, r0
|
|
791 b0c: e3a00007 mov r0, #7
|
|
792 b10: ef000000 svc 0x00000000
|
|
793 b14: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
794 b18: e12fff1e bx lr
|
|
795
|
|
796 00000b1c <open>:
|
|
797 b1c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
798 b20: e1a04003 mov r4, r3
|
|
799 b24: e1a03002 mov r3, r2
|
|
800 b28: e1a02001 mov r2, r1
|
|
801 b2c: e1a01000 mov r1, r0
|
|
802 b30: e3a0000f mov r0, #15
|
|
803 b34: ef000000 svc 0x00000000
|
|
804 b38: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
805 b3c: e12fff1e bx lr
|
|
806
|
|
807 00000b40 <mknod>:
|
|
808 b40: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
809 b44: e1a04003 mov r4, r3
|
|
810 b48: e1a03002 mov r3, r2
|
|
811 b4c: e1a02001 mov r2, r1
|
|
812 b50: e1a01000 mov r1, r0
|
|
813 b54: e3a00011 mov r0, #17
|
|
814 b58: ef000000 svc 0x00000000
|
|
815 b5c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
816 b60: e12fff1e bx lr
|
|
817
|
|
818 00000b64 <unlink>:
|
|
819 b64: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
820 b68: e1a04003 mov r4, r3
|
|
821 b6c: e1a03002 mov r3, r2
|
|
822 b70: e1a02001 mov r2, r1
|
|
823 b74: e1a01000 mov r1, r0
|
|
824 b78: e3a00012 mov r0, #18
|
|
825 b7c: ef000000 svc 0x00000000
|
|
826 b80: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
827 b84: e12fff1e bx lr
|
|
828
|
|
829 00000b88 <fstat>:
|
|
830 b88: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
831 b8c: e1a04003 mov r4, r3
|
|
832 b90: e1a03002 mov r3, r2
|
|
833 b94: e1a02001 mov r2, r1
|
|
834 b98: e1a01000 mov r1, r0
|
|
835 b9c: e3a00008 mov r0, #8
|
|
836 ba0: ef000000 svc 0x00000000
|
|
837 ba4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
838 ba8: e12fff1e bx lr
|
|
839
|
|
840 00000bac <link>:
|
|
841 bac: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
842 bb0: e1a04003 mov r4, r3
|
|
843 bb4: e1a03002 mov r3, r2
|
|
844 bb8: e1a02001 mov r2, r1
|
|
845 bbc: e1a01000 mov r1, r0
|
|
846 bc0: e3a00013 mov r0, #19
|
|
847 bc4: ef000000 svc 0x00000000
|
|
848 bc8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
849 bcc: e12fff1e bx lr
|
|
850
|
|
851 00000bd0 <mkdir>:
|
|
852 bd0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
853 bd4: e1a04003 mov r4, r3
|
|
854 bd8: e1a03002 mov r3, r2
|
|
855 bdc: e1a02001 mov r2, r1
|
|
856 be0: e1a01000 mov r1, r0
|
|
857 be4: e3a00014 mov r0, #20
|
|
858 be8: ef000000 svc 0x00000000
|
|
859 bec: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
860 bf0: e12fff1e bx lr
|
|
861
|
|
862 00000bf4 <chdir>:
|
|
863 bf4: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
864 bf8: e1a04003 mov r4, r3
|
|
865 bfc: e1a03002 mov r3, r2
|
|
866 c00: e1a02001 mov r2, r1
|
|
867 c04: e1a01000 mov r1, r0
|
|
868 c08: e3a00009 mov r0, #9
|
|
869 c0c: ef000000 svc 0x00000000
|
|
870 c10: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
871 c14: e12fff1e bx lr
|
|
872
|
|
873 00000c18 <dup>:
|
|
874 c18: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
875 c1c: e1a04003 mov r4, r3
|
|
876 c20: e1a03002 mov r3, r2
|
|
877 c24: e1a02001 mov r2, r1
|
|
878 c28: e1a01000 mov r1, r0
|
|
879 c2c: e3a0000a mov r0, #10
|
|
880 c30: ef000000 svc 0x00000000
|
|
881 c34: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
882 c38: e12fff1e bx lr
|
|
883
|
|
884 00000c3c <getpid>:
|
|
885 c3c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
886 c40: e1a04003 mov r4, r3
|
|
887 c44: e1a03002 mov r3, r2
|
|
888 c48: e1a02001 mov r2, r1
|
|
889 c4c: e1a01000 mov r1, r0
|
|
890 c50: e3a0000b mov r0, #11
|
|
891 c54: ef000000 svc 0x00000000
|
|
892 c58: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
893 c5c: e12fff1e bx lr
|
|
894
|
|
895 00000c60 <sbrk>:
|
|
896 c60: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
897 c64: e1a04003 mov r4, r3
|
|
898 c68: e1a03002 mov r3, r2
|
|
899 c6c: e1a02001 mov r2, r1
|
|
900 c70: e1a01000 mov r1, r0
|
|
901 c74: e3a0000c mov r0, #12
|
|
902 c78: ef000000 svc 0x00000000
|
|
903 c7c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
904 c80: e12fff1e bx lr
|
|
905
|
|
906 00000c84 <sleep>:
|
|
907 c84: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
908 c88: e1a04003 mov r4, r3
|
|
909 c8c: e1a03002 mov r3, r2
|
|
910 c90: e1a02001 mov r2, r1
|
|
911 c94: e1a01000 mov r1, r0
|
|
912 c98: e3a0000d mov r0, #13
|
|
913 c9c: ef000000 svc 0x00000000
|
|
914 ca0: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
915 ca4: e12fff1e bx lr
|
|
916
|
|
917 00000ca8 <uptime>:
|
|
918 ca8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
|
|
919 cac: e1a04003 mov r4, r3
|
|
920 cb0: e1a03002 mov r3, r2
|
|
921 cb4: e1a02001 mov r2, r1
|
|
922 cb8: e1a01000 mov r1, r0
|
|
923 cbc: e3a0000e mov r0, #14
|
|
924 cc0: ef000000 svc 0x00000000
|
|
925 cc4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
|
|
926 cc8: e12fff1e bx lr
|
|
927
|
|
928 00000ccc <printf>:
|
|
929 }
|
|
930
|
|
931 // Print to the given fd. Only understands %d, %x, %p, %s.
|
|
932 void
|
|
933 printf(int fd, char *fmt, ...)
|
|
934 {
|
|
935 ccc: e92d4800 push {fp, lr}
|
|
936 cd0: e1a0b00d mov fp, sp
|
|
937 cd4: e24dd028 sub sp, sp, #40 ; 0x28
|
|
938 cd8: e1a02001 mov r2, r1
|
|
939 cdc: e1a03000 mov r3, r0
|
|
940 ce0: e50b0004 str r0, [fp, #-4]
|
|
941 ce4: e50b1008 str r1, [fp, #-8]
|
|
942 ce8: e3a00000 mov r0, #0
|
|
943 cec: e58d0010 str r0, [sp, #16]
|
|
944 cf0: e24b1008 sub r1, fp, #8
|
|
945 cf4: e2811004 add r1, r1, #4
|
|
946 cf8: e58d100c str r1, [sp, #12]
|
|
947 cfc: e58d0014 str r0, [sp, #20]
|
|
948 d00: e58d2008 str r2, [sp, #8]
|
|
949 d04: e58d3004 str r3, [sp, #4]
|
|
950 d08: eaffffff b d0c <printf+0x40>
|
|
951 d0c: e51b0008 ldr r0, [fp, #-8]
|
|
952 d10: e59d1014 ldr r1, [sp, #20]
|
|
953 d14: e7d00001 ldrb r0, [r0, r1]
|
|
954 d18: e3500000 cmp r0, #0
|
|
955 d1c: 0a00007e beq f1c <printf+0x250>
|
|
956 d20: eaffffff b d24 <printf+0x58>
|
|
957 d24: e51b0008 ldr r0, [fp, #-8]
|
|
958 d28: e59d1014 ldr r1, [sp, #20]
|
|
959 d2c: e7d00001 ldrb r0, [r0, r1]
|
|
960 d30: e50b0010 str r0, [fp, #-16]
|
|
961 d34: e59d0010 ldr r0, [sp, #16]
|
|
962 d38: e3500000 cmp r0, #0
|
|
963 d3c: 1a00000c bne d74 <printf+0xa8>
|
|
964 d40: eaffffff b d44 <printf+0x78>
|
|
965 d44: e51b0010 ldr r0, [fp, #-16]
|
|
966 d48: e3500025 cmp r0, #37 ; 0x25
|
|
967 d4c: 1a000003 bne d60 <printf+0x94>
|
|
968 d50: eaffffff b d54 <printf+0x88>
|
|
969 d54: e3a00025 mov r0, #37 ; 0x25
|
|
970 d58: e58d0010 str r0, [sp, #16]
|
|
971 d5c: ea000003 b d70 <printf+0xa4>
|
|
972 d60: e51b0004 ldr r0, [fp, #-4]
|
|
973 d64: e55b1010 ldrb r1, [fp, #-16]
|
|
974 d68: eb00006e bl f28 <putc>
|
|
975 d6c: eaffffff b d70 <printf+0xa4>
|
|
976 d70: ea000064 b f08 <printf+0x23c>
|
|
977 d74: e59d0010 ldr r0, [sp, #16]
|
|
978 d78: e3500025 cmp r0, #37 ; 0x25
|
|
979 d7c: 1a000060 bne f04 <printf+0x238>
|
|
980 d80: eaffffff b d84 <printf+0xb8>
|
|
981 d84: e51b0010 ldr r0, [fp, #-16]
|
|
982 d88: e3500064 cmp r0, #100 ; 0x64
|
|
983 d8c: 1a00000a bne dbc <printf+0xf0>
|
|
984 d90: eaffffff b d94 <printf+0xc8>
|
|
985 d94: e51b0004 ldr r0, [fp, #-4]
|
|
986 d98: e59d100c ldr r1, [sp, #12]
|
|
987 d9c: e5911000 ldr r1, [r1]
|
|
988 da0: e3a0200a mov r2, #10
|
|
989 da4: e3a03001 mov r3, #1
|
|
990 da8: eb00006f bl f6c <printint>
|
|
991 dac: e59d000c ldr r0, [sp, #12]
|
|
992 db0: e2800004 add r0, r0, #4
|
|
993 db4: e58d000c str r0, [sp, #12]
|
|
994 db8: ea00004e b ef8 <printf+0x22c>
|
|
995 dbc: e51b0010 ldr r0, [fp, #-16]
|
|
996 dc0: e3500078 cmp r0, #120 ; 0x78
|
|
997 dc4: 0a000004 beq ddc <printf+0x110>
|
|
998 dc8: eaffffff b dcc <printf+0x100>
|
|
999 dcc: e51b0010 ldr r0, [fp, #-16]
|
|
1000 dd0: e3500070 cmp r0, #112 ; 0x70
|
|
1001 dd4: 1a00000a bne e04 <printf+0x138>
|
|
1002 dd8: eaffffff b ddc <printf+0x110>
|
|
1003 ddc: e51b0004 ldr r0, [fp, #-4]
|
|
1004 de0: e59d100c ldr r1, [sp, #12]
|
|
1005 de4: e5911000 ldr r1, [r1]
|
|
1006 de8: e3a02010 mov r2, #16
|
|
1007 dec: e3a03000 mov r3, #0
|
|
1008 df0: eb00005d bl f6c <printint>
|
|
1009 df4: e59d000c ldr r0, [sp, #12]
|
|
1010 df8: e2800004 add r0, r0, #4
|
|
1011 dfc: e58d000c str r0, [sp, #12]
|
|
1012 e00: ea00003b b ef4 <printf+0x228>
|
|
1013 e04: e51b0010 ldr r0, [fp, #-16]
|
|
1014 e08: e3500073 cmp r0, #115 ; 0x73
|
|
1015 e0c: 1a00001a bne e7c <printf+0x1b0>
|
|
1016 e10: eaffffff b e14 <printf+0x148>
|
|
1017 e14: e59d000c ldr r0, [sp, #12]
|
|
1018 e18: e4901004 ldr r1, [r0], #4
|
|
1019 e1c: e50b100c str r1, [fp, #-12]
|
|
1020 e20: e58d000c str r0, [sp, #12]
|
|
1021 e24: e51b000c ldr r0, [fp, #-12]
|
|
1022 e28: e3500000 cmp r0, #0
|
|
1023 e2c: 1a000003 bne e40 <printf+0x174>
|
|
1024 e30: eaffffff b e34 <printf+0x168>
|
|
1025 e34: e59f00e8 ldr r0, [pc, #232] ; f24 <printf+0x258>
|
|
1026 e38: e50b000c str r0, [fp, #-12]
|
|
1027 e3c: eaffffff b e40 <printf+0x174>
|
|
1028 e40: eaffffff b e44 <printf+0x178>
|
|
1029 e44: e51b000c ldr r0, [fp, #-12]
|
|
1030 e48: e5d00000 ldrb r0, [r0]
|
|
1031 e4c: e3500000 cmp r0, #0
|
|
1032 e50: 0a000008 beq e78 <printf+0x1ac>
|
|
1033 e54: eaffffff b e58 <printf+0x18c>
|
|
1034 e58: e51b0004 ldr r0, [fp, #-4]
|
|
1035 e5c: e51b100c ldr r1, [fp, #-12]
|
|
1036 e60: e5d11000 ldrb r1, [r1]
|
|
1037 e64: eb00002f bl f28 <putc>
|
|
1038 e68: e51b000c ldr r0, [fp, #-12]
|
|
1039 e6c: e2800001 add r0, r0, #1
|
|
1040 e70: e50b000c str r0, [fp, #-12]
|
|
1041 e74: eafffff2 b e44 <printf+0x178>
|
|
1042 e78: ea00001c b ef0 <printf+0x224>
|
|
1043 e7c: e51b0010 ldr r0, [fp, #-16]
|
|
1044 e80: e3500063 cmp r0, #99 ; 0x63
|
|
1045 e84: 1a000008 bne eac <printf+0x1e0>
|
|
1046 e88: eaffffff b e8c <printf+0x1c0>
|
|
1047 e8c: e51b0004 ldr r0, [fp, #-4]
|
|
1048 e90: e59d100c ldr r1, [sp, #12]
|
|
1049 e94: e5d11000 ldrb r1, [r1]
|
|
1050 e98: eb000022 bl f28 <putc>
|
|
1051 e9c: e59d000c ldr r0, [sp, #12]
|
|
1052 ea0: e2800004 add r0, r0, #4
|
|
1053 ea4: e58d000c str r0, [sp, #12]
|
|
1054 ea8: ea00000f b eec <printf+0x220>
|
|
1055 eac: e51b0010 ldr r0, [fp, #-16]
|
|
1056 eb0: e3500025 cmp r0, #37 ; 0x25
|
|
1057 eb4: 1a000004 bne ecc <printf+0x200>
|
|
1058 eb8: eaffffff b ebc <printf+0x1f0>
|
|
1059 ebc: e51b0004 ldr r0, [fp, #-4]
|
|
1060 ec0: e55b1010 ldrb r1, [fp, #-16]
|
|
1061 ec4: eb000017 bl f28 <putc>
|
|
1062 ec8: ea000006 b ee8 <printf+0x21c>
|
|
1063 ecc: e51b0004 ldr r0, [fp, #-4]
|
|
1064 ed0: e3a01025 mov r1, #37 ; 0x25
|
|
1065 ed4: eb000013 bl f28 <putc>
|
|
1066 ed8: e51b0004 ldr r0, [fp, #-4]
|
|
1067 edc: e55b1010 ldrb r1, [fp, #-16]
|
|
1068 ee0: eb000010 bl f28 <putc>
|
|
1069 ee4: eaffffff b ee8 <printf+0x21c>
|
|
1070 ee8: eaffffff b eec <printf+0x220>
|
|
1071 eec: eaffffff b ef0 <printf+0x224>
|
|
1072 ef0: eaffffff b ef4 <printf+0x228>
|
|
1073 ef4: eaffffff b ef8 <printf+0x22c>
|
|
1074 ef8: e3a00000 mov r0, #0
|
|
1075 efc: e58d0010 str r0, [sp, #16]
|
|
1076 f00: eaffffff b f04 <printf+0x238>
|
|
1077 f04: eaffffff b f08 <printf+0x23c>
|
|
1078 f08: eaffffff b f0c <printf+0x240>
|
|
1079 f0c: e59d0014 ldr r0, [sp, #20]
|
|
1080 f10: e2800001 add r0, r0, #1
|
|
1081 f14: e58d0014 str r0, [sp, #20]
|
|
1082 f18: eaffff7b b d0c <printf+0x40>
|
|
1083 f1c: e1a0d00b mov sp, fp
|
|
1084 f20: e8bd8800 pop {fp, pc}
|
|
1085 f24: 000015de .word 0x000015de
|
|
1086
|
|
1087 00000f28 <putc>:
|
|
1088 {
|
|
1089 f28: e92d4800 push {fp, lr}
|
|
1090 f2c: e1a0b00d mov fp, sp
|
|
1091 f30: e24dd018 sub sp, sp, #24
|
|
1092 f34: e1a02001 mov r2, r1
|
|
1093 f38: e1a03000 mov r3, r0
|
|
1094 f3c: e50b0004 str r0, [fp, #-4]
|
|
1095 f40: e54b1005 strb r1, [fp, #-5]
|
|
1096 write(fd, &c, 1);
|
|
1097 f44: e51b0004 ldr r0, [fp, #-4]
|
|
1098 f48: e24b1005 sub r1, fp, #5
|
|
1099 f4c: e3a0c001 mov ip, #1
|
|
1100 f50: e58d200c str r2, [sp, #12]
|
|
1101 f54: e1a0200c mov r2, ip
|
|
1102 f58: e58d3008 str r3, [sp, #8]
|
|
1103 f5c: ebfffeca bl a8c <write>
|
|
1104 }
|
|
1105 f60: e58d0004 str r0, [sp, #4]
|
|
1106 f64: e1a0d00b mov sp, fp
|
|
1107 f68: e8bd8800 pop {fp, pc}
|
|
1108
|
|
1109 00000f6c <printint>:
|
|
1110 {
|
|
1111 f6c: e92d4830 push {r4, r5, fp, lr}
|
|
1112 f70: e28db008 add fp, sp, #8
|
|
1113 f74: e24dd040 sub sp, sp, #64 ; 0x40
|
|
1114 f78: e1a0c003 mov ip, r3
|
|
1115 f7c: e1a0e002 mov lr, r2
|
|
1116 f80: e1a04001 mov r4, r1
|
|
1117 f84: e1a05000 mov r5, r0
|
|
1118 f88: e50b000c str r0, [fp, #-12]
|
|
1119 f8c: e50b1010 str r1, [fp, #-16]
|
|
1120 f90: e50b2014 str r2, [fp, #-20] ; 0xffffffec
|
|
1121 f94: e50b3018 str r3, [fp, #-24] ; 0xffffffe8
|
|
1122 f98: e3a00000 mov r0, #0
|
|
1123 f9c: e58d0018 str r0, [sp, #24]
|
|
1124 fa0: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8
|
|
1125 fa4: e3500000 cmp r0, #0
|
|
1126 fa8: e58dc010 str ip, [sp, #16]
|
|
1127 fac: e58de00c str lr, [sp, #12]
|
|
1128 fb0: e58d4008 str r4, [sp, #8]
|
|
1129 fb4: e58d5004 str r5, [sp, #4]
|
|
1130 fb8: 0a00000a beq fe8 <printint+0x7c>
|
|
1131 fbc: eaffffff b fc0 <printint+0x54>
|
|
1132 fc0: e51b0010 ldr r0, [fp, #-16]
|
|
1133 fc4: e3500000 cmp r0, #0
|
|
1134 fc8: aa000006 bge fe8 <printint+0x7c>
|
|
1135 fcc: eaffffff b fd0 <printint+0x64>
|
|
1136 fd0: e3a00001 mov r0, #1
|
|
1137 fd4: e58d0018 str r0, [sp, #24]
|
|
1138 fd8: e51b0010 ldr r0, [fp, #-16]
|
|
1139 fdc: e2600000 rsb r0, r0, #0
|
|
1140 fe0: e58d0014 str r0, [sp, #20]
|
|
1141 fe4: ea000002 b ff4 <printint+0x88>
|
|
1142 fe8: e51b0010 ldr r0, [fp, #-16]
|
|
1143 fec: e58d0014 str r0, [sp, #20]
|
|
1144 ff0: eaffffff b ff4 <printint+0x88>
|
|
1145 ff4: e3a00000 mov r0, #0
|
|
1146 ff8: e58d001c str r0, [sp, #28]
|
|
1147 ffc: eaffffff b 1000 <printint+0x94>
|
|
1148 1000: e59d0014 ldr r0, [sp, #20]
|
|
1149 1004: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
|
|
1150 1008: eb000158 bl 1570 <__aeabi_uidivmod>
|
|
1151 100c: e59fe0a0 ldr lr, [pc, #160] ; 10b4 <printint+0x148>
|
|
1152 1010: e7de1001 ldrb r1, [lr, r1]
|
|
1153 1014: e59de01c ldr lr, [sp, #28]
|
|
1154 1018: e28e2001 add r2, lr, #1
|
|
1155 101c: e58d201c str r2, [sp, #28]
|
|
1156 1020: e28d2020 add r2, sp, #32
|
|
1157 1024: e7c2100e strb r1, [r2, lr]
|
|
1158 1028: e58d0000 str r0, [sp]
|
|
1159 102c: eaffffff b 1030 <printint+0xc4>
|
|
1160 1030: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
|
|
1161 1034: e59d0014 ldr r0, [sp, #20]
|
|
1162 1038: eb00010f bl 147c <__aeabi_uidiv>
|
|
1163 103c: e58d0014 str r0, [sp, #20]
|
|
1164 1040: e3500000 cmp r0, #0
|
|
1165 1044: 1affffed bne 1000 <printint+0x94>
|
|
1166 1048: eaffffff b 104c <printint+0xe0>
|
|
1167 104c: e59d0018 ldr r0, [sp, #24]
|
|
1168 1050: e3500000 cmp r0, #0
|
|
1169 1054: 0a000007 beq 1078 <printint+0x10c>
|
|
1170 1058: eaffffff b 105c <printint+0xf0>
|
|
1171 105c: e59d001c ldr r0, [sp, #28]
|
|
1172 1060: e2801001 add r1, r0, #1
|
|
1173 1064: e58d101c str r1, [sp, #28]
|
|
1174 1068: e28d1020 add r1, sp, #32
|
|
1175 106c: e3a0202d mov r2, #45 ; 0x2d
|
|
1176 1070: e7c12000 strb r2, [r1, r0]
|
|
1177 1074: eaffffff b 1078 <printint+0x10c>
|
|
1178 1078: eaffffff b 107c <printint+0x110>
|
|
1179 107c: e59d001c ldr r0, [sp, #28]
|
|
1180 1080: e2400001 sub r0, r0, #1
|
|
1181 1084: e58d001c str r0, [sp, #28]
|
|
1182 1088: e3500000 cmp r0, #0
|
|
1183 108c: ba000006 blt 10ac <printint+0x140>
|
|
1184 1090: eaffffff b 1094 <printint+0x128>
|
|
1185 1094: e51b000c ldr r0, [fp, #-12]
|
|
1186 1098: e59d101c ldr r1, [sp, #28]
|
|
1187 109c: e28d2020 add r2, sp, #32
|
|
1188 10a0: e7d21001 ldrb r1, [r2, r1]
|
|
1189 10a4: ebffff9f bl f28 <putc>
|
|
1190 10a8: eafffff3 b 107c <printint+0x110>
|
|
1191 10ac: e24bd008 sub sp, fp, #8
|
|
1192 10b0: e8bd8830 pop {r4, r5, fp, pc}
|
|
1193 10b4: 000015f0 .word 0x000015f0
|
|
1194
|
|
1195 000010b8 <free>:
|
|
1196 static Header base;
|
|
1197 static Header *freep;
|
|
1198
|
|
1199 void
|
|
1200 free(void *ap)
|
|
1201 {
|
|
1202 10b8: e24dd014 sub sp, sp, #20
|
|
1203 10bc: e1a01000 mov r1, r0
|
|
1204 10c0: e58d0010 str r0, [sp, #16]
|
|
1205 10c4: e59d0010 ldr r0, [sp, #16]
|
|
1206 10c8: e2400008 sub r0, r0, #8
|
|
1207 10cc: e58d000c str r0, [sp, #12]
|
|
1208 10d0: e59f0188 ldr r0, [pc, #392] ; 1260 <free+0x1a8>
|
|
1209 10d4: e5900000 ldr r0, [r0]
|
|
1210 10d8: e58d0008 str r0, [sp, #8]
|
|
1211 10dc: e58d1004 str r1, [sp, #4]
|
|
1212 10e0: eaffffff b 10e4 <free+0x2c>
|
|
1213 10e4: e59d000c ldr r0, [sp, #12]
|
|
1214 10e8: e59d1008 ldr r1, [sp, #8]
|
|
1215 10ec: e3a02000 mov r2, #0
|
|
1216 10f0: e1500001 cmp r0, r1
|
|
1217 10f4: e58d2000 str r2, [sp]
|
|
1218 10f8: 9a000008 bls 1120 <free+0x68>
|
|
1219 10fc: eaffffff b 1100 <free+0x48>
|
|
1220 1100: e59d000c ldr r0, [sp, #12]
|
|
1221 1104: e59d1008 ldr r1, [sp, #8]
|
|
1222 1108: e5911000 ldr r1, [r1]
|
|
1223 110c: e3a02000 mov r2, #0
|
|
1224 1110: e1500001 cmp r0, r1
|
|
1225 1114: 33a02001 movcc r2, #1
|
|
1226 1118: e58d2000 str r2, [sp]
|
|
1227 111c: eaffffff b 1120 <free+0x68>
|
|
1228 1120: e59d0000 ldr r0, [sp]
|
|
1229 1124: e1e00000 mvn r0, r0
|
|
1230 1128: e3100001 tst r0, #1
|
|
1231 112c: 0a000016 beq 118c <free+0xd4>
|
|
1232 1130: eaffffff b 1134 <free+0x7c>
|
|
1233 1134: e59d0008 ldr r0, [sp, #8]
|
|
1234 1138: e5901000 ldr r1, [r0]
|
|
1235 113c: e1500001 cmp r0, r1
|
|
1236 1140: 3a00000c bcc 1178 <free+0xc0>
|
|
1237 1144: eaffffff b 1148 <free+0x90>
|
|
1238 1148: e59d000c ldr r0, [sp, #12]
|
|
1239 114c: e59d1008 ldr r1, [sp, #8]
|
|
1240 1150: e1500001 cmp r0, r1
|
|
1241 1154: 8a000006 bhi 1174 <free+0xbc>
|
|
1242 1158: eaffffff b 115c <free+0xa4>
|
|
1243 115c: e59d000c ldr r0, [sp, #12]
|
|
1244 1160: e59d1008 ldr r1, [sp, #8]
|
|
1245 1164: e5911000 ldr r1, [r1]
|
|
1246 1168: e1500001 cmp r0, r1
|
|
1247 116c: 2a000001 bcs 1178 <free+0xc0>
|
|
1248 1170: eaffffff b 1174 <free+0xbc>
|
|
1249 1174: ea000004 b 118c <free+0xd4>
|
|
1250 1178: eaffffff b 117c <free+0xc4>
|
|
1251 117c: e59d0008 ldr r0, [sp, #8]
|
|
1252 1180: e5900000 ldr r0, [r0]
|
|
1253 1184: e58d0008 str r0, [sp, #8]
|
|
1254 1188: eaffffd5 b 10e4 <free+0x2c>
|
|
1255 118c: e59d000c ldr r0, [sp, #12]
|
|
1256 1190: e5901004 ldr r1, [r0, #4]
|
|
1257 1194: e0800181 add r0, r0, r1, lsl #3
|
|
1258 1198: e59d1008 ldr r1, [sp, #8]
|
|
1259 119c: e5911000 ldr r1, [r1]
|
|
1260 11a0: e1500001 cmp r0, r1
|
|
1261 11a4: 1a00000d bne 11e0 <free+0x128>
|
|
1262 11a8: eaffffff b 11ac <free+0xf4>
|
|
1263 11ac: e59d0008 ldr r0, [sp, #8]
|
|
1264 11b0: e5900000 ldr r0, [r0]
|
|
1265 11b4: e5900004 ldr r0, [r0, #4]
|
|
1266 11b8: e59d100c ldr r1, [sp, #12]
|
|
1267 11bc: e5912004 ldr r2, [r1, #4]
|
|
1268 11c0: e0820000 add r0, r2, r0
|
|
1269 11c4: e5810004 str r0, [r1, #4]
|
|
1270 11c8: e59d0008 ldr r0, [sp, #8]
|
|
1271 11cc: e5900000 ldr r0, [r0]
|
|
1272 11d0: e5900000 ldr r0, [r0]
|
|
1273 11d4: e59d100c ldr r1, [sp, #12]
|
|
1274 11d8: e5810000 str r0, [r1]
|
|
1275 11dc: ea000004 b 11f4 <free+0x13c>
|
|
1276 11e0: e59d0008 ldr r0, [sp, #8]
|
|
1277 11e4: e5900000 ldr r0, [r0]
|
|
1278 11e8: e59d100c ldr r1, [sp, #12]
|
|
1279 11ec: e5810000 str r0, [r1]
|
|
1280 11f0: eaffffff b 11f4 <free+0x13c>
|
|
1281 11f4: e59d0008 ldr r0, [sp, #8]
|
|
1282 11f8: e5901004 ldr r1, [r0, #4]
|
|
1283 11fc: e0800181 add r0, r0, r1, lsl #3
|
|
1284 1200: e59d100c ldr r1, [sp, #12]
|
|
1285 1204: e1500001 cmp r0, r1
|
|
1286 1208: 1a00000b bne 123c <free+0x184>
|
|
1287 120c: eaffffff b 1210 <free+0x158>
|
|
1288 1210: e59d000c ldr r0, [sp, #12]
|
|
1289 1214: e5900004 ldr r0, [r0, #4]
|
|
1290 1218: e59d1008 ldr r1, [sp, #8]
|
|
1291 121c: e5912004 ldr r2, [r1, #4]
|
|
1292 1220: e0820000 add r0, r2, r0
|
|
1293 1224: e5810004 str r0, [r1, #4]
|
|
1294 1228: e59d000c ldr r0, [sp, #12]
|
|
1295 122c: e5900000 ldr r0, [r0]
|
|
1296 1230: e59d1008 ldr r1, [sp, #8]
|
|
1297 1234: e5810000 str r0, [r1]
|
|
1298 1238: ea000003 b 124c <free+0x194>
|
|
1299 123c: e59d000c ldr r0, [sp, #12]
|
|
1300 1240: e59d1008 ldr r1, [sp, #8]
|
|
1301 1244: e5810000 str r0, [r1]
|
|
1302 1248: eaffffff b 124c <free+0x194>
|
|
1303 124c: e59d0008 ldr r0, [sp, #8]
|
|
1304 1250: e59f1008 ldr r1, [pc, #8] ; 1260 <free+0x1a8>
|
|
1305 1254: e5810000 str r0, [r1]
|
|
1306 1258: e28dd014 add sp, sp, #20
|
|
1307 125c: e12fff1e bx lr
|
|
1308 1260: 00001614 .word 0x00001614
|
|
1309
|
|
1310 00001264 <malloc>:
|
|
1311 1264: e92d4800 push {fp, lr}
|
|
1312 1268: e1a0b00d mov fp, sp
|
|
1313 126c: e24dd018 sub sp, sp, #24
|
|
1314 1270: e1a01000 mov r1, r0
|
|
1315 1274: e50b0008 str r0, [fp, #-8]
|
|
1316 1278: e51b0008 ldr r0, [fp, #-8]
|
|
1317 127c: e2800007 add r0, r0, #7
|
|
1318 1280: e3a02001 mov r2, #1
|
|
1319 1284: e08201a0 add r0, r2, r0, lsr #3
|
|
1320 1288: e58d0004 str r0, [sp, #4]
|
|
1321 128c: e59f013c ldr r0, [pc, #316] ; 13d0 <malloc+0x16c>
|
|
1322 1290: e5900000 ldr r0, [r0]
|
|
1323 1294: e58d0008 str r0, [sp, #8]
|
|
1324 1298: e3500000 cmp r0, #0
|
|
1325 129c: e58d1000 str r1, [sp]
|
|
1326 12a0: 1a000008 bne 12c8 <malloc+0x64>
|
|
1327 12a4: eaffffff b 12a8 <malloc+0x44>
|
|
1328 12a8: e59f0124 ldr r0, [pc, #292] ; 13d4 <malloc+0x170>
|
|
1329 12ac: e58d0008 str r0, [sp, #8]
|
|
1330 12b0: e59f1118 ldr r1, [pc, #280] ; 13d0 <malloc+0x16c>
|
|
1331 12b4: e5810000 str r0, [r1]
|
|
1332 12b8: e5800000 str r0, [r0]
|
|
1333 12bc: e3a01000 mov r1, #0
|
|
1334 12c0: e5801004 str r1, [r0, #4]
|
|
1335 12c4: eaffffff b 12c8 <malloc+0x64>
|
|
1336 12c8: e59d0008 ldr r0, [sp, #8]
|
|
1337 12cc: e5900000 ldr r0, [r0]
|
|
1338 12d0: e58d000c str r0, [sp, #12]
|
|
1339 12d4: eaffffff b 12d8 <malloc+0x74>
|
|
1340 12d8: e59d000c ldr r0, [sp, #12]
|
|
1341 12dc: e5900004 ldr r0, [r0, #4]
|
|
1342 12e0: e59d1004 ldr r1, [sp, #4]
|
|
1343 12e4: e1500001 cmp r0, r1
|
|
1344 12e8: 3a00001f bcc 136c <malloc+0x108>
|
|
1345 12ec: eaffffff b 12f0 <malloc+0x8c>
|
|
1346 12f0: e59d000c ldr r0, [sp, #12]
|
|
1347 12f4: e5900004 ldr r0, [r0, #4]
|
|
1348 12f8: e59d1004 ldr r1, [sp, #4]
|
|
1349 12fc: e1500001 cmp r0, r1
|
|
1350 1300: 1a000005 bne 131c <malloc+0xb8>
|
|
1351 1304: eaffffff b 1308 <malloc+0xa4>
|
|
1352 1308: e59d000c ldr r0, [sp, #12]
|
|
1353 130c: e5900000 ldr r0, [r0]
|
|
1354 1310: e59d1008 ldr r1, [sp, #8]
|
|
1355 1314: e5810000 str r0, [r1]
|
|
1356 1318: ea00000c b 1350 <malloc+0xec>
|
|
1357 131c: e59d0004 ldr r0, [sp, #4]
|
|
1358 1320: e59d100c ldr r1, [sp, #12]
|
|
1359 1324: e5912004 ldr r2, [r1, #4]
|
|
1360 1328: e0420000 sub r0, r2, r0
|
|
1361 132c: e5810004 str r0, [r1, #4]
|
|
1362 1330: e59d000c ldr r0, [sp, #12]
|
|
1363 1334: e5901004 ldr r1, [r0, #4]
|
|
1364 1338: e0800181 add r0, r0, r1, lsl #3
|
|
1365 133c: e58d000c str r0, [sp, #12]
|
|
1366 1340: e59d0004 ldr r0, [sp, #4]
|
|
1367 1344: e59d100c ldr r1, [sp, #12]
|
|
1368 1348: e5810004 str r0, [r1, #4]
|
|
1369 134c: eaffffff b 1350 <malloc+0xec>
|
|
1370 1350: e59d0008 ldr r0, [sp, #8]
|
|
1371 1354: e59f1074 ldr r1, [pc, #116] ; 13d0 <malloc+0x16c>
|
|
1372 1358: e5810000 str r0, [r1]
|
|
1373 135c: e59d000c ldr r0, [sp, #12]
|
|
1374 1360: e2800008 add r0, r0, #8
|
|
1375 1364: e50b0004 str r0, [fp, #-4]
|
|
1376 1368: ea000015 b 13c4 <malloc+0x160>
|
|
1377 136c: e59d000c ldr r0, [sp, #12]
|
|
1378 1370: e59f1058 ldr r1, [pc, #88] ; 13d0 <malloc+0x16c>
|
|
1379 1374: e5911000 ldr r1, [r1]
|
|
1380 1378: e1500001 cmp r0, r1
|
|
1381 137c: 1a00000a bne 13ac <malloc+0x148>
|
|
1382 1380: eaffffff b 1384 <malloc+0x120>
|
|
1383 1384: e59d0004 ldr r0, [sp, #4]
|
|
1384 1388: eb000012 bl 13d8 <morecore>
|
|
1385 138c: e58d000c str r0, [sp, #12]
|
|
1386 1390: e3500000 cmp r0, #0
|
|
1387 1394: 1a000003 bne 13a8 <malloc+0x144>
|
|
1388 1398: eaffffff b 139c <malloc+0x138>
|
|
1389 139c: e3a00000 mov r0, #0
|
|
1390 13a0: e50b0004 str r0, [fp, #-4]
|
|
1391 13a4: ea000006 b 13c4 <malloc+0x160>
|
|
1392 13a8: eaffffff b 13ac <malloc+0x148>
|
|
1393 13ac: eaffffff b 13b0 <malloc+0x14c>
|
|
1394 13b0: e59d000c ldr r0, [sp, #12]
|
|
1395 13b4: e58d0008 str r0, [sp, #8]
|
|
1396 13b8: e5900000 ldr r0, [r0]
|
|
1397 13bc: e58d000c str r0, [sp, #12]
|
|
1398 13c0: eaffffc4 b 12d8 <malloc+0x74>
|
|
1399 13c4: e51b0004 ldr r0, [fp, #-4]
|
|
1400 13c8: e1a0d00b mov sp, fp
|
|
1401 13cc: e8bd8800 pop {fp, pc}
|
|
1402 13d0: 00001614 .word 0x00001614
|
|
1403 13d4: 00001618 .word 0x00001618
|
|
1404
|
|
1405 000013d8 <morecore>:
|
|
1406 freep = p;
|
|
1407 }
|
|
1408
|
|
1409 static Header*
|
|
1410 morecore(uint nu)
|
|
1411 {
|
|
1412 13d8: e92d4800 push {fp, lr}
|
|
1413 13dc: e1a0b00d mov fp, sp
|
|
1414 13e0: e24dd018 sub sp, sp, #24
|
|
1415 13e4: e1a01000 mov r1, r0
|
|
1416 13e8: e50b0008 str r0, [fp, #-8]
|
|
1417 char *p;
|
|
1418 Header *hp;
|
|
1419
|
|
1420 if(nu < 4096)
|
|
1421 13ec: e51b0008 ldr r0, [fp, #-8]
|
|
1422 13f0: e3a02000 mov r2, #0
|
|
1423 13f4: e1520620 cmp r2, r0, lsr #12
|
|
1424 13f8: e58d1004 str r1, [sp, #4]
|
|
1425 13fc: 1a000003 bne 1410 <morecore+0x38>
|
|
1426 1400: eaffffff b 1404 <morecore+0x2c>
|
|
1427 nu = 4096;
|
|
1428 1404: e3a00a01 mov r0, #4096 ; 0x1000
|
|
1429 1408: e50b0008 str r0, [fp, #-8]
|
|
1430 140c: eaffffff b 1410 <morecore+0x38>
|
|
1431 p = sbrk(nu * sizeof(Header));
|
|
1432 1410: e51b0008 ldr r0, [fp, #-8]
|
|
1433 1414: e1a00180 lsl r0, r0, #3
|
|
1434 1418: ebfffe10 bl c60 <sbrk>
|
|
1435 141c: e58d000c str r0, [sp, #12]
|
|
1436 if(p == (char*)-1)
|
|
1437 1420: e59d000c ldr r0, [sp, #12]
|
|
1438 1424: e3700001 cmn r0, #1
|
|
1439 1428: 1a000003 bne 143c <morecore+0x64>
|
|
1440 142c: eaffffff b 1430 <morecore+0x58>
|
|
1441 return 0;
|
|
1442 1430: e3a00000 mov r0, #0
|
|
1443 1434: e50b0004 str r0, [fp, #-4]
|
|
1444 1438: ea00000b b 146c <morecore+0x94>
|
|
1445 hp = (Header*)p;
|
|
1446 143c: e59d000c ldr r0, [sp, #12]
|
|
1447 1440: e58d0008 str r0, [sp, #8]
|
|
1448 hp->s.size = nu;
|
|
1449 1444: e51b0008 ldr r0, [fp, #-8]
|
|
1450 1448: e59d1008 ldr r1, [sp, #8]
|
|
1451 144c: e5810004 str r0, [r1, #4]
|
|
1452 free((void*)(hp + 1));
|
|
1453 1450: e59d0008 ldr r0, [sp, #8]
|
|
1454 1454: e2800008 add r0, r0, #8
|
|
1455 1458: ebffff16 bl 10b8 <free>
|
|
1456 return freep;
|
|
1457 145c: e59f0014 ldr r0, [pc, #20] ; 1478 <morecore+0xa0>
|
|
1458 1460: e5900000 ldr r0, [r0]
|
|
1459 1464: e50b0004 str r0, [fp, #-4]
|
|
1460 1468: eaffffff b 146c <morecore+0x94>
|
|
1461 }
|
|
1462 146c: e51b0004 ldr r0, [fp, #-4]
|
|
1463 1470: e1a0d00b mov sp, fp
|
|
1464 1474: e8bd8800 pop {fp, pc}
|
|
1465 1478: 00001614 .word 0x00001614
|
|
1466
|
|
1467 0000147c <__aeabi_uidiv>:
|
|
1468 147c: e2512001 subs r2, r1, #1
|
|
1469 1480: 012fff1e bxeq lr
|
|
1470 1484: 3a000036 bcc 1564 <__aeabi_uidiv+0xe8>
|
|
1471 1488: e1500001 cmp r0, r1
|
|
1472 148c: 9a000022 bls 151c <__aeabi_uidiv+0xa0>
|
|
1473 1490: e1110002 tst r1, r2
|
|
1474 1494: 0a000023 beq 1528 <__aeabi_uidiv+0xac>
|
|
1475 1498: e311020e tst r1, #-536870912 ; 0xe0000000
|
|
1476 149c: 01a01181 lsleq r1, r1, #3
|
|
1477 14a0: 03a03008 moveq r3, #8
|
|
1478 14a4: 13a03001 movne r3, #1
|
|
1479 14a8: e3510201 cmp r1, #268435456 ; 0x10000000
|
|
1480 14ac: 31510000 cmpcc r1, r0
|
|
1481 14b0: 31a01201 lslcc r1, r1, #4
|
|
1482 14b4: 31a03203 lslcc r3, r3, #4
|
|
1483 14b8: 3afffffa bcc 14a8 <__aeabi_uidiv+0x2c>
|
|
1484 14bc: e3510102 cmp r1, #-2147483648 ; 0x80000000
|
|
1485 14c0: 31510000 cmpcc r1, r0
|
|
1486 14c4: 31a01081 lslcc r1, r1, #1
|
|
1487 14c8: 31a03083 lslcc r3, r3, #1
|
|
1488 14cc: 3afffffa bcc 14bc <__aeabi_uidiv+0x40>
|
|
1489 14d0: e3a02000 mov r2, #0
|
|
1490 14d4: e1500001 cmp r0, r1
|
|
1491 14d8: 20400001 subcs r0, r0, r1
|
|
1492 14dc: 21822003 orrcs r2, r2, r3
|
|
1493 14e0: e15000a1 cmp r0, r1, lsr #1
|
|
1494 14e4: 204000a1 subcs r0, r0, r1, lsr #1
|
|
1495 14e8: 218220a3 orrcs r2, r2, r3, lsr #1
|
|
1496 14ec: e1500121 cmp r0, r1, lsr #2
|
|
1497 14f0: 20400121 subcs r0, r0, r1, lsr #2
|
|
1498 14f4: 21822123 orrcs r2, r2, r3, lsr #2
|
|
1499 14f8: e15001a1 cmp r0, r1, lsr #3
|
|
1500 14fc: 204001a1 subcs r0, r0, r1, lsr #3
|
|
1501 1500: 218221a3 orrcs r2, r2, r3, lsr #3
|
|
1502 1504: e3500000 cmp r0, #0
|
|
1503 1508: 11b03223 lsrsne r3, r3, #4
|
|
1504 150c: 11a01221 lsrne r1, r1, #4
|
|
1505 1510: 1affffef bne 14d4 <__aeabi_uidiv+0x58>
|
|
1506 1514: e1a00002 mov r0, r2
|
|
1507 1518: e12fff1e bx lr
|
|
1508 151c: 03a00001 moveq r0, #1
|
|
1509 1520: 13a00000 movne r0, #0
|
|
1510 1524: e12fff1e bx lr
|
|
1511 1528: e3510801 cmp r1, #65536 ; 0x10000
|
|
1512 152c: 21a01821 lsrcs r1, r1, #16
|
|
1513 1530: 23a02010 movcs r2, #16
|
|
1514 1534: 33a02000 movcc r2, #0
|
|
1515 1538: e3510c01 cmp r1, #256 ; 0x100
|
|
1516 153c: 21a01421 lsrcs r1, r1, #8
|
|
1517 1540: 22822008 addcs r2, r2, #8
|
|
1518 1544: e3510010 cmp r1, #16
|
|
1519 1548: 21a01221 lsrcs r1, r1, #4
|
|
1520 154c: 22822004 addcs r2, r2, #4
|
|
1521 1550: e3510004 cmp r1, #4
|
|
1522 1554: 82822003 addhi r2, r2, #3
|
|
1523 1558: 908220a1 addls r2, r2, r1, lsr #1
|
|
1524 155c: e1a00230 lsr r0, r0, r2
|
|
1525 1560: e12fff1e bx lr
|
|
1526 1564: e3500000 cmp r0, #0
|
|
1527 1568: 13e00000 mvnne r0, #0
|
|
1528 156c: ea000007 b 1590 <__aeabi_idiv0>
|
|
1529
|
|
1530 00001570 <__aeabi_uidivmod>:
|
|
1531 1570: e3510000 cmp r1, #0
|
|
1532 1574: 0afffffa beq 1564 <__aeabi_uidiv+0xe8>
|
|
1533 1578: e92d4003 push {r0, r1, lr}
|
|
1534 157c: ebffffbe bl 147c <__aeabi_uidiv>
|
|
1535 1580: e8bd4006 pop {r1, r2, lr}
|
|
1536 1584: e0030092 mul r3, r2, r0
|
|
1537 1588: e0411003 sub r1, r1, r3
|
|
1538 158c: e12fff1e bx lr
|
|
1539
|
|
1540 00001590 <__aeabi_idiv0>:
|
|
1541 1590: e12fff1e bx lr
|