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