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