Mercurial > hg > Members > tobaru > xv6-osx-rpi
view src/usr/zombie.asm @ 0:53676d1f5817 default tip
firsh commit
author | tobaru |
---|---|
date | Sun, 04 Feb 2018 17:54:49 +0900 |
parents | |
children |
line wrap: on
line source
_zombie: file format elf32-littlearm Disassembly of section .text: 00000000 <main>: #include "stat.h" #include "user.h" int main(void) { 0: e92d4800 push {fp, lr} 4: e1a0b00d mov fp, sp 8: e24dd010 sub sp, sp, #16 c: e3a00000 mov r0, #0 10: e50b0004 str r0, [fp, #-4] if(fork() > 0) 14: eb000178 bl 5fc <fork> 18: e3500001 cmp r0, #1 1c: ba000004 blt 34 <main+0x34> 20: eaffffff b 24 <main+0x24> sleep(5); // Let child exit before parent. 24: e3a00005 mov r0, #5 28: eb00021e bl 8a8 <sleep> 2c: e58d0008 str r0, [sp, #8] 30: eaffffff b 34 <main+0x34> exit(); 34: eb000179 bl 620 <exit> 38: e58d0004 str r0, [sp, #4] 0000003c <strcpy>: #include "fcntl.h" #include "user.h" char* strcpy(char *s, char *t) { 3c: e24dd014 sub sp, sp, #20 40: e1a02001 mov r2, r1 44: e1a03000 mov r3, r0 48: e58d0010 str r0, [sp, #16] 4c: e58d100c str r1, [sp, #12] 50: e59d0010 ldr r0, [sp, #16] 54: e58d0008 str r0, [sp, #8] 58: e58d2004 str r2, [sp, #4] 5c: e58d3000 str r3, [sp] 60: eaffffff b 64 <strcpy+0x28> 64: e59d000c ldr r0, [sp, #12] 68: e2801001 add r1, r0, #1 6c: e58d100c str r1, [sp, #12] 70: e5d00000 ldrb r0, [r0] 74: e59d1010 ldr r1, [sp, #16] 78: e2812001 add r2, r1, #1 7c: e58d2010 str r2, [sp, #16] 80: e5c10000 strb r0, [r1] 84: e3500000 cmp r0, #0 88: 0a000001 beq 94 <strcpy+0x58> 8c: eaffffff b 90 <strcpy+0x54> 90: eafffff3 b 64 <strcpy+0x28> 94: e59d0008 ldr r0, [sp, #8] 98: e28dd014 add sp, sp, #20 9c: e12fff1e bx lr 000000a0 <strcmp>: a0: e24dd014 sub sp, sp, #20 a4: e1a02001 mov r2, r1 a8: e1a03000 mov r3, r0 ac: e58d0010 str r0, [sp, #16] b0: e58d100c str r1, [sp, #12] b4: e58d2008 str r2, [sp, #8] b8: e58d3004 str r3, [sp, #4] bc: eaffffff b c0 <strcmp+0x20> c0: e59d0010 ldr r0, [sp, #16] c4: e5d00000 ldrb r0, [r0] c8: e3a01000 mov r1, #0 cc: e3500000 cmp r0, #0 d0: e58d1000 str r1, [sp] d4: 0a000009 beq 100 <strcmp+0x60> d8: eaffffff b dc <strcmp+0x3c> dc: e59d0010 ldr r0, [sp, #16] e0: e5d00000 ldrb r0, [r0] e4: e59d100c ldr r1, [sp, #12] e8: e5d11000 ldrb r1, [r1] ec: e3a02000 mov r2, #0 f0: e1500001 cmp r0, r1 f4: 03a02001 moveq r2, #1 f8: e58d2000 str r2, [sp] fc: eaffffff b 100 <strcmp+0x60> 100: e59d0000 ldr r0, [sp] 104: e3100001 tst r0, #1 108: 0a000007 beq 12c <strcmp+0x8c> 10c: eaffffff b 110 <strcmp+0x70> 110: e59d0010 ldr r0, [sp, #16] 114: e2800001 add r0, r0, #1 118: e58d0010 str r0, [sp, #16] 11c: e59d000c ldr r0, [sp, #12] 120: e2800001 add r0, r0, #1 124: e58d000c str r0, [sp, #12] 128: eaffffe4 b c0 <strcmp+0x20> 12c: e59d0010 ldr r0, [sp, #16] 130: e5d00000 ldrb r0, [r0] 134: e59d100c ldr r1, [sp, #12] 138: e5d11000 ldrb r1, [r1] 13c: e0400001 sub r0, r0, r1 140: e28dd014 add sp, sp, #20 144: e12fff1e bx lr 00000148 <strlen>: 148: e24dd00c sub sp, sp, #12 14c: e1a01000 mov r1, r0 150: e58d0008 str r0, [sp, #8] 154: e3a00000 mov r0, #0 158: e58d0004 str r0, [sp, #4] 15c: e58d1000 str r1, [sp] 160: eaffffff b 164 <strlen+0x1c> 164: e59d0008 ldr r0, [sp, #8] 168: e59d1004 ldr r1, [sp, #4] 16c: e7d00001 ldrb r0, [r0, r1] 170: e3500000 cmp r0, #0 174: 0a000005 beq 190 <strlen+0x48> 178: eaffffff b 17c <strlen+0x34> 17c: eaffffff b 180 <strlen+0x38> 180: e59d0004 ldr r0, [sp, #4] 184: e2800001 add r0, r0, #1 188: e58d0004 str r0, [sp, #4] 18c: eafffff4 b 164 <strlen+0x1c> 190: e59d0004 ldr r0, [sp, #4] 194: e28dd00c add sp, sp, #12 198: e12fff1e bx lr 0000019c <memset>: 19c: e92d4800 push {fp, lr} 1a0: e1a0b00d mov fp, sp 1a4: e24dd02c sub sp, sp, #44 ; 0x2c 1a8: e1a03002 mov r3, r2 1ac: e1a0c001 mov ip, r1 1b0: e1a0e000 mov lr, r0 1b4: e50b0004 str r0, [fp, #-4] 1b8: e50b1008 str r1, [fp, #-8] 1bc: e50b200c str r2, [fp, #-12] 1c0: e51b0004 ldr r0, [fp, #-4] 1c4: e50b0010 str r0, [fp, #-16] 1c8: e51b0008 ldr r0, [fp, #-8] 1cc: e54b0011 strb r0, [fp, #-17] ; 0xffffffef 1d0: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 1d4: e1a01c00 lsl r1, r0, #24 1d8: e1811800 orr r1, r1, r0, lsl #16 1dc: e1811400 orr r1, r1, r0, lsl #8 1e0: e1810000 orr r0, r1, r0 1e4: e58d0014 str r0, [sp, #20] 1e8: e58d300c str r3, [sp, #12] 1ec: e58dc008 str ip, [sp, #8] 1f0: e58de004 str lr, [sp, #4] 1f4: eaffffff b 1f8 <memset+0x5c> 1f8: e51b000c ldr r0, [fp, #-12] 1fc: e3a01000 mov r1, #0 200: e3500000 cmp r0, #0 204: e58d1000 str r1, [sp] 208: 0a000006 beq 228 <memset+0x8c> 20c: eaffffff b 210 <memset+0x74> 210: e55b0010 ldrb r0, [fp, #-16] 214: e2000003 and r0, r0, #3 218: e3500000 cmp r0, #0 21c: 13a00001 movne r0, #1 220: e58d0000 str r0, [sp] 224: eaffffff b 228 <memset+0x8c> 228: e59d0000 ldr r0, [sp] 22c: e3100001 tst r0, #1 230: 0a00000b beq 264 <memset+0xc8> 234: eaffffff b 238 <memset+0x9c> 238: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 23c: e51b1010 ldr r1, [fp, #-16] 240: e5c10000 strb r0, [r1] 244: eaffffff b 248 <memset+0xac> 248: e51b000c ldr r0, [fp, #-12] 24c: e2400001 sub r0, r0, #1 250: e50b000c str r0, [fp, #-12] 254: e51b0010 ldr r0, [fp, #-16] 258: e2800001 add r0, r0, #1 25c: e50b0010 str r0, [fp, #-16] 260: eaffffe4 b 1f8 <memset+0x5c> 264: e51b0010 ldr r0, [fp, #-16] 268: e58d0010 str r0, [sp, #16] 26c: eaffffff b 270 <memset+0xd4> 270: e51b000c ldr r0, [fp, #-12] 274: e3500004 cmp r0, #4 278: 3a00000b bcc 2ac <memset+0x110> 27c: eaffffff b 280 <memset+0xe4> 280: e59d0014 ldr r0, [sp, #20] 284: e59d1010 ldr r1, [sp, #16] 288: e5810000 str r0, [r1] 28c: eaffffff b 290 <memset+0xf4> 290: e51b000c ldr r0, [fp, #-12] 294: e2400004 sub r0, r0, #4 298: e50b000c str r0, [fp, #-12] 29c: e59d0010 ldr r0, [sp, #16] 2a0: e2800004 add r0, r0, #4 2a4: e58d0010 str r0, [sp, #16] 2a8: eafffff0 b 270 <memset+0xd4> 2ac: e59d0010 ldr r0, [sp, #16] 2b0: e50b0010 str r0, [fp, #-16] 2b4: eaffffff b 2b8 <memset+0x11c> 2b8: e51b000c ldr r0, [fp, #-12] 2bc: e3500000 cmp r0, #0 2c0: 0a00000b beq 2f4 <memset+0x158> 2c4: eaffffff b 2c8 <memset+0x12c> 2c8: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 2cc: e51b1010 ldr r1, [fp, #-16] 2d0: e5c10000 strb r0, [r1] 2d4: eaffffff b 2d8 <memset+0x13c> 2d8: e51b000c ldr r0, [fp, #-12] 2dc: e2400001 sub r0, r0, #1 2e0: e50b000c str r0, [fp, #-12] 2e4: e51b0010 ldr r0, [fp, #-16] 2e8: e2800001 add r0, r0, #1 2ec: e50b0010 str r0, [fp, #-16] 2f0: eafffff0 b 2b8 <memset+0x11c> 2f4: e51b0004 ldr r0, [fp, #-4] 2f8: e1a0d00b mov sp, fp 2fc: e8bd8800 pop {fp, pc} 00000300 <strchr>: 300: e24dd014 sub sp, sp, #20 304: e1a02001 mov r2, r1 308: e1a03000 mov r3, r0 30c: e58d000c str r0, [sp, #12] 310: e5cd100b strb r1, [sp, #11] 314: e58d2004 str r2, [sp, #4] 318: e58d3000 str r3, [sp] 31c: eaffffff b 320 <strchr+0x20> 320: e59d000c ldr r0, [sp, #12] 324: e5d00000 ldrb r0, [r0] 328: e3500000 cmp r0, #0 32c: 0a00000e beq 36c <strchr+0x6c> 330: eaffffff b 334 <strchr+0x34> 334: e59d000c ldr r0, [sp, #12] 338: e5d00000 ldrb r0, [r0] 33c: e5dd100b ldrb r1, [sp, #11] 340: e1500001 cmp r0, r1 344: 1a000003 bne 358 <strchr+0x58> 348: eaffffff b 34c <strchr+0x4c> 34c: e59d000c ldr r0, [sp, #12] 350: e58d0010 str r0, [sp, #16] 354: ea000007 b 378 <strchr+0x78> 358: eaffffff b 35c <strchr+0x5c> 35c: e59d000c ldr r0, [sp, #12] 360: e2800001 add r0, r0, #1 364: e58d000c str r0, [sp, #12] 368: eaffffec b 320 <strchr+0x20> 36c: e3a00000 mov r0, #0 370: e58d0010 str r0, [sp, #16] 374: eaffffff b 378 <strchr+0x78> 378: e59d0010 ldr r0, [sp, #16] 37c: e28dd014 add sp, sp, #20 380: e12fff1e bx lr 00000384 <gets>: 384: e92d4800 push {fp, lr} 388: e1a0b00d mov fp, sp 38c: e24dd020 sub sp, sp, #32 390: e1a02001 mov r2, r1 394: e1a03000 mov r3, r0 398: e50b0004 str r0, [fp, #-4] 39c: e50b1008 str r1, [fp, #-8] 3a0: e3a00000 mov r0, #0 3a4: e50b000c str r0, [fp, #-12] 3a8: e58d2008 str r2, [sp, #8] 3ac: e58d3004 str r3, [sp, #4] 3b0: eaffffff b 3b4 <gets+0x30> 3b4: e51b000c ldr r0, [fp, #-12] 3b8: e2800001 add r0, r0, #1 3bc: e51b1008 ldr r1, [fp, #-8] 3c0: e1500001 cmp r0, r1 3c4: aa00001a bge 434 <gets+0xb0> 3c8: eaffffff b 3cc <gets+0x48> 3cc: e3a00000 mov r0, #0 3d0: e28d100f add r1, sp, #15 3d4: e3a02001 mov r2, #1 3d8: eb0000ab bl 68c <read> 3dc: e58d0010 str r0, [sp, #16] 3e0: e59d0010 ldr r0, [sp, #16] 3e4: e3500000 cmp r0, #0 3e8: ca000001 bgt 3f4 <gets+0x70> 3ec: eaffffff b 3f0 <gets+0x6c> 3f0: ea00000f b 434 <gets+0xb0> 3f4: e5dd000f ldrb r0, [sp, #15] 3f8: e51b1004 ldr r1, [fp, #-4] 3fc: e51b200c ldr r2, [fp, #-12] 400: e2823001 add r3, r2, #1 404: e50b300c str r3, [fp, #-12] 408: e7c10002 strb r0, [r1, r2] 40c: e5dd000f ldrb r0, [sp, #15] 410: e350000a cmp r0, #10 414: 0a000004 beq 42c <gets+0xa8> 418: eaffffff b 41c <gets+0x98> 41c: e5dd000f ldrb r0, [sp, #15] 420: e350000d cmp r0, #13 424: 1a000001 bne 430 <gets+0xac> 428: eaffffff b 42c <gets+0xa8> 42c: ea000000 b 434 <gets+0xb0> 430: eaffffdf b 3b4 <gets+0x30> 434: e51b0004 ldr r0, [fp, #-4] 438: e51b100c ldr r1, [fp, #-12] 43c: e3a02000 mov r2, #0 440: e7c02001 strb r2, [r0, r1] 444: e51b0004 ldr r0, [fp, #-4] 448: e1a0d00b mov sp, fp 44c: e8bd8800 pop {fp, pc} 00000450 <stat>: 450: e92d4800 push {fp, lr} 454: e1a0b00d mov fp, sp 458: e24dd020 sub sp, sp, #32 45c: e1a02001 mov r2, r1 460: e1a03000 mov r3, r0 464: e50b0008 str r0, [fp, #-8] 468: e50b100c str r1, [fp, #-12] 46c: e51b0008 ldr r0, [fp, #-8] 470: e3a01000 mov r1, #0 474: e58d2008 str r2, [sp, #8] 478: e58d3004 str r3, [sp, #4] 47c: eb0000af bl 740 <open> 480: e58d0010 str r0, [sp, #16] 484: e59d0010 ldr r0, [sp, #16] 488: e3500000 cmp r0, #0 48c: aa000003 bge 4a0 <stat+0x50> 490: eaffffff b 494 <stat+0x44> 494: e3e00000 mvn r0, #0 498: e50b0004 str r0, [fp, #-4] 49c: ea000009 b 4c8 <stat+0x78> 4a0: e59d0010 ldr r0, [sp, #16] 4a4: e51b100c ldr r1, [fp, #-12] 4a8: eb0000bf bl 7ac <fstat> 4ac: e58d000c str r0, [sp, #12] 4b0: e59d0010 ldr r0, [sp, #16] 4b4: eb000086 bl 6d4 <close> 4b8: e59d100c ldr r1, [sp, #12] 4bc: e50b1004 str r1, [fp, #-4] 4c0: e58d0000 str r0, [sp] 4c4: eaffffff b 4c8 <stat+0x78> 4c8: e51b0004 ldr r0, [fp, #-4] 4cc: e1a0d00b mov sp, fp 4d0: e8bd8800 pop {fp, pc} 000004d4 <atoi>: 4d4: e24dd010 sub sp, sp, #16 4d8: e1a01000 mov r1, r0 4dc: e58d000c str r0, [sp, #12] 4e0: e3a00000 mov r0, #0 4e4: e58d0008 str r0, [sp, #8] 4e8: e58d1004 str r1, [sp, #4] 4ec: eaffffff b 4f0 <atoi+0x1c> 4f0: e59d000c ldr r0, [sp, #12] 4f4: e5d00000 ldrb r0, [r0] 4f8: e3a01000 mov r1, #0 4fc: e3500030 cmp r0, #48 ; 0x30 500: e58d1000 str r1, [sp] 504: ba000007 blt 528 <atoi+0x54> 508: eaffffff b 50c <atoi+0x38> 50c: e59d000c ldr r0, [sp, #12] 510: e5d00000 ldrb r0, [r0] 514: e3a01000 mov r1, #0 518: e350003a cmp r0, #58 ; 0x3a 51c: b3a01001 movlt r1, #1 520: e58d1000 str r1, [sp] 524: eaffffff b 528 <atoi+0x54> 528: e59d0000 ldr r0, [sp] 52c: e3100001 tst r0, #1 530: 0a00000a beq 560 <atoi+0x8c> 534: eaffffff b 538 <atoi+0x64> 538: e59d0008 ldr r0, [sp, #8] 53c: e0800100 add r0, r0, r0, lsl #2 540: e59d100c ldr r1, [sp, #12] 544: e2812001 add r2, r1, #1 548: e58d200c str r2, [sp, #12] 54c: e5d11000 ldrb r1, [r1] 550: e0810080 add r0, r1, r0, lsl #1 554: e2400030 sub r0, r0, #48 ; 0x30 558: e58d0008 str r0, [sp, #8] 55c: eaffffe3 b 4f0 <atoi+0x1c> 560: e59d0008 ldr r0, [sp, #8] 564: e28dd010 add sp, sp, #16 568: e12fff1e bx lr 0000056c <memmove>: 56c: e92d4800 push {fp, lr} 570: e1a0b00d mov fp, sp 574: e24dd020 sub sp, sp, #32 578: e1a03002 mov r3, r2 57c: e1a0c001 mov ip, r1 580: e1a0e000 mov lr, r0 584: e50b0004 str r0, [fp, #-4] 588: e50b1008 str r1, [fp, #-8] 58c: e50b200c str r2, [fp, #-12] 590: e51b0004 ldr r0, [fp, #-4] 594: e58d0010 str r0, [sp, #16] 598: e51b0008 ldr r0, [fp, #-8] 59c: e58d000c str r0, [sp, #12] 5a0: e58d3008 str r3, [sp, #8] 5a4: e58dc004 str ip, [sp, #4] 5a8: e58de000 str lr, [sp] 5ac: eaffffff b 5b0 <memmove+0x44> 5b0: e51b000c ldr r0, [fp, #-12] 5b4: e2401001 sub r1, r0, #1 5b8: e50b100c str r1, [fp, #-12] 5bc: e3500001 cmp r0, #1 5c0: ba000009 blt 5ec <memmove+0x80> 5c4: eaffffff b 5c8 <memmove+0x5c> 5c8: e59d000c ldr r0, [sp, #12] 5cc: e2801001 add r1, r0, #1 5d0: e58d100c str r1, [sp, #12] 5d4: e5d00000 ldrb r0, [r0] 5d8: e59d1010 ldr r1, [sp, #16] 5dc: e2812001 add r2, r1, #1 5e0: e58d2010 str r2, [sp, #16] 5e4: e5c10000 strb r0, [r1] 5e8: eafffff0 b 5b0 <memmove+0x44> 5ec: e51b0004 ldr r0, [fp, #-4] 5f0: e1a0d00b mov sp, fp 5f4: e8bd8800 pop {fp, pc} 000005f8 <raise>: return vdst; } void raise() {} 5f8: e12fff1e bx lr 000005fc <fork>: 5fc: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 600: e1a04003 mov r4, r3 604: e1a03002 mov r3, r2 608: e1a02001 mov r2, r1 60c: e1a01000 mov r1, r0 610: e3a00001 mov r0, #1 614: ef000000 svc 0x00000000 618: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 61c: e12fff1e bx lr 00000620 <exit>: 620: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 624: e1a04003 mov r4, r3 628: e1a03002 mov r3, r2 62c: e1a02001 mov r2, r1 630: e1a01000 mov r1, r0 634: e3a00002 mov r0, #2 638: ef000000 svc 0x00000000 63c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 640: e12fff1e bx lr 00000644 <wait>: 644: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 648: e1a04003 mov r4, r3 64c: e1a03002 mov r3, r2 650: e1a02001 mov r2, r1 654: e1a01000 mov r1, r0 658: e3a00003 mov r0, #3 65c: ef000000 svc 0x00000000 660: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 664: e12fff1e bx lr 00000668 <pipe>: 668: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 66c: e1a04003 mov r4, r3 670: e1a03002 mov r3, r2 674: e1a02001 mov r2, r1 678: e1a01000 mov r1, r0 67c: e3a00004 mov r0, #4 680: ef000000 svc 0x00000000 684: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 688: e12fff1e bx lr 0000068c <read>: 68c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 690: e1a04003 mov r4, r3 694: e1a03002 mov r3, r2 698: e1a02001 mov r2, r1 69c: e1a01000 mov r1, r0 6a0: e3a00005 mov r0, #5 6a4: ef000000 svc 0x00000000 6a8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 6ac: e12fff1e bx lr 000006b0 <write>: 6b0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 6b4: e1a04003 mov r4, r3 6b8: e1a03002 mov r3, r2 6bc: e1a02001 mov r2, r1 6c0: e1a01000 mov r1, r0 6c4: e3a00010 mov r0, #16 6c8: ef000000 svc 0x00000000 6cc: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 6d0: e12fff1e bx lr 000006d4 <close>: 6d4: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 6d8: e1a04003 mov r4, r3 6dc: e1a03002 mov r3, r2 6e0: e1a02001 mov r2, r1 6e4: e1a01000 mov r1, r0 6e8: e3a00015 mov r0, #21 6ec: ef000000 svc 0x00000000 6f0: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 6f4: e12fff1e bx lr 000006f8 <kill>: 6f8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 6fc: e1a04003 mov r4, r3 700: e1a03002 mov r3, r2 704: e1a02001 mov r2, r1 708: e1a01000 mov r1, r0 70c: e3a00006 mov r0, #6 710: ef000000 svc 0x00000000 714: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 718: e12fff1e bx lr 0000071c <exec>: 71c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 720: e1a04003 mov r4, r3 724: e1a03002 mov r3, r2 728: e1a02001 mov r2, r1 72c: e1a01000 mov r1, r0 730: e3a00007 mov r0, #7 734: ef000000 svc 0x00000000 738: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 73c: e12fff1e bx lr 00000740 <open>: 740: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 744: e1a04003 mov r4, r3 748: e1a03002 mov r3, r2 74c: e1a02001 mov r2, r1 750: e1a01000 mov r1, r0 754: e3a0000f mov r0, #15 758: ef000000 svc 0x00000000 75c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 760: e12fff1e bx lr 00000764 <mknod>: 764: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 768: e1a04003 mov r4, r3 76c: e1a03002 mov r3, r2 770: e1a02001 mov r2, r1 774: e1a01000 mov r1, r0 778: e3a00011 mov r0, #17 77c: ef000000 svc 0x00000000 780: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 784: e12fff1e bx lr 00000788 <unlink>: 788: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 78c: e1a04003 mov r4, r3 790: e1a03002 mov r3, r2 794: e1a02001 mov r2, r1 798: e1a01000 mov r1, r0 79c: e3a00012 mov r0, #18 7a0: ef000000 svc 0x00000000 7a4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 7a8: e12fff1e bx lr 000007ac <fstat>: 7ac: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 7b0: e1a04003 mov r4, r3 7b4: e1a03002 mov r3, r2 7b8: e1a02001 mov r2, r1 7bc: e1a01000 mov r1, r0 7c0: e3a00008 mov r0, #8 7c4: ef000000 svc 0x00000000 7c8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 7cc: e12fff1e bx lr 000007d0 <link>: 7d0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 7d4: e1a04003 mov r4, r3 7d8: e1a03002 mov r3, r2 7dc: e1a02001 mov r2, r1 7e0: e1a01000 mov r1, r0 7e4: e3a00013 mov r0, #19 7e8: ef000000 svc 0x00000000 7ec: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 7f0: e12fff1e bx lr 000007f4 <mkdir>: 7f4: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 7f8: e1a04003 mov r4, r3 7fc: e1a03002 mov r3, r2 800: e1a02001 mov r2, r1 804: e1a01000 mov r1, r0 808: e3a00014 mov r0, #20 80c: ef000000 svc 0x00000000 810: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 814: e12fff1e bx lr 00000818 <chdir>: 818: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 81c: e1a04003 mov r4, r3 820: e1a03002 mov r3, r2 824: e1a02001 mov r2, r1 828: e1a01000 mov r1, r0 82c: e3a00009 mov r0, #9 830: ef000000 svc 0x00000000 834: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 838: e12fff1e bx lr 0000083c <dup>: 83c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 840: e1a04003 mov r4, r3 844: e1a03002 mov r3, r2 848: e1a02001 mov r2, r1 84c: e1a01000 mov r1, r0 850: e3a0000a mov r0, #10 854: ef000000 svc 0x00000000 858: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 85c: e12fff1e bx lr 00000860 <getpid>: 860: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 864: e1a04003 mov r4, r3 868: e1a03002 mov r3, r2 86c: e1a02001 mov r2, r1 870: e1a01000 mov r1, r0 874: e3a0000b mov r0, #11 878: ef000000 svc 0x00000000 87c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 880: e12fff1e bx lr 00000884 <sbrk>: 884: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 888: e1a04003 mov r4, r3 88c: e1a03002 mov r3, r2 890: e1a02001 mov r2, r1 894: e1a01000 mov r1, r0 898: e3a0000c mov r0, #12 89c: ef000000 svc 0x00000000 8a0: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 8a4: e12fff1e bx lr 000008a8 <sleep>: 8a8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 8ac: e1a04003 mov r4, r3 8b0: e1a03002 mov r3, r2 8b4: e1a02001 mov r2, r1 8b8: e1a01000 mov r1, r0 8bc: e3a0000d mov r0, #13 8c0: ef000000 svc 0x00000000 8c4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 8c8: e12fff1e bx lr 000008cc <uptime>: 8cc: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 8d0: e1a04003 mov r4, r3 8d4: e1a03002 mov r3, r2 8d8: e1a02001 mov r2, r1 8dc: e1a01000 mov r1, r0 8e0: e3a0000e mov r0, #14 8e4: ef000000 svc 0x00000000 8e8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 8ec: e12fff1e bx lr 000008f0 <printf>: } // Print to the given fd. Only understands %d, %x, %p, %s. void printf(int fd, char *fmt, ...) { 8f0: e92d4800 push {fp, lr} 8f4: e1a0b00d mov fp, sp 8f8: e24dd028 sub sp, sp, #40 ; 0x28 8fc: e1a02001 mov r2, r1 900: e1a03000 mov r3, r0 904: e50b0004 str r0, [fp, #-4] 908: e50b1008 str r1, [fp, #-8] 90c: e3a00000 mov r0, #0 910: e58d0010 str r0, [sp, #16] 914: e24b1008 sub r1, fp, #8 918: e2811004 add r1, r1, #4 91c: e58d100c str r1, [sp, #12] 920: e58d0014 str r0, [sp, #20] 924: e58d2008 str r2, [sp, #8] 928: e58d3004 str r3, [sp, #4] 92c: eaffffff b 930 <printf+0x40> 930: e51b0008 ldr r0, [fp, #-8] 934: e59d1014 ldr r1, [sp, #20] 938: e7d00001 ldrb r0, [r0, r1] 93c: e3500000 cmp r0, #0 940: 0a00007e beq b40 <printf+0x250> 944: eaffffff b 948 <printf+0x58> 948: e51b0008 ldr r0, [fp, #-8] 94c: e59d1014 ldr r1, [sp, #20] 950: e7d00001 ldrb r0, [r0, r1] 954: e50b0010 str r0, [fp, #-16] 958: e59d0010 ldr r0, [sp, #16] 95c: e3500000 cmp r0, #0 960: 1a00000c bne 998 <printf+0xa8> 964: eaffffff b 968 <printf+0x78> 968: e51b0010 ldr r0, [fp, #-16] 96c: e3500025 cmp r0, #37 ; 0x25 970: 1a000003 bne 984 <printf+0x94> 974: eaffffff b 978 <printf+0x88> 978: e3a00025 mov r0, #37 ; 0x25 97c: e58d0010 str r0, [sp, #16] 980: ea000003 b 994 <printf+0xa4> 984: e51b0004 ldr r0, [fp, #-4] 988: e55b1010 ldrb r1, [fp, #-16] 98c: eb00006e bl b4c <putc> 990: eaffffff b 994 <printf+0xa4> 994: ea000064 b b2c <printf+0x23c> 998: e59d0010 ldr r0, [sp, #16] 99c: e3500025 cmp r0, #37 ; 0x25 9a0: 1a000060 bne b28 <printf+0x238> 9a4: eaffffff b 9a8 <printf+0xb8> 9a8: e51b0010 ldr r0, [fp, #-16] 9ac: e3500064 cmp r0, #100 ; 0x64 9b0: 1a00000a bne 9e0 <printf+0xf0> 9b4: eaffffff b 9b8 <printf+0xc8> 9b8: e51b0004 ldr r0, [fp, #-4] 9bc: e59d100c ldr r1, [sp, #12] 9c0: e5911000 ldr r1, [r1] 9c4: e3a0200a mov r2, #10 9c8: e3a03001 mov r3, #1 9cc: eb00006f bl b90 <printint> 9d0: e59d000c ldr r0, [sp, #12] 9d4: e2800004 add r0, r0, #4 9d8: e58d000c str r0, [sp, #12] 9dc: ea00004e b b1c <printf+0x22c> 9e0: e51b0010 ldr r0, [fp, #-16] 9e4: e3500078 cmp r0, #120 ; 0x78 9e8: 0a000004 beq a00 <printf+0x110> 9ec: eaffffff b 9f0 <printf+0x100> 9f0: e51b0010 ldr r0, [fp, #-16] 9f4: e3500070 cmp r0, #112 ; 0x70 9f8: 1a00000a bne a28 <printf+0x138> 9fc: eaffffff b a00 <printf+0x110> a00: e51b0004 ldr r0, [fp, #-4] a04: e59d100c ldr r1, [sp, #12] a08: e5911000 ldr r1, [r1] a0c: e3a02010 mov r2, #16 a10: e3a03000 mov r3, #0 a14: eb00005d bl b90 <printint> a18: e59d000c ldr r0, [sp, #12] a1c: e2800004 add r0, r0, #4 a20: e58d000c str r0, [sp, #12] a24: ea00003b b b18 <printf+0x228> a28: e51b0010 ldr r0, [fp, #-16] a2c: e3500073 cmp r0, #115 ; 0x73 a30: 1a00001a bne aa0 <printf+0x1b0> a34: eaffffff b a38 <printf+0x148> a38: e59d000c ldr r0, [sp, #12] a3c: e4901004 ldr r1, [r0], #4 a40: e50b100c str r1, [fp, #-12] a44: e58d000c str r0, [sp, #12] a48: e51b000c ldr r0, [fp, #-12] a4c: e3500000 cmp r0, #0 a50: 1a000003 bne a64 <printf+0x174> a54: eaffffff b a58 <printf+0x168> a58: e59f00e8 ldr r0, [pc, #232] ; b48 <printf+0x258> a5c: e50b000c str r0, [fp, #-12] a60: eaffffff b a64 <printf+0x174> a64: eaffffff b a68 <printf+0x178> a68: e51b000c ldr r0, [fp, #-12] a6c: e5d00000 ldrb r0, [r0] a70: e3500000 cmp r0, #0 a74: 0a000008 beq a9c <printf+0x1ac> a78: eaffffff b a7c <printf+0x18c> a7c: e51b0004 ldr r0, [fp, #-4] a80: e51b100c ldr r1, [fp, #-12] a84: e5d11000 ldrb r1, [r1] a88: eb00002f bl b4c <putc> a8c: e51b000c ldr r0, [fp, #-12] a90: e2800001 add r0, r0, #1 a94: e50b000c str r0, [fp, #-12] a98: eafffff2 b a68 <printf+0x178> a9c: ea00001c b b14 <printf+0x224> aa0: e51b0010 ldr r0, [fp, #-16] aa4: e3500063 cmp r0, #99 ; 0x63 aa8: 1a000008 bne ad0 <printf+0x1e0> aac: eaffffff b ab0 <printf+0x1c0> ab0: e51b0004 ldr r0, [fp, #-4] ab4: e59d100c ldr r1, [sp, #12] ab8: e5d11000 ldrb r1, [r1] abc: eb000022 bl b4c <putc> ac0: e59d000c ldr r0, [sp, #12] ac4: e2800004 add r0, r0, #4 ac8: e58d000c str r0, [sp, #12] acc: ea00000f b b10 <printf+0x220> ad0: e51b0010 ldr r0, [fp, #-16] ad4: e3500025 cmp r0, #37 ; 0x25 ad8: 1a000004 bne af0 <printf+0x200> adc: eaffffff b ae0 <printf+0x1f0> ae0: e51b0004 ldr r0, [fp, #-4] ae4: e55b1010 ldrb r1, [fp, #-16] ae8: eb000017 bl b4c <putc> aec: ea000006 b b0c <printf+0x21c> af0: e51b0004 ldr r0, [fp, #-4] af4: e3a01025 mov r1, #37 ; 0x25 af8: eb000013 bl b4c <putc> afc: e51b0004 ldr r0, [fp, #-4] b00: e55b1010 ldrb r1, [fp, #-16] b04: eb000010 bl b4c <putc> b08: eaffffff b b0c <printf+0x21c> b0c: eaffffff b b10 <printf+0x220> b10: eaffffff b b14 <printf+0x224> b14: eaffffff b b18 <printf+0x228> b18: eaffffff b b1c <printf+0x22c> b1c: e3a00000 mov r0, #0 b20: e58d0010 str r0, [sp, #16] b24: eaffffff b b28 <printf+0x238> b28: eaffffff b b2c <printf+0x23c> b2c: eaffffff b b30 <printf+0x240> b30: e59d0014 ldr r0, [sp, #20] b34: e2800001 add r0, r0, #1 b38: e58d0014 str r0, [sp, #20] b3c: eaffff7b b 930 <printf+0x40> b40: e1a0d00b mov sp, fp b44: e8bd8800 pop {fp, pc} b48: 000011b8 .word 0x000011b8 00000b4c <putc>: { b4c: e92d4800 push {fp, lr} b50: e1a0b00d mov fp, sp b54: e24dd018 sub sp, sp, #24 b58: e1a02001 mov r2, r1 b5c: e1a03000 mov r3, r0 b60: e50b0004 str r0, [fp, #-4] b64: e54b1005 strb r1, [fp, #-5] write(fd, &c, 1); b68: e51b0004 ldr r0, [fp, #-4] b6c: e24b1005 sub r1, fp, #5 b70: e3a0c001 mov ip, #1 b74: e58d200c str r2, [sp, #12] b78: e1a0200c mov r2, ip b7c: e58d3008 str r3, [sp, #8] b80: ebfffeca bl 6b0 <write> } b84: e58d0004 str r0, [sp, #4] b88: e1a0d00b mov sp, fp b8c: e8bd8800 pop {fp, pc} 00000b90 <printint>: { b90: e92d4830 push {r4, r5, fp, lr} b94: e28db008 add fp, sp, #8 b98: e24dd040 sub sp, sp, #64 ; 0x40 b9c: e1a0c003 mov ip, r3 ba0: e1a0e002 mov lr, r2 ba4: e1a04001 mov r4, r1 ba8: e1a05000 mov r5, r0 bac: e50b000c str r0, [fp, #-12] bb0: e50b1010 str r1, [fp, #-16] bb4: e50b2014 str r2, [fp, #-20] ; 0xffffffec bb8: e50b3018 str r3, [fp, #-24] ; 0xffffffe8 bbc: e3a00000 mov r0, #0 bc0: e58d0018 str r0, [sp, #24] bc4: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8 bc8: e3500000 cmp r0, #0 bcc: e58dc010 str ip, [sp, #16] bd0: e58de00c str lr, [sp, #12] bd4: e58d4008 str r4, [sp, #8] bd8: e58d5004 str r5, [sp, #4] bdc: 0a00000a beq c0c <printint+0x7c> be0: eaffffff b be4 <printint+0x54> be4: e51b0010 ldr r0, [fp, #-16] be8: e3500000 cmp r0, #0 bec: aa000006 bge c0c <printint+0x7c> bf0: eaffffff b bf4 <printint+0x64> bf4: e3a00001 mov r0, #1 bf8: e58d0018 str r0, [sp, #24] bfc: e51b0010 ldr r0, [fp, #-16] c00: e2600000 rsb r0, r0, #0 c04: e58d0014 str r0, [sp, #20] c08: ea000002 b c18 <printint+0x88> c0c: e51b0010 ldr r0, [fp, #-16] c10: e58d0014 str r0, [sp, #20] c14: eaffffff b c18 <printint+0x88> c18: e3a00000 mov r0, #0 c1c: e58d001c str r0, [sp, #28] c20: eaffffff b c24 <printint+0x94> c24: e59d0014 ldr r0, [sp, #20] c28: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec c2c: eb000158 bl 1194 <__aeabi_uidivmod> c30: e59fe0a0 ldr lr, [pc, #160] ; cd8 <printint+0x148> c34: e7de1001 ldrb r1, [lr, r1] c38: e59de01c ldr lr, [sp, #28] c3c: e28e2001 add r2, lr, #1 c40: e58d201c str r2, [sp, #28] c44: e28d2020 add r2, sp, #32 c48: e7c2100e strb r1, [r2, lr] c4c: e58d0000 str r0, [sp] c50: eaffffff b c54 <printint+0xc4> c54: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec c58: e59d0014 ldr r0, [sp, #20] c5c: eb00010f bl 10a0 <__aeabi_uidiv> c60: e58d0014 str r0, [sp, #20] c64: e3500000 cmp r0, #0 c68: 1affffed bne c24 <printint+0x94> c6c: eaffffff b c70 <printint+0xe0> c70: e59d0018 ldr r0, [sp, #24] c74: e3500000 cmp r0, #0 c78: 0a000007 beq c9c <printint+0x10c> c7c: eaffffff b c80 <printint+0xf0> c80: e59d001c ldr r0, [sp, #28] c84: e2801001 add r1, r0, #1 c88: e58d101c str r1, [sp, #28] c8c: e28d1020 add r1, sp, #32 c90: e3a0202d mov r2, #45 ; 0x2d c94: e7c12000 strb r2, [r1, r0] c98: eaffffff b c9c <printint+0x10c> c9c: eaffffff b ca0 <printint+0x110> ca0: e59d001c ldr r0, [sp, #28] ca4: e2400001 sub r0, r0, #1 ca8: e58d001c str r0, [sp, #28] cac: e3500000 cmp r0, #0 cb0: ba000006 blt cd0 <printint+0x140> cb4: eaffffff b cb8 <printint+0x128> cb8: e51b000c ldr r0, [fp, #-12] cbc: e59d101c ldr r1, [sp, #28] cc0: e28d2020 add r2, sp, #32 cc4: e7d21001 ldrb r1, [r2, r1] cc8: ebffff9f bl b4c <putc> ccc: eafffff3 b ca0 <printint+0x110> cd0: e24bd008 sub sp, fp, #8 cd4: e8bd8830 pop {r4, r5, fp, pc} cd8: 000011c8 .word 0x000011c8 00000cdc <free>: static Header base; static Header *freep; void free(void *ap) { cdc: e24dd014 sub sp, sp, #20 ce0: e1a01000 mov r1, r0 ce4: e58d0010 str r0, [sp, #16] ce8: e59d0010 ldr r0, [sp, #16] cec: e2400008 sub r0, r0, #8 cf0: e58d000c str r0, [sp, #12] cf4: e59f0188 ldr r0, [pc, #392] ; e84 <free+0x1a8> cf8: e5900000 ldr r0, [r0] cfc: e58d0008 str r0, [sp, #8] d00: e58d1004 str r1, [sp, #4] d04: eaffffff b d08 <free+0x2c> d08: e59d000c ldr r0, [sp, #12] d0c: e59d1008 ldr r1, [sp, #8] d10: e3a02000 mov r2, #0 d14: e1500001 cmp r0, r1 d18: e58d2000 str r2, [sp] d1c: 9a000008 bls d44 <free+0x68> d20: eaffffff b d24 <free+0x48> d24: e59d000c ldr r0, [sp, #12] d28: e59d1008 ldr r1, [sp, #8] d2c: e5911000 ldr r1, [r1] d30: e3a02000 mov r2, #0 d34: e1500001 cmp r0, r1 d38: 33a02001 movcc r2, #1 d3c: e58d2000 str r2, [sp] d40: eaffffff b d44 <free+0x68> d44: e59d0000 ldr r0, [sp] d48: e1e00000 mvn r0, r0 d4c: e3100001 tst r0, #1 d50: 0a000016 beq db0 <free+0xd4> d54: eaffffff b d58 <free+0x7c> d58: e59d0008 ldr r0, [sp, #8] d5c: e5901000 ldr r1, [r0] d60: e1500001 cmp r0, r1 d64: 3a00000c bcc d9c <free+0xc0> d68: eaffffff b d6c <free+0x90> d6c: e59d000c ldr r0, [sp, #12] d70: e59d1008 ldr r1, [sp, #8] d74: e1500001 cmp r0, r1 d78: 8a000006 bhi d98 <free+0xbc> d7c: eaffffff b d80 <free+0xa4> d80: e59d000c ldr r0, [sp, #12] d84: e59d1008 ldr r1, [sp, #8] d88: e5911000 ldr r1, [r1] d8c: e1500001 cmp r0, r1 d90: 2a000001 bcs d9c <free+0xc0> d94: eaffffff b d98 <free+0xbc> d98: ea000004 b db0 <free+0xd4> d9c: eaffffff b da0 <free+0xc4> da0: e59d0008 ldr r0, [sp, #8] da4: e5900000 ldr r0, [r0] da8: e58d0008 str r0, [sp, #8] dac: eaffffd5 b d08 <free+0x2c> db0: e59d000c ldr r0, [sp, #12] db4: e5901004 ldr r1, [r0, #4] db8: e0800181 add r0, r0, r1, lsl #3 dbc: e59d1008 ldr r1, [sp, #8] dc0: e5911000 ldr r1, [r1] dc4: e1500001 cmp r0, r1 dc8: 1a00000d bne e04 <free+0x128> dcc: eaffffff b dd0 <free+0xf4> dd0: e59d0008 ldr r0, [sp, #8] dd4: e5900000 ldr r0, [r0] dd8: e5900004 ldr r0, [r0, #4] ddc: e59d100c ldr r1, [sp, #12] de0: e5912004 ldr r2, [r1, #4] de4: e0820000 add r0, r2, r0 de8: e5810004 str r0, [r1, #4] dec: e59d0008 ldr r0, [sp, #8] df0: e5900000 ldr r0, [r0] df4: e5900000 ldr r0, [r0] df8: e59d100c ldr r1, [sp, #12] dfc: e5810000 str r0, [r1] e00: ea000004 b e18 <free+0x13c> e04: e59d0008 ldr r0, [sp, #8] e08: e5900000 ldr r0, [r0] e0c: e59d100c ldr r1, [sp, #12] e10: e5810000 str r0, [r1] e14: eaffffff b e18 <free+0x13c> e18: e59d0008 ldr r0, [sp, #8] e1c: e5901004 ldr r1, [r0, #4] e20: e0800181 add r0, r0, r1, lsl #3 e24: e59d100c ldr r1, [sp, #12] e28: e1500001 cmp r0, r1 e2c: 1a00000b bne e60 <free+0x184> e30: eaffffff b e34 <free+0x158> e34: e59d000c ldr r0, [sp, #12] e38: e5900004 ldr r0, [r0, #4] e3c: e59d1008 ldr r1, [sp, #8] e40: e5912004 ldr r2, [r1, #4] e44: e0820000 add r0, r2, r0 e48: e5810004 str r0, [r1, #4] e4c: e59d000c ldr r0, [sp, #12] e50: e5900000 ldr r0, [r0] e54: e59d1008 ldr r1, [sp, #8] e58: e5810000 str r0, [r1] e5c: ea000003 b e70 <free+0x194> e60: e59d000c ldr r0, [sp, #12] e64: e59d1008 ldr r1, [sp, #8] e68: e5810000 str r0, [r1] e6c: eaffffff b e70 <free+0x194> e70: e59d0008 ldr r0, [sp, #8] e74: e59f1008 ldr r1, [pc, #8] ; e84 <free+0x1a8> e78: e5810000 str r0, [r1] e7c: e28dd014 add sp, sp, #20 e80: e12fff1e bx lr e84: 000011dc .word 0x000011dc 00000e88 <malloc>: e88: e92d4800 push {fp, lr} e8c: e1a0b00d mov fp, sp e90: e24dd018 sub sp, sp, #24 e94: e1a01000 mov r1, r0 e98: e50b0008 str r0, [fp, #-8] e9c: e51b0008 ldr r0, [fp, #-8] ea0: e2800007 add r0, r0, #7 ea4: e3a02001 mov r2, #1 ea8: e08201a0 add r0, r2, r0, lsr #3 eac: e58d0004 str r0, [sp, #4] eb0: e59f013c ldr r0, [pc, #316] ; ff4 <malloc+0x16c> eb4: e5900000 ldr r0, [r0] eb8: e58d0008 str r0, [sp, #8] ebc: e3500000 cmp r0, #0 ec0: e58d1000 str r1, [sp] ec4: 1a000008 bne eec <malloc+0x64> ec8: eaffffff b ecc <malloc+0x44> ecc: e59f0124 ldr r0, [pc, #292] ; ff8 <malloc+0x170> ed0: e58d0008 str r0, [sp, #8] ed4: e59f1118 ldr r1, [pc, #280] ; ff4 <malloc+0x16c> ed8: e5810000 str r0, [r1] edc: e5800000 str r0, [r0] ee0: e3a01000 mov r1, #0 ee4: e5801004 str r1, [r0, #4] ee8: eaffffff b eec <malloc+0x64> eec: e59d0008 ldr r0, [sp, #8] ef0: e5900000 ldr r0, [r0] ef4: e58d000c str r0, [sp, #12] ef8: eaffffff b efc <malloc+0x74> efc: e59d000c ldr r0, [sp, #12] f00: e5900004 ldr r0, [r0, #4] f04: e59d1004 ldr r1, [sp, #4] f08: e1500001 cmp r0, r1 f0c: 3a00001f bcc f90 <malloc+0x108> f10: eaffffff b f14 <malloc+0x8c> f14: e59d000c ldr r0, [sp, #12] f18: e5900004 ldr r0, [r0, #4] f1c: e59d1004 ldr r1, [sp, #4] f20: e1500001 cmp r0, r1 f24: 1a000005 bne f40 <malloc+0xb8> f28: eaffffff b f2c <malloc+0xa4> f2c: e59d000c ldr r0, [sp, #12] f30: e5900000 ldr r0, [r0] f34: e59d1008 ldr r1, [sp, #8] f38: e5810000 str r0, [r1] f3c: ea00000c b f74 <malloc+0xec> f40: e59d0004 ldr r0, [sp, #4] f44: e59d100c ldr r1, [sp, #12] f48: e5912004 ldr r2, [r1, #4] f4c: e0420000 sub r0, r2, r0 f50: e5810004 str r0, [r1, #4] f54: e59d000c ldr r0, [sp, #12] f58: e5901004 ldr r1, [r0, #4] f5c: e0800181 add r0, r0, r1, lsl #3 f60: e58d000c str r0, [sp, #12] f64: e59d0004 ldr r0, [sp, #4] f68: e59d100c ldr r1, [sp, #12] f6c: e5810004 str r0, [r1, #4] f70: eaffffff b f74 <malloc+0xec> f74: e59d0008 ldr r0, [sp, #8] f78: e59f1074 ldr r1, [pc, #116] ; ff4 <malloc+0x16c> f7c: e5810000 str r0, [r1] f80: e59d000c ldr r0, [sp, #12] f84: e2800008 add r0, r0, #8 f88: e50b0004 str r0, [fp, #-4] f8c: ea000015 b fe8 <malloc+0x160> f90: e59d000c ldr r0, [sp, #12] f94: e59f1058 ldr r1, [pc, #88] ; ff4 <malloc+0x16c> f98: e5911000 ldr r1, [r1] f9c: e1500001 cmp r0, r1 fa0: 1a00000a bne fd0 <malloc+0x148> fa4: eaffffff b fa8 <malloc+0x120> fa8: e59d0004 ldr r0, [sp, #4] fac: eb000012 bl ffc <morecore> fb0: e58d000c str r0, [sp, #12] fb4: e3500000 cmp r0, #0 fb8: 1a000003 bne fcc <malloc+0x144> fbc: eaffffff b fc0 <malloc+0x138> fc0: e3a00000 mov r0, #0 fc4: e50b0004 str r0, [fp, #-4] fc8: ea000006 b fe8 <malloc+0x160> fcc: eaffffff b fd0 <malloc+0x148> fd0: eaffffff b fd4 <malloc+0x14c> fd4: e59d000c ldr r0, [sp, #12] fd8: e58d0008 str r0, [sp, #8] fdc: e5900000 ldr r0, [r0] fe0: e58d000c str r0, [sp, #12] fe4: eaffffc4 b efc <malloc+0x74> fe8: e51b0004 ldr r0, [fp, #-4] fec: e1a0d00b mov sp, fp ff0: e8bd8800 pop {fp, pc} ff4: 000011dc .word 0x000011dc ff8: 000011e0 .word 0x000011e0 00000ffc <morecore>: freep = p; } static Header* morecore(uint nu) { ffc: e92d4800 push {fp, lr} 1000: e1a0b00d mov fp, sp 1004: e24dd018 sub sp, sp, #24 1008: e1a01000 mov r1, r0 100c: e50b0008 str r0, [fp, #-8] char *p; Header *hp; if(nu < 4096) 1010: e51b0008 ldr r0, [fp, #-8] 1014: e3a02000 mov r2, #0 1018: e1520620 cmp r2, r0, lsr #12 101c: e58d1004 str r1, [sp, #4] 1020: 1a000003 bne 1034 <morecore+0x38> 1024: eaffffff b 1028 <morecore+0x2c> nu = 4096; 1028: e3a00a01 mov r0, #4096 ; 0x1000 102c: e50b0008 str r0, [fp, #-8] 1030: eaffffff b 1034 <morecore+0x38> p = sbrk(nu * sizeof(Header)); 1034: e51b0008 ldr r0, [fp, #-8] 1038: e1a00180 lsl r0, r0, #3 103c: ebfffe10 bl 884 <sbrk> 1040: e58d000c str r0, [sp, #12] if(p == (char*)-1) 1044: e59d000c ldr r0, [sp, #12] 1048: e3700001 cmn r0, #1 104c: 1a000003 bne 1060 <morecore+0x64> 1050: eaffffff b 1054 <morecore+0x58> return 0; 1054: e3a00000 mov r0, #0 1058: e50b0004 str r0, [fp, #-4] 105c: ea00000b b 1090 <morecore+0x94> hp = (Header*)p; 1060: e59d000c ldr r0, [sp, #12] 1064: e58d0008 str r0, [sp, #8] hp->s.size = nu; 1068: e51b0008 ldr r0, [fp, #-8] 106c: e59d1008 ldr r1, [sp, #8] 1070: e5810004 str r0, [r1, #4] free((void*)(hp + 1)); 1074: e59d0008 ldr r0, [sp, #8] 1078: e2800008 add r0, r0, #8 107c: ebffff16 bl cdc <free> return freep; 1080: e59f0014 ldr r0, [pc, #20] ; 109c <morecore+0xa0> 1084: e5900000 ldr r0, [r0] 1088: e50b0004 str r0, [fp, #-4] 108c: eaffffff b 1090 <morecore+0x94> } 1090: e51b0004 ldr r0, [fp, #-4] 1094: e1a0d00b mov sp, fp 1098: e8bd8800 pop {fp, pc} 109c: 000011dc .word 0x000011dc 000010a0 <__aeabi_uidiv>: 10a0: e2512001 subs r2, r1, #1 10a4: 012fff1e bxeq lr 10a8: 3a000036 bcc 1188 <__aeabi_uidiv+0xe8> 10ac: e1500001 cmp r0, r1 10b0: 9a000022 bls 1140 <__aeabi_uidiv+0xa0> 10b4: e1110002 tst r1, r2 10b8: 0a000023 beq 114c <__aeabi_uidiv+0xac> 10bc: e311020e tst r1, #-536870912 ; 0xe0000000 10c0: 01a01181 lsleq r1, r1, #3 10c4: 03a03008 moveq r3, #8 10c8: 13a03001 movne r3, #1 10cc: e3510201 cmp r1, #268435456 ; 0x10000000 10d0: 31510000 cmpcc r1, r0 10d4: 31a01201 lslcc r1, r1, #4 10d8: 31a03203 lslcc r3, r3, #4 10dc: 3afffffa bcc 10cc <__aeabi_uidiv+0x2c> 10e0: e3510102 cmp r1, #-2147483648 ; 0x80000000 10e4: 31510000 cmpcc r1, r0 10e8: 31a01081 lslcc r1, r1, #1 10ec: 31a03083 lslcc r3, r3, #1 10f0: 3afffffa bcc 10e0 <__aeabi_uidiv+0x40> 10f4: e3a02000 mov r2, #0 10f8: e1500001 cmp r0, r1 10fc: 20400001 subcs r0, r0, r1 1100: 21822003 orrcs r2, r2, r3 1104: e15000a1 cmp r0, r1, lsr #1 1108: 204000a1 subcs r0, r0, r1, lsr #1 110c: 218220a3 orrcs r2, r2, r3, lsr #1 1110: e1500121 cmp r0, r1, lsr #2 1114: 20400121 subcs r0, r0, r1, lsr #2 1118: 21822123 orrcs r2, r2, r3, lsr #2 111c: e15001a1 cmp r0, r1, lsr #3 1120: 204001a1 subcs r0, r0, r1, lsr #3 1124: 218221a3 orrcs r2, r2, r3, lsr #3 1128: e3500000 cmp r0, #0 112c: 11b03223 lsrsne r3, r3, #4 1130: 11a01221 lsrne r1, r1, #4 1134: 1affffef bne 10f8 <__aeabi_uidiv+0x58> 1138: e1a00002 mov r0, r2 113c: e12fff1e bx lr 1140: 03a00001 moveq r0, #1 1144: 13a00000 movne r0, #0 1148: e12fff1e bx lr 114c: e3510801 cmp r1, #65536 ; 0x10000 1150: 21a01821 lsrcs r1, r1, #16 1154: 23a02010 movcs r2, #16 1158: 33a02000 movcc r2, #0 115c: e3510c01 cmp r1, #256 ; 0x100 1160: 21a01421 lsrcs r1, r1, #8 1164: 22822008 addcs r2, r2, #8 1168: e3510010 cmp r1, #16 116c: 21a01221 lsrcs r1, r1, #4 1170: 22822004 addcs r2, r2, #4 1174: e3510004 cmp r1, #4 1178: 82822003 addhi r2, r2, #3 117c: 908220a1 addls r2, r2, r1, lsr #1 1180: e1a00230 lsr r0, r0, r2 1184: e12fff1e bx lr 1188: e3500000 cmp r0, #0 118c: 13e00000 mvnne r0, #0 1190: ea000007 b 11b4 <__aeabi_idiv0> 00001194 <__aeabi_uidivmod>: 1194: e3510000 cmp r1, #0 1198: 0afffffa beq 1188 <__aeabi_uidiv+0xe8> 119c: e92d4003 push {r0, r1, lr} 11a0: ebffffbe bl 10a0 <__aeabi_uidiv> 11a4: e8bd4006 pop {r1, r2, lr} 11a8: e0030092 mul r3, r2, r0 11ac: e0411003 sub r1, r1, r3 11b0: e12fff1e bx lr 000011b4 <__aeabi_idiv0>: 11b4: e12fff1e bx lr