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