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