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