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