comparison src/usr/sh.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 _sh: file format elf32-littlearm
3
4
5 Disassembly of section .text:
6
7 00000000 <runcmd>:
8 struct cmd *parsecmd(char*);
9
10 // Execute cmd. Never returns.
11 void
12 runcmd(struct cmd *cmd)
13 {
14 0: e92d4800 push {fp, lr}
15 4: e1a0b00d mov fp, sp
16 8: e24dd078 sub sp, sp, #120 ; 0x78
17 c: e1a01000 mov r1, r0
18 10: e50b0004 str r0, [fp, #-4]
19 14: e51b0004 ldr r0, [fp, #-4]
20 18: e3500000 cmp r0, #0
21 1c: e50b1024 str r1, [fp, #-36] ; 0xffffffdc
22 20: 1a000002 bne 30 <runcmd+0x30>
23 24: eaffffff b 28 <runcmd+0x28>
24 28: eb000645 bl 1944 <exit>
25 2c: e50b0028 str r0, [fp, #-40] ; 0xffffffd8
26 30: e51b0004 ldr r0, [fp, #-4]
27 34: e5900000 ldr r0, [r0]
28 38: e2400001 sub r0, r0, #1
29 3c: e3500004 cmp r0, #4
30 40: e50b002c str r0, [fp, #-44] ; 0xffffffd4
31 44: 8a000009 bhi 70 <runcmd+0x70>
32 48: e51b002c ldr r0, [fp, #-44] ; 0xffffffd4
33 4c: e1a01100 lsl r1, r0, #2
34 50: e28f2004 add r2, pc, #4
35 54: e7911002 ldr r1, [r1, r2]
36 58: e1a0f001 mov pc, r1
37 5c: 0000007c .word 0x0000007c
38 60: 000000d8 .word 0x000000d8
39 64: 00000184 .word 0x00000184
40 68: 00000140 .word 0x00000140
41 6c: 0000029c .word 0x0000029c
42 70: e59f0260 ldr r0, [pc, #608] ; 2d8 <runcmd+0x2d8>
43 74: eb000099 bl 2e0 <panic>
44 78: eaffffff b 7c <runcmd+0x7c>
45 7c: e51b0004 ldr r0, [fp, #-4]
46 80: e50b0014 str r0, [fp, #-20] ; 0xffffffec
47 84: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec
48 88: e5900004 ldr r0, [r0, #4]
49 8c: e3500000 cmp r0, #0
50 90: 1a000002 bne a0 <runcmd+0xa0>
51 94: eaffffff b 98 <runcmd+0x98>
52 98: eb000629 bl 1944 <exit>
53 9c: e50b0030 str r0, [fp, #-48] ; 0xffffffd0
54 a0: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec
55 a4: e5b01004 ldr r1, [r0, #4]!
56 a8: e50b0034 str r0, [fp, #-52] ; 0xffffffcc
57 ac: e1a00001 mov r0, r1
58 b0: e51b1034 ldr r1, [fp, #-52] ; 0xffffffcc
59 b4: eb000661 bl 1a40 <exec>
60 b8: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
61 bc: e5912004 ldr r2, [r1, #4]
62 c0: e59f1214 ldr r1, [pc, #532] ; 2dc <runcmd+0x2dc>
63 c4: e3a0e002 mov lr, #2
64 c8: e50b0038 str r0, [fp, #-56] ; 0xffffffc8
65 cc: e1a0000e mov r0, lr
66 d0: eb0006cf bl 1c14 <printf>
67 d4: ea00007b b 2c8 <runcmd+0x2c8>
68 d8: e51b0004 ldr r0, [fp, #-4]
69 dc: e50b0020 str r0, [fp, #-32] ; 0xffffffe0
70 e0: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0
71 e4: e5900014 ldr r0, [r0, #20]
72 e8: eb000642 bl 19f8 <close>
73 ec: e51be020 ldr lr, [fp, #-32] ; 0xffffffe0
74 f0: e59e1008 ldr r1, [lr, #8]
75 f4: e59ee010 ldr lr, [lr, #16]
76 f8: e58d003c str r0, [sp, #60] ; 0x3c
77 fc: e1a00001 mov r0, r1
78 100: e1a0100e mov r1, lr
79 104: eb000656 bl 1a64 <open>
80 108: e3500000 cmp r0, #0
81 10c: aa000007 bge 130 <runcmd+0x130>
82 110: eaffffff b 114 <runcmd+0x114>
83 114: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0
84 118: e5902008 ldr r2, [r0, #8]
85 11c: e59f11b0 ldr r1, [pc, #432] ; 2d4 <runcmd+0x2d4>
86 120: e3a00002 mov r0, #2
87 124: eb0006ba bl 1c14 <printf>
88 128: eb000605 bl 1944 <exit>
89 12c: e58d0038 str r0, [sp, #56] ; 0x38
90 130: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0
91 134: e5900004 ldr r0, [r0, #4]
92 138: ebffffb0 bl 0 <runcmd>
93 13c: ea000061 b 2c8 <runcmd+0x2c8>
94 140: e51b0004 ldr r0, [fp, #-4]
95 144: e50b0018 str r0, [fp, #-24] ; 0xffffffe8
96 148: eb000075 bl 324 <fork1>
97 14c: e3500000 cmp r0, #0
98 150: 1a000004 bne 168 <runcmd+0x168>
99 154: eaffffff b 158 <runcmd+0x158>
100 158: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8
101 15c: e5900004 ldr r0, [r0, #4]
102 160: ebffffa6 bl 0 <runcmd>
103 164: eaffffff b 168 <runcmd+0x168>
104 168: eb0005fe bl 1968 <wait>
105 16c: e51be018 ldr lr, [fp, #-24] ; 0xffffffe8
106 170: e59ee008 ldr lr, [lr, #8]
107 174: e58d0034 str r0, [sp, #52] ; 0x34
108 178: e1a0000e mov r0, lr
109 17c: ebffff9f bl 0 <runcmd>
110 180: ea000050 b 2c8 <runcmd+0x2c8>
111 184: e51b0004 ldr r0, [fp, #-4]
112 188: e50b001c str r0, [fp, #-28] ; 0xffffffe4
113 18c: e24b000c sub r0, fp, #12
114 190: eb0005fd bl 198c <pipe>
115 194: e3500000 cmp r0, #0
116 198: aa000003 bge 1ac <runcmd+0x1ac>
117 19c: eaffffff b 1a0 <runcmd+0x1a0>
118 1a0: e59f0128 ldr r0, [pc, #296] ; 2d0 <runcmd+0x2d0>
119 1a4: eb00004d bl 2e0 <panic>
120 1a8: eaffffff b 1ac <runcmd+0x1ac>
121 1ac: eb00005c bl 324 <fork1>
122 1b0: e3500000 cmp r0, #0
123 1b4: 1a000014 bne 20c <runcmd+0x20c>
124 1b8: eaffffff b 1bc <runcmd+0x1bc>
125 1bc: e3a00001 mov r0, #1
126 1c0: eb00060c bl 19f8 <close>
127 1c4: e51be008 ldr lr, [fp, #-8]
128 1c8: e58d0030 str r0, [sp, #48] ; 0x30
129 1cc: e1a0000e mov r0, lr
130 1d0: eb000662 bl 1b60 <dup>
131 1d4: e51be00c ldr lr, [fp, #-12]
132 1d8: e58d002c str r0, [sp, #44] ; 0x2c
133 1dc: e1a0000e mov r0, lr
134 1e0: eb000604 bl 19f8 <close>
135 1e4: e51be008 ldr lr, [fp, #-8]
136 1e8: e58d0028 str r0, [sp, #40] ; 0x28
137 1ec: e1a0000e mov r0, lr
138 1f0: eb000600 bl 19f8 <close>
139 1f4: e51be01c ldr lr, [fp, #-28] ; 0xffffffe4
140 1f8: e59ee004 ldr lr, [lr, #4]
141 1fc: e58d0024 str r0, [sp, #36] ; 0x24
142 200: e1a0000e mov r0, lr
143 204: ebffff7d bl 0 <runcmd>
144 208: eaffffff b 20c <runcmd+0x20c>
145 20c: eb000044 bl 324 <fork1>
146 210: e3500000 cmp r0, #0
147 214: 1a000014 bne 26c <runcmd+0x26c>
148 218: eaffffff b 21c <runcmd+0x21c>
149 21c: e3a00000 mov r0, #0
150 220: eb0005f4 bl 19f8 <close>
151 224: e51be00c ldr lr, [fp, #-12]
152 228: e58d0020 str r0, [sp, #32]
153 22c: e1a0000e mov r0, lr
154 230: eb00064a bl 1b60 <dup>
155 234: e51be00c ldr lr, [fp, #-12]
156 238: e58d001c str r0, [sp, #28]
157 23c: e1a0000e mov r0, lr
158 240: eb0005ec bl 19f8 <close>
159 244: e51be008 ldr lr, [fp, #-8]
160 248: e58d0018 str r0, [sp, #24]
161 24c: e1a0000e mov r0, lr
162 250: eb0005e8 bl 19f8 <close>
163 254: e51be01c ldr lr, [fp, #-28] ; 0xffffffe4
164 258: e59ee008 ldr lr, [lr, #8]
165 25c: e58d0014 str r0, [sp, #20]
166 260: e1a0000e mov r0, lr
167 264: ebffff65 bl 0 <runcmd>
168 268: eaffffff b 26c <runcmd+0x26c>
169 26c: e51b000c ldr r0, [fp, #-12]
170 270: eb0005e0 bl 19f8 <close>
171 274: e51be008 ldr lr, [fp, #-8]
172 278: e58d0010 str r0, [sp, #16]
173 27c: e1a0000e mov r0, lr
174 280: eb0005dc bl 19f8 <close>
175 284: e58d000c str r0, [sp, #12]
176 288: eb0005b6 bl 1968 <wait>
177 28c: e58d0008 str r0, [sp, #8]
178 290: eb0005b4 bl 1968 <wait>
179 294: e58d0004 str r0, [sp, #4]
180 298: ea00000a b 2c8 <runcmd+0x2c8>
181 29c: e51b0004 ldr r0, [fp, #-4]
182 2a0: e50b0010 str r0, [fp, #-16]
183 2a4: eb00001e bl 324 <fork1>
184 2a8: e3500000 cmp r0, #0
185 2ac: 1a000004 bne 2c4 <runcmd+0x2c4>
186 2b0: eaffffff b 2b4 <runcmd+0x2b4>
187 2b4: e51b0010 ldr r0, [fp, #-16]
188 2b8: e5900004 ldr r0, [r0, #4]
189 2bc: ebffff4f bl 0 <runcmd>
190 2c0: eaffffff b 2c4 <runcmd+0x2c4>
191 2c4: eaffffff b 2c8 <runcmd+0x2c8>
192 2c8: eb00059d bl 1944 <exit>
193 2cc: e58d0000 str r0, [sp]
194 2d0: 00002503 .word 0x00002503
195 2d4: 000024f3 .word 0x000024f3
196 2d8: 000024dc .word 0x000024dc
197 2dc: 000024e3 .word 0x000024e3
198
199 000002e0 <panic>:
200 2e0: e92d4800 push {fp, lr}
201 2e4: e1a0b00d mov fp, sp
202 2e8: e24dd010 sub sp, sp, #16
203 2ec: e1a01000 mov r1, r0
204 2f0: e50b0004 str r0, [fp, #-4]
205 2f4: e51b2004 ldr r2, [fp, #-4]
206 2f8: e59f0020 ldr r0, [pc, #32] ; 320 <panic+0x40>
207 2fc: e3a03002 mov r3, #2
208 300: e58d0008 str r0, [sp, #8]
209 304: e1a00003 mov r0, r3
210 308: e59d3008 ldr r3, [sp, #8]
211 30c: e58d1004 str r1, [sp, #4]
212 310: e1a01003 mov r1, r3
213 314: eb00063e bl 1c14 <printf>
214 318: eb000589 bl 1944 <exit>
215 31c: e58d0000 str r0, [sp]
216 320: 00002531 .word 0x00002531
217
218 00000324 <fork1>:
219 324: e92d4800 push {fp, lr}
220 328: e1a0b00d mov fp, sp
221 32c: e24dd008 sub sp, sp, #8
222 330: eb00057a bl 1920 <fork>
223 334: e58d0004 str r0, [sp, #4]
224 338: e59d0004 ldr r0, [sp, #4]
225 33c: e3700001 cmn r0, #1
226 340: 1a000003 bne 354 <fork1+0x30>
227 344: eaffffff b 348 <fork1+0x24>
228 348: e59f0010 ldr r0, [pc, #16] ; 360 <fork1+0x3c>
229 34c: ebffffe3 bl 2e0 <panic>
230 350: eaffffff b 354 <fork1+0x30>
231 354: e59d0004 ldr r0, [sp, #4]
232 358: e1a0d00b mov sp, fp
233 35c: e8bd8800 pop {fp, pc}
234 360: 00002521 .word 0x00002521
235
236 00000364 <getcmd>:
237 364: e92d4800 push {fp, lr}
238 368: e1a0b00d mov fp, sp
239 36c: e24dd020 sub sp, sp, #32
240 370: e1a02001 mov r2, r1
241 374: e1a03000 mov r3, r0
242 378: e50b0008 str r0, [fp, #-8]
243 37c: e50b100c str r1, [fp, #-12]
244 380: e59f1070 ldr r1, [pc, #112] ; 3f8 <getcmd+0x94>
245 384: e3a00002 mov r0, #2
246 388: e58d2010 str r2, [sp, #16]
247 38c: e58d300c str r3, [sp, #12]
248 390: eb00061f bl 1c14 <printf>
249 394: e51b0008 ldr r0, [fp, #-8]
250 398: e51b200c ldr r2, [fp, #-12]
251 39c: e3a01000 mov r1, #0
252 3a0: eb000446 bl 14c0 <memset>
253 3a4: e51b1008 ldr r1, [fp, #-8]
254 3a8: e51b200c ldr r2, [fp, #-12]
255 3ac: e58d0008 str r0, [sp, #8]
256 3b0: e1a00001 mov r0, r1
257 3b4: e1a01002 mov r1, r2
258 3b8: eb0004ba bl 16a8 <gets>
259 3bc: e51b1008 ldr r1, [fp, #-8]
260 3c0: e5d11000 ldrb r1, [r1]
261 3c4: e3510000 cmp r1, #0
262 3c8: e58d0004 str r0, [sp, #4]
263 3cc: 1a000003 bne 3e0 <getcmd+0x7c>
264 3d0: eaffffff b 3d4 <getcmd+0x70>
265 3d4: e3e00000 mvn r0, #0
266 3d8: e50b0004 str r0, [fp, #-4]
267 3dc: ea000002 b 3ec <getcmd+0x88>
268 3e0: e3a00000 mov r0, #0
269 3e4: e50b0004 str r0, [fp, #-4]
270 3e8: eaffffff b 3ec <getcmd+0x88>
271 3ec: e51b0004 ldr r0, [fp, #-4]
272 3f0: e1a0d00b mov sp, fp
273 3f4: e8bd8800 pop {fp, pc}
274 3f8: 00002508 .word 0x00002508
275
276 000003fc <main>:
277 3fc: e92d4800 push {fp, lr}
278 400: e1a0b00d mov fp, sp
279 404: e24dd018 sub sp, sp, #24
280 408: e3a00000 mov r0, #0
281 40c: e50b0004 str r0, [fp, #-4]
282 410: eaffffff b 414 <main+0x18>
283 414: e59f0110 ldr r0, [pc, #272] ; 52c <main+0x130>
284 418: e3a01002 mov r1, #2
285 41c: eb000590 bl 1a64 <open>
286 420: e50b0008 str r0, [fp, #-8]
287 424: e3500000 cmp r0, #0
288 428: ba000009 blt 454 <main+0x58>
289 42c: eaffffff b 430 <main+0x34>
290 430: e51b0008 ldr r0, [fp, #-8]
291 434: e3500003 cmp r0, #3
292 438: ba000004 blt 450 <main+0x54>
293 43c: eaffffff b 440 <main+0x44>
294 440: e51b0008 ldr r0, [fp, #-8]
295 444: eb00056b bl 19f8 <close>
296 448: e58d000c str r0, [sp, #12]
297 44c: ea000000 b 454 <main+0x58>
298 450: eaffffef b 414 <main+0x18>
299 454: eaffffff b 458 <main+0x5c>
300 458: e59f00d0 ldr r0, [pc, #208] ; 530 <main+0x134>
301 45c: e3a01064 mov r1, #100 ; 0x64
302 460: ebffffbf bl 364 <getcmd>
303 464: e3500000 cmp r0, #0
304 468: ba00002d blt 524 <main+0x128>
305 46c: eaffffff b 470 <main+0x74>
306 470: e59f00b8 ldr r0, [pc, #184] ; 530 <main+0x134>
307 474: e5d00000 ldrb r0, [r0]
308 478: e3500063 cmp r0, #99 ; 0x63
309 47c: 1a00001d bne 4f8 <main+0xfc>
310 480: eaffffff b 484 <main+0x88>
311 484: e59f00a4 ldr r0, [pc, #164] ; 530 <main+0x134>
312 488: e5d00001 ldrb r0, [r0, #1]
313 48c: e3500064 cmp r0, #100 ; 0x64
314 490: 1a000018 bne 4f8 <main+0xfc>
315 494: eaffffff b 498 <main+0x9c>
316 498: e59f0090 ldr r0, [pc, #144] ; 530 <main+0x134>
317 49c: e5d00002 ldrb r0, [r0, #2]
318 4a0: e3500020 cmp r0, #32
319 4a4: 1a000013 bne 4f8 <main+0xfc>
320 4a8: eaffffff b 4ac <main+0xb0>
321 4ac: e59f007c ldr r0, [pc, #124] ; 530 <main+0x134>
322 4b0: e58d0008 str r0, [sp, #8]
323 4b4: eb0003ec bl 146c <strlen>
324 4b8: e59de008 ldr lr, [sp, #8]
325 4bc: e08e0000 add r0, lr, r0
326 4c0: e3a01000 mov r1, #0
327 4c4: e5401001 strb r1, [r0, #-1]
328 4c8: e28e0003 add r0, lr, #3
329 4cc: eb00059a bl 1b3c <chdir>
330 4d0: e3500000 cmp r0, #0
331 4d4: aa000006 bge 4f4 <main+0xf8>
332 4d8: eaffffff b 4dc <main+0xe0>
333 4dc: e59f004c ldr r0, [pc, #76] ; 530 <main+0x134>
334 4e0: e2802003 add r2, r0, #3
335 4e4: e59f1048 ldr r1, [pc, #72] ; 534 <main+0x138>
336 4e8: e3a00002 mov r0, #2
337 4ec: eb0005c8 bl 1c14 <printf>
338 4f0: eaffffff b 4f4 <main+0xf8>
339 4f4: eaffffd7 b 458 <main+0x5c>
340 4f8: ebffff89 bl 324 <fork1>
341 4fc: e3500000 cmp r0, #0
342 500: 1a000004 bne 518 <main+0x11c>
343 504: eaffffff b 508 <main+0x10c>
344 508: e59f0020 ldr r0, [pc, #32] ; 530 <main+0x134>
345 50c: eb000009 bl 538 <parsecmd>
346 510: ebfffeba bl 0 <runcmd>
347 514: eaffffff b 518 <main+0x11c>
348 518: eb000512 bl 1968 <wait>
349 51c: e58d0004 str r0, [sp, #4]
350 520: eaffffcc b 458 <main+0x5c>
351 524: eb000506 bl 1944 <exit>
352 528: e58d0000 str r0, [sp]
353 52c: 0000250b .word 0x0000250b
354 530: 000025c4 .word 0x000025c4
355 534: 00002513 .word 0x00002513
356
357 00000538 <parsecmd>:
358 538: e92d4800 push {fp, lr}
359 53c: e1a0b00d mov fp, sp
360 540: e24dd020 sub sp, sp, #32
361 544: e1a01000 mov r1, r0
362 548: e50b0004 str r0, [fp, #-4]
363 54c: e51b0004 ldr r0, [fp, #-4]
364 550: e58d0010 str r0, [sp, #16]
365 554: e58d100c str r1, [sp, #12]
366 558: eb0003c3 bl 146c <strlen>
367 55c: e59d1010 ldr r1, [sp, #16]
368 560: e0810000 add r0, r1, r0
369 564: e50b0008 str r0, [fp, #-8]
370 568: e51b1008 ldr r1, [fp, #-8]
371 56c: e24b0004 sub r0, fp, #4
372 570: e58d0008 str r0, [sp, #8]
373 574: eb0001a5 bl c10 <parseline>
374 578: e50b000c str r0, [fp, #-12]
375 57c: e51b1008 ldr r1, [fp, #-8]
376 580: e59f2054 ldr r2, [pc, #84] ; 5dc <parsecmd+0xa4>
377 584: e59d0008 ldr r0, [sp, #8]
378 588: eb000162 bl b18 <peek>
379 58c: e51b1004 ldr r1, [fp, #-4]
380 590: e51b2008 ldr r2, [fp, #-8]
381 594: e1510002 cmp r1, r2
382 598: e58d0004 str r0, [sp, #4]
383 59c: 0a000007 beq 5c0 <parsecmd+0x88>
384 5a0: eaffffff b 5a4 <parsecmd+0x6c>
385 5a4: e51b2004 ldr r2, [fp, #-4]
386 5a8: e59f1030 ldr r1, [pc, #48] ; 5e0 <parsecmd+0xa8>
387 5ac: e3a00002 mov r0, #2
388 5b0: eb000597 bl 1c14 <printf>
389 5b4: e59f0028 ldr r0, [pc, #40] ; 5e4 <parsecmd+0xac>
390 5b8: ebffff48 bl 2e0 <panic>
391 5bc: eaffffff b 5c0 <parsecmd+0x88>
392 5c0: e51b000c ldr r0, [fp, #-12]
393 5c4: eb0001d3 bl d18 <nulterminate>
394 5c8: e51be00c ldr lr, [fp, #-12]
395 5cc: e58d0000 str r0, [sp]
396 5d0: e1a0000e mov r0, lr
397 5d4: e1a0d00b mov sp, fp
398 5d8: e8bd8800 pop {fp, pc}
399 5dc: 000024f2 .word 0x000024f2
400 5e0: 00002526 .word 0x00002526
401 5e4: 00002535 .word 0x00002535
402
403 000005e8 <execcmd>:
404 5e8: e92d4800 push {fp, lr}
405 5ec: e1a0b00d mov fp, sp
406 5f0: e24dd010 sub sp, sp, #16
407 5f4: e3a00054 mov r0, #84 ; 0x54
408 5f8: e58d0008 str r0, [sp, #8]
409 5fc: eb0006ea bl 21ac <malloc>
410 600: e50b0004 str r0, [fp, #-4]
411 604: e51b0004 ldr r0, [fp, #-4]
412 608: e3a01000 mov r1, #0
413 60c: e59d2008 ldr r2, [sp, #8]
414 610: eb0003aa bl 14c0 <memset>
415 614: e51b1004 ldr r1, [fp, #-4]
416 618: e3a02001 mov r2, #1
417 61c: e5812000 str r2, [r1]
418 620: e51b1004 ldr r1, [fp, #-4]
419 624: e58d0004 str r0, [sp, #4]
420 628: e1a00001 mov r0, r1
421 62c: e1a0d00b mov sp, fp
422 630: e8bd8800 pop {fp, pc}
423
424 00000634 <redircmd>:
425 634: e92d4c70 push {r4, r5, r6, sl, fp, lr}
426 638: e28db010 add fp, sp, #16
427 63c: e24dd030 sub sp, sp, #48 ; 0x30
428 640: e59bc008 ldr ip, [fp, #8]
429 644: e1a0e003 mov lr, r3
430 648: e1a04002 mov r4, r2
431 64c: e1a05001 mov r5, r1
432 650: e1a06000 mov r6, r0
433 654: e50b0014 str r0, [fp, #-20] ; 0xffffffec
434 658: e50b1018 str r1, [fp, #-24] ; 0xffffffe8
435 65c: e50b201c str r2, [fp, #-28] ; 0xffffffe4
436 660: e58d3020 str r3, [sp, #32]
437 664: e3a00018 mov r0, #24
438 668: e58d0018 str r0, [sp, #24]
439 66c: e58de014 str lr, [sp, #20]
440 670: e58d4010 str r4, [sp, #16]
441 674: e58d500c str r5, [sp, #12]
442 678: e58d6008 str r6, [sp, #8]
443 67c: e58dc004 str ip, [sp, #4]
444 680: eb0006c9 bl 21ac <malloc>
445 684: e58d001c str r0, [sp, #28]
446 688: e59d001c ldr r0, [sp, #28]
447 68c: e3a01000 mov r1, #0
448 690: e59d2018 ldr r2, [sp, #24]
449 694: eb000389 bl 14c0 <memset>
450 698: e59d101c ldr r1, [sp, #28]
451 69c: e3a02002 mov r2, #2
452 6a0: e5812000 str r2, [r1]
453 6a4: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
454 6a8: e59d201c ldr r2, [sp, #28]
455 6ac: e5821004 str r1, [r2, #4]
456 6b0: e51b1018 ldr r1, [fp, #-24] ; 0xffffffe8
457 6b4: e59d201c ldr r2, [sp, #28]
458 6b8: e5821008 str r1, [r2, #8]
459 6bc: e51b101c ldr r1, [fp, #-28] ; 0xffffffe4
460 6c0: e59d201c ldr r2, [sp, #28]
461 6c4: e582100c str r1, [r2, #12]
462 6c8: e59d1020 ldr r1, [sp, #32]
463 6cc: e59d201c ldr r2, [sp, #28]
464 6d0: e5821010 str r1, [r2, #16]
465 6d4: e59b1008 ldr r1, [fp, #8]
466 6d8: e59d201c ldr r2, [sp, #28]
467 6dc: e5821014 str r1, [r2, #20]
468 6e0: e59d101c ldr r1, [sp, #28]
469 6e4: e58d0000 str r0, [sp]
470 6e8: e1a00001 mov r0, r1
471 6ec: e24bd010 sub sp, fp, #16
472 6f0: e8bd8c70 pop {r4, r5, r6, sl, fp, pc}
473
474 000006f4 <pipecmd>:
475 6f4: e92d4800 push {fp, lr}
476 6f8: e1a0b00d mov fp, sp
477 6fc: e24dd020 sub sp, sp, #32
478 700: e1a02001 mov r2, r1
479 704: e1a03000 mov r3, r0
480 708: e50b0004 str r0, [fp, #-4]
481 70c: e50b1008 str r1, [fp, #-8]
482 710: e3a0000c mov r0, #12
483 714: e58d0010 str r0, [sp, #16]
484 718: e58d200c str r2, [sp, #12]
485 71c: e58d3008 str r3, [sp, #8]
486 720: eb0006a1 bl 21ac <malloc>
487 724: e50b000c str r0, [fp, #-12]
488 728: e51b000c ldr r0, [fp, #-12]
489 72c: e3a01000 mov r1, #0
490 730: e59d2010 ldr r2, [sp, #16]
491 734: eb000361 bl 14c0 <memset>
492 738: e51b100c ldr r1, [fp, #-12]
493 73c: e3a02003 mov r2, #3
494 740: e5812000 str r2, [r1]
495 744: e51b1004 ldr r1, [fp, #-4]
496 748: e51b200c ldr r2, [fp, #-12]
497 74c: e5821004 str r1, [r2, #4]
498 750: e51b1008 ldr r1, [fp, #-8]
499 754: e51b200c ldr r2, [fp, #-12]
500 758: e5821008 str r1, [r2, #8]
501 75c: e51b100c ldr r1, [fp, #-12]
502 760: e58d0004 str r0, [sp, #4]
503 764: e1a00001 mov r0, r1
504 768: e1a0d00b mov sp, fp
505 76c: e8bd8800 pop {fp, pc}
506
507 00000770 <listcmd>:
508 770: e92d4800 push {fp, lr}
509 774: e1a0b00d mov fp, sp
510 778: e24dd020 sub sp, sp, #32
511 77c: e1a02001 mov r2, r1
512 780: e1a03000 mov r3, r0
513 784: e50b0004 str r0, [fp, #-4]
514 788: e50b1008 str r1, [fp, #-8]
515 78c: e3a0000c mov r0, #12
516 790: e58d0010 str r0, [sp, #16]
517 794: e58d200c str r2, [sp, #12]
518 798: e58d3008 str r3, [sp, #8]
519 79c: eb000682 bl 21ac <malloc>
520 7a0: e50b000c str r0, [fp, #-12]
521 7a4: e51b000c ldr r0, [fp, #-12]
522 7a8: e3a01000 mov r1, #0
523 7ac: e59d2010 ldr r2, [sp, #16]
524 7b0: eb000342 bl 14c0 <memset>
525 7b4: e51b100c ldr r1, [fp, #-12]
526 7b8: e3a02004 mov r2, #4
527 7bc: e5812000 str r2, [r1]
528 7c0: e51b1004 ldr r1, [fp, #-4]
529 7c4: e51b200c ldr r2, [fp, #-12]
530 7c8: e5821004 str r1, [r2, #4]
531 7cc: e51b1008 ldr r1, [fp, #-8]
532 7d0: e51b200c ldr r2, [fp, #-12]
533 7d4: e5821008 str r1, [r2, #8]
534 7d8: e51b100c ldr r1, [fp, #-12]
535 7dc: e58d0004 str r0, [sp, #4]
536 7e0: e1a00001 mov r0, r1
537 7e4: e1a0d00b mov sp, fp
538 7e8: e8bd8800 pop {fp, pc}
539
540 000007ec <backcmd>:
541 7ec: e92d4800 push {fp, lr}
542 7f0: e1a0b00d mov fp, sp
543 7f4: e24dd018 sub sp, sp, #24
544 7f8: e1a01000 mov r1, r0
545 7fc: e50b0004 str r0, [fp, #-4]
546 800: e3a00008 mov r0, #8
547 804: e58d000c str r0, [sp, #12]
548 808: e58d1008 str r1, [sp, #8]
549 80c: eb000666 bl 21ac <malloc>
550 810: e50b0008 str r0, [fp, #-8]
551 814: e51b0008 ldr r0, [fp, #-8]
552 818: e3a01000 mov r1, #0
553 81c: e59d200c ldr r2, [sp, #12]
554 820: eb000326 bl 14c0 <memset>
555 824: e51b1008 ldr r1, [fp, #-8]
556 828: e3a02005 mov r2, #5
557 82c: e5812000 str r2, [r1]
558 830: e51b1004 ldr r1, [fp, #-4]
559 834: e51b2008 ldr r2, [fp, #-8]
560 838: e5821004 str r1, [r2, #4]
561 83c: e51b1008 ldr r1, [fp, #-8]
562 840: e58d0004 str r0, [sp, #4]
563 844: e1a00001 mov r0, r1
564 848: e1a0d00b mov sp, fp
565 84c: e8bd8800 pop {fp, pc}
566
567 00000850 <gettoken>:
568 850: e92d4830 push {r4, r5, fp, lr}
569 854: e28db008 add fp, sp, #8
570 858: e24dd038 sub sp, sp, #56 ; 0x38
571 85c: e1a0c003 mov ip, r3
572 860: e1a0e002 mov lr, r2
573 864: e1a04001 mov r4, r1
574 868: e1a05000 mov r5, r0
575 86c: e50b000c str r0, [fp, #-12]
576 870: e50b1010 str r1, [fp, #-16]
577 874: e50b2014 str r2, [fp, #-20] ; 0xffffffec
578 878: e50b3018 str r3, [fp, #-24] ; 0xffffffe8
579 87c: e51b000c ldr r0, [fp, #-12]
580 880: e5900000 ldr r0, [r0]
581 884: e50b001c str r0, [fp, #-28] ; 0xffffffe4
582 888: e58dc01c str ip, [sp, #28]
583 88c: e58de018 str lr, [sp, #24]
584 890: e58d4014 str r4, [sp, #20]
585 894: e58d5010 str r5, [sp, #16]
586 898: eaffffff b 89c <gettoken+0x4c>
587 89c: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
588 8a0: e51b1010 ldr r1, [fp, #-16]
589 8a4: e3a02000 mov r2, #0
590 8a8: e1500001 cmp r0, r1
591 8ac: e58d200c str r2, [sp, #12]
592 8b0: 2a000008 bcs 8d8 <gettoken+0x88>
593 8b4: eaffffff b 8b8 <gettoken+0x68>
594 8b8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
595 8bc: e5d01000 ldrb r1, [r0]
596 8c0: e59f0248 ldr r0, [pc, #584] ; b10 <gettoken+0x2c0>
597 8c4: eb000356 bl 1624 <strchr>
598 8c8: e3500000 cmp r0, #0
599 8cc: 13a00001 movne r0, #1
600 8d0: e58d000c str r0, [sp, #12]
601 8d4: eaffffff b 8d8 <gettoken+0x88>
602 8d8: e59d000c ldr r0, [sp, #12]
603 8dc: e3100001 tst r0, #1
604 8e0: 0a000004 beq 8f8 <gettoken+0xa8>
605 8e4: eaffffff b 8e8 <gettoken+0x98>
606 8e8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
607 8ec: e2800001 add r0, r0, #1
608 8f0: e50b001c str r0, [fp, #-28] ; 0xffffffe4
609 8f4: eaffffe8 b 89c <gettoken+0x4c>
610 8f8: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec
611 8fc: e3500000 cmp r0, #0
612 900: 0a000004 beq 918 <gettoken+0xc8>
613 904: eaffffff b 908 <gettoken+0xb8>
614 908: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
615 90c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
616 910: e5810000 str r0, [r1]
617 914: eaffffff b 918 <gettoken+0xc8>
618 918: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
619 91c: e5d01000 ldrb r1, [r0]
620 920: e58d1020 str r1, [sp, #32]
621 924: e5d00000 ldrb r0, [r0]
622 928: e1a01000 mov r1, r0
623 92c: e3500000 cmp r0, #0
624 930: e58d1008 str r1, [sp, #8]
625 934: 0a000016 beq 994 <gettoken+0x144>
626 938: eaffffff b 93c <gettoken+0xec>
627 93c: e59d0008 ldr r0, [sp, #8]
628 940: e3500026 cmp r0, #38 ; 0x26
629 944: 0a000013 beq 998 <gettoken+0x148>
630 948: eaffffff b 94c <gettoken+0xfc>
631 94c: e59d0008 ldr r0, [sp, #8]
632 950: e2401028 sub r1, r0, #40 ; 0x28
633 954: e3510002 cmp r1, #2
634 958: 3a00000e bcc 998 <gettoken+0x148>
635 95c: eaffffff b 960 <gettoken+0x110>
636 960: e59d0008 ldr r0, [sp, #8]
637 964: e240103b sub r1, r0, #59 ; 0x3b
638 968: e3510002 cmp r1, #2
639 96c: 3a000009 bcc 998 <gettoken+0x148>
640 970: eaffffff b 974 <gettoken+0x124>
641 974: e59d0008 ldr r0, [sp, #8]
642 978: e350003e cmp r0, #62 ; 0x3e
643 97c: 0a000009 beq 9a8 <gettoken+0x158>
644 980: eaffffff b 984 <gettoken+0x134>
645 984: e59d0008 ldr r0, [sp, #8]
646 988: e350007c cmp r0, #124 ; 0x7c
647 98c: 0a000001 beq 998 <gettoken+0x148>
648 990: ea000013 b 9e4 <gettoken+0x194>
649 994: ea000037 b a78 <gettoken+0x228>
650 998: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
651 99c: e2800001 add r0, r0, #1
652 9a0: e50b001c str r0, [fp, #-28] ; 0xffffffe4
653 9a4: ea000033 b a78 <gettoken+0x228>
654 9a8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
655 9ac: e2800001 add r0, r0, #1
656 9b0: e50b001c str r0, [fp, #-28] ; 0xffffffe4
657 9b4: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
658 9b8: e5d00000 ldrb r0, [r0]
659 9bc: e350003e cmp r0, #62 ; 0x3e
660 9c0: 1a000006 bne 9e0 <gettoken+0x190>
661 9c4: eaffffff b 9c8 <gettoken+0x178>
662 9c8: e3a0002b mov r0, #43 ; 0x2b
663 9cc: e58d0020 str r0, [sp, #32]
664 9d0: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
665 9d4: e2800001 add r0, r0, #1
666 9d8: e50b001c str r0, [fp, #-28] ; 0xffffffe4
667 9dc: eaffffff b 9e0 <gettoken+0x190>
668 9e0: ea000024 b a78 <gettoken+0x228>
669 9e4: e3a00061 mov r0, #97 ; 0x61
670 9e8: e58d0020 str r0, [sp, #32]
671 9ec: eaffffff b 9f0 <gettoken+0x1a0>
672 9f0: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
673 9f4: e51b1010 ldr r1, [fp, #-16]
674 9f8: e3a02000 mov r2, #0
675 9fc: e1500001 cmp r0, r1
676 a00: e58d2004 str r2, [sp, #4]
677 a04: 2a000012 bcs a54 <gettoken+0x204>
678 a08: eaffffff b a0c <gettoken+0x1bc>
679 a0c: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
680 a10: e5d01000 ldrb r1, [r0]
681 a14: e59f00f4 ldr r0, [pc, #244] ; b10 <gettoken+0x2c0>
682 a18: eb000301 bl 1624 <strchr>
683 a1c: e3a01000 mov r1, #0
684 a20: e3500000 cmp r0, #0
685 a24: e58d1004 str r1, [sp, #4]
686 a28: 1a000009 bne a54 <gettoken+0x204>
687 a2c: eaffffff b a30 <gettoken+0x1e0>
688 a30: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
689 a34: e5d01000 ldrb r1, [r0]
690 a38: e59f00d4 ldr r0, [pc, #212] ; b14 <gettoken+0x2c4>
691 a3c: eb0002f8 bl 1624 <strchr>
692 a40: e3a01000 mov r1, #0
693 a44: e3500000 cmp r0, #0
694 a48: 03a01001 moveq r1, #1
695 a4c: e58d1004 str r1, [sp, #4]
696 a50: eaffffff b a54 <gettoken+0x204>
697 a54: e59d0004 ldr r0, [sp, #4]
698 a58: e3100001 tst r0, #1
699 a5c: 0a000004 beq a74 <gettoken+0x224>
700 a60: eaffffff b a64 <gettoken+0x214>
701 a64: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
702 a68: e2800001 add r0, r0, #1
703 a6c: e50b001c str r0, [fp, #-28] ; 0xffffffe4
704 a70: eaffffde b 9f0 <gettoken+0x1a0>
705 a74: eaffffff b a78 <gettoken+0x228>
706 a78: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8
707 a7c: e3500000 cmp r0, #0
708 a80: 0a000004 beq a98 <gettoken+0x248>
709 a84: eaffffff b a88 <gettoken+0x238>
710 a88: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
711 a8c: e51b1018 ldr r1, [fp, #-24] ; 0xffffffe8
712 a90: e5810000 str r0, [r1]
713 a94: eaffffff b a98 <gettoken+0x248>
714 a98: eaffffff b a9c <gettoken+0x24c>
715 a9c: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
716 aa0: e51b1010 ldr r1, [fp, #-16]
717 aa4: e3a02000 mov r2, #0
718 aa8: e1500001 cmp r0, r1
719 aac: e58d2000 str r2, [sp]
720 ab0: 2a000008 bcs ad8 <gettoken+0x288>
721 ab4: eaffffff b ab8 <gettoken+0x268>
722 ab8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
723 abc: e5d01000 ldrb r1, [r0]
724 ac0: e59f0048 ldr r0, [pc, #72] ; b10 <gettoken+0x2c0>
725 ac4: eb0002d6 bl 1624 <strchr>
726 ac8: e3500000 cmp r0, #0
727 acc: 13a00001 movne r0, #1
728 ad0: e58d0000 str r0, [sp]
729 ad4: eaffffff b ad8 <gettoken+0x288>
730 ad8: e59d0000 ldr r0, [sp]
731 adc: e3100001 tst r0, #1
732 ae0: 0a000004 beq af8 <gettoken+0x2a8>
733 ae4: eaffffff b ae8 <gettoken+0x298>
734 ae8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
735 aec: e2800001 add r0, r0, #1
736 af0: e50b001c str r0, [fp, #-28] ; 0xffffffe4
737 af4: eaffffe8 b a9c <gettoken+0x24c>
738 af8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
739 afc: e51b100c ldr r1, [fp, #-12]
740 b00: e5810000 str r0, [r1]
741 b04: e59d0020 ldr r0, [sp, #32]
742 b08: e24bd008 sub sp, fp, #8
743 b0c: e8bd8830 pop {r4, r5, fp, pc}
744 b10: 000025a4 .word 0x000025a4
745 b14: 000025aa .word 0x000025aa
746
747 00000b18 <peek>:
748 b18: e92d4800 push {fp, lr}
749 b1c: e1a0b00d mov fp, sp
750 b20: e24dd028 sub sp, sp, #40 ; 0x28
751 b24: e1a03002 mov r3, r2
752 b28: e1a0c001 mov ip, r1
753 b2c: e1a0e000 mov lr, r0
754 b30: e50b0004 str r0, [fp, #-4]
755 b34: e50b1008 str r1, [fp, #-8]
756 b38: e50b200c str r2, [fp, #-12]
757 b3c: e51b0004 ldr r0, [fp, #-4]
758 b40: e5900000 ldr r0, [r0]
759 b44: e50b0010 str r0, [fp, #-16]
760 b48: e58d3014 str r3, [sp, #20]
761 b4c: e58dc010 str ip, [sp, #16]
762 b50: e58de00c str lr, [sp, #12]
763 b54: eaffffff b b58 <peek+0x40>
764 b58: e51b0010 ldr r0, [fp, #-16]
765 b5c: e51b1008 ldr r1, [fp, #-8]
766 b60: e3a02000 mov r2, #0
767 b64: e1500001 cmp r0, r1
768 b68: e58d2008 str r2, [sp, #8]
769 b6c: 2a000008 bcs b94 <peek+0x7c>
770 b70: eaffffff b b74 <peek+0x5c>
771 b74: e51b0010 ldr r0, [fp, #-16]
772 b78: e5d01000 ldrb r1, [r0]
773 b7c: e59f0088 ldr r0, [pc, #136] ; c0c <peek+0xf4>
774 b80: eb0002a7 bl 1624 <strchr>
775 b84: e3500000 cmp r0, #0
776 b88: 13a00001 movne r0, #1
777 b8c: e58d0008 str r0, [sp, #8]
778 b90: eaffffff b b94 <peek+0x7c>
779 b94: e59d0008 ldr r0, [sp, #8]
780 b98: e3100001 tst r0, #1
781 b9c: 0a000004 beq bb4 <peek+0x9c>
782 ba0: eaffffff b ba4 <peek+0x8c>
783 ba4: e51b0010 ldr r0, [fp, #-16]
784 ba8: e2800001 add r0, r0, #1
785 bac: e50b0010 str r0, [fp, #-16]
786 bb0: eaffffe8 b b58 <peek+0x40>
787 bb4: e51b0010 ldr r0, [fp, #-16]
788 bb8: e51b1004 ldr r1, [fp, #-4]
789 bbc: e5810000 str r0, [r1]
790 bc0: e51b0010 ldr r0, [fp, #-16]
791 bc4: e5d00000 ldrb r0, [r0]
792 bc8: e3a01000 mov r1, #0
793 bcc: e3500000 cmp r0, #0
794 bd0: e58d1004 str r1, [sp, #4]
795 bd4: 0a000008 beq bfc <peek+0xe4>
796 bd8: eaffffff b bdc <peek+0xc4>
797 bdc: e51b000c ldr r0, [fp, #-12]
798 be0: e51b1010 ldr r1, [fp, #-16]
799 be4: e5d11000 ldrb r1, [r1]
800 be8: eb00028d bl 1624 <strchr>
801 bec: e3500000 cmp r0, #0
802 bf0: 13a00001 movne r0, #1
803 bf4: e58d0004 str r0, [sp, #4]
804 bf8: eaffffff b bfc <peek+0xe4>
805 bfc: e59d0004 ldr r0, [sp, #4]
806 c00: e2000001 and r0, r0, #1
807 c04: e1a0d00b mov sp, fp
808 c08: e8bd8800 pop {fp, pc}
809 c0c: 000025a4 .word 0x000025a4
810
811 00000c10 <parseline>:
812 c10: e92d4800 push {fp, lr}
813 c14: e1a0b00d mov fp, sp
814 c18: e24dd030 sub sp, sp, #48 ; 0x30
815 c1c: e1a02001 mov r2, r1
816 c20: e1a03000 mov r3, r0
817 c24: e50b0004 str r0, [fp, #-4]
818 c28: e50b1008 str r1, [fp, #-8]
819 c2c: e51b0004 ldr r0, [fp, #-4]
820 c30: e51b1008 ldr r1, [fp, #-8]
821 c34: e50b2010 str r2, [fp, #-16]
822 c38: e50b3014 str r3, [fp, #-20] ; 0xffffffec
823 c3c: eb00009a bl eac <parsepipe>
824 c40: e50b000c str r0, [fp, #-12]
825 c44: eaffffff b c48 <parseline+0x38>
826 c48: e51b0004 ldr r0, [fp, #-4]
827 c4c: e51b1008 ldr r1, [fp, #-8]
828 c50: e59f20b8 ldr r2, [pc, #184] ; d10 <parseline+0x100>
829 c54: ebffffaf bl b18 <peek>
830 c58: e3500000 cmp r0, #0
831 c5c: 0a00000c beq c94 <parseline+0x84>
832 c60: eaffffff b c64 <parseline+0x54>
833 c64: e51b0004 ldr r0, [fp, #-4]
834 c68: e51b1008 ldr r1, [fp, #-8]
835 c6c: e3a02000 mov r2, #0
836 c70: e58d2018 str r2, [sp, #24]
837 c74: e59d3018 ldr r3, [sp, #24]
838 c78: ebfffef4 bl 850 <gettoken>
839 c7c: e51b100c ldr r1, [fp, #-12]
840 c80: e58d0014 str r0, [sp, #20]
841 c84: e1a00001 mov r0, r1
842 c88: ebfffed7 bl 7ec <backcmd>
843 c8c: e50b000c str r0, [fp, #-12]
844 c90: eaffffec b c48 <parseline+0x38>
845 c94: e51b0004 ldr r0, [fp, #-4]
846 c98: e51b1008 ldr r1, [fp, #-8]
847 c9c: e59f2070 ldr r2, [pc, #112] ; d14 <parseline+0x104>
848 ca0: ebffff9c bl b18 <peek>
849 ca4: e3500000 cmp r0, #0
850 ca8: 0a000015 beq d04 <parseline+0xf4>
851 cac: eaffffff b cb0 <parseline+0xa0>
852 cb0: e51b0004 ldr r0, [fp, #-4]
853 cb4: e51b1008 ldr r1, [fp, #-8]
854 cb8: e3a02000 mov r2, #0
855 cbc: e58d2010 str r2, [sp, #16]
856 cc0: e59d3010 ldr r3, [sp, #16]
857 cc4: ebfffee1 bl 850 <gettoken>
858 cc8: e51b100c ldr r1, [fp, #-12]
859 ccc: e51b2004 ldr r2, [fp, #-4]
860 cd0: e51b3008 ldr r3, [fp, #-8]
861 cd4: e58d000c str r0, [sp, #12]
862 cd8: e1a00002 mov r0, r2
863 cdc: e58d1008 str r1, [sp, #8]
864 ce0: e1a01003 mov r1, r3
865 ce4: ebffffc9 bl c10 <parseline>
866 ce8: e59d1008 ldr r1, [sp, #8]
867 cec: e58d0004 str r0, [sp, #4]
868 cf0: e1a00001 mov r0, r1
869 cf4: e59d1004 ldr r1, [sp, #4]
870 cf8: ebfffe9c bl 770 <listcmd>
871 cfc: e50b000c str r0, [fp, #-12]
872 d00: eaffffff b d04 <parseline+0xf4>
873 d04: e51b000c ldr r0, [fp, #-12]
874 d08: e1a0d00b mov sp, fp
875 d0c: e8bd8800 pop {fp, pc}
876 d10: 0000253c .word 0x0000253c
877 d14: 00002583 .word 0x00002583
878
879 00000d18 <nulterminate>:
880 d18: e92d4800 push {fp, lr}
881 d1c: e1a0b00d mov fp, sp
882 d20: e24dd040 sub sp, sp, #64 ; 0x40
883 d24: e1a01000 mov r1, r0
884 d28: e50b0008 str r0, [fp, #-8]
885 d2c: e51b0008 ldr r0, [fp, #-8]
886 d30: e3500000 cmp r0, #0
887 d34: e58d101c str r1, [sp, #28]
888 d38: 1a000003 bne d4c <nulterminate+0x34>
889 d3c: eaffffff b d40 <nulterminate+0x28>
890 d40: e3a00000 mov r0, #0
891 d44: e50b0004 str r0, [fp, #-4]
892 d48: ea000054 b ea0 <nulterminate+0x188>
893 d4c: e51b0008 ldr r0, [fp, #-8]
894 d50: e5900000 ldr r0, [r0]
895 d54: e2400001 sub r0, r0, #1
896 d58: e3500004 cmp r0, #4
897 d5c: e58d0018 str r0, [sp, #24]
898 d60: 8a00004b bhi e94 <nulterminate+0x17c>
899 d64: e59d0018 ldr r0, [sp, #24]
900 d68: e1a01100 lsl r1, r0, #2
901 d6c: e28f2004 add r2, pc, #4
902 d70: e7911002 ldr r1, [r1, r2]
903 d74: e1a0f001 mov pc, r1
904 d78: 00000d8c .word 0x00000d8c
905 d7c: 00000dec .word 0x00000dec
906 d80: 00000e18 .word 0x00000e18
907 d84: 00000e48 .word 0x00000e48
908 d88: 00000e78 .word 0x00000e78
909 d8c: e51b0008 ldr r0, [fp, #-8]
910 d90: e50b0014 str r0, [fp, #-20] ; 0xffffffec
911 d94: e3a00000 mov r0, #0
912 d98: e50b000c str r0, [fp, #-12]
913 d9c: eaffffff b da0 <nulterminate+0x88>
914 da0: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec
915 da4: e51b100c ldr r1, [fp, #-12]
916 da8: e0800101 add r0, r0, r1, lsl #2
917 dac: e5900004 ldr r0, [r0, #4]
918 db0: e3500000 cmp r0, #0
919 db4: 0a00000b beq de8 <nulterminate+0xd0>
920 db8: eaffffff b dbc <nulterminate+0xa4>
921 dbc: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec
922 dc0: e51b100c ldr r1, [fp, #-12]
923 dc4: e0800101 add r0, r0, r1, lsl #2
924 dc8: e590002c ldr r0, [r0, #44] ; 0x2c
925 dcc: e3a01000 mov r1, #0
926 dd0: e5c01000 strb r1, [r0]
927 dd4: eaffffff b dd8 <nulterminate+0xc0>
928 dd8: e51b000c ldr r0, [fp, #-12]
929 ddc: e2800001 add r0, r0, #1
930 de0: e50b000c str r0, [fp, #-12]
931 de4: eaffffed b da0 <nulterminate+0x88>
932 de8: ea000029 b e94 <nulterminate+0x17c>
933 dec: e51b0008 ldr r0, [fp, #-8]
934 df0: e58d0020 str r0, [sp, #32]
935 df4: e59d0020 ldr r0, [sp, #32]
936 df8: e5900004 ldr r0, [r0, #4]
937 dfc: ebffffc5 bl d18 <nulterminate>
938 e00: e59de020 ldr lr, [sp, #32]
939 e04: e59ee00c ldr lr, [lr, #12]
940 e08: e3a01000 mov r1, #0
941 e0c: e5ce1000 strb r1, [lr]
942 e10: e58d0014 str r0, [sp, #20]
943 e14: ea00001e b e94 <nulterminate+0x17c>
944 e18: e51b0008 ldr r0, [fp, #-8]
945 e1c: e50b001c str r0, [fp, #-28] ; 0xffffffe4
946 e20: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4
947 e24: e5900004 ldr r0, [r0, #4]
948 e28: ebffffba bl d18 <nulterminate>
949 e2c: e51be01c ldr lr, [fp, #-28] ; 0xffffffe4
950 e30: e59ee008 ldr lr, [lr, #8]
951 e34: e58d0010 str r0, [sp, #16]
952 e38: e1a0000e mov r0, lr
953 e3c: ebffffb5 bl d18 <nulterminate>
954 e40: e58d000c str r0, [sp, #12]
955 e44: ea000012 b e94 <nulterminate+0x17c>
956 e48: e51b0008 ldr r0, [fp, #-8]
957 e4c: e50b0018 str r0, [fp, #-24] ; 0xffffffe8
958 e50: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8
959 e54: e5900004 ldr r0, [r0, #4]
960 e58: ebffffae bl d18 <nulterminate>
961 e5c: e51be018 ldr lr, [fp, #-24] ; 0xffffffe8
962 e60: e59ee008 ldr lr, [lr, #8]
963 e64: e58d0008 str r0, [sp, #8]
964 e68: e1a0000e mov r0, lr
965 e6c: ebffffa9 bl d18 <nulterminate>
966 e70: e58d0004 str r0, [sp, #4]
967 e74: ea000006 b e94 <nulterminate+0x17c>
968 e78: e51b0008 ldr r0, [fp, #-8]
969 e7c: e50b0010 str r0, [fp, #-16]
970 e80: e51b0010 ldr r0, [fp, #-16]
971 e84: e5900004 ldr r0, [r0, #4]
972 e88: ebffffa2 bl d18 <nulterminate>
973 e8c: e58d0000 str r0, [sp]
974 e90: eaffffff b e94 <nulterminate+0x17c>
975 e94: e51b0008 ldr r0, [fp, #-8]
976 e98: e50b0004 str r0, [fp, #-4]
977 e9c: eaffffff b ea0 <nulterminate+0x188>
978 ea0: e51b0004 ldr r0, [fp, #-4]
979 ea4: e1a0d00b mov sp, fp
980 ea8: e8bd8800 pop {fp, pc}
981
982 00000eac <parsepipe>:
983 eac: e92d4800 push {fp, lr}
984 eb0: e1a0b00d mov fp, sp
985 eb4: e24dd028 sub sp, sp, #40 ; 0x28
986 eb8: e1a02001 mov r2, r1
987 ebc: e1a03000 mov r3, r0
988 ec0: e50b0004 str r0, [fp, #-4]
989 ec4: e50b1008 str r1, [fp, #-8]
990 ec8: e51b0004 ldr r0, [fp, #-4]
991 ecc: e51b1008 ldr r1, [fp, #-8]
992 ed0: e50b2010 str r2, [fp, #-16]
993 ed4: e58d3014 str r3, [sp, #20]
994 ed8: eb000020 bl f60 <parseexec>
995 edc: e50b000c str r0, [fp, #-12]
996 ee0: e51b0004 ldr r0, [fp, #-4]
997 ee4: e51b1008 ldr r1, [fp, #-8]
998 ee8: e59f206c ldr r2, [pc, #108] ; f5c <parsepipe+0xb0>
999 eec: ebffff09 bl b18 <peek>
1000 ef0: e3500000 cmp r0, #0
1001 ef4: 0a000015 beq f50 <parsepipe+0xa4>
1002 ef8: eaffffff b efc <parsepipe+0x50>
1003 efc: e51b0004 ldr r0, [fp, #-4]
1004 f00: e51b1008 ldr r1, [fp, #-8]
1005 f04: e3a02000 mov r2, #0
1006 f08: e58d2010 str r2, [sp, #16]
1007 f0c: e59d3010 ldr r3, [sp, #16]
1008 f10: ebfffe4e bl 850 <gettoken>
1009 f14: e51b100c ldr r1, [fp, #-12]
1010 f18: e51b2004 ldr r2, [fp, #-4]
1011 f1c: e51b3008 ldr r3, [fp, #-8]
1012 f20: e58d000c str r0, [sp, #12]
1013 f24: e1a00002 mov r0, r2
1014 f28: e58d1008 str r1, [sp, #8]
1015 f2c: e1a01003 mov r1, r3
1016 f30: ebffffdd bl eac <parsepipe>
1017 f34: e59d1008 ldr r1, [sp, #8]
1018 f38: e58d0004 str r0, [sp, #4]
1019 f3c: e1a00001 mov r0, r1
1020 f40: e59d1004 ldr r1, [sp, #4]
1021 f44: ebfffdea bl 6f4 <pipecmd>
1022 f48: e50b000c str r0, [fp, #-12]
1023 f4c: eaffffff b f50 <parsepipe+0xa4>
1024 f50: e51b000c ldr r0, [fp, #-12]
1025 f54: e1a0d00b mov sp, fp
1026 f58: e8bd8800 pop {fp, pc}
1027 f5c: 0000253e .word 0x0000253e
1028
1029 00000f60 <parseexec>:
1030 f60: e92d4800 push {fp, lr}
1031 f64: e1a0b00d mov fp, sp
1032 f68: e24dd030 sub sp, sp, #48 ; 0x30
1033 f6c: e1a02001 mov r2, r1
1034 f70: e1a03000 mov r3, r0
1035 f74: e50b0008 str r0, [fp, #-8]
1036 f78: e50b100c str r1, [fp, #-12]
1037 f7c: e51b0008 ldr r0, [fp, #-8]
1038 f80: e51b100c ldr r1, [fp, #-12]
1039 f84: e59fc15c ldr ip, [pc, #348] ; 10e8 <parseexec+0x188>
1040 f88: e58d2008 str r2, [sp, #8]
1041 f8c: e1a0200c mov r2, ip
1042 f90: e58d3004 str r3, [sp, #4]
1043 f94: ebfffedf bl b18 <peek>
1044 f98: e3500000 cmp r0, #0
1045 f9c: 0a000005 beq fb8 <parseexec+0x58>
1046 fa0: eaffffff b fa4 <parseexec+0x44>
1047 fa4: e51b0008 ldr r0, [fp, #-8]
1048 fa8: e51b100c ldr r1, [fp, #-12]
1049 fac: eb0000aa bl 125c <parseblock>
1050 fb0: e50b0004 str r0, [fp, #-4]
1051 fb4: ea000048 b 10dc <parseexec+0x17c>
1052 fb8: ebfffd8a bl 5e8 <execcmd>
1053 fbc: e58d000c str r0, [sp, #12]
1054 fc0: e59d000c ldr r0, [sp, #12]
1055 fc4: e58d0010 str r0, [sp, #16]
1056 fc8: e3a0e000 mov lr, #0
1057 fcc: e58de014 str lr, [sp, #20]
1058 fd0: e51b1008 ldr r1, [fp, #-8]
1059 fd4: e51b200c ldr r2, [fp, #-12]
1060 fd8: eb000046 bl 10f8 <parseredirs>
1061 fdc: e58d000c str r0, [sp, #12]
1062 fe0: eaffffff b fe4 <parseexec+0x84>
1063 fe4: e51b0008 ldr r0, [fp, #-8]
1064 fe8: e51b100c ldr r1, [fp, #-12]
1065 fec: e59f20f8 ldr r2, [pc, #248] ; 10ec <parseexec+0x18c>
1066 ff0: ebfffec8 bl b18 <peek>
1067 ff4: e3500000 cmp r0, #0
1068 ff8: 1a00002b bne 10ac <parseexec+0x14c>
1069 ffc: eaffffff b 1000 <parseexec+0xa0>
1070 1000: e51b0008 ldr r0, [fp, #-8]
1071 1004: e51b100c ldr r1, [fp, #-12]
1072 1008: e24b2010 sub r2, fp, #16
1073 100c: e24b3014 sub r3, fp, #20
1074 1010: ebfffe0e bl 850 <gettoken>
1075 1014: e58d0018 str r0, [sp, #24]
1076 1018: e3500000 cmp r0, #0
1077 101c: 1a000001 bne 1028 <parseexec+0xc8>
1078 1020: eaffffff b 1024 <parseexec+0xc4>
1079 1024: ea000020 b 10ac <parseexec+0x14c>
1080 1028: e59d0018 ldr r0, [sp, #24]
1081 102c: e3500061 cmp r0, #97 ; 0x61
1082 1030: 0a000003 beq 1044 <parseexec+0xe4>
1083 1034: eaffffff b 1038 <parseexec+0xd8>
1084 1038: e59f00b0 ldr r0, [pc, #176] ; 10f0 <parseexec+0x190>
1085 103c: ebfffca7 bl 2e0 <panic>
1086 1040: eaffffff b 1044 <parseexec+0xe4>
1087 1044: e51b0010 ldr r0, [fp, #-16]
1088 1048: e59d1010 ldr r1, [sp, #16]
1089 104c: e59d2014 ldr r2, [sp, #20]
1090 1050: e0811102 add r1, r1, r2, lsl #2
1091 1054: e5810004 str r0, [r1, #4]
1092 1058: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec
1093 105c: e59d1010 ldr r1, [sp, #16]
1094 1060: e59d2014 ldr r2, [sp, #20]
1095 1064: e0811102 add r1, r1, r2, lsl #2
1096 1068: e581002c str r0, [r1, #44] ; 0x2c
1097 106c: e59d0014 ldr r0, [sp, #20]
1098 1070: e2800001 add r0, r0, #1
1099 1074: e58d0014 str r0, [sp, #20]
1100 1078: e59d0014 ldr r0, [sp, #20]
1101 107c: e350000a cmp r0, #10
1102 1080: ba000003 blt 1094 <parseexec+0x134>
1103 1084: eaffffff b 1088 <parseexec+0x128>
1104 1088: e59f0064 ldr r0, [pc, #100] ; 10f4 <parseexec+0x194>
1105 108c: ebfffc93 bl 2e0 <panic>
1106 1090: eaffffff b 1094 <parseexec+0x134>
1107 1094: e59d000c ldr r0, [sp, #12]
1108 1098: e51b1008 ldr r1, [fp, #-8]
1109 109c: e51b200c ldr r2, [fp, #-12]
1110 10a0: eb000014 bl 10f8 <parseredirs>
1111 10a4: e58d000c str r0, [sp, #12]
1112 10a8: eaffffcd b fe4 <parseexec+0x84>
1113 10ac: e59d0010 ldr r0, [sp, #16]
1114 10b0: e59d1014 ldr r1, [sp, #20]
1115 10b4: e0800101 add r0, r0, r1, lsl #2
1116 10b8: e3a01000 mov r1, #0
1117 10bc: e5801004 str r1, [r0, #4]
1118 10c0: e59d0010 ldr r0, [sp, #16]
1119 10c4: e59d2014 ldr r2, [sp, #20]
1120 10c8: e0800102 add r0, r0, r2, lsl #2
1121 10cc: e580102c str r1, [r0, #44] ; 0x2c
1122 10d0: e59d000c ldr r0, [sp, #12]
1123 10d4: e50b0004 str r0, [fp, #-4]
1124 10d8: eaffffff b 10dc <parseexec+0x17c>
1125 10dc: e51b0004 ldr r0, [fp, #-4]
1126 10e0: e1a0d00b mov sp, fp
1127 10e4: e8bd8800 pop {fp, pc}
1128 10e8: 00002560 .word 0x00002560
1129 10ec: 00002580 .word 0x00002580
1130 10f0: 00002535 .word 0x00002535
1131 10f4: 00002585 .word 0x00002585
1132
1133 000010f8 <parseredirs>:
1134 10f8: e92d4800 push {fp, lr}
1135 10fc: e1a0b00d mov fp, sp
1136 1100: e24dd030 sub sp, sp, #48 ; 0x30
1137 1104: e1a03002 mov r3, r2
1138 1108: e1a0c001 mov ip, r1
1139 110c: e1a0e000 mov lr, r0
1140 1110: e50b0004 str r0, [fp, #-4]
1141 1114: e50b1008 str r1, [fp, #-8]
1142 1118: e50b200c str r2, [fp, #-12]
1143 111c: e58d3014 str r3, [sp, #20]
1144 1120: e58dc010 str ip, [sp, #16]
1145 1124: e58de00c str lr, [sp, #12]
1146 1128: eaffffff b 112c <parseredirs+0x34>
1147 112c: e51b0008 ldr r0, [fp, #-8]
1148 1130: e51b100c ldr r1, [fp, #-12]
1149 1134: e59f2118 ldr r2, [pc, #280] ; 1254 <parseredirs+0x15c>
1150 1138: ebfffe76 bl b18 <peek>
1151 113c: e3500000 cmp r0, #0
1152 1140: 0a000040 beq 1248 <parseredirs+0x150>
1153 1144: eaffffff b 1148 <parseredirs+0x50>
1154 1148: e51b0008 ldr r0, [fp, #-8]
1155 114c: e51b100c ldr r1, [fp, #-12]
1156 1150: e3a02000 mov r2, #0
1157 1154: e58d2008 str r2, [sp, #8]
1158 1158: e59d3008 ldr r3, [sp, #8]
1159 115c: ebfffdbb bl 850 <gettoken>
1160 1160: e50b0010 str r0, [fp, #-16]
1161 1164: e51b0008 ldr r0, [fp, #-8]
1162 1168: e51b100c ldr r1, [fp, #-12]
1163 116c: e24b2014 sub r2, fp, #20
1164 1170: e28d3018 add r3, sp, #24
1165 1174: ebfffdb5 bl 850 <gettoken>
1166 1178: e3500061 cmp r0, #97 ; 0x61
1167 117c: 0a000003 beq 1190 <parseredirs+0x98>
1168 1180: eaffffff b 1184 <parseredirs+0x8c>
1169 1184: e59f00cc ldr r0, [pc, #204] ; 1258 <parseredirs+0x160>
1170 1188: ebfffc54 bl 2e0 <panic>
1171 118c: eaffffff b 1190 <parseredirs+0x98>
1172 1190: e51b0010 ldr r0, [fp, #-16]
1173 1194: e350002b cmp r0, #43 ; 0x2b
1174 1198: e58d0004 str r0, [sp, #4]
1175 119c: 0a00001d beq 1218 <parseredirs+0x120>
1176 11a0: eaffffff b 11a4 <parseredirs+0xac>
1177 11a4: e59d0004 ldr r0, [sp, #4]
1178 11a8: e350003c cmp r0, #60 ; 0x3c
1179 11ac: 0a000004 beq 11c4 <parseredirs+0xcc>
1180 11b0: eaffffff b 11b4 <parseredirs+0xbc>
1181 11b4: e59d0004 ldr r0, [sp, #4]
1182 11b8: e350003e cmp r0, #62 ; 0x3e
1183 11bc: 0a00000a beq 11ec <parseredirs+0xf4>
1184 11c0: ea00001f b 1244 <parseredirs+0x14c>
1185 11c4: e51b0004 ldr r0, [fp, #-4]
1186 11c8: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
1187 11cc: e59d2018 ldr r2, [sp, #24]
1188 11d0: e1a0300d mov r3, sp
1189 11d4: e3a0c000 mov ip, #0
1190 11d8: e583c000 str ip, [r3]
1191 11dc: e1a0300c mov r3, ip
1192 11e0: ebfffd13 bl 634 <redircmd>
1193 11e4: e50b0004 str r0, [fp, #-4]
1194 11e8: ea000015 b 1244 <parseredirs+0x14c>
1195 11ec: e51b0004 ldr r0, [fp, #-4]
1196 11f0: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
1197 11f4: e59d2018 ldr r2, [sp, #24]
1198 11f8: e1a0300d mov r3, sp
1199 11fc: e3a0c001 mov ip, #1
1200 1200: e583c000 str ip, [r3]
1201 1204: e3a03001 mov r3, #1
1202 1208: e3833c02 orr r3, r3, #512 ; 0x200
1203 120c: ebfffd08 bl 634 <redircmd>
1204 1210: e50b0004 str r0, [fp, #-4]
1205 1214: ea00000a b 1244 <parseredirs+0x14c>
1206 1218: e51b0004 ldr r0, [fp, #-4]
1207 121c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
1208 1220: e59d2018 ldr r2, [sp, #24]
1209 1224: e1a0300d mov r3, sp
1210 1228: e3a0c001 mov ip, #1
1211 122c: e583c000 str ip, [r3]
1212 1230: e3a03001 mov r3, #1
1213 1234: e3833c02 orr r3, r3, #512 ; 0x200
1214 1238: ebfffcfd bl 634 <redircmd>
1215 123c: e50b0004 str r0, [fp, #-4]
1216 1240: eaffffff b 1244 <parseredirs+0x14c>
1217 1244: eaffffb8 b 112c <parseredirs+0x34>
1218 1248: e51b0004 ldr r0, [fp, #-4]
1219 124c: e1a0d00b mov sp, fp
1220 1250: e8bd8800 pop {fp, pc}
1221 1254: 00002540 .word 0x00002540
1222 1258: 00002543 .word 0x00002543
1223
1224 0000125c <parseblock>:
1225 return cmd;
1226 }
1227
1228 struct cmd*
1229 parseblock(char **ps, char *es)
1230 {
1231 125c: e92d4800 push {fp, lr}
1232 1260: e1a0b00d mov fp, sp
1233 1264: e24dd028 sub sp, sp, #40 ; 0x28
1234 1268: e1a02001 mov r2, r1
1235 126c: e1a03000 mov r3, r0
1236 1270: e50b0004 str r0, [fp, #-4]
1237 1274: e50b1008 str r1, [fp, #-8]
1238 struct cmd *cmd;
1239
1240 if(!peek(ps, es, "("))
1241 1278: e51b0004 ldr r0, [fp, #-4]
1242 127c: e51b1008 ldr r1, [fp, #-8]
1243 1280: e59fc0c8 ldr ip, [pc, #200] ; 1350 <parseblock+0xf4>
1244 1284: e50b2010 str r2, [fp, #-16]
1245 1288: e1a0200c mov r2, ip
1246 128c: e58d3014 str r3, [sp, #20]
1247 1290: ebfffe20 bl b18 <peek>
1248 1294: e3500000 cmp r0, #0
1249 1298: 1a000003 bne 12ac <parseblock+0x50>
1250 129c: eaffffff b 12a0 <parseblock+0x44>
1251 panic("parseblock");
1252 12a0: e59f00ac ldr r0, [pc, #172] ; 1354 <parseblock+0xf8>
1253 12a4: ebfffc0d bl 2e0 <panic>
1254 12a8: eaffffff b 12ac <parseblock+0x50>
1255 gettoken(ps, es, 0, 0);
1256 12ac: e51b0004 ldr r0, [fp, #-4]
1257 12b0: e51b1008 ldr r1, [fp, #-8]
1258 12b4: e3a02000 mov r2, #0
1259 12b8: e58d2010 str r2, [sp, #16]
1260 12bc: e59d3010 ldr r3, [sp, #16]
1261 12c0: ebfffd62 bl 850 <gettoken>
1262 cmd = parseline(ps, es);
1263 12c4: e51b1004 ldr r1, [fp, #-4]
1264 12c8: e51b2008 ldr r2, [fp, #-8]
1265 12cc: e58d000c str r0, [sp, #12]
1266 12d0: e1a00001 mov r0, r1
1267 12d4: e1a01002 mov r1, r2
1268 12d8: ebfffe4c bl c10 <parseline>
1269 12dc: e50b000c str r0, [fp, #-12]
1270 if(!peek(ps, es, ")"))
1271 12e0: e51b0004 ldr r0, [fp, #-4]
1272 12e4: e51b1008 ldr r1, [fp, #-8]
1273 12e8: e59f2068 ldr r2, [pc, #104] ; 1358 <parseblock+0xfc>
1274 12ec: ebfffe09 bl b18 <peek>
1275 12f0: e3500000 cmp r0, #0
1276 12f4: 1a000003 bne 1308 <parseblock+0xac>
1277 12f8: eaffffff b 12fc <parseblock+0xa0>
1278 panic("syntax - missing )");
1279 12fc: e59f0058 ldr r0, [pc, #88] ; 135c <parseblock+0x100>
1280 1300: ebfffbf6 bl 2e0 <panic>
1281 1304: eaffffff b 1308 <parseblock+0xac>
1282 gettoken(ps, es, 0, 0);
1283 1308: e51b0004 ldr r0, [fp, #-4]
1284 130c: e51b1008 ldr r1, [fp, #-8]
1285 1310: e3a02000 mov r2, #0
1286 1314: e58d2008 str r2, [sp, #8]
1287 1318: e59d3008 ldr r3, [sp, #8]
1288 131c: ebfffd4b bl 850 <gettoken>
1289 cmd = parseredirs(cmd, ps, es);
1290 1320: e51b100c ldr r1, [fp, #-12]
1291 1324: e51b2004 ldr r2, [fp, #-4]
1292 1328: e51b3008 ldr r3, [fp, #-8]
1293 132c: e58d0004 str r0, [sp, #4]
1294 1330: e1a00001 mov r0, r1
1295 1334: e1a01002 mov r1, r2
1296 1338: e1a02003 mov r2, r3
1297 133c: ebffff6d bl 10f8 <parseredirs>
1298 1340: e50b000c str r0, [fp, #-12]
1299 return cmd;
1300 1344: e51b000c ldr r0, [fp, #-12]
1301 1348: e1a0d00b mov sp, fp
1302 134c: e8bd8800 pop {fp, pc}
1303 1350: 00002560 .word 0x00002560
1304 1354: 00002562 .word 0x00002562
1305 1358: 0000257e .word 0x0000257e
1306 135c: 0000256d .word 0x0000256d
1307
1308 00001360 <strcpy>:
1309 #include "fcntl.h"
1310 #include "user.h"
1311
1312 char*
1313 strcpy(char *s, char *t)
1314 {
1315 1360: e24dd014 sub sp, sp, #20
1316 1364: e1a02001 mov r2, r1
1317 1368: e1a03000 mov r3, r0
1318 136c: e58d0010 str r0, [sp, #16]
1319 1370: e58d100c str r1, [sp, #12]
1320 1374: e59d0010 ldr r0, [sp, #16]
1321 1378: e58d0008 str r0, [sp, #8]
1322 137c: e58d2004 str r2, [sp, #4]
1323 1380: e58d3000 str r3, [sp]
1324 1384: eaffffff b 1388 <strcpy+0x28>
1325 1388: e59d000c ldr r0, [sp, #12]
1326 138c: e2801001 add r1, r0, #1
1327 1390: e58d100c str r1, [sp, #12]
1328 1394: e5d00000 ldrb r0, [r0]
1329 1398: e59d1010 ldr r1, [sp, #16]
1330 139c: e2812001 add r2, r1, #1
1331 13a0: e58d2010 str r2, [sp, #16]
1332 13a4: e5c10000 strb r0, [r1]
1333 13a8: e3500000 cmp r0, #0
1334 13ac: 0a000001 beq 13b8 <strcpy+0x58>
1335 13b0: eaffffff b 13b4 <strcpy+0x54>
1336 13b4: eafffff3 b 1388 <strcpy+0x28>
1337 13b8: e59d0008 ldr r0, [sp, #8]
1338 13bc: e28dd014 add sp, sp, #20
1339 13c0: e12fff1e bx lr
1340
1341 000013c4 <strcmp>:
1342 13c4: e24dd014 sub sp, sp, #20
1343 13c8: e1a02001 mov r2, r1
1344 13cc: e1a03000 mov r3, r0
1345 13d0: e58d0010 str r0, [sp, #16]
1346 13d4: e58d100c str r1, [sp, #12]
1347 13d8: e58d2008 str r2, [sp, #8]
1348 13dc: e58d3004 str r3, [sp, #4]
1349 13e0: eaffffff b 13e4 <strcmp+0x20>
1350 13e4: e59d0010 ldr r0, [sp, #16]
1351 13e8: e5d00000 ldrb r0, [r0]
1352 13ec: e3a01000 mov r1, #0
1353 13f0: e3500000 cmp r0, #0
1354 13f4: e58d1000 str r1, [sp]
1355 13f8: 0a000009 beq 1424 <strcmp+0x60>
1356 13fc: eaffffff b 1400 <strcmp+0x3c>
1357 1400: e59d0010 ldr r0, [sp, #16]
1358 1404: e5d00000 ldrb r0, [r0]
1359 1408: e59d100c ldr r1, [sp, #12]
1360 140c: e5d11000 ldrb r1, [r1]
1361 1410: e3a02000 mov r2, #0
1362 1414: e1500001 cmp r0, r1
1363 1418: 03a02001 moveq r2, #1
1364 141c: e58d2000 str r2, [sp]
1365 1420: eaffffff b 1424 <strcmp+0x60>
1366 1424: e59d0000 ldr r0, [sp]
1367 1428: e3100001 tst r0, #1
1368 142c: 0a000007 beq 1450 <strcmp+0x8c>
1369 1430: eaffffff b 1434 <strcmp+0x70>
1370 1434: e59d0010 ldr r0, [sp, #16]
1371 1438: e2800001 add r0, r0, #1
1372 143c: e58d0010 str r0, [sp, #16]
1373 1440: e59d000c ldr r0, [sp, #12]
1374 1444: e2800001 add r0, r0, #1
1375 1448: e58d000c str r0, [sp, #12]
1376 144c: eaffffe4 b 13e4 <strcmp+0x20>
1377 1450: e59d0010 ldr r0, [sp, #16]
1378 1454: e5d00000 ldrb r0, [r0]
1379 1458: e59d100c ldr r1, [sp, #12]
1380 145c: e5d11000 ldrb r1, [r1]
1381 1460: e0400001 sub r0, r0, r1
1382 1464: e28dd014 add sp, sp, #20
1383 1468: e12fff1e bx lr
1384
1385 0000146c <strlen>:
1386 146c: e24dd00c sub sp, sp, #12
1387 1470: e1a01000 mov r1, r0
1388 1474: e58d0008 str r0, [sp, #8]
1389 1478: e3a00000 mov r0, #0
1390 147c: e58d0004 str r0, [sp, #4]
1391 1480: e58d1000 str r1, [sp]
1392 1484: eaffffff b 1488 <strlen+0x1c>
1393 1488: e59d0008 ldr r0, [sp, #8]
1394 148c: e59d1004 ldr r1, [sp, #4]
1395 1490: e7d00001 ldrb r0, [r0, r1]
1396 1494: e3500000 cmp r0, #0
1397 1498: 0a000005 beq 14b4 <strlen+0x48>
1398 149c: eaffffff b 14a0 <strlen+0x34>
1399 14a0: eaffffff b 14a4 <strlen+0x38>
1400 14a4: e59d0004 ldr r0, [sp, #4]
1401 14a8: e2800001 add r0, r0, #1
1402 14ac: e58d0004 str r0, [sp, #4]
1403 14b0: eafffff4 b 1488 <strlen+0x1c>
1404 14b4: e59d0004 ldr r0, [sp, #4]
1405 14b8: e28dd00c add sp, sp, #12
1406 14bc: e12fff1e bx lr
1407
1408 000014c0 <memset>:
1409 14c0: e92d4800 push {fp, lr}
1410 14c4: e1a0b00d mov fp, sp
1411 14c8: e24dd02c sub sp, sp, #44 ; 0x2c
1412 14cc: e1a03002 mov r3, r2
1413 14d0: e1a0c001 mov ip, r1
1414 14d4: e1a0e000 mov lr, r0
1415 14d8: e50b0004 str r0, [fp, #-4]
1416 14dc: e50b1008 str r1, [fp, #-8]
1417 14e0: e50b200c str r2, [fp, #-12]
1418 14e4: e51b0004 ldr r0, [fp, #-4]
1419 14e8: e50b0010 str r0, [fp, #-16]
1420 14ec: e51b0008 ldr r0, [fp, #-8]
1421 14f0: e54b0011 strb r0, [fp, #-17] ; 0xffffffef
1422 14f4: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
1423 14f8: e1a01c00 lsl r1, r0, #24
1424 14fc: e1811800 orr r1, r1, r0, lsl #16
1425 1500: e1811400 orr r1, r1, r0, lsl #8
1426 1504: e1810000 orr r0, r1, r0
1427 1508: e58d0014 str r0, [sp, #20]
1428 150c: e58d300c str r3, [sp, #12]
1429 1510: e58dc008 str ip, [sp, #8]
1430 1514: e58de004 str lr, [sp, #4]
1431 1518: eaffffff b 151c <memset+0x5c>
1432 151c: e51b000c ldr r0, [fp, #-12]
1433 1520: e3a01000 mov r1, #0
1434 1524: e3500000 cmp r0, #0
1435 1528: e58d1000 str r1, [sp]
1436 152c: 0a000006 beq 154c <memset+0x8c>
1437 1530: eaffffff b 1534 <memset+0x74>
1438 1534: e55b0010 ldrb r0, [fp, #-16]
1439 1538: e2000003 and r0, r0, #3
1440 153c: e3500000 cmp r0, #0
1441 1540: 13a00001 movne r0, #1
1442 1544: e58d0000 str r0, [sp]
1443 1548: eaffffff b 154c <memset+0x8c>
1444 154c: e59d0000 ldr r0, [sp]
1445 1550: e3100001 tst r0, #1
1446 1554: 0a00000b beq 1588 <memset+0xc8>
1447 1558: eaffffff b 155c <memset+0x9c>
1448 155c: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
1449 1560: e51b1010 ldr r1, [fp, #-16]
1450 1564: e5c10000 strb r0, [r1]
1451 1568: eaffffff b 156c <memset+0xac>
1452 156c: e51b000c ldr r0, [fp, #-12]
1453 1570: e2400001 sub r0, r0, #1
1454 1574: e50b000c str r0, [fp, #-12]
1455 1578: e51b0010 ldr r0, [fp, #-16]
1456 157c: e2800001 add r0, r0, #1
1457 1580: e50b0010 str r0, [fp, #-16]
1458 1584: eaffffe4 b 151c <memset+0x5c>
1459 1588: e51b0010 ldr r0, [fp, #-16]
1460 158c: e58d0010 str r0, [sp, #16]
1461 1590: eaffffff b 1594 <memset+0xd4>
1462 1594: e51b000c ldr r0, [fp, #-12]
1463 1598: e3500004 cmp r0, #4
1464 159c: 3a00000b bcc 15d0 <memset+0x110>
1465 15a0: eaffffff b 15a4 <memset+0xe4>
1466 15a4: e59d0014 ldr r0, [sp, #20]
1467 15a8: e59d1010 ldr r1, [sp, #16]
1468 15ac: e5810000 str r0, [r1]
1469 15b0: eaffffff b 15b4 <memset+0xf4>
1470 15b4: e51b000c ldr r0, [fp, #-12]
1471 15b8: e2400004 sub r0, r0, #4
1472 15bc: e50b000c str r0, [fp, #-12]
1473 15c0: e59d0010 ldr r0, [sp, #16]
1474 15c4: e2800004 add r0, r0, #4
1475 15c8: e58d0010 str r0, [sp, #16]
1476 15cc: eafffff0 b 1594 <memset+0xd4>
1477 15d0: e59d0010 ldr r0, [sp, #16]
1478 15d4: e50b0010 str r0, [fp, #-16]
1479 15d8: eaffffff b 15dc <memset+0x11c>
1480 15dc: e51b000c ldr r0, [fp, #-12]
1481 15e0: e3500000 cmp r0, #0
1482 15e4: 0a00000b beq 1618 <memset+0x158>
1483 15e8: eaffffff b 15ec <memset+0x12c>
1484 15ec: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
1485 15f0: e51b1010 ldr r1, [fp, #-16]
1486 15f4: e5c10000 strb r0, [r1]
1487 15f8: eaffffff b 15fc <memset+0x13c>
1488 15fc: e51b000c ldr r0, [fp, #-12]
1489 1600: e2400001 sub r0, r0, #1
1490 1604: e50b000c str r0, [fp, #-12]
1491 1608: e51b0010 ldr r0, [fp, #-16]
1492 160c: e2800001 add r0, r0, #1
1493 1610: e50b0010 str r0, [fp, #-16]
1494 1614: eafffff0 b 15dc <memset+0x11c>
1495 1618: e51b0004 ldr r0, [fp, #-4]
1496 161c: e1a0d00b mov sp, fp
1497 1620: e8bd8800 pop {fp, pc}
1498
1499 00001624 <strchr>:
1500 1624: e24dd014 sub sp, sp, #20
1501 1628: e1a02001 mov r2, r1
1502 162c: e1a03000 mov r3, r0
1503 1630: e58d000c str r0, [sp, #12]
1504 1634: e5cd100b strb r1, [sp, #11]
1505 1638: e58d2004 str r2, [sp, #4]
1506 163c: e58d3000 str r3, [sp]
1507 1640: eaffffff b 1644 <strchr+0x20>
1508 1644: e59d000c ldr r0, [sp, #12]
1509 1648: e5d00000 ldrb r0, [r0]
1510 164c: e3500000 cmp r0, #0
1511 1650: 0a00000e beq 1690 <strchr+0x6c>
1512 1654: eaffffff b 1658 <strchr+0x34>
1513 1658: e59d000c ldr r0, [sp, #12]
1514 165c: e5d00000 ldrb r0, [r0]
1515 1660: e5dd100b ldrb r1, [sp, #11]
1516 1664: e1500001 cmp r0, r1
1517 1668: 1a000003 bne 167c <strchr+0x58>
1518 166c: eaffffff b 1670 <strchr+0x4c>
1519 1670: e59d000c ldr r0, [sp, #12]
1520 1674: e58d0010 str r0, [sp, #16]
1521 1678: ea000007 b 169c <strchr+0x78>
1522 167c: eaffffff b 1680 <strchr+0x5c>
1523 1680: e59d000c ldr r0, [sp, #12]
1524 1684: e2800001 add r0, r0, #1
1525 1688: e58d000c str r0, [sp, #12]
1526 168c: eaffffec b 1644 <strchr+0x20>
1527 1690: e3a00000 mov r0, #0
1528 1694: e58d0010 str r0, [sp, #16]
1529 1698: eaffffff b 169c <strchr+0x78>
1530 169c: e59d0010 ldr r0, [sp, #16]
1531 16a0: e28dd014 add sp, sp, #20
1532 16a4: e12fff1e bx lr
1533
1534 000016a8 <gets>:
1535 16a8: e92d4800 push {fp, lr}
1536 16ac: e1a0b00d mov fp, sp
1537 16b0: e24dd020 sub sp, sp, #32
1538 16b4: e1a02001 mov r2, r1
1539 16b8: e1a03000 mov r3, r0
1540 16bc: e50b0004 str r0, [fp, #-4]
1541 16c0: e50b1008 str r1, [fp, #-8]
1542 16c4: e3a00000 mov r0, #0
1543 16c8: e50b000c str r0, [fp, #-12]
1544 16cc: e58d2008 str r2, [sp, #8]
1545 16d0: e58d3004 str r3, [sp, #4]
1546 16d4: eaffffff b 16d8 <gets+0x30>
1547 16d8: e51b000c ldr r0, [fp, #-12]
1548 16dc: e2800001 add r0, r0, #1
1549 16e0: e51b1008 ldr r1, [fp, #-8]
1550 16e4: e1500001 cmp r0, r1
1551 16e8: aa00001a bge 1758 <gets+0xb0>
1552 16ec: eaffffff b 16f0 <gets+0x48>
1553 16f0: e3a00000 mov r0, #0
1554 16f4: e28d100f add r1, sp, #15
1555 16f8: e3a02001 mov r2, #1
1556 16fc: eb0000ab bl 19b0 <read>
1557 1700: e58d0010 str r0, [sp, #16]
1558 1704: e59d0010 ldr r0, [sp, #16]
1559 1708: e3500000 cmp r0, #0
1560 170c: ca000001 bgt 1718 <gets+0x70>
1561 1710: eaffffff b 1714 <gets+0x6c>
1562 1714: ea00000f b 1758 <gets+0xb0>
1563 1718: e5dd000f ldrb r0, [sp, #15]
1564 171c: e51b1004 ldr r1, [fp, #-4]
1565 1720: e51b200c ldr r2, [fp, #-12]
1566 1724: e2823001 add r3, r2, #1
1567 1728: e50b300c str r3, [fp, #-12]
1568 172c: e7c10002 strb r0, [r1, r2]
1569 1730: e5dd000f ldrb r0, [sp, #15]
1570 1734: e350000a cmp r0, #10
1571 1738: 0a000004 beq 1750 <gets+0xa8>
1572 173c: eaffffff b 1740 <gets+0x98>
1573 1740: e5dd000f ldrb r0, [sp, #15]
1574 1744: e350000d cmp r0, #13
1575 1748: 1a000001 bne 1754 <gets+0xac>
1576 174c: eaffffff b 1750 <gets+0xa8>
1577 1750: ea000000 b 1758 <gets+0xb0>
1578 1754: eaffffdf b 16d8 <gets+0x30>
1579 1758: e51b0004 ldr r0, [fp, #-4]
1580 175c: e51b100c ldr r1, [fp, #-12]
1581 1760: e3a02000 mov r2, #0
1582 1764: e7c02001 strb r2, [r0, r1]
1583 1768: e51b0004 ldr r0, [fp, #-4]
1584 176c: e1a0d00b mov sp, fp
1585 1770: e8bd8800 pop {fp, pc}
1586
1587 00001774 <stat>:
1588 1774: e92d4800 push {fp, lr}
1589 1778: e1a0b00d mov fp, sp
1590 177c: e24dd020 sub sp, sp, #32
1591 1780: e1a02001 mov r2, r1
1592 1784: e1a03000 mov r3, r0
1593 1788: e50b0008 str r0, [fp, #-8]
1594 178c: e50b100c str r1, [fp, #-12]
1595 1790: e51b0008 ldr r0, [fp, #-8]
1596 1794: e3a01000 mov r1, #0
1597 1798: e58d2008 str r2, [sp, #8]
1598 179c: e58d3004 str r3, [sp, #4]
1599 17a0: eb0000af bl 1a64 <open>
1600 17a4: e58d0010 str r0, [sp, #16]
1601 17a8: e59d0010 ldr r0, [sp, #16]
1602 17ac: e3500000 cmp r0, #0
1603 17b0: aa000003 bge 17c4 <stat+0x50>
1604 17b4: eaffffff b 17b8 <stat+0x44>
1605 17b8: e3e00000 mvn r0, #0
1606 17bc: e50b0004 str r0, [fp, #-4]
1607 17c0: ea000009 b 17ec <stat+0x78>
1608 17c4: e59d0010 ldr r0, [sp, #16]
1609 17c8: e51b100c ldr r1, [fp, #-12]
1610 17cc: eb0000bf bl 1ad0 <fstat>
1611 17d0: e58d000c str r0, [sp, #12]
1612 17d4: e59d0010 ldr r0, [sp, #16]
1613 17d8: eb000086 bl 19f8 <close>
1614 17dc: e59d100c ldr r1, [sp, #12]
1615 17e0: e50b1004 str r1, [fp, #-4]
1616 17e4: e58d0000 str r0, [sp]
1617 17e8: eaffffff b 17ec <stat+0x78>
1618 17ec: e51b0004 ldr r0, [fp, #-4]
1619 17f0: e1a0d00b mov sp, fp
1620 17f4: e8bd8800 pop {fp, pc}
1621
1622 000017f8 <atoi>:
1623 17f8: e24dd010 sub sp, sp, #16
1624 17fc: e1a01000 mov r1, r0
1625 1800: e58d000c str r0, [sp, #12]
1626 1804: e3a00000 mov r0, #0
1627 1808: e58d0008 str r0, [sp, #8]
1628 180c: e58d1004 str r1, [sp, #4]
1629 1810: eaffffff b 1814 <atoi+0x1c>
1630 1814: e59d000c ldr r0, [sp, #12]
1631 1818: e5d00000 ldrb r0, [r0]
1632 181c: e3a01000 mov r1, #0
1633 1820: e3500030 cmp r0, #48 ; 0x30
1634 1824: e58d1000 str r1, [sp]
1635 1828: ba000007 blt 184c <atoi+0x54>
1636 182c: eaffffff b 1830 <atoi+0x38>
1637 1830: e59d000c ldr r0, [sp, #12]
1638 1834: e5d00000 ldrb r0, [r0]
1639 1838: e3a01000 mov r1, #0
1640 183c: e350003a cmp r0, #58 ; 0x3a
1641 1840: b3a01001 movlt r1, #1
1642 1844: e58d1000 str r1, [sp]
1643 1848: eaffffff b 184c <atoi+0x54>
1644 184c: e59d0000 ldr r0, [sp]
1645 1850: e3100001 tst r0, #1
1646 1854: 0a00000a beq 1884 <atoi+0x8c>
1647 1858: eaffffff b 185c <atoi+0x64>
1648 185c: e59d0008 ldr r0, [sp, #8]
1649 1860: e0800100 add r0, r0, r0, lsl #2
1650 1864: e59d100c ldr r1, [sp, #12]
1651 1868: e2812001 add r2, r1, #1
1652 186c: e58d200c str r2, [sp, #12]
1653 1870: e5d11000 ldrb r1, [r1]
1654 1874: e0810080 add r0, r1, r0, lsl #1
1655 1878: e2400030 sub r0, r0, #48 ; 0x30
1656 187c: e58d0008 str r0, [sp, #8]
1657 1880: eaffffe3 b 1814 <atoi+0x1c>
1658 1884: e59d0008 ldr r0, [sp, #8]
1659 1888: e28dd010 add sp, sp, #16
1660 188c: e12fff1e bx lr
1661
1662 00001890 <memmove>:
1663 1890: e92d4800 push {fp, lr}
1664 1894: e1a0b00d mov fp, sp
1665 1898: e24dd020 sub sp, sp, #32
1666 189c: e1a03002 mov r3, r2
1667 18a0: e1a0c001 mov ip, r1
1668 18a4: e1a0e000 mov lr, r0
1669 18a8: e50b0004 str r0, [fp, #-4]
1670 18ac: e50b1008 str r1, [fp, #-8]
1671 18b0: e50b200c str r2, [fp, #-12]
1672 18b4: e51b0004 ldr r0, [fp, #-4]
1673 18b8: e58d0010 str r0, [sp, #16]
1674 18bc: e51b0008 ldr r0, [fp, #-8]
1675 18c0: e58d000c str r0, [sp, #12]
1676 18c4: e58d3008 str r3, [sp, #8]
1677 18c8: e58dc004 str ip, [sp, #4]
1678 18cc: e58de000 str lr, [sp]
1679 18d0: eaffffff b 18d4 <memmove+0x44>
1680 18d4: e51b000c ldr r0, [fp, #-12]
1681 18d8: e2401001 sub r1, r0, #1
1682 18dc: e50b100c str r1, [fp, #-12]
1683 18e0: e3500001 cmp r0, #1
1684 18e4: ba000009 blt 1910 <memmove+0x80>
1685 18e8: eaffffff b 18ec <memmove+0x5c>
1686 18ec: e59d000c ldr r0, [sp, #12]
1687 18f0: e2801001 add r1, r0, #1
1688 18f4: e58d100c str r1, [sp, #12]
1689 18f8: e5d00000 ldrb r0, [r0]
1690 18fc: e59d1010 ldr r1, [sp, #16]
1691 1900: e2812001 add r2, r1, #1
1692 1904: e58d2010 str r2, [sp, #16]
1693 1908: e5c10000 strb r0, [r1]
1694 190c: eafffff0 b 18d4 <memmove+0x44>
1695 1910: e51b0004 ldr r0, [fp, #-4]
1696 1914: e1a0d00b mov sp, fp
1697 1918: e8bd8800 pop {fp, pc}
1698
1699 0000191c <raise>:
1700 return vdst;
1701 }
1702
1703 void
1704 raise()
1705 {}
1706 191c: e12fff1e bx lr
1707
1708 00001920 <fork>:
1709 1920: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1710 1924: e1a04003 mov r4, r3
1711 1928: e1a03002 mov r3, r2
1712 192c: e1a02001 mov r2, r1
1713 1930: e1a01000 mov r1, r0
1714 1934: e3a00001 mov r0, #1
1715 1938: ef000000 svc 0x00000000
1716 193c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1717 1940: e12fff1e bx lr
1718
1719 00001944 <exit>:
1720 1944: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1721 1948: e1a04003 mov r4, r3
1722 194c: e1a03002 mov r3, r2
1723 1950: e1a02001 mov r2, r1
1724 1954: e1a01000 mov r1, r0
1725 1958: e3a00002 mov r0, #2
1726 195c: ef000000 svc 0x00000000
1727 1960: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1728 1964: e12fff1e bx lr
1729
1730 00001968 <wait>:
1731 1968: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1732 196c: e1a04003 mov r4, r3
1733 1970: e1a03002 mov r3, r2
1734 1974: e1a02001 mov r2, r1
1735 1978: e1a01000 mov r1, r0
1736 197c: e3a00003 mov r0, #3
1737 1980: ef000000 svc 0x00000000
1738 1984: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1739 1988: e12fff1e bx lr
1740
1741 0000198c <pipe>:
1742 198c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1743 1990: e1a04003 mov r4, r3
1744 1994: e1a03002 mov r3, r2
1745 1998: e1a02001 mov r2, r1
1746 199c: e1a01000 mov r1, r0
1747 19a0: e3a00004 mov r0, #4
1748 19a4: ef000000 svc 0x00000000
1749 19a8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1750 19ac: e12fff1e bx lr
1751
1752 000019b0 <read>:
1753 19b0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1754 19b4: e1a04003 mov r4, r3
1755 19b8: e1a03002 mov r3, r2
1756 19bc: e1a02001 mov r2, r1
1757 19c0: e1a01000 mov r1, r0
1758 19c4: e3a00005 mov r0, #5
1759 19c8: ef000000 svc 0x00000000
1760 19cc: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1761 19d0: e12fff1e bx lr
1762
1763 000019d4 <write>:
1764 19d4: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1765 19d8: e1a04003 mov r4, r3
1766 19dc: e1a03002 mov r3, r2
1767 19e0: e1a02001 mov r2, r1
1768 19e4: e1a01000 mov r1, r0
1769 19e8: e3a00010 mov r0, #16
1770 19ec: ef000000 svc 0x00000000
1771 19f0: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1772 19f4: e12fff1e bx lr
1773
1774 000019f8 <close>:
1775 19f8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1776 19fc: e1a04003 mov r4, r3
1777 1a00: e1a03002 mov r3, r2
1778 1a04: e1a02001 mov r2, r1
1779 1a08: e1a01000 mov r1, r0
1780 1a0c: e3a00015 mov r0, #21
1781 1a10: ef000000 svc 0x00000000
1782 1a14: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1783 1a18: e12fff1e bx lr
1784
1785 00001a1c <kill>:
1786 1a1c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1787 1a20: e1a04003 mov r4, r3
1788 1a24: e1a03002 mov r3, r2
1789 1a28: e1a02001 mov r2, r1
1790 1a2c: e1a01000 mov r1, r0
1791 1a30: e3a00006 mov r0, #6
1792 1a34: ef000000 svc 0x00000000
1793 1a38: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1794 1a3c: e12fff1e bx lr
1795
1796 00001a40 <exec>:
1797 1a40: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1798 1a44: e1a04003 mov r4, r3
1799 1a48: e1a03002 mov r3, r2
1800 1a4c: e1a02001 mov r2, r1
1801 1a50: e1a01000 mov r1, r0
1802 1a54: e3a00007 mov r0, #7
1803 1a58: ef000000 svc 0x00000000
1804 1a5c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1805 1a60: e12fff1e bx lr
1806
1807 00001a64 <open>:
1808 1a64: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1809 1a68: e1a04003 mov r4, r3
1810 1a6c: e1a03002 mov r3, r2
1811 1a70: e1a02001 mov r2, r1
1812 1a74: e1a01000 mov r1, r0
1813 1a78: e3a0000f mov r0, #15
1814 1a7c: ef000000 svc 0x00000000
1815 1a80: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1816 1a84: e12fff1e bx lr
1817
1818 00001a88 <mknod>:
1819 1a88: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1820 1a8c: e1a04003 mov r4, r3
1821 1a90: e1a03002 mov r3, r2
1822 1a94: e1a02001 mov r2, r1
1823 1a98: e1a01000 mov r1, r0
1824 1a9c: e3a00011 mov r0, #17
1825 1aa0: ef000000 svc 0x00000000
1826 1aa4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1827 1aa8: e12fff1e bx lr
1828
1829 00001aac <unlink>:
1830 1aac: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1831 1ab0: e1a04003 mov r4, r3
1832 1ab4: e1a03002 mov r3, r2
1833 1ab8: e1a02001 mov r2, r1
1834 1abc: e1a01000 mov r1, r0
1835 1ac0: e3a00012 mov r0, #18
1836 1ac4: ef000000 svc 0x00000000
1837 1ac8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1838 1acc: e12fff1e bx lr
1839
1840 00001ad0 <fstat>:
1841 1ad0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1842 1ad4: e1a04003 mov r4, r3
1843 1ad8: e1a03002 mov r3, r2
1844 1adc: e1a02001 mov r2, r1
1845 1ae0: e1a01000 mov r1, r0
1846 1ae4: e3a00008 mov r0, #8
1847 1ae8: ef000000 svc 0x00000000
1848 1aec: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1849 1af0: e12fff1e bx lr
1850
1851 00001af4 <link>:
1852 1af4: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1853 1af8: e1a04003 mov r4, r3
1854 1afc: e1a03002 mov r3, r2
1855 1b00: e1a02001 mov r2, r1
1856 1b04: e1a01000 mov r1, r0
1857 1b08: e3a00013 mov r0, #19
1858 1b0c: ef000000 svc 0x00000000
1859 1b10: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1860 1b14: e12fff1e bx lr
1861
1862 00001b18 <mkdir>:
1863 1b18: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1864 1b1c: e1a04003 mov r4, r3
1865 1b20: e1a03002 mov r3, r2
1866 1b24: e1a02001 mov r2, r1
1867 1b28: e1a01000 mov r1, r0
1868 1b2c: e3a00014 mov r0, #20
1869 1b30: ef000000 svc 0x00000000
1870 1b34: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1871 1b38: e12fff1e bx lr
1872
1873 00001b3c <chdir>:
1874 1b3c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1875 1b40: e1a04003 mov r4, r3
1876 1b44: e1a03002 mov r3, r2
1877 1b48: e1a02001 mov r2, r1
1878 1b4c: e1a01000 mov r1, r0
1879 1b50: e3a00009 mov r0, #9
1880 1b54: ef000000 svc 0x00000000
1881 1b58: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1882 1b5c: e12fff1e bx lr
1883
1884 00001b60 <dup>:
1885 1b60: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1886 1b64: e1a04003 mov r4, r3
1887 1b68: e1a03002 mov r3, r2
1888 1b6c: e1a02001 mov r2, r1
1889 1b70: e1a01000 mov r1, r0
1890 1b74: e3a0000a mov r0, #10
1891 1b78: ef000000 svc 0x00000000
1892 1b7c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1893 1b80: e12fff1e bx lr
1894
1895 00001b84 <getpid>:
1896 1b84: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1897 1b88: e1a04003 mov r4, r3
1898 1b8c: e1a03002 mov r3, r2
1899 1b90: e1a02001 mov r2, r1
1900 1b94: e1a01000 mov r1, r0
1901 1b98: e3a0000b mov r0, #11
1902 1b9c: ef000000 svc 0x00000000
1903 1ba0: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1904 1ba4: e12fff1e bx lr
1905
1906 00001ba8 <sbrk>:
1907 1ba8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1908 1bac: e1a04003 mov r4, r3
1909 1bb0: e1a03002 mov r3, r2
1910 1bb4: e1a02001 mov r2, r1
1911 1bb8: e1a01000 mov r1, r0
1912 1bbc: e3a0000c mov r0, #12
1913 1bc0: ef000000 svc 0x00000000
1914 1bc4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1915 1bc8: e12fff1e bx lr
1916
1917 00001bcc <sleep>:
1918 1bcc: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1919 1bd0: e1a04003 mov r4, r3
1920 1bd4: e1a03002 mov r3, r2
1921 1bd8: e1a02001 mov r2, r1
1922 1bdc: e1a01000 mov r1, r0
1923 1be0: e3a0000d mov r0, #13
1924 1be4: ef000000 svc 0x00000000
1925 1be8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1926 1bec: e12fff1e bx lr
1927
1928 00001bf0 <uptime>:
1929 1bf0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
1930 1bf4: e1a04003 mov r4, r3
1931 1bf8: e1a03002 mov r3, r2
1932 1bfc: e1a02001 mov r2, r1
1933 1c00: e1a01000 mov r1, r0
1934 1c04: e3a0000e mov r0, #14
1935 1c08: ef000000 svc 0x00000000
1936 1c0c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
1937 1c10: e12fff1e bx lr
1938
1939 00001c14 <printf>:
1940 }
1941
1942 // Print to the given fd. Only understands %d, %x, %p, %s.
1943 void
1944 printf(int fd, char *fmt, ...)
1945 {
1946 1c14: e92d4800 push {fp, lr}
1947 1c18: e1a0b00d mov fp, sp
1948 1c1c: e24dd028 sub sp, sp, #40 ; 0x28
1949 1c20: e1a02001 mov r2, r1
1950 1c24: e1a03000 mov r3, r0
1951 1c28: e50b0004 str r0, [fp, #-4]
1952 1c2c: e50b1008 str r1, [fp, #-8]
1953 1c30: e3a00000 mov r0, #0
1954 1c34: e58d0010 str r0, [sp, #16]
1955 1c38: e24b1008 sub r1, fp, #8
1956 1c3c: e2811004 add r1, r1, #4
1957 1c40: e58d100c str r1, [sp, #12]
1958 1c44: e58d0014 str r0, [sp, #20]
1959 1c48: e58d2008 str r2, [sp, #8]
1960 1c4c: e58d3004 str r3, [sp, #4]
1961 1c50: eaffffff b 1c54 <printf+0x40>
1962 1c54: e51b0008 ldr r0, [fp, #-8]
1963 1c58: e59d1014 ldr r1, [sp, #20]
1964 1c5c: e7d00001 ldrb r0, [r0, r1]
1965 1c60: e3500000 cmp r0, #0
1966 1c64: 0a00007e beq 1e64 <printf+0x250>
1967 1c68: eaffffff b 1c6c <printf+0x58>
1968 1c6c: e51b0008 ldr r0, [fp, #-8]
1969 1c70: e59d1014 ldr r1, [sp, #20]
1970 1c74: e7d00001 ldrb r0, [r0, r1]
1971 1c78: e50b0010 str r0, [fp, #-16]
1972 1c7c: e59d0010 ldr r0, [sp, #16]
1973 1c80: e3500000 cmp r0, #0
1974 1c84: 1a00000c bne 1cbc <printf+0xa8>
1975 1c88: eaffffff b 1c8c <printf+0x78>
1976 1c8c: e51b0010 ldr r0, [fp, #-16]
1977 1c90: e3500025 cmp r0, #37 ; 0x25
1978 1c94: 1a000003 bne 1ca8 <printf+0x94>
1979 1c98: eaffffff b 1c9c <printf+0x88>
1980 1c9c: e3a00025 mov r0, #37 ; 0x25
1981 1ca0: e58d0010 str r0, [sp, #16]
1982 1ca4: ea000003 b 1cb8 <printf+0xa4>
1983 1ca8: e51b0004 ldr r0, [fp, #-4]
1984 1cac: e55b1010 ldrb r1, [fp, #-16]
1985 1cb0: eb00006e bl 1e70 <putc>
1986 1cb4: eaffffff b 1cb8 <printf+0xa4>
1987 1cb8: ea000064 b 1e50 <printf+0x23c>
1988 1cbc: e59d0010 ldr r0, [sp, #16]
1989 1cc0: e3500025 cmp r0, #37 ; 0x25
1990 1cc4: 1a000060 bne 1e4c <printf+0x238>
1991 1cc8: eaffffff b 1ccc <printf+0xb8>
1992 1ccc: e51b0010 ldr r0, [fp, #-16]
1993 1cd0: e3500064 cmp r0, #100 ; 0x64
1994 1cd4: 1a00000a bne 1d04 <printf+0xf0>
1995 1cd8: eaffffff b 1cdc <printf+0xc8>
1996 1cdc: e51b0004 ldr r0, [fp, #-4]
1997 1ce0: e59d100c ldr r1, [sp, #12]
1998 1ce4: e5911000 ldr r1, [r1]
1999 1ce8: e3a0200a mov r2, #10
2000 1cec: e3a03001 mov r3, #1
2001 1cf0: eb00006f bl 1eb4 <printint>
2002 1cf4: e59d000c ldr r0, [sp, #12]
2003 1cf8: e2800004 add r0, r0, #4
2004 1cfc: e58d000c str r0, [sp, #12]
2005 1d00: ea00004e b 1e40 <printf+0x22c>
2006 1d04: e51b0010 ldr r0, [fp, #-16]
2007 1d08: e3500078 cmp r0, #120 ; 0x78
2008 1d0c: 0a000004 beq 1d24 <printf+0x110>
2009 1d10: eaffffff b 1d14 <printf+0x100>
2010 1d14: e51b0010 ldr r0, [fp, #-16]
2011 1d18: e3500070 cmp r0, #112 ; 0x70
2012 1d1c: 1a00000a bne 1d4c <printf+0x138>
2013 1d20: eaffffff b 1d24 <printf+0x110>
2014 1d24: e51b0004 ldr r0, [fp, #-4]
2015 1d28: e59d100c ldr r1, [sp, #12]
2016 1d2c: e5911000 ldr r1, [r1]
2017 1d30: e3a02010 mov r2, #16
2018 1d34: e3a03000 mov r3, #0
2019 1d38: eb00005d bl 1eb4 <printint>
2020 1d3c: e59d000c ldr r0, [sp, #12]
2021 1d40: e2800004 add r0, r0, #4
2022 1d44: e58d000c str r0, [sp, #12]
2023 1d48: ea00003b b 1e3c <printf+0x228>
2024 1d4c: e51b0010 ldr r0, [fp, #-16]
2025 1d50: e3500073 cmp r0, #115 ; 0x73
2026 1d54: 1a00001a bne 1dc4 <printf+0x1b0>
2027 1d58: eaffffff b 1d5c <printf+0x148>
2028 1d5c: e59d000c ldr r0, [sp, #12]
2029 1d60: e4901004 ldr r1, [r0], #4
2030 1d64: e50b100c str r1, [fp, #-12]
2031 1d68: e58d000c str r0, [sp, #12]
2032 1d6c: e51b000c ldr r0, [fp, #-12]
2033 1d70: e3500000 cmp r0, #0
2034 1d74: 1a000003 bne 1d88 <printf+0x174>
2035 1d78: eaffffff b 1d7c <printf+0x168>
2036 1d7c: e59f00e8 ldr r0, [pc, #232] ; 1e6c <printf+0x258>
2037 1d80: e50b000c str r0, [fp, #-12]
2038 1d84: eaffffff b 1d88 <printf+0x174>
2039 1d88: eaffffff b 1d8c <printf+0x178>
2040 1d8c: e51b000c ldr r0, [fp, #-12]
2041 1d90: e5d00000 ldrb r0, [r0]
2042 1d94: e3500000 cmp r0, #0
2043 1d98: 0a000008 beq 1dc0 <printf+0x1ac>
2044 1d9c: eaffffff b 1da0 <printf+0x18c>
2045 1da0: e51b0004 ldr r0, [fp, #-4]
2046 1da4: e51b100c ldr r1, [fp, #-12]
2047 1da8: e5d11000 ldrb r1, [r1]
2048 1dac: eb00002f bl 1e70 <putc>
2049 1db0: e51b000c ldr r0, [fp, #-12]
2050 1db4: e2800001 add r0, r0, #1
2051 1db8: e50b000c str r0, [fp, #-12]
2052 1dbc: eafffff2 b 1d8c <printf+0x178>
2053 1dc0: ea00001c b 1e38 <printf+0x224>
2054 1dc4: e51b0010 ldr r0, [fp, #-16]
2055 1dc8: e3500063 cmp r0, #99 ; 0x63
2056 1dcc: 1a000008 bne 1df4 <printf+0x1e0>
2057 1dd0: eaffffff b 1dd4 <printf+0x1c0>
2058 1dd4: e51b0004 ldr r0, [fp, #-4]
2059 1dd8: e59d100c ldr r1, [sp, #12]
2060 1ddc: e5d11000 ldrb r1, [r1]
2061 1de0: eb000022 bl 1e70 <putc>
2062 1de4: e59d000c ldr r0, [sp, #12]
2063 1de8: e2800004 add r0, r0, #4
2064 1dec: e58d000c str r0, [sp, #12]
2065 1df0: ea00000f b 1e34 <printf+0x220>
2066 1df4: e51b0010 ldr r0, [fp, #-16]
2067 1df8: e3500025 cmp r0, #37 ; 0x25
2068 1dfc: 1a000004 bne 1e14 <printf+0x200>
2069 1e00: eaffffff b 1e04 <printf+0x1f0>
2070 1e04: e51b0004 ldr r0, [fp, #-4]
2071 1e08: e55b1010 ldrb r1, [fp, #-16]
2072 1e0c: eb000017 bl 1e70 <putc>
2073 1e10: ea000006 b 1e30 <printf+0x21c>
2074 1e14: e51b0004 ldr r0, [fp, #-4]
2075 1e18: e3a01025 mov r1, #37 ; 0x25
2076 1e1c: eb000013 bl 1e70 <putc>
2077 1e20: e51b0004 ldr r0, [fp, #-4]
2078 1e24: e55b1010 ldrb r1, [fp, #-16]
2079 1e28: eb000010 bl 1e70 <putc>
2080 1e2c: eaffffff b 1e30 <printf+0x21c>
2081 1e30: eaffffff b 1e34 <printf+0x220>
2082 1e34: eaffffff b 1e38 <printf+0x224>
2083 1e38: eaffffff b 1e3c <printf+0x228>
2084 1e3c: eaffffff b 1e40 <printf+0x22c>
2085 1e40: e3a00000 mov r0, #0
2086 1e44: e58d0010 str r0, [sp, #16]
2087 1e48: eaffffff b 1e4c <printf+0x238>
2088 1e4c: eaffffff b 1e50 <printf+0x23c>
2089 1e50: eaffffff b 1e54 <printf+0x240>
2090 1e54: e59d0014 ldr r0, [sp, #20]
2091 1e58: e2800001 add r0, r0, #1
2092 1e5c: e58d0014 str r0, [sp, #20]
2093 1e60: eaffff7b b 1c54 <printf+0x40>
2094 1e64: e1a0d00b mov sp, fp
2095 1e68: e8bd8800 pop {fp, pc}
2096 1e6c: 00002593 .word 0x00002593
2097
2098 00001e70 <putc>:
2099 {
2100 1e70: e92d4800 push {fp, lr}
2101 1e74: e1a0b00d mov fp, sp
2102 1e78: e24dd018 sub sp, sp, #24
2103 1e7c: e1a02001 mov r2, r1
2104 1e80: e1a03000 mov r3, r0
2105 1e84: e50b0004 str r0, [fp, #-4]
2106 1e88: e54b1005 strb r1, [fp, #-5]
2107 write(fd, &c, 1);
2108 1e8c: e51b0004 ldr r0, [fp, #-4]
2109 1e90: e24b1005 sub r1, fp, #5
2110 1e94: e3a0c001 mov ip, #1
2111 1e98: e58d200c str r2, [sp, #12]
2112 1e9c: e1a0200c mov r2, ip
2113 1ea0: e58d3008 str r3, [sp, #8]
2114 1ea4: ebfffeca bl 19d4 <write>
2115 }
2116 1ea8: e58d0004 str r0, [sp, #4]
2117 1eac: e1a0d00b mov sp, fp
2118 1eb0: e8bd8800 pop {fp, pc}
2119
2120 00001eb4 <printint>:
2121 {
2122 1eb4: e92d4830 push {r4, r5, fp, lr}
2123 1eb8: e28db008 add fp, sp, #8
2124 1ebc: e24dd040 sub sp, sp, #64 ; 0x40
2125 1ec0: e1a0c003 mov ip, r3
2126 1ec4: e1a0e002 mov lr, r2
2127 1ec8: e1a04001 mov r4, r1
2128 1ecc: e1a05000 mov r5, r0
2129 1ed0: e50b000c str r0, [fp, #-12]
2130 1ed4: e50b1010 str r1, [fp, #-16]
2131 1ed8: e50b2014 str r2, [fp, #-20] ; 0xffffffec
2132 1edc: e50b3018 str r3, [fp, #-24] ; 0xffffffe8
2133 1ee0: e3a00000 mov r0, #0
2134 1ee4: e58d0018 str r0, [sp, #24]
2135 1ee8: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8
2136 1eec: e3500000 cmp r0, #0
2137 1ef0: e58dc010 str ip, [sp, #16]
2138 1ef4: e58de00c str lr, [sp, #12]
2139 1ef8: e58d4008 str r4, [sp, #8]
2140 1efc: e58d5004 str r5, [sp, #4]
2141 1f00: 0a00000a beq 1f30 <printint+0x7c>
2142 1f04: eaffffff b 1f08 <printint+0x54>
2143 1f08: e51b0010 ldr r0, [fp, #-16]
2144 1f0c: e3500000 cmp r0, #0
2145 1f10: aa000006 bge 1f30 <printint+0x7c>
2146 1f14: eaffffff b 1f18 <printint+0x64>
2147 1f18: e3a00001 mov r0, #1
2148 1f1c: e58d0018 str r0, [sp, #24]
2149 1f20: e51b0010 ldr r0, [fp, #-16]
2150 1f24: e2600000 rsb r0, r0, #0
2151 1f28: e58d0014 str r0, [sp, #20]
2152 1f2c: ea000002 b 1f3c <printint+0x88>
2153 1f30: e51b0010 ldr r0, [fp, #-16]
2154 1f34: e58d0014 str r0, [sp, #20]
2155 1f38: eaffffff b 1f3c <printint+0x88>
2156 1f3c: e3a00000 mov r0, #0
2157 1f40: e58d001c str r0, [sp, #28]
2158 1f44: eaffffff b 1f48 <printint+0x94>
2159 1f48: e59d0014 ldr r0, [sp, #20]
2160 1f4c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
2161 1f50: eb000158 bl 24b8 <__aeabi_uidivmod>
2162 1f54: e59fe0a0 ldr lr, [pc, #160] ; 1ffc <printint+0x148>
2163 1f58: e7de1001 ldrb r1, [lr, r1]
2164 1f5c: e59de01c ldr lr, [sp, #28]
2165 1f60: e28e2001 add r2, lr, #1
2166 1f64: e58d201c str r2, [sp, #28]
2167 1f68: e28d2020 add r2, sp, #32
2168 1f6c: e7c2100e strb r1, [r2, lr]
2169 1f70: e58d0000 str r0, [sp]
2170 1f74: eaffffff b 1f78 <printint+0xc4>
2171 1f78: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
2172 1f7c: e59d0014 ldr r0, [sp, #20]
2173 1f80: eb00010f bl 23c4 <__aeabi_uidiv>
2174 1f84: e58d0014 str r0, [sp, #20]
2175 1f88: e3500000 cmp r0, #0
2176 1f8c: 1affffed bne 1f48 <printint+0x94>
2177 1f90: eaffffff b 1f94 <printint+0xe0>
2178 1f94: e59d0018 ldr r0, [sp, #24]
2179 1f98: e3500000 cmp r0, #0
2180 1f9c: 0a000007 beq 1fc0 <printint+0x10c>
2181 1fa0: eaffffff b 1fa4 <printint+0xf0>
2182 1fa4: e59d001c ldr r0, [sp, #28]
2183 1fa8: e2801001 add r1, r0, #1
2184 1fac: e58d101c str r1, [sp, #28]
2185 1fb0: e28d1020 add r1, sp, #32
2186 1fb4: e3a0202d mov r2, #45 ; 0x2d
2187 1fb8: e7c12000 strb r2, [r1, r0]
2188 1fbc: eaffffff b 1fc0 <printint+0x10c>
2189 1fc0: eaffffff b 1fc4 <printint+0x110>
2190 1fc4: e59d001c ldr r0, [sp, #28]
2191 1fc8: e2400001 sub r0, r0, #1
2192 1fcc: e58d001c str r0, [sp, #28]
2193 1fd0: e3500000 cmp r0, #0
2194 1fd4: ba000006 blt 1ff4 <printint+0x140>
2195 1fd8: eaffffff b 1fdc <printint+0x128>
2196 1fdc: e51b000c ldr r0, [fp, #-12]
2197 1fe0: e59d101c ldr r1, [sp, #28]
2198 1fe4: e28d2020 add r2, sp, #32
2199 1fe8: e7d21001 ldrb r1, [r2, r1]
2200 1fec: ebffff9f bl 1e70 <putc>
2201 1ff0: eafffff3 b 1fc4 <printint+0x110>
2202 1ff4: e24bd008 sub sp, fp, #8
2203 1ff8: e8bd8830 pop {r4, r5, fp, pc}
2204 1ffc: 000025b2 .word 0x000025b2
2205
2206 00002000 <free>:
2207 static Header base;
2208 static Header *freep;
2209
2210 void
2211 free(void *ap)
2212 {
2213 2000: e24dd014 sub sp, sp, #20
2214 2004: e1a01000 mov r1, r0
2215 2008: e58d0010 str r0, [sp, #16]
2216 200c: e59d0010 ldr r0, [sp, #16]
2217 2010: e2400008 sub r0, r0, #8
2218 2014: e58d000c str r0, [sp, #12]
2219 2018: e59f0188 ldr r0, [pc, #392] ; 21a8 <free+0x1a8>
2220 201c: e5900000 ldr r0, [r0]
2221 2020: e58d0008 str r0, [sp, #8]
2222 2024: e58d1004 str r1, [sp, #4]
2223 2028: eaffffff b 202c <free+0x2c>
2224 202c: e59d000c ldr r0, [sp, #12]
2225 2030: e59d1008 ldr r1, [sp, #8]
2226 2034: e3a02000 mov r2, #0
2227 2038: e1500001 cmp r0, r1
2228 203c: e58d2000 str r2, [sp]
2229 2040: 9a000008 bls 2068 <free+0x68>
2230 2044: eaffffff b 2048 <free+0x48>
2231 2048: e59d000c ldr r0, [sp, #12]
2232 204c: e59d1008 ldr r1, [sp, #8]
2233 2050: e5911000 ldr r1, [r1]
2234 2054: e3a02000 mov r2, #0
2235 2058: e1500001 cmp r0, r1
2236 205c: 33a02001 movcc r2, #1
2237 2060: e58d2000 str r2, [sp]
2238 2064: eaffffff b 2068 <free+0x68>
2239 2068: e59d0000 ldr r0, [sp]
2240 206c: e1e00000 mvn r0, r0
2241 2070: e3100001 tst r0, #1
2242 2074: 0a000016 beq 20d4 <free+0xd4>
2243 2078: eaffffff b 207c <free+0x7c>
2244 207c: e59d0008 ldr r0, [sp, #8]
2245 2080: e5901000 ldr r1, [r0]
2246 2084: e1500001 cmp r0, r1
2247 2088: 3a00000c bcc 20c0 <free+0xc0>
2248 208c: eaffffff b 2090 <free+0x90>
2249 2090: e59d000c ldr r0, [sp, #12]
2250 2094: e59d1008 ldr r1, [sp, #8]
2251 2098: e1500001 cmp r0, r1
2252 209c: 8a000006 bhi 20bc <free+0xbc>
2253 20a0: eaffffff b 20a4 <free+0xa4>
2254 20a4: e59d000c ldr r0, [sp, #12]
2255 20a8: e59d1008 ldr r1, [sp, #8]
2256 20ac: e5911000 ldr r1, [r1]
2257 20b0: e1500001 cmp r0, r1
2258 20b4: 2a000001 bcs 20c0 <free+0xc0>
2259 20b8: eaffffff b 20bc <free+0xbc>
2260 20bc: ea000004 b 20d4 <free+0xd4>
2261 20c0: eaffffff b 20c4 <free+0xc4>
2262 20c4: e59d0008 ldr r0, [sp, #8]
2263 20c8: e5900000 ldr r0, [r0]
2264 20cc: e58d0008 str r0, [sp, #8]
2265 20d0: eaffffd5 b 202c <free+0x2c>
2266 20d4: e59d000c ldr r0, [sp, #12]
2267 20d8: e5901004 ldr r1, [r0, #4]
2268 20dc: e0800181 add r0, r0, r1, lsl #3
2269 20e0: e59d1008 ldr r1, [sp, #8]
2270 20e4: e5911000 ldr r1, [r1]
2271 20e8: e1500001 cmp r0, r1
2272 20ec: 1a00000d bne 2128 <free+0x128>
2273 20f0: eaffffff b 20f4 <free+0xf4>
2274 20f4: e59d0008 ldr r0, [sp, #8]
2275 20f8: e5900000 ldr r0, [r0]
2276 20fc: e5900004 ldr r0, [r0, #4]
2277 2100: e59d100c ldr r1, [sp, #12]
2278 2104: e5912004 ldr r2, [r1, #4]
2279 2108: e0820000 add r0, r2, r0
2280 210c: e5810004 str r0, [r1, #4]
2281 2110: e59d0008 ldr r0, [sp, #8]
2282 2114: e5900000 ldr r0, [r0]
2283 2118: e5900000 ldr r0, [r0]
2284 211c: e59d100c ldr r1, [sp, #12]
2285 2120: e5810000 str r0, [r1]
2286 2124: ea000004 b 213c <free+0x13c>
2287 2128: e59d0008 ldr r0, [sp, #8]
2288 212c: e5900000 ldr r0, [r0]
2289 2130: e59d100c ldr r1, [sp, #12]
2290 2134: e5810000 str r0, [r1]
2291 2138: eaffffff b 213c <free+0x13c>
2292 213c: e59d0008 ldr r0, [sp, #8]
2293 2140: e5901004 ldr r1, [r0, #4]
2294 2144: e0800181 add r0, r0, r1, lsl #3
2295 2148: e59d100c ldr r1, [sp, #12]
2296 214c: e1500001 cmp r0, r1
2297 2150: 1a00000b bne 2184 <free+0x184>
2298 2154: eaffffff b 2158 <free+0x158>
2299 2158: e59d000c ldr r0, [sp, #12]
2300 215c: e5900004 ldr r0, [r0, #4]
2301 2160: e59d1008 ldr r1, [sp, #8]
2302 2164: e5912004 ldr r2, [r1, #4]
2303 2168: e0820000 add r0, r2, r0
2304 216c: e5810004 str r0, [r1, #4]
2305 2170: e59d000c ldr r0, [sp, #12]
2306 2174: e5900000 ldr r0, [r0]
2307 2178: e59d1008 ldr r1, [sp, #8]
2308 217c: e5810000 str r0, [r1]
2309 2180: ea000003 b 2194 <free+0x194>
2310 2184: e59d000c ldr r0, [sp, #12]
2311 2188: e59d1008 ldr r1, [sp, #8]
2312 218c: e5810000 str r0, [r1]
2313 2190: eaffffff b 2194 <free+0x194>
2314 2194: e59d0008 ldr r0, [sp, #8]
2315 2198: e59f1008 ldr r1, [pc, #8] ; 21a8 <free+0x1a8>
2316 219c: e5810000 str r0, [r1]
2317 21a0: e28dd014 add sp, sp, #20
2318 21a4: e12fff1e bx lr
2319 21a8: 00002628 .word 0x00002628
2320
2321 000021ac <malloc>:
2322 21ac: e92d4800 push {fp, lr}
2323 21b0: e1a0b00d mov fp, sp
2324 21b4: e24dd018 sub sp, sp, #24
2325 21b8: e1a01000 mov r1, r0
2326 21bc: e50b0008 str r0, [fp, #-8]
2327 21c0: e51b0008 ldr r0, [fp, #-8]
2328 21c4: e2800007 add r0, r0, #7
2329 21c8: e3a02001 mov r2, #1
2330 21cc: e08201a0 add r0, r2, r0, lsr #3
2331 21d0: e58d0004 str r0, [sp, #4]
2332 21d4: e59f013c ldr r0, [pc, #316] ; 2318 <malloc+0x16c>
2333 21d8: e5900000 ldr r0, [r0]
2334 21dc: e58d0008 str r0, [sp, #8]
2335 21e0: e3500000 cmp r0, #0
2336 21e4: e58d1000 str r1, [sp]
2337 21e8: 1a000008 bne 2210 <malloc+0x64>
2338 21ec: eaffffff b 21f0 <malloc+0x44>
2339 21f0: e59f0124 ldr r0, [pc, #292] ; 231c <malloc+0x170>
2340 21f4: e58d0008 str r0, [sp, #8]
2341 21f8: e59f1118 ldr r1, [pc, #280] ; 2318 <malloc+0x16c>
2342 21fc: e5810000 str r0, [r1]
2343 2200: e5800000 str r0, [r0]
2344 2204: e3a01000 mov r1, #0
2345 2208: e5801004 str r1, [r0, #4]
2346 220c: eaffffff b 2210 <malloc+0x64>
2347 2210: e59d0008 ldr r0, [sp, #8]
2348 2214: e5900000 ldr r0, [r0]
2349 2218: e58d000c str r0, [sp, #12]
2350 221c: eaffffff b 2220 <malloc+0x74>
2351 2220: e59d000c ldr r0, [sp, #12]
2352 2224: e5900004 ldr r0, [r0, #4]
2353 2228: e59d1004 ldr r1, [sp, #4]
2354 222c: e1500001 cmp r0, r1
2355 2230: 3a00001f bcc 22b4 <malloc+0x108>
2356 2234: eaffffff b 2238 <malloc+0x8c>
2357 2238: e59d000c ldr r0, [sp, #12]
2358 223c: e5900004 ldr r0, [r0, #4]
2359 2240: e59d1004 ldr r1, [sp, #4]
2360 2244: e1500001 cmp r0, r1
2361 2248: 1a000005 bne 2264 <malloc+0xb8>
2362 224c: eaffffff b 2250 <malloc+0xa4>
2363 2250: e59d000c ldr r0, [sp, #12]
2364 2254: e5900000 ldr r0, [r0]
2365 2258: e59d1008 ldr r1, [sp, #8]
2366 225c: e5810000 str r0, [r1]
2367 2260: ea00000c b 2298 <malloc+0xec>
2368 2264: e59d0004 ldr r0, [sp, #4]
2369 2268: e59d100c ldr r1, [sp, #12]
2370 226c: e5912004 ldr r2, [r1, #4]
2371 2270: e0420000 sub r0, r2, r0
2372 2274: e5810004 str r0, [r1, #4]
2373 2278: e59d000c ldr r0, [sp, #12]
2374 227c: e5901004 ldr r1, [r0, #4]
2375 2280: e0800181 add r0, r0, r1, lsl #3
2376 2284: e58d000c str r0, [sp, #12]
2377 2288: e59d0004 ldr r0, [sp, #4]
2378 228c: e59d100c ldr r1, [sp, #12]
2379 2290: e5810004 str r0, [r1, #4]
2380 2294: eaffffff b 2298 <malloc+0xec>
2381 2298: e59d0008 ldr r0, [sp, #8]
2382 229c: e59f1074 ldr r1, [pc, #116] ; 2318 <malloc+0x16c>
2383 22a0: e5810000 str r0, [r1]
2384 22a4: e59d000c ldr r0, [sp, #12]
2385 22a8: e2800008 add r0, r0, #8
2386 22ac: e50b0004 str r0, [fp, #-4]
2387 22b0: ea000015 b 230c <malloc+0x160>
2388 22b4: e59d000c ldr r0, [sp, #12]
2389 22b8: e59f1058 ldr r1, [pc, #88] ; 2318 <malloc+0x16c>
2390 22bc: e5911000 ldr r1, [r1]
2391 22c0: e1500001 cmp r0, r1
2392 22c4: 1a00000a bne 22f4 <malloc+0x148>
2393 22c8: eaffffff b 22cc <malloc+0x120>
2394 22cc: e59d0004 ldr r0, [sp, #4]
2395 22d0: eb000012 bl 2320 <morecore>
2396 22d4: e58d000c str r0, [sp, #12]
2397 22d8: e3500000 cmp r0, #0
2398 22dc: 1a000003 bne 22f0 <malloc+0x144>
2399 22e0: eaffffff b 22e4 <malloc+0x138>
2400 22e4: e3a00000 mov r0, #0
2401 22e8: e50b0004 str r0, [fp, #-4]
2402 22ec: ea000006 b 230c <malloc+0x160>
2403 22f0: eaffffff b 22f4 <malloc+0x148>
2404 22f4: eaffffff b 22f8 <malloc+0x14c>
2405 22f8: e59d000c ldr r0, [sp, #12]
2406 22fc: e58d0008 str r0, [sp, #8]
2407 2300: e5900000 ldr r0, [r0]
2408 2304: e58d000c str r0, [sp, #12]
2409 2308: eaffffc4 b 2220 <malloc+0x74>
2410 230c: e51b0004 ldr r0, [fp, #-4]
2411 2310: e1a0d00b mov sp, fp
2412 2314: e8bd8800 pop {fp, pc}
2413 2318: 00002628 .word 0x00002628
2414 231c: 0000262c .word 0x0000262c
2415
2416 00002320 <morecore>:
2417 freep = p;
2418 }
2419
2420 static Header*
2421 morecore(uint nu)
2422 {
2423 2320: e92d4800 push {fp, lr}
2424 2324: e1a0b00d mov fp, sp
2425 2328: e24dd018 sub sp, sp, #24
2426 232c: e1a01000 mov r1, r0
2427 2330: e50b0008 str r0, [fp, #-8]
2428 char *p;
2429 Header *hp;
2430
2431 if(nu < 4096)
2432 2334: e51b0008 ldr r0, [fp, #-8]
2433 2338: e3a02000 mov r2, #0
2434 233c: e1520620 cmp r2, r0, lsr #12
2435 2340: e58d1004 str r1, [sp, #4]
2436 2344: 1a000003 bne 2358 <morecore+0x38>
2437 2348: eaffffff b 234c <morecore+0x2c>
2438 nu = 4096;
2439 234c: e3a00a01 mov r0, #4096 ; 0x1000
2440 2350: e50b0008 str r0, [fp, #-8]
2441 2354: eaffffff b 2358 <morecore+0x38>
2442 p = sbrk(nu * sizeof(Header));
2443 2358: e51b0008 ldr r0, [fp, #-8]
2444 235c: e1a00180 lsl r0, r0, #3
2445 2360: ebfffe10 bl 1ba8 <sbrk>
2446 2364: e58d000c str r0, [sp, #12]
2447 if(p == (char*)-1)
2448 2368: e59d000c ldr r0, [sp, #12]
2449 236c: e3700001 cmn r0, #1
2450 2370: 1a000003 bne 2384 <morecore+0x64>
2451 2374: eaffffff b 2378 <morecore+0x58>
2452 return 0;
2453 2378: e3a00000 mov r0, #0
2454 237c: e50b0004 str r0, [fp, #-4]
2455 2380: ea00000b b 23b4 <morecore+0x94>
2456 hp = (Header*)p;
2457 2384: e59d000c ldr r0, [sp, #12]
2458 2388: e58d0008 str r0, [sp, #8]
2459 hp->s.size = nu;
2460 238c: e51b0008 ldr r0, [fp, #-8]
2461 2390: e59d1008 ldr r1, [sp, #8]
2462 2394: e5810004 str r0, [r1, #4]
2463 free((void*)(hp + 1));
2464 2398: e59d0008 ldr r0, [sp, #8]
2465 239c: e2800008 add r0, r0, #8
2466 23a0: ebffff16 bl 2000 <free>
2467 return freep;
2468 23a4: e59f0014 ldr r0, [pc, #20] ; 23c0 <morecore+0xa0>
2469 23a8: e5900000 ldr r0, [r0]
2470 23ac: e50b0004 str r0, [fp, #-4]
2471 23b0: eaffffff b 23b4 <morecore+0x94>
2472 }
2473 23b4: e51b0004 ldr r0, [fp, #-4]
2474 23b8: e1a0d00b mov sp, fp
2475 23bc: e8bd8800 pop {fp, pc}
2476 23c0: 00002628 .word 0x00002628
2477
2478 000023c4 <__aeabi_uidiv>:
2479 23c4: e2512001 subs r2, r1, #1
2480 23c8: 012fff1e bxeq lr
2481 23cc: 3a000036 bcc 24ac <__aeabi_uidiv+0xe8>
2482 23d0: e1500001 cmp r0, r1
2483 23d4: 9a000022 bls 2464 <__aeabi_uidiv+0xa0>
2484 23d8: e1110002 tst r1, r2
2485 23dc: 0a000023 beq 2470 <__aeabi_uidiv+0xac>
2486 23e0: e311020e tst r1, #-536870912 ; 0xe0000000
2487 23e4: 01a01181 lsleq r1, r1, #3
2488 23e8: 03a03008 moveq r3, #8
2489 23ec: 13a03001 movne r3, #1
2490 23f0: e3510201 cmp r1, #268435456 ; 0x10000000
2491 23f4: 31510000 cmpcc r1, r0
2492 23f8: 31a01201 lslcc r1, r1, #4
2493 23fc: 31a03203 lslcc r3, r3, #4
2494 2400: 3afffffa bcc 23f0 <__aeabi_uidiv+0x2c>
2495 2404: e3510102 cmp r1, #-2147483648 ; 0x80000000
2496 2408: 31510000 cmpcc r1, r0
2497 240c: 31a01081 lslcc r1, r1, #1
2498 2410: 31a03083 lslcc r3, r3, #1
2499 2414: 3afffffa bcc 2404 <__aeabi_uidiv+0x40>
2500 2418: e3a02000 mov r2, #0
2501 241c: e1500001 cmp r0, r1
2502 2420: 20400001 subcs r0, r0, r1
2503 2424: 21822003 orrcs r2, r2, r3
2504 2428: e15000a1 cmp r0, r1, lsr #1
2505 242c: 204000a1 subcs r0, r0, r1, lsr #1
2506 2430: 218220a3 orrcs r2, r2, r3, lsr #1
2507 2434: e1500121 cmp r0, r1, lsr #2
2508 2438: 20400121 subcs r0, r0, r1, lsr #2
2509 243c: 21822123 orrcs r2, r2, r3, lsr #2
2510 2440: e15001a1 cmp r0, r1, lsr #3
2511 2444: 204001a1 subcs r0, r0, r1, lsr #3
2512 2448: 218221a3 orrcs r2, r2, r3, lsr #3
2513 244c: e3500000 cmp r0, #0
2514 2450: 11b03223 lsrsne r3, r3, #4
2515 2454: 11a01221 lsrne r1, r1, #4
2516 2458: 1affffef bne 241c <__aeabi_uidiv+0x58>
2517 245c: e1a00002 mov r0, r2
2518 2460: e12fff1e bx lr
2519 2464: 03a00001 moveq r0, #1
2520 2468: 13a00000 movne r0, #0
2521 246c: e12fff1e bx lr
2522 2470: e3510801 cmp r1, #65536 ; 0x10000
2523 2474: 21a01821 lsrcs r1, r1, #16
2524 2478: 23a02010 movcs r2, #16
2525 247c: 33a02000 movcc r2, #0
2526 2480: e3510c01 cmp r1, #256 ; 0x100
2527 2484: 21a01421 lsrcs r1, r1, #8
2528 2488: 22822008 addcs r2, r2, #8
2529 248c: e3510010 cmp r1, #16
2530 2490: 21a01221 lsrcs r1, r1, #4
2531 2494: 22822004 addcs r2, r2, #4
2532 2498: e3510004 cmp r1, #4
2533 249c: 82822003 addhi r2, r2, #3
2534 24a0: 908220a1 addls r2, r2, r1, lsr #1
2535 24a4: e1a00230 lsr r0, r0, r2
2536 24a8: e12fff1e bx lr
2537 24ac: e3500000 cmp r0, #0
2538 24b0: 13e00000 mvnne r0, #0
2539 24b4: ea000007 b 24d8 <__aeabi_idiv0>
2540
2541 000024b8 <__aeabi_uidivmod>:
2542 24b8: e3510000 cmp r1, #0
2543 24bc: 0afffffa beq 24ac <__aeabi_uidiv+0xe8>
2544 24c0: e92d4003 push {r0, r1, lr}
2545 24c4: ebffffbe bl 23c4 <__aeabi_uidiv>
2546 24c8: e8bd4006 pop {r1, r2, lr}
2547 24cc: e0030092 mul r3, r2, r0
2548 24d0: e0411003 sub r1, r1, r3
2549 24d4: e12fff1e bx lr
2550
2551 000024d8 <__aeabi_idiv0>:
2552 24d8: e12fff1e bx lr