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