Mercurial > hg > Members > innparusu > xv6_rpi_port
diff uprogs/forktest.asm @ 0:c450faca55f4
Init
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 22 Oct 2017 18:25:39 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uprogs/forktest.asm Sun Oct 22 18:25:39 2017 +0900 @@ -0,0 +1,912 @@ + +_forktest: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 <main>: + printf(1, "fork test OK\n"); +} + +int +main(void) +{ + 0: e92d4800 push {fp, lr} + 4: e28db004 add fp, sp, #4 + forktest(); + 8: eb00000f bl 4c <forktest> + exit(); + c: eb0000e3 bl 3a0 <exit> + +00000010 <printf>: + +#define N 1000 + +void +printf(int fd, char *s, ...) +{ + 10: e92d000e push {r1, r2, r3} + 14: e92d4838 push {r3, r4, r5, fp, lr} + 18: e28db010 add fp, sp, #16 + 1c: e1a05000 mov r5, r0 + 20: e59b4004 ldr r4, [fp, #4] + write(fd, s, strlen(s)); + 24: e1a00004 mov r0, r4 + 28: eb000051 bl 174 <strlen> + 2c: e1a01004 mov r1, r4 + 30: e1a02000 mov r2, r0 + 34: e1a00005 mov r0, r5 + 38: eb00010c bl 470 <write> +} + 3c: e24bd010 sub sp, fp, #16 + 40: e8bd4838 pop {r3, r4, r5, fp, lr} + 44: e28dd00c add sp, sp, #12 + 48: e12fff1e bx lr + +0000004c <forktest>: + +void +forktest(void) +{ + 4c: e92d4818 push {r3, r4, fp, lr} + int n, pid; + + printf(1, "fork test\n"); + 50: e3a00001 mov r0, #1 + write(fd, s, strlen(s)); +} + +void +forktest(void) +{ + 54: e28db00c add fp, sp, #12 + int n, pid; + + printf(1, "fork test\n"); + 58: e59f108c ldr r1, [pc, #140] ; ec <forktest+0xa0> + 5c: ebffffeb bl 10 <printf> + + for(n=0; n<N; n++){ + 60: e3a04000 mov r4, #0 + 64: ea000003 b 78 <forktest+0x2c> + pid = fork(); + if(pid < 0) + break; + if(pid == 0) + 68: 0a00001b beq dc <forktest+0x90> +{ + int n, pid; + + printf(1, "fork test\n"); + + for(n=0; n<N; n++){ + 6c: e2844001 add r4, r4, #1 + 70: e3540ffa cmp r4, #1000 ; 0x3e8 + 74: 0a000010 beq bc <forktest+0x70> + pid = fork(); + 78: eb0000bb bl 36c <fork> + if(pid < 0) + 7c: e3500000 cmp r0, #0 + 80: aafffff8 bge 68 <forktest+0x1c> + if(n == N){ + printf(1, "fork claimed to work N times!\n", N); + exit(); + } + + for(; n > 0; n--){ + 84: e3540000 cmp r4, #0 + 88: 0a000004 beq a0 <forktest+0x54> + if(wait() < 0){ + 8c: eb0000d0 bl 3d4 <wait> + 90: e3500000 cmp r0, #0 + 94: ba00000d blt d0 <forktest+0x84> + if(n == N){ + printf(1, "fork claimed to work N times!\n", N); + exit(); + } + + for(; n > 0; n--){ + 98: e2544001 subs r4, r4, #1 + 9c: 1afffffa bne 8c <forktest+0x40> + printf(1, "wait stopped early\n"); + exit(); + } + } + + if(wait() != -1){ + a0: eb0000cb bl 3d4 <wait> + a4: e3700001 cmn r0, #1 + printf(1, "wait got too many\n"); + a8: e3a00001 mov r0, #1 + printf(1, "wait stopped early\n"); + exit(); + } + } + + if(wait() != -1){ + ac: 1a00000b bne e0 <forktest+0x94> + printf(1, "wait got too many\n"); + exit(); + } + + printf(1, "fork test OK\n"); + b0: e59f1038 ldr r1, [pc, #56] ; f0 <forktest+0xa4> +} + b4: e8bd4818 pop {r3, r4, fp, lr} + if(wait() != -1){ + printf(1, "wait got too many\n"); + exit(); + } + + printf(1, "fork test OK\n"); + b8: eaffffd4 b 10 <printf> + if(pid == 0) + exit(); + } + + if(n == N){ + printf(1, "fork claimed to work N times!\n", N); + bc: e3a00001 mov r0, #1 + c0: e59f102c ldr r1, [pc, #44] ; f4 <forktest+0xa8> + c4: e1a02004 mov r2, r4 + c8: ebffffd0 bl 10 <printf> + exit(); + cc: eb0000b3 bl 3a0 <exit> + } + + for(; n > 0; n--){ + if(wait() < 0){ + printf(1, "wait stopped early\n"); + d0: e3a00001 mov r0, #1 + d4: e59f101c ldr r1, [pc, #28] ; f8 <forktest+0xac> + d8: ebffffcc bl 10 <printf> + exit(); + dc: eb0000af bl 3a0 <exit> + } + } + + if(wait() != -1){ + printf(1, "wait got too many\n"); + e0: e59f1014 ldr r1, [pc, #20] ; fc <forktest+0xb0> + e4: ebffffc9 bl 10 <printf> + exit(); + e8: eb0000ac bl 3a0 <exit> + ec: 000007b0 .word 0x000007b0 + f0: 000007e4 .word 0x000007e4 + f4: 000007f4 .word 0x000007f4 + f8: 000007bc .word 0x000007bc + fc: 000007d0 .word 0x000007d0 + +00000100 <strcpy>: +#include "user.h" +#include "arm.h" + +char* +strcpy(char *s, char *t) +{ + 100: e52db004 push {fp} ; (str fp, [sp, #-4]!) + char *os; + + os = s; + while((*s++ = *t++) != 0) + 104: e1a02000 mov r2, r0 +#include "user.h" +#include "arm.h" + +char* +strcpy(char *s, char *t) +{ + 108: e28db000 add fp, sp, #0 + char *os; + + os = s; + while((*s++ = *t++) != 0) + 10c: e4d13001 ldrb r3, [r1], #1 + 110: e3530000 cmp r3, #0 + 114: e4c23001 strb r3, [r2], #1 + 118: 1afffffb bne 10c <strcpy+0xc> + ; + return os; +} + 11c: e28bd000 add sp, fp, #0 + 120: e8bd0800 pop {fp} + 124: e12fff1e bx lr + +00000128 <strcmp>: + +int +strcmp(const char *p, const char *q) +{ + 128: e52db004 push {fp} ; (str fp, [sp, #-4]!) + 12c: e28db000 add fp, sp, #0 + while(*p && *p == *q) + 130: e5d03000 ldrb r3, [r0] + 134: e5d12000 ldrb r2, [r1] + 138: e3530000 cmp r3, #0 + 13c: 1a000004 bne 154 <strcmp+0x2c> + 140: ea000005 b 15c <strcmp+0x34> + 144: e5f03001 ldrb r3, [r0, #1]! + 148: e3530000 cmp r3, #0 + 14c: 0a000006 beq 16c <strcmp+0x44> + 150: e5f12001 ldrb r2, [r1, #1]! + 154: e1530002 cmp r3, r2 + 158: 0afffff9 beq 144 <strcmp+0x1c> + p++, q++; + return (uchar)*p - (uchar)*q; +} + 15c: e0620003 rsb r0, r2, r3 + 160: e28bd000 add sp, fp, #0 + 164: e8bd0800 pop {fp} + 168: e12fff1e bx lr +} + +int +strcmp(const char *p, const char *q) +{ + while(*p && *p == *q) + 16c: e5d12001 ldrb r2, [r1, #1] + 170: eafffff9 b 15c <strcmp+0x34> + +00000174 <strlen>: + return (uchar)*p - (uchar)*q; +} + +uint +strlen(char *s) +{ + 174: e52db004 push {fp} ; (str fp, [sp, #-4]!) + 178: e28db000 add fp, sp, #0 + int n; + + for(n = 0; s[n]; n++) + 17c: e5d03000 ldrb r3, [r0] + 180: e3530000 cmp r3, #0 + 184: 01a00003 moveq r0, r3 + 188: 0a000006 beq 1a8 <strlen+0x34> + 18c: e1a02000 mov r2, r0 + 190: e3a03000 mov r3, #0 + 194: e5f21001 ldrb r1, [r2, #1]! + 198: e2833001 add r3, r3, #1 + 19c: e1a00003 mov r0, r3 + 1a0: e3510000 cmp r1, #0 + 1a4: 1afffffa bne 194 <strlen+0x20> + ; + return n; +} + 1a8: e28bd000 add sp, fp, #0 + 1ac: e8bd0800 pop {fp} + 1b0: e12fff1e bx lr + +000001b4 <memset>: +memset(void *dst, int c, uint n) +{ + char *p=dst; + u32 rc=n; + + while (rc-- > 0) *p++ = c; + 1b4: e3520000 cmp r2, #0 + return n; +} + +void* +memset(void *dst, int c, uint n) +{ + 1b8: e52db004 push {fp} ; (str fp, [sp, #-4]!) + 1bc: e28db000 add fp, sp, #0 + char *p=dst; + u32 rc=n; + + while (rc-- > 0) *p++ = c; + 1c0: 0a000006 beq 1e0 <memset+0x2c> + 1c4: e6ef1071 uxtb r1, r1 + 1c8: e1a03002 mov r3, r2 +} + +void* +memset(void *dst, int c, uint n) +{ + char *p=dst; + 1cc: e1a0c000 mov ip, r0 + u32 rc=n; + + while (rc-- > 0) *p++ = c; + 1d0: e2533001 subs r3, r3, #1 + 1d4: e4cc1001 strb r1, [ip], #1 + 1d8: 1afffffc bne 1d0 <memset+0x1c> + 1dc: e0800002 add r0, r0, r2 + return (void *)p; +} + 1e0: e28bd000 add sp, fp, #0 + 1e4: e8bd0800 pop {fp} + 1e8: e12fff1e bx lr + +000001ec <strchr>: + +char* +strchr(const char *s, char c) +{ + 1ec: e52db004 push {fp} ; (str fp, [sp, #-4]!) + 1f0: e28db000 add fp, sp, #0 + for(; *s; s++) + 1f4: e5d03000 ldrb r3, [r0] + 1f8: e3530000 cmp r3, #0 + 1fc: 1a000004 bne 214 <strchr+0x28> + 200: ea000008 b 228 <strchr+0x3c> + 204: e5d03001 ldrb r3, [r0, #1] + 208: e2800001 add r0, r0, #1 + 20c: e3530000 cmp r3, #0 + 210: 0a000004 beq 228 <strchr+0x3c> + if(*s == c) + 214: e1530001 cmp r3, r1 + 218: 1afffff9 bne 204 <strchr+0x18> + return (char*)s; + return 0; +} + 21c: e28bd000 add sp, fp, #0 + 220: e8bd0800 pop {fp} + 224: e12fff1e bx lr +strchr(const char *s, char c) +{ + for(; *s; s++) + if(*s == c) + return (char*)s; + return 0; + 228: e1a00003 mov r0, r3 + 22c: eafffffa b 21c <strchr+0x30> + +00000230 <gets>: +} + +char* +gets(char *buf, int max) +{ + 230: e92d49f0 push {r4, r5, r6, r7, r8, fp, lr} + 234: e28db018 add fp, sp, #24 + 238: e24dd00c sub sp, sp, #12 + 23c: e1a08000 mov r8, r0 + 240: e1a07001 mov r7, r1 + int i, cc; + char c; + + for(i=0; i+1 < max; ){ + 244: e1a06000 mov r6, r0 + 248: e3a05000 mov r5, #0 + 24c: ea000008 b 274 <gets+0x44> + cc = read(0, &c, 1); + 250: eb000079 bl 43c <read> + if(cc < 1) + 254: e3500000 cmp r0, #0 + 258: da00000b ble 28c <gets+0x5c> + break; + buf[i++] = c; + 25c: e55b301d ldrb r3, [fp, #-29] + if(c == '\n' || c == '\r') + 260: e1a05004 mov r5, r4 + 264: e353000a cmp r3, #10 + 268: 1353000d cmpne r3, #13 + + for(i=0; i+1 < max; ){ + cc = read(0, &c, 1); + if(cc < 1) + break; + buf[i++] = c; + 26c: e4c63001 strb r3, [r6], #1 + if(c == '\n' || c == '\r') + 270: 0a00000a beq 2a0 <gets+0x70> +{ + int i, cc; + char c; + + for(i=0; i+1 < max; ){ + cc = read(0, &c, 1); + 274: e3a02001 mov r2, #1 +gets(char *buf, int max) +{ + int i, cc; + char c; + + for(i=0; i+1 < max; ){ + 278: e0854002 add r4, r5, r2 + 27c: e1540007 cmp r4, r7 + cc = read(0, &c, 1); + 280: e3a00000 mov r0, #0 + 284: e24b101d sub r1, fp, #29 +gets(char *buf, int max) +{ + int i, cc; + char c; + + for(i=0; i+1 < max; ){ + 288: bafffff0 blt 250 <gets+0x20> + break; + buf[i++] = c; + if(c == '\n' || c == '\r') + break; + } + buf[i] = '\0'; + 28c: e3a03000 mov r3, #0 + 290: e7c83005 strb r3, [r8, r5] + return buf; +} + 294: e1a00008 mov r0, r8 + 298: e24bd018 sub sp, fp, #24 + 29c: e8bd89f0 pop {r4, r5, r6, r7, r8, fp, pc} +gets(char *buf, int max) +{ + int i, cc; + char c; + + for(i=0; i+1 < max; ){ + 2a0: e1a05004 mov r5, r4 + 2a4: eafffff8 b 28c <gets+0x5c> + +000002a8 <stat>: + return buf; +} + +int +stat(char *n, struct stat *st) +{ + 2a8: e92d4830 push {r4, r5, fp, lr} + 2ac: e1a05001 mov r5, r1 + 2b0: e28db00c add fp, sp, #12 + int fd; + int r; + + fd = open(n, O_RDONLY); + 2b4: e3a01000 mov r1, #0 + 2b8: eb0000a0 bl 540 <open> + if(fd < 0) + 2bc: e2504000 subs r4, r0, #0 + return -1; + 2c0: b3e05000 mvnlt r5, #0 +{ + int fd; + int r; + + fd = open(n, O_RDONLY); + if(fd < 0) + 2c4: ba000004 blt 2dc <stat+0x34> + return -1; + r = fstat(fd, st); + 2c8: e1a01005 mov r1, r5 + 2cc: eb0000c2 bl 5dc <fstat> + 2d0: e1a05000 mov r5, r0 + close(fd); + 2d4: e1a00004 mov r0, r4 + 2d8: eb000071 bl 4a4 <close> + return r; +} + 2dc: e1a00005 mov r0, r5 + 2e0: e8bd8830 pop {r4, r5, fp, pc} + +000002e4 <atoi>: + +int +atoi(const char *s) +{ + 2e4: e52db004 push {fp} ; (str fp, [sp, #-4]!) + 2e8: e28db000 add fp, sp, #0 + int n; + + n = 0; + while('0' <= *s && *s <= '9') + 2ec: e5d03000 ldrb r3, [r0] + 2f0: e2432030 sub r2, r3, #48 ; 0x30 + 2f4: e6ef2072 uxtb r2, r2 + 2f8: e3520009 cmp r2, #9 +int +atoi(const char *s) +{ + int n; + + n = 0; + 2fc: 83a00000 movhi r0, #0 + while('0' <= *s && *s <= '9') + 300: 8a000009 bhi 32c <atoi+0x48> + 304: e1a02000 mov r2, r0 +int +atoi(const char *s) +{ + int n; + + n = 0; + 308: e3a00000 mov r0, #0 + while('0' <= *s && *s <= '9') + n = n*10 + *s++ - '0'; + 30c: e0800100 add r0, r0, r0, lsl #2 + 310: e0830080 add r0, r3, r0, lsl #1 +atoi(const char *s) +{ + int n; + + n = 0; + while('0' <= *s && *s <= '9') + 314: e5f23001 ldrb r3, [r2, #1]! + n = n*10 + *s++ - '0'; + 318: e2400030 sub r0, r0, #48 ; 0x30 +atoi(const char *s) +{ + int n; + + n = 0; + while('0' <= *s && *s <= '9') + 31c: e2431030 sub r1, r3, #48 ; 0x30 + 320: e6ef1071 uxtb r1, r1 + 324: e3510009 cmp r1, #9 + 328: 9afffff7 bls 30c <atoi+0x28> + n = n*10 + *s++ - '0'; + return n; +} + 32c: e28bd000 add sp, fp, #0 + 330: e8bd0800 pop {fp} + 334: e12fff1e bx lr + +00000338 <memmove>: +{ + char *dst, *src; + + dst = vdst; + src = vsrc; + while(n-- > 0) + 338: e3520000 cmp r2, #0 + return n; +} + +void* +memmove(void *vdst, void *vsrc, int n) +{ + 33c: e52db004 push {fp} ; (str fp, [sp, #-4]!) + 340: e28db000 add fp, sp, #0 + char *dst, *src; + + dst = vdst; + src = vsrc; + while(n-- > 0) + 344: da000005 ble 360 <memmove+0x28> + n = n*10 + *s++ - '0'; + return n; +} + +void* +memmove(void *vdst, void *vsrc, int n) + 348: e0802002 add r2, r0, r2 +{ + char *dst, *src; + + dst = vdst; + 34c: e1a03000 mov r3, r0 + src = vsrc; + while(n-- > 0) + *dst++ = *src++; + 350: e4d1c001 ldrb ip, [r1], #1 + 354: e4c3c001 strb ip, [r3], #1 +{ + char *dst, *src; + + dst = vdst; + src = vsrc; + while(n-- > 0) + 358: e1530002 cmp r3, r2 + 35c: 1afffffb bne 350 <memmove+0x18> + *dst++ = *src++; + return vdst; +} + 360: e28bd000 add sp, fp, #0 + 364: e8bd0800 pop {fp} + 368: e12fff1e bx lr + +0000036c <fork>: + 36c: e92d4000 push {lr} + 370: e92d0008 push {r3} + 374: e92d0004 push {r2} + 378: e92d0002 push {r1} + 37c: e92d0001 push {r0} + 380: e3a00001 mov r0, #1 + 384: ef000040 svc 0x00000040 + 388: e8bd0002 pop {r1} + 38c: e8bd0002 pop {r1} + 390: e8bd0004 pop {r2} + 394: e8bd0008 pop {r3} + 398: e8bd4000 pop {lr} + 39c: e12fff1e bx lr + +000003a0 <exit>: + 3a0: e92d4000 push {lr} + 3a4: e92d0008 push {r3} + 3a8: e92d0004 push {r2} + 3ac: e92d0002 push {r1} + 3b0: e92d0001 push {r0} + 3b4: e3a00002 mov r0, #2 + 3b8: ef000040 svc 0x00000040 + 3bc: e8bd0002 pop {r1} + 3c0: e8bd0002 pop {r1} + 3c4: e8bd0004 pop {r2} + 3c8: e8bd0008 pop {r3} + 3cc: e8bd4000 pop {lr} + 3d0: e12fff1e bx lr + +000003d4 <wait>: + 3d4: e92d4000 push {lr} + 3d8: e92d0008 push {r3} + 3dc: e92d0004 push {r2} + 3e0: e92d0002 push {r1} + 3e4: e92d0001 push {r0} + 3e8: e3a00003 mov r0, #3 + 3ec: ef000040 svc 0x00000040 + 3f0: e8bd0002 pop {r1} + 3f4: e8bd0002 pop {r1} + 3f8: e8bd0004 pop {r2} + 3fc: e8bd0008 pop {r3} + 400: e8bd4000 pop {lr} + 404: e12fff1e bx lr + +00000408 <pipe>: + 408: e92d4000 push {lr} + 40c: e92d0008 push {r3} + 410: e92d0004 push {r2} + 414: e92d0002 push {r1} + 418: e92d0001 push {r0} + 41c: e3a00004 mov r0, #4 + 420: ef000040 svc 0x00000040 + 424: e8bd0002 pop {r1} + 428: e8bd0002 pop {r1} + 42c: e8bd0004 pop {r2} + 430: e8bd0008 pop {r3} + 434: e8bd4000 pop {lr} + 438: e12fff1e bx lr + +0000043c <read>: + 43c: e92d4000 push {lr} + 440: e92d0008 push {r3} + 444: e92d0004 push {r2} + 448: e92d0002 push {r1} + 44c: e92d0001 push {r0} + 450: e3a00005 mov r0, #5 + 454: ef000040 svc 0x00000040 + 458: e8bd0002 pop {r1} + 45c: e8bd0002 pop {r1} + 460: e8bd0004 pop {r2} + 464: e8bd0008 pop {r3} + 468: e8bd4000 pop {lr} + 46c: e12fff1e bx lr + +00000470 <write>: + 470: e92d4000 push {lr} + 474: e92d0008 push {r3} + 478: e92d0004 push {r2} + 47c: e92d0002 push {r1} + 480: e92d0001 push {r0} + 484: e3a00010 mov r0, #16 + 488: ef000040 svc 0x00000040 + 48c: e8bd0002 pop {r1} + 490: e8bd0002 pop {r1} + 494: e8bd0004 pop {r2} + 498: e8bd0008 pop {r3} + 49c: e8bd4000 pop {lr} + 4a0: e12fff1e bx lr + +000004a4 <close>: + 4a4: e92d4000 push {lr} + 4a8: e92d0008 push {r3} + 4ac: e92d0004 push {r2} + 4b0: e92d0002 push {r1} + 4b4: e92d0001 push {r0} + 4b8: e3a00015 mov r0, #21 + 4bc: ef000040 svc 0x00000040 + 4c0: e8bd0002 pop {r1} + 4c4: e8bd0002 pop {r1} + 4c8: e8bd0004 pop {r2} + 4cc: e8bd0008 pop {r3} + 4d0: e8bd4000 pop {lr} + 4d4: e12fff1e bx lr + +000004d8 <kill>: + 4d8: e92d4000 push {lr} + 4dc: e92d0008 push {r3} + 4e0: e92d0004 push {r2} + 4e4: e92d0002 push {r1} + 4e8: e92d0001 push {r0} + 4ec: e3a00006 mov r0, #6 + 4f0: ef000040 svc 0x00000040 + 4f4: e8bd0002 pop {r1} + 4f8: e8bd0002 pop {r1} + 4fc: e8bd0004 pop {r2} + 500: e8bd0008 pop {r3} + 504: e8bd4000 pop {lr} + 508: e12fff1e bx lr + +0000050c <exec>: + 50c: e92d4000 push {lr} + 510: e92d0008 push {r3} + 514: e92d0004 push {r2} + 518: e92d0002 push {r1} + 51c: e92d0001 push {r0} + 520: e3a00007 mov r0, #7 + 524: ef000040 svc 0x00000040 + 528: e8bd0002 pop {r1} + 52c: e8bd0002 pop {r1} + 530: e8bd0004 pop {r2} + 534: e8bd0008 pop {r3} + 538: e8bd4000 pop {lr} + 53c: e12fff1e bx lr + +00000540 <open>: + 540: e92d4000 push {lr} + 544: e92d0008 push {r3} + 548: e92d0004 push {r2} + 54c: e92d0002 push {r1} + 550: e92d0001 push {r0} + 554: e3a0000f mov r0, #15 + 558: ef000040 svc 0x00000040 + 55c: e8bd0002 pop {r1} + 560: e8bd0002 pop {r1} + 564: e8bd0004 pop {r2} + 568: e8bd0008 pop {r3} + 56c: e8bd4000 pop {lr} + 570: e12fff1e bx lr + +00000574 <mknod>: + 574: e92d4000 push {lr} + 578: e92d0008 push {r3} + 57c: e92d0004 push {r2} + 580: e92d0002 push {r1} + 584: e92d0001 push {r0} + 588: e3a00011 mov r0, #17 + 58c: ef000040 svc 0x00000040 + 590: e8bd0002 pop {r1} + 594: e8bd0002 pop {r1} + 598: e8bd0004 pop {r2} + 59c: e8bd0008 pop {r3} + 5a0: e8bd4000 pop {lr} + 5a4: e12fff1e bx lr + +000005a8 <unlink>: + 5a8: e92d4000 push {lr} + 5ac: e92d0008 push {r3} + 5b0: e92d0004 push {r2} + 5b4: e92d0002 push {r1} + 5b8: e92d0001 push {r0} + 5bc: e3a00012 mov r0, #18 + 5c0: ef000040 svc 0x00000040 + 5c4: e8bd0002 pop {r1} + 5c8: e8bd0002 pop {r1} + 5cc: e8bd0004 pop {r2} + 5d0: e8bd0008 pop {r3} + 5d4: e8bd4000 pop {lr} + 5d8: e12fff1e bx lr + +000005dc <fstat>: + 5dc: e92d4000 push {lr} + 5e0: e92d0008 push {r3} + 5e4: e92d0004 push {r2} + 5e8: e92d0002 push {r1} + 5ec: e92d0001 push {r0} + 5f0: e3a00008 mov r0, #8 + 5f4: ef000040 svc 0x00000040 + 5f8: e8bd0002 pop {r1} + 5fc: e8bd0002 pop {r1} + 600: e8bd0004 pop {r2} + 604: e8bd0008 pop {r3} + 608: e8bd4000 pop {lr} + 60c: e12fff1e bx lr + +00000610 <link>: + 610: e92d4000 push {lr} + 614: e92d0008 push {r3} + 618: e92d0004 push {r2} + 61c: e92d0002 push {r1} + 620: e92d0001 push {r0} + 624: e3a00013 mov r0, #19 + 628: ef000040 svc 0x00000040 + 62c: e8bd0002 pop {r1} + 630: e8bd0002 pop {r1} + 634: e8bd0004 pop {r2} + 638: e8bd0008 pop {r3} + 63c: e8bd4000 pop {lr} + 640: e12fff1e bx lr + +00000644 <mkdir>: + 644: e92d4000 push {lr} + 648: e92d0008 push {r3} + 64c: e92d0004 push {r2} + 650: e92d0002 push {r1} + 654: e92d0001 push {r0} + 658: e3a00014 mov r0, #20 + 65c: ef000040 svc 0x00000040 + 660: e8bd0002 pop {r1} + 664: e8bd0002 pop {r1} + 668: e8bd0004 pop {r2} + 66c: e8bd0008 pop {r3} + 670: e8bd4000 pop {lr} + 674: e12fff1e bx lr + +00000678 <chdir>: + 678: e92d4000 push {lr} + 67c: e92d0008 push {r3} + 680: e92d0004 push {r2} + 684: e92d0002 push {r1} + 688: e92d0001 push {r0} + 68c: e3a00009 mov r0, #9 + 690: ef000040 svc 0x00000040 + 694: e8bd0002 pop {r1} + 698: e8bd0002 pop {r1} + 69c: e8bd0004 pop {r2} + 6a0: e8bd0008 pop {r3} + 6a4: e8bd4000 pop {lr} + 6a8: e12fff1e bx lr + +000006ac <dup>: + 6ac: e92d4000 push {lr} + 6b0: e92d0008 push {r3} + 6b4: e92d0004 push {r2} + 6b8: e92d0002 push {r1} + 6bc: e92d0001 push {r0} + 6c0: e3a0000a mov r0, #10 + 6c4: ef000040 svc 0x00000040 + 6c8: e8bd0002 pop {r1} + 6cc: e8bd0002 pop {r1} + 6d0: e8bd0004 pop {r2} + 6d4: e8bd0008 pop {r3} + 6d8: e8bd4000 pop {lr} + 6dc: e12fff1e bx lr + +000006e0 <getpid>: + 6e0: e92d4000 push {lr} + 6e4: e92d0008 push {r3} + 6e8: e92d0004 push {r2} + 6ec: e92d0002 push {r1} + 6f0: e92d0001 push {r0} + 6f4: e3a0000b mov r0, #11 + 6f8: ef000040 svc 0x00000040 + 6fc: e8bd0002 pop {r1} + 700: e8bd0002 pop {r1} + 704: e8bd0004 pop {r2} + 708: e8bd0008 pop {r3} + 70c: e8bd4000 pop {lr} + 710: e12fff1e bx lr + +00000714 <sbrk>: + 714: e92d4000 push {lr} + 718: e92d0008 push {r3} + 71c: e92d0004 push {r2} + 720: e92d0002 push {r1} + 724: e92d0001 push {r0} + 728: e3a0000c mov r0, #12 + 72c: ef000040 svc 0x00000040 + 730: e8bd0002 pop {r1} + 734: e8bd0002 pop {r1} + 738: e8bd0004 pop {r2} + 73c: e8bd0008 pop {r3} + 740: e8bd4000 pop {lr} + 744: e12fff1e bx lr + +00000748 <sleep>: + 748: e92d4000 push {lr} + 74c: e92d0008 push {r3} + 750: e92d0004 push {r2} + 754: e92d0002 push {r1} + 758: e92d0001 push {r0} + 75c: e3a0000d mov r0, #13 + 760: ef000040 svc 0x00000040 + 764: e8bd0002 pop {r1} + 768: e8bd0002 pop {r1} + 76c: e8bd0004 pop {r2} + 770: e8bd0008 pop {r3} + 774: e8bd4000 pop {lr} + 778: e12fff1e bx lr + +0000077c <uptime>: + 77c: e92d4000 push {lr} + 780: e92d0008 push {r3} + 784: e92d0004 push {r2} + 788: e92d0002 push {r1} + 78c: e92d0001 push {r0} + 790: e3a0000e mov r0, #14 + 794: ef000040 svc 0x00000040 + 798: e8bd0002 pop {r1} + 79c: e8bd0002 pop {r1} + 7a0: e8bd0004 pop {r2} + 7a4: e8bd0008 pop {r3} + 7a8: e8bd4000 pop {lr} + 7ac: e12fff1e bx lr