Mercurial > hg > Members > tobaru > xv6-osx-rpi
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/usr/stressfs.asm Sun Feb 04 17:54:49 2018 +0900 @@ -0,0 +1,1407 @@ + +_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