From d3cf3f08d1343d6b265516d5a79ce2d197b59d26 Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Sun, 4 Jan 2026 14:05:49 +0800 Subject: feat(file-system): implement read and write FAT32 File System and basic shell --- build/user/echo | Bin 0 -> 168112 bytes build/user/echo.asm | 10641 ++++++++++++++++++++++++++++ build/user/echo.sym | 189 + build/user/entry.o | Bin 3344 -> 3184 bytes build/user/init | Bin 0 -> 168904 bytes build/user/init.asm | 10687 ++++++++++++++++++++++++++++ build/user/init.o | Bin 16896 -> 17560 bytes build/user/init.sym | 189 + build/user/initcode | Bin 30504 -> 30536 bytes build/user/initcode.asm | 14216 +++++++++++++++++++------------------- build/user/initcode.out | Bin 168776 -> 168904 bytes build/user/ls | Bin 0 -> 170752 bytes build/user/ls.asm | 10822 +++++++++++++++++++++++++++++ build/user/ls.sym | 191 + build/user/mkdir | Bin 0 -> 168216 bytes build/user/mkdir.asm | 10640 ++++++++++++++++++++++++++++ build/user/mkdir.sym | 189 + build/user/sh | Bin 204528 -> 204840 bytes build/user/sh.asm | 17189 +++++++++++++++++++++++----------------------- build/user/sh.o | Bin 287784 -> 287920 bytes build/user/sh.sym | 223 + build/user/usys.o | Bin 5392 -> 5512 bytes 22 files changed, 59458 insertions(+), 15718 deletions(-) create mode 100755 build/user/echo create mode 100644 build/user/echo.asm create mode 100644 build/user/echo.sym create mode 100755 build/user/init create mode 100644 build/user/init.asm create mode 100644 build/user/init.sym create mode 100755 build/user/ls create mode 100644 build/user/ls.asm create mode 100644 build/user/ls.sym create mode 100755 build/user/mkdir create mode 100644 build/user/mkdir.asm create mode 100644 build/user/mkdir.sym create mode 100644 build/user/sh.sym (limited to 'build/user') diff --git a/build/user/echo b/build/user/echo new file mode 100755 index 0000000..e070770 Binary files /dev/null and b/build/user/echo differ diff --git a/build/user/echo.asm b/build/user/echo.asm new file mode 100644 index 0000000..b2210f2 --- /dev/null +++ b/build/user/echo.asm @@ -0,0 +1,10641 @@ + +build/user/echo: file format elf64-littleriscv + + +Disassembly of section .text: + +0000000000000000
: +#include "user/user.h" +#include "ulib/stdio.h" +#include "ulib/string.h" + +int main(int argc, char* argv[]) +{ + 0: 7179 addi sp,sp,-48 + 2: f406 sd ra,40(sp) + int i; + + for (i = 1; i < argc; i++) + 4: 4785 li a5,1 + 6: 06a7d463 bge a5,a0,6e + a: e84a sd s2,16(sp) + c: ffe5091b addiw s2,a0,-2 + 10: 02091793 slli a5,s2,0x20 + 14: 01d7d913 srli s2,a5,0x1d + 18: 01058793 addi a5,a1,16 + 1c: f022 sd s0,32(sp) + 1e: e44e sd s3,8(sp) + 20: ec26 sd s1,24(sp) + 22: 00858413 addi s0,a1,8 + 26: 993e add s2,s2,a5 + { + write(1, argv[i], strlen(argv[i])); + if (i + 1 < argc) + { + write(1, " ", 1); + 28: 00005997 auipc s3,0x5 + 2c: fb898993 addi s3,s3,-72 # 4fe0 <_GLOBAL__sub_I__ZSt3cin+0x32> + 30: a019 j 36 + 32: 07c000ef jal ae + write(1, argv[i], strlen(argv[i])); + 36: 6004 ld s1,0(s0) + if (i + 1 < argc) + 38: 0421 addi s0,s0,8 + write(1, argv[i], strlen(argv[i])); + 3a: 8526 mv a0,s1 + 3c: 2f3040ef jal 4b2e + 40: 0005061b sext.w a2,a0 + 44: 85a6 mv a1,s1 + 46: 4505 li a0,1 + 48: 066000ef jal ae + write(1, " ", 1); + 4c: 4605 li a2,1 + 4e: 85ce mv a1,s3 + 50: 4505 li a0,1 + if (i + 1 < argc) + 52: ff2410e3 bne s0,s2,32 + } + else + { + write(1, "\n", 1); + 56: 4605 li a2,1 + 58: 00005597 auipc a1,0x5 + 5c: f9058593 addi a1,a1,-112 # 4fe8 <_GLOBAL__sub_I__ZSt3cin+0x3a> + 60: 4505 li a0,1 + 62: 04c000ef jal ae + 66: 7402 ld s0,32(sp) + 68: 64e2 ld s1,24(sp) + 6a: 6942 ld s2,16(sp) + 6c: 69a2 ld s3,8(sp) + } + } + exit(0); + 6e: 4501 li a0,0 + 70: 35c040ef jal 43cc + 74: 70a2 ld ra,40(sp) + 76: 4501 li a0,0 + 78: 6145 addi sp,sp,48 + 7a: 8082 ret + +000000000000007c <_start>: +.global _start + +_start: + + + call main + 7c: f85ff0ef jal 0
+ + call exit + 80: 34c040ef jal 43cc + + 84: a001 j 84 <_start+0x8> + +0000000000000086 : + name: \ + li a7, SYS_ ## sysname; \ + ecall; \ + ret + +SYSCALL_NAME(sys_exit, exit) + 86: 488d li a7,3 + 88: 00000073 ecall + 8c: 8082 ret + +000000000000008e : + +SYSCALL(fork) + 8e: 4889 li a7,2 + 90: 00000073 ecall + 94: 8082 ret + +0000000000000096 : +SYSCALL(wait) + 96: 4891 li a7,4 + 98: 00000073 ecall + 9c: 8082 ret + +000000000000009e : +SYSCALL(pipe) + 9e: 4895 li a7,5 + a0: 00000073 ecall + a4: 8082 ret + +00000000000000a6 : +SYSCALL(read) + a6: 4899 li a7,6 + a8: 00000073 ecall + ac: 8082 ret + +00000000000000ae : +SYSCALL(write) + ae: 48c5 li a7,17 + b0: 00000073 ecall + b4: 8082 ret + +00000000000000b6 : +SYSCALL(close) + b6: 48d9 li a7,22 + b8: 00000073 ecall + bc: 8082 ret + +00000000000000be : +SYSCALL(kill) + be: 489d li a7,7 + c0: 00000073 ecall + c4: 8082 ret + +00000000000000c6 : +SYSCALL(exec) + c6: 48a1 li a7,8 + c8: 00000073 ecall + cc: 8082 ret + +00000000000000ce : +SYSCALL(open) + ce: 48c1 li a7,16 + d0: 00000073 ecall + d4: 8082 ret + +00000000000000d6 : +SYSCALL(mknod) + d6: 48c9 li a7,18 + d8: 00000073 ecall + dc: 8082 ret + +00000000000000de : +SYSCALL(unlink) + de: 48cd li a7,19 + e0: 00000073 ecall + e4: 8082 ret + +00000000000000e6 : +SYSCALL(fstat) + e6: 48a5 li a7,9 + e8: 00000073 ecall + ec: 8082 ret + +00000000000000ee : +SYSCALL(link) + ee: 48d1 li a7,20 + f0: 00000073 ecall + f4: 8082 ret + +00000000000000f6 : +SYSCALL(mkdir) + f6: 48d5 li a7,21 + f8: 00000073 ecall + fc: 8082 ret + +00000000000000fe : +SYSCALL(chdir) + fe: 48a9 li a7,10 + 100: 00000073 ecall + 104: 8082 ret + +0000000000000106 : +SYSCALL(dup) + 106: 48ad li a7,11 + 108: 00000073 ecall + 10c: 8082 ret + +000000000000010e : +SYSCALL(getpid) + 10e: 48b1 li a7,12 + 110: 00000073 ecall + 114: 8082 ret + +0000000000000116 : +SYSCALL(sbrk) + 116: 48b5 li a7,13 + 118: 00000073 ecall + 11c: 8082 ret + +000000000000011e : +SYSCALL(sleep) + 11e: 48b9 li a7,14 + 120: 00000073 ecall + 124: 8082 ret + +0000000000000126 : +SYSCALL(uptime) + 126: 48bd li a7,15 + 128: 00000073 ecall + 12c: 8082 ret + +000000000000012e : +SYSCALL(putc) + 12e: 4885 li a7,1 + 130: 00000073 ecall + 134: 8082 ret + +0000000000000136 : +SYSCALL(disk_test) + 136: 48dd li a7,23 + 138: 00000073 ecall + 13c: 8082 ret + +000000000000013e : +SYSCALL(lseek) + 13e: 48e1 li a7,24 + 140: 00000073 ecall + 144: 8082 ret + +0000000000000146 : + 146: 48e5 li a7,25 + 148: 00000073 ecall + 14c: 8082 ret + +000000000000014e : + 14e: 45dc lw a5,12(a1) + 150: 4598 lw a4,8(a1) + 152: 9fb1 addw a5,a5,a2 + 154: c5dc sw a5,12(a1) + 156: 0007069b sext.w a3,a4 + 15a: 00e65463 bge a2,a4,162 + 15e: 0006069b sext.w a3,a2 + 162: c685 beqz a3,18a + 164: 619c ld a5,0(a1) + 166: 00a78e63 beq a5,a0,182 + 16a: 00d50633 add a2,a0,a3 + 16e: 00054703 lbu a4,0(a0) + 172: 0505 addi a0,a0,1 + 174: 0785 addi a5,a5,1 + 176: fee78fa3 sb a4,-1(a5) + 17a: fec56ae3 bltu a0,a2,16e + 17e: 6188 ld a0,0(a1) + 180: 4598 lw a4,8(a1) + 182: 9f15 subw a4,a4,a3 + 184: 9536 add a0,a0,a3 + 186: e188 sd a0,0(a1) + 188: c598 sw a4,8(a1) + 18a: 1ff00793 li a5,511 + 18e: 00e7d463 bge a5,a4,196 + 192: 6188 ld a0,0(a1) + 194: 8082 ret + 196: 01058513 addi a0,a1,16 + 19a: 8082 ret + +000000000000019c : + 19c: 45dc lw a5,12(a1) + 19e: 01058513 addi a0,a1,16 + 1a2: 9fb1 addw a5,a5,a2 + 1a4: c5dc sw a5,12(a1) + 1a6: 8082 ret + +00000000000001a8 : + 1a8: e20508d3 fmv.x.d a7,fa0 + 1ac: 82aa mv t0,a0 + 1ae: 4348d813 srai a6,a7,0x34 + 1b2: 8ec6 mv t4,a7 + 1b4: 7ff87813 andi a6,a6,2047 + 1b8: 8346 mv t1,a7 + 1ba: 03f8d513 srli a0,a7,0x3f + 1be: 0008d663 bgez a7,1ca + 1c2: 22a517d3 fneg.d fa5,fa0 + 1c6: e20788d3 fmv.x.d a7,fa5 + 1ca: 7ff00e13 li t3,2047 + 1ce: 35c80663 beq a6,t3,51a + 1d2: 1101 addi sp,sp,-32 + 1d4: 14080363 beqz a6,31a + 1d8: c018081b addiw a6,a6,-1023 + 1dc: ec22 sd s0,24(sp) + 1de: 02081313 slli t1,a6,0x20 + 1e2: 66034d63 bltz t1,85c + 1e6: 4d100313 li t1,1233 + 1ea: 0303033b mulw t1,t1,a6 + 1ee: 4849 li a6,18 + 1f0: 40c3531b sraiw t1,t1,0xc + 1f4: 0013039b addiw t2,t1,1 + 1f8: 4078083b subw a6,a6,t2 + 1fc: 4359 li t1,22 + 1fe: 17036163 bltu t1,a6,360 + 202: 00005317 auipc t1,0x5 + 206: 12630313 addi t1,t1,294 # 5328 + 20a: 080e slli a6,a6,0x3 + 20c: 981a add a6,a6,t1 + 20e: 00083e03 ld t3,0(a6) + 212: 00083607 fld fa2,0(a6) + 216: f20887d3 fmv.d.x fa5,a7 + 21a: f8000837 lui a6,0xf8000 + 21e: 01187333 and t1,a6,a7 + 222: 01c87833 and a6,a6,t3 + 226: 12f676d3 fmul.d fa3,fa2,fa5 + 22a: f20807d3 fmv.d.x fa5,a6 + 22e: f2030753 fmv.d.x fa4,t1 + 232: f20305d3 fmv.d.x fa1,t1 + 236: 0af67653 fsub.d fa2,fa2,fa5 + 23a: f20887d3 fmv.d.x fa5,a7 + 23e: 0ae7f753 fsub.d fa4,fa5,fa4 + 242: f20807d3 fmv.d.x fa5,a6 + 246: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 + 24a: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 + 24e: f20805d3 fmv.d.x fa1,a6 + 252: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 + 256: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 + 25a: 02d777d3 fadd.d fa5,fa4,fa3 + 25e: 3782e837 lui a6,0x3782e + 262: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37826317> + 266: 0832 slli a6,a6,0xc + 268: 9d980813 addi a6,a6,-1575 + 26c: 084a slli a6,a6,0x12 + 26e: 187d addi a6,a6,-1 + 270: c22798d3 fcvt.l.d a7,fa5,rtz + 274: 0ad7f6d3 fsub.d fa3,fa5,fa3 + 278: 00070e1b sext.w t3,a4 + 27c: d228f653 fcvt.d.l fa2,a7 + 280: 0ac7f5d3 fsub.d fa1,fa5,fa2 + 284: 0ad77753 fsub.d fa4,fa4,fa3 + 288: 0af5f6d3 fsub.d fa3,fa1,fa5 + 28c: 0ad5f553 fsub.d fa0,fa1,fa3 + 290: 02d67653 fadd.d fa2,fa2,fa3 + 294: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 298: 0ac7f7d3 fsub.d fa5,fa5,fa2 + 29c: 02b7f7d3 fadd.d fa5,fa5,fa1 + 2a0: 02e7f7d3 fadd.d fa5,fa5,fa4 + 2a4: c2279fd3 fcvt.l.d t6,fa5,rtz + 2a8: 9fc6 add t6,t6,a7 + 2aa: 19f87063 bgeu a6,t6,42a + 2ae: 2385 addiw t2,t2,1 + 2b0: 300e4363 bltz t3,5b6 + 2b4: 00e3833b addw t1,t2,a4 + 2b8: 475d li a4,23 + 2ba: 30677663 bgeu a4,t1,5c6 + 2be: 577d li a4,-1 + 2c0: 9301 srli a4,a4,0x20 + 2c2: 43f75863 bge a4,t6,6f2 + 2c6: 07d00313 li t1,125 + 2ca: 877e mv a4,t6 + 2cc: 4e01 li t3,0 + 2ce: 3e800813 li a6,1000 + 2d2: 130e slli t1,t1,0x23 + 2d4: a039 j 2e2 + 2d6: 030747b3 div a5,a4,a6 + 2da: 4e05 li t3,1 + 2dc: 40674c63 blt a4,t1,6f4 + 2e0: 873e mv a4,a5 + 2e2: 030768b3 rem a7,a4,a6 + 2e6: fe0888e3 beqz a7,2d6 + 2ea: 400e0163 beqz t3,6ec + 2ee: 8fbe mv t6,a5 + 2f0: 05f5e7b7 lui a5,0x5f5e + 2f4: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56947> + 2f8: 04060413 addi s0,a2,64 + 2fc: 03860613 addi a2,a2,56 + 300: 15f7c863 blt a5,t6,450 + 304: 000f871b sext.w a4,t6 + 308: 20070463 beqz a4,510 + 30c: 4f01 li t5,0 + 30e: 4f81 li t6,0 + 310: 00006e97 auipc t4,0x6 + 314: 5b0e8e93 addi t4,t4,1456 # 68c0 + 318: aaa9 j 472 + 31a: 0306 slli t1,t1,0x1 + 31c: 3e030e63 beqz t1,718 + 320: 4305 li t1,1 + 322: ec22 sd s0,24(sp) + 324: 00ce9e13 slli t3,t4,0xc + 328: 134e slli t1,t1,0x33 + 32a: 520e4063 bltz t3,84a + 32e: 40135313 srai t1,t1,0x1 + 332: 01d37e33 and t3,t1,t4 + 336: 8f42 mv t5,a6 + 338: 387d addiw a6,a6,-1 + 33a: fe0e0ae3 beqz t3,32e + 33e: 26900313 li t1,617 + 342: c00f081b addiw a6,t5,-1024 + 346: 0268083b mulw a6,a6,t1 + 34a: 41f8531b sraiw t1,a6,0x1f + 34e: 0153531b srliw t1,t1,0x15 + 352: 0103033b addw t1,t1,a6 + 356: 40b3539b sraiw t2,t1,0xb + 35a: 4849 li a6,18 + 35c: 4078083b subw a6,a6,t2 + 360: 41f8531b sraiw t1,a6,0x1f + 364: 00684eb3 xor t4,a6,t1 + 368: 406e8f3b subw t5,t4,t1 + 36c: 2c900313 li t1,713 + 370: 03e3033b mulw t1,t1,t5 + 374: 4e35 li t3,13 + 376: 8efa mv t4,t5 + 378: 40e35f9b sraiw t6,t1,0xe + 37c: 837e mv t1,t6 + 37e: 23fe4363 blt t3,t6,5a4 + 382: 5e25 li t3,-23 + 384: 026e0e3b mulw t3,t3,t1 + 388: 01de0ebb addw t4,t3,t4 + 38c: 22084f63 bltz a6,5ca + 390: f2000753 fmv.d.x fa4,zero + 394: 00005e17 auipc t3,0x5 + 398: f94e0e13 addi t3,t3,-108 # 5328 + 39c: 380e9e63 bnez t4,738 + 3a0: f20887d3 fmv.d.x fa5,a7 + 3a4: fff30f1b addiw t5,t1,-1 + 3a8: 0f0e slli t5,t5,0x3 + 3aa: 02f777d3 fadd.d fa5,fa4,fa5 + 3ae: 030e slli t1,t1,0x3 + 3b0: 9f72 add t5,t5,t3 + 3b2: 9e1a add t3,t3,t1 + 3b4: 2e0e3e03 ld t3,736(t3) + 3b8: 2e8f3587 fld fa1,744(t5) + 3bc: f8000837 lui a6,0xf8000 + 3c0: e2078ed3 fmv.x.d t4,fa5 + 3c4: 12b7f6d3 fmul.d fa3,fa5,fa1 + 3c8: f2088653 fmv.d.x fa2,a7 + 3cc: 01d87333 and t1,a6,t4 + 3d0: 01c87833 and a6,a6,t3 + 3d4: f20807d3 fmv.d.x fa5,a6 + 3d8: f2030053 fmv.d.x ft0,t1 + 3dc: 0af5f553 fsub.d fa0,fa1,fa5 + 3e0: f20e87d3 fmv.d.x fa5,t4 + 3e4: 0ac7f0d3 fsub.d ft1,fa5,fa2 + 3e8: f20807d3 fmv.d.x fa5,a6 + 3ec: f2030653 fmv.d.x fa2,t1 + 3f0: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 + 3f4: f20e87d3 fmv.d.x fa5,t4 + 3f8: 0a177753 fsub.d fa4,fa4,ft1 + 3fc: f20300d3 fmv.d.x ft1,t1 + 400: 0a07f7d3 fsub.d fa5,fa5,ft0 + 404: 350f3007 fld ft0,848(t5) + 408: 62157643 fmadd.d fa2,fa0,ft1,fa2 + 40c: 12b77753 fmul.d fa4,fa4,fa1 + 410: f20805d3 fmv.d.x fa1,a6 + 414: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 + 418: f20e85d3 fmv.d.x fa1,t4 + 41c: 7205f743 fmadd.d fa4,fa1,ft0,fa4 + 420: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 + 424: 02e7f753 fadd.d fa4,fa5,fa4 + 428: bd0d j 25a + 42a: 00e3833b addw t1,t2,a4 + 42e: 2a0e4663 bltz t3,6da + 432: 475d li a4,23 + 434: 10677663 bgeu a4,t1,540 + 438: e80f93e3 bnez t6,2be + 43c: 05f5e7b7 lui a5,0x5f5e + 440: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56947> + 444: 04060413 addi s0,a2,64 + 448: 03860613 addi a2,a2,56 + 44c: ebf7dce3 bge a5,t6,304 + 450: 4f01 li t5,0 + 452: 00006e97 auipc t4,0x6 + 456: 46ee8e93 addi t4,t4,1134 # 68c0 + 45a: 05f5e7b7 lui a5,0x5f5e + 45e: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f56948> + 462: 02ffe833 rem a6,t6,a5 + 466: 02ffcfb3 div t6,t6,a5 + 46a: 0008071b sext.w a4,a6 + 46e: 0a080463 beqz a6,516 + 472: 8822 mv a6,s0 + 474: 06400893 li a7,100 + 478: 06300e13 li t3,99 + 47c: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff8846> + 47e: 0007031b sext.w t1,a4 + 482: 031777bb remuw a5,a4,a7 + 486: 2785 addiw a5,a5,1 + 488: 0017979b slliw a5,a5,0x1 + 48c: 1782 slli a5,a5,0x20 + 48e: 9381 srli a5,a5,0x20 + 490: 97f6 add a5,a5,t4 + 492: 0007d783 lhu a5,0(a5) + 496: 0317573b divuw a4,a4,a7 + 49a: 00f81023 sh a5,0(a6) + 49e: fc6e6fe3 bltu t3,t1,47c + 4a2: 008f0f3b addw t5,t5,s0 + 4a6: 410f0f3b subw t5,t5,a6 + 4aa: 020f8f63 beqz t6,4e8 + 4ae: 87c2 mv a5,a6 + 4b0: 03000713 li a4,48 + 4b4: 04c80c63 beq a6,a2,50c + 4b8: 17fd addi a5,a5,-1 + 4ba: 00e78023 sb a4,0(a5) + 4be: fec79de3 bne a5,a2,4b8 + 4c2: 408807b3 sub a5,a6,s0 + 4c6: 00ff07bb addw a5,t5,a5 + 4ca: 1461 addi s0,s0,-8 + 4cc: 00878f1b addiw t5,a5,8 + 4d0: 05f5e7b7 lui a5,0x5f5e + 4d4: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56947> + 4d8: ff840613 addi a2,s0,-8 + 4dc: f7f7cfe3 blt a5,t6,45a + 4e0: 000f871b sext.w a4,t6 + 4e4: 4f81 li t6,0 + 4e6: b771 j 472 + 4e8: 020f0563 beqz t5,512 + 4ec: 00084703 lbu a4,0(a6) + 4f0: 03000793 li a5,48 + 4f4: 22f70f63 beq a4,a5,732 + 4f8: 2f01 sext.w t5,t5 + 4fa: 0076a023 sw t2,0(a3) + 4fe: 6462 ld s0,24(sp) + 500: 0102b023 sd a6,0(t0) + 504: 01e5a023 sw t5,0(a1) + 508: 6105 addi sp,sp,32 + 50a: 8082 ret + 50c: 8442 mv s0,a6 + 50e: b7c9 j 4d0 + 510: 8822 mv a6,s0 + 512: 4f01 li t5,0 + 514: b7dd j 4fa + 516: 8822 mv a6,s0 + 518: bf59 j 4ae + 51a: 0eb2 slli t4,t4,0xc + 51c: 00005797 auipc a5,0x5 + 520: adc78793 addi a5,a5,-1316 # 4ff8 <_GLOBAL__sub_I__ZSt3cin+0x4a> + 524: 000e8663 beqz t4,530 + 528: 00005797 auipc a5,0x5 + 52c: ac878793 addi a5,a5,-1336 # 4ff0 <_GLOBAL__sub_I__ZSt3cin+0x42> + 530: 00f2b023 sd a5,0(t0) + 534: 679d lui a5,0x7 + 536: c29c sw a5,0(a3) + 538: 4f0d li t5,3 + 53a: 01e5a023 sw t5,0(a1) + 53e: 8082 ret + 540: 3b9ad737 lui a4,0x3b9ad + 544: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a5247> + 548: 07f76f63 bltu a4,t6,5c6 + 54c: 4805 li a6,1 + 54e: 02081713 slli a4,a6,0x20 + 552: 01d75893 srli a7,a4,0x1d + 556: 00005717 auipc a4,0x5 + 55a: 18a70713 addi a4,a4,394 # 56e0 + 55e: 9746 add a4,a4,a7 + 560: 4e51 li t3,20 + 562: a021 j 56a + 564: 2805 addiw a6,a6,1 + 566: edc809e3 beq a6,t3,438 + 56a: 00073883 ld a7,0(a4) + 56e: 0721 addi a4,a4,8 + 570: ff1ffae3 bgeu t6,a7,564 + 574: ed0372e3 bgeu t1,a6,438 + 578: 4068083b subw a6,a6,t1 + 57c: 475d li a4,23 + 57e: eb076de3 bltu a4,a6,438 + 582: 080e slli a6,a6,0x3 + 584: 00005717 auipc a4,0x5 + 588: da470713 addi a4,a4,-604 # 5328 + 58c: 9742 add a4,a4,a6 + 58e: 3b873803 ld a6,952(a4) + 592: 00185713 srli a4,a6,0x1 + 596: 977e add a4,a4,t6 + 598: 01176363 bltu a4,a7,59e + 59c: 2385 addiw t2,t2,1 + 59e: 03075fb3 divu t6,a4,a6 + 5a2: bd59 j 438 + 5a4: 4335 li t1,13 + 5a6: 5e25 li t3,-23 + 5a8: 026e0e3b mulw t3,t3,t1 + 5ac: 01de0ebb addw t4,t3,t4 + 5b0: de0850e3 bgez a6,390 + 5b4: a819 j 5ca + 5b6: 02571313 slli t1,a4,0x25 + 5ba: 02535313 srli t1,t1,0x25 + 5be: 0305 addi t1,t1,1 + 5c0: 475d li a4,23 + 5c2: ce676ee3 bltu a4,t1,2be + 5c6: 4829 li a6,10 + 5c8: b759 j 54e + 5ca: 260e8663 beqz t4,836 + 5ce: 00231e13 slli t3,t1,0x2 + 5d2: 41c30e33 sub t3,t1,t3 + 5d6: 0e0e slli t3,t3,0x3 + 5d8: 9e1a add t3,t3,t1 + 5da: fffe881b addiw a6,t4,-1 + 5de: 9e7a add t3,t3,t5 + 5e0: 00005e97 auipc t4,0x5 + 5e4: d48e8e93 addi t4,t4,-696 # 5328 + 5e8: 0e0e slli t3,t3,0x3 + 5ea: 080e slli a6,a6,0x3 + 5ec: 9876 add a6,a6,t4 + 5ee: 9ef2 add t4,t4,t3 + 5f0: 0b883607 fld fa2,184(a6) + 5f4: f20887d3 fmv.d.x fa5,a7 + 5f8: 0b0ebf03 ld t5,176(t4) + 5fc: f8000e37 lui t3,0xf8000 + 600: 011e7eb3 and t4,t3,a7 + 604: 12f676d3 fmul.d fa3,fa2,fa5 + 608: 01ee7e33 and t3,t3,t5 + 60c: f20e07d3 fmv.d.x fa5,t3 + 610: f20e0753 fmv.d.x fa4,t3 + 614: f20e8553 fmv.d.x fa0,t4 + 618: 0af67653 fsub.d fa2,fa2,fa5 + 61c: f20e87d3 fmv.d.x fa5,t4 + 620: f20e85d3 fmv.d.x fa1,t4 + 624: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 + 628: f2088753 fmv.d.x fa4,a7 + 62c: 0ab775d3 fsub.d fa1,fa4,fa1 + 630: 16883707 fld fa4,360(a6) + 634: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 + 638: f20e0553 fmv.d.x fa0,t3 + 63c: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 640: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 + 644: f20887d3 fmv.d.x fa5,a7 + 648: 5af77743 fmadd.d fa4,fa4,fa5,fa1 + 64c: c00f87e3 beqz t6,25a + 650: 02d777d3 fadd.d fa5,fa4,fa3 + 654: fff3089b addiw a7,t1,-1 + 658: 00005817 auipc a6,0x5 + 65c: cd080813 addi a6,a6,-816 # 5328 + 660: 030e slli t1,t1,0x3 + 662: 088e slli a7,a7,0x3 + 664: 98c2 add a7,a7,a6 + 666: 981a add a6,a6,t1 + 668: e2078e53 fmv.x.d t3,fa5 + 66c: 21083e83 ld t4,528(a6) + 670: f8000837 lui a6,0xf8000 + 674: 2188b507 fld fa0,536(a7) + 678: 01c87333 and t1,a6,t3 + 67c: 01d87833 and a6,a6,t4 + 680: f2080653 fmv.d.x fa2,a6 + 684: 12f577d3 fmul.d fa5,fa0,fa5 + 688: 2808b587 fld fa1,640(a7) + 68c: 0ac57053 fsub.d ft0,fa0,fa2 + 690: f20e0653 fmv.d.x fa2,t3 + 694: 0ad67153 fsub.d ft2,fa2,fa3 + 698: f20806d3 fmv.d.x fa3,a6 + 69c: f2030653 fmv.d.x fa2,t1 + 6a0: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 + 6a4: f20e06d3 fmv.d.x fa3,t3 + 6a8: 0ac6f653 fsub.d fa2,fa3,fa2 + 6ac: 22f786d3 fmv.d fa3,fa5 + 6b0: 0a2777d3 fsub.d fa5,fa4,ft2 + 6b4: f2030753 fmv.d.x fa4,t1 + 6b8: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 + 6bc: 12a7f7d3 fmul.d fa5,fa5,fa0 + 6c0: f2080553 fmv.d.x fa0,a6 + 6c4: 72a67743 fmadd.d fa4,fa2,fa0,fa4 + 6c8: f20e0553 fmv.d.x fa0,t3 + 6cc: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 6d0: 72067643 fmadd.d fa2,fa2,ft0,fa4 + 6d4: 02f67753 fadd.d fa4,fa2,fa5 + 6d8: b649 j 25a + 6da: 02571313 slli t1,a4,0x25 + 6de: 02535313 srli t1,t1,0x25 + 6e2: 0305 addi t1,t1,1 + 6e4: 475d li a4,23 + 6e6: d46769e3 bltu a4,t1,438 + 6ea: bd99 j 540 + 6ec: 87fe mv a5,t6 + 6ee: 8fbe mv t6,a5 + 6f0: b101 j 2f0 + 6f2: 87fe mv a5,t6 + 6f4: 3e800713 li a4,1000 + 6f8: 02e7f73b remuw a4,a5,a4 + 6fc: 2781 sext.w a5,a5 + 6fe: eb01 bnez a4,70e + 700: 3e800813 li a6,1000 + 704: 0307d7bb divuw a5,a5,a6 + 708: 0307f73b remuw a4,a5,a6 + 70c: df65 beqz a4,704 + 70e: 02079f93 slli t6,a5,0x20 + 712: 020fdf93 srli t6,t6,0x20 + 716: b31d j 43c + 718: 4785 li a5,1 + 71a: c29c sw a5,0(a3) + 71c: 00c2b023 sd a2,0(t0) + 720: 03000793 li a5,48 + 724: 00f60023 sb a5,0(a2) + 728: 4f05 li t5,1 + 72a: 01e5a023 sw t5,0(a1) + 72e: 6105 addi sp,sp,32 + 730: 8082 ret + 732: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff8849> + 734: 3f7d addiw t5,t5,-1 + 736: b3d1 j 4fa + 738: e826 sd s1,16(sp) + 73a: e44a sd s2,8(sp) + 73c: 4859 li a6,22 + 73e: 8976 mv s2,t4 + 740: 11d84363 blt a6,t4,846 + 744: 0009049b sext.w s1,s2 + 748: 00005e17 auipc t3,0x5 + 74c: be0e0e13 addi t3,t3,-1056 # 5328 + 750: 00349813 slli a6,s1,0x3 + 754: 9872 add a6,a6,t3 + 756: 00083687 fld fa3,0(a6) + 75a: 00083803 ld a6,0(a6) + 75e: f20887d3 fmv.d.x fa5,a7 + 762: f8000fb7 lui t6,0xf8000 + 766: 010ff833 and a6,t6,a6 + 76a: 12f6f553 fmul.d fa0,fa3,fa5 + 76e: f20807d3 fmv.d.x fa5,a6 + 772: 011ff433 and s0,t6,a7 + 776: f2040753 fmv.d.x fa4,s0 + 77a: 0af6f6d3 fsub.d fa3,fa3,fa5 + 77e: f20887d3 fmv.d.x fa5,a7 + 782: f2080653 fmv.d.x fa2,a6 + 786: 412e8ebb subw t4,t4,s2 + 78a: 0ae7f753 fsub.d fa4,fa5,fa4 + 78e: f20407d3 fmv.d.x fa5,s0 + 792: e20508d3 fmv.x.d a7,fa0 + 796: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 + 79a: f2040653 fmv.d.x fa2,s0 + 79e: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 + 7a2: f2080653 fmv.d.x fa2,a6 + 7a6: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 + 7aa: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 + 7ae: 080e8963 beqz t4,840 + 7b2: 02e577d3 fadd.d fa5,fa0,fa4 + 7b6: 0e8e slli t4,t4,0x3 + 7b8: 01de0833 add a6,t3,t4 + 7bc: 00083587 fld fa1,0(a6) + 7c0: 00231893 slli a7,t1,0x2 + 7c4: 411308b3 sub a7,t1,a7 + 7c8: 00389813 slli a6,a7,0x3 + 7cc: e2078453 fmv.x.d s0,fa5 + 7d0: 12f5f7d3 fmul.d fa5,fa1,fa5 + 7d4: 981a add a6,a6,t1 + 7d6: 987a add a6,a6,t5 + 7d8: 40980833 sub a6,a6,s1 + 7dc: 080e slli a6,a6,0x3 + 7de: 9872 add a6,a6,t3 + 7e0: 00083e83 ld t4,0(a6) + 7e4: 008ff833 and a6,t6,s0 + 7e8: e20788d3 fmv.x.d a7,fa5 + 7ec: f20806d3 fmv.d.x fa3,a6 + 7f0: f20407d3 fmv.d.x fa5,s0 + 7f4: 01dfffb3 and t6,t6,t4 + 7f8: f20880d3 fmv.d.x ft1,a7 + 7fc: 0ad7f653 fsub.d fa2,fa5,fa3 + 800: f20f87d3 fmv.d.x fa5,t6 + 804: 64c2 ld s1,16(sp) + 806: 6922 ld s2,8(sp) + 808: 0af5f053 fsub.d ft0,fa1,fa5 + 80c: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 + 810: f20407d3 fmv.d.x fa5,s0 + 814: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 818: f2080553 fmv.d.x fa0,a6 + 81c: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 + 820: 0af77753 fsub.d fa4,fa4,fa5 + 824: f20f87d3 fmv.d.x fa5,t6 + 828: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 + 82c: 7a067643 fmadd.d fa2,fa2,ft0,fa5 + 830: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 + 834: b6b5 j 3a0 + 836: f20886d3 fmv.d.x fa3,a7 + 83a: f2000753 fmv.d.x fa4,zero + 83e: b539 j 64c + 840: 64c2 ld s1,16(sp) + 842: 6922 ld s2,8(sp) + 844: beb1 j 3a0 + 846: 4959 li s2,22 + 848: bdf5 j 744 + 84a: e826 sd s1,16(sp) + 84c: e44a sd s2,8(sp) + 84e: ecc00393 li t2,-308 + 852: 4eed li t4,27 + 854: 4335 li t1,13 + 856: 14600f13 li t5,326 + 85a: b5cd j 73c + 85c: 26900313 li t1,617 + 860: 0303083b mulw a6,t1,a6 + 864: 41f8531b sraiw t1,a6,0x1f + 868: 0153531b srliw t1,t1,0x15 + 86c: 0103033b addw t1,t1,a6 + 870: 40b3539b sraiw t2,t1,0xb + 874: 4849 li a6,18 + 876: 4078083b subw a6,a6,t2 + 87a: b249 j 1fc + +000000000000087c <_in_char.part.0>: +static int _in_char(_InContext *ctx) + 87c: 87aa mv a5,a0 + if (ctx->fd == -1) + 87e: 4508 lw a0,8(a0) + 880: 577d li a4,-1 + 882: 00e51d63 bne a0,a4,89c <_in_char.part.0+0x20> + if (ctx->buf[ctx->pos] == '\0') + 886: 6b94 ld a3,16(a5) + 888: 6398 ld a4,0(a5) + 88a: 9736 add a4,a4,a3 + 88c: 00074603 lbu a2,0(a4) + 890: c60d beqz a2,8ba <_in_char.part.0+0x3e> + return (unsigned char)ctx->buf[ctx->pos++]; + 892: 0685 addi a3,a3,1 + 894: eb94 sd a3,16(a5) + 896: 00074503 lbu a0,0(a4) + 89a: 8082 ret +static int _in_char(_InContext *ctx) + 89c: 1101 addi sp,sp,-32 + if (read(ctx->fd, &c, 1) == 1) + 89e: 4605 li a2,1 + 8a0: 00f10593 addi a1,sp,15 +static int _in_char(_InContext *ctx) + 8a4: ec06 sd ra,24(sp) + if (read(ctx->fd, &c, 1) == 1) + 8a6: 801ff0ef jal a6 + 8aa: 4785 li a5,1 + 8ac: 00f51963 bne a0,a5,8be <_in_char.part.0+0x42> + return (unsigned char)c; + 8b0: 00f14503 lbu a0,15(sp) +} + 8b4: 60e2 ld ra,24(sp) + 8b6: 6105 addi sp,sp,32 + 8b8: 8082 ret + return -1; + 8ba: 557d li a0,-1 +} + 8bc: 8082 ret + return -1; + 8be: 557d li a0,-1 + 8c0: bfd5 j 8b4 <_in_char.part.0+0x38> + +00000000000008c2 <_skip_space>: +{ + 8c2: 7139 addi sp,sp,-64 + 8c4: f822 sd s0,48(sp) + 8c6: f426 sd s1,40(sp) + 8c8: f04a sd s2,32(sp) + 8ca: ec4e sd s3,24(sp) + 8cc: e852 sd s4,16(sp) + 8ce: fc06 sd ra,56(sp) + 8d0: 842a mv s0,a0 + ctx->ungotten = -1; + 8d2: 54fd li s1,-1 + if (read(ctx->fd, &c, 1) == 1) + 8d4: 00f10a13 addi s4,sp,15 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 8d8: 02000913 li s2,32 + 8dc: 4991 li s3,4 + if (ctx->ungotten >= 0) + 8de: 4c1c lw a5,24(s0) + 8e0: 0407d163 bgez a5,922 <_skip_space+0x60> + if (ctx->fd == -1) + 8e4: 4408 lw a0,8(s0) + if (read(ctx->fd, &c, 1) == 1) + 8e6: 4605 li a2,1 + 8e8: 85d2 mv a1,s4 + if (ctx->fd == -1) + 8ea: 02951e63 bne a0,s1,926 <_skip_space+0x64> + if (ctx->buf[ctx->pos] == '\0') + 8ee: 6818 ld a4,16(s0) + 8f0: 601c ld a5,0(s0) + return (unsigned char)ctx->buf[ctx->pos++]; + 8f2: 00170693 addi a3,a4,1 + if (ctx->buf[ctx->pos] == '\0') + 8f6: 97ba add a5,a5,a4 + 8f8: 0007c703 lbu a4,0(a5) # 7000 <_stdout+0x220> + 8fc: cb19 beqz a4,912 <_skip_space+0x50> + return (unsigned char)ctx->buf[ctx->pos++]; + 8fe: e814 sd a3,16(s0) + 900: 0007c783 lbu a5,0(a5) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 904: ff77871b addiw a4,a5,-9 + 908: fd278be3 beq a5,s2,8de <_skip_space+0x1c> + 90c: fce9f9e3 bgeu s3,a4,8de <_skip_space+0x1c> + ctx->ungotten = c; + 910: cc1c sw a5,24(s0) +} + 912: 70e2 ld ra,56(sp) + 914: 7442 ld s0,48(sp) + 916: 74a2 ld s1,40(sp) + 918: 7902 ld s2,32(sp) + 91a: 69e2 ld s3,24(sp) + 91c: 6a42 ld s4,16(sp) + 91e: 6121 addi sp,sp,64 + 920: 8082 ret + ctx->ungotten = -1; + 922: cc04 sw s1,24(s0) + return c; + 924: b7c5 j 904 <_skip_space+0x42> + if (read(ctx->fd, &c, 1) == 1) + 926: f80ff0ef jal a6 + 92a: 4785 li a5,1 + 92c: fef513e3 bne a0,a5,912 <_skip_space+0x50> + return (unsigned char)c; + 930: 00f14783 lbu a5,15(sp) + 934: bfc1 j 904 <_skip_space+0x42> + +0000000000000936 <_vscanf_core.constprop.0>: +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + 936: 7155 addi sp,sp,-208 + 938: e586 sd ra,200(sp) + 93a: e95a sd s6,144(sp) + while (*p) + 93c: 0005c783 lbu a5,0(a1) +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + 940: e432 sd a2,8(sp) + while (*p) + 942: 68078b63 beqz a5,fd8 <_vscanf_core.constprop.0+0x6a2> + 946: e1a2 sd s0,192(sp) + 948: fd26 sd s1,184(sp) + 94a: f152 sd s4,160(sp) + 94c: ed56 sd s5,152(sp) + 94e: f4ee sd s11,104(sp) + 950: 842e mv s0,a1 + 952: 8daa mv s11,a0 + int assigned = 0; + 954: 4b01 li s6,0 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 956: 02000493 li s1,32 + 95a: 4a91 li s5,4 + if (*p != '%') + 95c: 02500a13 li s4,37 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 960: 04978763 beq a5,s1,9ae <_vscanf_core.constprop.0+0x78> + 964: ff77869b addiw a3,a5,-9 + 968: 0ff6f693 zext.b a3,a3 + 96c: 04daf163 bgeu s5,a3,9ae <_vscanf_core.constprop.0+0x78> + if (*p != '%') + 970: 07478d63 beq a5,s4,9ea <_vscanf_core.constprop.0+0xb4> + _skip_space(ctx); + 974: 856e mv a0,s11 + 976: f4dff0ef jal 8c2 <_skip_space> + if (ctx->ungotten >= 0) + 97a: 018da503 lw a0,24(s11) + 97e: 04055a63 bgez a0,9d2 <_vscanf_core.constprop.0+0x9c> + 982: 856e mv a0,s11 + 984: ef9ff0ef jal 87c <_in_char.part.0> + if (c != *p) + 988: 00044783 lbu a5,0(s0) + 98c: 04a78a63 beq a5,a0,9e0 <_vscanf_core.constprop.0+0xaa> + if (c != -1) + 990: 57fd li a5,-1 + 992: 00f50463 beq a0,a5,99a <_vscanf_core.constprop.0+0x64> + ctx->ungotten = c; + 996: 00adac23 sw a0,24(s11) + 99a: 640e ld s0,192(sp) + 99c: 74ea ld s1,184(sp) + 99e: 7a0a ld s4,160(sp) + 9a0: 6aea ld s5,152(sp) + 9a2: 7da6 ld s11,104(sp) +} + 9a4: 60ae ld ra,200(sp) + 9a6: 855a mv a0,s6 + 9a8: 6b4a ld s6,144(sp) + 9aa: 6169 addi sp,sp,208 + 9ac: 8082 ret + _skip_space(ctx); + 9ae: 856e mv a0,s11 + 9b0: f13ff0ef jal 8c2 <_skip_space> + while (isspace(*p)) + 9b4: 00044783 lbu a5,0(s0) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 9b8: 4611 li a2,4 + 9ba: ff77869b addiw a3,a5,-9 + 9be: 0ff6f693 zext.b a3,a3 + 9c2: 00978663 beq a5,s1,9ce <_vscanf_core.constprop.0+0x98> + 9c6: 00d67463 bgeu a2,a3,9ce <_vscanf_core.constprop.0+0x98> + while (*p) + 9ca: fbd9 bnez a5,960 <_vscanf_core.constprop.0+0x2a> + 9cc: b7f9 j 99a <_vscanf_core.constprop.0+0x64> + p++; + 9ce: 0405 addi s0,s0,1 + 9d0: b7d5 j 9b4 <_vscanf_core.constprop.0+0x7e> + ctx->ungotten = -1; + 9d2: 57fd li a5,-1 + 9d4: 00fdac23 sw a5,24(s11) + if (c != *p) + 9d8: 00044783 lbu a5,0(s0) + 9dc: faa79ae3 bne a5,a0,990 <_vscanf_core.constprop.0+0x5a> + while (*p) + 9e0: 00144783 lbu a5,1(s0) + p++; + 9e4: 0405 addi s0,s0,1 + while (*p) + 9e6: ffad bnez a5,960 <_vscanf_core.constprop.0+0x2a> + 9e8: bf4d j 99a <_vscanf_core.constprop.0+0x64> + 9ea: f94a sd s2,176(sp) + 9ec: f54e sd s3,168(sp) + 9ee: e55e sd s7,136(sp) + 9f0: e162 sd s8,128(sp) + if (*p == '*') + 9f2: 00144583 lbu a1,1(s0) + 9f6: 02a00793 li a5,42 + 9fa: 22f58d63 beq a1,a5,c34 <_vscanf_core.constprop.0+0x2fe> + p++; + 9fe: 0405 addi s0,s0,1 + int suppress = 0; + a00: 4981 li s3,0 + while (*p >= '0' && *p <= '9') + a02: fd05861b addiw a2,a1,-48 + a06: 0ff67693 zext.b a3,a2 + a0a: 47a5 li a5,9 + a0c: 36d7e763 bltu a5,a3,d7a <_vscanf_core.constprop.0+0x444> + a10: 4781 li a5,0 + a12: 4825 li a6,9 + a14: a019 j a1a <_vscanf_core.constprop.0+0xe4> + width = width * 10 + (*p - '0'); + a16: 0016979b slliw a5,a3,0x1 + while (*p >= '0' && *p <= '9') + a1a: 00144583 lbu a1,1(s0) + width = width * 10 + (*p - '0'); + a1e: 00f6093b addw s2,a2,a5 + a22: 0029169b slliw a3,s2,0x2 + while (*p >= '0' && *p <= '9') + a26: fd05861b addiw a2,a1,-48 + a2a: 0ff67513 zext.b a0,a2 + width = width * 10 + (*p - '0'); + a2e: 012686bb addw a3,a3,s2 + p++; + a32: 0405 addi s0,s0,1 + while (*p >= '0' && *p <= '9') + a34: fea871e3 bgeu a6,a0,a16 <_vscanf_core.constprop.0+0xe0> + if (*p == 'l') + a38: 06c00693 li a3,108 + p++; + a3c: 00140b93 addi s7,s0,1 + if (*p == 'l') + a40: 1ed58f63 beq a1,a3,c3e <_vscanf_core.constprop.0+0x308> + else if (*p == 'h') + a44: 06800693 li a3,104 + a48: 2ad58863 beq a1,a3,cf8 <_vscanf_core.constprop.0+0x3c2> + char spec = *p++; + a4c: 00044c03 lbu s8,0(s0) + a50: 8ba2 mv s7,s0 + int len_mod = 0; + a52: ec02 sd zero,24(sp) + char spec = *p++; + a54: 06300693 li a3,99 + a58: 001b8413 addi s0,s7,1 + if (!spec) + a5c: 2adc0863 beq s8,a3,d0c <_vscanf_core.constprop.0+0x3d6> + a60: 1f86fc63 bgeu a3,s8,c58 <_vscanf_core.constprop.0+0x322> + a64: f9cc069b addiw a3,s8,-100 + a68: 0ff6f693 zext.b a3,a3 + a6c: 4651 li a2,20 + a6e: 0cd66e63 bltu a2,a3,b4a <_vscanf_core.constprop.0+0x214> + a72: 00120637 lui a2,0x120 + a76: 4585 li a1,1 + a78: 00d595b3 sll a1,a1,a3 + a7c: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x118869> + a80: 8e6d and a2,a2,a1 + a82: ee69 bnez a2,b5c <_vscanf_core.constprop.0+0x226> + a84: 89b9 andi a1,a1,14 + a86: 1e059263 bnez a1,c6a <_vscanf_core.constprop.0+0x334> + a8a: 463d li a2,15 + a8c: 0ac69f63 bne a3,a2,b4a <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + a90: 856e mv a0,s11 + a92: e31ff0ef jal 8c2 <_skip_space> + char *buf = suppress ? NULL : va_arg(ap, char *); + a96: ec02 sd zero,24(sp) + a98: 00099763 bnez s3,aa6 <_vscanf_core.constprop.0+0x170> + a9c: 67a2 ld a5,8(sp) + a9e: 6398 ld a4,0(a5) + aa0: 07a1 addi a5,a5,8 + aa2: e43e sd a5,8(sp) + aa4: ec3a sd a4,24(sp) + if (ctx->ungotten >= 0) + aa6: 018da503 lw a0,24(s11) + aaa: 2e055b63 bgez a0,da0 <_vscanf_core.constprop.0+0x46a> + aae: 856e mv a0,s11 + ab0: dcdff0ef jal 87c <_in_char.part.0> + while (c != -1 && !isspace(c)) + ab4: 56fd li a3,-1 + ab6: 6ad50363 beq a0,a3,115c <_vscanf_core.constprop.0+0x826> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + aba: 02000693 li a3,32 + abe: 3ed50963 beq a0,a3,eb0 <_vscanf_core.constprop.0+0x57a> + ac2: 46a5 li a3,9 + ac4: 3ed50663 beq a0,a3,eb0 <_vscanf_core.constprop.0+0x57a> + ac8: 46a9 li a3,10 + aca: 3ed50363 beq a0,a3,eb0 <_vscanf_core.constprop.0+0x57a> + ace: 46ad li a3,11 + ad0: 3ed50063 beq a0,a3,eb0 <_vscanf_core.constprop.0+0x57a> + ad4: 46b1 li a3,12 + ad6: 3cd50d63 beq a0,a3,eb0 <_vscanf_core.constprop.0+0x57a> + ada: 46b5 li a3,13 + adc: 3cd50a63 beq a0,a3,eb0 <_vscanf_core.constprop.0+0x57a> + ae0: 67e2 ld a5,24(sp) + ae2: fce6 sd s9,120(sp) + ae4: f8ea sd s10,112(sp) + ae6: e83e sd a5,16(sp) + ae8: 4d01 li s10,0 + while (c != -1 && !isspace(c)) + aea: 5c7d li s8,-1 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + aec: 02000c93 li s9,32 + if (width > 0 && i >= width) + af0: 01205463 blez s2,af8 <_vscanf_core.constprop.0+0x1c2> + af4: 052d5563 bge s10,s2,b3e <_vscanf_core.constprop.0+0x208> + if (!suppress) + af8: 00099563 bnez s3,b02 <_vscanf_core.constprop.0+0x1cc> + buf[i] = (char)c; + afc: 67c2 ld a5,16(sp) + afe: 00a78023 sb a0,0(a5) + if (ctx->ungotten >= 0) + b02: 018da503 lw a0,24(s11) + i++; + b06: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + b08: 30055963 bgez a0,e1a <_vscanf_core.constprop.0+0x4e4> + b0c: 856e mv a0,s11 + b0e: d6fff0ef jal 87c <_in_char.part.0> + while (c != -1 && !isspace(c)) + b12: 27850663 beq a0,s8,d7e <_vscanf_core.constprop.0+0x448> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + b16: 03950463 beq a0,s9,b3e <_vscanf_core.constprop.0+0x208> + b1a: 47a5 li a5,9 + b1c: 02f50163 beq a0,a5,b3e <_vscanf_core.constprop.0+0x208> + b20: 47a9 li a5,10 + b22: 00f50e63 beq a0,a5,b3e <_vscanf_core.constprop.0+0x208> + b26: 47ad li a5,11 + b28: 00f50b63 beq a0,a5,b3e <_vscanf_core.constprop.0+0x208> + b2c: 47b1 li a5,12 + b2e: 00f50863 beq a0,a5,b3e <_vscanf_core.constprop.0+0x208> + b32: 67c2 ld a5,16(sp) + b34: 0785 addi a5,a5,1 + b36: e83e sd a5,16(sp) + b38: 47b5 li a5,13 + b3a: faf51be3 bne a0,a5,af0 <_vscanf_core.constprop.0+0x1ba> + if (!suppress) + b3e: 64098a63 beqz s3,1192 <_vscanf_core.constprop.0+0x85c> + b42: 7ce6 ld s9,120(sp) + b44: 7d46 ld s10,112(sp) + ctx->ungotten = c; + b46: 00adac23 sw a0,24(s11) + while (*p) + b4a: 001bc783 lbu a5,1(s7) + b4e: 794a ld s2,176(sp) + b50: 79aa ld s3,168(sp) + b52: 6baa ld s7,136(sp) + b54: 6c0a ld s8,128(sp) + b56: e00795e3 bnez a5,960 <_vscanf_core.constprop.0+0x2a> + b5a: b581 j 99a <_vscanf_core.constprop.0+0x64> + _skip_space(ctx); + b5c: 856e mv a0,s11 + b5e: f8ea sd s10,112(sp) + b60: d63ff0ef jal 8c2 <_skip_space> + if (ctx->ungotten >= 0) + b64: 018da503 lw a0,24(s11) + b68: 24055063 bgez a0,da8 <_vscanf_core.constprop.0+0x472> + b6c: 856e mv a0,s11 + b6e: d0fff0ef jal 87c <_in_char.part.0> + if (c == '-' || c == '+') + b72: fd55069b addiw a3,a0,-43 + b76: 9af5 andi a3,a3,-3 + b78: 2681 sext.w a3,a3 + int i = 0, c = _in_char(ctx); + b7a: 4d01 li s10,0 + if (c == '-' || c == '+') + b7c: 3e068863 beqz a3,f6c <_vscanf_core.constprop.0+0x636> + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + b80: 07800693 li a3,120 + b84: 4641 li a2,16 + b86: 00dc0863 beq s8,a3,b96 <_vscanf_core.constprop.0+0x260> + b8a: 06900693 li a3,105 + b8e: 4629 li a2,10 + b90: 00dc1363 bne s8,a3,b96 <_vscanf_core.constprop.0+0x260> + b94: 4601 li a2,0 + while (c != -1 && i < 63) + b96: 56fd li a3,-1 + b98: 5cd50863 beq a0,a3,1168 <_vscanf_core.constprop.0+0x832> + b9c: fce6 sd s9,120(sp) + b9e: 02010893 addi a7,sp,32 + ba2: 01a88c33 add s8,a7,s10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ba6: 4cc1 li s9,16 + int digit = (c >= '0' && c <= '9'); + ba8: fd05069b addiw a3,a0,-48 + bac: 0005031b sext.w t1,a0 + bb0: 00a6b593 sltiu a1,a3,10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + bb4: 27960a63 beq a2,s9,e28 <_vscanf_core.constprop.0+0x4f2> + bb8: 2a060d63 beqz a2,e72 <_vscanf_core.constprop.0+0x53c> + int x = (c == 'x' || c == 'X'); + bbc: 07800793 li a5,120 + bc0: 2ef50363 beq a0,a5,ea6 <_vscanf_core.constprop.0+0x570> + bc4: fa850693 addi a3,a0,-88 + bc8: 0016b693 seqz a3,a3 + bcc: 4301 li t1,0 + if (width > 0 && i >= width) + bce: 01205463 blez s2,bd6 <_vscanf_core.constprop.0+0x2a0> + bd2: 032d5a63 bge s10,s2,c06 <_vscanf_core.constprop.0+0x2d0> + if (digit || hex || x) + bd6: 0066e6b3 or a3,a3,t1 + bda: 8ecd or a3,a3,a1 + bdc: c68d beqz a3,c06 <_vscanf_core.constprop.0+0x2d0> + num_buf[i++] = (char)c; + bde: 00ac0023 sb a0,0(s8) + if (ctx->ungotten >= 0) + be2: 018da503 lw a0,24(s11) + num_buf[i++] = (char)c; + be6: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + be8: 22055c63 bgez a0,e20 <_vscanf_core.constprop.0+0x4ea> + bec: 856e mv a0,s11 + bee: e832 sd a2,16(sp) + bf0: c8dff0ef jal 87c <_in_char.part.0> + while (c != -1 && i < 63) + bf4: 57fd li a5,-1 + bf6: 6642 ld a2,16(sp) + bf8: 3cf50263 beq a0,a5,fbc <_vscanf_core.constprop.0+0x686> + bfc: 03f00693 li a3,63 + c00: 0c05 addi s8,s8,1 + c02: fadd13e3 bne s10,a3,ba8 <_vscanf_core.constprop.0+0x272> + num_buf[i] = '\0'; + c06: 040d0793 addi a5,s10,64 + c0a: 1018 addi a4,sp,32 + c0c: 97ba add a5,a5,a4 + c0e: fc078023 sb zero,-64(a5) + ctx->ungotten = c; + c12: 00adac23 sw a0,24(s11) + c16: 7ce6 ld s9,120(sp) + if (i == 0) + c18: 1e0d0663 beqz s10,e04 <_vscanf_core.constprop.0+0x4ce> + if (!suppress) + c1c: 36098363 beqz s3,f82 <_vscanf_core.constprop.0+0x64c> + while (*p) + c20: 001bc783 lbu a5,1(s7) + { + c24: 794a ld s2,176(sp) + c26: 79aa ld s3,168(sp) + c28: 6baa ld s7,136(sp) + c2a: 6c0a ld s8,128(sp) + c2c: 7d46 ld s10,112(sp) + while (*p) + c2e: d20799e3 bnez a5,960 <_vscanf_core.constprop.0+0x2a> + c32: b3a5 j 99a <_vscanf_core.constprop.0+0x64> + while (*p >= '0' && *p <= '9') + c34: 00244583 lbu a1,2(s0) + suppress = 1; + c38: 4985 li s3,1 + p++; + c3a: 0409 addi s0,s0,2 + c3c: b3d9 j a02 <_vscanf_core.constprop.0+0xcc> + if (*p == 'l') + c3e: 00144c03 lbu s8,1(s0) + len_mod = 1; + c42: 4785 li a5,1 + c44: ec3e sd a5,24(sp) + if (*p == 'l') + c46: e0bc17e3 bne s8,a1,a54 <_vscanf_core.constprop.0+0x11e> + len_mod = 2; + c4a: 4789 li a5,2 + char spec = *p++; + c4c: 00244c03 lbu s8,2(s0) + p++; + c50: 00240b93 addi s7,s0,2 + len_mod = 2; + c54: ec3e sd a5,24(sp) + c56: bbfd j a54 <_vscanf_core.constprop.0+0x11e> + c58: 100c0763 beqz s8,d66 <_vscanf_core.constprop.0+0x430> + c5c: fbbc079b addiw a5,s8,-69 + c60: 0ff7f793 zext.b a5,a5 + c64: 4689 li a3,2 + c66: eef6e2e3 bltu a3,a5,b4a <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + c6a: 856e mv a0,s11 + c6c: f8ea sd s10,112(sp) + c6e: c55ff0ef jal 8c2 <_skip_space> + if (ctx->ungotten >= 0) + c72: 018da783 lw a5,24(s11) + c76: 1207dd63 bgez a5,db0 <_vscanf_core.constprop.0+0x47a> + c7a: 856e mv a0,s11 + c7c: c01ff0ef jal 87c <_in_char.part.0> + if (c == '-' || c == '+') + c80: fd55069b addiw a3,a0,-43 + c84: ffd6f613 andi a2,a3,-3 + c88: 2601 sext.w a2,a2 + c8a: 87aa mv a5,a0 + c8c: 12060c63 beqz a2,dc4 <_vscanf_core.constprop.0+0x48e> + while (c != -1 && i < 63) + c90: 567d li a2,-1 + c92: 16c50963 beq a0,a2,e04 <_vscanf_core.constprop.0+0x4ce> + c96: fce6 sd s9,120(sp) + int i = 0, c = _in_char(ctx); + c98: 4d01 li s10,0 + c9a: 80000937 lui s2,0x80000 + c9e: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff8847> + ca0: 0932 slli s2,s2,0xc + ca2: 80194913 xori s2,s2,-2047 + ca6: 093e slli s2,s2,0xf + ca8: 02010813 addi a6,sp,32 + cac: 01a80cb3 add s9,a6,s10 + cb0: 03a00c13 li s8,58 + cb4: 1935 addi s2,s2,-19 + cb6: a831 j cd2 <_vscanf_core.constprop.0+0x39c> + cb8: bc5ff0ef jal 87c <_in_char.part.0> + while (c != -1 && i < 63) + cbc: 577d li a4,-1 + cbe: 87aa mv a5,a0 + cc0: 2ee50563 beq a0,a4,faa <_vscanf_core.constprop.0+0x674> + cc4: 03f00713 li a4,63 + cc8: 0c85 addi s9,s9,1 + cca: 1eed0e63 beq s10,a4,ec6 <_vscanf_core.constprop.0+0x590> + cce: fd57869b addiw a3,a5,-43 + int c = ctx->ungotten; + cd2: 00d95633 srl a2,s2,a3 + cd6: 856e mv a0,s11 + cd8: 8a05 andi a2,a2,1 + cda: 1edc6663 bltu s8,a3,ec6 <_vscanf_core.constprop.0+0x590> + cde: 1e060463 beqz a2,ec6 <_vscanf_core.constprop.0+0x590> + num_buf[i++] = (char)c; + ce2: 00fc8023 sb a5,0(s9) + if (ctx->ungotten >= 0) + ce6: 018da783 lw a5,24(s11) + num_buf[i++] = (char)c; + cea: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + cec: fc07c6e3 bltz a5,cb8 <_vscanf_core.constprop.0+0x382> + ctx->ungotten = -1; + cf0: 577d li a4,-1 + cf2: 00edac23 sw a4,24(s11) + while (c != -1 && i < 63) + cf6: b7f9 j cc4 <_vscanf_core.constprop.0+0x38e> + if (*p == 'h') + cf8: 00144c03 lbu s8,1(s0) + int len_mod = 0; + cfc: ec02 sd zero,24(sp) + if (*p == 'h') + cfe: d4bc1be3 bne s8,a1,a54 <_vscanf_core.constprop.0+0x11e> + char spec = *p++; + d02: 00244c03 lbu s8,2(s0) + p++; + d06: 00240b93 addi s7,s0,2 + d0a: b3a9 j a54 <_vscanf_core.constprop.0+0x11e> + d0c: fce6 sd s9,120(sp) + d0e: f8ea sd s10,112(sp) + int count = (width > 0) ? width : 1; + d10: 00090c1b sext.w s8,s2 + d14: 0d205a63 blez s2,de8 <_vscanf_core.constprop.0+0x4b2> + char *buf = suppress ? NULL : va_arg(ap, char *); + d18: 4d01 li s10,0 + d1a: 06098d63 beqz s3,d94 <_vscanf_core.constprop.0+0x45e> + for (int i = 0; i < count; i++) + d1e: 9c6a add s8,s8,s10 + if (c == -1) + d20: 5cfd li s9,-1 + if (ctx->ungotten >= 0) + d22: 018da783 lw a5,24(s11) + ctx->ungotten = -1; + d26: 856e mv a0,s11 + if (ctx->ungotten >= 0) + d28: 0207dc63 bgez a5,d60 <_vscanf_core.constprop.0+0x42a> + d2c: b51ff0ef jal 87c <_in_char.part.0> + d30: 87aa mv a5,a0 + if (c == -1) + d32: 0b950d63 beq a0,s9,dec <_vscanf_core.constprop.0+0x4b6> + if (!suppress) + d36: 00099463 bnez s3,d3e <_vscanf_core.constprop.0+0x408> + buf[i] = (char)c; + d3a: 00fd0023 sb a5,0(s10) + for (int i = 0; i < count; i++) + d3e: 0d05 addi s10,s10,1 + d40: ffac11e3 bne s8,s10,d22 <_vscanf_core.constprop.0+0x3ec> + while (*p) + d44: 001bc783 lbu a5,1(s7) + if (!suppress) + d48: 00099363 bnez s3,d4e <_vscanf_core.constprop.0+0x418> + assigned++; + d4c: 2b05 addiw s6,s6,1 + d4e: 794a ld s2,176(sp) + d50: 79aa ld s3,168(sp) + d52: 6baa ld s7,136(sp) + d54: 6c0a ld s8,128(sp) + d56: 7ce6 ld s9,120(sp) + d58: 7d46 ld s10,112(sp) + while (*p) + d5a: c00793e3 bnez a5,960 <_vscanf_core.constprop.0+0x2a> + d5e: b935 j 99a <_vscanf_core.constprop.0+0x64> + ctx->ungotten = -1; + d60: 019dac23 sw s9,24(s11) + if (c == -1) + d64: bfc9 j d36 <_vscanf_core.constprop.0+0x400> + d66: 640e ld s0,192(sp) + d68: 74ea ld s1,184(sp) + d6a: 794a ld s2,176(sp) + d6c: 79aa ld s3,168(sp) + d6e: 7a0a ld s4,160(sp) + d70: 6aea ld s5,152(sp) + d72: 6baa ld s7,136(sp) + d74: 6c0a ld s8,128(sp) + d76: 7da6 ld s11,104(sp) + d78: b135 j 9a4 <_vscanf_core.constprop.0+0x6e> + int width = -1; + d7a: 597d li s2,-1 + d7c: b975 j a38 <_vscanf_core.constprop.0+0x102> + if (!suppress) + d7e: 3c099c63 bnez s3,1156 <_vscanf_core.constprop.0+0x820> + buf[i] = '\0'; + d82: 67e2 ld a5,24(sp) + d84: 01a786b3 add a3,a5,s10 + d88: 00068023 sb zero,0(a3) + while (*p) + d8c: 001bc783 lbu a5,1(s7) + assigned++; + d90: 2b05 addiw s6,s6,1 + d92: bf75 j d4e <_vscanf_core.constprop.0+0x418> + char *buf = suppress ? NULL : va_arg(ap, char *); + d94: 67a2 ld a5,8(sp) + d96: 0007bd03 ld s10,0(a5) + d9a: 07a1 addi a5,a5,8 + d9c: e43e sd a5,8(sp) + d9e: b741 j d1e <_vscanf_core.constprop.0+0x3e8> + ctx->ungotten = -1; + da0: 56fd li a3,-1 + da2: 00ddac23 sw a3,24(s11) + while (c != -1 && !isspace(c)) + da6: bb11 j aba <_vscanf_core.constprop.0+0x184> + ctx->ungotten = -1; + da8: 56fd li a3,-1 + daa: 00ddac23 sw a3,24(s11) + return c; + dae: b3d1 j b72 <_vscanf_core.constprop.0+0x23c> + if (c == '-' || c == '+') + db0: fd57869b addiw a3,a5,-43 + db4: ffd6f613 andi a2,a3,-3 + ctx->ungotten = -1; + db8: 55fd li a1,-1 + dba: 00bdac23 sw a1,24(s11) + if (c == '-' || c == '+') + dbe: 2601 sext.w a2,a2 + dc0: ec061be3 bnez a2,c96 <_vscanf_core.constprop.0+0x360> + num_buf[i++] = (char)c; + dc4: 02f10023 sb a5,32(sp) + if (ctx->ungotten >= 0) + dc8: 018da783 lw a5,24(s11) + dcc: 2207da63 bgez a5,1000 <_vscanf_core.constprop.0+0x6ca> + dd0: 856e mv a0,s11 + dd2: aabff0ef jal 87c <_in_char.part.0> + while (c != -1 && i < 63) + dd6: 567d li a2,-1 + dd8: 87aa mv a5,a0 + num_buf[i++] = (char)c; + dda: 4d05 li s10,1 + ddc: fd55069b addiw a3,a0,-43 + while (c != -1 && i < 63) + de0: 3ac50163 beq a0,a2,1182 <_vscanf_core.constprop.0+0x84c> + de4: fce6 sd s9,120(sp) + de6: bd55 j c9a <_vscanf_core.constprop.0+0x364> + int count = (width > 0) ? width : 1; + de8: 4c05 li s8,1 + dea: b73d j d18 <_vscanf_core.constprop.0+0x3e2> + dec: 640e ld s0,192(sp) + dee: 74ea ld s1,184(sp) + df0: 794a ld s2,176(sp) + df2: 79aa ld s3,168(sp) + df4: 7a0a ld s4,160(sp) + df6: 6aea ld s5,152(sp) + df8: 6baa ld s7,136(sp) + dfa: 6c0a ld s8,128(sp) + dfc: 7ce6 ld s9,120(sp) + dfe: 7d46 ld s10,112(sp) + e00: 7da6 ld s11,104(sp) + e02: b64d j 9a4 <_vscanf_core.constprop.0+0x6e> + e04: 640e ld s0,192(sp) + e06: 74ea ld s1,184(sp) + e08: 794a ld s2,176(sp) + e0a: 79aa ld s3,168(sp) + e0c: 7a0a ld s4,160(sp) + e0e: 6aea ld s5,152(sp) + e10: 6baa ld s7,136(sp) + e12: 6c0a ld s8,128(sp) + e14: 7d46 ld s10,112(sp) + e16: 7da6 ld s11,104(sp) + e18: b671 j 9a4 <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + e1a: 018dac23 sw s8,24(s11) + while (c != -1 && !isspace(c)) + e1e: b9e5 j b16 <_vscanf_core.constprop.0+0x1e0> + ctx->ungotten = -1; + e20: 57fd li a5,-1 + e22: 00fdac23 sw a5,24(s11) + while (c != -1 && i < 63) + e26: bbd9 j bfc <_vscanf_core.constprop.0+0x2c6> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e28: f9f3069b addiw a3,t1,-97 + e2c: 4795 li a5,5 + e2e: 06d7f263 bgeu a5,a3,e92 <_vscanf_core.constprop.0+0x55c> + e32: fbf3031b addiw t1,t1,-65 + e36: 4795 li a5,5 + e38: 0467fd63 bgeu a5,t1,e92 <_vscanf_core.constprop.0+0x55c> + int x = (c == 'x' || c == 'X'); + e3c: 07800693 li a3,120 + e40: 18d50763 beq a0,a3,fce <_vscanf_core.constprop.0+0x698> + e44: fa850693 addi a3,a0,-88 + e48: 0016b693 seqz a3,a3 + if (base == 0 && i == 1 && num_buf[0] == '0' && x) + e4c: 4301 li t1,0 + e4e: 32061663 bnez a2,117a <_vscanf_core.constprop.0+0x844> + e52: 4785 li a5,1 + e54: 4601 li a2,0 + e56: d6fd1ce3 bne s10,a5,bce <_vscanf_core.constprop.0+0x298> + e5a: 02014e03 lbu t3,32(sp) + e5e: 03000793 li a5,48 + e62: d6fe16e3 bne t3,a5,bce <_vscanf_core.constprop.0+0x298> + e66: d60684e3 beqz a3,bce <_vscanf_core.constprop.0+0x298> + base = 16; + e6a: 4641 li a2,16 + if (width > 0 && i >= width) + e6c: d7a919e3 bne s2,s10,bde <_vscanf_core.constprop.0+0x2a8> + e70: bb59 j c06 <_vscanf_core.constprop.0+0x2d0> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e72: f9f3069b addiw a3,t1,-97 + e76: 4795 li a5,5 + e78: 02d7f263 bgeu a5,a3,e9c <_vscanf_core.constprop.0+0x566> + e7c: fbf3031b addiw t1,t1,-65 + e80: 0467f063 bgeu a5,t1,ec0 <_vscanf_core.constprop.0+0x58a> + int x = (c == 'x' || c == 'X'); + e84: 07800693 li a3,120 + e88: fad51ee3 bne a0,a3,e44 <_vscanf_core.constprop.0+0x50e> + e8c: 4301 li t1,0 + e8e: 4685 li a3,1 + e90: b7c9 j e52 <_vscanf_core.constprop.0+0x51c> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e92: 4305 li t1,1 + int x = (c == 'x' || c == 'X'); + e94: 4681 li a3,0 + if (width > 0 && i >= width) + e96: d3204ee3 bgtz s2,bd2 <_vscanf_core.constprop.0+0x29c> + e9a: bb35 j bd6 <_vscanf_core.constprop.0+0x2a0> + int x = (c == 'x' || c == 'X'); + e9c: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e9e: 4305 li t1,1 + if (width > 0 && i >= width) + ea0: d32049e3 bgtz s2,bd2 <_vscanf_core.constprop.0+0x29c> + ea4: bb0d j bd6 <_vscanf_core.constprop.0+0x2a0> + ea6: 4301 li t1,0 + int x = (c == 'x' || c == 'X'); + ea8: 4685 li a3,1 + if (width > 0 && i >= width) + eaa: d32044e3 bgtz s2,bd2 <_vscanf_core.constprop.0+0x29c> + eae: bb05 j bde <_vscanf_core.constprop.0+0x2a8> + if (!suppress) + eb0: c8099be3 bnez s3,b46 <_vscanf_core.constprop.0+0x210> + buf[i] = '\0'; + eb4: 67e2 ld a5,24(sp) + eb6: 00078023 sb zero,0(a5) + ctx->ungotten = c; + eba: 00adac23 sw a0,24(s11) + if (i > 0 && !suppress) + ebe: b171 j b4a <_vscanf_core.constprop.0+0x214> + int x = (c == 'x' || c == 'X'); + ec0: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ec2: 4305 li t1,1 + ec4: b779 j e52 <_vscanf_core.constprop.0+0x51c> + num_buf[i] = '\0'; + ec6: 040d0713 addi a4,s10,64 + eca: 1014 addi a3,sp,32 + ecc: 96ba add a3,a3,a4 + ece: fc068023 sb zero,-64(a3) + ctx->ungotten = c; + ed2: 00fdac23 sw a5,24(s11) + if (i == 0) + ed6: f00d0be3 beqz s10,dec <_vscanf_core.constprop.0+0x4b6> + eda: 7ce6 ld s9,120(sp) + if (!suppress) + edc: d40992e3 bnez s3,c20 <_vscanf_core.constprop.0+0x2ea> + if (*str == '-') + ee0: 02014603 lbu a2,32(sp) + ee4: 02d00793 li a5,45 + ee8: 1af60963 beq a2,a5,109a <_vscanf_core.constprop.0+0x764> + else if (*str == '+') + eec: 02b00793 li a5,43 + ef0: 20f60a63 beq a2,a5,1104 <_vscanf_core.constprop.0+0x7ce> + ef4: 00005797 auipc a5,0x5 + ef8: 8a47b587 fld fa1,-1884(a5) # 5798 + efc: 101c addi a5,sp,32 + while (*str >= '0' && *str <= '9') + efe: fd06069b addiw a3,a2,-48 + f02: 0ff6f513 zext.b a0,a3 + f06: 45a5 li a1,9 + f08: f20007d3 fmv.d.x fa5,zero + f0c: 02a5e463 bltu a1,a0,f34 <_vscanf_core.constprop.0+0x5fe> + f10: 00005717 auipc a4,0x5 + f14: 89073707 fld fa4,-1904(a4) # 57a0 + f18: 4525 li a0,9 + f1a: 0017c603 lbu a2,1(a5) + val = val * 10.0 + (*str - '0'); + f1e: d20686d3 fcvt.d.w fa3,a3 + str++; + f22: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + f24: fd06069b addiw a3,a2,-48 + f28: 0ff6f593 zext.b a1,a3 + val = val * 10.0 + (*str - '0'); + f2c: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 + while (*str >= '0' && *str <= '9') + f30: feb575e3 bgeu a0,a1,f1a <_vscanf_core.constprop.0+0x5e4> + if (*str == '.') + f34: 02e00693 li a3,46 + f38: 16d60a63 beq a2,a3,10ac <_vscanf_core.constprop.0+0x776> + if (*str == 'e' || *str == 'E') + f3c: 0007c683 lbu a3,0(a5) + f40: 0df6f693 andi a3,a3,223 + f44: 04500613 li a2,69 + f48: 0cc68463 beq a3,a2,1010 <_vscanf_core.constprop.0+0x6da> + *va_arg(ap, double *) = val; + f4c: 6722 ld a4,8(sp) + if (len_mod == 1) + f4e: 4685 li a3,1 + return sign * val; + f50: 12b7f7d3 fmul.d fa5,fa5,fa1 + *va_arg(ap, double *) = val; + f54: 631c ld a5,0(a4) + *va_arg(ap, int64 *) = val; + f56: 0721 addi a4,a4,8 + f58: e43a sd a4,8(sp) + if (len_mod == 1) + f5a: 6762 ld a4,24(sp) + f5c: 18d70b63 beq a4,a3,10f2 <_vscanf_core.constprop.0+0x7bc> + *va_arg(ap, float *) = (float)val; + f60: 4017f7d3 fcvt.s.d fa5,fa5 + assigned++; + f64: 2b05 addiw s6,s6,1 + *va_arg(ap, float *) = (float)val; + f66: 00f7a027 fsw fa5,0(a5) + f6a: b95d j c20 <_vscanf_core.constprop.0+0x2ea> + num_buf[i++] = (char)c; + f6c: 02a10023 sb a0,32(sp) + if (ctx->ungotten >= 0) + f70: 018da503 lw a0,24(s11) + f74: 06055463 bgez a0,fdc <_vscanf_core.constprop.0+0x6a6> + f78: 856e mv a0,s11 + f7a: 903ff0ef jal 87c <_in_char.part.0> + num_buf[i++] = (char)c; + f7e: 4d05 li s10,1 + f80: b101 j b80 <_vscanf_core.constprop.0+0x24a> + int64 val = strtoll(num_buf, NULL, base); + f82: 4581 li a1,0 + f84: 1008 addi a0,sp,32 + f86: 696030ef jal 461c + *va_arg(ap, int64 *) = val; + f8a: 67a2 ld a5,8(sp) + if (len_mod == 2) + f8c: 6762 ld a4,24(sp) + f8e: 4689 li a3,2 + *va_arg(ap, int64 *) = val; + f90: 07a1 addi a5,a5,8 + if (len_mod == 2) + f92: 16d70363 beq a4,a3,10f8 <_vscanf_core.constprop.0+0x7c2> + *va_arg(ap, int64 *) = val; + f96: 6722 ld a4,8(sp) + else if (len_mod == 1) + f98: 4605 li a2,1 + *va_arg(ap, int64 *) = val; + f9a: 6314 ld a3,0(a4) + else if (len_mod == 1) + f9c: 6762 ld a4,24(sp) + f9e: 16c70163 beq a4,a2,1100 <_vscanf_core.constprop.0+0x7ca> + *va_arg(ap, int *) = (int)val; + fa2: c288 sw a0,0(a3) + assigned++; + fa4: 2b05 addiw s6,s6,1 + fa6: e43e sd a5,8(sp) + fa8: b9a5 j c20 <_vscanf_core.constprop.0+0x2ea> + num_buf[i] = '\0'; + faa: 040d0793 addi a5,s10,64 + fae: 1018 addi a4,sp,32 + fb0: 00e785b3 add a1,a5,a4 + fb4: fc058023 sb zero,-64(a1) + if (i == 0) + fb8: 7ce6 ld s9,120(sp) + fba: b70d j edc <_vscanf_core.constprop.0+0x5a6> + num_buf[i] = '\0'; + fbc: 040d0793 addi a5,s10,64 + fc0: 1018 addi a4,sp,32 + fc2: 00e78833 add a6,a5,a4 + fc6: fc080023 sb zero,-64(a6) + if (i == 0) + fca: 7ce6 ld s9,120(sp) + fcc: b981 j c1c <_vscanf_core.constprop.0+0x2e6> + int x = (c == 'x' || c == 'X'); + fce: 4301 li t1,0 + fd0: 4685 li a3,1 + if (width > 0 && i >= width) + fd2: c12040e3 bgtz s2,bd2 <_vscanf_core.constprop.0+0x29c> + fd6: b101 j bd6 <_vscanf_core.constprop.0+0x2a0> + int assigned = 0; + fd8: 4b01 li s6,0 + fda: b2e9 j 9a4 <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + fdc: 56fd li a3,-1 + fde: fce6 sd s9,120(sp) + fe0: 00ddac23 sw a3,24(s11) + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + fe4: 07800693 li a3,120 + fe8: 4641 li a2,16 + num_buf[i++] = (char)c; + fea: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + fec: badc09e3 beq s8,a3,b9e <_vscanf_core.constprop.0+0x268> + ff0: 06900693 li a3,105 + ff4: 4629 li a2,10 + num_buf[i++] = (char)c; + ff6: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + ff8: badc13e3 bne s8,a3,b9e <_vscanf_core.constprop.0+0x268> + ffc: 4601 li a2,0 + ffe: b645 j b9e <_vscanf_core.constprop.0+0x268> + ctx->ungotten = -1; + 1000: 56fd li a3,-1 + 1002: fce6 sd s9,120(sp) + 1004: 00ddac23 sw a3,24(s11) + num_buf[i++] = (char)c; + 1008: 4d05 li s10,1 + 100a: fd57869b addiw a3,a5,-43 + 100e: b171 j c9a <_vscanf_core.constprop.0+0x364> + if (*str == '-') + 1010: 0017c583 lbu a1,1(a5) + 1014: 02d00693 li a3,45 + 1018: 0ed58f63 beq a1,a3,1116 <_vscanf_core.constprop.0+0x7e0> + else if (*str == '+') + 101c: 02b00693 li a3,43 + 1020: 10d58e63 beq a1,a3,113c <_vscanf_core.constprop.0+0x806> + while (*str >= '0' && *str <= '9') + 1024: fd05861b addiw a2,a1,-48 + 1028: 0ff67513 zext.b a0,a2 + 102c: 45a5 li a1,9 + str++; + 102e: 00178693 addi a3,a5,1 + int esign = 1; + 1032: 4805 li a6,1 + while (*str >= '0' && *str <= '9') + 1034: 04a5ec63 bltu a1,a0,108c <_vscanf_core.constprop.0+0x756> + 1038: 4525 li a0,9 + 103a: 0016c583 lbu a1,1(a3) + eval = eval * 10 + (*str - '0'); + 103e: 0029979b slliw a5,s3,0x2 + 1042: 013787bb addw a5,a5,s3 + 1046: 0017979b slliw a5,a5,0x1 + 104a: 00f609bb addw s3,a2,a5 + while (*str >= '0' && *str <= '9') + 104e: fd05861b addiw a2,a1,-48 + 1052: 0ff67593 zext.b a1,a2 + str++; + 1056: 0685 addi a3,a3,1 + while (*str >= '0' && *str <= '9') + 1058: feb571e3 bgeu a0,a1,103a <_vscanf_core.constprop.0+0x704> + while (eval--) + 105c: fff9879b addiw a5,s3,-1 + 1060: 12098463 beqz s3,1188 <_vscanf_core.constprop.0+0x852> + double p = 1.0; + 1064: 00004717 auipc a4,0x4 + 1068: 73473687 fld fa3,1844(a4) # 5798 + 106c: 00004717 auipc a4,0x4 + 1070: 73473707 fld fa4,1844(a4) # 57a0 + while (eval--) + 1074: 56fd li a3,-1 + 1076: 37fd addiw a5,a5,-1 + p *= 10.0; + 1078: 12e6f6d3 fmul.d fa3,fa3,fa4 + while (eval--) + 107c: fed79de3 bne a5,a3,1076 <_vscanf_core.constprop.0+0x740> + if (esign == 1) + 1080: 4785 li a5,1 + 1082: 00f80963 beq a6,a5,1094 <_vscanf_core.constprop.0+0x75e> + val /= p; + 1086: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 108a: b5c9 j f4c <_vscanf_core.constprop.0+0x616> + double p = 1.0; + 108c: 00004797 auipc a5,0x4 + 1090: 70c7b687 fld fa3,1804(a5) # 5798 + val *= p; + 1094: 12d7f7d3 fmul.d fa5,fa5,fa3 + 1098: bd55 j f4c <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 109a: 00004797 auipc a5,0x4 + 109e: 6f67b587 fld fa1,1782(a5) # 5790 + 10a2: 02114603 lbu a2,33(sp) + str++; + 10a6: 02110793 addi a5,sp,33 + 10aa: bd91 j efe <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 10ac: 0017c683 lbu a3,1(a5) + 10b0: 45a5 li a1,9 + str++; + 10b2: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + 10b4: fd06861b addiw a2,a3,-48 + 10b8: 0ff67513 zext.b a0,a2 + 10bc: e8a5e2e3 bltu a1,a0,f40 <_vscanf_core.constprop.0+0x60a> + double div = 10.0; + 10c0: 00004717 auipc a4,0x4 + 10c4: 6e073707 fld fa4,1760(a4) # 57a0 + 10c8: 22e70653 fmv.d fa2,fa4 + while (*str >= '0' && *str <= '9') + 10cc: 4525 li a0,9 + val += (*str - '0') / div; + 10ce: d20606d3 fcvt.d.w fa3,a2 + while (*str >= '0' && *str <= '9') + 10d2: 0017c683 lbu a3,1(a5) + str++; + 10d6: 0785 addi a5,a5,1 + val += (*str - '0') / div; + 10d8: 1ac6f6d3 fdiv.d fa3,fa3,fa2 + while (*str >= '0' && *str <= '9') + 10dc: fd06861b addiw a2,a3,-48 + 10e0: 0ff67593 zext.b a1,a2 + div *= 10.0; + 10e4: 12e67653 fmul.d fa2,fa2,fa4 + val += (*str - '0') / div; + 10e8: 02d7f7d3 fadd.d fa5,fa5,fa3 + while (*str >= '0' && *str <= '9') + 10ec: feb571e3 bgeu a0,a1,10ce <_vscanf_core.constprop.0+0x798> + 10f0: bd81 j f40 <_vscanf_core.constprop.0+0x60a> + *va_arg(ap, double *) = val; + 10f2: a39c fsd fa5,0(a5) + assigned++; + 10f4: 2b05 addiw s6,s6,1 + 10f6: b62d j c20 <_vscanf_core.constprop.0+0x2ea> + *va_arg(ap, int64 *) = val; + 10f8: 6722 ld a4,8(sp) + 10fa: 6314 ld a3,0(a4) + 10fc: e288 sd a0,0(a3) + 10fe: b55d j fa4 <_vscanf_core.constprop.0+0x66e> + *va_arg(ap, long *) = (long)val; + 1100: e288 sd a0,0(a3) + 1102: b54d j fa4 <_vscanf_core.constprop.0+0x66e> + while (*str >= '0' && *str <= '9') + 1104: 00004797 auipc a5,0x4 + 1108: 6947b587 fld fa1,1684(a5) # 5798 + 110c: 02114603 lbu a2,33(sp) + str++; + 1110: 02110793 addi a5,sp,33 + 1114: b3ed j efe <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 1116: 0027c583 lbu a1,2(a5) + str++; + 111a: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 111e: 4525 li a0,9 + 1120: fd05861b addiw a2,a1,-48 + 1124: 0ff67793 zext.b a5,a2 + esign = -1; + 1128: 587d li a6,-1 + while (*str >= '0' && *str <= '9') + 112a: f0f577e3 bgeu a0,a5,1038 <_vscanf_core.constprop.0+0x702> + double p = 1.0; + 112e: 00004797 auipc a5,0x4 + 1132: 66a7b687 fld fa3,1642(a5) # 5798 + val /= p; + 1136: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 113a: bd09 j f4c <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 113c: 0027c583 lbu a1,2(a5) + str++; + 1140: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 1144: 4525 li a0,9 + 1146: fd05861b addiw a2,a1,-48 + 114a: 0ff67793 zext.b a5,a2 + 114e: f2f56fe3 bltu a0,a5,108c <_vscanf_core.constprop.0+0x756> + int esign = 1; + 1152: 4805 li a6,1 + 1154: b5d5 j 1038 <_vscanf_core.constprop.0+0x702> + while (*p) + 1156: 001bc783 lbu a5,1(s7) + 115a: bed5 j d4e <_vscanf_core.constprop.0+0x418> + if (!suppress) + 115c: 9e0997e3 bnez s3,b4a <_vscanf_core.constprop.0+0x214> + buf[i] = '\0'; + 1160: 67e2 ld a5,24(sp) + 1162: 00078023 sb zero,0(a5) + 1166: b2d5 j b4a <_vscanf_core.constprop.0+0x214> + num_buf[i] = '\0'; + 1168: 040d0793 addi a5,s10,64 + 116c: 1018 addi a4,sp,32 + 116e: 97ba add a5,a5,a4 + 1170: fc078023 sb zero,-64(a5) + if (i == 0) + 1174: aa0d14e3 bnez s10,c1c <_vscanf_core.constprop.0+0x2e6> + 1178: b171 j e04 <_vscanf_core.constprop.0+0x4ce> + 117a: 4641 li a2,16 + if (width > 0 && i >= width) + 117c: a5204be3 bgtz s2,bd2 <_vscanf_core.constprop.0+0x29c> + 1180: bc99 j bd6 <_vscanf_core.constprop.0+0x2a0> + num_buf[i] = '\0'; + 1182: 020100a3 sb zero,33(sp) + if (i == 0) + 1186: bb99 j edc <_vscanf_core.constprop.0+0x5a6> + double p = 1.0; + 1188: 00004797 auipc a5,0x4 + 118c: 6107b687 fld fa3,1552(a5) # 5798 + 1190: bdc5 j 1080 <_vscanf_core.constprop.0+0x74a> + buf[i] = '\0'; + 1192: 67e2 ld a5,24(sp) + 1194: 01a786b3 add a3,a5,s10 + 1198: 00068023 sb zero,0(a3) + ctx->ungotten = c; + 119c: 00adac23 sw a0,24(s11) + while (*p) + 11a0: 001bc783 lbu a5,1(s7) + 11a4: b6f5 j d90 <_vscanf_core.constprop.0+0x45a> + +00000000000011a6 <_out_char>: +{ + 11a6: 7179 addi sp,sp,-48 + 11a8: ec26 sd s1,24(sp) + if (ctx->stream) + 11aa: 6d04 ld s1,24(a0) +{ + 11ac: f022 sd s0,32(sp) + 11ae: f406 sd ra,40(sp) + 11b0: 842a mv s0,a0 + 11b2: 872e mv a4,a1 + if (ctx->stream) + 11b4: c0a1 beqz s1,11f4 <_out_char+0x4e> + 11b6: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 11b8: 41c4a903 lw s2,1052(s1) + 11bc: 4789 li a5,2 + 11be: 04f90d63 beq s2,a5,1218 <_out_char+0x72> + stream->buffer[stream->buf_write_pos++] = (char)c; + 11c2: 4104a783 lw a5,1040(s1) + if (stream->buf_write_pos >= BUFSIZ) + 11c6: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 11ca: 0017861b addiw a2,a5,1 + 11ce: 40c4a823 sw a2,1040(s1) + 11d2: 97a6 add a5,a5,s1 + 11d4: 00b78823 sb a1,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 11d8: 08c6c063 blt a3,a2,1258 <_out_char+0xb2> + else if (stream->buf_mode == 1 && c == '\n') + 11dc: 4785 li a5,1 + 11de: 04f90a63 beq s2,a5,1232 <_out_char+0x8c> + ctx->written++; + 11e2: 681c ld a5,16(s0) + 11e4: 6942 ld s2,16(sp) +} + 11e6: 70a2 ld ra,40(sp) + ctx->written++; + 11e8: 0785 addi a5,a5,1 + 11ea: e81c sd a5,16(s0) +} + 11ec: 7402 ld s0,32(sp) + 11ee: 64e2 ld s1,24(sp) + 11f0: 6145 addi sp,sp,48 + 11f2: 8082 ret + if (ctx->limit > 0 && ctx->written < ctx->limit - 1) + 11f4: 6514 ld a3,8(a0) + 11f6: 691c ld a5,16(a0) + 11f8: ca89 beqz a3,120a <_out_char+0x64> + 11fa: 16fd addi a3,a3,-1 + 11fc: 00d7f763 bgeu a5,a3,120a <_out_char+0x64> + ctx->buf[ctx->written] = c; + 1200: 6114 ld a3,0(a0) + 1202: 97b6 add a5,a5,a3 + 1204: 00b78023 sb a1,0(a5) + ctx->written++; + 1208: 691c ld a5,16(a0) + 120a: 0785 addi a5,a5,1 +} + 120c: 70a2 ld ra,40(sp) + ctx->written++; + 120e: e81c sd a5,16(s0) +} + 1210: 7402 ld s0,32(sp) + 1212: 64e2 ld s1,24(sp) + 1214: 6145 addi sp,sp,48 + 1216: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 1218: 4088 lw a0,0(s1) + 121a: 4605 li a2,1 + 121c: 00f10593 addi a1,sp,15 + char ch = (char)c; + 1220: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 1224: e8bfe0ef jal ae + 1228: 4785 li a5,1 + 122a: faf50ce3 beq a0,a5,11e2 <_out_char+0x3c> + stream->error = 1; + 122e: c49c sw a5,8(s1) + return EOF; + 1230: bf4d j 11e2 <_out_char+0x3c> + else if (stream->buf_mode == 1 && c == '\n') + 1232: 47a9 li a5,10 + 1234: faf597e3 bne a1,a5,11e2 <_out_char+0x3c> + if (stream->buf_write_pos > 0) + 1238: fac055e3 blez a2,11e2 <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 123c: 4088 lw a0,0(s1) + 123e: 01048593 addi a1,s1,16 + 1242: e6dfe0ef jal ae + if (ret < stream->buf_write_pos) + 1246: 4104a783 lw a5,1040(s1) + 124a: 02f55063 bge a0,a5,126a <_out_char+0xc4> + stream->error = 1; + 124e: 0124a423 sw s2,8(s1) + stream->buf_write_pos = 0; + 1252: 4004a823 sw zero,1040(s1) + return EOF; + 1256: b771 j 11e2 <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 1258: 4088 lw a0,0(s1) + 125a: 01048593 addi a1,s1,16 + 125e: e51fe0ef jal ae + if (ret < stream->buf_write_pos) + 1262: 4104a783 lw a5,1040(s1) + 1266: 00f54563 blt a0,a5,1270 <_out_char+0xca> + stream->buf_write_pos = 0; + 126a: 4004a823 sw zero,1040(s1) + 126e: bf95 j 11e2 <_out_char+0x3c> + stream->error = 1; + 1270: 4785 li a5,1 + 1272: c49c sw a5,8(s1) + stream->buf_write_pos = 0; + 1274: 4004a823 sw zero,1040(s1) + return EOF; + 1278: b7ad j 11e2 <_out_char+0x3c> + +000000000000127a : + "75767778798081828384858687888990919293949596979899" +}; + +STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, char pperiod) +{ + stbsp__period = pperiod; + 127a: 00005797 auipc a5,0x5 + 127e: 64678793 addi a5,a5,1606 # 68c0 + 1282: 0cb78623 sb a1,204(a5) + stbsp__comma = pcomma; + 1286: 0ca786a3 sb a0,205(a5) +} + 128a: 8082 ret + +000000000000128c : + + return (stbsp__uint32)(sn - s); +} + +STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *callback, void *user, char *buf, char const *fmt, va_list va) +{ + 128c: d1010113 addi sp,sp,-752 + // Check if the next 4 bytes contain %(0x25) or end of string. + // Using the 'hasless' trick: + // https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord + stbsp__uint32 v, c; + v = *(stbsp__uint32 *)f; + c = (~v) & 0x80808080; + 1290: 808087b7 lui a5,0x80808 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1294: 252523b7 lui t2,0x25252 + 1298: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x2524ad6d> +{ + 129c: 29913c23 sd s9,664(sp) + 12a0: 29b13423 sd s11,648(sp) + int tlen = 0; + 12a4: 4c81 li s9,0 + if (((v ^ 0x25252525) - 0x01010101) & c) + 12a6: feff0db7 lui s11,0xfeff0 + c = (~v) & 0x80808080; + 12aa: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff808008c8> +{ + 12ae: 2e813023 sd s0,736(sp) + 12b2: 2c913c23 sd s1,728(sp) + 12b6: 2d213823 sd s2,720(sp) + 12ba: 2d313423 sd s3,712(sp) + 12be: 2b713423 sd s7,680(sp) + 12c2: 2b813023 sd s8,672(sp) + 12c6: 29a13823 sd s10,656(sp) + 12ca: 2e113423 sd ra,744(sp) + 12ce: 8d66 mv s10,s9 + 12d0: 8432 mv s0,a2 + 12d2: 8c9e mv s9,t2 + 12d4: 89aa mv s3,a0 + 12d6: e42e sd a1,8(sp) + 12d8: 84b6 mv s1,a3 + 12da: 8bba mv s7,a4 + 12dc: fc02 sd zero,56(sp) + for (;;) { + 12de: 8932 mv s2,a2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 12e0: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8747> + goto schk1; + if ((v - 0x01010101) & c) + goto schk2; + if (callback) + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 12e4: 20000c13 li s8,512 + 12e8: 83be mv t2,a5 + while (((stbsp__uintptr)f) & 3) { + 12ea: 0034f793 andi a5,s1,3 + 12ee: c7a9 beqz a5,1338 + if (f[0] == '%') + 12f0: 0004c783 lbu a5,0(s1) + 12f4: 02500713 li a4,37 + 12f8: 0ee78263 beq a5,a4,13dc + if (f[0] == 0) + 12fc: cbd9 beqz a5,1392 + stbsp__chk_cb_buf(1); + 12fe: 02098663 beqz s3,132a + 1302: 4124063b subw a2,s0,s2 + 1306: 1fe00713 li a4,510 + 130a: 02c75063 bge a4,a2,132a + 130e: 65a2 ld a1,8(sp) + 1310: 854a mv a0,s2 + 1312: e81e sd t2,16(sp) + 1314: 00cd0d3b addw s10,s10,a2 + 1318: 9982 jalr s3 + 131a: 892a mv s2,a0 + 131c: e119 bnez a0,1322 + 131e: 0200106f j 233e + *bf++ = f[0]; + 1322: 0004c783 lbu a5,0(s1) + stbsp__chk_cb_buf(1); + 1326: 63c2 ld t2,16(sp) + 1328: 842a mv s0,a0 + ++f; + 132a: 0485 addi s1,s1,1 + *bf++ = f[0]; + 132c: 00f40023 sb a5,0(s0) + while (((stbsp__uintptr)f) & 3) { + 1330: 0034f793 andi a5,s1,3 + *bf++ = f[0]; + 1334: 0405 addi s0,s0,1 + while (((stbsp__uintptr)f) & 3) { + 1336: ffcd bnez a5,12f0 + v = *(stbsp__uint32 *)f; + 1338: 4094 lw a3,0(s1) + c = (~v) & 0x80808080; + 133a: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 133e: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 1342: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1346: 01b7073b addw a4,a4,s11 + 134a: 8f7d and a4,a4,a5 + 134c: 2701 sext.w a4,a4 + 134e: f34d bnez a4,12f0 + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1350: 460d li a2,3 + 1352: a805 j 1382 + if (callback) + 1354: 00098863 beqz s3,1364 + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1358: 412407b3 sub a5,s0,s2 + 135c: 40fc07bb subw a5,s8,a5 + 1360: f8f658e3 bge a2,a5,12f0 + bf[2] = f[2]; + bf[3] = f[3]; + } else + #endif + { + *(stbsp__uint32 *)bf = v; + 1364: c014 sw a3,0(s0) + v = *(stbsp__uint32 *)f; + 1366: 40d4 lw a3,4(s1) + } + bf += 4; + 1368: 0411 addi s0,s0,4 + f += 4; + 136a: 0491 addi s1,s1,4 + c = (~v) & 0x80808080; + 136c: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1370: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 1374: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1378: 01b7073b addw a4,a4,s11 + 137c: 8f7d and a4,a4,a5 + 137e: 2701 sext.w a4,a4 + 1380: fb25 bnez a4,12f0 + if ((v - 0x01010101) & c) + 1382: 01b6873b addw a4,a3,s11 + 1386: 8ff9 and a5,a5,a4 + 1388: 2781 sext.w a5,a5 + 138a: d7e9 beqz a5,1354 + if (f[0] == 0) + 138c: 0004c783 lbu a5,0(s1) + 1390: f7bd bnez a5,12fe +endfmt: + + if (!callback) + *bf = 0; + else + stbsp__flush_cb(); + 1392: 8cea mv s9,s10 + 1394: 412404bb subw s1,s0,s2 + if (!callback) + 1398: 70098563 beqz s3,1aa2 + stbsp__flush_cb(); + 139c: 00905663 blez s1,13a8 + 13a0: 65a2 ld a1,8(sp) + 13a2: 8626 mv a2,s1 + 13a4: 854a mv a0,s2 + 13a6: 9982 jalr s3 + 13a8: 009c8cbb addw s9,s9,s1 + +done: + return tlen + (int)(bf - buf); +} + 13ac: 2e813083 ld ra,744(sp) + 13b0: 2e013403 ld s0,736(sp) + 13b4: 2d813483 ld s1,728(sp) + 13b8: 2d013903 ld s2,720(sp) + 13bc: 2c813983 ld s3,712(sp) + 13c0: 2a813b83 ld s7,680(sp) + 13c4: 2a013c03 ld s8,672(sp) + 13c8: 29013d03 ld s10,656(sp) + 13cc: 28813d83 ld s11,648(sp) + 13d0: 8566 mv a0,s9 + 13d2: 29813c83 ld s9,664(sp) + 13d6: 2f010113 addi sp,sp,752 + 13da: 8082 ret + 13dc: 2d413023 sd s4,704(sp) + 13e0: 2b513c23 sd s5,696(sp) + 13e4: 2b613823 sd s6,688(sp) + tz = 0; + 13e8: 00248693 addi a3,s1,2 + fl = 0; + 13ec: 4e01 li t3,0 + switch (f[0]) { + 13ee: 03f00593 li a1,63 + 13f2: 00004617 auipc a2,0x4 + 13f6: cc660613 addi a2,a2,-826 # 50b8 <_GLOBAL__sub_I__ZSt3cin+0x10a> + 13fa: fff6c783 lbu a5,-1(a3) + 13fe: fff68493 addi s1,a3,-1 + 1402: fe07871b addiw a4,a5,-32 + 1406: 0ff77713 zext.b a4,a4 + 140a: 00e5ec63 bltu a1,a4,1422 + 140e: 070a slli a4,a4,0x2 + 1410: 9732 add a4,a4,a2 + 1412: 4318 lw a4,0(a4) + 1414: 9732 add a4,a4,a2 + 1416: 8702 jr a4 + if (f[0] == '*') { + 1418: 0014c783 lbu a5,1(s1) + fl |= STBSP__LEADINGZERO; + 141c: 010e6e13 ori t3,t3,16 + ++f; + 1420: 0485 addi s1,s1,1 + if (f[0] == '*') { + 1422: 02a00713 li a4,42 + 1426: 0ce79163 bne a5,a4,14e8 + fw = va_arg(va, stbsp__uint32); + 142a: 000bab03 lw s6,0(s7) + while ((f[0] >= '0') && (f[0] <= '9')) { + 142e: 0014c783 lbu a5,1(s1) + fw = va_arg(va, stbsp__uint32); + 1432: 0ba1 addi s7,s7,8 + ++f; + 1434: 0485 addi s1,s1,1 + if (f[0] == '.') { + 1436: 02e00713 li a4,46 + pr = -1; + 143a: 58fd li a7,-1 + if (f[0] == '.') { + 143c: 0ee78663 beq a5,a4,1528 + switch (f[0]) { + 1440: 04900713 li a4,73 + 1444: 10e78263 beq a5,a4,1548 + 1448: f987871b addiw a4,a5,-104 + 144c: 0ff77713 zext.b a4,a4 + 1450: 46c9 li a3,18 + 1452: 02e6e063 bltu a3,a4,1472 + 1456: 00004697 auipc a3,0x4 + 145a: d6268693 addi a3,a3,-670 # 51b8 <_GLOBAL__sub_I__ZSt3cin+0x20a> + 145e: 070a slli a4,a4,0x2 + 1460: 9736 add a4,a4,a3 + 1462: 4318 lw a4,0(a4) + 1464: 9736 add a4,a4,a3 + 1466: 8702 jr a4 + if (f[0] == 'h') + 1468: 0014c783 lbu a5,1(s1) + fl |= (sizeof(ptrdiff_t) == 8) ? STBSP__INTMAX : 0; + 146c: 020e6e13 ori t3,t3,32 + ++f; + 1470: 0485 addi s1,s1,1 + switch (f[0]) { + 1472: fbf7871b addiw a4,a5,-65 + 1476: 0ff77713 zext.b a4,a4 + 147a: 03700693 li a3,55 + 147e: 0ee6ea63 bltu a3,a4,1572 + 1482: 00004697 auipc a3,0x4 + 1486: d8268693 addi a3,a3,-638 # 5204 <_GLOBAL__sub_I__ZSt3cin+0x256> + 148a: 070a slli a4,a4,0x2 + 148c: 9736 add a4,a4,a3 + 148e: 4318 lw a4,0(a4) + 1490: 9736 add a4,a4,a3 + 1492: 8702 jr a4 + fl |= STBSP__METRIC_NOSPACE; + 1494: 400e6e13 ori t3,t3,1024 + continue; + 1498: 0685 addi a3,a3,1 + 149a: b785 j 13fa + fl |= STBSP__LEFTJUST; + 149c: 001e6e13 ori t3,t3,1 + continue; + 14a0: 0685 addi a3,a3,1 + 14a2: bfa1 j 13fa + fl |= STBSP__LEADINGPLUS; + 14a4: 002e6e13 ori t3,t3,2 + continue; + 14a8: 0685 addi a3,a3,1 + 14aa: bf81 j 13fa + fl |= STBSP__TRIPLET_COMMA; + 14ac: 040e6e13 ori t3,t3,64 + continue; + 14b0: 0685 addi a3,a3,1 + 14b2: b7a1 j 13fa + if (fl & STBSP__METRIC_SUFFIX) { + 14b4: 100e7793 andi a5,t3,256 + 14b8: 8772 mv a4,t3 + 14ba: 56078363 beqz a5,1a20 + if (fl & STBSP__METRIC_1024) { + 14be: 6785 lui a5,0x1 + 14c0: 034e1513 slli a0,t3,0x34 + 14c4: 80078793 addi a5,a5,-2048 # 800 + 14c8: 5c055863 bgez a0,1a98 + fl |= STBSP__METRIC_JEDEC; + 14cc: 6785 lui a5,0x1 + 14ce: 8f5d or a4,a4,a5 + 14d0: 00070e1b sext.w t3,a4 + 14d4: 0685 addi a3,a3,1 + 14d6: b715 j 13fa + fl |= STBSP__LEADING_0X; + 14d8: 008e6e13 ori t3,t3,8 + continue; + 14dc: 0685 addi a3,a3,1 + 14de: bf31 j 13fa + fl |= STBSP__LEADINGSPACE; + 14e0: 004e6e13 ori t3,t3,4 + continue; + 14e4: 0685 addi a3,a3,1 + 14e6: bf11 j 13fa + while ((f[0] >= '0') && (f[0] <= '9')) { + 14e8: fd07871b addiw a4,a5,-48 # fd0 <_vscanf_core.constprop.0+0x69a> + 14ec: 0ff77713 zext.b a4,a4 + 14f0: 4625 li a2,9 + fw = 0; + 14f2: 4b01 li s6,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 14f4: 46a5 li a3,9 + 14f6: f4e660e3 bltu a2,a4,1436 + fw = fw * 10 + f[0] - '0'; + 14fa: 002b171b slliw a4,s6,0x2 + 14fe: 0167073b addw a4,a4,s6 + 1502: 0017171b slliw a4,a4,0x1 + f++; + 1506: 0485 addi s1,s1,1 + fw = fw * 10 + f[0] - '0'; + 1508: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 150a: 0004c783 lbu a5,0(s1) + fw = fw * 10 + f[0] - '0'; + 150e: fd070b1b addiw s6,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1512: fd07871b addiw a4,a5,-48 + 1516: 0ff77713 zext.b a4,a4 + 151a: fee6f0e3 bgeu a3,a4,14fa + if (f[0] == '.') { + 151e: 02e00713 li a4,46 + pr = -1; + 1522: 58fd li a7,-1 + if (f[0] == '.') { + 1524: f0e79ee3 bne a5,a4,1440 + if (f[0] == '*') { + 1528: 0014c783 lbu a5,1(s1) + 152c: 02a00713 li a4,42 + 1530: 52e79763 bne a5,a4,1a5e + while ((f[0] >= '0') && (f[0] <= '9')) { + 1534: 0024c783 lbu a5,2(s1) + switch (f[0]) { + 1538: 04900713 li a4,73 + pr = va_arg(va, stbsp__uint32); + 153c: 000ba883 lw a7,0(s7) + ++f; + 1540: 0489 addi s1,s1,2 + pr = va_arg(va, stbsp__uint32); + 1542: 0ba1 addi s7,s7,8 + switch (f[0]) { + 1544: f0e792e3 bne a5,a4,1448 + if ((f[1] == '6') && (f[2] == '4')) { + 1548: 0014c783 lbu a5,1(s1) + 154c: 03600713 li a4,54 + 1550: 00e79463 bne a5,a4,1558 + 1554: 1e60106f j 273a + } else if ((f[1] == '3') && (f[2] == '2')) { + 1558: 03300713 li a4,51 + 155c: 6ae796e3 bne a5,a4,2408 + 1560: 0024c683 lbu a3,2(s1) + 1564: 03200713 li a4,50 + 1568: 00e69463 bne a3,a4,1570 + 156c: 0ae0106f j 261a + ++f; + 1570: 0485 addi s1,s1,1 + *s = f[0]; + 1572: 26f10fa3 sb a5,639(sp) + l = 1; + 1576: 4785 li a5,1 + 1578: d0be sw a5,96(sp) + lead[0] = 0; + 157a: 06010423 sb zero,104(sp) + tail[0] = 0; + 157e: 06010823 sb zero,112(sp) + dp = 0; + 1582: d282 sw zero,100(sp) + 1584: e0de sd s7,64(sp) + 1586: 4701 li a4,0 + 1588: 4301 li t1,0 + 158a: 4f81 li t6,0 + 158c: 4685 li a3,1 + 158e: 4a01 li s4,0 + cs = 0; + 1590: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 1592: 27f10a93 addi s5,sp,639 + fw = fl = 0; + 1596: 4e01 li t3,0 + tz = 0; + 1598: 4881 li a7,0 + if (fl & STBSP__LEADINGZERO) // if leading zeros, everything is in pr + 159a: 010e7793 andi a5,t3,16 + 159e: 40078ee3 beqz a5,21ba + pr = (fw > pr) ? fw : pr; + 15a2: 87ba mv a5,a4 + 15a4: 00675363 bge a4,t1,15aa + 15a8: 879a mv a5,t1 + 15aa: 0007871b sext.w a4,a5 + fw = 0; + 15ae: 4301 li t1,0 + if (fw + pr) { + 15b0: 62070563 beqz a4,1bda + sn = lead + 1; + 15b4: 06910793 addi a5,sp,105 + 15b8: fcbe sd a5,120(sp) + while (lead[0]) { + 15ba: 0a0a0863 beqz s4,166a + stbsp__cb_buf_clamp(i, lead[0]); + 15be: f026 sd s1,32(sp) + 15c0: f436 sd a3,40(sp) + 15c2: 854a mv a0,s2 + 15c4: 86d2 mv a3,s4 + 15c6: 84ce mv s1,s3 + stbsp__chk_cb_buf(1); + 15c8: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 15cc: 89be mv s3,a5 + 15ce: 20000b13 li s6,512 + 15d2: 87a2 mv a5,s0 + 15d4: e846 sd a7,16(sp) + 15d6: 846a mv s0,s10 + 15d8: ec7e sd t6,24(sp) + 15da: 8d6e mv s10,s11 + 15dc: f872 sd t3,48(sp) + 15de: 8de6 mv s11,s9 + 15e0: 8a3a mv s4,a4 + 15e2: e496 sd t0,72(sp) + 15e4: 891a mv s2,t1 + 15e6: 8c9e mv s9,t2 + 15e8: 0006871b sext.w a4,a3 + 15ec: 2e0482e3 beqz s1,20d0 + 15f0: 40a7863b subw a2,a5,a0 + 15f4: 40cb083b subw a6,s6,a2 + 15f8: 85c2 mv a1,a6 + 15fa: 01075363 bge a4,a6,1600 + 15fe: 85ba mv a1,a4 + lead[0] -= (char)i; + 1600: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 1602: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 1606: 06d10423 sb a3,104(sp) + while (i) { + 160a: c70d beqz a4,1634 + 160c: 7866 ld a6,120(sp) + 160e: 02071593 slli a1,a4,0x20 + 1612: 9181 srli a1,a1,0x20 + 1614: 00b78633 add a2,a5,a1 + 1618: 8742 mv a4,a6 + *bf++ = *sn++; + 161a: 00074683 lbu a3,0(a4) + 161e: 0785 addi a5,a5,1 + while (i) { + 1620: 0705 addi a4,a4,1 + *bf++ = *sn++; + 1622: fed78fa3 sb a3,-1(a5) + while (i) { + 1626: fec79ae3 bne a5,a2,161a + 162a: 982e add a6,a6,a1 + 162c: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 162e: c899 beqz s1,1644 + 1630: 40a7863b subw a2,a5,a0 + 1634: 00cbd863 bge s7,a2,1644 + 1638: 65a2 ld a1,8(sp) + 163a: 9c31 addw s0,s0,a2 + 163c: 9482 jalr s1 + 163e: 34050ee3 beqz a0,219a + 1642: 87aa mv a5,a0 + while (lead[0]) { + 1644: 06814683 lbu a3,104(sp) + 1648: f2c5 bnez a3,15e8 + 164a: 83e6 mv t2,s9 + 164c: 68c2 ld a7,16(sp) + 164e: 8cee mv s9,s11 + 1650: 6fe2 ld t6,24(sp) + 1652: 8dea mv s11,s10 + 1654: 76a2 ld a3,40(sp) + 1656: 8d22 mv s10,s0 + 1658: 7e42 ld t3,48(sp) + 165a: 843e mv s0,a5 + 165c: 62a6 ld t0,72(sp) + 165e: 87ce mv a5,s3 + 1660: 89a6 mv s3,s1 + 1662: 7482 ld s1,32(sp) + 1664: 834a mv t1,s2 + 1666: 8752 mv a4,s4 + 1668: 892a mv s2,a0 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 166a: 040e7b13 andi s6,t3,64 + c = cs >> 24; + 166e: 0182d61b srliw a2,t0,0x18 + 1672: 0182db9b srliw s7,t0,0x18 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 1676: 4a01 li s4,0 + 1678: 000b0e63 beqz s6,1694 + cs &= 0xffffff; + 167c: 02829a13 slli s4,t0,0x28 + 1680: 028a5a13 srli s4,s4,0x28 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 1684: 00ea0a3b addw s4,s4,a4 + 1688: 0016059b addiw a1,a2,1 + 168c: 02ba7a3b remuw s4,s4,a1 + 1690: 41460a3b subw s4,a2,s4 + while (pr > 0) { + 1694: 0ce05763 blez a4,1762 + *(stbsp__uint32 *)bf = 0x30303030; + 1698: 30303837 lui a6,0x30303 + 169c: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fb878> + 16a0: f026 sd s1,32(sp) + 16a2: 854a mv a0,s2 + 16a4: 84da mv s1,s6 + 16a6: 895e mv s2,s7 + 16a8: e4d6 sd s5,72(sp) + 16aa: 8b4e mv s6,s3 + 16ac: 8aea mv s5,s10 + stbsp__chk_cb_buf(1); + 16ae: 1fe00293 li t0,510 + 16b2: 8d6e mv s10,s11 + *bf++ = stbsp__comma; + 16b4: 00005f17 auipc t5,0x5 + 16b8: 20cf0f13 addi t5,t5,524 # 68c0 + 16bc: 8de6 mv s11,s9 + *bf++ = '0'; + 16be: 03000e93 li t4,48 + 16c2: e846 sd a7,16(sp) + 16c4: ec7e sd t6,24(sp) + 16c6: f436 sd a3,40(sp) + 16c8: f872 sd t3,48(sp) + 16ca: e89a sd t1,80(sp) + 16cc: 89ba mv s3,a4 + 16ce: ecbe sd a5,88(sp) + 16d0: 8bc2 mv s7,a6 + 16d2: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, pr); + 16d4: 240b0ee3 beqz s6,2130 + 16d8: 40a407b3 sub a5,s0,a0 + 16dc: 40fc063b subw a2,s8,a5 + 16e0: 87b2 mv a5,a2 + 16e2: 00c9d363 bge s3,a2,16e8 + 16e6: 87ce mv a5,s3 + 16e8: 0007859b sext.w a1,a5 + pr -= i; + 16ec: 40f989bb subw s3,s3,a5 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 16f0: 32048c63 beqz s1,1a28 + while (i) { + 16f4: 34058a63 beqz a1,1a48 + 16f8: 1582 slli a1,a1,0x20 + *bf++ = stbsp__comma; + 16fa: 0cdf4603 lbu a2,205(t5) + 16fe: 9181 srli a1,a1,0x20 + 1700: 95a2 add a1,a1,s0 + 1702: 0405 addi s0,s0,1 + if ((fl & STBSP__TRIPLET_COMMA) && (cs++ == c)) { + 1704: c481 beqz s1,170c + 1706: 1d4901e3 beq s2,s4,20c8 + 170a: 2a05 addiw s4,s4,1 + *bf++ = '0'; + 170c: 03000793 li a5,48 + 1710: fef40fa3 sb a5,-1(s0) + while (i) { + 1714: fe8597e3 bne a1,s0,1702 + stbsp__chk_cb_buf(1); + 1718: 320b0b63 beqz s6,1a4e + 171c: 40a5863b subw a2,a1,a0 + 1720: 32c2d763 bge t0,a2,1a4e + 1724: 65a2 ld a1,8(sp) + 1726: 01560abb addw s5,a2,s5 + 172a: 9b02 jalr s6 + 172c: 3a050ce3 beqz a0,22e4 + 1730: 842a mv s0,a0 + 1732: 1fe00293 li t0,510 + 1736: 00005f17 auipc t5,0x5 + 173a: 18af0f13 addi t5,t5,394 # 68c0 + 173e: 03000e93 li t4,48 + while (pr > 0) { + 1742: f93049e3 bgtz s3,16d4 + while (lead[0]) { + 1746: 83e6 mv t2,s9 + 1748: 68c2 ld a7,16(sp) + 174a: 8cee mv s9,s11 + 174c: 6fe2 ld t6,24(sp) + 174e: 8dea mv s11,s10 + 1750: 7482 ld s1,32(sp) + 1752: 8d56 mv s10,s5 + 1754: 76a2 ld a3,40(sp) + 1756: 7e42 ld t3,48(sp) + 1758: 6346 ld t1,80(sp) + 175a: 67e6 ld a5,88(sp) + 175c: 6aa6 ld s5,72(sp) + 175e: 892a mv s2,a0 + 1760: 89da mv s3,s6 + 1762: 06814a03 lbu s4,104(sp) + sn = lead + 1; + 1766: fcbe sd a5,120(sp) + while (lead[0]) { + 1768: 0a0a0263 beqz s4,180c + stbsp__cb_buf_clamp(i, lead[0]); + 176c: ec26 sd s1,24(sp) + 176e: f036 sd a3,32(sp) + 1770: 854a mv a0,s2 + 1772: 86d2 mv a3,s4 + 1774: 84ce mv s1,s3 + 1776: 87a2 mv a5,s0 + stbsp__chk_cb_buf(1); + 1778: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 177c: 846a mv s0,s10 + 177e: 20000b13 li s6,512 + 1782: 8d6e mv s10,s11 + 1784: e846 sd a7,16(sp) + 1786: 8de6 mv s11,s9 + 1788: 8a7e mv s4,t6 + 178a: 8972 mv s2,t3 + 178c: 899a mv s3,t1 + 178e: 8c9e mv s9,t2 + 1790: 0006871b sext.w a4,a3 + 1794: 140482e3 beqz s1,20d8 + 1798: 40a7863b subw a2,a5,a0 + 179c: 40cb083b subw a6,s6,a2 + 17a0: 85c2 mv a1,a6 + 17a2: 01075363 bge a4,a6,17a8 + 17a6: 85ba mv a1,a4 + lead[0] -= (char)i; + 17a8: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 17aa: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 17ae: 06d10423 sb a3,104(sp) + while (i) { + 17b2: c70d beqz a4,17dc + 17b4: 7866 ld a6,120(sp) + 17b6: 02071593 slli a1,a4,0x20 + 17ba: 9181 srli a1,a1,0x20 + 17bc: 00b78633 add a2,a5,a1 + 17c0: 8742 mv a4,a6 + *bf++ = *sn++; + 17c2: 00074683 lbu a3,0(a4) + 17c6: 0785 addi a5,a5,1 + while (i) { + 17c8: 0705 addi a4,a4,1 + *bf++ = *sn++; + 17ca: fed78fa3 sb a3,-1(a5) + while (i) { + 17ce: fec79ae3 bne a5,a2,17c2 + 17d2: 982e add a6,a6,a1 + 17d4: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 17d6: c899 beqz s1,17ec + 17d8: 40a7863b subw a2,a5,a0 + 17dc: 00cbd863 bge s7,a2,17ec + 17e0: 65a2 ld a1,8(sp) + 17e2: 9c31 addw s0,s0,a2 + 17e4: 9482 jalr s1 + 17e6: 1a050ae3 beqz a0,219a + 17ea: 87aa mv a5,a0 + while (lead[0]) { + 17ec: 06814683 lbu a3,104(sp) + 17f0: f2c5 bnez a3,1790 + 17f2: 834e mv t1,s3 + 17f4: 68c2 ld a7,16(sp) + 17f6: 89a6 mv s3,s1 + 17f8: 7682 ld a3,32(sp) + 17fa: 64e2 ld s1,24(sp) + 17fc: 8e4a mv t3,s2 + 17fe: 83e6 mv t2,s9 + 1800: 8fd2 mv t6,s4 + 1802: 8cee mv s9,s11 + 1804: 892a mv s2,a0 + 1806: 8dea mv s11,s10 + 1808: 8d22 mv s10,s0 + 180a: 843e mv s0,a5 + while (n) { + 180c: c6f9 beqz a3,18da + STBSP__UNALIGNED(while (i >= 4) { + 180e: ec26 sd s1,24(sp) + 1810: 854a mv a0,s2 + 1812: 84d6 mv s1,s5 + 1814: 896a mv s2,s10 + 1816: 87a2 mv a5,s0 + 1818: 8d6e mv s10,s11 + stbsp__chk_cb_buf(1); + 181a: 1fe00b93 li s7,510 + STBSP__UNALIGNED(while (i >= 4) { + 181e: 8de6 mv s11,s9 + stbsp__cb_buf_clamp(i, n); + 1820: 20000b13 li s6,512 + STBSP__UNALIGNED(while (i >= 4) { + 1824: 4a0d li s4,3 + 1826: e87e sd t6,16(sp) + 1828: f072 sd t3,32(sp) + 182a: 8ac6 mv s5,a7 + 182c: f41a sd t1,40(sp) + 182e: 8436 mv s0,a3 + 1830: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, n); + 1832: 0004071b sext.w a4,s0 + 1836: 100982e3 beqz s3,213a + 183a: 40a78633 sub a2,a5,a0 + 183e: 40cb05bb subw a1,s6,a2 + 1842: 862e mv a2,a1 + 1844: 00b75363 bge a4,a1,184a + 1848: 863a mv a2,a4 + 184a: 0006071b sext.w a4,a2 + n -= i; + 184e: 9c11 subw s0,s0,a2 + STBSP__UNALIGNED(while (i >= 4) { + 1850: 14ea50e3 bge s4,a4,2190 + 1854: ffc70f1b addiw t5,a4,-4 + 1858: 002f5e9b srliw t4,t5,0x2 + 185c: 001e8e1b addiw t3,t4,1 + 1860: 0e0a slli t3,t3,0x2 + 1862: 01c785b3 add a1,a5,t3 + 1866: 8626 mv a2,s1 + 1868: 4218 lw a4,0(a2) + 186a: 0791 addi a5,a5,4 + 186c: 0611 addi a2,a2,4 + 186e: 2701 sext.w a4,a4 + 1870: fee7ae23 sw a4,-4(a5) + 1874: feb79ae3 bne a5,a1,1868 + 1878: 002e9e9b slliw t4,t4,0x2 + 187c: 41df073b subw a4,t5,t4 + while (i) { + 1880: 94f2 add s1,s1,t3 + 1882: c31d beqz a4,18a8 + 1884: 8626 mv a2,s1 + 1886: 87ae mv a5,a1 + 1888: 00e58f3b addw t5,a1,a4 + *bf++ = *s++; + 188c: 00064e83 lbu t4,0(a2) + 1890: 0785 addi a5,a5,1 + while (i) { + 1892: 00078e1b sext.w t3,a5 + *bf++ = *s++; + 1896: ffd78fa3 sb t4,-1(a5) + 189a: 0605 addi a2,a2,1 + while (i) { + 189c: ffcf18e3 bne t5,t3,188c + 18a0: 1702 slli a4,a4,0x20 + 18a2: 9301 srli a4,a4,0x20 + 18a4: 95ba add a1,a1,a4 + 18a6: 94ba add s1,s1,a4 + stbsp__chk_cb_buf(1); + 18a8: 1a098763 beqz s3,1a56 + 18ac: 40a5863b subw a2,a1,a0 + 18b0: 1acbd363 bge s7,a2,1a56 + 18b4: 65a2 ld a1,8(sp) + 18b6: 0126093b addw s2,a2,s2 + 18ba: 9982 jalr s3 + 18bc: 20050be3 beqz a0,22d2 + 18c0: 87aa mv a5,a0 + while (n) { + 18c2: f825 bnez s0,1832 + 18c4: 6fc2 ld t6,16(sp) + 18c6: 64e2 ld s1,24(sp) + 18c8: 7e02 ld t3,32(sp) + 18ca: 7322 ld t1,40(sp) + 18cc: 83e6 mv t2,s9 + 18ce: 88d6 mv a7,s5 + 18d0: 8cee mv s9,s11 + 18d2: 843e mv s0,a5 + 18d4: 8dea mv s11,s10 + 18d6: 8d4a mv s10,s2 + 18d8: 892a mv s2,a0 + while (tz) { + 18da: 08088863 beqz a7,196a + *(stbsp__uint32 *)bf = 0x30303030; + 18de: 30303b37 lui s6,0x30303 + *bf++ = '0'; + 18e2: 03000a13 li s4,48 + while (i >= 4) { + 18e6: 4a8d li s5,3 + stbsp__chk_cb_buf(1); + 18e8: 1fe00693 li a3,510 + *(stbsp__uint32 *)bf = 0x30303030; + 18ec: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fb878> + stbsp__cb_buf_clamp(i, tz); + 18f0: 20000b93 li s7,512 + 18f4: 040989e3 beqz s3,2146 + 18f8: 41240633 sub a2,s0,s2 + 18fc: 40cb87bb subw a5,s7,a2 + 1900: 873e mv a4,a5 + 1902: 00f8d363 bge a7,a5,1908 + 1906: 8746 mv a4,a7 + 1908: 0007079b sext.w a5,a4 + tz -= i; + 190c: 40e888bb subw a7,a7,a4 + while (i) { + 1910: 08078ee3 beqz a5,21ac + if ((((stbsp__uintptr)bf) & 3) == 0) + 1914: 00347713 andi a4,s0,3 + 1918: e719 bnez a4,1926 + 191a: 0390006f j 2152 + 191e: 00347713 andi a4,s0,3 + 1922: 7a070f63 beqz a4,20e0 + *bf++ = '0'; + 1926: 01440023 sb s4,0(s0) + --i; + 192a: 37fd addiw a5,a5,-1 + *bf++ = '0'; + 192c: 0405 addi s0,s0,1 + while (i) { + 192e: fbe5 bnez a5,191e + stbsp__chk_cb_buf(1); + 1930: 02098b63 beqz s3,1966 + 1934: 4124063b subw a2,s0,s2 + 1938: 02c6d763 bge a3,a2,1966 + 193c: 65a2 ld a1,8(sp) + 193e: 854a mv a0,s2 + 1940: f81e sd t2,48(sp) + 1942: f41a sd t1,40(sp) + 1944: f072 sd t3,32(sp) + 1946: ec7e sd t6,24(sp) + 1948: e846 sd a7,16(sp) + 194a: 00cd0d3b addw s10,s10,a2 + 194e: 9982 jalr s3 + 1950: 892a mv s2,a0 + 1952: 1a0502e3 beqz a0,22f6 + 1956: 73c2 ld t2,48(sp) + 1958: 7322 ld t1,40(sp) + 195a: 7e02 ld t3,32(sp) + 195c: 6fe2 ld t6,24(sp) + 195e: 68c2 ld a7,16(sp) + 1960: 842a mv s0,a0 + 1962: 1fe00693 li a3,510 + while (tz) { + 1966: f80897e3 bnez a7,18f4 + sn = tail + 1; + 196a: 07110793 addi a5,sp,113 + 196e: fcbe sd a5,120(sp) + while (tail[0]) { + 1970: 080f8763 beqz t6,19fe + stbsp__cb_buf_clamp(i, tail[0]); + 1974: 854a mv a0,s2 + 1976: 8b6a mv s6,s10 + stbsp__chk_cb_buf(1); + 1978: 1fe00a93 li s5,510 + stbsp__cb_buf_clamp(i, tail[0]); + 197c: 8d4e mv s10,s3 + 197e: 20000a13 li s4,512 + 1982: 8bf2 mv s7,t3 + 1984: 891a mv s2,t1 + 1986: 899e mv s3,t2 + 1988: 000f879b sext.w a5,t6 + 198c: 7c0d0863 beqz s10,215c + 1990: 40a4063b subw a2,s0,a0 + 1994: 40ca06bb subw a3,s4,a2 + 1998: 8736 mv a4,a3 + 199a: 00d7d363 bge a5,a3,19a0 + 199e: 873e mv a4,a5 + tail[0] -= (char)i; + 19a0: 40ef8fbb subw t6,t6,a4 + stbsp__cb_buf_clamp(i, tail[0]); + 19a4: 0007079b sext.w a5,a4 + tail[0] -= (char)i; + 19a8: 07f10823 sb t6,112(sp) + while (i) { + 19ac: c795 beqz a5,19d8 + 19ae: 75e6 ld a1,120(sp) + 19b0: 02079613 slli a2,a5,0x20 + 19b4: 9201 srli a2,a2,0x20 + 19b6: 00c406b3 add a3,s0,a2 + 19ba: 87ae mv a5,a1 + *bf++ = *sn++; + 19bc: 0007c703 lbu a4,0(a5) + 19c0: 0405 addi s0,s0,1 + while (i) { + 19c2: 0785 addi a5,a5,1 + *bf++ = *sn++; + 19c4: fee40fa3 sb a4,-1(s0) + while (i) { + 19c8: fed41ae3 bne s0,a3,19bc + 19cc: 95b2 add a1,a1,a2 + 19ce: fcae sd a1,120(sp) + stbsp__chk_cb_buf(1); + 19d0: 000d0d63 beqz s10,19ea + 19d4: 40a4063b subw a2,s0,a0 + 19d8: 00cad963 bge s5,a2,19ea + 19dc: 65a2 ld a1,8(sp) + 19de: 00cb0b3b addw s6,s6,a2 + 19e2: 9d02 jalr s10 + 19e4: 200509e3 beqz a0,23f6 + 19e8: 842a mv s0,a0 + while (tail[0]) { + 19ea: 07014f83 lbu t6,112(sp) + 19ee: f80f9de3 bnez t6,1988 + 19f2: 834a mv t1,s2 + 19f4: 83ce mv t2,s3 + 19f6: 8e5e mv t3,s7 + 19f8: 89ea mv s3,s10 + 19fa: 892a mv s2,a0 + 19fc: 8d5a mv s10,s6 + if (fl & STBSP__LEFTJUST) + 19fe: 001e7e13 andi t3,t3,1 + 1a02: 000e0663 beqz t3,1a0e + if (fw > 0) { + 1a06: 00605463 blez t1,1a0e + 1a0a: 0300106f j 2a3a + for (;;) { + 1a0e: 6b86 ld s7,64(sp) + 1a10: 2c013a03 ld s4,704(sp) + 1a14: 2b813a83 ld s5,696(sp) + 1a18: 2b013b03 ld s6,688(sp) + ++f; + 1a1c: 0485 addi s1,s1,1 + for (;;) { + 1a1e: b0f1 j 12ea + fl |= STBSP__METRIC_SUFFIX; + 1a20: 100e6e13 ori t3,t3,256 + continue; + 1a24: 0685 addi a3,a3,1 + 1a26: bad1 j 13fa + while (i) { + 1a28: 0e0580e3 beqz a1,2308 + if ((((stbsp__uintptr)bf) & 3) == 0) + 1a2c: 00347793 andi a5,s0,3 + 1a30: e799 bnez a5,1a3e + 1a32: 0dd0006f j 230e + 1a36: 00347793 andi a5,s0,3 + 1a3a: 72078463 beqz a5,2162 + *bf++ = '0'; + 1a3e: 01d40023 sb t4,0(s0) + --i; + 1a42: 35fd addiw a1,a1,-1 + *bf++ = '0'; + 1a44: 0405 addi s0,s0,1 + while (i) { + 1a46: f9e5 bnez a1,1a36 + while (i) { + 1a48: 85a2 mv a1,s0 + stbsp__chk_cb_buf(1); + 1a4a: cc0b19e3 bnez s6,171c + 1a4e: 842e mv s0,a1 + while (pr > 0) { + 1a50: c93042e3 bgtz s3,16d4 + 1a54: b9cd j 1746 + while (i) { + 1a56: 87ae mv a5,a1 + while (n) { + 1a58: dc041de3 bnez s0,1832 + 1a5c: b5a5 j 18c4 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a5e: fd07871b addiw a4,a5,-48 + 1a62: 0ff77713 zext.b a4,a4 + 1a66: 4625 li a2,9 + ++f; + 1a68: 0485 addi s1,s1,1 + pr = 0; + 1a6a: 4881 li a7,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a6c: 46a5 li a3,9 + 1a6e: 9ce669e3 bltu a2,a4,1440 + pr = pr * 10 + f[0] - '0'; + 1a72: 0028971b slliw a4,a7,0x2 + 1a76: 0117073b addw a4,a4,a7 + 1a7a: 0017171b slliw a4,a4,0x1 + f++; + 1a7e: 0485 addi s1,s1,1 + pr = pr * 10 + f[0] - '0'; + 1a80: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a82: 0004c783 lbu a5,0(s1) + pr = pr * 10 + f[0] - '0'; + 1a86: fd07089b addiw a7,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a8a: fd07871b addiw a4,a5,-48 + 1a8e: 0ff77713 zext.b a4,a4 + 1a92: fee6f0e3 bgeu a3,a4,1a72 + 1a96: b26d j 1440 + fl |= STBSP__METRIC_1024; + 1a98: 8f5d or a4,a4,a5 + 1a9a: 00070e1b sext.w t3,a4 + 1a9e: 0685 addi a3,a3,1 + 1aa0: baa9 j 13fa + *bf = 0; + 1aa2: 00040023 sb zero,0(s0) + 1aa6: b209 j 13a8 + if (f[0] == 'l') { + 1aa8: 0014c783 lbu a5,1(s1) + 1aac: 06c00713 li a4,108 + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 1ab0: 020e6e13 ori t3,t3,32 + if (f[0] == 'l') { + 1ab4: 00e78c63 beq a5,a4,1acc + ++f; + 1ab8: 0485 addi s1,s1,1 + 1aba: ba65 j 1472 + if (f[0] == 'h') + 1abc: 0014c783 lbu a5,1(s1) + 1ac0: 06800713 li a4,104 + fl |= STBSP__HALFWIDTH; + 1ac4: 200e6e13 ori t3,t3,512 + if (f[0] == 'h') + 1ac8: fee798e3 bne a5,a4,1ab8 + if ((f[1] == '6') && (f[2] == '4')) { + 1acc: 0024c783 lbu a5,2(s1) + ++f; + 1ad0: 0489 addi s1,s1,2 + 1ad2: b245 j 1472 + s = va_arg(va, char *); + 1ad4: 008b8713 addi a4,s7,8 + 1ad8: e0ba sd a4,64(sp) + if (fl & STBSP__INTMAX) { + 1ada: 020e7693 andi a3,t3,32 + 1ade: 8772 mv a4,t3 + 1ae0: 24069ee3 bnez a3,253c + stbsp__int32 i = va_arg(va, stbsp__int32); + 1ae4: 000ba683 lw a3,0(s7) + if ((f[0] != 'u') && (i < 0)) { + 1ae8: 07500613 li a2,117 + n64 = (stbsp__uint32)i; + 1aec: 02069f13 slli t5,a3,0x20 + 1af0: 020f5f13 srli t5,t5,0x20 + if ((f[0] != 'u') && (i < 0)) { + 1af4: 00c78a63 beq a5,a2,1b08 + 1af8: 0006d863 bgez a3,1b08 + fl |= STBSP__NEGATIVE; + 1afc: 08076713 ori a4,a4,128 + n64 = (stbsp__uint32)-i; + 1b00: 40d00f3b negw t5,a3 + fl |= STBSP__NEGATIVE; + 1b04: 00070e1b sext.w t3,a4 + if (fl & STBSP__METRIC_SUFFIX) { + 1b08: 100e7693 andi a3,t3,256 + 1b0c: 5c0683e3 beqz a3,28d2 + if (n64 < 1024) + 1b10: 3ff00793 li a5,1023 + 1b14: 01e7e463 bltu a5,t5,1b1c + 1b18: 0ea0106f j 2c02 + else if (pr == -1) + 1b1c: 57fd li a5,-1 + 1b1e: 30f887e3 beq a7,a5,262c + fv = (double)(stbsp__int64)n64; + 1b22: d22f7553 fcvt.d.l fa0,t5 + if (fl & STBSP__METRIC_1024) + 1b26: 034e1793 slli a5,t3,0x34 + 1b2a: 0007c463 bltz a5,1b32 + 1b2e: 2300106f j 2d5e + divisor = 1024.0; + 1b32: 00004797 auipc a5,0x4 + 1b36: c767b787 fld fa5,-906(a5) # 57a8 + if ((fv < divisor) && (fv > -divisor)) + 1b3a: 22f79753 fneg.d fa4,fa5 + fl += 0x1000000; + 1b3e: 010006b7 lui a3,0x1000 + while (fl < 0x4000000) { + 1b42: 04000737 lui a4,0x4000 + if ((fv < divisor) && (fv > -divisor)) + 1b46: a2f517d3 flt.d a5,fa0,fa5 + 1b4a: c789 beqz a5,1b54 + 1b4c: a2a717d3 flt.d a5,fa4,fa0 + 1b50: 3e079863 bnez a5,1f40 + fl += 0x1000000; + 1b54: 01c68e3b addw t3,a3,t3 + fv /= divisor; + 1b58: 1af57553 fdiv.d fa0,fa0,fa5 + while (fl < 0x4000000) { + 1b5c: feee65e3 bltu t3,a4,1b46 + 1b60: a6c5 j 1f40 + h = (f[0] == 'X') ? hexu : hex; + 1b62: 05800693 li a3,88 + if (fl & STBSP__INTMAX) { + 1b66: 020e7713 andi a4,t3,32 + h = (f[0] == 'X') ? hexu : hex; + 1b6a: 00005817 auipc a6,0x5 + 1b6e: e3e80813 addi a6,a6,-450 # 69a8 + 1b72: 00d79663 bne a5,a3,1b7e + 1b76: 00005817 auipc a6,0x5 + 1b7a: e1a80813 addi a6,a6,-486 # 6990 + l = (4 << 4) | (4 << 8); + 1b7e: 44000793 li a5,1088 + 1b82: d0be sw a5,96(sp) + if (fl & STBSP__LEADING_0X) { + 1b84: 008e7793 andi a5,t3,8 + 1b88: 7a079263 bnez a5,232c + lead[0] = 0; + 1b8c: 06010423 sb zero,104(sp) + s = va_arg(va, char *); + 1b90: 008b8793 addi a5,s7,8 + 1b94: e0be sd a5,64(sp) + if (fl & STBSP__INTMAX) + 1b96: 72070b63 beqz a4,22cc + n64 = va_arg(va, stbsp__uint64); + 1b9a: 000bb683 ld a3,0(s7) + dp = 0; + 1b9e: d282 sw zero,100(sp) + tail[0] = 0; + 1ba0: 06010823 sb zero,112(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1ba4: 001e7513 andi a0,t3,1 + if (n64 == 0) { + 1ba8: 380694e3 bnez a3,2730 + lead[0] = 0; + 1bac: 06010423 sb zero,104(sp) + if (pr == 0) { + 1bb0: 78089a63 bnez a7,2344 + if (fw < (stbsp__int32)n) + 1bb4: fffb4313 not t1,s6 + 1bb8: 43f35313 srai t1,t1,0x3f + l = 0; + 1bbc: d082 sw zero,96(sp) + if (fw < (stbsp__int32)n) + 1bbe: 01637333 and t1,t1,s6 + goto scopy; + 1bc2: 4701 li a4,0 + 1bc4: 4f81 li t6,0 + 1bc6: 4a01 li s4,0 + cs = 0; + 1bc8: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 1bca: 28010a93 addi s5,sp,640 + if ((fl & STBSP__LEFTJUST) == 0) { + 1bce: 9c0506e3 beqz a0,159a + if (fw + pr) { + 1bd2: 00e307bb addw a5,t1,a4 + 1bd6: 9c079fe3 bnez a5,15b4 + 1bda: 06910793 addi a5,sp,105 + 1bde: b661 j 1766 + h = (f[0] == 'E') ? hexu : hex; + 1be0: 04500713 li a4,69 + 1be4: 00005317 auipc t1,0x5 + 1be8: dc430313 addi t1,t1,-572 # 69a8 + 1bec: 1ce78ae3 beq a5,a4,25c0 + fv = va_arg(va, double); + 1bf0: 008b8713 addi a4,s7,8 + if (pr == -1) + 1bf4: 57fd li a5,-1 + fv = va_arg(va, double); + 1bf6: e0ba sd a4,64(sp) + 1bf8: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1bfc: 1af88ce3 beq a7,a5,25b4 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1c00: 80000737 lui a4,0x80000 + 1c04: 00e8e733 or a4,a7,a4 + 1c08: 2701 sext.w a4,a4 + 1c0a: 10d4 addi a3,sp,100 + 1c0c: 0110 addi a2,sp,128 + 1c0e: 108c addi a1,sp,96 + 1c10: 18a8 addi a0,sp,120 + 1c12: f41e sd t2,40(sp) + 1c14: f01a sd t1,32(sp) + 1c16: ec72 sd t3,24(sp) + 1c18: e846 sd a7,16(sp) + 1c1a: d8efe0ef jal 1a8 + 1c1e: 68c2 ld a7,16(sp) + 1c20: 6e62 ld t3,24(sp) + 1c22: 7302 ld t1,32(sp) + 1c24: 73a2 ld t2,40(sp) + if (dp == STBSP__SPECIAL) { + 1c26: 5796 lw a5,100(sp) + s = (char *)sn; + 1c28: 7ae6 ld s5,120(sp) + if ((l - 1) > (stbsp__uint32)pr) + 1c2a: 5686 lw a3,96(sp) + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1c2c: 3c0511e3 bnez a0,27ee + tail[0] = 0; + 1c30: 06010823 sb zero,112(sp) + sign[0] = 0; + 1c34: 06010423 sb zero,104(sp) + } else if (fl & STBSP__LEADINGSPACE) { + 1c38: 004e7713 andi a4,t3,4 + 1c3c: 6a070ee3 beqz a4,2af8 + sign[0] = 1; + 1c40: 6709 lui a4,0x2 + 1c42: 0705 addi a4,a4,1 # 2001 + 1c44: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1c48: 671d lui a4,0x7 + 1c4a: 1ee794e3 bne a5,a4,2632 + if (pr < (stbsp__int32)l) + 1c4e: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1c52: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 1c56: fff7c793 not a5,a5 + n = pr + lead[0] + tail[0] + tz; + 1c5a: 07014f83 lbu t6,112(sp) + if (pr < (stbsp__int32)l) + 1c5e: 97fd srai a5,a5,0x3f + 1c60: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1c62: 00fa073b addw a4,s4,a5 + 1c66: 01f7063b addw a2,a4,t6 + 1c6a: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1c6c: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 1c70: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 1c72: 835a mv t1,s6 + 1c74: 00cb5363 bge s6,a2,1c7a + 1c78: 8332 mv t1,a2 + fw -= n; + 1c7a: 40e3033b subw t1,t1,a4 + cs = 0; + 1c7e: 4281 li t0,0 + pr -= l; + 1c80: 40d7873b subw a4,a5,a3 + tz = 0; + 1c84: 4881 li a7,0 + goto scopy; + 1c86: b7a1 j 1bce + h = (f[0] == 'G') ? hexu : hex; + 1c88: 04700713 li a4,71 + 1c8c: 00005317 auipc t1,0x5 + 1c90: d1c30313 addi t1,t1,-740 # 69a8 + 1c94: 14e783e3 beq a5,a4,25da + fv = va_arg(va, double); + 1c98: 008b8713 addi a4,s7,8 + if (pr == -1) + 1c9c: 57fd li a5,-1 + fv = va_arg(va, double); + 1c9e: e0ba sd a4,64(sp) + 1ca0: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1ca4: 12f884e3 beq a7,a5,25cc + else if (pr == 0) + 1ca8: 6e0887e3 beqz a7,2b96 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1cac: fff8871b addiw a4,a7,-1 + 1cb0: 800007b7 lui a5,0x80000 + 1cb4: 8f5d or a4,a4,a5 + 1cb6: 2701 sext.w a4,a4 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 1cb8: 00088a9b sext.w s5,a7 + 1cbc: 8a46 mv s4,a7 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1cbe: 10d4 addi a3,sp,100 + 1cc0: 0110 addi a2,sp,128 + 1cc2: 108c addi a1,sp,96 + 1cc4: 18a8 addi a0,sp,120 + 1cc6: f01e sd t2,32(sp) + 1cc8: ec1a sd t1,24(sp) + 1cca: e872 sd t3,16(sp) + 1ccc: cdcfe0ef jal 1a8 + 1cd0: 6e42 ld t3,16(sp) + 1cd2: 6362 ld t1,24(sp) + 1cd4: 7382 ld t2,32(sp) + 1cd6: 4281 li t0,0 + 1cd8: c509 beqz a0,1ce2 + fl |= STBSP__NEGATIVE; + 1cda: 080e6e13 ori t3,t3,128 + 1cde: 08000293 li t0,128 + if (l > (stbsp__uint32)pr) + 1ce2: 5806 lw a6,96(sp) + 1ce4: 010af463 bgeu s5,a6,1cec + l = pr; + 1ce8: d0d6 sw s5,96(sp) + 1cea: 8856 mv a6,s5 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1cec: 4705 li a4,1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1cee: 5796 lw a5,100(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1cf0: 01076463 bltu a4,a6,1cf8 + 1cf4: 1800106f j 2e74 + 1cf8: 7be6 ld s7,120(sp) + 1cfa: fff8071b addiw a4,a6,-1 + 1cfe: 1702 slli a4,a4,0x20 + 1d00: 9301 srli a4,a4,0x20 + 1d02: 001a0e9b addiw t4,s4,1 + 1d06: 75e2 ld a1,56(sp) + 1d08: 8ade mv s5,s7 + 1d0a: 975e add a4,a4,s7 + 1d0c: 410e8ebb subw t4,t4,a6 + 1d10: 88d2 mv a7,s4 + 1d12: 86c2 mv a3,a6 + 1d14: 4f01 li t5,0 + 1d16: 03000f93 li t6,48 + 1d1a: e842 sd a6,16(sp) + 1d1c: a809 j 1d2e + --pr; + 1d1e: 38fd addiw a7,a7,-1 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d20: 211e80e3 beq t4,a7,2720 + 1d24: 177d addi a4,a4,-1 # 6fff <_stdout+0x21f> + 1d26: 4f05 li t5,1 + 1d28: 1e088ce3 beqz a7,2720 + --l; + 1d2c: 85b6 mv a1,a3 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d2e: 00074803 lbu a6,0(a4) + 1d32: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff8847> + 1d36: 0006851b sext.w a0,a3 + 1d3a: 2581 sext.w a1,a1 + 1d3c: 0006069b sext.w a3,a2 + 1d40: fdf80fe3 beq a6,t6,1d1e + 1d44: 6842 ld a6,16(sp) + 1d46: fc2e sd a1,56(sp) + 1d48: 86c2 mv a3,a6 + 1d4a: 000f0463 beqz t5,1d52 + 1d4e: d0ae sw a1,96(sp) + 1d50: 86ae mv a3,a1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1d52: 5775 li a4,-3 + 1d54: 08e7cee3 blt a5,a4,25f0 + 1d58: 08fa4be3 blt s4,a5,25ee + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1d5c: 0005071b sext.w a4,a0 + if (dp > 0) { + 1d60: 7ef057e3 blez a5,2d4e + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1d64: 4881 li a7,0 + 1d66: 00e7d463 bge a5,a4,1d6e + 1d6a: 40f508bb subw a7,a0,a5 + tail[0] = 0; + 1d6e: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 1d72: 20029463 bnez t0,1f7a + } else if (fl & STBSP__LEADINGSPACE) { + 1d76: 004e7713 andi a4,t3,4 + 1d7a: 000715e3 bnez a4,2584 + } else if (fl & STBSP__LEADINGPLUS) { + 1d7e: 002e7713 andi a4,t3,2 + 1d82: 660719e3 bnez a4,2bf4 + sign[0] = 0; + 1d86: 06010423 sb zero,104(sp) + 1d8a: aaed j 1f84 + h = (f[0] == 'A') ? hexu : hex; + 1d8c: 04100713 li a4,65 + 1d90: 00005597 auipc a1,0x5 + 1d94: c1858593 addi a1,a1,-1000 # 69a8 + 1d98: 00e783e3 beq a5,a4,259e + fv = va_arg(va, double); + 1d9c: 008b8693 addi a3,s7,8 + if (pr == -1) + 1da0: 577d li a4,-1 + fv = va_arg(va, double); + 1da2: e0b6 sd a3,64(sp) + 1da4: 000bb783 ld a5,0(s7) + if (pr == -1) + 1da8: 7ee88963 beq a7,a4,259a + d = value; + + STBSP__COPYFP(b, d); + + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1dac: 4347d613 srai a2,a5,0x34 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1db0: 00c79513 slli a0,a5,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1db4: 7ff67613 andi a2,a2,2047 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1db8: 8131 srli a0,a0,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1dba: c016061b addiw a2,a2,-1023 + if (stbsp__real_to_parts((stbsp__int64 *)&n64, &dp, fv)) + 1dbe: 7a07c863 bltz a5,256e + } else if (fl & STBSP__LEADINGSPACE) { + 1dc2: 004e7793 andi a5,t3,4 + 1dc6: 60078ee3 beqz a5,2be2 + 1dca: 6789 lui a5,0x2 + 1dcc: 2785 addiw a5,a5,1 # 2001 + sign[0] = 1; + 1dce: 06f11423 sh a5,104(sp) + 1dd2: 468d li a3,3 + 1dd4: 4a0d li s4,3 + 1dd6: 4809 li a6,2 + n64 |= (((stbsp__uint64)1) << 52); + 1dd8: 4705 li a4,1 + 1dda: 1752 slli a4,a4,0x34 + if (dp == -1023) + 1ddc: c0100793 li a5,-1023 + n64 |= (((stbsp__uint64)1) << 52); + 1de0: 8f49 or a4,a4,a0 + if (dp == -1023) + 1de2: 5cf600e3 beq a2,a5,2ba2 + if (pr < 15) + 1de6: 4539 li a0,14 + n64 <<= (64 - 56); + 1de8: 00871793 slli a5,a4,0x8 + if (pr < 15) + 1dec: 251546e3 blt a0,a7,2838 + n64 += ((((stbsp__uint64)8) << 56) >> (pr * 4)); + 1df0: 4705 li a4,1 + 1df2: 0028951b slliw a0,a7,0x2 + 1df6: 176e slli a4,a4,0x3b + 1df8: 00a75733 srl a4,a4,a0 + 1dfc: 973e add a4,a4,a5 + *s++ = h[(n64 >> 60) & 15]; + 1dfe: 03c75793 srli a5,a4,0x3c + 1e02: 97ae add a5,a5,a1 + 1e04: 0007c503 lbu a0,0(a5) + lead[1 + lead[0]] = '0'; + 1e08: 22080793 addi a5,a6,544 + 1e0c: 06010813 addi a6,sp,96 + 1e10: 97c2 add a5,a5,a6 + 1e12: 03000813 li a6,48 + 1e16: df078423 sb a6,-536(a5) + lead[2 + lead[0]] = 'x'; + 1e1a: 22068793 addi a5,a3,544 + 1e1e: 1094 addi a3,sp,96 + 1e20: 96be add a3,a3,a5 + 1e22: 07800793 li a5,120 + 1e26: def68423 sb a5,-536(a3) + lead[0] += 2; + 1e2a: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 1e2e: 0ca10023 sb a0,192(sp) + if (pr) + 1e32: 740893e3 bnez a7,2d78 + sn = s; + 1e36: 0c110793 addi a5,sp,193 + 1e3a: fcbe sd a5,120(sp) + 1e3c: 4701 li a4,0 + 1e3e: 4501 li a0,0 + 1e40: 4305 li t1,1 + 1e42: 4685 li a3,1 + tail[1] = h[17]; + 1e44: 0115c583 lbu a1,17(a1) + tail[2] = '+'; + 1e48: 02b00793 li a5,43 + tail[1] = h[17]; + 1e4c: 06b108a3 sb a1,113(sp) + if (dp < 0) { + 1e50: 00065663 bgez a2,1e5c + dp = -dp; + 1e54: 40c0063b negw a2,a2 + tail[2] = '-'; + 1e58: 02d00793 li a5,45 + tail[n] = '0' + dp % 10; + 1e5c: 4829 li a6,10 + 1e5e: 030665bb remw a1,a2,a6 + 1e62: 06f10923 sb a5,114(sp) + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1e66: 3e700e93 li t4,999 + tail[n] = '0' + dp % 10; + 1e6a: 0305859b addiw a1,a1,48 + 1e6e: 0ff5f593 zext.b a1,a1 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1e72: 18cec3e3 blt t4,a2,27f8 + 1e76: 06300e93 li t4,99 + 1e7a: 54cec1e3 blt t4,a2,2bbc + 1e7e: 4ea5 li t4,9 + 1e80: 72ced6e3 bge t4,a2,2dac + dp /= 10; + 1e84: 030647bb divw a5,a2,a6 + tail[0] = (char)n; + 1e88: 4611 li a2,4 + 1e8a: 06c10823 sb a2,112(sp) + tail[n] = '0' + dp % 10; + 1e8e: 06b10a23 sb a1,116(sp) + 1e92: 4811 li a6,4 + 1e94: 4f91 li t6,4 + 1e96: 0307879b addiw a5,a5,48 + 1e9a: 06f109a3 sb a5,115(sp) + n = pr + lead[0] + tail[0] + tz; + 1e9e: 006a07bb addw a5,s4,t1 + 1ea2: 010787bb addw a5,a5,a6 + 1ea6: 0117863b addw a2,a5,a7 + dp = (int)(s - sn); + 1eaa: d2aa sw a0,100(sp) + l = (int)(s - (num + 64)); + 1eac: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 1eae: 87b2 mv a5,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1eb0: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1eb4: 835a mv t1,s6 + 1eb6: 00cb5363 bge s6,a2,1ebc + 1eba: 8332 mv t1,a2 + cs = 1 + (3 << 24); + 1ebc: 030002b7 lui t0,0x3000 + fw -= n; + 1ec0: 40f3033b subw t1,t1,a5 + cs = 1 + (3 << 24); + 1ec4: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8849> + s = num + 64; + 1ec6: 0c010a93 addi s5,sp,192 + goto scopy; + 1eca: b311 j 1bce + h = (f[0] == 'B') ? hexu : hex; + 1ecc: 04200713 li a4,66 + 1ed0: 00005817 auipc a6,0x5 + 1ed4: ad880813 addi a6,a6,-1320 # 69a8 + 1ed8: 6ce78963 beq a5,a4,25aa + if (fl & STBSP__LEADING_0X) { + 1edc: 008e7793 andi a5,t3,8 + 1ee0: 66079e63 bnez a5,255c + lead[0] = 0; + 1ee4: 06010423 sb zero,104(sp) + l = (8 << 4) | (1 << 8); + 1ee8: 18000793 li a5,384 + 1eec: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 1eee: 020e7713 andi a4,t3,32 + goto radixnum; + 1ef2: b979 j 1b90 + *s = (char)va_arg(va, int); + 1ef4: 000ba783 lw a5,0(s7) + l = 1; + 1ef8: 4705 li a4,1 + 1efa: d0ba sw a4,96(sp) + *s = (char)va_arg(va, int); + 1efc: 26f10fa3 sb a5,639(sp) + 1f00: 008b8793 addi a5,s7,8 + lead[0] = 0; + 1f04: 06010423 sb zero,104(sp) + tail[0] = 0; + 1f08: 06010823 sb zero,112(sp) + dp = 0; + 1f0c: d282 sw zero,100(sp) + *s = (char)va_arg(va, int); + 1f0e: e0be sd a5,64(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1f10: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1f14: 835a mv t1,s6 + 1f16: 69605063 blez s6,2596 + fw -= n; + 1f1a: 337d addiw t1,t1,-1 + goto scopy; + 1f1c: 4701 li a4,0 + 1f1e: 4f81 li t6,0 + 1f20: 4685 li a3,1 + 1f22: 4a01 li s4,0 + cs = 0; + 1f24: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 1f26: 27f10a93 addi s5,sp,639 + tz = 0; + 1f2a: 4881 li a7,0 + goto scopy; + 1f2c: b14d j 1bce + fv = va_arg(va, double); + 1f2e: 008b8713 addi a4,s7,8 + if (fl & STBSP__METRIC_SUFFIX) { + 1f32: 100e7793 andi a5,t3,256 + fv = va_arg(va, double); + 1f36: e0ba sd a4,64(sp) + 1f38: 000bb507 fld fa0,0(s7) + if (fl & STBSP__METRIC_SUFFIX) { + 1f3c: be0795e3 bnez a5,1b26 + if (pr == -1) + 1f40: 57fd li a5,-1 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f42: 0008871b sext.w a4,a7 + if (pr == -1) + 1f46: 00f89463 bne a7,a5,1f4e + 1f4a: 4719 li a4,6 + pr = 6; // default is 6 + 1f4c: 4899 li a7,6 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f4e: 10d4 addi a3,sp,100 + 1f50: 0110 addi a2,sp,128 + 1f52: 108c addi a1,sp,96 + 1f54: 18a8 addi a0,sp,120 + 1f56: f01e sd t2,32(sp) + 1f58: ec72 sd t3,24(sp) + 1f5a: e846 sd a7,16(sp) + 1f5c: a4cfe0ef jal 1a8 + 1f60: 6e62 ld t3,24(sp) + 1f62: 68c2 ld a7,16(sp) + 1f64: 7382 ld t2,32(sp) + if (dp == STBSP__SPECIAL) { + 1f66: 5796 lw a5,100(sp) + if ((stbsp__int32)(l + n) > pr) + 1f68: 5686 lw a3,96(sp) + if (fl & STBSP__NEGATIVE) { + 1f6a: 080e7293 andi t0,t3,128 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f6e: e00500e3 beqz a0,1d6e + fl |= STBSP__NEGATIVE; + 1f72: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 1f76: 06010823 sb zero,112(sp) + sign[0] = 1; + 1f7a: 670d lui a4,0x3 + 1f7c: d0170713 addi a4,a4,-767 # 2d01 + 1f80: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1f84: 671d lui a4,0x7 + 1f86: 7ce78963 beq a5,a4,2758 + if (dp <= 0) { + 1f8a: 46f05fe3 blez a5,2c08 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((600 - (stbsp__uint32)dp) % 3) : 0; + 1f8e: 040e7313 andi t1,t3,64 + 1f92: 00078e9b sext.w t4,a5 + 1f96: 4581 li a1,0 + 1f98: 00030963 beqz t1,1faa + 1f9c: 25800593 li a1,600 + 1fa0: 41d585bb subw a1,a1,t4 + 1fa4: 470d li a4,3 + 1fa6: 02e5f5bb remuw a1,a1,a4 + *s++ = stbsp__comma; + 1faa: 00005a17 auipc s4,0x5 + 1fae: 916a0a13 addi s4,s4,-1770 # 68c0 + s = (char *)sn; + 1fb2: 7f66 ld t5,120(sp) + *s++ = stbsp__comma; + 1fb4: 0cda4283 lbu t0,205(s4) + s = num + 64; + 1fb8: 0c010a93 addi s5,sp,192 + if ((stbsp__uint32)dp >= l) { + 1fbc: 44defb63 bgeu t4,a3,2412 + n = 0; + 1fc0: 4501 li a0,0 + s = num + 64; + 1fc2: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 1fc4: 4b91 li s7,4 + 1fc6: a015 j 1fea + 1fc8: 8642 mv a2,a6 + 1fca: 883a mv a6,a4 + 1fcc: 8732 mv a4,a2 + *s++ = sn[n]; + 1fce: 02051613 slli a2,a0,0x20 + 1fd2: 9201 srli a2,a2,0x20 + 1fd4: 967a add a2,a2,t5 + 1fd6: 00064f83 lbu t6,0(a2) + ++n; + 1fda: 0015061b addiw a2,a0,1 + 1fde: 0006051b sext.w a0,a2 + *s++ = sn[n]; + 1fe2: fff70fa3 sb t6,-1(a4) # 6fff <_stdout+0x21f> + if (n >= (stbsp__uint32)dp) + 1fe6: 7bd57563 bgeu a0,t4,2790 + *s++ = stbsp__comma; + 1fea: 00170813 addi a6,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 1fee: fc030de3 beqz t1,1fc8 + 1ff2: 2585 addiw a1,a1,1 + 1ff4: fd759ae3 bne a1,s7,1fc8 + *s++ = stbsp__comma; + 1ff8: fe580fa3 sb t0,-1(a6) + 1ffc: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 1ffe: 4585 li a1,1 + 2000: b7f9 j 1fce + *d = tlen + (int)(bf - buf); + 2002: 000bb703 ld a4,0(s7) + 2006: 412407b3 sub a5,s0,s2 + 200a: 01a787bb addw a5,a5,s10 + int *d = va_arg(va, int *); + 200e: 008b8693 addi a3,s7,8 + 2012: e0b6 sd a3,64(sp) + *d = tlen + (int)(bf - buf); + 2014: c31c sw a5,0(a4) + } break; + 2016: bae5 j 1a0e + if (fl & STBSP__LEADING_0X) { + 2018: 008e7793 andi a5,t3,8 + 201c: 50079b63 bnez a5,2532 + lead[0] = 0; + 2020: 06010423 sb zero,104(sp) + l = (3 << 4) | (3 << 8); + 2024: 33000793 li a5,816 + 2028: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 202a: 020e7713 andi a4,t3,32 + h = hexu; + 202e: 00005817 auipc a6,0x5 + 2032: 96280813 addi a6,a6,-1694 # 6990 + goto radixnum; + 2036: bea9 j 1b90 + fl &= ~STBSP__LEADINGZERO; // 'p' only prints the pointer with zeros + 2038: fefe7e13 andi t3,t3,-17 + 203c: 020e6e13 ori t3,t3,32 + 2040: 02000713 li a4,32 + pr = sizeof(void *) * 2; + 2044: 48c1 li a7,16 + h = (f[0] == 'X') ? hexu : hex; + 2046: 00005817 auipc a6,0x5 + 204a: 96280813 addi a6,a6,-1694 # 69a8 + 204e: be05 j 1b7e + s = va_arg(va, char *); + 2050: 000bba83 ld s5,0(s7) + 2054: 008b8793 addi a5,s7,8 + 2058: e0be sd a5,64(sp) + if (s == 0) + 205a: 360a8ee3 beqz s5,2bd6 + if (((stbsp__uintptr)sn & 3) == 0) + 205e: 003af793 andi a5,s5,3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 2062: 5208c663 bltz a7,258e + 2066: 0008869b sext.w a3,a7 + if (((stbsp__uintptr)sn & 3) == 0) + 206a: 2a0782e3 beqz a5,2b0e + if (!limit || *sn == 0) + 206e: 5a068b63 beqz a3,2624 + if (((stbsp__uintptr)sn & 3) == 0) + 2072: 87d6 mv a5,s5 + 2074: a801 j 2084 + ++sn; + 2076: 0785 addi a5,a5,1 + if (((stbsp__uintptr)sn & 3) == 0) + 2078: 0037f713 andi a4,a5,3 + --limit; + 207c: 36fd addiw a3,a3,-1 + if (((stbsp__uintptr)sn & 3) == 0) + 207e: 280709e3 beqz a4,2b10 + if (!limit || *sn == 0) + 2082: c681 beqz a3,208a + 2084: 0007c703 lbu a4,0(a5) + 2088: f77d bnez a4,2076 + return (stbsp__uint32)(sn - s); + 208a: 415787b3 sub a5,a5,s5 + 208e: 0007869b sext.w a3,a5 + if (pr < (stbsp__int32)l) + 2092: fff6c713 not a4,a3 + 2096: 977d srai a4,a4,0x3f + 2098: 8f7d and a4,a4,a5 + 209a: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 209e: 863e mv a2,a5 + pr -= l; + 20a0: 9f15 subw a4,a4,a3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 20a2: d0b6 sw a3,96(sp) + lead[0] = 0; + 20a4: 06010423 sb zero,104(sp) + tail[0] = 0; + 20a8: 06010823 sb zero,112(sp) + dp = 0; + 20ac: d282 sw zero,100(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 20ae: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 20b2: 835a mv t1,s6 + 20b4: 00fb5363 bge s6,a5,20ba + 20b8: 833e mv t1,a5 + fw -= n; + 20ba: 40c3033b subw t1,t1,a2 + goto scopy; + 20be: 4f81 li t6,0 + 20c0: 4a01 li s4,0 + cs = 0; + 20c2: 4281 li t0,0 + tz = 0; + 20c4: 4881 li a7,0 + goto scopy; + 20c6: b621 j 1bce + *bf++ = stbsp__comma; + 20c8: 87b2 mv a5,a2 + cs = 0; + 20ca: 4a01 li s4,0 + 20cc: e44ff06f j 1710 + lead[0] -= (char)i; + 20d0: 06010423 sb zero,104(sp) + while (i) { + 20d4: d38ff06f j 160c + lead[0] -= (char)i; + 20d8: 06010423 sb zero,104(sp) + while (i) { + 20dc: ed8ff06f j 17b4 + while (i >= 4) { + 20e0: 06fadc63 bge s5,a5,2158 + tz -= i; + 20e4: 8722 mv a4,s0 + 20e6: 0007851b sext.w a0,a5 + while (i >= 4) { + 20ea: 008785bb addw a1,a5,s0 + *(stbsp__uint32 *)bf = 0x30303030; + 20ee: 01672023 sw s6,0(a4) + bf += 4; + 20f2: 0711 addi a4,a4,4 + while (i >= 4) { + 20f4: 40e5863b subw a2,a1,a4 + 20f8: fecacbe3 blt s5,a2,20ee + 20fc: ffc5061b addiw a2,a0,-4 + 2100: 0026561b srliw a2,a2,0x2 + 2104: 0016071b addiw a4,a2,1 + 2108: 37f1 addiw a5,a5,-4 + 210a: 0026161b slliw a2,a2,0x2 + 210e: 070a slli a4,a4,0x2 + 2110: 9722 add a4,a4,s0 + 2112: 9f91 subw a5,a5,a2 + while (i) { + 2114: 843a mv s0,a4 + 2116: 80078de3 beqz a5,1930 + 211a: 1782 slli a5,a5,0x20 + 211c: 9381 srli a5,a5,0x20 + 211e: 00f70433 add s0,a4,a5 + *bf++ = '0'; + 2122: 0705 addi a4,a4,1 + 2124: ff470fa3 sb s4,-1(a4) + while (i) { + 2128: fe871de3 bne a4,s0,2122 + 212c: 805ff06f j 1930 + stbsp__cb_buf_clamp(i, pr); + 2130: 85ce mv a1,s3 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2132: 4981 li s3,0 + 2134: dc049263 bnez s1,16f8 + 2138: b8d5 j 1a2c + STBSP__UNALIGNED(while (i >= 4) { + 213a: 4401 li s0,0 + 213c: 85be mv a1,a5 + 213e: f0ea4b63 blt s4,a4,1854 + 2142: f42ff06f j 1884 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2146: 00347713 andi a4,s0,3 + stbsp__cb_buf_clamp(i, tz); + 214a: 87c6 mv a5,a7 + tz -= i; + 214c: 4881 li a7,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 214e: fc071c63 bnez a4,1926 + while (i >= 4) { + 2152: 470d li a4,3 + 2154: f8f748e3 blt a4,a5,20e4 + 2158: 8722 mv a4,s0 + 215a: b7c1 j 211a + tail[0] -= (char)i; + 215c: 06010823 sb zero,112(sp) + while (i) { + 2160: b0b9 j 19ae + while (i >= 4) { + 2162: 478d li a5,3 + 2164: 8622 mv a2,s0 + 2166: d8b7d963 bge a5,a1,16f8 + 216a: ffc5839b addiw t2,a1,-4 + 216e: 0023d79b srliw a5,t2,0x2 + 2172: 0017859b addiw a1,a5,1 + 2176: 058a slli a1,a1,0x2 + 2178: 942e add s0,s0,a1 + *(stbsp__uint32 *)bf = 0x30303030; + 217a: 01762023 sw s7,0(a2) + bf += 4; + 217e: 0611 addi a2,a2,4 + while (i >= 4) { + 2180: fe861de3 bne a2,s0,217a + 2184: 0027979b slliw a5,a5,0x2 + 2188: 40f385bb subw a1,t2,a5 + 218c: d68ff06f j 16f4 + while (i) { + 2190: 85be mv a1,a5 + 2192: ee071963 bnez a4,1884 + 2196: f16ff06f j 18ac + 219a: 2c013a03 ld s4,704(sp) + 219e: 2b813a83 ld s5,696(sp) + 21a2: 2b013b03 ld s6,688(sp) + 21a6: 8ca2 mv s9,s0 + 21a8: a04ff06f j 13ac + stbsp__chk_cb_buf(1); + 21ac: 2601 sext.w a2,a2 + 21ae: 1fe00793 li a5,510 + 21b2: f8c7c563 blt a5,a2,193c + 21b6: f3eff06f j 18f4 + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 21ba: fbfe7e13 andi t3,t3,-65 + if (fw + pr) { + 21be: 006707bb addw a5,a4,t1 + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 21c2: 2e01 sext.w t3,t3 + if (fw + pr) { + 21c4: a0078be3 beqz a5,1bda + while (fw > 0) { + 21c8: be605663 blez t1,15b4 + *(stbsp__uint32 *)bf = 0x20202020; + 21cc: 20202837 lui a6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 21d0: 854a mv a0,s2 + 21d2: 894e mv s2,s3 + 21d4: 69a2 ld s3,8(sp) + *(stbsp__uint32 *)bf = 0x20202020; + 21d6: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201fa868> + stbsp__cb_buf_clamp(i, fw); + 21da: ec52 sd s4,24(sp) + 21dc: f426 sd s1,40(sp) + 21de: 87a2 mv a5,s0 + 21e0: 84ea mv s1,s10 + stbsp__chk_cb_buf(1); + 21e2: 1fe00f13 li t5,510 + stbsp__cb_buf_clamp(i, fw); + 21e6: 8d6e mv s10,s11 + *bf++ = ' '; + 21e8: 02000b13 li s6,32 + stbsp__cb_buf_clamp(i, fw); + 21ec: 8de6 mv s11,s9 + while (i >= 4) { + 21ee: 4b8d li s7,3 + stbsp__cb_buf_clamp(i, fw); + 21f0: 20000e93 li t4,512 + 21f4: e846 sd a7,16(sp) + 21f6: f07e sd t6,32(sp) + 21f8: f836 sd a3,48(sp) + 21fa: e4f2 sd t3,72(sp) + 21fc: e8ba sd a4,80(sp) + 21fe: ec96 sd t0,88(sp) + 2200: 841a mv s0,t1 + 2202: 8a42 mv s4,a6 + 2204: 8c9e mv s9,t2 + 2206: 0c090063 beqz s2,22c6 + 220a: 40a78633 sub a2,a5,a0 + 220e: 40ce873b subw a4,t4,a2 + 2212: 86ba mv a3,a4 + 2214: 00e45363 bge s0,a4,221a + 2218: 86a2 mv a3,s0 + 221a: 0006871b sext.w a4,a3 + fw -= i; + 221e: 9c15 subw s0,s0,a3 + while (i) { + 2220: e719 bnez a4,222e + 2222: a095 j 2286 + *bf++ = ' '; + 2224: 01678023 sb s6,0(a5) + --i; + 2228: 377d addiw a4,a4,-1 + *bf++ = ' '; + 222a: 0785 addi a5,a5,1 + while (i) { + 222c: cb29 beqz a4,227e + if ((((stbsp__uintptr)bf) & 3) == 0) + 222e: 0037f693 andi a3,a5,3 + 2232: faed bnez a3,2224 + while (i >= 4) { + 2234: 86be mv a3,a5 + 2236: 00070f9b sext.w t6,a4 + 223a: 00f705bb addw a1,a4,a5 + 223e: 02ebd763 bge s7,a4,226c + *(stbsp__uint32 *)bf = 0x20202020; + 2242: 0146a023 sw s4,0(a3) + bf += 4; + 2246: 0691 addi a3,a3,4 + while (i >= 4) { + 2248: 40d5863b subw a2,a1,a3 + 224c: fecbcbe3 blt s7,a2,2242 + 2250: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff8844> + 2254: 0026561b srliw a2,a2,0x2 + 2258: 0016069b addiw a3,a2,1 + 225c: 3771 addiw a4,a4,-4 + 225e: 0026161b slliw a2,a2,0x2 + 2262: 068a slli a3,a3,0x2 + 2264: 96be add a3,a3,a5 + 2266: 9f11 subw a4,a4,a2 + while (i) { + 2268: 87b6 mv a5,a3 + 226a: cb11 beqz a4,227e + 226c: 1702 slli a4,a4,0x20 + 226e: 9301 srli a4,a4,0x20 + 2270: 00e687b3 add a5,a3,a4 + *bf++ = ' '; + 2274: 0685 addi a3,a3,1 + 2276: ff668fa3 sb s6,-1(a3) + while (i) { + 227a: fef69de3 bne a3,a5,2274 + stbsp__chk_cb_buf(1); + 227e: 40a78633 sub a2,a5,a0 + 2282: 00090e63 beqz s2,229e + 2286: 2601 sext.w a2,a2 + 2288: 00cf5b63 bge t5,a2,229e + 228c: 85ce mv a1,s3 + 228e: 9cb1 addw s1,s1,a2 + 2290: 9902 jalr s2 + 2292: c541 beqz a0,231a + 2294: 87aa mv a5,a0 + 2296: 20000e93 li t4,512 + 229a: 1fe00f13 li t5,510 + while (fw > 0) { + 229e: f68044e3 bgtz s0,2206 + 22a2: 8322 mv t1,s0 + 22a4: 89ca mv s3,s2 + 22a6: 83e6 mv t2,s9 + 22a8: 68c2 ld a7,16(sp) + 22aa: 8cee mv s9,s11 + 22ac: 6a62 ld s4,24(sp) + 22ae: 8dea mv s11,s10 + 22b0: 7f82 ld t6,32(sp) + 22b2: 8d26 mv s10,s1 + 22b4: 76c2 ld a3,48(sp) + 22b6: 6e26 ld t3,72(sp) + 22b8: 6746 ld a4,80(sp) + 22ba: 62e6 ld t0,88(sp) + 22bc: 74a2 ld s1,40(sp) + 22be: 892a mv s2,a0 + 22c0: 843e mv s0,a5 + 22c2: af2ff06f j 15b4 + stbsp__cb_buf_clamp(i, fw); + 22c6: 8722 mv a4,s0 + 22c8: 4401 li s0,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 22ca: b795 j 222e + n64 = va_arg(va, stbsp__uint32); + 22cc: 000be683 lwu a3,0(s7) + 22d0: b0f9 j 1b9e + 22d2: 2c013a03 ld s4,704(sp) + 22d6: 2b813a83 ld s5,696(sp) + 22da: 2b013b03 ld s6,688(sp) + 22de: 8cca mv s9,s2 + 22e0: 8ccff06f j 13ac + 22e4: 8cd6 mv s9,s5 + 22e6: 2c013a03 ld s4,704(sp) + 22ea: 2b813a83 ld s5,696(sp) + 22ee: 2b013b03 ld s6,688(sp) + 22f2: 8baff06f j 13ac + 22f6: 2c013a03 ld s4,704(sp) + 22fa: 2b813a83 ld s5,696(sp) + 22fe: 2b013b03 ld s6,688(sp) + 2302: 8cea mv s9,s10 + 2304: 8a8ff06f j 13ac + while (i) { + 2308: 85a2 mv a1,s0 + 230a: c12ff06f j 171c + while (i >= 4) { + 230e: 478d li a5,3 + 2310: 8622 mv a2,s0 + 2312: e4b7cce3 blt a5,a1,216a + 2316: be2ff06f j 16f8 + 231a: 2c013a03 ld s4,704(sp) + 231e: 2b813a83 ld s5,696(sp) + 2322: 2b013b03 ld s6,688(sp) + 2326: 8ca6 mv s9,s1 + 2328: 884ff06f j 13ac + lead[2] = h[16]; + 232c: 01084683 lbu a3,16(a6) + lead[0] = 2; + 2330: 678d lui a5,0x3 + 2332: 0789 addi a5,a5,2 # 3002 + 2334: 06f11423 sh a5,104(sp) + lead[2] = h[16]; + 2338: 06d10523 sb a3,106(sp) + 233c: b891 j 1b90 + 233e: 8cea mv s9,s10 + 2340: 86cff06f j 13ac + 2344: 4f81 li t6,0 + 2346: 4a01 li s4,0 + 2348: 5586 lw a1,96(sp) + *--s = stbsp__comma; + 234a: 00004f17 auipc t5,0x4 + 234e: 643f4f03 lbu t5,1603(t5) # 698d + 2352: 0510 addi a2,sp,640 + 2354: 0085d71b srliw a4,a1,0x8 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 2358: 4305 li t1,1 + if (fl & STBSP__TRIPLET_COMMA) { + 235a: 040e7e93 andi t4,t3,64 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 235e: 0007029b sext.w t0,a4 + 2362: 005317bb sllw a5,t1,t0 + 2366: 37fd addiw a5,a5,-1 + 2368: 8ff5 and a5,a5,a3 + 236a: 97c2 add a5,a5,a6 + 236c: 0007c783 lbu a5,0(a5) + n64 >>= (l >> 8); + 2370: 0056d6b3 srl a3,a3,t0 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 2374: fff60a93 addi s5,a2,-1 + 2378: fef60fa3 sb a5,-1(a2) + if (!((n64) || ((stbsp__int32)((num + STBSP__NUMSZ) - s) < pr))) + 237c: e691 bnez a3,2388 + 237e: 051c addi a5,sp,640 + 2380: 415787bb subw a5,a5,s5 + 2384: 0317dd63 bge a5,a7,23be + if (fl & STBSP__TRIPLET_COMMA) { + 2388: 020e8963 beqz t4,23ba + ++l; + 238c: 0015879b addiw a5,a1,1 + if ((l & 15) == ((l >> 4) & 15)) { + 2390: 0047d29b srliw t0,a5,0x4 + 2394: 00f2c2b3 xor t0,t0,a5 + 2398: 00f2f293 andi t0,t0,15 + ++l; + 239c: 0007859b sext.w a1,a5 + if ((l & 15) == ((l >> 4) & 15)) { + 23a0: 0087d71b srliw a4,a5,0x8 + 23a4: 00029b63 bnez t0,23ba + l &= ~15; + 23a8: 9bc1 andi a5,a5,-16 + 23aa: 0007859b sext.w a1,a5 + *--s = stbsp__comma; + 23ae: ffe60a93 addi s5,a2,-2 + 23b2: ffe60f23 sb t5,-2(a2) + 23b6: 0087d71b srliw a4,a5,0x8 + 23ba: 8656 mv a2,s5 + 23bc: b74d j 235e + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 23be: 0045d29b srliw t0,a1,0x4 + 23c2: 0f0006b7 lui a3,0xf000 + if (pr < (stbsp__int32)l) + 23c6: 0007871b sext.w a4,a5 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 23ca: 0182929b slliw t0,t0,0x18 + 23ce: 00d2f2b3 and t0,t0,a3 + n = pr + lead[0] + tail[0] + tz; + 23d2: 00ef863b addw a2,t6,a4 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 23d6: d0be sw a5,96(sp) + n = pr + lead[0] + tail[0] + tz; + 23d8: 8fb2 mv t6,a2 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 23da: 86be mv a3,a5 + 23dc: 00f282bb addw t0,t0,a5 + if (fw < (stbsp__int32)n) + 23e0: 835a mv t1,s6 + 23e2: 00cb5363 bge s6,a2,23e8 + 23e6: 8332 mv t1,a2 + fw -= n; + 23e8: 41f3033b subw t1,t1,t6 + pr -= l; + 23ec: 9f1d subw a4,a4,a5 + goto scopy; + 23ee: 4f81 li t6,0 + tz = 0; + 23f0: 4881 li a7,0 + goto scopy; + 23f2: fdcff06f j 1bce + 23f6: 8cda mv s9,s6 + 23f8: 2c013a03 ld s4,704(sp) + 23fc: 2b813a83 ld s5,696(sp) + 2400: 2b013b03 ld s6,688(sp) + 2404: fa9fe06f j 13ac + fl |= ((sizeof(void *) == 8) ? STBSP__INTMAX : 0); + 2408: 020e6e13 ori t3,t3,32 + ++f; + 240c: 0485 addi s1,s1,1 + 240e: 864ff06f j 1472 + n = 0; + 2412: 4601 li a2,0 + s = num + 64; + 2414: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2416: 4511 li a0,4 + *s++ = stbsp__comma; + 2418: 00170793 addi a5,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 241c: 00030563 beqz t1,2426 + 2420: 2585 addiw a1,a1,1 + 2422: 10a58363 beq a1,a0,2528 + 2426: 873e mv a4,a5 + *s++ = sn[n]; + 2428: 02061793 slli a5,a2,0x20 + 242c: 9381 srli a5,a5,0x20 + 242e: 97fa add a5,a5,t5 + 2430: 0007c803 lbu a6,0(a5) + ++n; + 2434: 2605 addiw a2,a2,1 + *s++ = sn[n]; + 2436: ff070fa3 sb a6,-1(a4) + if (n >= l) + 243a: fcd66fe3 bltu a2,a3,2418 + if (n < (stbsp__uint32)dp) { + 243e: 0bd663e3 bltu a2,t4,2ce4 + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 2442: 415707b3 sub a5,a4,s5 + 2446: 030002b7 lui t0,0x3000 + 244a: 00f282bb addw t0,t0,a5 + if (pr) { + 244e: 00088a63 beqz a7,2462 + *s++ = stbsp__period; + 2452: 0cca4683 lbu a3,204(s4) + 2456: 00170793 addi a5,a4,1 + l = (stbsp__uint32)(s - (num + 64)); + 245a: 415787b3 sub a5,a5,s5 + *s++ = stbsp__period; + 245e: 00d70023 sb a3,0(a4) + if (fl & STBSP__METRIC_SUFFIX) { + 2462: 100e7713 andi a4,t3,256 + 2466: 86f2 mv a3,t3 + 2468: 2c070163 beqz a4,272a + if (fl & STBSP__METRIC_NOSPACE) + 246c: 40ae5f9b sraiw t6,t3,0xa + 2470: 001fcf93 xori t6,t6,1 + 2474: 001fff93 andi t6,t6,1 + tail[1] = ' '; + 2478: 02000713 li a4,32 + 247c: 06e108a3 sb a4,113(sp) + tail[0] = idx; + 2480: 07f10823 sb t6,112(sp) + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 2484: 018e561b srliw a2,t3,0x18 + 2488: 018e571b srliw a4,t3,0x18 + n = pr + lead[0] + tail[0] + tz; + 248c: 000f859b sext.w a1,t6 + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 2490: c225 beqz a2,24f0 + if (fl & STBSP__METRIC_1024) + 2492: 001f859b addiw a1,t6,1 + 2496: 0ff5f613 zext.b a2,a1 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 249a: 1702 slli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 249c: 03469513 slli a0,a3,0x34 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24a0: 85b2 mv a1,a2 + 24a2: 9301 srli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 24a4: 06055ee3 bgez a0,2d20 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24a8: 00003517 auipc a0,0x3 + 24ac: b6050513 addi a0,a0,-1184 # 5008 <_GLOBAL__sub_I__ZSt3cin+0x5a> + 24b0: 972a add a4,a4,a0 + 24b2: 00074503 lbu a0,0(a4) + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 24b6: 6709 lui a4,0x2 + 24b8: 80070713 addi a4,a4,-2048 # 1800 + 24bc: 8f75 and a4,a4,a3 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24be: 06010813 addi a6,sp,96 + 24c2: 22060693 addi a3,a2,544 + 24c6: 96c2 add a3,a3,a6 + 24c8: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff8638> + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 24cc: 8007071b addiw a4,a4,-2048 + 24d0: 060715e3 bnez a4,2d3a + tail[idx + 1] = 'i'; + 24d4: 2f89 addiw t6,t6,2 + 24d6: 0ffff593 zext.b a1,t6 + 24da: 1094 addi a3,sp,96 + 24dc: 22058713 addi a4,a1,544 + 24e0: 9736 add a4,a4,a3 + 24e2: 06900693 li a3,105 + 24e6: 8fae mv t6,a1 + 24e8: ded70823 sb a3,-528(a4) + tail[0] = idx; + 24ec: 07f10823 sb t6,112(sp) + l = (stbsp__uint32)(s - (num + 64)); + 24f0: 0007869b sext.w a3,a5 + n = pr + lead[0] + tail[0] + tz; + 24f4: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 24f8: fff6c713 not a4,a3 + 24fc: 977d srai a4,a4,0x3f + 24fe: 8ff9 and a5,a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2500: 00fa073b addw a4,s4,a5 + 2504: 9f2d addw a4,a4,a1 + 2506: 0117063b addw a2,a4,a7 + l = (stbsp__uint32)(s - (num + 64)); + 250a: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 250c: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 250e: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 2510: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 2514: 835a mv t1,s6 + 2516: 00cb5363 bge s6,a2,251c + 251a: 8332 mv t1,a2 + fw -= n; + 251c: 40e3033b subw t1,t1,a4 + pr -= l; + 2520: 40d7873b subw a4,a5,a3 + goto scopy; + 2524: eaaff06f j 1bce + *s++ = stbsp__comma; + 2528: fe578fa3 sb t0,-1(a5) + 252c: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 252e: 4585 li a1,1 + 2530: bde5 j 2428 + lead[0] = 1; + 2532: 678d lui a5,0x3 + 2534: 0785 addi a5,a5,1 # 3001 + 2536: 06f11423 sh a5,104(sp) + 253a: b4ed j 2024 + if ((f[0] != 'u') && (i64 < 0)) { + 253c: 07500693 li a3,117 + stbsp__int64 i64 = va_arg(va, stbsp__int64); + 2540: 000bbf03 ld t5,0(s7) + if ((f[0] != 'u') && (i64 < 0)) { + 2544: dcd78263 beq a5,a3,1b08 + 2548: dc0f5063 bgez t5,1b08 + fl |= STBSP__NEGATIVE; + 254c: 08076713 ori a4,a4,128 + n64 = (stbsp__uint64)-i64; + 2550: 41e00f33 neg t5,t5 + fl |= STBSP__NEGATIVE; + 2554: 00070e1b sext.w t3,a4 + 2558: db0ff06f j 1b08 + lead[2] = h[0xb]; + 255c: 00b84703 lbu a4,11(a6) + lead[0] = 2; + 2560: 678d lui a5,0x3 + 2562: 0789 addi a5,a5,2 # 3002 + 2564: 06f11423 sh a5,104(sp) + lead[2] = h[0xb]; + 2568: 06e10523 sb a4,106(sp) + 256c: bab5 j 1ee8 + sign[0] = 1; + 256e: 678d lui a5,0x3 + 2570: d0178793 addi a5,a5,-767 # 2d01 + fl |= STBSP__NEGATIVE; + 2574: 080e6e13 ori t3,t3,128 + sign[0] = 1; + 2578: 06f11423 sh a5,104(sp) + 257c: 468d li a3,3 + 257e: 4a0d li s4,3 + 2580: 4809 li a6,2 + 2582: b899 j 1dd8 + sign[0] = 1; + 2584: 6709 lui a4,0x2 + 2586: 0705 addi a4,a4,1 # 2001 + 2588: 06e11423 sh a4,104(sp) + 258c: bae5 j 1f84 + if (((stbsp__uintptr)sn & 3) == 0) + 258e: 0e0780e3 beqz a5,2e6e + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 2592: 56fd li a3,-1 + 2594: bcf9 j 2072 + if (fw < (stbsp__int32)n) + 2596: 4305 li t1,1 + 2598: b249 j 1f1a + pr = 6; // default is 6 + 259a: 4899 li a7,6 + 259c: b801 j 1dac + h = (f[0] == 'A') ? hexu : hex; + 259e: 00004597 auipc a1,0x4 + 25a2: 3f258593 addi a1,a1,1010 # 6990 + 25a6: ff6ff06f j 1d9c + h = (f[0] == 'B') ? hexu : hex; + 25aa: 00004817 auipc a6,0x4 + 25ae: 3e680813 addi a6,a6,998 # 6990 + 25b2: b22d j 1edc + 25b4: 80000737 lui a4,0x80000 + 25b8: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff884e> + pr = 6; // default is 6 + 25ba: 4899 li a7,6 + 25bc: e4eff06f j 1c0a + h = (f[0] == 'E') ? hexu : hex; + 25c0: 00004317 auipc t1,0x4 + 25c4: 3d030313 addi t1,t1,976 # 6990 + 25c8: e28ff06f j 1bf0 + 25cc: 80000737 lui a4,0x80000 + 25d0: 4a99 li s5,6 + 25d2: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff884d> + pr = 6; + 25d4: 4a19 li s4,6 + 25d6: ee8ff06f j 1cbe + h = (f[0] == 'G') ? hexu : hex; + 25da: 00004317 auipc t1,0x4 + 25de: 3b630313 addi t1,t1,950 # 6990 + 25e2: eb6ff06f j 1c98 + 25e6: 7be6 ld s7,120(sp) + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 25e8: 86c2 mv a3,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 25ea: 8542 mv a0,a6 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 25ec: 88d2 mv a7,s4 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 25ee: 8ade mv s5,s7 + if (pr > (stbsp__int32)l) + 25f0: 0005071b sext.w a4,a0 + 25f4: 01175f63 bge a4,a7,2612 + pr = l - 1; + 25f8: fff5089b addiw a7,a0,-1 + tail[0] = 0; + 25fc: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 2600: 70028c63 beqz t0,2d18 + sign[0] = 1; + 2604: 670d lui a4,0x3 + 2606: d0170713 addi a4,a4,-767 # 2d01 + 260a: 06e11423 sh a4,104(sp) + 260e: e3aff06f j 1c48 + else if (pr) + 2612: fe0885e3 beqz a7,25fc + --pr; // when using %e, there is one digit before the decimal + 2616: 38fd addiw a7,a7,-1 + 2618: b7d5 j 25fc + switch (f[0]) { + 261a: 0034c783 lbu a5,3(s1) + f += 3; + 261e: 048d addi s1,s1,3 + 2620: e53fe06f j 1472 + if (!limit || *sn == 0) + 2624: 4601 li a2,0 + 2626: 4701 li a4,0 + 2628: 4781 li a5,0 + return (stbsp__uint32)(sn - s); + 262a: bca5 j 20a2 + pr = 1; + 262c: 4885 li a7,1 + 262e: cf4ff06f j 1b22 + *s++ = sn[0]; + 2632: 000ac703 lbu a4,0(s5) + 2636: 0ce10023 sb a4,192(sp) + if (pr) + 263a: 54088563 beqz a7,2b84 + *s++ = stbsp__period; + 263e: 00004617 auipc a2,0x4 + 2642: 34e64603 lbu a2,846(a2) # 698c + if ((l - 1) > (stbsp__uint32)pr) + 2646: fff6871b addiw a4,a3,-1 + *s++ = stbsp__period; + 264a: 0cc100a3 sb a2,193(sp) + if ((l - 1) > (stbsp__uint32)pr) + 264e: 0008851b sext.w a0,a7 + 2652: 0007061b sext.w a2,a4 + 2656: 52c57163 bgeu a0,a2,2b78 + l = pr + 1; + 265a: 0018869b addiw a3,a7,1 + for (n = 1; n < l; n++) + 265e: 8746 mv a4,a7 + 2660: 02071613 slli a2,a4,0x20 + 2664: 9201 srli a2,a2,0x20 + 2666: 0c210713 addi a4,sp,194 + 266a: 0a85 addi s5,s5,1 + 266c: 963a add a2,a2,a4 + *s++ = sn[n]; + 266e: 000ac583 lbu a1,0(s5) + 2672: 0705 addi a4,a4,1 + for (n = 1; n < l; n++) + 2674: 0a85 addi s5,s5,1 + *s++ = sn[n]; + 2676: feb70fa3 sb a1,-1(a4) + for (n = 1; n < l; n++) + 267a: fec71ae3 bne a4,a2,266e + tail[1] = h[0xe]; + 267e: 00e34803 lbu a6,14(t1) + dp -= 1; + 2682: fff7871b addiw a4,a5,-1 + tail[2] = '+'; + 2686: 02b00593 li a1,43 + tail[1] = h[0xe]; + 268a: 070108a3 sb a6,113(sp) + if (dp < 0) { + 268e: 00075663 bgez a4,269a + dp = -dp; + 2692: 4705 li a4,1 + 2694: 9f1d subw a4,a4,a5 + tail[2] = '-'; + 2696: 02d00593 li a1,45 + 269a: 06b10923 sb a1,114(sp) + n = (dp >= 100) ? 5 : 4; + 269e: 06300793 li a5,99 + 26a2: 4ee7d663 bge a5,a4,2b8e + 26a6: 4595 li a1,5 + 26a8: 4f95 li t6,5 + 26aa: 4e95 li t4,5 + tail[n] = '0' + dp % 10; + 26ac: 47a9 li a5,10 + dp /= 10; + 26ae: 02f7433b divw t1,a4,a5 + --n; + 26b2: fffe8f1b addiw t5,t4,-1 + tail[n] = '0' + dp % 10; + 26b6: 020f1293 slli t0,t5,0x20 + 26ba: 220e8813 addi a6,t4,544 + 26be: 06010893 addi a7,sp,96 + 26c2: 0202d293 srli t0,t0,0x20 + 26c6: 01180eb3 add t4,a6,a7 + 26ca: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff8a68> + 26ce: 011802b3 add t0,a6,a7 + tail[0] = (char)n; + 26d2: 07f10823 sb t6,112(sp) + if (n <= 3) + 26d6: 4a0d li s4,3 + tail[n] = '0' + dp % 10; + 26d8: 02f7673b remw a4,a4,a5 + dp /= 10; + 26dc: 0003081b sext.w a6,t1 + tail[n] = '0' + dp % 10; + 26e0: 02f36abb remw s5,t1,a5 + 26e4: 0307071b addiw a4,a4,48 + 26e8: deee8823 sb a4,-528(t4) + 26ec: 030a871b addiw a4,s5,48 + 26f0: dee28823 sb a4,-528(t0) + if (n <= 3) + 26f4: 014f0a63 beq t5,s4,2708 + dp /= 10; + 26f8: 02f3483b divw a6,t1,a5 + tail[n] = '0' + dp % 10; + 26fc: 02f867bb remw a5,a6,a5 + 2700: 0307879b addiw a5,a5,48 + 2704: 06f109a3 sb a5,115(sp) + tz = pr - (l - 1); + 2708: 2505 addiw a0,a0,1 + l = (stbsp__uint32)(s - (num + 64)); + 270a: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens + 270e: 030002b7 lui t0,0x3000 + tz = pr - (l - 1); + 2712: 40d508bb subw a7,a0,a3 + 2716: d2c2 sw a6,100(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2718: 415607b3 sub a5,a2,s5 + cs = 1 + (3 << 24); // how many tens + 271c: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8849> + 271e: bbc9 j 24f0 + 2720: fc2e sd a1,56(sp) + 2722: d0b2 sw a2,96(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2724: 8536 mv a0,a3 + 2726: e2cff06f j 1d52 + flt_lead: + 272a: 4581 li a1,0 + 272c: 4f81 li t6,0 + 272e: b3c9 j 24f0 + n = pr + lead[0] + tail[0] + tz; + 2730: 06814a03 lbu s4,104(sp) + 2734: 000a0f9b sext.w t6,s4 + 2738: b901 j 2348 + if ((f[1] == '6') && (f[2] == '4')) { + 273a: 0024c683 lbu a3,2(s1) + 273e: 03400713 li a4,52 + 2742: 00e68463 beq a3,a4,274a + 2746: e2bfe06f j 1570 + switch (f[0]) { + 274a: 0034c783 lbu a5,3(s1) + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 274e: 020e6e13 ori t3,t3,32 + f += 3; + 2752: 048d addi s1,s1,3 + 2754: d1ffe06f j 1472 + if (pr < (stbsp__int32)l) + 2758: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 275c: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 2760: fff7c793 not a5,a5 + 2764: 97fd srai a5,a5,0x3f + 2766: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 2768: 00fa063b addw a2,s4,a5 + s = (char *)sn; + 276c: 7ae6 ld s5,120(sp) + n = pr + lead[0] + tail[0] + tz; + 276e: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 2770: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 2774: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 2776: 835a mv t1,s6 + 2778: 00cb5363 bge s6,a2,277e + 277c: 8332 mv t1,a2 + fw -= n; + 277e: 40e3033b subw t1,t1,a4 + goto scopy; + 2782: 4f81 li t6,0 + pr -= l; + 2784: 40d7873b subw a4,a5,a3 + cs = 0; + 2788: 4281 li t0,0 + tz = 0; + 278a: 4881 li a7,0 + goto scopy; + 278c: c42ff06f j 1bce + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 2790: 415705b3 sub a1,a4,s5 + 2794: 030002b7 lui t0,0x3000 + 2798: 00b282bb addw t0,t0,a1 + l = pr - n; + 279c: 0008859b sext.w a1,a7 + if (pr) + 27a0: 42088763 beqz a7,2bce + *s++ = stbsp__period; + 27a4: 0cca4f83 lbu t6,204(s4) + if ((l - dp) > (stbsp__uint32)pr) + 27a8: 41d6833b subw t1,a3,t4 + *s++ = stbsp__period; + 27ac: 00280713 addi a4,a6,2 + 27b0: 01f800a3 sb t6,1(a6) + if ((l - dp) > (stbsp__uint32)pr) + 27b4: 4065ed63 bltu a1,t1,2bce + while (n < l) { + 27b8: 5ed57863 bgeu a0,a3,2da8 + 27bc: 40c687bb subw a5,a3,a2 + 27c0: 37fd addiw a5,a5,-1 + 27c2: 1782 slli a5,a5,0x20 + 27c4: 9381 srli a5,a5,0x20 + 27c6: 1602 slli a2,a2,0x20 + 27c8: 9201 srli a2,a2,0x20 + 27ca: 0785 addi a5,a5,1 + 27cc: 967a add a2,a2,t5 + 27ce: 97ba add a5,a5,a4 + *s++ = sn[n]; + 27d0: 00064503 lbu a0,0(a2) + 27d4: 0705 addi a4,a4,1 + while (n < l) { + 27d6: 0605 addi a2,a2,1 + *s++ = sn[n]; + 27d8: fea70fa3 sb a0,-1(a4) + while (n < l) { + 27dc: fef71ae3 bne a4,a5,27d0 + tz = pr - (l - dp); + 27e0: 01d585bb addw a1,a1,t4 + 27e4: 40d588bb subw a7,a1,a3 + l = (stbsp__uint32)(s - (num + 64)); + 27e8: 415787b3 sub a5,a5,s5 + 27ec: b99d j 2462 + fl |= STBSP__NEGATIVE; + 27ee: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 27f2: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 27f6: b539 j 2604 + tail[0] = (char)n; + 27f8: 4799 li a5,6 + tail[n] = '0' + dp % 10; + 27fa: 06b10b23 sb a1,118(sp) + tail[0] = (char)n; + 27fe: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2802: 4819 li a6,6 + 2804: 4f99 li t6,6 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2806: 4599 li a1,6 + dp /= 10; + 2808: 4f29 li t5,10 + if (n <= 3) + 280a: 428d li t0,3 + 280c: 87b2 mv a5,a2 + dp /= 10; + 280e: 03e7c7bb divw a5,a5,t5 + --n; + 2812: 35fd addiw a1,a1,-1 + tail[n] = '0' + dp % 10; + 2814: 02059613 slli a2,a1,0x20 + 2818: 9201 srli a2,a2,0x20 + 281a: 06010e93 addi t4,sp,96 + 281e: 22060613 addi a2,a2,544 + 2822: 9676 add a2,a2,t4 + 2824: 03e7eebb remw t4,a5,t5 + 2828: 030e8e9b addiw t4,t4,48 + 282c: dfd60823 sb t4,-528(a2) + if (n <= 3) + 2830: fc559fe3 bne a1,t0,280e + 2834: e6aff06f j 1e9e + *s++ = h[(n64 >> 60) & 15]; + 2838: 93f1 srli a5,a5,0x3c + 283a: 97ae add a5,a5,a1 + 283c: 0007c303 lbu t1,0(a5) + lead[1 + lead[0]] = '0'; + 2840: 1088 addi a0,sp,96 + 2842: 22080793 addi a5,a6,544 + 2846: 97aa add a5,a5,a0 + 2848: 03000513 li a0,48 + 284c: dea78423 sb a0,-536(a5) + lead[2 + lead[0]] = 'x'; + 2850: 22068793 addi a5,a3,544 + 2854: 1094 addi a3,sp,96 + 2856: 96be add a3,a3,a5 + *s++ = stbsp__period; + 2858: 00004517 auipc a0,0x4 + 285c: 13454503 lbu a0,308(a0) # 698c + lead[2 + lead[0]] = 'x'; + 2860: 07800813 li a6,120 + sn = s; + 2864: 0c210793 addi a5,sp,194 + lead[2 + lead[0]] = 'x'; + 2868: df068423 sb a6,-536(a3) + *s++ = stbsp__period; + 286c: 0ca100a3 sb a0,193(sp) + lead[0] += 2; + 2870: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 2874: 0c610023 sb t1,192(sp) + n64 <<= 4; + 2878: 0732 slli a4,a4,0xc + sn = s; + 287a: fcbe sd a5,120(sp) + n = pr; + 287c: 0008869b sext.w a3,a7 + while (n--) { + 2880: 4831 li a6,12 + if (n > 13) + 2882: 4535 li a0,13 + tz = pr - n; + 2884: 40a688bb subw a7,a3,a0 + while (n--) { + 2888: 02081313 slli t1,a6,0x20 + 288c: 02035313 srli t1,t1,0x20 + 2890: 22030693 addi a3,t1,544 + 2894: 1088 addi a0,sp,96 + 2896: 9536 add a0,a0,a3 + 2898: e4350513 addi a0,a0,-445 + *s++ = h[(n64 >> 60) & 15]; + 289c: 03c75693 srli a3,a4,0x3c + 28a0: 96ae add a3,a3,a1 + 28a2: 0006c683 lbu a3,0(a3) + 28a6: 0785 addi a5,a5,1 + n64 <<= 4; + 28a8: 0712 slli a4,a4,0x4 + *s++ = h[(n64 >> 60) & 15]; + 28aa: fed78fa3 sb a3,-1(a5) + while (n--) { + 28ae: fea797e3 bne a5,a0,289c + l = (int)(s - (num + 64)); + 28b2: 280d addiw a6,a6,3 + 28b4: 0008069b sext.w a3,a6 + if (pr < (stbsp__int32)l) + 28b8: fff6c713 not a4,a3 + 28bc: 977d srai a4,a4,0x3f + 28be: 00e87733 and a4,a6,a4 + dp = (int)(s - sn); + 28c2: 0013051b addiw a0,t1,1 + if (pr < (stbsp__int32)l) + 28c6: 0007031b sext.w t1,a4 + pr -= l; + 28ca: 4107073b subw a4,a4,a6 + 28ce: d76ff06f j 1e44 + *--s = stbsp__comma; + 28d2: 00004a17 auipc s4,0x4 + 28d6: feea0a13 addi s4,s4,-18 # 68c0 + if (n64 >= 100000000) { + 28da: 05f5e7b7 lui a5,0x5f5e + 28de: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56947> + n = (stbsp__uint32)(n64 % 100000000); + 28e2: 05f5e637 lui a2,0x5f5e + *--s = stbsp__comma; + 28e6: 0cda4b83 lbu s7,205(s4) + if (n64 >= 100000000) { + 28ea: e83e sd a5,16(sp) + n = (stbsp__uint32)(n64 % 100000000); + 28ec: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f56948> + l = 0; + 28f0: d082 sw zero,96(sp) + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 28f2: 040e7813 andi a6,t3,64 + 28f6: 4701 li a4,0 + 28f8: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 28fa: 28010a93 addi s5,sp,640 + n = (stbsp__uint32)(n64 % 100000000); + 28fe: ec3e sd a5,24(sp) + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2900: 430d li t1,3 + n /= 10; + 2902: 45a9 li a1,10 + while (n) { + 2904: 4ea5 li t4,9 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2906: 06400f93 li t6,100 + if (n64 >= 100000000) { + 290a: 67c2 ld a5,16(sp) + char *o = s - 8; + 290c: ff8a8513 addi a0,s5,-8 + if (n64 >= 100000000) { + 2910: 0fe7f763 bgeu a5,t5,29fe + n = (stbsp__uint32)(n64 % 100000000); + 2914: 6662 ld a2,24(sp) + 2916: 02cf77b3 remu a5,t5,a2 + n64 /= 100000000; + 291a: 02cf5f33 divu t5,t5,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 291e: 0e080463 beqz a6,2a06 + while (n) { + 2922: cb85 beqz a5,2952 + *--s = stbsp__comma; + 2924: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2926: 00671763 bne a4,t1,2934 + --o; + 292a: 017a8023 sb s7,0(s5) + 292e: 157d addi a0,a0,-1 + *--s = stbsp__comma; + 2930: 1afd addi s5,s5,-1 + l = 0; + 2932: 4701 li a4,0 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2934: 2705 addiw a4,a4,1 + *--s = (char)(n % 10) + '0'; + 2936: 02b7f63b remuw a2,a5,a1 + 293a: 0306061b addiw a2,a2,48 + 293e: 00ca8023 sb a2,0(s5) + n /= 10; + 2942: 02b7d63b divuw a2,a5,a1 + while (n) { + 2946: 00fef563 bgeu t4,a5,2950 + *--s = stbsp__comma; + 294a: 1afd addi s5,s5,-1 + 294c: 87b2 mv a5,a2 + 294e: bfe1 j 2926 + while (n) { + 2950: 4285 li t0,1 + if (n64 == 0) { + 2952: 020f0063 beqz t5,2972 + while (s != o) + 2956: fb550ae3 beq a0,s5,290a + *--s = stbsp__comma; + 295a: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 295c: 00080663 beqz a6,2968 + 2960: 08670863 beq a4,t1,29f0 + 2964: 2705 addiw a4,a4,1 + 2966: 4285 li t0,1 + *--s = '0'; + 2968: 03000793 li a5,48 + 296c: 00fa8023 sb a5,0(s5) + 2970: b7dd j 2956 + 2972: 00028363 beqz t0,2978 + 2976: d0ba sw a4,96(sp) + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2978: 000ac703 lbu a4,0(s5) + 297c: 03000793 li a5,48 + 2980: 34f70b63 beq a4,a5,2cd6 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2984: 051c addi a5,sp,640 + 2986: 415786bb subw a3,a5,s5 + tail[0] = 0; + 298a: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 298e: 080e7713 andi a4,t3,128 + 2992: 87f2 mv a5,t3 + 2994: 32070863 beqz a4,2cc4 + 2998: 678d lui a5,0x3 + 299a: d017879b addiw a5,a5,-767 # 2d01 + sign[0] = 1; + 299e: 06f11423 sh a5,104(sp) + 29a2: 4705 li a4,1 + 29a4: 4a05 li s4,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 29a6: d0b6 sw a3,96(sp) + if (l == 0) { + 29a8: 30068163 beqz a3,2caa + cs = l + (3 << 24); + 29ac: 030002b7 lui t0,0x3000 + 29b0: 00d282bb addw t0,t0,a3 + if (pr < (stbsp__int32)l) + 29b4: 0006861b sext.w a2,a3 + if (pr < 0) + 29b8: fff8c793 not a5,a7 + 29bc: 97fd srai a5,a5,0x3f + if (pr < (stbsp__int32)l) + 29be: 00f8f7b3 and a5,a7,a5 + 29c2: 0007859b sext.w a1,a5 + 29c6: 00c5d363 bge a1,a2,29cc + 29ca: 87b2 mv a5,a2 + n = pr + lead[0] + tail[0] + tz; + 29cc: 00f7063b addw a2,a4,a5 + 29d0: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 29d2: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 29d4: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 29d8: 835a mv t1,s6 + 29da: 00cb5363 bge s6,a2,29e0 + 29de: 8332 mv t1,a2 + fw -= n; + 29e0: 40e3033b subw t1,t1,a4 + scopy: + 29e4: 4f81 li t6,0 + pr -= l; + 29e6: 40d7873b subw a4,a5,a3 + tz = 0; + 29ea: 4881 li a7,0 + scopy: + 29ec: 9e2ff06f j 1bce + *--s = stbsp__comma; + 29f0: 87de mv a5,s7 + --o; + 29f2: 157d addi a0,a0,-1 + l = 0; + 29f4: 4701 li a4,0 + --o; + 29f6: 4285 li t0,1 + 29f8: 00fa8023 sb a5,0(s5) + 29fc: bfa9 j 2956 + n = (stbsp__uint32)n64; + 29fe: 000f079b sext.w a5,t5 + n64 = 0; + 2a02: 4f01 li t5,0 + 2a04: bf29 j 291e + 2a06: f046 sd a7,32(sp) + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a08: 03f7f63b remuw a2,a5,t6 + s -= 2; + 2a0c: 1af9 addi s5,s5,-2 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a0e: 0007889b sext.w a7,a5 + 2a12: 2605 addiw a2,a2,1 + 2a14: 0016161b slliw a2,a2,0x1 + 2a18: 1602 slli a2,a2,0x20 + 2a1a: 9201 srli a2,a2,0x20 + 2a1c: 9652 add a2,a2,s4 + 2a1e: 00065603 lhu a2,0(a2) + n /= 100; + 2a22: 03f7d7bb divuw a5,a5,t6 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a26: 00ca9023 sh a2,0(s5) + } while (n); + 2a2a: 06300613 li a2,99 + 2a2e: fd166de3 bltu a2,a7,2a08 + 2a32: 7882 ld a7,32(sp) + if (n64 == 0) { + 2a34: f20f11e3 bnez t5,2956 + 2a38: bf2d j 2972 + *(stbsp__uint32 *)bf = 0x20202020; + 2a3a: 20202b37 lui s6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 2a3e: 854a mv a0,s2 + *bf++ = ' '; + 2a40: 02000a93 li s5,32 + *(stbsp__uint32 *)bf = 0x20202020; + 2a44: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201fa868> + stbsp__chk_cb_buf(1); + 2a48: 1fe00a13 li s4,510 + stbsp__cb_buf_clamp(i, fw); + 2a4c: 20000b93 li s7,512 + 2a50: 891a mv s2,t1 + 2a52: 0a098063 beqz s3,2af2 + 2a56: 40a40633 sub a2,s0,a0 + 2a5a: 40cb87bb subw a5,s7,a2 + 2a5e: 873e mv a4,a5 + 2a60: 00f95363 bge s2,a5,2a66 + 2a64: 874a mv a4,s2 + 2a66: 0007079b sext.w a5,a4 + fw -= i; + 2a6a: 40e9093b subw s2,s2,a4 + while (i) { + 2a6e: e799 bnez a5,2a7c + 2a70: a281 j 2bb0 + *bf++ = ' '; + 2a72: 01540023 sb s5,0(s0) + --i; + 2a76: 37fd addiw a5,a5,-1 + *bf++ = ' '; + 2a78: 0405 addi s0,s0,1 + while (i) { + 2a7a: cba1 beqz a5,2aca + if ((((stbsp__uintptr)bf) & 3) == 0) + 2a7c: 00347713 andi a4,s0,3 + 2a80: fb6d bnez a4,2a72 + while (i >= 4) { + 2a82: 470d li a4,3 + 2a84: 40f75363 bge a4,a5,2e8a + 2a88: ffc7869b addiw a3,a5,-4 + 2a8c: 0026d79b srliw a5,a3,0x2 + 2a90: 0017871b addiw a4,a5,1 + 2a94: 070a slli a4,a4,0x2 + 2a96: 9722 add a4,a4,s0 + *(stbsp__uint32 *)bf = 0x20202020; + 2a98: 01642023 sw s6,0(s0) + bf += 4; + 2a9c: 0411 addi s0,s0,4 + while (i >= 4) { + 2a9e: fee41de3 bne s0,a4,2a98 + 2aa2: 0027979b slliw a5,a5,0x2 + 2aa6: 40f687bb subw a5,a3,a5 + while (i--) + 2aaa: fff7869b addiw a3,a5,-1 + 2aae: cf91 beqz a5,2aca + 2ab0: 9fa1 addw a5,a5,s0 + *bf++ = ' '; + 2ab2: 0705 addi a4,a4,1 + while (i--) + 2ab4: 0007061b sext.w a2,a4 + *bf++ = ' '; + 2ab8: ff570fa3 sb s5,-1(a4) + while (i--) + 2abc: fec79be3 bne a5,a2,2ab2 + 2ac0: 2685 addiw a3,a3,1 + 2ac2: 02069793 slli a5,a3,0x20 + 2ac6: 9381 srli a5,a5,0x20 + 2ac8: 943e add s0,s0,a5 + stbsp__chk_cb_buf(1); + 2aca: 00098f63 beqz s3,2ae8 + 2ace: 40a4063b subw a2,s0,a0 + 2ad2: 00ca5b63 bge s4,a2,2ae8 + 2ad6: 65a2 ld a1,8(sp) + 2ad8: e81e sd t2,16(sp) + 2ada: 00cd0d3b addw s10,s10,a2 + 2ade: 9982 jalr s3 + 2ae0: 80050be3 beqz a0,22f6 + 2ae4: 63c2 ld t2,16(sp) + 2ae6: 842a mv s0,a0 + while (fw) { + 2ae8: f60915e3 bnez s2,2a52 + 2aec: 892a mv s2,a0 + 2aee: f21fe06f j 1a0e + stbsp__cb_buf_clamp(i, fw); + 2af2: 87ca mv a5,s2 + fw -= i; + 2af4: 4901 li s2,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2af6: b759 j 2a7c + } else if (fl & STBSP__LEADINGPLUS) { + 2af8: 002e7713 andi a4,t3,2 + 2afc: 94070663 beqz a4,1c48 + sign[0] = 1; + 2b00: 670d lui a4,0x3 + 2b02: b0170713 addi a4,a4,-1279 # 2b01 + 2b06: 06e11423 sh a4,104(sp) + 2b0a: 93eff06f j 1c48 + if (((stbsp__uintptr)sn & 3) == 0) + 2b0e: 87d6 mv a5,s5 + while (limit >= 4) { + 2b10: 470d li a4,3 + 2b12: 22d77763 bgeu a4,a3,2d40 + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2b16: feff05b7 lui a1,0xfeff0 + 2b1a: 80808637 lui a2,0x80808 + 2b1e: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8747> + 2b22: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff808008c8> + while (limit >= 4) { + 2b26: 480d li a6,3 + 2b28: a029 j 2b32 + limit -= 4; + 2b2a: 36f1 addiw a3,a3,-4 + sn += 4; + 2b2c: 0791 addi a5,a5,4 + while (limit >= 4) { + 2b2e: 20d87963 bgeu a6,a3,2d40 + stbsp__uint32 v = *(stbsp__uint32 *)sn; + 2b32: 4398 lw a4,0(a5) + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2b34: 00b7053b addw a0,a4,a1 + 2b38: fff74713 not a4,a4 + 2b3c: 8f69 and a4,a4,a0 + 2b3e: 8f71 and a4,a4,a2 + 2b40: 2701 sext.w a4,a4 + 2b42: d765 beqz a4,2b2a + 2b44: 02069713 slli a4,a3,0x20 + 2b48: 9301 srli a4,a4,0x20 + 2b4a: 973e add a4,a4,a5 + 2b4c: a021 j 2b54 + ++sn; + 2b4e: 0785 addi a5,a5,1 + while (limit && *sn) { + 2b50: 00e78663 beq a5,a4,2b5c + 2b54: 0007c683 lbu a3,0(a5) + 2b58: fafd bnez a3,2b4e + 2b5a: 873e mv a4,a5 + return (stbsp__uint32)(sn - s); + 2b5c: 41570733 sub a4,a4,s5 + 2b60: 0007069b sext.w a3,a4 + if (pr < (stbsp__int32)l) + 2b64: fff6c793 not a5,a3 + 2b68: 97fd srai a5,a5,0x3f + 2b6a: 8f7d and a4,a4,a5 + 2b6c: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2b70: 863e mv a2,a5 + pr -= l; + 2b72: 9f15 subw a4,a4,a3 + return (stbsp__uint32)(sn - s); + 2b74: d2eff06f j 20a2 + for (n = 1; n < l; n++) + 2b78: 4605 li a2,1 + 2b7a: aed663e3 bltu a2,a3,2660 + 2b7e: 0c210613 addi a2,sp,194 + 2b82: bcf5 j 267e + l = pr + 1; + 2b84: 4685 li a3,1 + if ((l - 1) > (stbsp__uint32)pr) + 2b86: 4501 li a0,0 + *s++ = sn[0]; + 2b88: 0c110613 addi a2,sp,193 + 2b8c: bccd j 267e + 2b8e: 4591 li a1,4 + 2b90: 4f91 li t6,4 + n = (dp >= 100) ? 5 : 4; + 2b92: 4e91 li t4,4 + 2b94: be21 j 26ac + 2b96: 4a85 li s5,1 + 2b98: 80000737 lui a4,0x80000 + pr = 1; // default is 6 + 2b9c: 4a05 li s4,1 + 2b9e: 920ff06f j 1cbe + dp = (n64) ? -1022 : 0; + 2ba2: 4601 li a2,0 + 2ba4: c119 beqz a0,2baa + 2ba6: c0200613 li a2,-1022 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 2baa: 872a mv a4,a0 + 2bac: a3aff06f j 1de6 + stbsp__chk_cb_buf(1); + 2bb0: 2601 sext.w a2,a2 + 2bb2: 1fe00793 li a5,510 + 2bb6: f2c7c0e3 blt a5,a2,2ad6 + 2bba: bd61 j 2a52 + tail[0] = (char)n; + 2bbc: 4795 li a5,5 + tail[n] = '0' + dp % 10; + 2bbe: 06b10aa3 sb a1,117(sp) + tail[0] = (char)n; + 2bc2: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2bc6: 4815 li a6,5 + 2bc8: 4f95 li t6,5 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2bca: 4595 li a1,5 + 2bcc: b935 j 2808 + l = pr + dp; + 2bce: 011786bb addw a3,a5,a7 + 2bd2: d0b6 sw a3,96(sp) + 2bd4: b6d5 j 27b8 + s = (char *)"null"; + 2bd6: 00002a97 auipc s5,0x2 + 2bda: 42aa8a93 addi s5,s5,1066 # 5000 <_GLOBAL__sub_I__ZSt3cin+0x52> + 2bde: c80ff06f j 205e + } else if (fl & STBSP__LEADINGPLUS) { + 2be2: 002e7793 andi a5,t3,2 + 2be6: 1c079c63 bnez a5,2dbe + sign[0] = 0; + 2bea: 4689 li a3,2 + 2bec: 4a09 li s4,2 + 2bee: 4805 li a6,1 + 2bf0: 9e8ff06f j 1dd8 + sign[0] = 1; + 2bf4: 670d lui a4,0x3 + 2bf6: b0170713 addi a4,a4,-1279 # 2b01 + 2bfa: 06e11423 sh a4,104(sp) + 2bfe: b86ff06f j 1f84 + pr = 0; + 2c02: 4881 li a7,0 + 2c04: f1ffe06f j 1b22 + *s++ = '0'; + 2c08: 03000713 li a4,48 + 2c0c: 0ce10023 sb a4,192(sp) + if (pr) + 2c10: 1a088c63 beqz a7,2dc8 + *s++ = stbsp__period; + 2c14: 00004717 auipc a4,0x4 + 2c18: d7874703 lbu a4,-648(a4) # 698c + n = -dp; + 2c1c: 40f007bb negw a5,a5 + *s++ = stbsp__period; + 2c20: 0ce100a3 sb a4,193(sp) + if ((stbsp__int32)n > pr) + 2c24: 0007871b sext.w a4,a5 + 2c28: 00e8d363 bge a7,a4,2c2e + 2c2c: 87c6 mv a5,a7 + 2c2e: 0007871b sext.w a4,a5 + if ((stbsp__int32)(l + n) > pr) + 2c32: 00d7833b addw t1,a5,a3 + 2c36: 883a mv a6,a4 + while (i) { + 2c38: 0c210793 addi a5,sp,194 + *s++ = '0'; + 2c3c: 03000513 li a0,48 + while (i) { + 2c40: e711 bnez a4,2c4c + 2c42: a271 j 2dce + if ((((stbsp__uintptr)s) & 3) == 0) + 2c44: 0037f613 andi a2,a5,3 + 2c48: 18060563 beqz a2,2dd2 + *s++ = '0'; + 2c4c: 85ba mv a1,a4 + 2c4e: 00a78023 sb a0,0(a5) + --i; + 2c52: 377d addiw a4,a4,-1 + *s++ = '0'; + 2c54: 0785 addi a5,a5,1 + while (i) { + 2c56: f77d bnez a4,2c44 + if ((stbsp__int32)(l + n) > pr) + 2c58: 0003071b sext.w a4,t1 + 2c5c: 4108863b subw a2,a7,a6 + 2c60: 00e8d563 bge a7,a4,2c6a + l = pr - n; + 2c64: 0006069b sext.w a3,a2 + 2c68: d0b2 sw a2,96(sp) + while (i) { + 2c6a: c68d beqz a3,2c94 + 2c6c: 7566 ld a0,120(sp) + 2c6e: 02069813 slli a6,a3,0x20 + 2c72: 02085813 srli a6,a6,0x20 + 2c76: 01078eb3 add t4,a5,a6 + 2c7a: 85aa mv a1,a0 + 2c7c: 873e mv a4,a5 + *s++ = *sn++; + 2c7e: 0005c883 lbu a7,0(a1) + 2c82: 0705 addi a4,a4,1 + while (i) { + 2c84: 0585 addi a1,a1,1 + *s++ = *sn++; + 2c86: ff170fa3 sb a7,-1(a4) + while (i) { + 2c8a: ffd71ae3 bne a4,t4,2c7e + 2c8e: 9542 add a0,a0,a6 + 2c90: 97c2 add a5,a5,a6 + 2c92: fcaa sd a0,120(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2c94: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2c98: 030002b7 lui t0,0x3000 + tz = pr - (n + l); + 2c9c: 40d608bb subw a7,a2,a3 + l = (stbsp__uint32)(s - (num + 64)); + 2ca0: 415787b3 sub a5,a5,s5 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2ca4: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8849> + 2ca6: fbcff06f j 2462 + *--s = '0'; + 2caa: 03000793 li a5,48 + 2cae: fefa8fa3 sb a5,-1(s5) + l = 1; + 2cb2: 030002b7 lui t0,0x3000 + 2cb6: 4785 li a5,1 + 2cb8: d0be sw a5,96(sp) + *--s = '0'; + 2cba: 1afd addi s5,s5,-1 + l = 1; + 2cbc: 4605 li a2,1 + 2cbe: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8849> + 2cc0: 4685 li a3,1 + 2cc2: b9dd j 29b8 + } else if (fl & STBSP__LEADINGSPACE) { + 2cc4: 004e7713 andi a4,t3,4 + 2cc8: e74d bnez a4,2d72 + } else if (fl & STBSP__LEADINGPLUS) { + 2cca: 8b89 andi a5,a5,2 + 2ccc: efd9 bnez a5,2d6a + sign[0] = 0; + 2cce: 06010423 sb zero,104(sp) + 2cd2: 4a01 li s4,0 + 2cd4: b9c9 j 29a6 + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2cd6: 051c addi a5,sp,640 + 2cd8: cafa89e3 beq s5,a5,298a + ++s; + 2cdc: 0a85 addi s5,s5,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2cde: 415786bb subw a3,a5,s5 + 2ce2: b165 j 298a + n = dp - n; + 2ce4: 40ce87bb subw a5,t4,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2ce8: 12030e63 beqz t1,2e24 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2cec: 4511 li a0,4 + 2cee: 03000613 li a2,48 + *s++ = stbsp__comma; + 2cf2: 00170693 addi a3,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2cf6: 00030563 beqz t1,2d00 + 2cfa: 2585 addiw a1,a1,1 + 2cfc: 00a58963 beq a1,a0,2d0e + 2d00: 8736 mv a4,a3 + --n; + 2d02: 37fd addiw a5,a5,-1 + 2d04: fec70fa3 sb a2,-1(a4) + while (n) { + 2d08: f7ed bnez a5,2cf2 + 2d0a: f38ff06f j 2442 + 2d0e: fe568fa3 sb t0,-1(a3) + *s++ = stbsp__comma; + 2d12: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2d14: 4585 li a1,1 + 2d16: b7f5 j 2d02 + sign[0] = 0; + 2d18: 06010423 sb zero,104(sp) + 2d1c: f1dfe06f j 1c38 + tail[idx + 1] = "_kMGT"[fl >> 24]; + 2d20: 00002697 auipc a3,0x2 + 2d24: 2f068693 addi a3,a3,752 # 5010 <_GLOBAL__sub_I__ZSt3cin+0x62> + 2d28: 9736 add a4,a4,a3 + 2d2a: 00074683 lbu a3,0(a4) + 2d2e: 1088 addi a0,sp,96 + 2d30: 22060713 addi a4,a2,544 + 2d34: 972a add a4,a4,a0 + 2d36: ded70823 sb a3,-528(a4) + idx++; + 2d3a: 8fb2 mv t6,a2 + 2d3c: fb0ff06f j 24ec + while (limit && *sn) { + 2d40: e00692e3 bnez a3,2b44 + 2d44: bd19 j 2b5a + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2d46: 0008071b sext.w a4,a6 + 2d4a: 86c2 mv a3,a6 + 2d4c: 88d2 mv a7,s4 + pr = -dp + ((pr > (stbsp__int32)l) ? (stbsp__int32) l : pr); + 2d4e: 863a mv a2,a4 + 2d50: 00e8d363 bge a7,a4,2d56 + 2d54: 8646 mv a2,a7 + 2d56: 40f608bb subw a7,a2,a5 + 2d5a: 814ff06f j 1d6e + divisor = 1000.0f; + 2d5e: 00003797 auipc a5,0x3 + 2d62: a527b787 fld fa5,-1454(a5) # 57b0 + 2d66: dd5fe06f j 1b3a + 2d6a: 678d lui a5,0x3 + 2d6c: b017879b addiw a5,a5,-1279 # 2b01 + 2d70: b13d j 299e + 2d72: 6789 lui a5,0x2 + 2d74: 2785 addiw a5,a5,1 # 2001 + 2d76: b125 j 299e + *s++ = stbsp__period; + 2d78: 00004517 auipc a0,0x4 + 2d7c: c1454503 lbu a0,-1004(a0) # 698c + sn = s; + 2d80: 0c210793 addi a5,sp,194 + n = pr; + 2d84: 0008869b sext.w a3,a7 + *s++ = stbsp__period; + 2d88: 0ca100a3 sb a0,193(sp) + sn = s; + 2d8c: fcbe sd a5,120(sp) + if (n > 13) + 2d8e: 4535 li a0,13 + n64 <<= 4; + 2d90: 0712 slli a4,a4,0x4 + if (n > 13) + 2d92: 8836 mv a6,a3 + 2d94: 00d57363 bgeu a0,a3,2d9a + 2d98: 4835 li a6,13 + 2d9a: 0008051b sext.w a0,a6 + while (n--) { + 2d9e: 387d addiw a6,a6,-1 + if (pr > (stbsp__int32)n) + 2da0: af1542e3 blt a0,a7,2884 + tz = 0; + 2da4: 4881 li a7,0 + 2da6: b4cd j 2888 + while (n < l) { + 2da8: 87ba mv a5,a4 + 2daa: bc1d j 27e0 + tail[0] = (char)n; + 2dac: 478d li a5,3 + 2dae: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2db2: 06b109a3 sb a1,115(sp) + 2db6: 480d li a6,3 + 2db8: 4f8d li t6,3 + 2dba: 8e4ff06f j 1e9e + 2dbe: 678d lui a5,0x3 + 2dc0: b017879b addiw a5,a5,-1279 # 2b01 + 2dc4: 80aff06f j 1dce + if (pr) + 2dc8: 8336 mv t1,a3 + *s++ = '0'; + 2dca: 0c110793 addi a5,sp,193 + while (i) { + 2dce: 4801 li a6,0 + 2dd0: b561 j 2c58 + while (i >= 4) { + 2dd2: 460d li a2,3 + 2dd4: 04e65663 bge a2,a4,2e20 + 2dd8: ffb5871b addiw a4,a1,-5 + 2ddc: 0027559b srliw a1,a4,0x2 + 2de0: 0015861b addiw a2,a1,1 + 2de4: 060a slli a2,a2,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2de6: 30303537 lui a0,0x30303 + 2dea: 963e add a2,a2,a5 + 2dec: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fb878> + 2df0: c388 sw a0,0(a5) + s += 4; + 2df2: 0791 addi a5,a5,4 + while (i >= 4) { + 2df4: fef61ee3 bne a2,a5,2df0 + 2df8: 0025959b slliw a1,a1,0x2 + 2dfc: 9f0d subw a4,a4,a1 + while (i) { + 2dfe: e4070de3 beqz a4,2c58 + *s++ = '0'; + 2e02: 03000513 li a0,48 + while (i) { + 2e06: 00f705bb addw a1,a4,a5 + *s++ = '0'; + 2e0a: 0605 addi a2,a2,1 + while (i) { + 2e0c: 00060e9b sext.w t4,a2 + *s++ = '0'; + 2e10: fea60fa3 sb a0,-1(a2) + while (i) { + 2e14: ffd59be3 bne a1,t4,2e0a + 2e18: 1702 slli a4,a4,0x20 + 2e1a: 9301 srli a4,a4,0x20 + 2e1c: 97ba add a5,a5,a4 + 2e1e: bd2d j 2c58 + while (i >= 4) { + 2e20: 863e mv a2,a5 + 2e22: b7c5 j 2e02 + if ((((stbsp__uintptr)s) & 3) == 0) + 2e24: 00377693 andi a3,a4,3 + 2e28: ce81 beqz a3,2e40 + *s++ = '0'; + 2e2a: 03000693 li a3,48 + 2e2e: 00d70023 sb a3,0(a4) + --n; + 2e32: 37fd addiw a5,a5,-1 + *s++ = '0'; + 2e34: 0705 addi a4,a4,1 + while (n) { + 2e36: e0078663 beqz a5,2442 + if ((((stbsp__uintptr)s) & 3) == 0) + 2e3a: 00377613 andi a2,a4,3 + 2e3e: fa65 bnez a2,2e2e + while (n >= 4) { + 2e40: 468d li a3,3 + 2e42: eaf6f5e3 bgeu a3,a5,2cec + 2e46: ffc7869b addiw a3,a5,-4 + 2e4a: 0026d69b srliw a3,a3,0x2 + 2e4e: 2685 addiw a3,a3,1 + 2e50: 068a slli a3,a3,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2e52: 30303637 lui a2,0x30303 + 2e56: 96ba add a3,a3,a4 + 2e58: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fb878> + 2e5c: c310 sw a2,0(a4) + s += 4; + 2e5e: 0711 addi a4,a4,4 + while (n >= 4) { + 2e60: fed71ee3 bne a4,a3,2e5c + 2e64: 8b8d andi a5,a5,3 + while (n) { + 2e66: e80793e3 bnez a5,2cec + 2e6a: dd8ff06f j 2442 + if (((stbsp__uintptr)sn & 3) == 0) + 2e6e: 87d6 mv a5,s5 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 2e70: 56fd li a3,-1 + 2e72: b155 j 2b16 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 2e74: 5775 li a4,-3 + 2e76: 00e7ce63 blt a5,a4,2e92 + 2e7a: f6fa4663 blt s4,a5,25e6 + if (dp > 0) { + 2e7e: ecf054e3 blez a5,2d46 + 2e82: 86c2 mv a3,a6 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2e84: 4881 li a7,0 + 2e86: ee9fe06f j 1d6e + while (i--) + 2e8a: fff7869b addiw a3,a5,-1 + 2e8e: 8722 mv a4,s0 + 2e90: b105 j 2ab0 + if (pr > (stbsp__int32)l) + 2e92: 0008071b sext.w a4,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2e96: 7ae6 ld s5,120(sp) + if (pr > (stbsp__int32)l) + 2e98: 86c2 mv a3,a6 + 2e9a: 88d2 mv a7,s4 + 2e9c: f7475d63 bge a4,s4,2616 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2ea0: 8542 mv a0,a6 + 2ea2: f56ff06f j 25f8 + +0000000000002ea6 : +{ + 2ea6: 715d addi sp,sp,-80 + va_start(va, fmt); + 2ea8: 02010313 addi t1,sp,32 +{ + 2eac: f032 sd a2,32(sp) + 2eae: f436 sd a3,40(sp) + 2eb0: f83a sd a4,48(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2eb2: 86ae mv a3,a1 + 2eb4: 862a mv a2,a0 + 2eb6: 871a mv a4,t1 + 2eb8: 4581 li a1,0 + 2eba: 4501 li a0,0 +{ + 2ebc: ec06 sd ra,24(sp) + 2ebe: fc3e sd a5,56(sp) + 2ec0: e0c2 sd a6,64(sp) + 2ec2: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2ec4: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2ec6: bc6fe0ef jal 128c +} + 2eca: 60e2 ld ra,24(sp) + 2ecc: 6161 addi sp,sp,80 + 2ece: 8082 ret + +0000000000002ed0 : +{ + 2ed0: dd010113 addi sp,sp,-560 + 2ed4: 22813023 sd s0,544(sp) + 2ed8: 20913c23 sd s1,536(sp) + 2edc: 22113423 sd ra,552(sp) + 2ee0: 84ae mv s1,a1 + 2ee2: 842a mv s0,a0 + 2ee4: 88b2 mv a7,a2 + 2ee6: 8736 mv a4,a3 + if ( (count == 0) && !buf ) + 2ee8: e591 bnez a1,2ef4 + 2eea: c141 beqz a0,2f6a + c.buf = buf; + 2eec: e02a sd a0,0(sp) + c.count = count; + 2eee: e402 sd zero,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 2ef0: 0810 addi a2,sp,16 + 2ef2: a089 j 2f34 + if (len > c->count) + 2ef4: 0015a593 slti a1,a1,1 + 2ef8: 40b005bb negw a1,a1 + 2efc: 8de5 and a1,a1,s1 + c.buf = buf; + 2efe: e02a sd a0,0(sp) + c.count = count; + 2f00: c426 sw s1,8(sp) + c.length = 0; + 2f02: c602 sw zero,12(sp) + if (len > c->count) + 2f04: 2581 sext.w a1,a1 + if (len) { + 2f06: 0804d663 bgez s1,2f92 + s = buf; + 2f0a: 4781 li a5,0 + if (buf != c->buf) { + 2f0c: c911 beqz a0,2f20 + *d++ = *s++; + 2f0e: 0007c803 lbu a6,0(a5) + 2f12: 0785 addi a5,a5,1 + 2f14: 00f40533 add a0,s0,a5 + 2f18: ff050fa3 sb a6,-1(a0) + } while (s < se); + 2f1c: feb7e9e3 bltu a5,a1,2f0e + c->count -= len; + 2f20: 40b486bb subw a3,s1,a1 + c->buf += len; + 2f24: 95a2 add a1,a1,s0 + 2f26: e02e sd a1,0(sp) + c->count -= len; + 2f28: c436 sw a3,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 2f2a: 1ff00793 li a5,511 + 2f2e: fcd7d1e3 bge a5,a3,2ef0 + 2f32: 6602 ld a2,0(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__clamp_callback, &c, stbsp__clamp_callback(0,&c,0), fmt, va ); + 2f34: 86c6 mv a3,a7 + 2f36: 858a mv a1,sp + 2f38: ffffd517 auipc a0,0xffffd + 2f3c: 21650513 addi a0,a0,534 # 14e + 2f40: b4cfe0ef jal 128c + l = (int)( c.buf - buf ); + 2f44: 6782 ld a5,0(sp) + 2f46: 9f81 subw a5,a5,s0 + if ( l >= count ) // should never be greater, only equal (or less) than count + 2f48: 0097c463 blt a5,s1,2f50 + l = count - 1; + 2f4c: fff4879b addiw a5,s1,-1 + buf[l] = 0; + 2f50: 943e add s0,s0,a5 + 2f52: 00040023 sb zero,0(s0) +} + 2f56: 22813083 ld ra,552(sp) + 2f5a: 22013403 ld s0,544(sp) + 2f5e: 4532 lw a0,12(sp) + 2f60: 21813483 ld s1,536(sp) + 2f64: 23010113 addi sp,sp,560 + 2f68: 8082 ret + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 2f6a: 86b2 mv a3,a2 + 2f6c: 858a mv a1,sp + 2f6e: 0810 addi a2,sp,16 + 2f70: ffffd517 auipc a0,0xffffd + 2f74: 22c50513 addi a0,a0,556 # 19c + c.length = 0; + 2f78: c602 sw zero,12(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 2f7a: b12fe0ef jal 128c +} + 2f7e: 22813083 ld ra,552(sp) + 2f82: 22013403 ld s0,544(sp) + 2f86: 4532 lw a0,12(sp) + 2f88: 21813483 ld s1,536(sp) + 2f8c: 23010113 addi sp,sp,560 + 2f90: 8082 ret + 2f92: 86a6 mv a3,s1 + 2f94: bf59 j 2f2a + +0000000000002f96 : +{ + 2f96: 715d addi sp,sp,-80 + va_start(va, fmt); + 2f98: 02810313 addi t1,sp,40 +{ + 2f9c: f436 sd a3,40(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 2f9e: 869a mv a3,t1 +{ + 2fa0: ec06 sd ra,24(sp) + 2fa2: f83a sd a4,48(sp) + 2fa4: fc3e sd a5,56(sp) + 2fa6: e0c2 sd a6,64(sp) + 2fa8: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2faa: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 2fac: f25ff0ef jal 2ed0 +} + 2fb0: 60e2 ld ra,24(sp) + 2fb2: 6161 addi sp,sp,80 + 2fb4: 8082 ret + +0000000000002fb6 : +{ + 2fb6: 86ae mv a3,a1 + 2fb8: 8732 mv a4,a2 + return STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2fba: 4581 li a1,0 + 2fbc: 862a mv a2,a0 + 2fbe: 4501 li a0,0 + 2fc0: accfe06f j 128c + +0000000000002fc4 : +{ + 2fc4: 7119 addi sp,sp,-128 + va_start(ap, format); + 2fc6: 05010313 addi t1,sp,80 +{ + 2fca: e0a2 sd s0,64(sp) + 2fcc: fc26 sd s1,56(sp) + 2fce: 842a mv s0,a0 + 2fd0: e8b2 sd a2,80(sp) + _vprintf_core(&ctx, format, ap); + 2fd2: 0808 addi a0,sp,16 + ctx.limit = size; + 2fd4: 54fd li s1,-1 + _vprintf_core(&ctx, format, ap); + 2fd6: 861a mv a2,t1 +{ + 2fd8: e486 sd ra,72(sp) + 2fda: ecb6 sd a3,88(sp) + 2fdc: f0ba sd a4,96(sp) + 2fde: f4be sd a5,104(sp) + 2fe0: f8c2 sd a6,112(sp) + 2fe2: fcc6 sd a7,120(sp) + va_start(ap, format); + 2fe4: e41a sd t1,8(sp) + ctx.buf = str; + 2fe6: e822 sd s0,16(sp) + ctx.limit = size; + 2fe8: ec26 sd s1,24(sp) + ctx.written = 0; + 2fea: f002 sd zero,32(sp) + ctx.stream = NULL; + 2fec: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 2fee: 02c000ef jal 301a <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 2ff2: 7502 ld a0,32(sp) + 2ff4: 00950b63 beq a0,s1,300a + str[ctx.written] = '\0'; + 2ff8: 942a add s0,s0,a0 + 2ffa: 00040023 sb zero,0(s0) +} + 2ffe: 60a6 ld ra,72(sp) + 3000: 6406 ld s0,64(sp) + 3002: 74e2 ld s1,56(sp) + 3004: 2501 sext.w a0,a0 + 3006: 6109 addi sp,sp,128 + 3008: 8082 ret + str[size - 1] = '\0'; + 300a: fe040f23 sb zero,-2(s0) +} + 300e: 60a6 ld ra,72(sp) + 3010: 6406 ld s0,64(sp) + 3012: 74e2 ld s1,56(sp) + 3014: 2501 sext.w a0,a0 + 3016: 6109 addi sp,sp,128 + 3018: 8082 ret + +000000000000301a <_vprintf_core.constprop.0.isra.0>: +static int _vprintf_core(_OutContext *ctx, const char *format, va_list ap) + 301a: 7129 addi sp,sp,-320 + 301c: edee sd s11,216(sp) + 301e: fe06 sd ra,312(sp) + 3020: 8dae mv s11,a1 + while (*p) + 3022: 0005c583 lbu a1,0(a1) + 3026: cde9 beqz a1,3100 <_vprintf_core.constprop.0.isra.0+0xe6> + 3028: f626 sd s1,296(sp) + 302a: f24a sd s2,288(sp) + 302c: ee4e sd s3,280(sp) + 302e: e656 sd s5,264(sp) + 3030: f9e2 sd s8,240(sp) + 3032: fa22 sd s0,304(sp) + 3034: ea52 sd s4,272(sp) + 3036: e25a sd s6,256(sp) + 3038: fdde sd s7,248(sp) + 303a: f5e6 sd s9,232(sp) + 303c: f1ea sd s10,224(sp) + 303e: 84aa mv s1,a0 + 3040: 8c32 mv s8,a2 + if (*p != '%') + 3042: 02500a93 li s5,37 + 3046: 49c1 li s3,16 + 3048: 00002917 auipc s2,0x2 + 304c: 29c90913 addi s2,s2,668 # 52e4 <_GLOBAL__sub_I__ZSt3cin+0x336> + 3050: a039 j 305e <_vprintf_core.constprop.0.isra.0+0x44> + _out_char(ctx, spec); + 3052: 8526 mv a0,s1 + 3054: 952fe0ef jal 11a6 <_out_char> + while (*p) + 3058: 000dc583 lbu a1,0(s11) + 305c: c5d9 beqz a1,30ea <_vprintf_core.constprop.0.isra.0+0xd0> + _out_char(ctx, *p++); + 305e: 0d85 addi s11,s11,1 + if (*p != '%') + 3060: ff5599e3 bne a1,s5,3052 <_vprintf_core.constprop.0.isra.0+0x38> + int flag_left = 0, flag_zero = 0, flag_plus = 0, flag_space = 0, flag_hash = 0; + 3064: 4501 li a0,0 + 3066: 4881 li a7,0 + 3068: 4581 li a1,0 + 306a: 4b01 li s6,0 + 306c: 4a01 li s4,0 + if (*p == '-') + 306e: 000dcc83 lbu s9,0(s11) + 3072: fe0c871b addiw a4,s9,-32 + 3076: 0ff77713 zext.b a4,a4 + 307a: 00e9e763 bltu s3,a4,3088 <_vprintf_core.constprop.0.isra.0+0x6e> + 307e: 070a slli a4,a4,0x2 + 3080: 974a add a4,a4,s2 + 3082: 4318 lw a4,0(a4) + 3084: 974a add a4,a4,s2 + 3086: 8702 jr a4 + if (*p == '*') + 3088: 02a00793 li a5,42 + 308c: 16fc9c63 bne s9,a5,3204 <_vprintf_core.constprop.0.isra.0+0x1ea> + width = va_arg(ap, int); + 3090: 000c2403 lw s0,0(s8) + 3094: 0c21 addi s8,s8,8 + if (width < 0) + 3096: 00045563 bgez s0,30a0 <_vprintf_core.constprop.0.isra.0+0x86> + width = -width; + 309a: 4080043b negw s0,s0 + flag_left = 1; + 309e: 4a05 li s4,1 + while (*p >= '0' && *p <= '9') + 30a0: 001dcc83 lbu s9,1(s11) + p++; + 30a4: 0d85 addi s11,s11,1 + if (*p == '.') + 30a6: 02e00793 li a5,46 + int precision = -1; + 30aa: 5bfd li s7,-1 + if (*p == '.') + 30ac: 18fc8a63 beq s9,a5,3240 <_vprintf_core.constprop.0.isra.0+0x226> + if (*p == 'l') + 30b0: 06c00693 li a3,108 + 30b4: 8666 mv a2,s9 + 30b6: 1adc8663 beq s9,a3,3262 <_vprintf_core.constprop.0.isra.0+0x248> + else if (*p == 'z') + 30ba: 07a00693 li a3,122 + p++; + 30be: 0d85 addi s11,s11,1 + else if (*p == 'z') + 30c0: 24dc8163 beq s9,a3,3302 <_vprintf_core.constprop.0.isra.0+0x2e8> + if (!spec) + 30c4: 06400693 li a3,100 + 30c8: 4adc8163 beq s9,a3,356a <_vprintf_core.constprop.0.isra.0+0x550> + 30cc: 06400693 li a3,100 + int len_mod = 0; + 30d0: 4e81 li t4,0 + 30d2: 1b96e663 bltu a3,s9,327e <_vprintf_core.constprop.0.isra.0+0x264> + 30d6: 04700693 li a3,71 + 30da: 2796e463 bltu a3,s9,3342 <_vprintf_core.constprop.0.isra.0+0x328> + 30de: 04400693 li a3,68 + 30e2: 0596e363 bltu a3,s9,3128 <_vprintf_core.constprop.0.isra.0+0x10e> + 30e6: 240c9363 bnez s9,332c <_vprintf_core.constprop.0.isra.0+0x312> + 30ea: 7452 ld s0,304(sp) + 30ec: 74b2 ld s1,296(sp) + 30ee: 7912 ld s2,288(sp) + 30f0: 69f2 ld s3,280(sp) + 30f2: 6a52 ld s4,272(sp) + 30f4: 6ab2 ld s5,264(sp) + 30f6: 6b12 ld s6,256(sp) + 30f8: 7bee ld s7,248(sp) + 30fa: 7c4e ld s8,240(sp) + 30fc: 7cae ld s9,232(sp) + 30fe: 7d0e ld s10,224(sp) +} + 3100: 70f2 ld ra,312(sp) + 3102: 6dee ld s11,216(sp) + 3104: 6131 addi sp,sp,320 + 3106: 8082 ret + if (*p == '-') + 3108: 4585 li a1,1 + p++; + 310a: 0d85 addi s11,s11,1 + if (*p == '-') + 310c: b78d j 306e <_vprintf_core.constprop.0.isra.0+0x54> + 310e: 4505 li a0,1 + p++; + 3110: 0d85 addi s11,s11,1 + while (1) + 3112: bfb1 j 306e <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3114: 4885 li a7,1 + p++; + 3116: 0d85 addi s11,s11,1 + while (1) + 3118: bf99 j 306e <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 311a: 4b05 li s6,1 + p++; + 311c: 0d85 addi s11,s11,1 + while (1) + 311e: bf81 j 306e <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3120: 4a05 li s4,1 + p++; + 3122: 0d85 addi s11,s11,1 + while (1) + 3124: b7a9 j 306e <_vprintf_core.constprop.0.isra.0+0x54> + char spec = *p++; + 3126: 8dbe mv s11,a5 + fmt_tmp[f_idx++] = '%'; + 3128: 02500693 li a3,37 + 312c: 02d10823 sb a3,48(sp) + 3130: 4d05 li s10,1 + if (flag_left) + 3132: 000a0763 beqz s4,3140 <_vprintf_core.constprop.0.isra.0+0x126> + fmt_tmp[f_idx++] = '-'; + 3136: 02d00693 li a3,45 + 313a: 02d108a3 sb a3,49(sp) + 313e: 4d09 li s10,2 + if (flag_zero) + 3140: 000b0c63 beqz s6,3158 <_vprintf_core.constprop.0.isra.0+0x13e> + fmt_tmp[f_idx++] = '0'; + 3144: 0c0d0793 addi a5,s10,192 + 3148: 0818 addi a4,sp,16 + 314a: 00e786b3 add a3,a5,a4 + 314e: 03000613 li a2,48 + 3152: f6c68023 sb a2,-160(a3) + 3156: 2d05 addiw s10,s10,1 + if (flag_plus) + 3158: c999 beqz a1,316e <_vprintf_core.constprop.0.isra.0+0x154> + fmt_tmp[f_idx++] = '+'; + 315a: 0c0d0793 addi a5,s10,192 + 315e: 0818 addi a4,sp,16 + 3160: 00e786b3 add a3,a5,a4 + 3164: 02b00613 li a2,43 + 3168: f6c68023 sb a2,-160(a3) + 316c: 2d05 addiw s10,s10,1 + if (flag_space) + 316e: 00088c63 beqz a7,3186 <_vprintf_core.constprop.0.isra.0+0x16c> + fmt_tmp[f_idx++] = ' '; + 3172: 0c0d0793 addi a5,s10,192 + 3176: 0818 addi a4,sp,16 + 3178: 00e786b3 add a3,a5,a4 + 317c: 02000613 li a2,32 + 3180: f6c68023 sb a2,-160(a3) + 3184: 2d05 addiw s10,s10,1 + if (flag_hash) + 3186: c919 beqz a0,319c <_vprintf_core.constprop.0.isra.0+0x182> + fmt_tmp[f_idx++] = '#'; + 3188: 0c0d0793 addi a5,s10,192 + 318c: 0818 addi a4,sp,16 + 318e: 00e786b3 add a3,a5,a4 + 3192: 02300613 li a2,35 + 3196: f6c68023 sb a2,-160(a3) + 319a: 2d05 addiw s10,s10,1 + if (width > 0) + 319c: 03010a13 addi s4,sp,48 + 31a0: 28804563 bgtz s0,342a <_vprintf_core.constprop.0.isra.0+0x410> + if (precision >= 0) + 31a4: 260bd763 bgez s7,3412 <_vprintf_core.constprop.0.isra.0+0x3f8> + fmt_tmp[f_idx++] = spec; + 31a8: 0c0d0793 addi a5,s10,192 + 31ac: 0818 addi a4,sp,16 + 31ae: 00e78633 add a2,a5,a4 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31b2: 000c3683 ld a3,0(s8) + fmt_tmp[f_idx] = '\0'; + 31b6: 001d071b addiw a4,s10,1 + 31ba: 0c070793 addi a5,a4,192 + 31be: 0818 addi a4,sp,16 + fmt_tmp[f_idx++] = spec; + 31c0: f7960023 sb s9,-160(a2) + fmt_tmp[f_idx] = '\0'; + 31c4: 973e add a4,a4,a5 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31c6: 08000593 li a1,128 + 31ca: 8652 mv a2,s4 + 31cc: 0888 addi a0,sp,80 + fmt_tmp[f_idx] = '\0'; + 31ce: f6070023 sb zero,-160(a4) + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31d2: dc5ff0ef jal 2f96 + for (int i = 0; f_buf[i] != '\0'; i++) + 31d6: 05014583 lbu a1,80(sp) + double f_val = va_arg(ap, double); + 31da: 0c21 addi s8,s8,8 + for (int i = 0; f_buf[i] != '\0'; i++) + 31dc: 05110413 addi s0,sp,81 + 31e0: e6058ce3 beqz a1,3058 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 31e4: 8526 mv a0,s1 + 31e6: fc1fd0ef jal 11a6 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 31ea: 00044583 lbu a1,0(s0) + 31ee: 0405 addi s0,s0,1 + 31f0: e60584e3 beqz a1,3058 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 31f4: 8526 mv a0,s1 + 31f6: fb1fd0ef jal 11a6 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 31fa: 00044583 lbu a1,0(s0) + 31fe: 0405 addi s0,s0,1 + 3200: f1f5 bnez a1,31e4 <_vprintf_core.constprop.0.isra.0+0x1ca> + 3202: bd99 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + while (*p >= '0' && *p <= '9') + 3204: fd0c869b addiw a3,s9,-48 + 3208: 0ff6f313 zext.b t1,a3 + 320c: 4725 li a4,9 + int width = 0; + 320e: 4401 li s0,0 + while (*p >= '0' && *p <= '9') + 3210: 4625 li a2,9 + 3212: e8676ae3 bltu a4,t1,30a6 <_vprintf_core.constprop.0.isra.0+0x8c> + 3216: 001dcc83 lbu s9,1(s11) + width = width * 10 + (*p - '0'); + 321a: 0024171b slliw a4,s0,0x2 + 321e: 9f21 addw a4,a4,s0 + 3220: 0017171b slliw a4,a4,0x1 + 3224: 00e6843b addw s0,a3,a4 + while (*p >= '0' && *p <= '9') + 3228: fd0c869b addiw a3,s9,-48 + 322c: 0ff6f713 zext.b a4,a3 + p++; + 3230: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 3232: fee672e3 bgeu a2,a4,3216 <_vprintf_core.constprop.0.isra.0+0x1fc> + if (*p == '.') + 3236: 02e00793 li a5,46 + int precision = -1; + 323a: 5bfd li s7,-1 + if (*p == '.') + 323c: e6fc9ae3 bne s9,a5,30b0 <_vprintf_core.constprop.0.isra.0+0x96> + if (*p == '*') + 3240: 001dcc83 lbu s9,1(s11) + 3244: 02a00793 li a5,42 + 3248: 16fc9f63 bne s9,a5,33c6 <_vprintf_core.constprop.0.isra.0+0x3ac> + while (*p >= '0' && *p <= '9') + 324c: 002dcc83 lbu s9,2(s11) + if (*p == 'l') + 3250: 06c00693 li a3,108 + precision = va_arg(ap, int); + 3254: 000c2b83 lw s7,0(s8) + p++; + 3258: 0d89 addi s11,s11,2 + precision = va_arg(ap, int); + 325a: 0c21 addi s8,s8,8 + if (*p == 'l') + 325c: 8666 mv a2,s9 + 325e: e4dc9ee3 bne s9,a3,30ba <_vprintf_core.constprop.0.isra.0+0xa0> + if (*p == 'l') + 3262: 001dcc83 lbu s9,1(s11) + 3266: 08cc8d63 beq s9,a2,3300 <_vprintf_core.constprop.0.isra.0+0x2e6> + char spec = *p++; + 326a: 06400693 li a3,100 + 326e: 0d89 addi s11,s11,2 + if (!spec) + 3270: 4cdc8c63 beq s9,a3,3748 <_vprintf_core.constprop.0.isra.0+0x72e> + 3274: 06400693 li a3,100 + len_mod = 1; + 3278: 4e85 li t4,1 + 327a: e596fee3 bgeu a3,s9,30d6 <_vprintf_core.constprop.0.isra.0+0xbc> + 327e: f9bc869b addiw a3,s9,-101 + 3282: 0ff6f693 zext.b a3,a3 + 3286: 464d li a2,19 + 3288: 12d66863 bltu a2,a3,33b8 <_vprintf_core.constprop.0.isra.0+0x39e> + 328c: 4e05 li t3,1 + 328e: 00091637 lui a2,0x91 + 3292: 00de1333 sll t1,t3,a3 + 3296: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x89058> + 329a: 00c37633 and a2,t1,a2 + 329e: 1a061463 bnez a2,3446 <_vprintf_core.constprop.0.isra.0+0x42c> + 32a2: 00737313 andi t1,t1,7 + 32a6: e80311e3 bnez t1,3128 <_vprintf_core.constprop.0.isra.0+0x10e> + 32aa: 4639 li a2,14 + 32ac: 10c69663 bne a3,a2,33b8 <_vprintf_core.constprop.0.isra.0+0x39e> + const char *s = va_arg(ap, char *); + 32b0: 000c3c83 ld s9,0(s8) + if (!s) + 32b4: 420c8863 beqz s9,36e4 <_vprintf_core.constprop.0.isra.0+0x6ca> + while (*tmp && (precision < 0 || len < precision)) + 32b8: 000cc683 lbu a3,0(s9) + 32bc: 38068863 beqz a3,364c <_vprintf_core.constprop.0.isra.0+0x632> + const char *tmp = s; + 32c0: 8666 mv a2,s9 + int len = 0; + 32c2: 4681 li a3,0 + while (*tmp && (precision < 0 || len < precision)) + 32c4: 00db8863 beq s7,a3,32d4 <_vprintf_core.constprop.0.isra.0+0x2ba> + 32c8: 00164583 lbu a1,1(a2) + len++; + 32cc: 2685 addiw a3,a3,1 + tmp++; + 32ce: 0605 addi a2,a2,1 + while (*tmp && (precision < 0 || len < precision)) + 32d0: f9f5 bnez a1,32c4 <_vprintf_core.constprop.0.isra.0+0x2aa> + 32d2: 8bb6 mv s7,a3 + int padding = (width > len) ? width - len : 0; + 32d4: 268bc563 blt s7,s0,353e <_vprintf_core.constprop.0.isra.0+0x524> + for (int i = 0; i < len; i++) + 32d8: 4401 li s0,0 + 32da: 020b8163 beqz s7,32fc <_vprintf_core.constprop.0.isra.0+0x2e2> + 32de: 4d01 li s10,0 + _out_char(ctx, s[i]); + 32e0: 01ac86b3 add a3,s9,s10 + 32e4: 0006c583 lbu a1,0(a3) + 32e8: 8526 mv a0,s1 + for (int i = 0; i < len; i++) + 32ea: 0d05 addi s10,s10,1 + _out_char(ctx, s[i]); + 32ec: ebbfd0ef jal 11a6 <_out_char> + for (int i = 0; i < len; i++) + 32f0: 000d069b sext.w a3,s10 + 32f4: ff76c6e3 blt a3,s7,32e0 <_vprintf_core.constprop.0.isra.0+0x2c6> + if (flag_left) + 32f8: 260a1463 bnez s4,3560 <_vprintf_core.constprop.0.isra.0+0x546> + const char *s = va_arg(ap, char *); + 32fc: 0c21 addi s8,s8,8 + 32fe: bba9 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + p++; + 3300: 0d89 addi s11,s11,2 + char spec = *p++; + 3302: 000dcc83 lbu s9,0(s11) + 3306: 06400693 li a3,100 + 330a: 001d8793 addi a5,s11,1 + if (!spec) + 330e: 3edc8063 beq s9,a3,36ee <_vprintf_core.constprop.0.isra.0+0x6d4> + 3312: 0796ea63 bltu a3,s9,3386 <_vprintf_core.constprop.0.isra.0+0x36c> + 3316: 04700693 li a3,71 + 331a: 0f96e263 bltu a3,s9,33fe <_vprintf_core.constprop.0.isra.0+0x3e4> + 331e: 04400693 li a3,68 + 3322: e196e2e3 bltu a3,s9,3126 <_vprintf_core.constprop.0.isra.0+0x10c> + 3326: dc0c82e3 beqz s9,30ea <_vprintf_core.constprop.0.isra.0+0xd0> + char spec = *p++; + 332a: 8dbe mv s11,a5 + _out_char(ctx, '%'); + 332c: 02500593 li a1,37 + 3330: 8526 mv a0,s1 + 3332: e75fd0ef jal 11a6 <_out_char> + if (spec != '%') + 3336: 02500713 li a4,37 + 333a: d0ec8fe3 beq s9,a4,3058 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, spec); + 333e: 85e6 mv a1,s9 + 3340: bb09 j 3052 <_vprintf_core.constprop.0.isra.0+0x38> + 3342: 05800693 li a3,88 + 3346: 2edc8263 beq s9,a3,362a <_vprintf_core.constprop.0.isra.0+0x610> + 334a: 06300713 li a4,99 + 334e: 06ec9563 bne s9,a4,33b8 <_vprintf_core.constprop.0.isra.0+0x39e> + char c = (char)va_arg(ap, int); + 3352: 000c4c83 lbu s9,0(s8) + int padding = (width > 1) ? width - 1 : 0; + 3356: 8722 mv a4,s0 + 3358: 00804363 bgtz s0,335e <_vprintf_core.constprop.0.isra.0+0x344> + 335c: 4705 li a4,1 + 335e: fff7041b addiw s0,a4,-1 + if (!flag_left) + 3362: 3c0a0463 beqz s4,372a <_vprintf_core.constprop.0.isra.0+0x710> + _out_char(ctx, c); + 3366: 85e6 mv a1,s9 + 3368: 8526 mv a0,s1 + 336a: e3dfd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 336e: 4a01 li s4,0 + 3370: d451 beqz s0,32fc <_vprintf_core.constprop.0.isra.0+0x2e2> + _out_char(ctx, ' '); + 3372: 02000593 li a1,32 + 3376: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3378: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 337a: e2dfd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 337e: ff441ae3 bne s0,s4,3372 <_vprintf_core.constprop.0.isra.0+0x358> + const char *s = va_arg(ap, char *); + 3382: 0c21 addi s8,s8,8 + 3384: b9d1 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + 3386: f9bc861b addiw a2,s9,-101 + 338a: 0ff67613 zext.b a2,a2 + 338e: 46cd li a3,19 + 3390: 40c6e963 bltu a3,a2,37a2 <_vprintf_core.constprop.0.isra.0+0x788> + 3394: 00091337 lui t1,0x91 + 3398: 4685 li a3,1 + 339a: 00c696b3 sll a3,a3,a2 + 339e: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x89058> + 33a2: 0066f333 and t1,a3,t1 + 33a6: 34031c63 bnez t1,36fe <_vprintf_core.constprop.0.isra.0+0x6e4> + 33aa: 8a9d andi a3,a3,7 + 33ac: d6069de3 bnez a3,3126 <_vprintf_core.constprop.0.isra.0+0x10c> + 33b0: 46b9 li a3,14 + char spec = *p++; + 33b2: 8dbe mv s11,a5 + 33b4: eed60ee3 beq a2,a3,32b0 <_vprintf_core.constprop.0.isra.0+0x296> + _out_char(ctx, '%'); + 33b8: 02500593 li a1,37 + 33bc: 8526 mv a0,s1 + 33be: de9fd0ef jal 11a6 <_out_char> + _out_char(ctx, spec); + 33c2: 85e6 mv a1,s9 + 33c4: b179 j 3052 <_vprintf_core.constprop.0.isra.0+0x38> + while (*p >= '0' && *p <= '9') + 33c6: fd0c869b addiw a3,s9,-48 + 33ca: 0ff6fe13 zext.b t3,a3 + 33ce: 4625 li a2,9 + p++; + 33d0: 0d85 addi s11,s11,1 + precision = 0; + 33d2: 4b81 li s7,0 + while (*p >= '0' && *p <= '9') + 33d4: 4325 li t1,9 + 33d6: cdc66de3 bltu a2,t3,30b0 <_vprintf_core.constprop.0.isra.0+0x96> + precision = precision * 10 + (*p - '0'); + 33da: 002b961b slliw a2,s7,0x2 + while (*p >= '0' && *p <= '9') + 33de: 001dcc83 lbu s9,1(s11) + precision = precision * 10 + (*p - '0'); + 33e2: 0176073b addw a4,a2,s7 + 33e6: 0017171b slliw a4,a4,0x1 + 33ea: 00e68bbb addw s7,a3,a4 + while (*p >= '0' && *p <= '9') + 33ee: fd0c869b addiw a3,s9,-48 + 33f2: 0ff6f613 zext.b a2,a3 + p++; + 33f6: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 33f8: fec371e3 bgeu t1,a2,33da <_vprintf_core.constprop.0.isra.0+0x3c0> + 33fc: b955 j 30b0 <_vprintf_core.constprop.0.isra.0+0x96> + 33fe: 05800693 li a3,88 + 3402: 3cdc8d63 beq s9,a3,37dc <_vprintf_core.constprop.0.isra.0+0x7c2> + 3406: 06300713 li a4,99 + char spec = *p++; + 340a: 8dbe mv s11,a5 + 340c: f4ec83e3 beq s9,a4,3352 <_vprintf_core.constprop.0.isra.0+0x338> + 3410: b765 j 33b8 <_vprintf_core.constprop.0.isra.0+0x39e> + f_idx += sprintf(&fmt_tmp[f_idx], ".%d", precision); + 3412: 01aa0533 add a0,s4,s10 + 3416: 865e mv a2,s7 + 3418: 00002597 auipc a1,0x2 + 341c: c5058593 addi a1,a1,-944 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xba> + 3420: ba5ff0ef jal 2fc4 + 3424: 00ad0d3b addw s10,s10,a0 + 3428: b341 j 31a8 <_vprintf_core.constprop.0.isra.0+0x18e> + f_idx += sprintf(&fmt_tmp[f_idx], "%d", width); + 342a: 01aa0533 add a0,s4,s10 + 342e: 8622 mv a2,s0 + 3430: 00002597 auipc a1,0x2 + 3434: c3058593 addi a1,a1,-976 # 5060 <_GLOBAL__sub_I__ZSt3cin+0xb2> + 3438: b8dff0ef jal 2fc4 + 343c: 00ad0d3b addw s10,s10,a0 + if (precision >= 0) + 3440: d60bc4e3 bltz s7,31a8 <_vprintf_core.constprop.0.isra.0+0x18e> + 3444: b7f9 j 3412 <_vprintf_core.constprop.0.isra.0+0x3f8> + int is_signed = (spec == 'd' || spec == 'i'); + 3446: 06900693 li a3,105 + 344a: 10dc8e63 beq s9,a3,3566 <_vprintf_core.constprop.0.isra.0+0x54c> + val = (uint64)va_arg(ap, void *); + 344e: 008c0793 addi a5,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3452: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 3456: e43e sd a5,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3458: 38dc9d63 bne s9,a3,37f2 <_vprintf_core.constprop.0.isra.0+0x7d8> + else if (len_mod == 1) + 345c: 33ce8963 beq t4,t3,378e <_vprintf_core.constprop.0.isra.0+0x774> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3460: 000c6e03 lwu t3,0(s8) + 3464: 85f6 mv a1,t4 + 3466: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3468: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 346a: 00002f97 auipc t6,0x2 + 346e: bc6f8f93 addi t6,t6,-1082 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + if (val == 0) + 3472: 120e0363 beqz t3,3598 <_vprintf_core.constprop.0.isra.0+0x57e> + 3476: 01010293 addi t0,sp,16 + sign_char = '-'; + 347a: 8616 mv a2,t0 + 347c: 86f2 mv a3,t3 + buf[i++] = digits[val % base]; + 347e: 0266f8b3 remu a7,a3,t1 + 3482: 8f32 mv t5,a2 + while (val != 0) + 3484: 0605 addi a2,a2,1 + 3486: 8eb6 mv t4,a3 + buf[i++] = digits[val % base]; + 3488: 98fe add a7,a7,t6 + 348a: 0008c883 lbu a7,0(a7) + val /= base; + 348e: 0266d6b3 divu a3,a3,t1 + buf[i++] = digits[val % base]; + 3492: ff160fa3 sb a7,-1(a2) + while (val != 0) + 3496: fe6ef4e3 bgeu t4,t1,347e <_vprintf_core.constprop.0.isra.0+0x464> + buf[i++] = digits[val % base]; + 349a: 405f0f3b subw t5,t5,t0 + 349e: 2f05 addiw t5,t5,1 + if (precision >= 0) + 34a0: 100bc363 bltz s7,35a6 <_vprintf_core.constprop.0.isra.0+0x58c> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 34a4: 1d7f4d63 blt t5,s7,367e <_vprintf_core.constprop.0.isra.0+0x664> + if (precision == 0 && val == 0) + 34a8: 340b9163 bnez s7,37ea <_vprintf_core.constprop.0.isra.0+0x7d0> + 34ac: 200e0763 beqz t3,36ba <_vprintf_core.constprop.0.isra.0+0x6a0> + for (int i = digit_len - 1; i >= 0; i--) + 34b0: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 34b4: 07000693 li a3,112 + for (int i = digit_len - 1; i >= 0; i--) + 34b8: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 34ba: 28dc8e63 beq s9,a3,3756 <_vprintf_core.constprop.0.isra.0+0x73c> + 34be: 2a051663 bnez a0,376a <_vprintf_core.constprop.0.isra.0+0x750> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 34c2: 00bf05bb addw a1,t5,a1 + 34c6: 8d52 mv s10,s4 + 34c8: 4b01 li s6,0 + char *prefix_str = NULL; + 34ca: 4c81 li s9,0 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 34cc: 1085d263 bge a1,s0,35d0 <_vprintf_core.constprop.0.isra.0+0x5b6> + 34d0: 9c0d subw s0,s0,a1 + if (!flag_left && !flag_zero) + 34d2: 100d0a63 beqz s10,35e6 <_vprintf_core.constprop.0.isra.0+0x5cc> + if (sign_char) + 34d6: 6782 ld a5,0(sp) + 34d8: 10079263 bnez a5,35dc <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 34dc: 000c8c63 beqz s9,34f4 <_vprintf_core.constprop.0.isra.0+0x4da> + _out_char(ctx, prefix_str[0]); + 34e0: 000cc583 lbu a1,0(s9) + 34e4: 8526 mv a0,s1 + 34e6: cc1fd0ef jal 11a6 <_out_char> + _out_char(ctx, prefix_str[1]); + 34ea: 001cc583 lbu a1,1(s9) + 34ee: 8526 mv a0,s1 + 34f0: cb7fd0ef jal 11a6 <_out_char> + int total_zeros = prec_zeros + ((flag_zero && !flag_left) ? padding : 0); + 34f4: 180b0263 beqz s6,3678 <_vprintf_core.constprop.0.isra.0+0x65e> + 34f8: 100a1863 bnez s4,3608 <_vprintf_core.constprop.0.isra.0+0x5ee> + 34fc: 008b8bbb addw s7,s7,s0 + for (int i = 0; i < total_zeros; i++) + 3500: 2a0b8363 beqz s7,37a6 <_vprintf_core.constprop.0.isra.0+0x78c> + 3504: 4c81 li s9,0 + _out_char(ctx, '0'); + 3506: 03000593 li a1,48 + 350a: 8526 mv a0,s1 + for (int i = 0; i < total_zeros; i++) + 350c: 2c85 addiw s9,s9,1 + _out_char(ctx, '0'); + 350e: c99fd0ef jal 11a6 <_out_char> + for (int i = 0; i < total_zeros; i++) + 3512: ff7c9ae3 bne s9,s7,3506 <_vprintf_core.constprop.0.isra.0+0x4ec> + for (int i = digit_len - 1; i >= 0; i--) + 3516: 57fd li a5,-1 + 3518: 00fc0f63 beq s8,a5,3536 <_vprintf_core.constprop.0.isra.0+0x51c> + 351c: 01010c93 addi s9,sp,16 + 3520: 9ce2 add s9,s9,s8 + 3522: 00f10c13 addi s8,sp,15 + _out_char(ctx, num_buf[i]); + 3526: 000cc583 lbu a1,0(s9) + 352a: 8526 mv a0,s1 + for (int i = digit_len - 1; i >= 0; i--) + 352c: 1cfd addi s9,s9,-1 + _out_char(ctx, num_buf[i]); + 352e: c79fd0ef jal 11a6 <_out_char> + for (int i = digit_len - 1; i >= 0; i--) + 3532: ff9c1ae3 bne s8,s9,3526 <_vprintf_core.constprop.0.isra.0+0x50c> + if (flag_left) + 3536: 0c0a1e63 bnez s4,3612 <_vprintf_core.constprop.0.isra.0+0x5f8> + char spec = *p++; + 353a: 6c22 ld s8,8(sp) + 353c: be31 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + int padding = (width > len) ? width - len : 0; + 353e: 4174043b subw s0,s0,s7 + if (!flag_left) + 3542: 100a0a63 beqz s4,3656 <_vprintf_core.constprop.0.isra.0+0x63c> + for (int i = 0; i < len; i++) + 3546: d80b9ce3 bnez s7,32de <_vprintf_core.constprop.0.isra.0+0x2c4> + for (int i = 0; i < padding; i++) + 354a: 4a01 li s4,0 + _out_char(ctx, ' '); + 354c: 02000593 li a1,32 + 3550: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3552: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3554: c53fd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 3558: ff441ae3 bne s0,s4,354c <_vprintf_core.constprop.0.isra.0+0x532> + const char *s = va_arg(ap, char *); + 355c: 0c21 addi s8,s8,8 + 355e: bced j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + for (int i = 0; i < padding; i++) + 3560: f46d bnez s0,354a <_vprintf_core.constprop.0.isra.0+0x530> + const char *s = va_arg(ap, char *); + 3562: 0c21 addi s8,s8,8 + 3564: bcd5 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + else if (len_mod == 1) + 3566: 1fce8163 beq t4,t3,3748 <_vprintf_core.constprop.0.isra.0+0x72e> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 356a: 000c2e03 lw t3,0(s8) + 356e: 008c0793 addi a5,s8,8 + 3572: e43e sd a5,8(sp) + int64 sval = (int64)val; + 3574: 86f2 mv a3,t3 + if (sval < 0) + 3576: 1406cb63 bltz a3,36cc <_vprintf_core.constprop.0.isra.0+0x6b2> + sign_char = '+'; + 357a: 02b00793 li a5,43 + 357e: e03e sd a5,0(sp) + else if (flag_plus) + 3580: e589 bnez a1,358a <_vprintf_core.constprop.0.isra.0+0x570> + else if (flag_space) + 3582: 00589793 slli a5,a7,0x5 + 3586: e03e sd a5,0(sp) + 3588: 85c6 mv a1,a7 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 358a: 4329 li t1,10 + 358c: 00002f97 auipc t6,0x2 + 3590: aa4f8f93 addi t6,t6,-1372 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + if (val == 0) + 3594: ee0e11e3 bnez t3,3476 <_vprintf_core.constprop.0.isra.0+0x45c> + buf[i++] = '0'; + 3598: 03000693 li a3,48 + 359c: 00d10823 sb a3,16(sp) + return i; + 35a0: 4f05 li t5,1 + if (precision >= 0) + 35a2: f00bd1e3 bgez s7,34a4 <_vprintf_core.constprop.0.isra.0+0x48a> + for (int i = digit_len - 1; i >= 0; i--) + 35a6: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35aa: 07000893 li a7,112 + if (!flag_left && !flag_zero) + 35ae: 016a6d33 or s10,s4,s6 + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 35b2: 4b81 li s7,0 + for (int i = digit_len - 1; i >= 0; i--) + 35b4: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35b6: 0d1c9f63 bne s9,a7,3694 <_vprintf_core.constprop.0.isra.0+0x67a> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 35ba: 00002c97 auipc s9,0x2 + 35be: a8ec8c93 addi s9,s9,-1394 # 5048 <_GLOBAL__sub_I__ZSt3cin+0x9a> + prefix_len += 2; + 35c2: 2589 addiw a1,a1,2 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 35c4: 017585bb addw a1,a1,s7 + 35c8: 01e585bb addw a1,a1,t5 + 35cc: f085c2e3 blt a1,s0,34d0 <_vprintf_core.constprop.0.isra.0+0x4b6> + if (!flag_left && !flag_zero) + 35d0: 080d0f63 beqz s10,366e <_vprintf_core.constprop.0.isra.0+0x654> + if (sign_char) + 35d4: 6782 ld a5,0(sp) + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 35d6: 4401 li s0,0 + if (sign_char) + 35d8: f00782e3 beqz a5,34dc <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, sign_char); + 35dc: 6582 ld a1,0(sp) + 35de: 8526 mv a0,s1 + 35e0: bc7fd0ef jal 11a6 <_out_char> + 35e4: bde5 j 34dc <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, ' '); + 35e6: 02000593 li a1,32 + 35ea: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 35ec: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 35ee: bb9fd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 35f2: efa402e3 beq s0,s10,34d6 <_vprintf_core.constprop.0.isra.0+0x4bc> + _out_char(ctx, ' '); + 35f6: 02000593 li a1,32 + 35fa: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 35fc: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 35fe: ba9fd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 3602: ffa412e3 bne s0,s10,35e6 <_vprintf_core.constprop.0.isra.0+0x5cc> + 3606: bdc1 j 34d6 <_vprintf_core.constprop.0.isra.0+0x4bc> + for (int i = 0; i < total_zeros; i++) + 3608: ee0b9ee3 bnez s7,3504 <_vprintf_core.constprop.0.isra.0+0x4ea> + for (int i = digit_len - 1; i >= 0; i--) + 360c: 577d li a4,-1 + 360e: f0ec17e3 bne s8,a4,351c <_vprintf_core.constprop.0.isra.0+0x502> + for (int i = 0; i < padding; i++) + 3612: d405 beqz s0,353a <_vprintf_core.constprop.0.isra.0+0x520> + 3614: 4a01 li s4,0 + _out_char(ctx, ' '); + 3616: 02000593 li a1,32 + 361a: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 361c: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 361e: b89fd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 3622: fe8a1ae3 bne s4,s0,3616 <_vprintf_core.constprop.0.isra.0+0x5fc> + char spec = *p++; + 3626: 6c22 ld s8,8(sp) + 3628: bc05 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + val = (uint64)va_arg(ap, void *); + 362a: 008c0793 addi a5,s8,8 + 362e: e43e sd a5,8(sp) + else if (len_mod == 1) + 3630: 180e9163 bnez t4,37b2 <_vprintf_core.constprop.0.isra.0+0x798> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3634: 000c6e03 lwu t3,0(s8) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3638: 4581 li a1,0 + 363a: 05800c93 li s9,88 + 363e: e002 sd zero,0(sp) + 3640: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3642: 00002f97 auipc t6,0x2 + 3646: 9d6f8f93 addi t6,t6,-1578 # 5018 <_GLOBAL__sub_I__ZSt3cin+0x6a> + 364a: b525 j 3472 <_vprintf_core.constprop.0.isra.0+0x458> + int padding = (width > len) ? width - len : 0; + 364c: ca8058e3 blez s0,32fc <_vprintf_core.constprop.0.isra.0+0x2e2> + if (!flag_left) + 3650: ee0a1de3 bnez s4,354a <_vprintf_core.constprop.0.isra.0+0x530> + int len = 0; + 3654: 4b81 li s7,0 + for (int i = 0; i < padding; i++) + 3656: 4d01 li s10,0 + _out_char(ctx, ' '); + 3658: 02000593 li a1,32 + 365c: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 365e: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 3660: b47fd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 3664: fe8d1ae3 bne s10,s0,3658 <_vprintf_core.constprop.0.isra.0+0x63e> + for (int i = 0; i < len; i++) + 3668: c60b9be3 bnez s7,32de <_vprintf_core.constprop.0.isra.0+0x2c4> + 366c: b941 j 32fc <_vprintf_core.constprop.0.isra.0+0x2e2> + if (sign_char) + 366e: 6782 ld a5,0(sp) + 3670: 4401 li s0,0 + 3672: f7ad bnez a5,35dc <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 3674: e60c96e3 bnez s9,34e0 <_vprintf_core.constprop.0.isra.0+0x4c6> + for (int i = 0; i < total_zeros; i++) + 3678: e80b96e3 bnez s7,3504 <_vprintf_core.constprop.0.isra.0+0x4ea> + 367c: bd69 j 3516 <_vprintf_core.constprop.0.isra.0+0x4fc> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 367e: 41eb8bbb subw s7,s7,t5 + 3682: 8d52 mv s10,s4 + 3684: 4b01 li s6,0 + for (int i = digit_len - 1; i >= 0; i--) + 3686: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 368a: 07000893 li a7,112 + for (int i = digit_len - 1; i >= 0; i--) + 368e: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3690: f31c85e3 beq s9,a7,35ba <_vprintf_core.constprop.0.isra.0+0x5a0> + 3694: cd09 beqz a0,36ae <_vprintf_core.constprop.0.isra.0+0x694> + 3696: 000e0c63 beqz t3,36ae <_vprintf_core.constprop.0.isra.0+0x694> + 369a: 07800513 li a0,120 + for (int i = digit_len - 1; i >= 0; i--) + 369e: 00060c1b sext.w s8,a2 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36a2: f0ac8ce3 beq s9,a0,35ba <_vprintf_core.constprop.0.isra.0+0x5a0> + 36a6: 05800613 li a2,88 + 36aa: 12cc8463 beq s9,a2,37d2 <_vprintf_core.constprop.0.isra.0+0x7b8> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 36ae: 00bb85bb addw a1,s7,a1 + 36b2: 01e585bb addw a1,a1,t5 + char *prefix_str = NULL; + 36b6: 4c81 li s9,0 + 36b8: bd11 j 34cc <_vprintf_core.constprop.0.isra.0+0x4b2> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36ba: 07000693 li a3,112 + 36be: 8d52 mv s10,s4 + 36c0: 4b01 li s6,0 + 36c2: 08dc8d63 beq s9,a3,375c <_vprintf_core.constprop.0.isra.0+0x742> + 36c6: 5c7d li s8,-1 + char *prefix_str = NULL; + 36c8: 4c81 li s9,0 + 36ca: b509 j 34cc <_vprintf_core.constprop.0.isra.0+0x4b2> + sign_char = '-'; + 36cc: 02d00793 li a5,45 + val = (uint64)(-sval); + 36d0: 40d00e33 neg t3,a3 + 36d4: 4585 li a1,1 + 36d6: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 36d8: 00002f97 auipc t6,0x2 + 36dc: 958f8f93 addi t6,t6,-1704 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + sign_char = '-'; + 36e0: e03e sd a5,0(sp) + 36e2: bb51 j 3476 <_vprintf_core.constprop.0.isra.0+0x45c> + s = "(null)"; + 36e4: 00002c97 auipc s9,0x2 + 36e8: 974c8c93 addi s9,s9,-1676 # 5058 <_GLOBAL__sub_I__ZSt3cin+0xaa> + 36ec: bed1 j 32c0 <_vprintf_core.constprop.0.isra.0+0x2a6> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 36ee: 000c3683 ld a3,0(s8) + 36f2: 008c0713 addi a4,s8,8 + 36f6: e43a sd a4,8(sp) + 36f8: 8dbe mv s11,a5 + 36fa: 8e36 mv t3,a3 + if (is_signed) + 36fc: bdad j 3576 <_vprintf_core.constprop.0.isra.0+0x55c> + int is_signed = (spec == 'd' || spec == 'i'); + 36fe: 06900693 li a3,105 + 3702: fedc86e3 beq s9,a3,36ee <_vprintf_core.constprop.0.isra.0+0x6d4> + val = (uint64)va_arg(ap, void *); + 3706: 008c0713 addi a4,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 370a: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 370e: e43a sd a4,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3710: 06dc9063 bne s9,a3,3770 <_vprintf_core.constprop.0.isra.0+0x756> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3714: 000c3e03 ld t3,0(s8) + 3718: 8dbe mv s11,a5 + 371a: 4581 li a1,0 + 371c: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 371e: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3720: 00002f97 auipc t6,0x2 + 3724: 910f8f93 addi t6,t6,-1776 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + 3728: b3a9 j 3472 <_vprintf_core.constprop.0.isra.0+0x458> + for (int i = 0; i < padding; i++) + 372a: c809 beqz s0,373c <_vprintf_core.constprop.0.isra.0+0x722> + _out_char(ctx, ' '); + 372c: 02000593 li a1,32 + 3730: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3732: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3734: a73fd0ef jal 11a6 <_out_char> + for (int i = 0; i < padding; i++) + 3738: ff441ae3 bne s0,s4,372c <_vprintf_core.constprop.0.isra.0+0x712> + _out_char(ctx, c); + 373c: 85e6 mv a1,s9 + 373e: 8526 mv a0,s1 + 3740: a67fd0ef jal 11a6 <_out_char> + const char *s = va_arg(ap, char *); + 3744: 0c21 addi s8,s8,8 + 3746: ba09 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 3748: 000c3683 ld a3,0(s8) + 374c: 008c0793 addi a5,s8,8 + 3750: e43e sd a5,8(sp) + 3752: 8e36 mv t3,a3 + if (is_signed) + 3754: b50d j 3576 <_vprintf_core.constprop.0.isra.0+0x55c> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3756: 8d52 mv s10,s4 + 3758: 4b01 li s6,0 + 375a: b585 j 35ba <_vprintf_core.constprop.0.isra.0+0x5a0> + digit_len = 0; + 375c: 4f01 li t5,0 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 375e: 5c7d li s8,-1 + prefix_str = (spec == 'X') ? "0X" : "0x"; + 3760: 00002c97 auipc s9,0x2 + 3764: 8e8c8c93 addi s9,s9,-1816 # 5048 <_GLOBAL__sub_I__ZSt3cin+0x9a> + 3768: bda9 j 35c2 <_vprintf_core.constprop.0.isra.0+0x5a8> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 376a: 8d52 mv s10,s4 + 376c: 4b01 li s6,0 + 376e: b735 j 369a <_vprintf_core.constprop.0.isra.0+0x680> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3770: 07000693 li a3,112 + 3774: 04dc8263 beq s9,a3,37b8 <_vprintf_core.constprop.0.isra.0+0x79e> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3778: 000c3e03 ld t3,0(s8) + 377c: 8dbe mv s11,a5 + 377e: 4581 li a1,0 + 3780: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3782: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3784: 00002f97 auipc t6,0x2 + 3788: 8acf8f93 addi t6,t6,-1876 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + 378c: b1dd j 3472 <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 378e: 000c3e03 ld t3,0(s8) + 3792: 4581 li a1,0 + 3794: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3796: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3798: 00002f97 auipc t6,0x2 + 379c: 898f8f93 addi t6,t6,-1896 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + 37a0: b9c9 j 3472 <_vprintf_core.constprop.0.isra.0+0x458> + char spec = *p++; + 37a2: 8dbe mv s11,a5 + 37a4: b911 j 33b8 <_vprintf_core.constprop.0.isra.0+0x39e> + for (int i = digit_len - 1; i >= 0; i--) + 37a6: 577d li a4,-1 + 37a8: 4401 li s0,0 + 37aa: d6ec19e3 bne s8,a4,351c <_vprintf_core.constprop.0.isra.0+0x502> + char spec = *p++; + 37ae: 6c22 ld s8,8(sp) + 37b0: b065 j 3058 <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 37b2: 000c3e03 ld t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37b6: b549 j 3638 <_vprintf_core.constprop.0.isra.0+0x61e> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37b8: 8dbe mv s11,a5 + val = (uint64)va_arg(ap, void *); + 37ba: 000c3e03 ld t3,0(s8) + 37be: 4581 li a1,0 + 37c0: 07000c93 li s9,112 + 37c4: e002 sd zero,0(sp) + 37c6: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37c8: 00002f97 auipc t6,0x2 + 37cc: 868f8f93 addi t6,t6,-1944 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + 37d0: b14d j 3472 <_vprintf_core.constprop.0.isra.0+0x458> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 37d2: 00002c97 auipc s9,0x2 + 37d6: 87ec8c93 addi s9,s9,-1922 # 5050 <_GLOBAL__sub_I__ZSt3cin+0xa2> + 37da: b3e5 j 35c2 <_vprintf_core.constprop.0.isra.0+0x5a8> + val = (uint64)va_arg(ap, void *); + 37dc: 008c0713 addi a4,s8,8 + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 37e0: 000c3e03 ld t3,0(s8) + val = (uint64)va_arg(ap, void *); + 37e4: e43a sd a4,8(sp) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 37e6: 8dbe mv s11,a5 + 37e8: bd81 j 3638 <_vprintf_core.constprop.0.isra.0+0x61e> + 37ea: 8d52 mv s10,s4 + 37ec: 4b01 li s6,0 + 37ee: 4b81 li s7,0 + 37f0: bd59 j 3686 <_vprintf_core.constprop.0.isra.0+0x66c> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37f2: 07000693 li a3,112 + 37f6: fcdc82e3 beq s9,a3,37ba <_vprintf_core.constprop.0.isra.0+0x7a0> + else if (len_mod == 1) + 37fa: 01ce8c63 beq t4,t3,3812 <_vprintf_core.constprop.0.isra.0+0x7f8> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 37fe: 000c6e03 lwu t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3802: 4581 li a1,0 + 3804: e002 sd zero,0(sp) + 3806: 4329 li t1,10 + 3808: 00002f97 auipc t6,0x2 + 380c: 828f8f93 addi t6,t6,-2008 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x82> + 3810: b18d j 3472 <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 3812: 000c3e03 ld t3,0(s8) + if (is_signed) + 3816: b7f5 j 3802 <_vprintf_core.constprop.0.isra.0+0x7e8> + +0000000000003818 : +{ + 3818: 7139 addi sp,sp,-64 + 381a: f822 sd s0,48(sp) + 381c: f426 sd s1,40(sp) + 381e: 842e mv s0,a1 + 3820: 84aa mv s1,a0 + 3822: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 3824: 850a mv a0,sp + 3826: 8636 mv a2,a3 +{ + 3828: fc06 sd ra,56(sp) + ctx.buf = str; + 382a: e026 sd s1,0(sp) + ctx.limit = size; + 382c: e422 sd s0,8(sp) + ctx.written = 0; + 382e: e802 sd zero,16(sp) + ctx.stream = NULL; + 3830: ec02 sd zero,24(sp) + _vprintf_core(&ctx, format, ap); + 3832: fe8ff0ef jal 301a <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 3836: 6542 ld a0,16(sp) + if (size > 0) + 3838: c411 beqz s0,3844 + if (ctx.written < size) + 383a: 00857b63 bgeu a0,s0,3850 + str[ctx.written] = '\0'; + 383e: 94aa add s1,s1,a0 + 3840: 00048023 sb zero,0(s1) +} + 3844: 70e2 ld ra,56(sp) + 3846: 7442 ld s0,48(sp) + 3848: 74a2 ld s1,40(sp) + 384a: 2501 sext.w a0,a0 + 384c: 6121 addi sp,sp,64 + 384e: 8082 ret + str[size - 1] = '\0'; + 3850: 94a2 add s1,s1,s0 + 3852: fe048fa3 sb zero,-1(s1) +} + 3856: 70e2 ld ra,56(sp) + 3858: 7442 ld s0,48(sp) + 385a: 74a2 ld s1,40(sp) + 385c: 2501 sext.w a0,a0 + 385e: 6121 addi sp,sp,64 + 3860: 8082 ret + +0000000000003862 : +{ + 3862: 7119 addi sp,sp,-128 + 3864: e0a2 sd s0,64(sp) + 3866: fc26 sd s1,56(sp) + 3868: 842e mv s0,a1 + 386a: 84aa mv s1,a0 + 386c: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 386e: 0808 addi a0,sp,16 + va_start(ap, format); + 3870: 08b0 addi a2,sp,88 +{ + 3872: e486 sd ra,72(sp) + 3874: ecb6 sd a3,88(sp) + 3876: f0ba sd a4,96(sp) + 3878: f4be sd a5,104(sp) + 387a: f8c2 sd a6,112(sp) + 387c: fcc6 sd a7,120(sp) + va_start(ap, format); + 387e: e432 sd a2,8(sp) + ctx.buf = str; + 3880: e826 sd s1,16(sp) + ctx.limit = size; + 3882: ec22 sd s0,24(sp) + ctx.written = 0; + 3884: f002 sd zero,32(sp) + ctx.stream = NULL; + 3886: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 3888: f92ff0ef jal 301a <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 388c: 7502 ld a0,32(sp) + if (size > 0) + 388e: c411 beqz s0,389a + if (ctx.written < size) + 3890: 00857b63 bgeu a0,s0,38a6 + str[ctx.written] = '\0'; + 3894: 94aa add s1,s1,a0 + 3896: 00048023 sb zero,0(s1) +} + 389a: 60a6 ld ra,72(sp) + 389c: 6406 ld s0,64(sp) + 389e: 74e2 ld s1,56(sp) + 38a0: 2501 sext.w a0,a0 + 38a2: 6109 addi sp,sp,128 + 38a4: 8082 ret + str[size - 1] = '\0'; + 38a6: 94a2 add s1,s1,s0 + 38a8: fe048fa3 sb zero,-1(s1) +} + 38ac: 60a6 ld ra,72(sp) + 38ae: 6406 ld s0,64(sp) + 38b0: 74e2 ld s1,56(sp) + 38b2: 2501 sext.w a0,a0 + 38b4: 6109 addi sp,sp,128 + 38b6: 8082 ret + +00000000000038b8 : +{ + 38b8: 7119 addi sp,sp,-128 + va_start(ap, format); + 38ba: 04810313 addi t1,sp,72 +{ + 38be: e4ae sd a1,72(sp) + 38c0: e8b2 sd a2,80(sp) + 38c2: f4be sd a5,104(sp) + _vprintf_core(&ctx, format, ap); + 38c4: 85aa mv a1,a0 + ctx.stream = stdout; + 38c6: 00004797 auipc a5,0x4 + 38ca: d5a7b783 ld a5,-678(a5) # 7620 + _vprintf_core(&ctx, format, ap); + 38ce: 0808 addi a0,sp,16 + 38d0: 861a mv a2,t1 +{ + 38d2: fc06 sd ra,56(sp) + 38d4: ecb6 sd a3,88(sp) + 38d6: f0ba sd a4,96(sp) + 38d8: f8c2 sd a6,112(sp) + 38da: fcc6 sd a7,120(sp) + va_start(ap, format); + 38dc: e41a sd t1,8(sp) + ctx.buf = NULL; + 38de: e802 sd zero,16(sp) + ctx.limit = 0; + 38e0: ec02 sd zero,24(sp) + ctx.written = 0; + 38e2: f002 sd zero,32(sp) + ctx.stream = stdout; + 38e4: f43e sd a5,40(sp) + _vprintf_core(&ctx, format, ap); + 38e6: f34ff0ef jal 301a <_vprintf_core.constprop.0.isra.0> +} + 38ea: 70e2 ld ra,56(sp) + 38ec: 5502 lw a0,32(sp) + 38ee: 6109 addi sp,sp,128 + 38f0: 8082 ret + +00000000000038f2 : +{ + 38f2: 7159 addi sp,sp,-112 + va_start(ap, format); + 38f4: 04010e13 addi t3,sp,64 +{ + 38f8: 8eaa mv t4,a0 + ctx.fd = -1; + 38fa: 537d li t1,-1 +{ + 38fc: e0b2 sd a2,64(sp) + int ret = _vscanf_core(&ctx, format, ap); + 38fe: 0808 addi a0,sp,16 + 3900: 8672 mv a2,t3 +{ + 3902: fc06 sd ra,56(sp) + 3904: e4b6 sd a3,72(sp) + 3906: e8ba sd a4,80(sp) + 3908: ecbe sd a5,88(sp) + 390a: f0c2 sd a6,96(sp) + 390c: f4c6 sd a7,104(sp) + va_start(ap, format); + 390e: e472 sd t3,8(sp) + ctx.buf = str; + 3910: e876 sd t4,16(sp) + ctx.fd = -1; + 3912: cc1a sw t1,24(sp) + ctx.pos = 0; + 3914: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3916: d41a sw t1,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3918: 81efd0ef jal 936 <_vscanf_core.constprop.0> +} + 391c: 70e2 ld ra,56(sp) + 391e: 6165 addi sp,sp,112 + 3920: 8082 ret + +0000000000003922 : +{ + 3922: 7119 addi sp,sp,-128 + va_start(ap, format); + 3924: 04810313 addi t1,sp,72 +{ + 3928: e4ae sd a1,72(sp) + 392a: e8b2 sd a2,80(sp) + 392c: f4be sd a5,104(sp) + int ret = _vscanf_core(&ctx, format, ap); + 392e: 85aa mv a1,a0 + ctx.ungotten = -1; + 3930: 57fd li a5,-1 + int ret = _vscanf_core(&ctx, format, ap); + 3932: 0808 addi a0,sp,16 + 3934: 861a mv a2,t1 +{ + 3936: fc06 sd ra,56(sp) + 3938: ecb6 sd a3,88(sp) + 393a: f0ba sd a4,96(sp) + 393c: f8c2 sd a6,112(sp) + 393e: fcc6 sd a7,120(sp) + va_start(ap, format); + 3940: e41a sd t1,8(sp) + ctx.buf = NULL; + 3942: e802 sd zero,16(sp) + ctx.fd = STDIN_FD; + 3944: cc02 sw zero,24(sp) + ctx.pos = 0; + 3946: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3948: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 394a: fedfc0ef jal 936 <_vscanf_core.constprop.0> +} + 394e: 70e2 ld ra,56(sp) + 3950: 6109 addi sp,sp,128 + 3952: 8082 ret + +0000000000003954 : +{ + 3954: 1101 addi sp,sp,-32 + 3956: e426 sd s1,8(sp) + 3958: 84ae mv s1,a1 + 395a: e04a sd s2,0(sp) + if (strcmp(mode, "r") == 0) + 395c: 00001597 auipc a1,0x1 + 3960: 71458593 addi a1,a1,1812 # 5070 <_GLOBAL__sub_I__ZSt3cin+0xc2> +{ + 3964: 892a mv s2,a0 + if (strcmp(mode, "r") == 0) + 3966: 8526 mv a0,s1 +{ + 3968: e822 sd s0,16(sp) + 396a: ec06 sd ra,24(sp) + if (strcmp(mode, "r") == 0) + 396c: 298010ef jal 4c04 + 3970: 842a mv s0,a0 + 3972: c919 beqz a0,3988 + else if (strcmp(mode, "w") == 0) + 3974: 00001597 auipc a1,0x1 + 3978: 70458593 addi a1,a1,1796 # 5078 <_GLOBAL__sub_I__ZSt3cin+0xca> + 397c: 8526 mv a0,s1 + 397e: 286010ef jal 4c04 + flags = O_WRONLY | O_CREAT | O_TRUNC; + 3982: 24100413 li s0,577 + else if (strcmp(mode, "w") == 0) + 3986: ed39 bnez a0,39e4 + int64 fd = open(filename, flags); + 3988: 85a2 mv a1,s0 + 398a: 854a mv a0,s2 + 398c: f42fc0ef jal ce + 3990: 84aa mv s1,a0 + if (fd < 0) + 3992: 06054c63 bltz a0,3a0a + FILE *f = (FILE *)malloc(sizeof(FILE)); + 3996: 42000513 li a0,1056 + 399a: 2f3000ef jal 448c + 399e: 892a mv s2,a0 + if (!f) + 39a0: c53d beqz a0,3a0e + memset(f, 0, sizeof(FILE)); + 39a2: 42000613 li a2,1056 + 39a6: 4581 li a1,0 + 39a8: 0ee010ef jal 4a96 + if (fd == 1) + 39ac: 4785 li a5,1 + f->fd = (int)fd; + 39ae: 00992023 sw s1,0(s2) + f->flags = flags; + 39b2: 00892223 sw s0,4(s2) + if (fd == 1) + 39b6: 00f48e63 beq s1,a5,39d2 + else if (fd == 2) + 39ba: 4789 li a5,2 + 39bc: 00f48b63 beq s1,a5,39d2 + f->buf_mode = 0; + 39c0: 40092e23 sw zero,1052(s2) +} + 39c4: 60e2 ld ra,24(sp) + 39c6: 6442 ld s0,16(sp) + 39c8: 64a2 ld s1,8(sp) + 39ca: 854a mv a0,s2 + 39cc: 6902 ld s2,0(sp) + 39ce: 6105 addi sp,sp,32 + 39d0: 8082 ret + 39d2: 60e2 ld ra,24(sp) + 39d4: 6442 ld s0,16(sp) + f->buf_mode = 2; + 39d6: 40992e23 sw s1,1052(s2) +} + 39da: 854a mv a0,s2 + 39dc: 64a2 ld s1,8(sp) + 39de: 6902 ld s2,0(sp) + 39e0: 6105 addi sp,sp,32 + 39e2: 8082 ret + else if (strcmp(mode, "a") == 0) + 39e4: 00001597 auipc a1,0x1 + 39e8: 69c58593 addi a1,a1,1692 # 5080 <_GLOBAL__sub_I__ZSt3cin+0xd2> + 39ec: 8526 mv a0,s1 + 39ee: 216010ef jal 4c04 + flags = O_WRONLY | O_CREAT | O_APPEND; + 39f2: 44100413 li s0,1089 + else if (strcmp(mode, "a") == 0) + 39f6: d949 beqz a0,3988 + else if (strcmp(mode, "r+") == 0) + 39f8: 00001597 auipc a1,0x1 + 39fc: 69058593 addi a1,a1,1680 # 5088 <_GLOBAL__sub_I__ZSt3cin+0xda> + 3a00: 8526 mv a0,s1 + 3a02: 202010ef jal 4c04 + flags = O_RDWR; + 3a06: 4409 li s0,2 + else if (strcmp(mode, "r+") == 0) + 3a08: d141 beqz a0,3988 + return NULL; + 3a0a: 4901 li s2,0 + 3a0c: bf65 j 39c4 + close(fd); + 3a0e: 8526 mv a0,s1 + 3a10: ea6fc0ef jal b6 + return NULL; + 3a14: 4901 li s2,0 + 3a16: b77d j 39c4 + +0000000000003a18 : + if (!stream) + 3a18: cd29 beqz a0,3a72 + if (stream->buf_write_pos > 0) + 3a1a: 41052603 lw a2,1040(a0) +{ + 3a1e: 1141 addi sp,sp,-16 + 3a20: e022 sd s0,0(sp) + 3a22: e406 sd ra,8(sp) + 3a24: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3a26: 02c04a63 bgtz a2,3a5a + if (stream != stdin && stream != stdout && stream != stderr) + 3a2a: 00004797 auipc a5,0x4 + 3a2e: bf678793 addi a5,a5,-1034 # 7620 + 3a32: 6798 ld a4,8(a5) + 3a34: 00870e63 beq a4,s0,3a50 + 3a38: 6398 ld a4,0(a5) + 3a3a: 00870b63 beq a4,s0,3a50 + 3a3e: 6b9c ld a5,16(a5) + 3a40: 00878863 beq a5,s0,3a50 + close(stream->fd); + 3a44: 4008 lw a0,0(s0) + 3a46: e70fc0ef jal b6 + free(stream); + 3a4a: 8522 mv a0,s0 + 3a4c: 1cb000ef jal 4416 +} + 3a50: 60a2 ld ra,8(sp) + 3a52: 6402 ld s0,0(sp) + return 0; + 3a54: 4501 li a0,0 +} + 3a56: 0141 addi sp,sp,16 + 3a58: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3a5a: 4108 lw a0,0(a0) + 3a5c: 01040593 addi a1,s0,16 + 3a60: e4efc0ef jal ae + if (ret < stream->buf_write_pos) + 3a64: 41042783 lw a5,1040(s0) + 3a68: 00f54763 blt a0,a5,3a76 + stream->buf_write_pos = 0; + 3a6c: 40042823 sw zero,1040(s0) + 3a70: bf6d j 3a2a + return -1; + 3a72: 557d li a0,-1 +} + 3a74: 8082 ret + stream->error = 1; + 3a76: 4785 li a5,1 + 3a78: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3a7a: 40042823 sw zero,1040(s0) + return EOF; + 3a7e: b775 j 3a2a + +0000000000003a80 : + if (!stream) + 3a80: c121 beqz a0,3ac0 + if (stream->buf_write_pos > 0) + 3a82: 41052603 lw a2,1040(a0) +{ + 3a86: 1141 addi sp,sp,-16 + 3a88: e022 sd s0,0(sp) + 3a8a: e406 sd ra,8(sp) + 3a8c: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3a8e: 00c04763 bgtz a2,3a9c + return 0; + 3a92: 4501 li a0,0 +} + 3a94: 60a2 ld ra,8(sp) + 3a96: 6402 ld s0,0(sp) + 3a98: 0141 addi sp,sp,16 + 3a9a: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3a9c: 4108 lw a0,0(a0) + 3a9e: 01040593 addi a1,s0,16 + 3aa2: e0cfc0ef jal ae + if (ret < stream->buf_write_pos) + 3aa6: 41042783 lw a5,1040(s0) + 3aaa: 00f54563 blt a0,a5,3ab4 + stream->buf_write_pos = 0; + 3aae: 40042823 sw zero,1040(s0) + 3ab2: b7c5 j 3a92 + stream->error = 1; + 3ab4: 4785 li a5,1 + 3ab6: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3ab8: 40042823 sw zero,1040(s0) + return EOF; + 3abc: 557d li a0,-1 + 3abe: bfd9 j 3a94 + 3ac0: 557d li a0,-1 +} + 3ac2: 8082 ret + +0000000000003ac4 : +{ + 3ac4: 7159 addi sp,sp,-112 + 3ac6: fc06 sd ra,56(sp) + 3ac8: e0b2 sd a2,64(sp) + 3aca: e4b6 sd a3,72(sp) + 3acc: e8ba sd a4,80(sp) + 3ace: ecbe sd a5,88(sp) + 3ad0: f0c2 sd a6,96(sp) + 3ad2: f4c6 sd a7,104(sp) + if (!stream) + 3ad4: cd19 beqz a0,3af2 + va_start(ap, format); + 3ad6: 832a mv t1,a0 + 3ad8: 0090 addi a2,sp,64 + _vprintf_core(&ctx, format, ap); + 3ada: 0808 addi a0,sp,16 + va_start(ap, format); + 3adc: e432 sd a2,8(sp) + ctx.buf = NULL; + 3ade: e802 sd zero,16(sp) + ctx.limit = 0; + 3ae0: ec02 sd zero,24(sp) + ctx.written = 0; + 3ae2: f002 sd zero,32(sp) + ctx.stream = stream; + 3ae4: f41a sd t1,40(sp) + _vprintf_core(&ctx, format, ap); + 3ae6: d34ff0ef jal 301a <_vprintf_core.constprop.0.isra.0> + return (int)ctx.written; + 3aea: 5502 lw a0,32(sp) +} + 3aec: 70e2 ld ra,56(sp) + 3aee: 6165 addi sp,sp,112 + 3af0: 8082 ret + return -1; + 3af2: 557d li a0,-1 + 3af4: bfe5 j 3aec + +0000000000003af6 : +{ + 3af6: 7159 addi sp,sp,-112 + 3af8: fc06 sd ra,56(sp) + 3afa: e0b2 sd a2,64(sp) + 3afc: e4b6 sd a3,72(sp) + 3afe: e8ba sd a4,80(sp) + 3b00: ecbe sd a5,88(sp) + 3b02: f0c2 sd a6,96(sp) + 3b04: f4c6 sd a7,104(sp) + if (!stream) + 3b06: cd19 beqz a0,3b24 + ctx.fd = stream->fd; + 3b08: 411c lw a5,0(a0) + va_start(ap, format); + 3b0a: 0090 addi a2,sp,64 + int ret = _vscanf_core(&ctx, format, ap); + 3b0c: 0808 addi a0,sp,16 + ctx.fd = stream->fd; + 3b0e: cc3e sw a5,24(sp) + ctx.ungotten = -1; + 3b10: 57fd li a5,-1 + va_start(ap, format); + 3b12: e432 sd a2,8(sp) + ctx.buf = NULL; + 3b14: e802 sd zero,16(sp) + ctx.pos = 0; + 3b16: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3b18: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3b1a: e1dfc0ef jal 936 <_vscanf_core.constprop.0> +} + 3b1e: 70e2 ld ra,56(sp) + 3b20: 6165 addi sp,sp,112 + 3b22: 8082 ret + return -1; + 3b24: 557d li a0,-1 + 3b26: bfe5 j 3b1e + +0000000000003b28 : + if (!stream) + 3b28: c1e1 beqz a1,3be8 +{ + 3b2a: 7179 addi sp,sp,-48 + 3b2c: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 3b2e: 41c5a903 lw s2,1052(a1) +{ + 3b32: f022 sd s0,32(sp) + 3b34: ec26 sd s1,24(sp) + 3b36: f406 sd ra,40(sp) + if (stream->buf_mode == 2) + 3b38: 4789 li a5,2 + 3b3a: 842e mv s0,a1 + 3b3c: 84aa mv s1,a0 + char ch = (char)c; + 3b3e: 0ff57713 zext.b a4,a0 + if (stream->buf_mode == 2) + 3b42: 02f90963 beq s2,a5,3b74 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3b46: 4105a783 lw a5,1040(a1) + if (stream->buf_write_pos >= BUFSIZ) + 3b4a: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3b4e: 0017861b addiw a2,a5,1 + 3b52: 40c5a823 sw a2,1040(a1) + 3b56: 97ae add a5,a5,a1 + 3b58: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3b5c: 06c6c463 blt a3,a2,3bc4 + else if (stream->buf_mode == 1 && c == '\n') + 3b60: 4785 li a5,1 + 3b62: 02f90e63 beq s2,a5,3b9e + return c; + 3b66: 8526 mv a0,s1 +} + 3b68: 70a2 ld ra,40(sp) + 3b6a: 7402 ld s0,32(sp) + 3b6c: 64e2 ld s1,24(sp) + 3b6e: 6942 ld s2,16(sp) + 3b70: 6145 addi sp,sp,48 + 3b72: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3b74: 4188 lw a0,0(a1) + 3b76: 4605 li a2,1 + 3b78: 00f10593 addi a1,sp,15 + char ch = (char)c; + 3b7c: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3b80: d2efc0ef jal ae + 3b84: 872a mv a4,a0 + 3b86: 4785 li a5,1 + return c; + 3b88: 8526 mv a0,s1 + if (write(stream->fd, &ch, 1) != 1) + 3b8a: fcf70fe3 beq a4,a5,3b68 +} + 3b8e: 70a2 ld ra,40(sp) + stream->error = 1; + 3b90: c41c sw a5,8(s0) +} + 3b92: 7402 ld s0,32(sp) + 3b94: 64e2 ld s1,24(sp) + 3b96: 6942 ld s2,16(sp) + return EOF; + 3b98: 557d li a0,-1 +} + 3b9a: 6145 addi sp,sp,48 + 3b9c: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3b9e: 47a9 li a5,10 + 3ba0: fcf513e3 bne a0,a5,3b66 + if (stream->buf_write_pos > 0) + 3ba4: fcc051e3 blez a2,3b66 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3ba8: 4188 lw a0,0(a1) + 3baa: 05c1 addi a1,a1,16 + 3bac: d02fc0ef jal ae + if (ret < stream->buf_write_pos) + 3bb0: 41042783 lw a5,1040(s0) + 3bb4: 02f55063 bge a0,a5,3bd4 + stream->error = 1; + 3bb8: 01242423 sw s2,8(s0) + stream->buf_write_pos = 0; + 3bbc: 40042823 sw zero,1040(s0) + return c; + 3bc0: 8526 mv a0,s1 + 3bc2: b75d j 3b68 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3bc4: 4188 lw a0,0(a1) + 3bc6: 05c1 addi a1,a1,16 + 3bc8: ce6fc0ef jal ae + if (ret < stream->buf_write_pos) + 3bcc: 41042783 lw a5,1040(s0) + 3bd0: 00f54663 blt a0,a5,3bdc + stream->buf_write_pos = 0; + 3bd4: 40042823 sw zero,1040(s0) + return c; + 3bd8: 8526 mv a0,s1 + 3bda: b779 j 3b68 + stream->error = 1; + 3bdc: 4785 li a5,1 + 3bde: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3be0: 40042823 sw zero,1040(s0) + return c; + 3be4: 8526 mv a0,s1 + 3be6: b749 j 3b68 + return EOF; + 3be8: 557d li a0,-1 +} + 3bea: 8082 ret + +0000000000003bec : + if (!stream) + 3bec: c1ed beqz a1,3cce +{ + 3bee: 711d addi sp,sp,-96 + 3bf0: e4a6 sd s1,72(sp) + 3bf2: ec86 sd ra,88(sp) + while (*s) + 3bf4: 00054703 lbu a4,0(a0) + 3bf8: 84aa mv s1,a0 + 3bfa: cf25 beqz a4,3c72 + 3bfc: e8a2 sd s0,80(sp) + 3bfe: e0ca sd s2,64(sp) + 3c00: fc4e sd s3,56(sp) + 3c02: f852 sd s4,48(sp) + 3c04: f456 sd s5,40(sp) + 3c06: f05a sd s6,32(sp) + 3c08: ec5e sd s7,24(sp) + 3c0a: 842e mv s0,a1 + if (stream->buf_mode == 2) + 3c0c: 4909 li s2,2 + if (stream->buf_write_pos >= BUFSIZ) + 3c0e: 3ff00b13 li s6,1023 + else if (stream->buf_mode == 1 && c == '\n') + 3c12: 4985 li s3,1 + 3c14: 4a29 li s4,10 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c16: 01058a93 addi s5,a1,16 + if (write(stream->fd, &ch, 1) != 1) + 3c1a: 00f10b93 addi s7,sp,15 + 3c1e: a031 j 3c2a + else if (stream->buf_mode == 1 && c == '\n') + 3c20: 09368563 beq a3,s3,3caa + while (*s) + 3c24: 0004c703 lbu a4,0(s1) + 3c28: cf15 beqz a4,3c64 + if (stream->buf_mode == 2) + 3c2a: 41c42683 lw a3,1052(s0) + if (fputc(*s++, stream) == EOF) + 3c2e: 0485 addi s1,s1,1 + if (stream->buf_mode == 2) + 3c30: 05268663 beq a3,s2,3c7c + stream->buffer[stream->buf_write_pos++] = (char)c; + 3c34: 41042783 lw a5,1040(s0) + 3c38: 0017861b addiw a2,a5,1 + 3c3c: 40c42823 sw a2,1040(s0) + 3c40: 97a2 add a5,a5,s0 + 3c42: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3c46: fccb5de3 bge s6,a2,3c20 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c4a: 4008 lw a0,0(s0) + 3c4c: 85d6 mv a1,s5 + 3c4e: c60fc0ef jal ae + if (ret < stream->buf_write_pos) + 3c52: 41042783 lw a5,1040(s0) + 3c56: 06f54763 blt a0,a5,3cc4 + stream->buf_write_pos = 0; + 3c5a: 40042823 sw zero,1040(s0) + while (*s) + 3c5e: 0004c703 lbu a4,0(s1) + 3c62: f761 bnez a4,3c2a + 3c64: 6446 ld s0,80(sp) + 3c66: 6906 ld s2,64(sp) + 3c68: 79e2 ld s3,56(sp) + 3c6a: 7a42 ld s4,48(sp) + 3c6c: 7aa2 ld s5,40(sp) + 3c6e: 7b02 ld s6,32(sp) + 3c70: 6be2 ld s7,24(sp) +} + 3c72: 60e6 ld ra,88(sp) + 3c74: 64a6 ld s1,72(sp) + return 0; + 3c76: 4501 li a0,0 +} + 3c78: 6125 addi sp,sp,96 + 3c7a: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3c7c: 4008 lw a0,0(s0) + 3c7e: 4605 li a2,1 + 3c80: 85de mv a1,s7 + char ch = (char)c; + 3c82: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3c86: c28fc0ef jal ae + 3c8a: f9350de3 beq a0,s3,3c24 + stream->error = 1; + 3c8e: 01342423 sw s3,8(s0) +} + 3c92: 60e6 ld ra,88(sp) + 3c94: 6446 ld s0,80(sp) + 3c96: 6906 ld s2,64(sp) + 3c98: 79e2 ld s3,56(sp) + 3c9a: 7a42 ld s4,48(sp) + 3c9c: 7aa2 ld s5,40(sp) + 3c9e: 7b02 ld s6,32(sp) + 3ca0: 6be2 ld s7,24(sp) + 3ca2: 64a6 ld s1,72(sp) + return -1; + 3ca4: 557d li a0,-1 +} + 3ca6: 6125 addi sp,sp,96 + 3ca8: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3caa: f7471de3 bne a4,s4,3c24 + if (stream->buf_write_pos > 0) + 3cae: f6c05be3 blez a2,3c24 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3cb2: 4008 lw a0,0(s0) + 3cb4: 01040593 addi a1,s0,16 + 3cb8: bf6fc0ef jal ae + if (ret < stream->buf_write_pos) + 3cbc: 41042783 lw a5,1040(s0) + 3cc0: f8f55de3 bge a0,a5,3c5a + stream->error = 1; + 3cc4: 4785 li a5,1 + 3cc6: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3cc8: 40042823 sw zero,1040(s0) + return EOF; + 3ccc: bfa1 j 3c24 + return -1; + 3cce: 557d li a0,-1 +} + 3cd0: 8082 ret + +0000000000003cd2 : + if (!stream) + 3cd2: c949 beqz a0,3d64 + if (stream->buf_write_pos > 0) + 3cd4: 41052603 lw a2,1040(a0) +{ + 3cd8: 1141 addi sp,sp,-16 + 3cda: e022 sd s0,0(sp) + 3cdc: e406 sd ra,8(sp) + 3cde: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3ce0: 04c04863 bgtz a2,3d30 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3ce4: 41442783 lw a5,1044(s0) + 3ce8: 41842703 lw a4,1048(s0) + 3cec: 00e7dd63 bge a5,a4,3d06 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3cf0: 0017871b addiw a4,a5,1 + 3cf4: 40e42a23 sw a4,1044(s0) + 3cf8: 943e add s0,s0,a5 + 3cfa: 01044503 lbu a0,16(s0) +} + 3cfe: 60a2 ld ra,8(sp) + 3d00: 6402 ld s0,0(sp) + 3d02: 0141 addi sp,sp,16 + 3d04: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3d06: 4008 lw a0,0(s0) + 3d08: 40000613 li a2,1024 + 3d0c: 01040593 addi a1,s0,16 + 3d10: b96fc0ef jal a6 + 3d14: 87aa mv a5,a0 + if (ret <= 0) + 3d16: 02a05e63 blez a0,3d52 + stream->buf_read_cnt = (int)ret; + 3d1a: 40f42c23 sw a5,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d1e: 4785 li a5,1 + 3d20: 01044503 lbu a0,16(s0) +} + 3d24: 60a2 ld ra,8(sp) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d26: 40f42a23 sw a5,1044(s0) +} + 3d2a: 6402 ld s0,0(sp) + 3d2c: 0141 addi sp,sp,16 + 3d2e: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d30: 4108 lw a0,0(a0) + 3d32: 01040593 addi a1,s0,16 + 3d36: b78fc0ef jal ae + if (ret < stream->buf_write_pos) + 3d3a: 41042783 lw a5,1040(s0) + 3d3e: 00f54563 blt a0,a5,3d48 + stream->buf_write_pos = 0; + 3d42: 40042823 sw zero,1040(s0) + 3d46: bf79 j 3ce4 + stream->error = 1; + 3d48: 4785 li a5,1 + 3d4a: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3d4c: 40042823 sw zero,1040(s0) + return EOF; + 3d50: bf51 j 3ce4 + if (ret == 0) + 3d52: e509 bnez a0,3d5c + stream->eof = 1; + 3d54: 4785 li a5,1 + 3d56: c45c sw a5,12(s0) + return EOF; + 3d58: 557d li a0,-1 + 3d5a: b755 j 3cfe + stream->error = 1; + 3d5c: 4785 li a5,1 + 3d5e: c41c sw a5,8(s0) + return EOF; + 3d60: 557d li a0,-1 + 3d62: bf71 j 3cfe + 3d64: 557d li a0,-1 +} + 3d66: 8082 ret + +0000000000003d68 : + if (!stream || n <= 0) + 3d68: ce5d beqz a2,3e26 + 3d6a: 0ab05e63 blez a1,3e26 +{ + 3d6e: 715d addi sp,sp,-80 + 3d70: e0a2 sd s0,64(sp) + 3d72: fc26 sd s1,56(sp) + 3d74: f84a sd s2,48(sp) + 3d76: f44e sd s3,40(sp) + 3d78: f052 sd s4,32(sp) + 3d7a: ec56 sd s5,24(sp) + 3d7c: e85a sd s6,16(sp) + 3d7e: e45e sd s7,8(sp) + 3d80: e486 sd ra,72(sp) + 3d82: 8432 mv s0,a2 + 3d84: 8aaa mv s5,a0 + 3d86: 892a mv s2,a0 + 3d88: fff58b9b addiw s7,a1,-1 + int i = 0, c; + 3d8c: 4481 li s1,0 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d8e: 01060993 addi s3,a2,16 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d92: 4b05 li s6,1 + if (c == '\n') + 3d94: 4a29 li s4,10 + while (i < n - 1) + 3d96: 05748163 beq s1,s7,3dd8 + if (stream->buf_write_pos > 0) + 3d9a: 41042603 lw a2,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d9e: 85ce mv a1,s3 + if (stream->buf_write_pos > 0) + 3da0: 06c04963 bgtz a2,3e12 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3da4: 41442783 lw a5,1044(s0) + 3da8: 41842703 lw a4,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3dac: 40000613 li a2,1024 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3db0: 0017851b addiw a0,a5,1 + 3db4: 00f406b3 add a3,s0,a5 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3db8: 85ce mv a1,s3 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3dba: 02e7de63 bge a5,a4,3df6 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3dbe: 40a42a23 sw a0,1044(s0) + 3dc2: 0106c783 lbu a5,16(a3) + 3dc6: 0007871b sext.w a4,a5 + str[i++] = (char)c; + 3dca: 00f90023 sb a5,0(s2) + 3dce: 2485 addiw s1,s1,1 + if (c == '\n') + 3dd0: 0905 addi s2,s2,1 + 3dd2: fd4712e3 bne a4,s4,3d96 + str[i++] = (char)c; + 3dd6: 8ba6 mv s7,s1 + str[i] = '\0'; + 3dd8: 9bd6 add s7,s7,s5 + 3dda: 000b8023 sb zero,0(s7) + return str; + 3dde: 8556 mv a0,s5 +} + 3de0: 60a6 ld ra,72(sp) + 3de2: 6406 ld s0,64(sp) + 3de4: 74e2 ld s1,56(sp) + 3de6: 7942 ld s2,48(sp) + 3de8: 79a2 ld s3,40(sp) + 3dea: 7a02 ld s4,32(sp) + 3dec: 6ae2 ld s5,24(sp) + 3dee: 6b42 ld s6,16(sp) + 3df0: 6ba2 ld s7,8(sp) + 3df2: 6161 addi sp,sp,80 + 3df4: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3df6: 4008 lw a0,0(s0) + 3df8: aaefc0ef jal a6 + if (ret <= 0) + 3dfc: 02a05c63 blez a0,3e34 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e00: 01044783 lbu a5,16(s0) + stream->buf_read_cnt = (int)ret; + 3e04: 40a42c23 sw a0,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e08: 41642a23 sw s6,1044(s0) + 3e0c: 0007871b sext.w a4,a5 + if (c == -1) + 3e10: bf6d j 3dca + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3e12: 4008 lw a0,0(s0) + 3e14: a9afc0ef jal ae + if (ret < stream->buf_write_pos) + 3e18: 41042783 lw a5,1040(s0) + 3e1c: 00f54763 blt a0,a5,3e2a + stream->buf_write_pos = 0; + 3e20: 40042823 sw zero,1040(s0) + 3e24: b741 j 3da4 + return NULL; + 3e26: 4501 li a0,0 +} + 3e28: 8082 ret + stream->error = 1; + 3e2a: 4785 li a5,1 + 3e2c: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3e2e: 40042823 sw zero,1040(s0) + return EOF; + 3e32: bf8d j 3da4 + stream->eof = 1; + 3e34: 4785 li a5,1 + if (ret == 0) + 3e36: e509 bnez a0,3e40 + stream->eof = 1; + 3e38: c45c sw a5,12(s0) + if (i == 0) + 3e3a: fcd1 bnez s1,3dd6 + return NULL; + 3e3c: 4501 li a0,0 + 3e3e: b74d j 3de0 + stream->error = 1; + 3e40: c41c sw a5,8(s0) + if (c == -1) + 3e42: bfe5 j 3e3a + +0000000000003e44 : +{ + 3e44: 715d addi sp,sp,-80 + 3e46: e486 sd ra,72(sp) + 3e48: f44e sd s3,40(sp) + if (!stream || size == 0 || nmemb == 0) + 3e4a: 0e068963 beqz a3,3f3c + 3e4e: ec56 sd s5,24(sp) + return 0; + 3e50: 4981 li s3,0 + 3e52: 8aae mv s5,a1 + if (!stream || size == 0 || nmemb == 0) + 3e54: c9bd beqz a1,3eca + 3e56: ca35 beqz a2,3eca + if (stream->buf_write_pos > 0) + 3e58: 4106a783 lw a5,1040(a3) + 3e5c: e0a2 sd s0,64(sp) + 3e5e: f052 sd s4,32(sp) + uint64 total_bytes = size * nmemb; + 3e60: 02c589b3 mul s3,a1,a2 + 3e64: 8436 mv s0,a3 + 3e66: 8a2a mv s4,a0 + if (stream->buf_write_pos > 0) + 3e68: 0af04d63 bgtz a5,3f22 + while (bytes_read < total_bytes) + 3e6c: 04098d63 beqz s3,3ec6 + 3e70: fc26 sd s1,56(sp) + 3e72: e85a sd s6,16(sp) + 3e74: e45e sd s7,8(sp) + 3e76: f84a sd s2,48(sp) + 3e78: 4481 li s1,0 + if (remaining >= BUFSIZ) + 3e7a: 3ff00b13 li s6,1023 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3e7e: 01040b93 addi s7,s0,16 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3e82: 41442703 lw a4,1044(s0) + 3e86: 41842783 lw a5,1048(s0) + uint64 remaining = total_bytes - bytes_read; + 3e8a: 40998633 sub a2,s3,s1 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3e8e: 06f74463 blt a4,a5,3ef6 + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3e92: 4008 lw a0,0(s0) + 3e94: 009a05b3 add a1,s4,s1 + if (remaining >= BUFSIZ) + 3e98: 02cb7f63 bgeu s6,a2,3ed6 + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3e9c: a0afc0ef jal a6 + if (ret <= 0) + 3ea0: 0aa05463 blez a0,3f48 + bytes_read += ret; + 3ea4: 94aa add s1,s1,a0 + while (bytes_read < total_bytes) + 3ea6: fd34eee3 bltu s1,s3,3e82 + return bytes_read / size; + 3eaa: 0354d9b3 divu s3,s1,s5 + 3eae: 6406 ld s0,64(sp) +} + 3eb0: 60a6 ld ra,72(sp) + return bytes_read / size; + 3eb2: 74e2 ld s1,56(sp) + 3eb4: 7942 ld s2,48(sp) + 3eb6: 7a02 ld s4,32(sp) + 3eb8: 6ae2 ld s5,24(sp) + 3eba: 6b42 ld s6,16(sp) + 3ebc: 6ba2 ld s7,8(sp) +} + 3ebe: 854e mv a0,s3 + 3ec0: 79a2 ld s3,40(sp) + 3ec2: 6161 addi sp,sp,80 + 3ec4: 8082 ret + 3ec6: 6406 ld s0,64(sp) + 3ec8: 7a02 ld s4,32(sp) + 3eca: 60a6 ld ra,72(sp) + 3ecc: 6ae2 ld s5,24(sp) + 3ece: 854e mv a0,s3 + 3ed0: 79a2 ld s3,40(sp) + 3ed2: 6161 addi sp,sp,80 + 3ed4: 8082 ret + stream->buf_read_pos = 0; + 3ed6: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 3eda: 40042c23 sw zero,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3ede: 40000613 li a2,1024 + 3ee2: 85de mv a1,s7 + 3ee4: 9c2fc0ef jal a6 + if (ret <= 0) + 3ee8: 06a05063 blez a0,3f48 + stream->buf_read_cnt = (int)ret; + 3eec: 40a42c23 sw a0,1048(s0) + while (bytes_read < total_bytes) + 3ef0: f934e9e3 bltu s1,s3,3e82 + 3ef4: bf5d j 3eaa + uint64 available = stream->buf_read_cnt - stream->buf_read_pos; + 3ef6: 40e7893b subw s2,a5,a4 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 3efa: 00eb85b3 add a1,s7,a4 + 3efe: 009a0533 add a0,s4,s1 + uint64 to_copy = (available < remaining) ? available : remaining; + 3f02: 01267363 bgeu a2,s2,3f08 + 3f06: 8932 mv s2,a2 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 3f08: 864a mv a2,s2 + 3f0a: 3e1000ef jal 4aea + stream->buf_read_pos += to_copy; + 3f0e: 41442783 lw a5,1044(s0) + bytes_read += to_copy; + 3f12: 94ca add s1,s1,s2 + stream->buf_read_pos += to_copy; + 3f14: 012787bb addw a5,a5,s2 + 3f18: 40f42a23 sw a5,1044(s0) + while (bytes_read < total_bytes) + 3f1c: f734e3e3 bltu s1,s3,3e82 + 3f20: b769 j 3eaa + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3f22: 4288 lw a0,0(a3) + 3f24: 863e mv a2,a5 + 3f26: 01068593 addi a1,a3,16 + 3f2a: 984fc0ef jal ae + if (ret < stream->buf_write_pos) + 3f2e: 41042783 lw a5,1040(s0) + 3f32: 02f54163 blt a0,a5,3f54 + stream->buf_write_pos = 0; + 3f36: 40042823 sw zero,1040(s0) + 3f3a: bf0d j 3e6c +} + 3f3c: 60a6 ld ra,72(sp) + return 0; + 3f3e: 4981 li s3,0 +} + 3f40: 854e mv a0,s3 + 3f42: 79a2 ld s3,40(sp) + 3f44: 6161 addi sp,sp,80 + 3f46: 8082 ret + stream->eof = 1; + 3f48: 4785 li a5,1 + if (ret == 0) + 3f4a: e119 bnez a0,3f50 + stream->eof = 1; + 3f4c: c45c sw a5,12(s0) + 3f4e: bfb1 j 3eaa + stream->error = 1; + 3f50: c41c sw a5,8(s0) + return bytes_read / size; + 3f52: bfa1 j 3eaa + stream->error = 1; + 3f54: 4785 li a5,1 + 3f56: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3f58: 40042823 sw zero,1040(s0) + return EOF; + 3f5c: bf01 j 3e6c + +0000000000003f5e : +{ + 3f5e: 711d addi sp,sp,-96 + 3f60: ec86 sd ra,88(sp) + 3f62: e0ca sd s2,64(sp) + if (!stream || !ptr || size == 0 || nmemb == 0) + 3f64: 10068063 beqz a3,4064 + 3f68: f456 sd s5,40(sp) + 3f6a: 8aaa mv s5,a0 + 3f6c: 10050263 beqz a0,4070 + 3f70: f05a sd s6,32(sp) + return 0; + 3f72: 4901 li s2,0 + 3f74: 8b2e mv s6,a1 + if (!stream || !ptr || size == 0 || nmemb == 0) + 3f76: c1d9 beqz a1,3ffc + 3f78: c251 beqz a2,3ffc + if (stream->buf_mode == 2) + 3f7a: 41c6a703 lw a4,1052(a3) + 3f7e: e8a2 sd s0,80(sp) + 3f80: 4789 li a5,2 + uint64 total_bytes = size * nmemb; + 3f82: 02c58933 mul s2,a1,a2 + if (stream->buf_mode == 2) + 3f86: 8436 mv s0,a3 + 3f88: 0ef70b63 beq a4,a5,407e + 3f8c: fc4e sd s3,56(sp) + 3f8e: ec5e sd s7,24(sp) + 3f90: e862 sd s8,16(sp) + uint64 bytes_written = 0; + 3f92: 4981 li s3,0 + 3f94: 01068b93 addi s7,a3,16 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3f98: 40000c13 li s8,1024 + while (bytes_written < total_bytes) + 3f9c: 12090263 beqz s2,40c0 + 3fa0: e4a6 sd s1,72(sp) + 3fa2: f852 sd s4,48(sp) + 3fa4: e466 sd s9,8(sp) + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3fa6: 41042783 lw a5,1040(s0) + uint64 remaining = total_bytes - bytes_written; + 3faa: 41390cb3 sub s9,s2,s3 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 3fae: 013a85b3 add a1,s5,s3 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3fb2: 40fc0a3b subw s4,s8,a5 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 3fb6: 00fb8533 add a0,s7,a5 + 3fba: 8652 mv a2,s4 + if (remaining <= space_left) + 3fbc: 059a6763 bltu s4,s9,400a + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 3fc0: 8666 mv a2,s9 + 3fc2: 329000ef jal 4aea + stream->buf_write_pos += remaining; + 3fc6: 41042783 lw a5,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 3fca: 40000713 li a4,1024 + stream->buf_write_pos += remaining; + 3fce: 019786bb addw a3,a5,s9 + 3fd2: 40d42823 sw a3,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 3fd6: 06e68a63 beq a3,a4,404a + return bytes_written / size; + 3fda: 03695933 divu s2,s2,s6 + 3fde: 6446 ld s0,80(sp) + 3fe0: 64a6 ld s1,72(sp) + 3fe2: 79e2 ld s3,56(sp) + 3fe4: 7a42 ld s4,48(sp) + 3fe6: 7aa2 ld s5,40(sp) + 3fe8: 7b02 ld s6,32(sp) + 3fea: 6be2 ld s7,24(sp) + 3fec: 6c42 ld s8,16(sp) + 3fee: 6ca2 ld s9,8(sp) +} + 3ff0: 60e6 ld ra,88(sp) + 3ff2: 854a mv a0,s2 + 3ff4: 6906 ld s2,64(sp) + 3ff6: 6125 addi sp,sp,96 + 3ff8: 8082 ret + 3ffa: 6446 ld s0,80(sp) + 3ffc: 60e6 ld ra,88(sp) + 3ffe: 7aa2 ld s5,40(sp) + 4000: 7b02 ld s6,32(sp) + 4002: 854a mv a0,s2 + 4004: 6906 ld s2,64(sp) + 4006: 6125 addi sp,sp,96 + 4008: 8082 ret + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 400a: 2e1000ef jal 4aea + stream->buf_write_pos += space_left; + 400e: 41042783 lw a5,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4012: 85de mv a1,s7 + bytes_written += space_left; + 4014: 99d2 add s3,s3,s4 + stream->buf_write_pos += space_left; + 4016: 00fa04bb addw s1,s4,a5 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 401a: 02049613 slli a2,s1,0x20 + stream->buf_write_pos += space_left; + 401e: 40942823 sw s1,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4022: 9201 srli a2,a2,0x20 + if (stream->buf_write_pos > 0) + 4024: 00904763 bgtz s1,4032 + while (bytes_written < total_bytes) + 4028: f729efe3 bltu s3,s2,3fa6 + return bytes_written / size; + 402c: 0369d933 divu s2,s3,s6 + 4030: b77d j 3fde + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4032: 4008 lw a0,0(s0) + 4034: 87afc0ef jal ae + if (ret < stream->buf_write_pos) + 4038: 41042783 lw a5,1040(s0) + 403c: 08f54963 blt a0,a5,40ce + stream->buf_write_pos = 0; + 4040: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 4044: f729e1e3 bltu s3,s2,3fa6 + 4048: b7d5 j 402c + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 404a: 4008 lw a0,0(s0) + 404c: 40000613 li a2,1024 + 4050: 85de mv a1,s7 + 4052: 85cfc0ef jal ae + if (ret < stream->buf_write_pos) + 4056: 41042783 lw a5,1040(s0) + 405a: 08f54163 blt a0,a5,40dc + stream->buf_write_pos = 0; + 405e: 40042823 sw zero,1040(s0) + 4062: bfa5 j 3fda +} + 4064: 60e6 ld ra,88(sp) + return 0; + 4066: 4901 li s2,0 +} + 4068: 854a mv a0,s2 + 406a: 6906 ld s2,64(sp) + 406c: 6125 addi sp,sp,96 + 406e: 8082 ret + 4070: 60e6 ld ra,88(sp) + return 0; + 4072: 4901 li s2,0 + 4074: 7aa2 ld s5,40(sp) +} + 4076: 854a mv a0,s2 + 4078: 6906 ld s2,64(sp) + 407a: 6125 addi sp,sp,96 + 407c: 8082 ret + while (bytes_written < total_bytes) + 407e: f6090ee3 beqz s2,3ffa + 4082: e4a6 sd s1,72(sp) + uint64 bytes_written = 0; + 4084: 4481 li s1,0 + 4086: a021 j 408e + bytes_written += ret; + 4088: 94aa add s1,s1,a0 + while (bytes_written < total_bytes) + 408a: 0324f463 bgeu s1,s2,40b2 + int64 ret = write(stream->fd, src + bytes_written, total_bytes - bytes_written); + 408e: 4008 lw a0,0(s0) + 4090: 40990633 sub a2,s2,s1 + 4094: 009a85b3 add a1,s5,s1 + 4098: 816fc0ef jal ae + if (ret <= 0) + 409c: fea046e3 bgtz a0,4088 + stream->error = 1; + 40a0: 4785 li a5,1 + return bytes_written / size; + 40a2: 0364d933 divu s2,s1,s6 + stream->error = 1; + 40a6: c41c sw a5,8(s0) + break; + 40a8: 64a6 ld s1,72(sp) + 40aa: 6446 ld s0,80(sp) + 40ac: 7aa2 ld s5,40(sp) + 40ae: 7b02 ld s6,32(sp) + 40b0: b781 j 3ff0 + return bytes_written / size; + 40b2: 0364d933 divu s2,s1,s6 + 40b6: 6446 ld s0,80(sp) + 40b8: 64a6 ld s1,72(sp) + 40ba: 7aa2 ld s5,40(sp) + 40bc: 7b02 ld s6,32(sp) + 40be: bf0d j 3ff0 + 40c0: 6446 ld s0,80(sp) + 40c2: 79e2 ld s3,56(sp) + 40c4: 7aa2 ld s5,40(sp) + 40c6: 7b02 ld s6,32(sp) + 40c8: 6be2 ld s7,24(sp) + 40ca: 6c42 ld s8,16(sp) + 40cc: b715 j 3ff0 + stream->error = 1; + 40ce: 4785 li a5,1 + 40d0: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 40d2: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 40d6: ed29e8e3 bltu s3,s2,3fa6 + 40da: bf89 j 402c + stream->error = 1; + 40dc: 4785 li a5,1 + 40de: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 40e0: 40042823 sw zero,1040(s0) + return EOF; + 40e4: bddd j 3fda + +00000000000040e6 : + if (!stream) + 40e6: c925 beqz a0,4156 +{ + 40e8: 1101 addi sp,sp,-32 + 40ea: e04a sd s2,0(sp) + 40ec: 8932 mv s2,a2 + if (stream->buf_write_pos > 0) + 40ee: 41052603 lw a2,1040(a0) +{ + 40f2: e822 sd s0,16(sp) + 40f4: e426 sd s1,8(sp) + 40f6: ec06 sd ra,24(sp) + 40f8: 842a mv s0,a0 + 40fa: 84ae mv s1,a1 + if (stream->buf_write_pos > 0) + 40fc: 02c04863 bgtz a2,412c + if (lseek(stream->fd, offset, whence) < 0) + 4100: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 4102: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 4106: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 410a: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 410e: 864a mv a2,s2 + 4110: 0004859b sext.w a1,s1 + 4114: 82afc0ef jal 13e + 4118: 87aa mv a5,a0 + return 0; + 411a: 4501 li a0,0 + if (lseek(stream->fd, offset, whence) < 0) + 411c: 0207c463 bltz a5,4144 +} + 4120: 60e2 ld ra,24(sp) + 4122: 6442 ld s0,16(sp) + 4124: 64a2 ld s1,8(sp) + 4126: 6902 ld s2,0(sp) + 4128: 6105 addi sp,sp,32 + 412a: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 412c: 4108 lw a0,0(a0) + 412e: 01040593 addi a1,s0,16 + 4132: f7dfb0ef jal ae + if (ret < stream->buf_write_pos) + 4136: 41042783 lw a5,1040(s0) + 413a: 00f54963 blt a0,a5,414c + stream->buf_write_pos = 0; + 413e: 40042823 sw zero,1040(s0) + 4142: bf7d j 4100 + stream->error = 1; + 4144: 4785 li a5,1 + 4146: c41c sw a5,8(s0) + return -1; + 4148: 557d li a0,-1 + 414a: bfd9 j 4120 + stream->error = 1; + 414c: 4785 li a5,1 + 414e: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 4150: 40042823 sw zero,1040(s0) + return EOF; + 4154: b775 j 4100 + return -1; + 4156: 557d li a0,-1 +} + 4158: 8082 ret + +000000000000415a : + if (!stream) + 415a: c505 beqz a0,4182 +{ + 415c: 1141 addi sp,sp,-16 + 415e: e022 sd s0,0(sp) + 4160: 842a mv s0,a0 + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 4162: 4108 lw a0,0(a0) + 4164: 4605 li a2,1 + 4166: 4581 li a1,0 +{ + 4168: e406 sd ra,8(sp) + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 416a: fd5fb0ef jal 13e + if (ret < 0) + 416e: 00054663 bltz a0,417a +} + 4172: 60a2 ld ra,8(sp) + 4174: 6402 ld s0,0(sp) + 4176: 0141 addi sp,sp,16 + 4178: 8082 ret + stream->error = 1; + 417a: 4785 li a5,1 + 417c: c41c sw a5,8(s0) + return -1L; + 417e: 557d li a0,-1 + 4180: bfcd j 4172 + 4182: 557d li a0,-1 +} + 4184: 8082 ret + +0000000000004186 : + if (stream) + 4186: c915 beqz a0,41ba + if (stream->buf_write_pos > 0) + 4188: 41052603 lw a2,1040(a0) +{ + 418c: 1141 addi sp,sp,-16 + 418e: e022 sd s0,0(sp) + 4190: e406 sd ra,8(sp) + 4192: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 4194: 02c04463 bgtz a2,41bc + if (lseek(stream->fd, offset, whence) < 0) + 4198: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 419a: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 419e: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 41a2: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 41a6: 4601 li a2,0 + 41a8: 4581 li a1,0 + 41aa: f95fb0ef jal 13e +} + 41ae: 60a2 ld ra,8(sp) + stream->error = 0; + 41b0: 00042423 sw zero,8(s0) +} + 41b4: 6402 ld s0,0(sp) + 41b6: 0141 addi sp,sp,16 + 41b8: 8082 ret + 41ba: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 41bc: 4108 lw a0,0(a0) + 41be: 01040593 addi a1,s0,16 + 41c2: eedfb0ef jal ae + if (ret < stream->buf_write_pos) + 41c6: 41042783 lw a5,1040(s0) + 41ca: 00f54563 blt a0,a5,41d4 + stream->buf_write_pos = 0; + 41ce: 40042823 sw zero,1040(s0) + 41d2: b7d9 j 4198 + stream->error = 1; + 41d4: 4785 li a5,1 + 41d6: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 41d8: 40042823 sw zero,1040(s0) + return EOF; + 41dc: bf75 j 4198 + +00000000000041de : + return (stream) ? stream->eof : 1; + 41de: c119 beqz a0,41e4 + 41e0: 4548 lw a0,12(a0) + 41e2: 8082 ret + 41e4: 4505 li a0,1 +} + 41e6: 8082 ret + +00000000000041e8 : + return (stream) ? stream->error : 1; + 41e8: c119 beqz a0,41ee + 41ea: 4508 lw a0,8(a0) + 41ec: 8082 ret + 41ee: 4505 li a0,1 +} + 41f0: 8082 ret + +00000000000041f2 : + if (stream) + 41f2: c509 beqz a0,41fc + stream->error = 0; + 41f4: 00052423 sw zero,8(a0) + stream->eof = 0; + 41f8: 00052623 sw zero,12(a0) +} + 41fc: 8082 ret + +00000000000041fe : + if (!stream || c == EOF) + 41fe: c19d beqz a1,4224 + 4200: 57fd li a5,-1 + 4202: 02f50163 beq a0,a5,4224 + if (stream->buf_read_pos > 0) + 4206: 4145a783 lw a5,1044(a1) + 420a: 00f05d63 blez a5,4224 + stream->buf_read_pos--; + 420e: fff7871b addiw a4,a5,-1 + 4212: 40e5aa23 sw a4,1044(a1) + stream->buffer[stream->buf_read_pos] = (char)c; + 4216: 00e587b3 add a5,a1,a4 + 421a: 00a78823 sb a0,16(a5) + stream->eof = 0; + 421e: 0005a623 sw zero,12(a1) + return c; + 4222: 8082 ret + return EOF; + 4224: 557d li a0,-1 + 4226: 8082 ret + +0000000000004228 : + return new_ptr; +} + +/* String Conversion*/ + +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 4228: 1141 addi sp,sp,-16 + 422a: e422 sd s0,8(sp) + 422c: 8eaa mv t4,a0 +{ + const char *s = nptr; + 422e: 88aa mv a7,a0 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + static inline int islower(int c) { return c >= 'a' && c <= 'z'; } + static inline int isupper(int c) { return c >= 'A' && c <= 'Z'; } + static inline int isalpha(int c) { return islower(c) || isupper(c); } + static inline int isalnum(int c) { return isalpha(c) || isdigit(c); } + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 4230: 02000313 li t1,32 + 4234: 4e11 li t3,4 + return 0; + } + + do + { + c = *s++; + 4236: 0008c783 lbu a5,0(a7) + 423a: 00188813 addi a6,a7,1 + 423e: ff77871b addiw a4,a5,-9 + 4242: 0ff77693 zext.b a3,a4 + 4246: 0007871b sext.w a4,a5 + 424a: 04678363 beq a5,t1,4290 + 424e: 04de7163 bgeu t3,a3,4290 + } while (isspace(c)); + + if (c == '-') + 4252: 02d00793 li a5,45 + 4256: 0ef70863 beq a4,a5,4346 + { + neg = 1; + c = *s++; + } + else if (c == '+') + 425a: 02b00793 li a5,43 + int neg = 0, any, cutlim; + 425e: 4381 li t2,0 + else if (c == '+') + 4260: 08f70c63 beq a4,a5,42f8 + { + c = *s++; + } + + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 4264: ea05 bnez a2,4294 + 4266: 03000793 li a5,48 + 426a: 0ef70463 beq a4,a5,4352 + 426e: 00ccd8b7 lui a7,0xccd + 4272: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc5515> + 4276: 08b2 slli a7,a7,0xc + 4278: ccd88893 addi a7,a7,-819 + 427c: 08b2 slli a7,a7,0xc + 427e: ccd88893 addi a7,a7,-819 + 4282: 08b6 slli a7,a7,0xd + 4284: 4415 li s0,5 + 4286: 99988893 addi a7,a7,-1639 + 428a: 42a9 li t0,10 + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = (c == '0' ? 8 : 10); + 428c: 4629 li a2,10 + 428e: a829 j 42a8 +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 4290: 88c2 mv a7,a6 + 4292: b755 j 4236 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 4294: 47c1 li a5,16 + 4296: 0cf60d63 beq a2,a5,4370 + + cutoff = ULLONG_MAX / (unsigned long long)base; + 429a: 58fd li a7,-1 + cutlim = ULLONG_MAX % (unsigned long long)base; + 429c: 02c8f433 remu s0,a7,a2 + cutoff = ULLONG_MAX / (unsigned long long)base; + 42a0: 82b2 mv t0,a2 + 42a2: 02c8d8b3 divu a7,a7,a2 + cutlim = ULLONG_MAX % (unsigned long long)base; + 42a6: 2401 sext.w s0,s0 + + for (acc = 0, any = 0;; c = *s++) + 42a8: 4301 li t1,0 + 42aa: 4501 li a0,0 + { + if (isdigit(c)) + 42ac: 4e25 li t3,9 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 42ae: 4fe5 li t6,25 + break; + + if (c >= base) + break; + + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42b0: 5f7d li t5,-1 + if (isdigit(c)) + 42b2: fd07079b addiw a5,a4,-48 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 42b6: 0007069b sext.w a3,a4 + 42ba: 00fe7e63 bgeu t3,a5,42d6 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 42be: f9f6879b addiw a5,a3,-97 + 42c2: 04fff063 bgeu t6,a5,4302 + 42c6: fbf6869b addiw a3,a3,-65 + 42ca: 04dfe163 bltu t6,a3,430c + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 42ce: 03700793 li a5,55 + 42d2: 40f707bb subw a5,a4,a5 + if (c >= base) + 42d6: 02c7db63 bge a5,a2,430c + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42da: 01e30b63 beq t1,t5,42f0 + any = -1; + 42de: 537d li t1,-1 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42e0: 00a8e863 bltu a7,a0,42f0 + 42e4: 05150e63 beq a0,a7,4340 + else + { + any = 1; + 42e8: 4305 li t1,1 + acc *= base; + 42ea: 02550533 mul a0,a0,t0 + acc += c; + 42ee: 953e add a0,a0,a5 + for (acc = 0, any = 0;; c = *s++) + 42f0: 0805 addi a6,a6,1 + 42f2: fff84703 lbu a4,-1(a6) + if (isdigit(c)) + 42f6: bf75 j 42b2 + c = *s++; + 42f8: 00084703 lbu a4,0(a6) + 42fc: 00288813 addi a6,a7,2 + 4300: b795 j 4264 + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 4302: 05700793 li a5,87 + 4306: 40f707bb subw a5,a4,a5 + 430a: b7f1 j 42d6 + } + } + + if (any < 0) + 430c: 57fd li a5,-1 + 430e: 00f30e63 beq t1,a5,432a + { + acc = ULLONG_MAX; + errno = ERANGE; + } + else if (neg) + 4312: 00038463 beqz t2,431a + acc = -acc; + 4316: 40a00533 neg a0,a0 + + if (endptr != 0) + 431a: c589 beqz a1,4324 + *endptr = (char *)(any ? s - 1 : nptr); + 431c: 00031f63 bnez t1,433a + 4320: 01d5b023 sd t4,0(a1) + + return acc; +} + 4324: 6422 ld s0,8(sp) + 4326: 0141 addi sp,sp,16 + 4328: 8082 ret + errno = ERANGE; + 432a: 02200793 li a5,34 + 432e: 00003717 auipc a4,0x3 + 4332: 34f72923 sw a5,850(a4) # 7680 + acc = ULLONG_MAX; + 4336: 557d li a0,-1 + if (endptr != 0) + 4338: d5f5 beqz a1,4324 + *endptr = (char *)(any ? s - 1 : nptr); + 433a: fff80e93 addi t4,a6,-1 + 433e: b7cd j 4320 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 4340: faf448e3 blt s0,a5,42f0 + 4344: b755 j 42e8 + c = *s++; + 4346: 00084703 lbu a4,0(a6) + neg = 1; + 434a: 4385 li t2,1 + c = *s++; + 434c: 00288813 addi a6,a7,2 + 4350: bf11 j 4264 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 4352: 00084783 lbu a5,0(a6) + 4356: 05800693 li a3,88 + 435a: 0df7f793 andi a5,a5,223 + 435e: 02d78b63 beq a5,a3,4394 + 4362: 58fd li a7,-1 + 4364: 441d li s0,7 + 4366: 0038d893 srli a7,a7,0x3 + 436a: 42a1 li t0,8 + base = (c == '0' ? 8 : 10); + 436c: 4621 li a2,8 + 436e: bf2d j 42a8 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 4370: 03000793 li a5,48 + 4374: 00f70863 beq a4,a5,4384 + 4378: 58fd li a7,-1 + 437a: 443d li s0,15 + 437c: 0048d893 srli a7,a7,0x4 + 4380: 42c1 li t0,16 + 4382: b71d j 42a8 + 4384: 00084783 lbu a5,0(a6) + 4388: 05800693 li a3,88 + 438c: 0df7f793 andi a5,a5,223 + 4390: fed794e3 bne a5,a3,4378 + s += 2; + 4394: 58fd li a7,-1 + c = s[1]; + 4396: 00184703 lbu a4,1(a6) + s += 2; + 439a: 443d li s0,15 + 439c: 0809 addi a6,a6,2 + 439e: 0048d893 srli a7,a7,0x4 + 43a2: 42c1 li t0,16 + base = 16; + 43a4: 4641 li a2,16 + 43a6: b709 j 42a8 + +00000000000043a8 : + if (__atexit_func_count >= ATEXIT_MAX) + 43a8: 00003717 auipc a4,0x3 + 43ac: 2d870713 addi a4,a4,728 # 7680 + 43b0: 435c lw a5,4(a4) + 43b2: 46fd li a3,31 + 43b4: 00f6ca63 blt a3,a5,43c8 + __atexit_funcs[__atexit_func_count++] = function; + 43b8: 00379693 slli a3,a5,0x3 + 43bc: 96ba add a3,a3,a4 + 43be: 2785 addiw a5,a5,1 + 43c0: e688 sd a0,8(a3) + 43c2: c35c sw a5,4(a4) + return 0; + 43c4: 4501 li a0,0 + 43c6: 8082 ret + return -1; + 43c8: 557d li a0,-1 +} + 43ca: 8082 ret + +00000000000043cc : +{ + 43cc: 1101 addi sp,sp,-32 + 43ce: e822 sd s0,16(sp) + while (__atexit_func_count > 0) + 43d0: 00003417 auipc s0,0x3 + 43d4: 2b040413 addi s0,s0,688 # 7680 + 43d8: 405c lw a5,4(s0) +{ + 43da: e426 sd s1,8(sp) + 43dc: ec06 sd ra,24(sp) + 43de: 84aa mv s1,a0 + while (__atexit_func_count > 0) + 43e0: 00f05d63 blez a5,43fa + (__atexit_funcs[--__atexit_func_count])(); + 43e4: fff7871b addiw a4,a5,-1 + 43e8: 87ba mv a5,a4 + 43ea: 070e slli a4,a4,0x3 + 43ec: 9722 add a4,a4,s0 + 43ee: 6718 ld a4,8(a4) + 43f0: c05c sw a5,4(s0) + 43f2: 9702 jalr a4 + while (__atexit_func_count > 0) + 43f4: 405c lw a5,4(s0) + 43f6: fef047e3 bgtz a5,43e4 + sys_exit(status); + 43fa: 8526 mv a0,s1 + 43fc: c8bfb0ef jal 86 + while (1) + 4400: a001 j 4400 + +0000000000004402 : +{ + 4402: 1141 addi sp,sp,-16 + exit(127); + 4404: 07f00513 li a0,127 +{ + 4408: e406 sd ra,8(sp) + exit(127); + 440a: fc3ff0ef jal 43cc + +000000000000440e : +} + 440e: 4501 li a0,0 + 4410: 8082 ret + +0000000000004412 : +} + 4412: 557d li a0,-1 + 4414: 8082 ret + +0000000000004416 : + if (!ptr) + 4416: c121 beqz a0,4456 + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 4418: 00003617 auipc a2,0x3 + 441c: 26860613 addi a2,a2,616 # 7680 + 4420: 10863783 ld a5,264(a2) + bp = (header_t *)ptr - 1; + 4424: ff050693 addi a3,a0,-16 + if (p >= p->next && (bp > p || bp < p->next)) + 4428: 6798 ld a4,8(a5) + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 442a: 02d7f763 bgeu a5,a3,4458 + 442e: 00e6e463 bltu a3,a4,4436 + if (p >= p->next && (bp > p || bp < p->next)) + 4432: 02e7e763 bltu a5,a4,4460 + if ((char *)bp + bp->size == (char *)p->next) + 4436: ff053583 ld a1,-16(a0) + 443a: 00b68833 add a6,a3,a1 + 443e: 03070363 beq a4,a6,4464 + if ((char *)p + p->size == (char *)bp) + 4442: 638c ld a1,0(a5) + 4444: fee53c23 sd a4,-8(a0) + 4448: 00b78833 add a6,a5,a1 + 444c: 03068963 beq a3,a6,447e + 4450: e794 sd a3,8(a5) + freep = p; + 4452: 10f63423 sd a5,264(a2) +} + 4456: 8082 ret + if (p >= p->next && (bp > p || bp < p->next)) + 4458: 00e7e463 bltu a5,a4,4460 + 445c: fce6ede3 bltu a3,a4,4436 +{ + 4460: 87ba mv a5,a4 + 4462: b7d9 j 4428 + bp->size += p->next->size; + 4464: 00073803 ld a6,0(a4) + bp->next = p->next->next; + 4468: 6718 ld a4,8(a4) + bp->size += p->next->size; + 446a: 95c2 add a1,a1,a6 + 446c: feb53823 sd a1,-16(a0) + if ((char *)p + p->size == (char *)bp) + 4470: 638c ld a1,0(a5) + 4472: fee53c23 sd a4,-8(a0) + 4476: 00b78833 add a6,a5,a1 + 447a: fd069be3 bne a3,a6,4450 + p->size += bp->size; + 447e: ff053503 ld a0,-16(a0) + p->next = bp->next; + 4482: 86ba mv a3,a4 + p->size += bp->size; + 4484: 00b50733 add a4,a0,a1 + 4488: e398 sd a4,0(a5) + p->next = bp->next; + 448a: b7d9 j 4450 + +000000000000448c : + if (size == 0) + 448c: c169 beqz a0,454e +{ + 448e: 7179 addi sp,sp,-48 + 4490: ec26 sd s1,24(sp) + if ((prevp = freep) == NULL) + 4492: 00003497 auipc s1,0x3 + 4496: 1ee48493 addi s1,s1,494 # 7680 + 449a: 1084b783 ld a5,264(s1) +{ + 449e: f022 sd s0,32(sp) + size = ALIGN(size + sizeof(header_t)); + 44a0: 057d addi a0,a0,31 +{ + 44a2: f406 sd ra,40(sp) + size = ALIGN(size + sizeof(header_t)); + 44a4: ff057413 andi s0,a0,-16 + if ((prevp = freep) == NULL) + 44a8: c3d1 beqz a5,452c + for (p = prevp->next;; prevp = p, p = p->next) + 44aa: 6788 ld a0,8(a5) + if (p->size >= size) + 44ac: 6118 ld a4,0(a0) + 44ae: 06877163 bgeu a4,s0,4510 + 44b2: e44e sd s3,8(sp) + 44b4: e052 sd s4,0(sp) + 44b6: e84a sd s2,16(sp) + if (nu < 4096) + 44b8: 6a05 lui s4,0x1 + if (cp == (void *)-1) + 44ba: 59fd li s3,-1 + 44bc: a029 j 44c6 + for (p = prevp->next;; prevp = p, p = p->next) + 44be: 6788 ld a0,8(a5) + if (p->size >= size) + 44c0: 6118 ld a4,0(a0) + 44c2: 04877463 bgeu a4,s0,450a + if (p == freep) + 44c6: 1084b703 ld a4,264(s1) + 44ca: 87aa mv a5,a0 + 44cc: fee519e3 bne a0,a4,44be + if (nu < 4096) + 44d0: 8922 mv s2,s0 + 44d2: 01447363 bgeu s0,s4,44d8 + 44d6: 6905 lui s2,0x1 + cp = (char *)sbrk(nu); + 44d8: 854a mv a0,s2 + 44da: c3dfb0ef jal 116 + 44de: 87aa mv a5,a0 + free((void *)(up + 1)); + 44e0: 0541 addi a0,a0,16 + if (cp == (void *)-1) + 44e2: 01378963 beq a5,s3,44f4 + up->size = nu; + 44e6: 0127b023 sd s2,0(a5) + free((void *)(up + 1)); + 44ea: f2dff0ef jal 4416 + return freep; + 44ee: 1084b783 ld a5,264(s1) + if ((p = morecore(size)) == NULL) + 44f2: f7f1 bnez a5,44be +} + 44f4: 70a2 ld ra,40(sp) + 44f6: 7402 ld s0,32(sp) + errno = ENOMEM; + 44f8: 47b1 li a5,12 + 44fa: c09c sw a5,0(s1) + return NULL; + 44fc: 6942 ld s2,16(sp) + 44fe: 69a2 ld s3,8(sp) + 4500: 6a02 ld s4,0(sp) +} + 4502: 64e2 ld s1,24(sp) + return NULL; + 4504: 4501 li a0,0 +} + 4506: 6145 addi sp,sp,48 + 4508: 8082 ret + 450a: 6942 ld s2,16(sp) + 450c: 69a2 ld s3,8(sp) + 450e: 6a02 ld s4,0(sp) + if (p->size == size) + 4510: 02e40c63 beq s0,a4,4548 + p->size -= size; + 4514: 8f01 sub a4,a4,s0 + 4516: e118 sd a4,0(a0) + p = (header_t *)((char *)p + p->size); + 4518: 953a add a0,a0,a4 + p->size = size; + 451a: e100 sd s0,0(a0) +} + 451c: 70a2 ld ra,40(sp) + 451e: 7402 ld s0,32(sp) + freep = prevp; + 4520: 10f4b423 sd a5,264(s1) + return (void *)(p + 1); + 4524: 0541 addi a0,a0,16 +} + 4526: 64e2 ld s1,24(sp) + 4528: 6145 addi sp,sp,48 + 452a: 8082 ret + base.next = freep = prevp = &base; + 452c: 00003517 auipc a0,0x3 + 4530: 26450513 addi a0,a0,612 # 7790 + 4534: 10a4b423 sd a0,264(s1) + 4538: 10a4bc23 sd a0,280(s1) + base.size = 0; + 453c: 00003797 auipc a5,0x3 + 4540: 2407ba23 sd zero,596(a5) # 7790 + if (p->size >= size) + 4544: f43d bnez s0,44b2 + base.next = freep = prevp = &base; + 4546: 87aa mv a5,a0 + prevp->next = p->next; + 4548: 6518 ld a4,8(a0) + 454a: e798 sd a4,8(a5) + 454c: bfc1 j 451c + return NULL; + 454e: 4501 li a0,0 +} + 4550: 8082 ret + +0000000000004552 : + if (__builtin_mul_overflow(nmemb, size, &total)) + 4552: 02b537b3 mulhu a5,a0,a1 +{ + 4556: 1101 addi sp,sp,-32 + 4558: e822 sd s0,16(sp) + 455a: ec06 sd ra,24(sp) + 455c: e426 sd s1,8(sp) + if (__builtin_mul_overflow(nmemb, size, &total)) + 455e: 02b50433 mul s0,a0,a1 + 4562: e385 bnez a5,4582 + void *p = malloc(total); + 4564: 8522 mv a0,s0 + 4566: f27ff0ef jal 448c + 456a: 84aa mv s1,a0 + if (p) + 456c: c509 beqz a0,4576 + memset(p, 0, total); + 456e: 8622 mv a2,s0 + 4570: 4581 li a1,0 + 4572: 524000ef jal 4a96 +} + 4576: 60e2 ld ra,24(sp) + 4578: 6442 ld s0,16(sp) + 457a: 8526 mv a0,s1 + 457c: 64a2 ld s1,8(sp) + 457e: 6105 addi sp,sp,32 + 4580: 8082 ret + 4582: 60e2 ld ra,24(sp) + 4584: 6442 ld s0,16(sp) + errno = ENOMEM; + 4586: 47b1 li a5,12 + return NULL; + 4588: 4481 li s1,0 + errno = ENOMEM; + 458a: 00003717 auipc a4,0x3 + 458e: 0ef72b23 sw a5,246(a4) # 7680 +} + 4592: 8526 mv a0,s1 + 4594: 64a2 ld s1,8(sp) + 4596: 6105 addi sp,sp,32 + 4598: 8082 ret + +000000000000459a : + if (!ptr) + 459a: c929 beqz a0,45ec +{ + 459c: 1101 addi sp,sp,-32 + 459e: ec06 sd ra,24(sp) + 45a0: e426 sd s1,8(sp) + if (size == 0) + 45a2: c5b9 beqz a1,45f0 + if (bp->size >= new_size) + 45a4: ff053703 ld a4,-16(a0) + size_t new_size = ALIGN(size + sizeof(header_t)); + 45a8: 01f58793 addi a5,a1,31 + 45ac: e822 sd s0,16(sp) + 45ae: 9bc1 andi a5,a5,-16 + 45b0: 842a mv s0,a0 + return ptr; + 45b2: 84aa mv s1,a0 + if (bp->size >= new_size) + 45b4: 00f76863 bltu a4,a5,45c4 + 45b8: 6442 ld s0,16(sp) +} + 45ba: 60e2 ld ra,24(sp) + 45bc: 8526 mv a0,s1 + 45be: 64a2 ld s1,8(sp) + 45c0: 6105 addi sp,sp,32 + 45c2: 8082 ret + void *new_ptr = malloc(size); + 45c4: 852e mv a0,a1 + 45c6: ec7ff0ef jal 448c + 45ca: 84aa mv s1,a0 + if (!new_ptr) + 45cc: d575 beqz a0,45b8 + memcpy(new_ptr, ptr, bp->size - sizeof(header_t)); + 45ce: ff043603 ld a2,-16(s0) + 45d2: 85a2 mv a1,s0 + 45d4: 1641 addi a2,a2,-16 + 45d6: 514000ef jal 4aea + free(ptr); + 45da: 8522 mv a0,s0 + 45dc: e3bff0ef jal 4416 +} + 45e0: 60e2 ld ra,24(sp) + free(ptr); + 45e2: 6442 ld s0,16(sp) +} + 45e4: 8526 mv a0,s1 + 45e6: 64a2 ld s1,8(sp) + 45e8: 6105 addi sp,sp,32 + 45ea: 8082 ret + return malloc(size); + 45ec: 852e mv a0,a1 + 45ee: bd79 j 448c + free(ptr); + 45f0: e27ff0ef jal 4416 + return NULL; + 45f4: 4481 li s1,0 + 45f6: b7d1 j 45ba + +00000000000045f8 : + if (base < 0 || base == 1 || base > 36) + 45f8: 02400813 li a6,36 +{ + 45fc: 86aa mv a3,a0 + 45fe: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 4600: 00c86663 bltu a6,a2,460c + 4604: 4805 li a6,1 + 4606: 01060363 beq a2,a6,460c + 460a: b939 j 4228 + if (endptr) + 460c: c311 beqz a4,4610 + *endptr = (char *)nptr; + 460e: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 4610: 00003797 auipc a5,0x3 + 4614: 0607a823 sw zero,112(a5) # 7680 +} + 4618: 4501 li a0,0 + 461a: 8082 ret + +000000000000461c : + +long long strtoll(const char *nptr, char **endptr, int base) +{ + 461c: 1141 addi sp,sp,-16 + 461e: e406 sd ra,8(sp) + 4620: e022 sd s0,0(sp) + const char *s = nptr; + 4622: 86aa mv a3,a0 + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 4624: 02000813 li a6,32 + 4628: 4891 li a7,4 + unsigned long long acc; + int c, neg = 0; + + do + { + c = *s++; + 462a: 0006c783 lbu a5,0(a3) + 462e: 0685 addi a3,a3,1 + 4630: ff77871b addiw a4,a5,-9 + 4634: 0ff77713 zext.b a4,a4 + 4638: 0007841b sext.w s0,a5 + 463c: ff0787e3 beq a5,a6,462a + 4640: fee8f5e3 bgeu a7,a4,462a + if (base < 0 || base == 1 || base > 36) + 4644: 02400793 li a5,36 + 4648: 02c7ec63 bltu a5,a2,4680 + 464c: 4785 li a5,1 + 464e: 02f60963 beq a2,a5,4680 + 4652: bd7ff0ef jal 4228 + if (c == '-') + neg = 1; + + acc = strtoull(nptr, endptr, base); + + if (errno == ERANGE && acc == ULLONG_MAX) + 4656: 00003797 auipc a5,0x3 + 465a: 02a78793 addi a5,a5,42 # 7680 + 465e: 4394 lw a3,0(a5) + 4660: 02200713 li a4,34 + 4664: 04e68363 beq a3,a4,46aa + return neg ? LLONG_MIN : LLONG_MAX; + + if (!neg && acc > (unsigned long long)LLONG_MAX) + 4668: 02d00713 li a4,45 + 466c: 02e40563 beq s0,a4,4696 + 4670: 00055f63 bgez a0,468e + { + errno = ERANGE; + 4674: 02200713 li a4,34 + 4678: c398 sw a4,0(a5) + return neg ? LLONG_MIN : LLONG_MAX; + 467a: 557d li a0,-1 + 467c: 8105 srli a0,a0,0x1 + 467e: a801 j 468e + if (endptr) + 4680: c191 beqz a1,4684 + *endptr = (char *)nptr; + 4682: e188 sd a0,0(a1) + errno = 0; /* EINVAL */ + 4684: 00003797 auipc a5,0x3 + 4688: fe07ae23 sw zero,-4(a5) # 7680 + { + errno = ERANGE; + return LLONG_MIN; + } + + return neg ? -(long long)acc : (long long)acc; + 468c: 4501 li a0,0 +} + 468e: 60a2 ld ra,8(sp) + 4690: 6402 ld s0,0(sp) + 4692: 0141 addi sp,sp,16 + 4694: 8082 ret + if (neg && acc > (unsigned long long)LLONG_MAX + 1) + 4696: 577d li a4,-1 + 4698: 177e slli a4,a4,0x3f + 469a: 02a76263 bltu a4,a0,46be +} + 469e: 60a2 ld ra,8(sp) + 46a0: 6402 ld s0,0(sp) + return neg ? -(long long)acc : (long long)acc; + 46a2: 40a00533 neg a0,a0 +} + 46a6: 0141 addi sp,sp,16 + 46a8: 8082 ret + if (errno == ERANGE && acc == ULLONG_MAX) + 46aa: 577d li a4,-1 + 46ac: fae51ee3 bne a0,a4,4668 + return neg ? LLONG_MIN : LLONG_MAX; + 46b0: 02d00793 li a5,45 + 46b4: fcf413e3 bne s0,a5,467a + return LLONG_MIN; + 46b8: 557d li a0,-1 + 46ba: 157e slli a0,a0,0x3f + 46bc: bfc9 j 468e + errno = ERANGE; + 46be: 02200713 li a4,34 + 46c2: c398 sw a4,0(a5) + return LLONG_MIN; + 46c4: bfd5 j 46b8 + +00000000000046c6 : + if (base < 0 || base == 1 || base > 36) + 46c6: 02400813 li a6,36 + +unsigned long strtoul(const char *nptr, char **endptr, int base) +{ + 46ca: 86aa mv a3,a0 + 46cc: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 46ce: 00c86663 bltu a6,a2,46da + 46d2: 4805 li a6,1 + 46d4: 01060363 beq a2,a6,46da + 46d8: be81 j 4228 + if (endptr) + 46da: c311 beqz a4,46de + *endptr = (char *)nptr; + 46dc: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 46de: 00003797 auipc a5,0x3 + 46e2: fa07a123 sw zero,-94(a5) # 7680 + { + errno = ERANGE; + return ULONG_MAX; + } + return (unsigned long)ret; +} + 46e6: 4501 li a0,0 + 46e8: 8082 ret + +00000000000046ea : + +long strtol(const char *nptr, char **endptr, int base) +{ + long long ret = strtoll(nptr, endptr, base); + 46ea: bf0d j 461c + +00000000000046ec : + return LONG_MIN; + } + return (long)ret; +} + +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 46ec: 1141 addi sp,sp,-16 + long long ret = strtoll(nptr, endptr, base); + 46ee: 4629 li a2,10 + 46f0: 4581 li a1,0 +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 46f2: e406 sd ra,8(sp) + long long ret = strtoll(nptr, endptr, base); + 46f4: f29ff0ef jal 461c +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 46f8: 60a2 ld ra,8(sp) + 46fa: 2501 sext.w a0,a0 + 46fc: 0141 addi sp,sp,16 + 46fe: 8082 ret + +0000000000004700 : + long long ret = strtoll(nptr, endptr, base); + 4700: 4629 li a2,10 + 4702: 4581 li a1,0 + 4704: bf21 j 461c + +0000000000004706 : +long atol(const char *nptr) { return strtol(nptr, NULL, 10); } +long long atoll(const char *nptr) { return strtoll(nptr, NULL, 10); } + 4706: 4629 li a2,10 + 4708: 4581 li a1,0 + 470a: bf09 j 461c + +000000000000470c : + 470c: 02000693 li a3,32 + 4710: 4611 li a2,4 +{ + double val = 0.0; + int sign = 1; + const char *s = nptr; + + while (isspace(*s)) + 4712: 00054783 lbu a5,0(a0) + 4716: ff77871b addiw a4,a5,-9 + 471a: 0ff77713 zext.b a4,a4 + 471e: 06d78263 beq a5,a3,4782 + 4722: 06e67063 bgeu a2,a4,4782 + s++; + if (*s == '-') + 4726: 02d00713 li a4,45 + 472a: 08e78e63 beq a5,a4,47c6 + { + sign = -1; + s++; + } + else if (*s == '+') + 472e: 02b00713 li a4,43 + 4732: 0ae78263 beq a5,a4,47d6 + 4736: 00001717 auipc a4,0x1 + 473a: 06273507 fld fa0,98(a4) # 5798 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 473e: fd07861b addiw a2,a5,-48 + s++; + + while (isdigit(*s)) + 4742: 46a5 li a3,9 + 4744: f20007d3 fmv.d.x fa5,zero + 4748: 8732 mv a4,a2 + 474a: 02c6e363 bltu a3,a2,4770 + 474e: 00001797 auipc a5,0x1 + 4752: 0527b687 fld fa3,82(a5) # 57a0 + 4756: 4625 li a2,9 + 4758: 00154783 lbu a5,1(a0) + { + val = val * 10.0 + (*s - '0'); + 475c: d2070753 fcvt.d.w fa4,a4 + s++; + 4760: 0505 addi a0,a0,1 + 4762: fd07869b addiw a3,a5,-48 + val = val * 10.0 + (*s - '0'); + 4766: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 + 476a: 8736 mv a4,a3 + while (isdigit(*s)) + 476c: fed676e3 bgeu a2,a3,4758 + } + if (*s == '.') + 4770: 02e00713 li a4,46 + 4774: 00e78963 beq a5,a4,4786 + val += (*s - '0') * factor; + s++; + } + } + + if (endptr) + 4778: c191 beqz a1,477c + *endptr = (char *)s; + 477a: e188 sd a0,0(a1) + return val * sign; +} + 477c: 12a7f553 fmul.d fa0,fa5,fa0 + 4780: 8082 ret + s++; + 4782: 0505 addi a0,a0,1 + 4784: b779 j 4712 + while (isdigit(*s)) + 4786: 00154703 lbu a4,1(a0) + 478a: 46a5 li a3,9 + s++; + 478c: 0505 addi a0,a0,1 + 478e: fd07071b addiw a4,a4,-48 + 4792: 87ba mv a5,a4 + while (isdigit(*s)) + 4794: fee6e2e3 bltu a3,a4,4778 + double factor = 1.0; + 4798: 00001717 auipc a4,0x1 + 479c: 00073707 fld fa4,0(a4) # 5798 + 47a0: 00001717 auipc a4,0x1 + 47a4: 01873607 fld fa2,24(a4) # 57b8 + factor *= 0.1; + 47a8: 12c77753 fmul.d fa4,fa4,fa2 + while (isdigit(*s)) + 47ac: 00154703 lbu a4,1(a0) + val += (*s - '0') * factor; + 47b0: d20786d3 fcvt.d.w fa3,a5 + s++; + 47b4: 0505 addi a0,a0,1 + 47b6: fd07071b addiw a4,a4,-48 + 47ba: 87ba mv a5,a4 + val += (*s - '0') * factor; + 47bc: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 + while (isdigit(*s)) + 47c0: fee6f4e3 bgeu a3,a4,47a8 + 47c4: bf55 j 4778 + while (isdigit(*s)) + 47c6: 00154783 lbu a5,1(a0) + 47ca: 00001717 auipc a4,0x1 + 47ce: fc673507 fld fa0,-58(a4) # 5790 + s++; + 47d2: 0505 addi a0,a0,1 + 47d4: b7ad j 473e + while (isdigit(*s)) + 47d6: 00154783 lbu a5,1(a0) + 47da: 00001717 auipc a4,0x1 + 47de: fbe73507 fld fa0,-66(a4) # 5798 + s++; + 47e2: 0505 addi a0,a0,1 + 47e4: bfa9 j 473e + +00000000000047e6 : + +double atof(const char *nptr) { return strtod(nptr, NULL); } + 47e6: 4581 li a1,0 + 47e8: b715 j 470c + +00000000000047ea : +float strtof(const char *nptr, char **endptr) { return (float)strtod(nptr, endptr); } + 47ea: 1141 addi sp,sp,-16 + 47ec: e406 sd ra,8(sp) + 47ee: f1fff0ef jal 470c + 47f2: 60a2 ld ra,8(sp) + 47f4: 40157553 fcvt.s.d fa0,fa0 + 47f8: 0141 addi sp,sp,16 + 47fa: 8082 ret + +00000000000047fc : + } +} + +void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + if (nmemb < 2 || size == 0) + 47fc: 4785 li a5,1 + 47fe: 0cb7fd63 bgeu a5,a1,48d8 +{ + 4802: 715d addi sp,sp,-80 + 4804: f44e sd s3,40(sp) + 4806: e486 sd ra,72(sp) + 4808: 89b2 mv s3,a2 + if (nmemb < 2 || size == 0) + 480a: c279 beqz a2,48d0 + 480c: e85a sd s6,16(sp) + 480e: 8b2e mv s6,a1 + return; + + char *base_ptr = (char *)base; + char *pivot = base_ptr + (nmemb - 1) * size; + 4810: 1b7d addi s6,s6,-1 + 4812: fc26 sd s1,56(sp) + 4814: 033b04b3 mul s1,s6,s3 + 4818: ec56 sd s5,24(sp) + 481a: 8aaa mv s5,a0 + 481c: f052 sd s4,32(sp) + 481e: e45e sd s7,8(sp) + 4820: e0a2 sd s0,64(sp) + 4822: f84a sd s2,48(sp) + 4824: 8a36 mv s4,a3 + if (nmemb < 2 || size == 0) + 4826: 4b85 li s7,1 + char *pivot = base_ptr + (nmemb - 1) * size; + 4828: 94d6 add s1,s1,s5 + char *i = base_ptr; + char *j = base_ptr; + + /* Partition */ + for (; j < pivot; j += size) + 482a: 069af763 bgeu s5,s1,4898 + char *j = base_ptr; + 482e: 8956 mv s2,s5 + char *i = base_ptr; + 4830: 8456 mv s0,s5 + 4832: a021 j 483a + for (; j < pivot; j += size) + 4834: 994e add s2,s2,s3 + 4836: 00997f63 bgeu s2,s1,4854 + { + if (compar(j, pivot) < 0) + 483a: 85a6 mv a1,s1 + 483c: 854a mv a0,s2 + 483e: 9a02 jalr s4 + 4840: fe055ae3 bgez a0,4834 + { + if (i != j) + 4844: 05241d63 bne s0,s2,489e + 4848: 01390633 add a2,s2,s3 + swap_bytes(i, j, size); + i += size; + 484c: 8432 mv s0,a2 + for (; j < pivot; j += size) + 484e: 994e add s2,s2,s3 + 4850: fe9965e3 bltu s2,s1,483a + } + } + swap_bytes(i, pivot, size); + + /* Recurse */ + size_t left_count = (i - base_ptr) / size; + 4854: 415405b3 sub a1,s0,s5 + 4858: 0335d5b3 divu a1,a1,s3 + qsort(base, left_count, size, compar); + qsort(i + size, nmemb - left_count - 1, size, compar); + 485c: 40bb0b33 sub s6,s6,a1 + while (size--) + 4860: 013406b3 add a3,s0,s3 + *a++ = *b; + 4864: 0004c703 lbu a4,0(s1) + temp = *a; + 4868: 00044783 lbu a5,0(s0) + *b++ = temp; + 486c: 0485 addi s1,s1,1 + *a++ = *b; + 486e: 0405 addi s0,s0,1 + 4870: fee40fa3 sb a4,-1(s0) + *b++ = temp; + 4874: fef48fa3 sb a5,-1(s1) + while (size--) + 4878: fed416e3 bne s0,a3,4864 + qsort(base, left_count, size, compar); + 487c: 86d2 mv a3,s4 + 487e: 864e mv a2,s3 + 4880: 8556 mv a0,s5 + 4882: f7bff0ef jal 47fc + if (nmemb < 2 || size == 0) + 4886: 036bfe63 bgeu s7,s6,48c2 + char *pivot = base_ptr + (nmemb - 1) * size; + 488a: 1b7d addi s6,s6,-1 + 488c: 033b04b3 mul s1,s6,s3 + 4890: 8aa2 mv s5,s0 + 4892: 94d6 add s1,s1,s5 + for (; j < pivot; j += size) + 4894: f89aede3 bltu s5,s1,482e + char *i = base_ptr; + 4898: 8456 mv s0,s5 + for (; j < pivot; j += size) + 489a: 4581 li a1,0 + 489c: b7d1 j 4860 + 489e: 01340633 add a2,s0,s3 + if (i != j) + 48a2: 874a mv a4,s2 + 48a4: 87a2 mv a5,s0 + *a++ = *b; + 48a6: 00074683 lbu a3,0(a4) + temp = *a; + 48aa: 0007c803 lbu a6,0(a5) + *b++ = temp; + 48ae: 0705 addi a4,a4,1 + *a++ = *b; + 48b0: 0785 addi a5,a5,1 + 48b2: fed78fa3 sb a3,-1(a5) + *b++ = temp; + 48b6: ff070fa3 sb a6,-1(a4) + while (size--) + 48ba: fec796e3 bne a5,a2,48a6 + i += size; + 48be: 8432 mv s0,a2 + 48c0: b779 j 484e + 48c2: 6406 ld s0,64(sp) + 48c4: 74e2 ld s1,56(sp) + 48c6: 7942 ld s2,48(sp) + 48c8: 7a02 ld s4,32(sp) + 48ca: 6ae2 ld s5,24(sp) + 48cc: 6b42 ld s6,16(sp) + 48ce: 6ba2 ld s7,8(sp) +} + 48d0: 60a6 ld ra,72(sp) + 48d2: 79a2 ld s3,40(sp) + 48d4: 6161 addi sp,sp,80 + 48d6: 8082 ret + 48d8: 8082 ret + +00000000000048da : + +void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + 48da: 715d addi sp,sp,-80 + 48dc: e486 sd ra,72(sp) + 48de: fc26 sd s1,56(sp) + size_t l = 0, u = nmemb; + while (l < u) + 48e0: c629 beqz a2,492a + 48e2: f84a sd s2,48(sp) + 48e4: f44e sd s3,40(sp) + 48e6: f052 sd s4,32(sp) + 48e8: ec56 sd s5,24(sp) + 48ea: e85a sd s6,16(sp) + 48ec: e45e sd s7,8(sp) + 48ee: e0a2 sd s0,64(sp) + 48f0: 8932 mv s2,a2 + 48f2: 8a2a mv s4,a0 + 48f4: 8aae mv s5,a1 + 48f6: 8b36 mv s6,a3 + 48f8: 8bba mv s7,a4 + size_t l = 0, u = nmemb; + 48fa: 4981 li s3,0 + { + size_t idx = (l + u) / 2; + 48fc: 01298433 add s0,s3,s2 + 4900: 8005 srli s0,s0,0x1 + const void *p = (void *)((const char *)base + (idx * size)); + 4902: 036404b3 mul s1,s0,s6 + int cmp = compar(key, p); + 4906: 8552 mv a0,s4 + const void *p = (void *)((const char *)base + (idx * size)); + 4908: 94d6 add s1,s1,s5 + int cmp = compar(key, p); + 490a: 85a6 mv a1,s1 + 490c: 9b82 jalr s7 + if (cmp < 0) + 490e: 02054463 bltz a0,4936 + u = idx; + else if (cmp > 0) + 4912: c515 beqz a0,493e + l = idx + 1; + 4914: 00140993 addi s3,s0,1 + while (l < u) + 4918: ff29e2e3 bltu s3,s2,48fc + 491c: 6406 ld s0,64(sp) + 491e: 7942 ld s2,48(sp) + 4920: 79a2 ld s3,40(sp) + 4922: 7a02 ld s4,32(sp) + 4924: 6ae2 ld s5,24(sp) + 4926: 6b42 ld s6,16(sp) + 4928: 6ba2 ld s7,8(sp) + else + return (void *)p; + } + return NULL; +} + 492a: 60a6 ld ra,72(sp) + return NULL; + 492c: 4481 li s1,0 +} + 492e: 8526 mv a0,s1 + 4930: 74e2 ld s1,56(sp) + 4932: 6161 addi sp,sp,80 + 4934: 8082 ret + u = idx; + 4936: 8922 mv s2,s0 + while (l < u) + 4938: fd29e2e3 bltu s3,s2,48fc + 493c: b7c5 j 491c + 493e: 6406 ld s0,64(sp) +} + 4940: 60a6 ld ra,72(sp) + 4942: 7942 ld s2,48(sp) + 4944: 79a2 ld s3,40(sp) + 4946: 7a02 ld s4,32(sp) + 4948: 6ae2 ld s5,24(sp) + 494a: 6b42 ld s6,16(sp) + 494c: 6ba2 ld s7,8(sp) + 494e: 8526 mv a0,s1 + 4950: 74e2 ld s1,56(sp) + 4952: 6161 addi sp,sp,80 + 4954: 8082 ret + +0000000000004956 : + +/* Math & Mics */ + +int abs(int j) { return (j < 0) ? -j : j; } + 4956: 41f5579b sraiw a5,a0,0x1f + 495a: 8d3d xor a0,a0,a5 + 495c: 9d1d subw a0,a0,a5 + 495e: 8082 ret + +0000000000004960 : +long labs(long j) { return (j < 0) ? -j : j; } + 4960: 43f55793 srai a5,a0,0x3f + 4964: 8d3d xor a0,a0,a5 + 4966: 8d1d sub a0,a0,a5 + 4968: 8082 ret + +000000000000496a : +long long llabs(long long j) { return (j < 0) ? -j : j; } + 496a: 43f55793 srai a5,a0,0x3f + 496e: 8d3d xor a0,a0,a5 + 4970: 8d1d sub a0,a0,a5 + 4972: 8082 ret + +0000000000004974
: + +div_t div(int numer, int denom) +{ + div_t res = {numer / denom, numer % denom}; + 4974: 02b547bb divw a5,a0,a1 +{ + 4978: 1141 addi sp,sp,-16 + return res; +} + 497a: 0141 addi sp,sp,16 + div_t res = {numer / denom, numer % denom}; + 497c: 02b5653b remw a0,a0,a1 + return res; + 4980: 1782 slli a5,a5,0x20 + 4982: 9381 srli a5,a5,0x20 + 4984: 1502 slli a0,a0,0x20 +} + 4986: 8d5d or a0,a0,a5 + 4988: 8082 ret + +000000000000498a : +ldiv_t ldiv(long numer, long denom) +{ + 498a: 1141 addi sp,sp,-16 + 498c: 87aa mv a5,a0 + ldiv_t res = {numer / denom, numer % denom}; + return res; +} + 498e: 02b54533 div a0,a0,a1 + 4992: 0141 addi sp,sp,16 + 4994: 02b7e5b3 rem a1,a5,a1 + 4998: 8082 ret + +000000000000499a : +lldiv_t lldiv(long long numer, long long denom) +{ + 499a: 1141 addi sp,sp,-16 + 499c: 87aa mv a5,a0 + lldiv_t res = {numer / denom, numer % denom}; + return res; +} + 499e: 02b54533 div a0,a0,a1 + 49a2: 0141 addi sp,sp,16 + 49a4: 02b7e5b3 rem a1,a5,a1 + 49a8: 8082 ret + +00000000000049aa : + +static unsigned long next = 1; +int rand(void) +{ + next = next * 1103515245 + 12345; + 49aa: 00003697 auipc a3,0x3 + 49ae: c8e68693 addi a3,a3,-882 # 7638 + 49b2: 629c ld a5,0(a3) + 49b4: 41c65737 lui a4,0x41c65 + 49b8: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5d6b5> + 49bc: 02e787b3 mul a5,a5,a4 + 49c0: 670d lui a4,0x3 + 49c2: 03970713 addi a4,a4,57 # 3039 <_vprintf_core.constprop.0.isra.0+0x1f> + 49c6: 97ba add a5,a5,a4 + return (unsigned int)(next / 65536) % 32768; + 49c8: 02179513 slli a0,a5,0x21 + next = next * 1103515245 + 12345; + 49cc: e29c sd a5,0(a3) +} + 49ce: 9145 srli a0,a0,0x31 + 49d0: 8082 ret + +00000000000049d2 : +void srand(unsigned int seed) { next = seed; } + 49d2: 1502 slli a0,a0,0x20 + 49d4: 9101 srli a0,a0,0x20 + 49d6: 00003797 auipc a5,0x3 + 49da: c6a7b123 sd a0,-926(a5) # 7638 + 49de: 8082 ret + +00000000000049e0 : + +/* Stub */ +int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } + 49e0: c901 beqz a0,49f0 + 49e2: 00054783 lbu a5,0(a0) + 49e6: 4501 li a0,0 + 49e8: c789 beqz a5,49f2 + 49ea: 00b03533 snez a0,a1 + 49ee: 8082 ret + 49f0: 4501 li a0,0 + 49f2: 8082 ret + +00000000000049f4 : +int mbtowc(wchar_t *pwc, const char *s, size_t n) +{ + 49f4: 87aa mv a5,a0 + if (!s) + 49f6: cd81 beqz a1,4a0e + return 0; + if (n == 0) + return -1; + 49f8: 557d li a0,-1 + if (n == 0) + 49fa: ca19 beqz a2,4a10 + if (pwc) + 49fc: c781 beqz a5,4a04 + *pwc = (wchar_t)*s; + 49fe: 0005c703 lbu a4,0(a1) + 4a02: c398 sw a4,0(a5) + return (*s != 0); + 4a04: 0005c503 lbu a0,0(a1) + 4a08: 00a03533 snez a0,a0 + 4a0c: 8082 ret + return 0; + 4a0e: 4501 li a0,0 +} + 4a10: 8082 ret + +0000000000004a12 : +int wctomb(char *s, wchar_t wchar) +{ + if (!s) + 4a12: c509 beqz a0,4a1c + return 0; + *s = (char)wchar; + 4a14: 00b50023 sb a1,0(a0) + return 1; + 4a18: 4505 li a0,1 + 4a1a: 8082 ret + return 0; + 4a1c: 4501 li a0,0 +} + 4a1e: 8082 ret + +0000000000004a20 : +size_t mbstowcs(wchar_t *dest, const char *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4a20: 0005c703 lbu a4,0(a1) + 4a24: cb0d beqz a4,4a56 + 4a26: ca15 beqz a2,4a5a + 4a28: 86aa mv a3,a0 + size_t i = 0; + 4a2a: 4781 li a5,0 + 4a2c: a019 j 4a32 + while (src[i] && i < n) + 4a2e: 02f60263 beq a2,a5,4a52 + { + dest[i] = (wchar_t)src[i]; + i++; + 4a32: 0785 addi a5,a5,1 + dest[i] = (wchar_t)src[i]; + 4a34: c298 sw a4,0(a3) + while (src[i] && i < n) + 4a36: 00f58733 add a4,a1,a5 + 4a3a: 00074703 lbu a4,0(a4) + 4a3e: 0691 addi a3,a3,4 + 4a40: f77d bnez a4,4a2e + } + if (i < n) + 4a42: 00c7f763 bgeu a5,a2,4a50 + dest[i] = 0; + 4a46: 00279713 slli a4,a5,0x2 + 4a4a: 953a add a0,a0,a4 + 4a4c: 00052023 sw zero,0(a0) + size_t i = 0; + 4a50: 863e mv a2,a5 + 4a52: 8532 mv a0,a2 + 4a54: 8082 ret + 4a56: 4781 li a5,0 + 4a58: b7ed j 4a42 + 4a5a: 4501 li a0,0 + return i; +} + 4a5c: 8082 ret + +0000000000004a5e : +size_t wcstombs(char *dest, const wchar_t *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4a5e: 4198 lw a4,0(a1) + 4a60: c71d beqz a4,4a8e + 4a62: ca05 beqz a2,4a92 + 4a64: 0591 addi a1,a1,4 + size_t i = 0; + 4a66: 4781 li a5,0 + 4a68: a019 j 4a6e + while (src[i] && i < n) + 4a6a: 02f60063 beq a2,a5,4a8a + { + dest[i] = (char)src[i]; + 4a6e: 00f506b3 add a3,a0,a5 + 4a72: 00e68023 sb a4,0(a3) + while (src[i] && i < n) + 4a76: 4198 lw a4,0(a1) + i++; + 4a78: 0785 addi a5,a5,1 + while (src[i] && i < n) + 4a7a: 0591 addi a1,a1,4 + 4a7c: f77d bnez a4,4a6a + } + if (i < n) + 4a7e: 00c7f563 bgeu a5,a2,4a88 + dest[i] = 0; + 4a82: 953e add a0,a0,a5 + 4a84: 00050023 sb zero,0(a0) + size_t i = 0; + 4a88: 863e mv a2,a5 + 4a8a: 8532 mv a0,a2 + 4a8c: 8082 ret + 4a8e: 4781 li a5,0 + 4a90: b7fd j 4a7e + 4a92: 4501 li a0,0 + return i; + 4a94: 8082 ret + +0000000000004a96 : + +void *memset(void *dst, int c, size_t n) +{ + char *cdst = (char *)dst; + for (size_t i = 0; i < n; i++) + cdst[i] = (char)c; + 4a96: 0ff5f593 zext.b a1,a1 + 4a9a: 87aa mv a5,a0 + 4a9c: 00a60733 add a4,a2,a0 + for (size_t i = 0; i < n; i++) + 4aa0: c611 beqz a2,4aac + cdst[i] = (char)c; + 4aa2: 00b78023 sb a1,0(a5) + for (size_t i = 0; i < n; i++) + 4aa6: 0785 addi a5,a5,1 + 4aa8: fee79de3 bne a5,a4,4aa2 + return dst; +} + 4aac: 8082 ret + +0000000000004aae : + +void *memmove(void *vdst, const void *vsrc, size_t n) +{ + char *dst = (char *)vdst; + const char *src = (const char *)vsrc; + if (dst == src) + 4aae: 02b50d63 beq a0,a1,4ae8 + return vdst; + + if (src > dst) + 4ab2: 00b57e63 bgeu a0,a1,4ace + { + while (n--) + 4ab6: ca0d beqz a2,4ae8 + 4ab8: 962a add a2,a2,a0 + char *dst = (char *)vdst; + 4aba: 87aa mv a5,a0 + *dst++ = *src++; + 4abc: 0005c703 lbu a4,0(a1) + 4ac0: 0785 addi a5,a5,1 + 4ac2: 0585 addi a1,a1,1 + 4ac4: fee78fa3 sb a4,-1(a5) + while (n--) + 4ac8: fec79ae3 bne a5,a2,4abc + 4acc: 8082 ret + } + else + { + dst += n; + 4ace: 00c50733 add a4,a0,a2 + src += n; + 4ad2: 00c587b3 add a5,a1,a2 + while (n-- > 0) + 4ad6: ca09 beqz a2,4ae8 + *--dst = *--src; + 4ad8: fff7c683 lbu a3,-1(a5) + 4adc: 17fd addi a5,a5,-1 + 4ade: 177d addi a4,a4,-1 + 4ae0: 00d70023 sb a3,0(a4) + while (n-- > 0) + 4ae4: fef59ae3 bne a1,a5,4ad8 + } + return vdst; +} + 4ae8: 8082 ret + +0000000000004aea : + +void *memcpy(void *vdst, const void *vsrc, size_t n) +{ + return memmove(vdst, vsrc, n); + 4aea: b7d1 j 4aae + +0000000000004aec : + +int memcmp(const void *s1, const void *s2, size_t n) +{ + const unsigned char *p1 = (const unsigned char *)s1; + const unsigned char *p2 = (const unsigned char *)s2; + while (n--) + 4aec: c205 beqz a2,4b0c + 4aee: 962a add a2,a2,a0 + 4af0: a019 j 4af6 + 4af2: 00c50d63 beq a0,a2,4b0c + { + if (*p1 != *p2) + 4af6: 00054783 lbu a5,0(a0) + 4afa: 0005c703 lbu a4,0(a1) + return *p1 - *p2; + p1++; + 4afe: 0505 addi a0,a0,1 + p2++; + 4b00: 0585 addi a1,a1,1 + if (*p1 != *p2) + 4b02: fee788e3 beq a5,a4,4af2 + return *p1 - *p2; + 4b06: 40e7853b subw a0,a5,a4 + 4b0a: 8082 ret + } + return 0; + 4b0c: 4501 li a0,0 +} + 4b0e: 8082 ret + +0000000000004b10 : + +void *memchr(const void *s, int c, size_t n) +{ + const unsigned char *p = (const unsigned char *)s; + while (n--) + 4b10: ce09 beqz a2,4b2a + { + if (*p == (unsigned char)c) + 4b12: 0ff5f593 zext.b a1,a1 + 4b16: 962a add a2,a2,a0 + 4b18: a021 j 4b20 + return (void *)p; + p++; + 4b1a: 0505 addi a0,a0,1 + while (n--) + 4b1c: 00a60763 beq a2,a0,4b2a + if (*p == (unsigned char)c) + 4b20: 00054783 lbu a5,0(a0) + 4b24: feb79be3 bne a5,a1,4b1a + } + return NULL; +} + 4b28: 8082 ret + return NULL; + 4b2a: 4501 li a0,0 +} + 4b2c: 8082 ret + +0000000000004b2e : +/* String Manipulation Functions */ + +size_t strlen(const char *s) +{ + const char *p = s; + while (*p) + 4b2e: 00054783 lbu a5,0(a0) + 4b32: cb89 beqz a5,4b44 + const char *p = s; + 4b34: 87aa mv a5,a0 + while (*p) + 4b36: 0017c703 lbu a4,1(a5) + p++; + 4b3a: 0785 addi a5,a5,1 + while (*p) + 4b3c: ff6d bnez a4,4b36 + return (size_t)(p - s); + 4b3e: 40a78533 sub a0,a5,a0 + 4b42: 8082 ret + while (*p) + 4b44: 4501 li a0,0 +} + 4b46: 8082 ret + +0000000000004b48 : + +char *strcpy(char *dst, const char *src) +{ + char *os = dst; + while ((*dst++ = *src++) != 0) + 4b48: 87aa mv a5,a0 + 4b4a: 0005c703 lbu a4,0(a1) + 4b4e: 0785 addi a5,a5,1 + 4b50: 0585 addi a1,a1,1 + 4b52: fee78fa3 sb a4,-1(a5) + 4b56: fb75 bnez a4,4b4a + ; + return os; +} + 4b58: 8082 ret + +0000000000004b5a : +char *strncpy(char *dst, const char *src, size_t n) +{ + char *os = dst; + size_t i; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4b5a: 4781 li a5,0 + 4b5c: e619 bnez a2,4b6a + 4b5e: 8082 ret + dst[i] = src[i]; + 4b60: 00e68023 sb a4,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4b64: 0785 addi a5,a5,1 + 4b66: 02f60263 beq a2,a5,4b8a + 4b6a: 00f58733 add a4,a1,a5 + 4b6e: 00074703 lbu a4,0(a4) + dst[i] = src[i]; + 4b72: 00f506b3 add a3,a0,a5 + for (i = 0; i < n && src[i] != '\0'; i++) + 4b76: f76d bnez a4,4b60 + + for (; i < n; i++) + 4b78: 00c7f963 bgeu a5,a2,4b8a + 4b7c: 87b6 mv a5,a3 + 4b7e: 962a add a2,a2,a0 + dst[i] = '\0'; + 4b80: 00078023 sb zero,0(a5) + for (; i < n; i++) + 4b84: 0785 addi a5,a5,1 + 4b86: fec79de3 bne a5,a2,4b80 + + return os; +} + 4b8a: 8082 ret + +0000000000004b8c : + +char *strcat(char *dst, const char *src) +{ + char *os = dst; + while (*dst) + 4b8c: 00054783 lbu a5,0(a0) + 4b90: cf91 beqz a5,4bac + 4b92: 87aa mv a5,a0 + 4b94: 0017c703 lbu a4,1(a5) + dst++; + 4b98: 0785 addi a5,a5,1 + while (*dst) + 4b9a: ff6d bnez a4,4b94 + while ((*dst++ = *src++) != 0) + 4b9c: 0005c703 lbu a4,0(a1) + 4ba0: 0785 addi a5,a5,1 + 4ba2: 0585 addi a1,a1,1 + 4ba4: fee78fa3 sb a4,-1(a5) + 4ba8: fb75 bnez a4,4b9c + ; + return os; +} + 4baa: 8082 ret + while ((*dst++ = *src++) != 0) + 4bac: 0005c703 lbu a4,0(a1) + while (*dst) + 4bb0: 87aa mv a5,a0 + while ((*dst++ = *src++) != 0) + 4bb2: 0785 addi a5,a5,1 + 4bb4: fee78fa3 sb a4,-1(a5) + 4bb8: 0585 addi a1,a1,1 + 4bba: f36d bnez a4,4b9c + 4bbc: 8082 ret + +0000000000004bbe : + while (*p) + 4bbe: 00054783 lbu a5,0(a0) + const char *p = s; + 4bc2: 872a mv a4,a0 + while (*p) + 4bc4: c789 beqz a5,4bce + 4bc6: 00174783 lbu a5,1(a4) + p++; + 4bca: 0705 addi a4,a4,1 + while (*p) + 4bcc: ffed bnez a5,4bc6 + size_t dest_len = strlen(dst); + size_t i; + + dst += dest_len; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4bce: 86ba mv a3,a4 + 4bd0: 4781 li a5,0 + 4bd2: 88ba mv a7,a4 + 4bd4: ea01 bnez a2,4be4 + 4bd6: a839 j 4bf4 + dst[i] = src[i]; + 4bd8: 01068023 sb a6,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4bdc: 00188693 addi a3,a7,1 + 4be0: 00f60d63 beq a2,a5,4bfa + 4be4: 00f58833 add a6,a1,a5 + 4be8: 00084803 lbu a6,0(a6) + 4bec: 0785 addi a5,a5,1 + dst[i] = src[i]; + 4bee: 88b6 mv a7,a3 + for (i = 0; i < n && src[i] != '\0'; i++) + 4bf0: fe0814e3 bnez a6,4bd8 + + dst[i] = '\0'; + 4bf4: 00088023 sb zero,0(a7) + + return os; +} + 4bf8: 8082 ret + dst[i] = '\0'; + 4bfa: 00c708b3 add a7,a4,a2 + 4bfe: 00088023 sb zero,0(a7) +} + 4c02: 8082 ret + +0000000000004c04 : + +int strcmp(const char *p, const char *q) +{ + while (*p && *p == *q) + 4c04: 00054783 lbu a5,0(a0) + 4c08: e791 bnez a5,4c14 + 4c0a: a02d j 4c34 + 4c0c: 00054783 lbu a5,0(a0) + 4c10: cf89 beqz a5,4c2a + 4c12: 85b6 mv a1,a3 + 4c14: 0005c703 lbu a4,0(a1) + { + p++; + 4c18: 0505 addi a0,a0,1 + q++; + 4c1a: 00158693 addi a3,a1,1 + while (*p && *p == *q) + 4c1e: fef707e3 beq a4,a5,4c0c + } + return (int)((unsigned char)*p - (unsigned char)*q); + 4c22: 0007851b sext.w a0,a5 +} + 4c26: 9d19 subw a0,a0,a4 + 4c28: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4c2a: 0015c703 lbu a4,1(a1) + 4c2e: 4501 li a0,0 +} + 4c30: 9d19 subw a0,a0,a4 + 4c32: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4c34: 0005c703 lbu a4,0(a1) + 4c38: 4501 li a0,0 + 4c3a: b7f5 j 4c26 + +0000000000004c3c : + +int strncmp(const char *s1, const char *s2, size_t n) +{ + if (n == 0) + 4c3c: ca0d beqz a2,4c6e + return 0; + + while (n-- > 0 && *s1 && *s1 == *s2) + 4c3e: 00054783 lbu a5,0(a0) + 4c42: 167d addi a2,a2,-1 + 4c44: 00c506b3 add a3,a0,a2 + 4c48: eb89 bnez a5,4c5a + 4c4a: a80d j 4c7c + { + if (n == 0 || *s1 == '\0') + 4c4c: 00d50d63 beq a0,a3,4c66 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c50: 00154783 lbu a5,1(a0) + break; + s1++; + 4c54: 0505 addi a0,a0,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c56: cf91 beqz a5,4c72 + 4c58: 85b2 mv a1,a2 + 4c5a: 0005c703 lbu a4,0(a1) + s2++; + 4c5e: 00158613 addi a2,a1,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c62: fef705e3 beq a4,a5,4c4c + } + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4c66: 0007851b sext.w a0,a5 + 4c6a: 9d19 subw a0,a0,a4 + 4c6c: 8082 ret + return 0; + 4c6e: 4501 li a0,0 +} + 4c70: 8082 ret + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4c72: 0015c703 lbu a4,1(a1) + 4c76: 4501 li a0,0 + 4c78: 9d19 subw a0,a0,a4 + 4c7a: 8082 ret + 4c7c: 0005c703 lbu a4,0(a1) + 4c80: 4501 li a0,0 + 4c82: b7e5 j 4c6a + +0000000000004c84 : + +char *strchr(const char *s, int c) +{ + while (*s != (char)c) + 4c84: 0ff5f593 zext.b a1,a1 + 4c88: a019 j 4c8e + { + if (!*s++) + 4c8a: 0505 addi a0,a0,1 + 4c8c: c791 beqz a5,4c98 + while (*s != (char)c) + 4c8e: 00054783 lbu a5,0(a0) + 4c92: feb79ce3 bne a5,a1,4c8a + 4c96: 8082 ret + return NULL; + 4c98: 4501 li a0,0 + } + return (char *)s; +} + 4c9a: 8082 ret + +0000000000004c9c : + +char *strrchr(const char *s, int c) +{ + 4c9c: 87aa mv a5,a0 + const char *last = NULL; + do + { + if (*s == (char)c) + 4c9e: 0ff5f593 zext.b a1,a1 + const char *last = NULL; + 4ca2: 4501 li a0,0 + if (*s == (char)c) + 4ca4: 0007c703 lbu a4,0(a5) + 4ca8: 00e59363 bne a1,a4,4cae + last = s; + 4cac: 853e mv a0,a5 + } while (*s++); + 4cae: 0785 addi a5,a5,1 + 4cb0: fb75 bnez a4,4ca4 + + return (char *)last; +} + 4cb2: 8082 ret + +0000000000004cb4 : + while (*p) + 4cb4: 0005c883 lbu a7,0(a1) + 4cb8: 04088a63 beqz a7,4d0c + const char *p = s; + 4cbc: 87ae mv a5,a1 + while (*p) + 4cbe: 0017c703 lbu a4,1(a5) + p++; + 4cc2: 0785 addi a5,a5,1 + while (*p) + 4cc4: ff6d bnez a4,4cbe + return (size_t)(p - s); + 4cc6: 40b78833 sub a6,a5,a1 + + +char *strstr(const char *haystack, const char *needle) +{ + size_t n_len = strlen(needle); + if (n_len == 0) + 4cca: 04b78163 beq a5,a1,4d0c + return (char *)haystack; + + for (; *haystack; haystack++) + 4cce: 00054783 lbu a5,0(a0) + 4cd2: cf85 beqz a5,4d0a + 4cd4: 187d addi a6,a6,-1 + 4cd6: 982a add a6,a6,a0 + { + if (*haystack != *needle) + 4cd8: 02f89463 bne a7,a5,4d00 + while (n-- > 0 && *s1 && *s1 == *s2) + 4cdc: 00054703 lbu a4,0(a0) + 4ce0: 8646 mv a2,a7 + 4ce2: 86ae mv a3,a1 + 4ce4: 87aa mv a5,a0 + 4ce6: eb11 bnez a4,4cfa + 4ce8: a821 j 4d00 + if (n == 0 || *s1 == '\0') + 4cea: 03078163 beq a5,a6,4d0c + while (n-- > 0 && *s1 && *s1 == *s2) + 4cee: 0017c703 lbu a4,1(a5) + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4cf2: 0006c603 lbu a2,0(a3) + s1++; + 4cf6: 0785 addi a5,a5,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4cf8: cb19 beqz a4,4d0e + s2++; + 4cfa: 0685 addi a3,a3,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4cfc: fee607e3 beq a2,a4,4cea + for (; *haystack; haystack++) + 4d00: 00154783 lbu a5,1(a0) + 4d04: 0805 addi a6,a6,1 + 4d06: 0505 addi a0,a0,1 + 4d08: fbe1 bnez a5,4cd8 + continue; + + if (strncmp(haystack, needle, n_len) == 0) + return (char *)haystack; + } + return NULL; + 4d0a: 4501 li a0,0 +} + 4d0c: 8082 ret + if (strncmp(haystack, needle, n_len) == 0) + 4d0e: de7d beqz a2,4d0c + for (; *haystack; haystack++) + 4d10: 00154783 lbu a5,1(a0) + 4d14: 0805 addi a6,a6,1 + 4d16: 0505 addi a0,a0,1 + 4d18: f3e1 bnez a5,4cd8 + 4d1a: bfc5 j 4d0a + +0000000000004d1c : + +char *strdup(const char *s) +{ + 4d1c: 1101 addi sp,sp,-32 + 4d1e: e426 sd s1,8(sp) + 4d20: ec06 sd ra,24(sp) + 4d22: e822 sd s0,16(sp) + while (*p) + 4d24: 00054783 lbu a5,0(a0) +{ + 4d28: 84aa mv s1,a0 + while (*p) + 4d2a: cb8d beqz a5,4d5c + const char *p = s; + 4d2c: 862a mv a2,a0 + while (*p) + 4d2e: 00164783 lbu a5,1(a2) + p++; + 4d32: 0605 addi a2,a2,1 + while (*p) + 4d34: ffed bnez a5,4d2e + return (size_t)(p - s); + 4d36: 8e05 sub a2,a2,s1 + size_t len = strlen(s) + 1; + 4d38: 00160413 addi s0,a2,1 + char *new_str = (char *)malloc(len); + 4d3c: 8522 mv a0,s0 + 4d3e: f4eff0ef jal 448c + if (new_str == NULL) + 4d42: c901 beqz a0,4d52 + return memmove(vdst, vsrc, n); + 4d44: 8622 mv a2,s0 + return NULL; + + return (char *)memcpy(new_str, s, len); +} + 4d46: 6442 ld s0,16(sp) + 4d48: 60e2 ld ra,24(sp) + return memmove(vdst, vsrc, n); + 4d4a: 85a6 mv a1,s1 +} + 4d4c: 64a2 ld s1,8(sp) + 4d4e: 6105 addi sp,sp,32 + return memmove(vdst, vsrc, n); + 4d50: bbb9 j 4aae +} + 4d52: 60e2 ld ra,24(sp) + 4d54: 6442 ld s0,16(sp) + 4d56: 64a2 ld s1,8(sp) + 4d58: 6105 addi sp,sp,32 + 4d5a: 8082 ret + while (*p) + 4d5c: 4405 li s0,1 + 4d5e: bff9 j 4d3c + +0000000000004d60 : + 4d60: 0005c783 lbu a5,0(a1) + +size_t strlcpy(char *dst, const char *src, size_t size) +{ + 4d64: 1101 addi sp,sp,-32 + 4d66: ec06 sd ra,24(sp) + 4d68: e822 sd s0,16(sp) + 4d6a: 86b2 mv a3,a2 + while (*p) + 4d6c: cf8d beqz a5,4da6 + const char *p = s; + 4d6e: 87ae mv a5,a1 + while (*p) + 4d70: 0017c703 lbu a4,1(a5) + p++; + 4d74: 0785 addi a5,a5,1 + while (*p) + 4d76: ff6d bnez a4,4d70 + return (size_t)(p - s); + 4d78: 40b78433 sub s0,a5,a1 + size_t src_len = strlen(src); + + if (size > 0) + 4d7c: c285 beqz a3,4d9c + 4d7e: e426 sd s1,8(sp) + { + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4d80: fff68613 addi a2,a3,-1 + memcpy(dst, src, copy_len); + dst[copy_len] = '\0'; + 4d84: 00c504b3 add s1,a0,a2 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4d88: 00d47563 bgeu s0,a3,4d92 + dst[copy_len] = '\0'; + 4d8c: 008504b3 add s1,a0,s0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4d90: 8622 mv a2,s0 + return memmove(vdst, vsrc, n); + 4d92: d1dff0ef jal 4aae + dst[copy_len] = '\0'; + 4d96: 00048023 sb zero,0(s1) + } + + return src_len; + 4d9a: 64a2 ld s1,8(sp) +} + 4d9c: 60e2 ld ra,24(sp) + 4d9e: 8522 mv a0,s0 + 4da0: 6442 ld s0,16(sp) + 4da2: 6105 addi sp,sp,32 + 4da4: 8082 ret + if (size > 0) + 4da6: e219 bnez a2,4dac + return (size_t)(p - s); + 4da8: 4401 li s0,0 + 4daa: bfcd j 4d9c + 4dac: e426 sd s1,8(sp) + 4dae: 4401 li s0,0 + if (size > 0) + 4db0: 84aa mv s1,a0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4db2: 4601 li a2,0 + 4db4: bff9 j 4d92 + +0000000000004db6 : + while (*p) + 4db6: 0005c783 lbu a5,0(a1) + +size_t strlcat(char *dst, const char *src, size_t size) +{ + 4dba: 7179 addi sp,sp,-48 + 4dbc: e84a sd s2,16(sp) + 4dbe: f406 sd ra,40(sp) + 4dc0: f022 sd s0,32(sp) + 4dc2: ec26 sd s1,24(sp) + 4dc4: 892a mv s2,a0 + while (*p) + 4dc6: c7b5 beqz a5,4e32 + const char *p = s; + 4dc8: 87ae mv a5,a1 + while (*p) + 4dca: 0017c703 lbu a4,1(a5) + p++; + 4dce: 0785 addi a5,a5,1 + while (*p) + 4dd0: ff6d bnez a4,4dca + return (size_t)(p - s); + 4dd2: 40b784b3 sub s1,a5,a1 + size_t dst_len = 0; + 4dd6: 4401 li s0,0 + size_t src_len = strlen(src); + + while (dst_len < size && dst[dst_len] != '\0') + 4dd8: e609 bnez a2,4de2 + 4dda: a0a1 j 4e22 + dst_len++; + 4ddc: 0405 addi s0,s0,1 + while (dst_len < size && dst[dst_len] != '\0') + 4dde: 04860263 beq a2,s0,4e22 + 4de2: 00890533 add a0,s2,s0 + 4de6: 00054783 lbu a5,0(a0) + 4dea: fbed bnez a5,4ddc + + if (dst_len == size) + 4dec: 02860b63 beq a2,s0,4e22 + 4df0: e44e sd s3,8(sp) + return size + src_len; + + size_t space_left = size - dst_len; + 4df2: 408607b3 sub a5,a2,s0 + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4df6: 89a6 mv s3,s1 + 4df8: 02f4f263 bgeu s1,a5,4e1c + + memcpy(dst + dst_len, src, copy_len); + dst[dst_len + copy_len] = '\0'; + 4dfc: 994e add s2,s2,s3 + 4dfe: 9922 add s2,s2,s0 + return memmove(vdst, vsrc, n); + 4e00: 864e mv a2,s3 + 4e02: cadff0ef jal 4aae + dst[dst_len + copy_len] = '\0'; + 4e06: 00090023 sb zero,0(s2) # 1000 <_vscanf_core.constprop.0+0x6ca> + + return dst_len + src_len; + 4e0a: 00940533 add a0,s0,s1 +} + 4e0e: 70a2 ld ra,40(sp) + 4e10: 7402 ld s0,32(sp) + return dst_len + src_len; + 4e12: 69a2 ld s3,8(sp) +} + 4e14: 64e2 ld s1,24(sp) + 4e16: 6942 ld s2,16(sp) + 4e18: 6145 addi sp,sp,48 + 4e1a: 8082 ret + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4e1c: fff78993 addi s3,a5,-1 + 4e20: bff1 j 4dfc +} + 4e22: 70a2 ld ra,40(sp) + 4e24: 7402 ld s0,32(sp) + 4e26: 6942 ld s2,16(sp) + return size + src_len; + 4e28: 00960533 add a0,a2,s1 +} + 4e2c: 64e2 ld s1,24(sp) + 4e2e: 6145 addi sp,sp,48 + 4e30: 8082 ret + while (*p) + 4e32: 4481 li s1,0 + 4e34: b74d j 4dd6 + +0000000000004e36 : +size_t strspn(const char *s, const char *accept) +{ + const char *p = s; + const char *a; + + while (*p) + 4e36: 00054683 lbu a3,0(a0) + 4e3a: c695 beqz a3,4e66 + { + for (a = accept; *a; a++) + 4e3c: 0005c803 lbu a6,0(a1) + 4e40: 862a mv a2,a0 + 4e42: 00080f63 beqz a6,4e60 + 4e46: 87ae mv a5,a1 + 4e48: 8742 mv a4,a6 + 4e4a: a021 j 4e52 + 4e4c: 0007c703 lbu a4,0(a5) + 4e50: cb01 beqz a4,4e60 + 4e52: 0785 addi a5,a5,1 + { + if (*p == *a) + 4e54: fee69ce3 bne a3,a4,4e4c + while (*p) + 4e58: 00164683 lbu a3,1(a2) + break; + } + if (*a == '\0') + return (size_t)(p - s); + p++; + 4e5c: 0605 addi a2,a2,1 + while (*p) + 4e5e: f6e5 bnez a3,4e46 + } + return (size_t)(p - s); + 4e60: 40a60533 sub a0,a2,a0 + 4e64: 8082 ret + while (*p) + 4e66: 4501 li a0,0 +} + 4e68: 8082 ret + +0000000000004e6a : +size_t strcspn(const char *s, const char *reject) +{ + const char *p = s; + const char *r; + + while (*p) + 4e6a: 00054683 lbu a3,0(a0) + 4e6e: ce85 beqz a3,4ea6 + { + for (r = reject; *r; r++) + 4e70: 0005c803 lbu a6,0(a1) + const char *p = s; + 4e74: 862a mv a2,a0 + for (r = reject; *r; r++) + 4e76: 02080363 beqz a6,4e9c + 4e7a: 87ae mv a5,a1 + 4e7c: 8742 mv a4,a6 + 4e7e: a021 j 4e86 + 4e80: 0007c703 lbu a4,0(a5) + 4e84: c719 beqz a4,4e92 + 4e86: 0785 addi a5,a5,1 + { + if (*p == *r) + 4e88: fed71ce3 bne a4,a3,4e80 + return (size_t)(p - s); + } + p++; + } + return (size_t)(p - s); + 4e8c: 40a60533 sub a0,a2,a0 + 4e90: 8082 ret + while (*p) + 4e92: 00164683 lbu a3,1(a2) + p++; + 4e96: 0605 addi a2,a2,1 + while (*p) + 4e98: f2ed bnez a3,4e7a + 4e9a: bfcd j 4e8c + 4e9c: 00164683 lbu a3,1(a2) + p++; + 4ea0: 0605 addi a2,a2,1 + while (*p) + 4ea2: feed bnez a3,4e9c + 4ea4: b7e5 j 4e8c + 4ea6: 4501 li a0,0 +} + 4ea8: 8082 ret + +0000000000004eaa : + +char *strpbrk(const char *s, const char *accept) +{ + const char *a; + while (*s) + 4eaa: 00054683 lbu a3,0(a0) + 4eae: c295 beqz a3,4ed2 + { + for (a = accept; *a; a++) + 4eb0: 0005c603 lbu a2,0(a1) + 4eb4: c20d beqz a2,4ed6 + 4eb6: 87ae mv a5,a1 + 4eb8: 8732 mv a4,a2 + 4eba: a021 j 4ec2 + 4ebc: 0007c703 lbu a4,0(a5) + 4ec0: c709 beqz a4,4eca + 4ec2: 0785 addi a5,a5,1 + { + if (*s == *a) + 4ec4: fed71ce3 bne a4,a3,4ebc + return (char *)s; + } + s++; + } + return NULL; +} + 4ec8: 8082 ret + while (*s) + 4eca: 00154683 lbu a3,1(a0) + s++; + 4ece: 0505 addi a0,a0,1 + while (*s) + 4ed0: f2fd bnez a3,4eb6 + return NULL; + 4ed2: 4501 li a0,0 +} + 4ed4: 8082 ret + while (*s) + 4ed6: 00154683 lbu a3,1(a0) + s++; + 4eda: 0505 addi a0,a0,1 + while (*s) + 4edc: feed bnez a3,4ed6 + 4ede: bfd5 j 4ed2 + +0000000000004ee0 : +char *strtok(char *str, const char *delim) +{ + static char *olds; + char *token; + + if (str == NULL) + 4ee0: 00003897 auipc a7,0x3 + 4ee4: 8c088893 addi a7,a7,-1856 # 77a0 + 4ee8: cd25 beqz a0,4f60 + while (*p) + 4eea: 00054683 lbu a3,0(a0) + 4eee: c295 beqz a3,4f12 + for (a = accept; *a; a++) + 4ef0: 0005c803 lbu a6,0(a1) + 4ef4: 02080463 beqz a6,4f1c + 4ef8: 87ae mv a5,a1 + 4efa: 8742 mv a4,a6 + 4efc: a021 j 4f04 + 4efe: 0007c703 lbu a4,0(a5) + 4f02: cf09 beqz a4,4f1c + 4f04: 0785 addi a5,a5,1 + if (*p == *a) + 4f06: fee69ce3 bne a3,a4,4efe + while (*p) + 4f0a: 00154683 lbu a3,1(a0) + p++; + 4f0e: 0505 addi a0,a0,1 + while (*p) + 4f10: f6e5 bnez a3,4ef8 + 4f12: 87aa mv a5,a0 + str = olds; + + str += strspn(str, delim); + if (*str == '\0') + { + olds = str; + 4f14: 00f8b023 sd a5,0(a7) + return NULL; + 4f18: 4501 li a0,0 + *str = '\0'; + olds = str + 1; + } + + return token; +} + 4f1a: 8082 ret + if (*str == '\0') + 4f1c: 00054603 lbu a2,0(a0) + 4f20: da6d beqz a2,4f12 + 4f22: 86aa mv a3,a0 + for (a = accept; *a; a++) + 4f24: 04080163 beqz a6,4f66 + 4f28: 8742 mv a4,a6 + 4f2a: 87ae mv a5,a1 + 4f2c: a021 j 4f34 + 4f2e: 0007c703 lbu a4,0(a5) + 4f32: cb19 beqz a4,4f48 + 4f34: 0785 addi a5,a5,1 + if (*s == *a) + 4f36: fee61ce3 bne a2,a4,4f2e + olds = str + 1; + 4f3a: 00168793 addi a5,a3,1 + *str = '\0'; + 4f3e: 00068023 sb zero,0(a3) + olds = str; + 4f42: 00f8b023 sd a5,0(a7) +} + 4f46: 8082 ret + while (*s) + 4f48: 0016c603 lbu a2,1(a3) + s++; + 4f4c: 0685 addi a3,a3,1 + while (*s) + 4f4e: fe69 bnez a2,4f28 + 4f50: 87aa mv a5,a0 + while (*s != (char)c) + 4f52: 0017c703 lbu a4,1(a5) + if (!*s++) + 4f56: 0785 addi a5,a5,1 + while (*s != (char)c) + 4f58: ff6d bnez a4,4f52 + olds = str; + 4f5a: 00f8b023 sd a5,0(a7) +} + 4f5e: 8082 ret + str = olds; + 4f60: 0008b503 ld a0,0(a7) + 4f64: b759 j 4eea + while (*s) + 4f66: 0016c603 lbu a2,1(a3) + s++; + 4f6a: 0685 addi a3,a3,1 + while (*s) + 4f6c: fe6d bnez a2,4f66 + 4f6e: b7cd j 4f50 + +0000000000004f70 : + +char *strerror(int errnum) +{ + 4f70: 87aa mv a5,a0 + + switch (errnum) + 4f72: cd09 beqz a0,4f8c + 4f74: 4731 li a4,12 + 4f76: 00000517 auipc a0,0x0 + 4f7a: 12250513 addi a0,a0,290 # 5098 <_GLOBAL__sub_I__ZSt3cin+0xea> + 4f7e: 00e78b63 beq a5,a4,4f94 + return "Success"; + // case EINVAL: return "Invalid argument"; + case ENOMEM: return "Out of memory"; + + default: + return "Unknown error"; + 4f82: 00000517 auipc a0,0x0 + 4f86: 12650513 addi a0,a0,294 # 50a8 <_GLOBAL__sub_I__ZSt3cin+0xfa> + 4f8a: 8082 ret + return "Success"; + 4f8c: 00000517 auipc a0,0x0 + 4f90: 10450513 addi a0,a0,260 # 5090 <_GLOBAL__sub_I__ZSt3cin+0xe2> + } + 4f94: 8082 ret + +0000000000004f96 <_Znwm>: +#include "ulib/stdlib.h" + +void *operator new(unsigned long n) +{ + return malloc(n); + 4f96: cf6ff06f j 448c + +0000000000004f9a <_Znam>: +} + +void *operator new[](unsigned long n) + 4f9a: cf2ff06f j 448c + +0000000000004f9e <_ZdlPv>: + return malloc(n); +} + +void operator delete(void *p) +{ + free(p); + 4f9e: c78ff06f j 4416 + +0000000000004fa2 <_ZdaPv>: +} + +void operator delete[](void *p) + 4fa2: c74ff06f j 4416 + +0000000000004fa6 <_ZdlPvm>: + free(p); +} + +void operator delete(void *p, unsigned long) +{ + free(p); + 4fa6: c70ff06f j 4416 + +0000000000004faa <_ZdaPvm>: +} + +void operator delete[](void *p, unsigned long) + 4faa: c6cff06f j 4416 + +0000000000004fae <_GLOBAL__sub_I__ZSt3cin>: +#include "ulib/iostream" + +namespace std +{ + istream cin(stdin); + 4fae: 00002797 auipc a5,0x2 + 4fb2: 6a27b783 ld a5,1698(a5) # 7650 <_GLOBAL_OFFSET_TABLE_+0x10> + 4fb6: 6390 ld a2,0(a5) + ostream cout(stdout); + 4fb8: 00002797 auipc a5,0x2 + 4fbc: 6907b783 ld a5,1680(a5) # 7648 <_GLOBAL_OFFSET_TABLE_+0x8> + 4fc0: 6394 ld a3,0(a5) + ostream cerr(stderr); + 4fc2: 00002797 auipc a5,0x2 + 4fc6: 6967b783 ld a5,1686(a5) # 7658 <_GLOBAL_OFFSET_TABLE_+0x18> + 4fca: 6398 ld a4,0(a5) + + class istream{ + private: + FILE* _stream; + public: + istream(FILE *f) : _stream(f) {} + 4fcc: 00002797 auipc a5,0x2 + 4fd0: 7dc78793 addi a5,a5,2012 # 77a8 <_ZSt3cin> + 4fd4: e390 sd a2,0(a5) + ostream(FILE* f) : _stream(f) {} + 4fd6: e794 sd a3,8(a5) + 4fd8: eb98 sd a4,16(a5) +} // namespace std + 4fda: 8082 ret diff --git a/build/user/echo.sym b/build/user/echo.sym new file mode 100644 index 0000000..005bc74 --- /dev/null +++ b/build/user/echo.sym @@ -0,0 +1,189 @@ +0000000000000000 .text +0000000000004fe0 .rodata +00000000000057c0 .eh_frame +00000000000068c0 .data +0000000000007640 .got +0000000000007660 .got.plt +0000000000007670 .init_array +0000000000007678 .bss +0000000000000000 .debug_info +0000000000000000 .debug_abbrev +0000000000000000 .debug_loclists +0000000000000000 .debug_aranges +0000000000000000 .debug_rnglists +0000000000000000 .debug_line +0000000000000000 .debug_str +0000000000000000 .debug_line_str +0000000000000000 .comment +0000000000000000 .riscv.attributes +0000000000000000 echo.cc +0000000000000000 entry.o +0000000000000000 usys.o +0000000000000000 stdio.c +000000000000014e stbsp__clamp_callback +000000000000019c stbsp__count_clamp_callback +00000000000001a8 stbsp__real_to_str +000000000000087c _in_char.part.0 +00000000000008c2 _skip_space +0000000000000936 _vscanf_core.constprop.0 +00000000000011a6 _out_char +000000000000301a _vprintf_core.constprop.0.isra.0 +00000000000068c0 stbsp__digitpair +000000000000698c stbsp__period +000000000000698d stbsp__comma +0000000000006990 hexu.1 +00000000000069a8 hex.0 +00000000000069c0 _stderr +0000000000006de0 _stdout +0000000000007200 _stdin +0000000000005328 stbsp__bot +00000000000053e0 stbsp__negbot +0000000000005490 stbsp__negboterr +0000000000005540 stbsp__negtop +00000000000055a8 stbsp__negtoperr +0000000000005610 stbsp__top +0000000000005678 stbsp__toperr +00000000000056e0 stbsp__powten +0000000000000000 stdlib.c +0000000000004228 strtoull.part.0 +0000000000007638 next +0000000000007684 __atexit_func_count +0000000000007688 __atexit_funcs +0000000000007788 freep +0000000000007790 base +0000000000000000 string.c +00000000000077a0 olds.0 +0000000000000000 cxx.cc +0000000000000000 iostream.cpp +0000000000004fae _GLOBAL__sub_I__ZSt3cin +0000000000007640 _GLOBAL_OFFSET_TABLE_ +0000000000004b48 strcpy +00000000000038b8 printf +0000000000007620 stdout +0000000000005784 STDOUT_FD +00000000000041fe ungetc +0000000000004f70 strerror +0000000000004aae memmove +0000000000003862 snprintf +00000000000000d6 mknod +0000000000004700 atol +000000000000440e getenv +0000000000004f96 _Znwm +0000000000007680 errno +0000000000004960 labs +00000000000048da bsearch +000000000000010e getpid +00000000000047fc qsort +0000000000003af6 fscanf +0000000000003d68 fgets +00000000000077b8 _ZSt4cerr +0000000000004aea memcpy +0000000000004412 system +00000000000041de feof +000000000000448c malloc +000000000000011e sleep +0000000000003818 vsnprintf +000000000000461c strtoll +00000000000046c6 strtoul +0000000000004a12 wctomb +0000000000004a5e wcstombs +0000000000003a80 fflush +0000000000004a20 mbstowcs +000000000000013e lseek +0000000000004f9e _ZdlPv +0000000000004402 abort +00000000000046ea strtol +000000000000009e pipe +00000000000049e0 mblen +0000000000004c9c strrchr +0000000000004552 calloc +000000000000470c strtod +0000000000000136 disk_test +00000000000000ae write +00000000000047e6 atof +00000000000000e6 fstat +0000000000003ac4 fprintf +00000000000000be kill +0000000000004b8c strcat +00000000000000fe chdir +00000000000040e6 fseek +0000000000002fb6 stbsp_vsprintf +00000000000000c6 exec +0000000000004b10 memchr +0000000000007628 stdin +0000000000000096 wait +0000000000002ed0 stbsp_vsnprintf +000000000000007c _start +00000000000041e8 ferror +0000000000004cb4 strstr +00000000000049aa rand +00000000000000a6 read +0000000000004d60 strlcpy +0000000000004c3c strncmp +000000000000127a stbsp_set_separators +0000000000004fa6 _ZdlPvm +0000000000004b5a strncpy +00000000000000de unlink +000000000000459a realloc +0000000000004ee0 strtok +0000000000004aec memcmp +000000000000008e fork +00000000000038f2 sscanf +0000000000004bbe strncat +0000000000003e44 fread +0000000000000116 sbrk +0000000000004d1c strdup +0000000000000126 uptime +00000000000045f8 strtoull +0000000000002ea6 stbsp_sprintf +0000000000003954 fopen +0000000000004a96 memset +0000000000000000 main +000000000000415a ftell +00000000000049d2 srand +0000000000004db6 strlcat +00000000000041f2 clearerr +0000000000004fa2 _ZdaPv +0000000000003a18 fclose +000000000000012e putc +0000000000004c04 strcmp +0000000000000146 shutdown +0000000000000106 dup +0000000000003cd2 fgetc +0000000000002fc4 sprintf +00000000000047ea strtof +00000000000043a8 atexit +0000000000004e6a strcspn +0000000000002f96 stbsp_snprintf +00000000000077a8 _ZSt3cin +0000000000003922 scanf +0000000000007630 stderr +000000000000498a ldiv +0000000000003b28 fputc +0000000000004f9a _Znam +000000000000499a lldiv +0000000000003f5e fwrite +0000000000004186 rewind +00000000000077b0 _ZSt4cout +00000000000000ee link +00000000000043cc exit +0000000000000086 sys_exit +000000000000496a llabs +00000000000046ec atoi +0000000000005780 STDERR_FD +0000000000004e36 strspn +0000000000004b2e strlen +000000000000128c stbsp_vsprintfcb +00000000000000ce open +0000000000005788 STDIN_FD +0000000000004706 atoll +0000000000004974 div +0000000000004956 abs +0000000000004c84 strchr +0000000000003bec fputs +0000000000004faa _ZdaPvm +00000000000000f6 mkdir +00000000000000b6 close +00000000000049f4 mbtowc +0000000000004eaa strpbrk +0000000000004416 free diff --git a/build/user/entry.o b/build/user/entry.o index 0130c78..c20f0e6 100644 Binary files a/build/user/entry.o and b/build/user/entry.o differ diff --git a/build/user/init b/build/user/init new file mode 100755 index 0000000..9b46ae7 Binary files /dev/null and b/build/user/init differ diff --git a/build/user/init.asm b/build/user/init.asm new file mode 100644 index 0000000..0ded66c --- /dev/null +++ b/build/user/init.asm @@ -0,0 +1,10687 @@ + +build/user/init: file format elf64-littleriscv + + +Disassembly of section .text: + +0000000000000000
: +#include "ulib/string.h" +#include "user/user.h" +#include "drivers/uart_color.h" + +int main() +{ + 0: 715d addi sp,sp,-80 + char *argv[] = {(char *)"sh", 0}; + 2: 00005797 auipc a5,0x5 + 6: 01e78793 addi a5,a5,30 # 5020 <_GLOBAL__sub_I__ZSt3cin+0x30> + + printf(ANSI_BLUE"\n[Init] Starting Lume OS Shell..."ANSI_RESET); + a: 00005517 auipc a0,0x5 + e: 01e50513 addi a0,a0,30 # 5028 <_GLOBAL__sub_I__ZSt3cin+0x38> +{ + 12: e486 sd ra,72(sp) + 14: fc26 sd s1,56(sp) + 16: f84a sd s2,48(sp) + 18: f44e sd s3,40(sp) + 1a: f052 sd s4,32(sp) + char *argv[] = {(char *)"sh", 0}; + 1c: e83e sd a5,16(sp) +{ + 1e: e0a2 sd s0,64(sp) + char *argv[] = {(char *)"sh", 0}; + 20: ec02 sd zero,24(sp) + printf(ANSI_BLUE"\n[Init] Starting Lume OS Shell..."ANSI_RESET); + 22: 0d9030ef jal 38fa + printf("\n"); + 26: 00005517 auipc a0,0x5 + 2a: 03250513 addi a0,a0,50 # 5058 <_GLOBAL__sub_I__ZSt3cin+0x68> + 2e: 0cd030ef jal 38fa + 32: 0024 addi s1,sp,8 + int pid = fork(); + // printf("fork suceess, pid=%i\n", pid); + + if (pid < 0) + { + printf("[Init] fork failed!\n"); + 34: 00005a17 auipc s4,0x5 + 38: 02ca0a13 addi s4,s4,44 # 5060 <_GLOBAL__sub_I__ZSt3cin+0x70> + printf("Shell Exit"); + break; + } + if (wpid < 0) + { + printf("[Init] wait error or no child\n"); + 3c: 00005997 auipc s3,0x5 + 40: 06498993 addi s3,s3,100 # 50a0 <_GLOBAL__sub_I__ZSt3cin+0xb0> + printf("Shell Exit"); + 44: 00005917 auipc s2,0x5 + 48: 04c90913 addi s2,s2,76 # 5090 <_GLOBAL__sub_I__ZSt3cin+0xa0> + int pid = fork(); + 4c: 084000ef jal d0 + 50: 842a mv s0,a0 + if (pid < 0) + 52: 02054363 bltz a0,78 + if (pid == 0) + 56: e501 bnez a0,5e + 58: a81d j 8e + if (wpid < 0) + 5a: 02054663 bltz a0,86 + wpid = wait((uint64)&status); + 5e: 8526 mv a0,s1 + 60: 078000ef jal d8 + if (wpid == pid) + 64: fea41be3 bne s0,a0,5a + printf("Shell Exit"); + 68: 854a mv a0,s2 + 6a: 091030ef jal 38fa + int pid = fork(); + 6e: 062000ef jal d0 + 72: 842a mv s0,a0 + if (pid < 0) + 74: fe0551e3 bgez a0,56 + printf("[Init] fork failed!\n"); + 78: 8552 mv a0,s4 + 7a: 081030ef jal 38fa + exit(1); + 7e: 4505 li a0,1 + 80: 38e040ef jal 440e + if (pid == 0) + 84: bfe9 j 5e + printf("[Init] wait error or no child\n"); + 86: 854e mv a0,s3 + 88: 073030ef jal 38fa + + break; + } + } + } + } + 8c: b7c1 j 4c + char sh_path[] = "/sh"; + 8e: 006877b7 lui a5,0x687 + 92: 32f78793 addi a5,a5,815 # 68732f <_ZSt4cerr+0x67faa7> + exec(sh_path, argv); + 96: 080c addi a1,sp,16 + 98: 8526 mv a0,s1 + char sh_path[] = "/sh"; + 9a: c43e sw a5,8(sp) + exec(sh_path, argv); + 9c: 06c000ef jal 108 + printf("[Init] exec sh failed\n"); + a0: 00005517 auipc a0,0x5 + a4: fd850513 addi a0,a0,-40 # 5078 <_GLOBAL__sub_I__ZSt3cin+0x88> + a8: 053030ef jal 38fa + return 0; + ac: 60a6 ld ra,72(sp) + ae: 6406 ld s0,64(sp) + b0: 74e2 ld s1,56(sp) + b2: 7942 ld s2,48(sp) + b4: 79a2 ld s3,40(sp) + b6: 7a02 ld s4,32(sp) + b8: 4501 li a0,0 + ba: 6161 addi sp,sp,80 + bc: 8082 ret + +00000000000000be <_start>: +.global _start + +_start: + + + call main + be: f43ff0ef jal 0
+ + call exit + c2: 34c040ef jal 440e + + c6: a001 j c6 <_start+0x8> + +00000000000000c8 : + name: \ + li a7, SYS_ ## sysname; \ + ecall; \ + ret + +SYSCALL_NAME(sys_exit, exit) + c8: 488d li a7,3 + ca: 00000073 ecall + ce: 8082 ret + +00000000000000d0 : + +SYSCALL(fork) + d0: 4889 li a7,2 + d2: 00000073 ecall + d6: 8082 ret + +00000000000000d8 : +SYSCALL(wait) + d8: 4891 li a7,4 + da: 00000073 ecall + de: 8082 ret + +00000000000000e0 : +SYSCALL(pipe) + e0: 4895 li a7,5 + e2: 00000073 ecall + e6: 8082 ret + +00000000000000e8 : +SYSCALL(read) + e8: 4899 li a7,6 + ea: 00000073 ecall + ee: 8082 ret + +00000000000000f0 : +SYSCALL(write) + f0: 48c5 li a7,17 + f2: 00000073 ecall + f6: 8082 ret + +00000000000000f8 : +SYSCALL(close) + f8: 48d9 li a7,22 + fa: 00000073 ecall + fe: 8082 ret + +0000000000000100 : +SYSCALL(kill) + 100: 489d li a7,7 + 102: 00000073 ecall + 106: 8082 ret + +0000000000000108 : +SYSCALL(exec) + 108: 48a1 li a7,8 + 10a: 00000073 ecall + 10e: 8082 ret + +0000000000000110 : +SYSCALL(open) + 110: 48c1 li a7,16 + 112: 00000073 ecall + 116: 8082 ret + +0000000000000118 : +SYSCALL(mknod) + 118: 48c9 li a7,18 + 11a: 00000073 ecall + 11e: 8082 ret + +0000000000000120 : +SYSCALL(unlink) + 120: 48cd li a7,19 + 122: 00000073 ecall + 126: 8082 ret + +0000000000000128 : +SYSCALL(fstat) + 128: 48a5 li a7,9 + 12a: 00000073 ecall + 12e: 8082 ret + +0000000000000130 : +SYSCALL(link) + 130: 48d1 li a7,20 + 132: 00000073 ecall + 136: 8082 ret + +0000000000000138 : +SYSCALL(mkdir) + 138: 48d5 li a7,21 + 13a: 00000073 ecall + 13e: 8082 ret + +0000000000000140 : +SYSCALL(chdir) + 140: 48a9 li a7,10 + 142: 00000073 ecall + 146: 8082 ret + +0000000000000148 : +SYSCALL(dup) + 148: 48ad li a7,11 + 14a: 00000073 ecall + 14e: 8082 ret + +0000000000000150 : +SYSCALL(getpid) + 150: 48b1 li a7,12 + 152: 00000073 ecall + 156: 8082 ret + +0000000000000158 : +SYSCALL(sbrk) + 158: 48b5 li a7,13 + 15a: 00000073 ecall + 15e: 8082 ret + +0000000000000160 : +SYSCALL(sleep) + 160: 48b9 li a7,14 + 162: 00000073 ecall + 166: 8082 ret + +0000000000000168 : +SYSCALL(uptime) + 168: 48bd li a7,15 + 16a: 00000073 ecall + 16e: 8082 ret + +0000000000000170 : +SYSCALL(putc) + 170: 4885 li a7,1 + 172: 00000073 ecall + 176: 8082 ret + +0000000000000178 : +SYSCALL(disk_test) + 178: 48dd li a7,23 + 17a: 00000073 ecall + 17e: 8082 ret + +0000000000000180 : +SYSCALL(lseek) + 180: 48e1 li a7,24 + 182: 00000073 ecall + 186: 8082 ret + +0000000000000188 : + 188: 48e5 li a7,25 + 18a: 00000073 ecall + 18e: 8082 ret + +0000000000000190 : + 190: 45dc lw a5,12(a1) + 192: 4598 lw a4,8(a1) + 194: 9fb1 addw a5,a5,a2 + 196: c5dc sw a5,12(a1) + 198: 0007069b sext.w a3,a4 + 19c: 00e65463 bge a2,a4,1a4 + 1a0: 0006069b sext.w a3,a2 + 1a4: c685 beqz a3,1cc + 1a6: 619c ld a5,0(a1) + 1a8: 00a78e63 beq a5,a0,1c4 + 1ac: 00d50633 add a2,a0,a3 + 1b0: 00054703 lbu a4,0(a0) + 1b4: 0505 addi a0,a0,1 + 1b6: 0785 addi a5,a5,1 + 1b8: fee78fa3 sb a4,-1(a5) + 1bc: fec56ae3 bltu a0,a2,1b0 + 1c0: 6188 ld a0,0(a1) + 1c2: 4598 lw a4,8(a1) + 1c4: 9f15 subw a4,a4,a3 + 1c6: 9536 add a0,a0,a3 + 1c8: e188 sd a0,0(a1) + 1ca: c598 sw a4,8(a1) + 1cc: 1ff00793 li a5,511 + 1d0: 00e7d463 bge a5,a4,1d8 + 1d4: 6188 ld a0,0(a1) + 1d6: 8082 ret + 1d8: 01058513 addi a0,a1,16 + 1dc: 8082 ret + +00000000000001de : + 1de: 45dc lw a5,12(a1) + 1e0: 01058513 addi a0,a1,16 + 1e4: 9fb1 addw a5,a5,a2 + 1e6: c5dc sw a5,12(a1) + 1e8: 8082 ret + +00000000000001ea : + 1ea: e20508d3 fmv.x.d a7,fa0 + 1ee: 82aa mv t0,a0 + 1f0: 4348d813 srai a6,a7,0x34 + 1f4: 8ec6 mv t4,a7 + 1f6: 7ff87813 andi a6,a6,2047 + 1fa: 8346 mv t1,a7 + 1fc: 03f8d513 srli a0,a7,0x3f + 200: 0008d663 bgez a7,20c + 204: 22a517d3 fneg.d fa5,fa0 + 208: e20788d3 fmv.x.d a7,fa5 + 20c: 7ff00e13 li t3,2047 + 210: 35c80663 beq a6,t3,55c + 214: 1101 addi sp,sp,-32 + 216: 14080363 beqz a6,35c + 21a: c018081b addiw a6,a6,-1023 + 21e: ec22 sd s0,24(sp) + 220: 02081313 slli t1,a6,0x20 + 224: 66034d63 bltz t1,89e + 228: 4d100313 li t1,1233 + 22c: 0303033b mulw t1,t1,a6 + 230: 4849 li a6,18 + 232: 40c3531b sraiw t1,t1,0xc + 236: 0013039b addiw t2,t1,1 + 23a: 4078083b subw a6,a6,t2 + 23e: 4359 li t1,22 + 240: 17036163 bltu t1,a6,3a2 + 244: 00005317 auipc t1,0x5 + 248: 1b430313 addi t1,t1,436 # 53f8 + 24c: 080e slli a6,a6,0x3 + 24e: 981a add a6,a6,t1 + 250: 00083e03 ld t3,0(a6) + 254: 00083607 fld fa2,0(a6) + 258: f20887d3 fmv.d.x fa5,a7 + 25c: f8000837 lui a6,0xf8000 + 260: 01187333 and t1,a6,a7 + 264: 01c87833 and a6,a6,t3 + 268: 12f676d3 fmul.d fa3,fa2,fa5 + 26c: f20807d3 fmv.d.x fa5,a6 + 270: f2030753 fmv.d.x fa4,t1 + 274: f20305d3 fmv.d.x fa1,t1 + 278: 0af67653 fsub.d fa2,fa2,fa5 + 27c: f20887d3 fmv.d.x fa5,a7 + 280: 0ae7f753 fsub.d fa4,fa5,fa4 + 284: f20807d3 fmv.d.x fa5,a6 + 288: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 + 28c: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 + 290: f20805d3 fmv.d.x fa1,a6 + 294: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 + 298: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 + 29c: 02d777d3 fadd.d fa5,fa4,fa3 + 2a0: 3782e837 lui a6,0x3782e + 2a4: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37826247> + 2a8: 0832 slli a6,a6,0xc + 2aa: 9d980813 addi a6,a6,-1575 + 2ae: 084a slli a6,a6,0x12 + 2b0: 187d addi a6,a6,-1 + 2b2: c22798d3 fcvt.l.d a7,fa5,rtz + 2b6: 0ad7f6d3 fsub.d fa3,fa5,fa3 + 2ba: 00070e1b sext.w t3,a4 + 2be: d228f653 fcvt.d.l fa2,a7 + 2c2: 0ac7f5d3 fsub.d fa1,fa5,fa2 + 2c6: 0ad77753 fsub.d fa4,fa4,fa3 + 2ca: 0af5f6d3 fsub.d fa3,fa1,fa5 + 2ce: 0ad5f553 fsub.d fa0,fa1,fa3 + 2d2: 02d67653 fadd.d fa2,fa2,fa3 + 2d6: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 2da: 0ac7f7d3 fsub.d fa5,fa5,fa2 + 2de: 02b7f7d3 fadd.d fa5,fa5,fa1 + 2e2: 02e7f7d3 fadd.d fa5,fa5,fa4 + 2e6: c2279fd3 fcvt.l.d t6,fa5,rtz + 2ea: 9fc6 add t6,t6,a7 + 2ec: 19f87063 bgeu a6,t6,46c + 2f0: 2385 addiw t2,t2,1 + 2f2: 300e4363 bltz t3,5f8 + 2f6: 00e3833b addw t1,t2,a4 + 2fa: 475d li a4,23 + 2fc: 30677663 bgeu a4,t1,608 + 300: 577d li a4,-1 + 302: 9301 srli a4,a4,0x20 + 304: 43f75863 bge a4,t6,734 + 308: 07d00313 li t1,125 + 30c: 877e mv a4,t6 + 30e: 4e01 li t3,0 + 310: 3e800813 li a6,1000 + 314: 130e slli t1,t1,0x23 + 316: a039 j 324 + 318: 030747b3 div a5,a4,a6 + 31c: 4e05 li t3,1 + 31e: 40674c63 blt a4,t1,736 + 322: 873e mv a4,a5 + 324: 030768b3 rem a7,a4,a6 + 328: fe0888e3 beqz a7,318 + 32c: 400e0163 beqz t3,72e + 330: 8fbe mv t6,a5 + 332: 05f5e7b7 lui a5,0x5f5e + 336: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + 33a: 04060413 addi s0,a2,64 + 33e: 03860613 addi a2,a2,56 + 342: 15f7c863 blt a5,t6,492 + 346: 000f871b sext.w a4,t6 + 34a: 20070463 beqz a4,552 + 34e: 4f01 li t5,0 + 350: 4f81 li t6,0 + 352: 00006e97 auipc t4,0x6 + 356: 63ee8e93 addi t4,t4,1598 # 6990 + 35a: aaa9 j 4b4 + 35c: 0306 slli t1,t1,0x1 + 35e: 3e030e63 beqz t1,75a + 362: 4305 li t1,1 + 364: ec22 sd s0,24(sp) + 366: 00ce9e13 slli t3,t4,0xc + 36a: 134e slli t1,t1,0x33 + 36c: 520e4063 bltz t3,88c + 370: 40135313 srai t1,t1,0x1 + 374: 01d37e33 and t3,t1,t4 + 378: 8f42 mv t5,a6 + 37a: 387d addiw a6,a6,-1 + 37c: fe0e0ae3 beqz t3,370 + 380: 26900313 li t1,617 + 384: c00f081b addiw a6,t5,-1024 + 388: 0268083b mulw a6,a6,t1 + 38c: 41f8531b sraiw t1,a6,0x1f + 390: 0153531b srliw t1,t1,0x15 + 394: 0103033b addw t1,t1,a6 + 398: 40b3539b sraiw t2,t1,0xb + 39c: 4849 li a6,18 + 39e: 4078083b subw a6,a6,t2 + 3a2: 41f8531b sraiw t1,a6,0x1f + 3a6: 00684eb3 xor t4,a6,t1 + 3aa: 406e8f3b subw t5,t4,t1 + 3ae: 2c900313 li t1,713 + 3b2: 03e3033b mulw t1,t1,t5 + 3b6: 4e35 li t3,13 + 3b8: 8efa mv t4,t5 + 3ba: 40e35f9b sraiw t6,t1,0xe + 3be: 837e mv t1,t6 + 3c0: 23fe4363 blt t3,t6,5e6 + 3c4: 5e25 li t3,-23 + 3c6: 026e0e3b mulw t3,t3,t1 + 3ca: 01de0ebb addw t4,t3,t4 + 3ce: 22084f63 bltz a6,60c + 3d2: f2000753 fmv.d.x fa4,zero + 3d6: 00005e17 auipc t3,0x5 + 3da: 022e0e13 addi t3,t3,34 # 53f8 + 3de: 380e9e63 bnez t4,77a + 3e2: f20887d3 fmv.d.x fa5,a7 + 3e6: fff30f1b addiw t5,t1,-1 + 3ea: 0f0e slli t5,t5,0x3 + 3ec: 02f777d3 fadd.d fa5,fa4,fa5 + 3f0: 030e slli t1,t1,0x3 + 3f2: 9f72 add t5,t5,t3 + 3f4: 9e1a add t3,t3,t1 + 3f6: 2e0e3e03 ld t3,736(t3) + 3fa: 2e8f3587 fld fa1,744(t5) + 3fe: f8000837 lui a6,0xf8000 + 402: e2078ed3 fmv.x.d t4,fa5 + 406: 12b7f6d3 fmul.d fa3,fa5,fa1 + 40a: f2088653 fmv.d.x fa2,a7 + 40e: 01d87333 and t1,a6,t4 + 412: 01c87833 and a6,a6,t3 + 416: f20807d3 fmv.d.x fa5,a6 + 41a: f2030053 fmv.d.x ft0,t1 + 41e: 0af5f553 fsub.d fa0,fa1,fa5 + 422: f20e87d3 fmv.d.x fa5,t4 + 426: 0ac7f0d3 fsub.d ft1,fa5,fa2 + 42a: f20807d3 fmv.d.x fa5,a6 + 42e: f2030653 fmv.d.x fa2,t1 + 432: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 + 436: f20e87d3 fmv.d.x fa5,t4 + 43a: 0a177753 fsub.d fa4,fa4,ft1 + 43e: f20300d3 fmv.d.x ft1,t1 + 442: 0a07f7d3 fsub.d fa5,fa5,ft0 + 446: 350f3007 fld ft0,848(t5) + 44a: 62157643 fmadd.d fa2,fa0,ft1,fa2 + 44e: 12b77753 fmul.d fa4,fa4,fa1 + 452: f20805d3 fmv.d.x fa1,a6 + 456: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 + 45a: f20e85d3 fmv.d.x fa1,t4 + 45e: 7205f743 fmadd.d fa4,fa1,ft0,fa4 + 462: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 + 466: 02e7f753 fadd.d fa4,fa5,fa4 + 46a: bd0d j 29c + 46c: 00e3833b addw t1,t2,a4 + 470: 2a0e4663 bltz t3,71c + 474: 475d li a4,23 + 476: 10677663 bgeu a4,t1,582 + 47a: e80f93e3 bnez t6,300 + 47e: 05f5e7b7 lui a5,0x5f5e + 482: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + 486: 04060413 addi s0,a2,64 + 48a: 03860613 addi a2,a2,56 + 48e: ebf7dce3 bge a5,t6,346 + 492: 4f01 li t5,0 + 494: 00006e97 auipc t4,0x6 + 498: 4fce8e93 addi t4,t4,1276 # 6990 + 49c: 05f5e7b7 lui a5,0x5f5e + 4a0: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f56878> + 4a4: 02ffe833 rem a6,t6,a5 + 4a8: 02ffcfb3 div t6,t6,a5 + 4ac: 0008071b sext.w a4,a6 + 4b0: 0a080463 beqz a6,558 + 4b4: 8822 mv a6,s0 + 4b6: 06400893 li a7,100 + 4ba: 06300e13 li t3,99 + 4be: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff8776> + 4c0: 0007031b sext.w t1,a4 + 4c4: 031777bb remuw a5,a4,a7 + 4c8: 2785 addiw a5,a5,1 + 4ca: 0017979b slliw a5,a5,0x1 + 4ce: 1782 slli a5,a5,0x20 + 4d0: 9381 srli a5,a5,0x20 + 4d2: 97f6 add a5,a5,t4 + 4d4: 0007d783 lhu a5,0(a5) + 4d8: 0317573b divuw a4,a4,a7 + 4dc: 00f81023 sh a5,0(a6) + 4e0: fc6e6fe3 bltu t3,t1,4be + 4e4: 008f0f3b addw t5,t5,s0 + 4e8: 410f0f3b subw t5,t5,a6 + 4ec: 020f8f63 beqz t6,52a + 4f0: 87c2 mv a5,a6 + 4f2: 03000713 li a4,48 + 4f6: 04c80c63 beq a6,a2,54e + 4fa: 17fd addi a5,a5,-1 + 4fc: 00e78023 sb a4,0(a5) + 500: fec79de3 bne a5,a2,4fa + 504: 408807b3 sub a5,a6,s0 + 508: 00ff07bb addw a5,t5,a5 + 50c: 1461 addi s0,s0,-8 + 50e: 00878f1b addiw t5,a5,8 + 512: 05f5e7b7 lui a5,0x5f5e + 516: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + 51a: ff840613 addi a2,s0,-8 + 51e: f7f7cfe3 blt a5,t6,49c + 522: 000f871b sext.w a4,t6 + 526: 4f81 li t6,0 + 528: b771 j 4b4 + 52a: 020f0563 beqz t5,554 + 52e: 00084703 lbu a4,0(a6) + 532: 03000793 li a5,48 + 536: 22f70f63 beq a4,a5,774 + 53a: 2f01 sext.w t5,t5 + 53c: 0076a023 sw t2,0(a3) + 540: 6462 ld s0,24(sp) + 542: 0102b023 sd a6,0(t0) + 546: 01e5a023 sw t5,0(a1) + 54a: 6105 addi sp,sp,32 + 54c: 8082 ret + 54e: 8442 mv s0,a6 + 550: b7c9 j 512 + 552: 8822 mv a6,s0 + 554: 4f01 li t5,0 + 556: b7dd j 53c + 558: 8822 mv a6,s0 + 55a: bf59 j 4f0 + 55c: 0eb2 slli t4,t4,0xc + 55e: 00005797 auipc a5,0x5 + 562: b6a78793 addi a5,a5,-1174 # 50c8 <_GLOBAL__sub_I__ZSt3cin+0xd8> + 566: 000e8663 beqz t4,572 + 56a: 00005797 auipc a5,0x5 + 56e: b5678793 addi a5,a5,-1194 # 50c0 <_GLOBAL__sub_I__ZSt3cin+0xd0> + 572: 00f2b023 sd a5,0(t0) + 576: 679d lui a5,0x7 + 578: c29c sw a5,0(a3) + 57a: 4f0d li t5,3 + 57c: 01e5a023 sw t5,0(a1) + 580: 8082 ret + 582: 3b9ad737 lui a4,0x3b9ad + 586: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a5177> + 58a: 07f76f63 bltu a4,t6,608 + 58e: 4805 li a6,1 + 590: 02081713 slli a4,a6,0x20 + 594: 01d75893 srli a7,a4,0x1d + 598: 00005717 auipc a4,0x5 + 59c: 21870713 addi a4,a4,536 # 57b0 + 5a0: 9746 add a4,a4,a7 + 5a2: 4e51 li t3,20 + 5a4: a021 j 5ac + 5a6: 2805 addiw a6,a6,1 + 5a8: edc809e3 beq a6,t3,47a + 5ac: 00073883 ld a7,0(a4) + 5b0: 0721 addi a4,a4,8 + 5b2: ff1ffae3 bgeu t6,a7,5a6 + 5b6: ed0372e3 bgeu t1,a6,47a + 5ba: 4068083b subw a6,a6,t1 + 5be: 475d li a4,23 + 5c0: eb076de3 bltu a4,a6,47a + 5c4: 080e slli a6,a6,0x3 + 5c6: 00005717 auipc a4,0x5 + 5ca: e3270713 addi a4,a4,-462 # 53f8 + 5ce: 9742 add a4,a4,a6 + 5d0: 3b873803 ld a6,952(a4) + 5d4: 00185713 srli a4,a6,0x1 + 5d8: 977e add a4,a4,t6 + 5da: 01176363 bltu a4,a7,5e0 + 5de: 2385 addiw t2,t2,1 + 5e0: 03075fb3 divu t6,a4,a6 + 5e4: bd59 j 47a + 5e6: 4335 li t1,13 + 5e8: 5e25 li t3,-23 + 5ea: 026e0e3b mulw t3,t3,t1 + 5ee: 01de0ebb addw t4,t3,t4 + 5f2: de0850e3 bgez a6,3d2 + 5f6: a819 j 60c + 5f8: 02571313 slli t1,a4,0x25 + 5fc: 02535313 srli t1,t1,0x25 + 600: 0305 addi t1,t1,1 + 602: 475d li a4,23 + 604: ce676ee3 bltu a4,t1,300 + 608: 4829 li a6,10 + 60a: b759 j 590 + 60c: 260e8663 beqz t4,878 + 610: 00231e13 slli t3,t1,0x2 + 614: 41c30e33 sub t3,t1,t3 + 618: 0e0e slli t3,t3,0x3 + 61a: 9e1a add t3,t3,t1 + 61c: fffe881b addiw a6,t4,-1 + 620: 9e7a add t3,t3,t5 + 622: 00005e97 auipc t4,0x5 + 626: dd6e8e93 addi t4,t4,-554 # 53f8 + 62a: 0e0e slli t3,t3,0x3 + 62c: 080e slli a6,a6,0x3 + 62e: 9876 add a6,a6,t4 + 630: 9ef2 add t4,t4,t3 + 632: 0b883607 fld fa2,184(a6) + 636: f20887d3 fmv.d.x fa5,a7 + 63a: 0b0ebf03 ld t5,176(t4) + 63e: f8000e37 lui t3,0xf8000 + 642: 011e7eb3 and t4,t3,a7 + 646: 12f676d3 fmul.d fa3,fa2,fa5 + 64a: 01ee7e33 and t3,t3,t5 + 64e: f20e07d3 fmv.d.x fa5,t3 + 652: f20e0753 fmv.d.x fa4,t3 + 656: f20e8553 fmv.d.x fa0,t4 + 65a: 0af67653 fsub.d fa2,fa2,fa5 + 65e: f20e87d3 fmv.d.x fa5,t4 + 662: f20e85d3 fmv.d.x fa1,t4 + 666: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 + 66a: f2088753 fmv.d.x fa4,a7 + 66e: 0ab775d3 fsub.d fa1,fa4,fa1 + 672: 16883707 fld fa4,360(a6) + 676: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 + 67a: f20e0553 fmv.d.x fa0,t3 + 67e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 682: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 + 686: f20887d3 fmv.d.x fa5,a7 + 68a: 5af77743 fmadd.d fa4,fa4,fa5,fa1 + 68e: c00f87e3 beqz t6,29c + 692: 02d777d3 fadd.d fa5,fa4,fa3 + 696: fff3089b addiw a7,t1,-1 + 69a: 00005817 auipc a6,0x5 + 69e: d5e80813 addi a6,a6,-674 # 53f8 + 6a2: 030e slli t1,t1,0x3 + 6a4: 088e slli a7,a7,0x3 + 6a6: 98c2 add a7,a7,a6 + 6a8: 981a add a6,a6,t1 + 6aa: e2078e53 fmv.x.d t3,fa5 + 6ae: 21083e83 ld t4,528(a6) + 6b2: f8000837 lui a6,0xf8000 + 6b6: 2188b507 fld fa0,536(a7) + 6ba: 01c87333 and t1,a6,t3 + 6be: 01d87833 and a6,a6,t4 + 6c2: f2080653 fmv.d.x fa2,a6 + 6c6: 12f577d3 fmul.d fa5,fa0,fa5 + 6ca: 2808b587 fld fa1,640(a7) + 6ce: 0ac57053 fsub.d ft0,fa0,fa2 + 6d2: f20e0653 fmv.d.x fa2,t3 + 6d6: 0ad67153 fsub.d ft2,fa2,fa3 + 6da: f20806d3 fmv.d.x fa3,a6 + 6de: f2030653 fmv.d.x fa2,t1 + 6e2: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 + 6e6: f20e06d3 fmv.d.x fa3,t3 + 6ea: 0ac6f653 fsub.d fa2,fa3,fa2 + 6ee: 22f786d3 fmv.d fa3,fa5 + 6f2: 0a2777d3 fsub.d fa5,fa4,ft2 + 6f6: f2030753 fmv.d.x fa4,t1 + 6fa: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 + 6fe: 12a7f7d3 fmul.d fa5,fa5,fa0 + 702: f2080553 fmv.d.x fa0,a6 + 706: 72a67743 fmadd.d fa4,fa2,fa0,fa4 + 70a: f20e0553 fmv.d.x fa0,t3 + 70e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 712: 72067643 fmadd.d fa2,fa2,ft0,fa4 + 716: 02f67753 fadd.d fa4,fa2,fa5 + 71a: b649 j 29c + 71c: 02571313 slli t1,a4,0x25 + 720: 02535313 srli t1,t1,0x25 + 724: 0305 addi t1,t1,1 + 726: 475d li a4,23 + 728: d46769e3 bltu a4,t1,47a + 72c: bd99 j 582 + 72e: 87fe mv a5,t6 + 730: 8fbe mv t6,a5 + 732: b101 j 332 + 734: 87fe mv a5,t6 + 736: 3e800713 li a4,1000 + 73a: 02e7f73b remuw a4,a5,a4 + 73e: 2781 sext.w a5,a5 + 740: eb01 bnez a4,750 + 742: 3e800813 li a6,1000 + 746: 0307d7bb divuw a5,a5,a6 + 74a: 0307f73b remuw a4,a5,a6 + 74e: df65 beqz a4,746 + 750: 02079f93 slli t6,a5,0x20 + 754: 020fdf93 srli t6,t6,0x20 + 758: b31d j 47e + 75a: 4785 li a5,1 + 75c: c29c sw a5,0(a3) + 75e: 00c2b023 sd a2,0(t0) + 762: 03000793 li a5,48 + 766: 00f60023 sb a5,0(a2) + 76a: 4f05 li t5,1 + 76c: 01e5a023 sw t5,0(a1) + 770: 6105 addi sp,sp,32 + 772: 8082 ret + 774: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff8779> + 776: 3f7d addiw t5,t5,-1 + 778: b3d1 j 53c + 77a: e826 sd s1,16(sp) + 77c: e44a sd s2,8(sp) + 77e: 4859 li a6,22 + 780: 8976 mv s2,t4 + 782: 11d84363 blt a6,t4,888 + 786: 0009049b sext.w s1,s2 + 78a: 00005e17 auipc t3,0x5 + 78e: c6ee0e13 addi t3,t3,-914 # 53f8 + 792: 00349813 slli a6,s1,0x3 + 796: 9872 add a6,a6,t3 + 798: 00083687 fld fa3,0(a6) + 79c: 00083803 ld a6,0(a6) + 7a0: f20887d3 fmv.d.x fa5,a7 + 7a4: f8000fb7 lui t6,0xf8000 + 7a8: 010ff833 and a6,t6,a6 + 7ac: 12f6f553 fmul.d fa0,fa3,fa5 + 7b0: f20807d3 fmv.d.x fa5,a6 + 7b4: 011ff433 and s0,t6,a7 + 7b8: f2040753 fmv.d.x fa4,s0 + 7bc: 0af6f6d3 fsub.d fa3,fa3,fa5 + 7c0: f20887d3 fmv.d.x fa5,a7 + 7c4: f2080653 fmv.d.x fa2,a6 + 7c8: 412e8ebb subw t4,t4,s2 + 7cc: 0ae7f753 fsub.d fa4,fa5,fa4 + 7d0: f20407d3 fmv.d.x fa5,s0 + 7d4: e20508d3 fmv.x.d a7,fa0 + 7d8: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 + 7dc: f2040653 fmv.d.x fa2,s0 + 7e0: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 + 7e4: f2080653 fmv.d.x fa2,a6 + 7e8: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 + 7ec: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 + 7f0: 080e8963 beqz t4,882 + 7f4: 02e577d3 fadd.d fa5,fa0,fa4 + 7f8: 0e8e slli t4,t4,0x3 + 7fa: 01de0833 add a6,t3,t4 + 7fe: 00083587 fld fa1,0(a6) + 802: 00231893 slli a7,t1,0x2 + 806: 411308b3 sub a7,t1,a7 + 80a: 00389813 slli a6,a7,0x3 + 80e: e2078453 fmv.x.d s0,fa5 + 812: 12f5f7d3 fmul.d fa5,fa1,fa5 + 816: 981a add a6,a6,t1 + 818: 987a add a6,a6,t5 + 81a: 40980833 sub a6,a6,s1 + 81e: 080e slli a6,a6,0x3 + 820: 9872 add a6,a6,t3 + 822: 00083e83 ld t4,0(a6) + 826: 008ff833 and a6,t6,s0 + 82a: e20788d3 fmv.x.d a7,fa5 + 82e: f20806d3 fmv.d.x fa3,a6 + 832: f20407d3 fmv.d.x fa5,s0 + 836: 01dfffb3 and t6,t6,t4 + 83a: f20880d3 fmv.d.x ft1,a7 + 83e: 0ad7f653 fsub.d fa2,fa5,fa3 + 842: f20f87d3 fmv.d.x fa5,t6 + 846: 64c2 ld s1,16(sp) + 848: 6922 ld s2,8(sp) + 84a: 0af5f053 fsub.d ft0,fa1,fa5 + 84e: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 + 852: f20407d3 fmv.d.x fa5,s0 + 856: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 85a: f2080553 fmv.d.x fa0,a6 + 85e: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 + 862: 0af77753 fsub.d fa4,fa4,fa5 + 866: f20f87d3 fmv.d.x fa5,t6 + 86a: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 + 86e: 7a067643 fmadd.d fa2,fa2,ft0,fa5 + 872: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 + 876: b6b5 j 3e2 + 878: f20886d3 fmv.d.x fa3,a7 + 87c: f2000753 fmv.d.x fa4,zero + 880: b539 j 68e + 882: 64c2 ld s1,16(sp) + 884: 6922 ld s2,8(sp) + 886: beb1 j 3e2 + 888: 4959 li s2,22 + 88a: bdf5 j 786 + 88c: e826 sd s1,16(sp) + 88e: e44a sd s2,8(sp) + 890: ecc00393 li t2,-308 + 894: 4eed li t4,27 + 896: 4335 li t1,13 + 898: 14600f13 li t5,326 + 89c: b5cd j 77e + 89e: 26900313 li t1,617 + 8a2: 0303083b mulw a6,t1,a6 + 8a6: 41f8531b sraiw t1,a6,0x1f + 8aa: 0153531b srliw t1,t1,0x15 + 8ae: 0103033b addw t1,t1,a6 + 8b2: 40b3539b sraiw t2,t1,0xb + 8b6: 4849 li a6,18 + 8b8: 4078083b subw a6,a6,t2 + 8bc: b249 j 23e + +00000000000008be <_in_char.part.0>: +static int _in_char(_InContext *ctx) + 8be: 87aa mv a5,a0 + if (ctx->fd == -1) + 8c0: 4508 lw a0,8(a0) + 8c2: 577d li a4,-1 + 8c4: 00e51d63 bne a0,a4,8de <_in_char.part.0+0x20> + if (ctx->buf[ctx->pos] == '\0') + 8c8: 6b94 ld a3,16(a5) + 8ca: 6398 ld a4,0(a5) + 8cc: 9736 add a4,a4,a3 + 8ce: 00074603 lbu a2,0(a4) + 8d2: c60d beqz a2,8fc <_in_char.part.0+0x3e> + return (unsigned char)ctx->buf[ctx->pos++]; + 8d4: 0685 addi a3,a3,1 + 8d6: eb94 sd a3,16(a5) + 8d8: 00074503 lbu a0,0(a4) + 8dc: 8082 ret +static int _in_char(_InContext *ctx) + 8de: 1101 addi sp,sp,-32 + if (read(ctx->fd, &c, 1) == 1) + 8e0: 4605 li a2,1 + 8e2: 00f10593 addi a1,sp,15 +static int _in_char(_InContext *ctx) + 8e6: ec06 sd ra,24(sp) + if (read(ctx->fd, &c, 1) == 1) + 8e8: 801ff0ef jal e8 + 8ec: 4785 li a5,1 + 8ee: 00f51963 bne a0,a5,900 <_in_char.part.0+0x42> + return (unsigned char)c; + 8f2: 00f14503 lbu a0,15(sp) +} + 8f6: 60e2 ld ra,24(sp) + 8f8: 6105 addi sp,sp,32 + 8fa: 8082 ret + return -1; + 8fc: 557d li a0,-1 +} + 8fe: 8082 ret + return -1; + 900: 557d li a0,-1 + 902: bfd5 j 8f6 <_in_char.part.0+0x38> + +0000000000000904 <_skip_space>: +{ + 904: 7139 addi sp,sp,-64 + 906: f822 sd s0,48(sp) + 908: f426 sd s1,40(sp) + 90a: f04a sd s2,32(sp) + 90c: ec4e sd s3,24(sp) + 90e: e852 sd s4,16(sp) + 910: fc06 sd ra,56(sp) + 912: 842a mv s0,a0 + ctx->ungotten = -1; + 914: 54fd li s1,-1 + if (read(ctx->fd, &c, 1) == 1) + 916: 00f10a13 addi s4,sp,15 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 91a: 02000913 li s2,32 + 91e: 4991 li s3,4 + if (ctx->ungotten >= 0) + 920: 4c1c lw a5,24(s0) + 922: 0407d163 bgez a5,964 <_skip_space+0x60> + if (ctx->fd == -1) + 926: 4408 lw a0,8(s0) + if (read(ctx->fd, &c, 1) == 1) + 928: 4605 li a2,1 + 92a: 85d2 mv a1,s4 + if (ctx->fd == -1) + 92c: 02951e63 bne a0,s1,968 <_skip_space+0x64> + if (ctx->buf[ctx->pos] == '\0') + 930: 6818 ld a4,16(s0) + 932: 601c ld a5,0(s0) + return (unsigned char)ctx->buf[ctx->pos++]; + 934: 00170693 addi a3,a4,1 + if (ctx->buf[ctx->pos] == '\0') + 938: 97ba add a5,a5,a4 + 93a: 0007c703 lbu a4,0(a5) # 7000 <_stdout+0x150> + 93e: cb19 beqz a4,954 <_skip_space+0x50> + return (unsigned char)ctx->buf[ctx->pos++]; + 940: e814 sd a3,16(s0) + 942: 0007c783 lbu a5,0(a5) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 946: ff77871b addiw a4,a5,-9 + 94a: fd278be3 beq a5,s2,920 <_skip_space+0x1c> + 94e: fce9f9e3 bgeu s3,a4,920 <_skip_space+0x1c> + ctx->ungotten = c; + 952: cc1c sw a5,24(s0) +} + 954: 70e2 ld ra,56(sp) + 956: 7442 ld s0,48(sp) + 958: 74a2 ld s1,40(sp) + 95a: 7902 ld s2,32(sp) + 95c: 69e2 ld s3,24(sp) + 95e: 6a42 ld s4,16(sp) + 960: 6121 addi sp,sp,64 + 962: 8082 ret + ctx->ungotten = -1; + 964: cc04 sw s1,24(s0) + return c; + 966: b7c5 j 946 <_skip_space+0x42> + if (read(ctx->fd, &c, 1) == 1) + 968: f80ff0ef jal e8 + 96c: 4785 li a5,1 + 96e: fef513e3 bne a0,a5,954 <_skip_space+0x50> + return (unsigned char)c; + 972: 00f14783 lbu a5,15(sp) + 976: bfc1 j 946 <_skip_space+0x42> + +0000000000000978 <_vscanf_core.constprop.0>: +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + 978: 7155 addi sp,sp,-208 + 97a: e586 sd ra,200(sp) + 97c: e95a sd s6,144(sp) + while (*p) + 97e: 0005c783 lbu a5,0(a1) +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + 982: e432 sd a2,8(sp) + while (*p) + 984: 68078b63 beqz a5,101a <_vscanf_core.constprop.0+0x6a2> + 988: e1a2 sd s0,192(sp) + 98a: fd26 sd s1,184(sp) + 98c: f152 sd s4,160(sp) + 98e: ed56 sd s5,152(sp) + 990: f4ee sd s11,104(sp) + 992: 842e mv s0,a1 + 994: 8daa mv s11,a0 + int assigned = 0; + 996: 4b01 li s6,0 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 998: 02000493 li s1,32 + 99c: 4a91 li s5,4 + if (*p != '%') + 99e: 02500a13 li s4,37 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 9a2: 04978763 beq a5,s1,9f0 <_vscanf_core.constprop.0+0x78> + 9a6: ff77869b addiw a3,a5,-9 + 9aa: 0ff6f693 zext.b a3,a3 + 9ae: 04daf163 bgeu s5,a3,9f0 <_vscanf_core.constprop.0+0x78> + if (*p != '%') + 9b2: 07478d63 beq a5,s4,a2c <_vscanf_core.constprop.0+0xb4> + _skip_space(ctx); + 9b6: 856e mv a0,s11 + 9b8: f4dff0ef jal 904 <_skip_space> + if (ctx->ungotten >= 0) + 9bc: 018da503 lw a0,24(s11) + 9c0: 04055a63 bgez a0,a14 <_vscanf_core.constprop.0+0x9c> + 9c4: 856e mv a0,s11 + 9c6: ef9ff0ef jal 8be <_in_char.part.0> + if (c != *p) + 9ca: 00044783 lbu a5,0(s0) + 9ce: 04a78a63 beq a5,a0,a22 <_vscanf_core.constprop.0+0xaa> + if (c != -1) + 9d2: 57fd li a5,-1 + 9d4: 00f50463 beq a0,a5,9dc <_vscanf_core.constprop.0+0x64> + ctx->ungotten = c; + 9d8: 00adac23 sw a0,24(s11) + 9dc: 640e ld s0,192(sp) + 9de: 74ea ld s1,184(sp) + 9e0: 7a0a ld s4,160(sp) + 9e2: 6aea ld s5,152(sp) + 9e4: 7da6 ld s11,104(sp) +} + 9e6: 60ae ld ra,200(sp) + 9e8: 855a mv a0,s6 + 9ea: 6b4a ld s6,144(sp) + 9ec: 6169 addi sp,sp,208 + 9ee: 8082 ret + _skip_space(ctx); + 9f0: 856e mv a0,s11 + 9f2: f13ff0ef jal 904 <_skip_space> + while (isspace(*p)) + 9f6: 00044783 lbu a5,0(s0) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 9fa: 4611 li a2,4 + 9fc: ff77869b addiw a3,a5,-9 + a00: 0ff6f693 zext.b a3,a3 + a04: 00978663 beq a5,s1,a10 <_vscanf_core.constprop.0+0x98> + a08: 00d67463 bgeu a2,a3,a10 <_vscanf_core.constprop.0+0x98> + while (*p) + a0c: fbd9 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + a0e: b7f9 j 9dc <_vscanf_core.constprop.0+0x64> + p++; + a10: 0405 addi s0,s0,1 + a12: b7d5 j 9f6 <_vscanf_core.constprop.0+0x7e> + ctx->ungotten = -1; + a14: 57fd li a5,-1 + a16: 00fdac23 sw a5,24(s11) + if (c != *p) + a1a: 00044783 lbu a5,0(s0) + a1e: faa79ae3 bne a5,a0,9d2 <_vscanf_core.constprop.0+0x5a> + while (*p) + a22: 00144783 lbu a5,1(s0) + p++; + a26: 0405 addi s0,s0,1 + while (*p) + a28: ffad bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + a2a: bf4d j 9dc <_vscanf_core.constprop.0+0x64> + a2c: f94a sd s2,176(sp) + a2e: f54e sd s3,168(sp) + a30: e55e sd s7,136(sp) + a32: e162 sd s8,128(sp) + if (*p == '*') + a34: 00144583 lbu a1,1(s0) + a38: 02a00793 li a5,42 + a3c: 22f58d63 beq a1,a5,c76 <_vscanf_core.constprop.0+0x2fe> + p++; + a40: 0405 addi s0,s0,1 + int suppress = 0; + a42: 4981 li s3,0 + while (*p >= '0' && *p <= '9') + a44: fd05861b addiw a2,a1,-48 + a48: 0ff67693 zext.b a3,a2 + a4c: 47a5 li a5,9 + a4e: 36d7e763 bltu a5,a3,dbc <_vscanf_core.constprop.0+0x444> + a52: 4781 li a5,0 + a54: 4825 li a6,9 + a56: a019 j a5c <_vscanf_core.constprop.0+0xe4> + width = width * 10 + (*p - '0'); + a58: 0016979b slliw a5,a3,0x1 + while (*p >= '0' && *p <= '9') + a5c: 00144583 lbu a1,1(s0) + width = width * 10 + (*p - '0'); + a60: 00f6093b addw s2,a2,a5 + a64: 0029169b slliw a3,s2,0x2 + while (*p >= '0' && *p <= '9') + a68: fd05861b addiw a2,a1,-48 + a6c: 0ff67513 zext.b a0,a2 + width = width * 10 + (*p - '0'); + a70: 012686bb addw a3,a3,s2 + p++; + a74: 0405 addi s0,s0,1 + while (*p >= '0' && *p <= '9') + a76: fea871e3 bgeu a6,a0,a58 <_vscanf_core.constprop.0+0xe0> + if (*p == 'l') + a7a: 06c00693 li a3,108 + p++; + a7e: 00140b93 addi s7,s0,1 + if (*p == 'l') + a82: 1ed58f63 beq a1,a3,c80 <_vscanf_core.constprop.0+0x308> + else if (*p == 'h') + a86: 06800693 li a3,104 + a8a: 2ad58863 beq a1,a3,d3a <_vscanf_core.constprop.0+0x3c2> + char spec = *p++; + a8e: 00044c03 lbu s8,0(s0) + a92: 8ba2 mv s7,s0 + int len_mod = 0; + a94: ec02 sd zero,24(sp) + char spec = *p++; + a96: 06300693 li a3,99 + a9a: 001b8413 addi s0,s7,1 + if (!spec) + a9e: 2adc0863 beq s8,a3,d4e <_vscanf_core.constprop.0+0x3d6> + aa2: 1f86fc63 bgeu a3,s8,c9a <_vscanf_core.constprop.0+0x322> + aa6: f9cc069b addiw a3,s8,-100 + aaa: 0ff6f693 zext.b a3,a3 + aae: 4651 li a2,20 + ab0: 0cd66e63 bltu a2,a3,b8c <_vscanf_core.constprop.0+0x214> + ab4: 00120637 lui a2,0x120 + ab8: 4585 li a1,1 + aba: 00d595b3 sll a1,a1,a3 + abe: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x118799> + ac2: 8e6d and a2,a2,a1 + ac4: ee69 bnez a2,b9e <_vscanf_core.constprop.0+0x226> + ac6: 89b9 andi a1,a1,14 + ac8: 1e059263 bnez a1,cac <_vscanf_core.constprop.0+0x334> + acc: 463d li a2,15 + ace: 0ac69f63 bne a3,a2,b8c <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + ad2: 856e mv a0,s11 + ad4: e31ff0ef jal 904 <_skip_space> + char *buf = suppress ? NULL : va_arg(ap, char *); + ad8: ec02 sd zero,24(sp) + ada: 00099763 bnez s3,ae8 <_vscanf_core.constprop.0+0x170> + ade: 67a2 ld a5,8(sp) + ae0: 6398 ld a4,0(a5) + ae2: 07a1 addi a5,a5,8 + ae4: e43e sd a5,8(sp) + ae6: ec3a sd a4,24(sp) + if (ctx->ungotten >= 0) + ae8: 018da503 lw a0,24(s11) + aec: 2e055b63 bgez a0,de2 <_vscanf_core.constprop.0+0x46a> + af0: 856e mv a0,s11 + af2: dcdff0ef jal 8be <_in_char.part.0> + while (c != -1 && !isspace(c)) + af6: 56fd li a3,-1 + af8: 6ad50363 beq a0,a3,119e <_vscanf_core.constprop.0+0x826> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + afc: 02000693 li a3,32 + b00: 3ed50963 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b04: 46a5 li a3,9 + b06: 3ed50663 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b0a: 46a9 li a3,10 + b0c: 3ed50363 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b10: 46ad li a3,11 + b12: 3ed50063 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b16: 46b1 li a3,12 + b18: 3cd50d63 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b1c: 46b5 li a3,13 + b1e: 3cd50a63 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b22: 67e2 ld a5,24(sp) + b24: fce6 sd s9,120(sp) + b26: f8ea sd s10,112(sp) + b28: e83e sd a5,16(sp) + b2a: 4d01 li s10,0 + while (c != -1 && !isspace(c)) + b2c: 5c7d li s8,-1 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + b2e: 02000c93 li s9,32 + if (width > 0 && i >= width) + b32: 01205463 blez s2,b3a <_vscanf_core.constprop.0+0x1c2> + b36: 052d5563 bge s10,s2,b80 <_vscanf_core.constprop.0+0x208> + if (!suppress) + b3a: 00099563 bnez s3,b44 <_vscanf_core.constprop.0+0x1cc> + buf[i] = (char)c; + b3e: 67c2 ld a5,16(sp) + b40: 00a78023 sb a0,0(a5) + if (ctx->ungotten >= 0) + b44: 018da503 lw a0,24(s11) + i++; + b48: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + b4a: 30055963 bgez a0,e5c <_vscanf_core.constprop.0+0x4e4> + b4e: 856e mv a0,s11 + b50: d6fff0ef jal 8be <_in_char.part.0> + while (c != -1 && !isspace(c)) + b54: 27850663 beq a0,s8,dc0 <_vscanf_core.constprop.0+0x448> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + b58: 03950463 beq a0,s9,b80 <_vscanf_core.constprop.0+0x208> + b5c: 47a5 li a5,9 + b5e: 02f50163 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b62: 47a9 li a5,10 + b64: 00f50e63 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b68: 47ad li a5,11 + b6a: 00f50b63 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b6e: 47b1 li a5,12 + b70: 00f50863 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b74: 67c2 ld a5,16(sp) + b76: 0785 addi a5,a5,1 + b78: e83e sd a5,16(sp) + b7a: 47b5 li a5,13 + b7c: faf51be3 bne a0,a5,b32 <_vscanf_core.constprop.0+0x1ba> + if (!suppress) + b80: 64098a63 beqz s3,11d4 <_vscanf_core.constprop.0+0x85c> + b84: 7ce6 ld s9,120(sp) + b86: 7d46 ld s10,112(sp) + ctx->ungotten = c; + b88: 00adac23 sw a0,24(s11) + while (*p) + b8c: 001bc783 lbu a5,1(s7) + b90: 794a ld s2,176(sp) + b92: 79aa ld s3,168(sp) + b94: 6baa ld s7,136(sp) + b96: 6c0a ld s8,128(sp) + b98: e00795e3 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + b9c: b581 j 9dc <_vscanf_core.constprop.0+0x64> + _skip_space(ctx); + b9e: 856e mv a0,s11 + ba0: f8ea sd s10,112(sp) + ba2: d63ff0ef jal 904 <_skip_space> + if (ctx->ungotten >= 0) + ba6: 018da503 lw a0,24(s11) + baa: 24055063 bgez a0,dea <_vscanf_core.constprop.0+0x472> + bae: 856e mv a0,s11 + bb0: d0fff0ef jal 8be <_in_char.part.0> + if (c == '-' || c == '+') + bb4: fd55069b addiw a3,a0,-43 + bb8: 9af5 andi a3,a3,-3 + bba: 2681 sext.w a3,a3 + int i = 0, c = _in_char(ctx); + bbc: 4d01 li s10,0 + if (c == '-' || c == '+') + bbe: 3e068863 beqz a3,fae <_vscanf_core.constprop.0+0x636> + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + bc2: 07800693 li a3,120 + bc6: 4641 li a2,16 + bc8: 00dc0863 beq s8,a3,bd8 <_vscanf_core.constprop.0+0x260> + bcc: 06900693 li a3,105 + bd0: 4629 li a2,10 + bd2: 00dc1363 bne s8,a3,bd8 <_vscanf_core.constprop.0+0x260> + bd6: 4601 li a2,0 + while (c != -1 && i < 63) + bd8: 56fd li a3,-1 + bda: 5cd50863 beq a0,a3,11aa <_vscanf_core.constprop.0+0x832> + bde: fce6 sd s9,120(sp) + be0: 02010893 addi a7,sp,32 + be4: 01a88c33 add s8,a7,s10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + be8: 4cc1 li s9,16 + int digit = (c >= '0' && c <= '9'); + bea: fd05069b addiw a3,a0,-48 + bee: 0005031b sext.w t1,a0 + bf2: 00a6b593 sltiu a1,a3,10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + bf6: 27960a63 beq a2,s9,e6a <_vscanf_core.constprop.0+0x4f2> + bfa: 2a060d63 beqz a2,eb4 <_vscanf_core.constprop.0+0x53c> + int x = (c == 'x' || c == 'X'); + bfe: 07800793 li a5,120 + c02: 2ef50363 beq a0,a5,ee8 <_vscanf_core.constprop.0+0x570> + c06: fa850693 addi a3,a0,-88 + c0a: 0016b693 seqz a3,a3 + c0e: 4301 li t1,0 + if (width > 0 && i >= width) + c10: 01205463 blez s2,c18 <_vscanf_core.constprop.0+0x2a0> + c14: 032d5a63 bge s10,s2,c48 <_vscanf_core.constprop.0+0x2d0> + if (digit || hex || x) + c18: 0066e6b3 or a3,a3,t1 + c1c: 8ecd or a3,a3,a1 + c1e: c68d beqz a3,c48 <_vscanf_core.constprop.0+0x2d0> + num_buf[i++] = (char)c; + c20: 00ac0023 sb a0,0(s8) + if (ctx->ungotten >= 0) + c24: 018da503 lw a0,24(s11) + num_buf[i++] = (char)c; + c28: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + c2a: 22055c63 bgez a0,e62 <_vscanf_core.constprop.0+0x4ea> + c2e: 856e mv a0,s11 + c30: e832 sd a2,16(sp) + c32: c8dff0ef jal 8be <_in_char.part.0> + while (c != -1 && i < 63) + c36: 57fd li a5,-1 + c38: 6642 ld a2,16(sp) + c3a: 3cf50263 beq a0,a5,ffe <_vscanf_core.constprop.0+0x686> + c3e: 03f00693 li a3,63 + c42: 0c05 addi s8,s8,1 + c44: fadd13e3 bne s10,a3,bea <_vscanf_core.constprop.0+0x272> + num_buf[i] = '\0'; + c48: 040d0793 addi a5,s10,64 + c4c: 1018 addi a4,sp,32 + c4e: 97ba add a5,a5,a4 + c50: fc078023 sb zero,-64(a5) + ctx->ungotten = c; + c54: 00adac23 sw a0,24(s11) + c58: 7ce6 ld s9,120(sp) + if (i == 0) + c5a: 1e0d0663 beqz s10,e46 <_vscanf_core.constprop.0+0x4ce> + if (!suppress) + c5e: 36098363 beqz s3,fc4 <_vscanf_core.constprop.0+0x64c> + while (*p) + c62: 001bc783 lbu a5,1(s7) + { + c66: 794a ld s2,176(sp) + c68: 79aa ld s3,168(sp) + c6a: 6baa ld s7,136(sp) + c6c: 6c0a ld s8,128(sp) + c6e: 7d46 ld s10,112(sp) + while (*p) + c70: d20799e3 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + c74: b3a5 j 9dc <_vscanf_core.constprop.0+0x64> + while (*p >= '0' && *p <= '9') + c76: 00244583 lbu a1,2(s0) + suppress = 1; + c7a: 4985 li s3,1 + p++; + c7c: 0409 addi s0,s0,2 + c7e: b3d9 j a44 <_vscanf_core.constprop.0+0xcc> + if (*p == 'l') + c80: 00144c03 lbu s8,1(s0) + len_mod = 1; + c84: 4785 li a5,1 + c86: ec3e sd a5,24(sp) + if (*p == 'l') + c88: e0bc17e3 bne s8,a1,a96 <_vscanf_core.constprop.0+0x11e> + len_mod = 2; + c8c: 4789 li a5,2 + char spec = *p++; + c8e: 00244c03 lbu s8,2(s0) + p++; + c92: 00240b93 addi s7,s0,2 + len_mod = 2; + c96: ec3e sd a5,24(sp) + c98: bbfd j a96 <_vscanf_core.constprop.0+0x11e> + c9a: 100c0763 beqz s8,da8 <_vscanf_core.constprop.0+0x430> + c9e: fbbc079b addiw a5,s8,-69 + ca2: 0ff7f793 zext.b a5,a5 + ca6: 4689 li a3,2 + ca8: eef6e2e3 bltu a3,a5,b8c <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + cac: 856e mv a0,s11 + cae: f8ea sd s10,112(sp) + cb0: c55ff0ef jal 904 <_skip_space> + if (ctx->ungotten >= 0) + cb4: 018da783 lw a5,24(s11) + cb8: 1207dd63 bgez a5,df2 <_vscanf_core.constprop.0+0x47a> + cbc: 856e mv a0,s11 + cbe: c01ff0ef jal 8be <_in_char.part.0> + if (c == '-' || c == '+') + cc2: fd55069b addiw a3,a0,-43 + cc6: ffd6f613 andi a2,a3,-3 + cca: 2601 sext.w a2,a2 + ccc: 87aa mv a5,a0 + cce: 12060c63 beqz a2,e06 <_vscanf_core.constprop.0+0x48e> + while (c != -1 && i < 63) + cd2: 567d li a2,-1 + cd4: 16c50963 beq a0,a2,e46 <_vscanf_core.constprop.0+0x4ce> + cd8: fce6 sd s9,120(sp) + int i = 0, c = _in_char(ctx); + cda: 4d01 li s10,0 + cdc: 80000937 lui s2,0x80000 + ce0: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff8777> + ce2: 0932 slli s2,s2,0xc + ce4: 80194913 xori s2,s2,-2047 + ce8: 093e slli s2,s2,0xf + cea: 02010813 addi a6,sp,32 + cee: 01a80cb3 add s9,a6,s10 + cf2: 03a00c13 li s8,58 + cf6: 1935 addi s2,s2,-19 + cf8: a831 j d14 <_vscanf_core.constprop.0+0x39c> + cfa: bc5ff0ef jal 8be <_in_char.part.0> + while (c != -1 && i < 63) + cfe: 577d li a4,-1 + d00: 87aa mv a5,a0 + d02: 2ee50563 beq a0,a4,fec <_vscanf_core.constprop.0+0x674> + d06: 03f00713 li a4,63 + d0a: 0c85 addi s9,s9,1 + d0c: 1eed0e63 beq s10,a4,f08 <_vscanf_core.constprop.0+0x590> + d10: fd57869b addiw a3,a5,-43 + int c = ctx->ungotten; + d14: 00d95633 srl a2,s2,a3 + d18: 856e mv a0,s11 + d1a: 8a05 andi a2,a2,1 + d1c: 1edc6663 bltu s8,a3,f08 <_vscanf_core.constprop.0+0x590> + d20: 1e060463 beqz a2,f08 <_vscanf_core.constprop.0+0x590> + num_buf[i++] = (char)c; + d24: 00fc8023 sb a5,0(s9) + if (ctx->ungotten >= 0) + d28: 018da783 lw a5,24(s11) + num_buf[i++] = (char)c; + d2c: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + d2e: fc07c6e3 bltz a5,cfa <_vscanf_core.constprop.0+0x382> + ctx->ungotten = -1; + d32: 577d li a4,-1 + d34: 00edac23 sw a4,24(s11) + while (c != -1 && i < 63) + d38: b7f9 j d06 <_vscanf_core.constprop.0+0x38e> + if (*p == 'h') + d3a: 00144c03 lbu s8,1(s0) + int len_mod = 0; + d3e: ec02 sd zero,24(sp) + if (*p == 'h') + d40: d4bc1be3 bne s8,a1,a96 <_vscanf_core.constprop.0+0x11e> + char spec = *p++; + d44: 00244c03 lbu s8,2(s0) + p++; + d48: 00240b93 addi s7,s0,2 + d4c: b3a9 j a96 <_vscanf_core.constprop.0+0x11e> + d4e: fce6 sd s9,120(sp) + d50: f8ea sd s10,112(sp) + int count = (width > 0) ? width : 1; + d52: 00090c1b sext.w s8,s2 + d56: 0d205a63 blez s2,e2a <_vscanf_core.constprop.0+0x4b2> + char *buf = suppress ? NULL : va_arg(ap, char *); + d5a: 4d01 li s10,0 + d5c: 06098d63 beqz s3,dd6 <_vscanf_core.constprop.0+0x45e> + for (int i = 0; i < count; i++) + d60: 9c6a add s8,s8,s10 + if (c == -1) + d62: 5cfd li s9,-1 + if (ctx->ungotten >= 0) + d64: 018da783 lw a5,24(s11) + ctx->ungotten = -1; + d68: 856e mv a0,s11 + if (ctx->ungotten >= 0) + d6a: 0207dc63 bgez a5,da2 <_vscanf_core.constprop.0+0x42a> + d6e: b51ff0ef jal 8be <_in_char.part.0> + d72: 87aa mv a5,a0 + if (c == -1) + d74: 0b950d63 beq a0,s9,e2e <_vscanf_core.constprop.0+0x4b6> + if (!suppress) + d78: 00099463 bnez s3,d80 <_vscanf_core.constprop.0+0x408> + buf[i] = (char)c; + d7c: 00fd0023 sb a5,0(s10) + for (int i = 0; i < count; i++) + d80: 0d05 addi s10,s10,1 + d82: ffac11e3 bne s8,s10,d64 <_vscanf_core.constprop.0+0x3ec> + while (*p) + d86: 001bc783 lbu a5,1(s7) + if (!suppress) + d8a: 00099363 bnez s3,d90 <_vscanf_core.constprop.0+0x418> + assigned++; + d8e: 2b05 addiw s6,s6,1 + d90: 794a ld s2,176(sp) + d92: 79aa ld s3,168(sp) + d94: 6baa ld s7,136(sp) + d96: 6c0a ld s8,128(sp) + d98: 7ce6 ld s9,120(sp) + d9a: 7d46 ld s10,112(sp) + while (*p) + d9c: c00793e3 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + da0: b935 j 9dc <_vscanf_core.constprop.0+0x64> + ctx->ungotten = -1; + da2: 019dac23 sw s9,24(s11) + if (c == -1) + da6: bfc9 j d78 <_vscanf_core.constprop.0+0x400> + da8: 640e ld s0,192(sp) + daa: 74ea ld s1,184(sp) + dac: 794a ld s2,176(sp) + dae: 79aa ld s3,168(sp) + db0: 7a0a ld s4,160(sp) + db2: 6aea ld s5,152(sp) + db4: 6baa ld s7,136(sp) + db6: 6c0a ld s8,128(sp) + db8: 7da6 ld s11,104(sp) + dba: b135 j 9e6 <_vscanf_core.constprop.0+0x6e> + int width = -1; + dbc: 597d li s2,-1 + dbe: b975 j a7a <_vscanf_core.constprop.0+0x102> + if (!suppress) + dc0: 3c099c63 bnez s3,1198 <_vscanf_core.constprop.0+0x820> + buf[i] = '\0'; + dc4: 67e2 ld a5,24(sp) + dc6: 01a786b3 add a3,a5,s10 + dca: 00068023 sb zero,0(a3) + while (*p) + dce: 001bc783 lbu a5,1(s7) + assigned++; + dd2: 2b05 addiw s6,s6,1 + dd4: bf75 j d90 <_vscanf_core.constprop.0+0x418> + char *buf = suppress ? NULL : va_arg(ap, char *); + dd6: 67a2 ld a5,8(sp) + dd8: 0007bd03 ld s10,0(a5) + ddc: 07a1 addi a5,a5,8 + dde: e43e sd a5,8(sp) + de0: b741 j d60 <_vscanf_core.constprop.0+0x3e8> + ctx->ungotten = -1; + de2: 56fd li a3,-1 + de4: 00ddac23 sw a3,24(s11) + while (c != -1 && !isspace(c)) + de8: bb11 j afc <_vscanf_core.constprop.0+0x184> + ctx->ungotten = -1; + dea: 56fd li a3,-1 + dec: 00ddac23 sw a3,24(s11) + return c; + df0: b3d1 j bb4 <_vscanf_core.constprop.0+0x23c> + if (c == '-' || c == '+') + df2: fd57869b addiw a3,a5,-43 + df6: ffd6f613 andi a2,a3,-3 + ctx->ungotten = -1; + dfa: 55fd li a1,-1 + dfc: 00bdac23 sw a1,24(s11) + if (c == '-' || c == '+') + e00: 2601 sext.w a2,a2 + e02: ec061be3 bnez a2,cd8 <_vscanf_core.constprop.0+0x360> + num_buf[i++] = (char)c; + e06: 02f10023 sb a5,32(sp) + if (ctx->ungotten >= 0) + e0a: 018da783 lw a5,24(s11) + e0e: 2207da63 bgez a5,1042 <_vscanf_core.constprop.0+0x6ca> + e12: 856e mv a0,s11 + e14: aabff0ef jal 8be <_in_char.part.0> + while (c != -1 && i < 63) + e18: 567d li a2,-1 + e1a: 87aa mv a5,a0 + num_buf[i++] = (char)c; + e1c: 4d05 li s10,1 + e1e: fd55069b addiw a3,a0,-43 + while (c != -1 && i < 63) + e22: 3ac50163 beq a0,a2,11c4 <_vscanf_core.constprop.0+0x84c> + e26: fce6 sd s9,120(sp) + e28: bd55 j cdc <_vscanf_core.constprop.0+0x364> + int count = (width > 0) ? width : 1; + e2a: 4c05 li s8,1 + e2c: b73d j d5a <_vscanf_core.constprop.0+0x3e2> + e2e: 640e ld s0,192(sp) + e30: 74ea ld s1,184(sp) + e32: 794a ld s2,176(sp) + e34: 79aa ld s3,168(sp) + e36: 7a0a ld s4,160(sp) + e38: 6aea ld s5,152(sp) + e3a: 6baa ld s7,136(sp) + e3c: 6c0a ld s8,128(sp) + e3e: 7ce6 ld s9,120(sp) + e40: 7d46 ld s10,112(sp) + e42: 7da6 ld s11,104(sp) + e44: b64d j 9e6 <_vscanf_core.constprop.0+0x6e> + e46: 640e ld s0,192(sp) + e48: 74ea ld s1,184(sp) + e4a: 794a ld s2,176(sp) + e4c: 79aa ld s3,168(sp) + e4e: 7a0a ld s4,160(sp) + e50: 6aea ld s5,152(sp) + e52: 6baa ld s7,136(sp) + e54: 6c0a ld s8,128(sp) + e56: 7d46 ld s10,112(sp) + e58: 7da6 ld s11,104(sp) + e5a: b671 j 9e6 <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + e5c: 018dac23 sw s8,24(s11) + while (c != -1 && !isspace(c)) + e60: b9e5 j b58 <_vscanf_core.constprop.0+0x1e0> + ctx->ungotten = -1; + e62: 57fd li a5,-1 + e64: 00fdac23 sw a5,24(s11) + while (c != -1 && i < 63) + e68: bbd9 j c3e <_vscanf_core.constprop.0+0x2c6> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e6a: f9f3069b addiw a3,t1,-97 + e6e: 4795 li a5,5 + e70: 06d7f263 bgeu a5,a3,ed4 <_vscanf_core.constprop.0+0x55c> + e74: fbf3031b addiw t1,t1,-65 + e78: 4795 li a5,5 + e7a: 0467fd63 bgeu a5,t1,ed4 <_vscanf_core.constprop.0+0x55c> + int x = (c == 'x' || c == 'X'); + e7e: 07800693 li a3,120 + e82: 18d50763 beq a0,a3,1010 <_vscanf_core.constprop.0+0x698> + e86: fa850693 addi a3,a0,-88 + e8a: 0016b693 seqz a3,a3 + if (base == 0 && i == 1 && num_buf[0] == '0' && x) + e8e: 4301 li t1,0 + e90: 32061663 bnez a2,11bc <_vscanf_core.constprop.0+0x844> + e94: 4785 li a5,1 + e96: 4601 li a2,0 + e98: d6fd1ce3 bne s10,a5,c10 <_vscanf_core.constprop.0+0x298> + e9c: 02014e03 lbu t3,32(sp) + ea0: 03000793 li a5,48 + ea4: d6fe16e3 bne t3,a5,c10 <_vscanf_core.constprop.0+0x298> + ea8: d60684e3 beqz a3,c10 <_vscanf_core.constprop.0+0x298> + base = 16; + eac: 4641 li a2,16 + if (width > 0 && i >= width) + eae: d7a919e3 bne s2,s10,c20 <_vscanf_core.constprop.0+0x2a8> + eb2: bb59 j c48 <_vscanf_core.constprop.0+0x2d0> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + eb4: f9f3069b addiw a3,t1,-97 + eb8: 4795 li a5,5 + eba: 02d7f263 bgeu a5,a3,ede <_vscanf_core.constprop.0+0x566> + ebe: fbf3031b addiw t1,t1,-65 + ec2: 0467f063 bgeu a5,t1,f02 <_vscanf_core.constprop.0+0x58a> + int x = (c == 'x' || c == 'X'); + ec6: 07800693 li a3,120 + eca: fad51ee3 bne a0,a3,e86 <_vscanf_core.constprop.0+0x50e> + ece: 4301 li t1,0 + ed0: 4685 li a3,1 + ed2: b7c9 j e94 <_vscanf_core.constprop.0+0x51c> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ed4: 4305 li t1,1 + int x = (c == 'x' || c == 'X'); + ed6: 4681 li a3,0 + if (width > 0 && i >= width) + ed8: d3204ee3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + edc: bb35 j c18 <_vscanf_core.constprop.0+0x2a0> + int x = (c == 'x' || c == 'X'); + ede: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ee0: 4305 li t1,1 + if (width > 0 && i >= width) + ee2: d32049e3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + ee6: bb0d j c18 <_vscanf_core.constprop.0+0x2a0> + ee8: 4301 li t1,0 + int x = (c == 'x' || c == 'X'); + eea: 4685 li a3,1 + if (width > 0 && i >= width) + eec: d32044e3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + ef0: bb05 j c20 <_vscanf_core.constprop.0+0x2a8> + if (!suppress) + ef2: c8099be3 bnez s3,b88 <_vscanf_core.constprop.0+0x210> + buf[i] = '\0'; + ef6: 67e2 ld a5,24(sp) + ef8: 00078023 sb zero,0(a5) + ctx->ungotten = c; + efc: 00adac23 sw a0,24(s11) + if (i > 0 && !suppress) + f00: b171 j b8c <_vscanf_core.constprop.0+0x214> + int x = (c == 'x' || c == 'X'); + f02: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + f04: 4305 li t1,1 + f06: b779 j e94 <_vscanf_core.constprop.0+0x51c> + num_buf[i] = '\0'; + f08: 040d0713 addi a4,s10,64 + f0c: 1014 addi a3,sp,32 + f0e: 96ba add a3,a3,a4 + f10: fc068023 sb zero,-64(a3) + ctx->ungotten = c; + f14: 00fdac23 sw a5,24(s11) + if (i == 0) + f18: f00d0be3 beqz s10,e2e <_vscanf_core.constprop.0+0x4b6> + f1c: 7ce6 ld s9,120(sp) + if (!suppress) + f1e: d40992e3 bnez s3,c62 <_vscanf_core.constprop.0+0x2ea> + if (*str == '-') + f22: 02014603 lbu a2,32(sp) + f26: 02d00793 li a5,45 + f2a: 1af60963 beq a2,a5,10dc <_vscanf_core.constprop.0+0x764> + else if (*str == '+') + f2e: 02b00793 li a5,43 + f32: 20f60a63 beq a2,a5,1146 <_vscanf_core.constprop.0+0x7ce> + f36: 00005797 auipc a5,0x5 + f3a: 9327b587 fld fa1,-1742(a5) # 5868 + f3e: 101c addi a5,sp,32 + while (*str >= '0' && *str <= '9') + f40: fd06069b addiw a3,a2,-48 + f44: 0ff6f513 zext.b a0,a3 + f48: 45a5 li a1,9 + f4a: f20007d3 fmv.d.x fa5,zero + f4e: 02a5e463 bltu a1,a0,f76 <_vscanf_core.constprop.0+0x5fe> + f52: 00005717 auipc a4,0x5 + f56: 91e73707 fld fa4,-1762(a4) # 5870 + f5a: 4525 li a0,9 + f5c: 0017c603 lbu a2,1(a5) + val = val * 10.0 + (*str - '0'); + f60: d20686d3 fcvt.d.w fa3,a3 + str++; + f64: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + f66: fd06069b addiw a3,a2,-48 + f6a: 0ff6f593 zext.b a1,a3 + val = val * 10.0 + (*str - '0'); + f6e: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 + while (*str >= '0' && *str <= '9') + f72: feb575e3 bgeu a0,a1,f5c <_vscanf_core.constprop.0+0x5e4> + if (*str == '.') + f76: 02e00693 li a3,46 + f7a: 16d60a63 beq a2,a3,10ee <_vscanf_core.constprop.0+0x776> + if (*str == 'e' || *str == 'E') + f7e: 0007c683 lbu a3,0(a5) + f82: 0df6f693 andi a3,a3,223 + f86: 04500613 li a2,69 + f8a: 0cc68463 beq a3,a2,1052 <_vscanf_core.constprop.0+0x6da> + *va_arg(ap, double *) = val; + f8e: 6722 ld a4,8(sp) + if (len_mod == 1) + f90: 4685 li a3,1 + return sign * val; + f92: 12b7f7d3 fmul.d fa5,fa5,fa1 + *va_arg(ap, double *) = val; + f96: 631c ld a5,0(a4) + *va_arg(ap, int64 *) = val; + f98: 0721 addi a4,a4,8 + f9a: e43a sd a4,8(sp) + if (len_mod == 1) + f9c: 6762 ld a4,24(sp) + f9e: 18d70b63 beq a4,a3,1134 <_vscanf_core.constprop.0+0x7bc> + *va_arg(ap, float *) = (float)val; + fa2: 4017f7d3 fcvt.s.d fa5,fa5 + assigned++; + fa6: 2b05 addiw s6,s6,1 + *va_arg(ap, float *) = (float)val; + fa8: 00f7a027 fsw fa5,0(a5) + fac: b95d j c62 <_vscanf_core.constprop.0+0x2ea> + num_buf[i++] = (char)c; + fae: 02a10023 sb a0,32(sp) + if (ctx->ungotten >= 0) + fb2: 018da503 lw a0,24(s11) + fb6: 06055463 bgez a0,101e <_vscanf_core.constprop.0+0x6a6> + fba: 856e mv a0,s11 + fbc: 903ff0ef jal 8be <_in_char.part.0> + num_buf[i++] = (char)c; + fc0: 4d05 li s10,1 + fc2: b101 j bc2 <_vscanf_core.constprop.0+0x24a> + int64 val = strtoll(num_buf, NULL, base); + fc4: 4581 li a1,0 + fc6: 1008 addi a0,sp,32 + fc8: 696030ef jal 465e + *va_arg(ap, int64 *) = val; + fcc: 67a2 ld a5,8(sp) + if (len_mod == 2) + fce: 6762 ld a4,24(sp) + fd0: 4689 li a3,2 + *va_arg(ap, int64 *) = val; + fd2: 07a1 addi a5,a5,8 + if (len_mod == 2) + fd4: 16d70363 beq a4,a3,113a <_vscanf_core.constprop.0+0x7c2> + *va_arg(ap, int64 *) = val; + fd8: 6722 ld a4,8(sp) + else if (len_mod == 1) + fda: 4605 li a2,1 + *va_arg(ap, int64 *) = val; + fdc: 6314 ld a3,0(a4) + else if (len_mod == 1) + fde: 6762 ld a4,24(sp) + fe0: 16c70163 beq a4,a2,1142 <_vscanf_core.constprop.0+0x7ca> + *va_arg(ap, int *) = (int)val; + fe4: c288 sw a0,0(a3) + assigned++; + fe6: 2b05 addiw s6,s6,1 + fe8: e43e sd a5,8(sp) + fea: b9a5 j c62 <_vscanf_core.constprop.0+0x2ea> + num_buf[i] = '\0'; + fec: 040d0793 addi a5,s10,64 + ff0: 1018 addi a4,sp,32 + ff2: 00e785b3 add a1,a5,a4 + ff6: fc058023 sb zero,-64(a1) + if (i == 0) + ffa: 7ce6 ld s9,120(sp) + ffc: b70d j f1e <_vscanf_core.constprop.0+0x5a6> + num_buf[i] = '\0'; + ffe: 040d0793 addi a5,s10,64 + 1002: 1018 addi a4,sp,32 + 1004: 00e78833 add a6,a5,a4 + 1008: fc080023 sb zero,-64(a6) + if (i == 0) + 100c: 7ce6 ld s9,120(sp) + 100e: b981 j c5e <_vscanf_core.constprop.0+0x2e6> + int x = (c == 'x' || c == 'X'); + 1010: 4301 li t1,0 + 1012: 4685 li a3,1 + if (width > 0 && i >= width) + 1014: c12040e3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + 1018: b101 j c18 <_vscanf_core.constprop.0+0x2a0> + int assigned = 0; + 101a: 4b01 li s6,0 + 101c: b2e9 j 9e6 <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + 101e: 56fd li a3,-1 + 1020: fce6 sd s9,120(sp) + 1022: 00ddac23 sw a3,24(s11) + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + 1026: 07800693 li a3,120 + 102a: 4641 li a2,16 + num_buf[i++] = (char)c; + 102c: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + 102e: badc09e3 beq s8,a3,be0 <_vscanf_core.constprop.0+0x268> + 1032: 06900693 li a3,105 + 1036: 4629 li a2,10 + num_buf[i++] = (char)c; + 1038: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + 103a: badc13e3 bne s8,a3,be0 <_vscanf_core.constprop.0+0x268> + 103e: 4601 li a2,0 + 1040: b645 j be0 <_vscanf_core.constprop.0+0x268> + ctx->ungotten = -1; + 1042: 56fd li a3,-1 + 1044: fce6 sd s9,120(sp) + 1046: 00ddac23 sw a3,24(s11) + num_buf[i++] = (char)c; + 104a: 4d05 li s10,1 + 104c: fd57869b addiw a3,a5,-43 + 1050: b171 j cdc <_vscanf_core.constprop.0+0x364> + if (*str == '-') + 1052: 0017c583 lbu a1,1(a5) + 1056: 02d00693 li a3,45 + 105a: 0ed58f63 beq a1,a3,1158 <_vscanf_core.constprop.0+0x7e0> + else if (*str == '+') + 105e: 02b00693 li a3,43 + 1062: 10d58e63 beq a1,a3,117e <_vscanf_core.constprop.0+0x806> + while (*str >= '0' && *str <= '9') + 1066: fd05861b addiw a2,a1,-48 + 106a: 0ff67513 zext.b a0,a2 + 106e: 45a5 li a1,9 + str++; + 1070: 00178693 addi a3,a5,1 + int esign = 1; + 1074: 4805 li a6,1 + while (*str >= '0' && *str <= '9') + 1076: 04a5ec63 bltu a1,a0,10ce <_vscanf_core.constprop.0+0x756> + 107a: 4525 li a0,9 + 107c: 0016c583 lbu a1,1(a3) + eval = eval * 10 + (*str - '0'); + 1080: 0029979b slliw a5,s3,0x2 + 1084: 013787bb addw a5,a5,s3 + 1088: 0017979b slliw a5,a5,0x1 + 108c: 00f609bb addw s3,a2,a5 + while (*str >= '0' && *str <= '9') + 1090: fd05861b addiw a2,a1,-48 + 1094: 0ff67593 zext.b a1,a2 + str++; + 1098: 0685 addi a3,a3,1 + while (*str >= '0' && *str <= '9') + 109a: feb571e3 bgeu a0,a1,107c <_vscanf_core.constprop.0+0x704> + while (eval--) + 109e: fff9879b addiw a5,s3,-1 + 10a2: 12098463 beqz s3,11ca <_vscanf_core.constprop.0+0x852> + double p = 1.0; + 10a6: 00004717 auipc a4,0x4 + 10aa: 7c273687 fld fa3,1986(a4) # 5868 + 10ae: 00004717 auipc a4,0x4 + 10b2: 7c273707 fld fa4,1986(a4) # 5870 + while (eval--) + 10b6: 56fd li a3,-1 + 10b8: 37fd addiw a5,a5,-1 + p *= 10.0; + 10ba: 12e6f6d3 fmul.d fa3,fa3,fa4 + while (eval--) + 10be: fed79de3 bne a5,a3,10b8 <_vscanf_core.constprop.0+0x740> + if (esign == 1) + 10c2: 4785 li a5,1 + 10c4: 00f80963 beq a6,a5,10d6 <_vscanf_core.constprop.0+0x75e> + val /= p; + 10c8: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 10cc: b5c9 j f8e <_vscanf_core.constprop.0+0x616> + double p = 1.0; + 10ce: 00004797 auipc a5,0x4 + 10d2: 79a7b687 fld fa3,1946(a5) # 5868 + val *= p; + 10d6: 12d7f7d3 fmul.d fa5,fa5,fa3 + 10da: bd55 j f8e <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 10dc: 00004797 auipc a5,0x4 + 10e0: 7847b587 fld fa1,1924(a5) # 5860 + 10e4: 02114603 lbu a2,33(sp) + str++; + 10e8: 02110793 addi a5,sp,33 + 10ec: bd91 j f40 <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 10ee: 0017c683 lbu a3,1(a5) + 10f2: 45a5 li a1,9 + str++; + 10f4: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + 10f6: fd06861b addiw a2,a3,-48 + 10fa: 0ff67513 zext.b a0,a2 + 10fe: e8a5e2e3 bltu a1,a0,f82 <_vscanf_core.constprop.0+0x60a> + double div = 10.0; + 1102: 00004717 auipc a4,0x4 + 1106: 76e73707 fld fa4,1902(a4) # 5870 + 110a: 22e70653 fmv.d fa2,fa4 + while (*str >= '0' && *str <= '9') + 110e: 4525 li a0,9 + val += (*str - '0') / div; + 1110: d20606d3 fcvt.d.w fa3,a2 + while (*str >= '0' && *str <= '9') + 1114: 0017c683 lbu a3,1(a5) + str++; + 1118: 0785 addi a5,a5,1 + val += (*str - '0') / div; + 111a: 1ac6f6d3 fdiv.d fa3,fa3,fa2 + while (*str >= '0' && *str <= '9') + 111e: fd06861b addiw a2,a3,-48 + 1122: 0ff67593 zext.b a1,a2 + div *= 10.0; + 1126: 12e67653 fmul.d fa2,fa2,fa4 + val += (*str - '0') / div; + 112a: 02d7f7d3 fadd.d fa5,fa5,fa3 + while (*str >= '0' && *str <= '9') + 112e: feb571e3 bgeu a0,a1,1110 <_vscanf_core.constprop.0+0x798> + 1132: bd81 j f82 <_vscanf_core.constprop.0+0x60a> + *va_arg(ap, double *) = val; + 1134: a39c fsd fa5,0(a5) + assigned++; + 1136: 2b05 addiw s6,s6,1 + 1138: b62d j c62 <_vscanf_core.constprop.0+0x2ea> + *va_arg(ap, int64 *) = val; + 113a: 6722 ld a4,8(sp) + 113c: 6314 ld a3,0(a4) + 113e: e288 sd a0,0(a3) + 1140: b55d j fe6 <_vscanf_core.constprop.0+0x66e> + *va_arg(ap, long *) = (long)val; + 1142: e288 sd a0,0(a3) + 1144: b54d j fe6 <_vscanf_core.constprop.0+0x66e> + while (*str >= '0' && *str <= '9') + 1146: 00004797 auipc a5,0x4 + 114a: 7227b587 fld fa1,1826(a5) # 5868 + 114e: 02114603 lbu a2,33(sp) + str++; + 1152: 02110793 addi a5,sp,33 + 1156: b3ed j f40 <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 1158: 0027c583 lbu a1,2(a5) + str++; + 115c: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 1160: 4525 li a0,9 + 1162: fd05861b addiw a2,a1,-48 + 1166: 0ff67793 zext.b a5,a2 + esign = -1; + 116a: 587d li a6,-1 + while (*str >= '0' && *str <= '9') + 116c: f0f577e3 bgeu a0,a5,107a <_vscanf_core.constprop.0+0x702> + double p = 1.0; + 1170: 00004797 auipc a5,0x4 + 1174: 6f87b687 fld fa3,1784(a5) # 5868 + val /= p; + 1178: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 117c: bd09 j f8e <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 117e: 0027c583 lbu a1,2(a5) + str++; + 1182: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 1186: 4525 li a0,9 + 1188: fd05861b addiw a2,a1,-48 + 118c: 0ff67793 zext.b a5,a2 + 1190: f2f56fe3 bltu a0,a5,10ce <_vscanf_core.constprop.0+0x756> + int esign = 1; + 1194: 4805 li a6,1 + 1196: b5d5 j 107a <_vscanf_core.constprop.0+0x702> + while (*p) + 1198: 001bc783 lbu a5,1(s7) + 119c: bed5 j d90 <_vscanf_core.constprop.0+0x418> + if (!suppress) + 119e: 9e0997e3 bnez s3,b8c <_vscanf_core.constprop.0+0x214> + buf[i] = '\0'; + 11a2: 67e2 ld a5,24(sp) + 11a4: 00078023 sb zero,0(a5) + 11a8: b2d5 j b8c <_vscanf_core.constprop.0+0x214> + num_buf[i] = '\0'; + 11aa: 040d0793 addi a5,s10,64 + 11ae: 1018 addi a4,sp,32 + 11b0: 97ba add a5,a5,a4 + 11b2: fc078023 sb zero,-64(a5) + if (i == 0) + 11b6: aa0d14e3 bnez s10,c5e <_vscanf_core.constprop.0+0x2e6> + 11ba: b171 j e46 <_vscanf_core.constprop.0+0x4ce> + 11bc: 4641 li a2,16 + if (width > 0 && i >= width) + 11be: a5204be3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + 11c2: bc99 j c18 <_vscanf_core.constprop.0+0x2a0> + num_buf[i] = '\0'; + 11c4: 020100a3 sb zero,33(sp) + if (i == 0) + 11c8: bb99 j f1e <_vscanf_core.constprop.0+0x5a6> + double p = 1.0; + 11ca: 00004797 auipc a5,0x4 + 11ce: 69e7b687 fld fa3,1694(a5) # 5868 + 11d2: bdc5 j 10c2 <_vscanf_core.constprop.0+0x74a> + buf[i] = '\0'; + 11d4: 67e2 ld a5,24(sp) + 11d6: 01a786b3 add a3,a5,s10 + 11da: 00068023 sb zero,0(a3) + ctx->ungotten = c; + 11de: 00adac23 sw a0,24(s11) + while (*p) + 11e2: 001bc783 lbu a5,1(s7) + 11e6: b6f5 j dd2 <_vscanf_core.constprop.0+0x45a> + +00000000000011e8 <_out_char>: +{ + 11e8: 7179 addi sp,sp,-48 + 11ea: ec26 sd s1,24(sp) + if (ctx->stream) + 11ec: 6d04 ld s1,24(a0) +{ + 11ee: f022 sd s0,32(sp) + 11f0: f406 sd ra,40(sp) + 11f2: 842a mv s0,a0 + 11f4: 872e mv a4,a1 + if (ctx->stream) + 11f6: c0a1 beqz s1,1236 <_out_char+0x4e> + 11f8: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 11fa: 41c4a903 lw s2,1052(s1) + 11fe: 4789 li a5,2 + 1200: 04f90d63 beq s2,a5,125a <_out_char+0x72> + stream->buffer[stream->buf_write_pos++] = (char)c; + 1204: 4104a783 lw a5,1040(s1) + if (stream->buf_write_pos >= BUFSIZ) + 1208: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 120c: 0017861b addiw a2,a5,1 + 1210: 40c4a823 sw a2,1040(s1) + 1214: 97a6 add a5,a5,s1 + 1216: 00b78823 sb a1,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 121a: 08c6c063 blt a3,a2,129a <_out_char+0xb2> + else if (stream->buf_mode == 1 && c == '\n') + 121e: 4785 li a5,1 + 1220: 04f90a63 beq s2,a5,1274 <_out_char+0x8c> + ctx->written++; + 1224: 681c ld a5,16(s0) + 1226: 6942 ld s2,16(sp) +} + 1228: 70a2 ld ra,40(sp) + ctx->written++; + 122a: 0785 addi a5,a5,1 + 122c: e81c sd a5,16(s0) +} + 122e: 7402 ld s0,32(sp) + 1230: 64e2 ld s1,24(sp) + 1232: 6145 addi sp,sp,48 + 1234: 8082 ret + if (ctx->limit > 0 && ctx->written < ctx->limit - 1) + 1236: 6514 ld a3,8(a0) + 1238: 691c ld a5,16(a0) + 123a: ca89 beqz a3,124c <_out_char+0x64> + 123c: 16fd addi a3,a3,-1 + 123e: 00d7f763 bgeu a5,a3,124c <_out_char+0x64> + ctx->buf[ctx->written] = c; + 1242: 6114 ld a3,0(a0) + 1244: 97b6 add a5,a5,a3 + 1246: 00b78023 sb a1,0(a5) + ctx->written++; + 124a: 691c ld a5,16(a0) + 124c: 0785 addi a5,a5,1 +} + 124e: 70a2 ld ra,40(sp) + ctx->written++; + 1250: e81c sd a5,16(s0) +} + 1252: 7402 ld s0,32(sp) + 1254: 64e2 ld s1,24(sp) + 1256: 6145 addi sp,sp,48 + 1258: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 125a: 4088 lw a0,0(s1) + 125c: 4605 li a2,1 + 125e: 00f10593 addi a1,sp,15 + char ch = (char)c; + 1262: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 1266: e8bfe0ef jal f0 + 126a: 4785 li a5,1 + 126c: faf50ce3 beq a0,a5,1224 <_out_char+0x3c> + stream->error = 1; + 1270: c49c sw a5,8(s1) + return EOF; + 1272: bf4d j 1224 <_out_char+0x3c> + else if (stream->buf_mode == 1 && c == '\n') + 1274: 47a9 li a5,10 + 1276: faf597e3 bne a1,a5,1224 <_out_char+0x3c> + if (stream->buf_write_pos > 0) + 127a: fac055e3 blez a2,1224 <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 127e: 4088 lw a0,0(s1) + 1280: 01048593 addi a1,s1,16 + 1284: e6dfe0ef jal f0 + if (ret < stream->buf_write_pos) + 1288: 4104a783 lw a5,1040(s1) + 128c: 02f55063 bge a0,a5,12ac <_out_char+0xc4> + stream->error = 1; + 1290: 0124a423 sw s2,8(s1) + stream->buf_write_pos = 0; + 1294: 4004a823 sw zero,1040(s1) + return EOF; + 1298: b771 j 1224 <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 129a: 4088 lw a0,0(s1) + 129c: 01048593 addi a1,s1,16 + 12a0: e51fe0ef jal f0 + if (ret < stream->buf_write_pos) + 12a4: 4104a783 lw a5,1040(s1) + 12a8: 00f54563 blt a0,a5,12b2 <_out_char+0xca> + stream->buf_write_pos = 0; + 12ac: 4004a823 sw zero,1040(s1) + 12b0: bf95 j 1224 <_out_char+0x3c> + stream->error = 1; + 12b2: 4785 li a5,1 + 12b4: c49c sw a5,8(s1) + stream->buf_write_pos = 0; + 12b6: 4004a823 sw zero,1040(s1) + return EOF; + 12ba: b7ad j 1224 <_out_char+0x3c> + +00000000000012bc : + "75767778798081828384858687888990919293949596979899" +}; + +STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, char pperiod) +{ + stbsp__period = pperiod; + 12bc: 00005797 auipc a5,0x5 + 12c0: 6d478793 addi a5,a5,1748 # 6990 + 12c4: 0cb78623 sb a1,204(a5) + stbsp__comma = pcomma; + 12c8: 0ca786a3 sb a0,205(a5) +} + 12cc: 8082 ret + +00000000000012ce : + + return (stbsp__uint32)(sn - s); +} + +STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *callback, void *user, char *buf, char const *fmt, va_list va) +{ + 12ce: d1010113 addi sp,sp,-752 + // Check if the next 4 bytes contain %(0x25) or end of string. + // Using the 'hasless' trick: + // https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord + stbsp__uint32 v, c; + v = *(stbsp__uint32 *)f; + c = (~v) & 0x80808080; + 12d2: 808087b7 lui a5,0x80808 + if (((v ^ 0x25252525) - 0x01010101) & c) + 12d6: 252523b7 lui t2,0x25252 + 12da: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x2524ac9d> +{ + 12de: 29913c23 sd s9,664(sp) + 12e2: 29b13423 sd s11,648(sp) + int tlen = 0; + 12e6: 4c81 li s9,0 + if (((v ^ 0x25252525) - 0x01010101) & c) + 12e8: feff0db7 lui s11,0xfeff0 + c = (~v) & 0x80808080; + 12ec: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff808007f8> +{ + 12f0: 2e813023 sd s0,736(sp) + 12f4: 2c913c23 sd s1,728(sp) + 12f8: 2d213823 sd s2,720(sp) + 12fc: 2d313423 sd s3,712(sp) + 1300: 2b713423 sd s7,680(sp) + 1304: 2b813023 sd s8,672(sp) + 1308: 29a13823 sd s10,656(sp) + 130c: 2e113423 sd ra,744(sp) + 1310: 8d66 mv s10,s9 + 1312: 8432 mv s0,a2 + 1314: 8c9e mv s9,t2 + 1316: 89aa mv s3,a0 + 1318: e42e sd a1,8(sp) + 131a: 84b6 mv s1,a3 + 131c: 8bba mv s7,a4 + 131e: fc02 sd zero,56(sp) + for (;;) { + 1320: 8932 mv s2,a2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1322: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8677> + goto schk1; + if ((v - 0x01010101) & c) + goto schk2; + if (callback) + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1326: 20000c13 li s8,512 + 132a: 83be mv t2,a5 + while (((stbsp__uintptr)f) & 3) { + 132c: 0034f793 andi a5,s1,3 + 1330: c7a9 beqz a5,137a + if (f[0] == '%') + 1332: 0004c783 lbu a5,0(s1) + 1336: 02500713 li a4,37 + 133a: 0ee78263 beq a5,a4,141e + if (f[0] == 0) + 133e: cbd9 beqz a5,13d4 + stbsp__chk_cb_buf(1); + 1340: 02098663 beqz s3,136c + 1344: 4124063b subw a2,s0,s2 + 1348: 1fe00713 li a4,510 + 134c: 02c75063 bge a4,a2,136c + 1350: 65a2 ld a1,8(sp) + 1352: 854a mv a0,s2 + 1354: e81e sd t2,16(sp) + 1356: 00cd0d3b addw s10,s10,a2 + 135a: 9982 jalr s3 + 135c: 892a mv s2,a0 + 135e: e119 bnez a0,1364 + 1360: 0200106f j 2380 + *bf++ = f[0]; + 1364: 0004c783 lbu a5,0(s1) + stbsp__chk_cb_buf(1); + 1368: 63c2 ld t2,16(sp) + 136a: 842a mv s0,a0 + ++f; + 136c: 0485 addi s1,s1,1 + *bf++ = f[0]; + 136e: 00f40023 sb a5,0(s0) + while (((stbsp__uintptr)f) & 3) { + 1372: 0034f793 andi a5,s1,3 + *bf++ = f[0]; + 1376: 0405 addi s0,s0,1 + while (((stbsp__uintptr)f) & 3) { + 1378: ffcd bnez a5,1332 + v = *(stbsp__uint32 *)f; + 137a: 4094 lw a3,0(s1) + c = (~v) & 0x80808080; + 137c: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1380: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 1384: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1388: 01b7073b addw a4,a4,s11 + 138c: 8f7d and a4,a4,a5 + 138e: 2701 sext.w a4,a4 + 1390: f34d bnez a4,1332 + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1392: 460d li a2,3 + 1394: a805 j 13c4 + if (callback) + 1396: 00098863 beqz s3,13a6 + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 139a: 412407b3 sub a5,s0,s2 + 139e: 40fc07bb subw a5,s8,a5 + 13a2: f8f658e3 bge a2,a5,1332 + bf[2] = f[2]; + bf[3] = f[3]; + } else + #endif + { + *(stbsp__uint32 *)bf = v; + 13a6: c014 sw a3,0(s0) + v = *(stbsp__uint32 *)f; + 13a8: 40d4 lw a3,4(s1) + } + bf += 4; + 13aa: 0411 addi s0,s0,4 + f += 4; + 13ac: 0491 addi s1,s1,4 + c = (~v) & 0x80808080; + 13ae: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 13b2: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 13b6: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 13ba: 01b7073b addw a4,a4,s11 + 13be: 8f7d and a4,a4,a5 + 13c0: 2701 sext.w a4,a4 + 13c2: fb25 bnez a4,1332 + if ((v - 0x01010101) & c) + 13c4: 01b6873b addw a4,a3,s11 + 13c8: 8ff9 and a5,a5,a4 + 13ca: 2781 sext.w a5,a5 + 13cc: d7e9 beqz a5,1396 + if (f[0] == 0) + 13ce: 0004c783 lbu a5,0(s1) + 13d2: f7bd bnez a5,1340 +endfmt: + + if (!callback) + *bf = 0; + else + stbsp__flush_cb(); + 13d4: 8cea mv s9,s10 + 13d6: 412404bb subw s1,s0,s2 + if (!callback) + 13da: 70098563 beqz s3,1ae4 + stbsp__flush_cb(); + 13de: 00905663 blez s1,13ea + 13e2: 65a2 ld a1,8(sp) + 13e4: 8626 mv a2,s1 + 13e6: 854a mv a0,s2 + 13e8: 9982 jalr s3 + 13ea: 009c8cbb addw s9,s9,s1 + +done: + return tlen + (int)(bf - buf); +} + 13ee: 2e813083 ld ra,744(sp) + 13f2: 2e013403 ld s0,736(sp) + 13f6: 2d813483 ld s1,728(sp) + 13fa: 2d013903 ld s2,720(sp) + 13fe: 2c813983 ld s3,712(sp) + 1402: 2a813b83 ld s7,680(sp) + 1406: 2a013c03 ld s8,672(sp) + 140a: 29013d03 ld s10,656(sp) + 140e: 28813d83 ld s11,648(sp) + 1412: 8566 mv a0,s9 + 1414: 29813c83 ld s9,664(sp) + 1418: 2f010113 addi sp,sp,752 + 141c: 8082 ret + 141e: 2d413023 sd s4,704(sp) + 1422: 2b513c23 sd s5,696(sp) + 1426: 2b613823 sd s6,688(sp) + tz = 0; + 142a: 00248693 addi a3,s1,2 + fl = 0; + 142e: 4e01 li t3,0 + switch (f[0]) { + 1430: 03f00593 li a1,63 + 1434: 00004617 auipc a2,0x4 + 1438: d5460613 addi a2,a2,-684 # 5188 <_GLOBAL__sub_I__ZSt3cin+0x198> + 143c: fff6c783 lbu a5,-1(a3) + 1440: fff68493 addi s1,a3,-1 + 1444: fe07871b addiw a4,a5,-32 + 1448: 0ff77713 zext.b a4,a4 + 144c: 00e5ec63 bltu a1,a4,1464 + 1450: 070a slli a4,a4,0x2 + 1452: 9732 add a4,a4,a2 + 1454: 4318 lw a4,0(a4) + 1456: 9732 add a4,a4,a2 + 1458: 8702 jr a4 + if (f[0] == '*') { + 145a: 0014c783 lbu a5,1(s1) + fl |= STBSP__LEADINGZERO; + 145e: 010e6e13 ori t3,t3,16 + ++f; + 1462: 0485 addi s1,s1,1 + if (f[0] == '*') { + 1464: 02a00713 li a4,42 + 1468: 0ce79163 bne a5,a4,152a + fw = va_arg(va, stbsp__uint32); + 146c: 000bab03 lw s6,0(s7) + while ((f[0] >= '0') && (f[0] <= '9')) { + 1470: 0014c783 lbu a5,1(s1) + fw = va_arg(va, stbsp__uint32); + 1474: 0ba1 addi s7,s7,8 + ++f; + 1476: 0485 addi s1,s1,1 + if (f[0] == '.') { + 1478: 02e00713 li a4,46 + pr = -1; + 147c: 58fd li a7,-1 + if (f[0] == '.') { + 147e: 0ee78663 beq a5,a4,156a + switch (f[0]) { + 1482: 04900713 li a4,73 + 1486: 10e78263 beq a5,a4,158a + 148a: f987871b addiw a4,a5,-104 + 148e: 0ff77713 zext.b a4,a4 + 1492: 46c9 li a3,18 + 1494: 02e6e063 bltu a3,a4,14b4 + 1498: 00004697 auipc a3,0x4 + 149c: df068693 addi a3,a3,-528 # 5288 <_GLOBAL__sub_I__ZSt3cin+0x298> + 14a0: 070a slli a4,a4,0x2 + 14a2: 9736 add a4,a4,a3 + 14a4: 4318 lw a4,0(a4) + 14a6: 9736 add a4,a4,a3 + 14a8: 8702 jr a4 + if (f[0] == 'h') + 14aa: 0014c783 lbu a5,1(s1) + fl |= (sizeof(ptrdiff_t) == 8) ? STBSP__INTMAX : 0; + 14ae: 020e6e13 ori t3,t3,32 + ++f; + 14b2: 0485 addi s1,s1,1 + switch (f[0]) { + 14b4: fbf7871b addiw a4,a5,-65 + 14b8: 0ff77713 zext.b a4,a4 + 14bc: 03700693 li a3,55 + 14c0: 0ee6ea63 bltu a3,a4,15b4 + 14c4: 00004697 auipc a3,0x4 + 14c8: e1068693 addi a3,a3,-496 # 52d4 <_GLOBAL__sub_I__ZSt3cin+0x2e4> + 14cc: 070a slli a4,a4,0x2 + 14ce: 9736 add a4,a4,a3 + 14d0: 4318 lw a4,0(a4) + 14d2: 9736 add a4,a4,a3 + 14d4: 8702 jr a4 + fl |= STBSP__METRIC_NOSPACE; + 14d6: 400e6e13 ori t3,t3,1024 + continue; + 14da: 0685 addi a3,a3,1 + 14dc: b785 j 143c + fl |= STBSP__LEFTJUST; + 14de: 001e6e13 ori t3,t3,1 + continue; + 14e2: 0685 addi a3,a3,1 + 14e4: bfa1 j 143c + fl |= STBSP__LEADINGPLUS; + 14e6: 002e6e13 ori t3,t3,2 + continue; + 14ea: 0685 addi a3,a3,1 + 14ec: bf81 j 143c + fl |= STBSP__TRIPLET_COMMA; + 14ee: 040e6e13 ori t3,t3,64 + continue; + 14f2: 0685 addi a3,a3,1 + 14f4: b7a1 j 143c + if (fl & STBSP__METRIC_SUFFIX) { + 14f6: 100e7793 andi a5,t3,256 + 14fa: 8772 mv a4,t3 + 14fc: 56078363 beqz a5,1a62 + if (fl & STBSP__METRIC_1024) { + 1500: 6785 lui a5,0x1 + 1502: 034e1513 slli a0,t3,0x34 + 1506: 80078793 addi a5,a5,-2048 # 800 + 150a: 5c055863 bgez a0,1ada + fl |= STBSP__METRIC_JEDEC; + 150e: 6785 lui a5,0x1 + 1510: 8f5d or a4,a4,a5 + 1512: 00070e1b sext.w t3,a4 + 1516: 0685 addi a3,a3,1 + 1518: b715 j 143c + fl |= STBSP__LEADING_0X; + 151a: 008e6e13 ori t3,t3,8 + continue; + 151e: 0685 addi a3,a3,1 + 1520: bf31 j 143c + fl |= STBSP__LEADINGSPACE; + 1522: 004e6e13 ori t3,t3,4 + continue; + 1526: 0685 addi a3,a3,1 + 1528: bf11 j 143c + while ((f[0] >= '0') && (f[0] <= '9')) { + 152a: fd07871b addiw a4,a5,-48 # fd0 <_vscanf_core.constprop.0+0x658> + 152e: 0ff77713 zext.b a4,a4 + 1532: 4625 li a2,9 + fw = 0; + 1534: 4b01 li s6,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1536: 46a5 li a3,9 + 1538: f4e660e3 bltu a2,a4,1478 + fw = fw * 10 + f[0] - '0'; + 153c: 002b171b slliw a4,s6,0x2 + 1540: 0167073b addw a4,a4,s6 + 1544: 0017171b slliw a4,a4,0x1 + f++; + 1548: 0485 addi s1,s1,1 + fw = fw * 10 + f[0] - '0'; + 154a: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 154c: 0004c783 lbu a5,0(s1) + fw = fw * 10 + f[0] - '0'; + 1550: fd070b1b addiw s6,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1554: fd07871b addiw a4,a5,-48 + 1558: 0ff77713 zext.b a4,a4 + 155c: fee6f0e3 bgeu a3,a4,153c + if (f[0] == '.') { + 1560: 02e00713 li a4,46 + pr = -1; + 1564: 58fd li a7,-1 + if (f[0] == '.') { + 1566: f0e79ee3 bne a5,a4,1482 + if (f[0] == '*') { + 156a: 0014c783 lbu a5,1(s1) + 156e: 02a00713 li a4,42 + 1572: 52e79763 bne a5,a4,1aa0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1576: 0024c783 lbu a5,2(s1) + switch (f[0]) { + 157a: 04900713 li a4,73 + pr = va_arg(va, stbsp__uint32); + 157e: 000ba883 lw a7,0(s7) + ++f; + 1582: 0489 addi s1,s1,2 + pr = va_arg(va, stbsp__uint32); + 1584: 0ba1 addi s7,s7,8 + switch (f[0]) { + 1586: f0e792e3 bne a5,a4,148a + if ((f[1] == '6') && (f[2] == '4')) { + 158a: 0014c783 lbu a5,1(s1) + 158e: 03600713 li a4,54 + 1592: 00e79463 bne a5,a4,159a + 1596: 1e60106f j 277c + } else if ((f[1] == '3') && (f[2] == '2')) { + 159a: 03300713 li a4,51 + 159e: 6ae796e3 bne a5,a4,244a + 15a2: 0024c683 lbu a3,2(s1) + 15a6: 03200713 li a4,50 + 15aa: 00e69463 bne a3,a4,15b2 + 15ae: 0ae0106f j 265c + ++f; + 15b2: 0485 addi s1,s1,1 + *s = f[0]; + 15b4: 26f10fa3 sb a5,639(sp) + l = 1; + 15b8: 4785 li a5,1 + 15ba: d0be sw a5,96(sp) + lead[0] = 0; + 15bc: 06010423 sb zero,104(sp) + tail[0] = 0; + 15c0: 06010823 sb zero,112(sp) + dp = 0; + 15c4: d282 sw zero,100(sp) + 15c6: e0de sd s7,64(sp) + 15c8: 4701 li a4,0 + 15ca: 4301 li t1,0 + 15cc: 4f81 li t6,0 + 15ce: 4685 li a3,1 + 15d0: 4a01 li s4,0 + cs = 0; + 15d2: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 15d4: 27f10a93 addi s5,sp,639 + fw = fl = 0; + 15d8: 4e01 li t3,0 + tz = 0; + 15da: 4881 li a7,0 + if (fl & STBSP__LEADINGZERO) // if leading zeros, everything is in pr + 15dc: 010e7793 andi a5,t3,16 + 15e0: 40078ee3 beqz a5,21fc + pr = (fw > pr) ? fw : pr; + 15e4: 87ba mv a5,a4 + 15e6: 00675363 bge a4,t1,15ec + 15ea: 879a mv a5,t1 + 15ec: 0007871b sext.w a4,a5 + fw = 0; + 15f0: 4301 li t1,0 + if (fw + pr) { + 15f2: 62070563 beqz a4,1c1c + sn = lead + 1; + 15f6: 06910793 addi a5,sp,105 + 15fa: fcbe sd a5,120(sp) + while (lead[0]) { + 15fc: 0a0a0863 beqz s4,16ac + stbsp__cb_buf_clamp(i, lead[0]); + 1600: f026 sd s1,32(sp) + 1602: f436 sd a3,40(sp) + 1604: 854a mv a0,s2 + 1606: 86d2 mv a3,s4 + 1608: 84ce mv s1,s3 + stbsp__chk_cb_buf(1); + 160a: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 160e: 89be mv s3,a5 + 1610: 20000b13 li s6,512 + 1614: 87a2 mv a5,s0 + 1616: e846 sd a7,16(sp) + 1618: 846a mv s0,s10 + 161a: ec7e sd t6,24(sp) + 161c: 8d6e mv s10,s11 + 161e: f872 sd t3,48(sp) + 1620: 8de6 mv s11,s9 + 1622: 8a3a mv s4,a4 + 1624: e496 sd t0,72(sp) + 1626: 891a mv s2,t1 + 1628: 8c9e mv s9,t2 + 162a: 0006871b sext.w a4,a3 + 162e: 2e0482e3 beqz s1,2112 + 1632: 40a7863b subw a2,a5,a0 + 1636: 40cb083b subw a6,s6,a2 + 163a: 85c2 mv a1,a6 + 163c: 01075363 bge a4,a6,1642 + 1640: 85ba mv a1,a4 + lead[0] -= (char)i; + 1642: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 1644: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 1648: 06d10423 sb a3,104(sp) + while (i) { + 164c: c70d beqz a4,1676 + 164e: 7866 ld a6,120(sp) + 1650: 02071593 slli a1,a4,0x20 + 1654: 9181 srli a1,a1,0x20 + 1656: 00b78633 add a2,a5,a1 + 165a: 8742 mv a4,a6 + *bf++ = *sn++; + 165c: 00074683 lbu a3,0(a4) + 1660: 0785 addi a5,a5,1 + while (i) { + 1662: 0705 addi a4,a4,1 + *bf++ = *sn++; + 1664: fed78fa3 sb a3,-1(a5) + while (i) { + 1668: fec79ae3 bne a5,a2,165c + 166c: 982e add a6,a6,a1 + 166e: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 1670: c899 beqz s1,1686 + 1672: 40a7863b subw a2,a5,a0 + 1676: 00cbd863 bge s7,a2,1686 + 167a: 65a2 ld a1,8(sp) + 167c: 9c31 addw s0,s0,a2 + 167e: 9482 jalr s1 + 1680: 34050ee3 beqz a0,21dc + 1684: 87aa mv a5,a0 + while (lead[0]) { + 1686: 06814683 lbu a3,104(sp) + 168a: f2c5 bnez a3,162a + 168c: 83e6 mv t2,s9 + 168e: 68c2 ld a7,16(sp) + 1690: 8cee mv s9,s11 + 1692: 6fe2 ld t6,24(sp) + 1694: 8dea mv s11,s10 + 1696: 76a2 ld a3,40(sp) + 1698: 8d22 mv s10,s0 + 169a: 7e42 ld t3,48(sp) + 169c: 843e mv s0,a5 + 169e: 62a6 ld t0,72(sp) + 16a0: 87ce mv a5,s3 + 16a2: 89a6 mv s3,s1 + 16a4: 7482 ld s1,32(sp) + 16a6: 834a mv t1,s2 + 16a8: 8752 mv a4,s4 + 16aa: 892a mv s2,a0 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 16ac: 040e7b13 andi s6,t3,64 + c = cs >> 24; + 16b0: 0182d61b srliw a2,t0,0x18 + 16b4: 0182db9b srliw s7,t0,0x18 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 16b8: 4a01 li s4,0 + 16ba: 000b0e63 beqz s6,16d6 + cs &= 0xffffff; + 16be: 02829a13 slli s4,t0,0x28 + 16c2: 028a5a13 srli s4,s4,0x28 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 16c6: 00ea0a3b addw s4,s4,a4 + 16ca: 0016059b addiw a1,a2,1 + 16ce: 02ba7a3b remuw s4,s4,a1 + 16d2: 41460a3b subw s4,a2,s4 + while (pr > 0) { + 16d6: 0ce05763 blez a4,17a4 + *(stbsp__uint32 *)bf = 0x30303030; + 16da: 30303837 lui a6,0x30303 + 16de: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + 16e2: f026 sd s1,32(sp) + 16e4: 854a mv a0,s2 + 16e6: 84da mv s1,s6 + 16e8: 895e mv s2,s7 + 16ea: e4d6 sd s5,72(sp) + 16ec: 8b4e mv s6,s3 + 16ee: 8aea mv s5,s10 + stbsp__chk_cb_buf(1); + 16f0: 1fe00293 li t0,510 + 16f4: 8d6e mv s10,s11 + *bf++ = stbsp__comma; + 16f6: 00005f17 auipc t5,0x5 + 16fa: 29af0f13 addi t5,t5,666 # 6990 + 16fe: 8de6 mv s11,s9 + *bf++ = '0'; + 1700: 03000e93 li t4,48 + 1704: e846 sd a7,16(sp) + 1706: ec7e sd t6,24(sp) + 1708: f436 sd a3,40(sp) + 170a: f872 sd t3,48(sp) + 170c: e89a sd t1,80(sp) + 170e: 89ba mv s3,a4 + 1710: ecbe sd a5,88(sp) + 1712: 8bc2 mv s7,a6 + 1714: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, pr); + 1716: 240b0ee3 beqz s6,2172 + 171a: 40a407b3 sub a5,s0,a0 + 171e: 40fc063b subw a2,s8,a5 + 1722: 87b2 mv a5,a2 + 1724: 00c9d363 bge s3,a2,172a + 1728: 87ce mv a5,s3 + 172a: 0007859b sext.w a1,a5 + pr -= i; + 172e: 40f989bb subw s3,s3,a5 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 1732: 32048c63 beqz s1,1a6a + while (i) { + 1736: 34058a63 beqz a1,1a8a + 173a: 1582 slli a1,a1,0x20 + *bf++ = stbsp__comma; + 173c: 0cdf4603 lbu a2,205(t5) + 1740: 9181 srli a1,a1,0x20 + 1742: 95a2 add a1,a1,s0 + 1744: 0405 addi s0,s0,1 + if ((fl & STBSP__TRIPLET_COMMA) && (cs++ == c)) { + 1746: c481 beqz s1,174e + 1748: 1d4901e3 beq s2,s4,210a + 174c: 2a05 addiw s4,s4,1 + *bf++ = '0'; + 174e: 03000793 li a5,48 + 1752: fef40fa3 sb a5,-1(s0) + while (i) { + 1756: fe8597e3 bne a1,s0,1744 + stbsp__chk_cb_buf(1); + 175a: 320b0b63 beqz s6,1a90 + 175e: 40a5863b subw a2,a1,a0 + 1762: 32c2d763 bge t0,a2,1a90 + 1766: 65a2 ld a1,8(sp) + 1768: 01560abb addw s5,a2,s5 + 176c: 9b02 jalr s6 + 176e: 3a050ce3 beqz a0,2326 + 1772: 842a mv s0,a0 + 1774: 1fe00293 li t0,510 + 1778: 00005f17 auipc t5,0x5 + 177c: 218f0f13 addi t5,t5,536 # 6990 + 1780: 03000e93 li t4,48 + while (pr > 0) { + 1784: f93049e3 bgtz s3,1716 + while (lead[0]) { + 1788: 83e6 mv t2,s9 + 178a: 68c2 ld a7,16(sp) + 178c: 8cee mv s9,s11 + 178e: 6fe2 ld t6,24(sp) + 1790: 8dea mv s11,s10 + 1792: 7482 ld s1,32(sp) + 1794: 8d56 mv s10,s5 + 1796: 76a2 ld a3,40(sp) + 1798: 7e42 ld t3,48(sp) + 179a: 6346 ld t1,80(sp) + 179c: 67e6 ld a5,88(sp) + 179e: 6aa6 ld s5,72(sp) + 17a0: 892a mv s2,a0 + 17a2: 89da mv s3,s6 + 17a4: 06814a03 lbu s4,104(sp) + sn = lead + 1; + 17a8: fcbe sd a5,120(sp) + while (lead[0]) { + 17aa: 0a0a0263 beqz s4,184e + stbsp__cb_buf_clamp(i, lead[0]); + 17ae: ec26 sd s1,24(sp) + 17b0: f036 sd a3,32(sp) + 17b2: 854a mv a0,s2 + 17b4: 86d2 mv a3,s4 + 17b6: 84ce mv s1,s3 + 17b8: 87a2 mv a5,s0 + stbsp__chk_cb_buf(1); + 17ba: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 17be: 846a mv s0,s10 + 17c0: 20000b13 li s6,512 + 17c4: 8d6e mv s10,s11 + 17c6: e846 sd a7,16(sp) + 17c8: 8de6 mv s11,s9 + 17ca: 8a7e mv s4,t6 + 17cc: 8972 mv s2,t3 + 17ce: 899a mv s3,t1 + 17d0: 8c9e mv s9,t2 + 17d2: 0006871b sext.w a4,a3 + 17d6: 140482e3 beqz s1,211a + 17da: 40a7863b subw a2,a5,a0 + 17de: 40cb083b subw a6,s6,a2 + 17e2: 85c2 mv a1,a6 + 17e4: 01075363 bge a4,a6,17ea + 17e8: 85ba mv a1,a4 + lead[0] -= (char)i; + 17ea: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 17ec: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 17f0: 06d10423 sb a3,104(sp) + while (i) { + 17f4: c70d beqz a4,181e + 17f6: 7866 ld a6,120(sp) + 17f8: 02071593 slli a1,a4,0x20 + 17fc: 9181 srli a1,a1,0x20 + 17fe: 00b78633 add a2,a5,a1 + 1802: 8742 mv a4,a6 + *bf++ = *sn++; + 1804: 00074683 lbu a3,0(a4) + 1808: 0785 addi a5,a5,1 + while (i) { + 180a: 0705 addi a4,a4,1 + *bf++ = *sn++; + 180c: fed78fa3 sb a3,-1(a5) + while (i) { + 1810: fec79ae3 bne a5,a2,1804 + 1814: 982e add a6,a6,a1 + 1816: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 1818: c899 beqz s1,182e + 181a: 40a7863b subw a2,a5,a0 + 181e: 00cbd863 bge s7,a2,182e + 1822: 65a2 ld a1,8(sp) + 1824: 9c31 addw s0,s0,a2 + 1826: 9482 jalr s1 + 1828: 1a050ae3 beqz a0,21dc + 182c: 87aa mv a5,a0 + while (lead[0]) { + 182e: 06814683 lbu a3,104(sp) + 1832: f2c5 bnez a3,17d2 + 1834: 834e mv t1,s3 + 1836: 68c2 ld a7,16(sp) + 1838: 89a6 mv s3,s1 + 183a: 7682 ld a3,32(sp) + 183c: 64e2 ld s1,24(sp) + 183e: 8e4a mv t3,s2 + 1840: 83e6 mv t2,s9 + 1842: 8fd2 mv t6,s4 + 1844: 8cee mv s9,s11 + 1846: 892a mv s2,a0 + 1848: 8dea mv s11,s10 + 184a: 8d22 mv s10,s0 + 184c: 843e mv s0,a5 + while (n) { + 184e: c6f9 beqz a3,191c + STBSP__UNALIGNED(while (i >= 4) { + 1850: ec26 sd s1,24(sp) + 1852: 854a mv a0,s2 + 1854: 84d6 mv s1,s5 + 1856: 896a mv s2,s10 + 1858: 87a2 mv a5,s0 + 185a: 8d6e mv s10,s11 + stbsp__chk_cb_buf(1); + 185c: 1fe00b93 li s7,510 + STBSP__UNALIGNED(while (i >= 4) { + 1860: 8de6 mv s11,s9 + stbsp__cb_buf_clamp(i, n); + 1862: 20000b13 li s6,512 + STBSP__UNALIGNED(while (i >= 4) { + 1866: 4a0d li s4,3 + 1868: e87e sd t6,16(sp) + 186a: f072 sd t3,32(sp) + 186c: 8ac6 mv s5,a7 + 186e: f41a sd t1,40(sp) + 1870: 8436 mv s0,a3 + 1872: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, n); + 1874: 0004071b sext.w a4,s0 + 1878: 100982e3 beqz s3,217c + 187c: 40a78633 sub a2,a5,a0 + 1880: 40cb05bb subw a1,s6,a2 + 1884: 862e mv a2,a1 + 1886: 00b75363 bge a4,a1,188c + 188a: 863a mv a2,a4 + 188c: 0006071b sext.w a4,a2 + n -= i; + 1890: 9c11 subw s0,s0,a2 + STBSP__UNALIGNED(while (i >= 4) { + 1892: 14ea50e3 bge s4,a4,21d2 + 1896: ffc70f1b addiw t5,a4,-4 + 189a: 002f5e9b srliw t4,t5,0x2 + 189e: 001e8e1b addiw t3,t4,1 + 18a2: 0e0a slli t3,t3,0x2 + 18a4: 01c785b3 add a1,a5,t3 + 18a8: 8626 mv a2,s1 + 18aa: 4218 lw a4,0(a2) + 18ac: 0791 addi a5,a5,4 + 18ae: 0611 addi a2,a2,4 + 18b0: 2701 sext.w a4,a4 + 18b2: fee7ae23 sw a4,-4(a5) + 18b6: feb79ae3 bne a5,a1,18aa + 18ba: 002e9e9b slliw t4,t4,0x2 + 18be: 41df073b subw a4,t5,t4 + while (i) { + 18c2: 94f2 add s1,s1,t3 + 18c4: c31d beqz a4,18ea + 18c6: 8626 mv a2,s1 + 18c8: 87ae mv a5,a1 + 18ca: 00e58f3b addw t5,a1,a4 + *bf++ = *s++; + 18ce: 00064e83 lbu t4,0(a2) + 18d2: 0785 addi a5,a5,1 + while (i) { + 18d4: 00078e1b sext.w t3,a5 + *bf++ = *s++; + 18d8: ffd78fa3 sb t4,-1(a5) + 18dc: 0605 addi a2,a2,1 + while (i) { + 18de: ffcf18e3 bne t5,t3,18ce + 18e2: 1702 slli a4,a4,0x20 + 18e4: 9301 srli a4,a4,0x20 + 18e6: 95ba add a1,a1,a4 + 18e8: 94ba add s1,s1,a4 + stbsp__chk_cb_buf(1); + 18ea: 1a098763 beqz s3,1a98 + 18ee: 40a5863b subw a2,a1,a0 + 18f2: 1acbd363 bge s7,a2,1a98 + 18f6: 65a2 ld a1,8(sp) + 18f8: 0126093b addw s2,a2,s2 + 18fc: 9982 jalr s3 + 18fe: 20050be3 beqz a0,2314 + 1902: 87aa mv a5,a0 + while (n) { + 1904: f825 bnez s0,1874 + 1906: 6fc2 ld t6,16(sp) + 1908: 64e2 ld s1,24(sp) + 190a: 7e02 ld t3,32(sp) + 190c: 7322 ld t1,40(sp) + 190e: 83e6 mv t2,s9 + 1910: 88d6 mv a7,s5 + 1912: 8cee mv s9,s11 + 1914: 843e mv s0,a5 + 1916: 8dea mv s11,s10 + 1918: 8d4a mv s10,s2 + 191a: 892a mv s2,a0 + while (tz) { + 191c: 08088863 beqz a7,19ac + *(stbsp__uint32 *)bf = 0x30303030; + 1920: 30303b37 lui s6,0x30303 + *bf++ = '0'; + 1924: 03000a13 li s4,48 + while (i >= 4) { + 1928: 4a8d li s5,3 + stbsp__chk_cb_buf(1); + 192a: 1fe00693 li a3,510 + *(stbsp__uint32 *)bf = 0x30303030; + 192e: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + stbsp__cb_buf_clamp(i, tz); + 1932: 20000b93 li s7,512 + 1936: 040989e3 beqz s3,2188 + 193a: 41240633 sub a2,s0,s2 + 193e: 40cb87bb subw a5,s7,a2 + 1942: 873e mv a4,a5 + 1944: 00f8d363 bge a7,a5,194a + 1948: 8746 mv a4,a7 + 194a: 0007079b sext.w a5,a4 + tz -= i; + 194e: 40e888bb subw a7,a7,a4 + while (i) { + 1952: 08078ee3 beqz a5,21ee + if ((((stbsp__uintptr)bf) & 3) == 0) + 1956: 00347713 andi a4,s0,3 + 195a: e719 bnez a4,1968 + 195c: 0390006f j 2194 + 1960: 00347713 andi a4,s0,3 + 1964: 7a070f63 beqz a4,2122 + *bf++ = '0'; + 1968: 01440023 sb s4,0(s0) + --i; + 196c: 37fd addiw a5,a5,-1 + *bf++ = '0'; + 196e: 0405 addi s0,s0,1 + while (i) { + 1970: fbe5 bnez a5,1960 + stbsp__chk_cb_buf(1); + 1972: 02098b63 beqz s3,19a8 + 1976: 4124063b subw a2,s0,s2 + 197a: 02c6d763 bge a3,a2,19a8 + 197e: 65a2 ld a1,8(sp) + 1980: 854a mv a0,s2 + 1982: f81e sd t2,48(sp) + 1984: f41a sd t1,40(sp) + 1986: f072 sd t3,32(sp) + 1988: ec7e sd t6,24(sp) + 198a: e846 sd a7,16(sp) + 198c: 00cd0d3b addw s10,s10,a2 + 1990: 9982 jalr s3 + 1992: 892a mv s2,a0 + 1994: 1a0502e3 beqz a0,2338 + 1998: 73c2 ld t2,48(sp) + 199a: 7322 ld t1,40(sp) + 199c: 7e02 ld t3,32(sp) + 199e: 6fe2 ld t6,24(sp) + 19a0: 68c2 ld a7,16(sp) + 19a2: 842a mv s0,a0 + 19a4: 1fe00693 li a3,510 + while (tz) { + 19a8: f80897e3 bnez a7,1936 + sn = tail + 1; + 19ac: 07110793 addi a5,sp,113 + 19b0: fcbe sd a5,120(sp) + while (tail[0]) { + 19b2: 080f8763 beqz t6,1a40 + stbsp__cb_buf_clamp(i, tail[0]); + 19b6: 854a mv a0,s2 + 19b8: 8b6a mv s6,s10 + stbsp__chk_cb_buf(1); + 19ba: 1fe00a93 li s5,510 + stbsp__cb_buf_clamp(i, tail[0]); + 19be: 8d4e mv s10,s3 + 19c0: 20000a13 li s4,512 + 19c4: 8bf2 mv s7,t3 + 19c6: 891a mv s2,t1 + 19c8: 899e mv s3,t2 + 19ca: 000f879b sext.w a5,t6 + 19ce: 7c0d0863 beqz s10,219e + 19d2: 40a4063b subw a2,s0,a0 + 19d6: 40ca06bb subw a3,s4,a2 + 19da: 8736 mv a4,a3 + 19dc: 00d7d363 bge a5,a3,19e2 + 19e0: 873e mv a4,a5 + tail[0] -= (char)i; + 19e2: 40ef8fbb subw t6,t6,a4 + stbsp__cb_buf_clamp(i, tail[0]); + 19e6: 0007079b sext.w a5,a4 + tail[0] -= (char)i; + 19ea: 07f10823 sb t6,112(sp) + while (i) { + 19ee: c795 beqz a5,1a1a + 19f0: 75e6 ld a1,120(sp) + 19f2: 02079613 slli a2,a5,0x20 + 19f6: 9201 srli a2,a2,0x20 + 19f8: 00c406b3 add a3,s0,a2 + 19fc: 87ae mv a5,a1 + *bf++ = *sn++; + 19fe: 0007c703 lbu a4,0(a5) + 1a02: 0405 addi s0,s0,1 + while (i) { + 1a04: 0785 addi a5,a5,1 + *bf++ = *sn++; + 1a06: fee40fa3 sb a4,-1(s0) + while (i) { + 1a0a: fed41ae3 bne s0,a3,19fe + 1a0e: 95b2 add a1,a1,a2 + 1a10: fcae sd a1,120(sp) + stbsp__chk_cb_buf(1); + 1a12: 000d0d63 beqz s10,1a2c + 1a16: 40a4063b subw a2,s0,a0 + 1a1a: 00cad963 bge s5,a2,1a2c + 1a1e: 65a2 ld a1,8(sp) + 1a20: 00cb0b3b addw s6,s6,a2 + 1a24: 9d02 jalr s10 + 1a26: 200509e3 beqz a0,2438 + 1a2a: 842a mv s0,a0 + while (tail[0]) { + 1a2c: 07014f83 lbu t6,112(sp) + 1a30: f80f9de3 bnez t6,19ca + 1a34: 834a mv t1,s2 + 1a36: 83ce mv t2,s3 + 1a38: 8e5e mv t3,s7 + 1a3a: 89ea mv s3,s10 + 1a3c: 892a mv s2,a0 + 1a3e: 8d5a mv s10,s6 + if (fl & STBSP__LEFTJUST) + 1a40: 001e7e13 andi t3,t3,1 + 1a44: 000e0663 beqz t3,1a50 + if (fw > 0) { + 1a48: 00605463 blez t1,1a50 + 1a4c: 0300106f j 2a7c + for (;;) { + 1a50: 6b86 ld s7,64(sp) + 1a52: 2c013a03 ld s4,704(sp) + 1a56: 2b813a83 ld s5,696(sp) + 1a5a: 2b013b03 ld s6,688(sp) + ++f; + 1a5e: 0485 addi s1,s1,1 + for (;;) { + 1a60: b0f1 j 132c + fl |= STBSP__METRIC_SUFFIX; + 1a62: 100e6e13 ori t3,t3,256 + continue; + 1a66: 0685 addi a3,a3,1 + 1a68: bad1 j 143c + while (i) { + 1a6a: 0e0580e3 beqz a1,234a + if ((((stbsp__uintptr)bf) & 3) == 0) + 1a6e: 00347793 andi a5,s0,3 + 1a72: e799 bnez a5,1a80 + 1a74: 0dd0006f j 2350 + 1a78: 00347793 andi a5,s0,3 + 1a7c: 72078463 beqz a5,21a4 + *bf++ = '0'; + 1a80: 01d40023 sb t4,0(s0) + --i; + 1a84: 35fd addiw a1,a1,-1 + *bf++ = '0'; + 1a86: 0405 addi s0,s0,1 + while (i) { + 1a88: f9e5 bnez a1,1a78 + while (i) { + 1a8a: 85a2 mv a1,s0 + stbsp__chk_cb_buf(1); + 1a8c: cc0b19e3 bnez s6,175e + 1a90: 842e mv s0,a1 + while (pr > 0) { + 1a92: c93042e3 bgtz s3,1716 + 1a96: b9cd j 1788 + while (i) { + 1a98: 87ae mv a5,a1 + while (n) { + 1a9a: dc041de3 bnez s0,1874 + 1a9e: b5a5 j 1906 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1aa0: fd07871b addiw a4,a5,-48 + 1aa4: 0ff77713 zext.b a4,a4 + 1aa8: 4625 li a2,9 + ++f; + 1aaa: 0485 addi s1,s1,1 + pr = 0; + 1aac: 4881 li a7,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1aae: 46a5 li a3,9 + 1ab0: 9ce669e3 bltu a2,a4,1482 + pr = pr * 10 + f[0] - '0'; + 1ab4: 0028971b slliw a4,a7,0x2 + 1ab8: 0117073b addw a4,a4,a7 + 1abc: 0017171b slliw a4,a4,0x1 + f++; + 1ac0: 0485 addi s1,s1,1 + pr = pr * 10 + f[0] - '0'; + 1ac2: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1ac4: 0004c783 lbu a5,0(s1) + pr = pr * 10 + f[0] - '0'; + 1ac8: fd07089b addiw a7,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1acc: fd07871b addiw a4,a5,-48 + 1ad0: 0ff77713 zext.b a4,a4 + 1ad4: fee6f0e3 bgeu a3,a4,1ab4 + 1ad8: b26d j 1482 + fl |= STBSP__METRIC_1024; + 1ada: 8f5d or a4,a4,a5 + 1adc: 00070e1b sext.w t3,a4 + 1ae0: 0685 addi a3,a3,1 + 1ae2: baa9 j 143c + *bf = 0; + 1ae4: 00040023 sb zero,0(s0) + 1ae8: b209 j 13ea + if (f[0] == 'l') { + 1aea: 0014c783 lbu a5,1(s1) + 1aee: 06c00713 li a4,108 + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 1af2: 020e6e13 ori t3,t3,32 + if (f[0] == 'l') { + 1af6: 00e78c63 beq a5,a4,1b0e + ++f; + 1afa: 0485 addi s1,s1,1 + 1afc: ba65 j 14b4 + if (f[0] == 'h') + 1afe: 0014c783 lbu a5,1(s1) + 1b02: 06800713 li a4,104 + fl |= STBSP__HALFWIDTH; + 1b06: 200e6e13 ori t3,t3,512 + if (f[0] == 'h') + 1b0a: fee798e3 bne a5,a4,1afa + if ((f[1] == '6') && (f[2] == '4')) { + 1b0e: 0024c783 lbu a5,2(s1) + ++f; + 1b12: 0489 addi s1,s1,2 + 1b14: b245 j 14b4 + s = va_arg(va, char *); + 1b16: 008b8713 addi a4,s7,8 + 1b1a: e0ba sd a4,64(sp) + if (fl & STBSP__INTMAX) { + 1b1c: 020e7693 andi a3,t3,32 + 1b20: 8772 mv a4,t3 + 1b22: 24069ee3 bnez a3,257e + stbsp__int32 i = va_arg(va, stbsp__int32); + 1b26: 000ba683 lw a3,0(s7) + if ((f[0] != 'u') && (i < 0)) { + 1b2a: 07500613 li a2,117 + n64 = (stbsp__uint32)i; + 1b2e: 02069f13 slli t5,a3,0x20 + 1b32: 020f5f13 srli t5,t5,0x20 + if ((f[0] != 'u') && (i < 0)) { + 1b36: 00c78a63 beq a5,a2,1b4a + 1b3a: 0006d863 bgez a3,1b4a + fl |= STBSP__NEGATIVE; + 1b3e: 08076713 ori a4,a4,128 + n64 = (stbsp__uint32)-i; + 1b42: 40d00f3b negw t5,a3 + fl |= STBSP__NEGATIVE; + 1b46: 00070e1b sext.w t3,a4 + if (fl & STBSP__METRIC_SUFFIX) { + 1b4a: 100e7693 andi a3,t3,256 + 1b4e: 5c0683e3 beqz a3,2914 + if (n64 < 1024) + 1b52: 3ff00793 li a5,1023 + 1b56: 01e7e463 bltu a5,t5,1b5e + 1b5a: 0ea0106f j 2c44 + else if (pr == -1) + 1b5e: 57fd li a5,-1 + 1b60: 30f887e3 beq a7,a5,266e + fv = (double)(stbsp__int64)n64; + 1b64: d22f7553 fcvt.d.l fa0,t5 + if (fl & STBSP__METRIC_1024) + 1b68: 034e1793 slli a5,t3,0x34 + 1b6c: 0007c463 bltz a5,1b74 + 1b70: 2300106f j 2da0 + divisor = 1024.0; + 1b74: 00004797 auipc a5,0x4 + 1b78: d047b787 fld fa5,-764(a5) # 5878 + if ((fv < divisor) && (fv > -divisor)) + 1b7c: 22f79753 fneg.d fa4,fa5 + fl += 0x1000000; + 1b80: 010006b7 lui a3,0x1000 + while (fl < 0x4000000) { + 1b84: 04000737 lui a4,0x4000 + if ((fv < divisor) && (fv > -divisor)) + 1b88: a2f517d3 flt.d a5,fa0,fa5 + 1b8c: c789 beqz a5,1b96 + 1b8e: a2a717d3 flt.d a5,fa4,fa0 + 1b92: 3e079863 bnez a5,1f82 + fl += 0x1000000; + 1b96: 01c68e3b addw t3,a3,t3 + fv /= divisor; + 1b9a: 1af57553 fdiv.d fa0,fa0,fa5 + while (fl < 0x4000000) { + 1b9e: feee65e3 bltu t3,a4,1b88 + 1ba2: a6c5 j 1f82 + h = (f[0] == 'X') ? hexu : hex; + 1ba4: 05800693 li a3,88 + if (fl & STBSP__INTMAX) { + 1ba8: 020e7713 andi a4,t3,32 + h = (f[0] == 'X') ? hexu : hex; + 1bac: 00005817 auipc a6,0x5 + 1bb0: ecc80813 addi a6,a6,-308 # 6a78 + 1bb4: 00d79663 bne a5,a3,1bc0 + 1bb8: 00005817 auipc a6,0x5 + 1bbc: ea880813 addi a6,a6,-344 # 6a60 + l = (4 << 4) | (4 << 8); + 1bc0: 44000793 li a5,1088 + 1bc4: d0be sw a5,96(sp) + if (fl & STBSP__LEADING_0X) { + 1bc6: 008e7793 andi a5,t3,8 + 1bca: 7a079263 bnez a5,236e + lead[0] = 0; + 1bce: 06010423 sb zero,104(sp) + s = va_arg(va, char *); + 1bd2: 008b8793 addi a5,s7,8 + 1bd6: e0be sd a5,64(sp) + if (fl & STBSP__INTMAX) + 1bd8: 72070b63 beqz a4,230e + n64 = va_arg(va, stbsp__uint64); + 1bdc: 000bb683 ld a3,0(s7) + dp = 0; + 1be0: d282 sw zero,100(sp) + tail[0] = 0; + 1be2: 06010823 sb zero,112(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1be6: 001e7513 andi a0,t3,1 + if (n64 == 0) { + 1bea: 380694e3 bnez a3,2772 + lead[0] = 0; + 1bee: 06010423 sb zero,104(sp) + if (pr == 0) { + 1bf2: 78089a63 bnez a7,2386 + if (fw < (stbsp__int32)n) + 1bf6: fffb4313 not t1,s6 + 1bfa: 43f35313 srai t1,t1,0x3f + l = 0; + 1bfe: d082 sw zero,96(sp) + if (fw < (stbsp__int32)n) + 1c00: 01637333 and t1,t1,s6 + goto scopy; + 1c04: 4701 li a4,0 + 1c06: 4f81 li t6,0 + 1c08: 4a01 li s4,0 + cs = 0; + 1c0a: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 1c0c: 28010a93 addi s5,sp,640 + if ((fl & STBSP__LEFTJUST) == 0) { + 1c10: 9c0506e3 beqz a0,15dc + if (fw + pr) { + 1c14: 00e307bb addw a5,t1,a4 + 1c18: 9c079fe3 bnez a5,15f6 + 1c1c: 06910793 addi a5,sp,105 + 1c20: b661 j 17a8 + h = (f[0] == 'E') ? hexu : hex; + 1c22: 04500713 li a4,69 + 1c26: 00005317 auipc t1,0x5 + 1c2a: e5230313 addi t1,t1,-430 # 6a78 + 1c2e: 1ce78ae3 beq a5,a4,2602 + fv = va_arg(va, double); + 1c32: 008b8713 addi a4,s7,8 + if (pr == -1) + 1c36: 57fd li a5,-1 + fv = va_arg(va, double); + 1c38: e0ba sd a4,64(sp) + 1c3a: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1c3e: 1af88ce3 beq a7,a5,25f6 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1c42: 80000737 lui a4,0x80000 + 1c46: 00e8e733 or a4,a7,a4 + 1c4a: 2701 sext.w a4,a4 + 1c4c: 10d4 addi a3,sp,100 + 1c4e: 0110 addi a2,sp,128 + 1c50: 108c addi a1,sp,96 + 1c52: 18a8 addi a0,sp,120 + 1c54: f41e sd t2,40(sp) + 1c56: f01a sd t1,32(sp) + 1c58: ec72 sd t3,24(sp) + 1c5a: e846 sd a7,16(sp) + 1c5c: d8efe0ef jal 1ea + 1c60: 68c2 ld a7,16(sp) + 1c62: 6e62 ld t3,24(sp) + 1c64: 7302 ld t1,32(sp) + 1c66: 73a2 ld t2,40(sp) + if (dp == STBSP__SPECIAL) { + 1c68: 5796 lw a5,100(sp) + s = (char *)sn; + 1c6a: 7ae6 ld s5,120(sp) + if ((l - 1) > (stbsp__uint32)pr) + 1c6c: 5686 lw a3,96(sp) + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1c6e: 3c0511e3 bnez a0,2830 + tail[0] = 0; + 1c72: 06010823 sb zero,112(sp) + sign[0] = 0; + 1c76: 06010423 sb zero,104(sp) + } else if (fl & STBSP__LEADINGSPACE) { + 1c7a: 004e7713 andi a4,t3,4 + 1c7e: 6a070ee3 beqz a4,2b3a + sign[0] = 1; + 1c82: 6709 lui a4,0x2 + 1c84: 0705 addi a4,a4,1 # 2001 + 1c86: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1c8a: 671d lui a4,0x7 + 1c8c: 1ee794e3 bne a5,a4,2674 + if (pr < (stbsp__int32)l) + 1c90: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1c94: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 1c98: fff7c793 not a5,a5 + n = pr + lead[0] + tail[0] + tz; + 1c9c: 07014f83 lbu t6,112(sp) + if (pr < (stbsp__int32)l) + 1ca0: 97fd srai a5,a5,0x3f + 1ca2: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1ca4: 00fa073b addw a4,s4,a5 + 1ca8: 01f7063b addw a2,a4,t6 + 1cac: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1cae: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 1cb2: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 1cb4: 835a mv t1,s6 + 1cb6: 00cb5363 bge s6,a2,1cbc + 1cba: 8332 mv t1,a2 + fw -= n; + 1cbc: 40e3033b subw t1,t1,a4 + cs = 0; + 1cc0: 4281 li t0,0 + pr -= l; + 1cc2: 40d7873b subw a4,a5,a3 + tz = 0; + 1cc6: 4881 li a7,0 + goto scopy; + 1cc8: b7a1 j 1c10 + h = (f[0] == 'G') ? hexu : hex; + 1cca: 04700713 li a4,71 + 1cce: 00005317 auipc t1,0x5 + 1cd2: daa30313 addi t1,t1,-598 # 6a78 + 1cd6: 14e783e3 beq a5,a4,261c + fv = va_arg(va, double); + 1cda: 008b8713 addi a4,s7,8 + if (pr == -1) + 1cde: 57fd li a5,-1 + fv = va_arg(va, double); + 1ce0: e0ba sd a4,64(sp) + 1ce2: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1ce6: 12f884e3 beq a7,a5,260e + else if (pr == 0) + 1cea: 6e0887e3 beqz a7,2bd8 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1cee: fff8871b addiw a4,a7,-1 + 1cf2: 800007b7 lui a5,0x80000 + 1cf6: 8f5d or a4,a4,a5 + 1cf8: 2701 sext.w a4,a4 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 1cfa: 00088a9b sext.w s5,a7 + 1cfe: 8a46 mv s4,a7 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1d00: 10d4 addi a3,sp,100 + 1d02: 0110 addi a2,sp,128 + 1d04: 108c addi a1,sp,96 + 1d06: 18a8 addi a0,sp,120 + 1d08: f01e sd t2,32(sp) + 1d0a: ec1a sd t1,24(sp) + 1d0c: e872 sd t3,16(sp) + 1d0e: cdcfe0ef jal 1ea + 1d12: 6e42 ld t3,16(sp) + 1d14: 6362 ld t1,24(sp) + 1d16: 7382 ld t2,32(sp) + 1d18: 4281 li t0,0 + 1d1a: c509 beqz a0,1d24 + fl |= STBSP__NEGATIVE; + 1d1c: 080e6e13 ori t3,t3,128 + 1d20: 08000293 li t0,128 + if (l > (stbsp__uint32)pr) + 1d24: 5806 lw a6,96(sp) + 1d26: 010af463 bgeu s5,a6,1d2e + l = pr; + 1d2a: d0d6 sw s5,96(sp) + 1d2c: 8856 mv a6,s5 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d2e: 4705 li a4,1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1d30: 5796 lw a5,100(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d32: 01076463 bltu a4,a6,1d3a + 1d36: 1800106f j 2eb6 + 1d3a: 7be6 ld s7,120(sp) + 1d3c: fff8071b addiw a4,a6,-1 + 1d40: 1702 slli a4,a4,0x20 + 1d42: 9301 srli a4,a4,0x20 + 1d44: 001a0e9b addiw t4,s4,1 + 1d48: 75e2 ld a1,56(sp) + 1d4a: 8ade mv s5,s7 + 1d4c: 975e add a4,a4,s7 + 1d4e: 410e8ebb subw t4,t4,a6 + 1d52: 88d2 mv a7,s4 + 1d54: 86c2 mv a3,a6 + 1d56: 4f01 li t5,0 + 1d58: 03000f93 li t6,48 + 1d5c: e842 sd a6,16(sp) + 1d5e: a809 j 1d70 + --pr; + 1d60: 38fd addiw a7,a7,-1 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d62: 211e80e3 beq t4,a7,2762 + 1d66: 177d addi a4,a4,-1 # 6fff <_stdout+0x14f> + 1d68: 4f05 li t5,1 + 1d6a: 1e088ce3 beqz a7,2762 + --l; + 1d6e: 85b6 mv a1,a3 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d70: 00074803 lbu a6,0(a4) + 1d74: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff8777> + 1d78: 0006851b sext.w a0,a3 + 1d7c: 2581 sext.w a1,a1 + 1d7e: 0006069b sext.w a3,a2 + 1d82: fdf80fe3 beq a6,t6,1d60 + 1d86: 6842 ld a6,16(sp) + 1d88: fc2e sd a1,56(sp) + 1d8a: 86c2 mv a3,a6 + 1d8c: 000f0463 beqz t5,1d94 + 1d90: d0ae sw a1,96(sp) + 1d92: 86ae mv a3,a1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1d94: 5775 li a4,-3 + 1d96: 08e7cee3 blt a5,a4,2632 + 1d9a: 08fa4be3 blt s4,a5,2630 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1d9e: 0005071b sext.w a4,a0 + if (dp > 0) { + 1da2: 7ef057e3 blez a5,2d90 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1da6: 4881 li a7,0 + 1da8: 00e7d463 bge a5,a4,1db0 + 1dac: 40f508bb subw a7,a0,a5 + tail[0] = 0; + 1db0: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 1db4: 20029463 bnez t0,1fbc + } else if (fl & STBSP__LEADINGSPACE) { + 1db8: 004e7713 andi a4,t3,4 + 1dbc: 000715e3 bnez a4,25c6 + } else if (fl & STBSP__LEADINGPLUS) { + 1dc0: 002e7713 andi a4,t3,2 + 1dc4: 660719e3 bnez a4,2c36 + sign[0] = 0; + 1dc8: 06010423 sb zero,104(sp) + 1dcc: aaed j 1fc6 + h = (f[0] == 'A') ? hexu : hex; + 1dce: 04100713 li a4,65 + 1dd2: 00005597 auipc a1,0x5 + 1dd6: ca658593 addi a1,a1,-858 # 6a78 + 1dda: 00e783e3 beq a5,a4,25e0 + fv = va_arg(va, double); + 1dde: 008b8693 addi a3,s7,8 + if (pr == -1) + 1de2: 577d li a4,-1 + fv = va_arg(va, double); + 1de4: e0b6 sd a3,64(sp) + 1de6: 000bb783 ld a5,0(s7) + if (pr == -1) + 1dea: 7ee88963 beq a7,a4,25dc + d = value; + + STBSP__COPYFP(b, d); + + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1dee: 4347d613 srai a2,a5,0x34 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1df2: 00c79513 slli a0,a5,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1df6: 7ff67613 andi a2,a2,2047 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1dfa: 8131 srli a0,a0,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1dfc: c016061b addiw a2,a2,-1023 + if (stbsp__real_to_parts((stbsp__int64 *)&n64, &dp, fv)) + 1e00: 7a07c863 bltz a5,25b0 + } else if (fl & STBSP__LEADINGSPACE) { + 1e04: 004e7793 andi a5,t3,4 + 1e08: 60078ee3 beqz a5,2c24 + 1e0c: 6789 lui a5,0x2 + 1e0e: 2785 addiw a5,a5,1 # 2001 + sign[0] = 1; + 1e10: 06f11423 sh a5,104(sp) + 1e14: 468d li a3,3 + 1e16: 4a0d li s4,3 + 1e18: 4809 li a6,2 + n64 |= (((stbsp__uint64)1) << 52); + 1e1a: 4705 li a4,1 + 1e1c: 1752 slli a4,a4,0x34 + if (dp == -1023) + 1e1e: c0100793 li a5,-1023 + n64 |= (((stbsp__uint64)1) << 52); + 1e22: 8f49 or a4,a4,a0 + if (dp == -1023) + 1e24: 5cf600e3 beq a2,a5,2be4 + if (pr < 15) + 1e28: 4539 li a0,14 + n64 <<= (64 - 56); + 1e2a: 00871793 slli a5,a4,0x8 + if (pr < 15) + 1e2e: 251546e3 blt a0,a7,287a + n64 += ((((stbsp__uint64)8) << 56) >> (pr * 4)); + 1e32: 4705 li a4,1 + 1e34: 0028951b slliw a0,a7,0x2 + 1e38: 176e slli a4,a4,0x3b + 1e3a: 00a75733 srl a4,a4,a0 + 1e3e: 973e add a4,a4,a5 + *s++ = h[(n64 >> 60) & 15]; + 1e40: 03c75793 srli a5,a4,0x3c + 1e44: 97ae add a5,a5,a1 + 1e46: 0007c503 lbu a0,0(a5) + lead[1 + lead[0]] = '0'; + 1e4a: 22080793 addi a5,a6,544 + 1e4e: 06010813 addi a6,sp,96 + 1e52: 97c2 add a5,a5,a6 + 1e54: 03000813 li a6,48 + 1e58: df078423 sb a6,-536(a5) + lead[2 + lead[0]] = 'x'; + 1e5c: 22068793 addi a5,a3,544 + 1e60: 1094 addi a3,sp,96 + 1e62: 96be add a3,a3,a5 + 1e64: 07800793 li a5,120 + 1e68: def68423 sb a5,-536(a3) + lead[0] += 2; + 1e6c: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 1e70: 0ca10023 sb a0,192(sp) + if (pr) + 1e74: 740893e3 bnez a7,2dba + sn = s; + 1e78: 0c110793 addi a5,sp,193 + 1e7c: fcbe sd a5,120(sp) + 1e7e: 4701 li a4,0 + 1e80: 4501 li a0,0 + 1e82: 4305 li t1,1 + 1e84: 4685 li a3,1 + tail[1] = h[17]; + 1e86: 0115c583 lbu a1,17(a1) + tail[2] = '+'; + 1e8a: 02b00793 li a5,43 + tail[1] = h[17]; + 1e8e: 06b108a3 sb a1,113(sp) + if (dp < 0) { + 1e92: 00065663 bgez a2,1e9e + dp = -dp; + 1e96: 40c0063b negw a2,a2 + tail[2] = '-'; + 1e9a: 02d00793 li a5,45 + tail[n] = '0' + dp % 10; + 1e9e: 4829 li a6,10 + 1ea0: 030665bb remw a1,a2,a6 + 1ea4: 06f10923 sb a5,114(sp) + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1ea8: 3e700e93 li t4,999 + tail[n] = '0' + dp % 10; + 1eac: 0305859b addiw a1,a1,48 + 1eb0: 0ff5f593 zext.b a1,a1 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1eb4: 18cec3e3 blt t4,a2,283a + 1eb8: 06300e93 li t4,99 + 1ebc: 54cec1e3 blt t4,a2,2bfe + 1ec0: 4ea5 li t4,9 + 1ec2: 72ced6e3 bge t4,a2,2dee + dp /= 10; + 1ec6: 030647bb divw a5,a2,a6 + tail[0] = (char)n; + 1eca: 4611 li a2,4 + 1ecc: 06c10823 sb a2,112(sp) + tail[n] = '0' + dp % 10; + 1ed0: 06b10a23 sb a1,116(sp) + 1ed4: 4811 li a6,4 + 1ed6: 4f91 li t6,4 + 1ed8: 0307879b addiw a5,a5,48 + 1edc: 06f109a3 sb a5,115(sp) + n = pr + lead[0] + tail[0] + tz; + 1ee0: 006a07bb addw a5,s4,t1 + 1ee4: 010787bb addw a5,a5,a6 + 1ee8: 0117863b addw a2,a5,a7 + dp = (int)(s - sn); + 1eec: d2aa sw a0,100(sp) + l = (int)(s - (num + 64)); + 1eee: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 1ef0: 87b2 mv a5,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1ef2: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1ef6: 835a mv t1,s6 + 1ef8: 00cb5363 bge s6,a2,1efe + 1efc: 8332 mv t1,a2 + cs = 1 + (3 << 24); + 1efe: 030002b7 lui t0,0x3000 + fw -= n; + 1f02: 40f3033b subw t1,t1,a5 + cs = 1 + (3 << 24); + 1f06: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + s = num + 64; + 1f08: 0c010a93 addi s5,sp,192 + goto scopy; + 1f0c: b311 j 1c10 + h = (f[0] == 'B') ? hexu : hex; + 1f0e: 04200713 li a4,66 + 1f12: 00005817 auipc a6,0x5 + 1f16: b6680813 addi a6,a6,-1178 # 6a78 + 1f1a: 6ce78963 beq a5,a4,25ec + if (fl & STBSP__LEADING_0X) { + 1f1e: 008e7793 andi a5,t3,8 + 1f22: 66079e63 bnez a5,259e + lead[0] = 0; + 1f26: 06010423 sb zero,104(sp) + l = (8 << 4) | (1 << 8); + 1f2a: 18000793 li a5,384 + 1f2e: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 1f30: 020e7713 andi a4,t3,32 + goto radixnum; + 1f34: b979 j 1bd2 + *s = (char)va_arg(va, int); + 1f36: 000ba783 lw a5,0(s7) + l = 1; + 1f3a: 4705 li a4,1 + 1f3c: d0ba sw a4,96(sp) + *s = (char)va_arg(va, int); + 1f3e: 26f10fa3 sb a5,639(sp) + 1f42: 008b8793 addi a5,s7,8 + lead[0] = 0; + 1f46: 06010423 sb zero,104(sp) + tail[0] = 0; + 1f4a: 06010823 sb zero,112(sp) + dp = 0; + 1f4e: d282 sw zero,100(sp) + *s = (char)va_arg(va, int); + 1f50: e0be sd a5,64(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1f52: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1f56: 835a mv t1,s6 + 1f58: 69605063 blez s6,25d8 + fw -= n; + 1f5c: 337d addiw t1,t1,-1 + goto scopy; + 1f5e: 4701 li a4,0 + 1f60: 4f81 li t6,0 + 1f62: 4685 li a3,1 + 1f64: 4a01 li s4,0 + cs = 0; + 1f66: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 1f68: 27f10a93 addi s5,sp,639 + tz = 0; + 1f6c: 4881 li a7,0 + goto scopy; + 1f6e: b14d j 1c10 + fv = va_arg(va, double); + 1f70: 008b8713 addi a4,s7,8 + if (fl & STBSP__METRIC_SUFFIX) { + 1f74: 100e7793 andi a5,t3,256 + fv = va_arg(va, double); + 1f78: e0ba sd a4,64(sp) + 1f7a: 000bb507 fld fa0,0(s7) + if (fl & STBSP__METRIC_SUFFIX) { + 1f7e: be0795e3 bnez a5,1b68 + if (pr == -1) + 1f82: 57fd li a5,-1 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f84: 0008871b sext.w a4,a7 + if (pr == -1) + 1f88: 00f89463 bne a7,a5,1f90 + 1f8c: 4719 li a4,6 + pr = 6; // default is 6 + 1f8e: 4899 li a7,6 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f90: 10d4 addi a3,sp,100 + 1f92: 0110 addi a2,sp,128 + 1f94: 108c addi a1,sp,96 + 1f96: 18a8 addi a0,sp,120 + 1f98: f01e sd t2,32(sp) + 1f9a: ec72 sd t3,24(sp) + 1f9c: e846 sd a7,16(sp) + 1f9e: a4cfe0ef jal 1ea + 1fa2: 6e62 ld t3,24(sp) + 1fa4: 68c2 ld a7,16(sp) + 1fa6: 7382 ld t2,32(sp) + if (dp == STBSP__SPECIAL) { + 1fa8: 5796 lw a5,100(sp) + if ((stbsp__int32)(l + n) > pr) + 1faa: 5686 lw a3,96(sp) + if (fl & STBSP__NEGATIVE) { + 1fac: 080e7293 andi t0,t3,128 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1fb0: e00500e3 beqz a0,1db0 + fl |= STBSP__NEGATIVE; + 1fb4: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 1fb8: 06010823 sb zero,112(sp) + sign[0] = 1; + 1fbc: 670d lui a4,0x3 + 1fbe: d0170713 addi a4,a4,-767 # 2d01 + 1fc2: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1fc6: 671d lui a4,0x7 + 1fc8: 7ce78963 beq a5,a4,279a + if (dp <= 0) { + 1fcc: 46f05fe3 blez a5,2c4a + cs = (fl & STBSP__TRIPLET_COMMA) ? ((600 - (stbsp__uint32)dp) % 3) : 0; + 1fd0: 040e7313 andi t1,t3,64 + 1fd4: 00078e9b sext.w t4,a5 + 1fd8: 4581 li a1,0 + 1fda: 00030963 beqz t1,1fec + 1fde: 25800593 li a1,600 + 1fe2: 41d585bb subw a1,a1,t4 + 1fe6: 470d li a4,3 + 1fe8: 02e5f5bb remuw a1,a1,a4 + *s++ = stbsp__comma; + 1fec: 00005a17 auipc s4,0x5 + 1ff0: 9a4a0a13 addi s4,s4,-1628 # 6990 + s = (char *)sn; + 1ff4: 7f66 ld t5,120(sp) + *s++ = stbsp__comma; + 1ff6: 0cda4283 lbu t0,205(s4) + s = num + 64; + 1ffa: 0c010a93 addi s5,sp,192 + if ((stbsp__uint32)dp >= l) { + 1ffe: 44defb63 bgeu t4,a3,2454 + n = 0; + 2002: 4501 li a0,0 + s = num + 64; + 2004: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2006: 4b91 li s7,4 + 2008: a015 j 202c + 200a: 8642 mv a2,a6 + 200c: 883a mv a6,a4 + 200e: 8732 mv a4,a2 + *s++ = sn[n]; + 2010: 02051613 slli a2,a0,0x20 + 2014: 9201 srli a2,a2,0x20 + 2016: 967a add a2,a2,t5 + 2018: 00064f83 lbu t6,0(a2) + ++n; + 201c: 0015061b addiw a2,a0,1 + 2020: 0006051b sext.w a0,a2 + *s++ = sn[n]; + 2024: fff70fa3 sb t6,-1(a4) # 6fff <_stdout+0x14f> + if (n >= (stbsp__uint32)dp) + 2028: 7bd57563 bgeu a0,t4,27d2 + *s++ = stbsp__comma; + 202c: 00170813 addi a6,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2030: fc030de3 beqz t1,200a + 2034: 2585 addiw a1,a1,1 + 2036: fd759ae3 bne a1,s7,200a + *s++ = stbsp__comma; + 203a: fe580fa3 sb t0,-1(a6) + 203e: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2040: 4585 li a1,1 + 2042: b7f9 j 2010 + *d = tlen + (int)(bf - buf); + 2044: 000bb703 ld a4,0(s7) + 2048: 412407b3 sub a5,s0,s2 + 204c: 01a787bb addw a5,a5,s10 + int *d = va_arg(va, int *); + 2050: 008b8693 addi a3,s7,8 + 2054: e0b6 sd a3,64(sp) + *d = tlen + (int)(bf - buf); + 2056: c31c sw a5,0(a4) + } break; + 2058: bae5 j 1a50 + if (fl & STBSP__LEADING_0X) { + 205a: 008e7793 andi a5,t3,8 + 205e: 50079b63 bnez a5,2574 + lead[0] = 0; + 2062: 06010423 sb zero,104(sp) + l = (3 << 4) | (3 << 8); + 2066: 33000793 li a5,816 + 206a: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 206c: 020e7713 andi a4,t3,32 + h = hexu; + 2070: 00005817 auipc a6,0x5 + 2074: 9f080813 addi a6,a6,-1552 # 6a60 + goto radixnum; + 2078: bea9 j 1bd2 + fl &= ~STBSP__LEADINGZERO; // 'p' only prints the pointer with zeros + 207a: fefe7e13 andi t3,t3,-17 + 207e: 020e6e13 ori t3,t3,32 + 2082: 02000713 li a4,32 + pr = sizeof(void *) * 2; + 2086: 48c1 li a7,16 + h = (f[0] == 'X') ? hexu : hex; + 2088: 00005817 auipc a6,0x5 + 208c: 9f080813 addi a6,a6,-1552 # 6a78 + 2090: be05 j 1bc0 + s = va_arg(va, char *); + 2092: 000bba83 ld s5,0(s7) + 2096: 008b8793 addi a5,s7,8 + 209a: e0be sd a5,64(sp) + if (s == 0) + 209c: 360a8ee3 beqz s5,2c18 + if (((stbsp__uintptr)sn & 3) == 0) + 20a0: 003af793 andi a5,s5,3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 20a4: 5208c663 bltz a7,25d0 + 20a8: 0008869b sext.w a3,a7 + if (((stbsp__uintptr)sn & 3) == 0) + 20ac: 2a0782e3 beqz a5,2b50 + if (!limit || *sn == 0) + 20b0: 5a068b63 beqz a3,2666 + if (((stbsp__uintptr)sn & 3) == 0) + 20b4: 87d6 mv a5,s5 + 20b6: a801 j 20c6 + ++sn; + 20b8: 0785 addi a5,a5,1 + if (((stbsp__uintptr)sn & 3) == 0) + 20ba: 0037f713 andi a4,a5,3 + --limit; + 20be: 36fd addiw a3,a3,-1 + if (((stbsp__uintptr)sn & 3) == 0) + 20c0: 280709e3 beqz a4,2b52 + if (!limit || *sn == 0) + 20c4: c681 beqz a3,20cc + 20c6: 0007c703 lbu a4,0(a5) + 20ca: f77d bnez a4,20b8 + return (stbsp__uint32)(sn - s); + 20cc: 415787b3 sub a5,a5,s5 + 20d0: 0007869b sext.w a3,a5 + if (pr < (stbsp__int32)l) + 20d4: fff6c713 not a4,a3 + 20d8: 977d srai a4,a4,0x3f + 20da: 8f7d and a4,a4,a5 + 20dc: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 20e0: 863e mv a2,a5 + pr -= l; + 20e2: 9f15 subw a4,a4,a3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 20e4: d0b6 sw a3,96(sp) + lead[0] = 0; + 20e6: 06010423 sb zero,104(sp) + tail[0] = 0; + 20ea: 06010823 sb zero,112(sp) + dp = 0; + 20ee: d282 sw zero,100(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 20f0: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 20f4: 835a mv t1,s6 + 20f6: 00fb5363 bge s6,a5,20fc + 20fa: 833e mv t1,a5 + fw -= n; + 20fc: 40c3033b subw t1,t1,a2 + goto scopy; + 2100: 4f81 li t6,0 + 2102: 4a01 li s4,0 + cs = 0; + 2104: 4281 li t0,0 + tz = 0; + 2106: 4881 li a7,0 + goto scopy; + 2108: b621 j 1c10 + *bf++ = stbsp__comma; + 210a: 87b2 mv a5,a2 + cs = 0; + 210c: 4a01 li s4,0 + 210e: e44ff06f j 1752 + lead[0] -= (char)i; + 2112: 06010423 sb zero,104(sp) + while (i) { + 2116: d38ff06f j 164e + lead[0] -= (char)i; + 211a: 06010423 sb zero,104(sp) + while (i) { + 211e: ed8ff06f j 17f6 + while (i >= 4) { + 2122: 06fadc63 bge s5,a5,219a + tz -= i; + 2126: 8722 mv a4,s0 + 2128: 0007851b sext.w a0,a5 + while (i >= 4) { + 212c: 008785bb addw a1,a5,s0 + *(stbsp__uint32 *)bf = 0x30303030; + 2130: 01672023 sw s6,0(a4) + bf += 4; + 2134: 0711 addi a4,a4,4 + while (i >= 4) { + 2136: 40e5863b subw a2,a1,a4 + 213a: fecacbe3 blt s5,a2,2130 + 213e: ffc5061b addiw a2,a0,-4 + 2142: 0026561b srliw a2,a2,0x2 + 2146: 0016071b addiw a4,a2,1 + 214a: 37f1 addiw a5,a5,-4 + 214c: 0026161b slliw a2,a2,0x2 + 2150: 070a slli a4,a4,0x2 + 2152: 9722 add a4,a4,s0 + 2154: 9f91 subw a5,a5,a2 + while (i) { + 2156: 843a mv s0,a4 + 2158: 80078de3 beqz a5,1972 + 215c: 1782 slli a5,a5,0x20 + 215e: 9381 srli a5,a5,0x20 + 2160: 00f70433 add s0,a4,a5 + *bf++ = '0'; + 2164: 0705 addi a4,a4,1 + 2166: ff470fa3 sb s4,-1(a4) + while (i) { + 216a: fe871de3 bne a4,s0,2164 + 216e: 805ff06f j 1972 + stbsp__cb_buf_clamp(i, pr); + 2172: 85ce mv a1,s3 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2174: 4981 li s3,0 + 2176: dc049263 bnez s1,173a + 217a: b8d5 j 1a6e + STBSP__UNALIGNED(while (i >= 4) { + 217c: 4401 li s0,0 + 217e: 85be mv a1,a5 + 2180: f0ea4b63 blt s4,a4,1896 + 2184: f42ff06f j 18c6 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2188: 00347713 andi a4,s0,3 + stbsp__cb_buf_clamp(i, tz); + 218c: 87c6 mv a5,a7 + tz -= i; + 218e: 4881 li a7,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2190: fc071c63 bnez a4,1968 + while (i >= 4) { + 2194: 470d li a4,3 + 2196: f8f748e3 blt a4,a5,2126 + 219a: 8722 mv a4,s0 + 219c: b7c1 j 215c + tail[0] -= (char)i; + 219e: 06010823 sb zero,112(sp) + while (i) { + 21a2: b0b9 j 19f0 + while (i >= 4) { + 21a4: 478d li a5,3 + 21a6: 8622 mv a2,s0 + 21a8: d8b7d963 bge a5,a1,173a + 21ac: ffc5839b addiw t2,a1,-4 + 21b0: 0023d79b srliw a5,t2,0x2 + 21b4: 0017859b addiw a1,a5,1 + 21b8: 058a slli a1,a1,0x2 + 21ba: 942e add s0,s0,a1 + *(stbsp__uint32 *)bf = 0x30303030; + 21bc: 01762023 sw s7,0(a2) + bf += 4; + 21c0: 0611 addi a2,a2,4 + while (i >= 4) { + 21c2: fe861de3 bne a2,s0,21bc + 21c6: 0027979b slliw a5,a5,0x2 + 21ca: 40f385bb subw a1,t2,a5 + 21ce: d68ff06f j 1736 + while (i) { + 21d2: 85be mv a1,a5 + 21d4: ee071963 bnez a4,18c6 + 21d8: f16ff06f j 18ee + 21dc: 2c013a03 ld s4,704(sp) + 21e0: 2b813a83 ld s5,696(sp) + 21e4: 2b013b03 ld s6,688(sp) + 21e8: 8ca2 mv s9,s0 + 21ea: a04ff06f j 13ee + stbsp__chk_cb_buf(1); + 21ee: 2601 sext.w a2,a2 + 21f0: 1fe00793 li a5,510 + 21f4: f8c7c563 blt a5,a2,197e + 21f8: f3eff06f j 1936 + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 21fc: fbfe7e13 andi t3,t3,-65 + if (fw + pr) { + 2200: 006707bb addw a5,a4,t1 + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 2204: 2e01 sext.w t3,t3 + if (fw + pr) { + 2206: a0078be3 beqz a5,1c1c + while (fw > 0) { + 220a: be605663 blez t1,15f6 + *(stbsp__uint32 *)bf = 0x20202020; + 220e: 20202837 lui a6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 2212: 854a mv a0,s2 + 2214: 894e mv s2,s3 + 2216: 69a2 ld s3,8(sp) + *(stbsp__uint32 *)bf = 0x20202020; + 2218: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201fa798> + stbsp__cb_buf_clamp(i, fw); + 221c: ec52 sd s4,24(sp) + 221e: f426 sd s1,40(sp) + 2220: 87a2 mv a5,s0 + 2222: 84ea mv s1,s10 + stbsp__chk_cb_buf(1); + 2224: 1fe00f13 li t5,510 + stbsp__cb_buf_clamp(i, fw); + 2228: 8d6e mv s10,s11 + *bf++ = ' '; + 222a: 02000b13 li s6,32 + stbsp__cb_buf_clamp(i, fw); + 222e: 8de6 mv s11,s9 + while (i >= 4) { + 2230: 4b8d li s7,3 + stbsp__cb_buf_clamp(i, fw); + 2232: 20000e93 li t4,512 + 2236: e846 sd a7,16(sp) + 2238: f07e sd t6,32(sp) + 223a: f836 sd a3,48(sp) + 223c: e4f2 sd t3,72(sp) + 223e: e8ba sd a4,80(sp) + 2240: ec96 sd t0,88(sp) + 2242: 841a mv s0,t1 + 2244: 8a42 mv s4,a6 + 2246: 8c9e mv s9,t2 + 2248: 0c090063 beqz s2,2308 + 224c: 40a78633 sub a2,a5,a0 + 2250: 40ce873b subw a4,t4,a2 + 2254: 86ba mv a3,a4 + 2256: 00e45363 bge s0,a4,225c + 225a: 86a2 mv a3,s0 + 225c: 0006871b sext.w a4,a3 + fw -= i; + 2260: 9c15 subw s0,s0,a3 + while (i) { + 2262: e719 bnez a4,2270 + 2264: a095 j 22c8 + *bf++ = ' '; + 2266: 01678023 sb s6,0(a5) + --i; + 226a: 377d addiw a4,a4,-1 + *bf++ = ' '; + 226c: 0785 addi a5,a5,1 + while (i) { + 226e: cb29 beqz a4,22c0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2270: 0037f693 andi a3,a5,3 + 2274: faed bnez a3,2266 + while (i >= 4) { + 2276: 86be mv a3,a5 + 2278: 00070f9b sext.w t6,a4 + 227c: 00f705bb addw a1,a4,a5 + 2280: 02ebd763 bge s7,a4,22ae + *(stbsp__uint32 *)bf = 0x20202020; + 2284: 0146a023 sw s4,0(a3) + bf += 4; + 2288: 0691 addi a3,a3,4 + while (i >= 4) { + 228a: 40d5863b subw a2,a1,a3 + 228e: fecbcbe3 blt s7,a2,2284 + 2292: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff8774> + 2296: 0026561b srliw a2,a2,0x2 + 229a: 0016069b addiw a3,a2,1 + 229e: 3771 addiw a4,a4,-4 + 22a0: 0026161b slliw a2,a2,0x2 + 22a4: 068a slli a3,a3,0x2 + 22a6: 96be add a3,a3,a5 + 22a8: 9f11 subw a4,a4,a2 + while (i) { + 22aa: 87b6 mv a5,a3 + 22ac: cb11 beqz a4,22c0 + 22ae: 1702 slli a4,a4,0x20 + 22b0: 9301 srli a4,a4,0x20 + 22b2: 00e687b3 add a5,a3,a4 + *bf++ = ' '; + 22b6: 0685 addi a3,a3,1 + 22b8: ff668fa3 sb s6,-1(a3) + while (i) { + 22bc: fef69de3 bne a3,a5,22b6 + stbsp__chk_cb_buf(1); + 22c0: 40a78633 sub a2,a5,a0 + 22c4: 00090e63 beqz s2,22e0 + 22c8: 2601 sext.w a2,a2 + 22ca: 00cf5b63 bge t5,a2,22e0 + 22ce: 85ce mv a1,s3 + 22d0: 9cb1 addw s1,s1,a2 + 22d2: 9902 jalr s2 + 22d4: c541 beqz a0,235c + 22d6: 87aa mv a5,a0 + 22d8: 20000e93 li t4,512 + 22dc: 1fe00f13 li t5,510 + while (fw > 0) { + 22e0: f68044e3 bgtz s0,2248 + 22e4: 8322 mv t1,s0 + 22e6: 89ca mv s3,s2 + 22e8: 83e6 mv t2,s9 + 22ea: 68c2 ld a7,16(sp) + 22ec: 8cee mv s9,s11 + 22ee: 6a62 ld s4,24(sp) + 22f0: 8dea mv s11,s10 + 22f2: 7f82 ld t6,32(sp) + 22f4: 8d26 mv s10,s1 + 22f6: 76c2 ld a3,48(sp) + 22f8: 6e26 ld t3,72(sp) + 22fa: 6746 ld a4,80(sp) + 22fc: 62e6 ld t0,88(sp) + 22fe: 74a2 ld s1,40(sp) + 2300: 892a mv s2,a0 + 2302: 843e mv s0,a5 + 2304: af2ff06f j 15f6 + stbsp__cb_buf_clamp(i, fw); + 2308: 8722 mv a4,s0 + 230a: 4401 li s0,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 230c: b795 j 2270 + n64 = va_arg(va, stbsp__uint32); + 230e: 000be683 lwu a3,0(s7) + 2312: b0f9 j 1be0 + 2314: 2c013a03 ld s4,704(sp) + 2318: 2b813a83 ld s5,696(sp) + 231c: 2b013b03 ld s6,688(sp) + 2320: 8cca mv s9,s2 + 2322: 8ccff06f j 13ee + 2326: 8cd6 mv s9,s5 + 2328: 2c013a03 ld s4,704(sp) + 232c: 2b813a83 ld s5,696(sp) + 2330: 2b013b03 ld s6,688(sp) + 2334: 8baff06f j 13ee + 2338: 2c013a03 ld s4,704(sp) + 233c: 2b813a83 ld s5,696(sp) + 2340: 2b013b03 ld s6,688(sp) + 2344: 8cea mv s9,s10 + 2346: 8a8ff06f j 13ee + while (i) { + 234a: 85a2 mv a1,s0 + 234c: c12ff06f j 175e + while (i >= 4) { + 2350: 478d li a5,3 + 2352: 8622 mv a2,s0 + 2354: e4b7cce3 blt a5,a1,21ac + 2358: be2ff06f j 173a + 235c: 2c013a03 ld s4,704(sp) + 2360: 2b813a83 ld s5,696(sp) + 2364: 2b013b03 ld s6,688(sp) + 2368: 8ca6 mv s9,s1 + 236a: 884ff06f j 13ee + lead[2] = h[16]; + 236e: 01084683 lbu a3,16(a6) + lead[0] = 2; + 2372: 678d lui a5,0x3 + 2374: 0789 addi a5,a5,2 # 3002 + 2376: 06f11423 sh a5,104(sp) + lead[2] = h[16]; + 237a: 06d10523 sb a3,106(sp) + 237e: b891 j 1bd2 + 2380: 8cea mv s9,s10 + 2382: 86cff06f j 13ee + 2386: 4f81 li t6,0 + 2388: 4a01 li s4,0 + 238a: 5586 lw a1,96(sp) + *--s = stbsp__comma; + 238c: 00004f17 auipc t5,0x4 + 2390: 6d1f4f03 lbu t5,1745(t5) # 6a5d + 2394: 0510 addi a2,sp,640 + 2396: 0085d71b srliw a4,a1,0x8 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 239a: 4305 li t1,1 + if (fl & STBSP__TRIPLET_COMMA) { + 239c: 040e7e93 andi t4,t3,64 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 23a0: 0007029b sext.w t0,a4 + 23a4: 005317bb sllw a5,t1,t0 + 23a8: 37fd addiw a5,a5,-1 + 23aa: 8ff5 and a5,a5,a3 + 23ac: 97c2 add a5,a5,a6 + 23ae: 0007c783 lbu a5,0(a5) + n64 >>= (l >> 8); + 23b2: 0056d6b3 srl a3,a3,t0 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 23b6: fff60a93 addi s5,a2,-1 + 23ba: fef60fa3 sb a5,-1(a2) + if (!((n64) || ((stbsp__int32)((num + STBSP__NUMSZ) - s) < pr))) + 23be: e691 bnez a3,23ca + 23c0: 051c addi a5,sp,640 + 23c2: 415787bb subw a5,a5,s5 + 23c6: 0317dd63 bge a5,a7,2400 + if (fl & STBSP__TRIPLET_COMMA) { + 23ca: 020e8963 beqz t4,23fc + ++l; + 23ce: 0015879b addiw a5,a1,1 + if ((l & 15) == ((l >> 4) & 15)) { + 23d2: 0047d29b srliw t0,a5,0x4 + 23d6: 00f2c2b3 xor t0,t0,a5 + 23da: 00f2f293 andi t0,t0,15 + ++l; + 23de: 0007859b sext.w a1,a5 + if ((l & 15) == ((l >> 4) & 15)) { + 23e2: 0087d71b srliw a4,a5,0x8 + 23e6: 00029b63 bnez t0,23fc + l &= ~15; + 23ea: 9bc1 andi a5,a5,-16 + 23ec: 0007859b sext.w a1,a5 + *--s = stbsp__comma; + 23f0: ffe60a93 addi s5,a2,-2 + 23f4: ffe60f23 sb t5,-2(a2) + 23f8: 0087d71b srliw a4,a5,0x8 + 23fc: 8656 mv a2,s5 + 23fe: b74d j 23a0 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 2400: 0045d29b srliw t0,a1,0x4 + 2404: 0f0006b7 lui a3,0xf000 + if (pr < (stbsp__int32)l) + 2408: 0007871b sext.w a4,a5 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 240c: 0182929b slliw t0,t0,0x18 + 2410: 00d2f2b3 and t0,t0,a3 + n = pr + lead[0] + tail[0] + tz; + 2414: 00ef863b addw a2,t6,a4 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2418: d0be sw a5,96(sp) + n = pr + lead[0] + tail[0] + tz; + 241a: 8fb2 mv t6,a2 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 241c: 86be mv a3,a5 + 241e: 00f282bb addw t0,t0,a5 + if (fw < (stbsp__int32)n) + 2422: 835a mv t1,s6 + 2424: 00cb5363 bge s6,a2,242a + 2428: 8332 mv t1,a2 + fw -= n; + 242a: 41f3033b subw t1,t1,t6 + pr -= l; + 242e: 9f1d subw a4,a4,a5 + goto scopy; + 2430: 4f81 li t6,0 + tz = 0; + 2432: 4881 li a7,0 + goto scopy; + 2434: fdcff06f j 1c10 + 2438: 8cda mv s9,s6 + 243a: 2c013a03 ld s4,704(sp) + 243e: 2b813a83 ld s5,696(sp) + 2442: 2b013b03 ld s6,688(sp) + 2446: fa9fe06f j 13ee + fl |= ((sizeof(void *) == 8) ? STBSP__INTMAX : 0); + 244a: 020e6e13 ori t3,t3,32 + ++f; + 244e: 0485 addi s1,s1,1 + 2450: 864ff06f j 14b4 + n = 0; + 2454: 4601 li a2,0 + s = num + 64; + 2456: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2458: 4511 li a0,4 + *s++ = stbsp__comma; + 245a: 00170793 addi a5,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 245e: 00030563 beqz t1,2468 + 2462: 2585 addiw a1,a1,1 + 2464: 10a58363 beq a1,a0,256a + 2468: 873e mv a4,a5 + *s++ = sn[n]; + 246a: 02061793 slli a5,a2,0x20 + 246e: 9381 srli a5,a5,0x20 + 2470: 97fa add a5,a5,t5 + 2472: 0007c803 lbu a6,0(a5) + ++n; + 2476: 2605 addiw a2,a2,1 + *s++ = sn[n]; + 2478: ff070fa3 sb a6,-1(a4) + if (n >= l) + 247c: fcd66fe3 bltu a2,a3,245a + if (n < (stbsp__uint32)dp) { + 2480: 0bd663e3 bltu a2,t4,2d26 + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 2484: 415707b3 sub a5,a4,s5 + 2488: 030002b7 lui t0,0x3000 + 248c: 00f282bb addw t0,t0,a5 + if (pr) { + 2490: 00088a63 beqz a7,24a4 + *s++ = stbsp__period; + 2494: 0cca4683 lbu a3,204(s4) + 2498: 00170793 addi a5,a4,1 + l = (stbsp__uint32)(s - (num + 64)); + 249c: 415787b3 sub a5,a5,s5 + *s++ = stbsp__period; + 24a0: 00d70023 sb a3,0(a4) + if (fl & STBSP__METRIC_SUFFIX) { + 24a4: 100e7713 andi a4,t3,256 + 24a8: 86f2 mv a3,t3 + 24aa: 2c070163 beqz a4,276c + if (fl & STBSP__METRIC_NOSPACE) + 24ae: 40ae5f9b sraiw t6,t3,0xa + 24b2: 001fcf93 xori t6,t6,1 + 24b6: 001fff93 andi t6,t6,1 + tail[1] = ' '; + 24ba: 02000713 li a4,32 + 24be: 06e108a3 sb a4,113(sp) + tail[0] = idx; + 24c2: 07f10823 sb t6,112(sp) + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 24c6: 018e561b srliw a2,t3,0x18 + 24ca: 018e571b srliw a4,t3,0x18 + n = pr + lead[0] + tail[0] + tz; + 24ce: 000f859b sext.w a1,t6 + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 24d2: c225 beqz a2,2532 + if (fl & STBSP__METRIC_1024) + 24d4: 001f859b addiw a1,t6,1 + 24d8: 0ff5f613 zext.b a2,a1 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24dc: 1702 slli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 24de: 03469513 slli a0,a3,0x34 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24e2: 85b2 mv a1,a2 + 24e4: 9301 srli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 24e6: 06055ee3 bgez a0,2d62 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24ea: 00003517 auipc a0,0x3 + 24ee: bee50513 addi a0,a0,-1042 # 50d8 <_GLOBAL__sub_I__ZSt3cin+0xe8> + 24f2: 972a add a4,a4,a0 + 24f4: 00074503 lbu a0,0(a4) + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 24f8: 6709 lui a4,0x2 + 24fa: 80070713 addi a4,a4,-2048 # 1800 + 24fe: 8f75 and a4,a4,a3 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 2500: 06010813 addi a6,sp,96 + 2504: 22060693 addi a3,a2,544 + 2508: 96c2 add a3,a3,a6 + 250a: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff8568> + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 250e: 8007071b addiw a4,a4,-2048 + 2512: 060715e3 bnez a4,2d7c + tail[idx + 1] = 'i'; + 2516: 2f89 addiw t6,t6,2 + 2518: 0ffff593 zext.b a1,t6 + 251c: 1094 addi a3,sp,96 + 251e: 22058713 addi a4,a1,544 + 2522: 9736 add a4,a4,a3 + 2524: 06900693 li a3,105 + 2528: 8fae mv t6,a1 + 252a: ded70823 sb a3,-528(a4) + tail[0] = idx; + 252e: 07f10823 sb t6,112(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2532: 0007869b sext.w a3,a5 + n = pr + lead[0] + tail[0] + tz; + 2536: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 253a: fff6c713 not a4,a3 + 253e: 977d srai a4,a4,0x3f + 2540: 8ff9 and a5,a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2542: 00fa073b addw a4,s4,a5 + 2546: 9f2d addw a4,a4,a1 + 2548: 0117063b addw a2,a4,a7 + l = (stbsp__uint32)(s - (num + 64)); + 254c: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 254e: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 2550: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 2552: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 2556: 835a mv t1,s6 + 2558: 00cb5363 bge s6,a2,255e + 255c: 8332 mv t1,a2 + fw -= n; + 255e: 40e3033b subw t1,t1,a4 + pr -= l; + 2562: 40d7873b subw a4,a5,a3 + goto scopy; + 2566: eaaff06f j 1c10 + *s++ = stbsp__comma; + 256a: fe578fa3 sb t0,-1(a5) + 256e: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2570: 4585 li a1,1 + 2572: bde5 j 246a + lead[0] = 1; + 2574: 678d lui a5,0x3 + 2576: 0785 addi a5,a5,1 # 3001 + 2578: 06f11423 sh a5,104(sp) + 257c: b4ed j 2066 + if ((f[0] != 'u') && (i64 < 0)) { + 257e: 07500693 li a3,117 + stbsp__int64 i64 = va_arg(va, stbsp__int64); + 2582: 000bbf03 ld t5,0(s7) + if ((f[0] != 'u') && (i64 < 0)) { + 2586: dcd78263 beq a5,a3,1b4a + 258a: dc0f5063 bgez t5,1b4a + fl |= STBSP__NEGATIVE; + 258e: 08076713 ori a4,a4,128 + n64 = (stbsp__uint64)-i64; + 2592: 41e00f33 neg t5,t5 + fl |= STBSP__NEGATIVE; + 2596: 00070e1b sext.w t3,a4 + 259a: db0ff06f j 1b4a + lead[2] = h[0xb]; + 259e: 00b84703 lbu a4,11(a6) + lead[0] = 2; + 25a2: 678d lui a5,0x3 + 25a4: 0789 addi a5,a5,2 # 3002 + 25a6: 06f11423 sh a5,104(sp) + lead[2] = h[0xb]; + 25aa: 06e10523 sb a4,106(sp) + 25ae: bab5 j 1f2a + sign[0] = 1; + 25b0: 678d lui a5,0x3 + 25b2: d0178793 addi a5,a5,-767 # 2d01 + fl |= STBSP__NEGATIVE; + 25b6: 080e6e13 ori t3,t3,128 + sign[0] = 1; + 25ba: 06f11423 sh a5,104(sp) + 25be: 468d li a3,3 + 25c0: 4a0d li s4,3 + 25c2: 4809 li a6,2 + 25c4: b899 j 1e1a + sign[0] = 1; + 25c6: 6709 lui a4,0x2 + 25c8: 0705 addi a4,a4,1 # 2001 + 25ca: 06e11423 sh a4,104(sp) + 25ce: bae5 j 1fc6 + if (((stbsp__uintptr)sn & 3) == 0) + 25d0: 0e0780e3 beqz a5,2eb0 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 25d4: 56fd li a3,-1 + 25d6: bcf9 j 20b4 + if (fw < (stbsp__int32)n) + 25d8: 4305 li t1,1 + 25da: b249 j 1f5c + pr = 6; // default is 6 + 25dc: 4899 li a7,6 + 25de: b801 j 1dee + h = (f[0] == 'A') ? hexu : hex; + 25e0: 00004597 auipc a1,0x4 + 25e4: 48058593 addi a1,a1,1152 # 6a60 + 25e8: ff6ff06f j 1dde + h = (f[0] == 'B') ? hexu : hex; + 25ec: 00004817 auipc a6,0x4 + 25f0: 47480813 addi a6,a6,1140 # 6a60 + 25f4: b22d j 1f1e + 25f6: 80000737 lui a4,0x80000 + 25fa: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff877e> + pr = 6; // default is 6 + 25fc: 4899 li a7,6 + 25fe: e4eff06f j 1c4c + h = (f[0] == 'E') ? hexu : hex; + 2602: 00004317 auipc t1,0x4 + 2606: 45e30313 addi t1,t1,1118 # 6a60 + 260a: e28ff06f j 1c32 + 260e: 80000737 lui a4,0x80000 + 2612: 4a99 li s5,6 + 2614: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff877d> + pr = 6; + 2616: 4a19 li s4,6 + 2618: ee8ff06f j 1d00 + h = (f[0] == 'G') ? hexu : hex; + 261c: 00004317 auipc t1,0x4 + 2620: 44430313 addi t1,t1,1092 # 6a60 + 2624: eb6ff06f j 1cda + 2628: 7be6 ld s7,120(sp) + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 262a: 86c2 mv a3,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 262c: 8542 mv a0,a6 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 262e: 88d2 mv a7,s4 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2630: 8ade mv s5,s7 + if (pr > (stbsp__int32)l) + 2632: 0005071b sext.w a4,a0 + 2636: 01175f63 bge a4,a7,2654 + pr = l - 1; + 263a: fff5089b addiw a7,a0,-1 + tail[0] = 0; + 263e: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 2642: 70028c63 beqz t0,2d5a + sign[0] = 1; + 2646: 670d lui a4,0x3 + 2648: d0170713 addi a4,a4,-767 # 2d01 + 264c: 06e11423 sh a4,104(sp) + 2650: e3aff06f j 1c8a + else if (pr) + 2654: fe0885e3 beqz a7,263e + --pr; // when using %e, there is one digit before the decimal + 2658: 38fd addiw a7,a7,-1 + 265a: b7d5 j 263e + switch (f[0]) { + 265c: 0034c783 lbu a5,3(s1) + f += 3; + 2660: 048d addi s1,s1,3 + 2662: e53fe06f j 14b4 + if (!limit || *sn == 0) + 2666: 4601 li a2,0 + 2668: 4701 li a4,0 + 266a: 4781 li a5,0 + return (stbsp__uint32)(sn - s); + 266c: bca5 j 20e4 + pr = 1; + 266e: 4885 li a7,1 + 2670: cf4ff06f j 1b64 + *s++ = sn[0]; + 2674: 000ac703 lbu a4,0(s5) + 2678: 0ce10023 sb a4,192(sp) + if (pr) + 267c: 54088563 beqz a7,2bc6 + *s++ = stbsp__period; + 2680: 00004617 auipc a2,0x4 + 2684: 3dc64603 lbu a2,988(a2) # 6a5c + if ((l - 1) > (stbsp__uint32)pr) + 2688: fff6871b addiw a4,a3,-1 + *s++ = stbsp__period; + 268c: 0cc100a3 sb a2,193(sp) + if ((l - 1) > (stbsp__uint32)pr) + 2690: 0008851b sext.w a0,a7 + 2694: 0007061b sext.w a2,a4 + 2698: 52c57163 bgeu a0,a2,2bba + l = pr + 1; + 269c: 0018869b addiw a3,a7,1 + for (n = 1; n < l; n++) + 26a0: 8746 mv a4,a7 + 26a2: 02071613 slli a2,a4,0x20 + 26a6: 9201 srli a2,a2,0x20 + 26a8: 0c210713 addi a4,sp,194 + 26ac: 0a85 addi s5,s5,1 + 26ae: 963a add a2,a2,a4 + *s++ = sn[n]; + 26b0: 000ac583 lbu a1,0(s5) + 26b4: 0705 addi a4,a4,1 + for (n = 1; n < l; n++) + 26b6: 0a85 addi s5,s5,1 + *s++ = sn[n]; + 26b8: feb70fa3 sb a1,-1(a4) + for (n = 1; n < l; n++) + 26bc: fec71ae3 bne a4,a2,26b0 + tail[1] = h[0xe]; + 26c0: 00e34803 lbu a6,14(t1) + dp -= 1; + 26c4: fff7871b addiw a4,a5,-1 + tail[2] = '+'; + 26c8: 02b00593 li a1,43 + tail[1] = h[0xe]; + 26cc: 070108a3 sb a6,113(sp) + if (dp < 0) { + 26d0: 00075663 bgez a4,26dc + dp = -dp; + 26d4: 4705 li a4,1 + 26d6: 9f1d subw a4,a4,a5 + tail[2] = '-'; + 26d8: 02d00593 li a1,45 + 26dc: 06b10923 sb a1,114(sp) + n = (dp >= 100) ? 5 : 4; + 26e0: 06300793 li a5,99 + 26e4: 4ee7d663 bge a5,a4,2bd0 + 26e8: 4595 li a1,5 + 26ea: 4f95 li t6,5 + 26ec: 4e95 li t4,5 + tail[n] = '0' + dp % 10; + 26ee: 47a9 li a5,10 + dp /= 10; + 26f0: 02f7433b divw t1,a4,a5 + --n; + 26f4: fffe8f1b addiw t5,t4,-1 + tail[n] = '0' + dp % 10; + 26f8: 020f1293 slli t0,t5,0x20 + 26fc: 220e8813 addi a6,t4,544 + 2700: 06010893 addi a7,sp,96 + 2704: 0202d293 srli t0,t0,0x20 + 2708: 01180eb3 add t4,a6,a7 + 270c: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff8998> + 2710: 011802b3 add t0,a6,a7 + tail[0] = (char)n; + 2714: 07f10823 sb t6,112(sp) + if (n <= 3) + 2718: 4a0d li s4,3 + tail[n] = '0' + dp % 10; + 271a: 02f7673b remw a4,a4,a5 + dp /= 10; + 271e: 0003081b sext.w a6,t1 + tail[n] = '0' + dp % 10; + 2722: 02f36abb remw s5,t1,a5 + 2726: 0307071b addiw a4,a4,48 + 272a: deee8823 sb a4,-528(t4) + 272e: 030a871b addiw a4,s5,48 + 2732: dee28823 sb a4,-528(t0) + if (n <= 3) + 2736: 014f0a63 beq t5,s4,274a + dp /= 10; + 273a: 02f3483b divw a6,t1,a5 + tail[n] = '0' + dp % 10; + 273e: 02f867bb remw a5,a6,a5 + 2742: 0307879b addiw a5,a5,48 + 2746: 06f109a3 sb a5,115(sp) + tz = pr - (l - 1); + 274a: 2505 addiw a0,a0,1 + l = (stbsp__uint32)(s - (num + 64)); + 274c: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens + 2750: 030002b7 lui t0,0x3000 + tz = pr - (l - 1); + 2754: 40d508bb subw a7,a0,a3 + 2758: d2c2 sw a6,100(sp) + l = (stbsp__uint32)(s - (num + 64)); + 275a: 415607b3 sub a5,a2,s5 + cs = 1 + (3 << 24); // how many tens + 275e: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2760: bbc9 j 2532 + 2762: fc2e sd a1,56(sp) + 2764: d0b2 sw a2,96(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2766: 8536 mv a0,a3 + 2768: e2cff06f j 1d94 + flt_lead: + 276c: 4581 li a1,0 + 276e: 4f81 li t6,0 + 2770: b3c9 j 2532 + n = pr + lead[0] + tail[0] + tz; + 2772: 06814a03 lbu s4,104(sp) + 2776: 000a0f9b sext.w t6,s4 + 277a: b901 j 238a + if ((f[1] == '6') && (f[2] == '4')) { + 277c: 0024c683 lbu a3,2(s1) + 2780: 03400713 li a4,52 + 2784: 00e68463 beq a3,a4,278c + 2788: e2bfe06f j 15b2 + switch (f[0]) { + 278c: 0034c783 lbu a5,3(s1) + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 2790: 020e6e13 ori t3,t3,32 + f += 3; + 2794: 048d addi s1,s1,3 + 2796: d1ffe06f j 14b4 + if (pr < (stbsp__int32)l) + 279a: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 279e: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 27a2: fff7c793 not a5,a5 + 27a6: 97fd srai a5,a5,0x3f + 27a8: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 27aa: 00fa063b addw a2,s4,a5 + s = (char *)sn; + 27ae: 7ae6 ld s5,120(sp) + n = pr + lead[0] + tail[0] + tz; + 27b0: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 27b2: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 27b6: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 27b8: 835a mv t1,s6 + 27ba: 00cb5363 bge s6,a2,27c0 + 27be: 8332 mv t1,a2 + fw -= n; + 27c0: 40e3033b subw t1,t1,a4 + goto scopy; + 27c4: 4f81 li t6,0 + pr -= l; + 27c6: 40d7873b subw a4,a5,a3 + cs = 0; + 27ca: 4281 li t0,0 + tz = 0; + 27cc: 4881 li a7,0 + goto scopy; + 27ce: c42ff06f j 1c10 + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 27d2: 415705b3 sub a1,a4,s5 + 27d6: 030002b7 lui t0,0x3000 + 27da: 00b282bb addw t0,t0,a1 + l = pr - n; + 27de: 0008859b sext.w a1,a7 + if (pr) + 27e2: 42088763 beqz a7,2c10 + *s++ = stbsp__period; + 27e6: 0cca4f83 lbu t6,204(s4) + if ((l - dp) > (stbsp__uint32)pr) + 27ea: 41d6833b subw t1,a3,t4 + *s++ = stbsp__period; + 27ee: 00280713 addi a4,a6,2 + 27f2: 01f800a3 sb t6,1(a6) + if ((l - dp) > (stbsp__uint32)pr) + 27f6: 4065ed63 bltu a1,t1,2c10 + while (n < l) { + 27fa: 5ed57863 bgeu a0,a3,2dea + 27fe: 40c687bb subw a5,a3,a2 + 2802: 37fd addiw a5,a5,-1 + 2804: 1782 slli a5,a5,0x20 + 2806: 9381 srli a5,a5,0x20 + 2808: 1602 slli a2,a2,0x20 + 280a: 9201 srli a2,a2,0x20 + 280c: 0785 addi a5,a5,1 + 280e: 967a add a2,a2,t5 + 2810: 97ba add a5,a5,a4 + *s++ = sn[n]; + 2812: 00064503 lbu a0,0(a2) + 2816: 0705 addi a4,a4,1 + while (n < l) { + 2818: 0605 addi a2,a2,1 + *s++ = sn[n]; + 281a: fea70fa3 sb a0,-1(a4) + while (n < l) { + 281e: fef71ae3 bne a4,a5,2812 + tz = pr - (l - dp); + 2822: 01d585bb addw a1,a1,t4 + 2826: 40d588bb subw a7,a1,a3 + l = (stbsp__uint32)(s - (num + 64)); + 282a: 415787b3 sub a5,a5,s5 + 282e: b99d j 24a4 + fl |= STBSP__NEGATIVE; + 2830: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 2834: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 2838: b539 j 2646 + tail[0] = (char)n; + 283a: 4799 li a5,6 + tail[n] = '0' + dp % 10; + 283c: 06b10b23 sb a1,118(sp) + tail[0] = (char)n; + 2840: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2844: 4819 li a6,6 + 2846: 4f99 li t6,6 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2848: 4599 li a1,6 + dp /= 10; + 284a: 4f29 li t5,10 + if (n <= 3) + 284c: 428d li t0,3 + 284e: 87b2 mv a5,a2 + dp /= 10; + 2850: 03e7c7bb divw a5,a5,t5 + --n; + 2854: 35fd addiw a1,a1,-1 + tail[n] = '0' + dp % 10; + 2856: 02059613 slli a2,a1,0x20 + 285a: 9201 srli a2,a2,0x20 + 285c: 06010e93 addi t4,sp,96 + 2860: 22060613 addi a2,a2,544 + 2864: 9676 add a2,a2,t4 + 2866: 03e7eebb remw t4,a5,t5 + 286a: 030e8e9b addiw t4,t4,48 + 286e: dfd60823 sb t4,-528(a2) + if (n <= 3) + 2872: fc559fe3 bne a1,t0,2850 + 2876: e6aff06f j 1ee0 + *s++ = h[(n64 >> 60) & 15]; + 287a: 93f1 srli a5,a5,0x3c + 287c: 97ae add a5,a5,a1 + 287e: 0007c303 lbu t1,0(a5) + lead[1 + lead[0]] = '0'; + 2882: 1088 addi a0,sp,96 + 2884: 22080793 addi a5,a6,544 + 2888: 97aa add a5,a5,a0 + 288a: 03000513 li a0,48 + 288e: dea78423 sb a0,-536(a5) + lead[2 + lead[0]] = 'x'; + 2892: 22068793 addi a5,a3,544 + 2896: 1094 addi a3,sp,96 + 2898: 96be add a3,a3,a5 + *s++ = stbsp__period; + 289a: 00004517 auipc a0,0x4 + 289e: 1c254503 lbu a0,450(a0) # 6a5c + lead[2 + lead[0]] = 'x'; + 28a2: 07800813 li a6,120 + sn = s; + 28a6: 0c210793 addi a5,sp,194 + lead[2 + lead[0]] = 'x'; + 28aa: df068423 sb a6,-536(a3) + *s++ = stbsp__period; + 28ae: 0ca100a3 sb a0,193(sp) + lead[0] += 2; + 28b2: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 28b6: 0c610023 sb t1,192(sp) + n64 <<= 4; + 28ba: 0732 slli a4,a4,0xc + sn = s; + 28bc: fcbe sd a5,120(sp) + n = pr; + 28be: 0008869b sext.w a3,a7 + while (n--) { + 28c2: 4831 li a6,12 + if (n > 13) + 28c4: 4535 li a0,13 + tz = pr - n; + 28c6: 40a688bb subw a7,a3,a0 + while (n--) { + 28ca: 02081313 slli t1,a6,0x20 + 28ce: 02035313 srli t1,t1,0x20 + 28d2: 22030693 addi a3,t1,544 + 28d6: 1088 addi a0,sp,96 + 28d8: 9536 add a0,a0,a3 + 28da: e4350513 addi a0,a0,-445 + *s++ = h[(n64 >> 60) & 15]; + 28de: 03c75693 srli a3,a4,0x3c + 28e2: 96ae add a3,a3,a1 + 28e4: 0006c683 lbu a3,0(a3) + 28e8: 0785 addi a5,a5,1 + n64 <<= 4; + 28ea: 0712 slli a4,a4,0x4 + *s++ = h[(n64 >> 60) & 15]; + 28ec: fed78fa3 sb a3,-1(a5) + while (n--) { + 28f0: fea797e3 bne a5,a0,28de + l = (int)(s - (num + 64)); + 28f4: 280d addiw a6,a6,3 + 28f6: 0008069b sext.w a3,a6 + if (pr < (stbsp__int32)l) + 28fa: fff6c713 not a4,a3 + 28fe: 977d srai a4,a4,0x3f + 2900: 00e87733 and a4,a6,a4 + dp = (int)(s - sn); + 2904: 0013051b addiw a0,t1,1 + if (pr < (stbsp__int32)l) + 2908: 0007031b sext.w t1,a4 + pr -= l; + 290c: 4107073b subw a4,a4,a6 + 2910: d76ff06f j 1e86 + *--s = stbsp__comma; + 2914: 00004a17 auipc s4,0x4 + 2918: 07ca0a13 addi s4,s4,124 # 6990 + if (n64 >= 100000000) { + 291c: 05f5e7b7 lui a5,0x5f5e + 2920: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + n = (stbsp__uint32)(n64 % 100000000); + 2924: 05f5e637 lui a2,0x5f5e + *--s = stbsp__comma; + 2928: 0cda4b83 lbu s7,205(s4) + if (n64 >= 100000000) { + 292c: e83e sd a5,16(sp) + n = (stbsp__uint32)(n64 % 100000000); + 292e: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f56878> + l = 0; + 2932: d082 sw zero,96(sp) + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2934: 040e7813 andi a6,t3,64 + 2938: 4701 li a4,0 + 293a: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 293c: 28010a93 addi s5,sp,640 + n = (stbsp__uint32)(n64 % 100000000); + 2940: ec3e sd a5,24(sp) + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2942: 430d li t1,3 + n /= 10; + 2944: 45a9 li a1,10 + while (n) { + 2946: 4ea5 li t4,9 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2948: 06400f93 li t6,100 + if (n64 >= 100000000) { + 294c: 67c2 ld a5,16(sp) + char *o = s - 8; + 294e: ff8a8513 addi a0,s5,-8 + if (n64 >= 100000000) { + 2952: 0fe7f763 bgeu a5,t5,2a40 + n = (stbsp__uint32)(n64 % 100000000); + 2956: 6662 ld a2,24(sp) + 2958: 02cf77b3 remu a5,t5,a2 + n64 /= 100000000; + 295c: 02cf5f33 divu t5,t5,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2960: 0e080463 beqz a6,2a48 + while (n) { + 2964: cb85 beqz a5,2994 + *--s = stbsp__comma; + 2966: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2968: 00671763 bne a4,t1,2976 + --o; + 296c: 017a8023 sb s7,0(s5) + 2970: 157d addi a0,a0,-1 + *--s = stbsp__comma; + 2972: 1afd addi s5,s5,-1 + l = 0; + 2974: 4701 li a4,0 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2976: 2705 addiw a4,a4,1 + *--s = (char)(n % 10) + '0'; + 2978: 02b7f63b remuw a2,a5,a1 + 297c: 0306061b addiw a2,a2,48 + 2980: 00ca8023 sb a2,0(s5) + n /= 10; + 2984: 02b7d63b divuw a2,a5,a1 + while (n) { + 2988: 00fef563 bgeu t4,a5,2992 + *--s = stbsp__comma; + 298c: 1afd addi s5,s5,-1 + 298e: 87b2 mv a5,a2 + 2990: bfe1 j 2968 + while (n) { + 2992: 4285 li t0,1 + if (n64 == 0) { + 2994: 020f0063 beqz t5,29b4 + while (s != o) + 2998: fb550ae3 beq a0,s5,294c + *--s = stbsp__comma; + 299c: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 299e: 00080663 beqz a6,29aa + 29a2: 08670863 beq a4,t1,2a32 + 29a6: 2705 addiw a4,a4,1 + 29a8: 4285 li t0,1 + *--s = '0'; + 29aa: 03000793 li a5,48 + 29ae: 00fa8023 sb a5,0(s5) + 29b2: b7dd j 2998 + 29b4: 00028363 beqz t0,29ba + 29b8: d0ba sw a4,96(sp) + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 29ba: 000ac703 lbu a4,0(s5) + 29be: 03000793 li a5,48 + 29c2: 34f70b63 beq a4,a5,2d18 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 29c6: 051c addi a5,sp,640 + 29c8: 415786bb subw a3,a5,s5 + tail[0] = 0; + 29cc: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 29d0: 080e7713 andi a4,t3,128 + 29d4: 87f2 mv a5,t3 + 29d6: 32070863 beqz a4,2d06 + 29da: 678d lui a5,0x3 + 29dc: d017879b addiw a5,a5,-767 # 2d01 + sign[0] = 1; + 29e0: 06f11423 sh a5,104(sp) + 29e4: 4705 li a4,1 + 29e6: 4a05 li s4,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 29e8: d0b6 sw a3,96(sp) + if (l == 0) { + 29ea: 30068163 beqz a3,2cec + cs = l + (3 << 24); + 29ee: 030002b7 lui t0,0x3000 + 29f2: 00d282bb addw t0,t0,a3 + if (pr < (stbsp__int32)l) + 29f6: 0006861b sext.w a2,a3 + if (pr < 0) + 29fa: fff8c793 not a5,a7 + 29fe: 97fd srai a5,a5,0x3f + if (pr < (stbsp__int32)l) + 2a00: 00f8f7b3 and a5,a7,a5 + 2a04: 0007859b sext.w a1,a5 + 2a08: 00c5d363 bge a1,a2,2a0e + 2a0c: 87b2 mv a5,a2 + n = pr + lead[0] + tail[0] + tz; + 2a0e: 00f7063b addw a2,a4,a5 + 2a12: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 2a14: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 2a16: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 2a1a: 835a mv t1,s6 + 2a1c: 00cb5363 bge s6,a2,2a22 + 2a20: 8332 mv t1,a2 + fw -= n; + 2a22: 40e3033b subw t1,t1,a4 + scopy: + 2a26: 4f81 li t6,0 + pr -= l; + 2a28: 40d7873b subw a4,a5,a3 + tz = 0; + 2a2c: 4881 li a7,0 + scopy: + 2a2e: 9e2ff06f j 1c10 + *--s = stbsp__comma; + 2a32: 87de mv a5,s7 + --o; + 2a34: 157d addi a0,a0,-1 + l = 0; + 2a36: 4701 li a4,0 + --o; + 2a38: 4285 li t0,1 + 2a3a: 00fa8023 sb a5,0(s5) + 2a3e: bfa9 j 2998 + n = (stbsp__uint32)n64; + 2a40: 000f079b sext.w a5,t5 + n64 = 0; + 2a44: 4f01 li t5,0 + 2a46: bf29 j 2960 + 2a48: f046 sd a7,32(sp) + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a4a: 03f7f63b remuw a2,a5,t6 + s -= 2; + 2a4e: 1af9 addi s5,s5,-2 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a50: 0007889b sext.w a7,a5 + 2a54: 2605 addiw a2,a2,1 + 2a56: 0016161b slliw a2,a2,0x1 + 2a5a: 1602 slli a2,a2,0x20 + 2a5c: 9201 srli a2,a2,0x20 + 2a5e: 9652 add a2,a2,s4 + 2a60: 00065603 lhu a2,0(a2) + n /= 100; + 2a64: 03f7d7bb divuw a5,a5,t6 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a68: 00ca9023 sh a2,0(s5) + } while (n); + 2a6c: 06300613 li a2,99 + 2a70: fd166de3 bltu a2,a7,2a4a + 2a74: 7882 ld a7,32(sp) + if (n64 == 0) { + 2a76: f20f11e3 bnez t5,2998 + 2a7a: bf2d j 29b4 + *(stbsp__uint32 *)bf = 0x20202020; + 2a7c: 20202b37 lui s6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 2a80: 854a mv a0,s2 + *bf++ = ' '; + 2a82: 02000a93 li s5,32 + *(stbsp__uint32 *)bf = 0x20202020; + 2a86: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201fa798> + stbsp__chk_cb_buf(1); + 2a8a: 1fe00a13 li s4,510 + stbsp__cb_buf_clamp(i, fw); + 2a8e: 20000b93 li s7,512 + 2a92: 891a mv s2,t1 + 2a94: 0a098063 beqz s3,2b34 + 2a98: 40a40633 sub a2,s0,a0 + 2a9c: 40cb87bb subw a5,s7,a2 + 2aa0: 873e mv a4,a5 + 2aa2: 00f95363 bge s2,a5,2aa8 + 2aa6: 874a mv a4,s2 + 2aa8: 0007079b sext.w a5,a4 + fw -= i; + 2aac: 40e9093b subw s2,s2,a4 + while (i) { + 2ab0: e799 bnez a5,2abe + 2ab2: a281 j 2bf2 + *bf++ = ' '; + 2ab4: 01540023 sb s5,0(s0) + --i; + 2ab8: 37fd addiw a5,a5,-1 + *bf++ = ' '; + 2aba: 0405 addi s0,s0,1 + while (i) { + 2abc: cba1 beqz a5,2b0c + if ((((stbsp__uintptr)bf) & 3) == 0) + 2abe: 00347713 andi a4,s0,3 + 2ac2: fb6d bnez a4,2ab4 + while (i >= 4) { + 2ac4: 470d li a4,3 + 2ac6: 40f75363 bge a4,a5,2ecc + 2aca: ffc7869b addiw a3,a5,-4 + 2ace: 0026d79b srliw a5,a3,0x2 + 2ad2: 0017871b addiw a4,a5,1 + 2ad6: 070a slli a4,a4,0x2 + 2ad8: 9722 add a4,a4,s0 + *(stbsp__uint32 *)bf = 0x20202020; + 2ada: 01642023 sw s6,0(s0) + bf += 4; + 2ade: 0411 addi s0,s0,4 + while (i >= 4) { + 2ae0: fee41de3 bne s0,a4,2ada + 2ae4: 0027979b slliw a5,a5,0x2 + 2ae8: 40f687bb subw a5,a3,a5 + while (i--) + 2aec: fff7869b addiw a3,a5,-1 + 2af0: cf91 beqz a5,2b0c + 2af2: 9fa1 addw a5,a5,s0 + *bf++ = ' '; + 2af4: 0705 addi a4,a4,1 + while (i--) + 2af6: 0007061b sext.w a2,a4 + *bf++ = ' '; + 2afa: ff570fa3 sb s5,-1(a4) + while (i--) + 2afe: fec79be3 bne a5,a2,2af4 + 2b02: 2685 addiw a3,a3,1 + 2b04: 02069793 slli a5,a3,0x20 + 2b08: 9381 srli a5,a5,0x20 + 2b0a: 943e add s0,s0,a5 + stbsp__chk_cb_buf(1); + 2b0c: 00098f63 beqz s3,2b2a + 2b10: 40a4063b subw a2,s0,a0 + 2b14: 00ca5b63 bge s4,a2,2b2a + 2b18: 65a2 ld a1,8(sp) + 2b1a: e81e sd t2,16(sp) + 2b1c: 00cd0d3b addw s10,s10,a2 + 2b20: 9982 jalr s3 + 2b22: 80050be3 beqz a0,2338 + 2b26: 63c2 ld t2,16(sp) + 2b28: 842a mv s0,a0 + while (fw) { + 2b2a: f60915e3 bnez s2,2a94 + 2b2e: 892a mv s2,a0 + 2b30: f21fe06f j 1a50 + stbsp__cb_buf_clamp(i, fw); + 2b34: 87ca mv a5,s2 + fw -= i; + 2b36: 4901 li s2,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2b38: b759 j 2abe + } else if (fl & STBSP__LEADINGPLUS) { + 2b3a: 002e7713 andi a4,t3,2 + 2b3e: 94070663 beqz a4,1c8a + sign[0] = 1; + 2b42: 670d lui a4,0x3 + 2b44: b0170713 addi a4,a4,-1279 # 2b01 + 2b48: 06e11423 sh a4,104(sp) + 2b4c: 93eff06f j 1c8a + if (((stbsp__uintptr)sn & 3) == 0) + 2b50: 87d6 mv a5,s5 + while (limit >= 4) { + 2b52: 470d li a4,3 + 2b54: 22d77763 bgeu a4,a3,2d82 + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2b58: feff05b7 lui a1,0xfeff0 + 2b5c: 80808637 lui a2,0x80808 + 2b60: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8677> + 2b64: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff808007f8> + while (limit >= 4) { + 2b68: 480d li a6,3 + 2b6a: a029 j 2b74 + limit -= 4; + 2b6c: 36f1 addiw a3,a3,-4 + sn += 4; + 2b6e: 0791 addi a5,a5,4 + while (limit >= 4) { + 2b70: 20d87963 bgeu a6,a3,2d82 + stbsp__uint32 v = *(stbsp__uint32 *)sn; + 2b74: 4398 lw a4,0(a5) + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2b76: 00b7053b addw a0,a4,a1 + 2b7a: fff74713 not a4,a4 + 2b7e: 8f69 and a4,a4,a0 + 2b80: 8f71 and a4,a4,a2 + 2b82: 2701 sext.w a4,a4 + 2b84: d765 beqz a4,2b6c + 2b86: 02069713 slli a4,a3,0x20 + 2b8a: 9301 srli a4,a4,0x20 + 2b8c: 973e add a4,a4,a5 + 2b8e: a021 j 2b96 + ++sn; + 2b90: 0785 addi a5,a5,1 + while (limit && *sn) { + 2b92: 00e78663 beq a5,a4,2b9e + 2b96: 0007c683 lbu a3,0(a5) + 2b9a: fafd bnez a3,2b90 + 2b9c: 873e mv a4,a5 + return (stbsp__uint32)(sn - s); + 2b9e: 41570733 sub a4,a4,s5 + 2ba2: 0007069b sext.w a3,a4 + if (pr < (stbsp__int32)l) + 2ba6: fff6c793 not a5,a3 + 2baa: 97fd srai a5,a5,0x3f + 2bac: 8f7d and a4,a4,a5 + 2bae: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2bb2: 863e mv a2,a5 + pr -= l; + 2bb4: 9f15 subw a4,a4,a3 + return (stbsp__uint32)(sn - s); + 2bb6: d2eff06f j 20e4 + for (n = 1; n < l; n++) + 2bba: 4605 li a2,1 + 2bbc: aed663e3 bltu a2,a3,26a2 + 2bc0: 0c210613 addi a2,sp,194 + 2bc4: bcf5 j 26c0 + l = pr + 1; + 2bc6: 4685 li a3,1 + if ((l - 1) > (stbsp__uint32)pr) + 2bc8: 4501 li a0,0 + *s++ = sn[0]; + 2bca: 0c110613 addi a2,sp,193 + 2bce: bccd j 26c0 + 2bd0: 4591 li a1,4 + 2bd2: 4f91 li t6,4 + n = (dp >= 100) ? 5 : 4; + 2bd4: 4e91 li t4,4 + 2bd6: be21 j 26ee + 2bd8: 4a85 li s5,1 + 2bda: 80000737 lui a4,0x80000 + pr = 1; // default is 6 + 2bde: 4a05 li s4,1 + 2be0: 920ff06f j 1d00 + dp = (n64) ? -1022 : 0; + 2be4: 4601 li a2,0 + 2be6: c119 beqz a0,2bec + 2be8: c0200613 li a2,-1022 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 2bec: 872a mv a4,a0 + 2bee: a3aff06f j 1e28 + stbsp__chk_cb_buf(1); + 2bf2: 2601 sext.w a2,a2 + 2bf4: 1fe00793 li a5,510 + 2bf8: f2c7c0e3 blt a5,a2,2b18 + 2bfc: bd61 j 2a94 + tail[0] = (char)n; + 2bfe: 4795 li a5,5 + tail[n] = '0' + dp % 10; + 2c00: 06b10aa3 sb a1,117(sp) + tail[0] = (char)n; + 2c04: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2c08: 4815 li a6,5 + 2c0a: 4f95 li t6,5 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2c0c: 4595 li a1,5 + 2c0e: b935 j 284a + l = pr + dp; + 2c10: 011786bb addw a3,a5,a7 + 2c14: d0b6 sw a3,96(sp) + 2c16: b6d5 j 27fa + s = (char *)"null"; + 2c18: 00002a97 auipc s5,0x2 + 2c1c: 4b8a8a93 addi s5,s5,1208 # 50d0 <_GLOBAL__sub_I__ZSt3cin+0xe0> + 2c20: c80ff06f j 20a0 + } else if (fl & STBSP__LEADINGPLUS) { + 2c24: 002e7793 andi a5,t3,2 + 2c28: 1c079c63 bnez a5,2e00 + sign[0] = 0; + 2c2c: 4689 li a3,2 + 2c2e: 4a09 li s4,2 + 2c30: 4805 li a6,1 + 2c32: 9e8ff06f j 1e1a + sign[0] = 1; + 2c36: 670d lui a4,0x3 + 2c38: b0170713 addi a4,a4,-1279 # 2b01 + 2c3c: 06e11423 sh a4,104(sp) + 2c40: b86ff06f j 1fc6 + pr = 0; + 2c44: 4881 li a7,0 + 2c46: f1ffe06f j 1b64 + *s++ = '0'; + 2c4a: 03000713 li a4,48 + 2c4e: 0ce10023 sb a4,192(sp) + if (pr) + 2c52: 1a088c63 beqz a7,2e0a + *s++ = stbsp__period; + 2c56: 00004717 auipc a4,0x4 + 2c5a: e0674703 lbu a4,-506(a4) # 6a5c + n = -dp; + 2c5e: 40f007bb negw a5,a5 + *s++ = stbsp__period; + 2c62: 0ce100a3 sb a4,193(sp) + if ((stbsp__int32)n > pr) + 2c66: 0007871b sext.w a4,a5 + 2c6a: 00e8d363 bge a7,a4,2c70 + 2c6e: 87c6 mv a5,a7 + 2c70: 0007871b sext.w a4,a5 + if ((stbsp__int32)(l + n) > pr) + 2c74: 00d7833b addw t1,a5,a3 + 2c78: 883a mv a6,a4 + while (i) { + 2c7a: 0c210793 addi a5,sp,194 + *s++ = '0'; + 2c7e: 03000513 li a0,48 + while (i) { + 2c82: e711 bnez a4,2c8e + 2c84: a271 j 2e10 + if ((((stbsp__uintptr)s) & 3) == 0) + 2c86: 0037f613 andi a2,a5,3 + 2c8a: 18060563 beqz a2,2e14 + *s++ = '0'; + 2c8e: 85ba mv a1,a4 + 2c90: 00a78023 sb a0,0(a5) + --i; + 2c94: 377d addiw a4,a4,-1 + *s++ = '0'; + 2c96: 0785 addi a5,a5,1 + while (i) { + 2c98: f77d bnez a4,2c86 + if ((stbsp__int32)(l + n) > pr) + 2c9a: 0003071b sext.w a4,t1 + 2c9e: 4108863b subw a2,a7,a6 + 2ca2: 00e8d563 bge a7,a4,2cac + l = pr - n; + 2ca6: 0006069b sext.w a3,a2 + 2caa: d0b2 sw a2,96(sp) + while (i) { + 2cac: c68d beqz a3,2cd6 + 2cae: 7566 ld a0,120(sp) + 2cb0: 02069813 slli a6,a3,0x20 + 2cb4: 02085813 srli a6,a6,0x20 + 2cb8: 01078eb3 add t4,a5,a6 + 2cbc: 85aa mv a1,a0 + 2cbe: 873e mv a4,a5 + *s++ = *sn++; + 2cc0: 0005c883 lbu a7,0(a1) + 2cc4: 0705 addi a4,a4,1 + while (i) { + 2cc6: 0585 addi a1,a1,1 + *s++ = *sn++; + 2cc8: ff170fa3 sb a7,-1(a4) + while (i) { + 2ccc: ffd71ae3 bne a4,t4,2cc0 + 2cd0: 9542 add a0,a0,a6 + 2cd2: 97c2 add a5,a5,a6 + 2cd4: fcaa sd a0,120(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2cd6: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2cda: 030002b7 lui t0,0x3000 + tz = pr - (n + l); + 2cde: 40d608bb subw a7,a2,a3 + l = (stbsp__uint32)(s - (num + 64)); + 2ce2: 415787b3 sub a5,a5,s5 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2ce6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2ce8: fbcff06f j 24a4 + *--s = '0'; + 2cec: 03000793 li a5,48 + 2cf0: fefa8fa3 sb a5,-1(s5) + l = 1; + 2cf4: 030002b7 lui t0,0x3000 + 2cf8: 4785 li a5,1 + 2cfa: d0be sw a5,96(sp) + *--s = '0'; + 2cfc: 1afd addi s5,s5,-1 + l = 1; + 2cfe: 4605 li a2,1 + 2d00: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2d02: 4685 li a3,1 + 2d04: b9dd j 29fa + } else if (fl & STBSP__LEADINGSPACE) { + 2d06: 004e7713 andi a4,t3,4 + 2d0a: e74d bnez a4,2db4 + } else if (fl & STBSP__LEADINGPLUS) { + 2d0c: 8b89 andi a5,a5,2 + 2d0e: efd9 bnez a5,2dac + sign[0] = 0; + 2d10: 06010423 sb zero,104(sp) + 2d14: 4a01 li s4,0 + 2d16: b9c9 j 29e8 + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2d18: 051c addi a5,sp,640 + 2d1a: cafa89e3 beq s5,a5,29cc + ++s; + 2d1e: 0a85 addi s5,s5,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2d20: 415786bb subw a3,a5,s5 + 2d24: b165 j 29cc + n = dp - n; + 2d26: 40ce87bb subw a5,t4,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2d2a: 12030e63 beqz t1,2e66 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2d2e: 4511 li a0,4 + 2d30: 03000613 li a2,48 + *s++ = stbsp__comma; + 2d34: 00170693 addi a3,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2d38: 00030563 beqz t1,2d42 + 2d3c: 2585 addiw a1,a1,1 + 2d3e: 00a58963 beq a1,a0,2d50 + 2d42: 8736 mv a4,a3 + --n; + 2d44: 37fd addiw a5,a5,-1 + 2d46: fec70fa3 sb a2,-1(a4) + while (n) { + 2d4a: f7ed bnez a5,2d34 + 2d4c: f38ff06f j 2484 + 2d50: fe568fa3 sb t0,-1(a3) + *s++ = stbsp__comma; + 2d54: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2d56: 4585 li a1,1 + 2d58: b7f5 j 2d44 + sign[0] = 0; + 2d5a: 06010423 sb zero,104(sp) + 2d5e: f1dfe06f j 1c7a + tail[idx + 1] = "_kMGT"[fl >> 24]; + 2d62: 00002697 auipc a3,0x2 + 2d66: 37e68693 addi a3,a3,894 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0xf0> + 2d6a: 9736 add a4,a4,a3 + 2d6c: 00074683 lbu a3,0(a4) + 2d70: 1088 addi a0,sp,96 + 2d72: 22060713 addi a4,a2,544 + 2d76: 972a add a4,a4,a0 + 2d78: ded70823 sb a3,-528(a4) + idx++; + 2d7c: 8fb2 mv t6,a2 + 2d7e: fb0ff06f j 252e + while (limit && *sn) { + 2d82: e00692e3 bnez a3,2b86 + 2d86: bd19 j 2b9c + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2d88: 0008071b sext.w a4,a6 + 2d8c: 86c2 mv a3,a6 + 2d8e: 88d2 mv a7,s4 + pr = -dp + ((pr > (stbsp__int32)l) ? (stbsp__int32) l : pr); + 2d90: 863a mv a2,a4 + 2d92: 00e8d363 bge a7,a4,2d98 + 2d96: 8646 mv a2,a7 + 2d98: 40f608bb subw a7,a2,a5 + 2d9c: 814ff06f j 1db0 + divisor = 1000.0f; + 2da0: 00003797 auipc a5,0x3 + 2da4: ae07b787 fld fa5,-1312(a5) # 5880 + 2da8: dd5fe06f j 1b7c + 2dac: 678d lui a5,0x3 + 2dae: b017879b addiw a5,a5,-1279 # 2b01 + 2db2: b13d j 29e0 + 2db4: 6789 lui a5,0x2 + 2db6: 2785 addiw a5,a5,1 # 2001 + 2db8: b125 j 29e0 + *s++ = stbsp__period; + 2dba: 00004517 auipc a0,0x4 + 2dbe: ca254503 lbu a0,-862(a0) # 6a5c + sn = s; + 2dc2: 0c210793 addi a5,sp,194 + n = pr; + 2dc6: 0008869b sext.w a3,a7 + *s++ = stbsp__period; + 2dca: 0ca100a3 sb a0,193(sp) + sn = s; + 2dce: fcbe sd a5,120(sp) + if (n > 13) + 2dd0: 4535 li a0,13 + n64 <<= 4; + 2dd2: 0712 slli a4,a4,0x4 + if (n > 13) + 2dd4: 8836 mv a6,a3 + 2dd6: 00d57363 bgeu a0,a3,2ddc + 2dda: 4835 li a6,13 + 2ddc: 0008051b sext.w a0,a6 + while (n--) { + 2de0: 387d addiw a6,a6,-1 + if (pr > (stbsp__int32)n) + 2de2: af1542e3 blt a0,a7,28c6 + tz = 0; + 2de6: 4881 li a7,0 + 2de8: b4cd j 28ca + while (n < l) { + 2dea: 87ba mv a5,a4 + 2dec: bc1d j 2822 + tail[0] = (char)n; + 2dee: 478d li a5,3 + 2df0: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2df4: 06b109a3 sb a1,115(sp) + 2df8: 480d li a6,3 + 2dfa: 4f8d li t6,3 + 2dfc: 8e4ff06f j 1ee0 + 2e00: 678d lui a5,0x3 + 2e02: b017879b addiw a5,a5,-1279 # 2b01 + 2e06: 80aff06f j 1e10 + if (pr) + 2e0a: 8336 mv t1,a3 + *s++ = '0'; + 2e0c: 0c110793 addi a5,sp,193 + while (i) { + 2e10: 4801 li a6,0 + 2e12: b561 j 2c9a + while (i >= 4) { + 2e14: 460d li a2,3 + 2e16: 04e65663 bge a2,a4,2e62 + 2e1a: ffb5871b addiw a4,a1,-5 + 2e1e: 0027559b srliw a1,a4,0x2 + 2e22: 0015861b addiw a2,a1,1 + 2e26: 060a slli a2,a2,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2e28: 30303537 lui a0,0x30303 + 2e2c: 963e add a2,a2,a5 + 2e2e: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + 2e32: c388 sw a0,0(a5) + s += 4; + 2e34: 0791 addi a5,a5,4 + while (i >= 4) { + 2e36: fef61ee3 bne a2,a5,2e32 + 2e3a: 0025959b slliw a1,a1,0x2 + 2e3e: 9f0d subw a4,a4,a1 + while (i) { + 2e40: e4070de3 beqz a4,2c9a + *s++ = '0'; + 2e44: 03000513 li a0,48 + while (i) { + 2e48: 00f705bb addw a1,a4,a5 + *s++ = '0'; + 2e4c: 0605 addi a2,a2,1 + while (i) { + 2e4e: 00060e9b sext.w t4,a2 + *s++ = '0'; + 2e52: fea60fa3 sb a0,-1(a2) + while (i) { + 2e56: ffd59be3 bne a1,t4,2e4c + 2e5a: 1702 slli a4,a4,0x20 + 2e5c: 9301 srli a4,a4,0x20 + 2e5e: 97ba add a5,a5,a4 + 2e60: bd2d j 2c9a + while (i >= 4) { + 2e62: 863e mv a2,a5 + 2e64: b7c5 j 2e44 + if ((((stbsp__uintptr)s) & 3) == 0) + 2e66: 00377693 andi a3,a4,3 + 2e6a: ce81 beqz a3,2e82 + *s++ = '0'; + 2e6c: 03000693 li a3,48 + 2e70: 00d70023 sb a3,0(a4) + --n; + 2e74: 37fd addiw a5,a5,-1 + *s++ = '0'; + 2e76: 0705 addi a4,a4,1 + while (n) { + 2e78: e0078663 beqz a5,2484 + if ((((stbsp__uintptr)s) & 3) == 0) + 2e7c: 00377613 andi a2,a4,3 + 2e80: fa65 bnez a2,2e70 + while (n >= 4) { + 2e82: 468d li a3,3 + 2e84: eaf6f5e3 bgeu a3,a5,2d2e + 2e88: ffc7869b addiw a3,a5,-4 + 2e8c: 0026d69b srliw a3,a3,0x2 + 2e90: 2685 addiw a3,a3,1 + 2e92: 068a slli a3,a3,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2e94: 30303637 lui a2,0x30303 + 2e98: 96ba add a3,a3,a4 + 2e9a: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + 2e9e: c310 sw a2,0(a4) + s += 4; + 2ea0: 0711 addi a4,a4,4 + while (n >= 4) { + 2ea2: fed71ee3 bne a4,a3,2e9e + 2ea6: 8b8d andi a5,a5,3 + while (n) { + 2ea8: e80793e3 bnez a5,2d2e + 2eac: dd8ff06f j 2484 + if (((stbsp__uintptr)sn & 3) == 0) + 2eb0: 87d6 mv a5,s5 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 2eb2: 56fd li a3,-1 + 2eb4: b155 j 2b58 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 2eb6: 5775 li a4,-3 + 2eb8: 00e7ce63 blt a5,a4,2ed4 + 2ebc: f6fa4663 blt s4,a5,2628 + if (dp > 0) { + 2ec0: ecf054e3 blez a5,2d88 + 2ec4: 86c2 mv a3,a6 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2ec6: 4881 li a7,0 + 2ec8: ee9fe06f j 1db0 + while (i--) + 2ecc: fff7869b addiw a3,a5,-1 + 2ed0: 8722 mv a4,s0 + 2ed2: b105 j 2af2 + if (pr > (stbsp__int32)l) + 2ed4: 0008071b sext.w a4,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2ed8: 7ae6 ld s5,120(sp) + if (pr > (stbsp__int32)l) + 2eda: 86c2 mv a3,a6 + 2edc: 88d2 mv a7,s4 + 2ede: f7475d63 bge a4,s4,2658 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2ee2: 8542 mv a0,a6 + 2ee4: f56ff06f j 263a + +0000000000002ee8 : +{ + 2ee8: 715d addi sp,sp,-80 + va_start(va, fmt); + 2eea: 02010313 addi t1,sp,32 +{ + 2eee: f032 sd a2,32(sp) + 2ef0: f436 sd a3,40(sp) + 2ef2: f83a sd a4,48(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2ef4: 86ae mv a3,a1 + 2ef6: 862a mv a2,a0 + 2ef8: 871a mv a4,t1 + 2efa: 4581 li a1,0 + 2efc: 4501 li a0,0 +{ + 2efe: ec06 sd ra,24(sp) + 2f00: fc3e sd a5,56(sp) + 2f02: e0c2 sd a6,64(sp) + 2f04: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2f06: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2f08: bc6fe0ef jal 12ce +} + 2f0c: 60e2 ld ra,24(sp) + 2f0e: 6161 addi sp,sp,80 + 2f10: 8082 ret + +0000000000002f12 : +{ + 2f12: dd010113 addi sp,sp,-560 + 2f16: 22813023 sd s0,544(sp) + 2f1a: 20913c23 sd s1,536(sp) + 2f1e: 22113423 sd ra,552(sp) + 2f22: 84ae mv s1,a1 + 2f24: 842a mv s0,a0 + 2f26: 88b2 mv a7,a2 + 2f28: 8736 mv a4,a3 + if ( (count == 0) && !buf ) + 2f2a: e591 bnez a1,2f36 + 2f2c: c141 beqz a0,2fac + c.buf = buf; + 2f2e: e02a sd a0,0(sp) + c.count = count; + 2f30: e402 sd zero,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 2f32: 0810 addi a2,sp,16 + 2f34: a089 j 2f76 + if (len > c->count) + 2f36: 0015a593 slti a1,a1,1 + 2f3a: 40b005bb negw a1,a1 + 2f3e: 8de5 and a1,a1,s1 + c.buf = buf; + 2f40: e02a sd a0,0(sp) + c.count = count; + 2f42: c426 sw s1,8(sp) + c.length = 0; + 2f44: c602 sw zero,12(sp) + if (len > c->count) + 2f46: 2581 sext.w a1,a1 + if (len) { + 2f48: 0804d663 bgez s1,2fd4 + s = buf; + 2f4c: 4781 li a5,0 + if (buf != c->buf) { + 2f4e: c911 beqz a0,2f62 + *d++ = *s++; + 2f50: 0007c803 lbu a6,0(a5) + 2f54: 0785 addi a5,a5,1 + 2f56: 00f40533 add a0,s0,a5 + 2f5a: ff050fa3 sb a6,-1(a0) + } while (s < se); + 2f5e: feb7e9e3 bltu a5,a1,2f50 + c->count -= len; + 2f62: 40b486bb subw a3,s1,a1 + c->buf += len; + 2f66: 95a2 add a1,a1,s0 + 2f68: e02e sd a1,0(sp) + c->count -= len; + 2f6a: c436 sw a3,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 2f6c: 1ff00793 li a5,511 + 2f70: fcd7d1e3 bge a5,a3,2f32 + 2f74: 6602 ld a2,0(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__clamp_callback, &c, stbsp__clamp_callback(0,&c,0), fmt, va ); + 2f76: 86c6 mv a3,a7 + 2f78: 858a mv a1,sp + 2f7a: ffffd517 auipc a0,0xffffd + 2f7e: 21650513 addi a0,a0,534 # 190 + 2f82: b4cfe0ef jal 12ce + l = (int)( c.buf - buf ); + 2f86: 6782 ld a5,0(sp) + 2f88: 9f81 subw a5,a5,s0 + if ( l >= count ) // should never be greater, only equal (or less) than count + 2f8a: 0097c463 blt a5,s1,2f92 + l = count - 1; + 2f8e: fff4879b addiw a5,s1,-1 + buf[l] = 0; + 2f92: 943e add s0,s0,a5 + 2f94: 00040023 sb zero,0(s0) +} + 2f98: 22813083 ld ra,552(sp) + 2f9c: 22013403 ld s0,544(sp) + 2fa0: 4532 lw a0,12(sp) + 2fa2: 21813483 ld s1,536(sp) + 2fa6: 23010113 addi sp,sp,560 + 2faa: 8082 ret + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 2fac: 86b2 mv a3,a2 + 2fae: 858a mv a1,sp + 2fb0: 0810 addi a2,sp,16 + 2fb2: ffffd517 auipc a0,0xffffd + 2fb6: 22c50513 addi a0,a0,556 # 1de + c.length = 0; + 2fba: c602 sw zero,12(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 2fbc: b12fe0ef jal 12ce +} + 2fc0: 22813083 ld ra,552(sp) + 2fc4: 22013403 ld s0,544(sp) + 2fc8: 4532 lw a0,12(sp) + 2fca: 21813483 ld s1,536(sp) + 2fce: 23010113 addi sp,sp,560 + 2fd2: 8082 ret + 2fd4: 86a6 mv a3,s1 + 2fd6: bf59 j 2f6c + +0000000000002fd8 : +{ + 2fd8: 715d addi sp,sp,-80 + va_start(va, fmt); + 2fda: 02810313 addi t1,sp,40 +{ + 2fde: f436 sd a3,40(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 2fe0: 869a mv a3,t1 +{ + 2fe2: ec06 sd ra,24(sp) + 2fe4: f83a sd a4,48(sp) + 2fe6: fc3e sd a5,56(sp) + 2fe8: e0c2 sd a6,64(sp) + 2fea: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2fec: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 2fee: f25ff0ef jal 2f12 +} + 2ff2: 60e2 ld ra,24(sp) + 2ff4: 6161 addi sp,sp,80 + 2ff6: 8082 ret + +0000000000002ff8 : +{ + 2ff8: 86ae mv a3,a1 + 2ffa: 8732 mv a4,a2 + return STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2ffc: 4581 li a1,0 + 2ffe: 862a mv a2,a0 + 3000: 4501 li a0,0 + 3002: accfe06f j 12ce + +0000000000003006 : +{ + 3006: 7119 addi sp,sp,-128 + va_start(ap, format); + 3008: 05010313 addi t1,sp,80 +{ + 300c: e0a2 sd s0,64(sp) + 300e: fc26 sd s1,56(sp) + 3010: 842a mv s0,a0 + 3012: e8b2 sd a2,80(sp) + _vprintf_core(&ctx, format, ap); + 3014: 0808 addi a0,sp,16 + ctx.limit = size; + 3016: 54fd li s1,-1 + _vprintf_core(&ctx, format, ap); + 3018: 861a mv a2,t1 +{ + 301a: e486 sd ra,72(sp) + 301c: ecb6 sd a3,88(sp) + 301e: f0ba sd a4,96(sp) + 3020: f4be sd a5,104(sp) + 3022: f8c2 sd a6,112(sp) + 3024: fcc6 sd a7,120(sp) + va_start(ap, format); + 3026: e41a sd t1,8(sp) + ctx.buf = str; + 3028: e822 sd s0,16(sp) + ctx.limit = size; + 302a: ec26 sd s1,24(sp) + ctx.written = 0; + 302c: f002 sd zero,32(sp) + ctx.stream = NULL; + 302e: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 3030: 02c000ef jal 305c <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 3034: 7502 ld a0,32(sp) + 3036: 00950b63 beq a0,s1,304c + str[ctx.written] = '\0'; + 303a: 942a add s0,s0,a0 + 303c: 00040023 sb zero,0(s0) +} + 3040: 60a6 ld ra,72(sp) + 3042: 6406 ld s0,64(sp) + 3044: 74e2 ld s1,56(sp) + 3046: 2501 sext.w a0,a0 + 3048: 6109 addi sp,sp,128 + 304a: 8082 ret + str[size - 1] = '\0'; + 304c: fe040f23 sb zero,-2(s0) +} + 3050: 60a6 ld ra,72(sp) + 3052: 6406 ld s0,64(sp) + 3054: 74e2 ld s1,56(sp) + 3056: 2501 sext.w a0,a0 + 3058: 6109 addi sp,sp,128 + 305a: 8082 ret + +000000000000305c <_vprintf_core.constprop.0.isra.0>: +static int _vprintf_core(_OutContext *ctx, const char *format, va_list ap) + 305c: 7129 addi sp,sp,-320 + 305e: edee sd s11,216(sp) + 3060: fe06 sd ra,312(sp) + 3062: 8dae mv s11,a1 + while (*p) + 3064: 0005c583 lbu a1,0(a1) + 3068: cde9 beqz a1,3142 <_vprintf_core.constprop.0.isra.0+0xe6> + 306a: f626 sd s1,296(sp) + 306c: f24a sd s2,288(sp) + 306e: ee4e sd s3,280(sp) + 3070: e656 sd s5,264(sp) + 3072: f9e2 sd s8,240(sp) + 3074: fa22 sd s0,304(sp) + 3076: ea52 sd s4,272(sp) + 3078: e25a sd s6,256(sp) + 307a: fdde sd s7,248(sp) + 307c: f5e6 sd s9,232(sp) + 307e: f1ea sd s10,224(sp) + 3080: 84aa mv s1,a0 + 3082: 8c32 mv s8,a2 + if (*p != '%') + 3084: 02500a93 li s5,37 + 3088: 49c1 li s3,16 + 308a: 00002917 auipc s2,0x2 + 308e: 32a90913 addi s2,s2,810 # 53b4 <_GLOBAL__sub_I__ZSt3cin+0x3c4> + 3092: a039 j 30a0 <_vprintf_core.constprop.0.isra.0+0x44> + _out_char(ctx, spec); + 3094: 8526 mv a0,s1 + 3096: 952fe0ef jal 11e8 <_out_char> + while (*p) + 309a: 000dc583 lbu a1,0(s11) + 309e: c5d9 beqz a1,312c <_vprintf_core.constprop.0.isra.0+0xd0> + _out_char(ctx, *p++); + 30a0: 0d85 addi s11,s11,1 + if (*p != '%') + 30a2: ff5599e3 bne a1,s5,3094 <_vprintf_core.constprop.0.isra.0+0x38> + int flag_left = 0, flag_zero = 0, flag_plus = 0, flag_space = 0, flag_hash = 0; + 30a6: 4501 li a0,0 + 30a8: 4881 li a7,0 + 30aa: 4581 li a1,0 + 30ac: 4b01 li s6,0 + 30ae: 4a01 li s4,0 + if (*p == '-') + 30b0: 000dcc83 lbu s9,0(s11) + 30b4: fe0c871b addiw a4,s9,-32 + 30b8: 0ff77713 zext.b a4,a4 + 30bc: 00e9e763 bltu s3,a4,30ca <_vprintf_core.constprop.0.isra.0+0x6e> + 30c0: 070a slli a4,a4,0x2 + 30c2: 974a add a4,a4,s2 + 30c4: 4318 lw a4,0(a4) + 30c6: 974a add a4,a4,s2 + 30c8: 8702 jr a4 + if (*p == '*') + 30ca: 02a00793 li a5,42 + 30ce: 16fc9c63 bne s9,a5,3246 <_vprintf_core.constprop.0.isra.0+0x1ea> + width = va_arg(ap, int); + 30d2: 000c2403 lw s0,0(s8) + 30d6: 0c21 addi s8,s8,8 + if (width < 0) + 30d8: 00045563 bgez s0,30e2 <_vprintf_core.constprop.0.isra.0+0x86> + width = -width; + 30dc: 4080043b negw s0,s0 + flag_left = 1; + 30e0: 4a05 li s4,1 + while (*p >= '0' && *p <= '9') + 30e2: 001dcc83 lbu s9,1(s11) + p++; + 30e6: 0d85 addi s11,s11,1 + if (*p == '.') + 30e8: 02e00793 li a5,46 + int precision = -1; + 30ec: 5bfd li s7,-1 + if (*p == '.') + 30ee: 18fc8a63 beq s9,a5,3282 <_vprintf_core.constprop.0.isra.0+0x226> + if (*p == 'l') + 30f2: 06c00693 li a3,108 + 30f6: 8666 mv a2,s9 + 30f8: 1adc8663 beq s9,a3,32a4 <_vprintf_core.constprop.0.isra.0+0x248> + else if (*p == 'z') + 30fc: 07a00693 li a3,122 + p++; + 3100: 0d85 addi s11,s11,1 + else if (*p == 'z') + 3102: 24dc8163 beq s9,a3,3344 <_vprintf_core.constprop.0.isra.0+0x2e8> + if (!spec) + 3106: 06400693 li a3,100 + 310a: 4adc8163 beq s9,a3,35ac <_vprintf_core.constprop.0.isra.0+0x550> + 310e: 06400693 li a3,100 + int len_mod = 0; + 3112: 4e81 li t4,0 + 3114: 1b96e663 bltu a3,s9,32c0 <_vprintf_core.constprop.0.isra.0+0x264> + 3118: 04700693 li a3,71 + 311c: 2796e463 bltu a3,s9,3384 <_vprintf_core.constprop.0.isra.0+0x328> + 3120: 04400693 li a3,68 + 3124: 0596e363 bltu a3,s9,316a <_vprintf_core.constprop.0.isra.0+0x10e> + 3128: 240c9363 bnez s9,336e <_vprintf_core.constprop.0.isra.0+0x312> + 312c: 7452 ld s0,304(sp) + 312e: 74b2 ld s1,296(sp) + 3130: 7912 ld s2,288(sp) + 3132: 69f2 ld s3,280(sp) + 3134: 6a52 ld s4,272(sp) + 3136: 6ab2 ld s5,264(sp) + 3138: 6b12 ld s6,256(sp) + 313a: 7bee ld s7,248(sp) + 313c: 7c4e ld s8,240(sp) + 313e: 7cae ld s9,232(sp) + 3140: 7d0e ld s10,224(sp) +} + 3142: 70f2 ld ra,312(sp) + 3144: 6dee ld s11,216(sp) + 3146: 6131 addi sp,sp,320 + 3148: 8082 ret + if (*p == '-') + 314a: 4585 li a1,1 + p++; + 314c: 0d85 addi s11,s11,1 + if (*p == '-') + 314e: b78d j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> + 3150: 4505 li a0,1 + p++; + 3152: 0d85 addi s11,s11,1 + while (1) + 3154: bfb1 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3156: 4885 li a7,1 + p++; + 3158: 0d85 addi s11,s11,1 + while (1) + 315a: bf99 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 315c: 4b05 li s6,1 + p++; + 315e: 0d85 addi s11,s11,1 + while (1) + 3160: bf81 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3162: 4a05 li s4,1 + p++; + 3164: 0d85 addi s11,s11,1 + while (1) + 3166: b7a9 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> + char spec = *p++; + 3168: 8dbe mv s11,a5 + fmt_tmp[f_idx++] = '%'; + 316a: 02500693 li a3,37 + 316e: 02d10823 sb a3,48(sp) + 3172: 4d05 li s10,1 + if (flag_left) + 3174: 000a0763 beqz s4,3182 <_vprintf_core.constprop.0.isra.0+0x126> + fmt_tmp[f_idx++] = '-'; + 3178: 02d00693 li a3,45 + 317c: 02d108a3 sb a3,49(sp) + 3180: 4d09 li s10,2 + if (flag_zero) + 3182: 000b0c63 beqz s6,319a <_vprintf_core.constprop.0.isra.0+0x13e> + fmt_tmp[f_idx++] = '0'; + 3186: 0c0d0793 addi a5,s10,192 + 318a: 0818 addi a4,sp,16 + 318c: 00e786b3 add a3,a5,a4 + 3190: 03000613 li a2,48 + 3194: f6c68023 sb a2,-160(a3) + 3198: 2d05 addiw s10,s10,1 + if (flag_plus) + 319a: c999 beqz a1,31b0 <_vprintf_core.constprop.0.isra.0+0x154> + fmt_tmp[f_idx++] = '+'; + 319c: 0c0d0793 addi a5,s10,192 + 31a0: 0818 addi a4,sp,16 + 31a2: 00e786b3 add a3,a5,a4 + 31a6: 02b00613 li a2,43 + 31aa: f6c68023 sb a2,-160(a3) + 31ae: 2d05 addiw s10,s10,1 + if (flag_space) + 31b0: 00088c63 beqz a7,31c8 <_vprintf_core.constprop.0.isra.0+0x16c> + fmt_tmp[f_idx++] = ' '; + 31b4: 0c0d0793 addi a5,s10,192 + 31b8: 0818 addi a4,sp,16 + 31ba: 00e786b3 add a3,a5,a4 + 31be: 02000613 li a2,32 + 31c2: f6c68023 sb a2,-160(a3) + 31c6: 2d05 addiw s10,s10,1 + if (flag_hash) + 31c8: c919 beqz a0,31de <_vprintf_core.constprop.0.isra.0+0x182> + fmt_tmp[f_idx++] = '#'; + 31ca: 0c0d0793 addi a5,s10,192 + 31ce: 0818 addi a4,sp,16 + 31d0: 00e786b3 add a3,a5,a4 + 31d4: 02300613 li a2,35 + 31d8: f6c68023 sb a2,-160(a3) + 31dc: 2d05 addiw s10,s10,1 + if (width > 0) + 31de: 03010a13 addi s4,sp,48 + 31e2: 28804563 bgtz s0,346c <_vprintf_core.constprop.0.isra.0+0x410> + if (precision >= 0) + 31e6: 260bd763 bgez s7,3454 <_vprintf_core.constprop.0.isra.0+0x3f8> + fmt_tmp[f_idx++] = spec; + 31ea: 0c0d0793 addi a5,s10,192 + 31ee: 0818 addi a4,sp,16 + 31f0: 00e78633 add a2,a5,a4 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31f4: 000c3683 ld a3,0(s8) + fmt_tmp[f_idx] = '\0'; + 31f8: 001d071b addiw a4,s10,1 + 31fc: 0c070793 addi a5,a4,192 + 3200: 0818 addi a4,sp,16 + fmt_tmp[f_idx++] = spec; + 3202: f7960023 sb s9,-160(a2) + fmt_tmp[f_idx] = '\0'; + 3206: 973e add a4,a4,a5 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 3208: 08000593 li a1,128 + 320c: 8652 mv a2,s4 + 320e: 0888 addi a0,sp,80 + fmt_tmp[f_idx] = '\0'; + 3210: f6070023 sb zero,-160(a4) + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 3214: dc5ff0ef jal 2fd8 + for (int i = 0; f_buf[i] != '\0'; i++) + 3218: 05014583 lbu a1,80(sp) + double f_val = va_arg(ap, double); + 321c: 0c21 addi s8,s8,8 + for (int i = 0; f_buf[i] != '\0'; i++) + 321e: 05110413 addi s0,sp,81 + 3222: e6058ce3 beqz a1,309a <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 3226: 8526 mv a0,s1 + 3228: fc1fd0ef jal 11e8 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 322c: 00044583 lbu a1,0(s0) + 3230: 0405 addi s0,s0,1 + 3232: e60584e3 beqz a1,309a <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 3236: 8526 mv a0,s1 + 3238: fb1fd0ef jal 11e8 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 323c: 00044583 lbu a1,0(s0) + 3240: 0405 addi s0,s0,1 + 3242: f1f5 bnez a1,3226 <_vprintf_core.constprop.0.isra.0+0x1ca> + 3244: bd99 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + while (*p >= '0' && *p <= '9') + 3246: fd0c869b addiw a3,s9,-48 + 324a: 0ff6f313 zext.b t1,a3 + 324e: 4725 li a4,9 + int width = 0; + 3250: 4401 li s0,0 + while (*p >= '0' && *p <= '9') + 3252: 4625 li a2,9 + 3254: e8676ae3 bltu a4,t1,30e8 <_vprintf_core.constprop.0.isra.0+0x8c> + 3258: 001dcc83 lbu s9,1(s11) + width = width * 10 + (*p - '0'); + 325c: 0024171b slliw a4,s0,0x2 + 3260: 9f21 addw a4,a4,s0 + 3262: 0017171b slliw a4,a4,0x1 + 3266: 00e6843b addw s0,a3,a4 + while (*p >= '0' && *p <= '9') + 326a: fd0c869b addiw a3,s9,-48 + 326e: 0ff6f713 zext.b a4,a3 + p++; + 3272: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 3274: fee672e3 bgeu a2,a4,3258 <_vprintf_core.constprop.0.isra.0+0x1fc> + if (*p == '.') + 3278: 02e00793 li a5,46 + int precision = -1; + 327c: 5bfd li s7,-1 + if (*p == '.') + 327e: e6fc9ae3 bne s9,a5,30f2 <_vprintf_core.constprop.0.isra.0+0x96> + if (*p == '*') + 3282: 001dcc83 lbu s9,1(s11) + 3286: 02a00793 li a5,42 + 328a: 16fc9f63 bne s9,a5,3408 <_vprintf_core.constprop.0.isra.0+0x3ac> + while (*p >= '0' && *p <= '9') + 328e: 002dcc83 lbu s9,2(s11) + if (*p == 'l') + 3292: 06c00693 li a3,108 + precision = va_arg(ap, int); + 3296: 000c2b83 lw s7,0(s8) + p++; + 329a: 0d89 addi s11,s11,2 + precision = va_arg(ap, int); + 329c: 0c21 addi s8,s8,8 + if (*p == 'l') + 329e: 8666 mv a2,s9 + 32a0: e4dc9ee3 bne s9,a3,30fc <_vprintf_core.constprop.0.isra.0+0xa0> + if (*p == 'l') + 32a4: 001dcc83 lbu s9,1(s11) + 32a8: 08cc8d63 beq s9,a2,3342 <_vprintf_core.constprop.0.isra.0+0x2e6> + char spec = *p++; + 32ac: 06400693 li a3,100 + 32b0: 0d89 addi s11,s11,2 + if (!spec) + 32b2: 4cdc8c63 beq s9,a3,378a <_vprintf_core.constprop.0.isra.0+0x72e> + 32b6: 06400693 li a3,100 + len_mod = 1; + 32ba: 4e85 li t4,1 + 32bc: e596fee3 bgeu a3,s9,3118 <_vprintf_core.constprop.0.isra.0+0xbc> + 32c0: f9bc869b addiw a3,s9,-101 + 32c4: 0ff6f693 zext.b a3,a3 + 32c8: 464d li a2,19 + 32ca: 12d66863 bltu a2,a3,33fa <_vprintf_core.constprop.0.isra.0+0x39e> + 32ce: 4e05 li t3,1 + 32d0: 00091637 lui a2,0x91 + 32d4: 00de1333 sll t1,t3,a3 + 32d8: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x88f88> + 32dc: 00c37633 and a2,t1,a2 + 32e0: 1a061463 bnez a2,3488 <_vprintf_core.constprop.0.isra.0+0x42c> + 32e4: 00737313 andi t1,t1,7 + 32e8: e80311e3 bnez t1,316a <_vprintf_core.constprop.0.isra.0+0x10e> + 32ec: 4639 li a2,14 + 32ee: 10c69663 bne a3,a2,33fa <_vprintf_core.constprop.0.isra.0+0x39e> + const char *s = va_arg(ap, char *); + 32f2: 000c3c83 ld s9,0(s8) + if (!s) + 32f6: 420c8863 beqz s9,3726 <_vprintf_core.constprop.0.isra.0+0x6ca> + while (*tmp && (precision < 0 || len < precision)) + 32fa: 000cc683 lbu a3,0(s9) + 32fe: 38068863 beqz a3,368e <_vprintf_core.constprop.0.isra.0+0x632> + const char *tmp = s; + 3302: 8666 mv a2,s9 + int len = 0; + 3304: 4681 li a3,0 + while (*tmp && (precision < 0 || len < precision)) + 3306: 00db8863 beq s7,a3,3316 <_vprintf_core.constprop.0.isra.0+0x2ba> + 330a: 00164583 lbu a1,1(a2) + len++; + 330e: 2685 addiw a3,a3,1 + tmp++; + 3310: 0605 addi a2,a2,1 + while (*tmp && (precision < 0 || len < precision)) + 3312: f9f5 bnez a1,3306 <_vprintf_core.constprop.0.isra.0+0x2aa> + 3314: 8bb6 mv s7,a3 + int padding = (width > len) ? width - len : 0; + 3316: 268bc563 blt s7,s0,3580 <_vprintf_core.constprop.0.isra.0+0x524> + for (int i = 0; i < len; i++) + 331a: 4401 li s0,0 + 331c: 020b8163 beqz s7,333e <_vprintf_core.constprop.0.isra.0+0x2e2> + 3320: 4d01 li s10,0 + _out_char(ctx, s[i]); + 3322: 01ac86b3 add a3,s9,s10 + 3326: 0006c583 lbu a1,0(a3) + 332a: 8526 mv a0,s1 + for (int i = 0; i < len; i++) + 332c: 0d05 addi s10,s10,1 + _out_char(ctx, s[i]); + 332e: ebbfd0ef jal 11e8 <_out_char> + for (int i = 0; i < len; i++) + 3332: 000d069b sext.w a3,s10 + 3336: ff76c6e3 blt a3,s7,3322 <_vprintf_core.constprop.0.isra.0+0x2c6> + if (flag_left) + 333a: 260a1463 bnez s4,35a2 <_vprintf_core.constprop.0.isra.0+0x546> + const char *s = va_arg(ap, char *); + 333e: 0c21 addi s8,s8,8 + 3340: bba9 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + p++; + 3342: 0d89 addi s11,s11,2 + char spec = *p++; + 3344: 000dcc83 lbu s9,0(s11) + 3348: 06400693 li a3,100 + 334c: 001d8793 addi a5,s11,1 + if (!spec) + 3350: 3edc8063 beq s9,a3,3730 <_vprintf_core.constprop.0.isra.0+0x6d4> + 3354: 0796ea63 bltu a3,s9,33c8 <_vprintf_core.constprop.0.isra.0+0x36c> + 3358: 04700693 li a3,71 + 335c: 0f96e263 bltu a3,s9,3440 <_vprintf_core.constprop.0.isra.0+0x3e4> + 3360: 04400693 li a3,68 + 3364: e196e2e3 bltu a3,s9,3168 <_vprintf_core.constprop.0.isra.0+0x10c> + 3368: dc0c82e3 beqz s9,312c <_vprintf_core.constprop.0.isra.0+0xd0> + char spec = *p++; + 336c: 8dbe mv s11,a5 + _out_char(ctx, '%'); + 336e: 02500593 li a1,37 + 3372: 8526 mv a0,s1 + 3374: e75fd0ef jal 11e8 <_out_char> + if (spec != '%') + 3378: 02500713 li a4,37 + 337c: d0ec8fe3 beq s9,a4,309a <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, spec); + 3380: 85e6 mv a1,s9 + 3382: bb09 j 3094 <_vprintf_core.constprop.0.isra.0+0x38> + 3384: 05800693 li a3,88 + 3388: 2edc8263 beq s9,a3,366c <_vprintf_core.constprop.0.isra.0+0x610> + 338c: 06300713 li a4,99 + 3390: 06ec9563 bne s9,a4,33fa <_vprintf_core.constprop.0.isra.0+0x39e> + char c = (char)va_arg(ap, int); + 3394: 000c4c83 lbu s9,0(s8) + int padding = (width > 1) ? width - 1 : 0; + 3398: 8722 mv a4,s0 + 339a: 00804363 bgtz s0,33a0 <_vprintf_core.constprop.0.isra.0+0x344> + 339e: 4705 li a4,1 + 33a0: fff7041b addiw s0,a4,-1 + if (!flag_left) + 33a4: 3c0a0463 beqz s4,376c <_vprintf_core.constprop.0.isra.0+0x710> + _out_char(ctx, c); + 33a8: 85e6 mv a1,s9 + 33aa: 8526 mv a0,s1 + 33ac: e3dfd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 33b0: 4a01 li s4,0 + 33b2: d451 beqz s0,333e <_vprintf_core.constprop.0.isra.0+0x2e2> + _out_char(ctx, ' '); + 33b4: 02000593 li a1,32 + 33b8: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 33ba: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 33bc: e2dfd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 33c0: ff441ae3 bne s0,s4,33b4 <_vprintf_core.constprop.0.isra.0+0x358> + const char *s = va_arg(ap, char *); + 33c4: 0c21 addi s8,s8,8 + 33c6: b9d1 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + 33c8: f9bc861b addiw a2,s9,-101 + 33cc: 0ff67613 zext.b a2,a2 + 33d0: 46cd li a3,19 + 33d2: 40c6e963 bltu a3,a2,37e4 <_vprintf_core.constprop.0.isra.0+0x788> + 33d6: 00091337 lui t1,0x91 + 33da: 4685 li a3,1 + 33dc: 00c696b3 sll a3,a3,a2 + 33e0: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x88f88> + 33e4: 0066f333 and t1,a3,t1 + 33e8: 34031c63 bnez t1,3740 <_vprintf_core.constprop.0.isra.0+0x6e4> + 33ec: 8a9d andi a3,a3,7 + 33ee: d6069de3 bnez a3,3168 <_vprintf_core.constprop.0.isra.0+0x10c> + 33f2: 46b9 li a3,14 + char spec = *p++; + 33f4: 8dbe mv s11,a5 + 33f6: eed60ee3 beq a2,a3,32f2 <_vprintf_core.constprop.0.isra.0+0x296> + _out_char(ctx, '%'); + 33fa: 02500593 li a1,37 + 33fe: 8526 mv a0,s1 + 3400: de9fd0ef jal 11e8 <_out_char> + _out_char(ctx, spec); + 3404: 85e6 mv a1,s9 + 3406: b179 j 3094 <_vprintf_core.constprop.0.isra.0+0x38> + while (*p >= '0' && *p <= '9') + 3408: fd0c869b addiw a3,s9,-48 + 340c: 0ff6fe13 zext.b t3,a3 + 3410: 4625 li a2,9 + p++; + 3412: 0d85 addi s11,s11,1 + precision = 0; + 3414: 4b81 li s7,0 + while (*p >= '0' && *p <= '9') + 3416: 4325 li t1,9 + 3418: cdc66de3 bltu a2,t3,30f2 <_vprintf_core.constprop.0.isra.0+0x96> + precision = precision * 10 + (*p - '0'); + 341c: 002b961b slliw a2,s7,0x2 + while (*p >= '0' && *p <= '9') + 3420: 001dcc83 lbu s9,1(s11) + precision = precision * 10 + (*p - '0'); + 3424: 0176073b addw a4,a2,s7 + 3428: 0017171b slliw a4,a4,0x1 + 342c: 00e68bbb addw s7,a3,a4 + while (*p >= '0' && *p <= '9') + 3430: fd0c869b addiw a3,s9,-48 + 3434: 0ff6f613 zext.b a2,a3 + p++; + 3438: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 343a: fec371e3 bgeu t1,a2,341c <_vprintf_core.constprop.0.isra.0+0x3c0> + 343e: b955 j 30f2 <_vprintf_core.constprop.0.isra.0+0x96> + 3440: 05800693 li a3,88 + 3444: 3cdc8d63 beq s9,a3,381e <_vprintf_core.constprop.0.isra.0+0x7c2> + 3448: 06300713 li a4,99 + char spec = *p++; + 344c: 8dbe mv s11,a5 + 344e: f4ec83e3 beq s9,a4,3394 <_vprintf_core.constprop.0.isra.0+0x338> + 3452: b765 j 33fa <_vprintf_core.constprop.0.isra.0+0x39e> + f_idx += sprintf(&fmt_tmp[f_idx], ".%d", precision); + 3454: 01aa0533 add a0,s4,s10 + 3458: 865e mv a2,s7 + 345a: 00002597 auipc a1,0x2 + 345e: cde58593 addi a1,a1,-802 # 5138 <_GLOBAL__sub_I__ZSt3cin+0x148> + 3462: ba5ff0ef jal 3006 + 3466: 00ad0d3b addw s10,s10,a0 + 346a: b341 j 31ea <_vprintf_core.constprop.0.isra.0+0x18e> + f_idx += sprintf(&fmt_tmp[f_idx], "%d", width); + 346c: 01aa0533 add a0,s4,s10 + 3470: 8622 mv a2,s0 + 3472: 00002597 auipc a1,0x2 + 3476: cbe58593 addi a1,a1,-834 # 5130 <_GLOBAL__sub_I__ZSt3cin+0x140> + 347a: b8dff0ef jal 3006 + 347e: 00ad0d3b addw s10,s10,a0 + if (precision >= 0) + 3482: d60bc4e3 bltz s7,31ea <_vprintf_core.constprop.0.isra.0+0x18e> + 3486: b7f9 j 3454 <_vprintf_core.constprop.0.isra.0+0x3f8> + int is_signed = (spec == 'd' || spec == 'i'); + 3488: 06900693 li a3,105 + 348c: 10dc8e63 beq s9,a3,35a8 <_vprintf_core.constprop.0.isra.0+0x54c> + val = (uint64)va_arg(ap, void *); + 3490: 008c0793 addi a5,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3494: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 3498: e43e sd a5,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 349a: 38dc9d63 bne s9,a3,3834 <_vprintf_core.constprop.0.isra.0+0x7d8> + else if (len_mod == 1) + 349e: 33ce8963 beq t4,t3,37d0 <_vprintf_core.constprop.0.isra.0+0x774> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 34a2: 000c6e03 lwu t3,0(s8) + 34a6: 85f6 mv a1,t4 + 34a8: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 34aa: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 34ac: 00002f97 auipc t6,0x2 + 34b0: c54f8f93 addi t6,t6,-940 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + if (val == 0) + 34b4: 120e0363 beqz t3,35da <_vprintf_core.constprop.0.isra.0+0x57e> + 34b8: 01010293 addi t0,sp,16 + sign_char = '-'; + 34bc: 8616 mv a2,t0 + 34be: 86f2 mv a3,t3 + buf[i++] = digits[val % base]; + 34c0: 0266f8b3 remu a7,a3,t1 + 34c4: 8f32 mv t5,a2 + while (val != 0) + 34c6: 0605 addi a2,a2,1 + 34c8: 8eb6 mv t4,a3 + buf[i++] = digits[val % base]; + 34ca: 98fe add a7,a7,t6 + 34cc: 0008c883 lbu a7,0(a7) + val /= base; + 34d0: 0266d6b3 divu a3,a3,t1 + buf[i++] = digits[val % base]; + 34d4: ff160fa3 sb a7,-1(a2) + while (val != 0) + 34d8: fe6ef4e3 bgeu t4,t1,34c0 <_vprintf_core.constprop.0.isra.0+0x464> + buf[i++] = digits[val % base]; + 34dc: 405f0f3b subw t5,t5,t0 + 34e0: 2f05 addiw t5,t5,1 + if (precision >= 0) + 34e2: 100bc363 bltz s7,35e8 <_vprintf_core.constprop.0.isra.0+0x58c> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 34e6: 1d7f4d63 blt t5,s7,36c0 <_vprintf_core.constprop.0.isra.0+0x664> + if (precision == 0 && val == 0) + 34ea: 340b9163 bnez s7,382c <_vprintf_core.constprop.0.isra.0+0x7d0> + 34ee: 200e0763 beqz t3,36fc <_vprintf_core.constprop.0.isra.0+0x6a0> + for (int i = digit_len - 1; i >= 0; i--) + 34f2: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 34f6: 07000693 li a3,112 + for (int i = digit_len - 1; i >= 0; i--) + 34fa: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 34fc: 28dc8e63 beq s9,a3,3798 <_vprintf_core.constprop.0.isra.0+0x73c> + 3500: 2a051663 bnez a0,37ac <_vprintf_core.constprop.0.isra.0+0x750> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 3504: 00bf05bb addw a1,t5,a1 + 3508: 8d52 mv s10,s4 + 350a: 4b01 li s6,0 + char *prefix_str = NULL; + 350c: 4c81 li s9,0 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 350e: 1085d263 bge a1,s0,3612 <_vprintf_core.constprop.0.isra.0+0x5b6> + 3512: 9c0d subw s0,s0,a1 + if (!flag_left && !flag_zero) + 3514: 100d0a63 beqz s10,3628 <_vprintf_core.constprop.0.isra.0+0x5cc> + if (sign_char) + 3518: 6782 ld a5,0(sp) + 351a: 10079263 bnez a5,361e <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 351e: 000c8c63 beqz s9,3536 <_vprintf_core.constprop.0.isra.0+0x4da> + _out_char(ctx, prefix_str[0]); + 3522: 000cc583 lbu a1,0(s9) + 3526: 8526 mv a0,s1 + 3528: cc1fd0ef jal 11e8 <_out_char> + _out_char(ctx, prefix_str[1]); + 352c: 001cc583 lbu a1,1(s9) + 3530: 8526 mv a0,s1 + 3532: cb7fd0ef jal 11e8 <_out_char> + int total_zeros = prec_zeros + ((flag_zero && !flag_left) ? padding : 0); + 3536: 180b0263 beqz s6,36ba <_vprintf_core.constprop.0.isra.0+0x65e> + 353a: 100a1863 bnez s4,364a <_vprintf_core.constprop.0.isra.0+0x5ee> + 353e: 008b8bbb addw s7,s7,s0 + for (int i = 0; i < total_zeros; i++) + 3542: 2a0b8363 beqz s7,37e8 <_vprintf_core.constprop.0.isra.0+0x78c> + 3546: 4c81 li s9,0 + _out_char(ctx, '0'); + 3548: 03000593 li a1,48 + 354c: 8526 mv a0,s1 + for (int i = 0; i < total_zeros; i++) + 354e: 2c85 addiw s9,s9,1 + _out_char(ctx, '0'); + 3550: c99fd0ef jal 11e8 <_out_char> + for (int i = 0; i < total_zeros; i++) + 3554: ff7c9ae3 bne s9,s7,3548 <_vprintf_core.constprop.0.isra.0+0x4ec> + for (int i = digit_len - 1; i >= 0; i--) + 3558: 57fd li a5,-1 + 355a: 00fc0f63 beq s8,a5,3578 <_vprintf_core.constprop.0.isra.0+0x51c> + 355e: 01010c93 addi s9,sp,16 + 3562: 9ce2 add s9,s9,s8 + 3564: 00f10c13 addi s8,sp,15 + _out_char(ctx, num_buf[i]); + 3568: 000cc583 lbu a1,0(s9) + 356c: 8526 mv a0,s1 + for (int i = digit_len - 1; i >= 0; i--) + 356e: 1cfd addi s9,s9,-1 + _out_char(ctx, num_buf[i]); + 3570: c79fd0ef jal 11e8 <_out_char> + for (int i = digit_len - 1; i >= 0; i--) + 3574: ff9c1ae3 bne s8,s9,3568 <_vprintf_core.constprop.0.isra.0+0x50c> + if (flag_left) + 3578: 0c0a1e63 bnez s4,3654 <_vprintf_core.constprop.0.isra.0+0x5f8> + char spec = *p++; + 357c: 6c22 ld s8,8(sp) + 357e: be31 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + int padding = (width > len) ? width - len : 0; + 3580: 4174043b subw s0,s0,s7 + if (!flag_left) + 3584: 100a0a63 beqz s4,3698 <_vprintf_core.constprop.0.isra.0+0x63c> + for (int i = 0; i < len; i++) + 3588: d80b9ce3 bnez s7,3320 <_vprintf_core.constprop.0.isra.0+0x2c4> + for (int i = 0; i < padding; i++) + 358c: 4a01 li s4,0 + _out_char(ctx, ' '); + 358e: 02000593 li a1,32 + 3592: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3594: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3596: c53fd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 359a: ff441ae3 bne s0,s4,358e <_vprintf_core.constprop.0.isra.0+0x532> + const char *s = va_arg(ap, char *); + 359e: 0c21 addi s8,s8,8 + 35a0: bced j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + for (int i = 0; i < padding; i++) + 35a2: f46d bnez s0,358c <_vprintf_core.constprop.0.isra.0+0x530> + const char *s = va_arg(ap, char *); + 35a4: 0c21 addi s8,s8,8 + 35a6: bcd5 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + else if (len_mod == 1) + 35a8: 1fce8163 beq t4,t3,378a <_vprintf_core.constprop.0.isra.0+0x72e> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 35ac: 000c2e03 lw t3,0(s8) + 35b0: 008c0793 addi a5,s8,8 + 35b4: e43e sd a5,8(sp) + int64 sval = (int64)val; + 35b6: 86f2 mv a3,t3 + if (sval < 0) + 35b8: 1406cb63 bltz a3,370e <_vprintf_core.constprop.0.isra.0+0x6b2> + sign_char = '+'; + 35bc: 02b00793 li a5,43 + 35c0: e03e sd a5,0(sp) + else if (flag_plus) + 35c2: e589 bnez a1,35cc <_vprintf_core.constprop.0.isra.0+0x570> + else if (flag_space) + 35c4: 00589793 slli a5,a7,0x5 + 35c8: e03e sd a5,0(sp) + 35ca: 85c6 mv a1,a7 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 35cc: 4329 li t1,10 + 35ce: 00002f97 auipc t6,0x2 + 35d2: b32f8f93 addi t6,t6,-1230 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + if (val == 0) + 35d6: ee0e11e3 bnez t3,34b8 <_vprintf_core.constprop.0.isra.0+0x45c> + buf[i++] = '0'; + 35da: 03000693 li a3,48 + 35de: 00d10823 sb a3,16(sp) + return i; + 35e2: 4f05 li t5,1 + if (precision >= 0) + 35e4: f00bd1e3 bgez s7,34e6 <_vprintf_core.constprop.0.isra.0+0x48a> + for (int i = digit_len - 1; i >= 0; i--) + 35e8: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35ec: 07000893 li a7,112 + if (!flag_left && !flag_zero) + 35f0: 016a6d33 or s10,s4,s6 + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 35f4: 4b81 li s7,0 + for (int i = digit_len - 1; i >= 0; i--) + 35f6: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35f8: 0d1c9f63 bne s9,a7,36d6 <_vprintf_core.constprop.0.isra.0+0x67a> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 35fc: 00002c97 auipc s9,0x2 + 3600: b1cc8c93 addi s9,s9,-1252 # 5118 <_GLOBAL__sub_I__ZSt3cin+0x128> + prefix_len += 2; + 3604: 2589 addiw a1,a1,2 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 3606: 017585bb addw a1,a1,s7 + 360a: 01e585bb addw a1,a1,t5 + 360e: f085c2e3 blt a1,s0,3512 <_vprintf_core.constprop.0.isra.0+0x4b6> + if (!flag_left && !flag_zero) + 3612: 080d0f63 beqz s10,36b0 <_vprintf_core.constprop.0.isra.0+0x654> + if (sign_char) + 3616: 6782 ld a5,0(sp) + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 3618: 4401 li s0,0 + if (sign_char) + 361a: f00782e3 beqz a5,351e <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, sign_char); + 361e: 6582 ld a1,0(sp) + 3620: 8526 mv a0,s1 + 3622: bc7fd0ef jal 11e8 <_out_char> + 3626: bde5 j 351e <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, ' '); + 3628: 02000593 li a1,32 + 362c: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 362e: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 3630: bb9fd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 3634: efa402e3 beq s0,s10,3518 <_vprintf_core.constprop.0.isra.0+0x4bc> + _out_char(ctx, ' '); + 3638: 02000593 li a1,32 + 363c: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 363e: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 3640: ba9fd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 3644: ffa412e3 bne s0,s10,3628 <_vprintf_core.constprop.0.isra.0+0x5cc> + 3648: bdc1 j 3518 <_vprintf_core.constprop.0.isra.0+0x4bc> + for (int i = 0; i < total_zeros; i++) + 364a: ee0b9ee3 bnez s7,3546 <_vprintf_core.constprop.0.isra.0+0x4ea> + for (int i = digit_len - 1; i >= 0; i--) + 364e: 577d li a4,-1 + 3650: f0ec17e3 bne s8,a4,355e <_vprintf_core.constprop.0.isra.0+0x502> + for (int i = 0; i < padding; i++) + 3654: d405 beqz s0,357c <_vprintf_core.constprop.0.isra.0+0x520> + 3656: 4a01 li s4,0 + _out_char(ctx, ' '); + 3658: 02000593 li a1,32 + 365c: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 365e: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3660: b89fd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 3664: fe8a1ae3 bne s4,s0,3658 <_vprintf_core.constprop.0.isra.0+0x5fc> + char spec = *p++; + 3668: 6c22 ld s8,8(sp) + 366a: bc05 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + val = (uint64)va_arg(ap, void *); + 366c: 008c0793 addi a5,s8,8 + 3670: e43e sd a5,8(sp) + else if (len_mod == 1) + 3672: 180e9163 bnez t4,37f4 <_vprintf_core.constprop.0.isra.0+0x798> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3676: 000c6e03 lwu t3,0(s8) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 367a: 4581 li a1,0 + 367c: 05800c93 li s9,88 + 3680: e002 sd zero,0(sp) + 3682: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3684: 00002f97 auipc t6,0x2 + 3688: a64f8f93 addi t6,t6,-1436 # 50e8 <_GLOBAL__sub_I__ZSt3cin+0xf8> + 368c: b525 j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> + int padding = (width > len) ? width - len : 0; + 368e: ca8058e3 blez s0,333e <_vprintf_core.constprop.0.isra.0+0x2e2> + if (!flag_left) + 3692: ee0a1de3 bnez s4,358c <_vprintf_core.constprop.0.isra.0+0x530> + int len = 0; + 3696: 4b81 li s7,0 + for (int i = 0; i < padding; i++) + 3698: 4d01 li s10,0 + _out_char(ctx, ' '); + 369a: 02000593 li a1,32 + 369e: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 36a0: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 36a2: b47fd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 36a6: fe8d1ae3 bne s10,s0,369a <_vprintf_core.constprop.0.isra.0+0x63e> + for (int i = 0; i < len; i++) + 36aa: c60b9be3 bnez s7,3320 <_vprintf_core.constprop.0.isra.0+0x2c4> + 36ae: b941 j 333e <_vprintf_core.constprop.0.isra.0+0x2e2> + if (sign_char) + 36b0: 6782 ld a5,0(sp) + 36b2: 4401 li s0,0 + 36b4: f7ad bnez a5,361e <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 36b6: e60c96e3 bnez s9,3522 <_vprintf_core.constprop.0.isra.0+0x4c6> + for (int i = 0; i < total_zeros; i++) + 36ba: e80b96e3 bnez s7,3546 <_vprintf_core.constprop.0.isra.0+0x4ea> + 36be: bd69 j 3558 <_vprintf_core.constprop.0.isra.0+0x4fc> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 36c0: 41eb8bbb subw s7,s7,t5 + 36c4: 8d52 mv s10,s4 + 36c6: 4b01 li s6,0 + for (int i = digit_len - 1; i >= 0; i--) + 36c8: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36cc: 07000893 li a7,112 + for (int i = digit_len - 1; i >= 0; i--) + 36d0: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36d2: f31c85e3 beq s9,a7,35fc <_vprintf_core.constprop.0.isra.0+0x5a0> + 36d6: cd09 beqz a0,36f0 <_vprintf_core.constprop.0.isra.0+0x694> + 36d8: 000e0c63 beqz t3,36f0 <_vprintf_core.constprop.0.isra.0+0x694> + 36dc: 07800513 li a0,120 + for (int i = digit_len - 1; i >= 0; i--) + 36e0: 00060c1b sext.w s8,a2 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36e4: f0ac8ce3 beq s9,a0,35fc <_vprintf_core.constprop.0.isra.0+0x5a0> + 36e8: 05800613 li a2,88 + 36ec: 12cc8463 beq s9,a2,3814 <_vprintf_core.constprop.0.isra.0+0x7b8> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 36f0: 00bb85bb addw a1,s7,a1 + 36f4: 01e585bb addw a1,a1,t5 + char *prefix_str = NULL; + 36f8: 4c81 li s9,0 + 36fa: bd11 j 350e <_vprintf_core.constprop.0.isra.0+0x4b2> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36fc: 07000693 li a3,112 + 3700: 8d52 mv s10,s4 + 3702: 4b01 li s6,0 + 3704: 08dc8d63 beq s9,a3,379e <_vprintf_core.constprop.0.isra.0+0x742> + 3708: 5c7d li s8,-1 + char *prefix_str = NULL; + 370a: 4c81 li s9,0 + 370c: b509 j 350e <_vprintf_core.constprop.0.isra.0+0x4b2> + sign_char = '-'; + 370e: 02d00793 li a5,45 + val = (uint64)(-sval); + 3712: 40d00e33 neg t3,a3 + 3716: 4585 li a1,1 + 3718: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 371a: 00002f97 auipc t6,0x2 + 371e: 9e6f8f93 addi t6,t6,-1562 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + sign_char = '-'; + 3722: e03e sd a5,0(sp) + 3724: bb51 j 34b8 <_vprintf_core.constprop.0.isra.0+0x45c> + s = "(null)"; + 3726: 00002c97 auipc s9,0x2 + 372a: a02c8c93 addi s9,s9,-1534 # 5128 <_GLOBAL__sub_I__ZSt3cin+0x138> + 372e: bed1 j 3302 <_vprintf_core.constprop.0.isra.0+0x2a6> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3730: 000c3683 ld a3,0(s8) + 3734: 008c0713 addi a4,s8,8 + 3738: e43a sd a4,8(sp) + 373a: 8dbe mv s11,a5 + 373c: 8e36 mv t3,a3 + if (is_signed) + 373e: bdad j 35b8 <_vprintf_core.constprop.0.isra.0+0x55c> + int is_signed = (spec == 'd' || spec == 'i'); + 3740: 06900693 li a3,105 + 3744: fedc86e3 beq s9,a3,3730 <_vprintf_core.constprop.0.isra.0+0x6d4> + val = (uint64)va_arg(ap, void *); + 3748: 008c0713 addi a4,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 374c: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 3750: e43a sd a4,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3752: 06dc9063 bne s9,a3,37b2 <_vprintf_core.constprop.0.isra.0+0x756> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3756: 000c3e03 ld t3,0(s8) + 375a: 8dbe mv s11,a5 + 375c: 4581 li a1,0 + 375e: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3760: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3762: 00002f97 auipc t6,0x2 + 3766: 99ef8f93 addi t6,t6,-1634 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 376a: b3a9 j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> + for (int i = 0; i < padding; i++) + 376c: c809 beqz s0,377e <_vprintf_core.constprop.0.isra.0+0x722> + _out_char(ctx, ' '); + 376e: 02000593 li a1,32 + 3772: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3774: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3776: a73fd0ef jal 11e8 <_out_char> + for (int i = 0; i < padding; i++) + 377a: ff441ae3 bne s0,s4,376e <_vprintf_core.constprop.0.isra.0+0x712> + _out_char(ctx, c); + 377e: 85e6 mv a1,s9 + 3780: 8526 mv a0,s1 + 3782: a67fd0ef jal 11e8 <_out_char> + const char *s = va_arg(ap, char *); + 3786: 0c21 addi s8,s8,8 + 3788: ba09 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 378a: 000c3683 ld a3,0(s8) + 378e: 008c0793 addi a5,s8,8 + 3792: e43e sd a5,8(sp) + 3794: 8e36 mv t3,a3 + if (is_signed) + 3796: b50d j 35b8 <_vprintf_core.constprop.0.isra.0+0x55c> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3798: 8d52 mv s10,s4 + 379a: 4b01 li s6,0 + 379c: b585 j 35fc <_vprintf_core.constprop.0.isra.0+0x5a0> + digit_len = 0; + 379e: 4f01 li t5,0 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 37a0: 5c7d li s8,-1 + prefix_str = (spec == 'X') ? "0X" : "0x"; + 37a2: 00002c97 auipc s9,0x2 + 37a6: 976c8c93 addi s9,s9,-1674 # 5118 <_GLOBAL__sub_I__ZSt3cin+0x128> + 37aa: bda9 j 3604 <_vprintf_core.constprop.0.isra.0+0x5a8> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 37ac: 8d52 mv s10,s4 + 37ae: 4b01 li s6,0 + 37b0: b735 j 36dc <_vprintf_core.constprop.0.isra.0+0x680> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37b2: 07000693 li a3,112 + 37b6: 04dc8263 beq s9,a3,37fa <_vprintf_core.constprop.0.isra.0+0x79e> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 37ba: 000c3e03 ld t3,0(s8) + 37be: 8dbe mv s11,a5 + 37c0: 4581 li a1,0 + 37c2: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37c4: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37c6: 00002f97 auipc t6,0x2 + 37ca: 93af8f93 addi t6,t6,-1734 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 37ce: b1dd j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 37d0: 000c3e03 ld t3,0(s8) + 37d4: 4581 li a1,0 + 37d6: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37d8: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37da: 00002f97 auipc t6,0x2 + 37de: 926f8f93 addi t6,t6,-1754 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 37e2: b9c9 j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> + char spec = *p++; + 37e4: 8dbe mv s11,a5 + 37e6: b911 j 33fa <_vprintf_core.constprop.0.isra.0+0x39e> + for (int i = digit_len - 1; i >= 0; i--) + 37e8: 577d li a4,-1 + 37ea: 4401 li s0,0 + 37ec: d6ec19e3 bne s8,a4,355e <_vprintf_core.constprop.0.isra.0+0x502> + char spec = *p++; + 37f0: 6c22 ld s8,8(sp) + 37f2: b065 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 37f4: 000c3e03 ld t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37f8: b549 j 367a <_vprintf_core.constprop.0.isra.0+0x61e> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37fa: 8dbe mv s11,a5 + val = (uint64)va_arg(ap, void *); + 37fc: 000c3e03 ld t3,0(s8) + 3800: 4581 li a1,0 + 3802: 07000c93 li s9,112 + 3806: e002 sd zero,0(sp) + 3808: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 380a: 00002f97 auipc t6,0x2 + 380e: 8f6f8f93 addi t6,t6,-1802 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 3812: b14d j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 3814: 00002c97 auipc s9,0x2 + 3818: 90cc8c93 addi s9,s9,-1780 # 5120 <_GLOBAL__sub_I__ZSt3cin+0x130> + 381c: b3e5 j 3604 <_vprintf_core.constprop.0.isra.0+0x5a8> + val = (uint64)va_arg(ap, void *); + 381e: 008c0713 addi a4,s8,8 + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3822: 000c3e03 ld t3,0(s8) + val = (uint64)va_arg(ap, void *); + 3826: e43a sd a4,8(sp) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3828: 8dbe mv s11,a5 + 382a: bd81 j 367a <_vprintf_core.constprop.0.isra.0+0x61e> + 382c: 8d52 mv s10,s4 + 382e: 4b01 li s6,0 + 3830: 4b81 li s7,0 + 3832: bd59 j 36c8 <_vprintf_core.constprop.0.isra.0+0x66c> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3834: 07000693 li a3,112 + 3838: fcdc82e3 beq s9,a3,37fc <_vprintf_core.constprop.0.isra.0+0x7a0> + else if (len_mod == 1) + 383c: 01ce8c63 beq t4,t3,3854 <_vprintf_core.constprop.0.isra.0+0x7f8> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3840: 000c6e03 lwu t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3844: 4581 li a1,0 + 3846: e002 sd zero,0(sp) + 3848: 4329 li t1,10 + 384a: 00002f97 auipc t6,0x2 + 384e: 8b6f8f93 addi t6,t6,-1866 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 3852: b18d j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 3854: 000c3e03 ld t3,0(s8) + if (is_signed) + 3858: b7f5 j 3844 <_vprintf_core.constprop.0.isra.0+0x7e8> + +000000000000385a : +{ + 385a: 7139 addi sp,sp,-64 + 385c: f822 sd s0,48(sp) + 385e: f426 sd s1,40(sp) + 3860: 842e mv s0,a1 + 3862: 84aa mv s1,a0 + 3864: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 3866: 850a mv a0,sp + 3868: 8636 mv a2,a3 +{ + 386a: fc06 sd ra,56(sp) + ctx.buf = str; + 386c: e026 sd s1,0(sp) + ctx.limit = size; + 386e: e422 sd s0,8(sp) + ctx.written = 0; + 3870: e802 sd zero,16(sp) + ctx.stream = NULL; + 3872: ec02 sd zero,24(sp) + _vprintf_core(&ctx, format, ap); + 3874: fe8ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 3878: 6542 ld a0,16(sp) + if (size > 0) + 387a: c411 beqz s0,3886 + if (ctx.written < size) + 387c: 00857b63 bgeu a0,s0,3892 + str[ctx.written] = '\0'; + 3880: 94aa add s1,s1,a0 + 3882: 00048023 sb zero,0(s1) +} + 3886: 70e2 ld ra,56(sp) + 3888: 7442 ld s0,48(sp) + 388a: 74a2 ld s1,40(sp) + 388c: 2501 sext.w a0,a0 + 388e: 6121 addi sp,sp,64 + 3890: 8082 ret + str[size - 1] = '\0'; + 3892: 94a2 add s1,s1,s0 + 3894: fe048fa3 sb zero,-1(s1) +} + 3898: 70e2 ld ra,56(sp) + 389a: 7442 ld s0,48(sp) + 389c: 74a2 ld s1,40(sp) + 389e: 2501 sext.w a0,a0 + 38a0: 6121 addi sp,sp,64 + 38a2: 8082 ret + +00000000000038a4 : +{ + 38a4: 7119 addi sp,sp,-128 + 38a6: e0a2 sd s0,64(sp) + 38a8: fc26 sd s1,56(sp) + 38aa: 842e mv s0,a1 + 38ac: 84aa mv s1,a0 + 38ae: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 38b0: 0808 addi a0,sp,16 + va_start(ap, format); + 38b2: 08b0 addi a2,sp,88 +{ + 38b4: e486 sd ra,72(sp) + 38b6: ecb6 sd a3,88(sp) + 38b8: f0ba sd a4,96(sp) + 38ba: f4be sd a5,104(sp) + 38bc: f8c2 sd a6,112(sp) + 38be: fcc6 sd a7,120(sp) + va_start(ap, format); + 38c0: e432 sd a2,8(sp) + ctx.buf = str; + 38c2: e826 sd s1,16(sp) + ctx.limit = size; + 38c4: ec22 sd s0,24(sp) + ctx.written = 0; + 38c6: f002 sd zero,32(sp) + ctx.stream = NULL; + 38c8: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 38ca: f92ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 38ce: 7502 ld a0,32(sp) + if (size > 0) + 38d0: c411 beqz s0,38dc + if (ctx.written < size) + 38d2: 00857b63 bgeu a0,s0,38e8 + str[ctx.written] = '\0'; + 38d6: 94aa add s1,s1,a0 + 38d8: 00048023 sb zero,0(s1) +} + 38dc: 60a6 ld ra,72(sp) + 38de: 6406 ld s0,64(sp) + 38e0: 74e2 ld s1,56(sp) + 38e2: 2501 sext.w a0,a0 + 38e4: 6109 addi sp,sp,128 + 38e6: 8082 ret + str[size - 1] = '\0'; + 38e8: 94a2 add s1,s1,s0 + 38ea: fe048fa3 sb zero,-1(s1) +} + 38ee: 60a6 ld ra,72(sp) + 38f0: 6406 ld s0,64(sp) + 38f2: 74e2 ld s1,56(sp) + 38f4: 2501 sext.w a0,a0 + 38f6: 6109 addi sp,sp,128 + 38f8: 8082 ret + +00000000000038fa : +{ + 38fa: 7119 addi sp,sp,-128 + va_start(ap, format); + 38fc: 04810313 addi t1,sp,72 +{ + 3900: e4ae sd a1,72(sp) + 3902: e8b2 sd a2,80(sp) + 3904: f4be sd a5,104(sp) + _vprintf_core(&ctx, format, ap); + 3906: 85aa mv a1,a0 + ctx.stream = stdout; + 3908: 00004797 auipc a5,0x4 + 390c: de87b783 ld a5,-536(a5) # 76f0 + _vprintf_core(&ctx, format, ap); + 3910: 0808 addi a0,sp,16 + 3912: 861a mv a2,t1 +{ + 3914: fc06 sd ra,56(sp) + 3916: ecb6 sd a3,88(sp) + 3918: f0ba sd a4,96(sp) + 391a: f8c2 sd a6,112(sp) + 391c: fcc6 sd a7,120(sp) + va_start(ap, format); + 391e: e41a sd t1,8(sp) + ctx.buf = NULL; + 3920: e802 sd zero,16(sp) + ctx.limit = 0; + 3922: ec02 sd zero,24(sp) + ctx.written = 0; + 3924: f002 sd zero,32(sp) + ctx.stream = stdout; + 3926: f43e sd a5,40(sp) + _vprintf_core(&ctx, format, ap); + 3928: f34ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> +} + 392c: 70e2 ld ra,56(sp) + 392e: 5502 lw a0,32(sp) + 3930: 6109 addi sp,sp,128 + 3932: 8082 ret + +0000000000003934 : +{ + 3934: 7159 addi sp,sp,-112 + va_start(ap, format); + 3936: 04010e13 addi t3,sp,64 +{ + 393a: 8eaa mv t4,a0 + ctx.fd = -1; + 393c: 537d li t1,-1 +{ + 393e: e0b2 sd a2,64(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3940: 0808 addi a0,sp,16 + 3942: 8672 mv a2,t3 +{ + 3944: fc06 sd ra,56(sp) + 3946: e4b6 sd a3,72(sp) + 3948: e8ba sd a4,80(sp) + 394a: ecbe sd a5,88(sp) + 394c: f0c2 sd a6,96(sp) + 394e: f4c6 sd a7,104(sp) + va_start(ap, format); + 3950: e472 sd t3,8(sp) + ctx.buf = str; + 3952: e876 sd t4,16(sp) + ctx.fd = -1; + 3954: cc1a sw t1,24(sp) + ctx.pos = 0; + 3956: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3958: d41a sw t1,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 395a: 81efd0ef jal 978 <_vscanf_core.constprop.0> +} + 395e: 70e2 ld ra,56(sp) + 3960: 6165 addi sp,sp,112 + 3962: 8082 ret + +0000000000003964 : +{ + 3964: 7119 addi sp,sp,-128 + va_start(ap, format); + 3966: 04810313 addi t1,sp,72 +{ + 396a: e4ae sd a1,72(sp) + 396c: e8b2 sd a2,80(sp) + 396e: f4be sd a5,104(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3970: 85aa mv a1,a0 + ctx.ungotten = -1; + 3972: 57fd li a5,-1 + int ret = _vscanf_core(&ctx, format, ap); + 3974: 0808 addi a0,sp,16 + 3976: 861a mv a2,t1 +{ + 3978: fc06 sd ra,56(sp) + 397a: ecb6 sd a3,88(sp) + 397c: f0ba sd a4,96(sp) + 397e: f8c2 sd a6,112(sp) + 3980: fcc6 sd a7,120(sp) + va_start(ap, format); + 3982: e41a sd t1,8(sp) + ctx.buf = NULL; + 3984: e802 sd zero,16(sp) + ctx.fd = STDIN_FD; + 3986: cc02 sw zero,24(sp) + ctx.pos = 0; + 3988: f002 sd zero,32(sp) + ctx.ungotten = -1; + 398a: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 398c: fedfc0ef jal 978 <_vscanf_core.constprop.0> +} + 3990: 70e2 ld ra,56(sp) + 3992: 6109 addi sp,sp,128 + 3994: 8082 ret + +0000000000003996 : +{ + 3996: 1101 addi sp,sp,-32 + 3998: e426 sd s1,8(sp) + 399a: 84ae mv s1,a1 + 399c: e04a sd s2,0(sp) + if (strcmp(mode, "r") == 0) + 399e: 00001597 auipc a1,0x1 + 39a2: 7a258593 addi a1,a1,1954 # 5140 <_GLOBAL__sub_I__ZSt3cin+0x150> +{ + 39a6: 892a mv s2,a0 + if (strcmp(mode, "r") == 0) + 39a8: 8526 mv a0,s1 +{ + 39aa: e822 sd s0,16(sp) + 39ac: ec06 sd ra,24(sp) + if (strcmp(mode, "r") == 0) + 39ae: 298010ef jal 4c46 + 39b2: 842a mv s0,a0 + 39b4: c919 beqz a0,39ca + else if (strcmp(mode, "w") == 0) + 39b6: 00001597 auipc a1,0x1 + 39ba: 79258593 addi a1,a1,1938 # 5148 <_GLOBAL__sub_I__ZSt3cin+0x158> + 39be: 8526 mv a0,s1 + 39c0: 286010ef jal 4c46 + flags = O_WRONLY | O_CREAT | O_TRUNC; + 39c4: 24100413 li s0,577 + else if (strcmp(mode, "w") == 0) + 39c8: ed39 bnez a0,3a26 + int64 fd = open(filename, flags); + 39ca: 85a2 mv a1,s0 + 39cc: 854a mv a0,s2 + 39ce: f42fc0ef jal 110 + 39d2: 84aa mv s1,a0 + if (fd < 0) + 39d4: 06054c63 bltz a0,3a4c + FILE *f = (FILE *)malloc(sizeof(FILE)); + 39d8: 42000513 li a0,1056 + 39dc: 2f3000ef jal 44ce + 39e0: 892a mv s2,a0 + if (!f) + 39e2: c53d beqz a0,3a50 + memset(f, 0, sizeof(FILE)); + 39e4: 42000613 li a2,1056 + 39e8: 4581 li a1,0 + 39ea: 0ee010ef jal 4ad8 + if (fd == 1) + 39ee: 4785 li a5,1 + f->fd = (int)fd; + 39f0: 00992023 sw s1,0(s2) + f->flags = flags; + 39f4: 00892223 sw s0,4(s2) + if (fd == 1) + 39f8: 00f48e63 beq s1,a5,3a14 + else if (fd == 2) + 39fc: 4789 li a5,2 + 39fe: 00f48b63 beq s1,a5,3a14 + f->buf_mode = 0; + 3a02: 40092e23 sw zero,1052(s2) +} + 3a06: 60e2 ld ra,24(sp) + 3a08: 6442 ld s0,16(sp) + 3a0a: 64a2 ld s1,8(sp) + 3a0c: 854a mv a0,s2 + 3a0e: 6902 ld s2,0(sp) + 3a10: 6105 addi sp,sp,32 + 3a12: 8082 ret + 3a14: 60e2 ld ra,24(sp) + 3a16: 6442 ld s0,16(sp) + f->buf_mode = 2; + 3a18: 40992e23 sw s1,1052(s2) +} + 3a1c: 854a mv a0,s2 + 3a1e: 64a2 ld s1,8(sp) + 3a20: 6902 ld s2,0(sp) + 3a22: 6105 addi sp,sp,32 + 3a24: 8082 ret + else if (strcmp(mode, "a") == 0) + 3a26: 00001597 auipc a1,0x1 + 3a2a: 72a58593 addi a1,a1,1834 # 5150 <_GLOBAL__sub_I__ZSt3cin+0x160> + 3a2e: 8526 mv a0,s1 + 3a30: 216010ef jal 4c46 + flags = O_WRONLY | O_CREAT | O_APPEND; + 3a34: 44100413 li s0,1089 + else if (strcmp(mode, "a") == 0) + 3a38: d949 beqz a0,39ca + else if (strcmp(mode, "r+") == 0) + 3a3a: 00001597 auipc a1,0x1 + 3a3e: 71e58593 addi a1,a1,1822 # 5158 <_GLOBAL__sub_I__ZSt3cin+0x168> + 3a42: 8526 mv a0,s1 + 3a44: 202010ef jal 4c46 + flags = O_RDWR; + 3a48: 4409 li s0,2 + else if (strcmp(mode, "r+") == 0) + 3a4a: d141 beqz a0,39ca + return NULL; + 3a4c: 4901 li s2,0 + 3a4e: bf65 j 3a06 + close(fd); + 3a50: 8526 mv a0,s1 + 3a52: ea6fc0ef jal f8 + return NULL; + 3a56: 4901 li s2,0 + 3a58: b77d j 3a06 + +0000000000003a5a : + if (!stream) + 3a5a: cd29 beqz a0,3ab4 + if (stream->buf_write_pos > 0) + 3a5c: 41052603 lw a2,1040(a0) +{ + 3a60: 1141 addi sp,sp,-16 + 3a62: e022 sd s0,0(sp) + 3a64: e406 sd ra,8(sp) + 3a66: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3a68: 02c04a63 bgtz a2,3a9c + if (stream != stdin && stream != stdout && stream != stderr) + 3a6c: 00004797 auipc a5,0x4 + 3a70: c8478793 addi a5,a5,-892 # 76f0 + 3a74: 6798 ld a4,8(a5) + 3a76: 00870e63 beq a4,s0,3a92 + 3a7a: 6398 ld a4,0(a5) + 3a7c: 00870b63 beq a4,s0,3a92 + 3a80: 6b9c ld a5,16(a5) + 3a82: 00878863 beq a5,s0,3a92 + close(stream->fd); + 3a86: 4008 lw a0,0(s0) + 3a88: e70fc0ef jal f8 + free(stream); + 3a8c: 8522 mv a0,s0 + 3a8e: 1cb000ef jal 4458 +} + 3a92: 60a2 ld ra,8(sp) + 3a94: 6402 ld s0,0(sp) + return 0; + 3a96: 4501 li a0,0 +} + 3a98: 0141 addi sp,sp,16 + 3a9a: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3a9c: 4108 lw a0,0(a0) + 3a9e: 01040593 addi a1,s0,16 + 3aa2: e4efc0ef jal f0 + if (ret < stream->buf_write_pos) + 3aa6: 41042783 lw a5,1040(s0) + 3aaa: 00f54763 blt a0,a5,3ab8 + stream->buf_write_pos = 0; + 3aae: 40042823 sw zero,1040(s0) + 3ab2: bf6d j 3a6c + return -1; + 3ab4: 557d li a0,-1 +} + 3ab6: 8082 ret + stream->error = 1; + 3ab8: 4785 li a5,1 + 3aba: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3abc: 40042823 sw zero,1040(s0) + return EOF; + 3ac0: b775 j 3a6c + +0000000000003ac2 : + if (!stream) + 3ac2: c121 beqz a0,3b02 + if (stream->buf_write_pos > 0) + 3ac4: 41052603 lw a2,1040(a0) +{ + 3ac8: 1141 addi sp,sp,-16 + 3aca: e022 sd s0,0(sp) + 3acc: e406 sd ra,8(sp) + 3ace: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3ad0: 00c04763 bgtz a2,3ade + return 0; + 3ad4: 4501 li a0,0 +} + 3ad6: 60a2 ld ra,8(sp) + 3ad8: 6402 ld s0,0(sp) + 3ada: 0141 addi sp,sp,16 + 3adc: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3ade: 4108 lw a0,0(a0) + 3ae0: 01040593 addi a1,s0,16 + 3ae4: e0cfc0ef jal f0 + if (ret < stream->buf_write_pos) + 3ae8: 41042783 lw a5,1040(s0) + 3aec: 00f54563 blt a0,a5,3af6 + stream->buf_write_pos = 0; + 3af0: 40042823 sw zero,1040(s0) + 3af4: b7c5 j 3ad4 + stream->error = 1; + 3af6: 4785 li a5,1 + 3af8: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3afa: 40042823 sw zero,1040(s0) + return EOF; + 3afe: 557d li a0,-1 + 3b00: bfd9 j 3ad6 + 3b02: 557d li a0,-1 +} + 3b04: 8082 ret + +0000000000003b06 : +{ + 3b06: 7159 addi sp,sp,-112 + 3b08: fc06 sd ra,56(sp) + 3b0a: e0b2 sd a2,64(sp) + 3b0c: e4b6 sd a3,72(sp) + 3b0e: e8ba sd a4,80(sp) + 3b10: ecbe sd a5,88(sp) + 3b12: f0c2 sd a6,96(sp) + 3b14: f4c6 sd a7,104(sp) + if (!stream) + 3b16: cd19 beqz a0,3b34 + va_start(ap, format); + 3b18: 832a mv t1,a0 + 3b1a: 0090 addi a2,sp,64 + _vprintf_core(&ctx, format, ap); + 3b1c: 0808 addi a0,sp,16 + va_start(ap, format); + 3b1e: e432 sd a2,8(sp) + ctx.buf = NULL; + 3b20: e802 sd zero,16(sp) + ctx.limit = 0; + 3b22: ec02 sd zero,24(sp) + ctx.written = 0; + 3b24: f002 sd zero,32(sp) + ctx.stream = stream; + 3b26: f41a sd t1,40(sp) + _vprintf_core(&ctx, format, ap); + 3b28: d34ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> + return (int)ctx.written; + 3b2c: 5502 lw a0,32(sp) +} + 3b2e: 70e2 ld ra,56(sp) + 3b30: 6165 addi sp,sp,112 + 3b32: 8082 ret + return -1; + 3b34: 557d li a0,-1 + 3b36: bfe5 j 3b2e + +0000000000003b38 : +{ + 3b38: 7159 addi sp,sp,-112 + 3b3a: fc06 sd ra,56(sp) + 3b3c: e0b2 sd a2,64(sp) + 3b3e: e4b6 sd a3,72(sp) + 3b40: e8ba sd a4,80(sp) + 3b42: ecbe sd a5,88(sp) + 3b44: f0c2 sd a6,96(sp) + 3b46: f4c6 sd a7,104(sp) + if (!stream) + 3b48: cd19 beqz a0,3b66 + ctx.fd = stream->fd; + 3b4a: 411c lw a5,0(a0) + va_start(ap, format); + 3b4c: 0090 addi a2,sp,64 + int ret = _vscanf_core(&ctx, format, ap); + 3b4e: 0808 addi a0,sp,16 + ctx.fd = stream->fd; + 3b50: cc3e sw a5,24(sp) + ctx.ungotten = -1; + 3b52: 57fd li a5,-1 + va_start(ap, format); + 3b54: e432 sd a2,8(sp) + ctx.buf = NULL; + 3b56: e802 sd zero,16(sp) + ctx.pos = 0; + 3b58: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3b5a: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3b5c: e1dfc0ef jal 978 <_vscanf_core.constprop.0> +} + 3b60: 70e2 ld ra,56(sp) + 3b62: 6165 addi sp,sp,112 + 3b64: 8082 ret + return -1; + 3b66: 557d li a0,-1 + 3b68: bfe5 j 3b60 + +0000000000003b6a : + if (!stream) + 3b6a: c1e1 beqz a1,3c2a +{ + 3b6c: 7179 addi sp,sp,-48 + 3b6e: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 3b70: 41c5a903 lw s2,1052(a1) +{ + 3b74: f022 sd s0,32(sp) + 3b76: ec26 sd s1,24(sp) + 3b78: f406 sd ra,40(sp) + if (stream->buf_mode == 2) + 3b7a: 4789 li a5,2 + 3b7c: 842e mv s0,a1 + 3b7e: 84aa mv s1,a0 + char ch = (char)c; + 3b80: 0ff57713 zext.b a4,a0 + if (stream->buf_mode == 2) + 3b84: 02f90963 beq s2,a5,3bb6 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3b88: 4105a783 lw a5,1040(a1) + if (stream->buf_write_pos >= BUFSIZ) + 3b8c: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3b90: 0017861b addiw a2,a5,1 + 3b94: 40c5a823 sw a2,1040(a1) + 3b98: 97ae add a5,a5,a1 + 3b9a: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3b9e: 06c6c463 blt a3,a2,3c06 + else if (stream->buf_mode == 1 && c == '\n') + 3ba2: 4785 li a5,1 + 3ba4: 02f90e63 beq s2,a5,3be0 + return c; + 3ba8: 8526 mv a0,s1 +} + 3baa: 70a2 ld ra,40(sp) + 3bac: 7402 ld s0,32(sp) + 3bae: 64e2 ld s1,24(sp) + 3bb0: 6942 ld s2,16(sp) + 3bb2: 6145 addi sp,sp,48 + 3bb4: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3bb6: 4188 lw a0,0(a1) + 3bb8: 4605 li a2,1 + 3bba: 00f10593 addi a1,sp,15 + char ch = (char)c; + 3bbe: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3bc2: d2efc0ef jal f0 + 3bc6: 872a mv a4,a0 + 3bc8: 4785 li a5,1 + return c; + 3bca: 8526 mv a0,s1 + if (write(stream->fd, &ch, 1) != 1) + 3bcc: fcf70fe3 beq a4,a5,3baa +} + 3bd0: 70a2 ld ra,40(sp) + stream->error = 1; + 3bd2: c41c sw a5,8(s0) +} + 3bd4: 7402 ld s0,32(sp) + 3bd6: 64e2 ld s1,24(sp) + 3bd8: 6942 ld s2,16(sp) + return EOF; + 3bda: 557d li a0,-1 +} + 3bdc: 6145 addi sp,sp,48 + 3bde: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3be0: 47a9 li a5,10 + 3be2: fcf513e3 bne a0,a5,3ba8 + if (stream->buf_write_pos > 0) + 3be6: fcc051e3 blez a2,3ba8 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3bea: 4188 lw a0,0(a1) + 3bec: 05c1 addi a1,a1,16 + 3bee: d02fc0ef jal f0 + if (ret < stream->buf_write_pos) + 3bf2: 41042783 lw a5,1040(s0) + 3bf6: 02f55063 bge a0,a5,3c16 + stream->error = 1; + 3bfa: 01242423 sw s2,8(s0) + stream->buf_write_pos = 0; + 3bfe: 40042823 sw zero,1040(s0) + return c; + 3c02: 8526 mv a0,s1 + 3c04: b75d j 3baa + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c06: 4188 lw a0,0(a1) + 3c08: 05c1 addi a1,a1,16 + 3c0a: ce6fc0ef jal f0 + if (ret < stream->buf_write_pos) + 3c0e: 41042783 lw a5,1040(s0) + 3c12: 00f54663 blt a0,a5,3c1e + stream->buf_write_pos = 0; + 3c16: 40042823 sw zero,1040(s0) + return c; + 3c1a: 8526 mv a0,s1 + 3c1c: b779 j 3baa + stream->error = 1; + 3c1e: 4785 li a5,1 + 3c20: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3c22: 40042823 sw zero,1040(s0) + return c; + 3c26: 8526 mv a0,s1 + 3c28: b749 j 3baa + return EOF; + 3c2a: 557d li a0,-1 +} + 3c2c: 8082 ret + +0000000000003c2e : + if (!stream) + 3c2e: c1ed beqz a1,3d10 +{ + 3c30: 711d addi sp,sp,-96 + 3c32: e4a6 sd s1,72(sp) + 3c34: ec86 sd ra,88(sp) + while (*s) + 3c36: 00054703 lbu a4,0(a0) + 3c3a: 84aa mv s1,a0 + 3c3c: cf25 beqz a4,3cb4 + 3c3e: e8a2 sd s0,80(sp) + 3c40: e0ca sd s2,64(sp) + 3c42: fc4e sd s3,56(sp) + 3c44: f852 sd s4,48(sp) + 3c46: f456 sd s5,40(sp) + 3c48: f05a sd s6,32(sp) + 3c4a: ec5e sd s7,24(sp) + 3c4c: 842e mv s0,a1 + if (stream->buf_mode == 2) + 3c4e: 4909 li s2,2 + if (stream->buf_write_pos >= BUFSIZ) + 3c50: 3ff00b13 li s6,1023 + else if (stream->buf_mode == 1 && c == '\n') + 3c54: 4985 li s3,1 + 3c56: 4a29 li s4,10 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c58: 01058a93 addi s5,a1,16 + if (write(stream->fd, &ch, 1) != 1) + 3c5c: 00f10b93 addi s7,sp,15 + 3c60: a031 j 3c6c + else if (stream->buf_mode == 1 && c == '\n') + 3c62: 09368563 beq a3,s3,3cec + while (*s) + 3c66: 0004c703 lbu a4,0(s1) + 3c6a: cf15 beqz a4,3ca6 + if (stream->buf_mode == 2) + 3c6c: 41c42683 lw a3,1052(s0) + if (fputc(*s++, stream) == EOF) + 3c70: 0485 addi s1,s1,1 + if (stream->buf_mode == 2) + 3c72: 05268663 beq a3,s2,3cbe + stream->buffer[stream->buf_write_pos++] = (char)c; + 3c76: 41042783 lw a5,1040(s0) + 3c7a: 0017861b addiw a2,a5,1 + 3c7e: 40c42823 sw a2,1040(s0) + 3c82: 97a2 add a5,a5,s0 + 3c84: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3c88: fccb5de3 bge s6,a2,3c62 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c8c: 4008 lw a0,0(s0) + 3c8e: 85d6 mv a1,s5 + 3c90: c60fc0ef jal f0 + if (ret < stream->buf_write_pos) + 3c94: 41042783 lw a5,1040(s0) + 3c98: 06f54763 blt a0,a5,3d06 + stream->buf_write_pos = 0; + 3c9c: 40042823 sw zero,1040(s0) + while (*s) + 3ca0: 0004c703 lbu a4,0(s1) + 3ca4: f761 bnez a4,3c6c + 3ca6: 6446 ld s0,80(sp) + 3ca8: 6906 ld s2,64(sp) + 3caa: 79e2 ld s3,56(sp) + 3cac: 7a42 ld s4,48(sp) + 3cae: 7aa2 ld s5,40(sp) + 3cb0: 7b02 ld s6,32(sp) + 3cb2: 6be2 ld s7,24(sp) +} + 3cb4: 60e6 ld ra,88(sp) + 3cb6: 64a6 ld s1,72(sp) + return 0; + 3cb8: 4501 li a0,0 +} + 3cba: 6125 addi sp,sp,96 + 3cbc: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3cbe: 4008 lw a0,0(s0) + 3cc0: 4605 li a2,1 + 3cc2: 85de mv a1,s7 + char ch = (char)c; + 3cc4: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3cc8: c28fc0ef jal f0 + 3ccc: f9350de3 beq a0,s3,3c66 + stream->error = 1; + 3cd0: 01342423 sw s3,8(s0) +} + 3cd4: 60e6 ld ra,88(sp) + 3cd6: 6446 ld s0,80(sp) + 3cd8: 6906 ld s2,64(sp) + 3cda: 79e2 ld s3,56(sp) + 3cdc: 7a42 ld s4,48(sp) + 3cde: 7aa2 ld s5,40(sp) + 3ce0: 7b02 ld s6,32(sp) + 3ce2: 6be2 ld s7,24(sp) + 3ce4: 64a6 ld s1,72(sp) + return -1; + 3ce6: 557d li a0,-1 +} + 3ce8: 6125 addi sp,sp,96 + 3cea: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3cec: f7471de3 bne a4,s4,3c66 + if (stream->buf_write_pos > 0) + 3cf0: f6c05be3 blez a2,3c66 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3cf4: 4008 lw a0,0(s0) + 3cf6: 01040593 addi a1,s0,16 + 3cfa: bf6fc0ef jal f0 + if (ret < stream->buf_write_pos) + 3cfe: 41042783 lw a5,1040(s0) + 3d02: f8f55de3 bge a0,a5,3c9c + stream->error = 1; + 3d06: 4785 li a5,1 + 3d08: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3d0a: 40042823 sw zero,1040(s0) + return EOF; + 3d0e: bfa1 j 3c66 + return -1; + 3d10: 557d li a0,-1 +} + 3d12: 8082 ret + +0000000000003d14 : + if (!stream) + 3d14: c949 beqz a0,3da6 + if (stream->buf_write_pos > 0) + 3d16: 41052603 lw a2,1040(a0) +{ + 3d1a: 1141 addi sp,sp,-16 + 3d1c: e022 sd s0,0(sp) + 3d1e: e406 sd ra,8(sp) + 3d20: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3d22: 04c04863 bgtz a2,3d72 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3d26: 41442783 lw a5,1044(s0) + 3d2a: 41842703 lw a4,1048(s0) + 3d2e: 00e7dd63 bge a5,a4,3d48 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d32: 0017871b addiw a4,a5,1 + 3d36: 40e42a23 sw a4,1044(s0) + 3d3a: 943e add s0,s0,a5 + 3d3c: 01044503 lbu a0,16(s0) +} + 3d40: 60a2 ld ra,8(sp) + 3d42: 6402 ld s0,0(sp) + 3d44: 0141 addi sp,sp,16 + 3d46: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3d48: 4008 lw a0,0(s0) + 3d4a: 40000613 li a2,1024 + 3d4e: 01040593 addi a1,s0,16 + 3d52: b96fc0ef jal e8 + 3d56: 87aa mv a5,a0 + if (ret <= 0) + 3d58: 02a05e63 blez a0,3d94 + stream->buf_read_cnt = (int)ret; + 3d5c: 40f42c23 sw a5,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d60: 4785 li a5,1 + 3d62: 01044503 lbu a0,16(s0) +} + 3d66: 60a2 ld ra,8(sp) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d68: 40f42a23 sw a5,1044(s0) +} + 3d6c: 6402 ld s0,0(sp) + 3d6e: 0141 addi sp,sp,16 + 3d70: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d72: 4108 lw a0,0(a0) + 3d74: 01040593 addi a1,s0,16 + 3d78: b78fc0ef jal f0 + if (ret < stream->buf_write_pos) + 3d7c: 41042783 lw a5,1040(s0) + 3d80: 00f54563 blt a0,a5,3d8a + stream->buf_write_pos = 0; + 3d84: 40042823 sw zero,1040(s0) + 3d88: bf79 j 3d26 + stream->error = 1; + 3d8a: 4785 li a5,1 + 3d8c: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3d8e: 40042823 sw zero,1040(s0) + return EOF; + 3d92: bf51 j 3d26 + if (ret == 0) + 3d94: e509 bnez a0,3d9e + stream->eof = 1; + 3d96: 4785 li a5,1 + 3d98: c45c sw a5,12(s0) + return EOF; + 3d9a: 557d li a0,-1 + 3d9c: b755 j 3d40 + stream->error = 1; + 3d9e: 4785 li a5,1 + 3da0: c41c sw a5,8(s0) + return EOF; + 3da2: 557d li a0,-1 + 3da4: bf71 j 3d40 + 3da6: 557d li a0,-1 +} + 3da8: 8082 ret + +0000000000003daa : + if (!stream || n <= 0) + 3daa: ce5d beqz a2,3e68 + 3dac: 0ab05e63 blez a1,3e68 +{ + 3db0: 715d addi sp,sp,-80 + 3db2: e0a2 sd s0,64(sp) + 3db4: fc26 sd s1,56(sp) + 3db6: f84a sd s2,48(sp) + 3db8: f44e sd s3,40(sp) + 3dba: f052 sd s4,32(sp) + 3dbc: ec56 sd s5,24(sp) + 3dbe: e85a sd s6,16(sp) + 3dc0: e45e sd s7,8(sp) + 3dc2: e486 sd ra,72(sp) + 3dc4: 8432 mv s0,a2 + 3dc6: 8aaa mv s5,a0 + 3dc8: 892a mv s2,a0 + 3dca: fff58b9b addiw s7,a1,-1 + int i = 0, c; + 3dce: 4481 li s1,0 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3dd0: 01060993 addi s3,a2,16 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3dd4: 4b05 li s6,1 + if (c == '\n') + 3dd6: 4a29 li s4,10 + while (i < n - 1) + 3dd8: 05748163 beq s1,s7,3e1a + if (stream->buf_write_pos > 0) + 3ddc: 41042603 lw a2,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3de0: 85ce mv a1,s3 + if (stream->buf_write_pos > 0) + 3de2: 06c04963 bgtz a2,3e54 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3de6: 41442783 lw a5,1044(s0) + 3dea: 41842703 lw a4,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3dee: 40000613 li a2,1024 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3df2: 0017851b addiw a0,a5,1 + 3df6: 00f406b3 add a3,s0,a5 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3dfa: 85ce mv a1,s3 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3dfc: 02e7de63 bge a5,a4,3e38 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e00: 40a42a23 sw a0,1044(s0) + 3e04: 0106c783 lbu a5,16(a3) + 3e08: 0007871b sext.w a4,a5 + str[i++] = (char)c; + 3e0c: 00f90023 sb a5,0(s2) + 3e10: 2485 addiw s1,s1,1 + if (c == '\n') + 3e12: 0905 addi s2,s2,1 + 3e14: fd4712e3 bne a4,s4,3dd8 + str[i++] = (char)c; + 3e18: 8ba6 mv s7,s1 + str[i] = '\0'; + 3e1a: 9bd6 add s7,s7,s5 + 3e1c: 000b8023 sb zero,0(s7) + return str; + 3e20: 8556 mv a0,s5 +} + 3e22: 60a6 ld ra,72(sp) + 3e24: 6406 ld s0,64(sp) + 3e26: 74e2 ld s1,56(sp) + 3e28: 7942 ld s2,48(sp) + 3e2a: 79a2 ld s3,40(sp) + 3e2c: 7a02 ld s4,32(sp) + 3e2e: 6ae2 ld s5,24(sp) + 3e30: 6b42 ld s6,16(sp) + 3e32: 6ba2 ld s7,8(sp) + 3e34: 6161 addi sp,sp,80 + 3e36: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3e38: 4008 lw a0,0(s0) + 3e3a: aaefc0ef jal e8 + if (ret <= 0) + 3e3e: 02a05c63 blez a0,3e76 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e42: 01044783 lbu a5,16(s0) + stream->buf_read_cnt = (int)ret; + 3e46: 40a42c23 sw a0,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e4a: 41642a23 sw s6,1044(s0) + 3e4e: 0007871b sext.w a4,a5 + if (c == -1) + 3e52: bf6d j 3e0c + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3e54: 4008 lw a0,0(s0) + 3e56: a9afc0ef jal f0 + if (ret < stream->buf_write_pos) + 3e5a: 41042783 lw a5,1040(s0) + 3e5e: 00f54763 blt a0,a5,3e6c + stream->buf_write_pos = 0; + 3e62: 40042823 sw zero,1040(s0) + 3e66: b741 j 3de6 + return NULL; + 3e68: 4501 li a0,0 +} + 3e6a: 8082 ret + stream->error = 1; + 3e6c: 4785 li a5,1 + 3e6e: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3e70: 40042823 sw zero,1040(s0) + return EOF; + 3e74: bf8d j 3de6 + stream->eof = 1; + 3e76: 4785 li a5,1 + if (ret == 0) + 3e78: e509 bnez a0,3e82 + stream->eof = 1; + 3e7a: c45c sw a5,12(s0) + if (i == 0) + 3e7c: fcd1 bnez s1,3e18 + return NULL; + 3e7e: 4501 li a0,0 + 3e80: b74d j 3e22 + stream->error = 1; + 3e82: c41c sw a5,8(s0) + if (c == -1) + 3e84: bfe5 j 3e7c + +0000000000003e86 : +{ + 3e86: 715d addi sp,sp,-80 + 3e88: e486 sd ra,72(sp) + 3e8a: f44e sd s3,40(sp) + if (!stream || size == 0 || nmemb == 0) + 3e8c: 0e068963 beqz a3,3f7e + 3e90: ec56 sd s5,24(sp) + return 0; + 3e92: 4981 li s3,0 + 3e94: 8aae mv s5,a1 + if (!stream || size == 0 || nmemb == 0) + 3e96: c9bd beqz a1,3f0c + 3e98: ca35 beqz a2,3f0c + if (stream->buf_write_pos > 0) + 3e9a: 4106a783 lw a5,1040(a3) + 3e9e: e0a2 sd s0,64(sp) + 3ea0: f052 sd s4,32(sp) + uint64 total_bytes = size * nmemb; + 3ea2: 02c589b3 mul s3,a1,a2 + 3ea6: 8436 mv s0,a3 + 3ea8: 8a2a mv s4,a0 + if (stream->buf_write_pos > 0) + 3eaa: 0af04d63 bgtz a5,3f64 + while (bytes_read < total_bytes) + 3eae: 04098d63 beqz s3,3f08 + 3eb2: fc26 sd s1,56(sp) + 3eb4: e85a sd s6,16(sp) + 3eb6: e45e sd s7,8(sp) + 3eb8: f84a sd s2,48(sp) + 3eba: 4481 li s1,0 + if (remaining >= BUFSIZ) + 3ebc: 3ff00b13 li s6,1023 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3ec0: 01040b93 addi s7,s0,16 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3ec4: 41442703 lw a4,1044(s0) + 3ec8: 41842783 lw a5,1048(s0) + uint64 remaining = total_bytes - bytes_read; + 3ecc: 40998633 sub a2,s3,s1 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3ed0: 06f74463 blt a4,a5,3f38 + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3ed4: 4008 lw a0,0(s0) + 3ed6: 009a05b3 add a1,s4,s1 + if (remaining >= BUFSIZ) + 3eda: 02cb7f63 bgeu s6,a2,3f18 + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3ede: a0afc0ef jal e8 + if (ret <= 0) + 3ee2: 0aa05463 blez a0,3f8a + bytes_read += ret; + 3ee6: 94aa add s1,s1,a0 + while (bytes_read < total_bytes) + 3ee8: fd34eee3 bltu s1,s3,3ec4 + return bytes_read / size; + 3eec: 0354d9b3 divu s3,s1,s5 + 3ef0: 6406 ld s0,64(sp) +} + 3ef2: 60a6 ld ra,72(sp) + return bytes_read / size; + 3ef4: 74e2 ld s1,56(sp) + 3ef6: 7942 ld s2,48(sp) + 3ef8: 7a02 ld s4,32(sp) + 3efa: 6ae2 ld s5,24(sp) + 3efc: 6b42 ld s6,16(sp) + 3efe: 6ba2 ld s7,8(sp) +} + 3f00: 854e mv a0,s3 + 3f02: 79a2 ld s3,40(sp) + 3f04: 6161 addi sp,sp,80 + 3f06: 8082 ret + 3f08: 6406 ld s0,64(sp) + 3f0a: 7a02 ld s4,32(sp) + 3f0c: 60a6 ld ra,72(sp) + 3f0e: 6ae2 ld s5,24(sp) + 3f10: 854e mv a0,s3 + 3f12: 79a2 ld s3,40(sp) + 3f14: 6161 addi sp,sp,80 + 3f16: 8082 ret + stream->buf_read_pos = 0; + 3f18: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 3f1c: 40042c23 sw zero,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3f20: 40000613 li a2,1024 + 3f24: 85de mv a1,s7 + 3f26: 9c2fc0ef jal e8 + if (ret <= 0) + 3f2a: 06a05063 blez a0,3f8a + stream->buf_read_cnt = (int)ret; + 3f2e: 40a42c23 sw a0,1048(s0) + while (bytes_read < total_bytes) + 3f32: f934e9e3 bltu s1,s3,3ec4 + 3f36: bf5d j 3eec + uint64 available = stream->buf_read_cnt - stream->buf_read_pos; + 3f38: 40e7893b subw s2,a5,a4 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 3f3c: 00eb85b3 add a1,s7,a4 + 3f40: 009a0533 add a0,s4,s1 + uint64 to_copy = (available < remaining) ? available : remaining; + 3f44: 01267363 bgeu a2,s2,3f4a + 3f48: 8932 mv s2,a2 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 3f4a: 864a mv a2,s2 + 3f4c: 3e1000ef jal 4b2c + stream->buf_read_pos += to_copy; + 3f50: 41442783 lw a5,1044(s0) + bytes_read += to_copy; + 3f54: 94ca add s1,s1,s2 + stream->buf_read_pos += to_copy; + 3f56: 012787bb addw a5,a5,s2 + 3f5a: 40f42a23 sw a5,1044(s0) + while (bytes_read < total_bytes) + 3f5e: f734e3e3 bltu s1,s3,3ec4 + 3f62: b769 j 3eec + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3f64: 4288 lw a0,0(a3) + 3f66: 863e mv a2,a5 + 3f68: 01068593 addi a1,a3,16 + 3f6c: 984fc0ef jal f0 + if (ret < stream->buf_write_pos) + 3f70: 41042783 lw a5,1040(s0) + 3f74: 02f54163 blt a0,a5,3f96 + stream->buf_write_pos = 0; + 3f78: 40042823 sw zero,1040(s0) + 3f7c: bf0d j 3eae +} + 3f7e: 60a6 ld ra,72(sp) + return 0; + 3f80: 4981 li s3,0 +} + 3f82: 854e mv a0,s3 + 3f84: 79a2 ld s3,40(sp) + 3f86: 6161 addi sp,sp,80 + 3f88: 8082 ret + stream->eof = 1; + 3f8a: 4785 li a5,1 + if (ret == 0) + 3f8c: e119 bnez a0,3f92 + stream->eof = 1; + 3f8e: c45c sw a5,12(s0) + 3f90: bfb1 j 3eec + stream->error = 1; + 3f92: c41c sw a5,8(s0) + return bytes_read / size; + 3f94: bfa1 j 3eec + stream->error = 1; + 3f96: 4785 li a5,1 + 3f98: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3f9a: 40042823 sw zero,1040(s0) + return EOF; + 3f9e: bf01 j 3eae + +0000000000003fa0 : +{ + 3fa0: 711d addi sp,sp,-96 + 3fa2: ec86 sd ra,88(sp) + 3fa4: e0ca sd s2,64(sp) + if (!stream || !ptr || size == 0 || nmemb == 0) + 3fa6: 10068063 beqz a3,40a6 + 3faa: f456 sd s5,40(sp) + 3fac: 8aaa mv s5,a0 + 3fae: 10050263 beqz a0,40b2 + 3fb2: f05a sd s6,32(sp) + return 0; + 3fb4: 4901 li s2,0 + 3fb6: 8b2e mv s6,a1 + if (!stream || !ptr || size == 0 || nmemb == 0) + 3fb8: c1d9 beqz a1,403e + 3fba: c251 beqz a2,403e + if (stream->buf_mode == 2) + 3fbc: 41c6a703 lw a4,1052(a3) + 3fc0: e8a2 sd s0,80(sp) + 3fc2: 4789 li a5,2 + uint64 total_bytes = size * nmemb; + 3fc4: 02c58933 mul s2,a1,a2 + if (stream->buf_mode == 2) + 3fc8: 8436 mv s0,a3 + 3fca: 0ef70b63 beq a4,a5,40c0 + 3fce: fc4e sd s3,56(sp) + 3fd0: ec5e sd s7,24(sp) + 3fd2: e862 sd s8,16(sp) + uint64 bytes_written = 0; + 3fd4: 4981 li s3,0 + 3fd6: 01068b93 addi s7,a3,16 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3fda: 40000c13 li s8,1024 + while (bytes_written < total_bytes) + 3fde: 12090263 beqz s2,4102 + 3fe2: e4a6 sd s1,72(sp) + 3fe4: f852 sd s4,48(sp) + 3fe6: e466 sd s9,8(sp) + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3fe8: 41042783 lw a5,1040(s0) + uint64 remaining = total_bytes - bytes_written; + 3fec: 41390cb3 sub s9,s2,s3 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 3ff0: 013a85b3 add a1,s5,s3 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3ff4: 40fc0a3b subw s4,s8,a5 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 3ff8: 00fb8533 add a0,s7,a5 + 3ffc: 8652 mv a2,s4 + if (remaining <= space_left) + 3ffe: 059a6763 bltu s4,s9,404c + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 4002: 8666 mv a2,s9 + 4004: 329000ef jal 4b2c + stream->buf_write_pos += remaining; + 4008: 41042783 lw a5,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 400c: 40000713 li a4,1024 + stream->buf_write_pos += remaining; + 4010: 019786bb addw a3,a5,s9 + 4014: 40d42823 sw a3,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 4018: 06e68a63 beq a3,a4,408c + return bytes_written / size; + 401c: 03695933 divu s2,s2,s6 + 4020: 6446 ld s0,80(sp) + 4022: 64a6 ld s1,72(sp) + 4024: 79e2 ld s3,56(sp) + 4026: 7a42 ld s4,48(sp) + 4028: 7aa2 ld s5,40(sp) + 402a: 7b02 ld s6,32(sp) + 402c: 6be2 ld s7,24(sp) + 402e: 6c42 ld s8,16(sp) + 4030: 6ca2 ld s9,8(sp) +} + 4032: 60e6 ld ra,88(sp) + 4034: 854a mv a0,s2 + 4036: 6906 ld s2,64(sp) + 4038: 6125 addi sp,sp,96 + 403a: 8082 ret + 403c: 6446 ld s0,80(sp) + 403e: 60e6 ld ra,88(sp) + 4040: 7aa2 ld s5,40(sp) + 4042: 7b02 ld s6,32(sp) + 4044: 854a mv a0,s2 + 4046: 6906 ld s2,64(sp) + 4048: 6125 addi sp,sp,96 + 404a: 8082 ret + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 404c: 2e1000ef jal 4b2c + stream->buf_write_pos += space_left; + 4050: 41042783 lw a5,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4054: 85de mv a1,s7 + bytes_written += space_left; + 4056: 99d2 add s3,s3,s4 + stream->buf_write_pos += space_left; + 4058: 00fa04bb addw s1,s4,a5 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 405c: 02049613 slli a2,s1,0x20 + stream->buf_write_pos += space_left; + 4060: 40942823 sw s1,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4064: 9201 srli a2,a2,0x20 + if (stream->buf_write_pos > 0) + 4066: 00904763 bgtz s1,4074 + while (bytes_written < total_bytes) + 406a: f729efe3 bltu s3,s2,3fe8 + return bytes_written / size; + 406e: 0369d933 divu s2,s3,s6 + 4072: b77d j 4020 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4074: 4008 lw a0,0(s0) + 4076: 87afc0ef jal f0 + if (ret < stream->buf_write_pos) + 407a: 41042783 lw a5,1040(s0) + 407e: 08f54963 blt a0,a5,4110 + stream->buf_write_pos = 0; + 4082: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 4086: f729e1e3 bltu s3,s2,3fe8 + 408a: b7d5 j 406e + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 408c: 4008 lw a0,0(s0) + 408e: 40000613 li a2,1024 + 4092: 85de mv a1,s7 + 4094: 85cfc0ef jal f0 + if (ret < stream->buf_write_pos) + 4098: 41042783 lw a5,1040(s0) + 409c: 08f54163 blt a0,a5,411e + stream->buf_write_pos = 0; + 40a0: 40042823 sw zero,1040(s0) + 40a4: bfa5 j 401c +} + 40a6: 60e6 ld ra,88(sp) + return 0; + 40a8: 4901 li s2,0 +} + 40aa: 854a mv a0,s2 + 40ac: 6906 ld s2,64(sp) + 40ae: 6125 addi sp,sp,96 + 40b0: 8082 ret + 40b2: 60e6 ld ra,88(sp) + return 0; + 40b4: 4901 li s2,0 + 40b6: 7aa2 ld s5,40(sp) +} + 40b8: 854a mv a0,s2 + 40ba: 6906 ld s2,64(sp) + 40bc: 6125 addi sp,sp,96 + 40be: 8082 ret + while (bytes_written < total_bytes) + 40c0: f6090ee3 beqz s2,403c + 40c4: e4a6 sd s1,72(sp) + uint64 bytes_written = 0; + 40c6: 4481 li s1,0 + 40c8: a021 j 40d0 + bytes_written += ret; + 40ca: 94aa add s1,s1,a0 + while (bytes_written < total_bytes) + 40cc: 0324f463 bgeu s1,s2,40f4 + int64 ret = write(stream->fd, src + bytes_written, total_bytes - bytes_written); + 40d0: 4008 lw a0,0(s0) + 40d2: 40990633 sub a2,s2,s1 + 40d6: 009a85b3 add a1,s5,s1 + 40da: 816fc0ef jal f0 + if (ret <= 0) + 40de: fea046e3 bgtz a0,40ca + stream->error = 1; + 40e2: 4785 li a5,1 + return bytes_written / size; + 40e4: 0364d933 divu s2,s1,s6 + stream->error = 1; + 40e8: c41c sw a5,8(s0) + break; + 40ea: 64a6 ld s1,72(sp) + 40ec: 6446 ld s0,80(sp) + 40ee: 7aa2 ld s5,40(sp) + 40f0: 7b02 ld s6,32(sp) + 40f2: b781 j 4032 + return bytes_written / size; + 40f4: 0364d933 divu s2,s1,s6 + 40f8: 6446 ld s0,80(sp) + 40fa: 64a6 ld s1,72(sp) + 40fc: 7aa2 ld s5,40(sp) + 40fe: 7b02 ld s6,32(sp) + 4100: bf0d j 4032 + 4102: 6446 ld s0,80(sp) + 4104: 79e2 ld s3,56(sp) + 4106: 7aa2 ld s5,40(sp) + 4108: 7b02 ld s6,32(sp) + 410a: 6be2 ld s7,24(sp) + 410c: 6c42 ld s8,16(sp) + 410e: b715 j 4032 + stream->error = 1; + 4110: 4785 li a5,1 + 4112: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 4114: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 4118: ed29e8e3 bltu s3,s2,3fe8 + 411c: bf89 j 406e + stream->error = 1; + 411e: 4785 li a5,1 + 4120: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 4122: 40042823 sw zero,1040(s0) + return EOF; + 4126: bddd j 401c + +0000000000004128 : + if (!stream) + 4128: c925 beqz a0,4198 +{ + 412a: 1101 addi sp,sp,-32 + 412c: e04a sd s2,0(sp) + 412e: 8932 mv s2,a2 + if (stream->buf_write_pos > 0) + 4130: 41052603 lw a2,1040(a0) +{ + 4134: e822 sd s0,16(sp) + 4136: e426 sd s1,8(sp) + 4138: ec06 sd ra,24(sp) + 413a: 842a mv s0,a0 + 413c: 84ae mv s1,a1 + if (stream->buf_write_pos > 0) + 413e: 02c04863 bgtz a2,416e + if (lseek(stream->fd, offset, whence) < 0) + 4142: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 4144: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 4148: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 414c: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 4150: 864a mv a2,s2 + 4152: 0004859b sext.w a1,s1 + 4156: 82afc0ef jal 180 + 415a: 87aa mv a5,a0 + return 0; + 415c: 4501 li a0,0 + if (lseek(stream->fd, offset, whence) < 0) + 415e: 0207c463 bltz a5,4186 +} + 4162: 60e2 ld ra,24(sp) + 4164: 6442 ld s0,16(sp) + 4166: 64a2 ld s1,8(sp) + 4168: 6902 ld s2,0(sp) + 416a: 6105 addi sp,sp,32 + 416c: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 416e: 4108 lw a0,0(a0) + 4170: 01040593 addi a1,s0,16 + 4174: f7dfb0ef jal f0 + if (ret < stream->buf_write_pos) + 4178: 41042783 lw a5,1040(s0) + 417c: 00f54963 blt a0,a5,418e + stream->buf_write_pos = 0; + 4180: 40042823 sw zero,1040(s0) + 4184: bf7d j 4142 + stream->error = 1; + 4186: 4785 li a5,1 + 4188: c41c sw a5,8(s0) + return -1; + 418a: 557d li a0,-1 + 418c: bfd9 j 4162 + stream->error = 1; + 418e: 4785 li a5,1 + 4190: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 4192: 40042823 sw zero,1040(s0) + return EOF; + 4196: b775 j 4142 + return -1; + 4198: 557d li a0,-1 +} + 419a: 8082 ret + +000000000000419c : + if (!stream) + 419c: c505 beqz a0,41c4 +{ + 419e: 1141 addi sp,sp,-16 + 41a0: e022 sd s0,0(sp) + 41a2: 842a mv s0,a0 + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 41a4: 4108 lw a0,0(a0) + 41a6: 4605 li a2,1 + 41a8: 4581 li a1,0 +{ + 41aa: e406 sd ra,8(sp) + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 41ac: fd5fb0ef jal 180 + if (ret < 0) + 41b0: 00054663 bltz a0,41bc +} + 41b4: 60a2 ld ra,8(sp) + 41b6: 6402 ld s0,0(sp) + 41b8: 0141 addi sp,sp,16 + 41ba: 8082 ret + stream->error = 1; + 41bc: 4785 li a5,1 + 41be: c41c sw a5,8(s0) + return -1L; + 41c0: 557d li a0,-1 + 41c2: bfcd j 41b4 + 41c4: 557d li a0,-1 +} + 41c6: 8082 ret + +00000000000041c8 : + if (stream) + 41c8: c915 beqz a0,41fc + if (stream->buf_write_pos > 0) + 41ca: 41052603 lw a2,1040(a0) +{ + 41ce: 1141 addi sp,sp,-16 + 41d0: e022 sd s0,0(sp) + 41d2: e406 sd ra,8(sp) + 41d4: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 41d6: 02c04463 bgtz a2,41fe + if (lseek(stream->fd, offset, whence) < 0) + 41da: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 41dc: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 41e0: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 41e4: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 41e8: 4601 li a2,0 + 41ea: 4581 li a1,0 + 41ec: f95fb0ef jal 180 +} + 41f0: 60a2 ld ra,8(sp) + stream->error = 0; + 41f2: 00042423 sw zero,8(s0) +} + 41f6: 6402 ld s0,0(sp) + 41f8: 0141 addi sp,sp,16 + 41fa: 8082 ret + 41fc: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 41fe: 4108 lw a0,0(a0) + 4200: 01040593 addi a1,s0,16 + 4204: eedfb0ef jal f0 + if (ret < stream->buf_write_pos) + 4208: 41042783 lw a5,1040(s0) + 420c: 00f54563 blt a0,a5,4216 + stream->buf_write_pos = 0; + 4210: 40042823 sw zero,1040(s0) + 4214: b7d9 j 41da + stream->error = 1; + 4216: 4785 li a5,1 + 4218: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 421a: 40042823 sw zero,1040(s0) + return EOF; + 421e: bf75 j 41da + +0000000000004220 : + return (stream) ? stream->eof : 1; + 4220: c119 beqz a0,4226 + 4222: 4548 lw a0,12(a0) + 4224: 8082 ret + 4226: 4505 li a0,1 +} + 4228: 8082 ret + +000000000000422a : + return (stream) ? stream->error : 1; + 422a: c119 beqz a0,4230 + 422c: 4508 lw a0,8(a0) + 422e: 8082 ret + 4230: 4505 li a0,1 +} + 4232: 8082 ret + +0000000000004234 : + if (stream) + 4234: c509 beqz a0,423e + stream->error = 0; + 4236: 00052423 sw zero,8(a0) + stream->eof = 0; + 423a: 00052623 sw zero,12(a0) +} + 423e: 8082 ret + +0000000000004240 : + if (!stream || c == EOF) + 4240: c19d beqz a1,4266 + 4242: 57fd li a5,-1 + 4244: 02f50163 beq a0,a5,4266 + if (stream->buf_read_pos > 0) + 4248: 4145a783 lw a5,1044(a1) + 424c: 00f05d63 blez a5,4266 + stream->buf_read_pos--; + 4250: fff7871b addiw a4,a5,-1 + 4254: 40e5aa23 sw a4,1044(a1) + stream->buffer[stream->buf_read_pos] = (char)c; + 4258: 00e587b3 add a5,a1,a4 + 425c: 00a78823 sb a0,16(a5) + stream->eof = 0; + 4260: 0005a623 sw zero,12(a1) + return c; + 4264: 8082 ret + return EOF; + 4266: 557d li a0,-1 + 4268: 8082 ret + +000000000000426a : + return new_ptr; +} + +/* String Conversion*/ + +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 426a: 1141 addi sp,sp,-16 + 426c: e422 sd s0,8(sp) + 426e: 8eaa mv t4,a0 +{ + const char *s = nptr; + 4270: 88aa mv a7,a0 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + static inline int islower(int c) { return c >= 'a' && c <= 'z'; } + static inline int isupper(int c) { return c >= 'A' && c <= 'Z'; } + static inline int isalpha(int c) { return islower(c) || isupper(c); } + static inline int isalnum(int c) { return isalpha(c) || isdigit(c); } + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 4272: 02000313 li t1,32 + 4276: 4e11 li t3,4 + return 0; + } + + do + { + c = *s++; + 4278: 0008c783 lbu a5,0(a7) + 427c: 00188813 addi a6,a7,1 + 4280: ff77871b addiw a4,a5,-9 + 4284: 0ff77693 zext.b a3,a4 + 4288: 0007871b sext.w a4,a5 + 428c: 04678363 beq a5,t1,42d2 + 4290: 04de7163 bgeu t3,a3,42d2 + } while (isspace(c)); + + if (c == '-') + 4294: 02d00793 li a5,45 + 4298: 0ef70863 beq a4,a5,4388 + { + neg = 1; + c = *s++; + } + else if (c == '+') + 429c: 02b00793 li a5,43 + int neg = 0, any, cutlim; + 42a0: 4381 li t2,0 + else if (c == '+') + 42a2: 08f70c63 beq a4,a5,433a + { + c = *s++; + } + + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 42a6: ea05 bnez a2,42d6 + 42a8: 03000793 li a5,48 + 42ac: 0ef70463 beq a4,a5,4394 + 42b0: 00ccd8b7 lui a7,0xccd + 42b4: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc5445> + 42b8: 08b2 slli a7,a7,0xc + 42ba: ccd88893 addi a7,a7,-819 + 42be: 08b2 slli a7,a7,0xc + 42c0: ccd88893 addi a7,a7,-819 + 42c4: 08b6 slli a7,a7,0xd + 42c6: 4415 li s0,5 + 42c8: 99988893 addi a7,a7,-1639 + 42cc: 42a9 li t0,10 + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = (c == '0' ? 8 : 10); + 42ce: 4629 li a2,10 + 42d0: a829 j 42ea +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 42d2: 88c2 mv a7,a6 + 42d4: b755 j 4278 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 42d6: 47c1 li a5,16 + 42d8: 0cf60d63 beq a2,a5,43b2 + + cutoff = ULLONG_MAX / (unsigned long long)base; + 42dc: 58fd li a7,-1 + cutlim = ULLONG_MAX % (unsigned long long)base; + 42de: 02c8f433 remu s0,a7,a2 + cutoff = ULLONG_MAX / (unsigned long long)base; + 42e2: 82b2 mv t0,a2 + 42e4: 02c8d8b3 divu a7,a7,a2 + cutlim = ULLONG_MAX % (unsigned long long)base; + 42e8: 2401 sext.w s0,s0 + + for (acc = 0, any = 0;; c = *s++) + 42ea: 4301 li t1,0 + 42ec: 4501 li a0,0 + { + if (isdigit(c)) + 42ee: 4e25 li t3,9 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 42f0: 4fe5 li t6,25 + break; + + if (c >= base) + break; + + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42f2: 5f7d li t5,-1 + if (isdigit(c)) + 42f4: fd07079b addiw a5,a4,-48 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 42f8: 0007069b sext.w a3,a4 + 42fc: 00fe7e63 bgeu t3,a5,4318 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 4300: f9f6879b addiw a5,a3,-97 + 4304: 04fff063 bgeu t6,a5,4344 + 4308: fbf6869b addiw a3,a3,-65 + 430c: 04dfe163 bltu t6,a3,434e + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 4310: 03700793 li a5,55 + 4314: 40f707bb subw a5,a4,a5 + if (c >= base) + 4318: 02c7db63 bge a5,a2,434e + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 431c: 01e30b63 beq t1,t5,4332 + any = -1; + 4320: 537d li t1,-1 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 4322: 00a8e863 bltu a7,a0,4332 + 4326: 05150e63 beq a0,a7,4382 + else + { + any = 1; + 432a: 4305 li t1,1 + acc *= base; + 432c: 02550533 mul a0,a0,t0 + acc += c; + 4330: 953e add a0,a0,a5 + for (acc = 0, any = 0;; c = *s++) + 4332: 0805 addi a6,a6,1 + 4334: fff84703 lbu a4,-1(a6) + if (isdigit(c)) + 4338: bf75 j 42f4 + c = *s++; + 433a: 00084703 lbu a4,0(a6) + 433e: 00288813 addi a6,a7,2 + 4342: b795 j 42a6 + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 4344: 05700793 li a5,87 + 4348: 40f707bb subw a5,a4,a5 + 434c: b7f1 j 4318 + } + } + + if (any < 0) + 434e: 57fd li a5,-1 + 4350: 00f30e63 beq t1,a5,436c + { + acc = ULLONG_MAX; + errno = ERANGE; + } + else if (neg) + 4354: 00038463 beqz t2,435c + acc = -acc; + 4358: 40a00533 neg a0,a0 + + if (endptr != 0) + 435c: c589 beqz a1,4366 + *endptr = (char *)(any ? s - 1 : nptr); + 435e: 00031f63 bnez t1,437c + 4362: 01d5b023 sd t4,0(a1) + + return acc; +} + 4366: 6422 ld s0,8(sp) + 4368: 0141 addi sp,sp,16 + 436a: 8082 ret + errno = ERANGE; + 436c: 02200793 li a5,34 + 4370: 00003717 auipc a4,0x3 + 4374: 3ef72023 sw a5,992(a4) # 7750 + acc = ULLONG_MAX; + 4378: 557d li a0,-1 + if (endptr != 0) + 437a: d5f5 beqz a1,4366 + *endptr = (char *)(any ? s - 1 : nptr); + 437c: fff80e93 addi t4,a6,-1 + 4380: b7cd j 4362 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 4382: faf448e3 blt s0,a5,4332 + 4386: b755 j 432a + c = *s++; + 4388: 00084703 lbu a4,0(a6) + neg = 1; + 438c: 4385 li t2,1 + c = *s++; + 438e: 00288813 addi a6,a7,2 + 4392: bf11 j 42a6 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 4394: 00084783 lbu a5,0(a6) + 4398: 05800693 li a3,88 + 439c: 0df7f793 andi a5,a5,223 + 43a0: 02d78b63 beq a5,a3,43d6 + 43a4: 58fd li a7,-1 + 43a6: 441d li s0,7 + 43a8: 0038d893 srli a7,a7,0x3 + 43ac: 42a1 li t0,8 + base = (c == '0' ? 8 : 10); + 43ae: 4621 li a2,8 + 43b0: bf2d j 42ea + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 43b2: 03000793 li a5,48 + 43b6: 00f70863 beq a4,a5,43c6 + 43ba: 58fd li a7,-1 + 43bc: 443d li s0,15 + 43be: 0048d893 srli a7,a7,0x4 + 43c2: 42c1 li t0,16 + 43c4: b71d j 42ea + 43c6: 00084783 lbu a5,0(a6) + 43ca: 05800693 li a3,88 + 43ce: 0df7f793 andi a5,a5,223 + 43d2: fed794e3 bne a5,a3,43ba + s += 2; + 43d6: 58fd li a7,-1 + c = s[1]; + 43d8: 00184703 lbu a4,1(a6) + s += 2; + 43dc: 443d li s0,15 + 43de: 0809 addi a6,a6,2 + 43e0: 0048d893 srli a7,a7,0x4 + 43e4: 42c1 li t0,16 + base = 16; + 43e6: 4641 li a2,16 + 43e8: b709 j 42ea + +00000000000043ea : + if (__atexit_func_count >= ATEXIT_MAX) + 43ea: 00003717 auipc a4,0x3 + 43ee: 36670713 addi a4,a4,870 # 7750 + 43f2: 435c lw a5,4(a4) + 43f4: 46fd li a3,31 + 43f6: 00f6ca63 blt a3,a5,440a + __atexit_funcs[__atexit_func_count++] = function; + 43fa: 00379693 slli a3,a5,0x3 + 43fe: 96ba add a3,a3,a4 + 4400: 2785 addiw a5,a5,1 + 4402: e688 sd a0,8(a3) + 4404: c35c sw a5,4(a4) + return 0; + 4406: 4501 li a0,0 + 4408: 8082 ret + return -1; + 440a: 557d li a0,-1 +} + 440c: 8082 ret + +000000000000440e : +{ + 440e: 1101 addi sp,sp,-32 + 4410: e822 sd s0,16(sp) + while (__atexit_func_count > 0) + 4412: 00003417 auipc s0,0x3 + 4416: 33e40413 addi s0,s0,830 # 7750 + 441a: 405c lw a5,4(s0) +{ + 441c: e426 sd s1,8(sp) + 441e: ec06 sd ra,24(sp) + 4420: 84aa mv s1,a0 + while (__atexit_func_count > 0) + 4422: 00f05d63 blez a5,443c + (__atexit_funcs[--__atexit_func_count])(); + 4426: fff7871b addiw a4,a5,-1 + 442a: 87ba mv a5,a4 + 442c: 070e slli a4,a4,0x3 + 442e: 9722 add a4,a4,s0 + 4430: 6718 ld a4,8(a4) + 4432: c05c sw a5,4(s0) + 4434: 9702 jalr a4 + while (__atexit_func_count > 0) + 4436: 405c lw a5,4(s0) + 4438: fef047e3 bgtz a5,4426 + sys_exit(status); + 443c: 8526 mv a0,s1 + 443e: c8bfb0ef jal c8 + while (1) + 4442: a001 j 4442 + +0000000000004444 : +{ + 4444: 1141 addi sp,sp,-16 + exit(127); + 4446: 07f00513 li a0,127 +{ + 444a: e406 sd ra,8(sp) + exit(127); + 444c: fc3ff0ef jal 440e + +0000000000004450 : +} + 4450: 4501 li a0,0 + 4452: 8082 ret + +0000000000004454 : +} + 4454: 557d li a0,-1 + 4456: 8082 ret + +0000000000004458 : + if (!ptr) + 4458: c121 beqz a0,4498 + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 445a: 00003617 auipc a2,0x3 + 445e: 2f660613 addi a2,a2,758 # 7750 + 4462: 10863783 ld a5,264(a2) + bp = (header_t *)ptr - 1; + 4466: ff050693 addi a3,a0,-16 + if (p >= p->next && (bp > p || bp < p->next)) + 446a: 6798 ld a4,8(a5) + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 446c: 02d7f763 bgeu a5,a3,449a + 4470: 00e6e463 bltu a3,a4,4478 + if (p >= p->next && (bp > p || bp < p->next)) + 4474: 02e7e763 bltu a5,a4,44a2 + if ((char *)bp + bp->size == (char *)p->next) + 4478: ff053583 ld a1,-16(a0) + 447c: 00b68833 add a6,a3,a1 + 4480: 03070363 beq a4,a6,44a6 + if ((char *)p + p->size == (char *)bp) + 4484: 638c ld a1,0(a5) + 4486: fee53c23 sd a4,-8(a0) + 448a: 00b78833 add a6,a5,a1 + 448e: 03068963 beq a3,a6,44c0 + 4492: e794 sd a3,8(a5) + freep = p; + 4494: 10f63423 sd a5,264(a2) +} + 4498: 8082 ret + if (p >= p->next && (bp > p || bp < p->next)) + 449a: 00e7e463 bltu a5,a4,44a2 + 449e: fce6ede3 bltu a3,a4,4478 +{ + 44a2: 87ba mv a5,a4 + 44a4: b7d9 j 446a + bp->size += p->next->size; + 44a6: 00073803 ld a6,0(a4) + bp->next = p->next->next; + 44aa: 6718 ld a4,8(a4) + bp->size += p->next->size; + 44ac: 95c2 add a1,a1,a6 + 44ae: feb53823 sd a1,-16(a0) + if ((char *)p + p->size == (char *)bp) + 44b2: 638c ld a1,0(a5) + 44b4: fee53c23 sd a4,-8(a0) + 44b8: 00b78833 add a6,a5,a1 + 44bc: fd069be3 bne a3,a6,4492 + p->size += bp->size; + 44c0: ff053503 ld a0,-16(a0) + p->next = bp->next; + 44c4: 86ba mv a3,a4 + p->size += bp->size; + 44c6: 00b50733 add a4,a0,a1 + 44ca: e398 sd a4,0(a5) + p->next = bp->next; + 44cc: b7d9 j 4492 + +00000000000044ce : + if (size == 0) + 44ce: c169 beqz a0,4590 +{ + 44d0: 7179 addi sp,sp,-48 + 44d2: ec26 sd s1,24(sp) + if ((prevp = freep) == NULL) + 44d4: 00003497 auipc s1,0x3 + 44d8: 27c48493 addi s1,s1,636 # 7750 + 44dc: 1084b783 ld a5,264(s1) +{ + 44e0: f022 sd s0,32(sp) + size = ALIGN(size + sizeof(header_t)); + 44e2: 057d addi a0,a0,31 +{ + 44e4: f406 sd ra,40(sp) + size = ALIGN(size + sizeof(header_t)); + 44e6: ff057413 andi s0,a0,-16 + if ((prevp = freep) == NULL) + 44ea: c3d1 beqz a5,456e + for (p = prevp->next;; prevp = p, p = p->next) + 44ec: 6788 ld a0,8(a5) + if (p->size >= size) + 44ee: 6118 ld a4,0(a0) + 44f0: 06877163 bgeu a4,s0,4552 + 44f4: e44e sd s3,8(sp) + 44f6: e052 sd s4,0(sp) + 44f8: e84a sd s2,16(sp) + if (nu < 4096) + 44fa: 6a05 lui s4,0x1 + if (cp == (void *)-1) + 44fc: 59fd li s3,-1 + 44fe: a029 j 4508 + for (p = prevp->next;; prevp = p, p = p->next) + 4500: 6788 ld a0,8(a5) + if (p->size >= size) + 4502: 6118 ld a4,0(a0) + 4504: 04877463 bgeu a4,s0,454c + if (p == freep) + 4508: 1084b703 ld a4,264(s1) + 450c: 87aa mv a5,a0 + 450e: fee519e3 bne a0,a4,4500 + if (nu < 4096) + 4512: 8922 mv s2,s0 + 4514: 01447363 bgeu s0,s4,451a + 4518: 6905 lui s2,0x1 + cp = (char *)sbrk(nu); + 451a: 854a mv a0,s2 + 451c: c3dfb0ef jal 158 + 4520: 87aa mv a5,a0 + free((void *)(up + 1)); + 4522: 0541 addi a0,a0,16 + if (cp == (void *)-1) + 4524: 01378963 beq a5,s3,4536 + up->size = nu; + 4528: 0127b023 sd s2,0(a5) + free((void *)(up + 1)); + 452c: f2dff0ef jal 4458 + return freep; + 4530: 1084b783 ld a5,264(s1) + if ((p = morecore(size)) == NULL) + 4534: f7f1 bnez a5,4500 +} + 4536: 70a2 ld ra,40(sp) + 4538: 7402 ld s0,32(sp) + errno = ENOMEM; + 453a: 47b1 li a5,12 + 453c: c09c sw a5,0(s1) + return NULL; + 453e: 6942 ld s2,16(sp) + 4540: 69a2 ld s3,8(sp) + 4542: 6a02 ld s4,0(sp) +} + 4544: 64e2 ld s1,24(sp) + return NULL; + 4546: 4501 li a0,0 +} + 4548: 6145 addi sp,sp,48 + 454a: 8082 ret + 454c: 6942 ld s2,16(sp) + 454e: 69a2 ld s3,8(sp) + 4550: 6a02 ld s4,0(sp) + if (p->size == size) + 4552: 02e40c63 beq s0,a4,458a + p->size -= size; + 4556: 8f01 sub a4,a4,s0 + 4558: e118 sd a4,0(a0) + p = (header_t *)((char *)p + p->size); + 455a: 953a add a0,a0,a4 + p->size = size; + 455c: e100 sd s0,0(a0) +} + 455e: 70a2 ld ra,40(sp) + 4560: 7402 ld s0,32(sp) + freep = prevp; + 4562: 10f4b423 sd a5,264(s1) + return (void *)(p + 1); + 4566: 0541 addi a0,a0,16 +} + 4568: 64e2 ld s1,24(sp) + 456a: 6145 addi sp,sp,48 + 456c: 8082 ret + base.next = freep = prevp = &base; + 456e: 00003517 auipc a0,0x3 + 4572: 2f250513 addi a0,a0,754 # 7860 + 4576: 10a4b423 sd a0,264(s1) + 457a: 10a4bc23 sd a0,280(s1) + base.size = 0; + 457e: 00003797 auipc a5,0x3 + 4582: 2e07b123 sd zero,738(a5) # 7860 + if (p->size >= size) + 4586: f43d bnez s0,44f4 + base.next = freep = prevp = &base; + 4588: 87aa mv a5,a0 + prevp->next = p->next; + 458a: 6518 ld a4,8(a0) + 458c: e798 sd a4,8(a5) + 458e: bfc1 j 455e + return NULL; + 4590: 4501 li a0,0 +} + 4592: 8082 ret + +0000000000004594 : + if (__builtin_mul_overflow(nmemb, size, &total)) + 4594: 02b537b3 mulhu a5,a0,a1 +{ + 4598: 1101 addi sp,sp,-32 + 459a: e822 sd s0,16(sp) + 459c: ec06 sd ra,24(sp) + 459e: e426 sd s1,8(sp) + if (__builtin_mul_overflow(nmemb, size, &total)) + 45a0: 02b50433 mul s0,a0,a1 + 45a4: e385 bnez a5,45c4 + void *p = malloc(total); + 45a6: 8522 mv a0,s0 + 45a8: f27ff0ef jal 44ce + 45ac: 84aa mv s1,a0 + if (p) + 45ae: c509 beqz a0,45b8 + memset(p, 0, total); + 45b0: 8622 mv a2,s0 + 45b2: 4581 li a1,0 + 45b4: 524000ef jal 4ad8 +} + 45b8: 60e2 ld ra,24(sp) + 45ba: 6442 ld s0,16(sp) + 45bc: 8526 mv a0,s1 + 45be: 64a2 ld s1,8(sp) + 45c0: 6105 addi sp,sp,32 + 45c2: 8082 ret + 45c4: 60e2 ld ra,24(sp) + 45c6: 6442 ld s0,16(sp) + errno = ENOMEM; + 45c8: 47b1 li a5,12 + return NULL; + 45ca: 4481 li s1,0 + errno = ENOMEM; + 45cc: 00003717 auipc a4,0x3 + 45d0: 18f72223 sw a5,388(a4) # 7750 +} + 45d4: 8526 mv a0,s1 + 45d6: 64a2 ld s1,8(sp) + 45d8: 6105 addi sp,sp,32 + 45da: 8082 ret + +00000000000045dc : + if (!ptr) + 45dc: c929 beqz a0,462e +{ + 45de: 1101 addi sp,sp,-32 + 45e0: ec06 sd ra,24(sp) + 45e2: e426 sd s1,8(sp) + if (size == 0) + 45e4: c5b9 beqz a1,4632 + if (bp->size >= new_size) + 45e6: ff053703 ld a4,-16(a0) + size_t new_size = ALIGN(size + sizeof(header_t)); + 45ea: 01f58793 addi a5,a1,31 + 45ee: e822 sd s0,16(sp) + 45f0: 9bc1 andi a5,a5,-16 + 45f2: 842a mv s0,a0 + return ptr; + 45f4: 84aa mv s1,a0 + if (bp->size >= new_size) + 45f6: 00f76863 bltu a4,a5,4606 + 45fa: 6442 ld s0,16(sp) +} + 45fc: 60e2 ld ra,24(sp) + 45fe: 8526 mv a0,s1 + 4600: 64a2 ld s1,8(sp) + 4602: 6105 addi sp,sp,32 + 4604: 8082 ret + void *new_ptr = malloc(size); + 4606: 852e mv a0,a1 + 4608: ec7ff0ef jal 44ce + 460c: 84aa mv s1,a0 + if (!new_ptr) + 460e: d575 beqz a0,45fa + memcpy(new_ptr, ptr, bp->size - sizeof(header_t)); + 4610: ff043603 ld a2,-16(s0) + 4614: 85a2 mv a1,s0 + 4616: 1641 addi a2,a2,-16 + 4618: 514000ef jal 4b2c + free(ptr); + 461c: 8522 mv a0,s0 + 461e: e3bff0ef jal 4458 +} + 4622: 60e2 ld ra,24(sp) + free(ptr); + 4624: 6442 ld s0,16(sp) +} + 4626: 8526 mv a0,s1 + 4628: 64a2 ld s1,8(sp) + 462a: 6105 addi sp,sp,32 + 462c: 8082 ret + return malloc(size); + 462e: 852e mv a0,a1 + 4630: bd79 j 44ce + free(ptr); + 4632: e27ff0ef jal 4458 + return NULL; + 4636: 4481 li s1,0 + 4638: b7d1 j 45fc + +000000000000463a : + if (base < 0 || base == 1 || base > 36) + 463a: 02400813 li a6,36 +{ + 463e: 86aa mv a3,a0 + 4640: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 4642: 00c86663 bltu a6,a2,464e + 4646: 4805 li a6,1 + 4648: 01060363 beq a2,a6,464e + 464c: b939 j 426a + if (endptr) + 464e: c311 beqz a4,4652 + *endptr = (char *)nptr; + 4650: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 4652: 00003797 auipc a5,0x3 + 4656: 0e07af23 sw zero,254(a5) # 7750 +} + 465a: 4501 li a0,0 + 465c: 8082 ret + +000000000000465e : + +long long strtoll(const char *nptr, char **endptr, int base) +{ + 465e: 1141 addi sp,sp,-16 + 4660: e406 sd ra,8(sp) + 4662: e022 sd s0,0(sp) + const char *s = nptr; + 4664: 86aa mv a3,a0 + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 4666: 02000813 li a6,32 + 466a: 4891 li a7,4 + unsigned long long acc; + int c, neg = 0; + + do + { + c = *s++; + 466c: 0006c783 lbu a5,0(a3) + 4670: 0685 addi a3,a3,1 + 4672: ff77871b addiw a4,a5,-9 + 4676: 0ff77713 zext.b a4,a4 + 467a: 0007841b sext.w s0,a5 + 467e: ff0787e3 beq a5,a6,466c + 4682: fee8f5e3 bgeu a7,a4,466c + if (base < 0 || base == 1 || base > 36) + 4686: 02400793 li a5,36 + 468a: 02c7ec63 bltu a5,a2,46c2 + 468e: 4785 li a5,1 + 4690: 02f60963 beq a2,a5,46c2 + 4694: bd7ff0ef jal 426a + if (c == '-') + neg = 1; + + acc = strtoull(nptr, endptr, base); + + if (errno == ERANGE && acc == ULLONG_MAX) + 4698: 00003797 auipc a5,0x3 + 469c: 0b878793 addi a5,a5,184 # 7750 + 46a0: 4394 lw a3,0(a5) + 46a2: 02200713 li a4,34 + 46a6: 04e68363 beq a3,a4,46ec + return neg ? LLONG_MIN : LLONG_MAX; + + if (!neg && acc > (unsigned long long)LLONG_MAX) + 46aa: 02d00713 li a4,45 + 46ae: 02e40563 beq s0,a4,46d8 + 46b2: 00055f63 bgez a0,46d0 + { + errno = ERANGE; + 46b6: 02200713 li a4,34 + 46ba: c398 sw a4,0(a5) + return neg ? LLONG_MIN : LLONG_MAX; + 46bc: 557d li a0,-1 + 46be: 8105 srli a0,a0,0x1 + 46c0: a801 j 46d0 + if (endptr) + 46c2: c191 beqz a1,46c6 + *endptr = (char *)nptr; + 46c4: e188 sd a0,0(a1) + errno = 0; /* EINVAL */ + 46c6: 00003797 auipc a5,0x3 + 46ca: 0807a523 sw zero,138(a5) # 7750 + { + errno = ERANGE; + return LLONG_MIN; + } + + return neg ? -(long long)acc : (long long)acc; + 46ce: 4501 li a0,0 +} + 46d0: 60a2 ld ra,8(sp) + 46d2: 6402 ld s0,0(sp) + 46d4: 0141 addi sp,sp,16 + 46d6: 8082 ret + if (neg && acc > (unsigned long long)LLONG_MAX + 1) + 46d8: 577d li a4,-1 + 46da: 177e slli a4,a4,0x3f + 46dc: 02a76263 bltu a4,a0,4700 +} + 46e0: 60a2 ld ra,8(sp) + 46e2: 6402 ld s0,0(sp) + return neg ? -(long long)acc : (long long)acc; + 46e4: 40a00533 neg a0,a0 +} + 46e8: 0141 addi sp,sp,16 + 46ea: 8082 ret + if (errno == ERANGE && acc == ULLONG_MAX) + 46ec: 577d li a4,-1 + 46ee: fae51ee3 bne a0,a4,46aa + return neg ? LLONG_MIN : LLONG_MAX; + 46f2: 02d00793 li a5,45 + 46f6: fcf413e3 bne s0,a5,46bc + return LLONG_MIN; + 46fa: 557d li a0,-1 + 46fc: 157e slli a0,a0,0x3f + 46fe: bfc9 j 46d0 + errno = ERANGE; + 4700: 02200713 li a4,34 + 4704: c398 sw a4,0(a5) + return LLONG_MIN; + 4706: bfd5 j 46fa + +0000000000004708 : + if (base < 0 || base == 1 || base > 36) + 4708: 02400813 li a6,36 + +unsigned long strtoul(const char *nptr, char **endptr, int base) +{ + 470c: 86aa mv a3,a0 + 470e: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 4710: 00c86663 bltu a6,a2,471c + 4714: 4805 li a6,1 + 4716: 01060363 beq a2,a6,471c + 471a: be81 j 426a + if (endptr) + 471c: c311 beqz a4,4720 + *endptr = (char *)nptr; + 471e: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 4720: 00003797 auipc a5,0x3 + 4724: 0207a823 sw zero,48(a5) # 7750 + { + errno = ERANGE; + return ULONG_MAX; + } + return (unsigned long)ret; +} + 4728: 4501 li a0,0 + 472a: 8082 ret + +000000000000472c : + +long strtol(const char *nptr, char **endptr, int base) +{ + long long ret = strtoll(nptr, endptr, base); + 472c: bf0d j 465e + +000000000000472e : + return LONG_MIN; + } + return (long)ret; +} + +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 472e: 1141 addi sp,sp,-16 + long long ret = strtoll(nptr, endptr, base); + 4730: 4629 li a2,10 + 4732: 4581 li a1,0 +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 4734: e406 sd ra,8(sp) + long long ret = strtoll(nptr, endptr, base); + 4736: f29ff0ef jal 465e +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 473a: 60a2 ld ra,8(sp) + 473c: 2501 sext.w a0,a0 + 473e: 0141 addi sp,sp,16 + 4740: 8082 ret + +0000000000004742 : + long long ret = strtoll(nptr, endptr, base); + 4742: 4629 li a2,10 + 4744: 4581 li a1,0 + 4746: bf21 j 465e + +0000000000004748 : +long atol(const char *nptr) { return strtol(nptr, NULL, 10); } +long long atoll(const char *nptr) { return strtoll(nptr, NULL, 10); } + 4748: 4629 li a2,10 + 474a: 4581 li a1,0 + 474c: bf09 j 465e + +000000000000474e : + 474e: 02000693 li a3,32 + 4752: 4611 li a2,4 +{ + double val = 0.0; + int sign = 1; + const char *s = nptr; + + while (isspace(*s)) + 4754: 00054783 lbu a5,0(a0) + 4758: ff77871b addiw a4,a5,-9 + 475c: 0ff77713 zext.b a4,a4 + 4760: 06d78263 beq a5,a3,47c4 + 4764: 06e67063 bgeu a2,a4,47c4 + s++; + if (*s == '-') + 4768: 02d00713 li a4,45 + 476c: 08e78e63 beq a5,a4,4808 + { + sign = -1; + s++; + } + else if (*s == '+') + 4770: 02b00713 li a4,43 + 4774: 0ae78263 beq a5,a4,4818 + 4778: 00001717 auipc a4,0x1 + 477c: 0f073507 fld fa0,240(a4) # 5868 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 4780: fd07861b addiw a2,a5,-48 + s++; + + while (isdigit(*s)) + 4784: 46a5 li a3,9 + 4786: f20007d3 fmv.d.x fa5,zero + 478a: 8732 mv a4,a2 + 478c: 02c6e363 bltu a3,a2,47b2 + 4790: 00001797 auipc a5,0x1 + 4794: 0e07b687 fld fa3,224(a5) # 5870 + 4798: 4625 li a2,9 + 479a: 00154783 lbu a5,1(a0) + { + val = val * 10.0 + (*s - '0'); + 479e: d2070753 fcvt.d.w fa4,a4 + s++; + 47a2: 0505 addi a0,a0,1 + 47a4: fd07869b addiw a3,a5,-48 + val = val * 10.0 + (*s - '0'); + 47a8: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 + 47ac: 8736 mv a4,a3 + while (isdigit(*s)) + 47ae: fed676e3 bgeu a2,a3,479a + } + if (*s == '.') + 47b2: 02e00713 li a4,46 + 47b6: 00e78963 beq a5,a4,47c8 + val += (*s - '0') * factor; + s++; + } + } + + if (endptr) + 47ba: c191 beqz a1,47be + *endptr = (char *)s; + 47bc: e188 sd a0,0(a1) + return val * sign; +} + 47be: 12a7f553 fmul.d fa0,fa5,fa0 + 47c2: 8082 ret + s++; + 47c4: 0505 addi a0,a0,1 + 47c6: b779 j 4754 + while (isdigit(*s)) + 47c8: 00154703 lbu a4,1(a0) + 47cc: 46a5 li a3,9 + s++; + 47ce: 0505 addi a0,a0,1 + 47d0: fd07071b addiw a4,a4,-48 + 47d4: 87ba mv a5,a4 + while (isdigit(*s)) + 47d6: fee6e2e3 bltu a3,a4,47ba + double factor = 1.0; + 47da: 00001717 auipc a4,0x1 + 47de: 08e73707 fld fa4,142(a4) # 5868 + 47e2: 00001717 auipc a4,0x1 + 47e6: 0a673607 fld fa2,166(a4) # 5888 + factor *= 0.1; + 47ea: 12c77753 fmul.d fa4,fa4,fa2 + while (isdigit(*s)) + 47ee: 00154703 lbu a4,1(a0) + val += (*s - '0') * factor; + 47f2: d20786d3 fcvt.d.w fa3,a5 + s++; + 47f6: 0505 addi a0,a0,1 + 47f8: fd07071b addiw a4,a4,-48 + 47fc: 87ba mv a5,a4 + val += (*s - '0') * factor; + 47fe: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 + while (isdigit(*s)) + 4802: fee6f4e3 bgeu a3,a4,47ea + 4806: bf55 j 47ba + while (isdigit(*s)) + 4808: 00154783 lbu a5,1(a0) + 480c: 00001717 auipc a4,0x1 + 4810: 05473507 fld fa0,84(a4) # 5860 + s++; + 4814: 0505 addi a0,a0,1 + 4816: b7ad j 4780 + while (isdigit(*s)) + 4818: 00154783 lbu a5,1(a0) + 481c: 00001717 auipc a4,0x1 + 4820: 04c73507 fld fa0,76(a4) # 5868 + s++; + 4824: 0505 addi a0,a0,1 + 4826: bfa9 j 4780 + +0000000000004828 : + +double atof(const char *nptr) { return strtod(nptr, NULL); } + 4828: 4581 li a1,0 + 482a: b715 j 474e + +000000000000482c : +float strtof(const char *nptr, char **endptr) { return (float)strtod(nptr, endptr); } + 482c: 1141 addi sp,sp,-16 + 482e: e406 sd ra,8(sp) + 4830: f1fff0ef jal 474e + 4834: 60a2 ld ra,8(sp) + 4836: 40157553 fcvt.s.d fa0,fa0 + 483a: 0141 addi sp,sp,16 + 483c: 8082 ret + +000000000000483e : + } +} + +void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + if (nmemb < 2 || size == 0) + 483e: 4785 li a5,1 + 4840: 0cb7fd63 bgeu a5,a1,491a +{ + 4844: 715d addi sp,sp,-80 + 4846: f44e sd s3,40(sp) + 4848: e486 sd ra,72(sp) + 484a: 89b2 mv s3,a2 + if (nmemb < 2 || size == 0) + 484c: c279 beqz a2,4912 + 484e: e85a sd s6,16(sp) + 4850: 8b2e mv s6,a1 + return; + + char *base_ptr = (char *)base; + char *pivot = base_ptr + (nmemb - 1) * size; + 4852: 1b7d addi s6,s6,-1 + 4854: fc26 sd s1,56(sp) + 4856: 033b04b3 mul s1,s6,s3 + 485a: ec56 sd s5,24(sp) + 485c: 8aaa mv s5,a0 + 485e: f052 sd s4,32(sp) + 4860: e45e sd s7,8(sp) + 4862: e0a2 sd s0,64(sp) + 4864: f84a sd s2,48(sp) + 4866: 8a36 mv s4,a3 + if (nmemb < 2 || size == 0) + 4868: 4b85 li s7,1 + char *pivot = base_ptr + (nmemb - 1) * size; + 486a: 94d6 add s1,s1,s5 + char *i = base_ptr; + char *j = base_ptr; + + /* Partition */ + for (; j < pivot; j += size) + 486c: 069af763 bgeu s5,s1,48da + char *j = base_ptr; + 4870: 8956 mv s2,s5 + char *i = base_ptr; + 4872: 8456 mv s0,s5 + 4874: a021 j 487c + for (; j < pivot; j += size) + 4876: 994e add s2,s2,s3 + 4878: 00997f63 bgeu s2,s1,4896 + { + if (compar(j, pivot) < 0) + 487c: 85a6 mv a1,s1 + 487e: 854a mv a0,s2 + 4880: 9a02 jalr s4 + 4882: fe055ae3 bgez a0,4876 + { + if (i != j) + 4886: 05241d63 bne s0,s2,48e0 + 488a: 01390633 add a2,s2,s3 + swap_bytes(i, j, size); + i += size; + 488e: 8432 mv s0,a2 + for (; j < pivot; j += size) + 4890: 994e add s2,s2,s3 + 4892: fe9965e3 bltu s2,s1,487c + } + } + swap_bytes(i, pivot, size); + + /* Recurse */ + size_t left_count = (i - base_ptr) / size; + 4896: 415405b3 sub a1,s0,s5 + 489a: 0335d5b3 divu a1,a1,s3 + qsort(base, left_count, size, compar); + qsort(i + size, nmemb - left_count - 1, size, compar); + 489e: 40bb0b33 sub s6,s6,a1 + while (size--) + 48a2: 013406b3 add a3,s0,s3 + *a++ = *b; + 48a6: 0004c703 lbu a4,0(s1) + temp = *a; + 48aa: 00044783 lbu a5,0(s0) + *b++ = temp; + 48ae: 0485 addi s1,s1,1 + *a++ = *b; + 48b0: 0405 addi s0,s0,1 + 48b2: fee40fa3 sb a4,-1(s0) + *b++ = temp; + 48b6: fef48fa3 sb a5,-1(s1) + while (size--) + 48ba: fed416e3 bne s0,a3,48a6 + qsort(base, left_count, size, compar); + 48be: 86d2 mv a3,s4 + 48c0: 864e mv a2,s3 + 48c2: 8556 mv a0,s5 + 48c4: f7bff0ef jal 483e + if (nmemb < 2 || size == 0) + 48c8: 036bfe63 bgeu s7,s6,4904 + char *pivot = base_ptr + (nmemb - 1) * size; + 48cc: 1b7d addi s6,s6,-1 + 48ce: 033b04b3 mul s1,s6,s3 + 48d2: 8aa2 mv s5,s0 + 48d4: 94d6 add s1,s1,s5 + for (; j < pivot; j += size) + 48d6: f89aede3 bltu s5,s1,4870 + char *i = base_ptr; + 48da: 8456 mv s0,s5 + for (; j < pivot; j += size) + 48dc: 4581 li a1,0 + 48de: b7d1 j 48a2 + 48e0: 01340633 add a2,s0,s3 + if (i != j) + 48e4: 874a mv a4,s2 + 48e6: 87a2 mv a5,s0 + *a++ = *b; + 48e8: 00074683 lbu a3,0(a4) + temp = *a; + 48ec: 0007c803 lbu a6,0(a5) + *b++ = temp; + 48f0: 0705 addi a4,a4,1 + *a++ = *b; + 48f2: 0785 addi a5,a5,1 + 48f4: fed78fa3 sb a3,-1(a5) + *b++ = temp; + 48f8: ff070fa3 sb a6,-1(a4) + while (size--) + 48fc: fec796e3 bne a5,a2,48e8 + i += size; + 4900: 8432 mv s0,a2 + 4902: b779 j 4890 + 4904: 6406 ld s0,64(sp) + 4906: 74e2 ld s1,56(sp) + 4908: 7942 ld s2,48(sp) + 490a: 7a02 ld s4,32(sp) + 490c: 6ae2 ld s5,24(sp) + 490e: 6b42 ld s6,16(sp) + 4910: 6ba2 ld s7,8(sp) +} + 4912: 60a6 ld ra,72(sp) + 4914: 79a2 ld s3,40(sp) + 4916: 6161 addi sp,sp,80 + 4918: 8082 ret + 491a: 8082 ret + +000000000000491c : + +void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + 491c: 715d addi sp,sp,-80 + 491e: e486 sd ra,72(sp) + 4920: fc26 sd s1,56(sp) + size_t l = 0, u = nmemb; + while (l < u) + 4922: c629 beqz a2,496c + 4924: f84a sd s2,48(sp) + 4926: f44e sd s3,40(sp) + 4928: f052 sd s4,32(sp) + 492a: ec56 sd s5,24(sp) + 492c: e85a sd s6,16(sp) + 492e: e45e sd s7,8(sp) + 4930: e0a2 sd s0,64(sp) + 4932: 8932 mv s2,a2 + 4934: 8a2a mv s4,a0 + 4936: 8aae mv s5,a1 + 4938: 8b36 mv s6,a3 + 493a: 8bba mv s7,a4 + size_t l = 0, u = nmemb; + 493c: 4981 li s3,0 + { + size_t idx = (l + u) / 2; + 493e: 01298433 add s0,s3,s2 + 4942: 8005 srli s0,s0,0x1 + const void *p = (void *)((const char *)base + (idx * size)); + 4944: 036404b3 mul s1,s0,s6 + int cmp = compar(key, p); + 4948: 8552 mv a0,s4 + const void *p = (void *)((const char *)base + (idx * size)); + 494a: 94d6 add s1,s1,s5 + int cmp = compar(key, p); + 494c: 85a6 mv a1,s1 + 494e: 9b82 jalr s7 + if (cmp < 0) + 4950: 02054463 bltz a0,4978 + u = idx; + else if (cmp > 0) + 4954: c515 beqz a0,4980 + l = idx + 1; + 4956: 00140993 addi s3,s0,1 + while (l < u) + 495a: ff29e2e3 bltu s3,s2,493e + 495e: 6406 ld s0,64(sp) + 4960: 7942 ld s2,48(sp) + 4962: 79a2 ld s3,40(sp) + 4964: 7a02 ld s4,32(sp) + 4966: 6ae2 ld s5,24(sp) + 4968: 6b42 ld s6,16(sp) + 496a: 6ba2 ld s7,8(sp) + else + return (void *)p; + } + return NULL; +} + 496c: 60a6 ld ra,72(sp) + return NULL; + 496e: 4481 li s1,0 +} + 4970: 8526 mv a0,s1 + 4972: 74e2 ld s1,56(sp) + 4974: 6161 addi sp,sp,80 + 4976: 8082 ret + u = idx; + 4978: 8922 mv s2,s0 + while (l < u) + 497a: fd29e2e3 bltu s3,s2,493e + 497e: b7c5 j 495e + 4980: 6406 ld s0,64(sp) +} + 4982: 60a6 ld ra,72(sp) + 4984: 7942 ld s2,48(sp) + 4986: 79a2 ld s3,40(sp) + 4988: 7a02 ld s4,32(sp) + 498a: 6ae2 ld s5,24(sp) + 498c: 6b42 ld s6,16(sp) + 498e: 6ba2 ld s7,8(sp) + 4990: 8526 mv a0,s1 + 4992: 74e2 ld s1,56(sp) + 4994: 6161 addi sp,sp,80 + 4996: 8082 ret + +0000000000004998 : + +/* Math & Mics */ + +int abs(int j) { return (j < 0) ? -j : j; } + 4998: 41f5579b sraiw a5,a0,0x1f + 499c: 8d3d xor a0,a0,a5 + 499e: 9d1d subw a0,a0,a5 + 49a0: 8082 ret + +00000000000049a2 : +long labs(long j) { return (j < 0) ? -j : j; } + 49a2: 43f55793 srai a5,a0,0x3f + 49a6: 8d3d xor a0,a0,a5 + 49a8: 8d1d sub a0,a0,a5 + 49aa: 8082 ret + +00000000000049ac : +long long llabs(long long j) { return (j < 0) ? -j : j; } + 49ac: 43f55793 srai a5,a0,0x3f + 49b0: 8d3d xor a0,a0,a5 + 49b2: 8d1d sub a0,a0,a5 + 49b4: 8082 ret + +00000000000049b6
: + +div_t div(int numer, int denom) +{ + div_t res = {numer / denom, numer % denom}; + 49b6: 02b547bb divw a5,a0,a1 +{ + 49ba: 1141 addi sp,sp,-16 + return res; +} + 49bc: 0141 addi sp,sp,16 + div_t res = {numer / denom, numer % denom}; + 49be: 02b5653b remw a0,a0,a1 + return res; + 49c2: 1782 slli a5,a5,0x20 + 49c4: 9381 srli a5,a5,0x20 + 49c6: 1502 slli a0,a0,0x20 +} + 49c8: 8d5d or a0,a0,a5 + 49ca: 8082 ret + +00000000000049cc : +ldiv_t ldiv(long numer, long denom) +{ + 49cc: 1141 addi sp,sp,-16 + 49ce: 87aa mv a5,a0 + ldiv_t res = {numer / denom, numer % denom}; + return res; +} + 49d0: 02b54533 div a0,a0,a1 + 49d4: 0141 addi sp,sp,16 + 49d6: 02b7e5b3 rem a1,a5,a1 + 49da: 8082 ret + +00000000000049dc : +lldiv_t lldiv(long long numer, long long denom) +{ + 49dc: 1141 addi sp,sp,-16 + 49de: 87aa mv a5,a0 + lldiv_t res = {numer / denom, numer % denom}; + return res; +} + 49e0: 02b54533 div a0,a0,a1 + 49e4: 0141 addi sp,sp,16 + 49e6: 02b7e5b3 rem a1,a5,a1 + 49ea: 8082 ret + +00000000000049ec : + +static unsigned long next = 1; +int rand(void) +{ + next = next * 1103515245 + 12345; + 49ec: 00003697 auipc a3,0x3 + 49f0: d1c68693 addi a3,a3,-740 # 7708 + 49f4: 629c ld a5,0(a3) + 49f6: 41c65737 lui a4,0x41c65 + 49fa: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5d5e5> + 49fe: 02e787b3 mul a5,a5,a4 + 4a02: 670d lui a4,0x3 + 4a04: 03970713 addi a4,a4,57 # 3039 + 4a08: 97ba add a5,a5,a4 + return (unsigned int)(next / 65536) % 32768; + 4a0a: 02179513 slli a0,a5,0x21 + next = next * 1103515245 + 12345; + 4a0e: e29c sd a5,0(a3) +} + 4a10: 9145 srli a0,a0,0x31 + 4a12: 8082 ret + +0000000000004a14 : +void srand(unsigned int seed) { next = seed; } + 4a14: 1502 slli a0,a0,0x20 + 4a16: 9101 srli a0,a0,0x20 + 4a18: 00003797 auipc a5,0x3 + 4a1c: cea7b823 sd a0,-784(a5) # 7708 + 4a20: 8082 ret + +0000000000004a22 : + +/* Stub */ +int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } + 4a22: c901 beqz a0,4a32 + 4a24: 00054783 lbu a5,0(a0) + 4a28: 4501 li a0,0 + 4a2a: c789 beqz a5,4a34 + 4a2c: 00b03533 snez a0,a1 + 4a30: 8082 ret + 4a32: 4501 li a0,0 + 4a34: 8082 ret + +0000000000004a36 : +int mbtowc(wchar_t *pwc, const char *s, size_t n) +{ + 4a36: 87aa mv a5,a0 + if (!s) + 4a38: cd81 beqz a1,4a50 + return 0; + if (n == 0) + return -1; + 4a3a: 557d li a0,-1 + if (n == 0) + 4a3c: ca19 beqz a2,4a52 + if (pwc) + 4a3e: c781 beqz a5,4a46 + *pwc = (wchar_t)*s; + 4a40: 0005c703 lbu a4,0(a1) + 4a44: c398 sw a4,0(a5) + return (*s != 0); + 4a46: 0005c503 lbu a0,0(a1) + 4a4a: 00a03533 snez a0,a0 + 4a4e: 8082 ret + return 0; + 4a50: 4501 li a0,0 +} + 4a52: 8082 ret + +0000000000004a54 : +int wctomb(char *s, wchar_t wchar) +{ + if (!s) + 4a54: c509 beqz a0,4a5e + return 0; + *s = (char)wchar; + 4a56: 00b50023 sb a1,0(a0) + return 1; + 4a5a: 4505 li a0,1 + 4a5c: 8082 ret + return 0; + 4a5e: 4501 li a0,0 +} + 4a60: 8082 ret + +0000000000004a62 : +size_t mbstowcs(wchar_t *dest, const char *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4a62: 0005c703 lbu a4,0(a1) + 4a66: cb0d beqz a4,4a98 + 4a68: ca15 beqz a2,4a9c + 4a6a: 86aa mv a3,a0 + size_t i = 0; + 4a6c: 4781 li a5,0 + 4a6e: a019 j 4a74 + while (src[i] && i < n) + 4a70: 02f60263 beq a2,a5,4a94 + { + dest[i] = (wchar_t)src[i]; + i++; + 4a74: 0785 addi a5,a5,1 + dest[i] = (wchar_t)src[i]; + 4a76: c298 sw a4,0(a3) + while (src[i] && i < n) + 4a78: 00f58733 add a4,a1,a5 + 4a7c: 00074703 lbu a4,0(a4) + 4a80: 0691 addi a3,a3,4 + 4a82: f77d bnez a4,4a70 + } + if (i < n) + 4a84: 00c7f763 bgeu a5,a2,4a92 + dest[i] = 0; + 4a88: 00279713 slli a4,a5,0x2 + 4a8c: 953a add a0,a0,a4 + 4a8e: 00052023 sw zero,0(a0) + size_t i = 0; + 4a92: 863e mv a2,a5 + 4a94: 8532 mv a0,a2 + 4a96: 8082 ret + 4a98: 4781 li a5,0 + 4a9a: b7ed j 4a84 + 4a9c: 4501 li a0,0 + return i; +} + 4a9e: 8082 ret + +0000000000004aa0 : +size_t wcstombs(char *dest, const wchar_t *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4aa0: 4198 lw a4,0(a1) + 4aa2: c71d beqz a4,4ad0 + 4aa4: ca05 beqz a2,4ad4 + 4aa6: 0591 addi a1,a1,4 + size_t i = 0; + 4aa8: 4781 li a5,0 + 4aaa: a019 j 4ab0 + while (src[i] && i < n) + 4aac: 02f60063 beq a2,a5,4acc + { + dest[i] = (char)src[i]; + 4ab0: 00f506b3 add a3,a0,a5 + 4ab4: 00e68023 sb a4,0(a3) + while (src[i] && i < n) + 4ab8: 4198 lw a4,0(a1) + i++; + 4aba: 0785 addi a5,a5,1 + while (src[i] && i < n) + 4abc: 0591 addi a1,a1,4 + 4abe: f77d bnez a4,4aac + } + if (i < n) + 4ac0: 00c7f563 bgeu a5,a2,4aca + dest[i] = 0; + 4ac4: 953e add a0,a0,a5 + 4ac6: 00050023 sb zero,0(a0) + size_t i = 0; + 4aca: 863e mv a2,a5 + 4acc: 8532 mv a0,a2 + 4ace: 8082 ret + 4ad0: 4781 li a5,0 + 4ad2: b7fd j 4ac0 + 4ad4: 4501 li a0,0 + return i; + 4ad6: 8082 ret + +0000000000004ad8 : + +void *memset(void *dst, int c, size_t n) +{ + char *cdst = (char *)dst; + for (size_t i = 0; i < n; i++) + cdst[i] = (char)c; + 4ad8: 0ff5f593 zext.b a1,a1 + 4adc: 87aa mv a5,a0 + 4ade: 00a60733 add a4,a2,a0 + for (size_t i = 0; i < n; i++) + 4ae2: c611 beqz a2,4aee + cdst[i] = (char)c; + 4ae4: 00b78023 sb a1,0(a5) + for (size_t i = 0; i < n; i++) + 4ae8: 0785 addi a5,a5,1 + 4aea: fee79de3 bne a5,a4,4ae4 + return dst; +} + 4aee: 8082 ret + +0000000000004af0 : + +void *memmove(void *vdst, const void *vsrc, size_t n) +{ + char *dst = (char *)vdst; + const char *src = (const char *)vsrc; + if (dst == src) + 4af0: 02b50d63 beq a0,a1,4b2a + return vdst; + + if (src > dst) + 4af4: 00b57e63 bgeu a0,a1,4b10 + { + while (n--) + 4af8: ca0d beqz a2,4b2a + 4afa: 962a add a2,a2,a0 + char *dst = (char *)vdst; + 4afc: 87aa mv a5,a0 + *dst++ = *src++; + 4afe: 0005c703 lbu a4,0(a1) + 4b02: 0785 addi a5,a5,1 + 4b04: 0585 addi a1,a1,1 + 4b06: fee78fa3 sb a4,-1(a5) + while (n--) + 4b0a: fec79ae3 bne a5,a2,4afe + 4b0e: 8082 ret + } + else + { + dst += n; + 4b10: 00c50733 add a4,a0,a2 + src += n; + 4b14: 00c587b3 add a5,a1,a2 + while (n-- > 0) + 4b18: ca09 beqz a2,4b2a + *--dst = *--src; + 4b1a: fff7c683 lbu a3,-1(a5) + 4b1e: 17fd addi a5,a5,-1 + 4b20: 177d addi a4,a4,-1 + 4b22: 00d70023 sb a3,0(a4) + while (n-- > 0) + 4b26: fef59ae3 bne a1,a5,4b1a + } + return vdst; +} + 4b2a: 8082 ret + +0000000000004b2c : + +void *memcpy(void *vdst, const void *vsrc, size_t n) +{ + return memmove(vdst, vsrc, n); + 4b2c: b7d1 j 4af0 + +0000000000004b2e : + +int memcmp(const void *s1, const void *s2, size_t n) +{ + const unsigned char *p1 = (const unsigned char *)s1; + const unsigned char *p2 = (const unsigned char *)s2; + while (n--) + 4b2e: c205 beqz a2,4b4e + 4b30: 962a add a2,a2,a0 + 4b32: a019 j 4b38 + 4b34: 00c50d63 beq a0,a2,4b4e + { + if (*p1 != *p2) + 4b38: 00054783 lbu a5,0(a0) + 4b3c: 0005c703 lbu a4,0(a1) + return *p1 - *p2; + p1++; + 4b40: 0505 addi a0,a0,1 + p2++; + 4b42: 0585 addi a1,a1,1 + if (*p1 != *p2) + 4b44: fee788e3 beq a5,a4,4b34 + return *p1 - *p2; + 4b48: 40e7853b subw a0,a5,a4 + 4b4c: 8082 ret + } + return 0; + 4b4e: 4501 li a0,0 +} + 4b50: 8082 ret + +0000000000004b52 : + +void *memchr(const void *s, int c, size_t n) +{ + const unsigned char *p = (const unsigned char *)s; + while (n--) + 4b52: ce09 beqz a2,4b6c + { + if (*p == (unsigned char)c) + 4b54: 0ff5f593 zext.b a1,a1 + 4b58: 962a add a2,a2,a0 + 4b5a: a021 j 4b62 + return (void *)p; + p++; + 4b5c: 0505 addi a0,a0,1 + while (n--) + 4b5e: 00a60763 beq a2,a0,4b6c + if (*p == (unsigned char)c) + 4b62: 00054783 lbu a5,0(a0) + 4b66: feb79be3 bne a5,a1,4b5c + } + return NULL; +} + 4b6a: 8082 ret + return NULL; + 4b6c: 4501 li a0,0 +} + 4b6e: 8082 ret + +0000000000004b70 : +/* String Manipulation Functions */ + +size_t strlen(const char *s) +{ + const char *p = s; + while (*p) + 4b70: 00054783 lbu a5,0(a0) + 4b74: cb89 beqz a5,4b86 + const char *p = s; + 4b76: 87aa mv a5,a0 + while (*p) + 4b78: 0017c703 lbu a4,1(a5) + p++; + 4b7c: 0785 addi a5,a5,1 + while (*p) + 4b7e: ff6d bnez a4,4b78 + return (size_t)(p - s); + 4b80: 40a78533 sub a0,a5,a0 + 4b84: 8082 ret + while (*p) + 4b86: 4501 li a0,0 +} + 4b88: 8082 ret + +0000000000004b8a : + +char *strcpy(char *dst, const char *src) +{ + char *os = dst; + while ((*dst++ = *src++) != 0) + 4b8a: 87aa mv a5,a0 + 4b8c: 0005c703 lbu a4,0(a1) + 4b90: 0785 addi a5,a5,1 + 4b92: 0585 addi a1,a1,1 + 4b94: fee78fa3 sb a4,-1(a5) + 4b98: fb75 bnez a4,4b8c + ; + return os; +} + 4b9a: 8082 ret + +0000000000004b9c : +char *strncpy(char *dst, const char *src, size_t n) +{ + char *os = dst; + size_t i; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4b9c: 4781 li a5,0 + 4b9e: e619 bnez a2,4bac + 4ba0: 8082 ret + dst[i] = src[i]; + 4ba2: 00e68023 sb a4,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4ba6: 0785 addi a5,a5,1 + 4ba8: 02f60263 beq a2,a5,4bcc + 4bac: 00f58733 add a4,a1,a5 + 4bb0: 00074703 lbu a4,0(a4) + dst[i] = src[i]; + 4bb4: 00f506b3 add a3,a0,a5 + for (i = 0; i < n && src[i] != '\0'; i++) + 4bb8: f76d bnez a4,4ba2 + + for (; i < n; i++) + 4bba: 00c7f963 bgeu a5,a2,4bcc + 4bbe: 87b6 mv a5,a3 + 4bc0: 962a add a2,a2,a0 + dst[i] = '\0'; + 4bc2: 00078023 sb zero,0(a5) + for (; i < n; i++) + 4bc6: 0785 addi a5,a5,1 + 4bc8: fec79de3 bne a5,a2,4bc2 + + return os; +} + 4bcc: 8082 ret + +0000000000004bce : + +char *strcat(char *dst, const char *src) +{ + char *os = dst; + while (*dst) + 4bce: 00054783 lbu a5,0(a0) + 4bd2: cf91 beqz a5,4bee + 4bd4: 87aa mv a5,a0 + 4bd6: 0017c703 lbu a4,1(a5) + dst++; + 4bda: 0785 addi a5,a5,1 + while (*dst) + 4bdc: ff6d bnez a4,4bd6 + while ((*dst++ = *src++) != 0) + 4bde: 0005c703 lbu a4,0(a1) + 4be2: 0785 addi a5,a5,1 + 4be4: 0585 addi a1,a1,1 + 4be6: fee78fa3 sb a4,-1(a5) + 4bea: fb75 bnez a4,4bde + ; + return os; +} + 4bec: 8082 ret + while ((*dst++ = *src++) != 0) + 4bee: 0005c703 lbu a4,0(a1) + while (*dst) + 4bf2: 87aa mv a5,a0 + while ((*dst++ = *src++) != 0) + 4bf4: 0785 addi a5,a5,1 + 4bf6: fee78fa3 sb a4,-1(a5) + 4bfa: 0585 addi a1,a1,1 + 4bfc: f36d bnez a4,4bde + 4bfe: 8082 ret + +0000000000004c00 : + while (*p) + 4c00: 00054783 lbu a5,0(a0) + const char *p = s; + 4c04: 872a mv a4,a0 + while (*p) + 4c06: c789 beqz a5,4c10 + 4c08: 00174783 lbu a5,1(a4) + p++; + 4c0c: 0705 addi a4,a4,1 + while (*p) + 4c0e: ffed bnez a5,4c08 + size_t dest_len = strlen(dst); + size_t i; + + dst += dest_len; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4c10: 86ba mv a3,a4 + 4c12: 4781 li a5,0 + 4c14: 88ba mv a7,a4 + 4c16: ea01 bnez a2,4c26 + 4c18: a839 j 4c36 + dst[i] = src[i]; + 4c1a: 01068023 sb a6,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4c1e: 00188693 addi a3,a7,1 + 4c22: 00f60d63 beq a2,a5,4c3c + 4c26: 00f58833 add a6,a1,a5 + 4c2a: 00084803 lbu a6,0(a6) + 4c2e: 0785 addi a5,a5,1 + dst[i] = src[i]; + 4c30: 88b6 mv a7,a3 + for (i = 0; i < n && src[i] != '\0'; i++) + 4c32: fe0814e3 bnez a6,4c1a + + dst[i] = '\0'; + 4c36: 00088023 sb zero,0(a7) + + return os; +} + 4c3a: 8082 ret + dst[i] = '\0'; + 4c3c: 00c708b3 add a7,a4,a2 + 4c40: 00088023 sb zero,0(a7) +} + 4c44: 8082 ret + +0000000000004c46 : + +int strcmp(const char *p, const char *q) +{ + while (*p && *p == *q) + 4c46: 00054783 lbu a5,0(a0) + 4c4a: e791 bnez a5,4c56 + 4c4c: a02d j 4c76 + 4c4e: 00054783 lbu a5,0(a0) + 4c52: cf89 beqz a5,4c6c + 4c54: 85b6 mv a1,a3 + 4c56: 0005c703 lbu a4,0(a1) + { + p++; + 4c5a: 0505 addi a0,a0,1 + q++; + 4c5c: 00158693 addi a3,a1,1 + while (*p && *p == *q) + 4c60: fef707e3 beq a4,a5,4c4e + } + return (int)((unsigned char)*p - (unsigned char)*q); + 4c64: 0007851b sext.w a0,a5 +} + 4c68: 9d19 subw a0,a0,a4 + 4c6a: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4c6c: 0015c703 lbu a4,1(a1) + 4c70: 4501 li a0,0 +} + 4c72: 9d19 subw a0,a0,a4 + 4c74: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4c76: 0005c703 lbu a4,0(a1) + 4c7a: 4501 li a0,0 + 4c7c: b7f5 j 4c68 + +0000000000004c7e : + +int strncmp(const char *s1, const char *s2, size_t n) +{ + if (n == 0) + 4c7e: ca0d beqz a2,4cb0 + return 0; + + while (n-- > 0 && *s1 && *s1 == *s2) + 4c80: 00054783 lbu a5,0(a0) + 4c84: 167d addi a2,a2,-1 + 4c86: 00c506b3 add a3,a0,a2 + 4c8a: eb89 bnez a5,4c9c + 4c8c: a80d j 4cbe + { + if (n == 0 || *s1 == '\0') + 4c8e: 00d50d63 beq a0,a3,4ca8 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c92: 00154783 lbu a5,1(a0) + break; + s1++; + 4c96: 0505 addi a0,a0,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c98: cf91 beqz a5,4cb4 + 4c9a: 85b2 mv a1,a2 + 4c9c: 0005c703 lbu a4,0(a1) + s2++; + 4ca0: 00158613 addi a2,a1,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4ca4: fef705e3 beq a4,a5,4c8e + } + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4ca8: 0007851b sext.w a0,a5 + 4cac: 9d19 subw a0,a0,a4 + 4cae: 8082 ret + return 0; + 4cb0: 4501 li a0,0 +} + 4cb2: 8082 ret + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4cb4: 0015c703 lbu a4,1(a1) + 4cb8: 4501 li a0,0 + 4cba: 9d19 subw a0,a0,a4 + 4cbc: 8082 ret + 4cbe: 0005c703 lbu a4,0(a1) + 4cc2: 4501 li a0,0 + 4cc4: b7e5 j 4cac + +0000000000004cc6 : + +char *strchr(const char *s, int c) +{ + while (*s != (char)c) + 4cc6: 0ff5f593 zext.b a1,a1 + 4cca: a019 j 4cd0 + { + if (!*s++) + 4ccc: 0505 addi a0,a0,1 + 4cce: c791 beqz a5,4cda + while (*s != (char)c) + 4cd0: 00054783 lbu a5,0(a0) + 4cd4: feb79ce3 bne a5,a1,4ccc + 4cd8: 8082 ret + return NULL; + 4cda: 4501 li a0,0 + } + return (char *)s; +} + 4cdc: 8082 ret + +0000000000004cde : + +char *strrchr(const char *s, int c) +{ + 4cde: 87aa mv a5,a0 + const char *last = NULL; + do + { + if (*s == (char)c) + 4ce0: 0ff5f593 zext.b a1,a1 + const char *last = NULL; + 4ce4: 4501 li a0,0 + if (*s == (char)c) + 4ce6: 0007c703 lbu a4,0(a5) + 4cea: 00e59363 bne a1,a4,4cf0 + last = s; + 4cee: 853e mv a0,a5 + } while (*s++); + 4cf0: 0785 addi a5,a5,1 + 4cf2: fb75 bnez a4,4ce6 + + return (char *)last; +} + 4cf4: 8082 ret + +0000000000004cf6 : + while (*p) + 4cf6: 0005c883 lbu a7,0(a1) + 4cfa: 04088a63 beqz a7,4d4e + const char *p = s; + 4cfe: 87ae mv a5,a1 + while (*p) + 4d00: 0017c703 lbu a4,1(a5) + p++; + 4d04: 0785 addi a5,a5,1 + while (*p) + 4d06: ff6d bnez a4,4d00 + return (size_t)(p - s); + 4d08: 40b78833 sub a6,a5,a1 + + +char *strstr(const char *haystack, const char *needle) +{ + size_t n_len = strlen(needle); + if (n_len == 0) + 4d0c: 04b78163 beq a5,a1,4d4e + return (char *)haystack; + + for (; *haystack; haystack++) + 4d10: 00054783 lbu a5,0(a0) + 4d14: cf85 beqz a5,4d4c + 4d16: 187d addi a6,a6,-1 + 4d18: 982a add a6,a6,a0 + { + if (*haystack != *needle) + 4d1a: 02f89463 bne a7,a5,4d42 + while (n-- > 0 && *s1 && *s1 == *s2) + 4d1e: 00054703 lbu a4,0(a0) + 4d22: 8646 mv a2,a7 + 4d24: 86ae mv a3,a1 + 4d26: 87aa mv a5,a0 + 4d28: eb11 bnez a4,4d3c + 4d2a: a821 j 4d42 + if (n == 0 || *s1 == '\0') + 4d2c: 03078163 beq a5,a6,4d4e + while (n-- > 0 && *s1 && *s1 == *s2) + 4d30: 0017c703 lbu a4,1(a5) + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4d34: 0006c603 lbu a2,0(a3) + s1++; + 4d38: 0785 addi a5,a5,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4d3a: cb19 beqz a4,4d50 + s2++; + 4d3c: 0685 addi a3,a3,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4d3e: fee607e3 beq a2,a4,4d2c + for (; *haystack; haystack++) + 4d42: 00154783 lbu a5,1(a0) + 4d46: 0805 addi a6,a6,1 + 4d48: 0505 addi a0,a0,1 + 4d4a: fbe1 bnez a5,4d1a + continue; + + if (strncmp(haystack, needle, n_len) == 0) + return (char *)haystack; + } + return NULL; + 4d4c: 4501 li a0,0 +} + 4d4e: 8082 ret + if (strncmp(haystack, needle, n_len) == 0) + 4d50: de7d beqz a2,4d4e + for (; *haystack; haystack++) + 4d52: 00154783 lbu a5,1(a0) + 4d56: 0805 addi a6,a6,1 + 4d58: 0505 addi a0,a0,1 + 4d5a: f3e1 bnez a5,4d1a + 4d5c: bfc5 j 4d4c + +0000000000004d5e : + +char *strdup(const char *s) +{ + 4d5e: 1101 addi sp,sp,-32 + 4d60: e426 sd s1,8(sp) + 4d62: ec06 sd ra,24(sp) + 4d64: e822 sd s0,16(sp) + while (*p) + 4d66: 00054783 lbu a5,0(a0) +{ + 4d6a: 84aa mv s1,a0 + while (*p) + 4d6c: cb8d beqz a5,4d9e + const char *p = s; + 4d6e: 862a mv a2,a0 + while (*p) + 4d70: 00164783 lbu a5,1(a2) + p++; + 4d74: 0605 addi a2,a2,1 + while (*p) + 4d76: ffed bnez a5,4d70 + return (size_t)(p - s); + 4d78: 8e05 sub a2,a2,s1 + size_t len = strlen(s) + 1; + 4d7a: 00160413 addi s0,a2,1 + char *new_str = (char *)malloc(len); + 4d7e: 8522 mv a0,s0 + 4d80: f4eff0ef jal 44ce + if (new_str == NULL) + 4d84: c901 beqz a0,4d94 + return memmove(vdst, vsrc, n); + 4d86: 8622 mv a2,s0 + return NULL; + + return (char *)memcpy(new_str, s, len); +} + 4d88: 6442 ld s0,16(sp) + 4d8a: 60e2 ld ra,24(sp) + return memmove(vdst, vsrc, n); + 4d8c: 85a6 mv a1,s1 +} + 4d8e: 64a2 ld s1,8(sp) + 4d90: 6105 addi sp,sp,32 + return memmove(vdst, vsrc, n); + 4d92: bbb9 j 4af0 +} + 4d94: 60e2 ld ra,24(sp) + 4d96: 6442 ld s0,16(sp) + 4d98: 64a2 ld s1,8(sp) + 4d9a: 6105 addi sp,sp,32 + 4d9c: 8082 ret + while (*p) + 4d9e: 4405 li s0,1 + 4da0: bff9 j 4d7e + +0000000000004da2 : + 4da2: 0005c783 lbu a5,0(a1) + +size_t strlcpy(char *dst, const char *src, size_t size) +{ + 4da6: 1101 addi sp,sp,-32 + 4da8: ec06 sd ra,24(sp) + 4daa: e822 sd s0,16(sp) + 4dac: 86b2 mv a3,a2 + while (*p) + 4dae: cf8d beqz a5,4de8 + const char *p = s; + 4db0: 87ae mv a5,a1 + while (*p) + 4db2: 0017c703 lbu a4,1(a5) + p++; + 4db6: 0785 addi a5,a5,1 + while (*p) + 4db8: ff6d bnez a4,4db2 + return (size_t)(p - s); + 4dba: 40b78433 sub s0,a5,a1 + size_t src_len = strlen(src); + + if (size > 0) + 4dbe: c285 beqz a3,4dde + 4dc0: e426 sd s1,8(sp) + { + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4dc2: fff68613 addi a2,a3,-1 + memcpy(dst, src, copy_len); + dst[copy_len] = '\0'; + 4dc6: 00c504b3 add s1,a0,a2 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4dca: 00d47563 bgeu s0,a3,4dd4 + dst[copy_len] = '\0'; + 4dce: 008504b3 add s1,a0,s0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4dd2: 8622 mv a2,s0 + return memmove(vdst, vsrc, n); + 4dd4: d1dff0ef jal 4af0 + dst[copy_len] = '\0'; + 4dd8: 00048023 sb zero,0(s1) + } + + return src_len; + 4ddc: 64a2 ld s1,8(sp) +} + 4dde: 60e2 ld ra,24(sp) + 4de0: 8522 mv a0,s0 + 4de2: 6442 ld s0,16(sp) + 4de4: 6105 addi sp,sp,32 + 4de6: 8082 ret + if (size > 0) + 4de8: e219 bnez a2,4dee + return (size_t)(p - s); + 4dea: 4401 li s0,0 + 4dec: bfcd j 4dde + 4dee: e426 sd s1,8(sp) + 4df0: 4401 li s0,0 + if (size > 0) + 4df2: 84aa mv s1,a0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4df4: 4601 li a2,0 + 4df6: bff9 j 4dd4 + +0000000000004df8 : + while (*p) + 4df8: 0005c783 lbu a5,0(a1) + +size_t strlcat(char *dst, const char *src, size_t size) +{ + 4dfc: 7179 addi sp,sp,-48 + 4dfe: e84a sd s2,16(sp) + 4e00: f406 sd ra,40(sp) + 4e02: f022 sd s0,32(sp) + 4e04: ec26 sd s1,24(sp) + 4e06: 892a mv s2,a0 + while (*p) + 4e08: c7b5 beqz a5,4e74 + const char *p = s; + 4e0a: 87ae mv a5,a1 + while (*p) + 4e0c: 0017c703 lbu a4,1(a5) + p++; + 4e10: 0785 addi a5,a5,1 + while (*p) + 4e12: ff6d bnez a4,4e0c + return (size_t)(p - s); + 4e14: 40b784b3 sub s1,a5,a1 + size_t dst_len = 0; + 4e18: 4401 li s0,0 + size_t src_len = strlen(src); + + while (dst_len < size && dst[dst_len] != '\0') + 4e1a: e609 bnez a2,4e24 + 4e1c: a0a1 j 4e64 + dst_len++; + 4e1e: 0405 addi s0,s0,1 + while (dst_len < size && dst[dst_len] != '\0') + 4e20: 04860263 beq a2,s0,4e64 + 4e24: 00890533 add a0,s2,s0 + 4e28: 00054783 lbu a5,0(a0) + 4e2c: fbed bnez a5,4e1e + + if (dst_len == size) + 4e2e: 02860b63 beq a2,s0,4e64 + 4e32: e44e sd s3,8(sp) + return size + src_len; + + size_t space_left = size - dst_len; + 4e34: 408607b3 sub a5,a2,s0 + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4e38: 89a6 mv s3,s1 + 4e3a: 02f4f263 bgeu s1,a5,4e5e + + memcpy(dst + dst_len, src, copy_len); + dst[dst_len + copy_len] = '\0'; + 4e3e: 994e add s2,s2,s3 + 4e40: 9922 add s2,s2,s0 + return memmove(vdst, vsrc, n); + 4e42: 864e mv a2,s3 + 4e44: cadff0ef jal 4af0 + dst[dst_len + copy_len] = '\0'; + 4e48: 00090023 sb zero,0(s2) # 1000 <_vscanf_core.constprop.0+0x688> + + return dst_len + src_len; + 4e4c: 00940533 add a0,s0,s1 +} + 4e50: 70a2 ld ra,40(sp) + 4e52: 7402 ld s0,32(sp) + return dst_len + src_len; + 4e54: 69a2 ld s3,8(sp) +} + 4e56: 64e2 ld s1,24(sp) + 4e58: 6942 ld s2,16(sp) + 4e5a: 6145 addi sp,sp,48 + 4e5c: 8082 ret + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4e5e: fff78993 addi s3,a5,-1 + 4e62: bff1 j 4e3e +} + 4e64: 70a2 ld ra,40(sp) + 4e66: 7402 ld s0,32(sp) + 4e68: 6942 ld s2,16(sp) + return size + src_len; + 4e6a: 00960533 add a0,a2,s1 +} + 4e6e: 64e2 ld s1,24(sp) + 4e70: 6145 addi sp,sp,48 + 4e72: 8082 ret + while (*p) + 4e74: 4481 li s1,0 + 4e76: b74d j 4e18 + +0000000000004e78 : +size_t strspn(const char *s, const char *accept) +{ + const char *p = s; + const char *a; + + while (*p) + 4e78: 00054683 lbu a3,0(a0) + 4e7c: c695 beqz a3,4ea8 + { + for (a = accept; *a; a++) + 4e7e: 0005c803 lbu a6,0(a1) + 4e82: 862a mv a2,a0 + 4e84: 00080f63 beqz a6,4ea2 + 4e88: 87ae mv a5,a1 + 4e8a: 8742 mv a4,a6 + 4e8c: a021 j 4e94 + 4e8e: 0007c703 lbu a4,0(a5) + 4e92: cb01 beqz a4,4ea2 + 4e94: 0785 addi a5,a5,1 + { + if (*p == *a) + 4e96: fee69ce3 bne a3,a4,4e8e + while (*p) + 4e9a: 00164683 lbu a3,1(a2) + break; + } + if (*a == '\0') + return (size_t)(p - s); + p++; + 4e9e: 0605 addi a2,a2,1 + while (*p) + 4ea0: f6e5 bnez a3,4e88 + } + return (size_t)(p - s); + 4ea2: 40a60533 sub a0,a2,a0 + 4ea6: 8082 ret + while (*p) + 4ea8: 4501 li a0,0 +} + 4eaa: 8082 ret + +0000000000004eac : +size_t strcspn(const char *s, const char *reject) +{ + const char *p = s; + const char *r; + + while (*p) + 4eac: 00054683 lbu a3,0(a0) + 4eb0: ce85 beqz a3,4ee8 + { + for (r = reject; *r; r++) + 4eb2: 0005c803 lbu a6,0(a1) + const char *p = s; + 4eb6: 862a mv a2,a0 + for (r = reject; *r; r++) + 4eb8: 02080363 beqz a6,4ede + 4ebc: 87ae mv a5,a1 + 4ebe: 8742 mv a4,a6 + 4ec0: a021 j 4ec8 + 4ec2: 0007c703 lbu a4,0(a5) + 4ec6: c719 beqz a4,4ed4 + 4ec8: 0785 addi a5,a5,1 + { + if (*p == *r) + 4eca: fed71ce3 bne a4,a3,4ec2 + return (size_t)(p - s); + } + p++; + } + return (size_t)(p - s); + 4ece: 40a60533 sub a0,a2,a0 + 4ed2: 8082 ret + while (*p) + 4ed4: 00164683 lbu a3,1(a2) + p++; + 4ed8: 0605 addi a2,a2,1 + while (*p) + 4eda: f2ed bnez a3,4ebc + 4edc: bfcd j 4ece + 4ede: 00164683 lbu a3,1(a2) + p++; + 4ee2: 0605 addi a2,a2,1 + while (*p) + 4ee4: feed bnez a3,4ede + 4ee6: b7e5 j 4ece + 4ee8: 4501 li a0,0 +} + 4eea: 8082 ret + +0000000000004eec : + +char *strpbrk(const char *s, const char *accept) +{ + const char *a; + while (*s) + 4eec: 00054683 lbu a3,0(a0) + 4ef0: c295 beqz a3,4f14 + { + for (a = accept; *a; a++) + 4ef2: 0005c603 lbu a2,0(a1) + 4ef6: c20d beqz a2,4f18 + 4ef8: 87ae mv a5,a1 + 4efa: 8732 mv a4,a2 + 4efc: a021 j 4f04 + 4efe: 0007c703 lbu a4,0(a5) + 4f02: c709 beqz a4,4f0c + 4f04: 0785 addi a5,a5,1 + { + if (*s == *a) + 4f06: fed71ce3 bne a4,a3,4efe + return (char *)s; + } + s++; + } + return NULL; +} + 4f0a: 8082 ret + while (*s) + 4f0c: 00154683 lbu a3,1(a0) + s++; + 4f10: 0505 addi a0,a0,1 + while (*s) + 4f12: f2fd bnez a3,4ef8 + return NULL; + 4f14: 4501 li a0,0 +} + 4f16: 8082 ret + while (*s) + 4f18: 00154683 lbu a3,1(a0) + s++; + 4f1c: 0505 addi a0,a0,1 + while (*s) + 4f1e: feed bnez a3,4f18 + 4f20: bfd5 j 4f14 + +0000000000004f22 : +char *strtok(char *str, const char *delim) +{ + static char *olds; + char *token; + + if (str == NULL) + 4f22: 00003897 auipc a7,0x3 + 4f26: 94e88893 addi a7,a7,-1714 # 7870 + 4f2a: cd25 beqz a0,4fa2 + while (*p) + 4f2c: 00054683 lbu a3,0(a0) + 4f30: c295 beqz a3,4f54 + for (a = accept; *a; a++) + 4f32: 0005c803 lbu a6,0(a1) + 4f36: 02080463 beqz a6,4f5e + 4f3a: 87ae mv a5,a1 + 4f3c: 8742 mv a4,a6 + 4f3e: a021 j 4f46 + 4f40: 0007c703 lbu a4,0(a5) + 4f44: cf09 beqz a4,4f5e + 4f46: 0785 addi a5,a5,1 + if (*p == *a) + 4f48: fee69ce3 bne a3,a4,4f40 + while (*p) + 4f4c: 00154683 lbu a3,1(a0) + p++; + 4f50: 0505 addi a0,a0,1 + while (*p) + 4f52: f6e5 bnez a3,4f3a + 4f54: 87aa mv a5,a0 + str = olds; + + str += strspn(str, delim); + if (*str == '\0') + { + olds = str; + 4f56: 00f8b023 sd a5,0(a7) + return NULL; + 4f5a: 4501 li a0,0 + *str = '\0'; + olds = str + 1; + } + + return token; +} + 4f5c: 8082 ret + if (*str == '\0') + 4f5e: 00054603 lbu a2,0(a0) + 4f62: da6d beqz a2,4f54 + 4f64: 86aa mv a3,a0 + for (a = accept; *a; a++) + 4f66: 04080163 beqz a6,4fa8 + 4f6a: 8742 mv a4,a6 + 4f6c: 87ae mv a5,a1 + 4f6e: a021 j 4f76 + 4f70: 0007c703 lbu a4,0(a5) + 4f74: cb19 beqz a4,4f8a + 4f76: 0785 addi a5,a5,1 + if (*s == *a) + 4f78: fee61ce3 bne a2,a4,4f70 + olds = str + 1; + 4f7c: 00168793 addi a5,a3,1 + *str = '\0'; + 4f80: 00068023 sb zero,0(a3) + olds = str; + 4f84: 00f8b023 sd a5,0(a7) +} + 4f88: 8082 ret + while (*s) + 4f8a: 0016c603 lbu a2,1(a3) + s++; + 4f8e: 0685 addi a3,a3,1 + while (*s) + 4f90: fe69 bnez a2,4f6a + 4f92: 87aa mv a5,a0 + while (*s != (char)c) + 4f94: 0017c703 lbu a4,1(a5) + if (!*s++) + 4f98: 0785 addi a5,a5,1 + while (*s != (char)c) + 4f9a: ff6d bnez a4,4f94 + olds = str; + 4f9c: 00f8b023 sd a5,0(a7) +} + 4fa0: 8082 ret + str = olds; + 4fa2: 0008b503 ld a0,0(a7) + 4fa6: b759 j 4f2c + while (*s) + 4fa8: 0016c603 lbu a2,1(a3) + s++; + 4fac: 0685 addi a3,a3,1 + while (*s) + 4fae: fe6d bnez a2,4fa8 + 4fb0: b7cd j 4f92 + +0000000000004fb2 : + +char *strerror(int errnum) +{ + 4fb2: 87aa mv a5,a0 + + switch (errnum) + 4fb4: cd09 beqz a0,4fce + 4fb6: 4731 li a4,12 + 4fb8: 00000517 auipc a0,0x0 + 4fbc: 1b050513 addi a0,a0,432 # 5168 <_GLOBAL__sub_I__ZSt3cin+0x178> + 4fc0: 00e78b63 beq a5,a4,4fd6 + return "Success"; + // case EINVAL: return "Invalid argument"; + case ENOMEM: return "Out of memory"; + + default: + return "Unknown error"; + 4fc4: 00000517 auipc a0,0x0 + 4fc8: 1b450513 addi a0,a0,436 # 5178 <_GLOBAL__sub_I__ZSt3cin+0x188> + 4fcc: 8082 ret + return "Success"; + 4fce: 00000517 auipc a0,0x0 + 4fd2: 19250513 addi a0,a0,402 # 5160 <_GLOBAL__sub_I__ZSt3cin+0x170> + } + 4fd6: 8082 ret + +0000000000004fd8 <_Znwm>: +#include "ulib/stdlib.h" + +void *operator new(unsigned long n) +{ + return malloc(n); + 4fd8: cf6ff06f j 44ce + +0000000000004fdc <_Znam>: +} + +void *operator new[](unsigned long n) + 4fdc: cf2ff06f j 44ce + +0000000000004fe0 <_ZdlPv>: + return malloc(n); +} + +void operator delete(void *p) +{ + free(p); + 4fe0: c78ff06f j 4458 + +0000000000004fe4 <_ZdaPv>: +} + +void operator delete[](void *p) + 4fe4: c74ff06f j 4458 + +0000000000004fe8 <_ZdlPvm>: + free(p); +} + +void operator delete(void *p, unsigned long) +{ + free(p); + 4fe8: c70ff06f j 4458 + +0000000000004fec <_ZdaPvm>: +} + +void operator delete[](void *p, unsigned long) + 4fec: c6cff06f j 4458 + +0000000000004ff0 <_GLOBAL__sub_I__ZSt3cin>: +#include "ulib/iostream" + +namespace std +{ + istream cin(stdin); + 4ff0: 00002797 auipc a5,0x2 + 4ff4: 7307b783 ld a5,1840(a5) # 7720 <_GLOBAL_OFFSET_TABLE_+0x10> + 4ff8: 6390 ld a2,0(a5) + ostream cout(stdout); + 4ffa: 00002797 auipc a5,0x2 + 4ffe: 71e7b783 ld a5,1822(a5) # 7718 <_GLOBAL_OFFSET_TABLE_+0x8> + 5002: 6394 ld a3,0(a5) + ostream cerr(stderr); + 5004: 00002797 auipc a5,0x2 + 5008: 7247b783 ld a5,1828(a5) # 7728 <_GLOBAL_OFFSET_TABLE_+0x18> + 500c: 6398 ld a4,0(a5) + + class istream{ + private: + FILE* _stream; + public: + istream(FILE *f) : _stream(f) {} + 500e: 00003797 auipc a5,0x3 + 5012: 86a78793 addi a5,a5,-1942 # 7878 <_ZSt3cin> + 5016: e390 sd a2,0(a5) + ostream(FILE* f) : _stream(f) {} + 5018: e794 sd a3,8(a5) + 501a: eb98 sd a4,16(a5) +} // namespace std + 501c: 8082 ret diff --git a/build/user/init.o b/build/user/init.o index 2a88dfa..04c258f 100644 Binary files a/build/user/init.o and b/build/user/init.o differ diff --git a/build/user/init.sym b/build/user/init.sym new file mode 100644 index 0000000..4403477 --- /dev/null +++ b/build/user/init.sym @@ -0,0 +1,189 @@ +0000000000000000 .text +0000000000005020 .rodata +0000000000005890 .eh_frame +0000000000006990 .data +0000000000007710 .got +0000000000007730 .got.plt +0000000000007740 .init_array +0000000000007748 .bss +0000000000000000 .debug_info +0000000000000000 .debug_abbrev +0000000000000000 .debug_loclists +0000000000000000 .debug_aranges +0000000000000000 .debug_rnglists +0000000000000000 .debug_line +0000000000000000 .debug_str +0000000000000000 .debug_line_str +0000000000000000 .comment +0000000000000000 .riscv.attributes +0000000000000000 init.cc +0000000000000000 entry.o +0000000000000000 usys.o +0000000000000000 stdio.c +0000000000000190 stbsp__clamp_callback +00000000000001de stbsp__count_clamp_callback +00000000000001ea stbsp__real_to_str +00000000000008be _in_char.part.0 +0000000000000904 _skip_space +0000000000000978 _vscanf_core.constprop.0 +00000000000011e8 _out_char +000000000000305c _vprintf_core.constprop.0.isra.0 +0000000000006990 stbsp__digitpair +0000000000006a5c stbsp__period +0000000000006a5d stbsp__comma +0000000000006a60 hexu.1 +0000000000006a78 hex.0 +0000000000006a90 _stderr +0000000000006eb0 _stdout +00000000000072d0 _stdin +00000000000053f8 stbsp__bot +00000000000054b0 stbsp__negbot +0000000000005560 stbsp__negboterr +0000000000005610 stbsp__negtop +0000000000005678 stbsp__negtoperr +00000000000056e0 stbsp__top +0000000000005748 stbsp__toperr +00000000000057b0 stbsp__powten +0000000000000000 stdlib.c +000000000000426a strtoull.part.0 +0000000000007708 next +0000000000007754 __atexit_func_count +0000000000007758 __atexit_funcs +0000000000007858 freep +0000000000007860 base +0000000000000000 string.c +0000000000007870 olds.0 +0000000000000000 cxx.cc +0000000000000000 iostream.cpp +0000000000004ff0 _GLOBAL__sub_I__ZSt3cin +0000000000007710 _GLOBAL_OFFSET_TABLE_ +0000000000004b8a strcpy +00000000000038fa printf +00000000000076f0 stdout +0000000000005854 STDOUT_FD +0000000000004240 ungetc +0000000000004fb2 strerror +0000000000004af0 memmove +00000000000038a4 snprintf +0000000000000118 mknod +0000000000004742 atol +0000000000004450 getenv +0000000000004fd8 _Znwm +0000000000007750 errno +00000000000049a2 labs +000000000000491c bsearch +0000000000000150 getpid +000000000000483e qsort +0000000000003b38 fscanf +0000000000003daa fgets +0000000000007888 _ZSt4cerr +0000000000004b2c memcpy +0000000000004454 system +0000000000004220 feof +00000000000044ce malloc +0000000000000160 sleep +000000000000385a vsnprintf +000000000000465e strtoll +0000000000004708 strtoul +0000000000004a54 wctomb +0000000000004aa0 wcstombs +0000000000003ac2 fflush +0000000000004a62 mbstowcs +0000000000000180 lseek +0000000000004fe0 _ZdlPv +0000000000004444 abort +000000000000472c strtol +00000000000000e0 pipe +0000000000004a22 mblen +0000000000004cde strrchr +0000000000004594 calloc +000000000000474e strtod +0000000000000178 disk_test +00000000000000f0 write +0000000000004828 atof +0000000000000128 fstat +0000000000003b06 fprintf +0000000000000100 kill +0000000000004bce strcat +0000000000000140 chdir +0000000000004128 fseek +0000000000002ff8 stbsp_vsprintf +0000000000000108 exec +0000000000004b52 memchr +00000000000076f8 stdin +00000000000000d8 wait +0000000000002f12 stbsp_vsnprintf +00000000000000be _start +000000000000422a ferror +0000000000004cf6 strstr +00000000000049ec rand +00000000000000e8 read +0000000000004da2 strlcpy +0000000000004c7e strncmp +00000000000012bc stbsp_set_separators +0000000000004fe8 _ZdlPvm +0000000000004b9c strncpy +0000000000000120 unlink +00000000000045dc realloc +0000000000004f22 strtok +0000000000004b2e memcmp +00000000000000d0 fork +0000000000003934 sscanf +0000000000004c00 strncat +0000000000003e86 fread +0000000000000158 sbrk +0000000000004d5e strdup +0000000000000168 uptime +000000000000463a strtoull +0000000000002ee8 stbsp_sprintf +0000000000003996 fopen +0000000000004ad8 memset +0000000000000000 main +000000000000419c ftell +0000000000004a14 srand +0000000000004df8 strlcat +0000000000004234 clearerr +0000000000004fe4 _ZdaPv +0000000000003a5a fclose +0000000000000170 putc +0000000000004c46 strcmp +0000000000000188 shutdown +0000000000000148 dup +0000000000003d14 fgetc +0000000000003006 sprintf +000000000000482c strtof +00000000000043ea atexit +0000000000004eac strcspn +0000000000002fd8 stbsp_snprintf +0000000000007878 _ZSt3cin +0000000000003964 scanf +0000000000007700 stderr +00000000000049cc ldiv +0000000000003b6a fputc +0000000000004fdc _Znam +00000000000049dc lldiv +0000000000003fa0 fwrite +00000000000041c8 rewind +0000000000007880 _ZSt4cout +0000000000000130 link +000000000000440e exit +00000000000000c8 sys_exit +00000000000049ac llabs +000000000000472e atoi +0000000000005850 STDERR_FD +0000000000004e78 strspn +0000000000004b70 strlen +00000000000012ce stbsp_vsprintfcb +0000000000000110 open +0000000000005858 STDIN_FD +0000000000004748 atoll +00000000000049b6 div +0000000000004998 abs +0000000000004cc6 strchr +0000000000003c2e fputs +0000000000004fec _ZdaPvm +0000000000000138 mkdir +00000000000000f8 close +0000000000004a36 mbtowc +0000000000004eec strpbrk +0000000000004458 free diff --git a/build/user/initcode b/build/user/initcode index 48fcfff..f2b655a 100755 Binary files a/build/user/initcode and b/build/user/initcode differ diff --git a/build/user/initcode.asm b/build/user/initcode.asm index 711a142..2434bbb 100644 --- a/build/user/initcode.asm +++ b/build/user/initcode.asm @@ -5,5719 +5,5718 @@ build/user/initcode.out: file format elf64-littleriscv Disassembly of section .text: 0000000000000000
: -#include "ulib/stdlib.h" #include "ulib/string.h" #include "user/user.h" +#include "drivers/uart_color.h" int main() { 0: 715d addi sp,sp,-80 char *argv[] = {(char *)"sh", 0}; 2: 00005797 auipc a5,0x5 - 6: 00e78793 addi a5,a5,14 # 5010 <_GLOBAL__sub_I__ZSt3cin+0x30> + 6: 01e78793 addi a5,a5,30 # 5020 <_GLOBAL__sub_I__ZSt3cin+0x30> - printf("[Init] Starting Lume OS Shell...\n"); + printf(ANSI_BLUE"\n[Init] Starting Lume OS Shell..."ANSI_RESET); a: 00005517 auipc a0,0x5 - e: 00e50513 addi a0,a0,14 # 5018 <_GLOBAL__sub_I__ZSt3cin+0x38> + e: 01e50513 addi a0,a0,30 # 5028 <_GLOBAL__sub_I__ZSt3cin+0x38> +{ + 12: e486 sd ra,72(sp) + 14: fc26 sd s1,56(sp) + 16: f84a sd s2,48(sp) + 18: f44e sd s3,40(sp) + 1a: f052 sd s4,32(sp) + char *argv[] = {(char *)"sh", 0}; + 1c: e83e sd a5,16(sp) { - 12: fc26 sd s1,56(sp) - 14: f84a sd s2,48(sp) - 16: f44e sd s3,40(sp) - 18: f052 sd s4,32(sp) - 1a: e486 sd ra,72(sp) - 1c: e0a2 sd s0,64(sp) + 1e: e0a2 sd s0,64(sp) char *argv[] = {(char *)"sh", 0}; - 1e: e83e sd a5,16(sp) 20: ec02 sd zero,24(sp) - printf("[Init] Starting Lume OS Shell...\n"); - 22: 0024 addi s1,sp,8 - 24: 0c7030ef jal 38ea + printf(ANSI_BLUE"\n[Init] Starting Lume OS Shell..."ANSI_RESET); + 22: 0d9030ef jal 38fa + printf("\n"); + 26: 00005517 auipc a0,0x5 + 2a: 03250513 addi a0,a0,50 # 5058 <_GLOBAL__sub_I__ZSt3cin+0x68> + 2e: 0cd030ef jal 38fa + 32: 0024 addi s1,sp,8 int pid = fork(); // printf("fork suceess, pid=%i\n", pid); if (pid < 0) { printf("[Init] fork failed!\n"); - 28: 00005a17 auipc s4,0x5 - 2c: 018a0a13 addi s4,s4,24 # 5040 <_GLOBAL__sub_I__ZSt3cin+0x60> + 34: 00005a17 auipc s4,0x5 + 38: 02ca0a13 addi s4,s4,44 # 5060 <_GLOBAL__sub_I__ZSt3cin+0x70> printf("Shell Exit"); break; } if (wpid < 0) { printf("[Init] wait error or no child\n"); - 30: 00005997 auipc s3,0x5 - 34: 05098993 addi s3,s3,80 # 5080 <_GLOBAL__sub_I__ZSt3cin+0xa0> + 3c: 00005997 auipc s3,0x5 + 40: 06498993 addi s3,s3,100 # 50a0 <_GLOBAL__sub_I__ZSt3cin+0xb0> printf("Shell Exit"); - 38: 00005917 auipc s2,0x5 - 3c: 03890913 addi s2,s2,56 # 5070 <_GLOBAL__sub_I__ZSt3cin+0x90> + 44: 00005917 auipc s2,0x5 + 48: 04c90913 addi s2,s2,76 # 5090 <_GLOBAL__sub_I__ZSt3cin+0xa0> int pid = fork(); - 40: 088000ef jal c8 - 44: 842a mv s0,a0 + 4c: 084000ef jal d0 + 50: 842a mv s0,a0 if (pid < 0) - 46: 02054363 bltz a0,6c + 52: 02054363 bltz a0,78 if (pid == 0) - 4a: e501 bnez a0,52 - 4c: a81d j 82 + 56: e501 bnez a0,5e + 58: a81d j 8e if (wpid < 0) - 4e: 02054663 bltz a0,7a + 5a: 02054663 bltz a0,86 wpid = wait((uint64)&status); - 52: 8526 mv a0,s1 - 54: 07c000ef jal d0 + 5e: 8526 mv a0,s1 + 60: 078000ef jal d8 if (wpid == pid) - 58: fea41be3 bne s0,a0,4e + 64: fea41be3 bne s0,a0,5a printf("Shell Exit"); - 5c: 854a mv a0,s2 - 5e: 08d030ef jal 38ea + 68: 854a mv a0,s2 + 6a: 091030ef jal 38fa int pid = fork(); - 62: 066000ef jal c8 - 66: 842a mv s0,a0 + 6e: 062000ef jal d0 + 72: 842a mv s0,a0 if (pid < 0) - 68: fe0551e3 bgez a0,4a + 74: fe0551e3 bgez a0,56 printf("[Init] fork failed!\n"); - 6c: 8552 mv a0,s4 - 6e: 07d030ef jal 38ea + 78: 8552 mv a0,s4 + 7a: 081030ef jal 38fa exit(1); - 72: 4505 li a0,1 - 74: 38a040ef jal 43fe + 7e: 4505 li a0,1 + 80: 38e040ef jal 440e if (pid == 0) - 78: bfe9 j 52 + 84: bfe9 j 5e printf("[Init] wait error or no child\n"); - 7a: 854e mv a0,s3 - 7c: 06f030ef jal 38ea + 86: 854e mv a0,s3 + 88: 073030ef jal 38fa break; } } } } - 80: b7c1 j 40 + 8c: b7c1 j 4c char sh_path[] = "/sh"; - 82: 006877b7 lui a5,0x687 - 86: 32f78793 addi a5,a5,815 # 68732f <_ZSt4cerr+0x67fac7> + 8e: 006877b7 lui a5,0x687 + 92: 32f78793 addi a5,a5,815 # 68732f <_ZSt4cerr+0x67faa7> exec(sh_path, argv); - 8a: 080c addi a1,sp,16 - 8c: 8526 mv a0,s1 + 96: 080c addi a1,sp,16 + 98: 8526 mv a0,s1 char sh_path[] = "/sh"; - 8e: c43e sw a5,8(sp) + 9a: c43e sw a5,8(sp) exec(sh_path, argv); - 90: 070000ef jal 100 + 9c: 06c000ef jal 108 printf("[Init] exec sh failed\n"); - 94: 00005517 auipc a0,0x5 - 98: fc450513 addi a0,a0,-60 # 5058 <_GLOBAL__sub_I__ZSt3cin+0x78> - 9c: 04f030ef jal 38ea + a0: 00005517 auipc a0,0x5 + a4: fd850513 addi a0,a0,-40 # 5078 <_GLOBAL__sub_I__ZSt3cin+0x88> + a8: 053030ef jal 38fa return 0; - a0: 60a6 ld ra,72(sp) - a2: 6406 ld s0,64(sp) - a4: 74e2 ld s1,56(sp) - a6: 7942 ld s2,48(sp) - a8: 79a2 ld s3,40(sp) - aa: 7a02 ld s4,32(sp) - ac: 4501 li a0,0 - ae: 6161 addi sp,sp,80 - b0: 8082 ret - -00000000000000b2 <_start>: -.section .text + ac: 60a6 ld ra,72(sp) + ae: 6406 ld s0,64(sp) + b0: 74e2 ld s1,56(sp) + b2: 7942 ld s2,48(sp) + b4: 79a2 ld s3,40(sp) + b6: 7a02 ld s4,32(sp) + b8: 4501 li a0,0 + ba: 6161 addi sp,sp,80 + bc: 8082 ret + +00000000000000be <_start>: .global _start _start: - li a0, 0 - b2: 4501 li a0,0 - li a1, 0 - b4: 4581 li a1,0 + call main - b6: f4bff0ef jal 0
+ be: f43ff0ef jal 0
call exit - ba: 344040ef jal 43fe + c2: 34c040ef jal 440e - be: a001 j be <_start+0xc> + c6: a001 j c6 <_start+0x8> -00000000000000c0 : +00000000000000c8 : name: \ li a7, SYS_ ## sysname; \ ecall; \ ret SYSCALL_NAME(sys_exit, exit) - c0: 488d li a7,3 - c2: 00000073 ecall - c6: 8082 ret - -00000000000000c8 : - -SYSCALL(fork) - c8: 4889 li a7,2 + c8: 488d li a7,3 ca: 00000073 ecall ce: 8082 ret -00000000000000d0 : -SYSCALL(wait) - d0: 4891 li a7,4 +00000000000000d0 : + +SYSCALL(fork) + d0: 4889 li a7,2 d2: 00000073 ecall d6: 8082 ret -00000000000000d8 : -SYSCALL(pipe) - d8: 4895 li a7,5 +00000000000000d8 : +SYSCALL(wait) + d8: 4891 li a7,4 da: 00000073 ecall de: 8082 ret -00000000000000e0 : -SYSCALL(read) - e0: 4899 li a7,6 +00000000000000e0 : +SYSCALL(pipe) + e0: 4895 li a7,5 e2: 00000073 ecall e6: 8082 ret -00000000000000e8 : -SYSCALL(write) - e8: 48c5 li a7,17 +00000000000000e8 : +SYSCALL(read) + e8: 4899 li a7,6 ea: 00000073 ecall ee: 8082 ret -00000000000000f0 : -SYSCALL(close) - f0: 48d9 li a7,22 +00000000000000f0 : +SYSCALL(write) + f0: 48c5 li a7,17 f2: 00000073 ecall f6: 8082 ret -00000000000000f8 : -SYSCALL(kill) - f8: 489d li a7,7 +00000000000000f8 : +SYSCALL(close) + f8: 48d9 li a7,22 fa: 00000073 ecall fe: 8082 ret -0000000000000100 : -SYSCALL(exec) - 100: 48a1 li a7,8 +0000000000000100 : +SYSCALL(kill) + 100: 489d li a7,7 102: 00000073 ecall 106: 8082 ret -0000000000000108 : -SYSCALL(open) - 108: 48c1 li a7,16 +0000000000000108 : +SYSCALL(exec) + 108: 48a1 li a7,8 10a: 00000073 ecall 10e: 8082 ret -0000000000000110 : -SYSCALL(mknod) - 110: 48c9 li a7,18 +0000000000000110 : +SYSCALL(open) + 110: 48c1 li a7,16 112: 00000073 ecall 116: 8082 ret -0000000000000118 : -SYSCALL(unlink) - 118: 48cd li a7,19 +0000000000000118 : +SYSCALL(mknod) + 118: 48c9 li a7,18 11a: 00000073 ecall 11e: 8082 ret -0000000000000120 : -SYSCALL(fstat) - 120: 48a5 li a7,9 +0000000000000120 : +SYSCALL(unlink) + 120: 48cd li a7,19 122: 00000073 ecall 126: 8082 ret -0000000000000128 : -SYSCALL(link) - 128: 48d1 li a7,20 +0000000000000128 : +SYSCALL(fstat) + 128: 48a5 li a7,9 12a: 00000073 ecall 12e: 8082 ret -0000000000000130 : -SYSCALL(mkdir) - 130: 48d5 li a7,21 +0000000000000130 : +SYSCALL(link) + 130: 48d1 li a7,20 132: 00000073 ecall 136: 8082 ret -0000000000000138 : -SYSCALL(chdir) - 138: 48a9 li a7,10 +0000000000000138 : +SYSCALL(mkdir) + 138: 48d5 li a7,21 13a: 00000073 ecall 13e: 8082 ret -0000000000000140 : -SYSCALL(dup) - 140: 48ad li a7,11 +0000000000000140 : +SYSCALL(chdir) + 140: 48a9 li a7,10 142: 00000073 ecall 146: 8082 ret -0000000000000148 : -SYSCALL(getpid) - 148: 48b1 li a7,12 +0000000000000148 : +SYSCALL(dup) + 148: 48ad li a7,11 14a: 00000073 ecall 14e: 8082 ret -0000000000000150 : -SYSCALL(sbrk) - 150: 48b5 li a7,13 +0000000000000150 : +SYSCALL(getpid) + 150: 48b1 li a7,12 152: 00000073 ecall 156: 8082 ret -0000000000000158 : -SYSCALL(sleep) - 158: 48b9 li a7,14 +0000000000000158 : +SYSCALL(sbrk) + 158: 48b5 li a7,13 15a: 00000073 ecall 15e: 8082 ret -0000000000000160 : -SYSCALL(uptime) - 160: 48bd li a7,15 +0000000000000160 : +SYSCALL(sleep) + 160: 48b9 li a7,14 162: 00000073 ecall 166: 8082 ret -0000000000000168 : -SYSCALL(putc) - 168: 4885 li a7,1 +0000000000000168 : +SYSCALL(uptime) + 168: 48bd li a7,15 16a: 00000073 ecall 16e: 8082 ret -0000000000000170 : -SYSCALL(disk_test) - 170: 48dd li a7,23 +0000000000000170 : +SYSCALL(putc) + 170: 4885 li a7,1 172: 00000073 ecall 176: 8082 ret -0000000000000178 : - 178: 48e1 li a7,24 +0000000000000178 : +SYSCALL(disk_test) + 178: 48dd li a7,23 17a: 00000073 ecall 17e: 8082 ret -0000000000000180 : - 180: 45dc lw a5,12(a1) - 182: 4598 lw a4,8(a1) - 184: 9fb1 addw a5,a5,a2 - 186: c5dc sw a5,12(a1) - 188: 0007069b sext.w a3,a4 - 18c: 00e65463 bge a2,a4,194 - 190: 0006069b sext.w a3,a2 - 194: c685 beqz a3,1bc - 196: 619c ld a5,0(a1) - 198: 00a78e63 beq a5,a0,1b4 - 19c: 00d50633 add a2,a0,a3 - 1a0: 00054703 lbu a4,0(a0) - 1a4: 0505 addi a0,a0,1 - 1a6: 0785 addi a5,a5,1 - 1a8: fee78fa3 sb a4,-1(a5) - 1ac: fec56ae3 bltu a0,a2,1a0 - 1b0: 6188 ld a0,0(a1) - 1b2: 4598 lw a4,8(a1) - 1b4: 9f15 subw a4,a4,a3 - 1b6: 9536 add a0,a0,a3 - 1b8: e188 sd a0,0(a1) - 1ba: c598 sw a4,8(a1) - 1bc: 1ff00793 li a5,511 - 1c0: 00e7d463 bge a5,a4,1c8 - 1c4: 6188 ld a0,0(a1) - 1c6: 8082 ret - 1c8: 01058513 addi a0,a1,16 - 1cc: 8082 ret - -00000000000001ce : - 1ce: 45dc lw a5,12(a1) - 1d0: 01058513 addi a0,a1,16 - 1d4: 9fb1 addw a5,a5,a2 - 1d6: c5dc sw a5,12(a1) - 1d8: 8082 ret - -00000000000001da : - 1da: e20508d3 fmv.x.d a7,fa0 - 1de: 82aa mv t0,a0 - 1e0: 4348d813 srai a6,a7,0x34 - 1e4: 8ec6 mv t4,a7 - 1e6: 7ff87813 andi a6,a6,2047 - 1ea: 8346 mv t1,a7 - 1ec: 03f8d513 srli a0,a7,0x3f - 1f0: 0008d663 bgez a7,1fc - 1f4: 22a517d3 fneg.d fa5,fa0 - 1f8: e20788d3 fmv.x.d a7,fa5 - 1fc: 7ff00e13 li t3,2047 - 200: 35c80663 beq a6,t3,54c - 204: 1101 addi sp,sp,-32 - 206: 14080363 beqz a6,34c - 20a: c018081b addiw a6,a6,-1023 - 20e: ec22 sd s0,24(sp) - 210: 02081313 slli t1,a6,0x20 - 214: 66034d63 bltz t1,88e - 218: 4d100313 li t1,1233 - 21c: 0303033b mulw t1,t1,a6 - 220: 4849 li a6,18 - 222: 40c3531b sraiw t1,t1,0xc - 226: 0013039b addiw t2,t1,1 - 22a: 4078083b subw a6,a6,t2 - 22e: 4359 li t1,22 - 230: 17036163 bltu t1,a6,392 - 234: 00005317 auipc t1,0x5 - 238: 1a430313 addi t1,t1,420 # 53d8 - 23c: 080e slli a6,a6,0x3 - 23e: 981a add a6,a6,t1 - 240: 00083e03 ld t3,0(a6) - 244: 00083607 fld fa2,0(a6) - 248: f20887d3 fmv.d.x fa5,a7 - 24c: f8000837 lui a6,0xf8000 - 250: 01187333 and t1,a6,a7 - 254: 01c87833 and a6,a6,t3 - 258: 12f676d3 fmul.d fa3,fa2,fa5 - 25c: f20807d3 fmv.d.x fa5,a6 - 260: f2030753 fmv.d.x fa4,t1 - 264: f20305d3 fmv.d.x fa1,t1 - 268: 0af67653 fsub.d fa2,fa2,fa5 - 26c: f20887d3 fmv.d.x fa5,a7 - 270: 0ae7f753 fsub.d fa4,fa5,fa4 - 274: f20807d3 fmv.d.x fa5,a6 - 278: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 - 27c: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 - 280: f20805d3 fmv.d.x fa1,a6 - 284: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 - 288: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 - 28c: 02d777d3 fadd.d fa5,fa4,fa3 - 290: 3782e837 lui a6,0x3782e - 294: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37826267> - 298: 0832 slli a6,a6,0xc - 29a: 9d980813 addi a6,a6,-1575 - 29e: 084a slli a6,a6,0x12 - 2a0: 187d addi a6,a6,-1 - 2a2: c22798d3 fcvt.l.d a7,fa5,rtz - 2a6: 0ad7f6d3 fsub.d fa3,fa5,fa3 - 2aa: 00070e1b sext.w t3,a4 - 2ae: d228f653 fcvt.d.l fa2,a7 - 2b2: 0ac7f5d3 fsub.d fa1,fa5,fa2 - 2b6: 0ad77753 fsub.d fa4,fa4,fa3 - 2ba: 0af5f6d3 fsub.d fa3,fa1,fa5 - 2be: 0ad5f553 fsub.d fa0,fa1,fa3 - 2c2: 02d67653 fadd.d fa2,fa2,fa3 - 2c6: 0aa7f7d3 fsub.d fa5,fa5,fa0 - 2ca: 0ac7f7d3 fsub.d fa5,fa5,fa2 - 2ce: 02b7f7d3 fadd.d fa5,fa5,fa1 - 2d2: 02e7f7d3 fadd.d fa5,fa5,fa4 - 2d6: c2279fd3 fcvt.l.d t6,fa5,rtz - 2da: 9fc6 add t6,t6,a7 - 2dc: 19f87063 bgeu a6,t6,45c - 2e0: 2385 addiw t2,t2,1 - 2e2: 300e4363 bltz t3,5e8 - 2e6: 00e3833b addw t1,t2,a4 - 2ea: 475d li a4,23 - 2ec: 30677663 bgeu a4,t1,5f8 - 2f0: 577d li a4,-1 - 2f2: 9301 srli a4,a4,0x20 - 2f4: 43f75863 bge a4,t6,724 - 2f8: 07d00313 li t1,125 - 2fc: 877e mv a4,t6 - 2fe: 4e01 li t3,0 - 300: 3e800813 li a6,1000 - 304: 130e slli t1,t1,0x23 - 306: a039 j 314 - 308: 030747b3 div a5,a4,a6 - 30c: 4e05 li t3,1 - 30e: 40674c63 blt a4,t1,726 - 312: 873e mv a4,a5 - 314: 030768b3 rem a7,a4,a6 - 318: fe0888e3 beqz a7,308 - 31c: 400e0163 beqz t3,71e - 320: 8fbe mv t6,a5 - 322: 05f5e7b7 lui a5,0x5f5e - 326: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56897> - 32a: 04060413 addi s0,a2,64 - 32e: 03860613 addi a2,a2,56 - 332: 15f7c863 blt a5,t6,482 - 336: 000f871b sext.w a4,t6 - 33a: 20070463 beqz a4,542 - 33e: 4f01 li t5,0 - 340: 4f81 li t6,0 - 342: 00006e97 auipc t4,0x6 - 346: 62ee8e93 addi t4,t4,1582 # 6970 - 34a: aaa9 j 4a4 - 34c: 0306 slli t1,t1,0x1 - 34e: 3e030e63 beqz t1,74a - 352: 4305 li t1,1 - 354: ec22 sd s0,24(sp) - 356: 00ce9e13 slli t3,t4,0xc - 35a: 134e slli t1,t1,0x33 - 35c: 520e4063 bltz t3,87c - 360: 40135313 srai t1,t1,0x1 - 364: 01d37e33 and t3,t1,t4 - 368: 8f42 mv t5,a6 - 36a: 387d addiw a6,a6,-1 - 36c: fe0e0ae3 beqz t3,360 - 370: 26900313 li t1,617 - 374: c00f081b addiw a6,t5,-1024 - 378: 0268083b mulw a6,a6,t1 - 37c: 41f8531b sraiw t1,a6,0x1f - 380: 0153531b srliw t1,t1,0x15 - 384: 0103033b addw t1,t1,a6 - 388: 40b3539b sraiw t2,t1,0xb - 38c: 4849 li a6,18 - 38e: 4078083b subw a6,a6,t2 - 392: 41f8531b sraiw t1,a6,0x1f - 396: 00684eb3 xor t4,a6,t1 - 39a: 406e8f3b subw t5,t4,t1 - 39e: 2c900313 li t1,713 - 3a2: 03e3033b mulw t1,t1,t5 - 3a6: 4e35 li t3,13 - 3a8: 8efa mv t4,t5 - 3aa: 40e35f9b sraiw t6,t1,0xe - 3ae: 837e mv t1,t6 - 3b0: 23fe4363 blt t3,t6,5d6 - 3b4: 5e25 li t3,-23 - 3b6: 026e0e3b mulw t3,t3,t1 - 3ba: 01de0ebb addw t4,t3,t4 - 3be: 22084f63 bltz a6,5fc - 3c2: f2000753 fmv.d.x fa4,zero - 3c6: 00005e17 auipc t3,0x5 - 3ca: 012e0e13 addi t3,t3,18 # 53d8 - 3ce: 380e9e63 bnez t4,76a - 3d2: f20887d3 fmv.d.x fa5,a7 - 3d6: fff30f1b addiw t5,t1,-1 - 3da: 0f0e slli t5,t5,0x3 - 3dc: 02f777d3 fadd.d fa5,fa4,fa5 - 3e0: 030e slli t1,t1,0x3 - 3e2: 9f72 add t5,t5,t3 - 3e4: 9e1a add t3,t3,t1 - 3e6: 2e0e3e03 ld t3,736(t3) - 3ea: 2e8f3587 fld fa1,744(t5) - 3ee: f8000837 lui a6,0xf8000 - 3f2: e2078ed3 fmv.x.d t4,fa5 - 3f6: 12b7f6d3 fmul.d fa3,fa5,fa1 - 3fa: f2088653 fmv.d.x fa2,a7 - 3fe: 01d87333 and t1,a6,t4 - 402: 01c87833 and a6,a6,t3 - 406: f20807d3 fmv.d.x fa5,a6 - 40a: f2030053 fmv.d.x ft0,t1 - 40e: 0af5f553 fsub.d fa0,fa1,fa5 - 412: f20e87d3 fmv.d.x fa5,t4 - 416: 0ac7f0d3 fsub.d ft1,fa5,fa2 - 41a: f20807d3 fmv.d.x fa5,a6 - 41e: f2030653 fmv.d.x fa2,t1 - 422: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 - 426: f20e87d3 fmv.d.x fa5,t4 - 42a: 0a177753 fsub.d fa4,fa4,ft1 - 42e: f20300d3 fmv.d.x ft1,t1 - 432: 0a07f7d3 fsub.d fa5,fa5,ft0 - 436: 350f3007 fld ft0,848(t5) - 43a: 62157643 fmadd.d fa2,fa0,ft1,fa2 - 43e: 12b77753 fmul.d fa4,fa4,fa1 - 442: f20805d3 fmv.d.x fa1,a6 - 446: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 - 44a: f20e85d3 fmv.d.x fa1,t4 - 44e: 7205f743 fmadd.d fa4,fa1,ft0,fa4 - 452: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 - 456: 02e7f753 fadd.d fa4,fa5,fa4 - 45a: bd0d j 28c - 45c: 00e3833b addw t1,t2,a4 - 460: 2a0e4663 bltz t3,70c - 464: 475d li a4,23 - 466: 10677663 bgeu a4,t1,572 - 46a: e80f93e3 bnez t6,2f0 - 46e: 05f5e7b7 lui a5,0x5f5e - 472: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56897> - 476: 04060413 addi s0,a2,64 - 47a: 03860613 addi a2,a2,56 - 47e: ebf7dce3 bge a5,t6,336 - 482: 4f01 li t5,0 - 484: 00006e97 auipc t4,0x6 - 488: 4ece8e93 addi t4,t4,1260 # 6970 - 48c: 05f5e7b7 lui a5,0x5f5e - 490: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f56898> - 494: 02ffe833 rem a6,t6,a5 - 498: 02ffcfb3 div t6,t6,a5 - 49c: 0008071b sext.w a4,a6 - 4a0: 0a080463 beqz a6,548 - 4a4: 8822 mv a6,s0 - 4a6: 06400893 li a7,100 - 4aa: 06300e13 li t3,99 - 4ae: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff8796> - 4b0: 0007031b sext.w t1,a4 - 4b4: 031777bb remuw a5,a4,a7 - 4b8: 2785 addiw a5,a5,1 - 4ba: 0017979b slliw a5,a5,0x1 - 4be: 1782 slli a5,a5,0x20 - 4c0: 9381 srli a5,a5,0x20 - 4c2: 97f6 add a5,a5,t4 - 4c4: 0007d783 lhu a5,0(a5) - 4c8: 0317573b divuw a4,a4,a7 - 4cc: 00f81023 sh a5,0(a6) - 4d0: fc6e6fe3 bltu t3,t1,4ae - 4d4: 008f0f3b addw t5,t5,s0 - 4d8: 410f0f3b subw t5,t5,a6 - 4dc: 020f8f63 beqz t6,51a - 4e0: 87c2 mv a5,a6 - 4e2: 03000713 li a4,48 - 4e6: 04c80c63 beq a6,a2,53e - 4ea: 17fd addi a5,a5,-1 - 4ec: 00e78023 sb a4,0(a5) - 4f0: fec79de3 bne a5,a2,4ea - 4f4: 408807b3 sub a5,a6,s0 - 4f8: 00ff07bb addw a5,t5,a5 - 4fc: 1461 addi s0,s0,-8 - 4fe: 00878f1b addiw t5,a5,8 - 502: 05f5e7b7 lui a5,0x5f5e - 506: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56897> - 50a: ff840613 addi a2,s0,-8 - 50e: f7f7cfe3 blt a5,t6,48c - 512: 000f871b sext.w a4,t6 - 516: 4f81 li t6,0 - 518: b771 j 4a4 - 51a: 020f0563 beqz t5,544 - 51e: 00084703 lbu a4,0(a6) - 522: 03000793 li a5,48 - 526: 22f70f63 beq a4,a5,764 - 52a: 2f01 sext.w t5,t5 - 52c: 0076a023 sw t2,0(a3) - 530: 6462 ld s0,24(sp) - 532: 0102b023 sd a6,0(t0) - 536: 01e5a023 sw t5,0(a1) - 53a: 6105 addi sp,sp,32 - 53c: 8082 ret - 53e: 8442 mv s0,a6 - 540: b7c9 j 502 - 542: 8822 mv a6,s0 - 544: 4f01 li t5,0 - 546: b7dd j 52c - 548: 8822 mv a6,s0 - 54a: bf59 j 4e0 - 54c: 0eb2 slli t4,t4,0xc - 54e: 00005797 auipc a5,0x5 - 552: b5a78793 addi a5,a5,-1190 # 50a8 <_GLOBAL__sub_I__ZSt3cin+0xc8> - 556: 000e8663 beqz t4,562 - 55a: 00005797 auipc a5,0x5 - 55e: b4678793 addi a5,a5,-1210 # 50a0 <_GLOBAL__sub_I__ZSt3cin+0xc0> - 562: 00f2b023 sd a5,0(t0) - 566: 679d lui a5,0x7 - 568: c29c sw a5,0(a3) - 56a: 4f0d li t5,3 - 56c: 01e5a023 sw t5,0(a1) - 570: 8082 ret - 572: 3b9ad737 lui a4,0x3b9ad - 576: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a5197> - 57a: 07f76f63 bltu a4,t6,5f8 - 57e: 4805 li a6,1 - 580: 02081713 slli a4,a6,0x20 - 584: 01d75893 srli a7,a4,0x1d - 588: 00005717 auipc a4,0x5 - 58c: 20870713 addi a4,a4,520 # 5790 - 590: 9746 add a4,a4,a7 - 592: 4e51 li t3,20 - 594: a021 j 59c - 596: 2805 addiw a6,a6,1 - 598: edc809e3 beq a6,t3,46a - 59c: 00073883 ld a7,0(a4) - 5a0: 0721 addi a4,a4,8 - 5a2: ff1ffae3 bgeu t6,a7,596 - 5a6: ed0372e3 bgeu t1,a6,46a - 5aa: 4068083b subw a6,a6,t1 - 5ae: 475d li a4,23 - 5b0: eb076de3 bltu a4,a6,46a - 5b4: 080e slli a6,a6,0x3 - 5b6: 00005717 auipc a4,0x5 - 5ba: e2270713 addi a4,a4,-478 # 53d8 - 5be: 9742 add a4,a4,a6 - 5c0: 3b873803 ld a6,952(a4) - 5c4: 00185713 srli a4,a6,0x1 - 5c8: 977e add a4,a4,t6 - 5ca: 01176363 bltu a4,a7,5d0 - 5ce: 2385 addiw t2,t2,1 - 5d0: 03075fb3 divu t6,a4,a6 - 5d4: bd59 j 46a - 5d6: 4335 li t1,13 - 5d8: 5e25 li t3,-23 - 5da: 026e0e3b mulw t3,t3,t1 - 5de: 01de0ebb addw t4,t3,t4 - 5e2: de0850e3 bgez a6,3c2 - 5e6: a819 j 5fc - 5e8: 02571313 slli t1,a4,0x25 - 5ec: 02535313 srli t1,t1,0x25 - 5f0: 0305 addi t1,t1,1 - 5f2: 475d li a4,23 - 5f4: ce676ee3 bltu a4,t1,2f0 - 5f8: 4829 li a6,10 - 5fa: b759 j 580 - 5fc: 260e8663 beqz t4,868 - 600: 00231e13 slli t3,t1,0x2 - 604: 41c30e33 sub t3,t1,t3 - 608: 0e0e slli t3,t3,0x3 - 60a: 9e1a add t3,t3,t1 - 60c: fffe881b addiw a6,t4,-1 - 610: 9e7a add t3,t3,t5 - 612: 00005e97 auipc t4,0x5 - 616: dc6e8e93 addi t4,t4,-570 # 53d8 - 61a: 0e0e slli t3,t3,0x3 - 61c: 080e slli a6,a6,0x3 - 61e: 9876 add a6,a6,t4 - 620: 9ef2 add t4,t4,t3 - 622: 0b883607 fld fa2,184(a6) - 626: f20887d3 fmv.d.x fa5,a7 - 62a: 0b0ebf03 ld t5,176(t4) - 62e: f8000e37 lui t3,0xf8000 - 632: 011e7eb3 and t4,t3,a7 - 636: 12f676d3 fmul.d fa3,fa2,fa5 - 63a: 01ee7e33 and t3,t3,t5 - 63e: f20e07d3 fmv.d.x fa5,t3 - 642: f20e0753 fmv.d.x fa4,t3 - 646: f20e8553 fmv.d.x fa0,t4 - 64a: 0af67653 fsub.d fa2,fa2,fa5 - 64e: f20e87d3 fmv.d.x fa5,t4 - 652: f20e85d3 fmv.d.x fa1,t4 - 656: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 - 65a: f2088753 fmv.d.x fa4,a7 - 65e: 0ab775d3 fsub.d fa1,fa4,fa1 - 662: 16883707 fld fa4,360(a6) - 666: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 - 66a: f20e0553 fmv.d.x fa0,t3 - 66e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 - 672: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 - 676: f20887d3 fmv.d.x fa5,a7 - 67a: 5af77743 fmadd.d fa4,fa4,fa5,fa1 - 67e: c00f87e3 beqz t6,28c - 682: 02d777d3 fadd.d fa5,fa4,fa3 - 686: fff3089b addiw a7,t1,-1 - 68a: 00005817 auipc a6,0x5 - 68e: d4e80813 addi a6,a6,-690 # 53d8 - 692: 030e slli t1,t1,0x3 - 694: 088e slli a7,a7,0x3 - 696: 98c2 add a7,a7,a6 - 698: 981a add a6,a6,t1 - 69a: e2078e53 fmv.x.d t3,fa5 - 69e: 21083e83 ld t4,528(a6) - 6a2: f8000837 lui a6,0xf8000 - 6a6: 2188b507 fld fa0,536(a7) - 6aa: 01c87333 and t1,a6,t3 - 6ae: 01d87833 and a6,a6,t4 - 6b2: f2080653 fmv.d.x fa2,a6 - 6b6: 12f577d3 fmul.d fa5,fa0,fa5 - 6ba: 2808b587 fld fa1,640(a7) - 6be: 0ac57053 fsub.d ft0,fa0,fa2 - 6c2: f20e0653 fmv.d.x fa2,t3 - 6c6: 0ad67153 fsub.d ft2,fa2,fa3 - 6ca: f20806d3 fmv.d.x fa3,a6 - 6ce: f2030653 fmv.d.x fa2,t1 - 6d2: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 - 6d6: f20e06d3 fmv.d.x fa3,t3 - 6da: 0ac6f653 fsub.d fa2,fa3,fa2 - 6de: 22f786d3 fmv.d fa3,fa5 - 6e2: 0a2777d3 fsub.d fa5,fa4,ft2 - 6e6: f2030753 fmv.d.x fa4,t1 - 6ea: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 - 6ee: 12a7f7d3 fmul.d fa5,fa5,fa0 - 6f2: f2080553 fmv.d.x fa0,a6 - 6f6: 72a67743 fmadd.d fa4,fa2,fa0,fa4 - 6fa: f20e0553 fmv.d.x fa0,t3 - 6fe: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 - 702: 72067643 fmadd.d fa2,fa2,ft0,fa4 - 706: 02f67753 fadd.d fa4,fa2,fa5 - 70a: b649 j 28c - 70c: 02571313 slli t1,a4,0x25 - 710: 02535313 srli t1,t1,0x25 - 714: 0305 addi t1,t1,1 - 716: 475d li a4,23 - 718: d46769e3 bltu a4,t1,46a - 71c: bd99 j 572 - 71e: 87fe mv a5,t6 - 720: 8fbe mv t6,a5 - 722: b101 j 322 - 724: 87fe mv a5,t6 - 726: 3e800713 li a4,1000 - 72a: 02e7f73b remuw a4,a5,a4 - 72e: 2781 sext.w a5,a5 - 730: eb01 bnez a4,740 - 732: 3e800813 li a6,1000 - 736: 0307d7bb divuw a5,a5,a6 - 73a: 0307f73b remuw a4,a5,a6 - 73e: df65 beqz a4,736 - 740: 02079f93 slli t6,a5,0x20 - 744: 020fdf93 srli t6,t6,0x20 - 748: b31d j 46e - 74a: 4785 li a5,1 - 74c: c29c sw a5,0(a3) - 74e: 00c2b023 sd a2,0(t0) - 752: 03000793 li a5,48 - 756: 00f60023 sb a5,0(a2) - 75a: 4f05 li t5,1 - 75c: 01e5a023 sw t5,0(a1) - 760: 6105 addi sp,sp,32 - 762: 8082 ret - 764: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff8799> - 766: 3f7d addiw t5,t5,-1 - 768: b3d1 j 52c - 76a: e826 sd s1,16(sp) - 76c: e44a sd s2,8(sp) - 76e: 4859 li a6,22 - 770: 8976 mv s2,t4 - 772: 11d84363 blt a6,t4,878 - 776: 0009049b sext.w s1,s2 - 77a: 00005e17 auipc t3,0x5 - 77e: c5ee0e13 addi t3,t3,-930 # 53d8 - 782: 00349813 slli a6,s1,0x3 - 786: 9872 add a6,a6,t3 - 788: 00083687 fld fa3,0(a6) - 78c: 00083803 ld a6,0(a6) - 790: f20887d3 fmv.d.x fa5,a7 - 794: f8000fb7 lui t6,0xf8000 - 798: 010ff833 and a6,t6,a6 - 79c: 12f6f553 fmul.d fa0,fa3,fa5 - 7a0: f20807d3 fmv.d.x fa5,a6 - 7a4: 011ff433 and s0,t6,a7 - 7a8: f2040753 fmv.d.x fa4,s0 - 7ac: 0af6f6d3 fsub.d fa3,fa3,fa5 - 7b0: f20887d3 fmv.d.x fa5,a7 - 7b4: f2080653 fmv.d.x fa2,a6 - 7b8: 412e8ebb subw t4,t4,s2 - 7bc: 0ae7f753 fsub.d fa4,fa5,fa4 - 7c0: f20407d3 fmv.d.x fa5,s0 - 7c4: e20508d3 fmv.x.d a7,fa0 - 7c8: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 - 7cc: f2040653 fmv.d.x fa2,s0 - 7d0: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 - 7d4: f2080653 fmv.d.x fa2,a6 - 7d8: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 - 7dc: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 - 7e0: 080e8963 beqz t4,872 - 7e4: 02e577d3 fadd.d fa5,fa0,fa4 - 7e8: 0e8e slli t4,t4,0x3 - 7ea: 01de0833 add a6,t3,t4 - 7ee: 00083587 fld fa1,0(a6) - 7f2: 00231893 slli a7,t1,0x2 - 7f6: 411308b3 sub a7,t1,a7 - 7fa: 00389813 slli a6,a7,0x3 - 7fe: e2078453 fmv.x.d s0,fa5 - 802: 12f5f7d3 fmul.d fa5,fa1,fa5 - 806: 981a add a6,a6,t1 - 808: 987a add a6,a6,t5 - 80a: 40980833 sub a6,a6,s1 - 80e: 080e slli a6,a6,0x3 - 810: 9872 add a6,a6,t3 - 812: 00083e83 ld t4,0(a6) - 816: 008ff833 and a6,t6,s0 - 81a: e20788d3 fmv.x.d a7,fa5 - 81e: f20806d3 fmv.d.x fa3,a6 - 822: f20407d3 fmv.d.x fa5,s0 - 826: 01dfffb3 and t6,t6,t4 - 82a: f20880d3 fmv.d.x ft1,a7 - 82e: 0ad7f653 fsub.d fa2,fa5,fa3 - 832: f20f87d3 fmv.d.x fa5,t6 - 836: 64c2 ld s1,16(sp) - 838: 6922 ld s2,8(sp) - 83a: 0af5f053 fsub.d ft0,fa1,fa5 - 83e: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 - 842: f20407d3 fmv.d.x fa5,s0 - 846: 0aa7f7d3 fsub.d fa5,fa5,fa0 - 84a: f2080553 fmv.d.x fa0,a6 - 84e: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 - 852: 0af77753 fsub.d fa4,fa4,fa5 - 856: f20f87d3 fmv.d.x fa5,t6 - 85a: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 - 85e: 7a067643 fmadd.d fa2,fa2,ft0,fa5 - 862: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 - 866: b6b5 j 3d2 - 868: f20886d3 fmv.d.x fa3,a7 - 86c: f2000753 fmv.d.x fa4,zero - 870: b539 j 67e - 872: 64c2 ld s1,16(sp) - 874: 6922 ld s2,8(sp) - 876: beb1 j 3d2 - 878: 4959 li s2,22 - 87a: bdf5 j 776 - 87c: e826 sd s1,16(sp) - 87e: e44a sd s2,8(sp) - 880: ecc00393 li t2,-308 - 884: 4eed li t4,27 - 886: 4335 li t1,13 - 888: 14600f13 li t5,326 - 88c: b5cd j 76e - 88e: 26900313 li t1,617 - 892: 0303083b mulw a6,t1,a6 - 896: 41f8531b sraiw t1,a6,0x1f - 89a: 0153531b srliw t1,t1,0x15 - 89e: 0103033b addw t1,t1,a6 - 8a2: 40b3539b sraiw t2,t1,0xb - 8a6: 4849 li a6,18 - 8a8: 4078083b subw a6,a6,t2 - 8ac: b249 j 22e - -00000000000008ae <_in_char.part.0>: +0000000000000180 : +SYSCALL(lseek) + 180: 48e1 li a7,24 + 182: 00000073 ecall + 186: 8082 ret + +0000000000000188 : + 188: 48e5 li a7,25 + 18a: 00000073 ecall + 18e: 8082 ret + +0000000000000190 : + 190: 45dc lw a5,12(a1) + 192: 4598 lw a4,8(a1) + 194: 9fb1 addw a5,a5,a2 + 196: c5dc sw a5,12(a1) + 198: 0007069b sext.w a3,a4 + 19c: 00e65463 bge a2,a4,1a4 + 1a0: 0006069b sext.w a3,a2 + 1a4: c685 beqz a3,1cc + 1a6: 619c ld a5,0(a1) + 1a8: 00a78e63 beq a5,a0,1c4 + 1ac: 00d50633 add a2,a0,a3 + 1b0: 00054703 lbu a4,0(a0) + 1b4: 0505 addi a0,a0,1 + 1b6: 0785 addi a5,a5,1 + 1b8: fee78fa3 sb a4,-1(a5) + 1bc: fec56ae3 bltu a0,a2,1b0 + 1c0: 6188 ld a0,0(a1) + 1c2: 4598 lw a4,8(a1) + 1c4: 9f15 subw a4,a4,a3 + 1c6: 9536 add a0,a0,a3 + 1c8: e188 sd a0,0(a1) + 1ca: c598 sw a4,8(a1) + 1cc: 1ff00793 li a5,511 + 1d0: 00e7d463 bge a5,a4,1d8 + 1d4: 6188 ld a0,0(a1) + 1d6: 8082 ret + 1d8: 01058513 addi a0,a1,16 + 1dc: 8082 ret + +00000000000001de : + 1de: 45dc lw a5,12(a1) + 1e0: 01058513 addi a0,a1,16 + 1e4: 9fb1 addw a5,a5,a2 + 1e6: c5dc sw a5,12(a1) + 1e8: 8082 ret + +00000000000001ea : + 1ea: e20508d3 fmv.x.d a7,fa0 + 1ee: 82aa mv t0,a0 + 1f0: 4348d813 srai a6,a7,0x34 + 1f4: 8ec6 mv t4,a7 + 1f6: 7ff87813 andi a6,a6,2047 + 1fa: 8346 mv t1,a7 + 1fc: 03f8d513 srli a0,a7,0x3f + 200: 0008d663 bgez a7,20c + 204: 22a517d3 fneg.d fa5,fa0 + 208: e20788d3 fmv.x.d a7,fa5 + 20c: 7ff00e13 li t3,2047 + 210: 35c80663 beq a6,t3,55c + 214: 1101 addi sp,sp,-32 + 216: 14080363 beqz a6,35c + 21a: c018081b addiw a6,a6,-1023 + 21e: ec22 sd s0,24(sp) + 220: 02081313 slli t1,a6,0x20 + 224: 66034d63 bltz t1,89e + 228: 4d100313 li t1,1233 + 22c: 0303033b mulw t1,t1,a6 + 230: 4849 li a6,18 + 232: 40c3531b sraiw t1,t1,0xc + 236: 0013039b addiw t2,t1,1 + 23a: 4078083b subw a6,a6,t2 + 23e: 4359 li t1,22 + 240: 17036163 bltu t1,a6,3a2 + 244: 00005317 auipc t1,0x5 + 248: 1b430313 addi t1,t1,436 # 53f8 + 24c: 080e slli a6,a6,0x3 + 24e: 981a add a6,a6,t1 + 250: 00083e03 ld t3,0(a6) + 254: 00083607 fld fa2,0(a6) + 258: f20887d3 fmv.d.x fa5,a7 + 25c: f8000837 lui a6,0xf8000 + 260: 01187333 and t1,a6,a7 + 264: 01c87833 and a6,a6,t3 + 268: 12f676d3 fmul.d fa3,fa2,fa5 + 26c: f20807d3 fmv.d.x fa5,a6 + 270: f2030753 fmv.d.x fa4,t1 + 274: f20305d3 fmv.d.x fa1,t1 + 278: 0af67653 fsub.d fa2,fa2,fa5 + 27c: f20887d3 fmv.d.x fa5,a7 + 280: 0ae7f753 fsub.d fa4,fa5,fa4 + 284: f20807d3 fmv.d.x fa5,a6 + 288: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 + 28c: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 + 290: f20805d3 fmv.d.x fa1,a6 + 294: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 + 298: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 + 29c: 02d777d3 fadd.d fa5,fa4,fa3 + 2a0: 3782e837 lui a6,0x3782e + 2a4: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37826247> + 2a8: 0832 slli a6,a6,0xc + 2aa: 9d980813 addi a6,a6,-1575 + 2ae: 084a slli a6,a6,0x12 + 2b0: 187d addi a6,a6,-1 + 2b2: c22798d3 fcvt.l.d a7,fa5,rtz + 2b6: 0ad7f6d3 fsub.d fa3,fa5,fa3 + 2ba: 00070e1b sext.w t3,a4 + 2be: d228f653 fcvt.d.l fa2,a7 + 2c2: 0ac7f5d3 fsub.d fa1,fa5,fa2 + 2c6: 0ad77753 fsub.d fa4,fa4,fa3 + 2ca: 0af5f6d3 fsub.d fa3,fa1,fa5 + 2ce: 0ad5f553 fsub.d fa0,fa1,fa3 + 2d2: 02d67653 fadd.d fa2,fa2,fa3 + 2d6: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 2da: 0ac7f7d3 fsub.d fa5,fa5,fa2 + 2de: 02b7f7d3 fadd.d fa5,fa5,fa1 + 2e2: 02e7f7d3 fadd.d fa5,fa5,fa4 + 2e6: c2279fd3 fcvt.l.d t6,fa5,rtz + 2ea: 9fc6 add t6,t6,a7 + 2ec: 19f87063 bgeu a6,t6,46c + 2f0: 2385 addiw t2,t2,1 + 2f2: 300e4363 bltz t3,5f8 + 2f6: 00e3833b addw t1,t2,a4 + 2fa: 475d li a4,23 + 2fc: 30677663 bgeu a4,t1,608 + 300: 577d li a4,-1 + 302: 9301 srli a4,a4,0x20 + 304: 43f75863 bge a4,t6,734 + 308: 07d00313 li t1,125 + 30c: 877e mv a4,t6 + 30e: 4e01 li t3,0 + 310: 3e800813 li a6,1000 + 314: 130e slli t1,t1,0x23 + 316: a039 j 324 + 318: 030747b3 div a5,a4,a6 + 31c: 4e05 li t3,1 + 31e: 40674c63 blt a4,t1,736 + 322: 873e mv a4,a5 + 324: 030768b3 rem a7,a4,a6 + 328: fe0888e3 beqz a7,318 + 32c: 400e0163 beqz t3,72e + 330: 8fbe mv t6,a5 + 332: 05f5e7b7 lui a5,0x5f5e + 336: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + 33a: 04060413 addi s0,a2,64 + 33e: 03860613 addi a2,a2,56 + 342: 15f7c863 blt a5,t6,492 + 346: 000f871b sext.w a4,t6 + 34a: 20070463 beqz a4,552 + 34e: 4f01 li t5,0 + 350: 4f81 li t6,0 + 352: 00006e97 auipc t4,0x6 + 356: 63ee8e93 addi t4,t4,1598 # 6990 + 35a: aaa9 j 4b4 + 35c: 0306 slli t1,t1,0x1 + 35e: 3e030e63 beqz t1,75a + 362: 4305 li t1,1 + 364: ec22 sd s0,24(sp) + 366: 00ce9e13 slli t3,t4,0xc + 36a: 134e slli t1,t1,0x33 + 36c: 520e4063 bltz t3,88c + 370: 40135313 srai t1,t1,0x1 + 374: 01d37e33 and t3,t1,t4 + 378: 8f42 mv t5,a6 + 37a: 387d addiw a6,a6,-1 + 37c: fe0e0ae3 beqz t3,370 + 380: 26900313 li t1,617 + 384: c00f081b addiw a6,t5,-1024 + 388: 0268083b mulw a6,a6,t1 + 38c: 41f8531b sraiw t1,a6,0x1f + 390: 0153531b srliw t1,t1,0x15 + 394: 0103033b addw t1,t1,a6 + 398: 40b3539b sraiw t2,t1,0xb + 39c: 4849 li a6,18 + 39e: 4078083b subw a6,a6,t2 + 3a2: 41f8531b sraiw t1,a6,0x1f + 3a6: 00684eb3 xor t4,a6,t1 + 3aa: 406e8f3b subw t5,t4,t1 + 3ae: 2c900313 li t1,713 + 3b2: 03e3033b mulw t1,t1,t5 + 3b6: 4e35 li t3,13 + 3b8: 8efa mv t4,t5 + 3ba: 40e35f9b sraiw t6,t1,0xe + 3be: 837e mv t1,t6 + 3c0: 23fe4363 blt t3,t6,5e6 + 3c4: 5e25 li t3,-23 + 3c6: 026e0e3b mulw t3,t3,t1 + 3ca: 01de0ebb addw t4,t3,t4 + 3ce: 22084f63 bltz a6,60c + 3d2: f2000753 fmv.d.x fa4,zero + 3d6: 00005e17 auipc t3,0x5 + 3da: 022e0e13 addi t3,t3,34 # 53f8 + 3de: 380e9e63 bnez t4,77a + 3e2: f20887d3 fmv.d.x fa5,a7 + 3e6: fff30f1b addiw t5,t1,-1 + 3ea: 0f0e slli t5,t5,0x3 + 3ec: 02f777d3 fadd.d fa5,fa4,fa5 + 3f0: 030e slli t1,t1,0x3 + 3f2: 9f72 add t5,t5,t3 + 3f4: 9e1a add t3,t3,t1 + 3f6: 2e0e3e03 ld t3,736(t3) + 3fa: 2e8f3587 fld fa1,744(t5) + 3fe: f8000837 lui a6,0xf8000 + 402: e2078ed3 fmv.x.d t4,fa5 + 406: 12b7f6d3 fmul.d fa3,fa5,fa1 + 40a: f2088653 fmv.d.x fa2,a7 + 40e: 01d87333 and t1,a6,t4 + 412: 01c87833 and a6,a6,t3 + 416: f20807d3 fmv.d.x fa5,a6 + 41a: f2030053 fmv.d.x ft0,t1 + 41e: 0af5f553 fsub.d fa0,fa1,fa5 + 422: f20e87d3 fmv.d.x fa5,t4 + 426: 0ac7f0d3 fsub.d ft1,fa5,fa2 + 42a: f20807d3 fmv.d.x fa5,a6 + 42e: f2030653 fmv.d.x fa2,t1 + 432: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 + 436: f20e87d3 fmv.d.x fa5,t4 + 43a: 0a177753 fsub.d fa4,fa4,ft1 + 43e: f20300d3 fmv.d.x ft1,t1 + 442: 0a07f7d3 fsub.d fa5,fa5,ft0 + 446: 350f3007 fld ft0,848(t5) + 44a: 62157643 fmadd.d fa2,fa0,ft1,fa2 + 44e: 12b77753 fmul.d fa4,fa4,fa1 + 452: f20805d3 fmv.d.x fa1,a6 + 456: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 + 45a: f20e85d3 fmv.d.x fa1,t4 + 45e: 7205f743 fmadd.d fa4,fa1,ft0,fa4 + 462: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 + 466: 02e7f753 fadd.d fa4,fa5,fa4 + 46a: bd0d j 29c + 46c: 00e3833b addw t1,t2,a4 + 470: 2a0e4663 bltz t3,71c + 474: 475d li a4,23 + 476: 10677663 bgeu a4,t1,582 + 47a: e80f93e3 bnez t6,300 + 47e: 05f5e7b7 lui a5,0x5f5e + 482: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + 486: 04060413 addi s0,a2,64 + 48a: 03860613 addi a2,a2,56 + 48e: ebf7dce3 bge a5,t6,346 + 492: 4f01 li t5,0 + 494: 00006e97 auipc t4,0x6 + 498: 4fce8e93 addi t4,t4,1276 # 6990 + 49c: 05f5e7b7 lui a5,0x5f5e + 4a0: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f56878> + 4a4: 02ffe833 rem a6,t6,a5 + 4a8: 02ffcfb3 div t6,t6,a5 + 4ac: 0008071b sext.w a4,a6 + 4b0: 0a080463 beqz a6,558 + 4b4: 8822 mv a6,s0 + 4b6: 06400893 li a7,100 + 4ba: 06300e13 li t3,99 + 4be: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff8776> + 4c0: 0007031b sext.w t1,a4 + 4c4: 031777bb remuw a5,a4,a7 + 4c8: 2785 addiw a5,a5,1 + 4ca: 0017979b slliw a5,a5,0x1 + 4ce: 1782 slli a5,a5,0x20 + 4d0: 9381 srli a5,a5,0x20 + 4d2: 97f6 add a5,a5,t4 + 4d4: 0007d783 lhu a5,0(a5) + 4d8: 0317573b divuw a4,a4,a7 + 4dc: 00f81023 sh a5,0(a6) + 4e0: fc6e6fe3 bltu t3,t1,4be + 4e4: 008f0f3b addw t5,t5,s0 + 4e8: 410f0f3b subw t5,t5,a6 + 4ec: 020f8f63 beqz t6,52a + 4f0: 87c2 mv a5,a6 + 4f2: 03000713 li a4,48 + 4f6: 04c80c63 beq a6,a2,54e + 4fa: 17fd addi a5,a5,-1 + 4fc: 00e78023 sb a4,0(a5) + 500: fec79de3 bne a5,a2,4fa + 504: 408807b3 sub a5,a6,s0 + 508: 00ff07bb addw a5,t5,a5 + 50c: 1461 addi s0,s0,-8 + 50e: 00878f1b addiw t5,a5,8 + 512: 05f5e7b7 lui a5,0x5f5e + 516: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> + 51a: ff840613 addi a2,s0,-8 + 51e: f7f7cfe3 blt a5,t6,49c + 522: 000f871b sext.w a4,t6 + 526: 4f81 li t6,0 + 528: b771 j 4b4 + 52a: 020f0563 beqz t5,554 + 52e: 00084703 lbu a4,0(a6) + 532: 03000793 li a5,48 + 536: 22f70f63 beq a4,a5,774 + 53a: 2f01 sext.w t5,t5 + 53c: 0076a023 sw t2,0(a3) + 540: 6462 ld s0,24(sp) + 542: 0102b023 sd a6,0(t0) + 546: 01e5a023 sw t5,0(a1) + 54a: 6105 addi sp,sp,32 + 54c: 8082 ret + 54e: 8442 mv s0,a6 + 550: b7c9 j 512 + 552: 8822 mv a6,s0 + 554: 4f01 li t5,0 + 556: b7dd j 53c + 558: 8822 mv a6,s0 + 55a: bf59 j 4f0 + 55c: 0eb2 slli t4,t4,0xc + 55e: 00005797 auipc a5,0x5 + 562: b6a78793 addi a5,a5,-1174 # 50c8 <_GLOBAL__sub_I__ZSt3cin+0xd8> + 566: 000e8663 beqz t4,572 + 56a: 00005797 auipc a5,0x5 + 56e: b5678793 addi a5,a5,-1194 # 50c0 <_GLOBAL__sub_I__ZSt3cin+0xd0> + 572: 00f2b023 sd a5,0(t0) + 576: 679d lui a5,0x7 + 578: c29c sw a5,0(a3) + 57a: 4f0d li t5,3 + 57c: 01e5a023 sw t5,0(a1) + 580: 8082 ret + 582: 3b9ad737 lui a4,0x3b9ad + 586: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a5177> + 58a: 07f76f63 bltu a4,t6,608 + 58e: 4805 li a6,1 + 590: 02081713 slli a4,a6,0x20 + 594: 01d75893 srli a7,a4,0x1d + 598: 00005717 auipc a4,0x5 + 59c: 21870713 addi a4,a4,536 # 57b0 + 5a0: 9746 add a4,a4,a7 + 5a2: 4e51 li t3,20 + 5a4: a021 j 5ac + 5a6: 2805 addiw a6,a6,1 + 5a8: edc809e3 beq a6,t3,47a + 5ac: 00073883 ld a7,0(a4) + 5b0: 0721 addi a4,a4,8 + 5b2: ff1ffae3 bgeu t6,a7,5a6 + 5b6: ed0372e3 bgeu t1,a6,47a + 5ba: 4068083b subw a6,a6,t1 + 5be: 475d li a4,23 + 5c0: eb076de3 bltu a4,a6,47a + 5c4: 080e slli a6,a6,0x3 + 5c6: 00005717 auipc a4,0x5 + 5ca: e3270713 addi a4,a4,-462 # 53f8 + 5ce: 9742 add a4,a4,a6 + 5d0: 3b873803 ld a6,952(a4) + 5d4: 00185713 srli a4,a6,0x1 + 5d8: 977e add a4,a4,t6 + 5da: 01176363 bltu a4,a7,5e0 + 5de: 2385 addiw t2,t2,1 + 5e0: 03075fb3 divu t6,a4,a6 + 5e4: bd59 j 47a + 5e6: 4335 li t1,13 + 5e8: 5e25 li t3,-23 + 5ea: 026e0e3b mulw t3,t3,t1 + 5ee: 01de0ebb addw t4,t3,t4 + 5f2: de0850e3 bgez a6,3d2 + 5f6: a819 j 60c + 5f8: 02571313 slli t1,a4,0x25 + 5fc: 02535313 srli t1,t1,0x25 + 600: 0305 addi t1,t1,1 + 602: 475d li a4,23 + 604: ce676ee3 bltu a4,t1,300 + 608: 4829 li a6,10 + 60a: b759 j 590 + 60c: 260e8663 beqz t4,878 + 610: 00231e13 slli t3,t1,0x2 + 614: 41c30e33 sub t3,t1,t3 + 618: 0e0e slli t3,t3,0x3 + 61a: 9e1a add t3,t3,t1 + 61c: fffe881b addiw a6,t4,-1 + 620: 9e7a add t3,t3,t5 + 622: 00005e97 auipc t4,0x5 + 626: dd6e8e93 addi t4,t4,-554 # 53f8 + 62a: 0e0e slli t3,t3,0x3 + 62c: 080e slli a6,a6,0x3 + 62e: 9876 add a6,a6,t4 + 630: 9ef2 add t4,t4,t3 + 632: 0b883607 fld fa2,184(a6) + 636: f20887d3 fmv.d.x fa5,a7 + 63a: 0b0ebf03 ld t5,176(t4) + 63e: f8000e37 lui t3,0xf8000 + 642: 011e7eb3 and t4,t3,a7 + 646: 12f676d3 fmul.d fa3,fa2,fa5 + 64a: 01ee7e33 and t3,t3,t5 + 64e: f20e07d3 fmv.d.x fa5,t3 + 652: f20e0753 fmv.d.x fa4,t3 + 656: f20e8553 fmv.d.x fa0,t4 + 65a: 0af67653 fsub.d fa2,fa2,fa5 + 65e: f20e87d3 fmv.d.x fa5,t4 + 662: f20e85d3 fmv.d.x fa1,t4 + 666: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 + 66a: f2088753 fmv.d.x fa4,a7 + 66e: 0ab775d3 fsub.d fa1,fa4,fa1 + 672: 16883707 fld fa4,360(a6) + 676: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 + 67a: f20e0553 fmv.d.x fa0,t3 + 67e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 682: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 + 686: f20887d3 fmv.d.x fa5,a7 + 68a: 5af77743 fmadd.d fa4,fa4,fa5,fa1 + 68e: c00f87e3 beqz t6,29c + 692: 02d777d3 fadd.d fa5,fa4,fa3 + 696: fff3089b addiw a7,t1,-1 + 69a: 00005817 auipc a6,0x5 + 69e: d5e80813 addi a6,a6,-674 # 53f8 + 6a2: 030e slli t1,t1,0x3 + 6a4: 088e slli a7,a7,0x3 + 6a6: 98c2 add a7,a7,a6 + 6a8: 981a add a6,a6,t1 + 6aa: e2078e53 fmv.x.d t3,fa5 + 6ae: 21083e83 ld t4,528(a6) + 6b2: f8000837 lui a6,0xf8000 + 6b6: 2188b507 fld fa0,536(a7) + 6ba: 01c87333 and t1,a6,t3 + 6be: 01d87833 and a6,a6,t4 + 6c2: f2080653 fmv.d.x fa2,a6 + 6c6: 12f577d3 fmul.d fa5,fa0,fa5 + 6ca: 2808b587 fld fa1,640(a7) + 6ce: 0ac57053 fsub.d ft0,fa0,fa2 + 6d2: f20e0653 fmv.d.x fa2,t3 + 6d6: 0ad67153 fsub.d ft2,fa2,fa3 + 6da: f20806d3 fmv.d.x fa3,a6 + 6de: f2030653 fmv.d.x fa2,t1 + 6e2: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 + 6e6: f20e06d3 fmv.d.x fa3,t3 + 6ea: 0ac6f653 fsub.d fa2,fa3,fa2 + 6ee: 22f786d3 fmv.d fa3,fa5 + 6f2: 0a2777d3 fsub.d fa5,fa4,ft2 + 6f6: f2030753 fmv.d.x fa4,t1 + 6fa: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 + 6fe: 12a7f7d3 fmul.d fa5,fa5,fa0 + 702: f2080553 fmv.d.x fa0,a6 + 706: 72a67743 fmadd.d fa4,fa2,fa0,fa4 + 70a: f20e0553 fmv.d.x fa0,t3 + 70e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 712: 72067643 fmadd.d fa2,fa2,ft0,fa4 + 716: 02f67753 fadd.d fa4,fa2,fa5 + 71a: b649 j 29c + 71c: 02571313 slli t1,a4,0x25 + 720: 02535313 srli t1,t1,0x25 + 724: 0305 addi t1,t1,1 + 726: 475d li a4,23 + 728: d46769e3 bltu a4,t1,47a + 72c: bd99 j 582 + 72e: 87fe mv a5,t6 + 730: 8fbe mv t6,a5 + 732: b101 j 332 + 734: 87fe mv a5,t6 + 736: 3e800713 li a4,1000 + 73a: 02e7f73b remuw a4,a5,a4 + 73e: 2781 sext.w a5,a5 + 740: eb01 bnez a4,750 + 742: 3e800813 li a6,1000 + 746: 0307d7bb divuw a5,a5,a6 + 74a: 0307f73b remuw a4,a5,a6 + 74e: df65 beqz a4,746 + 750: 02079f93 slli t6,a5,0x20 + 754: 020fdf93 srli t6,t6,0x20 + 758: b31d j 47e + 75a: 4785 li a5,1 + 75c: c29c sw a5,0(a3) + 75e: 00c2b023 sd a2,0(t0) + 762: 03000793 li a5,48 + 766: 00f60023 sb a5,0(a2) + 76a: 4f05 li t5,1 + 76c: 01e5a023 sw t5,0(a1) + 770: 6105 addi sp,sp,32 + 772: 8082 ret + 774: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff8779> + 776: 3f7d addiw t5,t5,-1 + 778: b3d1 j 53c + 77a: e826 sd s1,16(sp) + 77c: e44a sd s2,8(sp) + 77e: 4859 li a6,22 + 780: 8976 mv s2,t4 + 782: 11d84363 blt a6,t4,888 + 786: 0009049b sext.w s1,s2 + 78a: 00005e17 auipc t3,0x5 + 78e: c6ee0e13 addi t3,t3,-914 # 53f8 + 792: 00349813 slli a6,s1,0x3 + 796: 9872 add a6,a6,t3 + 798: 00083687 fld fa3,0(a6) + 79c: 00083803 ld a6,0(a6) + 7a0: f20887d3 fmv.d.x fa5,a7 + 7a4: f8000fb7 lui t6,0xf8000 + 7a8: 010ff833 and a6,t6,a6 + 7ac: 12f6f553 fmul.d fa0,fa3,fa5 + 7b0: f20807d3 fmv.d.x fa5,a6 + 7b4: 011ff433 and s0,t6,a7 + 7b8: f2040753 fmv.d.x fa4,s0 + 7bc: 0af6f6d3 fsub.d fa3,fa3,fa5 + 7c0: f20887d3 fmv.d.x fa5,a7 + 7c4: f2080653 fmv.d.x fa2,a6 + 7c8: 412e8ebb subw t4,t4,s2 + 7cc: 0ae7f753 fsub.d fa4,fa5,fa4 + 7d0: f20407d3 fmv.d.x fa5,s0 + 7d4: e20508d3 fmv.x.d a7,fa0 + 7d8: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 + 7dc: f2040653 fmv.d.x fa2,s0 + 7e0: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 + 7e4: f2080653 fmv.d.x fa2,a6 + 7e8: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 + 7ec: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 + 7f0: 080e8963 beqz t4,882 + 7f4: 02e577d3 fadd.d fa5,fa0,fa4 + 7f8: 0e8e slli t4,t4,0x3 + 7fa: 01de0833 add a6,t3,t4 + 7fe: 00083587 fld fa1,0(a6) + 802: 00231893 slli a7,t1,0x2 + 806: 411308b3 sub a7,t1,a7 + 80a: 00389813 slli a6,a7,0x3 + 80e: e2078453 fmv.x.d s0,fa5 + 812: 12f5f7d3 fmul.d fa5,fa1,fa5 + 816: 981a add a6,a6,t1 + 818: 987a add a6,a6,t5 + 81a: 40980833 sub a6,a6,s1 + 81e: 080e slli a6,a6,0x3 + 820: 9872 add a6,a6,t3 + 822: 00083e83 ld t4,0(a6) + 826: 008ff833 and a6,t6,s0 + 82a: e20788d3 fmv.x.d a7,fa5 + 82e: f20806d3 fmv.d.x fa3,a6 + 832: f20407d3 fmv.d.x fa5,s0 + 836: 01dfffb3 and t6,t6,t4 + 83a: f20880d3 fmv.d.x ft1,a7 + 83e: 0ad7f653 fsub.d fa2,fa5,fa3 + 842: f20f87d3 fmv.d.x fa5,t6 + 846: 64c2 ld s1,16(sp) + 848: 6922 ld s2,8(sp) + 84a: 0af5f053 fsub.d ft0,fa1,fa5 + 84e: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 + 852: f20407d3 fmv.d.x fa5,s0 + 856: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 85a: f2080553 fmv.d.x fa0,a6 + 85e: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 + 862: 0af77753 fsub.d fa4,fa4,fa5 + 866: f20f87d3 fmv.d.x fa5,t6 + 86a: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 + 86e: 7a067643 fmadd.d fa2,fa2,ft0,fa5 + 872: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 + 876: b6b5 j 3e2 + 878: f20886d3 fmv.d.x fa3,a7 + 87c: f2000753 fmv.d.x fa4,zero + 880: b539 j 68e + 882: 64c2 ld s1,16(sp) + 884: 6922 ld s2,8(sp) + 886: beb1 j 3e2 + 888: 4959 li s2,22 + 88a: bdf5 j 786 + 88c: e826 sd s1,16(sp) + 88e: e44a sd s2,8(sp) + 890: ecc00393 li t2,-308 + 894: 4eed li t4,27 + 896: 4335 li t1,13 + 898: 14600f13 li t5,326 + 89c: b5cd j 77e + 89e: 26900313 li t1,617 + 8a2: 0303083b mulw a6,t1,a6 + 8a6: 41f8531b sraiw t1,a6,0x1f + 8aa: 0153531b srliw t1,t1,0x15 + 8ae: 0103033b addw t1,t1,a6 + 8b2: 40b3539b sraiw t2,t1,0xb + 8b6: 4849 li a6,18 + 8b8: 4078083b subw a6,a6,t2 + 8bc: b249 j 23e + +00000000000008be <_in_char.part.0>: static int _in_char(_InContext *ctx) - 8ae: 87aa mv a5,a0 + 8be: 87aa mv a5,a0 if (ctx->fd == -1) - 8b0: 4508 lw a0,8(a0) - 8b2: 577d li a4,-1 - 8b4: 00e51d63 bne a0,a4,8ce <_in_char.part.0+0x20> + 8c0: 4508 lw a0,8(a0) + 8c2: 577d li a4,-1 + 8c4: 00e51d63 bne a0,a4,8de <_in_char.part.0+0x20> if (ctx->buf[ctx->pos] == '\0') - 8b8: 6b94 ld a3,16(a5) - 8ba: 6398 ld a4,0(a5) - 8bc: 9736 add a4,a4,a3 - 8be: 00074603 lbu a2,0(a4) - 8c2: c60d beqz a2,8ec <_in_char.part.0+0x3e> + 8c8: 6b94 ld a3,16(a5) + 8ca: 6398 ld a4,0(a5) + 8cc: 9736 add a4,a4,a3 + 8ce: 00074603 lbu a2,0(a4) + 8d2: c60d beqz a2,8fc <_in_char.part.0+0x3e> return (unsigned char)ctx->buf[ctx->pos++]; - 8c4: 0685 addi a3,a3,1 - 8c6: eb94 sd a3,16(a5) - 8c8: 00074503 lbu a0,0(a4) - 8cc: 8082 ret + 8d4: 0685 addi a3,a3,1 + 8d6: eb94 sd a3,16(a5) + 8d8: 00074503 lbu a0,0(a4) + 8dc: 8082 ret static int _in_char(_InContext *ctx) - 8ce: 1101 addi sp,sp,-32 + 8de: 1101 addi sp,sp,-32 if (read(ctx->fd, &c, 1) == 1) - 8d0: 4605 li a2,1 - 8d2: 00f10593 addi a1,sp,15 + 8e0: 4605 li a2,1 + 8e2: 00f10593 addi a1,sp,15 static int _in_char(_InContext *ctx) - 8d6: ec06 sd ra,24(sp) + 8e6: ec06 sd ra,24(sp) if (read(ctx->fd, &c, 1) == 1) - 8d8: 809ff0ef jal e0 - 8dc: 4785 li a5,1 - 8de: 00f51963 bne a0,a5,8f0 <_in_char.part.0+0x42> + 8e8: 801ff0ef jal e8 + 8ec: 4785 li a5,1 + 8ee: 00f51963 bne a0,a5,900 <_in_char.part.0+0x42> return (unsigned char)c; - 8e2: 00f14503 lbu a0,15(sp) + 8f2: 00f14503 lbu a0,15(sp) } - 8e6: 60e2 ld ra,24(sp) - 8e8: 6105 addi sp,sp,32 - 8ea: 8082 ret + 8f6: 60e2 ld ra,24(sp) + 8f8: 6105 addi sp,sp,32 + 8fa: 8082 ret return -1; - 8ec: 557d li a0,-1 + 8fc: 557d li a0,-1 } - 8ee: 8082 ret + 8fe: 8082 ret return -1; - 8f0: 557d li a0,-1 - 8f2: bfd5 j 8e6 <_in_char.part.0+0x38> + 900: 557d li a0,-1 + 902: bfd5 j 8f6 <_in_char.part.0+0x38> -00000000000008f4 <_skip_space>: +0000000000000904 <_skip_space>: { - 8f4: 7139 addi sp,sp,-64 - 8f6: f822 sd s0,48(sp) - 8f8: f426 sd s1,40(sp) - 8fa: f04a sd s2,32(sp) - 8fc: ec4e sd s3,24(sp) - 8fe: e852 sd s4,16(sp) - 900: fc06 sd ra,56(sp) - 902: 842a mv s0,a0 + 904: 7139 addi sp,sp,-64 + 906: f822 sd s0,48(sp) + 908: f426 sd s1,40(sp) + 90a: f04a sd s2,32(sp) + 90c: ec4e sd s3,24(sp) + 90e: e852 sd s4,16(sp) + 910: fc06 sd ra,56(sp) + 912: 842a mv s0,a0 ctx->ungotten = -1; - 904: 54fd li s1,-1 + 914: 54fd li s1,-1 if (read(ctx->fd, &c, 1) == 1) - 906: 00f10a13 addi s4,sp,15 + 916: 00f10a13 addi s4,sp,15 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 90a: 02000913 li s2,32 - 90e: 4991 li s3,4 + 91a: 02000913 li s2,32 + 91e: 4991 li s3,4 if (ctx->ungotten >= 0) - 910: 4c1c lw a5,24(s0) - 912: 0407d163 bgez a5,954 <_skip_space+0x60> + 920: 4c1c lw a5,24(s0) + 922: 0407d163 bgez a5,964 <_skip_space+0x60> if (ctx->fd == -1) - 916: 4408 lw a0,8(s0) + 926: 4408 lw a0,8(s0) if (read(ctx->fd, &c, 1) == 1) - 918: 4605 li a2,1 - 91a: 85d2 mv a1,s4 + 928: 4605 li a2,1 + 92a: 85d2 mv a1,s4 if (ctx->fd == -1) - 91c: 02951e63 bne a0,s1,958 <_skip_space+0x64> + 92c: 02951e63 bne a0,s1,968 <_skip_space+0x64> if (ctx->buf[ctx->pos] == '\0') - 920: 6818 ld a4,16(s0) - 922: 601c ld a5,0(s0) + 930: 6818 ld a4,16(s0) + 932: 601c ld a5,0(s0) return (unsigned char)ctx->buf[ctx->pos++]; - 924: 00170693 addi a3,a4,1 + 934: 00170693 addi a3,a4,1 if (ctx->buf[ctx->pos] == '\0') - 928: 97ba add a5,a5,a4 - 92a: 0007c703 lbu a4,0(a5) # 7000 <_stdout+0x170> - 92e: cb19 beqz a4,944 <_skip_space+0x50> + 938: 97ba add a5,a5,a4 + 93a: 0007c703 lbu a4,0(a5) # 7000 <_stdout+0x150> + 93e: cb19 beqz a4,954 <_skip_space+0x50> return (unsigned char)ctx->buf[ctx->pos++]; - 930: e814 sd a3,16(s0) - 932: 0007c783 lbu a5,0(a5) + 940: e814 sd a3,16(s0) + 942: 0007c783 lbu a5,0(a5) return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 936: ff77871b addiw a4,a5,-9 - 93a: fd278be3 beq a5,s2,910 <_skip_space+0x1c> - 93e: fce9f9e3 bgeu s3,a4,910 <_skip_space+0x1c> + 946: ff77871b addiw a4,a5,-9 + 94a: fd278be3 beq a5,s2,920 <_skip_space+0x1c> + 94e: fce9f9e3 bgeu s3,a4,920 <_skip_space+0x1c> ctx->ungotten = c; - 942: cc1c sw a5,24(s0) -} - 944: 70e2 ld ra,56(sp) - 946: 7442 ld s0,48(sp) - 948: 74a2 ld s1,40(sp) - 94a: 7902 ld s2,32(sp) - 94c: 69e2 ld s3,24(sp) - 94e: 6a42 ld s4,16(sp) - 950: 6121 addi sp,sp,64 - 952: 8082 ret + 952: cc1c sw a5,24(s0) +} + 954: 70e2 ld ra,56(sp) + 956: 7442 ld s0,48(sp) + 958: 74a2 ld s1,40(sp) + 95a: 7902 ld s2,32(sp) + 95c: 69e2 ld s3,24(sp) + 95e: 6a42 ld s4,16(sp) + 960: 6121 addi sp,sp,64 + 962: 8082 ret ctx->ungotten = -1; - 954: cc04 sw s1,24(s0) + 964: cc04 sw s1,24(s0) return c; - 956: b7c5 j 936 <_skip_space+0x42> + 966: b7c5 j 946 <_skip_space+0x42> if (read(ctx->fd, &c, 1) == 1) - 958: f88ff0ef jal e0 - 95c: 4785 li a5,1 - 95e: fef513e3 bne a0,a5,944 <_skip_space+0x50> + 968: f80ff0ef jal e8 + 96c: 4785 li a5,1 + 96e: fef513e3 bne a0,a5,954 <_skip_space+0x50> return (unsigned char)c; - 962: 00f14783 lbu a5,15(sp) - 966: bfc1 j 936 <_skip_space+0x42> + 972: 00f14783 lbu a5,15(sp) + 976: bfc1 j 946 <_skip_space+0x42> -0000000000000968 <_vscanf_core.constprop.0>: +0000000000000978 <_vscanf_core.constprop.0>: static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) - 968: 7155 addi sp,sp,-208 - 96a: e586 sd ra,200(sp) - 96c: e95a sd s6,144(sp) + 978: 7155 addi sp,sp,-208 + 97a: e586 sd ra,200(sp) + 97c: e95a sd s6,144(sp) while (*p) - 96e: 0005c783 lbu a5,0(a1) + 97e: 0005c783 lbu a5,0(a1) static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) - 972: e432 sd a2,8(sp) + 982: e432 sd a2,8(sp) while (*p) - 974: 68078b63 beqz a5,100a <_vscanf_core.constprop.0+0x6a2> - 978: e1a2 sd s0,192(sp) - 97a: fd26 sd s1,184(sp) - 97c: f152 sd s4,160(sp) - 97e: ed56 sd s5,152(sp) - 980: f4ee sd s11,104(sp) - 982: 842e mv s0,a1 - 984: 8daa mv s11,a0 + 984: 68078b63 beqz a5,101a <_vscanf_core.constprop.0+0x6a2> + 988: e1a2 sd s0,192(sp) + 98a: fd26 sd s1,184(sp) + 98c: f152 sd s4,160(sp) + 98e: ed56 sd s5,152(sp) + 990: f4ee sd s11,104(sp) + 992: 842e mv s0,a1 + 994: 8daa mv s11,a0 int assigned = 0; - 986: 4b01 li s6,0 + 996: 4b01 li s6,0 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 988: 02000493 li s1,32 - 98c: 4a91 li s5,4 + 998: 02000493 li s1,32 + 99c: 4a91 li s5,4 if (*p != '%') - 98e: 02500a13 li s4,37 + 99e: 02500a13 li s4,37 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 992: 04978763 beq a5,s1,9e0 <_vscanf_core.constprop.0+0x78> - 996: ff77869b addiw a3,a5,-9 - 99a: 0ff6f693 zext.b a3,a3 - 99e: 04daf163 bgeu s5,a3,9e0 <_vscanf_core.constprop.0+0x78> + 9a2: 04978763 beq a5,s1,9f0 <_vscanf_core.constprop.0+0x78> + 9a6: ff77869b addiw a3,a5,-9 + 9aa: 0ff6f693 zext.b a3,a3 + 9ae: 04daf163 bgeu s5,a3,9f0 <_vscanf_core.constprop.0+0x78> if (*p != '%') - 9a2: 07478d63 beq a5,s4,a1c <_vscanf_core.constprop.0+0xb4> + 9b2: 07478d63 beq a5,s4,a2c <_vscanf_core.constprop.0+0xb4> _skip_space(ctx); - 9a6: 856e mv a0,s11 - 9a8: f4dff0ef jal 8f4 <_skip_space> + 9b6: 856e mv a0,s11 + 9b8: f4dff0ef jal 904 <_skip_space> if (ctx->ungotten >= 0) - 9ac: 018da503 lw a0,24(s11) - 9b0: 04055a63 bgez a0,a04 <_vscanf_core.constprop.0+0x9c> - 9b4: 856e mv a0,s11 - 9b6: ef9ff0ef jal 8ae <_in_char.part.0> + 9bc: 018da503 lw a0,24(s11) + 9c0: 04055a63 bgez a0,a14 <_vscanf_core.constprop.0+0x9c> + 9c4: 856e mv a0,s11 + 9c6: ef9ff0ef jal 8be <_in_char.part.0> if (c != *p) - 9ba: 00044783 lbu a5,0(s0) - 9be: 04a78a63 beq a5,a0,a12 <_vscanf_core.constprop.0+0xaa> + 9ca: 00044783 lbu a5,0(s0) + 9ce: 04a78a63 beq a5,a0,a22 <_vscanf_core.constprop.0+0xaa> if (c != -1) - 9c2: 57fd li a5,-1 - 9c4: 00f50463 beq a0,a5,9cc <_vscanf_core.constprop.0+0x64> + 9d2: 57fd li a5,-1 + 9d4: 00f50463 beq a0,a5,9dc <_vscanf_core.constprop.0+0x64> ctx->ungotten = c; - 9c8: 00adac23 sw a0,24(s11) - 9cc: 640e ld s0,192(sp) - 9ce: 74ea ld s1,184(sp) - 9d0: 7a0a ld s4,160(sp) - 9d2: 6aea ld s5,152(sp) - 9d4: 7da6 ld s11,104(sp) -} - 9d6: 60ae ld ra,200(sp) - 9d8: 855a mv a0,s6 - 9da: 6b4a ld s6,144(sp) - 9dc: 6169 addi sp,sp,208 - 9de: 8082 ret + 9d8: 00adac23 sw a0,24(s11) + 9dc: 640e ld s0,192(sp) + 9de: 74ea ld s1,184(sp) + 9e0: 7a0a ld s4,160(sp) + 9e2: 6aea ld s5,152(sp) + 9e4: 7da6 ld s11,104(sp) +} + 9e6: 60ae ld ra,200(sp) + 9e8: 855a mv a0,s6 + 9ea: 6b4a ld s6,144(sp) + 9ec: 6169 addi sp,sp,208 + 9ee: 8082 ret _skip_space(ctx); - 9e0: 856e mv a0,s11 - 9e2: f13ff0ef jal 8f4 <_skip_space> + 9f0: 856e mv a0,s11 + 9f2: f13ff0ef jal 904 <_skip_space> while (isspace(*p)) - 9e6: 00044783 lbu a5,0(s0) + 9f6: 00044783 lbu a5,0(s0) return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 9ea: 4611 li a2,4 - 9ec: ff77869b addiw a3,a5,-9 - 9f0: 0ff6f693 zext.b a3,a3 - 9f4: 00978663 beq a5,s1,a00 <_vscanf_core.constprop.0+0x98> - 9f8: 00d67463 bgeu a2,a3,a00 <_vscanf_core.constprop.0+0x98> + 9fa: 4611 li a2,4 + 9fc: ff77869b addiw a3,a5,-9 + a00: 0ff6f693 zext.b a3,a3 + a04: 00978663 beq a5,s1,a10 <_vscanf_core.constprop.0+0x98> + a08: 00d67463 bgeu a2,a3,a10 <_vscanf_core.constprop.0+0x98> while (*p) - 9fc: fbd9 bnez a5,992 <_vscanf_core.constprop.0+0x2a> - 9fe: b7f9 j 9cc <_vscanf_core.constprop.0+0x64> + a0c: fbd9 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + a0e: b7f9 j 9dc <_vscanf_core.constprop.0+0x64> p++; - a00: 0405 addi s0,s0,1 - a02: b7d5 j 9e6 <_vscanf_core.constprop.0+0x7e> + a10: 0405 addi s0,s0,1 + a12: b7d5 j 9f6 <_vscanf_core.constprop.0+0x7e> ctx->ungotten = -1; - a04: 57fd li a5,-1 - a06: 00fdac23 sw a5,24(s11) + a14: 57fd li a5,-1 + a16: 00fdac23 sw a5,24(s11) if (c != *p) - a0a: 00044783 lbu a5,0(s0) - a0e: faa79ae3 bne a5,a0,9c2 <_vscanf_core.constprop.0+0x5a> + a1a: 00044783 lbu a5,0(s0) + a1e: faa79ae3 bne a5,a0,9d2 <_vscanf_core.constprop.0+0x5a> while (*p) - a12: 00144783 lbu a5,1(s0) + a22: 00144783 lbu a5,1(s0) p++; - a16: 0405 addi s0,s0,1 + a26: 0405 addi s0,s0,1 while (*p) - a18: ffad bnez a5,992 <_vscanf_core.constprop.0+0x2a> - a1a: bf4d j 9cc <_vscanf_core.constprop.0+0x64> - a1c: f94a sd s2,176(sp) - a1e: f54e sd s3,168(sp) - a20: e55e sd s7,136(sp) - a22: e162 sd s8,128(sp) + a28: ffad bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + a2a: bf4d j 9dc <_vscanf_core.constprop.0+0x64> + a2c: f94a sd s2,176(sp) + a2e: f54e sd s3,168(sp) + a30: e55e sd s7,136(sp) + a32: e162 sd s8,128(sp) if (*p == '*') - a24: 00144583 lbu a1,1(s0) - a28: 02a00793 li a5,42 - a2c: 22f58d63 beq a1,a5,c66 <_vscanf_core.constprop.0+0x2fe> + a34: 00144583 lbu a1,1(s0) + a38: 02a00793 li a5,42 + a3c: 22f58d63 beq a1,a5,c76 <_vscanf_core.constprop.0+0x2fe> p++; - a30: 0405 addi s0,s0,1 + a40: 0405 addi s0,s0,1 int suppress = 0; - a32: 4981 li s3,0 + a42: 4981 li s3,0 while (*p >= '0' && *p <= '9') - a34: fd05861b addiw a2,a1,-48 - a38: 0ff67693 zext.b a3,a2 - a3c: 47a5 li a5,9 - a3e: 36d7e763 bltu a5,a3,dac <_vscanf_core.constprop.0+0x444> - a42: 4781 li a5,0 - a44: 4825 li a6,9 - a46: a019 j a4c <_vscanf_core.constprop.0+0xe4> + a44: fd05861b addiw a2,a1,-48 + a48: 0ff67693 zext.b a3,a2 + a4c: 47a5 li a5,9 + a4e: 36d7e763 bltu a5,a3,dbc <_vscanf_core.constprop.0+0x444> + a52: 4781 li a5,0 + a54: 4825 li a6,9 + a56: a019 j a5c <_vscanf_core.constprop.0+0xe4> width = width * 10 + (*p - '0'); - a48: 0016979b slliw a5,a3,0x1 + a58: 0016979b slliw a5,a3,0x1 while (*p >= '0' && *p <= '9') - a4c: 00144583 lbu a1,1(s0) + a5c: 00144583 lbu a1,1(s0) width = width * 10 + (*p - '0'); - a50: 00f6093b addw s2,a2,a5 - a54: 0029169b slliw a3,s2,0x2 + a60: 00f6093b addw s2,a2,a5 + a64: 0029169b slliw a3,s2,0x2 while (*p >= '0' && *p <= '9') - a58: fd05861b addiw a2,a1,-48 - a5c: 0ff67513 zext.b a0,a2 + a68: fd05861b addiw a2,a1,-48 + a6c: 0ff67513 zext.b a0,a2 width = width * 10 + (*p - '0'); - a60: 012686bb addw a3,a3,s2 + a70: 012686bb addw a3,a3,s2 p++; - a64: 0405 addi s0,s0,1 + a74: 0405 addi s0,s0,1 while (*p >= '0' && *p <= '9') - a66: fea871e3 bgeu a6,a0,a48 <_vscanf_core.constprop.0+0xe0> + a76: fea871e3 bgeu a6,a0,a58 <_vscanf_core.constprop.0+0xe0> if (*p == 'l') - a6a: 06c00693 li a3,108 + a7a: 06c00693 li a3,108 p++; - a6e: 00140b93 addi s7,s0,1 + a7e: 00140b93 addi s7,s0,1 if (*p == 'l') - a72: 1ed58f63 beq a1,a3,c70 <_vscanf_core.constprop.0+0x308> + a82: 1ed58f63 beq a1,a3,c80 <_vscanf_core.constprop.0+0x308> else if (*p == 'h') - a76: 06800693 li a3,104 - a7a: 2ad58863 beq a1,a3,d2a <_vscanf_core.constprop.0+0x3c2> + a86: 06800693 li a3,104 + a8a: 2ad58863 beq a1,a3,d3a <_vscanf_core.constprop.0+0x3c2> char spec = *p++; - a7e: 00044c03 lbu s8,0(s0) - a82: 8ba2 mv s7,s0 + a8e: 00044c03 lbu s8,0(s0) + a92: 8ba2 mv s7,s0 int len_mod = 0; - a84: ec02 sd zero,24(sp) + a94: ec02 sd zero,24(sp) char spec = *p++; - a86: 06300693 li a3,99 - a8a: 001b8413 addi s0,s7,1 + a96: 06300693 li a3,99 + a9a: 001b8413 addi s0,s7,1 if (!spec) - a8e: 2adc0863 beq s8,a3,d3e <_vscanf_core.constprop.0+0x3d6> - a92: 1f86fc63 bgeu a3,s8,c8a <_vscanf_core.constprop.0+0x322> - a96: f9cc069b addiw a3,s8,-100 - a9a: 0ff6f693 zext.b a3,a3 - a9e: 4651 li a2,20 - aa0: 0cd66e63 bltu a2,a3,b7c <_vscanf_core.constprop.0+0x214> - aa4: 00120637 lui a2,0x120 - aa8: 4585 li a1,1 - aaa: 00d595b3 sll a1,a1,a3 - aae: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x1187b9> - ab2: 8e6d and a2,a2,a1 - ab4: ee69 bnez a2,b8e <_vscanf_core.constprop.0+0x226> - ab6: 89b9 andi a1,a1,14 - ab8: 1e059263 bnez a1,c9c <_vscanf_core.constprop.0+0x334> - abc: 463d li a2,15 - abe: 0ac69f63 bne a3,a2,b7c <_vscanf_core.constprop.0+0x214> + a9e: 2adc0863 beq s8,a3,d4e <_vscanf_core.constprop.0+0x3d6> + aa2: 1f86fc63 bgeu a3,s8,c9a <_vscanf_core.constprop.0+0x322> + aa6: f9cc069b addiw a3,s8,-100 + aaa: 0ff6f693 zext.b a3,a3 + aae: 4651 li a2,20 + ab0: 0cd66e63 bltu a2,a3,b8c <_vscanf_core.constprop.0+0x214> + ab4: 00120637 lui a2,0x120 + ab8: 4585 li a1,1 + aba: 00d595b3 sll a1,a1,a3 + abe: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x118799> + ac2: 8e6d and a2,a2,a1 + ac4: ee69 bnez a2,b9e <_vscanf_core.constprop.0+0x226> + ac6: 89b9 andi a1,a1,14 + ac8: 1e059263 bnez a1,cac <_vscanf_core.constprop.0+0x334> + acc: 463d li a2,15 + ace: 0ac69f63 bne a3,a2,b8c <_vscanf_core.constprop.0+0x214> _skip_space(ctx); - ac2: 856e mv a0,s11 - ac4: e31ff0ef jal 8f4 <_skip_space> + ad2: 856e mv a0,s11 + ad4: e31ff0ef jal 904 <_skip_space> char *buf = suppress ? NULL : va_arg(ap, char *); - ac8: ec02 sd zero,24(sp) - aca: 00099763 bnez s3,ad8 <_vscanf_core.constprop.0+0x170> - ace: 67a2 ld a5,8(sp) - ad0: 6398 ld a4,0(a5) - ad2: 07a1 addi a5,a5,8 - ad4: e43e sd a5,8(sp) - ad6: ec3a sd a4,24(sp) + ad8: ec02 sd zero,24(sp) + ada: 00099763 bnez s3,ae8 <_vscanf_core.constprop.0+0x170> + ade: 67a2 ld a5,8(sp) + ae0: 6398 ld a4,0(a5) + ae2: 07a1 addi a5,a5,8 + ae4: e43e sd a5,8(sp) + ae6: ec3a sd a4,24(sp) if (ctx->ungotten >= 0) - ad8: 018da503 lw a0,24(s11) - adc: 2e055b63 bgez a0,dd2 <_vscanf_core.constprop.0+0x46a> - ae0: 856e mv a0,s11 - ae2: dcdff0ef jal 8ae <_in_char.part.0> + ae8: 018da503 lw a0,24(s11) + aec: 2e055b63 bgez a0,de2 <_vscanf_core.constprop.0+0x46a> + af0: 856e mv a0,s11 + af2: dcdff0ef jal 8be <_in_char.part.0> while (c != -1 && !isspace(c)) - ae6: 56fd li a3,-1 - ae8: 6ad50363 beq a0,a3,118e <_vscanf_core.constprop.0+0x826> + af6: 56fd li a3,-1 + af8: 6ad50363 beq a0,a3,119e <_vscanf_core.constprop.0+0x826> return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - aec: 02000693 li a3,32 - af0: 3ed50963 beq a0,a3,ee2 <_vscanf_core.constprop.0+0x57a> - af4: 46a5 li a3,9 - af6: 3ed50663 beq a0,a3,ee2 <_vscanf_core.constprop.0+0x57a> - afa: 46a9 li a3,10 - afc: 3ed50363 beq a0,a3,ee2 <_vscanf_core.constprop.0+0x57a> - b00: 46ad li a3,11 - b02: 3ed50063 beq a0,a3,ee2 <_vscanf_core.constprop.0+0x57a> - b06: 46b1 li a3,12 - b08: 3cd50d63 beq a0,a3,ee2 <_vscanf_core.constprop.0+0x57a> - b0c: 46b5 li a3,13 - b0e: 3cd50a63 beq a0,a3,ee2 <_vscanf_core.constprop.0+0x57a> - b12: 67e2 ld a5,24(sp) - b14: fce6 sd s9,120(sp) - b16: f8ea sd s10,112(sp) - b18: e83e sd a5,16(sp) - b1a: 4d01 li s10,0 + afc: 02000693 li a3,32 + b00: 3ed50963 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b04: 46a5 li a3,9 + b06: 3ed50663 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b0a: 46a9 li a3,10 + b0c: 3ed50363 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b10: 46ad li a3,11 + b12: 3ed50063 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b16: 46b1 li a3,12 + b18: 3cd50d63 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b1c: 46b5 li a3,13 + b1e: 3cd50a63 beq a0,a3,ef2 <_vscanf_core.constprop.0+0x57a> + b22: 67e2 ld a5,24(sp) + b24: fce6 sd s9,120(sp) + b26: f8ea sd s10,112(sp) + b28: e83e sd a5,16(sp) + b2a: 4d01 li s10,0 while (c != -1 && !isspace(c)) - b1c: 5c7d li s8,-1 + b2c: 5c7d li s8,-1 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - b1e: 02000c93 li s9,32 + b2e: 02000c93 li s9,32 if (width > 0 && i >= width) - b22: 01205463 blez s2,b2a <_vscanf_core.constprop.0+0x1c2> - b26: 052d5563 bge s10,s2,b70 <_vscanf_core.constprop.0+0x208> + b32: 01205463 blez s2,b3a <_vscanf_core.constprop.0+0x1c2> + b36: 052d5563 bge s10,s2,b80 <_vscanf_core.constprop.0+0x208> if (!suppress) - b2a: 00099563 bnez s3,b34 <_vscanf_core.constprop.0+0x1cc> + b3a: 00099563 bnez s3,b44 <_vscanf_core.constprop.0+0x1cc> buf[i] = (char)c; - b2e: 67c2 ld a5,16(sp) - b30: 00a78023 sb a0,0(a5) + b3e: 67c2 ld a5,16(sp) + b40: 00a78023 sb a0,0(a5) if (ctx->ungotten >= 0) - b34: 018da503 lw a0,24(s11) + b44: 018da503 lw a0,24(s11) i++; - b38: 2d05 addiw s10,s10,1 + b48: 2d05 addiw s10,s10,1 if (ctx->ungotten >= 0) - b3a: 30055963 bgez a0,e4c <_vscanf_core.constprop.0+0x4e4> - b3e: 856e mv a0,s11 - b40: d6fff0ef jal 8ae <_in_char.part.0> + b4a: 30055963 bgez a0,e5c <_vscanf_core.constprop.0+0x4e4> + b4e: 856e mv a0,s11 + b50: d6fff0ef jal 8be <_in_char.part.0> while (c != -1 && !isspace(c)) - b44: 27850663 beq a0,s8,db0 <_vscanf_core.constprop.0+0x448> + b54: 27850663 beq a0,s8,dc0 <_vscanf_core.constprop.0+0x448> return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - b48: 03950463 beq a0,s9,b70 <_vscanf_core.constprop.0+0x208> - b4c: 47a5 li a5,9 - b4e: 02f50163 beq a0,a5,b70 <_vscanf_core.constprop.0+0x208> - b52: 47a9 li a5,10 - b54: 00f50e63 beq a0,a5,b70 <_vscanf_core.constprop.0+0x208> - b58: 47ad li a5,11 - b5a: 00f50b63 beq a0,a5,b70 <_vscanf_core.constprop.0+0x208> - b5e: 47b1 li a5,12 - b60: 00f50863 beq a0,a5,b70 <_vscanf_core.constprop.0+0x208> - b64: 67c2 ld a5,16(sp) - b66: 0785 addi a5,a5,1 - b68: e83e sd a5,16(sp) - b6a: 47b5 li a5,13 - b6c: faf51be3 bne a0,a5,b22 <_vscanf_core.constprop.0+0x1ba> + b58: 03950463 beq a0,s9,b80 <_vscanf_core.constprop.0+0x208> + b5c: 47a5 li a5,9 + b5e: 02f50163 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b62: 47a9 li a5,10 + b64: 00f50e63 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b68: 47ad li a5,11 + b6a: 00f50b63 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b6e: 47b1 li a5,12 + b70: 00f50863 beq a0,a5,b80 <_vscanf_core.constprop.0+0x208> + b74: 67c2 ld a5,16(sp) + b76: 0785 addi a5,a5,1 + b78: e83e sd a5,16(sp) + b7a: 47b5 li a5,13 + b7c: faf51be3 bne a0,a5,b32 <_vscanf_core.constprop.0+0x1ba> if (!suppress) - b70: 64098a63 beqz s3,11c4 <_vscanf_core.constprop.0+0x85c> - b74: 7ce6 ld s9,120(sp) - b76: 7d46 ld s10,112(sp) + b80: 64098a63 beqz s3,11d4 <_vscanf_core.constprop.0+0x85c> + b84: 7ce6 ld s9,120(sp) + b86: 7d46 ld s10,112(sp) ctx->ungotten = c; - b78: 00adac23 sw a0,24(s11) + b88: 00adac23 sw a0,24(s11) while (*p) - b7c: 001bc783 lbu a5,1(s7) - b80: 794a ld s2,176(sp) - b82: 79aa ld s3,168(sp) - b84: 6baa ld s7,136(sp) - b86: 6c0a ld s8,128(sp) - b88: e00795e3 bnez a5,992 <_vscanf_core.constprop.0+0x2a> - b8c: b581 j 9cc <_vscanf_core.constprop.0+0x64> + b8c: 001bc783 lbu a5,1(s7) + b90: 794a ld s2,176(sp) + b92: 79aa ld s3,168(sp) + b94: 6baa ld s7,136(sp) + b96: 6c0a ld s8,128(sp) + b98: e00795e3 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + b9c: b581 j 9dc <_vscanf_core.constprop.0+0x64> _skip_space(ctx); - b8e: 856e mv a0,s11 - b90: f8ea sd s10,112(sp) - b92: d63ff0ef jal 8f4 <_skip_space> - if (ctx->ungotten >= 0) - b96: 018da503 lw a0,24(s11) - b9a: 24055063 bgez a0,dda <_vscanf_core.constprop.0+0x472> b9e: 856e mv a0,s11 - ba0: d0fff0ef jal 8ae <_in_char.part.0> + ba0: f8ea sd s10,112(sp) + ba2: d63ff0ef jal 904 <_skip_space> + if (ctx->ungotten >= 0) + ba6: 018da503 lw a0,24(s11) + baa: 24055063 bgez a0,dea <_vscanf_core.constprop.0+0x472> + bae: 856e mv a0,s11 + bb0: d0fff0ef jal 8be <_in_char.part.0> if (c == '-' || c == '+') - ba4: fd55069b addiw a3,a0,-43 - ba8: 9af5 andi a3,a3,-3 - baa: 2681 sext.w a3,a3 + bb4: fd55069b addiw a3,a0,-43 + bb8: 9af5 andi a3,a3,-3 + bba: 2681 sext.w a3,a3 int i = 0, c = _in_char(ctx); - bac: 4d01 li s10,0 + bbc: 4d01 li s10,0 if (c == '-' || c == '+') - bae: 3e068863 beqz a3,f9e <_vscanf_core.constprop.0+0x636> + bbe: 3e068863 beqz a3,fae <_vscanf_core.constprop.0+0x636> int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - bb2: 07800693 li a3,120 - bb6: 4641 li a2,16 - bb8: 00dc0863 beq s8,a3,bc8 <_vscanf_core.constprop.0+0x260> - bbc: 06900693 li a3,105 - bc0: 4629 li a2,10 - bc2: 00dc1363 bne s8,a3,bc8 <_vscanf_core.constprop.0+0x260> - bc6: 4601 li a2,0 + bc2: 07800693 li a3,120 + bc6: 4641 li a2,16 + bc8: 00dc0863 beq s8,a3,bd8 <_vscanf_core.constprop.0+0x260> + bcc: 06900693 li a3,105 + bd0: 4629 li a2,10 + bd2: 00dc1363 bne s8,a3,bd8 <_vscanf_core.constprop.0+0x260> + bd6: 4601 li a2,0 while (c != -1 && i < 63) - bc8: 56fd li a3,-1 - bca: 5cd50863 beq a0,a3,119a <_vscanf_core.constprop.0+0x832> - bce: fce6 sd s9,120(sp) - bd0: 02010893 addi a7,sp,32 - bd4: 01a88c33 add s8,a7,s10 + bd8: 56fd li a3,-1 + bda: 5cd50863 beq a0,a3,11aa <_vscanf_core.constprop.0+0x832> + bde: fce6 sd s9,120(sp) + be0: 02010893 addi a7,sp,32 + be4: 01a88c33 add s8,a7,s10 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - bd8: 4cc1 li s9,16 + be8: 4cc1 li s9,16 int digit = (c >= '0' && c <= '9'); - bda: fd05069b addiw a3,a0,-48 - bde: 0005031b sext.w t1,a0 - be2: 00a6b593 sltiu a1,a3,10 + bea: fd05069b addiw a3,a0,-48 + bee: 0005031b sext.w t1,a0 + bf2: 00a6b593 sltiu a1,a3,10 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - be6: 27960a63 beq a2,s9,e5a <_vscanf_core.constprop.0+0x4f2> - bea: 2a060d63 beqz a2,ea4 <_vscanf_core.constprop.0+0x53c> + bf6: 27960a63 beq a2,s9,e6a <_vscanf_core.constprop.0+0x4f2> + bfa: 2a060d63 beqz a2,eb4 <_vscanf_core.constprop.0+0x53c> int x = (c == 'x' || c == 'X'); - bee: 07800793 li a5,120 - bf2: 2ef50363 beq a0,a5,ed8 <_vscanf_core.constprop.0+0x570> - bf6: fa850693 addi a3,a0,-88 - bfa: 0016b693 seqz a3,a3 - bfe: 4301 li t1,0 + bfe: 07800793 li a5,120 + c02: 2ef50363 beq a0,a5,ee8 <_vscanf_core.constprop.0+0x570> + c06: fa850693 addi a3,a0,-88 + c0a: 0016b693 seqz a3,a3 + c0e: 4301 li t1,0 if (width > 0 && i >= width) - c00: 01205463 blez s2,c08 <_vscanf_core.constprop.0+0x2a0> - c04: 032d5a63 bge s10,s2,c38 <_vscanf_core.constprop.0+0x2d0> + c10: 01205463 blez s2,c18 <_vscanf_core.constprop.0+0x2a0> + c14: 032d5a63 bge s10,s2,c48 <_vscanf_core.constprop.0+0x2d0> if (digit || hex || x) - c08: 0066e6b3 or a3,a3,t1 - c0c: 8ecd or a3,a3,a1 - c0e: c68d beqz a3,c38 <_vscanf_core.constprop.0+0x2d0> + c18: 0066e6b3 or a3,a3,t1 + c1c: 8ecd or a3,a3,a1 + c1e: c68d beqz a3,c48 <_vscanf_core.constprop.0+0x2d0> num_buf[i++] = (char)c; - c10: 00ac0023 sb a0,0(s8) + c20: 00ac0023 sb a0,0(s8) if (ctx->ungotten >= 0) - c14: 018da503 lw a0,24(s11) + c24: 018da503 lw a0,24(s11) num_buf[i++] = (char)c; - c18: 2d05 addiw s10,s10,1 + c28: 2d05 addiw s10,s10,1 if (ctx->ungotten >= 0) - c1a: 22055c63 bgez a0,e52 <_vscanf_core.constprop.0+0x4ea> - c1e: 856e mv a0,s11 - c20: e832 sd a2,16(sp) - c22: c8dff0ef jal 8ae <_in_char.part.0> + c2a: 22055c63 bgez a0,e62 <_vscanf_core.constprop.0+0x4ea> + c2e: 856e mv a0,s11 + c30: e832 sd a2,16(sp) + c32: c8dff0ef jal 8be <_in_char.part.0> while (c != -1 && i < 63) - c26: 57fd li a5,-1 - c28: 6642 ld a2,16(sp) - c2a: 3cf50263 beq a0,a5,fee <_vscanf_core.constprop.0+0x686> - c2e: 03f00693 li a3,63 - c32: 0c05 addi s8,s8,1 - c34: fadd13e3 bne s10,a3,bda <_vscanf_core.constprop.0+0x272> + c36: 57fd li a5,-1 + c38: 6642 ld a2,16(sp) + c3a: 3cf50263 beq a0,a5,ffe <_vscanf_core.constprop.0+0x686> + c3e: 03f00693 li a3,63 + c42: 0c05 addi s8,s8,1 + c44: fadd13e3 bne s10,a3,bea <_vscanf_core.constprop.0+0x272> num_buf[i] = '\0'; - c38: 040d0793 addi a5,s10,64 - c3c: 1018 addi a4,sp,32 - c3e: 97ba add a5,a5,a4 - c40: fc078023 sb zero,-64(a5) + c48: 040d0793 addi a5,s10,64 + c4c: 1018 addi a4,sp,32 + c4e: 97ba add a5,a5,a4 + c50: fc078023 sb zero,-64(a5) ctx->ungotten = c; - c44: 00adac23 sw a0,24(s11) - c48: 7ce6 ld s9,120(sp) + c54: 00adac23 sw a0,24(s11) + c58: 7ce6 ld s9,120(sp) if (i == 0) - c4a: 1e0d0663 beqz s10,e36 <_vscanf_core.constprop.0+0x4ce> + c5a: 1e0d0663 beqz s10,e46 <_vscanf_core.constprop.0+0x4ce> if (!suppress) - c4e: 36098363 beqz s3,fb4 <_vscanf_core.constprop.0+0x64c> + c5e: 36098363 beqz s3,fc4 <_vscanf_core.constprop.0+0x64c> while (*p) - c52: 001bc783 lbu a5,1(s7) + c62: 001bc783 lbu a5,1(s7) { - c56: 794a ld s2,176(sp) - c58: 79aa ld s3,168(sp) - c5a: 6baa ld s7,136(sp) - c5c: 6c0a ld s8,128(sp) - c5e: 7d46 ld s10,112(sp) + c66: 794a ld s2,176(sp) + c68: 79aa ld s3,168(sp) + c6a: 6baa ld s7,136(sp) + c6c: 6c0a ld s8,128(sp) + c6e: 7d46 ld s10,112(sp) while (*p) - c60: d20799e3 bnez a5,992 <_vscanf_core.constprop.0+0x2a> - c64: b3a5 j 9cc <_vscanf_core.constprop.0+0x64> + c70: d20799e3 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + c74: b3a5 j 9dc <_vscanf_core.constprop.0+0x64> while (*p >= '0' && *p <= '9') - c66: 00244583 lbu a1,2(s0) + c76: 00244583 lbu a1,2(s0) suppress = 1; - c6a: 4985 li s3,1 + c7a: 4985 li s3,1 p++; - c6c: 0409 addi s0,s0,2 - c6e: b3d9 j a34 <_vscanf_core.constprop.0+0xcc> + c7c: 0409 addi s0,s0,2 + c7e: b3d9 j a44 <_vscanf_core.constprop.0+0xcc> if (*p == 'l') - c70: 00144c03 lbu s8,1(s0) + c80: 00144c03 lbu s8,1(s0) len_mod = 1; - c74: 4785 li a5,1 - c76: ec3e sd a5,24(sp) + c84: 4785 li a5,1 + c86: ec3e sd a5,24(sp) if (*p == 'l') - c78: e0bc17e3 bne s8,a1,a86 <_vscanf_core.constprop.0+0x11e> + c88: e0bc17e3 bne s8,a1,a96 <_vscanf_core.constprop.0+0x11e> len_mod = 2; - c7c: 4789 li a5,2 + c8c: 4789 li a5,2 char spec = *p++; - c7e: 00244c03 lbu s8,2(s0) + c8e: 00244c03 lbu s8,2(s0) p++; - c82: 00240b93 addi s7,s0,2 + c92: 00240b93 addi s7,s0,2 len_mod = 2; - c86: ec3e sd a5,24(sp) - c88: bbfd j a86 <_vscanf_core.constprop.0+0x11e> - c8a: 100c0763 beqz s8,d98 <_vscanf_core.constprop.0+0x430> - c8e: fbbc079b addiw a5,s8,-69 - c92: 0ff7f793 zext.b a5,a5 - c96: 4689 li a3,2 - c98: eef6e2e3 bltu a3,a5,b7c <_vscanf_core.constprop.0+0x214> + c96: ec3e sd a5,24(sp) + c98: bbfd j a96 <_vscanf_core.constprop.0+0x11e> + c9a: 100c0763 beqz s8,da8 <_vscanf_core.constprop.0+0x430> + c9e: fbbc079b addiw a5,s8,-69 + ca2: 0ff7f793 zext.b a5,a5 + ca6: 4689 li a3,2 + ca8: eef6e2e3 bltu a3,a5,b8c <_vscanf_core.constprop.0+0x214> _skip_space(ctx); - c9c: 856e mv a0,s11 - c9e: f8ea sd s10,112(sp) - ca0: c55ff0ef jal 8f4 <_skip_space> - if (ctx->ungotten >= 0) - ca4: 018da783 lw a5,24(s11) - ca8: 1207dd63 bgez a5,de2 <_vscanf_core.constprop.0+0x47a> cac: 856e mv a0,s11 - cae: c01ff0ef jal 8ae <_in_char.part.0> + cae: f8ea sd s10,112(sp) + cb0: c55ff0ef jal 904 <_skip_space> + if (ctx->ungotten >= 0) + cb4: 018da783 lw a5,24(s11) + cb8: 1207dd63 bgez a5,df2 <_vscanf_core.constprop.0+0x47a> + cbc: 856e mv a0,s11 + cbe: c01ff0ef jal 8be <_in_char.part.0> if (c == '-' || c == '+') - cb2: fd55069b addiw a3,a0,-43 - cb6: ffd6f613 andi a2,a3,-3 - cba: 2601 sext.w a2,a2 - cbc: 87aa mv a5,a0 - cbe: 12060c63 beqz a2,df6 <_vscanf_core.constprop.0+0x48e> + cc2: fd55069b addiw a3,a0,-43 + cc6: ffd6f613 andi a2,a3,-3 + cca: 2601 sext.w a2,a2 + ccc: 87aa mv a5,a0 + cce: 12060c63 beqz a2,e06 <_vscanf_core.constprop.0+0x48e> while (c != -1 && i < 63) - cc2: 567d li a2,-1 - cc4: 16c50963 beq a0,a2,e36 <_vscanf_core.constprop.0+0x4ce> - cc8: fce6 sd s9,120(sp) + cd2: 567d li a2,-1 + cd4: 16c50963 beq a0,a2,e46 <_vscanf_core.constprop.0+0x4ce> + cd8: fce6 sd s9,120(sp) int i = 0, c = _in_char(ctx); - cca: 4d01 li s10,0 - ccc: 80000937 lui s2,0x80000 - cd0: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff8797> - cd2: 0932 slli s2,s2,0xc - cd4: 80194913 xori s2,s2,-2047 - cd8: 093e slli s2,s2,0xf - cda: 02010813 addi a6,sp,32 - cde: 01a80cb3 add s9,a6,s10 - ce2: 03a00c13 li s8,58 - ce6: 1935 addi s2,s2,-19 - ce8: a831 j d04 <_vscanf_core.constprop.0+0x39c> - cea: bc5ff0ef jal 8ae <_in_char.part.0> + cda: 4d01 li s10,0 + cdc: 80000937 lui s2,0x80000 + ce0: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff8777> + ce2: 0932 slli s2,s2,0xc + ce4: 80194913 xori s2,s2,-2047 + ce8: 093e slli s2,s2,0xf + cea: 02010813 addi a6,sp,32 + cee: 01a80cb3 add s9,a6,s10 + cf2: 03a00c13 li s8,58 + cf6: 1935 addi s2,s2,-19 + cf8: a831 j d14 <_vscanf_core.constprop.0+0x39c> + cfa: bc5ff0ef jal 8be <_in_char.part.0> while (c != -1 && i < 63) - cee: 577d li a4,-1 - cf0: 87aa mv a5,a0 - cf2: 2ee50563 beq a0,a4,fdc <_vscanf_core.constprop.0+0x674> - cf6: 03f00713 li a4,63 - cfa: 0c85 addi s9,s9,1 - cfc: 1eed0e63 beq s10,a4,ef8 <_vscanf_core.constprop.0+0x590> - d00: fd57869b addiw a3,a5,-43 + cfe: 577d li a4,-1 + d00: 87aa mv a5,a0 + d02: 2ee50563 beq a0,a4,fec <_vscanf_core.constprop.0+0x674> + d06: 03f00713 li a4,63 + d0a: 0c85 addi s9,s9,1 + d0c: 1eed0e63 beq s10,a4,f08 <_vscanf_core.constprop.0+0x590> + d10: fd57869b addiw a3,a5,-43 int c = ctx->ungotten; - d04: 00d95633 srl a2,s2,a3 - d08: 856e mv a0,s11 - d0a: 8a05 andi a2,a2,1 - d0c: 1edc6663 bltu s8,a3,ef8 <_vscanf_core.constprop.0+0x590> - d10: 1e060463 beqz a2,ef8 <_vscanf_core.constprop.0+0x590> + d14: 00d95633 srl a2,s2,a3 + d18: 856e mv a0,s11 + d1a: 8a05 andi a2,a2,1 + d1c: 1edc6663 bltu s8,a3,f08 <_vscanf_core.constprop.0+0x590> + d20: 1e060463 beqz a2,f08 <_vscanf_core.constprop.0+0x590> num_buf[i++] = (char)c; - d14: 00fc8023 sb a5,0(s9) + d24: 00fc8023 sb a5,0(s9) if (ctx->ungotten >= 0) - d18: 018da783 lw a5,24(s11) + d28: 018da783 lw a5,24(s11) num_buf[i++] = (char)c; - d1c: 2d05 addiw s10,s10,1 + d2c: 2d05 addiw s10,s10,1 if (ctx->ungotten >= 0) - d1e: fc07c6e3 bltz a5,cea <_vscanf_core.constprop.0+0x382> + d2e: fc07c6e3 bltz a5,cfa <_vscanf_core.constprop.0+0x382> ctx->ungotten = -1; - d22: 577d li a4,-1 - d24: 00edac23 sw a4,24(s11) + d32: 577d li a4,-1 + d34: 00edac23 sw a4,24(s11) while (c != -1 && i < 63) - d28: b7f9 j cf6 <_vscanf_core.constprop.0+0x38e> + d38: b7f9 j d06 <_vscanf_core.constprop.0+0x38e> if (*p == 'h') - d2a: 00144c03 lbu s8,1(s0) + d3a: 00144c03 lbu s8,1(s0) int len_mod = 0; - d2e: ec02 sd zero,24(sp) + d3e: ec02 sd zero,24(sp) if (*p == 'h') - d30: d4bc1be3 bne s8,a1,a86 <_vscanf_core.constprop.0+0x11e> + d40: d4bc1be3 bne s8,a1,a96 <_vscanf_core.constprop.0+0x11e> char spec = *p++; - d34: 00244c03 lbu s8,2(s0) + d44: 00244c03 lbu s8,2(s0) p++; - d38: 00240b93 addi s7,s0,2 - d3c: b3a9 j a86 <_vscanf_core.constprop.0+0x11e> - d3e: fce6 sd s9,120(sp) - d40: f8ea sd s10,112(sp) + d48: 00240b93 addi s7,s0,2 + d4c: b3a9 j a96 <_vscanf_core.constprop.0+0x11e> + d4e: fce6 sd s9,120(sp) + d50: f8ea sd s10,112(sp) int count = (width > 0) ? width : 1; - d42: 00090c1b sext.w s8,s2 - d46: 0d205a63 blez s2,e1a <_vscanf_core.constprop.0+0x4b2> + d52: 00090c1b sext.w s8,s2 + d56: 0d205a63 blez s2,e2a <_vscanf_core.constprop.0+0x4b2> char *buf = suppress ? NULL : va_arg(ap, char *); - d4a: 4d01 li s10,0 - d4c: 06098d63 beqz s3,dc6 <_vscanf_core.constprop.0+0x45e> + d5a: 4d01 li s10,0 + d5c: 06098d63 beqz s3,dd6 <_vscanf_core.constprop.0+0x45e> for (int i = 0; i < count; i++) - d50: 9c6a add s8,s8,s10 + d60: 9c6a add s8,s8,s10 if (c == -1) - d52: 5cfd li s9,-1 + d62: 5cfd li s9,-1 if (ctx->ungotten >= 0) - d54: 018da783 lw a5,24(s11) + d64: 018da783 lw a5,24(s11) ctx->ungotten = -1; - d58: 856e mv a0,s11 + d68: 856e mv a0,s11 if (ctx->ungotten >= 0) - d5a: 0207dc63 bgez a5,d92 <_vscanf_core.constprop.0+0x42a> - d5e: b51ff0ef jal 8ae <_in_char.part.0> - d62: 87aa mv a5,a0 + d6a: 0207dc63 bgez a5,da2 <_vscanf_core.constprop.0+0x42a> + d6e: b51ff0ef jal 8be <_in_char.part.0> + d72: 87aa mv a5,a0 if (c == -1) - d64: 0b950d63 beq a0,s9,e1e <_vscanf_core.constprop.0+0x4b6> + d74: 0b950d63 beq a0,s9,e2e <_vscanf_core.constprop.0+0x4b6> if (!suppress) - d68: 00099463 bnez s3,d70 <_vscanf_core.constprop.0+0x408> + d78: 00099463 bnez s3,d80 <_vscanf_core.constprop.0+0x408> buf[i] = (char)c; - d6c: 00fd0023 sb a5,0(s10) + d7c: 00fd0023 sb a5,0(s10) for (int i = 0; i < count; i++) - d70: 0d05 addi s10,s10,1 - d72: ffac11e3 bne s8,s10,d54 <_vscanf_core.constprop.0+0x3ec> + d80: 0d05 addi s10,s10,1 + d82: ffac11e3 bne s8,s10,d64 <_vscanf_core.constprop.0+0x3ec> while (*p) - d76: 001bc783 lbu a5,1(s7) + d86: 001bc783 lbu a5,1(s7) if (!suppress) - d7a: 00099363 bnez s3,d80 <_vscanf_core.constprop.0+0x418> + d8a: 00099363 bnez s3,d90 <_vscanf_core.constprop.0+0x418> assigned++; - d7e: 2b05 addiw s6,s6,1 - d80: 794a ld s2,176(sp) - d82: 79aa ld s3,168(sp) - d84: 6baa ld s7,136(sp) - d86: 6c0a ld s8,128(sp) - d88: 7ce6 ld s9,120(sp) - d8a: 7d46 ld s10,112(sp) + d8e: 2b05 addiw s6,s6,1 + d90: 794a ld s2,176(sp) + d92: 79aa ld s3,168(sp) + d94: 6baa ld s7,136(sp) + d96: 6c0a ld s8,128(sp) + d98: 7ce6 ld s9,120(sp) + d9a: 7d46 ld s10,112(sp) while (*p) - d8c: c00793e3 bnez a5,992 <_vscanf_core.constprop.0+0x2a> - d90: b935 j 9cc <_vscanf_core.constprop.0+0x64> + d9c: c00793e3 bnez a5,9a2 <_vscanf_core.constprop.0+0x2a> + da0: b935 j 9dc <_vscanf_core.constprop.0+0x64> ctx->ungotten = -1; - d92: 019dac23 sw s9,24(s11) + da2: 019dac23 sw s9,24(s11) if (c == -1) - d96: bfc9 j d68 <_vscanf_core.constprop.0+0x400> - d98: 640e ld s0,192(sp) - d9a: 74ea ld s1,184(sp) - d9c: 794a ld s2,176(sp) - d9e: 79aa ld s3,168(sp) - da0: 7a0a ld s4,160(sp) - da2: 6aea ld s5,152(sp) - da4: 6baa ld s7,136(sp) - da6: 6c0a ld s8,128(sp) - da8: 7da6 ld s11,104(sp) - daa: b135 j 9d6 <_vscanf_core.constprop.0+0x6e> + da6: bfc9 j d78 <_vscanf_core.constprop.0+0x400> + da8: 640e ld s0,192(sp) + daa: 74ea ld s1,184(sp) + dac: 794a ld s2,176(sp) + dae: 79aa ld s3,168(sp) + db0: 7a0a ld s4,160(sp) + db2: 6aea ld s5,152(sp) + db4: 6baa ld s7,136(sp) + db6: 6c0a ld s8,128(sp) + db8: 7da6 ld s11,104(sp) + dba: b135 j 9e6 <_vscanf_core.constprop.0+0x6e> int width = -1; - dac: 597d li s2,-1 - dae: b975 j a6a <_vscanf_core.constprop.0+0x102> + dbc: 597d li s2,-1 + dbe: b975 j a7a <_vscanf_core.constprop.0+0x102> if (!suppress) - db0: 3c099c63 bnez s3,1188 <_vscanf_core.constprop.0+0x820> + dc0: 3c099c63 bnez s3,1198 <_vscanf_core.constprop.0+0x820> buf[i] = '\0'; - db4: 67e2 ld a5,24(sp) - db6: 01a786b3 add a3,a5,s10 - dba: 00068023 sb zero,0(a3) + dc4: 67e2 ld a5,24(sp) + dc6: 01a786b3 add a3,a5,s10 + dca: 00068023 sb zero,0(a3) while (*p) - dbe: 001bc783 lbu a5,1(s7) + dce: 001bc783 lbu a5,1(s7) assigned++; - dc2: 2b05 addiw s6,s6,1 - dc4: bf75 j d80 <_vscanf_core.constprop.0+0x418> + dd2: 2b05 addiw s6,s6,1 + dd4: bf75 j d90 <_vscanf_core.constprop.0+0x418> char *buf = suppress ? NULL : va_arg(ap, char *); - dc6: 67a2 ld a5,8(sp) - dc8: 0007bd03 ld s10,0(a5) - dcc: 07a1 addi a5,a5,8 - dce: e43e sd a5,8(sp) - dd0: b741 j d50 <_vscanf_core.constprop.0+0x3e8> + dd6: 67a2 ld a5,8(sp) + dd8: 0007bd03 ld s10,0(a5) + ddc: 07a1 addi a5,a5,8 + dde: e43e sd a5,8(sp) + de0: b741 j d60 <_vscanf_core.constprop.0+0x3e8> ctx->ungotten = -1; - dd2: 56fd li a3,-1 - dd4: 00ddac23 sw a3,24(s11) + de2: 56fd li a3,-1 + de4: 00ddac23 sw a3,24(s11) while (c != -1 && !isspace(c)) - dd8: bb11 j aec <_vscanf_core.constprop.0+0x184> + de8: bb11 j afc <_vscanf_core.constprop.0+0x184> ctx->ungotten = -1; - dda: 56fd li a3,-1 - ddc: 00ddac23 sw a3,24(s11) + dea: 56fd li a3,-1 + dec: 00ddac23 sw a3,24(s11) return c; - de0: b3d1 j ba4 <_vscanf_core.constprop.0+0x23c> + df0: b3d1 j bb4 <_vscanf_core.constprop.0+0x23c> if (c == '-' || c == '+') - de2: fd57869b addiw a3,a5,-43 - de6: ffd6f613 andi a2,a3,-3 + df2: fd57869b addiw a3,a5,-43 + df6: ffd6f613 andi a2,a3,-3 ctx->ungotten = -1; - dea: 55fd li a1,-1 - dec: 00bdac23 sw a1,24(s11) + dfa: 55fd li a1,-1 + dfc: 00bdac23 sw a1,24(s11) if (c == '-' || c == '+') - df0: 2601 sext.w a2,a2 - df2: ec061be3 bnez a2,cc8 <_vscanf_core.constprop.0+0x360> + e00: 2601 sext.w a2,a2 + e02: ec061be3 bnez a2,cd8 <_vscanf_core.constprop.0+0x360> num_buf[i++] = (char)c; - df6: 02f10023 sb a5,32(sp) + e06: 02f10023 sb a5,32(sp) if (ctx->ungotten >= 0) - dfa: 018da783 lw a5,24(s11) - dfe: 2207da63 bgez a5,1032 <_vscanf_core.constprop.0+0x6ca> - e02: 856e mv a0,s11 - e04: aabff0ef jal 8ae <_in_char.part.0> + e0a: 018da783 lw a5,24(s11) + e0e: 2207da63 bgez a5,1042 <_vscanf_core.constprop.0+0x6ca> + e12: 856e mv a0,s11 + e14: aabff0ef jal 8be <_in_char.part.0> while (c != -1 && i < 63) - e08: 567d li a2,-1 - e0a: 87aa mv a5,a0 + e18: 567d li a2,-1 + e1a: 87aa mv a5,a0 num_buf[i++] = (char)c; - e0c: 4d05 li s10,1 - e0e: fd55069b addiw a3,a0,-43 + e1c: 4d05 li s10,1 + e1e: fd55069b addiw a3,a0,-43 while (c != -1 && i < 63) - e12: 3ac50163 beq a0,a2,11b4 <_vscanf_core.constprop.0+0x84c> - e16: fce6 sd s9,120(sp) - e18: bd55 j ccc <_vscanf_core.constprop.0+0x364> + e22: 3ac50163 beq a0,a2,11c4 <_vscanf_core.constprop.0+0x84c> + e26: fce6 sd s9,120(sp) + e28: bd55 j cdc <_vscanf_core.constprop.0+0x364> int count = (width > 0) ? width : 1; - e1a: 4c05 li s8,1 - e1c: b73d j d4a <_vscanf_core.constprop.0+0x3e2> - e1e: 640e ld s0,192(sp) - e20: 74ea ld s1,184(sp) - e22: 794a ld s2,176(sp) - e24: 79aa ld s3,168(sp) - e26: 7a0a ld s4,160(sp) - e28: 6aea ld s5,152(sp) - e2a: 6baa ld s7,136(sp) - e2c: 6c0a ld s8,128(sp) - e2e: 7ce6 ld s9,120(sp) - e30: 7d46 ld s10,112(sp) - e32: 7da6 ld s11,104(sp) - e34: b64d j 9d6 <_vscanf_core.constprop.0+0x6e> - e36: 640e ld s0,192(sp) - e38: 74ea ld s1,184(sp) - e3a: 794a ld s2,176(sp) - e3c: 79aa ld s3,168(sp) - e3e: 7a0a ld s4,160(sp) - e40: 6aea ld s5,152(sp) - e42: 6baa ld s7,136(sp) - e44: 6c0a ld s8,128(sp) - e46: 7d46 ld s10,112(sp) - e48: 7da6 ld s11,104(sp) - e4a: b671 j 9d6 <_vscanf_core.constprop.0+0x6e> + e2a: 4c05 li s8,1 + e2c: b73d j d5a <_vscanf_core.constprop.0+0x3e2> + e2e: 640e ld s0,192(sp) + e30: 74ea ld s1,184(sp) + e32: 794a ld s2,176(sp) + e34: 79aa ld s3,168(sp) + e36: 7a0a ld s4,160(sp) + e38: 6aea ld s5,152(sp) + e3a: 6baa ld s7,136(sp) + e3c: 6c0a ld s8,128(sp) + e3e: 7ce6 ld s9,120(sp) + e40: 7d46 ld s10,112(sp) + e42: 7da6 ld s11,104(sp) + e44: b64d j 9e6 <_vscanf_core.constprop.0+0x6e> + e46: 640e ld s0,192(sp) + e48: 74ea ld s1,184(sp) + e4a: 794a ld s2,176(sp) + e4c: 79aa ld s3,168(sp) + e4e: 7a0a ld s4,160(sp) + e50: 6aea ld s5,152(sp) + e52: 6baa ld s7,136(sp) + e54: 6c0a ld s8,128(sp) + e56: 7d46 ld s10,112(sp) + e58: 7da6 ld s11,104(sp) + e5a: b671 j 9e6 <_vscanf_core.constprop.0+0x6e> ctx->ungotten = -1; - e4c: 018dac23 sw s8,24(s11) + e5c: 018dac23 sw s8,24(s11) while (c != -1 && !isspace(c)) - e50: b9e5 j b48 <_vscanf_core.constprop.0+0x1e0> + e60: b9e5 j b58 <_vscanf_core.constprop.0+0x1e0> ctx->ungotten = -1; - e52: 57fd li a5,-1 - e54: 00fdac23 sw a5,24(s11) + e62: 57fd li a5,-1 + e64: 00fdac23 sw a5,24(s11) while (c != -1 && i < 63) - e58: bbd9 j c2e <_vscanf_core.constprop.0+0x2c6> + e68: bbd9 j c3e <_vscanf_core.constprop.0+0x2c6> int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - e5a: f9f3069b addiw a3,t1,-97 - e5e: 4795 li a5,5 - e60: 06d7f263 bgeu a5,a3,ec4 <_vscanf_core.constprop.0+0x55c> - e64: fbf3031b addiw t1,t1,-65 - e68: 4795 li a5,5 - e6a: 0467fd63 bgeu a5,t1,ec4 <_vscanf_core.constprop.0+0x55c> + e6a: f9f3069b addiw a3,t1,-97 + e6e: 4795 li a5,5 + e70: 06d7f263 bgeu a5,a3,ed4 <_vscanf_core.constprop.0+0x55c> + e74: fbf3031b addiw t1,t1,-65 + e78: 4795 li a5,5 + e7a: 0467fd63 bgeu a5,t1,ed4 <_vscanf_core.constprop.0+0x55c> int x = (c == 'x' || c == 'X'); - e6e: 07800693 li a3,120 - e72: 18d50763 beq a0,a3,1000 <_vscanf_core.constprop.0+0x698> - e76: fa850693 addi a3,a0,-88 - e7a: 0016b693 seqz a3,a3 + e7e: 07800693 li a3,120 + e82: 18d50763 beq a0,a3,1010 <_vscanf_core.constprop.0+0x698> + e86: fa850693 addi a3,a0,-88 + e8a: 0016b693 seqz a3,a3 if (base == 0 && i == 1 && num_buf[0] == '0' && x) - e7e: 4301 li t1,0 - e80: 32061663 bnez a2,11ac <_vscanf_core.constprop.0+0x844> - e84: 4785 li a5,1 - e86: 4601 li a2,0 - e88: d6fd1ce3 bne s10,a5,c00 <_vscanf_core.constprop.0+0x298> - e8c: 02014e03 lbu t3,32(sp) - e90: 03000793 li a5,48 - e94: d6fe16e3 bne t3,a5,c00 <_vscanf_core.constprop.0+0x298> - e98: d60684e3 beqz a3,c00 <_vscanf_core.constprop.0+0x298> + e8e: 4301 li t1,0 + e90: 32061663 bnez a2,11bc <_vscanf_core.constprop.0+0x844> + e94: 4785 li a5,1 + e96: 4601 li a2,0 + e98: d6fd1ce3 bne s10,a5,c10 <_vscanf_core.constprop.0+0x298> + e9c: 02014e03 lbu t3,32(sp) + ea0: 03000793 li a5,48 + ea4: d6fe16e3 bne t3,a5,c10 <_vscanf_core.constprop.0+0x298> + ea8: d60684e3 beqz a3,c10 <_vscanf_core.constprop.0+0x298> base = 16; - e9c: 4641 li a2,16 + eac: 4641 li a2,16 if (width > 0 && i >= width) - e9e: d7a919e3 bne s2,s10,c10 <_vscanf_core.constprop.0+0x2a8> - ea2: bb59 j c38 <_vscanf_core.constprop.0+0x2d0> + eae: d7a919e3 bne s2,s10,c20 <_vscanf_core.constprop.0+0x2a8> + eb2: bb59 j c48 <_vscanf_core.constprop.0+0x2d0> int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - ea4: f9f3069b addiw a3,t1,-97 - ea8: 4795 li a5,5 - eaa: 02d7f263 bgeu a5,a3,ece <_vscanf_core.constprop.0+0x566> - eae: fbf3031b addiw t1,t1,-65 - eb2: 0467f063 bgeu a5,t1,ef2 <_vscanf_core.constprop.0+0x58a> + eb4: f9f3069b addiw a3,t1,-97 + eb8: 4795 li a5,5 + eba: 02d7f263 bgeu a5,a3,ede <_vscanf_core.constprop.0+0x566> + ebe: fbf3031b addiw t1,t1,-65 + ec2: 0467f063 bgeu a5,t1,f02 <_vscanf_core.constprop.0+0x58a> int x = (c == 'x' || c == 'X'); - eb6: 07800693 li a3,120 - eba: fad51ee3 bne a0,a3,e76 <_vscanf_core.constprop.0+0x50e> - ebe: 4301 li t1,0 - ec0: 4685 li a3,1 - ec2: b7c9 j e84 <_vscanf_core.constprop.0+0x51c> + ec6: 07800693 li a3,120 + eca: fad51ee3 bne a0,a3,e86 <_vscanf_core.constprop.0+0x50e> + ece: 4301 li t1,0 + ed0: 4685 li a3,1 + ed2: b7c9 j e94 <_vscanf_core.constprop.0+0x51c> int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - ec4: 4305 li t1,1 + ed4: 4305 li t1,1 int x = (c == 'x' || c == 'X'); - ec6: 4681 li a3,0 + ed6: 4681 li a3,0 if (width > 0 && i >= width) - ec8: d3204ee3 bgtz s2,c04 <_vscanf_core.constprop.0+0x29c> - ecc: bb35 j c08 <_vscanf_core.constprop.0+0x2a0> + ed8: d3204ee3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + edc: bb35 j c18 <_vscanf_core.constprop.0+0x2a0> int x = (c == 'x' || c == 'X'); - ece: 4681 li a3,0 + ede: 4681 li a3,0 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - ed0: 4305 li t1,1 + ee0: 4305 li t1,1 if (width > 0 && i >= width) - ed2: d32049e3 bgtz s2,c04 <_vscanf_core.constprop.0+0x29c> - ed6: bb0d j c08 <_vscanf_core.constprop.0+0x2a0> - ed8: 4301 li t1,0 + ee2: d32049e3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + ee6: bb0d j c18 <_vscanf_core.constprop.0+0x2a0> + ee8: 4301 li t1,0 int x = (c == 'x' || c == 'X'); - eda: 4685 li a3,1 + eea: 4685 li a3,1 if (width > 0 && i >= width) - edc: d32044e3 bgtz s2,c04 <_vscanf_core.constprop.0+0x29c> - ee0: bb05 j c10 <_vscanf_core.constprop.0+0x2a8> + eec: d32044e3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + ef0: bb05 j c20 <_vscanf_core.constprop.0+0x2a8> if (!suppress) - ee2: c8099be3 bnez s3,b78 <_vscanf_core.constprop.0+0x210> + ef2: c8099be3 bnez s3,b88 <_vscanf_core.constprop.0+0x210> buf[i] = '\0'; - ee6: 67e2 ld a5,24(sp) - ee8: 00078023 sb zero,0(a5) + ef6: 67e2 ld a5,24(sp) + ef8: 00078023 sb zero,0(a5) ctx->ungotten = c; - eec: 00adac23 sw a0,24(s11) + efc: 00adac23 sw a0,24(s11) if (i > 0 && !suppress) - ef0: b171 j b7c <_vscanf_core.constprop.0+0x214> + f00: b171 j b8c <_vscanf_core.constprop.0+0x214> int x = (c == 'x' || c == 'X'); - ef2: 4681 li a3,0 + f02: 4681 li a3,0 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - ef4: 4305 li t1,1 - ef6: b779 j e84 <_vscanf_core.constprop.0+0x51c> + f04: 4305 li t1,1 + f06: b779 j e94 <_vscanf_core.constprop.0+0x51c> num_buf[i] = '\0'; - ef8: 040d0713 addi a4,s10,64 - efc: 1014 addi a3,sp,32 - efe: 96ba add a3,a3,a4 - f00: fc068023 sb zero,-64(a3) + f08: 040d0713 addi a4,s10,64 + f0c: 1014 addi a3,sp,32 + f0e: 96ba add a3,a3,a4 + f10: fc068023 sb zero,-64(a3) ctx->ungotten = c; - f04: 00fdac23 sw a5,24(s11) + f14: 00fdac23 sw a5,24(s11) if (i == 0) - f08: f00d0be3 beqz s10,e1e <_vscanf_core.constprop.0+0x4b6> - f0c: 7ce6 ld s9,120(sp) + f18: f00d0be3 beqz s10,e2e <_vscanf_core.constprop.0+0x4b6> + f1c: 7ce6 ld s9,120(sp) if (!suppress) - f0e: d40992e3 bnez s3,c52 <_vscanf_core.constprop.0+0x2ea> + f1e: d40992e3 bnez s3,c62 <_vscanf_core.constprop.0+0x2ea> if (*str == '-') - f12: 02014603 lbu a2,32(sp) - f16: 02d00793 li a5,45 - f1a: 1af60963 beq a2,a5,10cc <_vscanf_core.constprop.0+0x764> + f22: 02014603 lbu a2,32(sp) + f26: 02d00793 li a5,45 + f2a: 1af60963 beq a2,a5,10dc <_vscanf_core.constprop.0+0x764> else if (*str == '+') - f1e: 02b00793 li a5,43 - f22: 20f60a63 beq a2,a5,1136 <_vscanf_core.constprop.0+0x7ce> - f26: 00005797 auipc a5,0x5 - f2a: 9227b587 fld fa1,-1758(a5) # 5848 - f2e: 101c addi a5,sp,32 + f2e: 02b00793 li a5,43 + f32: 20f60a63 beq a2,a5,1146 <_vscanf_core.constprop.0+0x7ce> + f36: 00005797 auipc a5,0x5 + f3a: 9327b587 fld fa1,-1742(a5) # 5868 + f3e: 101c addi a5,sp,32 while (*str >= '0' && *str <= '9') - f30: fd06069b addiw a3,a2,-48 - f34: 0ff6f513 zext.b a0,a3 - f38: 45a5 li a1,9 - f3a: f20007d3 fmv.d.x fa5,zero - f3e: 02a5e463 bltu a1,a0,f66 <_vscanf_core.constprop.0+0x5fe> - f42: 00005717 auipc a4,0x5 - f46: 90e73707 fld fa4,-1778(a4) # 5850 - f4a: 4525 li a0,9 - f4c: 0017c603 lbu a2,1(a5) + f40: fd06069b addiw a3,a2,-48 + f44: 0ff6f513 zext.b a0,a3 + f48: 45a5 li a1,9 + f4a: f20007d3 fmv.d.x fa5,zero + f4e: 02a5e463 bltu a1,a0,f76 <_vscanf_core.constprop.0+0x5fe> + f52: 00005717 auipc a4,0x5 + f56: 91e73707 fld fa4,-1762(a4) # 5870 + f5a: 4525 li a0,9 + f5c: 0017c603 lbu a2,1(a5) val = val * 10.0 + (*str - '0'); - f50: d20686d3 fcvt.d.w fa3,a3 + f60: d20686d3 fcvt.d.w fa3,a3 str++; - f54: 0785 addi a5,a5,1 + f64: 0785 addi a5,a5,1 while (*str >= '0' && *str <= '9') - f56: fd06069b addiw a3,a2,-48 - f5a: 0ff6f593 zext.b a1,a3 + f66: fd06069b addiw a3,a2,-48 + f6a: 0ff6f593 zext.b a1,a3 val = val * 10.0 + (*str - '0'); - f5e: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 + f6e: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 while (*str >= '0' && *str <= '9') - f62: feb575e3 bgeu a0,a1,f4c <_vscanf_core.constprop.0+0x5e4> + f72: feb575e3 bgeu a0,a1,f5c <_vscanf_core.constprop.0+0x5e4> if (*str == '.') - f66: 02e00693 li a3,46 - f6a: 16d60a63 beq a2,a3,10de <_vscanf_core.constprop.0+0x776> + f76: 02e00693 li a3,46 + f7a: 16d60a63 beq a2,a3,10ee <_vscanf_core.constprop.0+0x776> if (*str == 'e' || *str == 'E') - f6e: 0007c683 lbu a3,0(a5) - f72: 0df6f693 andi a3,a3,223 - f76: 04500613 li a2,69 - f7a: 0cc68463 beq a3,a2,1042 <_vscanf_core.constprop.0+0x6da> + f7e: 0007c683 lbu a3,0(a5) + f82: 0df6f693 andi a3,a3,223 + f86: 04500613 li a2,69 + f8a: 0cc68463 beq a3,a2,1052 <_vscanf_core.constprop.0+0x6da> *va_arg(ap, double *) = val; - f7e: 6722 ld a4,8(sp) + f8e: 6722 ld a4,8(sp) if (len_mod == 1) - f80: 4685 li a3,1 + f90: 4685 li a3,1 return sign * val; - f82: 12b7f7d3 fmul.d fa5,fa5,fa1 + f92: 12b7f7d3 fmul.d fa5,fa5,fa1 *va_arg(ap, double *) = val; - f86: 631c ld a5,0(a4) + f96: 631c ld a5,0(a4) *va_arg(ap, int64 *) = val; - f88: 0721 addi a4,a4,8 - f8a: e43a sd a4,8(sp) + f98: 0721 addi a4,a4,8 + f9a: e43a sd a4,8(sp) if (len_mod == 1) - f8c: 6762 ld a4,24(sp) - f8e: 18d70b63 beq a4,a3,1124 <_vscanf_core.constprop.0+0x7bc> + f9c: 6762 ld a4,24(sp) + f9e: 18d70b63 beq a4,a3,1134 <_vscanf_core.constprop.0+0x7bc> *va_arg(ap, float *) = (float)val; - f92: 4017f7d3 fcvt.s.d fa5,fa5 + fa2: 4017f7d3 fcvt.s.d fa5,fa5 assigned++; - f96: 2b05 addiw s6,s6,1 + fa6: 2b05 addiw s6,s6,1 *va_arg(ap, float *) = (float)val; - f98: 00f7a027 fsw fa5,0(a5) - f9c: b95d j c52 <_vscanf_core.constprop.0+0x2ea> + fa8: 00f7a027 fsw fa5,0(a5) + fac: b95d j c62 <_vscanf_core.constprop.0+0x2ea> num_buf[i++] = (char)c; - f9e: 02a10023 sb a0,32(sp) + fae: 02a10023 sb a0,32(sp) if (ctx->ungotten >= 0) - fa2: 018da503 lw a0,24(s11) - fa6: 06055463 bgez a0,100e <_vscanf_core.constprop.0+0x6a6> - faa: 856e mv a0,s11 - fac: 903ff0ef jal 8ae <_in_char.part.0> + fb2: 018da503 lw a0,24(s11) + fb6: 06055463 bgez a0,101e <_vscanf_core.constprop.0+0x6a6> + fba: 856e mv a0,s11 + fbc: 903ff0ef jal 8be <_in_char.part.0> num_buf[i++] = (char)c; - fb0: 4d05 li s10,1 - fb2: b101 j bb2 <_vscanf_core.constprop.0+0x24a> + fc0: 4d05 li s10,1 + fc2: b101 j bc2 <_vscanf_core.constprop.0+0x24a> int64 val = strtoll(num_buf, NULL, base); - fb4: 4581 li a1,0 - fb6: 1008 addi a0,sp,32 - fb8: 696030ef jal 464e + fc4: 4581 li a1,0 + fc6: 1008 addi a0,sp,32 + fc8: 696030ef jal 465e *va_arg(ap, int64 *) = val; - fbc: 67a2 ld a5,8(sp) + fcc: 67a2 ld a5,8(sp) if (len_mod == 2) - fbe: 6762 ld a4,24(sp) - fc0: 4689 li a3,2 + fce: 6762 ld a4,24(sp) + fd0: 4689 li a3,2 *va_arg(ap, int64 *) = val; - fc2: 07a1 addi a5,a5,8 + fd2: 07a1 addi a5,a5,8 if (len_mod == 2) - fc4: 16d70363 beq a4,a3,112a <_vscanf_core.constprop.0+0x7c2> + fd4: 16d70363 beq a4,a3,113a <_vscanf_core.constprop.0+0x7c2> *va_arg(ap, int64 *) = val; - fc8: 6722 ld a4,8(sp) + fd8: 6722 ld a4,8(sp) else if (len_mod == 1) - fca: 4605 li a2,1 + fda: 4605 li a2,1 *va_arg(ap, int64 *) = val; - fcc: 6314 ld a3,0(a4) + fdc: 6314 ld a3,0(a4) else if (len_mod == 1) - fce: 6762 ld a4,24(sp) - fd0: 16c70163 beq a4,a2,1132 <_vscanf_core.constprop.0+0x7ca> + fde: 6762 ld a4,24(sp) + fe0: 16c70163 beq a4,a2,1142 <_vscanf_core.constprop.0+0x7ca> *va_arg(ap, int *) = (int)val; - fd4: c288 sw a0,0(a3) + fe4: c288 sw a0,0(a3) assigned++; - fd6: 2b05 addiw s6,s6,1 - fd8: e43e sd a5,8(sp) - fda: b9a5 j c52 <_vscanf_core.constprop.0+0x2ea> + fe6: 2b05 addiw s6,s6,1 + fe8: e43e sd a5,8(sp) + fea: b9a5 j c62 <_vscanf_core.constprop.0+0x2ea> num_buf[i] = '\0'; - fdc: 040d0793 addi a5,s10,64 - fe0: 1018 addi a4,sp,32 - fe2: 00e785b3 add a1,a5,a4 - fe6: fc058023 sb zero,-64(a1) + fec: 040d0793 addi a5,s10,64 + ff0: 1018 addi a4,sp,32 + ff2: 00e785b3 add a1,a5,a4 + ff6: fc058023 sb zero,-64(a1) if (i == 0) - fea: 7ce6 ld s9,120(sp) - fec: b70d j f0e <_vscanf_core.constprop.0+0x5a6> + ffa: 7ce6 ld s9,120(sp) + ffc: b70d j f1e <_vscanf_core.constprop.0+0x5a6> num_buf[i] = '\0'; - fee: 040d0793 addi a5,s10,64 - ff2: 1018 addi a4,sp,32 - ff4: 00e78833 add a6,a5,a4 - ff8: fc080023 sb zero,-64(a6) + ffe: 040d0793 addi a5,s10,64 + 1002: 1018 addi a4,sp,32 + 1004: 00e78833 add a6,a5,a4 + 1008: fc080023 sb zero,-64(a6) if (i == 0) - ffc: 7ce6 ld s9,120(sp) - ffe: b981 j c4e <_vscanf_core.constprop.0+0x2e6> + 100c: 7ce6 ld s9,120(sp) + 100e: b981 j c5e <_vscanf_core.constprop.0+0x2e6> int x = (c == 'x' || c == 'X'); - 1000: 4301 li t1,0 - 1002: 4685 li a3,1 + 1010: 4301 li t1,0 + 1012: 4685 li a3,1 if (width > 0 && i >= width) - 1004: c12040e3 bgtz s2,c04 <_vscanf_core.constprop.0+0x29c> - 1008: b101 j c08 <_vscanf_core.constprop.0+0x2a0> + 1014: c12040e3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + 1018: b101 j c18 <_vscanf_core.constprop.0+0x2a0> int assigned = 0; - 100a: 4b01 li s6,0 - 100c: b2e9 j 9d6 <_vscanf_core.constprop.0+0x6e> + 101a: 4b01 li s6,0 + 101c: b2e9 j 9e6 <_vscanf_core.constprop.0+0x6e> ctx->ungotten = -1; - 100e: 56fd li a3,-1 - 1010: fce6 sd s9,120(sp) - 1012: 00ddac23 sw a3,24(s11) + 101e: 56fd li a3,-1 + 1020: fce6 sd s9,120(sp) + 1022: 00ddac23 sw a3,24(s11) int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 1016: 07800693 li a3,120 - 101a: 4641 li a2,16 + 1026: 07800693 li a3,120 + 102a: 4641 li a2,16 num_buf[i++] = (char)c; - 101c: 4d05 li s10,1 + 102c: 4d05 li s10,1 int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 101e: badc09e3 beq s8,a3,bd0 <_vscanf_core.constprop.0+0x268> - 1022: 06900693 li a3,105 - 1026: 4629 li a2,10 + 102e: badc09e3 beq s8,a3,be0 <_vscanf_core.constprop.0+0x268> + 1032: 06900693 li a3,105 + 1036: 4629 li a2,10 num_buf[i++] = (char)c; - 1028: 4d05 li s10,1 + 1038: 4d05 li s10,1 int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 102a: badc13e3 bne s8,a3,bd0 <_vscanf_core.constprop.0+0x268> - 102e: 4601 li a2,0 - 1030: b645 j bd0 <_vscanf_core.constprop.0+0x268> + 103a: badc13e3 bne s8,a3,be0 <_vscanf_core.constprop.0+0x268> + 103e: 4601 li a2,0 + 1040: b645 j be0 <_vscanf_core.constprop.0+0x268> ctx->ungotten = -1; - 1032: 56fd li a3,-1 - 1034: fce6 sd s9,120(sp) - 1036: 00ddac23 sw a3,24(s11) + 1042: 56fd li a3,-1 + 1044: fce6 sd s9,120(sp) + 1046: 00ddac23 sw a3,24(s11) num_buf[i++] = (char)c; - 103a: 4d05 li s10,1 - 103c: fd57869b addiw a3,a5,-43 - 1040: b171 j ccc <_vscanf_core.constprop.0+0x364> + 104a: 4d05 li s10,1 + 104c: fd57869b addiw a3,a5,-43 + 1050: b171 j cdc <_vscanf_core.constprop.0+0x364> if (*str == '-') - 1042: 0017c583 lbu a1,1(a5) - 1046: 02d00693 li a3,45 - 104a: 0ed58f63 beq a1,a3,1148 <_vscanf_core.constprop.0+0x7e0> + 1052: 0017c583 lbu a1,1(a5) + 1056: 02d00693 li a3,45 + 105a: 0ed58f63 beq a1,a3,1158 <_vscanf_core.constprop.0+0x7e0> else if (*str == '+') - 104e: 02b00693 li a3,43 - 1052: 10d58e63 beq a1,a3,116e <_vscanf_core.constprop.0+0x806> + 105e: 02b00693 li a3,43 + 1062: 10d58e63 beq a1,a3,117e <_vscanf_core.constprop.0+0x806> while (*str >= '0' && *str <= '9') - 1056: fd05861b addiw a2,a1,-48 - 105a: 0ff67513 zext.b a0,a2 - 105e: 45a5 li a1,9 + 1066: fd05861b addiw a2,a1,-48 + 106a: 0ff67513 zext.b a0,a2 + 106e: 45a5 li a1,9 str++; - 1060: 00178693 addi a3,a5,1 + 1070: 00178693 addi a3,a5,1 int esign = 1; - 1064: 4805 li a6,1 + 1074: 4805 li a6,1 while (*str >= '0' && *str <= '9') - 1066: 04a5ec63 bltu a1,a0,10be <_vscanf_core.constprop.0+0x756> - 106a: 4525 li a0,9 - 106c: 0016c583 lbu a1,1(a3) + 1076: 04a5ec63 bltu a1,a0,10ce <_vscanf_core.constprop.0+0x756> + 107a: 4525 li a0,9 + 107c: 0016c583 lbu a1,1(a3) eval = eval * 10 + (*str - '0'); - 1070: 0029979b slliw a5,s3,0x2 - 1074: 013787bb addw a5,a5,s3 - 1078: 0017979b slliw a5,a5,0x1 - 107c: 00f609bb addw s3,a2,a5 + 1080: 0029979b slliw a5,s3,0x2 + 1084: 013787bb addw a5,a5,s3 + 1088: 0017979b slliw a5,a5,0x1 + 108c: 00f609bb addw s3,a2,a5 while (*str >= '0' && *str <= '9') - 1080: fd05861b addiw a2,a1,-48 - 1084: 0ff67593 zext.b a1,a2 + 1090: fd05861b addiw a2,a1,-48 + 1094: 0ff67593 zext.b a1,a2 str++; - 1088: 0685 addi a3,a3,1 + 1098: 0685 addi a3,a3,1 while (*str >= '0' && *str <= '9') - 108a: feb571e3 bgeu a0,a1,106c <_vscanf_core.constprop.0+0x704> + 109a: feb571e3 bgeu a0,a1,107c <_vscanf_core.constprop.0+0x704> while (eval--) - 108e: fff9879b addiw a5,s3,-1 - 1092: 12098463 beqz s3,11ba <_vscanf_core.constprop.0+0x852> + 109e: fff9879b addiw a5,s3,-1 + 10a2: 12098463 beqz s3,11ca <_vscanf_core.constprop.0+0x852> double p = 1.0; - 1096: 00004717 auipc a4,0x4 - 109a: 7b273687 fld fa3,1970(a4) # 5848 - 109e: 00004717 auipc a4,0x4 - 10a2: 7b273707 fld fa4,1970(a4) # 5850 + 10a6: 00004717 auipc a4,0x4 + 10aa: 7c273687 fld fa3,1986(a4) # 5868 + 10ae: 00004717 auipc a4,0x4 + 10b2: 7c273707 fld fa4,1986(a4) # 5870 while (eval--) - 10a6: 56fd li a3,-1 - 10a8: 37fd addiw a5,a5,-1 + 10b6: 56fd li a3,-1 + 10b8: 37fd addiw a5,a5,-1 p *= 10.0; - 10aa: 12e6f6d3 fmul.d fa3,fa3,fa4 + 10ba: 12e6f6d3 fmul.d fa3,fa3,fa4 while (eval--) - 10ae: fed79de3 bne a5,a3,10a8 <_vscanf_core.constprop.0+0x740> + 10be: fed79de3 bne a5,a3,10b8 <_vscanf_core.constprop.0+0x740> if (esign == 1) - 10b2: 4785 li a5,1 - 10b4: 00f80963 beq a6,a5,10c6 <_vscanf_core.constprop.0+0x75e> + 10c2: 4785 li a5,1 + 10c4: 00f80963 beq a6,a5,10d6 <_vscanf_core.constprop.0+0x75e> val /= p; - 10b8: 1ad7f7d3 fdiv.d fa5,fa5,fa3 - 10bc: b5c9 j f7e <_vscanf_core.constprop.0+0x616> + 10c8: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 10cc: b5c9 j f8e <_vscanf_core.constprop.0+0x616> double p = 1.0; - 10be: 00004797 auipc a5,0x4 - 10c2: 78a7b687 fld fa3,1930(a5) # 5848 + 10ce: 00004797 auipc a5,0x4 + 10d2: 79a7b687 fld fa3,1946(a5) # 5868 val *= p; - 10c6: 12d7f7d3 fmul.d fa5,fa5,fa3 - 10ca: bd55 j f7e <_vscanf_core.constprop.0+0x616> + 10d6: 12d7f7d3 fmul.d fa5,fa5,fa3 + 10da: bd55 j f8e <_vscanf_core.constprop.0+0x616> while (*str >= '0' && *str <= '9') - 10cc: 00004797 auipc a5,0x4 - 10d0: 7747b587 fld fa1,1908(a5) # 5840 - 10d4: 02114603 lbu a2,33(sp) + 10dc: 00004797 auipc a5,0x4 + 10e0: 7847b587 fld fa1,1924(a5) # 5860 + 10e4: 02114603 lbu a2,33(sp) str++; - 10d8: 02110793 addi a5,sp,33 - 10dc: bd91 j f30 <_vscanf_core.constprop.0+0x5c8> + 10e8: 02110793 addi a5,sp,33 + 10ec: bd91 j f40 <_vscanf_core.constprop.0+0x5c8> while (*str >= '0' && *str <= '9') - 10de: 0017c683 lbu a3,1(a5) - 10e2: 45a5 li a1,9 + 10ee: 0017c683 lbu a3,1(a5) + 10f2: 45a5 li a1,9 str++; - 10e4: 0785 addi a5,a5,1 + 10f4: 0785 addi a5,a5,1 while (*str >= '0' && *str <= '9') - 10e6: fd06861b addiw a2,a3,-48 - 10ea: 0ff67513 zext.b a0,a2 - 10ee: e8a5e2e3 bltu a1,a0,f72 <_vscanf_core.constprop.0+0x60a> + 10f6: fd06861b addiw a2,a3,-48 + 10fa: 0ff67513 zext.b a0,a2 + 10fe: e8a5e2e3 bltu a1,a0,f82 <_vscanf_core.constprop.0+0x60a> double div = 10.0; - 10f2: 00004717 auipc a4,0x4 - 10f6: 75e73707 fld fa4,1886(a4) # 5850 - 10fa: 22e70653 fmv.d fa2,fa4 + 1102: 00004717 auipc a4,0x4 + 1106: 76e73707 fld fa4,1902(a4) # 5870 + 110a: 22e70653 fmv.d fa2,fa4 while (*str >= '0' && *str <= '9') - 10fe: 4525 li a0,9 + 110e: 4525 li a0,9 val += (*str - '0') / div; - 1100: d20606d3 fcvt.d.w fa3,a2 + 1110: d20606d3 fcvt.d.w fa3,a2 while (*str >= '0' && *str <= '9') - 1104: 0017c683 lbu a3,1(a5) + 1114: 0017c683 lbu a3,1(a5) str++; - 1108: 0785 addi a5,a5,1 + 1118: 0785 addi a5,a5,1 val += (*str - '0') / div; - 110a: 1ac6f6d3 fdiv.d fa3,fa3,fa2 + 111a: 1ac6f6d3 fdiv.d fa3,fa3,fa2 while (*str >= '0' && *str <= '9') - 110e: fd06861b addiw a2,a3,-48 - 1112: 0ff67593 zext.b a1,a2 + 111e: fd06861b addiw a2,a3,-48 + 1122: 0ff67593 zext.b a1,a2 div *= 10.0; - 1116: 12e67653 fmul.d fa2,fa2,fa4 + 1126: 12e67653 fmul.d fa2,fa2,fa4 val += (*str - '0') / div; - 111a: 02d7f7d3 fadd.d fa5,fa5,fa3 + 112a: 02d7f7d3 fadd.d fa5,fa5,fa3 while (*str >= '0' && *str <= '9') - 111e: feb571e3 bgeu a0,a1,1100 <_vscanf_core.constprop.0+0x798> - 1122: bd81 j f72 <_vscanf_core.constprop.0+0x60a> + 112e: feb571e3 bgeu a0,a1,1110 <_vscanf_core.constprop.0+0x798> + 1132: bd81 j f82 <_vscanf_core.constprop.0+0x60a> *va_arg(ap, double *) = val; - 1124: a39c fsd fa5,0(a5) + 1134: a39c fsd fa5,0(a5) assigned++; - 1126: 2b05 addiw s6,s6,1 - 1128: b62d j c52 <_vscanf_core.constprop.0+0x2ea> + 1136: 2b05 addiw s6,s6,1 + 1138: b62d j c62 <_vscanf_core.constprop.0+0x2ea> *va_arg(ap, int64 *) = val; - 112a: 6722 ld a4,8(sp) - 112c: 6314 ld a3,0(a4) - 112e: e288 sd a0,0(a3) - 1130: b55d j fd6 <_vscanf_core.constprop.0+0x66e> + 113a: 6722 ld a4,8(sp) + 113c: 6314 ld a3,0(a4) + 113e: e288 sd a0,0(a3) + 1140: b55d j fe6 <_vscanf_core.constprop.0+0x66e> *va_arg(ap, long *) = (long)val; - 1132: e288 sd a0,0(a3) - 1134: b54d j fd6 <_vscanf_core.constprop.0+0x66e> + 1142: e288 sd a0,0(a3) + 1144: b54d j fe6 <_vscanf_core.constprop.0+0x66e> while (*str >= '0' && *str <= '9') - 1136: 00004797 auipc a5,0x4 - 113a: 7127b587 fld fa1,1810(a5) # 5848 - 113e: 02114603 lbu a2,33(sp) + 1146: 00004797 auipc a5,0x4 + 114a: 7227b587 fld fa1,1826(a5) # 5868 + 114e: 02114603 lbu a2,33(sp) str++; - 1142: 02110793 addi a5,sp,33 - 1146: b3ed j f30 <_vscanf_core.constprop.0+0x5c8> + 1152: 02110793 addi a5,sp,33 + 1156: b3ed j f40 <_vscanf_core.constprop.0+0x5c8> while (*str >= '0' && *str <= '9') - 1148: 0027c583 lbu a1,2(a5) + 1158: 0027c583 lbu a1,2(a5) str++; - 114c: 00278693 addi a3,a5,2 + 115c: 00278693 addi a3,a5,2 while (*str >= '0' && *str <= '9') - 1150: 4525 li a0,9 - 1152: fd05861b addiw a2,a1,-48 - 1156: 0ff67793 zext.b a5,a2 + 1160: 4525 li a0,9 + 1162: fd05861b addiw a2,a1,-48 + 1166: 0ff67793 zext.b a5,a2 esign = -1; - 115a: 587d li a6,-1 + 116a: 587d li a6,-1 while (*str >= '0' && *str <= '9') - 115c: f0f577e3 bgeu a0,a5,106a <_vscanf_core.constprop.0+0x702> + 116c: f0f577e3 bgeu a0,a5,107a <_vscanf_core.constprop.0+0x702> double p = 1.0; - 1160: 00004797 auipc a5,0x4 - 1164: 6e87b687 fld fa3,1768(a5) # 5848 + 1170: 00004797 auipc a5,0x4 + 1174: 6f87b687 fld fa3,1784(a5) # 5868 val /= p; - 1168: 1ad7f7d3 fdiv.d fa5,fa5,fa3 - 116c: bd09 j f7e <_vscanf_core.constprop.0+0x616> + 1178: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 117c: bd09 j f8e <_vscanf_core.constprop.0+0x616> while (*str >= '0' && *str <= '9') - 116e: 0027c583 lbu a1,2(a5) + 117e: 0027c583 lbu a1,2(a5) str++; - 1172: 00278693 addi a3,a5,2 + 1182: 00278693 addi a3,a5,2 while (*str >= '0' && *str <= '9') - 1176: 4525 li a0,9 - 1178: fd05861b addiw a2,a1,-48 - 117c: 0ff67793 zext.b a5,a2 - 1180: f2f56fe3 bltu a0,a5,10be <_vscanf_core.constprop.0+0x756> + 1186: 4525 li a0,9 + 1188: fd05861b addiw a2,a1,-48 + 118c: 0ff67793 zext.b a5,a2 + 1190: f2f56fe3 bltu a0,a5,10ce <_vscanf_core.constprop.0+0x756> int esign = 1; - 1184: 4805 li a6,1 - 1186: b5d5 j 106a <_vscanf_core.constprop.0+0x702> + 1194: 4805 li a6,1 + 1196: b5d5 j 107a <_vscanf_core.constprop.0+0x702> while (*p) - 1188: 001bc783 lbu a5,1(s7) - 118c: bed5 j d80 <_vscanf_core.constprop.0+0x418> + 1198: 001bc783 lbu a5,1(s7) + 119c: bed5 j d90 <_vscanf_core.constprop.0+0x418> if (!suppress) - 118e: 9e0997e3 bnez s3,b7c <_vscanf_core.constprop.0+0x214> + 119e: 9e0997e3 bnez s3,b8c <_vscanf_core.constprop.0+0x214> buf[i] = '\0'; - 1192: 67e2 ld a5,24(sp) - 1194: 00078023 sb zero,0(a5) - 1198: b2d5 j b7c <_vscanf_core.constprop.0+0x214> + 11a2: 67e2 ld a5,24(sp) + 11a4: 00078023 sb zero,0(a5) + 11a8: b2d5 j b8c <_vscanf_core.constprop.0+0x214> num_buf[i] = '\0'; - 119a: 040d0793 addi a5,s10,64 - 119e: 1018 addi a4,sp,32 - 11a0: 97ba add a5,a5,a4 - 11a2: fc078023 sb zero,-64(a5) + 11aa: 040d0793 addi a5,s10,64 + 11ae: 1018 addi a4,sp,32 + 11b0: 97ba add a5,a5,a4 + 11b2: fc078023 sb zero,-64(a5) if (i == 0) - 11a6: aa0d14e3 bnez s10,c4e <_vscanf_core.constprop.0+0x2e6> - 11aa: b171 j e36 <_vscanf_core.constprop.0+0x4ce> - 11ac: 4641 li a2,16 + 11b6: aa0d14e3 bnez s10,c5e <_vscanf_core.constprop.0+0x2e6> + 11ba: b171 j e46 <_vscanf_core.constprop.0+0x4ce> + 11bc: 4641 li a2,16 if (width > 0 && i >= width) - 11ae: a5204be3 bgtz s2,c04 <_vscanf_core.constprop.0+0x29c> - 11b2: bc99 j c08 <_vscanf_core.constprop.0+0x2a0> + 11be: a5204be3 bgtz s2,c14 <_vscanf_core.constprop.0+0x29c> + 11c2: bc99 j c18 <_vscanf_core.constprop.0+0x2a0> num_buf[i] = '\0'; - 11b4: 020100a3 sb zero,33(sp) + 11c4: 020100a3 sb zero,33(sp) if (i == 0) - 11b8: bb99 j f0e <_vscanf_core.constprop.0+0x5a6> + 11c8: bb99 j f1e <_vscanf_core.constprop.0+0x5a6> double p = 1.0; - 11ba: 00004797 auipc a5,0x4 - 11be: 68e7b687 fld fa3,1678(a5) # 5848 - 11c2: bdc5 j 10b2 <_vscanf_core.constprop.0+0x74a> + 11ca: 00004797 auipc a5,0x4 + 11ce: 69e7b687 fld fa3,1694(a5) # 5868 + 11d2: bdc5 j 10c2 <_vscanf_core.constprop.0+0x74a> buf[i] = '\0'; - 11c4: 67e2 ld a5,24(sp) - 11c6: 01a786b3 add a3,a5,s10 - 11ca: 00068023 sb zero,0(a3) + 11d4: 67e2 ld a5,24(sp) + 11d6: 01a786b3 add a3,a5,s10 + 11da: 00068023 sb zero,0(a3) ctx->ungotten = c; - 11ce: 00adac23 sw a0,24(s11) + 11de: 00adac23 sw a0,24(s11) while (*p) - 11d2: 001bc783 lbu a5,1(s7) - 11d6: b6f5 j dc2 <_vscanf_core.constprop.0+0x45a> + 11e2: 001bc783 lbu a5,1(s7) + 11e6: b6f5 j dd2 <_vscanf_core.constprop.0+0x45a> -00000000000011d8 <_out_char>: +00000000000011e8 <_out_char>: { - 11d8: 7179 addi sp,sp,-48 - 11da: ec26 sd s1,24(sp) + 11e8: 7179 addi sp,sp,-48 + 11ea: ec26 sd s1,24(sp) if (ctx->stream) - 11dc: 6d04 ld s1,24(a0) + 11ec: 6d04 ld s1,24(a0) { - 11de: f022 sd s0,32(sp) - 11e0: f406 sd ra,40(sp) - 11e2: 842a mv s0,a0 - 11e4: 872e mv a4,a1 + 11ee: f022 sd s0,32(sp) + 11f0: f406 sd ra,40(sp) + 11f2: 842a mv s0,a0 + 11f4: 872e mv a4,a1 if (ctx->stream) - 11e6: c0a1 beqz s1,1226 <_out_char+0x4e> - 11e8: e84a sd s2,16(sp) + 11f6: c0a1 beqz s1,1236 <_out_char+0x4e> + 11f8: e84a sd s2,16(sp) if (stream->buf_mode == 2) - 11ea: 41c4a903 lw s2,1052(s1) - 11ee: 4789 li a5,2 - 11f0: 04f90d63 beq s2,a5,124a <_out_char+0x72> + 11fa: 41c4a903 lw s2,1052(s1) + 11fe: 4789 li a5,2 + 1200: 04f90d63 beq s2,a5,125a <_out_char+0x72> stream->buffer[stream->buf_write_pos++] = (char)c; - 11f4: 4104a783 lw a5,1040(s1) + 1204: 4104a783 lw a5,1040(s1) if (stream->buf_write_pos >= BUFSIZ) - 11f8: 3ff00693 li a3,1023 + 1208: 3ff00693 li a3,1023 stream->buffer[stream->buf_write_pos++] = (char)c; - 11fc: 0017861b addiw a2,a5,1 - 1200: 40c4a823 sw a2,1040(s1) - 1204: 97a6 add a5,a5,s1 - 1206: 00b78823 sb a1,16(a5) + 120c: 0017861b addiw a2,a5,1 + 1210: 40c4a823 sw a2,1040(s1) + 1214: 97a6 add a5,a5,s1 + 1216: 00b78823 sb a1,16(a5) if (stream->buf_write_pos >= BUFSIZ) - 120a: 08c6c063 blt a3,a2,128a <_out_char+0xb2> + 121a: 08c6c063 blt a3,a2,129a <_out_char+0xb2> else if (stream->buf_mode == 1 && c == '\n') - 120e: 4785 li a5,1 - 1210: 04f90a63 beq s2,a5,1264 <_out_char+0x8c> + 121e: 4785 li a5,1 + 1220: 04f90a63 beq s2,a5,1274 <_out_char+0x8c> ctx->written++; - 1214: 681c ld a5,16(s0) - 1216: 6942 ld s2,16(sp) + 1224: 681c ld a5,16(s0) + 1226: 6942 ld s2,16(sp) } - 1218: 70a2 ld ra,40(sp) + 1228: 70a2 ld ra,40(sp) ctx->written++; - 121a: 0785 addi a5,a5,1 - 121c: e81c sd a5,16(s0) + 122a: 0785 addi a5,a5,1 + 122c: e81c sd a5,16(s0) } - 121e: 7402 ld s0,32(sp) - 1220: 64e2 ld s1,24(sp) - 1222: 6145 addi sp,sp,48 - 1224: 8082 ret + 122e: 7402 ld s0,32(sp) + 1230: 64e2 ld s1,24(sp) + 1232: 6145 addi sp,sp,48 + 1234: 8082 ret if (ctx->limit > 0 && ctx->written < ctx->limit - 1) - 1226: 6514 ld a3,8(a0) - 1228: 691c ld a5,16(a0) - 122a: ca89 beqz a3,123c <_out_char+0x64> - 122c: 16fd addi a3,a3,-1 - 122e: 00d7f763 bgeu a5,a3,123c <_out_char+0x64> + 1236: 6514 ld a3,8(a0) + 1238: 691c ld a5,16(a0) + 123a: ca89 beqz a3,124c <_out_char+0x64> + 123c: 16fd addi a3,a3,-1 + 123e: 00d7f763 bgeu a5,a3,124c <_out_char+0x64> ctx->buf[ctx->written] = c; - 1232: 6114 ld a3,0(a0) - 1234: 97b6 add a5,a5,a3 - 1236: 00b78023 sb a1,0(a5) + 1242: 6114 ld a3,0(a0) + 1244: 97b6 add a5,a5,a3 + 1246: 00b78023 sb a1,0(a5) ctx->written++; - 123a: 691c ld a5,16(a0) - 123c: 0785 addi a5,a5,1 + 124a: 691c ld a5,16(a0) + 124c: 0785 addi a5,a5,1 } - 123e: 70a2 ld ra,40(sp) + 124e: 70a2 ld ra,40(sp) ctx->written++; - 1240: e81c sd a5,16(s0) + 1250: e81c sd a5,16(s0) } - 1242: 7402 ld s0,32(sp) - 1244: 64e2 ld s1,24(sp) - 1246: 6145 addi sp,sp,48 - 1248: 8082 ret + 1252: 7402 ld s0,32(sp) + 1254: 64e2 ld s1,24(sp) + 1256: 6145 addi sp,sp,48 + 1258: 8082 ret if (write(stream->fd, &ch, 1) != 1) - 124a: 4088 lw a0,0(s1) - 124c: 4605 li a2,1 - 124e: 00f10593 addi a1,sp,15 + 125a: 4088 lw a0,0(s1) + 125c: 4605 li a2,1 + 125e: 00f10593 addi a1,sp,15 char ch = (char)c; - 1252: 00e107a3 sb a4,15(sp) + 1262: 00e107a3 sb a4,15(sp) if (write(stream->fd, &ch, 1) != 1) - 1256: e93fe0ef jal e8 - 125a: 4785 li a5,1 - 125c: faf50ce3 beq a0,a5,1214 <_out_char+0x3c> + 1266: e8bfe0ef jal f0 + 126a: 4785 li a5,1 + 126c: faf50ce3 beq a0,a5,1224 <_out_char+0x3c> stream->error = 1; - 1260: c49c sw a5,8(s1) + 1270: c49c sw a5,8(s1) return EOF; - 1262: bf4d j 1214 <_out_char+0x3c> + 1272: bf4d j 1224 <_out_char+0x3c> else if (stream->buf_mode == 1 && c == '\n') - 1264: 47a9 li a5,10 - 1266: faf597e3 bne a1,a5,1214 <_out_char+0x3c> + 1274: 47a9 li a5,10 + 1276: faf597e3 bne a1,a5,1224 <_out_char+0x3c> if (stream->buf_write_pos > 0) - 126a: fac055e3 blez a2,1214 <_out_char+0x3c> + 127a: fac055e3 blez a2,1224 <_out_char+0x3c> int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 126e: 4088 lw a0,0(s1) - 1270: 01048593 addi a1,s1,16 - 1274: e75fe0ef jal e8 + 127e: 4088 lw a0,0(s1) + 1280: 01048593 addi a1,s1,16 + 1284: e6dfe0ef jal f0 if (ret < stream->buf_write_pos) - 1278: 4104a783 lw a5,1040(s1) - 127c: 02f55063 bge a0,a5,129c <_out_char+0xc4> + 1288: 4104a783 lw a5,1040(s1) + 128c: 02f55063 bge a0,a5,12ac <_out_char+0xc4> stream->error = 1; - 1280: 0124a423 sw s2,8(s1) + 1290: 0124a423 sw s2,8(s1) stream->buf_write_pos = 0; - 1284: 4004a823 sw zero,1040(s1) + 1294: 4004a823 sw zero,1040(s1) return EOF; - 1288: b771 j 1214 <_out_char+0x3c> + 1298: b771 j 1224 <_out_char+0x3c> int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 128a: 4088 lw a0,0(s1) - 128c: 01048593 addi a1,s1,16 - 1290: e59fe0ef jal e8 + 129a: 4088 lw a0,0(s1) + 129c: 01048593 addi a1,s1,16 + 12a0: e51fe0ef jal f0 if (ret < stream->buf_write_pos) - 1294: 4104a783 lw a5,1040(s1) - 1298: 00f54563 blt a0,a5,12a2 <_out_char+0xca> + 12a4: 4104a783 lw a5,1040(s1) + 12a8: 00f54563 blt a0,a5,12b2 <_out_char+0xca> stream->buf_write_pos = 0; - 129c: 4004a823 sw zero,1040(s1) - 12a0: bf95 j 1214 <_out_char+0x3c> + 12ac: 4004a823 sw zero,1040(s1) + 12b0: bf95 j 1224 <_out_char+0x3c> stream->error = 1; - 12a2: 4785 li a5,1 - 12a4: c49c sw a5,8(s1) + 12b2: 4785 li a5,1 + 12b4: c49c sw a5,8(s1) stream->buf_write_pos = 0; - 12a6: 4004a823 sw zero,1040(s1) + 12b6: 4004a823 sw zero,1040(s1) return EOF; - 12aa: b7ad j 1214 <_out_char+0x3c> + 12ba: b7ad j 1224 <_out_char+0x3c> -00000000000012ac : +00000000000012bc : "75767778798081828384858687888990919293949596979899" }; STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, char pperiod) { stbsp__period = pperiod; - 12ac: 00005797 auipc a5,0x5 - 12b0: 6c478793 addi a5,a5,1732 # 6970 - 12b4: 0cb78623 sb a1,204(a5) + 12bc: 00005797 auipc a5,0x5 + 12c0: 6d478793 addi a5,a5,1748 # 6990 + 12c4: 0cb78623 sb a1,204(a5) stbsp__comma = pcomma; - 12b8: 0ca786a3 sb a0,205(a5) + 12c8: 0ca786a3 sb a0,205(a5) } - 12bc: 8082 ret + 12cc: 8082 ret -00000000000012be : +00000000000012ce : return (stbsp__uint32)(sn - s); } STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *callback, void *user, char *buf, char const *fmt, va_list va) { - 12be: d1010113 addi sp,sp,-752 + 12ce: d1010113 addi sp,sp,-752 // Check if the next 4 bytes contain %(0x25) or end of string. // Using the 'hasless' trick: // https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord stbsp__uint32 v, c; v = *(stbsp__uint32 *)f; c = (~v) & 0x80808080; - 12c2: 808087b7 lui a5,0x80808 + 12d2: 808087b7 lui a5,0x80808 if (((v ^ 0x25252525) - 0x01010101) & c) - 12c6: 252523b7 lui t2,0x25252 - 12ca: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x2524acbd> + 12d6: 252523b7 lui t2,0x25252 + 12da: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x2524ac9d> { - 12ce: 29913c23 sd s9,664(sp) - 12d2: 29b13423 sd s11,648(sp) + 12de: 29913c23 sd s9,664(sp) + 12e2: 29b13423 sd s11,648(sp) int tlen = 0; - 12d6: 4c81 li s9,0 + 12e6: 4c81 li s9,0 if (((v ^ 0x25252525) - 0x01010101) & c) - 12d8: feff0db7 lui s11,0xfeff0 + 12e8: feff0db7 lui s11,0xfeff0 c = (~v) & 0x80808080; - 12dc: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff80800818> + 12ec: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff808007f8> { - 12e0: 2e813023 sd s0,736(sp) - 12e4: 2c913c23 sd s1,728(sp) - 12e8: 2d213823 sd s2,720(sp) - 12ec: 2d313423 sd s3,712(sp) - 12f0: 2b713423 sd s7,680(sp) - 12f4: 2b813023 sd s8,672(sp) - 12f8: 29a13823 sd s10,656(sp) - 12fc: 2e113423 sd ra,744(sp) - 1300: 8d66 mv s10,s9 - 1302: 8432 mv s0,a2 - 1304: 8c9e mv s9,t2 - 1306: 89aa mv s3,a0 - 1308: e42e sd a1,8(sp) - 130a: 84b6 mv s1,a3 - 130c: 8bba mv s7,a4 - 130e: fc02 sd zero,56(sp) + 12f0: 2e813023 sd s0,736(sp) + 12f4: 2c913c23 sd s1,728(sp) + 12f8: 2d213823 sd s2,720(sp) + 12fc: 2d313423 sd s3,712(sp) + 1300: 2b713423 sd s7,680(sp) + 1304: 2b813023 sd s8,672(sp) + 1308: 29a13823 sd s10,656(sp) + 130c: 2e113423 sd ra,744(sp) + 1310: 8d66 mv s10,s9 + 1312: 8432 mv s0,a2 + 1314: 8c9e mv s9,t2 + 1316: 89aa mv s3,a0 + 1318: e42e sd a1,8(sp) + 131a: 84b6 mv s1,a3 + 131c: 8bba mv s7,a4 + 131e: fc02 sd zero,56(sp) for (;;) { - 1310: 8932 mv s2,a2 + 1320: 8932 mv s2,a2 if (((v ^ 0x25252525) - 0x01010101) & c) - 1312: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8697> + 1322: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8677> goto schk1; if ((v - 0x01010101) & c) goto schk2; if (callback) if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 1316: 20000c13 li s8,512 - 131a: 83be mv t2,a5 + 1326: 20000c13 li s8,512 + 132a: 83be mv t2,a5 while (((stbsp__uintptr)f) & 3) { - 131c: 0034f793 andi a5,s1,3 - 1320: c7a9 beqz a5,136a + 132c: 0034f793 andi a5,s1,3 + 1330: c7a9 beqz a5,137a if (f[0] == '%') - 1322: 0004c783 lbu a5,0(s1) - 1326: 02500713 li a4,37 - 132a: 0ee78263 beq a5,a4,140e + 1332: 0004c783 lbu a5,0(s1) + 1336: 02500713 li a4,37 + 133a: 0ee78263 beq a5,a4,141e if (f[0] == 0) - 132e: cbd9 beqz a5,13c4 + 133e: cbd9 beqz a5,13d4 stbsp__chk_cb_buf(1); - 1330: 02098663 beqz s3,135c - 1334: 4124063b subw a2,s0,s2 - 1338: 1fe00713 li a4,510 - 133c: 02c75063 bge a4,a2,135c - 1340: 65a2 ld a1,8(sp) - 1342: 854a mv a0,s2 - 1344: e81e sd t2,16(sp) - 1346: 00cd0d3b addw s10,s10,a2 - 134a: 9982 jalr s3 - 134c: 892a mv s2,a0 - 134e: e119 bnez a0,1354 - 1350: 0200106f j 2370 + 1340: 02098663 beqz s3,136c + 1344: 4124063b subw a2,s0,s2 + 1348: 1fe00713 li a4,510 + 134c: 02c75063 bge a4,a2,136c + 1350: 65a2 ld a1,8(sp) + 1352: 854a mv a0,s2 + 1354: e81e sd t2,16(sp) + 1356: 00cd0d3b addw s10,s10,a2 + 135a: 9982 jalr s3 + 135c: 892a mv s2,a0 + 135e: e119 bnez a0,1364 + 1360: 0200106f j 2380 *bf++ = f[0]; - 1354: 0004c783 lbu a5,0(s1) + 1364: 0004c783 lbu a5,0(s1) stbsp__chk_cb_buf(1); - 1358: 63c2 ld t2,16(sp) - 135a: 842a mv s0,a0 + 1368: 63c2 ld t2,16(sp) + 136a: 842a mv s0,a0 ++f; - 135c: 0485 addi s1,s1,1 + 136c: 0485 addi s1,s1,1 *bf++ = f[0]; - 135e: 00f40023 sb a5,0(s0) + 136e: 00f40023 sb a5,0(s0) while (((stbsp__uintptr)f) & 3) { - 1362: 0034f793 andi a5,s1,3 + 1372: 0034f793 andi a5,s1,3 *bf++ = f[0]; - 1366: 0405 addi s0,s0,1 + 1376: 0405 addi s0,s0,1 while (((stbsp__uintptr)f) & 3) { - 1368: ffcd bnez a5,1322 + 1378: ffcd bnez a5,1332 v = *(stbsp__uint32 *)f; - 136a: 4094 lw a3,0(s1) + 137a: 4094 lw a3,0(s1) c = (~v) & 0x80808080; - 136c: fff6c793 not a5,a3 + 137c: fff6c793 not a5,a3 if (((v ^ 0x25252525) - 0x01010101) & c) - 1370: 0196c733 xor a4,a3,s9 + 1380: 0196c733 xor a4,a3,s9 c = (~v) & 0x80808080; - 1374: 0077f7b3 and a5,a5,t2 + 1384: 0077f7b3 and a5,a5,t2 if (((v ^ 0x25252525) - 0x01010101) & c) - 1378: 01b7073b addw a4,a4,s11 - 137c: 8f7d and a4,a4,a5 - 137e: 2701 sext.w a4,a4 - 1380: f34d bnez a4,1322 + 1388: 01b7073b addw a4,a4,s11 + 138c: 8f7d and a4,a4,a5 + 138e: 2701 sext.w a4,a4 + 1390: f34d bnez a4,1332 if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 1382: 460d li a2,3 - 1384: a805 j 13b4 + 1392: 460d li a2,3 + 1394: a805 j 13c4 if (callback) - 1386: 00098863 beqz s3,1396 + 1396: 00098863 beqz s3,13a6 if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 138a: 412407b3 sub a5,s0,s2 - 138e: 40fc07bb subw a5,s8,a5 - 1392: f8f658e3 bge a2,a5,1322 + 139a: 412407b3 sub a5,s0,s2 + 139e: 40fc07bb subw a5,s8,a5 + 13a2: f8f658e3 bge a2,a5,1332 bf[2] = f[2]; bf[3] = f[3]; } else #endif { *(stbsp__uint32 *)bf = v; - 1396: c014 sw a3,0(s0) + 13a6: c014 sw a3,0(s0) v = *(stbsp__uint32 *)f; - 1398: 40d4 lw a3,4(s1) + 13a8: 40d4 lw a3,4(s1) } bf += 4; - 139a: 0411 addi s0,s0,4 + 13aa: 0411 addi s0,s0,4 f += 4; - 139c: 0491 addi s1,s1,4 + 13ac: 0491 addi s1,s1,4 c = (~v) & 0x80808080; - 139e: fff6c793 not a5,a3 + 13ae: fff6c793 not a5,a3 if (((v ^ 0x25252525) - 0x01010101) & c) - 13a2: 0196c733 xor a4,a3,s9 + 13b2: 0196c733 xor a4,a3,s9 c = (~v) & 0x80808080; - 13a6: 0077f7b3 and a5,a5,t2 + 13b6: 0077f7b3 and a5,a5,t2 if (((v ^ 0x25252525) - 0x01010101) & c) - 13aa: 01b7073b addw a4,a4,s11 - 13ae: 8f7d and a4,a4,a5 - 13b0: 2701 sext.w a4,a4 - 13b2: fb25 bnez a4,1322 + 13ba: 01b7073b addw a4,a4,s11 + 13be: 8f7d and a4,a4,a5 + 13c0: 2701 sext.w a4,a4 + 13c2: fb25 bnez a4,1332 if ((v - 0x01010101) & c) - 13b4: 01b6873b addw a4,a3,s11 - 13b8: 8ff9 and a5,a5,a4 - 13ba: 2781 sext.w a5,a5 - 13bc: d7e9 beqz a5,1386 + 13c4: 01b6873b addw a4,a3,s11 + 13c8: 8ff9 and a5,a5,a4 + 13ca: 2781 sext.w a5,a5 + 13cc: d7e9 beqz a5,1396 if (f[0] == 0) - 13be: 0004c783 lbu a5,0(s1) - 13c2: f7bd bnez a5,1330 + 13ce: 0004c783 lbu a5,0(s1) + 13d2: f7bd bnez a5,1340 endfmt: if (!callback) *bf = 0; else stbsp__flush_cb(); - 13c4: 8cea mv s9,s10 - 13c6: 412404bb subw s1,s0,s2 + 13d4: 8cea mv s9,s10 + 13d6: 412404bb subw s1,s0,s2 if (!callback) - 13ca: 70098563 beqz s3,1ad4 + 13da: 70098563 beqz s3,1ae4 stbsp__flush_cb(); - 13ce: 00905663 blez s1,13da - 13d2: 65a2 ld a1,8(sp) - 13d4: 8626 mv a2,s1 - 13d6: 854a mv a0,s2 - 13d8: 9982 jalr s3 - 13da: 009c8cbb addw s9,s9,s1 + 13de: 00905663 blez s1,13ea + 13e2: 65a2 ld a1,8(sp) + 13e4: 8626 mv a2,s1 + 13e6: 854a mv a0,s2 + 13e8: 9982 jalr s3 + 13ea: 009c8cbb addw s9,s9,s1 done: return tlen + (int)(bf - buf); } - 13de: 2e813083 ld ra,744(sp) - 13e2: 2e013403 ld s0,736(sp) - 13e6: 2d813483 ld s1,728(sp) - 13ea: 2d013903 ld s2,720(sp) - 13ee: 2c813983 ld s3,712(sp) - 13f2: 2a813b83 ld s7,680(sp) - 13f6: 2a013c03 ld s8,672(sp) - 13fa: 29013d03 ld s10,656(sp) - 13fe: 28813d83 ld s11,648(sp) - 1402: 8566 mv a0,s9 - 1404: 29813c83 ld s9,664(sp) - 1408: 2f010113 addi sp,sp,752 - 140c: 8082 ret - 140e: 2d413023 sd s4,704(sp) - 1412: 2b513c23 sd s5,696(sp) - 1416: 2b613823 sd s6,688(sp) + 13ee: 2e813083 ld ra,744(sp) + 13f2: 2e013403 ld s0,736(sp) + 13f6: 2d813483 ld s1,728(sp) + 13fa: 2d013903 ld s2,720(sp) + 13fe: 2c813983 ld s3,712(sp) + 1402: 2a813b83 ld s7,680(sp) + 1406: 2a013c03 ld s8,672(sp) + 140a: 29013d03 ld s10,656(sp) + 140e: 28813d83 ld s11,648(sp) + 1412: 8566 mv a0,s9 + 1414: 29813c83 ld s9,664(sp) + 1418: 2f010113 addi sp,sp,752 + 141c: 8082 ret + 141e: 2d413023 sd s4,704(sp) + 1422: 2b513c23 sd s5,696(sp) + 1426: 2b613823 sd s6,688(sp) tz = 0; - 141a: 00248693 addi a3,s1,2 + 142a: 00248693 addi a3,s1,2 fl = 0; - 141e: 4e01 li t3,0 + 142e: 4e01 li t3,0 switch (f[0]) { - 1420: 03f00593 li a1,63 - 1424: 00004617 auipc a2,0x4 - 1428: d4460613 addi a2,a2,-700 # 5168 <_GLOBAL__sub_I__ZSt3cin+0x188> - 142c: fff6c783 lbu a5,-1(a3) - 1430: fff68493 addi s1,a3,-1 - 1434: fe07871b addiw a4,a5,-32 - 1438: 0ff77713 zext.b a4,a4 - 143c: 00e5ec63 bltu a1,a4,1454 - 1440: 070a slli a4,a4,0x2 - 1442: 9732 add a4,a4,a2 - 1444: 4318 lw a4,0(a4) - 1446: 9732 add a4,a4,a2 - 1448: 8702 jr a4 + 1430: 03f00593 li a1,63 + 1434: 00004617 auipc a2,0x4 + 1438: d5460613 addi a2,a2,-684 # 5188 <_GLOBAL__sub_I__ZSt3cin+0x198> + 143c: fff6c783 lbu a5,-1(a3) + 1440: fff68493 addi s1,a3,-1 + 1444: fe07871b addiw a4,a5,-32 + 1448: 0ff77713 zext.b a4,a4 + 144c: 00e5ec63 bltu a1,a4,1464 + 1450: 070a slli a4,a4,0x2 + 1452: 9732 add a4,a4,a2 + 1454: 4318 lw a4,0(a4) + 1456: 9732 add a4,a4,a2 + 1458: 8702 jr a4 if (f[0] == '*') { - 144a: 0014c783 lbu a5,1(s1) + 145a: 0014c783 lbu a5,1(s1) fl |= STBSP__LEADINGZERO; - 144e: 010e6e13 ori t3,t3,16 + 145e: 010e6e13 ori t3,t3,16 ++f; - 1452: 0485 addi s1,s1,1 + 1462: 0485 addi s1,s1,1 if (f[0] == '*') { - 1454: 02a00713 li a4,42 - 1458: 0ce79163 bne a5,a4,151a + 1464: 02a00713 li a4,42 + 1468: 0ce79163 bne a5,a4,152a fw = va_arg(va, stbsp__uint32); - 145c: 000bab03 lw s6,0(s7) + 146c: 000bab03 lw s6,0(s7) while ((f[0] >= '0') && (f[0] <= '9')) { - 1460: 0014c783 lbu a5,1(s1) + 1470: 0014c783 lbu a5,1(s1) fw = va_arg(va, stbsp__uint32); - 1464: 0ba1 addi s7,s7,8 + 1474: 0ba1 addi s7,s7,8 ++f; - 1466: 0485 addi s1,s1,1 + 1476: 0485 addi s1,s1,1 if (f[0] == '.') { - 1468: 02e00713 li a4,46 + 1478: 02e00713 li a4,46 pr = -1; - 146c: 58fd li a7,-1 + 147c: 58fd li a7,-1 if (f[0] == '.') { - 146e: 0ee78663 beq a5,a4,155a + 147e: 0ee78663 beq a5,a4,156a switch (f[0]) { - 1472: 04900713 li a4,73 - 1476: 10e78263 beq a5,a4,157a - 147a: f987871b addiw a4,a5,-104 - 147e: 0ff77713 zext.b a4,a4 - 1482: 46c9 li a3,18 - 1484: 02e6e063 bltu a3,a4,14a4 - 1488: 00004697 auipc a3,0x4 - 148c: de068693 addi a3,a3,-544 # 5268 <_GLOBAL__sub_I__ZSt3cin+0x288> - 1490: 070a slli a4,a4,0x2 - 1492: 9736 add a4,a4,a3 - 1494: 4318 lw a4,0(a4) - 1496: 9736 add a4,a4,a3 - 1498: 8702 jr a4 + 1482: 04900713 li a4,73 + 1486: 10e78263 beq a5,a4,158a + 148a: f987871b addiw a4,a5,-104 + 148e: 0ff77713 zext.b a4,a4 + 1492: 46c9 li a3,18 + 1494: 02e6e063 bltu a3,a4,14b4 + 1498: 00004697 auipc a3,0x4 + 149c: df068693 addi a3,a3,-528 # 5288 <_GLOBAL__sub_I__ZSt3cin+0x298> + 14a0: 070a slli a4,a4,0x2 + 14a2: 9736 add a4,a4,a3 + 14a4: 4318 lw a4,0(a4) + 14a6: 9736 add a4,a4,a3 + 14a8: 8702 jr a4 if (f[0] == 'h') - 149a: 0014c783 lbu a5,1(s1) + 14aa: 0014c783 lbu a5,1(s1) fl |= (sizeof(ptrdiff_t) == 8) ? STBSP__INTMAX : 0; - 149e: 020e6e13 ori t3,t3,32 + 14ae: 020e6e13 ori t3,t3,32 ++f; - 14a2: 0485 addi s1,s1,1 + 14b2: 0485 addi s1,s1,1 switch (f[0]) { - 14a4: fbf7871b addiw a4,a5,-65 - 14a8: 0ff77713 zext.b a4,a4 - 14ac: 03700693 li a3,55 - 14b0: 0ee6ea63 bltu a3,a4,15a4 - 14b4: 00004697 auipc a3,0x4 - 14b8: e0068693 addi a3,a3,-512 # 52b4 <_GLOBAL__sub_I__ZSt3cin+0x2d4> - 14bc: 070a slli a4,a4,0x2 - 14be: 9736 add a4,a4,a3 - 14c0: 4318 lw a4,0(a4) - 14c2: 9736 add a4,a4,a3 - 14c4: 8702 jr a4 + 14b4: fbf7871b addiw a4,a5,-65 + 14b8: 0ff77713 zext.b a4,a4 + 14bc: 03700693 li a3,55 + 14c0: 0ee6ea63 bltu a3,a4,15b4 + 14c4: 00004697 auipc a3,0x4 + 14c8: e1068693 addi a3,a3,-496 # 52d4 <_GLOBAL__sub_I__ZSt3cin+0x2e4> + 14cc: 070a slli a4,a4,0x2 + 14ce: 9736 add a4,a4,a3 + 14d0: 4318 lw a4,0(a4) + 14d2: 9736 add a4,a4,a3 + 14d4: 8702 jr a4 fl |= STBSP__METRIC_NOSPACE; - 14c6: 400e6e13 ori t3,t3,1024 + 14d6: 400e6e13 ori t3,t3,1024 continue; - 14ca: 0685 addi a3,a3,1 - 14cc: b785 j 142c + 14da: 0685 addi a3,a3,1 + 14dc: b785 j 143c fl |= STBSP__LEFTJUST; - 14ce: 001e6e13 ori t3,t3,1 + 14de: 001e6e13 ori t3,t3,1 continue; - 14d2: 0685 addi a3,a3,1 - 14d4: bfa1 j 142c + 14e2: 0685 addi a3,a3,1 + 14e4: bfa1 j 143c fl |= STBSP__LEADINGPLUS; - 14d6: 002e6e13 ori t3,t3,2 + 14e6: 002e6e13 ori t3,t3,2 continue; - 14da: 0685 addi a3,a3,1 - 14dc: bf81 j 142c + 14ea: 0685 addi a3,a3,1 + 14ec: bf81 j 143c fl |= STBSP__TRIPLET_COMMA; - 14de: 040e6e13 ori t3,t3,64 + 14ee: 040e6e13 ori t3,t3,64 continue; - 14e2: 0685 addi a3,a3,1 - 14e4: b7a1 j 142c + 14f2: 0685 addi a3,a3,1 + 14f4: b7a1 j 143c if (fl & STBSP__METRIC_SUFFIX) { - 14e6: 100e7793 andi a5,t3,256 - 14ea: 8772 mv a4,t3 - 14ec: 56078363 beqz a5,1a52 + 14f6: 100e7793 andi a5,t3,256 + 14fa: 8772 mv a4,t3 + 14fc: 56078363 beqz a5,1a62 if (fl & STBSP__METRIC_1024) { - 14f0: 6785 lui a5,0x1 - 14f2: 034e1513 slli a0,t3,0x34 - 14f6: 80078793 addi a5,a5,-2048 # 800 - 14fa: 5c055863 bgez a0,1aca + 1500: 6785 lui a5,0x1 + 1502: 034e1513 slli a0,t3,0x34 + 1506: 80078793 addi a5,a5,-2048 # 800 + 150a: 5c055863 bgez a0,1ada fl |= STBSP__METRIC_JEDEC; - 14fe: 6785 lui a5,0x1 - 1500: 8f5d or a4,a4,a5 - 1502: 00070e1b sext.w t3,a4 - 1506: 0685 addi a3,a3,1 - 1508: b715 j 142c + 150e: 6785 lui a5,0x1 + 1510: 8f5d or a4,a4,a5 + 1512: 00070e1b sext.w t3,a4 + 1516: 0685 addi a3,a3,1 + 1518: b715 j 143c fl |= STBSP__LEADING_0X; - 150a: 008e6e13 ori t3,t3,8 + 151a: 008e6e13 ori t3,t3,8 continue; - 150e: 0685 addi a3,a3,1 - 1510: bf31 j 142c + 151e: 0685 addi a3,a3,1 + 1520: bf31 j 143c fl |= STBSP__LEADINGSPACE; - 1512: 004e6e13 ori t3,t3,4 + 1522: 004e6e13 ori t3,t3,4 continue; - 1516: 0685 addi a3,a3,1 - 1518: bf11 j 142c + 1526: 0685 addi a3,a3,1 + 1528: bf11 j 143c while ((f[0] >= '0') && (f[0] <= '9')) { - 151a: fd07871b addiw a4,a5,-48 # fd0 <_vscanf_core.constprop.0+0x668> - 151e: 0ff77713 zext.b a4,a4 - 1522: 4625 li a2,9 + 152a: fd07871b addiw a4,a5,-48 # fd0 <_vscanf_core.constprop.0+0x658> + 152e: 0ff77713 zext.b a4,a4 + 1532: 4625 li a2,9 fw = 0; - 1524: 4b01 li s6,0 + 1534: 4b01 li s6,0 while ((f[0] >= '0') && (f[0] <= '9')) { - 1526: 46a5 li a3,9 - 1528: f4e660e3 bltu a2,a4,1468 + 1536: 46a5 li a3,9 + 1538: f4e660e3 bltu a2,a4,1478 fw = fw * 10 + f[0] - '0'; - 152c: 002b171b slliw a4,s6,0x2 - 1530: 0167073b addw a4,a4,s6 - 1534: 0017171b slliw a4,a4,0x1 + 153c: 002b171b slliw a4,s6,0x2 + 1540: 0167073b addw a4,a4,s6 + 1544: 0017171b slliw a4,a4,0x1 f++; - 1538: 0485 addi s1,s1,1 + 1548: 0485 addi s1,s1,1 fw = fw * 10 + f[0] - '0'; - 153a: 9f3d addw a4,a4,a5 + 154a: 9f3d addw a4,a4,a5 while ((f[0] >= '0') && (f[0] <= '9')) { - 153c: 0004c783 lbu a5,0(s1) + 154c: 0004c783 lbu a5,0(s1) fw = fw * 10 + f[0] - '0'; - 1540: fd070b1b addiw s6,a4,-48 + 1550: fd070b1b addiw s6,a4,-48 while ((f[0] >= '0') && (f[0] <= '9')) { - 1544: fd07871b addiw a4,a5,-48 - 1548: 0ff77713 zext.b a4,a4 - 154c: fee6f0e3 bgeu a3,a4,152c + 1554: fd07871b addiw a4,a5,-48 + 1558: 0ff77713 zext.b a4,a4 + 155c: fee6f0e3 bgeu a3,a4,153c if (f[0] == '.') { - 1550: 02e00713 li a4,46 + 1560: 02e00713 li a4,46 pr = -1; - 1554: 58fd li a7,-1 + 1564: 58fd li a7,-1 if (f[0] == '.') { - 1556: f0e79ee3 bne a5,a4,1472 + 1566: f0e79ee3 bne a5,a4,1482 if (f[0] == '*') { - 155a: 0014c783 lbu a5,1(s1) - 155e: 02a00713 li a4,42 - 1562: 52e79763 bne a5,a4,1a90 + 156a: 0014c783 lbu a5,1(s1) + 156e: 02a00713 li a4,42 + 1572: 52e79763 bne a5,a4,1aa0 while ((f[0] >= '0') && (f[0] <= '9')) { - 1566: 0024c783 lbu a5,2(s1) + 1576: 0024c783 lbu a5,2(s1) switch (f[0]) { - 156a: 04900713 li a4,73 + 157a: 04900713 li a4,73 pr = va_arg(va, stbsp__uint32); - 156e: 000ba883 lw a7,0(s7) + 157e: 000ba883 lw a7,0(s7) ++f; - 1572: 0489 addi s1,s1,2 + 1582: 0489 addi s1,s1,2 pr = va_arg(va, stbsp__uint32); - 1574: 0ba1 addi s7,s7,8 + 1584: 0ba1 addi s7,s7,8 switch (f[0]) { - 1576: f0e792e3 bne a5,a4,147a + 1586: f0e792e3 bne a5,a4,148a if ((f[1] == '6') && (f[2] == '4')) { - 157a: 0014c783 lbu a5,1(s1) - 157e: 03600713 li a4,54 - 1582: 00e79463 bne a5,a4,158a - 1586: 1e60106f j 276c + 158a: 0014c783 lbu a5,1(s1) + 158e: 03600713 li a4,54 + 1592: 00e79463 bne a5,a4,159a + 1596: 1e60106f j 277c } else if ((f[1] == '3') && (f[2] == '2')) { - 158a: 03300713 li a4,51 - 158e: 6ae796e3 bne a5,a4,243a - 1592: 0024c683 lbu a3,2(s1) - 1596: 03200713 li a4,50 - 159a: 00e69463 bne a3,a4,15a2 - 159e: 0ae0106f j 264c + 159a: 03300713 li a4,51 + 159e: 6ae796e3 bne a5,a4,244a + 15a2: 0024c683 lbu a3,2(s1) + 15a6: 03200713 li a4,50 + 15aa: 00e69463 bne a3,a4,15b2 + 15ae: 0ae0106f j 265c ++f; - 15a2: 0485 addi s1,s1,1 + 15b2: 0485 addi s1,s1,1 *s = f[0]; - 15a4: 26f10fa3 sb a5,639(sp) + 15b4: 26f10fa3 sb a5,639(sp) l = 1; - 15a8: 4785 li a5,1 - 15aa: d0be sw a5,96(sp) + 15b8: 4785 li a5,1 + 15ba: d0be sw a5,96(sp) lead[0] = 0; - 15ac: 06010423 sb zero,104(sp) + 15bc: 06010423 sb zero,104(sp) tail[0] = 0; - 15b0: 06010823 sb zero,112(sp) + 15c0: 06010823 sb zero,112(sp) dp = 0; - 15b4: d282 sw zero,100(sp) - 15b6: e0de sd s7,64(sp) - 15b8: 4701 li a4,0 - 15ba: 4301 li t1,0 - 15bc: 4f81 li t6,0 - 15be: 4685 li a3,1 - 15c0: 4a01 li s4,0 + 15c4: d282 sw zero,100(sp) + 15c6: e0de sd s7,64(sp) + 15c8: 4701 li a4,0 + 15ca: 4301 li t1,0 + 15cc: 4f81 li t6,0 + 15ce: 4685 li a3,1 + 15d0: 4a01 li s4,0 cs = 0; - 15c2: 4281 li t0,0 + 15d2: 4281 li t0,0 s = num + STBSP__NUMSZ - 1; - 15c4: 27f10a93 addi s5,sp,639 + 15d4: 27f10a93 addi s5,sp,639 fw = fl = 0; - 15c8: 4e01 li t3,0 + 15d8: 4e01 li t3,0 tz = 0; - 15ca: 4881 li a7,0 + 15da: 4881 li a7,0 if (fl & STBSP__LEADINGZERO) // if leading zeros, everything is in pr - 15cc: 010e7793 andi a5,t3,16 - 15d0: 40078ee3 beqz a5,21ec + 15dc: 010e7793 andi a5,t3,16 + 15e0: 40078ee3 beqz a5,21fc pr = (fw > pr) ? fw : pr; - 15d4: 87ba mv a5,a4 - 15d6: 00675363 bge a4,t1,15dc - 15da: 879a mv a5,t1 - 15dc: 0007871b sext.w a4,a5 + 15e4: 87ba mv a5,a4 + 15e6: 00675363 bge a4,t1,15ec + 15ea: 879a mv a5,t1 + 15ec: 0007871b sext.w a4,a5 fw = 0; - 15e0: 4301 li t1,0 + 15f0: 4301 li t1,0 if (fw + pr) { - 15e2: 62070563 beqz a4,1c0c + 15f2: 62070563 beqz a4,1c1c sn = lead + 1; - 15e6: 06910793 addi a5,sp,105 - 15ea: fcbe sd a5,120(sp) + 15f6: 06910793 addi a5,sp,105 + 15fa: fcbe sd a5,120(sp) while (lead[0]) { - 15ec: 0a0a0863 beqz s4,169c + 15fc: 0a0a0863 beqz s4,16ac stbsp__cb_buf_clamp(i, lead[0]); - 15f0: f026 sd s1,32(sp) - 15f2: f436 sd a3,40(sp) - 15f4: 854a mv a0,s2 - 15f6: 86d2 mv a3,s4 - 15f8: 84ce mv s1,s3 + 1600: f026 sd s1,32(sp) + 1602: f436 sd a3,40(sp) + 1604: 854a mv a0,s2 + 1606: 86d2 mv a3,s4 + 1608: 84ce mv s1,s3 stbsp__chk_cb_buf(1); - 15fa: 1fe00b93 li s7,510 + 160a: 1fe00b93 li s7,510 stbsp__cb_buf_clamp(i, lead[0]); - 15fe: 89be mv s3,a5 - 1600: 20000b13 li s6,512 - 1604: 87a2 mv a5,s0 - 1606: e846 sd a7,16(sp) - 1608: 846a mv s0,s10 - 160a: ec7e sd t6,24(sp) - 160c: 8d6e mv s10,s11 - 160e: f872 sd t3,48(sp) - 1610: 8de6 mv s11,s9 - 1612: 8a3a mv s4,a4 - 1614: e496 sd t0,72(sp) - 1616: 891a mv s2,t1 - 1618: 8c9e mv s9,t2 - 161a: 0006871b sext.w a4,a3 - 161e: 2e0482e3 beqz s1,2102 - 1622: 40a7863b subw a2,a5,a0 - 1626: 40cb083b subw a6,s6,a2 - 162a: 85c2 mv a1,a6 - 162c: 01075363 bge a4,a6,1632 - 1630: 85ba mv a1,a4 + 160e: 89be mv s3,a5 + 1610: 20000b13 li s6,512 + 1614: 87a2 mv a5,s0 + 1616: e846 sd a7,16(sp) + 1618: 846a mv s0,s10 + 161a: ec7e sd t6,24(sp) + 161c: 8d6e mv s10,s11 + 161e: f872 sd t3,48(sp) + 1620: 8de6 mv s11,s9 + 1622: 8a3a mv s4,a4 + 1624: e496 sd t0,72(sp) + 1626: 891a mv s2,t1 + 1628: 8c9e mv s9,t2 + 162a: 0006871b sext.w a4,a3 + 162e: 2e0482e3 beqz s1,2112 + 1632: 40a7863b subw a2,a5,a0 + 1636: 40cb083b subw a6,s6,a2 + 163a: 85c2 mv a1,a6 + 163c: 01075363 bge a4,a6,1642 + 1640: 85ba mv a1,a4 lead[0] -= (char)i; - 1632: 9e8d subw a3,a3,a1 + 1642: 9e8d subw a3,a3,a1 stbsp__cb_buf_clamp(i, lead[0]); - 1634: 0005871b sext.w a4,a1 + 1644: 0005871b sext.w a4,a1 lead[0] -= (char)i; - 1638: 06d10423 sb a3,104(sp) + 1648: 06d10423 sb a3,104(sp) while (i) { - 163c: c70d beqz a4,1666 - 163e: 7866 ld a6,120(sp) - 1640: 02071593 slli a1,a4,0x20 - 1644: 9181 srli a1,a1,0x20 - 1646: 00b78633 add a2,a5,a1 - 164a: 8742 mv a4,a6 + 164c: c70d beqz a4,1676 + 164e: 7866 ld a6,120(sp) + 1650: 02071593 slli a1,a4,0x20 + 1654: 9181 srli a1,a1,0x20 + 1656: 00b78633 add a2,a5,a1 + 165a: 8742 mv a4,a6 *bf++ = *sn++; - 164c: 00074683 lbu a3,0(a4) - 1650: 0785 addi a5,a5,1 + 165c: 00074683 lbu a3,0(a4) + 1660: 0785 addi a5,a5,1 while (i) { - 1652: 0705 addi a4,a4,1 + 1662: 0705 addi a4,a4,1 *bf++ = *sn++; - 1654: fed78fa3 sb a3,-1(a5) + 1664: fed78fa3 sb a3,-1(a5) while (i) { - 1658: fec79ae3 bne a5,a2,164c - 165c: 982e add a6,a6,a1 - 165e: fcc2 sd a6,120(sp) + 1668: fec79ae3 bne a5,a2,165c + 166c: 982e add a6,a6,a1 + 166e: fcc2 sd a6,120(sp) stbsp__chk_cb_buf(1); - 1660: c899 beqz s1,1676 - 1662: 40a7863b subw a2,a5,a0 - 1666: 00cbd863 bge s7,a2,1676 - 166a: 65a2 ld a1,8(sp) - 166c: 9c31 addw s0,s0,a2 - 166e: 9482 jalr s1 - 1670: 34050ee3 beqz a0,21cc - 1674: 87aa mv a5,a0 + 1670: c899 beqz s1,1686 + 1672: 40a7863b subw a2,a5,a0 + 1676: 00cbd863 bge s7,a2,1686 + 167a: 65a2 ld a1,8(sp) + 167c: 9c31 addw s0,s0,a2 + 167e: 9482 jalr s1 + 1680: 34050ee3 beqz a0,21dc + 1684: 87aa mv a5,a0 while (lead[0]) { - 1676: 06814683 lbu a3,104(sp) - 167a: f2c5 bnez a3,161a - 167c: 83e6 mv t2,s9 - 167e: 68c2 ld a7,16(sp) - 1680: 8cee mv s9,s11 - 1682: 6fe2 ld t6,24(sp) - 1684: 8dea mv s11,s10 - 1686: 76a2 ld a3,40(sp) - 1688: 8d22 mv s10,s0 - 168a: 7e42 ld t3,48(sp) - 168c: 843e mv s0,a5 - 168e: 62a6 ld t0,72(sp) - 1690: 87ce mv a5,s3 - 1692: 89a6 mv s3,s1 - 1694: 7482 ld s1,32(sp) - 1696: 834a mv t1,s2 - 1698: 8752 mv a4,s4 - 169a: 892a mv s2,a0 + 1686: 06814683 lbu a3,104(sp) + 168a: f2c5 bnez a3,162a + 168c: 83e6 mv t2,s9 + 168e: 68c2 ld a7,16(sp) + 1690: 8cee mv s9,s11 + 1692: 6fe2 ld t6,24(sp) + 1694: 8dea mv s11,s10 + 1696: 76a2 ld a3,40(sp) + 1698: 8d22 mv s10,s0 + 169a: 7e42 ld t3,48(sp) + 169c: 843e mv s0,a5 + 169e: 62a6 ld t0,72(sp) + 16a0: 87ce mv a5,s3 + 16a2: 89a6 mv s3,s1 + 16a4: 7482 ld s1,32(sp) + 16a6: 834a mv t1,s2 + 16a8: 8752 mv a4,s4 + 16aa: 892a mv s2,a0 cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; - 169c: 040e7b13 andi s6,t3,64 + 16ac: 040e7b13 andi s6,t3,64 c = cs >> 24; - 16a0: 0182d61b srliw a2,t0,0x18 - 16a4: 0182db9b srliw s7,t0,0x18 + 16b0: 0182d61b srliw a2,t0,0x18 + 16b4: 0182db9b srliw s7,t0,0x18 cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; - 16a8: 4a01 li s4,0 - 16aa: 000b0e63 beqz s6,16c6 + 16b8: 4a01 li s4,0 + 16ba: 000b0e63 beqz s6,16d6 cs &= 0xffffff; - 16ae: 02829a13 slli s4,t0,0x28 - 16b2: 028a5a13 srli s4,s4,0x28 + 16be: 02829a13 slli s4,t0,0x28 + 16c2: 028a5a13 srli s4,s4,0x28 cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; - 16b6: 00ea0a3b addw s4,s4,a4 - 16ba: 0016059b addiw a1,a2,1 - 16be: 02ba7a3b remuw s4,s4,a1 - 16c2: 41460a3b subw s4,a2,s4 + 16c6: 00ea0a3b addw s4,s4,a4 + 16ca: 0016059b addiw a1,a2,1 + 16ce: 02ba7a3b remuw s4,s4,a1 + 16d2: 41460a3b subw s4,a2,s4 while (pr > 0) { - 16c6: 0ce05763 blez a4,1794 + 16d6: 0ce05763 blez a4,17a4 *(stbsp__uint32 *)bf = 0x30303030; - 16ca: 30303837 lui a6,0x30303 - 16ce: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fb7c8> - 16d2: f026 sd s1,32(sp) - 16d4: 854a mv a0,s2 - 16d6: 84da mv s1,s6 - 16d8: 895e mv s2,s7 - 16da: e4d6 sd s5,72(sp) - 16dc: 8b4e mv s6,s3 - 16de: 8aea mv s5,s10 + 16da: 30303837 lui a6,0x30303 + 16de: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + 16e2: f026 sd s1,32(sp) + 16e4: 854a mv a0,s2 + 16e6: 84da mv s1,s6 + 16e8: 895e mv s2,s7 + 16ea: e4d6 sd s5,72(sp) + 16ec: 8b4e mv s6,s3 + 16ee: 8aea mv s5,s10 stbsp__chk_cb_buf(1); - 16e0: 1fe00293 li t0,510 - 16e4: 8d6e mv s10,s11 + 16f0: 1fe00293 li t0,510 + 16f4: 8d6e mv s10,s11 *bf++ = stbsp__comma; - 16e6: 00005f17 auipc t5,0x5 - 16ea: 28af0f13 addi t5,t5,650 # 6970 - 16ee: 8de6 mv s11,s9 + 16f6: 00005f17 auipc t5,0x5 + 16fa: 29af0f13 addi t5,t5,666 # 6990 + 16fe: 8de6 mv s11,s9 *bf++ = '0'; - 16f0: 03000e93 li t4,48 - 16f4: e846 sd a7,16(sp) - 16f6: ec7e sd t6,24(sp) - 16f8: f436 sd a3,40(sp) - 16fa: f872 sd t3,48(sp) - 16fc: e89a sd t1,80(sp) - 16fe: 89ba mv s3,a4 - 1700: ecbe sd a5,88(sp) - 1702: 8bc2 mv s7,a6 - 1704: 8c9e mv s9,t2 + 1700: 03000e93 li t4,48 + 1704: e846 sd a7,16(sp) + 1706: ec7e sd t6,24(sp) + 1708: f436 sd a3,40(sp) + 170a: f872 sd t3,48(sp) + 170c: e89a sd t1,80(sp) + 170e: 89ba mv s3,a4 + 1710: ecbe sd a5,88(sp) + 1712: 8bc2 mv s7,a6 + 1714: 8c9e mv s9,t2 stbsp__cb_buf_clamp(i, pr); - 1706: 240b0ee3 beqz s6,2162 - 170a: 40a407b3 sub a5,s0,a0 - 170e: 40fc063b subw a2,s8,a5 - 1712: 87b2 mv a5,a2 - 1714: 00c9d363 bge s3,a2,171a - 1718: 87ce mv a5,s3 - 171a: 0007859b sext.w a1,a5 + 1716: 240b0ee3 beqz s6,2172 + 171a: 40a407b3 sub a5,s0,a0 + 171e: 40fc063b subw a2,s8,a5 + 1722: 87b2 mv a5,a2 + 1724: 00c9d363 bge s3,a2,172a + 1728: 87ce mv a5,s3 + 172a: 0007859b sext.w a1,a5 pr -= i; - 171e: 40f989bb subw s3,s3,a5 + 172e: 40f989bb subw s3,s3,a5 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 1722: 32048c63 beqz s1,1a5a + 1732: 32048c63 beqz s1,1a6a while (i) { - 1726: 34058a63 beqz a1,1a7a - 172a: 1582 slli a1,a1,0x20 + 1736: 34058a63 beqz a1,1a8a + 173a: 1582 slli a1,a1,0x20 *bf++ = stbsp__comma; - 172c: 0cdf4603 lbu a2,205(t5) - 1730: 9181 srli a1,a1,0x20 - 1732: 95a2 add a1,a1,s0 - 1734: 0405 addi s0,s0,1 + 173c: 0cdf4603 lbu a2,205(t5) + 1740: 9181 srli a1,a1,0x20 + 1742: 95a2 add a1,a1,s0 + 1744: 0405 addi s0,s0,1 if ((fl & STBSP__TRIPLET_COMMA) && (cs++ == c)) { - 1736: c481 beqz s1,173e - 1738: 1d4901e3 beq s2,s4,20fa - 173c: 2a05 addiw s4,s4,1 + 1746: c481 beqz s1,174e + 1748: 1d4901e3 beq s2,s4,210a + 174c: 2a05 addiw s4,s4,1 *bf++ = '0'; - 173e: 03000793 li a5,48 - 1742: fef40fa3 sb a5,-1(s0) + 174e: 03000793 li a5,48 + 1752: fef40fa3 sb a5,-1(s0) while (i) { - 1746: fe8597e3 bne a1,s0,1734 + 1756: fe8597e3 bne a1,s0,1744 stbsp__chk_cb_buf(1); - 174a: 320b0b63 beqz s6,1a80 - 174e: 40a5863b subw a2,a1,a0 - 1752: 32c2d763 bge t0,a2,1a80 - 1756: 65a2 ld a1,8(sp) - 1758: 01560abb addw s5,a2,s5 - 175c: 9b02 jalr s6 - 175e: 3a050ce3 beqz a0,2316 - 1762: 842a mv s0,a0 - 1764: 1fe00293 li t0,510 - 1768: 00005f17 auipc t5,0x5 - 176c: 208f0f13 addi t5,t5,520 # 6970 - 1770: 03000e93 li t4,48 + 175a: 320b0b63 beqz s6,1a90 + 175e: 40a5863b subw a2,a1,a0 + 1762: 32c2d763 bge t0,a2,1a90 + 1766: 65a2 ld a1,8(sp) + 1768: 01560abb addw s5,a2,s5 + 176c: 9b02 jalr s6 + 176e: 3a050ce3 beqz a0,2326 + 1772: 842a mv s0,a0 + 1774: 1fe00293 li t0,510 + 1778: 00005f17 auipc t5,0x5 + 177c: 218f0f13 addi t5,t5,536 # 6990 + 1780: 03000e93 li t4,48 while (pr > 0) { - 1774: f93049e3 bgtz s3,1706 + 1784: f93049e3 bgtz s3,1716 while (lead[0]) { - 1778: 83e6 mv t2,s9 - 177a: 68c2 ld a7,16(sp) - 177c: 8cee mv s9,s11 - 177e: 6fe2 ld t6,24(sp) - 1780: 8dea mv s11,s10 - 1782: 7482 ld s1,32(sp) - 1784: 8d56 mv s10,s5 - 1786: 76a2 ld a3,40(sp) - 1788: 7e42 ld t3,48(sp) - 178a: 6346 ld t1,80(sp) - 178c: 67e6 ld a5,88(sp) - 178e: 6aa6 ld s5,72(sp) - 1790: 892a mv s2,a0 - 1792: 89da mv s3,s6 - 1794: 06814a03 lbu s4,104(sp) + 1788: 83e6 mv t2,s9 + 178a: 68c2 ld a7,16(sp) + 178c: 8cee mv s9,s11 + 178e: 6fe2 ld t6,24(sp) + 1790: 8dea mv s11,s10 + 1792: 7482 ld s1,32(sp) + 1794: 8d56 mv s10,s5 + 1796: 76a2 ld a3,40(sp) + 1798: 7e42 ld t3,48(sp) + 179a: 6346 ld t1,80(sp) + 179c: 67e6 ld a5,88(sp) + 179e: 6aa6 ld s5,72(sp) + 17a0: 892a mv s2,a0 + 17a2: 89da mv s3,s6 + 17a4: 06814a03 lbu s4,104(sp) sn = lead + 1; - 1798: fcbe sd a5,120(sp) + 17a8: fcbe sd a5,120(sp) while (lead[0]) { - 179a: 0a0a0263 beqz s4,183e + 17aa: 0a0a0263 beqz s4,184e stbsp__cb_buf_clamp(i, lead[0]); - 179e: ec26 sd s1,24(sp) - 17a0: f036 sd a3,32(sp) - 17a2: 854a mv a0,s2 - 17a4: 86d2 mv a3,s4 - 17a6: 84ce mv s1,s3 - 17a8: 87a2 mv a5,s0 + 17ae: ec26 sd s1,24(sp) + 17b0: f036 sd a3,32(sp) + 17b2: 854a mv a0,s2 + 17b4: 86d2 mv a3,s4 + 17b6: 84ce mv s1,s3 + 17b8: 87a2 mv a5,s0 stbsp__chk_cb_buf(1); - 17aa: 1fe00b93 li s7,510 + 17ba: 1fe00b93 li s7,510 stbsp__cb_buf_clamp(i, lead[0]); - 17ae: 846a mv s0,s10 - 17b0: 20000b13 li s6,512 - 17b4: 8d6e mv s10,s11 - 17b6: e846 sd a7,16(sp) - 17b8: 8de6 mv s11,s9 - 17ba: 8a7e mv s4,t6 - 17bc: 8972 mv s2,t3 - 17be: 899a mv s3,t1 - 17c0: 8c9e mv s9,t2 - 17c2: 0006871b sext.w a4,a3 - 17c6: 140482e3 beqz s1,210a - 17ca: 40a7863b subw a2,a5,a0 - 17ce: 40cb083b subw a6,s6,a2 - 17d2: 85c2 mv a1,a6 - 17d4: 01075363 bge a4,a6,17da - 17d8: 85ba mv a1,a4 + 17be: 846a mv s0,s10 + 17c0: 20000b13 li s6,512 + 17c4: 8d6e mv s10,s11 + 17c6: e846 sd a7,16(sp) + 17c8: 8de6 mv s11,s9 + 17ca: 8a7e mv s4,t6 + 17cc: 8972 mv s2,t3 + 17ce: 899a mv s3,t1 + 17d0: 8c9e mv s9,t2 + 17d2: 0006871b sext.w a4,a3 + 17d6: 140482e3 beqz s1,211a + 17da: 40a7863b subw a2,a5,a0 + 17de: 40cb083b subw a6,s6,a2 + 17e2: 85c2 mv a1,a6 + 17e4: 01075363 bge a4,a6,17ea + 17e8: 85ba mv a1,a4 lead[0] -= (char)i; - 17da: 9e8d subw a3,a3,a1 + 17ea: 9e8d subw a3,a3,a1 stbsp__cb_buf_clamp(i, lead[0]); - 17dc: 0005871b sext.w a4,a1 + 17ec: 0005871b sext.w a4,a1 lead[0] -= (char)i; - 17e0: 06d10423 sb a3,104(sp) + 17f0: 06d10423 sb a3,104(sp) while (i) { - 17e4: c70d beqz a4,180e - 17e6: 7866 ld a6,120(sp) - 17e8: 02071593 slli a1,a4,0x20 - 17ec: 9181 srli a1,a1,0x20 - 17ee: 00b78633 add a2,a5,a1 - 17f2: 8742 mv a4,a6 + 17f4: c70d beqz a4,181e + 17f6: 7866 ld a6,120(sp) + 17f8: 02071593 slli a1,a4,0x20 + 17fc: 9181 srli a1,a1,0x20 + 17fe: 00b78633 add a2,a5,a1 + 1802: 8742 mv a4,a6 *bf++ = *sn++; - 17f4: 00074683 lbu a3,0(a4) - 17f8: 0785 addi a5,a5,1 + 1804: 00074683 lbu a3,0(a4) + 1808: 0785 addi a5,a5,1 while (i) { - 17fa: 0705 addi a4,a4,1 + 180a: 0705 addi a4,a4,1 *bf++ = *sn++; - 17fc: fed78fa3 sb a3,-1(a5) + 180c: fed78fa3 sb a3,-1(a5) while (i) { - 1800: fec79ae3 bne a5,a2,17f4 - 1804: 982e add a6,a6,a1 - 1806: fcc2 sd a6,120(sp) + 1810: fec79ae3 bne a5,a2,1804 + 1814: 982e add a6,a6,a1 + 1816: fcc2 sd a6,120(sp) stbsp__chk_cb_buf(1); - 1808: c899 beqz s1,181e - 180a: 40a7863b subw a2,a5,a0 - 180e: 00cbd863 bge s7,a2,181e - 1812: 65a2 ld a1,8(sp) - 1814: 9c31 addw s0,s0,a2 - 1816: 9482 jalr s1 - 1818: 1a050ae3 beqz a0,21cc - 181c: 87aa mv a5,a0 + 1818: c899 beqz s1,182e + 181a: 40a7863b subw a2,a5,a0 + 181e: 00cbd863 bge s7,a2,182e + 1822: 65a2 ld a1,8(sp) + 1824: 9c31 addw s0,s0,a2 + 1826: 9482 jalr s1 + 1828: 1a050ae3 beqz a0,21dc + 182c: 87aa mv a5,a0 while (lead[0]) { - 181e: 06814683 lbu a3,104(sp) - 1822: f2c5 bnez a3,17c2 - 1824: 834e mv t1,s3 - 1826: 68c2 ld a7,16(sp) - 1828: 89a6 mv s3,s1 - 182a: 7682 ld a3,32(sp) - 182c: 64e2 ld s1,24(sp) - 182e: 8e4a mv t3,s2 - 1830: 83e6 mv t2,s9 - 1832: 8fd2 mv t6,s4 - 1834: 8cee mv s9,s11 - 1836: 892a mv s2,a0 - 1838: 8dea mv s11,s10 - 183a: 8d22 mv s10,s0 - 183c: 843e mv s0,a5 + 182e: 06814683 lbu a3,104(sp) + 1832: f2c5 bnez a3,17d2 + 1834: 834e mv t1,s3 + 1836: 68c2 ld a7,16(sp) + 1838: 89a6 mv s3,s1 + 183a: 7682 ld a3,32(sp) + 183c: 64e2 ld s1,24(sp) + 183e: 8e4a mv t3,s2 + 1840: 83e6 mv t2,s9 + 1842: 8fd2 mv t6,s4 + 1844: 8cee mv s9,s11 + 1846: 892a mv s2,a0 + 1848: 8dea mv s11,s10 + 184a: 8d22 mv s10,s0 + 184c: 843e mv s0,a5 while (n) { - 183e: c6f9 beqz a3,190c + 184e: c6f9 beqz a3,191c STBSP__UNALIGNED(while (i >= 4) { - 1840: ec26 sd s1,24(sp) - 1842: 854a mv a0,s2 - 1844: 84d6 mv s1,s5 - 1846: 896a mv s2,s10 - 1848: 87a2 mv a5,s0 - 184a: 8d6e mv s10,s11 + 1850: ec26 sd s1,24(sp) + 1852: 854a mv a0,s2 + 1854: 84d6 mv s1,s5 + 1856: 896a mv s2,s10 + 1858: 87a2 mv a5,s0 + 185a: 8d6e mv s10,s11 stbsp__chk_cb_buf(1); - 184c: 1fe00b93 li s7,510 + 185c: 1fe00b93 li s7,510 STBSP__UNALIGNED(while (i >= 4) { - 1850: 8de6 mv s11,s9 + 1860: 8de6 mv s11,s9 stbsp__cb_buf_clamp(i, n); - 1852: 20000b13 li s6,512 + 1862: 20000b13 li s6,512 STBSP__UNALIGNED(while (i >= 4) { - 1856: 4a0d li s4,3 - 1858: e87e sd t6,16(sp) - 185a: f072 sd t3,32(sp) - 185c: 8ac6 mv s5,a7 - 185e: f41a sd t1,40(sp) - 1860: 8436 mv s0,a3 - 1862: 8c9e mv s9,t2 + 1866: 4a0d li s4,3 + 1868: e87e sd t6,16(sp) + 186a: f072 sd t3,32(sp) + 186c: 8ac6 mv s5,a7 + 186e: f41a sd t1,40(sp) + 1870: 8436 mv s0,a3 + 1872: 8c9e mv s9,t2 stbsp__cb_buf_clamp(i, n); - 1864: 0004071b sext.w a4,s0 - 1868: 100982e3 beqz s3,216c - 186c: 40a78633 sub a2,a5,a0 - 1870: 40cb05bb subw a1,s6,a2 - 1874: 862e mv a2,a1 - 1876: 00b75363 bge a4,a1,187c - 187a: 863a mv a2,a4 - 187c: 0006071b sext.w a4,a2 + 1874: 0004071b sext.w a4,s0 + 1878: 100982e3 beqz s3,217c + 187c: 40a78633 sub a2,a5,a0 + 1880: 40cb05bb subw a1,s6,a2 + 1884: 862e mv a2,a1 + 1886: 00b75363 bge a4,a1,188c + 188a: 863a mv a2,a4 + 188c: 0006071b sext.w a4,a2 n -= i; - 1880: 9c11 subw s0,s0,a2 + 1890: 9c11 subw s0,s0,a2 STBSP__UNALIGNED(while (i >= 4) { - 1882: 14ea50e3 bge s4,a4,21c2 - 1886: ffc70f1b addiw t5,a4,-4 - 188a: 002f5e9b srliw t4,t5,0x2 - 188e: 001e8e1b addiw t3,t4,1 - 1892: 0e0a slli t3,t3,0x2 - 1894: 01c785b3 add a1,a5,t3 - 1898: 8626 mv a2,s1 - 189a: 4218 lw a4,0(a2) - 189c: 0791 addi a5,a5,4 - 189e: 0611 addi a2,a2,4 - 18a0: 2701 sext.w a4,a4 - 18a2: fee7ae23 sw a4,-4(a5) - 18a6: feb79ae3 bne a5,a1,189a - 18aa: 002e9e9b slliw t4,t4,0x2 - 18ae: 41df073b subw a4,t5,t4 + 1892: 14ea50e3 bge s4,a4,21d2 + 1896: ffc70f1b addiw t5,a4,-4 + 189a: 002f5e9b srliw t4,t5,0x2 + 189e: 001e8e1b addiw t3,t4,1 + 18a2: 0e0a slli t3,t3,0x2 + 18a4: 01c785b3 add a1,a5,t3 + 18a8: 8626 mv a2,s1 + 18aa: 4218 lw a4,0(a2) + 18ac: 0791 addi a5,a5,4 + 18ae: 0611 addi a2,a2,4 + 18b0: 2701 sext.w a4,a4 + 18b2: fee7ae23 sw a4,-4(a5) + 18b6: feb79ae3 bne a5,a1,18aa + 18ba: 002e9e9b slliw t4,t4,0x2 + 18be: 41df073b subw a4,t5,t4 while (i) { - 18b2: 94f2 add s1,s1,t3 - 18b4: c31d beqz a4,18da - 18b6: 8626 mv a2,s1 - 18b8: 87ae mv a5,a1 - 18ba: 00e58f3b addw t5,a1,a4 + 18c2: 94f2 add s1,s1,t3 + 18c4: c31d beqz a4,18ea + 18c6: 8626 mv a2,s1 + 18c8: 87ae mv a5,a1 + 18ca: 00e58f3b addw t5,a1,a4 *bf++ = *s++; - 18be: 00064e83 lbu t4,0(a2) - 18c2: 0785 addi a5,a5,1 + 18ce: 00064e83 lbu t4,0(a2) + 18d2: 0785 addi a5,a5,1 while (i) { - 18c4: 00078e1b sext.w t3,a5 + 18d4: 00078e1b sext.w t3,a5 *bf++ = *s++; - 18c8: ffd78fa3 sb t4,-1(a5) - 18cc: 0605 addi a2,a2,1 + 18d8: ffd78fa3 sb t4,-1(a5) + 18dc: 0605 addi a2,a2,1 while (i) { - 18ce: ffcf18e3 bne t5,t3,18be - 18d2: 1702 slli a4,a4,0x20 - 18d4: 9301 srli a4,a4,0x20 - 18d6: 95ba add a1,a1,a4 - 18d8: 94ba add s1,s1,a4 + 18de: ffcf18e3 bne t5,t3,18ce + 18e2: 1702 slli a4,a4,0x20 + 18e4: 9301 srli a4,a4,0x20 + 18e6: 95ba add a1,a1,a4 + 18e8: 94ba add s1,s1,a4 stbsp__chk_cb_buf(1); - 18da: 1a098763 beqz s3,1a88 - 18de: 40a5863b subw a2,a1,a0 - 18e2: 1acbd363 bge s7,a2,1a88 - 18e6: 65a2 ld a1,8(sp) - 18e8: 0126093b addw s2,a2,s2 - 18ec: 9982 jalr s3 - 18ee: 20050be3 beqz a0,2304 - 18f2: 87aa mv a5,a0 + 18ea: 1a098763 beqz s3,1a98 + 18ee: 40a5863b subw a2,a1,a0 + 18f2: 1acbd363 bge s7,a2,1a98 + 18f6: 65a2 ld a1,8(sp) + 18f8: 0126093b addw s2,a2,s2 + 18fc: 9982 jalr s3 + 18fe: 20050be3 beqz a0,2314 + 1902: 87aa mv a5,a0 while (n) { - 18f4: f825 bnez s0,1864 - 18f6: 6fc2 ld t6,16(sp) - 18f8: 64e2 ld s1,24(sp) - 18fa: 7e02 ld t3,32(sp) - 18fc: 7322 ld t1,40(sp) - 18fe: 83e6 mv t2,s9 - 1900: 88d6 mv a7,s5 - 1902: 8cee mv s9,s11 - 1904: 843e mv s0,a5 - 1906: 8dea mv s11,s10 - 1908: 8d4a mv s10,s2 - 190a: 892a mv s2,a0 + 1904: f825 bnez s0,1874 + 1906: 6fc2 ld t6,16(sp) + 1908: 64e2 ld s1,24(sp) + 190a: 7e02 ld t3,32(sp) + 190c: 7322 ld t1,40(sp) + 190e: 83e6 mv t2,s9 + 1910: 88d6 mv a7,s5 + 1912: 8cee mv s9,s11 + 1914: 843e mv s0,a5 + 1916: 8dea mv s11,s10 + 1918: 8d4a mv s10,s2 + 191a: 892a mv s2,a0 while (tz) { - 190c: 08088863 beqz a7,199c + 191c: 08088863 beqz a7,19ac *(stbsp__uint32 *)bf = 0x30303030; - 1910: 30303b37 lui s6,0x30303 + 1920: 30303b37 lui s6,0x30303 *bf++ = '0'; - 1914: 03000a13 li s4,48 + 1924: 03000a13 li s4,48 while (i >= 4) { - 1918: 4a8d li s5,3 + 1928: 4a8d li s5,3 stbsp__chk_cb_buf(1); - 191a: 1fe00693 li a3,510 + 192a: 1fe00693 li a3,510 *(stbsp__uint32 *)bf = 0x30303030; - 191e: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fb7c8> + 192e: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fb7a8> stbsp__cb_buf_clamp(i, tz); - 1922: 20000b93 li s7,512 - 1926: 040989e3 beqz s3,2178 - 192a: 41240633 sub a2,s0,s2 - 192e: 40cb87bb subw a5,s7,a2 - 1932: 873e mv a4,a5 - 1934: 00f8d363 bge a7,a5,193a - 1938: 8746 mv a4,a7 - 193a: 0007079b sext.w a5,a4 + 1932: 20000b93 li s7,512 + 1936: 040989e3 beqz s3,2188 + 193a: 41240633 sub a2,s0,s2 + 193e: 40cb87bb subw a5,s7,a2 + 1942: 873e mv a4,a5 + 1944: 00f8d363 bge a7,a5,194a + 1948: 8746 mv a4,a7 + 194a: 0007079b sext.w a5,a4 tz -= i; - 193e: 40e888bb subw a7,a7,a4 + 194e: 40e888bb subw a7,a7,a4 while (i) { - 1942: 08078ee3 beqz a5,21de + 1952: 08078ee3 beqz a5,21ee if ((((stbsp__uintptr)bf) & 3) == 0) - 1946: 00347713 andi a4,s0,3 - 194a: e719 bnez a4,1958 - 194c: 0390006f j 2184 - 1950: 00347713 andi a4,s0,3 - 1954: 7a070f63 beqz a4,2112 + 1956: 00347713 andi a4,s0,3 + 195a: e719 bnez a4,1968 + 195c: 0390006f j 2194 + 1960: 00347713 andi a4,s0,3 + 1964: 7a070f63 beqz a4,2122 *bf++ = '0'; - 1958: 01440023 sb s4,0(s0) + 1968: 01440023 sb s4,0(s0) --i; - 195c: 37fd addiw a5,a5,-1 + 196c: 37fd addiw a5,a5,-1 *bf++ = '0'; - 195e: 0405 addi s0,s0,1 + 196e: 0405 addi s0,s0,1 while (i) { - 1960: fbe5 bnez a5,1950 + 1970: fbe5 bnez a5,1960 stbsp__chk_cb_buf(1); - 1962: 02098b63 beqz s3,1998 - 1966: 4124063b subw a2,s0,s2 - 196a: 02c6d763 bge a3,a2,1998 - 196e: 65a2 ld a1,8(sp) - 1970: 854a mv a0,s2 - 1972: f81e sd t2,48(sp) - 1974: f41a sd t1,40(sp) - 1976: f072 sd t3,32(sp) - 1978: ec7e sd t6,24(sp) - 197a: e846 sd a7,16(sp) - 197c: 00cd0d3b addw s10,s10,a2 - 1980: 9982 jalr s3 - 1982: 892a mv s2,a0 - 1984: 1a0502e3 beqz a0,2328 - 1988: 73c2 ld t2,48(sp) - 198a: 7322 ld t1,40(sp) - 198c: 7e02 ld t3,32(sp) - 198e: 6fe2 ld t6,24(sp) - 1990: 68c2 ld a7,16(sp) - 1992: 842a mv s0,a0 - 1994: 1fe00693 li a3,510 + 1972: 02098b63 beqz s3,19a8 + 1976: 4124063b subw a2,s0,s2 + 197a: 02c6d763 bge a3,a2,19a8 + 197e: 65a2 ld a1,8(sp) + 1980: 854a mv a0,s2 + 1982: f81e sd t2,48(sp) + 1984: f41a sd t1,40(sp) + 1986: f072 sd t3,32(sp) + 1988: ec7e sd t6,24(sp) + 198a: e846 sd a7,16(sp) + 198c: 00cd0d3b addw s10,s10,a2 + 1990: 9982 jalr s3 + 1992: 892a mv s2,a0 + 1994: 1a0502e3 beqz a0,2338 + 1998: 73c2 ld t2,48(sp) + 199a: 7322 ld t1,40(sp) + 199c: 7e02 ld t3,32(sp) + 199e: 6fe2 ld t6,24(sp) + 19a0: 68c2 ld a7,16(sp) + 19a2: 842a mv s0,a0 + 19a4: 1fe00693 li a3,510 while (tz) { - 1998: f80897e3 bnez a7,1926 + 19a8: f80897e3 bnez a7,1936 sn = tail + 1; - 199c: 07110793 addi a5,sp,113 - 19a0: fcbe sd a5,120(sp) + 19ac: 07110793 addi a5,sp,113 + 19b0: fcbe sd a5,120(sp) while (tail[0]) { - 19a2: 080f8763 beqz t6,1a30 + 19b2: 080f8763 beqz t6,1a40 stbsp__cb_buf_clamp(i, tail[0]); - 19a6: 854a mv a0,s2 - 19a8: 8b6a mv s6,s10 + 19b6: 854a mv a0,s2 + 19b8: 8b6a mv s6,s10 stbsp__chk_cb_buf(1); - 19aa: 1fe00a93 li s5,510 + 19ba: 1fe00a93 li s5,510 stbsp__cb_buf_clamp(i, tail[0]); - 19ae: 8d4e mv s10,s3 - 19b0: 20000a13 li s4,512 - 19b4: 8bf2 mv s7,t3 - 19b6: 891a mv s2,t1 - 19b8: 899e mv s3,t2 - 19ba: 000f879b sext.w a5,t6 - 19be: 7c0d0863 beqz s10,218e - 19c2: 40a4063b subw a2,s0,a0 - 19c6: 40ca06bb subw a3,s4,a2 - 19ca: 8736 mv a4,a3 - 19cc: 00d7d363 bge a5,a3,19d2 - 19d0: 873e mv a4,a5 + 19be: 8d4e mv s10,s3 + 19c0: 20000a13 li s4,512 + 19c4: 8bf2 mv s7,t3 + 19c6: 891a mv s2,t1 + 19c8: 899e mv s3,t2 + 19ca: 000f879b sext.w a5,t6 + 19ce: 7c0d0863 beqz s10,219e + 19d2: 40a4063b subw a2,s0,a0 + 19d6: 40ca06bb subw a3,s4,a2 + 19da: 8736 mv a4,a3 + 19dc: 00d7d363 bge a5,a3,19e2 + 19e0: 873e mv a4,a5 tail[0] -= (char)i; - 19d2: 40ef8fbb subw t6,t6,a4 + 19e2: 40ef8fbb subw t6,t6,a4 stbsp__cb_buf_clamp(i, tail[0]); - 19d6: 0007079b sext.w a5,a4 + 19e6: 0007079b sext.w a5,a4 tail[0] -= (char)i; - 19da: 07f10823 sb t6,112(sp) + 19ea: 07f10823 sb t6,112(sp) while (i) { - 19de: c795 beqz a5,1a0a - 19e0: 75e6 ld a1,120(sp) - 19e2: 02079613 slli a2,a5,0x20 - 19e6: 9201 srli a2,a2,0x20 - 19e8: 00c406b3 add a3,s0,a2 - 19ec: 87ae mv a5,a1 + 19ee: c795 beqz a5,1a1a + 19f0: 75e6 ld a1,120(sp) + 19f2: 02079613 slli a2,a5,0x20 + 19f6: 9201 srli a2,a2,0x20 + 19f8: 00c406b3 add a3,s0,a2 + 19fc: 87ae mv a5,a1 *bf++ = *sn++; - 19ee: 0007c703 lbu a4,0(a5) - 19f2: 0405 addi s0,s0,1 + 19fe: 0007c703 lbu a4,0(a5) + 1a02: 0405 addi s0,s0,1 while (i) { - 19f4: 0785 addi a5,a5,1 + 1a04: 0785 addi a5,a5,1 *bf++ = *sn++; - 19f6: fee40fa3 sb a4,-1(s0) + 1a06: fee40fa3 sb a4,-1(s0) while (i) { - 19fa: fed41ae3 bne s0,a3,19ee - 19fe: 95b2 add a1,a1,a2 - 1a00: fcae sd a1,120(sp) + 1a0a: fed41ae3 bne s0,a3,19fe + 1a0e: 95b2 add a1,a1,a2 + 1a10: fcae sd a1,120(sp) stbsp__chk_cb_buf(1); - 1a02: 000d0d63 beqz s10,1a1c - 1a06: 40a4063b subw a2,s0,a0 - 1a0a: 00cad963 bge s5,a2,1a1c - 1a0e: 65a2 ld a1,8(sp) - 1a10: 00cb0b3b addw s6,s6,a2 - 1a14: 9d02 jalr s10 - 1a16: 200509e3 beqz a0,2428 - 1a1a: 842a mv s0,a0 + 1a12: 000d0d63 beqz s10,1a2c + 1a16: 40a4063b subw a2,s0,a0 + 1a1a: 00cad963 bge s5,a2,1a2c + 1a1e: 65a2 ld a1,8(sp) + 1a20: 00cb0b3b addw s6,s6,a2 + 1a24: 9d02 jalr s10 + 1a26: 200509e3 beqz a0,2438 + 1a2a: 842a mv s0,a0 while (tail[0]) { - 1a1c: 07014f83 lbu t6,112(sp) - 1a20: f80f9de3 bnez t6,19ba - 1a24: 834a mv t1,s2 - 1a26: 83ce mv t2,s3 - 1a28: 8e5e mv t3,s7 - 1a2a: 89ea mv s3,s10 - 1a2c: 892a mv s2,a0 - 1a2e: 8d5a mv s10,s6 + 1a2c: 07014f83 lbu t6,112(sp) + 1a30: f80f9de3 bnez t6,19ca + 1a34: 834a mv t1,s2 + 1a36: 83ce mv t2,s3 + 1a38: 8e5e mv t3,s7 + 1a3a: 89ea mv s3,s10 + 1a3c: 892a mv s2,a0 + 1a3e: 8d5a mv s10,s6 if (fl & STBSP__LEFTJUST) - 1a30: 001e7e13 andi t3,t3,1 - 1a34: 000e0663 beqz t3,1a40 + 1a40: 001e7e13 andi t3,t3,1 + 1a44: 000e0663 beqz t3,1a50 if (fw > 0) { - 1a38: 00605463 blez t1,1a40 - 1a3c: 0300106f j 2a6c + 1a48: 00605463 blez t1,1a50 + 1a4c: 0300106f j 2a7c for (;;) { - 1a40: 6b86 ld s7,64(sp) - 1a42: 2c013a03 ld s4,704(sp) - 1a46: 2b813a83 ld s5,696(sp) - 1a4a: 2b013b03 ld s6,688(sp) + 1a50: 6b86 ld s7,64(sp) + 1a52: 2c013a03 ld s4,704(sp) + 1a56: 2b813a83 ld s5,696(sp) + 1a5a: 2b013b03 ld s6,688(sp) ++f; - 1a4e: 0485 addi s1,s1,1 + 1a5e: 0485 addi s1,s1,1 for (;;) { - 1a50: b0f1 j 131c + 1a60: b0f1 j 132c fl |= STBSP__METRIC_SUFFIX; - 1a52: 100e6e13 ori t3,t3,256 + 1a62: 100e6e13 ori t3,t3,256 continue; - 1a56: 0685 addi a3,a3,1 - 1a58: bad1 j 142c + 1a66: 0685 addi a3,a3,1 + 1a68: bad1 j 143c while (i) { - 1a5a: 0e0580e3 beqz a1,233a + 1a6a: 0e0580e3 beqz a1,234a if ((((stbsp__uintptr)bf) & 3) == 0) - 1a5e: 00347793 andi a5,s0,3 - 1a62: e799 bnez a5,1a70 - 1a64: 0dd0006f j 2340 - 1a68: 00347793 andi a5,s0,3 - 1a6c: 72078463 beqz a5,2194 + 1a6e: 00347793 andi a5,s0,3 + 1a72: e799 bnez a5,1a80 + 1a74: 0dd0006f j 2350 + 1a78: 00347793 andi a5,s0,3 + 1a7c: 72078463 beqz a5,21a4 *bf++ = '0'; - 1a70: 01d40023 sb t4,0(s0) + 1a80: 01d40023 sb t4,0(s0) --i; - 1a74: 35fd addiw a1,a1,-1 + 1a84: 35fd addiw a1,a1,-1 *bf++ = '0'; - 1a76: 0405 addi s0,s0,1 + 1a86: 0405 addi s0,s0,1 while (i) { - 1a78: f9e5 bnez a1,1a68 + 1a88: f9e5 bnez a1,1a78 while (i) { - 1a7a: 85a2 mv a1,s0 + 1a8a: 85a2 mv a1,s0 stbsp__chk_cb_buf(1); - 1a7c: cc0b19e3 bnez s6,174e - 1a80: 842e mv s0,a1 + 1a8c: cc0b19e3 bnez s6,175e + 1a90: 842e mv s0,a1 while (pr > 0) { - 1a82: c93042e3 bgtz s3,1706 - 1a86: b9cd j 1778 + 1a92: c93042e3 bgtz s3,1716 + 1a96: b9cd j 1788 while (i) { - 1a88: 87ae mv a5,a1 + 1a98: 87ae mv a5,a1 while (n) { - 1a8a: dc041de3 bnez s0,1864 - 1a8e: b5a5 j 18f6 + 1a9a: dc041de3 bnez s0,1874 + 1a9e: b5a5 j 1906 while ((f[0] >= '0') && (f[0] <= '9')) { - 1a90: fd07871b addiw a4,a5,-48 - 1a94: 0ff77713 zext.b a4,a4 - 1a98: 4625 li a2,9 + 1aa0: fd07871b addiw a4,a5,-48 + 1aa4: 0ff77713 zext.b a4,a4 + 1aa8: 4625 li a2,9 ++f; - 1a9a: 0485 addi s1,s1,1 + 1aaa: 0485 addi s1,s1,1 pr = 0; - 1a9c: 4881 li a7,0 + 1aac: 4881 li a7,0 while ((f[0] >= '0') && (f[0] <= '9')) { - 1a9e: 46a5 li a3,9 - 1aa0: 9ce669e3 bltu a2,a4,1472 + 1aae: 46a5 li a3,9 + 1ab0: 9ce669e3 bltu a2,a4,1482 pr = pr * 10 + f[0] - '0'; - 1aa4: 0028971b slliw a4,a7,0x2 - 1aa8: 0117073b addw a4,a4,a7 - 1aac: 0017171b slliw a4,a4,0x1 + 1ab4: 0028971b slliw a4,a7,0x2 + 1ab8: 0117073b addw a4,a4,a7 + 1abc: 0017171b slliw a4,a4,0x1 f++; - 1ab0: 0485 addi s1,s1,1 + 1ac0: 0485 addi s1,s1,1 pr = pr * 10 + f[0] - '0'; - 1ab2: 9f3d addw a4,a4,a5 + 1ac2: 9f3d addw a4,a4,a5 while ((f[0] >= '0') && (f[0] <= '9')) { - 1ab4: 0004c783 lbu a5,0(s1) + 1ac4: 0004c783 lbu a5,0(s1) pr = pr * 10 + f[0] - '0'; - 1ab8: fd07089b addiw a7,a4,-48 + 1ac8: fd07089b addiw a7,a4,-48 while ((f[0] >= '0') && (f[0] <= '9')) { - 1abc: fd07871b addiw a4,a5,-48 - 1ac0: 0ff77713 zext.b a4,a4 - 1ac4: fee6f0e3 bgeu a3,a4,1aa4 - 1ac8: b26d j 1472 + 1acc: fd07871b addiw a4,a5,-48 + 1ad0: 0ff77713 zext.b a4,a4 + 1ad4: fee6f0e3 bgeu a3,a4,1ab4 + 1ad8: b26d j 1482 fl |= STBSP__METRIC_1024; - 1aca: 8f5d or a4,a4,a5 - 1acc: 00070e1b sext.w t3,a4 - 1ad0: 0685 addi a3,a3,1 - 1ad2: baa9 j 142c + 1ada: 8f5d or a4,a4,a5 + 1adc: 00070e1b sext.w t3,a4 + 1ae0: 0685 addi a3,a3,1 + 1ae2: baa9 j 143c *bf = 0; - 1ad4: 00040023 sb zero,0(s0) - 1ad8: b209 j 13da + 1ae4: 00040023 sb zero,0(s0) + 1ae8: b209 j 13ea if (f[0] == 'l') { - 1ada: 0014c783 lbu a5,1(s1) - 1ade: 06c00713 li a4,108 + 1aea: 0014c783 lbu a5,1(s1) + 1aee: 06c00713 li a4,108 fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); - 1ae2: 020e6e13 ori t3,t3,32 + 1af2: 020e6e13 ori t3,t3,32 if (f[0] == 'l') { - 1ae6: 00e78c63 beq a5,a4,1afe + 1af6: 00e78c63 beq a5,a4,1b0e ++f; - 1aea: 0485 addi s1,s1,1 - 1aec: ba65 j 14a4 + 1afa: 0485 addi s1,s1,1 + 1afc: ba65 j 14b4 if (f[0] == 'h') - 1aee: 0014c783 lbu a5,1(s1) - 1af2: 06800713 li a4,104 + 1afe: 0014c783 lbu a5,1(s1) + 1b02: 06800713 li a4,104 fl |= STBSP__HALFWIDTH; - 1af6: 200e6e13 ori t3,t3,512 + 1b06: 200e6e13 ori t3,t3,512 if (f[0] == 'h') - 1afa: fee798e3 bne a5,a4,1aea + 1b0a: fee798e3 bne a5,a4,1afa if ((f[1] == '6') && (f[2] == '4')) { - 1afe: 0024c783 lbu a5,2(s1) + 1b0e: 0024c783 lbu a5,2(s1) ++f; - 1b02: 0489 addi s1,s1,2 - 1b04: b245 j 14a4 + 1b12: 0489 addi s1,s1,2 + 1b14: b245 j 14b4 s = va_arg(va, char *); - 1b06: 008b8713 addi a4,s7,8 - 1b0a: e0ba sd a4,64(sp) + 1b16: 008b8713 addi a4,s7,8 + 1b1a: e0ba sd a4,64(sp) if (fl & STBSP__INTMAX) { - 1b0c: 020e7693 andi a3,t3,32 - 1b10: 8772 mv a4,t3 - 1b12: 24069ee3 bnez a3,256e + 1b1c: 020e7693 andi a3,t3,32 + 1b20: 8772 mv a4,t3 + 1b22: 24069ee3 bnez a3,257e stbsp__int32 i = va_arg(va, stbsp__int32); - 1b16: 000ba683 lw a3,0(s7) + 1b26: 000ba683 lw a3,0(s7) if ((f[0] != 'u') && (i < 0)) { - 1b1a: 07500613 li a2,117 + 1b2a: 07500613 li a2,117 n64 = (stbsp__uint32)i; - 1b1e: 02069f13 slli t5,a3,0x20 - 1b22: 020f5f13 srli t5,t5,0x20 + 1b2e: 02069f13 slli t5,a3,0x20 + 1b32: 020f5f13 srli t5,t5,0x20 if ((f[0] != 'u') && (i < 0)) { - 1b26: 00c78a63 beq a5,a2,1b3a - 1b2a: 0006d863 bgez a3,1b3a + 1b36: 00c78a63 beq a5,a2,1b4a + 1b3a: 0006d863 bgez a3,1b4a fl |= STBSP__NEGATIVE; - 1b2e: 08076713 ori a4,a4,128 + 1b3e: 08076713 ori a4,a4,128 n64 = (stbsp__uint32)-i; - 1b32: 40d00f3b negw t5,a3 + 1b42: 40d00f3b negw t5,a3 fl |= STBSP__NEGATIVE; - 1b36: 00070e1b sext.w t3,a4 + 1b46: 00070e1b sext.w t3,a4 if (fl & STBSP__METRIC_SUFFIX) { - 1b3a: 100e7693 andi a3,t3,256 - 1b3e: 5c0683e3 beqz a3,2904 + 1b4a: 100e7693 andi a3,t3,256 + 1b4e: 5c0683e3 beqz a3,2914 if (n64 < 1024) - 1b42: 3ff00793 li a5,1023 - 1b46: 01e7e463 bltu a5,t5,1b4e - 1b4a: 0ea0106f j 2c34 + 1b52: 3ff00793 li a5,1023 + 1b56: 01e7e463 bltu a5,t5,1b5e + 1b5a: 0ea0106f j 2c44 else if (pr == -1) - 1b4e: 57fd li a5,-1 - 1b50: 30f887e3 beq a7,a5,265e + 1b5e: 57fd li a5,-1 + 1b60: 30f887e3 beq a7,a5,266e fv = (double)(stbsp__int64)n64; - 1b54: d22f7553 fcvt.d.l fa0,t5 + 1b64: d22f7553 fcvt.d.l fa0,t5 if (fl & STBSP__METRIC_1024) - 1b58: 034e1793 slli a5,t3,0x34 - 1b5c: 0007c463 bltz a5,1b64 - 1b60: 2300106f j 2d90 + 1b68: 034e1793 slli a5,t3,0x34 + 1b6c: 0007c463 bltz a5,1b74 + 1b70: 2300106f j 2da0 divisor = 1024.0; - 1b64: 00004797 auipc a5,0x4 - 1b68: cf47b787 fld fa5,-780(a5) # 5858 + 1b74: 00004797 auipc a5,0x4 + 1b78: d047b787 fld fa5,-764(a5) # 5878 if ((fv < divisor) && (fv > -divisor)) - 1b6c: 22f79753 fneg.d fa4,fa5 + 1b7c: 22f79753 fneg.d fa4,fa5 fl += 0x1000000; - 1b70: 010006b7 lui a3,0x1000 + 1b80: 010006b7 lui a3,0x1000 while (fl < 0x4000000) { - 1b74: 04000737 lui a4,0x4000 + 1b84: 04000737 lui a4,0x4000 if ((fv < divisor) && (fv > -divisor)) - 1b78: a2f517d3 flt.d a5,fa0,fa5 - 1b7c: c789 beqz a5,1b86 - 1b7e: a2a717d3 flt.d a5,fa4,fa0 - 1b82: 3e079863 bnez a5,1f72 + 1b88: a2f517d3 flt.d a5,fa0,fa5 + 1b8c: c789 beqz a5,1b96 + 1b8e: a2a717d3 flt.d a5,fa4,fa0 + 1b92: 3e079863 bnez a5,1f82 fl += 0x1000000; - 1b86: 01c68e3b addw t3,a3,t3 + 1b96: 01c68e3b addw t3,a3,t3 fv /= divisor; - 1b8a: 1af57553 fdiv.d fa0,fa0,fa5 + 1b9a: 1af57553 fdiv.d fa0,fa0,fa5 while (fl < 0x4000000) { - 1b8e: feee65e3 bltu t3,a4,1b78 - 1b92: a6c5 j 1f72 + 1b9e: feee65e3 bltu t3,a4,1b88 + 1ba2: a6c5 j 1f82 h = (f[0] == 'X') ? hexu : hex; - 1b94: 05800693 li a3,88 + 1ba4: 05800693 li a3,88 if (fl & STBSP__INTMAX) { - 1b98: 020e7713 andi a4,t3,32 + 1ba8: 020e7713 andi a4,t3,32 h = (f[0] == 'X') ? hexu : hex; - 1b9c: 00005817 auipc a6,0x5 - 1ba0: ebc80813 addi a6,a6,-324 # 6a58 - 1ba4: 00d79663 bne a5,a3,1bb0 - 1ba8: 00005817 auipc a6,0x5 - 1bac: e9880813 addi a6,a6,-360 # 6a40 + 1bac: 00005817 auipc a6,0x5 + 1bb0: ecc80813 addi a6,a6,-308 # 6a78 + 1bb4: 00d79663 bne a5,a3,1bc0 + 1bb8: 00005817 auipc a6,0x5 + 1bbc: ea880813 addi a6,a6,-344 # 6a60 l = (4 << 4) | (4 << 8); - 1bb0: 44000793 li a5,1088 - 1bb4: d0be sw a5,96(sp) + 1bc0: 44000793 li a5,1088 + 1bc4: d0be sw a5,96(sp) if (fl & STBSP__LEADING_0X) { - 1bb6: 008e7793 andi a5,t3,8 - 1bba: 7a079263 bnez a5,235e + 1bc6: 008e7793 andi a5,t3,8 + 1bca: 7a079263 bnez a5,236e lead[0] = 0; - 1bbe: 06010423 sb zero,104(sp) + 1bce: 06010423 sb zero,104(sp) s = va_arg(va, char *); - 1bc2: 008b8793 addi a5,s7,8 - 1bc6: e0be sd a5,64(sp) + 1bd2: 008b8793 addi a5,s7,8 + 1bd6: e0be sd a5,64(sp) if (fl & STBSP__INTMAX) - 1bc8: 72070b63 beqz a4,22fe + 1bd8: 72070b63 beqz a4,230e n64 = va_arg(va, stbsp__uint64); - 1bcc: 000bb683 ld a3,0(s7) + 1bdc: 000bb683 ld a3,0(s7) dp = 0; - 1bd0: d282 sw zero,100(sp) + 1be0: d282 sw zero,100(sp) tail[0] = 0; - 1bd2: 06010823 sb zero,112(sp) + 1be2: 06010823 sb zero,112(sp) if ((fl & STBSP__LEFTJUST) == 0) { - 1bd6: 001e7513 andi a0,t3,1 + 1be6: 001e7513 andi a0,t3,1 if (n64 == 0) { - 1bda: 380694e3 bnez a3,2762 + 1bea: 380694e3 bnez a3,2772 lead[0] = 0; - 1bde: 06010423 sb zero,104(sp) + 1bee: 06010423 sb zero,104(sp) if (pr == 0) { - 1be2: 78089a63 bnez a7,2376 + 1bf2: 78089a63 bnez a7,2386 if (fw < (stbsp__int32)n) - 1be6: fffb4313 not t1,s6 - 1bea: 43f35313 srai t1,t1,0x3f + 1bf6: fffb4313 not t1,s6 + 1bfa: 43f35313 srai t1,t1,0x3f l = 0; - 1bee: d082 sw zero,96(sp) + 1bfe: d082 sw zero,96(sp) if (fw < (stbsp__int32)n) - 1bf0: 01637333 and t1,t1,s6 + 1c00: 01637333 and t1,t1,s6 goto scopy; - 1bf4: 4701 li a4,0 - 1bf6: 4f81 li t6,0 - 1bf8: 4a01 li s4,0 + 1c04: 4701 li a4,0 + 1c06: 4f81 li t6,0 + 1c08: 4a01 li s4,0 cs = 0; - 1bfa: 4281 li t0,0 + 1c0a: 4281 li t0,0 s = num + STBSP__NUMSZ; - 1bfc: 28010a93 addi s5,sp,640 + 1c0c: 28010a93 addi s5,sp,640 if ((fl & STBSP__LEFTJUST) == 0) { - 1c00: 9c0506e3 beqz a0,15cc + 1c10: 9c0506e3 beqz a0,15dc if (fw + pr) { - 1c04: 00e307bb addw a5,t1,a4 - 1c08: 9c079fe3 bnez a5,15e6 - 1c0c: 06910793 addi a5,sp,105 - 1c10: b661 j 1798 + 1c14: 00e307bb addw a5,t1,a4 + 1c18: 9c079fe3 bnez a5,15f6 + 1c1c: 06910793 addi a5,sp,105 + 1c20: b661 j 17a8 h = (f[0] == 'E') ? hexu : hex; - 1c12: 04500713 li a4,69 - 1c16: 00005317 auipc t1,0x5 - 1c1a: e4230313 addi t1,t1,-446 # 6a58 - 1c1e: 1ce78ae3 beq a5,a4,25f2 + 1c22: 04500713 li a4,69 + 1c26: 00005317 auipc t1,0x5 + 1c2a: e5230313 addi t1,t1,-430 # 6a78 + 1c2e: 1ce78ae3 beq a5,a4,2602 fv = va_arg(va, double); - 1c22: 008b8713 addi a4,s7,8 + 1c32: 008b8713 addi a4,s7,8 if (pr == -1) - 1c26: 57fd li a5,-1 + 1c36: 57fd li a5,-1 fv = va_arg(va, double); - 1c28: e0ba sd a4,64(sp) - 1c2a: 000bb507 fld fa0,0(s7) + 1c38: e0ba sd a4,64(sp) + 1c3a: 000bb507 fld fa0,0(s7) if (pr == -1) - 1c2e: 1af88ce3 beq a7,a5,25e6 + 1c3e: 1af88ce3 beq a7,a5,25f6 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) - 1c32: 80000737 lui a4,0x80000 - 1c36: 00e8e733 or a4,a7,a4 - 1c3a: 2701 sext.w a4,a4 - 1c3c: 10d4 addi a3,sp,100 - 1c3e: 0110 addi a2,sp,128 - 1c40: 108c addi a1,sp,96 - 1c42: 18a8 addi a0,sp,120 - 1c44: f41e sd t2,40(sp) - 1c46: f01a sd t1,32(sp) - 1c48: ec72 sd t3,24(sp) - 1c4a: e846 sd a7,16(sp) - 1c4c: d8efe0ef jal 1da - 1c50: 68c2 ld a7,16(sp) - 1c52: 6e62 ld t3,24(sp) - 1c54: 7302 ld t1,32(sp) - 1c56: 73a2 ld t2,40(sp) + 1c42: 80000737 lui a4,0x80000 + 1c46: 00e8e733 or a4,a7,a4 + 1c4a: 2701 sext.w a4,a4 + 1c4c: 10d4 addi a3,sp,100 + 1c4e: 0110 addi a2,sp,128 + 1c50: 108c addi a1,sp,96 + 1c52: 18a8 addi a0,sp,120 + 1c54: f41e sd t2,40(sp) + 1c56: f01a sd t1,32(sp) + 1c58: ec72 sd t3,24(sp) + 1c5a: e846 sd a7,16(sp) + 1c5c: d8efe0ef jal 1ea + 1c60: 68c2 ld a7,16(sp) + 1c62: 6e62 ld t3,24(sp) + 1c64: 7302 ld t1,32(sp) + 1c66: 73a2 ld t2,40(sp) if (dp == STBSP__SPECIAL) { - 1c58: 5796 lw a5,100(sp) + 1c68: 5796 lw a5,100(sp) s = (char *)sn; - 1c5a: 7ae6 ld s5,120(sp) + 1c6a: 7ae6 ld s5,120(sp) if ((l - 1) > (stbsp__uint32)pr) - 1c5c: 5686 lw a3,96(sp) + 1c6c: 5686 lw a3,96(sp) if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) - 1c5e: 3c0511e3 bnez a0,2820 + 1c6e: 3c0511e3 bnez a0,2830 tail[0] = 0; - 1c62: 06010823 sb zero,112(sp) + 1c72: 06010823 sb zero,112(sp) sign[0] = 0; - 1c66: 06010423 sb zero,104(sp) + 1c76: 06010423 sb zero,104(sp) } else if (fl & STBSP__LEADINGSPACE) { - 1c6a: 004e7713 andi a4,t3,4 - 1c6e: 6a070ee3 beqz a4,2b2a + 1c7a: 004e7713 andi a4,t3,4 + 1c7e: 6a070ee3 beqz a4,2b3a sign[0] = 1; - 1c72: 6709 lui a4,0x2 - 1c74: 0705 addi a4,a4,1 # 2001 - 1c76: 06e11423 sh a4,104(sp) + 1c82: 6709 lui a4,0x2 + 1c84: 0705 addi a4,a4,1 # 2001 + 1c86: 06e11423 sh a4,104(sp) if (dp == STBSP__SPECIAL) { - 1c7a: 671d lui a4,0x7 - 1c7c: 1ee794e3 bne a5,a4,2664 + 1c8a: 671d lui a4,0x7 + 1c8c: 1ee794e3 bne a5,a4,2674 if (pr < (stbsp__int32)l) - 1c80: 0006879b sext.w a5,a3 + 1c90: 0006879b sext.w a5,a3 n = pr + lead[0] + tail[0] + tz; - 1c84: 06814a03 lbu s4,104(sp) + 1c94: 06814a03 lbu s4,104(sp) if (pr < (stbsp__int32)l) - 1c88: fff7c793 not a5,a5 + 1c98: fff7c793 not a5,a5 n = pr + lead[0] + tail[0] + tz; - 1c8c: 07014f83 lbu t6,112(sp) + 1c9c: 07014f83 lbu t6,112(sp) if (pr < (stbsp__int32)l) - 1c90: 97fd srai a5,a5,0x3f - 1c92: 8ff5 and a5,a5,a3 + 1ca0: 97fd srai a5,a5,0x3f + 1ca2: 8ff5 and a5,a5,a3 n = pr + lead[0] + tail[0] + tz; - 1c94: 00fa073b addw a4,s4,a5 - 1c98: 01f7063b addw a2,a4,t6 - 1c9c: 8732 mv a4,a2 + 1ca4: 00fa073b addw a4,s4,a5 + 1ca8: 01f7063b addw a2,a4,t6 + 1cac: 8732 mv a4,a2 if ((fl & STBSP__LEFTJUST) == 0) { - 1c9e: 001e7513 andi a0,t3,1 + 1cae: 001e7513 andi a0,t3,1 if (pr < (stbsp__int32)l) - 1ca2: 2781 sext.w a5,a5 + 1cb2: 2781 sext.w a5,a5 if (fw < (stbsp__int32)n) - 1ca4: 835a mv t1,s6 - 1ca6: 00cb5363 bge s6,a2,1cac - 1caa: 8332 mv t1,a2 + 1cb4: 835a mv t1,s6 + 1cb6: 00cb5363 bge s6,a2,1cbc + 1cba: 8332 mv t1,a2 fw -= n; - 1cac: 40e3033b subw t1,t1,a4 + 1cbc: 40e3033b subw t1,t1,a4 cs = 0; - 1cb0: 4281 li t0,0 + 1cc0: 4281 li t0,0 pr -= l; - 1cb2: 40d7873b subw a4,a5,a3 + 1cc2: 40d7873b subw a4,a5,a3 tz = 0; - 1cb6: 4881 li a7,0 + 1cc6: 4881 li a7,0 goto scopy; - 1cb8: b7a1 j 1c00 + 1cc8: b7a1 j 1c10 h = (f[0] == 'G') ? hexu : hex; - 1cba: 04700713 li a4,71 - 1cbe: 00005317 auipc t1,0x5 - 1cc2: d9a30313 addi t1,t1,-614 # 6a58 - 1cc6: 14e783e3 beq a5,a4,260c + 1cca: 04700713 li a4,71 + 1cce: 00005317 auipc t1,0x5 + 1cd2: daa30313 addi t1,t1,-598 # 6a78 + 1cd6: 14e783e3 beq a5,a4,261c fv = va_arg(va, double); - 1cca: 008b8713 addi a4,s7,8 + 1cda: 008b8713 addi a4,s7,8 if (pr == -1) - 1cce: 57fd li a5,-1 + 1cde: 57fd li a5,-1 fv = va_arg(va, double); - 1cd0: e0ba sd a4,64(sp) - 1cd2: 000bb507 fld fa0,0(s7) + 1ce0: e0ba sd a4,64(sp) + 1ce2: 000bb507 fld fa0,0(s7) if (pr == -1) - 1cd6: 12f884e3 beq a7,a5,25fe + 1ce6: 12f884e3 beq a7,a5,260e else if (pr == 0) - 1cda: 6e0887e3 beqz a7,2bc8 + 1cea: 6e0887e3 beqz a7,2bd8 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) - 1cde: fff8871b addiw a4,a7,-1 - 1ce2: 800007b7 lui a5,0x80000 - 1ce6: 8f5d or a4,a4,a5 - 1ce8: 2701 sext.w a4,a4 + 1cee: fff8871b addiw a4,a7,-1 + 1cf2: 800007b7 lui a5,0x80000 + 1cf6: 8f5d or a4,a4,a5 + 1cf8: 2701 sext.w a4,a4 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 1cea: 00088a9b sext.w s5,a7 - 1cee: 8a46 mv s4,a7 + 1cfa: 00088a9b sext.w s5,a7 + 1cfe: 8a46 mv s4,a7 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) - 1cf0: 10d4 addi a3,sp,100 - 1cf2: 0110 addi a2,sp,128 - 1cf4: 108c addi a1,sp,96 - 1cf6: 18a8 addi a0,sp,120 - 1cf8: f01e sd t2,32(sp) - 1cfa: ec1a sd t1,24(sp) - 1cfc: e872 sd t3,16(sp) - 1cfe: cdcfe0ef jal 1da - 1d02: 6e42 ld t3,16(sp) - 1d04: 6362 ld t1,24(sp) - 1d06: 7382 ld t2,32(sp) - 1d08: 4281 li t0,0 - 1d0a: c509 beqz a0,1d14 + 1d00: 10d4 addi a3,sp,100 + 1d02: 0110 addi a2,sp,128 + 1d04: 108c addi a1,sp,96 + 1d06: 18a8 addi a0,sp,120 + 1d08: f01e sd t2,32(sp) + 1d0a: ec1a sd t1,24(sp) + 1d0c: e872 sd t3,16(sp) + 1d0e: cdcfe0ef jal 1ea + 1d12: 6e42 ld t3,16(sp) + 1d14: 6362 ld t1,24(sp) + 1d16: 7382 ld t2,32(sp) + 1d18: 4281 li t0,0 + 1d1a: c509 beqz a0,1d24 fl |= STBSP__NEGATIVE; - 1d0c: 080e6e13 ori t3,t3,128 - 1d10: 08000293 li t0,128 + 1d1c: 080e6e13 ori t3,t3,128 + 1d20: 08000293 li t0,128 if (l > (stbsp__uint32)pr) - 1d14: 5806 lw a6,96(sp) - 1d16: 010af463 bgeu s5,a6,1d1e + 1d24: 5806 lw a6,96(sp) + 1d26: 010af463 bgeu s5,a6,1d2e l = pr; - 1d1a: d0d6 sw s5,96(sp) - 1d1c: 8856 mv a6,s5 + 1d2a: d0d6 sw s5,96(sp) + 1d2c: 8856 mv a6,s5 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 1d1e: 4705 li a4,1 + 1d2e: 4705 li a4,1 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 1d20: 5796 lw a5,100(sp) + 1d30: 5796 lw a5,100(sp) while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 1d22: 01076463 bltu a4,a6,1d2a - 1d26: 1800106f j 2ea6 - 1d2a: 7be6 ld s7,120(sp) - 1d2c: fff8071b addiw a4,a6,-1 - 1d30: 1702 slli a4,a4,0x20 - 1d32: 9301 srli a4,a4,0x20 - 1d34: 001a0e9b addiw t4,s4,1 - 1d38: 75e2 ld a1,56(sp) - 1d3a: 8ade mv s5,s7 - 1d3c: 975e add a4,a4,s7 - 1d3e: 410e8ebb subw t4,t4,a6 - 1d42: 88d2 mv a7,s4 - 1d44: 86c2 mv a3,a6 - 1d46: 4f01 li t5,0 - 1d48: 03000f93 li t6,48 - 1d4c: e842 sd a6,16(sp) - 1d4e: a809 j 1d60 + 1d32: 01076463 bltu a4,a6,1d3a + 1d36: 1800106f j 2eb6 + 1d3a: 7be6 ld s7,120(sp) + 1d3c: fff8071b addiw a4,a6,-1 + 1d40: 1702 slli a4,a4,0x20 + 1d42: 9301 srli a4,a4,0x20 + 1d44: 001a0e9b addiw t4,s4,1 + 1d48: 75e2 ld a1,56(sp) + 1d4a: 8ade mv s5,s7 + 1d4c: 975e add a4,a4,s7 + 1d4e: 410e8ebb subw t4,t4,a6 + 1d52: 88d2 mv a7,s4 + 1d54: 86c2 mv a3,a6 + 1d56: 4f01 li t5,0 + 1d58: 03000f93 li t6,48 + 1d5c: e842 sd a6,16(sp) + 1d5e: a809 j 1d70 --pr; - 1d50: 38fd addiw a7,a7,-1 + 1d60: 38fd addiw a7,a7,-1 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 1d52: 211e80e3 beq t4,a7,2752 - 1d56: 177d addi a4,a4,-1 # 6fff <_stdout+0x16f> - 1d58: 4f05 li t5,1 - 1d5a: 1e088ce3 beqz a7,2752 + 1d62: 211e80e3 beq t4,a7,2762 + 1d66: 177d addi a4,a4,-1 # 6fff <_stdout+0x14f> + 1d68: 4f05 li t5,1 + 1d6a: 1e088ce3 beqz a7,2762 --l; - 1d5e: 85b6 mv a1,a3 + 1d6e: 85b6 mv a1,a3 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 1d60: 00074803 lbu a6,0(a4) - 1d64: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff8797> - 1d68: 0006851b sext.w a0,a3 - 1d6c: 2581 sext.w a1,a1 - 1d6e: 0006069b sext.w a3,a2 - 1d72: fdf80fe3 beq a6,t6,1d50 - 1d76: 6842 ld a6,16(sp) - 1d78: fc2e sd a1,56(sp) - 1d7a: 86c2 mv a3,a6 - 1d7c: 000f0463 beqz t5,1d84 - 1d80: d0ae sw a1,96(sp) - 1d82: 86ae mv a3,a1 + 1d70: 00074803 lbu a6,0(a4) + 1d74: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff8777> + 1d78: 0006851b sext.w a0,a3 + 1d7c: 2581 sext.w a1,a1 + 1d7e: 0006069b sext.w a3,a2 + 1d82: fdf80fe3 beq a6,t6,1d60 + 1d86: 6842 ld a6,16(sp) + 1d88: fc2e sd a1,56(sp) + 1d8a: 86c2 mv a3,a6 + 1d8c: 000f0463 beqz t5,1d94 + 1d90: d0ae sw a1,96(sp) + 1d92: 86ae mv a3,a1 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 1d84: 5775 li a4,-3 - 1d86: 08e7cee3 blt a5,a4,2622 - 1d8a: 08fa4be3 blt s4,a5,2620 + 1d94: 5775 li a4,-3 + 1d96: 08e7cee3 blt a5,a4,2632 + 1d9a: 08fa4be3 blt s4,a5,2630 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 1d8e: 0005071b sext.w a4,a0 + 1d9e: 0005071b sext.w a4,a0 if (dp > 0) { - 1d92: 7ef057e3 blez a5,2d80 + 1da2: 7ef057e3 blez a5,2d90 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 1d96: 4881 li a7,0 - 1d98: 00e7d463 bge a5,a4,1da0 - 1d9c: 40f508bb subw a7,a0,a5 + 1da6: 4881 li a7,0 + 1da8: 00e7d463 bge a5,a4,1db0 + 1dac: 40f508bb subw a7,a0,a5 tail[0] = 0; - 1da0: 06010823 sb zero,112(sp) + 1db0: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 1da4: 20029463 bnez t0,1fac + 1db4: 20029463 bnez t0,1fbc } else if (fl & STBSP__LEADINGSPACE) { - 1da8: 004e7713 andi a4,t3,4 - 1dac: 000715e3 bnez a4,25b6 + 1db8: 004e7713 andi a4,t3,4 + 1dbc: 000715e3 bnez a4,25c6 } else if (fl & STBSP__LEADINGPLUS) { - 1db0: 002e7713 andi a4,t3,2 - 1db4: 660719e3 bnez a4,2c26 + 1dc0: 002e7713 andi a4,t3,2 + 1dc4: 660719e3 bnez a4,2c36 sign[0] = 0; - 1db8: 06010423 sb zero,104(sp) - 1dbc: aaed j 1fb6 + 1dc8: 06010423 sb zero,104(sp) + 1dcc: aaed j 1fc6 h = (f[0] == 'A') ? hexu : hex; - 1dbe: 04100713 li a4,65 - 1dc2: 00005597 auipc a1,0x5 - 1dc6: c9658593 addi a1,a1,-874 # 6a58 - 1dca: 00e783e3 beq a5,a4,25d0 + 1dce: 04100713 li a4,65 + 1dd2: 00005597 auipc a1,0x5 + 1dd6: ca658593 addi a1,a1,-858 # 6a78 + 1dda: 00e783e3 beq a5,a4,25e0 fv = va_arg(va, double); - 1dce: 008b8693 addi a3,s7,8 + 1dde: 008b8693 addi a3,s7,8 if (pr == -1) - 1dd2: 577d li a4,-1 + 1de2: 577d li a4,-1 fv = va_arg(va, double); - 1dd4: e0b6 sd a3,64(sp) - 1dd6: 000bb783 ld a5,0(s7) + 1de4: e0b6 sd a3,64(sp) + 1de6: 000bb783 ld a5,0(s7) if (pr == -1) - 1dda: 7ee88963 beq a7,a4,25cc + 1dea: 7ee88963 beq a7,a4,25dc d = value; STBSP__COPYFP(b, d); *bits = b & ((((stbsp__uint64)1) << 52) - 1); *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); - 1dde: 4347d613 srai a2,a5,0x34 + 1dee: 4347d613 srai a2,a5,0x34 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 1de2: 00c79513 slli a0,a5,0xc + 1df2: 00c79513 slli a0,a5,0xc *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); - 1de6: 7ff67613 andi a2,a2,2047 + 1df6: 7ff67613 andi a2,a2,2047 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 1dea: 8131 srli a0,a0,0xc + 1dfa: 8131 srli a0,a0,0xc *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); - 1dec: c016061b addiw a2,a2,-1023 + 1dfc: c016061b addiw a2,a2,-1023 if (stbsp__real_to_parts((stbsp__int64 *)&n64, &dp, fv)) - 1df0: 7a07c863 bltz a5,25a0 + 1e00: 7a07c863 bltz a5,25b0 } else if (fl & STBSP__LEADINGSPACE) { - 1df4: 004e7793 andi a5,t3,4 - 1df8: 60078ee3 beqz a5,2c14 - 1dfc: 6789 lui a5,0x2 - 1dfe: 2785 addiw a5,a5,1 # 2001 + 1e04: 004e7793 andi a5,t3,4 + 1e08: 60078ee3 beqz a5,2c24 + 1e0c: 6789 lui a5,0x2 + 1e0e: 2785 addiw a5,a5,1 # 2001 sign[0] = 1; - 1e00: 06f11423 sh a5,104(sp) - 1e04: 468d li a3,3 - 1e06: 4a0d li s4,3 - 1e08: 4809 li a6,2 + 1e10: 06f11423 sh a5,104(sp) + 1e14: 468d li a3,3 + 1e16: 4a0d li s4,3 + 1e18: 4809 li a6,2 n64 |= (((stbsp__uint64)1) << 52); - 1e0a: 4705 li a4,1 - 1e0c: 1752 slli a4,a4,0x34 + 1e1a: 4705 li a4,1 + 1e1c: 1752 slli a4,a4,0x34 if (dp == -1023) - 1e0e: c0100793 li a5,-1023 + 1e1e: c0100793 li a5,-1023 n64 |= (((stbsp__uint64)1) << 52); - 1e12: 8f49 or a4,a4,a0 + 1e22: 8f49 or a4,a4,a0 if (dp == -1023) - 1e14: 5cf600e3 beq a2,a5,2bd4 + 1e24: 5cf600e3 beq a2,a5,2be4 if (pr < 15) - 1e18: 4539 li a0,14 + 1e28: 4539 li a0,14 n64 <<= (64 - 56); - 1e1a: 00871793 slli a5,a4,0x8 + 1e2a: 00871793 slli a5,a4,0x8 if (pr < 15) - 1e1e: 251546e3 blt a0,a7,286a + 1e2e: 251546e3 blt a0,a7,287a n64 += ((((stbsp__uint64)8) << 56) >> (pr * 4)); - 1e22: 4705 li a4,1 - 1e24: 0028951b slliw a0,a7,0x2 - 1e28: 176e slli a4,a4,0x3b - 1e2a: 00a75733 srl a4,a4,a0 - 1e2e: 973e add a4,a4,a5 + 1e32: 4705 li a4,1 + 1e34: 0028951b slliw a0,a7,0x2 + 1e38: 176e slli a4,a4,0x3b + 1e3a: 00a75733 srl a4,a4,a0 + 1e3e: 973e add a4,a4,a5 *s++ = h[(n64 >> 60) & 15]; - 1e30: 03c75793 srli a5,a4,0x3c - 1e34: 97ae add a5,a5,a1 - 1e36: 0007c503 lbu a0,0(a5) + 1e40: 03c75793 srli a5,a4,0x3c + 1e44: 97ae add a5,a5,a1 + 1e46: 0007c503 lbu a0,0(a5) lead[1 + lead[0]] = '0'; - 1e3a: 22080793 addi a5,a6,544 - 1e3e: 06010813 addi a6,sp,96 - 1e42: 97c2 add a5,a5,a6 - 1e44: 03000813 li a6,48 - 1e48: df078423 sb a6,-536(a5) + 1e4a: 22080793 addi a5,a6,544 + 1e4e: 06010813 addi a6,sp,96 + 1e52: 97c2 add a5,a5,a6 + 1e54: 03000813 li a6,48 + 1e58: df078423 sb a6,-536(a5) lead[2 + lead[0]] = 'x'; - 1e4c: 22068793 addi a5,a3,544 - 1e50: 1094 addi a3,sp,96 - 1e52: 96be add a3,a3,a5 - 1e54: 07800793 li a5,120 - 1e58: def68423 sb a5,-536(a3) + 1e5c: 22068793 addi a5,a3,544 + 1e60: 1094 addi a3,sp,96 + 1e62: 96be add a3,a3,a5 + 1e64: 07800793 li a5,120 + 1e68: def68423 sb a5,-536(a3) lead[0] += 2; - 1e5c: 07410423 sb s4,104(sp) + 1e6c: 07410423 sb s4,104(sp) *s++ = h[(n64 >> 60) & 15]; - 1e60: 0ca10023 sb a0,192(sp) + 1e70: 0ca10023 sb a0,192(sp) if (pr) - 1e64: 740893e3 bnez a7,2daa + 1e74: 740893e3 bnez a7,2dba sn = s; - 1e68: 0c110793 addi a5,sp,193 - 1e6c: fcbe sd a5,120(sp) - 1e6e: 4701 li a4,0 - 1e70: 4501 li a0,0 - 1e72: 4305 li t1,1 - 1e74: 4685 li a3,1 + 1e78: 0c110793 addi a5,sp,193 + 1e7c: fcbe sd a5,120(sp) + 1e7e: 4701 li a4,0 + 1e80: 4501 li a0,0 + 1e82: 4305 li t1,1 + 1e84: 4685 li a3,1 tail[1] = h[17]; - 1e76: 0115c583 lbu a1,17(a1) + 1e86: 0115c583 lbu a1,17(a1) tail[2] = '+'; - 1e7a: 02b00793 li a5,43 + 1e8a: 02b00793 li a5,43 tail[1] = h[17]; - 1e7e: 06b108a3 sb a1,113(sp) + 1e8e: 06b108a3 sb a1,113(sp) if (dp < 0) { - 1e82: 00065663 bgez a2,1e8e + 1e92: 00065663 bgez a2,1e9e dp = -dp; - 1e86: 40c0063b negw a2,a2 + 1e96: 40c0063b negw a2,a2 tail[2] = '-'; - 1e8a: 02d00793 li a5,45 + 1e9a: 02d00793 li a5,45 tail[n] = '0' + dp % 10; - 1e8e: 4829 li a6,10 - 1e90: 030665bb remw a1,a2,a6 - 1e94: 06f10923 sb a5,114(sp) + 1e9e: 4829 li a6,10 + 1ea0: 030665bb remw a1,a2,a6 + 1ea4: 06f10923 sb a5,114(sp) n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 1e98: 3e700e93 li t4,999 + 1ea8: 3e700e93 li t4,999 tail[n] = '0' + dp % 10; - 1e9c: 0305859b addiw a1,a1,48 - 1ea0: 0ff5f593 zext.b a1,a1 + 1eac: 0305859b addiw a1,a1,48 + 1eb0: 0ff5f593 zext.b a1,a1 n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 1ea4: 18cec3e3 blt t4,a2,282a - 1ea8: 06300e93 li t4,99 - 1eac: 54cec1e3 blt t4,a2,2bee - 1eb0: 4ea5 li t4,9 - 1eb2: 72ced6e3 bge t4,a2,2dde + 1eb4: 18cec3e3 blt t4,a2,283a + 1eb8: 06300e93 li t4,99 + 1ebc: 54cec1e3 blt t4,a2,2bfe + 1ec0: 4ea5 li t4,9 + 1ec2: 72ced6e3 bge t4,a2,2dee dp /= 10; - 1eb6: 030647bb divw a5,a2,a6 + 1ec6: 030647bb divw a5,a2,a6 tail[0] = (char)n; - 1eba: 4611 li a2,4 - 1ebc: 06c10823 sb a2,112(sp) + 1eca: 4611 li a2,4 + 1ecc: 06c10823 sb a2,112(sp) tail[n] = '0' + dp % 10; - 1ec0: 06b10a23 sb a1,116(sp) - 1ec4: 4811 li a6,4 - 1ec6: 4f91 li t6,4 - 1ec8: 0307879b addiw a5,a5,48 - 1ecc: 06f109a3 sb a5,115(sp) + 1ed0: 06b10a23 sb a1,116(sp) + 1ed4: 4811 li a6,4 + 1ed6: 4f91 li t6,4 + 1ed8: 0307879b addiw a5,a5,48 + 1edc: 06f109a3 sb a5,115(sp) n = pr + lead[0] + tail[0] + tz; - 1ed0: 006a07bb addw a5,s4,t1 - 1ed4: 010787bb addw a5,a5,a6 - 1ed8: 0117863b addw a2,a5,a7 + 1ee0: 006a07bb addw a5,s4,t1 + 1ee4: 010787bb addw a5,a5,a6 + 1ee8: 0117863b addw a2,a5,a7 dp = (int)(s - sn); - 1edc: d2aa sw a0,100(sp) + 1eec: d2aa sw a0,100(sp) l = (int)(s - (num + 64)); - 1ede: d0b6 sw a3,96(sp) + 1eee: d0b6 sw a3,96(sp) n = pr + lead[0] + tail[0] + tz; - 1ee0: 87b2 mv a5,a2 + 1ef0: 87b2 mv a5,a2 if ((fl & STBSP__LEFTJUST) == 0) { - 1ee2: 001e7513 andi a0,t3,1 + 1ef2: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 1ee6: 835a mv t1,s6 - 1ee8: 00cb5363 bge s6,a2,1eee - 1eec: 8332 mv t1,a2 + 1ef6: 835a mv t1,s6 + 1ef8: 00cb5363 bge s6,a2,1efe + 1efc: 8332 mv t1,a2 cs = 1 + (3 << 24); - 1eee: 030002b7 lui t0,0x3000 + 1efe: 030002b7 lui t0,0x3000 fw -= n; - 1ef2: 40f3033b subw t1,t1,a5 + 1f02: 40f3033b subw t1,t1,a5 cs = 1 + (3 << 24); - 1ef6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8799> + 1f06: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> s = num + 64; - 1ef8: 0c010a93 addi s5,sp,192 + 1f08: 0c010a93 addi s5,sp,192 goto scopy; - 1efc: b311 j 1c00 + 1f0c: b311 j 1c10 h = (f[0] == 'B') ? hexu : hex; - 1efe: 04200713 li a4,66 - 1f02: 00005817 auipc a6,0x5 - 1f06: b5680813 addi a6,a6,-1194 # 6a58 - 1f0a: 6ce78963 beq a5,a4,25dc + 1f0e: 04200713 li a4,66 + 1f12: 00005817 auipc a6,0x5 + 1f16: b6680813 addi a6,a6,-1178 # 6a78 + 1f1a: 6ce78963 beq a5,a4,25ec if (fl & STBSP__LEADING_0X) { - 1f0e: 008e7793 andi a5,t3,8 - 1f12: 66079e63 bnez a5,258e + 1f1e: 008e7793 andi a5,t3,8 + 1f22: 66079e63 bnez a5,259e lead[0] = 0; - 1f16: 06010423 sb zero,104(sp) + 1f26: 06010423 sb zero,104(sp) l = (8 << 4) | (1 << 8); - 1f1a: 18000793 li a5,384 - 1f1e: d0be sw a5,96(sp) + 1f2a: 18000793 li a5,384 + 1f2e: d0be sw a5,96(sp) if (fl & STBSP__INTMAX) { - 1f20: 020e7713 andi a4,t3,32 + 1f30: 020e7713 andi a4,t3,32 goto radixnum; - 1f24: b979 j 1bc2 + 1f34: b979 j 1bd2 *s = (char)va_arg(va, int); - 1f26: 000ba783 lw a5,0(s7) + 1f36: 000ba783 lw a5,0(s7) l = 1; - 1f2a: 4705 li a4,1 - 1f2c: d0ba sw a4,96(sp) + 1f3a: 4705 li a4,1 + 1f3c: d0ba sw a4,96(sp) *s = (char)va_arg(va, int); - 1f2e: 26f10fa3 sb a5,639(sp) - 1f32: 008b8793 addi a5,s7,8 + 1f3e: 26f10fa3 sb a5,639(sp) + 1f42: 008b8793 addi a5,s7,8 lead[0] = 0; - 1f36: 06010423 sb zero,104(sp) + 1f46: 06010423 sb zero,104(sp) tail[0] = 0; - 1f3a: 06010823 sb zero,112(sp) + 1f4a: 06010823 sb zero,112(sp) dp = 0; - 1f3e: d282 sw zero,100(sp) + 1f4e: d282 sw zero,100(sp) *s = (char)va_arg(va, int); - 1f40: e0be sd a5,64(sp) + 1f50: e0be sd a5,64(sp) if ((fl & STBSP__LEFTJUST) == 0) { - 1f42: 001e7513 andi a0,t3,1 + 1f52: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 1f46: 835a mv t1,s6 - 1f48: 69605063 blez s6,25c8 + 1f56: 835a mv t1,s6 + 1f58: 69605063 blez s6,25d8 fw -= n; - 1f4c: 337d addiw t1,t1,-1 + 1f5c: 337d addiw t1,t1,-1 goto scopy; - 1f4e: 4701 li a4,0 - 1f50: 4f81 li t6,0 - 1f52: 4685 li a3,1 - 1f54: 4a01 li s4,0 + 1f5e: 4701 li a4,0 + 1f60: 4f81 li t6,0 + 1f62: 4685 li a3,1 + 1f64: 4a01 li s4,0 cs = 0; - 1f56: 4281 li t0,0 + 1f66: 4281 li t0,0 s = num + STBSP__NUMSZ - 1; - 1f58: 27f10a93 addi s5,sp,639 + 1f68: 27f10a93 addi s5,sp,639 tz = 0; - 1f5c: 4881 li a7,0 + 1f6c: 4881 li a7,0 goto scopy; - 1f5e: b14d j 1c00 + 1f6e: b14d j 1c10 fv = va_arg(va, double); - 1f60: 008b8713 addi a4,s7,8 + 1f70: 008b8713 addi a4,s7,8 if (fl & STBSP__METRIC_SUFFIX) { - 1f64: 100e7793 andi a5,t3,256 + 1f74: 100e7793 andi a5,t3,256 fv = va_arg(va, double); - 1f68: e0ba sd a4,64(sp) - 1f6a: 000bb507 fld fa0,0(s7) + 1f78: e0ba sd a4,64(sp) + 1f7a: 000bb507 fld fa0,0(s7) if (fl & STBSP__METRIC_SUFFIX) { - 1f6e: be0795e3 bnez a5,1b58 + 1f7e: be0795e3 bnez a5,1b68 if (pr == -1) - 1f72: 57fd li a5,-1 + 1f82: 57fd li a5,-1 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) - 1f74: 0008871b sext.w a4,a7 + 1f84: 0008871b sext.w a4,a7 if (pr == -1) - 1f78: 00f89463 bne a7,a5,1f80 - 1f7c: 4719 li a4,6 + 1f88: 00f89463 bne a7,a5,1f90 + 1f8c: 4719 li a4,6 pr = 6; // default is 6 - 1f7e: 4899 li a7,6 + 1f8e: 4899 li a7,6 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) - 1f80: 10d4 addi a3,sp,100 - 1f82: 0110 addi a2,sp,128 - 1f84: 108c addi a1,sp,96 - 1f86: 18a8 addi a0,sp,120 - 1f88: f01e sd t2,32(sp) - 1f8a: ec72 sd t3,24(sp) - 1f8c: e846 sd a7,16(sp) - 1f8e: a4cfe0ef jal 1da - 1f92: 6e62 ld t3,24(sp) - 1f94: 68c2 ld a7,16(sp) - 1f96: 7382 ld t2,32(sp) + 1f90: 10d4 addi a3,sp,100 + 1f92: 0110 addi a2,sp,128 + 1f94: 108c addi a1,sp,96 + 1f96: 18a8 addi a0,sp,120 + 1f98: f01e sd t2,32(sp) + 1f9a: ec72 sd t3,24(sp) + 1f9c: e846 sd a7,16(sp) + 1f9e: a4cfe0ef jal 1ea + 1fa2: 6e62 ld t3,24(sp) + 1fa4: 68c2 ld a7,16(sp) + 1fa6: 7382 ld t2,32(sp) if (dp == STBSP__SPECIAL) { - 1f98: 5796 lw a5,100(sp) + 1fa8: 5796 lw a5,100(sp) if ((stbsp__int32)(l + n) > pr) - 1f9a: 5686 lw a3,96(sp) + 1faa: 5686 lw a3,96(sp) if (fl & STBSP__NEGATIVE) { - 1f9c: 080e7293 andi t0,t3,128 + 1fac: 080e7293 andi t0,t3,128 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) - 1fa0: e00500e3 beqz a0,1da0 + 1fb0: e00500e3 beqz a0,1db0 fl |= STBSP__NEGATIVE; - 1fa4: 080e6e13 ori t3,t3,128 + 1fb4: 080e6e13 ori t3,t3,128 tail[0] = 0; - 1fa8: 06010823 sb zero,112(sp) + 1fb8: 06010823 sb zero,112(sp) sign[0] = 1; - 1fac: 670d lui a4,0x3 - 1fae: d0170713 addi a4,a4,-767 # 2d01 - 1fb2: 06e11423 sh a4,104(sp) + 1fbc: 670d lui a4,0x3 + 1fbe: d0170713 addi a4,a4,-767 # 2d01 + 1fc2: 06e11423 sh a4,104(sp) if (dp == STBSP__SPECIAL) { - 1fb6: 671d lui a4,0x7 - 1fb8: 7ce78963 beq a5,a4,278a + 1fc6: 671d lui a4,0x7 + 1fc8: 7ce78963 beq a5,a4,279a if (dp <= 0) { - 1fbc: 46f05fe3 blez a5,2c3a + 1fcc: 46f05fe3 blez a5,2c4a cs = (fl & STBSP__TRIPLET_COMMA) ? ((600 - (stbsp__uint32)dp) % 3) : 0; - 1fc0: 040e7313 andi t1,t3,64 - 1fc4: 00078e9b sext.w t4,a5 - 1fc8: 4581 li a1,0 - 1fca: 00030963 beqz t1,1fdc - 1fce: 25800593 li a1,600 - 1fd2: 41d585bb subw a1,a1,t4 - 1fd6: 470d li a4,3 - 1fd8: 02e5f5bb remuw a1,a1,a4 + 1fd0: 040e7313 andi t1,t3,64 + 1fd4: 00078e9b sext.w t4,a5 + 1fd8: 4581 li a1,0 + 1fda: 00030963 beqz t1,1fec + 1fde: 25800593 li a1,600 + 1fe2: 41d585bb subw a1,a1,t4 + 1fe6: 470d li a4,3 + 1fe8: 02e5f5bb remuw a1,a1,a4 *s++ = stbsp__comma; - 1fdc: 00005a17 auipc s4,0x5 - 1fe0: 994a0a13 addi s4,s4,-1644 # 6970 + 1fec: 00005a17 auipc s4,0x5 + 1ff0: 9a4a0a13 addi s4,s4,-1628 # 6990 s = (char *)sn; - 1fe4: 7f66 ld t5,120(sp) + 1ff4: 7f66 ld t5,120(sp) *s++ = stbsp__comma; - 1fe6: 0cda4283 lbu t0,205(s4) + 1ff6: 0cda4283 lbu t0,205(s4) s = num + 64; - 1fea: 0c010a93 addi s5,sp,192 + 1ffa: 0c010a93 addi s5,sp,192 if ((stbsp__uint32)dp >= l) { - 1fee: 44defb63 bgeu t4,a3,2444 + 1ffe: 44defb63 bgeu t4,a3,2454 n = 0; - 1ff2: 4501 li a0,0 + 2002: 4501 li a0,0 s = num + 64; - 1ff4: 8756 mv a4,s5 + 2004: 8756 mv a4,s5 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 1ff6: 4b91 li s7,4 - 1ff8: a015 j 201c - 1ffa: 8642 mv a2,a6 - 1ffc: 883a mv a6,a4 - 1ffe: 8732 mv a4,a2 + 2006: 4b91 li s7,4 + 2008: a015 j 202c + 200a: 8642 mv a2,a6 + 200c: 883a mv a6,a4 + 200e: 8732 mv a4,a2 *s++ = sn[n]; - 2000: 02051613 slli a2,a0,0x20 - 2004: 9201 srli a2,a2,0x20 - 2006: 967a add a2,a2,t5 - 2008: 00064f83 lbu t6,0(a2) + 2010: 02051613 slli a2,a0,0x20 + 2014: 9201 srli a2,a2,0x20 + 2016: 967a add a2,a2,t5 + 2018: 00064f83 lbu t6,0(a2) ++n; - 200c: 0015061b addiw a2,a0,1 - 2010: 0006051b sext.w a0,a2 + 201c: 0015061b addiw a2,a0,1 + 2020: 0006051b sext.w a0,a2 *s++ = sn[n]; - 2014: fff70fa3 sb t6,-1(a4) # 6fff <_stdout+0x16f> + 2024: fff70fa3 sb t6,-1(a4) # 6fff <_stdout+0x14f> if (n >= (stbsp__uint32)dp) - 2018: 7bd57563 bgeu a0,t4,27c2 + 2028: 7bd57563 bgeu a0,t4,27d2 *s++ = stbsp__comma; - 201c: 00170813 addi a6,a4,1 + 202c: 00170813 addi a6,a4,1 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2020: fc030de3 beqz t1,1ffa - 2024: 2585 addiw a1,a1,1 - 2026: fd759ae3 bne a1,s7,1ffa + 2030: fc030de3 beqz t1,200a + 2034: 2585 addiw a1,a1,1 + 2036: fd759ae3 bne a1,s7,200a *s++ = stbsp__comma; - 202a: fe580fa3 sb t0,-1(a6) - 202e: 0709 addi a4,a4,2 + 203a: fe580fa3 sb t0,-1(a6) + 203e: 0709 addi a4,a4,2 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2030: 4585 li a1,1 - 2032: b7f9 j 2000 + 2040: 4585 li a1,1 + 2042: b7f9 j 2010 *d = tlen + (int)(bf - buf); - 2034: 000bb703 ld a4,0(s7) - 2038: 412407b3 sub a5,s0,s2 - 203c: 01a787bb addw a5,a5,s10 + 2044: 000bb703 ld a4,0(s7) + 2048: 412407b3 sub a5,s0,s2 + 204c: 01a787bb addw a5,a5,s10 int *d = va_arg(va, int *); - 2040: 008b8693 addi a3,s7,8 - 2044: e0b6 sd a3,64(sp) + 2050: 008b8693 addi a3,s7,8 + 2054: e0b6 sd a3,64(sp) *d = tlen + (int)(bf - buf); - 2046: c31c sw a5,0(a4) + 2056: c31c sw a5,0(a4) } break; - 2048: bae5 j 1a40 + 2058: bae5 j 1a50 if (fl & STBSP__LEADING_0X) { - 204a: 008e7793 andi a5,t3,8 - 204e: 50079b63 bnez a5,2564 + 205a: 008e7793 andi a5,t3,8 + 205e: 50079b63 bnez a5,2574 lead[0] = 0; - 2052: 06010423 sb zero,104(sp) + 2062: 06010423 sb zero,104(sp) l = (3 << 4) | (3 << 8); - 2056: 33000793 li a5,816 - 205a: d0be sw a5,96(sp) + 2066: 33000793 li a5,816 + 206a: d0be sw a5,96(sp) if (fl & STBSP__INTMAX) { - 205c: 020e7713 andi a4,t3,32 + 206c: 020e7713 andi a4,t3,32 h = hexu; - 2060: 00005817 auipc a6,0x5 - 2064: 9e080813 addi a6,a6,-1568 # 6a40 + 2070: 00005817 auipc a6,0x5 + 2074: 9f080813 addi a6,a6,-1552 # 6a60 goto radixnum; - 2068: bea9 j 1bc2 + 2078: bea9 j 1bd2 fl &= ~STBSP__LEADINGZERO; // 'p' only prints the pointer with zeros - 206a: fefe7e13 andi t3,t3,-17 - 206e: 020e6e13 ori t3,t3,32 - 2072: 02000713 li a4,32 + 207a: fefe7e13 andi t3,t3,-17 + 207e: 020e6e13 ori t3,t3,32 + 2082: 02000713 li a4,32 pr = sizeof(void *) * 2; - 2076: 48c1 li a7,16 + 2086: 48c1 li a7,16 h = (f[0] == 'X') ? hexu : hex; - 2078: 00005817 auipc a6,0x5 - 207c: 9e080813 addi a6,a6,-1568 # 6a58 - 2080: be05 j 1bb0 + 2088: 00005817 auipc a6,0x5 + 208c: 9f080813 addi a6,a6,-1552 # 6a78 + 2090: be05 j 1bc0 s = va_arg(va, char *); - 2082: 000bba83 ld s5,0(s7) - 2086: 008b8793 addi a5,s7,8 - 208a: e0be sd a5,64(sp) + 2092: 000bba83 ld s5,0(s7) + 2096: 008b8793 addi a5,s7,8 + 209a: e0be sd a5,64(sp) if (s == 0) - 208c: 360a8ee3 beqz s5,2c08 + 209c: 360a8ee3 beqz s5,2c18 if (((stbsp__uintptr)sn & 3) == 0) - 2090: 003af793 andi a5,s5,3 + 20a0: 003af793 andi a5,s5,3 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 2094: 5208c663 bltz a7,25c0 - 2098: 0008869b sext.w a3,a7 + 20a4: 5208c663 bltz a7,25d0 + 20a8: 0008869b sext.w a3,a7 if (((stbsp__uintptr)sn & 3) == 0) - 209c: 2a0782e3 beqz a5,2b40 + 20ac: 2a0782e3 beqz a5,2b50 if (!limit || *sn == 0) - 20a0: 5a068b63 beqz a3,2656 + 20b0: 5a068b63 beqz a3,2666 if (((stbsp__uintptr)sn & 3) == 0) - 20a4: 87d6 mv a5,s5 - 20a6: a801 j 20b6 + 20b4: 87d6 mv a5,s5 + 20b6: a801 j 20c6 ++sn; - 20a8: 0785 addi a5,a5,1 + 20b8: 0785 addi a5,a5,1 if (((stbsp__uintptr)sn & 3) == 0) - 20aa: 0037f713 andi a4,a5,3 + 20ba: 0037f713 andi a4,a5,3 --limit; - 20ae: 36fd addiw a3,a3,-1 + 20be: 36fd addiw a3,a3,-1 if (((stbsp__uintptr)sn & 3) == 0) - 20b0: 280709e3 beqz a4,2b42 + 20c0: 280709e3 beqz a4,2b52 if (!limit || *sn == 0) - 20b4: c681 beqz a3,20bc - 20b6: 0007c703 lbu a4,0(a5) - 20ba: f77d bnez a4,20a8 + 20c4: c681 beqz a3,20cc + 20c6: 0007c703 lbu a4,0(a5) + 20ca: f77d bnez a4,20b8 return (stbsp__uint32)(sn - s); - 20bc: 415787b3 sub a5,a5,s5 - 20c0: 0007869b sext.w a3,a5 + 20cc: 415787b3 sub a5,a5,s5 + 20d0: 0007869b sext.w a3,a5 if (pr < (stbsp__int32)l) - 20c4: fff6c713 not a4,a3 - 20c8: 977d srai a4,a4,0x3f - 20ca: 8f7d and a4,a4,a5 - 20cc: 0007079b sext.w a5,a4 + 20d4: fff6c713 not a4,a3 + 20d8: 977d srai a4,a4,0x3f + 20da: 8f7d and a4,a4,a5 + 20dc: 0007079b sext.w a5,a4 n = pr + lead[0] + tail[0] + tz; - 20d0: 863e mv a2,a5 + 20e0: 863e mv a2,a5 pr -= l; - 20d2: 9f15 subw a4,a4,a3 + 20e2: 9f15 subw a4,a4,a3 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 20d4: d0b6 sw a3,96(sp) + 20e4: d0b6 sw a3,96(sp) lead[0] = 0; - 20d6: 06010423 sb zero,104(sp) + 20e6: 06010423 sb zero,104(sp) tail[0] = 0; - 20da: 06010823 sb zero,112(sp) + 20ea: 06010823 sb zero,112(sp) dp = 0; - 20de: d282 sw zero,100(sp) + 20ee: d282 sw zero,100(sp) if ((fl & STBSP__LEFTJUST) == 0) { - 20e0: 001e7513 andi a0,t3,1 + 20f0: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 20e4: 835a mv t1,s6 - 20e6: 00fb5363 bge s6,a5,20ec - 20ea: 833e mv t1,a5 + 20f4: 835a mv t1,s6 + 20f6: 00fb5363 bge s6,a5,20fc + 20fa: 833e mv t1,a5 fw -= n; - 20ec: 40c3033b subw t1,t1,a2 + 20fc: 40c3033b subw t1,t1,a2 goto scopy; - 20f0: 4f81 li t6,0 - 20f2: 4a01 li s4,0 + 2100: 4f81 li t6,0 + 2102: 4a01 li s4,0 cs = 0; - 20f4: 4281 li t0,0 + 2104: 4281 li t0,0 tz = 0; - 20f6: 4881 li a7,0 + 2106: 4881 li a7,0 goto scopy; - 20f8: b621 j 1c00 + 2108: b621 j 1c10 *bf++ = stbsp__comma; - 20fa: 87b2 mv a5,a2 + 210a: 87b2 mv a5,a2 cs = 0; - 20fc: 4a01 li s4,0 - 20fe: e44ff06f j 1742 + 210c: 4a01 li s4,0 + 210e: e44ff06f j 1752 lead[0] -= (char)i; - 2102: 06010423 sb zero,104(sp) + 2112: 06010423 sb zero,104(sp) while (i) { - 2106: d38ff06f j 163e + 2116: d38ff06f j 164e lead[0] -= (char)i; - 210a: 06010423 sb zero,104(sp) + 211a: 06010423 sb zero,104(sp) while (i) { - 210e: ed8ff06f j 17e6 + 211e: ed8ff06f j 17f6 while (i >= 4) { - 2112: 06fadc63 bge s5,a5,218a + 2122: 06fadc63 bge s5,a5,219a tz -= i; - 2116: 8722 mv a4,s0 - 2118: 0007851b sext.w a0,a5 + 2126: 8722 mv a4,s0 + 2128: 0007851b sext.w a0,a5 while (i >= 4) { - 211c: 008785bb addw a1,a5,s0 + 212c: 008785bb addw a1,a5,s0 *(stbsp__uint32 *)bf = 0x30303030; - 2120: 01672023 sw s6,0(a4) + 2130: 01672023 sw s6,0(a4) bf += 4; - 2124: 0711 addi a4,a4,4 + 2134: 0711 addi a4,a4,4 while (i >= 4) { - 2126: 40e5863b subw a2,a1,a4 - 212a: fecacbe3 blt s5,a2,2120 - 212e: ffc5061b addiw a2,a0,-4 - 2132: 0026561b srliw a2,a2,0x2 - 2136: 0016071b addiw a4,a2,1 - 213a: 37f1 addiw a5,a5,-4 - 213c: 0026161b slliw a2,a2,0x2 - 2140: 070a slli a4,a4,0x2 - 2142: 9722 add a4,a4,s0 - 2144: 9f91 subw a5,a5,a2 + 2136: 40e5863b subw a2,a1,a4 + 213a: fecacbe3 blt s5,a2,2130 + 213e: ffc5061b addiw a2,a0,-4 + 2142: 0026561b srliw a2,a2,0x2 + 2146: 0016071b addiw a4,a2,1 + 214a: 37f1 addiw a5,a5,-4 + 214c: 0026161b slliw a2,a2,0x2 + 2150: 070a slli a4,a4,0x2 + 2152: 9722 add a4,a4,s0 + 2154: 9f91 subw a5,a5,a2 while (i) { - 2146: 843a mv s0,a4 - 2148: 80078de3 beqz a5,1962 - 214c: 1782 slli a5,a5,0x20 - 214e: 9381 srli a5,a5,0x20 - 2150: 00f70433 add s0,a4,a5 + 2156: 843a mv s0,a4 + 2158: 80078de3 beqz a5,1972 + 215c: 1782 slli a5,a5,0x20 + 215e: 9381 srli a5,a5,0x20 + 2160: 00f70433 add s0,a4,a5 *bf++ = '0'; - 2154: 0705 addi a4,a4,1 - 2156: ff470fa3 sb s4,-1(a4) + 2164: 0705 addi a4,a4,1 + 2166: ff470fa3 sb s4,-1(a4) while (i) { - 215a: fe871de3 bne a4,s0,2154 - 215e: 805ff06f j 1962 + 216a: fe871de3 bne a4,s0,2164 + 216e: 805ff06f j 1972 stbsp__cb_buf_clamp(i, pr); - 2162: 85ce mv a1,s3 + 2172: 85ce mv a1,s3 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 2164: 4981 li s3,0 - 2166: dc049263 bnez s1,172a - 216a: b8d5 j 1a5e + 2174: 4981 li s3,0 + 2176: dc049263 bnez s1,173a + 217a: b8d5 j 1a6e STBSP__UNALIGNED(while (i >= 4) { - 216c: 4401 li s0,0 - 216e: 85be mv a1,a5 - 2170: f0ea4b63 blt s4,a4,1886 - 2174: f42ff06f j 18b6 + 217c: 4401 li s0,0 + 217e: 85be mv a1,a5 + 2180: f0ea4b63 blt s4,a4,1896 + 2184: f42ff06f j 18c6 if ((((stbsp__uintptr)bf) & 3) == 0) - 2178: 00347713 andi a4,s0,3 + 2188: 00347713 andi a4,s0,3 stbsp__cb_buf_clamp(i, tz); - 217c: 87c6 mv a5,a7 + 218c: 87c6 mv a5,a7 tz -= i; - 217e: 4881 li a7,0 + 218e: 4881 li a7,0 if ((((stbsp__uintptr)bf) & 3) == 0) - 2180: fc071c63 bnez a4,1958 + 2190: fc071c63 bnez a4,1968 while (i >= 4) { - 2184: 470d li a4,3 - 2186: f8f748e3 blt a4,a5,2116 - 218a: 8722 mv a4,s0 - 218c: b7c1 j 214c + 2194: 470d li a4,3 + 2196: f8f748e3 blt a4,a5,2126 + 219a: 8722 mv a4,s0 + 219c: b7c1 j 215c tail[0] -= (char)i; - 218e: 06010823 sb zero,112(sp) + 219e: 06010823 sb zero,112(sp) while (i) { - 2192: b0b9 j 19e0 + 21a2: b0b9 j 19f0 while (i >= 4) { - 2194: 478d li a5,3 - 2196: 8622 mv a2,s0 - 2198: d8b7d963 bge a5,a1,172a - 219c: ffc5839b addiw t2,a1,-4 - 21a0: 0023d79b srliw a5,t2,0x2 - 21a4: 0017859b addiw a1,a5,1 - 21a8: 058a slli a1,a1,0x2 - 21aa: 942e add s0,s0,a1 + 21a4: 478d li a5,3 + 21a6: 8622 mv a2,s0 + 21a8: d8b7d963 bge a5,a1,173a + 21ac: ffc5839b addiw t2,a1,-4 + 21b0: 0023d79b srliw a5,t2,0x2 + 21b4: 0017859b addiw a1,a5,1 + 21b8: 058a slli a1,a1,0x2 + 21ba: 942e add s0,s0,a1 *(stbsp__uint32 *)bf = 0x30303030; - 21ac: 01762023 sw s7,0(a2) + 21bc: 01762023 sw s7,0(a2) bf += 4; - 21b0: 0611 addi a2,a2,4 + 21c0: 0611 addi a2,a2,4 while (i >= 4) { - 21b2: fe861de3 bne a2,s0,21ac - 21b6: 0027979b slliw a5,a5,0x2 - 21ba: 40f385bb subw a1,t2,a5 - 21be: d68ff06f j 1726 + 21c2: fe861de3 bne a2,s0,21bc + 21c6: 0027979b slliw a5,a5,0x2 + 21ca: 40f385bb subw a1,t2,a5 + 21ce: d68ff06f j 1736 while (i) { - 21c2: 85be mv a1,a5 - 21c4: ee071963 bnez a4,18b6 - 21c8: f16ff06f j 18de - 21cc: 2c013a03 ld s4,704(sp) - 21d0: 2b813a83 ld s5,696(sp) - 21d4: 2b013b03 ld s6,688(sp) - 21d8: 8ca2 mv s9,s0 - 21da: a04ff06f j 13de + 21d2: 85be mv a1,a5 + 21d4: ee071963 bnez a4,18c6 + 21d8: f16ff06f j 18ee + 21dc: 2c013a03 ld s4,704(sp) + 21e0: 2b813a83 ld s5,696(sp) + 21e4: 2b013b03 ld s6,688(sp) + 21e8: 8ca2 mv s9,s0 + 21ea: a04ff06f j 13ee stbsp__chk_cb_buf(1); - 21de: 2601 sext.w a2,a2 - 21e0: 1fe00793 li a5,510 - 21e4: f8c7c563 blt a5,a2,196e - 21e8: f3eff06f j 1926 + 21ee: 2601 sext.w a2,a2 + 21f0: 1fe00793 li a5,510 + 21f4: f8c7c563 blt a5,a2,197e + 21f8: f3eff06f j 1936 fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas - 21ec: fbfe7e13 andi t3,t3,-65 + 21fc: fbfe7e13 andi t3,t3,-65 if (fw + pr) { - 21f0: 006707bb addw a5,a4,t1 + 2200: 006707bb addw a5,a4,t1 fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas - 21f4: 2e01 sext.w t3,t3 + 2204: 2e01 sext.w t3,t3 if (fw + pr) { - 21f6: a0078be3 beqz a5,1c0c + 2206: a0078be3 beqz a5,1c1c while (fw > 0) { - 21fa: be605663 blez t1,15e6 + 220a: be605663 blez t1,15f6 *(stbsp__uint32 *)bf = 0x20202020; - 21fe: 20202837 lui a6,0x20202 + 220e: 20202837 lui a6,0x20202 stbsp__cb_buf_clamp(i, fw); - 2202: 854a mv a0,s2 - 2204: 894e mv s2,s3 - 2206: 69a2 ld s3,8(sp) + 2212: 854a mv a0,s2 + 2214: 894e mv s2,s3 + 2216: 69a2 ld s3,8(sp) *(stbsp__uint32 *)bf = 0x20202020; - 2208: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201fa7b8> + 2218: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201fa798> stbsp__cb_buf_clamp(i, fw); - 220c: ec52 sd s4,24(sp) - 220e: f426 sd s1,40(sp) - 2210: 87a2 mv a5,s0 - 2212: 84ea mv s1,s10 + 221c: ec52 sd s4,24(sp) + 221e: f426 sd s1,40(sp) + 2220: 87a2 mv a5,s0 + 2222: 84ea mv s1,s10 stbsp__chk_cb_buf(1); - 2214: 1fe00f13 li t5,510 + 2224: 1fe00f13 li t5,510 stbsp__cb_buf_clamp(i, fw); - 2218: 8d6e mv s10,s11 + 2228: 8d6e mv s10,s11 *bf++ = ' '; - 221a: 02000b13 li s6,32 + 222a: 02000b13 li s6,32 stbsp__cb_buf_clamp(i, fw); - 221e: 8de6 mv s11,s9 + 222e: 8de6 mv s11,s9 while (i >= 4) { - 2220: 4b8d li s7,3 + 2230: 4b8d li s7,3 stbsp__cb_buf_clamp(i, fw); - 2222: 20000e93 li t4,512 - 2226: e846 sd a7,16(sp) - 2228: f07e sd t6,32(sp) - 222a: f836 sd a3,48(sp) - 222c: e4f2 sd t3,72(sp) - 222e: e8ba sd a4,80(sp) - 2230: ec96 sd t0,88(sp) - 2232: 841a mv s0,t1 - 2234: 8a42 mv s4,a6 - 2236: 8c9e mv s9,t2 - 2238: 0c090063 beqz s2,22f8 - 223c: 40a78633 sub a2,a5,a0 - 2240: 40ce873b subw a4,t4,a2 - 2244: 86ba mv a3,a4 - 2246: 00e45363 bge s0,a4,224c - 224a: 86a2 mv a3,s0 - 224c: 0006871b sext.w a4,a3 + 2232: 20000e93 li t4,512 + 2236: e846 sd a7,16(sp) + 2238: f07e sd t6,32(sp) + 223a: f836 sd a3,48(sp) + 223c: e4f2 sd t3,72(sp) + 223e: e8ba sd a4,80(sp) + 2240: ec96 sd t0,88(sp) + 2242: 841a mv s0,t1 + 2244: 8a42 mv s4,a6 + 2246: 8c9e mv s9,t2 + 2248: 0c090063 beqz s2,2308 + 224c: 40a78633 sub a2,a5,a0 + 2250: 40ce873b subw a4,t4,a2 + 2254: 86ba mv a3,a4 + 2256: 00e45363 bge s0,a4,225c + 225a: 86a2 mv a3,s0 + 225c: 0006871b sext.w a4,a3 fw -= i; - 2250: 9c15 subw s0,s0,a3 + 2260: 9c15 subw s0,s0,a3 while (i) { - 2252: e719 bnez a4,2260 - 2254: a095 j 22b8 + 2262: e719 bnez a4,2270 + 2264: a095 j 22c8 *bf++ = ' '; - 2256: 01678023 sb s6,0(a5) + 2266: 01678023 sb s6,0(a5) --i; - 225a: 377d addiw a4,a4,-1 + 226a: 377d addiw a4,a4,-1 *bf++ = ' '; - 225c: 0785 addi a5,a5,1 + 226c: 0785 addi a5,a5,1 while (i) { - 225e: cb29 beqz a4,22b0 + 226e: cb29 beqz a4,22c0 if ((((stbsp__uintptr)bf) & 3) == 0) - 2260: 0037f693 andi a3,a5,3 - 2264: faed bnez a3,2256 + 2270: 0037f693 andi a3,a5,3 + 2274: faed bnez a3,2266 while (i >= 4) { - 2266: 86be mv a3,a5 - 2268: 00070f9b sext.w t6,a4 - 226c: 00f705bb addw a1,a4,a5 - 2270: 02ebd763 bge s7,a4,229e + 2276: 86be mv a3,a5 + 2278: 00070f9b sext.w t6,a4 + 227c: 00f705bb addw a1,a4,a5 + 2280: 02ebd763 bge s7,a4,22ae *(stbsp__uint32 *)bf = 0x20202020; - 2274: 0146a023 sw s4,0(a3) + 2284: 0146a023 sw s4,0(a3) bf += 4; - 2278: 0691 addi a3,a3,4 + 2288: 0691 addi a3,a3,4 while (i >= 4) { - 227a: 40d5863b subw a2,a1,a3 - 227e: fecbcbe3 blt s7,a2,2274 - 2282: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff8794> - 2286: 0026561b srliw a2,a2,0x2 - 228a: 0016069b addiw a3,a2,1 - 228e: 3771 addiw a4,a4,-4 - 2290: 0026161b slliw a2,a2,0x2 - 2294: 068a slli a3,a3,0x2 - 2296: 96be add a3,a3,a5 - 2298: 9f11 subw a4,a4,a2 + 228a: 40d5863b subw a2,a1,a3 + 228e: fecbcbe3 blt s7,a2,2284 + 2292: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff8774> + 2296: 0026561b srliw a2,a2,0x2 + 229a: 0016069b addiw a3,a2,1 + 229e: 3771 addiw a4,a4,-4 + 22a0: 0026161b slliw a2,a2,0x2 + 22a4: 068a slli a3,a3,0x2 + 22a6: 96be add a3,a3,a5 + 22a8: 9f11 subw a4,a4,a2 while (i) { - 229a: 87b6 mv a5,a3 - 229c: cb11 beqz a4,22b0 - 229e: 1702 slli a4,a4,0x20 - 22a0: 9301 srli a4,a4,0x20 - 22a2: 00e687b3 add a5,a3,a4 + 22aa: 87b6 mv a5,a3 + 22ac: cb11 beqz a4,22c0 + 22ae: 1702 slli a4,a4,0x20 + 22b0: 9301 srli a4,a4,0x20 + 22b2: 00e687b3 add a5,a3,a4 *bf++ = ' '; - 22a6: 0685 addi a3,a3,1 - 22a8: ff668fa3 sb s6,-1(a3) + 22b6: 0685 addi a3,a3,1 + 22b8: ff668fa3 sb s6,-1(a3) while (i) { - 22ac: fef69de3 bne a3,a5,22a6 + 22bc: fef69de3 bne a3,a5,22b6 stbsp__chk_cb_buf(1); - 22b0: 40a78633 sub a2,a5,a0 - 22b4: 00090e63 beqz s2,22d0 - 22b8: 2601 sext.w a2,a2 - 22ba: 00cf5b63 bge t5,a2,22d0 - 22be: 85ce mv a1,s3 - 22c0: 9cb1 addw s1,s1,a2 - 22c2: 9902 jalr s2 - 22c4: c541 beqz a0,234c - 22c6: 87aa mv a5,a0 - 22c8: 20000e93 li t4,512 - 22cc: 1fe00f13 li t5,510 + 22c0: 40a78633 sub a2,a5,a0 + 22c4: 00090e63 beqz s2,22e0 + 22c8: 2601 sext.w a2,a2 + 22ca: 00cf5b63 bge t5,a2,22e0 + 22ce: 85ce mv a1,s3 + 22d0: 9cb1 addw s1,s1,a2 + 22d2: 9902 jalr s2 + 22d4: c541 beqz a0,235c + 22d6: 87aa mv a5,a0 + 22d8: 20000e93 li t4,512 + 22dc: 1fe00f13 li t5,510 while (fw > 0) { - 22d0: f68044e3 bgtz s0,2238 - 22d4: 8322 mv t1,s0 - 22d6: 89ca mv s3,s2 - 22d8: 83e6 mv t2,s9 - 22da: 68c2 ld a7,16(sp) - 22dc: 8cee mv s9,s11 - 22de: 6a62 ld s4,24(sp) - 22e0: 8dea mv s11,s10 - 22e2: 7f82 ld t6,32(sp) - 22e4: 8d26 mv s10,s1 - 22e6: 76c2 ld a3,48(sp) - 22e8: 6e26 ld t3,72(sp) - 22ea: 6746 ld a4,80(sp) - 22ec: 62e6 ld t0,88(sp) - 22ee: 74a2 ld s1,40(sp) - 22f0: 892a mv s2,a0 - 22f2: 843e mv s0,a5 - 22f4: af2ff06f j 15e6 + 22e0: f68044e3 bgtz s0,2248 + 22e4: 8322 mv t1,s0 + 22e6: 89ca mv s3,s2 + 22e8: 83e6 mv t2,s9 + 22ea: 68c2 ld a7,16(sp) + 22ec: 8cee mv s9,s11 + 22ee: 6a62 ld s4,24(sp) + 22f0: 8dea mv s11,s10 + 22f2: 7f82 ld t6,32(sp) + 22f4: 8d26 mv s10,s1 + 22f6: 76c2 ld a3,48(sp) + 22f8: 6e26 ld t3,72(sp) + 22fa: 6746 ld a4,80(sp) + 22fc: 62e6 ld t0,88(sp) + 22fe: 74a2 ld s1,40(sp) + 2300: 892a mv s2,a0 + 2302: 843e mv s0,a5 + 2304: af2ff06f j 15f6 stbsp__cb_buf_clamp(i, fw); - 22f8: 8722 mv a4,s0 - 22fa: 4401 li s0,0 + 2308: 8722 mv a4,s0 + 230a: 4401 li s0,0 if ((((stbsp__uintptr)bf) & 3) == 0) - 22fc: b795 j 2260 + 230c: b795 j 2270 n64 = va_arg(va, stbsp__uint32); - 22fe: 000be683 lwu a3,0(s7) - 2302: b0f9 j 1bd0 - 2304: 2c013a03 ld s4,704(sp) - 2308: 2b813a83 ld s5,696(sp) - 230c: 2b013b03 ld s6,688(sp) - 2310: 8cca mv s9,s2 - 2312: 8ccff06f j 13de - 2316: 8cd6 mv s9,s5 - 2318: 2c013a03 ld s4,704(sp) - 231c: 2b813a83 ld s5,696(sp) - 2320: 2b013b03 ld s6,688(sp) - 2324: 8baff06f j 13de + 230e: 000be683 lwu a3,0(s7) + 2312: b0f9 j 1be0 + 2314: 2c013a03 ld s4,704(sp) + 2318: 2b813a83 ld s5,696(sp) + 231c: 2b013b03 ld s6,688(sp) + 2320: 8cca mv s9,s2 + 2322: 8ccff06f j 13ee + 2326: 8cd6 mv s9,s5 2328: 2c013a03 ld s4,704(sp) 232c: 2b813a83 ld s5,696(sp) 2330: 2b013b03 ld s6,688(sp) - 2334: 8cea mv s9,s10 - 2336: 8a8ff06f j 13de + 2334: 8baff06f j 13ee + 2338: 2c013a03 ld s4,704(sp) + 233c: 2b813a83 ld s5,696(sp) + 2340: 2b013b03 ld s6,688(sp) + 2344: 8cea mv s9,s10 + 2346: 8a8ff06f j 13ee while (i) { - 233a: 85a2 mv a1,s0 - 233c: c12ff06f j 174e + 234a: 85a2 mv a1,s0 + 234c: c12ff06f j 175e while (i >= 4) { - 2340: 478d li a5,3 - 2342: 8622 mv a2,s0 - 2344: e4b7cce3 blt a5,a1,219c - 2348: be2ff06f j 172a - 234c: 2c013a03 ld s4,704(sp) - 2350: 2b813a83 ld s5,696(sp) - 2354: 2b013b03 ld s6,688(sp) - 2358: 8ca6 mv s9,s1 - 235a: 884ff06f j 13de + 2350: 478d li a5,3 + 2352: 8622 mv a2,s0 + 2354: e4b7cce3 blt a5,a1,21ac + 2358: be2ff06f j 173a + 235c: 2c013a03 ld s4,704(sp) + 2360: 2b813a83 ld s5,696(sp) + 2364: 2b013b03 ld s6,688(sp) + 2368: 8ca6 mv s9,s1 + 236a: 884ff06f j 13ee lead[2] = h[16]; - 235e: 01084683 lbu a3,16(a6) + 236e: 01084683 lbu a3,16(a6) lead[0] = 2; - 2362: 678d lui a5,0x3 - 2364: 0789 addi a5,a5,2 # 3002 - 2366: 06f11423 sh a5,104(sp) + 2372: 678d lui a5,0x3 + 2374: 0789 addi a5,a5,2 # 3002 + 2376: 06f11423 sh a5,104(sp) lead[2] = h[16]; - 236a: 06d10523 sb a3,106(sp) - 236e: b891 j 1bc2 - 2370: 8cea mv s9,s10 - 2372: 86cff06f j 13de - 2376: 4f81 li t6,0 - 2378: 4a01 li s4,0 - 237a: 5586 lw a1,96(sp) + 237a: 06d10523 sb a3,106(sp) + 237e: b891 j 1bd2 + 2380: 8cea mv s9,s10 + 2382: 86cff06f j 13ee + 2386: 4f81 li t6,0 + 2388: 4a01 li s4,0 + 238a: 5586 lw a1,96(sp) *--s = stbsp__comma; - 237c: 00004f17 auipc t5,0x4 - 2380: 6c1f4f03 lbu t5,1729(t5) # 6a3d - 2384: 0510 addi a2,sp,640 - 2386: 0085d71b srliw a4,a1,0x8 + 238c: 00004f17 auipc t5,0x4 + 2390: 6d1f4f03 lbu t5,1745(t5) # 6a5d + 2394: 0510 addi a2,sp,640 + 2396: 0085d71b srliw a4,a1,0x8 *--s = h[n64 & ((1 << (l >> 8)) - 1)]; - 238a: 4305 li t1,1 + 239a: 4305 li t1,1 if (fl & STBSP__TRIPLET_COMMA) { - 238c: 040e7e93 andi t4,t3,64 + 239c: 040e7e93 andi t4,t3,64 *--s = h[n64 & ((1 << (l >> 8)) - 1)]; - 2390: 0007029b sext.w t0,a4 - 2394: 005317bb sllw a5,t1,t0 - 2398: 37fd addiw a5,a5,-1 - 239a: 8ff5 and a5,a5,a3 - 239c: 97c2 add a5,a5,a6 - 239e: 0007c783 lbu a5,0(a5) + 23a0: 0007029b sext.w t0,a4 + 23a4: 005317bb sllw a5,t1,t0 + 23a8: 37fd addiw a5,a5,-1 + 23aa: 8ff5 and a5,a5,a3 + 23ac: 97c2 add a5,a5,a6 + 23ae: 0007c783 lbu a5,0(a5) n64 >>= (l >> 8); - 23a2: 0056d6b3 srl a3,a3,t0 + 23b2: 0056d6b3 srl a3,a3,t0 *--s = h[n64 & ((1 << (l >> 8)) - 1)]; - 23a6: fff60a93 addi s5,a2,-1 - 23aa: fef60fa3 sb a5,-1(a2) + 23b6: fff60a93 addi s5,a2,-1 + 23ba: fef60fa3 sb a5,-1(a2) if (!((n64) || ((stbsp__int32)((num + STBSP__NUMSZ) - s) < pr))) - 23ae: e691 bnez a3,23ba - 23b0: 051c addi a5,sp,640 - 23b2: 415787bb subw a5,a5,s5 - 23b6: 0317dd63 bge a5,a7,23f0 + 23be: e691 bnez a3,23ca + 23c0: 051c addi a5,sp,640 + 23c2: 415787bb subw a5,a5,s5 + 23c6: 0317dd63 bge a5,a7,2400 if (fl & STBSP__TRIPLET_COMMA) { - 23ba: 020e8963 beqz t4,23ec + 23ca: 020e8963 beqz t4,23fc ++l; - 23be: 0015879b addiw a5,a1,1 + 23ce: 0015879b addiw a5,a1,1 if ((l & 15) == ((l >> 4) & 15)) { - 23c2: 0047d29b srliw t0,a5,0x4 - 23c6: 00f2c2b3 xor t0,t0,a5 - 23ca: 00f2f293 andi t0,t0,15 + 23d2: 0047d29b srliw t0,a5,0x4 + 23d6: 00f2c2b3 xor t0,t0,a5 + 23da: 00f2f293 andi t0,t0,15 ++l; - 23ce: 0007859b sext.w a1,a5 + 23de: 0007859b sext.w a1,a5 if ((l & 15) == ((l >> 4) & 15)) { - 23d2: 0087d71b srliw a4,a5,0x8 - 23d6: 00029b63 bnez t0,23ec + 23e2: 0087d71b srliw a4,a5,0x8 + 23e6: 00029b63 bnez t0,23fc l &= ~15; - 23da: 9bc1 andi a5,a5,-16 - 23dc: 0007859b sext.w a1,a5 + 23ea: 9bc1 andi a5,a5,-16 + 23ec: 0007859b sext.w a1,a5 *--s = stbsp__comma; - 23e0: ffe60a93 addi s5,a2,-2 - 23e4: ffe60f23 sb t5,-2(a2) - 23e8: 0087d71b srliw a4,a5,0x8 - 23ec: 8656 mv a2,s5 - 23ee: b74d j 2390 + 23f0: ffe60a93 addi s5,a2,-2 + 23f4: ffe60f23 sb t5,-2(a2) + 23f8: 0087d71b srliw a4,a5,0x8 + 23fc: 8656 mv a2,s5 + 23fe: b74d j 23a0 cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); - 23f0: 0045d29b srliw t0,a1,0x4 - 23f4: 0f0006b7 lui a3,0xf000 + 2400: 0045d29b srliw t0,a1,0x4 + 2404: 0f0006b7 lui a3,0xf000 if (pr < (stbsp__int32)l) - 23f8: 0007871b sext.w a4,a5 + 2408: 0007871b sext.w a4,a5 cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); - 23fc: 0182929b slliw t0,t0,0x18 - 2400: 00d2f2b3 and t0,t0,a3 + 240c: 0182929b slliw t0,t0,0x18 + 2410: 00d2f2b3 and t0,t0,a3 n = pr + lead[0] + tail[0] + tz; - 2404: 00ef863b addw a2,t6,a4 + 2414: 00ef863b addw a2,t6,a4 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 2408: d0be sw a5,96(sp) + 2418: d0be sw a5,96(sp) n = pr + lead[0] + tail[0] + tz; - 240a: 8fb2 mv t6,a2 + 241a: 8fb2 mv t6,a2 cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); - 240c: 86be mv a3,a5 - 240e: 00f282bb addw t0,t0,a5 + 241c: 86be mv a3,a5 + 241e: 00f282bb addw t0,t0,a5 if (fw < (stbsp__int32)n) - 2412: 835a mv t1,s6 - 2414: 00cb5363 bge s6,a2,241a - 2418: 8332 mv t1,a2 + 2422: 835a mv t1,s6 + 2424: 00cb5363 bge s6,a2,242a + 2428: 8332 mv t1,a2 fw -= n; - 241a: 41f3033b subw t1,t1,t6 + 242a: 41f3033b subw t1,t1,t6 pr -= l; - 241e: 9f1d subw a4,a4,a5 + 242e: 9f1d subw a4,a4,a5 goto scopy; - 2420: 4f81 li t6,0 + 2430: 4f81 li t6,0 tz = 0; - 2422: 4881 li a7,0 + 2432: 4881 li a7,0 goto scopy; - 2424: fdcff06f j 1c00 - 2428: 8cda mv s9,s6 - 242a: 2c013a03 ld s4,704(sp) - 242e: 2b813a83 ld s5,696(sp) - 2432: 2b013b03 ld s6,688(sp) - 2436: fa9fe06f j 13de + 2434: fdcff06f j 1c10 + 2438: 8cda mv s9,s6 + 243a: 2c013a03 ld s4,704(sp) + 243e: 2b813a83 ld s5,696(sp) + 2442: 2b013b03 ld s6,688(sp) + 2446: fa9fe06f j 13ee fl |= ((sizeof(void *) == 8) ? STBSP__INTMAX : 0); - 243a: 020e6e13 ori t3,t3,32 + 244a: 020e6e13 ori t3,t3,32 ++f; - 243e: 0485 addi s1,s1,1 - 2440: 864ff06f j 14a4 + 244e: 0485 addi s1,s1,1 + 2450: 864ff06f j 14b4 n = 0; - 2444: 4601 li a2,0 + 2454: 4601 li a2,0 s = num + 64; - 2446: 8756 mv a4,s5 + 2456: 8756 mv a4,s5 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2448: 4511 li a0,4 + 2458: 4511 li a0,4 *s++ = stbsp__comma; - 244a: 00170793 addi a5,a4,1 + 245a: 00170793 addi a5,a4,1 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 244e: 00030563 beqz t1,2458 - 2452: 2585 addiw a1,a1,1 - 2454: 10a58363 beq a1,a0,255a - 2458: 873e mv a4,a5 + 245e: 00030563 beqz t1,2468 + 2462: 2585 addiw a1,a1,1 + 2464: 10a58363 beq a1,a0,256a + 2468: 873e mv a4,a5 *s++ = sn[n]; - 245a: 02061793 slli a5,a2,0x20 - 245e: 9381 srli a5,a5,0x20 - 2460: 97fa add a5,a5,t5 - 2462: 0007c803 lbu a6,0(a5) + 246a: 02061793 slli a5,a2,0x20 + 246e: 9381 srli a5,a5,0x20 + 2470: 97fa add a5,a5,t5 + 2472: 0007c803 lbu a6,0(a5) ++n; - 2466: 2605 addiw a2,a2,1 + 2476: 2605 addiw a2,a2,1 *s++ = sn[n]; - 2468: ff070fa3 sb a6,-1(a4) + 2478: ff070fa3 sb a6,-1(a4) if (n >= l) - 246c: fcd66fe3 bltu a2,a3,244a + 247c: fcd66fe3 bltu a2,a3,245a if (n < (stbsp__uint32)dp) { - 2470: 0bd663e3 bltu a2,t4,2d16 + 2480: 0bd663e3 bltu a2,t4,2d26 cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens - 2474: 415707b3 sub a5,a4,s5 - 2478: 030002b7 lui t0,0x3000 - 247c: 00f282bb addw t0,t0,a5 + 2484: 415707b3 sub a5,a4,s5 + 2488: 030002b7 lui t0,0x3000 + 248c: 00f282bb addw t0,t0,a5 if (pr) { - 2480: 00088a63 beqz a7,2494 + 2490: 00088a63 beqz a7,24a4 *s++ = stbsp__period; - 2484: 0cca4683 lbu a3,204(s4) - 2488: 00170793 addi a5,a4,1 + 2494: 0cca4683 lbu a3,204(s4) + 2498: 00170793 addi a5,a4,1 l = (stbsp__uint32)(s - (num + 64)); - 248c: 415787b3 sub a5,a5,s5 + 249c: 415787b3 sub a5,a5,s5 *s++ = stbsp__period; - 2490: 00d70023 sb a3,0(a4) + 24a0: 00d70023 sb a3,0(a4) if (fl & STBSP__METRIC_SUFFIX) { - 2494: 100e7713 andi a4,t3,256 - 2498: 86f2 mv a3,t3 - 249a: 2c070163 beqz a4,275c + 24a4: 100e7713 andi a4,t3,256 + 24a8: 86f2 mv a3,t3 + 24aa: 2c070163 beqz a4,276c if (fl & STBSP__METRIC_NOSPACE) - 249e: 40ae5f9b sraiw t6,t3,0xa - 24a2: 001fcf93 xori t6,t6,1 - 24a6: 001fff93 andi t6,t6,1 + 24ae: 40ae5f9b sraiw t6,t3,0xa + 24b2: 001fcf93 xori t6,t6,1 + 24b6: 001fff93 andi t6,t6,1 tail[1] = ' '; - 24aa: 02000713 li a4,32 - 24ae: 06e108a3 sb a4,113(sp) + 24ba: 02000713 li a4,32 + 24be: 06e108a3 sb a4,113(sp) tail[0] = idx; - 24b2: 07f10823 sb t6,112(sp) + 24c2: 07f10823 sb t6,112(sp) if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. - 24b6: 018e561b srliw a2,t3,0x18 - 24ba: 018e571b srliw a4,t3,0x18 + 24c6: 018e561b srliw a2,t3,0x18 + 24ca: 018e571b srliw a4,t3,0x18 n = pr + lead[0] + tail[0] + tz; - 24be: 000f859b sext.w a1,t6 + 24ce: 000f859b sext.w a1,t6 if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. - 24c2: c225 beqz a2,2522 + 24d2: c225 beqz a2,2532 if (fl & STBSP__METRIC_1024) - 24c4: 001f859b addiw a1,t6,1 - 24c8: 0ff5f613 zext.b a2,a1 + 24d4: 001f859b addiw a1,t6,1 + 24d8: 0ff5f613 zext.b a2,a1 tail[idx + 1] = "_KMGT"[fl >> 24]; - 24cc: 1702 slli a4,a4,0x20 + 24dc: 1702 slli a4,a4,0x20 if (fl & STBSP__METRIC_1024) - 24ce: 03469513 slli a0,a3,0x34 + 24de: 03469513 slli a0,a3,0x34 tail[idx + 1] = "_KMGT"[fl >> 24]; - 24d2: 85b2 mv a1,a2 - 24d4: 9301 srli a4,a4,0x20 + 24e2: 85b2 mv a1,a2 + 24e4: 9301 srli a4,a4,0x20 if (fl & STBSP__METRIC_1024) - 24d6: 06055ee3 bgez a0,2d52 + 24e6: 06055ee3 bgez a0,2d62 tail[idx + 1] = "_KMGT"[fl >> 24]; - 24da: 00003517 auipc a0,0x3 - 24de: bde50513 addi a0,a0,-1058 # 50b8 <_GLOBAL__sub_I__ZSt3cin+0xd8> - 24e2: 972a add a4,a4,a0 - 24e4: 00074503 lbu a0,0(a4) + 24ea: 00003517 auipc a0,0x3 + 24ee: bee50513 addi a0,a0,-1042 # 50d8 <_GLOBAL__sub_I__ZSt3cin+0xe8> + 24f2: 972a add a4,a4,a0 + 24f4: 00074503 lbu a0,0(a4) if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { - 24e8: 6709 lui a4,0x2 - 24ea: 80070713 addi a4,a4,-2048 # 1800 - 24ee: 8f75 and a4,a4,a3 + 24f8: 6709 lui a4,0x2 + 24fa: 80070713 addi a4,a4,-2048 # 1800 + 24fe: 8f75 and a4,a4,a3 tail[idx + 1] = "_KMGT"[fl >> 24]; - 24f0: 06010813 addi a6,sp,96 - 24f4: 22060693 addi a3,a2,544 - 24f8: 96c2 add a3,a3,a6 - 24fa: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff8588> + 2500: 06010813 addi a6,sp,96 + 2504: 22060693 addi a3,a2,544 + 2508: 96c2 add a3,a3,a6 + 250a: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff8568> if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { - 24fe: 8007071b addiw a4,a4,-2048 - 2502: 060715e3 bnez a4,2d6c + 250e: 8007071b addiw a4,a4,-2048 + 2512: 060715e3 bnez a4,2d7c tail[idx + 1] = 'i'; - 2506: 2f89 addiw t6,t6,2 - 2508: 0ffff593 zext.b a1,t6 - 250c: 1094 addi a3,sp,96 - 250e: 22058713 addi a4,a1,544 - 2512: 9736 add a4,a4,a3 - 2514: 06900693 li a3,105 - 2518: 8fae mv t6,a1 - 251a: ded70823 sb a3,-528(a4) + 2516: 2f89 addiw t6,t6,2 + 2518: 0ffff593 zext.b a1,t6 + 251c: 1094 addi a3,sp,96 + 251e: 22058713 addi a4,a1,544 + 2522: 9736 add a4,a4,a3 + 2524: 06900693 li a3,105 + 2528: 8fae mv t6,a1 + 252a: ded70823 sb a3,-528(a4) tail[0] = idx; - 251e: 07f10823 sb t6,112(sp) + 252e: 07f10823 sb t6,112(sp) l = (stbsp__uint32)(s - (num + 64)); - 2522: 0007869b sext.w a3,a5 + 2532: 0007869b sext.w a3,a5 n = pr + lead[0] + tail[0] + tz; - 2526: 06814a03 lbu s4,104(sp) + 2536: 06814a03 lbu s4,104(sp) if (pr < (stbsp__int32)l) - 252a: fff6c713 not a4,a3 - 252e: 977d srai a4,a4,0x3f - 2530: 8ff9 and a5,a5,a4 + 253a: fff6c713 not a4,a3 + 253e: 977d srai a4,a4,0x3f + 2540: 8ff9 and a5,a5,a4 n = pr + lead[0] + tail[0] + tz; - 2532: 00fa073b addw a4,s4,a5 - 2536: 9f2d addw a4,a4,a1 - 2538: 0117063b addw a2,a4,a7 + 2542: 00fa073b addw a4,s4,a5 + 2546: 9f2d addw a4,a4,a1 + 2548: 0117063b addw a2,a4,a7 l = (stbsp__uint32)(s - (num + 64)); - 253c: d0b6 sw a3,96(sp) + 254c: d0b6 sw a3,96(sp) n = pr + lead[0] + tail[0] + tz; - 253e: 8732 mv a4,a2 + 254e: 8732 mv a4,a2 if (pr < (stbsp__int32)l) - 2540: 2781 sext.w a5,a5 + 2550: 2781 sext.w a5,a5 if ((fl & STBSP__LEFTJUST) == 0) { - 2542: 001e7513 andi a0,t3,1 + 2552: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 2546: 835a mv t1,s6 - 2548: 00cb5363 bge s6,a2,254e - 254c: 8332 mv t1,a2 + 2556: 835a mv t1,s6 + 2558: 00cb5363 bge s6,a2,255e + 255c: 8332 mv t1,a2 fw -= n; - 254e: 40e3033b subw t1,t1,a4 + 255e: 40e3033b subw t1,t1,a4 pr -= l; - 2552: 40d7873b subw a4,a5,a3 + 2562: 40d7873b subw a4,a5,a3 goto scopy; - 2556: eaaff06f j 1c00 + 2566: eaaff06f j 1c10 *s++ = stbsp__comma; - 255a: fe578fa3 sb t0,-1(a5) - 255e: 0709 addi a4,a4,2 + 256a: fe578fa3 sb t0,-1(a5) + 256e: 0709 addi a4,a4,2 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2560: 4585 li a1,1 - 2562: bde5 j 245a + 2570: 4585 li a1,1 + 2572: bde5 j 246a lead[0] = 1; - 2564: 678d lui a5,0x3 - 2566: 0785 addi a5,a5,1 # 3001 - 2568: 06f11423 sh a5,104(sp) - 256c: b4ed j 2056 + 2574: 678d lui a5,0x3 + 2576: 0785 addi a5,a5,1 # 3001 + 2578: 06f11423 sh a5,104(sp) + 257c: b4ed j 2066 if ((f[0] != 'u') && (i64 < 0)) { - 256e: 07500693 li a3,117 + 257e: 07500693 li a3,117 stbsp__int64 i64 = va_arg(va, stbsp__int64); - 2572: 000bbf03 ld t5,0(s7) + 2582: 000bbf03 ld t5,0(s7) if ((f[0] != 'u') && (i64 < 0)) { - 2576: dcd78263 beq a5,a3,1b3a - 257a: dc0f5063 bgez t5,1b3a + 2586: dcd78263 beq a5,a3,1b4a + 258a: dc0f5063 bgez t5,1b4a fl |= STBSP__NEGATIVE; - 257e: 08076713 ori a4,a4,128 + 258e: 08076713 ori a4,a4,128 n64 = (stbsp__uint64)-i64; - 2582: 41e00f33 neg t5,t5 + 2592: 41e00f33 neg t5,t5 fl |= STBSP__NEGATIVE; - 2586: 00070e1b sext.w t3,a4 - 258a: db0ff06f j 1b3a + 2596: 00070e1b sext.w t3,a4 + 259a: db0ff06f j 1b4a lead[2] = h[0xb]; - 258e: 00b84703 lbu a4,11(a6) + 259e: 00b84703 lbu a4,11(a6) lead[0] = 2; - 2592: 678d lui a5,0x3 - 2594: 0789 addi a5,a5,2 # 3002 - 2596: 06f11423 sh a5,104(sp) + 25a2: 678d lui a5,0x3 + 25a4: 0789 addi a5,a5,2 # 3002 + 25a6: 06f11423 sh a5,104(sp) lead[2] = h[0xb]; - 259a: 06e10523 sb a4,106(sp) - 259e: bab5 j 1f1a + 25aa: 06e10523 sb a4,106(sp) + 25ae: bab5 j 1f2a sign[0] = 1; - 25a0: 678d lui a5,0x3 - 25a2: d0178793 addi a5,a5,-767 # 2d01 + 25b0: 678d lui a5,0x3 + 25b2: d0178793 addi a5,a5,-767 # 2d01 fl |= STBSP__NEGATIVE; - 25a6: 080e6e13 ori t3,t3,128 + 25b6: 080e6e13 ori t3,t3,128 sign[0] = 1; - 25aa: 06f11423 sh a5,104(sp) - 25ae: 468d li a3,3 - 25b0: 4a0d li s4,3 - 25b2: 4809 li a6,2 - 25b4: b899 j 1e0a + 25ba: 06f11423 sh a5,104(sp) + 25be: 468d li a3,3 + 25c0: 4a0d li s4,3 + 25c2: 4809 li a6,2 + 25c4: b899 j 1e1a sign[0] = 1; - 25b6: 6709 lui a4,0x2 - 25b8: 0705 addi a4,a4,1 # 2001 - 25ba: 06e11423 sh a4,104(sp) - 25be: bae5 j 1fb6 + 25c6: 6709 lui a4,0x2 + 25c8: 0705 addi a4,a4,1 # 2001 + 25ca: 06e11423 sh a4,104(sp) + 25ce: bae5 j 1fc6 if (((stbsp__uintptr)sn & 3) == 0) - 25c0: 0e0780e3 beqz a5,2ea0 + 25d0: 0e0780e3 beqz a5,2eb0 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 25c4: 56fd li a3,-1 - 25c6: bcf9 j 20a4 + 25d4: 56fd li a3,-1 + 25d6: bcf9 j 20b4 if (fw < (stbsp__int32)n) - 25c8: 4305 li t1,1 - 25ca: b249 j 1f4c + 25d8: 4305 li t1,1 + 25da: b249 j 1f5c pr = 6; // default is 6 - 25cc: 4899 li a7,6 - 25ce: b801 j 1dde + 25dc: 4899 li a7,6 + 25de: b801 j 1dee h = (f[0] == 'A') ? hexu : hex; - 25d0: 00004597 auipc a1,0x4 - 25d4: 47058593 addi a1,a1,1136 # 6a40 - 25d8: ff6ff06f j 1dce + 25e0: 00004597 auipc a1,0x4 + 25e4: 48058593 addi a1,a1,1152 # 6a60 + 25e8: ff6ff06f j 1dde h = (f[0] == 'B') ? hexu : hex; - 25dc: 00004817 auipc a6,0x4 - 25e0: 46480813 addi a6,a6,1124 # 6a40 - 25e4: b22d j 1f0e - 25e6: 80000737 lui a4,0x80000 - 25ea: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff879e> + 25ec: 00004817 auipc a6,0x4 + 25f0: 47480813 addi a6,a6,1140 # 6a60 + 25f4: b22d j 1f1e + 25f6: 80000737 lui a4,0x80000 + 25fa: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff877e> pr = 6; // default is 6 - 25ec: 4899 li a7,6 - 25ee: e4eff06f j 1c3c + 25fc: 4899 li a7,6 + 25fe: e4eff06f j 1c4c h = (f[0] == 'E') ? hexu : hex; - 25f2: 00004317 auipc t1,0x4 - 25f6: 44e30313 addi t1,t1,1102 # 6a40 - 25fa: e28ff06f j 1c22 - 25fe: 80000737 lui a4,0x80000 - 2602: 4a99 li s5,6 - 2604: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff879d> + 2602: 00004317 auipc t1,0x4 + 2606: 45e30313 addi t1,t1,1118 # 6a60 + 260a: e28ff06f j 1c32 + 260e: 80000737 lui a4,0x80000 + 2612: 4a99 li s5,6 + 2614: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff877d> pr = 6; - 2606: 4a19 li s4,6 - 2608: ee8ff06f j 1cf0 + 2616: 4a19 li s4,6 + 2618: ee8ff06f j 1d00 h = (f[0] == 'G') ? hexu : hex; - 260c: 00004317 auipc t1,0x4 - 2610: 43430313 addi t1,t1,1076 # 6a40 - 2614: eb6ff06f j 1cca - 2618: 7be6 ld s7,120(sp) + 261c: 00004317 auipc t1,0x4 + 2620: 44430313 addi t1,t1,1092 # 6a60 + 2624: eb6ff06f j 1cda + 2628: 7be6 ld s7,120(sp) if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 261a: 86c2 mv a3,a6 + 262a: 86c2 mv a3,a6 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 261c: 8542 mv a0,a6 + 262c: 8542 mv a0,a6 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 261e: 88d2 mv a7,s4 + 262e: 88d2 mv a7,s4 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2620: 8ade mv s5,s7 + 2630: 8ade mv s5,s7 if (pr > (stbsp__int32)l) - 2622: 0005071b sext.w a4,a0 - 2626: 01175f63 bge a4,a7,2644 + 2632: 0005071b sext.w a4,a0 + 2636: 01175f63 bge a4,a7,2654 pr = l - 1; - 262a: fff5089b addiw a7,a0,-1 + 263a: fff5089b addiw a7,a0,-1 tail[0] = 0; - 262e: 06010823 sb zero,112(sp) + 263e: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 2632: 70028c63 beqz t0,2d4a + 2642: 70028c63 beqz t0,2d5a sign[0] = 1; - 2636: 670d lui a4,0x3 - 2638: d0170713 addi a4,a4,-767 # 2d01 - 263c: 06e11423 sh a4,104(sp) - 2640: e3aff06f j 1c7a + 2646: 670d lui a4,0x3 + 2648: d0170713 addi a4,a4,-767 # 2d01 + 264c: 06e11423 sh a4,104(sp) + 2650: e3aff06f j 1c8a else if (pr) - 2644: fe0885e3 beqz a7,262e + 2654: fe0885e3 beqz a7,263e --pr; // when using %e, there is one digit before the decimal - 2648: 38fd addiw a7,a7,-1 - 264a: b7d5 j 262e + 2658: 38fd addiw a7,a7,-1 + 265a: b7d5 j 263e switch (f[0]) { - 264c: 0034c783 lbu a5,3(s1) + 265c: 0034c783 lbu a5,3(s1) f += 3; - 2650: 048d addi s1,s1,3 - 2652: e53fe06f j 14a4 + 2660: 048d addi s1,s1,3 + 2662: e53fe06f j 14b4 if (!limit || *sn == 0) - 2656: 4601 li a2,0 - 2658: 4701 li a4,0 - 265a: 4781 li a5,0 + 2666: 4601 li a2,0 + 2668: 4701 li a4,0 + 266a: 4781 li a5,0 return (stbsp__uint32)(sn - s); - 265c: bca5 j 20d4 + 266c: bca5 j 20e4 pr = 1; - 265e: 4885 li a7,1 - 2660: cf4ff06f j 1b54 + 266e: 4885 li a7,1 + 2670: cf4ff06f j 1b64 *s++ = sn[0]; - 2664: 000ac703 lbu a4,0(s5) - 2668: 0ce10023 sb a4,192(sp) + 2674: 000ac703 lbu a4,0(s5) + 2678: 0ce10023 sb a4,192(sp) if (pr) - 266c: 54088563 beqz a7,2bb6 + 267c: 54088563 beqz a7,2bc6 *s++ = stbsp__period; - 2670: 00004617 auipc a2,0x4 - 2674: 3cc64603 lbu a2,972(a2) # 6a3c + 2680: 00004617 auipc a2,0x4 + 2684: 3dc64603 lbu a2,988(a2) # 6a5c if ((l - 1) > (stbsp__uint32)pr) - 2678: fff6871b addiw a4,a3,-1 + 2688: fff6871b addiw a4,a3,-1 *s++ = stbsp__period; - 267c: 0cc100a3 sb a2,193(sp) + 268c: 0cc100a3 sb a2,193(sp) if ((l - 1) > (stbsp__uint32)pr) - 2680: 0008851b sext.w a0,a7 - 2684: 0007061b sext.w a2,a4 - 2688: 52c57163 bgeu a0,a2,2baa + 2690: 0008851b sext.w a0,a7 + 2694: 0007061b sext.w a2,a4 + 2698: 52c57163 bgeu a0,a2,2bba l = pr + 1; - 268c: 0018869b addiw a3,a7,1 + 269c: 0018869b addiw a3,a7,1 for (n = 1; n < l; n++) - 2690: 8746 mv a4,a7 - 2692: 02071613 slli a2,a4,0x20 - 2696: 9201 srli a2,a2,0x20 - 2698: 0c210713 addi a4,sp,194 - 269c: 0a85 addi s5,s5,1 - 269e: 963a add a2,a2,a4 + 26a0: 8746 mv a4,a7 + 26a2: 02071613 slli a2,a4,0x20 + 26a6: 9201 srli a2,a2,0x20 + 26a8: 0c210713 addi a4,sp,194 + 26ac: 0a85 addi s5,s5,1 + 26ae: 963a add a2,a2,a4 *s++ = sn[n]; - 26a0: 000ac583 lbu a1,0(s5) - 26a4: 0705 addi a4,a4,1 + 26b0: 000ac583 lbu a1,0(s5) + 26b4: 0705 addi a4,a4,1 for (n = 1; n < l; n++) - 26a6: 0a85 addi s5,s5,1 + 26b6: 0a85 addi s5,s5,1 *s++ = sn[n]; - 26a8: feb70fa3 sb a1,-1(a4) + 26b8: feb70fa3 sb a1,-1(a4) for (n = 1; n < l; n++) - 26ac: fec71ae3 bne a4,a2,26a0 + 26bc: fec71ae3 bne a4,a2,26b0 tail[1] = h[0xe]; - 26b0: 00e34803 lbu a6,14(t1) + 26c0: 00e34803 lbu a6,14(t1) dp -= 1; - 26b4: fff7871b addiw a4,a5,-1 + 26c4: fff7871b addiw a4,a5,-1 tail[2] = '+'; - 26b8: 02b00593 li a1,43 + 26c8: 02b00593 li a1,43 tail[1] = h[0xe]; - 26bc: 070108a3 sb a6,113(sp) + 26cc: 070108a3 sb a6,113(sp) if (dp < 0) { - 26c0: 00075663 bgez a4,26cc + 26d0: 00075663 bgez a4,26dc dp = -dp; - 26c4: 4705 li a4,1 - 26c6: 9f1d subw a4,a4,a5 + 26d4: 4705 li a4,1 + 26d6: 9f1d subw a4,a4,a5 tail[2] = '-'; - 26c8: 02d00593 li a1,45 - 26cc: 06b10923 sb a1,114(sp) + 26d8: 02d00593 li a1,45 + 26dc: 06b10923 sb a1,114(sp) n = (dp >= 100) ? 5 : 4; - 26d0: 06300793 li a5,99 - 26d4: 4ee7d663 bge a5,a4,2bc0 - 26d8: 4595 li a1,5 - 26da: 4f95 li t6,5 - 26dc: 4e95 li t4,5 + 26e0: 06300793 li a5,99 + 26e4: 4ee7d663 bge a5,a4,2bd0 + 26e8: 4595 li a1,5 + 26ea: 4f95 li t6,5 + 26ec: 4e95 li t4,5 tail[n] = '0' + dp % 10; - 26de: 47a9 li a5,10 + 26ee: 47a9 li a5,10 dp /= 10; - 26e0: 02f7433b divw t1,a4,a5 + 26f0: 02f7433b divw t1,a4,a5 --n; - 26e4: fffe8f1b addiw t5,t4,-1 + 26f4: fffe8f1b addiw t5,t4,-1 tail[n] = '0' + dp % 10; - 26e8: 020f1293 slli t0,t5,0x20 - 26ec: 220e8813 addi a6,t4,544 - 26f0: 06010893 addi a7,sp,96 - 26f4: 0202d293 srli t0,t0,0x20 - 26f8: 01180eb3 add t4,a6,a7 - 26fc: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff89b8> - 2700: 011802b3 add t0,a6,a7 + 26f8: 020f1293 slli t0,t5,0x20 + 26fc: 220e8813 addi a6,t4,544 + 2700: 06010893 addi a7,sp,96 + 2704: 0202d293 srli t0,t0,0x20 + 2708: 01180eb3 add t4,a6,a7 + 270c: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff8998> + 2710: 011802b3 add t0,a6,a7 tail[0] = (char)n; - 2704: 07f10823 sb t6,112(sp) + 2714: 07f10823 sb t6,112(sp) if (n <= 3) - 2708: 4a0d li s4,3 + 2718: 4a0d li s4,3 tail[n] = '0' + dp % 10; - 270a: 02f7673b remw a4,a4,a5 + 271a: 02f7673b remw a4,a4,a5 dp /= 10; - 270e: 0003081b sext.w a6,t1 + 271e: 0003081b sext.w a6,t1 tail[n] = '0' + dp % 10; - 2712: 02f36abb remw s5,t1,a5 - 2716: 0307071b addiw a4,a4,48 - 271a: deee8823 sb a4,-528(t4) - 271e: 030a871b addiw a4,s5,48 - 2722: dee28823 sb a4,-528(t0) + 2722: 02f36abb remw s5,t1,a5 + 2726: 0307071b addiw a4,a4,48 + 272a: deee8823 sb a4,-528(t4) + 272e: 030a871b addiw a4,s5,48 + 2732: dee28823 sb a4,-528(t0) if (n <= 3) - 2726: 014f0a63 beq t5,s4,273a + 2736: 014f0a63 beq t5,s4,274a dp /= 10; - 272a: 02f3483b divw a6,t1,a5 + 273a: 02f3483b divw a6,t1,a5 tail[n] = '0' + dp % 10; - 272e: 02f867bb remw a5,a6,a5 - 2732: 0307879b addiw a5,a5,48 - 2736: 06f109a3 sb a5,115(sp) + 273e: 02f867bb remw a5,a6,a5 + 2742: 0307879b addiw a5,a5,48 + 2746: 06f109a3 sb a5,115(sp) tz = pr - (l - 1); - 273a: 2505 addiw a0,a0,1 + 274a: 2505 addiw a0,a0,1 l = (stbsp__uint32)(s - (num + 64)); - 273c: 0c010a93 addi s5,sp,192 + 274c: 0c010a93 addi s5,sp,192 cs = 1 + (3 << 24); // how many tens - 2740: 030002b7 lui t0,0x3000 + 2750: 030002b7 lui t0,0x3000 tz = pr - (l - 1); - 2744: 40d508bb subw a7,a0,a3 - 2748: d2c2 sw a6,100(sp) + 2754: 40d508bb subw a7,a0,a3 + 2758: d2c2 sw a6,100(sp) l = (stbsp__uint32)(s - (num + 64)); - 274a: 415607b3 sub a5,a2,s5 + 275a: 415607b3 sub a5,a2,s5 cs = 1 + (3 << 24); // how many tens - 274e: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8799> - 2750: bbc9 j 2522 - 2752: fc2e sd a1,56(sp) - 2754: d0b2 sw a2,96(sp) + 275e: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2760: bbc9 j 2532 + 2762: fc2e sd a1,56(sp) + 2764: d0b2 sw a2,96(sp) while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2756: 8536 mv a0,a3 - 2758: e2cff06f j 1d84 + 2766: 8536 mv a0,a3 + 2768: e2cff06f j 1d94 flt_lead: - 275c: 4581 li a1,0 - 275e: 4f81 li t6,0 - 2760: b3c9 j 2522 + 276c: 4581 li a1,0 + 276e: 4f81 li t6,0 + 2770: b3c9 j 2532 n = pr + lead[0] + tail[0] + tz; - 2762: 06814a03 lbu s4,104(sp) - 2766: 000a0f9b sext.w t6,s4 - 276a: b901 j 237a + 2772: 06814a03 lbu s4,104(sp) + 2776: 000a0f9b sext.w t6,s4 + 277a: b901 j 238a if ((f[1] == '6') && (f[2] == '4')) { - 276c: 0024c683 lbu a3,2(s1) - 2770: 03400713 li a4,52 - 2774: 00e68463 beq a3,a4,277c - 2778: e2bfe06f j 15a2 + 277c: 0024c683 lbu a3,2(s1) + 2780: 03400713 li a4,52 + 2784: 00e68463 beq a3,a4,278c + 2788: e2bfe06f j 15b2 switch (f[0]) { - 277c: 0034c783 lbu a5,3(s1) + 278c: 0034c783 lbu a5,3(s1) fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); - 2780: 020e6e13 ori t3,t3,32 + 2790: 020e6e13 ori t3,t3,32 f += 3; - 2784: 048d addi s1,s1,3 - 2786: d1ffe06f j 14a4 + 2794: 048d addi s1,s1,3 + 2796: d1ffe06f j 14b4 if (pr < (stbsp__int32)l) - 278a: 0006879b sext.w a5,a3 + 279a: 0006879b sext.w a5,a3 n = pr + lead[0] + tail[0] + tz; - 278e: 06814a03 lbu s4,104(sp) + 279e: 06814a03 lbu s4,104(sp) if (pr < (stbsp__int32)l) - 2792: fff7c793 not a5,a5 - 2796: 97fd srai a5,a5,0x3f - 2798: 8ff5 and a5,a5,a3 + 27a2: fff7c793 not a5,a5 + 27a6: 97fd srai a5,a5,0x3f + 27a8: 8ff5 and a5,a5,a3 n = pr + lead[0] + tail[0] + tz; - 279a: 00fa063b addw a2,s4,a5 + 27aa: 00fa063b addw a2,s4,a5 s = (char *)sn; - 279e: 7ae6 ld s5,120(sp) + 27ae: 7ae6 ld s5,120(sp) n = pr + lead[0] + tail[0] + tz; - 27a0: 8732 mv a4,a2 + 27b0: 8732 mv a4,a2 if ((fl & STBSP__LEFTJUST) == 0) { - 27a2: 001e7513 andi a0,t3,1 + 27b2: 001e7513 andi a0,t3,1 if (pr < (stbsp__int32)l) - 27a6: 2781 sext.w a5,a5 + 27b6: 2781 sext.w a5,a5 if (fw < (stbsp__int32)n) - 27a8: 835a mv t1,s6 - 27aa: 00cb5363 bge s6,a2,27b0 - 27ae: 8332 mv t1,a2 + 27b8: 835a mv t1,s6 + 27ba: 00cb5363 bge s6,a2,27c0 + 27be: 8332 mv t1,a2 fw -= n; - 27b0: 40e3033b subw t1,t1,a4 + 27c0: 40e3033b subw t1,t1,a4 goto scopy; - 27b4: 4f81 li t6,0 + 27c4: 4f81 li t6,0 pr -= l; - 27b6: 40d7873b subw a4,a5,a3 + 27c6: 40d7873b subw a4,a5,a3 cs = 0; - 27ba: 4281 li t0,0 + 27ca: 4281 li t0,0 tz = 0; - 27bc: 4881 li a7,0 + 27cc: 4881 li a7,0 goto scopy; - 27be: c42ff06f j 1c00 + 27ce: c42ff06f j 1c10 cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens - 27c2: 415705b3 sub a1,a4,s5 - 27c6: 030002b7 lui t0,0x3000 - 27ca: 00b282bb addw t0,t0,a1 + 27d2: 415705b3 sub a1,a4,s5 + 27d6: 030002b7 lui t0,0x3000 + 27da: 00b282bb addw t0,t0,a1 l = pr - n; - 27ce: 0008859b sext.w a1,a7 + 27de: 0008859b sext.w a1,a7 if (pr) - 27d2: 42088763 beqz a7,2c00 + 27e2: 42088763 beqz a7,2c10 *s++ = stbsp__period; - 27d6: 0cca4f83 lbu t6,204(s4) + 27e6: 0cca4f83 lbu t6,204(s4) if ((l - dp) > (stbsp__uint32)pr) - 27da: 41d6833b subw t1,a3,t4 + 27ea: 41d6833b subw t1,a3,t4 *s++ = stbsp__period; - 27de: 00280713 addi a4,a6,2 - 27e2: 01f800a3 sb t6,1(a6) + 27ee: 00280713 addi a4,a6,2 + 27f2: 01f800a3 sb t6,1(a6) if ((l - dp) > (stbsp__uint32)pr) - 27e6: 4065ed63 bltu a1,t1,2c00 + 27f6: 4065ed63 bltu a1,t1,2c10 while (n < l) { - 27ea: 5ed57863 bgeu a0,a3,2dda - 27ee: 40c687bb subw a5,a3,a2 - 27f2: 37fd addiw a5,a5,-1 - 27f4: 1782 slli a5,a5,0x20 - 27f6: 9381 srli a5,a5,0x20 - 27f8: 1602 slli a2,a2,0x20 - 27fa: 9201 srli a2,a2,0x20 - 27fc: 0785 addi a5,a5,1 - 27fe: 967a add a2,a2,t5 - 2800: 97ba add a5,a5,a4 + 27fa: 5ed57863 bgeu a0,a3,2dea + 27fe: 40c687bb subw a5,a3,a2 + 2802: 37fd addiw a5,a5,-1 + 2804: 1782 slli a5,a5,0x20 + 2806: 9381 srli a5,a5,0x20 + 2808: 1602 slli a2,a2,0x20 + 280a: 9201 srli a2,a2,0x20 + 280c: 0785 addi a5,a5,1 + 280e: 967a add a2,a2,t5 + 2810: 97ba add a5,a5,a4 *s++ = sn[n]; - 2802: 00064503 lbu a0,0(a2) - 2806: 0705 addi a4,a4,1 + 2812: 00064503 lbu a0,0(a2) + 2816: 0705 addi a4,a4,1 while (n < l) { - 2808: 0605 addi a2,a2,1 + 2818: 0605 addi a2,a2,1 *s++ = sn[n]; - 280a: fea70fa3 sb a0,-1(a4) + 281a: fea70fa3 sb a0,-1(a4) while (n < l) { - 280e: fef71ae3 bne a4,a5,2802 + 281e: fef71ae3 bne a4,a5,2812 tz = pr - (l - dp); - 2812: 01d585bb addw a1,a1,t4 - 2816: 40d588bb subw a7,a1,a3 + 2822: 01d585bb addw a1,a1,t4 + 2826: 40d588bb subw a7,a1,a3 l = (stbsp__uint32)(s - (num + 64)); - 281a: 415787b3 sub a5,a5,s5 - 281e: b99d j 2494 + 282a: 415787b3 sub a5,a5,s5 + 282e: b99d j 24a4 fl |= STBSP__NEGATIVE; - 2820: 080e6e13 ori t3,t3,128 + 2830: 080e6e13 ori t3,t3,128 tail[0] = 0; - 2824: 06010823 sb zero,112(sp) + 2834: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 2828: b539 j 2636 + 2838: b539 j 2646 tail[0] = (char)n; - 282a: 4799 li a5,6 + 283a: 4799 li a5,6 tail[n] = '0' + dp % 10; - 282c: 06b10b23 sb a1,118(sp) + 283c: 06b10b23 sb a1,118(sp) tail[0] = (char)n; - 2830: 06f10823 sb a5,112(sp) + 2840: 06f10823 sb a5,112(sp) tail[n] = '0' + dp % 10; - 2834: 4819 li a6,6 - 2836: 4f99 li t6,6 + 2844: 4819 li a6,6 + 2846: 4f99 li t6,6 n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 2838: 4599 li a1,6 + 2848: 4599 li a1,6 dp /= 10; - 283a: 4f29 li t5,10 + 284a: 4f29 li t5,10 if (n <= 3) - 283c: 428d li t0,3 - 283e: 87b2 mv a5,a2 + 284c: 428d li t0,3 + 284e: 87b2 mv a5,a2 dp /= 10; - 2840: 03e7c7bb divw a5,a5,t5 + 2850: 03e7c7bb divw a5,a5,t5 --n; - 2844: 35fd addiw a1,a1,-1 + 2854: 35fd addiw a1,a1,-1 tail[n] = '0' + dp % 10; - 2846: 02059613 slli a2,a1,0x20 - 284a: 9201 srli a2,a2,0x20 - 284c: 06010e93 addi t4,sp,96 - 2850: 22060613 addi a2,a2,544 - 2854: 9676 add a2,a2,t4 - 2856: 03e7eebb remw t4,a5,t5 - 285a: 030e8e9b addiw t4,t4,48 - 285e: dfd60823 sb t4,-528(a2) + 2856: 02059613 slli a2,a1,0x20 + 285a: 9201 srli a2,a2,0x20 + 285c: 06010e93 addi t4,sp,96 + 2860: 22060613 addi a2,a2,544 + 2864: 9676 add a2,a2,t4 + 2866: 03e7eebb remw t4,a5,t5 + 286a: 030e8e9b addiw t4,t4,48 + 286e: dfd60823 sb t4,-528(a2) if (n <= 3) - 2862: fc559fe3 bne a1,t0,2840 - 2866: e6aff06f j 1ed0 + 2872: fc559fe3 bne a1,t0,2850 + 2876: e6aff06f j 1ee0 *s++ = h[(n64 >> 60) & 15]; - 286a: 93f1 srli a5,a5,0x3c - 286c: 97ae add a5,a5,a1 - 286e: 0007c303 lbu t1,0(a5) + 287a: 93f1 srli a5,a5,0x3c + 287c: 97ae add a5,a5,a1 + 287e: 0007c303 lbu t1,0(a5) lead[1 + lead[0]] = '0'; - 2872: 1088 addi a0,sp,96 - 2874: 22080793 addi a5,a6,544 - 2878: 97aa add a5,a5,a0 - 287a: 03000513 li a0,48 - 287e: dea78423 sb a0,-536(a5) + 2882: 1088 addi a0,sp,96 + 2884: 22080793 addi a5,a6,544 + 2888: 97aa add a5,a5,a0 + 288a: 03000513 li a0,48 + 288e: dea78423 sb a0,-536(a5) lead[2 + lead[0]] = 'x'; - 2882: 22068793 addi a5,a3,544 - 2886: 1094 addi a3,sp,96 - 2888: 96be add a3,a3,a5 + 2892: 22068793 addi a5,a3,544 + 2896: 1094 addi a3,sp,96 + 2898: 96be add a3,a3,a5 *s++ = stbsp__period; - 288a: 00004517 auipc a0,0x4 - 288e: 1b254503 lbu a0,434(a0) # 6a3c + 289a: 00004517 auipc a0,0x4 + 289e: 1c254503 lbu a0,450(a0) # 6a5c lead[2 + lead[0]] = 'x'; - 2892: 07800813 li a6,120 + 28a2: 07800813 li a6,120 sn = s; - 2896: 0c210793 addi a5,sp,194 + 28a6: 0c210793 addi a5,sp,194 lead[2 + lead[0]] = 'x'; - 289a: df068423 sb a6,-536(a3) + 28aa: df068423 sb a6,-536(a3) *s++ = stbsp__period; - 289e: 0ca100a3 sb a0,193(sp) + 28ae: 0ca100a3 sb a0,193(sp) lead[0] += 2; - 28a2: 07410423 sb s4,104(sp) + 28b2: 07410423 sb s4,104(sp) *s++ = h[(n64 >> 60) & 15]; - 28a6: 0c610023 sb t1,192(sp) + 28b6: 0c610023 sb t1,192(sp) n64 <<= 4; - 28aa: 0732 slli a4,a4,0xc + 28ba: 0732 slli a4,a4,0xc sn = s; - 28ac: fcbe sd a5,120(sp) + 28bc: fcbe sd a5,120(sp) n = pr; - 28ae: 0008869b sext.w a3,a7 + 28be: 0008869b sext.w a3,a7 while (n--) { - 28b2: 4831 li a6,12 + 28c2: 4831 li a6,12 if (n > 13) - 28b4: 4535 li a0,13 + 28c4: 4535 li a0,13 tz = pr - n; - 28b6: 40a688bb subw a7,a3,a0 + 28c6: 40a688bb subw a7,a3,a0 while (n--) { - 28ba: 02081313 slli t1,a6,0x20 - 28be: 02035313 srli t1,t1,0x20 - 28c2: 22030693 addi a3,t1,544 - 28c6: 1088 addi a0,sp,96 - 28c8: 9536 add a0,a0,a3 - 28ca: e4350513 addi a0,a0,-445 + 28ca: 02081313 slli t1,a6,0x20 + 28ce: 02035313 srli t1,t1,0x20 + 28d2: 22030693 addi a3,t1,544 + 28d6: 1088 addi a0,sp,96 + 28d8: 9536 add a0,a0,a3 + 28da: e4350513 addi a0,a0,-445 *s++ = h[(n64 >> 60) & 15]; - 28ce: 03c75693 srli a3,a4,0x3c - 28d2: 96ae add a3,a3,a1 - 28d4: 0006c683 lbu a3,0(a3) - 28d8: 0785 addi a5,a5,1 + 28de: 03c75693 srli a3,a4,0x3c + 28e2: 96ae add a3,a3,a1 + 28e4: 0006c683 lbu a3,0(a3) + 28e8: 0785 addi a5,a5,1 n64 <<= 4; - 28da: 0712 slli a4,a4,0x4 + 28ea: 0712 slli a4,a4,0x4 *s++ = h[(n64 >> 60) & 15]; - 28dc: fed78fa3 sb a3,-1(a5) + 28ec: fed78fa3 sb a3,-1(a5) while (n--) { - 28e0: fea797e3 bne a5,a0,28ce + 28f0: fea797e3 bne a5,a0,28de l = (int)(s - (num + 64)); - 28e4: 280d addiw a6,a6,3 - 28e6: 0008069b sext.w a3,a6 + 28f4: 280d addiw a6,a6,3 + 28f6: 0008069b sext.w a3,a6 if (pr < (stbsp__int32)l) - 28ea: fff6c713 not a4,a3 - 28ee: 977d srai a4,a4,0x3f - 28f0: 00e87733 and a4,a6,a4 + 28fa: fff6c713 not a4,a3 + 28fe: 977d srai a4,a4,0x3f + 2900: 00e87733 and a4,a6,a4 dp = (int)(s - sn); - 28f4: 0013051b addiw a0,t1,1 + 2904: 0013051b addiw a0,t1,1 if (pr < (stbsp__int32)l) - 28f8: 0007031b sext.w t1,a4 + 2908: 0007031b sext.w t1,a4 pr -= l; - 28fc: 4107073b subw a4,a4,a6 - 2900: d76ff06f j 1e76 + 290c: 4107073b subw a4,a4,a6 + 2910: d76ff06f j 1e86 *--s = stbsp__comma; - 2904: 00004a17 auipc s4,0x4 - 2908: 06ca0a13 addi s4,s4,108 # 6970 + 2914: 00004a17 auipc s4,0x4 + 2918: 07ca0a13 addi s4,s4,124 # 6990 if (n64 >= 100000000) { - 290c: 05f5e7b7 lui a5,0x5f5e - 2910: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56897> + 291c: 05f5e7b7 lui a5,0x5f5e + 2920: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56877> n = (stbsp__uint32)(n64 % 100000000); - 2914: 05f5e637 lui a2,0x5f5e + 2924: 05f5e637 lui a2,0x5f5e *--s = stbsp__comma; - 2918: 0cda4b83 lbu s7,205(s4) + 2928: 0cda4b83 lbu s7,205(s4) if (n64 >= 100000000) { - 291c: e83e sd a5,16(sp) + 292c: e83e sd a5,16(sp) n = (stbsp__uint32)(n64 % 100000000); - 291e: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f56898> + 292e: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f56878> l = 0; - 2922: d082 sw zero,96(sp) + 2932: d082 sw zero,96(sp) if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 2924: 040e7813 andi a6,t3,64 - 2928: 4701 li a4,0 - 292a: 4281 li t0,0 + 2934: 040e7813 andi a6,t3,64 + 2938: 4701 li a4,0 + 293a: 4281 li t0,0 s = num + STBSP__NUMSZ; - 292c: 28010a93 addi s5,sp,640 + 293c: 28010a93 addi s5,sp,640 n = (stbsp__uint32)(n64 % 100000000); - 2930: ec3e sd a5,24(sp) + 2940: ec3e sd a5,24(sp) if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 2932: 430d li t1,3 + 2942: 430d li t1,3 n /= 10; - 2934: 45a9 li a1,10 + 2944: 45a9 li a1,10 while (n) { - 2936: 4ea5 li t4,9 + 2946: 4ea5 li t4,9 *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 2938: 06400f93 li t6,100 + 2948: 06400f93 li t6,100 if (n64 >= 100000000) { - 293c: 67c2 ld a5,16(sp) + 294c: 67c2 ld a5,16(sp) char *o = s - 8; - 293e: ff8a8513 addi a0,s5,-8 + 294e: ff8a8513 addi a0,s5,-8 if (n64 >= 100000000) { - 2942: 0fe7f763 bgeu a5,t5,2a30 + 2952: 0fe7f763 bgeu a5,t5,2a40 n = (stbsp__uint32)(n64 % 100000000); - 2946: 6662 ld a2,24(sp) - 2948: 02cf77b3 remu a5,t5,a2 + 2956: 6662 ld a2,24(sp) + 2958: 02cf77b3 remu a5,t5,a2 n64 /= 100000000; - 294c: 02cf5f33 divu t5,t5,a2 + 295c: 02cf5f33 divu t5,t5,a2 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 2950: 0e080463 beqz a6,2a38 + 2960: 0e080463 beqz a6,2a48 while (n) { - 2954: cb85 beqz a5,2984 + 2964: cb85 beqz a5,2994 *--s = stbsp__comma; - 2956: 1afd addi s5,s5,-1 + 2966: 1afd addi s5,s5,-1 if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 2958: 00671763 bne a4,t1,2966 + 2968: 00671763 bne a4,t1,2976 --o; - 295c: 017a8023 sb s7,0(s5) - 2960: 157d addi a0,a0,-1 + 296c: 017a8023 sb s7,0(s5) + 2970: 157d addi a0,a0,-1 *--s = stbsp__comma; - 2962: 1afd addi s5,s5,-1 + 2972: 1afd addi s5,s5,-1 l = 0; - 2964: 4701 li a4,0 + 2974: 4701 li a4,0 if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 2966: 2705 addiw a4,a4,1 + 2976: 2705 addiw a4,a4,1 *--s = (char)(n % 10) + '0'; - 2968: 02b7f63b remuw a2,a5,a1 - 296c: 0306061b addiw a2,a2,48 - 2970: 00ca8023 sb a2,0(s5) + 2978: 02b7f63b remuw a2,a5,a1 + 297c: 0306061b addiw a2,a2,48 + 2980: 00ca8023 sb a2,0(s5) n /= 10; - 2974: 02b7d63b divuw a2,a5,a1 + 2984: 02b7d63b divuw a2,a5,a1 while (n) { - 2978: 00fef563 bgeu t4,a5,2982 + 2988: 00fef563 bgeu t4,a5,2992 *--s = stbsp__comma; - 297c: 1afd addi s5,s5,-1 - 297e: 87b2 mv a5,a2 - 2980: bfe1 j 2958 + 298c: 1afd addi s5,s5,-1 + 298e: 87b2 mv a5,a2 + 2990: bfe1 j 2968 while (n) { - 2982: 4285 li t0,1 + 2992: 4285 li t0,1 if (n64 == 0) { - 2984: 020f0063 beqz t5,29a4 + 2994: 020f0063 beqz t5,29b4 while (s != o) - 2988: fb550ae3 beq a0,s5,293c + 2998: fb550ae3 beq a0,s5,294c *--s = stbsp__comma; - 298c: 1afd addi s5,s5,-1 + 299c: 1afd addi s5,s5,-1 if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 298e: 00080663 beqz a6,299a - 2992: 08670863 beq a4,t1,2a22 - 2996: 2705 addiw a4,a4,1 - 2998: 4285 li t0,1 + 299e: 00080663 beqz a6,29aa + 29a2: 08670863 beq a4,t1,2a32 + 29a6: 2705 addiw a4,a4,1 + 29a8: 4285 li t0,1 *--s = '0'; - 299a: 03000793 li a5,48 - 299e: 00fa8023 sb a5,0(s5) - 29a2: b7dd j 2988 - 29a4: 00028363 beqz t0,29aa - 29a8: d0ba sw a4,96(sp) + 29aa: 03000793 li a5,48 + 29ae: 00fa8023 sb a5,0(s5) + 29b2: b7dd j 2998 + 29b4: 00028363 beqz t0,29ba + 29b8: d0ba sw a4,96(sp) if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) - 29aa: 000ac703 lbu a4,0(s5) - 29ae: 03000793 li a5,48 - 29b2: 34f70b63 beq a4,a5,2d08 + 29ba: 000ac703 lbu a4,0(s5) + 29be: 03000793 li a5,48 + 29c2: 34f70b63 beq a4,a5,2d18 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 29b6: 051c addi a5,sp,640 - 29b8: 415786bb subw a3,a5,s5 + 29c6: 051c addi a5,sp,640 + 29c8: 415786bb subw a3,a5,s5 tail[0] = 0; - 29bc: 06010823 sb zero,112(sp) + 29cc: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 29c0: 080e7713 andi a4,t3,128 - 29c4: 87f2 mv a5,t3 - 29c6: 32070863 beqz a4,2cf6 - 29ca: 678d lui a5,0x3 - 29cc: d017879b addiw a5,a5,-767 # 2d01 + 29d0: 080e7713 andi a4,t3,128 + 29d4: 87f2 mv a5,t3 + 29d6: 32070863 beqz a4,2d06 + 29da: 678d lui a5,0x3 + 29dc: d017879b addiw a5,a5,-767 # 2d01 sign[0] = 1; - 29d0: 06f11423 sh a5,104(sp) - 29d4: 4705 li a4,1 - 29d6: 4a05 li s4,1 + 29e0: 06f11423 sh a5,104(sp) + 29e4: 4705 li a4,1 + 29e6: 4a05 li s4,1 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 29d8: d0b6 sw a3,96(sp) + 29e8: d0b6 sw a3,96(sp) if (l == 0) { - 29da: 30068163 beqz a3,2cdc + 29ea: 30068163 beqz a3,2cec cs = l + (3 << 24); - 29de: 030002b7 lui t0,0x3000 - 29e2: 00d282bb addw t0,t0,a3 + 29ee: 030002b7 lui t0,0x3000 + 29f2: 00d282bb addw t0,t0,a3 if (pr < (stbsp__int32)l) - 29e6: 0006861b sext.w a2,a3 + 29f6: 0006861b sext.w a2,a3 if (pr < 0) - 29ea: fff8c793 not a5,a7 - 29ee: 97fd srai a5,a5,0x3f + 29fa: fff8c793 not a5,a7 + 29fe: 97fd srai a5,a5,0x3f if (pr < (stbsp__int32)l) - 29f0: 00f8f7b3 and a5,a7,a5 - 29f4: 0007859b sext.w a1,a5 - 29f8: 00c5d363 bge a1,a2,29fe - 29fc: 87b2 mv a5,a2 + 2a00: 00f8f7b3 and a5,a7,a5 + 2a04: 0007859b sext.w a1,a5 + 2a08: 00c5d363 bge a1,a2,2a0e + 2a0c: 87b2 mv a5,a2 n = pr + lead[0] + tail[0] + tz; - 29fe: 00f7063b addw a2,a4,a5 - 2a02: 8732 mv a4,a2 + 2a0e: 00f7063b addw a2,a4,a5 + 2a12: 8732 mv a4,a2 if (pr < (stbsp__int32)l) - 2a04: 2781 sext.w a5,a5 + 2a14: 2781 sext.w a5,a5 if ((fl & STBSP__LEFTJUST) == 0) { - 2a06: 001e7513 andi a0,t3,1 + 2a16: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 2a0a: 835a mv t1,s6 - 2a0c: 00cb5363 bge s6,a2,2a12 - 2a10: 8332 mv t1,a2 + 2a1a: 835a mv t1,s6 + 2a1c: 00cb5363 bge s6,a2,2a22 + 2a20: 8332 mv t1,a2 fw -= n; - 2a12: 40e3033b subw t1,t1,a4 + 2a22: 40e3033b subw t1,t1,a4 scopy: - 2a16: 4f81 li t6,0 + 2a26: 4f81 li t6,0 pr -= l; - 2a18: 40d7873b subw a4,a5,a3 + 2a28: 40d7873b subw a4,a5,a3 tz = 0; - 2a1c: 4881 li a7,0 + 2a2c: 4881 li a7,0 scopy: - 2a1e: 9e2ff06f j 1c00 + 2a2e: 9e2ff06f j 1c10 *--s = stbsp__comma; - 2a22: 87de mv a5,s7 + 2a32: 87de mv a5,s7 --o; - 2a24: 157d addi a0,a0,-1 + 2a34: 157d addi a0,a0,-1 l = 0; - 2a26: 4701 li a4,0 + 2a36: 4701 li a4,0 --o; - 2a28: 4285 li t0,1 - 2a2a: 00fa8023 sb a5,0(s5) - 2a2e: bfa9 j 2988 + 2a38: 4285 li t0,1 + 2a3a: 00fa8023 sb a5,0(s5) + 2a3e: bfa9 j 2998 n = (stbsp__uint32)n64; - 2a30: 000f079b sext.w a5,t5 + 2a40: 000f079b sext.w a5,t5 n64 = 0; - 2a34: 4f01 li t5,0 - 2a36: bf29 j 2950 - 2a38: f046 sd a7,32(sp) + 2a44: 4f01 li t5,0 + 2a46: bf29 j 2960 + 2a48: f046 sd a7,32(sp) *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 2a3a: 03f7f63b remuw a2,a5,t6 + 2a4a: 03f7f63b remuw a2,a5,t6 s -= 2; - 2a3e: 1af9 addi s5,s5,-2 + 2a4e: 1af9 addi s5,s5,-2 *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 2a40: 0007889b sext.w a7,a5 - 2a44: 2605 addiw a2,a2,1 - 2a46: 0016161b slliw a2,a2,0x1 - 2a4a: 1602 slli a2,a2,0x20 - 2a4c: 9201 srli a2,a2,0x20 - 2a4e: 9652 add a2,a2,s4 - 2a50: 00065603 lhu a2,0(a2) + 2a50: 0007889b sext.w a7,a5 + 2a54: 2605 addiw a2,a2,1 + 2a56: 0016161b slliw a2,a2,0x1 + 2a5a: 1602 slli a2,a2,0x20 + 2a5c: 9201 srli a2,a2,0x20 + 2a5e: 9652 add a2,a2,s4 + 2a60: 00065603 lhu a2,0(a2) n /= 100; - 2a54: 03f7d7bb divuw a5,a5,t6 + 2a64: 03f7d7bb divuw a5,a5,t6 *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 2a58: 00ca9023 sh a2,0(s5) + 2a68: 00ca9023 sh a2,0(s5) } while (n); - 2a5c: 06300613 li a2,99 - 2a60: fd166de3 bltu a2,a7,2a3a - 2a64: 7882 ld a7,32(sp) + 2a6c: 06300613 li a2,99 + 2a70: fd166de3 bltu a2,a7,2a4a + 2a74: 7882 ld a7,32(sp) if (n64 == 0) { - 2a66: f20f11e3 bnez t5,2988 - 2a6a: bf2d j 29a4 + 2a76: f20f11e3 bnez t5,2998 + 2a7a: bf2d j 29b4 *(stbsp__uint32 *)bf = 0x20202020; - 2a6c: 20202b37 lui s6,0x20202 + 2a7c: 20202b37 lui s6,0x20202 stbsp__cb_buf_clamp(i, fw); - 2a70: 854a mv a0,s2 + 2a80: 854a mv a0,s2 *bf++ = ' '; - 2a72: 02000a93 li s5,32 + 2a82: 02000a93 li s5,32 *(stbsp__uint32 *)bf = 0x20202020; - 2a76: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201fa7b8> + 2a86: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201fa798> stbsp__chk_cb_buf(1); - 2a7a: 1fe00a13 li s4,510 + 2a8a: 1fe00a13 li s4,510 stbsp__cb_buf_clamp(i, fw); - 2a7e: 20000b93 li s7,512 - 2a82: 891a mv s2,t1 - 2a84: 0a098063 beqz s3,2b24 - 2a88: 40a40633 sub a2,s0,a0 - 2a8c: 40cb87bb subw a5,s7,a2 - 2a90: 873e mv a4,a5 - 2a92: 00f95363 bge s2,a5,2a98 - 2a96: 874a mv a4,s2 - 2a98: 0007079b sext.w a5,a4 + 2a8e: 20000b93 li s7,512 + 2a92: 891a mv s2,t1 + 2a94: 0a098063 beqz s3,2b34 + 2a98: 40a40633 sub a2,s0,a0 + 2a9c: 40cb87bb subw a5,s7,a2 + 2aa0: 873e mv a4,a5 + 2aa2: 00f95363 bge s2,a5,2aa8 + 2aa6: 874a mv a4,s2 + 2aa8: 0007079b sext.w a5,a4 fw -= i; - 2a9c: 40e9093b subw s2,s2,a4 + 2aac: 40e9093b subw s2,s2,a4 while (i) { - 2aa0: e799 bnez a5,2aae - 2aa2: a281 j 2be2 + 2ab0: e799 bnez a5,2abe + 2ab2: a281 j 2bf2 *bf++ = ' '; - 2aa4: 01540023 sb s5,0(s0) + 2ab4: 01540023 sb s5,0(s0) --i; - 2aa8: 37fd addiw a5,a5,-1 + 2ab8: 37fd addiw a5,a5,-1 *bf++ = ' '; - 2aaa: 0405 addi s0,s0,1 + 2aba: 0405 addi s0,s0,1 while (i) { - 2aac: cba1 beqz a5,2afc + 2abc: cba1 beqz a5,2b0c if ((((stbsp__uintptr)bf) & 3) == 0) - 2aae: 00347713 andi a4,s0,3 - 2ab2: fb6d bnez a4,2aa4 + 2abe: 00347713 andi a4,s0,3 + 2ac2: fb6d bnez a4,2ab4 while (i >= 4) { - 2ab4: 470d li a4,3 - 2ab6: 40f75363 bge a4,a5,2ebc - 2aba: ffc7869b addiw a3,a5,-4 - 2abe: 0026d79b srliw a5,a3,0x2 - 2ac2: 0017871b addiw a4,a5,1 - 2ac6: 070a slli a4,a4,0x2 - 2ac8: 9722 add a4,a4,s0 + 2ac4: 470d li a4,3 + 2ac6: 40f75363 bge a4,a5,2ecc + 2aca: ffc7869b addiw a3,a5,-4 + 2ace: 0026d79b srliw a5,a3,0x2 + 2ad2: 0017871b addiw a4,a5,1 + 2ad6: 070a slli a4,a4,0x2 + 2ad8: 9722 add a4,a4,s0 *(stbsp__uint32 *)bf = 0x20202020; - 2aca: 01642023 sw s6,0(s0) + 2ada: 01642023 sw s6,0(s0) bf += 4; - 2ace: 0411 addi s0,s0,4 + 2ade: 0411 addi s0,s0,4 while (i >= 4) { - 2ad0: fee41de3 bne s0,a4,2aca - 2ad4: 0027979b slliw a5,a5,0x2 - 2ad8: 40f687bb subw a5,a3,a5 + 2ae0: fee41de3 bne s0,a4,2ada + 2ae4: 0027979b slliw a5,a5,0x2 + 2ae8: 40f687bb subw a5,a3,a5 while (i--) - 2adc: fff7869b addiw a3,a5,-1 - 2ae0: cf91 beqz a5,2afc - 2ae2: 9fa1 addw a5,a5,s0 + 2aec: fff7869b addiw a3,a5,-1 + 2af0: cf91 beqz a5,2b0c + 2af2: 9fa1 addw a5,a5,s0 *bf++ = ' '; - 2ae4: 0705 addi a4,a4,1 + 2af4: 0705 addi a4,a4,1 while (i--) - 2ae6: 0007061b sext.w a2,a4 + 2af6: 0007061b sext.w a2,a4 *bf++ = ' '; - 2aea: ff570fa3 sb s5,-1(a4) + 2afa: ff570fa3 sb s5,-1(a4) while (i--) - 2aee: fec79be3 bne a5,a2,2ae4 - 2af2: 2685 addiw a3,a3,1 - 2af4: 02069793 slli a5,a3,0x20 - 2af8: 9381 srli a5,a5,0x20 - 2afa: 943e add s0,s0,a5 + 2afe: fec79be3 bne a5,a2,2af4 + 2b02: 2685 addiw a3,a3,1 + 2b04: 02069793 slli a5,a3,0x20 + 2b08: 9381 srli a5,a5,0x20 + 2b0a: 943e add s0,s0,a5 stbsp__chk_cb_buf(1); - 2afc: 00098f63 beqz s3,2b1a - 2b00: 40a4063b subw a2,s0,a0 - 2b04: 00ca5b63 bge s4,a2,2b1a - 2b08: 65a2 ld a1,8(sp) - 2b0a: e81e sd t2,16(sp) - 2b0c: 00cd0d3b addw s10,s10,a2 - 2b10: 9982 jalr s3 - 2b12: 80050be3 beqz a0,2328 - 2b16: 63c2 ld t2,16(sp) - 2b18: 842a mv s0,a0 + 2b0c: 00098f63 beqz s3,2b2a + 2b10: 40a4063b subw a2,s0,a0 + 2b14: 00ca5b63 bge s4,a2,2b2a + 2b18: 65a2 ld a1,8(sp) + 2b1a: e81e sd t2,16(sp) + 2b1c: 00cd0d3b addw s10,s10,a2 + 2b20: 9982 jalr s3 + 2b22: 80050be3 beqz a0,2338 + 2b26: 63c2 ld t2,16(sp) + 2b28: 842a mv s0,a0 while (fw) { - 2b1a: f60915e3 bnez s2,2a84 - 2b1e: 892a mv s2,a0 - 2b20: f21fe06f j 1a40 + 2b2a: f60915e3 bnez s2,2a94 + 2b2e: 892a mv s2,a0 + 2b30: f21fe06f j 1a50 stbsp__cb_buf_clamp(i, fw); - 2b24: 87ca mv a5,s2 + 2b34: 87ca mv a5,s2 fw -= i; - 2b26: 4901 li s2,0 + 2b36: 4901 li s2,0 if ((((stbsp__uintptr)bf) & 3) == 0) - 2b28: b759 j 2aae + 2b38: b759 j 2abe } else if (fl & STBSP__LEADINGPLUS) { - 2b2a: 002e7713 andi a4,t3,2 - 2b2e: 94070663 beqz a4,1c7a + 2b3a: 002e7713 andi a4,t3,2 + 2b3e: 94070663 beqz a4,1c8a sign[0] = 1; - 2b32: 670d lui a4,0x3 - 2b34: b0170713 addi a4,a4,-1279 # 2b01 - 2b38: 06e11423 sh a4,104(sp) - 2b3c: 93eff06f j 1c7a + 2b42: 670d lui a4,0x3 + 2b44: b0170713 addi a4,a4,-1279 # 2b01 + 2b48: 06e11423 sh a4,104(sp) + 2b4c: 93eff06f j 1c8a if (((stbsp__uintptr)sn & 3) == 0) - 2b40: 87d6 mv a5,s5 + 2b50: 87d6 mv a5,s5 while (limit >= 4) { - 2b42: 470d li a4,3 - 2b44: 22d77763 bgeu a4,a3,2d72 + 2b52: 470d li a4,3 + 2b54: 22d77763 bgeu a4,a3,2d82 if ((v - 0x01010101) & (~v) & 0x80808080UL) - 2b48: feff05b7 lui a1,0xfeff0 - 2b4c: 80808637 lui a2,0x80808 - 2b50: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8697> - 2b54: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff80800818> + 2b58: feff05b7 lui a1,0xfeff0 + 2b5c: 80808637 lui a2,0x80808 + 2b60: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8677> + 2b64: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff808007f8> while (limit >= 4) { - 2b58: 480d li a6,3 - 2b5a: a029 j 2b64 + 2b68: 480d li a6,3 + 2b6a: a029 j 2b74 limit -= 4; - 2b5c: 36f1 addiw a3,a3,-4 + 2b6c: 36f1 addiw a3,a3,-4 sn += 4; - 2b5e: 0791 addi a5,a5,4 + 2b6e: 0791 addi a5,a5,4 while (limit >= 4) { - 2b60: 20d87963 bgeu a6,a3,2d72 + 2b70: 20d87963 bgeu a6,a3,2d82 stbsp__uint32 v = *(stbsp__uint32 *)sn; - 2b64: 4398 lw a4,0(a5) + 2b74: 4398 lw a4,0(a5) if ((v - 0x01010101) & (~v) & 0x80808080UL) - 2b66: 00b7053b addw a0,a4,a1 - 2b6a: fff74713 not a4,a4 - 2b6e: 8f69 and a4,a4,a0 - 2b70: 8f71 and a4,a4,a2 - 2b72: 2701 sext.w a4,a4 - 2b74: d765 beqz a4,2b5c - 2b76: 02069713 slli a4,a3,0x20 - 2b7a: 9301 srli a4,a4,0x20 - 2b7c: 973e add a4,a4,a5 - 2b7e: a021 j 2b86 + 2b76: 00b7053b addw a0,a4,a1 + 2b7a: fff74713 not a4,a4 + 2b7e: 8f69 and a4,a4,a0 + 2b80: 8f71 and a4,a4,a2 + 2b82: 2701 sext.w a4,a4 + 2b84: d765 beqz a4,2b6c + 2b86: 02069713 slli a4,a3,0x20 + 2b8a: 9301 srli a4,a4,0x20 + 2b8c: 973e add a4,a4,a5 + 2b8e: a021 j 2b96 ++sn; - 2b80: 0785 addi a5,a5,1 + 2b90: 0785 addi a5,a5,1 while (limit && *sn) { - 2b82: 00e78663 beq a5,a4,2b8e - 2b86: 0007c683 lbu a3,0(a5) - 2b8a: fafd bnez a3,2b80 - 2b8c: 873e mv a4,a5 + 2b92: 00e78663 beq a5,a4,2b9e + 2b96: 0007c683 lbu a3,0(a5) + 2b9a: fafd bnez a3,2b90 + 2b9c: 873e mv a4,a5 return (stbsp__uint32)(sn - s); - 2b8e: 41570733 sub a4,a4,s5 - 2b92: 0007069b sext.w a3,a4 + 2b9e: 41570733 sub a4,a4,s5 + 2ba2: 0007069b sext.w a3,a4 if (pr < (stbsp__int32)l) - 2b96: fff6c793 not a5,a3 - 2b9a: 97fd srai a5,a5,0x3f - 2b9c: 8f7d and a4,a4,a5 - 2b9e: 0007079b sext.w a5,a4 + 2ba6: fff6c793 not a5,a3 + 2baa: 97fd srai a5,a5,0x3f + 2bac: 8f7d and a4,a4,a5 + 2bae: 0007079b sext.w a5,a4 n = pr + lead[0] + tail[0] + tz; - 2ba2: 863e mv a2,a5 + 2bb2: 863e mv a2,a5 pr -= l; - 2ba4: 9f15 subw a4,a4,a3 + 2bb4: 9f15 subw a4,a4,a3 return (stbsp__uint32)(sn - s); - 2ba6: d2eff06f j 20d4 + 2bb6: d2eff06f j 20e4 for (n = 1; n < l; n++) - 2baa: 4605 li a2,1 - 2bac: aed663e3 bltu a2,a3,2692 - 2bb0: 0c210613 addi a2,sp,194 - 2bb4: bcf5 j 26b0 + 2bba: 4605 li a2,1 + 2bbc: aed663e3 bltu a2,a3,26a2 + 2bc0: 0c210613 addi a2,sp,194 + 2bc4: bcf5 j 26c0 l = pr + 1; - 2bb6: 4685 li a3,1 + 2bc6: 4685 li a3,1 if ((l - 1) > (stbsp__uint32)pr) - 2bb8: 4501 li a0,0 + 2bc8: 4501 li a0,0 *s++ = sn[0]; - 2bba: 0c110613 addi a2,sp,193 - 2bbe: bccd j 26b0 - 2bc0: 4591 li a1,4 - 2bc2: 4f91 li t6,4 + 2bca: 0c110613 addi a2,sp,193 + 2bce: bccd j 26c0 + 2bd0: 4591 li a1,4 + 2bd2: 4f91 li t6,4 n = (dp >= 100) ? 5 : 4; - 2bc4: 4e91 li t4,4 - 2bc6: be21 j 26de - 2bc8: 4a85 li s5,1 - 2bca: 80000737 lui a4,0x80000 + 2bd4: 4e91 li t4,4 + 2bd6: be21 j 26ee + 2bd8: 4a85 li s5,1 + 2bda: 80000737 lui a4,0x80000 pr = 1; // default is 6 - 2bce: 4a05 li s4,1 - 2bd0: 920ff06f j 1cf0 + 2bde: 4a05 li s4,1 + 2be0: 920ff06f j 1d00 dp = (n64) ? -1022 : 0; - 2bd4: 4601 li a2,0 - 2bd6: c119 beqz a0,2bdc - 2bd8: c0200613 li a2,-1022 + 2be4: 4601 li a2,0 + 2be6: c119 beqz a0,2bec + 2be8: c0200613 li a2,-1022 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 2bdc: 872a mv a4,a0 - 2bde: a3aff06f j 1e18 + 2bec: 872a mv a4,a0 + 2bee: a3aff06f j 1e28 stbsp__chk_cb_buf(1); - 2be2: 2601 sext.w a2,a2 - 2be4: 1fe00793 li a5,510 - 2be8: f2c7c0e3 blt a5,a2,2b08 - 2bec: bd61 j 2a84 + 2bf2: 2601 sext.w a2,a2 + 2bf4: 1fe00793 li a5,510 + 2bf8: f2c7c0e3 blt a5,a2,2b18 + 2bfc: bd61 j 2a94 tail[0] = (char)n; - 2bee: 4795 li a5,5 + 2bfe: 4795 li a5,5 tail[n] = '0' + dp % 10; - 2bf0: 06b10aa3 sb a1,117(sp) + 2c00: 06b10aa3 sb a1,117(sp) tail[0] = (char)n; - 2bf4: 06f10823 sb a5,112(sp) + 2c04: 06f10823 sb a5,112(sp) tail[n] = '0' + dp % 10; - 2bf8: 4815 li a6,5 - 2bfa: 4f95 li t6,5 + 2c08: 4815 li a6,5 + 2c0a: 4f95 li t6,5 n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 2bfc: 4595 li a1,5 - 2bfe: b935 j 283a + 2c0c: 4595 li a1,5 + 2c0e: b935 j 284a l = pr + dp; - 2c00: 011786bb addw a3,a5,a7 - 2c04: d0b6 sw a3,96(sp) - 2c06: b6d5 j 27ea + 2c10: 011786bb addw a3,a5,a7 + 2c14: d0b6 sw a3,96(sp) + 2c16: b6d5 j 27fa s = (char *)"null"; - 2c08: 00002a97 auipc s5,0x2 - 2c0c: 4a8a8a93 addi s5,s5,1192 # 50b0 <_GLOBAL__sub_I__ZSt3cin+0xd0> - 2c10: c80ff06f j 2090 + 2c18: 00002a97 auipc s5,0x2 + 2c1c: 4b8a8a93 addi s5,s5,1208 # 50d0 <_GLOBAL__sub_I__ZSt3cin+0xe0> + 2c20: c80ff06f j 20a0 } else if (fl & STBSP__LEADINGPLUS) { - 2c14: 002e7793 andi a5,t3,2 - 2c18: 1c079c63 bnez a5,2df0 + 2c24: 002e7793 andi a5,t3,2 + 2c28: 1c079c63 bnez a5,2e00 sign[0] = 0; - 2c1c: 4689 li a3,2 - 2c1e: 4a09 li s4,2 - 2c20: 4805 li a6,1 - 2c22: 9e8ff06f j 1e0a + 2c2c: 4689 li a3,2 + 2c2e: 4a09 li s4,2 + 2c30: 4805 li a6,1 + 2c32: 9e8ff06f j 1e1a sign[0] = 1; - 2c26: 670d lui a4,0x3 - 2c28: b0170713 addi a4,a4,-1279 # 2b01 - 2c2c: 06e11423 sh a4,104(sp) - 2c30: b86ff06f j 1fb6 + 2c36: 670d lui a4,0x3 + 2c38: b0170713 addi a4,a4,-1279 # 2b01 + 2c3c: 06e11423 sh a4,104(sp) + 2c40: b86ff06f j 1fc6 pr = 0; - 2c34: 4881 li a7,0 - 2c36: f1ffe06f j 1b54 + 2c44: 4881 li a7,0 + 2c46: f1ffe06f j 1b64 *s++ = '0'; - 2c3a: 03000713 li a4,48 - 2c3e: 0ce10023 sb a4,192(sp) + 2c4a: 03000713 li a4,48 + 2c4e: 0ce10023 sb a4,192(sp) if (pr) - 2c42: 1a088c63 beqz a7,2dfa + 2c52: 1a088c63 beqz a7,2e0a *s++ = stbsp__period; - 2c46: 00004717 auipc a4,0x4 - 2c4a: df674703 lbu a4,-522(a4) # 6a3c + 2c56: 00004717 auipc a4,0x4 + 2c5a: e0674703 lbu a4,-506(a4) # 6a5c n = -dp; - 2c4e: 40f007bb negw a5,a5 + 2c5e: 40f007bb negw a5,a5 *s++ = stbsp__period; - 2c52: 0ce100a3 sb a4,193(sp) + 2c62: 0ce100a3 sb a4,193(sp) if ((stbsp__int32)n > pr) - 2c56: 0007871b sext.w a4,a5 - 2c5a: 00e8d363 bge a7,a4,2c60 - 2c5e: 87c6 mv a5,a7 - 2c60: 0007871b sext.w a4,a5 + 2c66: 0007871b sext.w a4,a5 + 2c6a: 00e8d363 bge a7,a4,2c70 + 2c6e: 87c6 mv a5,a7 + 2c70: 0007871b sext.w a4,a5 if ((stbsp__int32)(l + n) > pr) - 2c64: 00d7833b addw t1,a5,a3 - 2c68: 883a mv a6,a4 + 2c74: 00d7833b addw t1,a5,a3 + 2c78: 883a mv a6,a4 while (i) { - 2c6a: 0c210793 addi a5,sp,194 + 2c7a: 0c210793 addi a5,sp,194 *s++ = '0'; - 2c6e: 03000513 li a0,48 + 2c7e: 03000513 li a0,48 while (i) { - 2c72: e711 bnez a4,2c7e - 2c74: a271 j 2e00 + 2c82: e711 bnez a4,2c8e + 2c84: a271 j 2e10 if ((((stbsp__uintptr)s) & 3) == 0) - 2c76: 0037f613 andi a2,a5,3 - 2c7a: 18060563 beqz a2,2e04 + 2c86: 0037f613 andi a2,a5,3 + 2c8a: 18060563 beqz a2,2e14 *s++ = '0'; - 2c7e: 85ba mv a1,a4 - 2c80: 00a78023 sb a0,0(a5) + 2c8e: 85ba mv a1,a4 + 2c90: 00a78023 sb a0,0(a5) --i; - 2c84: 377d addiw a4,a4,-1 + 2c94: 377d addiw a4,a4,-1 *s++ = '0'; - 2c86: 0785 addi a5,a5,1 + 2c96: 0785 addi a5,a5,1 while (i) { - 2c88: f77d bnez a4,2c76 + 2c98: f77d bnez a4,2c86 if ((stbsp__int32)(l + n) > pr) - 2c8a: 0003071b sext.w a4,t1 - 2c8e: 4108863b subw a2,a7,a6 - 2c92: 00e8d563 bge a7,a4,2c9c + 2c9a: 0003071b sext.w a4,t1 + 2c9e: 4108863b subw a2,a7,a6 + 2ca2: 00e8d563 bge a7,a4,2cac l = pr - n; - 2c96: 0006069b sext.w a3,a2 - 2c9a: d0b2 sw a2,96(sp) + 2ca6: 0006069b sext.w a3,a2 + 2caa: d0b2 sw a2,96(sp) while (i) { - 2c9c: c68d beqz a3,2cc6 - 2c9e: 7566 ld a0,120(sp) - 2ca0: 02069813 slli a6,a3,0x20 - 2ca4: 02085813 srli a6,a6,0x20 - 2ca8: 01078eb3 add t4,a5,a6 - 2cac: 85aa mv a1,a0 - 2cae: 873e mv a4,a5 + 2cac: c68d beqz a3,2cd6 + 2cae: 7566 ld a0,120(sp) + 2cb0: 02069813 slli a6,a3,0x20 + 2cb4: 02085813 srli a6,a6,0x20 + 2cb8: 01078eb3 add t4,a5,a6 + 2cbc: 85aa mv a1,a0 + 2cbe: 873e mv a4,a5 *s++ = *sn++; - 2cb0: 0005c883 lbu a7,0(a1) - 2cb4: 0705 addi a4,a4,1 + 2cc0: 0005c883 lbu a7,0(a1) + 2cc4: 0705 addi a4,a4,1 while (i) { - 2cb6: 0585 addi a1,a1,1 + 2cc6: 0585 addi a1,a1,1 *s++ = *sn++; - 2cb8: ff170fa3 sb a7,-1(a4) + 2cc8: ff170fa3 sb a7,-1(a4) while (i) { - 2cbc: ffd71ae3 bne a4,t4,2cb0 - 2cc0: 9542 add a0,a0,a6 - 2cc2: 97c2 add a5,a5,a6 - 2cc4: fcaa sd a0,120(sp) + 2ccc: ffd71ae3 bne a4,t4,2cc0 + 2cd0: 9542 add a0,a0,a6 + 2cd2: 97c2 add a5,a5,a6 + 2cd4: fcaa sd a0,120(sp) l = (stbsp__uint32)(s - (num + 64)); - 2cc6: 0c010a93 addi s5,sp,192 + 2cd6: 0c010a93 addi s5,sp,192 cs = 1 + (3 << 24); // how many tens did we write (for commas below) - 2cca: 030002b7 lui t0,0x3000 + 2cda: 030002b7 lui t0,0x3000 tz = pr - (n + l); - 2cce: 40d608bb subw a7,a2,a3 + 2cde: 40d608bb subw a7,a2,a3 l = (stbsp__uint32)(s - (num + 64)); - 2cd2: 415787b3 sub a5,a5,s5 + 2ce2: 415787b3 sub a5,a5,s5 cs = 1 + (3 << 24); // how many tens did we write (for commas below) - 2cd6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8799> - 2cd8: fbcff06f j 2494 + 2ce6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2ce8: fbcff06f j 24a4 *--s = '0'; - 2cdc: 03000793 li a5,48 - 2ce0: fefa8fa3 sb a5,-1(s5) + 2cec: 03000793 li a5,48 + 2cf0: fefa8fa3 sb a5,-1(s5) l = 1; - 2ce4: 030002b7 lui t0,0x3000 - 2ce8: 4785 li a5,1 - 2cea: d0be sw a5,96(sp) + 2cf4: 030002b7 lui t0,0x3000 + 2cf8: 4785 li a5,1 + 2cfa: d0be sw a5,96(sp) *--s = '0'; - 2cec: 1afd addi s5,s5,-1 + 2cfc: 1afd addi s5,s5,-1 l = 1; - 2cee: 4605 li a2,1 - 2cf0: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8799> - 2cf2: 4685 li a3,1 - 2cf4: b9dd j 29ea + 2cfe: 4605 li a2,1 + 2d00: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2d02: 4685 li a3,1 + 2d04: b9dd j 29fa } else if (fl & STBSP__LEADINGSPACE) { - 2cf6: 004e7713 andi a4,t3,4 - 2cfa: e74d bnez a4,2da4 + 2d06: 004e7713 andi a4,t3,4 + 2d0a: e74d bnez a4,2db4 } else if (fl & STBSP__LEADINGPLUS) { - 2cfc: 8b89 andi a5,a5,2 - 2cfe: efd9 bnez a5,2d9c + 2d0c: 8b89 andi a5,a5,2 + 2d0e: efd9 bnez a5,2dac sign[0] = 0; - 2d00: 06010423 sb zero,104(sp) - 2d04: 4a01 li s4,0 - 2d06: b9c9 j 29d8 + 2d10: 06010423 sb zero,104(sp) + 2d14: 4a01 li s4,0 + 2d16: b9c9 j 29e8 if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) - 2d08: 051c addi a5,sp,640 - 2d0a: cafa89e3 beq s5,a5,29bc + 2d18: 051c addi a5,sp,640 + 2d1a: cafa89e3 beq s5,a5,29cc ++s; - 2d0e: 0a85 addi s5,s5,1 + 2d1e: 0a85 addi s5,s5,1 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 2d10: 415786bb subw a3,a5,s5 - 2d14: b165 j 29bc + 2d20: 415786bb subw a3,a5,s5 + 2d24: b165 j 29cc n = dp - n; - 2d16: 40ce87bb subw a5,t4,a2 + 2d26: 40ce87bb subw a5,t4,a2 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 2d1a: 12030e63 beqz t1,2e56 + 2d2a: 12030e63 beqz t1,2e66 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2d1e: 4511 li a0,4 - 2d20: 03000613 li a2,48 + 2d2e: 4511 li a0,4 + 2d30: 03000613 li a2,48 *s++ = stbsp__comma; - 2d24: 00170693 addi a3,a4,1 + 2d34: 00170693 addi a3,a4,1 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2d28: 00030563 beqz t1,2d32 - 2d2c: 2585 addiw a1,a1,1 - 2d2e: 00a58963 beq a1,a0,2d40 - 2d32: 8736 mv a4,a3 + 2d38: 00030563 beqz t1,2d42 + 2d3c: 2585 addiw a1,a1,1 + 2d3e: 00a58963 beq a1,a0,2d50 + 2d42: 8736 mv a4,a3 --n; - 2d34: 37fd addiw a5,a5,-1 - 2d36: fec70fa3 sb a2,-1(a4) + 2d44: 37fd addiw a5,a5,-1 + 2d46: fec70fa3 sb a2,-1(a4) while (n) { - 2d3a: f7ed bnez a5,2d24 - 2d3c: f38ff06f j 2474 - 2d40: fe568fa3 sb t0,-1(a3) + 2d4a: f7ed bnez a5,2d34 + 2d4c: f38ff06f j 2484 + 2d50: fe568fa3 sb t0,-1(a3) *s++ = stbsp__comma; - 2d44: 0709 addi a4,a4,2 + 2d54: 0709 addi a4,a4,2 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 2d46: 4585 li a1,1 - 2d48: b7f5 j 2d34 + 2d56: 4585 li a1,1 + 2d58: b7f5 j 2d44 sign[0] = 0; - 2d4a: 06010423 sb zero,104(sp) - 2d4e: f1dfe06f j 1c6a + 2d5a: 06010423 sb zero,104(sp) + 2d5e: f1dfe06f j 1c7a tail[idx + 1] = "_kMGT"[fl >> 24]; - 2d52: 00002697 auipc a3,0x2 - 2d56: 36e68693 addi a3,a3,878 # 50c0 <_GLOBAL__sub_I__ZSt3cin+0xe0> - 2d5a: 9736 add a4,a4,a3 - 2d5c: 00074683 lbu a3,0(a4) - 2d60: 1088 addi a0,sp,96 - 2d62: 22060713 addi a4,a2,544 - 2d66: 972a add a4,a4,a0 - 2d68: ded70823 sb a3,-528(a4) + 2d62: 00002697 auipc a3,0x2 + 2d66: 37e68693 addi a3,a3,894 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0xf0> + 2d6a: 9736 add a4,a4,a3 + 2d6c: 00074683 lbu a3,0(a4) + 2d70: 1088 addi a0,sp,96 + 2d72: 22060713 addi a4,a2,544 + 2d76: 972a add a4,a4,a0 + 2d78: ded70823 sb a3,-528(a4) idx++; - 2d6c: 8fb2 mv t6,a2 - 2d6e: fb0ff06f j 251e + 2d7c: 8fb2 mv t6,a2 + 2d7e: fb0ff06f j 252e while (limit && *sn) { - 2d72: e00692e3 bnez a3,2b76 - 2d76: bd19 j 2b8c + 2d82: e00692e3 bnez a3,2b86 + 2d86: bd19 j 2b9c pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 2d78: 0008071b sext.w a4,a6 - 2d7c: 86c2 mv a3,a6 - 2d7e: 88d2 mv a7,s4 + 2d88: 0008071b sext.w a4,a6 + 2d8c: 86c2 mv a3,a6 + 2d8e: 88d2 mv a7,s4 pr = -dp + ((pr > (stbsp__int32)l) ? (stbsp__int32) l : pr); - 2d80: 863a mv a2,a4 - 2d82: 00e8d363 bge a7,a4,2d88 - 2d86: 8646 mv a2,a7 - 2d88: 40f608bb subw a7,a2,a5 - 2d8c: 814ff06f j 1da0 + 2d90: 863a mv a2,a4 + 2d92: 00e8d363 bge a7,a4,2d98 + 2d96: 8646 mv a2,a7 + 2d98: 40f608bb subw a7,a2,a5 + 2d9c: 814ff06f j 1db0 divisor = 1000.0f; - 2d90: 00003797 auipc a5,0x3 - 2d94: ad07b787 fld fa5,-1328(a5) # 5860 - 2d98: dd5fe06f j 1b6c - 2d9c: 678d lui a5,0x3 - 2d9e: b017879b addiw a5,a5,-1279 # 2b01 - 2da2: b13d j 29d0 - 2da4: 6789 lui a5,0x2 - 2da6: 2785 addiw a5,a5,1 # 2001 - 2da8: b125 j 29d0 + 2da0: 00003797 auipc a5,0x3 + 2da4: ae07b787 fld fa5,-1312(a5) # 5880 + 2da8: dd5fe06f j 1b7c + 2dac: 678d lui a5,0x3 + 2dae: b017879b addiw a5,a5,-1279 # 2b01 + 2db2: b13d j 29e0 + 2db4: 6789 lui a5,0x2 + 2db6: 2785 addiw a5,a5,1 # 2001 + 2db8: b125 j 29e0 *s++ = stbsp__period; - 2daa: 00004517 auipc a0,0x4 - 2dae: c9254503 lbu a0,-878(a0) # 6a3c + 2dba: 00004517 auipc a0,0x4 + 2dbe: ca254503 lbu a0,-862(a0) # 6a5c sn = s; - 2db2: 0c210793 addi a5,sp,194 + 2dc2: 0c210793 addi a5,sp,194 n = pr; - 2db6: 0008869b sext.w a3,a7 + 2dc6: 0008869b sext.w a3,a7 *s++ = stbsp__period; - 2dba: 0ca100a3 sb a0,193(sp) + 2dca: 0ca100a3 sb a0,193(sp) sn = s; - 2dbe: fcbe sd a5,120(sp) + 2dce: fcbe sd a5,120(sp) if (n > 13) - 2dc0: 4535 li a0,13 + 2dd0: 4535 li a0,13 n64 <<= 4; - 2dc2: 0712 slli a4,a4,0x4 + 2dd2: 0712 slli a4,a4,0x4 if (n > 13) - 2dc4: 8836 mv a6,a3 - 2dc6: 00d57363 bgeu a0,a3,2dcc - 2dca: 4835 li a6,13 - 2dcc: 0008051b sext.w a0,a6 + 2dd4: 8836 mv a6,a3 + 2dd6: 00d57363 bgeu a0,a3,2ddc + 2dda: 4835 li a6,13 + 2ddc: 0008051b sext.w a0,a6 while (n--) { - 2dd0: 387d addiw a6,a6,-1 + 2de0: 387d addiw a6,a6,-1 if (pr > (stbsp__int32)n) - 2dd2: af1542e3 blt a0,a7,28b6 + 2de2: af1542e3 blt a0,a7,28c6 tz = 0; - 2dd6: 4881 li a7,0 - 2dd8: b4cd j 28ba + 2de6: 4881 li a7,0 + 2de8: b4cd j 28ca while (n < l) { - 2dda: 87ba mv a5,a4 - 2ddc: bc1d j 2812 + 2dea: 87ba mv a5,a4 + 2dec: bc1d j 2822 tail[0] = (char)n; - 2dde: 478d li a5,3 - 2de0: 06f10823 sb a5,112(sp) + 2dee: 478d li a5,3 + 2df0: 06f10823 sb a5,112(sp) tail[n] = '0' + dp % 10; - 2de4: 06b109a3 sb a1,115(sp) - 2de8: 480d li a6,3 - 2dea: 4f8d li t6,3 - 2dec: 8e4ff06f j 1ed0 - 2df0: 678d lui a5,0x3 - 2df2: b017879b addiw a5,a5,-1279 # 2b01 - 2df6: 80aff06f j 1e00 + 2df4: 06b109a3 sb a1,115(sp) + 2df8: 480d li a6,3 + 2dfa: 4f8d li t6,3 + 2dfc: 8e4ff06f j 1ee0 + 2e00: 678d lui a5,0x3 + 2e02: b017879b addiw a5,a5,-1279 # 2b01 + 2e06: 80aff06f j 1e10 if (pr) - 2dfa: 8336 mv t1,a3 + 2e0a: 8336 mv t1,a3 *s++ = '0'; - 2dfc: 0c110793 addi a5,sp,193 + 2e0c: 0c110793 addi a5,sp,193 while (i) { - 2e00: 4801 li a6,0 - 2e02: b561 j 2c8a + 2e10: 4801 li a6,0 + 2e12: b561 j 2c9a while (i >= 4) { - 2e04: 460d li a2,3 - 2e06: 04e65663 bge a2,a4,2e52 - 2e0a: ffb5871b addiw a4,a1,-5 - 2e0e: 0027559b srliw a1,a4,0x2 - 2e12: 0015861b addiw a2,a1,1 - 2e16: 060a slli a2,a2,0x2 + 2e14: 460d li a2,3 + 2e16: 04e65663 bge a2,a4,2e62 + 2e1a: ffb5871b addiw a4,a1,-5 + 2e1e: 0027559b srliw a1,a4,0x2 + 2e22: 0015861b addiw a2,a1,1 + 2e26: 060a slli a2,a2,0x2 *(stbsp__uint32 *)s = 0x30303030; - 2e18: 30303537 lui a0,0x30303 - 2e1c: 963e add a2,a2,a5 - 2e1e: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fb7c8> - 2e22: c388 sw a0,0(a5) + 2e28: 30303537 lui a0,0x30303 + 2e2c: 963e add a2,a2,a5 + 2e2e: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + 2e32: c388 sw a0,0(a5) s += 4; - 2e24: 0791 addi a5,a5,4 + 2e34: 0791 addi a5,a5,4 while (i >= 4) { - 2e26: fef61ee3 bne a2,a5,2e22 - 2e2a: 0025959b slliw a1,a1,0x2 - 2e2e: 9f0d subw a4,a4,a1 + 2e36: fef61ee3 bne a2,a5,2e32 + 2e3a: 0025959b slliw a1,a1,0x2 + 2e3e: 9f0d subw a4,a4,a1 while (i) { - 2e30: e4070de3 beqz a4,2c8a + 2e40: e4070de3 beqz a4,2c9a *s++ = '0'; - 2e34: 03000513 li a0,48 + 2e44: 03000513 li a0,48 while (i) { - 2e38: 00f705bb addw a1,a4,a5 + 2e48: 00f705bb addw a1,a4,a5 *s++ = '0'; - 2e3c: 0605 addi a2,a2,1 + 2e4c: 0605 addi a2,a2,1 while (i) { - 2e3e: 00060e9b sext.w t4,a2 + 2e4e: 00060e9b sext.w t4,a2 *s++ = '0'; - 2e42: fea60fa3 sb a0,-1(a2) + 2e52: fea60fa3 sb a0,-1(a2) while (i) { - 2e46: ffd59be3 bne a1,t4,2e3c - 2e4a: 1702 slli a4,a4,0x20 - 2e4c: 9301 srli a4,a4,0x20 - 2e4e: 97ba add a5,a5,a4 - 2e50: bd2d j 2c8a + 2e56: ffd59be3 bne a1,t4,2e4c + 2e5a: 1702 slli a4,a4,0x20 + 2e5c: 9301 srli a4,a4,0x20 + 2e5e: 97ba add a5,a5,a4 + 2e60: bd2d j 2c9a while (i >= 4) { - 2e52: 863e mv a2,a5 - 2e54: b7c5 j 2e34 + 2e62: 863e mv a2,a5 + 2e64: b7c5 j 2e44 if ((((stbsp__uintptr)s) & 3) == 0) - 2e56: 00377693 andi a3,a4,3 - 2e5a: ce81 beqz a3,2e72 + 2e66: 00377693 andi a3,a4,3 + 2e6a: ce81 beqz a3,2e82 *s++ = '0'; - 2e5c: 03000693 li a3,48 - 2e60: 00d70023 sb a3,0(a4) + 2e6c: 03000693 li a3,48 + 2e70: 00d70023 sb a3,0(a4) --n; - 2e64: 37fd addiw a5,a5,-1 + 2e74: 37fd addiw a5,a5,-1 *s++ = '0'; - 2e66: 0705 addi a4,a4,1 + 2e76: 0705 addi a4,a4,1 while (n) { - 2e68: e0078663 beqz a5,2474 + 2e78: e0078663 beqz a5,2484 if ((((stbsp__uintptr)s) & 3) == 0) - 2e6c: 00377613 andi a2,a4,3 - 2e70: fa65 bnez a2,2e60 + 2e7c: 00377613 andi a2,a4,3 + 2e80: fa65 bnez a2,2e70 while (n >= 4) { - 2e72: 468d li a3,3 - 2e74: eaf6f5e3 bgeu a3,a5,2d1e - 2e78: ffc7869b addiw a3,a5,-4 - 2e7c: 0026d69b srliw a3,a3,0x2 - 2e80: 2685 addiw a3,a3,1 - 2e82: 068a slli a3,a3,0x2 + 2e82: 468d li a3,3 + 2e84: eaf6f5e3 bgeu a3,a5,2d2e + 2e88: ffc7869b addiw a3,a5,-4 + 2e8c: 0026d69b srliw a3,a3,0x2 + 2e90: 2685 addiw a3,a3,1 + 2e92: 068a slli a3,a3,0x2 *(stbsp__uint32 *)s = 0x30303030; - 2e84: 30303637 lui a2,0x30303 - 2e88: 96ba add a3,a3,a4 - 2e8a: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fb7c8> - 2e8e: c310 sw a2,0(a4) + 2e94: 30303637 lui a2,0x30303 + 2e98: 96ba add a3,a3,a4 + 2e9a: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fb7a8> + 2e9e: c310 sw a2,0(a4) s += 4; - 2e90: 0711 addi a4,a4,4 + 2ea0: 0711 addi a4,a4,4 while (n >= 4) { - 2e92: fed71ee3 bne a4,a3,2e8e - 2e96: 8b8d andi a5,a5,3 + 2ea2: fed71ee3 bne a4,a3,2e9e + 2ea6: 8b8d andi a5,a5,3 while (n) { - 2e98: e80793e3 bnez a5,2d1e - 2e9c: dd8ff06f j 2474 + 2ea8: e80793e3 bnez a5,2d2e + 2eac: dd8ff06f j 2484 if (((stbsp__uintptr)sn & 3) == 0) - 2ea0: 87d6 mv a5,s5 + 2eb0: 87d6 mv a5,s5 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 2ea2: 56fd li a3,-1 - 2ea4: b155 j 2b48 + 2eb2: 56fd li a3,-1 + 2eb4: b155 j 2b58 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 2ea6: 5775 li a4,-3 - 2ea8: 00e7ce63 blt a5,a4,2ec4 - 2eac: f6fa4663 blt s4,a5,2618 + 2eb6: 5775 li a4,-3 + 2eb8: 00e7ce63 blt a5,a4,2ed4 + 2ebc: f6fa4663 blt s4,a5,2628 if (dp > 0) { - 2eb0: ecf054e3 blez a5,2d78 - 2eb4: 86c2 mv a3,a6 + 2ec0: ecf054e3 blez a5,2d88 + 2ec4: 86c2 mv a3,a6 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 2eb6: 4881 li a7,0 - 2eb8: ee9fe06f j 1da0 + 2ec6: 4881 li a7,0 + 2ec8: ee9fe06f j 1db0 while (i--) - 2ebc: fff7869b addiw a3,a5,-1 - 2ec0: 8722 mv a4,s0 - 2ec2: b105 j 2ae2 + 2ecc: fff7869b addiw a3,a5,-1 + 2ed0: 8722 mv a4,s0 + 2ed2: b105 j 2af2 if (pr > (stbsp__int32)l) - 2ec4: 0008071b sext.w a4,a6 + 2ed4: 0008071b sext.w a4,a6 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2ec8: 7ae6 ld s5,120(sp) + 2ed8: 7ae6 ld s5,120(sp) if (pr > (stbsp__int32)l) - 2eca: 86c2 mv a3,a6 - 2ecc: 88d2 mv a7,s4 - 2ece: f7475d63 bge a4,s4,2648 + 2eda: 86c2 mv a3,a6 + 2edc: 88d2 mv a7,s4 + 2ede: f7475d63 bge a4,s4,2658 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2ed2: 8542 mv a0,a6 - 2ed4: f56ff06f j 262a + 2ee2: 8542 mv a0,a6 + 2ee4: f56ff06f j 263a -0000000000002ed8 : +0000000000002ee8 : { - 2ed8: 715d addi sp,sp,-80 + 2ee8: 715d addi sp,sp,-80 va_start(va, fmt); - 2eda: 02010313 addi t1,sp,32 + 2eea: 02010313 addi t1,sp,32 { - 2ede: f032 sd a2,32(sp) - 2ee0: f436 sd a3,40(sp) - 2ee2: f83a sd a4,48(sp) + 2eee: f032 sd a2,32(sp) + 2ef0: f436 sd a3,40(sp) + 2ef2: f83a sd a4,48(sp) result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); - 2ee4: 86ae mv a3,a1 - 2ee6: 862a mv a2,a0 - 2ee8: 871a mv a4,t1 - 2eea: 4581 li a1,0 - 2eec: 4501 li a0,0 + 2ef4: 86ae mv a3,a1 + 2ef6: 862a mv a2,a0 + 2ef8: 871a mv a4,t1 + 2efa: 4581 li a1,0 + 2efc: 4501 li a0,0 { - 2eee: ec06 sd ra,24(sp) - 2ef0: fc3e sd a5,56(sp) - 2ef2: e0c2 sd a6,64(sp) - 2ef4: e4c6 sd a7,72(sp) + 2efe: ec06 sd ra,24(sp) + 2f00: fc3e sd a5,56(sp) + 2f02: e0c2 sd a6,64(sp) + 2f04: e4c6 sd a7,72(sp) va_start(va, fmt); - 2ef6: e41a sd t1,8(sp) + 2f06: e41a sd t1,8(sp) result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); - 2ef8: bc6fe0ef jal 12be + 2f08: bc6fe0ef jal 12ce } - 2efc: 60e2 ld ra,24(sp) - 2efe: 6161 addi sp,sp,80 - 2f00: 8082 ret + 2f0c: 60e2 ld ra,24(sp) + 2f0e: 6161 addi sp,sp,80 + 2f10: 8082 ret -0000000000002f02 : +0000000000002f12 : { - 2f02: dd010113 addi sp,sp,-560 - 2f06: 22813023 sd s0,544(sp) - 2f0a: 20913c23 sd s1,536(sp) - 2f0e: 22113423 sd ra,552(sp) - 2f12: 84ae mv s1,a1 - 2f14: 842a mv s0,a0 - 2f16: 88b2 mv a7,a2 - 2f18: 8736 mv a4,a3 + 2f12: dd010113 addi sp,sp,-560 + 2f16: 22813023 sd s0,544(sp) + 2f1a: 20913c23 sd s1,536(sp) + 2f1e: 22113423 sd ra,552(sp) + 2f22: 84ae mv s1,a1 + 2f24: 842a mv s0,a0 + 2f26: 88b2 mv a7,a2 + 2f28: 8736 mv a4,a3 if ( (count == 0) && !buf ) - 2f1a: e591 bnez a1,2f26 - 2f1c: c141 beqz a0,2f9c + 2f2a: e591 bnez a1,2f36 + 2f2c: c141 beqz a0,2fac c.buf = buf; - 2f1e: e02a sd a0,0(sp) + 2f2e: e02a sd a0,0(sp) c.count = count; - 2f20: e402 sd zero,8(sp) + 2f30: e402 sd zero,8(sp) return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can - 2f22: 0810 addi a2,sp,16 - 2f24: a089 j 2f66 + 2f32: 0810 addi a2,sp,16 + 2f34: a089 j 2f76 if (len > c->count) - 2f26: 0015a593 slti a1,a1,1 - 2f2a: 40b005bb negw a1,a1 - 2f2e: 8de5 and a1,a1,s1 + 2f36: 0015a593 slti a1,a1,1 + 2f3a: 40b005bb negw a1,a1 + 2f3e: 8de5 and a1,a1,s1 c.buf = buf; - 2f30: e02a sd a0,0(sp) + 2f40: e02a sd a0,0(sp) c.count = count; - 2f32: c426 sw s1,8(sp) + 2f42: c426 sw s1,8(sp) c.length = 0; - 2f34: c602 sw zero,12(sp) + 2f44: c602 sw zero,12(sp) if (len > c->count) - 2f36: 2581 sext.w a1,a1 + 2f46: 2581 sext.w a1,a1 if (len) { - 2f38: 0804d663 bgez s1,2fc4 + 2f48: 0804d663 bgez s1,2fd4 s = buf; - 2f3c: 4781 li a5,0 + 2f4c: 4781 li a5,0 if (buf != c->buf) { - 2f3e: c911 beqz a0,2f52 + 2f4e: c911 beqz a0,2f62 *d++ = *s++; - 2f40: 0007c803 lbu a6,0(a5) - 2f44: 0785 addi a5,a5,1 - 2f46: 00f40533 add a0,s0,a5 - 2f4a: ff050fa3 sb a6,-1(a0) + 2f50: 0007c803 lbu a6,0(a5) + 2f54: 0785 addi a5,a5,1 + 2f56: 00f40533 add a0,s0,a5 + 2f5a: ff050fa3 sb a6,-1(a0) } while (s < se); - 2f4e: feb7e9e3 bltu a5,a1,2f40 + 2f5e: feb7e9e3 bltu a5,a1,2f50 c->count -= len; - 2f52: 40b486bb subw a3,s1,a1 + 2f62: 40b486bb subw a3,s1,a1 c->buf += len; - 2f56: 95a2 add a1,a1,s0 - 2f58: e02e sd a1,0(sp) + 2f66: 95a2 add a1,a1,s0 + 2f68: e02e sd a1,0(sp) c->count -= len; - 2f5a: c436 sw a3,8(sp) + 2f6a: c436 sw a3,8(sp) return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can - 2f5c: 1ff00793 li a5,511 - 2f60: fcd7d1e3 bge a5,a3,2f22 - 2f64: 6602 ld a2,0(sp) + 2f6c: 1ff00793 li a5,511 + 2f70: fcd7d1e3 bge a5,a3,2f32 + 2f74: 6602 ld a2,0(sp) STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__clamp_callback, &c, stbsp__clamp_callback(0,&c,0), fmt, va ); - 2f66: 86c6 mv a3,a7 - 2f68: 858a mv a1,sp - 2f6a: ffffd517 auipc a0,0xffffd - 2f6e: 21650513 addi a0,a0,534 # 180 - 2f72: b4cfe0ef jal 12be + 2f76: 86c6 mv a3,a7 + 2f78: 858a mv a1,sp + 2f7a: ffffd517 auipc a0,0xffffd + 2f7e: 21650513 addi a0,a0,534 # 190 + 2f82: b4cfe0ef jal 12ce l = (int)( c.buf - buf ); - 2f76: 6782 ld a5,0(sp) - 2f78: 9f81 subw a5,a5,s0 + 2f86: 6782 ld a5,0(sp) + 2f88: 9f81 subw a5,a5,s0 if ( l >= count ) // should never be greater, only equal (or less) than count - 2f7a: 0097c463 blt a5,s1,2f82 + 2f8a: 0097c463 blt a5,s1,2f92 l = count - 1; - 2f7e: fff4879b addiw a5,s1,-1 + 2f8e: fff4879b addiw a5,s1,-1 buf[l] = 0; - 2f82: 943e add s0,s0,a5 - 2f84: 00040023 sb zero,0(s0) -} - 2f88: 22813083 ld ra,552(sp) - 2f8c: 22013403 ld s0,544(sp) - 2f90: 4532 lw a0,12(sp) - 2f92: 21813483 ld s1,536(sp) - 2f96: 23010113 addi sp,sp,560 - 2f9a: 8082 ret + 2f92: 943e add s0,s0,a5 + 2f94: 00040023 sb zero,0(s0) +} + 2f98: 22813083 ld ra,552(sp) + 2f9c: 22013403 ld s0,544(sp) + 2fa0: 4532 lw a0,12(sp) + 2fa2: 21813483 ld s1,536(sp) + 2fa6: 23010113 addi sp,sp,560 + 2faa: 8082 ret STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); - 2f9c: 86b2 mv a3,a2 - 2f9e: 858a mv a1,sp - 2fa0: 0810 addi a2,sp,16 - 2fa2: ffffd517 auipc a0,0xffffd - 2fa6: 22c50513 addi a0,a0,556 # 1ce + 2fac: 86b2 mv a3,a2 + 2fae: 858a mv a1,sp + 2fb0: 0810 addi a2,sp,16 + 2fb2: ffffd517 auipc a0,0xffffd + 2fb6: 22c50513 addi a0,a0,556 # 1de c.length = 0; - 2faa: c602 sw zero,12(sp) + 2fba: c602 sw zero,12(sp) STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); - 2fac: b12fe0ef jal 12be -} - 2fb0: 22813083 ld ra,552(sp) - 2fb4: 22013403 ld s0,544(sp) - 2fb8: 4532 lw a0,12(sp) - 2fba: 21813483 ld s1,536(sp) - 2fbe: 23010113 addi sp,sp,560 - 2fc2: 8082 ret - 2fc4: 86a6 mv a3,s1 - 2fc6: bf59 j 2f5c - -0000000000002fc8 : + 2fbc: b12fe0ef jal 12ce +} + 2fc0: 22813083 ld ra,552(sp) + 2fc4: 22013403 ld s0,544(sp) + 2fc8: 4532 lw a0,12(sp) + 2fca: 21813483 ld s1,536(sp) + 2fce: 23010113 addi sp,sp,560 + 2fd2: 8082 ret + 2fd4: 86a6 mv a3,s1 + 2fd6: bf59 j 2f6c + +0000000000002fd8 : { - 2fc8: 715d addi sp,sp,-80 + 2fd8: 715d addi sp,sp,-80 va_start(va, fmt); - 2fca: 02810313 addi t1,sp,40 + 2fda: 02810313 addi t1,sp,40 { - 2fce: f436 sd a3,40(sp) + 2fde: f436 sd a3,40(sp) result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); - 2fd0: 869a mv a3,t1 + 2fe0: 869a mv a3,t1 { - 2fd2: ec06 sd ra,24(sp) - 2fd4: f83a sd a4,48(sp) - 2fd6: fc3e sd a5,56(sp) - 2fd8: e0c2 sd a6,64(sp) - 2fda: e4c6 sd a7,72(sp) + 2fe2: ec06 sd ra,24(sp) + 2fe4: f83a sd a4,48(sp) + 2fe6: fc3e sd a5,56(sp) + 2fe8: e0c2 sd a6,64(sp) + 2fea: e4c6 sd a7,72(sp) va_start(va, fmt); - 2fdc: e41a sd t1,8(sp) + 2fec: e41a sd t1,8(sp) result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); - 2fde: f25ff0ef jal 2f02 + 2fee: f25ff0ef jal 2f12 } - 2fe2: 60e2 ld ra,24(sp) - 2fe4: 6161 addi sp,sp,80 - 2fe6: 8082 ret + 2ff2: 60e2 ld ra,24(sp) + 2ff4: 6161 addi sp,sp,80 + 2ff6: 8082 ret -0000000000002fe8 : +0000000000002ff8 : { - 2fe8: 86ae mv a3,a1 - 2fea: 8732 mv a4,a2 + 2ff8: 86ae mv a3,a1 + 2ffa: 8732 mv a4,a2 return STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); - 2fec: 4581 li a1,0 - 2fee: 862a mv a2,a0 - 2ff0: 4501 li a0,0 - 2ff2: accfe06f j 12be + 2ffc: 4581 li a1,0 + 2ffe: 862a mv a2,a0 + 3000: 4501 li a0,0 + 3002: accfe06f j 12ce -0000000000002ff6 : +0000000000003006 : { - 2ff6: 7119 addi sp,sp,-128 + 3006: 7119 addi sp,sp,-128 va_start(ap, format); - 2ff8: 05010313 addi t1,sp,80 + 3008: 05010313 addi t1,sp,80 { - 2ffc: e0a2 sd s0,64(sp) - 2ffe: fc26 sd s1,56(sp) - 3000: 842a mv s0,a0 - 3002: e8b2 sd a2,80(sp) + 300c: e0a2 sd s0,64(sp) + 300e: fc26 sd s1,56(sp) + 3010: 842a mv s0,a0 + 3012: e8b2 sd a2,80(sp) _vprintf_core(&ctx, format, ap); - 3004: 0808 addi a0,sp,16 + 3014: 0808 addi a0,sp,16 ctx.limit = size; - 3006: 54fd li s1,-1 + 3016: 54fd li s1,-1 _vprintf_core(&ctx, format, ap); - 3008: 861a mv a2,t1 + 3018: 861a mv a2,t1 { - 300a: e486 sd ra,72(sp) - 300c: ecb6 sd a3,88(sp) - 300e: f0ba sd a4,96(sp) - 3010: f4be sd a5,104(sp) - 3012: f8c2 sd a6,112(sp) - 3014: fcc6 sd a7,120(sp) + 301a: e486 sd ra,72(sp) + 301c: ecb6 sd a3,88(sp) + 301e: f0ba sd a4,96(sp) + 3020: f4be sd a5,104(sp) + 3022: f8c2 sd a6,112(sp) + 3024: fcc6 sd a7,120(sp) va_start(ap, format); - 3016: e41a sd t1,8(sp) + 3026: e41a sd t1,8(sp) ctx.buf = str; - 3018: e822 sd s0,16(sp) + 3028: e822 sd s0,16(sp) ctx.limit = size; - 301a: ec26 sd s1,24(sp) + 302a: ec26 sd s1,24(sp) ctx.written = 0; - 301c: f002 sd zero,32(sp) + 302c: f002 sd zero,32(sp) ctx.stream = NULL; - 301e: f402 sd zero,40(sp) + 302e: f402 sd zero,40(sp) _vprintf_core(&ctx, format, ap); - 3020: 02c000ef jal 304c <_vprintf_core.constprop.0.isra.0> + 3030: 02c000ef jal 305c <_vprintf_core.constprop.0.isra.0> if (ctx.written < size) - 3024: 7502 ld a0,32(sp) - 3026: 00950b63 beq a0,s1,303c + 3034: 7502 ld a0,32(sp) + 3036: 00950b63 beq a0,s1,304c str[ctx.written] = '\0'; - 302a: 942a add s0,s0,a0 - 302c: 00040023 sb zero,0(s0) -} - 3030: 60a6 ld ra,72(sp) - 3032: 6406 ld s0,64(sp) - 3034: 74e2 ld s1,56(sp) - 3036: 2501 sext.w a0,a0 - 3038: 6109 addi sp,sp,128 - 303a: 8082 ret - str[size - 1] = '\0'; - 303c: fe040f23 sb zero,-2(s0) + 303a: 942a add s0,s0,a0 + 303c: 00040023 sb zero,0(s0) } 3040: 60a6 ld ra,72(sp) 3042: 6406 ld s0,64(sp) @@ -5725,4955 +5724,4964 @@ done: 3046: 2501 sext.w a0,a0 3048: 6109 addi sp,sp,128 304a: 8082 ret + str[size - 1] = '\0'; + 304c: fe040f23 sb zero,-2(s0) +} + 3050: 60a6 ld ra,72(sp) + 3052: 6406 ld s0,64(sp) + 3054: 74e2 ld s1,56(sp) + 3056: 2501 sext.w a0,a0 + 3058: 6109 addi sp,sp,128 + 305a: 8082 ret -000000000000304c <_vprintf_core.constprop.0.isra.0>: +000000000000305c <_vprintf_core.constprop.0.isra.0>: static int _vprintf_core(_OutContext *ctx, const char *format, va_list ap) - 304c: 7129 addi sp,sp,-320 - 304e: edee sd s11,216(sp) - 3050: fe06 sd ra,312(sp) - 3052: 8dae mv s11,a1 + 305c: 7129 addi sp,sp,-320 + 305e: edee sd s11,216(sp) + 3060: fe06 sd ra,312(sp) + 3062: 8dae mv s11,a1 while (*p) - 3054: 0005c583 lbu a1,0(a1) - 3058: cde9 beqz a1,3132 <_vprintf_core.constprop.0.isra.0+0xe6> - 305a: f626 sd s1,296(sp) - 305c: f24a sd s2,288(sp) - 305e: ee4e sd s3,280(sp) - 3060: e656 sd s5,264(sp) - 3062: f9e2 sd s8,240(sp) - 3064: fa22 sd s0,304(sp) - 3066: ea52 sd s4,272(sp) - 3068: e25a sd s6,256(sp) - 306a: fdde sd s7,248(sp) - 306c: f5e6 sd s9,232(sp) - 306e: f1ea sd s10,224(sp) - 3070: 84aa mv s1,a0 - 3072: 8c32 mv s8,a2 + 3064: 0005c583 lbu a1,0(a1) + 3068: cde9 beqz a1,3142 <_vprintf_core.constprop.0.isra.0+0xe6> + 306a: f626 sd s1,296(sp) + 306c: f24a sd s2,288(sp) + 306e: ee4e sd s3,280(sp) + 3070: e656 sd s5,264(sp) + 3072: f9e2 sd s8,240(sp) + 3074: fa22 sd s0,304(sp) + 3076: ea52 sd s4,272(sp) + 3078: e25a sd s6,256(sp) + 307a: fdde sd s7,248(sp) + 307c: f5e6 sd s9,232(sp) + 307e: f1ea sd s10,224(sp) + 3080: 84aa mv s1,a0 + 3082: 8c32 mv s8,a2 if (*p != '%') - 3074: 02500a93 li s5,37 - 3078: 49c1 li s3,16 - 307a: 00002917 auipc s2,0x2 - 307e: 31a90913 addi s2,s2,794 # 5394 <_GLOBAL__sub_I__ZSt3cin+0x3b4> - 3082: a039 j 3090 <_vprintf_core.constprop.0.isra.0+0x44> + 3084: 02500a93 li s5,37 + 3088: 49c1 li s3,16 + 308a: 00002917 auipc s2,0x2 + 308e: 32a90913 addi s2,s2,810 # 53b4 <_GLOBAL__sub_I__ZSt3cin+0x3c4> + 3092: a039 j 30a0 <_vprintf_core.constprop.0.isra.0+0x44> _out_char(ctx, spec); - 3084: 8526 mv a0,s1 - 3086: 952fe0ef jal 11d8 <_out_char> + 3094: 8526 mv a0,s1 + 3096: 952fe0ef jal 11e8 <_out_char> while (*p) - 308a: 000dc583 lbu a1,0(s11) - 308e: c5d9 beqz a1,311c <_vprintf_core.constprop.0.isra.0+0xd0> + 309a: 000dc583 lbu a1,0(s11) + 309e: c5d9 beqz a1,312c <_vprintf_core.constprop.0.isra.0+0xd0> _out_char(ctx, *p++); - 3090: 0d85 addi s11,s11,1 + 30a0: 0d85 addi s11,s11,1 if (*p != '%') - 3092: ff5599e3 bne a1,s5,3084 <_vprintf_core.constprop.0.isra.0+0x38> + 30a2: ff5599e3 bne a1,s5,3094 <_vprintf_core.constprop.0.isra.0+0x38> int flag_left = 0, flag_zero = 0, flag_plus = 0, flag_space = 0, flag_hash = 0; - 3096: 4501 li a0,0 - 3098: 4881 li a7,0 - 309a: 4581 li a1,0 - 309c: 4b01 li s6,0 - 309e: 4a01 li s4,0 + 30a6: 4501 li a0,0 + 30a8: 4881 li a7,0 + 30aa: 4581 li a1,0 + 30ac: 4b01 li s6,0 + 30ae: 4a01 li s4,0 if (*p == '-') - 30a0: 000dcc83 lbu s9,0(s11) - 30a4: fe0c871b addiw a4,s9,-32 - 30a8: 0ff77713 zext.b a4,a4 - 30ac: 00e9e763 bltu s3,a4,30ba <_vprintf_core.constprop.0.isra.0+0x6e> - 30b0: 070a slli a4,a4,0x2 - 30b2: 974a add a4,a4,s2 - 30b4: 4318 lw a4,0(a4) - 30b6: 974a add a4,a4,s2 - 30b8: 8702 jr a4 + 30b0: 000dcc83 lbu s9,0(s11) + 30b4: fe0c871b addiw a4,s9,-32 + 30b8: 0ff77713 zext.b a4,a4 + 30bc: 00e9e763 bltu s3,a4,30ca <_vprintf_core.constprop.0.isra.0+0x6e> + 30c0: 070a slli a4,a4,0x2 + 30c2: 974a add a4,a4,s2 + 30c4: 4318 lw a4,0(a4) + 30c6: 974a add a4,a4,s2 + 30c8: 8702 jr a4 if (*p == '*') - 30ba: 02a00793 li a5,42 - 30be: 16fc9c63 bne s9,a5,3236 <_vprintf_core.constprop.0.isra.0+0x1ea> + 30ca: 02a00793 li a5,42 + 30ce: 16fc9c63 bne s9,a5,3246 <_vprintf_core.constprop.0.isra.0+0x1ea> width = va_arg(ap, int); - 30c2: 000c2403 lw s0,0(s8) - 30c6: 0c21 addi s8,s8,8 + 30d2: 000c2403 lw s0,0(s8) + 30d6: 0c21 addi s8,s8,8 if (width < 0) - 30c8: 00045563 bgez s0,30d2 <_vprintf_core.constprop.0.isra.0+0x86> + 30d8: 00045563 bgez s0,30e2 <_vprintf_core.constprop.0.isra.0+0x86> width = -width; - 30cc: 4080043b negw s0,s0 + 30dc: 4080043b negw s0,s0 flag_left = 1; - 30d0: 4a05 li s4,1 + 30e0: 4a05 li s4,1 while (*p >= '0' && *p <= '9') - 30d2: 001dcc83 lbu s9,1(s11) + 30e2: 001dcc83 lbu s9,1(s11) p++; - 30d6: 0d85 addi s11,s11,1 + 30e6: 0d85 addi s11,s11,1 if (*p == '.') - 30d8: 02e00793 li a5,46 + 30e8: 02e00793 li a5,46 int precision = -1; - 30dc: 5bfd li s7,-1 + 30ec: 5bfd li s7,-1 if (*p == '.') - 30de: 18fc8a63 beq s9,a5,3272 <_vprintf_core.constprop.0.isra.0+0x226> + 30ee: 18fc8a63 beq s9,a5,3282 <_vprintf_core.constprop.0.isra.0+0x226> if (*p == 'l') - 30e2: 06c00693 li a3,108 - 30e6: 8666 mv a2,s9 - 30e8: 1adc8663 beq s9,a3,3294 <_vprintf_core.constprop.0.isra.0+0x248> + 30f2: 06c00693 li a3,108 + 30f6: 8666 mv a2,s9 + 30f8: 1adc8663 beq s9,a3,32a4 <_vprintf_core.constprop.0.isra.0+0x248> else if (*p == 'z') - 30ec: 07a00693 li a3,122 + 30fc: 07a00693 li a3,122 p++; - 30f0: 0d85 addi s11,s11,1 + 3100: 0d85 addi s11,s11,1 else if (*p == 'z') - 30f2: 24dc8163 beq s9,a3,3334 <_vprintf_core.constprop.0.isra.0+0x2e8> + 3102: 24dc8163 beq s9,a3,3344 <_vprintf_core.constprop.0.isra.0+0x2e8> if (!spec) - 30f6: 06400693 li a3,100 - 30fa: 4adc8163 beq s9,a3,359c <_vprintf_core.constprop.0.isra.0+0x550> - 30fe: 06400693 li a3,100 + 3106: 06400693 li a3,100 + 310a: 4adc8163 beq s9,a3,35ac <_vprintf_core.constprop.0.isra.0+0x550> + 310e: 06400693 li a3,100 int len_mod = 0; - 3102: 4e81 li t4,0 - 3104: 1b96e663 bltu a3,s9,32b0 <_vprintf_core.constprop.0.isra.0+0x264> - 3108: 04700693 li a3,71 - 310c: 2796e463 bltu a3,s9,3374 <_vprintf_core.constprop.0.isra.0+0x328> - 3110: 04400693 li a3,68 - 3114: 0596e363 bltu a3,s9,315a <_vprintf_core.constprop.0.isra.0+0x10e> - 3118: 240c9363 bnez s9,335e <_vprintf_core.constprop.0.isra.0+0x312> - 311c: 7452 ld s0,304(sp) - 311e: 74b2 ld s1,296(sp) - 3120: 7912 ld s2,288(sp) - 3122: 69f2 ld s3,280(sp) - 3124: 6a52 ld s4,272(sp) - 3126: 6ab2 ld s5,264(sp) - 3128: 6b12 ld s6,256(sp) - 312a: 7bee ld s7,248(sp) - 312c: 7c4e ld s8,240(sp) - 312e: 7cae ld s9,232(sp) - 3130: 7d0e ld s10,224(sp) -} - 3132: 70f2 ld ra,312(sp) - 3134: 6dee ld s11,216(sp) - 3136: 6131 addi sp,sp,320 - 3138: 8082 ret + 3112: 4e81 li t4,0 + 3114: 1b96e663 bltu a3,s9,32c0 <_vprintf_core.constprop.0.isra.0+0x264> + 3118: 04700693 li a3,71 + 311c: 2796e463 bltu a3,s9,3384 <_vprintf_core.constprop.0.isra.0+0x328> + 3120: 04400693 li a3,68 + 3124: 0596e363 bltu a3,s9,316a <_vprintf_core.constprop.0.isra.0+0x10e> + 3128: 240c9363 bnez s9,336e <_vprintf_core.constprop.0.isra.0+0x312> + 312c: 7452 ld s0,304(sp) + 312e: 74b2 ld s1,296(sp) + 3130: 7912 ld s2,288(sp) + 3132: 69f2 ld s3,280(sp) + 3134: 6a52 ld s4,272(sp) + 3136: 6ab2 ld s5,264(sp) + 3138: 6b12 ld s6,256(sp) + 313a: 7bee ld s7,248(sp) + 313c: 7c4e ld s8,240(sp) + 313e: 7cae ld s9,232(sp) + 3140: 7d0e ld s10,224(sp) +} + 3142: 70f2 ld ra,312(sp) + 3144: 6dee ld s11,216(sp) + 3146: 6131 addi sp,sp,320 + 3148: 8082 ret if (*p == '-') - 313a: 4585 li a1,1 + 314a: 4585 li a1,1 p++; - 313c: 0d85 addi s11,s11,1 + 314c: 0d85 addi s11,s11,1 if (*p == '-') - 313e: b78d j 30a0 <_vprintf_core.constprop.0.isra.0+0x54> - 3140: 4505 li a0,1 + 314e: b78d j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> + 3150: 4505 li a0,1 p++; - 3142: 0d85 addi s11,s11,1 + 3152: 0d85 addi s11,s11,1 while (1) - 3144: bfb1 j 30a0 <_vprintf_core.constprop.0.isra.0+0x54> + 3154: bfb1 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> if (*p == '-') - 3146: 4885 li a7,1 + 3156: 4885 li a7,1 p++; - 3148: 0d85 addi s11,s11,1 + 3158: 0d85 addi s11,s11,1 while (1) - 314a: bf99 j 30a0 <_vprintf_core.constprop.0.isra.0+0x54> + 315a: bf99 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> if (*p == '-') - 314c: 4b05 li s6,1 + 315c: 4b05 li s6,1 p++; - 314e: 0d85 addi s11,s11,1 + 315e: 0d85 addi s11,s11,1 while (1) - 3150: bf81 j 30a0 <_vprintf_core.constprop.0.isra.0+0x54> + 3160: bf81 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> if (*p == '-') - 3152: 4a05 li s4,1 + 3162: 4a05 li s4,1 p++; - 3154: 0d85 addi s11,s11,1 + 3164: 0d85 addi s11,s11,1 while (1) - 3156: b7a9 j 30a0 <_vprintf_core.constprop.0.isra.0+0x54> + 3166: b7a9 j 30b0 <_vprintf_core.constprop.0.isra.0+0x54> char spec = *p++; - 3158: 8dbe mv s11,a5 + 3168: 8dbe mv s11,a5 fmt_tmp[f_idx++] = '%'; - 315a: 02500693 li a3,37 - 315e: 02d10823 sb a3,48(sp) - 3162: 4d05 li s10,1 + 316a: 02500693 li a3,37 + 316e: 02d10823 sb a3,48(sp) + 3172: 4d05 li s10,1 if (flag_left) - 3164: 000a0763 beqz s4,3172 <_vprintf_core.constprop.0.isra.0+0x126> + 3174: 000a0763 beqz s4,3182 <_vprintf_core.constprop.0.isra.0+0x126> fmt_tmp[f_idx++] = '-'; - 3168: 02d00693 li a3,45 - 316c: 02d108a3 sb a3,49(sp) - 3170: 4d09 li s10,2 + 3178: 02d00693 li a3,45 + 317c: 02d108a3 sb a3,49(sp) + 3180: 4d09 li s10,2 if (flag_zero) - 3172: 000b0c63 beqz s6,318a <_vprintf_core.constprop.0.isra.0+0x13e> + 3182: 000b0c63 beqz s6,319a <_vprintf_core.constprop.0.isra.0+0x13e> fmt_tmp[f_idx++] = '0'; - 3176: 0c0d0793 addi a5,s10,192 - 317a: 0818 addi a4,sp,16 - 317c: 00e786b3 add a3,a5,a4 - 3180: 03000613 li a2,48 - 3184: f6c68023 sb a2,-160(a3) - 3188: 2d05 addiw s10,s10,1 + 3186: 0c0d0793 addi a5,s10,192 + 318a: 0818 addi a4,sp,16 + 318c: 00e786b3 add a3,a5,a4 + 3190: 03000613 li a2,48 + 3194: f6c68023 sb a2,-160(a3) + 3198: 2d05 addiw s10,s10,1 if (flag_plus) - 318a: c999 beqz a1,31a0 <_vprintf_core.constprop.0.isra.0+0x154> + 319a: c999 beqz a1,31b0 <_vprintf_core.constprop.0.isra.0+0x154> fmt_tmp[f_idx++] = '+'; - 318c: 0c0d0793 addi a5,s10,192 - 3190: 0818 addi a4,sp,16 - 3192: 00e786b3 add a3,a5,a4 - 3196: 02b00613 li a2,43 - 319a: f6c68023 sb a2,-160(a3) - 319e: 2d05 addiw s10,s10,1 + 319c: 0c0d0793 addi a5,s10,192 + 31a0: 0818 addi a4,sp,16 + 31a2: 00e786b3 add a3,a5,a4 + 31a6: 02b00613 li a2,43 + 31aa: f6c68023 sb a2,-160(a3) + 31ae: 2d05 addiw s10,s10,1 if (flag_space) - 31a0: 00088c63 beqz a7,31b8 <_vprintf_core.constprop.0.isra.0+0x16c> + 31b0: 00088c63 beqz a7,31c8 <_vprintf_core.constprop.0.isra.0+0x16c> fmt_tmp[f_idx++] = ' '; - 31a4: 0c0d0793 addi a5,s10,192 - 31a8: 0818 addi a4,sp,16 - 31aa: 00e786b3 add a3,a5,a4 - 31ae: 02000613 li a2,32 - 31b2: f6c68023 sb a2,-160(a3) - 31b6: 2d05 addiw s10,s10,1 + 31b4: 0c0d0793 addi a5,s10,192 + 31b8: 0818 addi a4,sp,16 + 31ba: 00e786b3 add a3,a5,a4 + 31be: 02000613 li a2,32 + 31c2: f6c68023 sb a2,-160(a3) + 31c6: 2d05 addiw s10,s10,1 if (flag_hash) - 31b8: c919 beqz a0,31ce <_vprintf_core.constprop.0.isra.0+0x182> + 31c8: c919 beqz a0,31de <_vprintf_core.constprop.0.isra.0+0x182> fmt_tmp[f_idx++] = '#'; - 31ba: 0c0d0793 addi a5,s10,192 - 31be: 0818 addi a4,sp,16 - 31c0: 00e786b3 add a3,a5,a4 - 31c4: 02300613 li a2,35 - 31c8: f6c68023 sb a2,-160(a3) - 31cc: 2d05 addiw s10,s10,1 + 31ca: 0c0d0793 addi a5,s10,192 + 31ce: 0818 addi a4,sp,16 + 31d0: 00e786b3 add a3,a5,a4 + 31d4: 02300613 li a2,35 + 31d8: f6c68023 sb a2,-160(a3) + 31dc: 2d05 addiw s10,s10,1 if (width > 0) - 31ce: 03010a13 addi s4,sp,48 - 31d2: 28804563 bgtz s0,345c <_vprintf_core.constprop.0.isra.0+0x410> + 31de: 03010a13 addi s4,sp,48 + 31e2: 28804563 bgtz s0,346c <_vprintf_core.constprop.0.isra.0+0x410> if (precision >= 0) - 31d6: 260bd763 bgez s7,3444 <_vprintf_core.constprop.0.isra.0+0x3f8> + 31e6: 260bd763 bgez s7,3454 <_vprintf_core.constprop.0.isra.0+0x3f8> fmt_tmp[f_idx++] = spec; - 31da: 0c0d0793 addi a5,s10,192 - 31de: 0818 addi a4,sp,16 - 31e0: 00e78633 add a2,a5,a4 + 31ea: 0c0d0793 addi a5,s10,192 + 31ee: 0818 addi a4,sp,16 + 31f0: 00e78633 add a2,a5,a4 stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); - 31e4: 000c3683 ld a3,0(s8) + 31f4: 000c3683 ld a3,0(s8) fmt_tmp[f_idx] = '\0'; - 31e8: 001d071b addiw a4,s10,1 - 31ec: 0c070793 addi a5,a4,192 - 31f0: 0818 addi a4,sp,16 + 31f8: 001d071b addiw a4,s10,1 + 31fc: 0c070793 addi a5,a4,192 + 3200: 0818 addi a4,sp,16 fmt_tmp[f_idx++] = spec; - 31f2: f7960023 sb s9,-160(a2) + 3202: f7960023 sb s9,-160(a2) fmt_tmp[f_idx] = '\0'; - 31f6: 973e add a4,a4,a5 + 3206: 973e add a4,a4,a5 stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); - 31f8: 08000593 li a1,128 - 31fc: 8652 mv a2,s4 - 31fe: 0888 addi a0,sp,80 + 3208: 08000593 li a1,128 + 320c: 8652 mv a2,s4 + 320e: 0888 addi a0,sp,80 fmt_tmp[f_idx] = '\0'; - 3200: f6070023 sb zero,-160(a4) + 3210: f6070023 sb zero,-160(a4) stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); - 3204: dc5ff0ef jal 2fc8 + 3214: dc5ff0ef jal 2fd8 for (int i = 0; f_buf[i] != '\0'; i++) - 3208: 05014583 lbu a1,80(sp) + 3218: 05014583 lbu a1,80(sp) double f_val = va_arg(ap, double); - 320c: 0c21 addi s8,s8,8 - for (int i = 0; f_buf[i] != '\0'; i++) - 320e: 05110413 addi s0,sp,81 - 3212: e6058ce3 beqz a1,308a <_vprintf_core.constprop.0.isra.0+0x3e> - _out_char(ctx, f_buf[i]); - 3216: 8526 mv a0,s1 - 3218: fc1fd0ef jal 11d8 <_out_char> + 321c: 0c21 addi s8,s8,8 for (int i = 0; f_buf[i] != '\0'; i++) - 321c: 00044583 lbu a1,0(s0) - 3220: 0405 addi s0,s0,1 - 3222: e60584e3 beqz a1,308a <_vprintf_core.constprop.0.isra.0+0x3e> + 321e: 05110413 addi s0,sp,81 + 3222: e6058ce3 beqz a1,309a <_vprintf_core.constprop.0.isra.0+0x3e> _out_char(ctx, f_buf[i]); 3226: 8526 mv a0,s1 - 3228: fb1fd0ef jal 11d8 <_out_char> + 3228: fc1fd0ef jal 11e8 <_out_char> for (int i = 0; f_buf[i] != '\0'; i++) 322c: 00044583 lbu a1,0(s0) 3230: 0405 addi s0,s0,1 - 3232: f1f5 bnez a1,3216 <_vprintf_core.constprop.0.isra.0+0x1ca> - 3234: bd99 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 3232: e60584e3 beqz a1,309a <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 3236: 8526 mv a0,s1 + 3238: fb1fd0ef jal 11e8 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 323c: 00044583 lbu a1,0(s0) + 3240: 0405 addi s0,s0,1 + 3242: f1f5 bnez a1,3226 <_vprintf_core.constprop.0.isra.0+0x1ca> + 3244: bd99 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> while (*p >= '0' && *p <= '9') - 3236: fd0c869b addiw a3,s9,-48 - 323a: 0ff6f313 zext.b t1,a3 - 323e: 4725 li a4,9 + 3246: fd0c869b addiw a3,s9,-48 + 324a: 0ff6f313 zext.b t1,a3 + 324e: 4725 li a4,9 int width = 0; - 3240: 4401 li s0,0 + 3250: 4401 li s0,0 while (*p >= '0' && *p <= '9') - 3242: 4625 li a2,9 - 3244: e8676ae3 bltu a4,t1,30d8 <_vprintf_core.constprop.0.isra.0+0x8c> - 3248: 001dcc83 lbu s9,1(s11) + 3252: 4625 li a2,9 + 3254: e8676ae3 bltu a4,t1,30e8 <_vprintf_core.constprop.0.isra.0+0x8c> + 3258: 001dcc83 lbu s9,1(s11) width = width * 10 + (*p - '0'); - 324c: 0024171b slliw a4,s0,0x2 - 3250: 9f21 addw a4,a4,s0 - 3252: 0017171b slliw a4,a4,0x1 - 3256: 00e6843b addw s0,a3,a4 + 325c: 0024171b slliw a4,s0,0x2 + 3260: 9f21 addw a4,a4,s0 + 3262: 0017171b slliw a4,a4,0x1 + 3266: 00e6843b addw s0,a3,a4 while (*p >= '0' && *p <= '9') - 325a: fd0c869b addiw a3,s9,-48 - 325e: 0ff6f713 zext.b a4,a3 + 326a: fd0c869b addiw a3,s9,-48 + 326e: 0ff6f713 zext.b a4,a3 p++; - 3262: 0d85 addi s11,s11,1 + 3272: 0d85 addi s11,s11,1 while (*p >= '0' && *p <= '9') - 3264: fee672e3 bgeu a2,a4,3248 <_vprintf_core.constprop.0.isra.0+0x1fc> + 3274: fee672e3 bgeu a2,a4,3258 <_vprintf_core.constprop.0.isra.0+0x1fc> if (*p == '.') - 3268: 02e00793 li a5,46 + 3278: 02e00793 li a5,46 int precision = -1; - 326c: 5bfd li s7,-1 + 327c: 5bfd li s7,-1 if (*p == '.') - 326e: e6fc9ae3 bne s9,a5,30e2 <_vprintf_core.constprop.0.isra.0+0x96> + 327e: e6fc9ae3 bne s9,a5,30f2 <_vprintf_core.constprop.0.isra.0+0x96> if (*p == '*') - 3272: 001dcc83 lbu s9,1(s11) - 3276: 02a00793 li a5,42 - 327a: 16fc9f63 bne s9,a5,33f8 <_vprintf_core.constprop.0.isra.0+0x3ac> + 3282: 001dcc83 lbu s9,1(s11) + 3286: 02a00793 li a5,42 + 328a: 16fc9f63 bne s9,a5,3408 <_vprintf_core.constprop.0.isra.0+0x3ac> while (*p >= '0' && *p <= '9') - 327e: 002dcc83 lbu s9,2(s11) + 328e: 002dcc83 lbu s9,2(s11) if (*p == 'l') - 3282: 06c00693 li a3,108 + 3292: 06c00693 li a3,108 precision = va_arg(ap, int); - 3286: 000c2b83 lw s7,0(s8) + 3296: 000c2b83 lw s7,0(s8) p++; - 328a: 0d89 addi s11,s11,2 + 329a: 0d89 addi s11,s11,2 precision = va_arg(ap, int); - 328c: 0c21 addi s8,s8,8 + 329c: 0c21 addi s8,s8,8 if (*p == 'l') - 328e: 8666 mv a2,s9 - 3290: e4dc9ee3 bne s9,a3,30ec <_vprintf_core.constprop.0.isra.0+0xa0> + 329e: 8666 mv a2,s9 + 32a0: e4dc9ee3 bne s9,a3,30fc <_vprintf_core.constprop.0.isra.0+0xa0> if (*p == 'l') - 3294: 001dcc83 lbu s9,1(s11) - 3298: 08cc8d63 beq s9,a2,3332 <_vprintf_core.constprop.0.isra.0+0x2e6> + 32a4: 001dcc83 lbu s9,1(s11) + 32a8: 08cc8d63 beq s9,a2,3342 <_vprintf_core.constprop.0.isra.0+0x2e6> char spec = *p++; - 329c: 06400693 li a3,100 - 32a0: 0d89 addi s11,s11,2 + 32ac: 06400693 li a3,100 + 32b0: 0d89 addi s11,s11,2 if (!spec) - 32a2: 4cdc8c63 beq s9,a3,377a <_vprintf_core.constprop.0.isra.0+0x72e> - 32a6: 06400693 li a3,100 + 32b2: 4cdc8c63 beq s9,a3,378a <_vprintf_core.constprop.0.isra.0+0x72e> + 32b6: 06400693 li a3,100 len_mod = 1; - 32aa: 4e85 li t4,1 - 32ac: e596fee3 bgeu a3,s9,3108 <_vprintf_core.constprop.0.isra.0+0xbc> - 32b0: f9bc869b addiw a3,s9,-101 - 32b4: 0ff6f693 zext.b a3,a3 - 32b8: 464d li a2,19 - 32ba: 12d66863 bltu a2,a3,33ea <_vprintf_core.constprop.0.isra.0+0x39e> - 32be: 4e05 li t3,1 - 32c0: 00091637 lui a2,0x91 - 32c4: 00de1333 sll t1,t3,a3 - 32c8: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x88fa8> - 32cc: 00c37633 and a2,t1,a2 - 32d0: 1a061463 bnez a2,3478 <_vprintf_core.constprop.0.isra.0+0x42c> - 32d4: 00737313 andi t1,t1,7 - 32d8: e80311e3 bnez t1,315a <_vprintf_core.constprop.0.isra.0+0x10e> - 32dc: 4639 li a2,14 - 32de: 10c69663 bne a3,a2,33ea <_vprintf_core.constprop.0.isra.0+0x39e> + 32ba: 4e85 li t4,1 + 32bc: e596fee3 bgeu a3,s9,3118 <_vprintf_core.constprop.0.isra.0+0xbc> + 32c0: f9bc869b addiw a3,s9,-101 + 32c4: 0ff6f693 zext.b a3,a3 + 32c8: 464d li a2,19 + 32ca: 12d66863 bltu a2,a3,33fa <_vprintf_core.constprop.0.isra.0+0x39e> + 32ce: 4e05 li t3,1 + 32d0: 00091637 lui a2,0x91 + 32d4: 00de1333 sll t1,t3,a3 + 32d8: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x88f88> + 32dc: 00c37633 and a2,t1,a2 + 32e0: 1a061463 bnez a2,3488 <_vprintf_core.constprop.0.isra.0+0x42c> + 32e4: 00737313 andi t1,t1,7 + 32e8: e80311e3 bnez t1,316a <_vprintf_core.constprop.0.isra.0+0x10e> + 32ec: 4639 li a2,14 + 32ee: 10c69663 bne a3,a2,33fa <_vprintf_core.constprop.0.isra.0+0x39e> const char *s = va_arg(ap, char *); - 32e2: 000c3c83 ld s9,0(s8) + 32f2: 000c3c83 ld s9,0(s8) if (!s) - 32e6: 420c8863 beqz s9,3716 <_vprintf_core.constprop.0.isra.0+0x6ca> + 32f6: 420c8863 beqz s9,3726 <_vprintf_core.constprop.0.isra.0+0x6ca> while (*tmp && (precision < 0 || len < precision)) - 32ea: 000cc683 lbu a3,0(s9) - 32ee: 38068863 beqz a3,367e <_vprintf_core.constprop.0.isra.0+0x632> + 32fa: 000cc683 lbu a3,0(s9) + 32fe: 38068863 beqz a3,368e <_vprintf_core.constprop.0.isra.0+0x632> const char *tmp = s; - 32f2: 8666 mv a2,s9 + 3302: 8666 mv a2,s9 int len = 0; - 32f4: 4681 li a3,0 + 3304: 4681 li a3,0 while (*tmp && (precision < 0 || len < precision)) - 32f6: 00db8863 beq s7,a3,3306 <_vprintf_core.constprop.0.isra.0+0x2ba> - 32fa: 00164583 lbu a1,1(a2) + 3306: 00db8863 beq s7,a3,3316 <_vprintf_core.constprop.0.isra.0+0x2ba> + 330a: 00164583 lbu a1,1(a2) len++; - 32fe: 2685 addiw a3,a3,1 + 330e: 2685 addiw a3,a3,1 tmp++; - 3300: 0605 addi a2,a2,1 + 3310: 0605 addi a2,a2,1 while (*tmp && (precision < 0 || len < precision)) - 3302: f9f5 bnez a1,32f6 <_vprintf_core.constprop.0.isra.0+0x2aa> - 3304: 8bb6 mv s7,a3 + 3312: f9f5 bnez a1,3306 <_vprintf_core.constprop.0.isra.0+0x2aa> + 3314: 8bb6 mv s7,a3 int padding = (width > len) ? width - len : 0; - 3306: 268bc563 blt s7,s0,3570 <_vprintf_core.constprop.0.isra.0+0x524> + 3316: 268bc563 blt s7,s0,3580 <_vprintf_core.constprop.0.isra.0+0x524> for (int i = 0; i < len; i++) - 330a: 4401 li s0,0 - 330c: 020b8163 beqz s7,332e <_vprintf_core.constprop.0.isra.0+0x2e2> - 3310: 4d01 li s10,0 + 331a: 4401 li s0,0 + 331c: 020b8163 beqz s7,333e <_vprintf_core.constprop.0.isra.0+0x2e2> + 3320: 4d01 li s10,0 _out_char(ctx, s[i]); - 3312: 01ac86b3 add a3,s9,s10 - 3316: 0006c583 lbu a1,0(a3) - 331a: 8526 mv a0,s1 + 3322: 01ac86b3 add a3,s9,s10 + 3326: 0006c583 lbu a1,0(a3) + 332a: 8526 mv a0,s1 for (int i = 0; i < len; i++) - 331c: 0d05 addi s10,s10,1 + 332c: 0d05 addi s10,s10,1 _out_char(ctx, s[i]); - 331e: ebbfd0ef jal 11d8 <_out_char> + 332e: ebbfd0ef jal 11e8 <_out_char> for (int i = 0; i < len; i++) - 3322: 000d069b sext.w a3,s10 - 3326: ff76c6e3 blt a3,s7,3312 <_vprintf_core.constprop.0.isra.0+0x2c6> + 3332: 000d069b sext.w a3,s10 + 3336: ff76c6e3 blt a3,s7,3322 <_vprintf_core.constprop.0.isra.0+0x2c6> if (flag_left) - 332a: 260a1463 bnez s4,3592 <_vprintf_core.constprop.0.isra.0+0x546> + 333a: 260a1463 bnez s4,35a2 <_vprintf_core.constprop.0.isra.0+0x546> const char *s = va_arg(ap, char *); - 332e: 0c21 addi s8,s8,8 - 3330: bba9 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 333e: 0c21 addi s8,s8,8 + 3340: bba9 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> p++; - 3332: 0d89 addi s11,s11,2 + 3342: 0d89 addi s11,s11,2 char spec = *p++; - 3334: 000dcc83 lbu s9,0(s11) - 3338: 06400693 li a3,100 - 333c: 001d8793 addi a5,s11,1 + 3344: 000dcc83 lbu s9,0(s11) + 3348: 06400693 li a3,100 + 334c: 001d8793 addi a5,s11,1 if (!spec) - 3340: 3edc8063 beq s9,a3,3720 <_vprintf_core.constprop.0.isra.0+0x6d4> - 3344: 0796ea63 bltu a3,s9,33b8 <_vprintf_core.constprop.0.isra.0+0x36c> - 3348: 04700693 li a3,71 - 334c: 0f96e263 bltu a3,s9,3430 <_vprintf_core.constprop.0.isra.0+0x3e4> - 3350: 04400693 li a3,68 - 3354: e196e2e3 bltu a3,s9,3158 <_vprintf_core.constprop.0.isra.0+0x10c> - 3358: dc0c82e3 beqz s9,311c <_vprintf_core.constprop.0.isra.0+0xd0> + 3350: 3edc8063 beq s9,a3,3730 <_vprintf_core.constprop.0.isra.0+0x6d4> + 3354: 0796ea63 bltu a3,s9,33c8 <_vprintf_core.constprop.0.isra.0+0x36c> + 3358: 04700693 li a3,71 + 335c: 0f96e263 bltu a3,s9,3440 <_vprintf_core.constprop.0.isra.0+0x3e4> + 3360: 04400693 li a3,68 + 3364: e196e2e3 bltu a3,s9,3168 <_vprintf_core.constprop.0.isra.0+0x10c> + 3368: dc0c82e3 beqz s9,312c <_vprintf_core.constprop.0.isra.0+0xd0> char spec = *p++; - 335c: 8dbe mv s11,a5 + 336c: 8dbe mv s11,a5 _out_char(ctx, '%'); - 335e: 02500593 li a1,37 - 3362: 8526 mv a0,s1 - 3364: e75fd0ef jal 11d8 <_out_char> + 336e: 02500593 li a1,37 + 3372: 8526 mv a0,s1 + 3374: e75fd0ef jal 11e8 <_out_char> if (spec != '%') - 3368: 02500713 li a4,37 - 336c: d0ec8fe3 beq s9,a4,308a <_vprintf_core.constprop.0.isra.0+0x3e> + 3378: 02500713 li a4,37 + 337c: d0ec8fe3 beq s9,a4,309a <_vprintf_core.constprop.0.isra.0+0x3e> _out_char(ctx, spec); - 3370: 85e6 mv a1,s9 - 3372: bb09 j 3084 <_vprintf_core.constprop.0.isra.0+0x38> - 3374: 05800693 li a3,88 - 3378: 2edc8263 beq s9,a3,365c <_vprintf_core.constprop.0.isra.0+0x610> - 337c: 06300713 li a4,99 - 3380: 06ec9563 bne s9,a4,33ea <_vprintf_core.constprop.0.isra.0+0x39e> + 3380: 85e6 mv a1,s9 + 3382: bb09 j 3094 <_vprintf_core.constprop.0.isra.0+0x38> + 3384: 05800693 li a3,88 + 3388: 2edc8263 beq s9,a3,366c <_vprintf_core.constprop.0.isra.0+0x610> + 338c: 06300713 li a4,99 + 3390: 06ec9563 bne s9,a4,33fa <_vprintf_core.constprop.0.isra.0+0x39e> char c = (char)va_arg(ap, int); - 3384: 000c4c83 lbu s9,0(s8) + 3394: 000c4c83 lbu s9,0(s8) int padding = (width > 1) ? width - 1 : 0; - 3388: 8722 mv a4,s0 - 338a: 00804363 bgtz s0,3390 <_vprintf_core.constprop.0.isra.0+0x344> - 338e: 4705 li a4,1 - 3390: fff7041b addiw s0,a4,-1 + 3398: 8722 mv a4,s0 + 339a: 00804363 bgtz s0,33a0 <_vprintf_core.constprop.0.isra.0+0x344> + 339e: 4705 li a4,1 + 33a0: fff7041b addiw s0,a4,-1 if (!flag_left) - 3394: 3c0a0463 beqz s4,375c <_vprintf_core.constprop.0.isra.0+0x710> + 33a4: 3c0a0463 beqz s4,376c <_vprintf_core.constprop.0.isra.0+0x710> _out_char(ctx, c); - 3398: 85e6 mv a1,s9 - 339a: 8526 mv a0,s1 - 339c: e3dfd0ef jal 11d8 <_out_char> + 33a8: 85e6 mv a1,s9 + 33aa: 8526 mv a0,s1 + 33ac: e3dfd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 33a0: 4a01 li s4,0 - 33a2: d451 beqz s0,332e <_vprintf_core.constprop.0.isra.0+0x2e2> + 33b0: 4a01 li s4,0 + 33b2: d451 beqz s0,333e <_vprintf_core.constprop.0.isra.0+0x2e2> _out_char(ctx, ' '); - 33a4: 02000593 li a1,32 - 33a8: 8526 mv a0,s1 + 33b4: 02000593 li a1,32 + 33b8: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 33aa: 2a05 addiw s4,s4,1 + 33ba: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 33ac: e2dfd0ef jal 11d8 <_out_char> + 33bc: e2dfd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 33b0: ff441ae3 bne s0,s4,33a4 <_vprintf_core.constprop.0.isra.0+0x358> + 33c0: ff441ae3 bne s0,s4,33b4 <_vprintf_core.constprop.0.isra.0+0x358> const char *s = va_arg(ap, char *); - 33b4: 0c21 addi s8,s8,8 - 33b6: b9d1 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> - 33b8: f9bc861b addiw a2,s9,-101 - 33bc: 0ff67613 zext.b a2,a2 - 33c0: 46cd li a3,19 - 33c2: 40c6e963 bltu a3,a2,37d4 <_vprintf_core.constprop.0.isra.0+0x788> - 33c6: 00091337 lui t1,0x91 - 33ca: 4685 li a3,1 - 33cc: 00c696b3 sll a3,a3,a2 - 33d0: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x88fa8> - 33d4: 0066f333 and t1,a3,t1 - 33d8: 34031c63 bnez t1,3730 <_vprintf_core.constprop.0.isra.0+0x6e4> - 33dc: 8a9d andi a3,a3,7 - 33de: d6069de3 bnez a3,3158 <_vprintf_core.constprop.0.isra.0+0x10c> - 33e2: 46b9 li a3,14 + 33c4: 0c21 addi s8,s8,8 + 33c6: b9d1 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> + 33c8: f9bc861b addiw a2,s9,-101 + 33cc: 0ff67613 zext.b a2,a2 + 33d0: 46cd li a3,19 + 33d2: 40c6e963 bltu a3,a2,37e4 <_vprintf_core.constprop.0.isra.0+0x788> + 33d6: 00091337 lui t1,0x91 + 33da: 4685 li a3,1 + 33dc: 00c696b3 sll a3,a3,a2 + 33e0: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x88f88> + 33e4: 0066f333 and t1,a3,t1 + 33e8: 34031c63 bnez t1,3740 <_vprintf_core.constprop.0.isra.0+0x6e4> + 33ec: 8a9d andi a3,a3,7 + 33ee: d6069de3 bnez a3,3168 <_vprintf_core.constprop.0.isra.0+0x10c> + 33f2: 46b9 li a3,14 char spec = *p++; - 33e4: 8dbe mv s11,a5 - 33e6: eed60ee3 beq a2,a3,32e2 <_vprintf_core.constprop.0.isra.0+0x296> + 33f4: 8dbe mv s11,a5 + 33f6: eed60ee3 beq a2,a3,32f2 <_vprintf_core.constprop.0.isra.0+0x296> _out_char(ctx, '%'); - 33ea: 02500593 li a1,37 - 33ee: 8526 mv a0,s1 - 33f0: de9fd0ef jal 11d8 <_out_char> + 33fa: 02500593 li a1,37 + 33fe: 8526 mv a0,s1 + 3400: de9fd0ef jal 11e8 <_out_char> _out_char(ctx, spec); - 33f4: 85e6 mv a1,s9 - 33f6: b179 j 3084 <_vprintf_core.constprop.0.isra.0+0x38> + 3404: 85e6 mv a1,s9 + 3406: b179 j 3094 <_vprintf_core.constprop.0.isra.0+0x38> while (*p >= '0' && *p <= '9') - 33f8: fd0c869b addiw a3,s9,-48 - 33fc: 0ff6fe13 zext.b t3,a3 - 3400: 4625 li a2,9 + 3408: fd0c869b addiw a3,s9,-48 + 340c: 0ff6fe13 zext.b t3,a3 + 3410: 4625 li a2,9 p++; - 3402: 0d85 addi s11,s11,1 + 3412: 0d85 addi s11,s11,1 precision = 0; - 3404: 4b81 li s7,0 + 3414: 4b81 li s7,0 while (*p >= '0' && *p <= '9') - 3406: 4325 li t1,9 - 3408: cdc66de3 bltu a2,t3,30e2 <_vprintf_core.constprop.0.isra.0+0x96> + 3416: 4325 li t1,9 + 3418: cdc66de3 bltu a2,t3,30f2 <_vprintf_core.constprop.0.isra.0+0x96> precision = precision * 10 + (*p - '0'); - 340c: 002b961b slliw a2,s7,0x2 + 341c: 002b961b slliw a2,s7,0x2 while (*p >= '0' && *p <= '9') - 3410: 001dcc83 lbu s9,1(s11) + 3420: 001dcc83 lbu s9,1(s11) precision = precision * 10 + (*p - '0'); - 3414: 0176073b addw a4,a2,s7 - 3418: 0017171b slliw a4,a4,0x1 - 341c: 00e68bbb addw s7,a3,a4 + 3424: 0176073b addw a4,a2,s7 + 3428: 0017171b slliw a4,a4,0x1 + 342c: 00e68bbb addw s7,a3,a4 while (*p >= '0' && *p <= '9') - 3420: fd0c869b addiw a3,s9,-48 - 3424: 0ff6f613 zext.b a2,a3 + 3430: fd0c869b addiw a3,s9,-48 + 3434: 0ff6f613 zext.b a2,a3 p++; - 3428: 0d85 addi s11,s11,1 + 3438: 0d85 addi s11,s11,1 while (*p >= '0' && *p <= '9') - 342a: fec371e3 bgeu t1,a2,340c <_vprintf_core.constprop.0.isra.0+0x3c0> - 342e: b955 j 30e2 <_vprintf_core.constprop.0.isra.0+0x96> - 3430: 05800693 li a3,88 - 3434: 3cdc8d63 beq s9,a3,380e <_vprintf_core.constprop.0.isra.0+0x7c2> - 3438: 06300713 li a4,99 + 343a: fec371e3 bgeu t1,a2,341c <_vprintf_core.constprop.0.isra.0+0x3c0> + 343e: b955 j 30f2 <_vprintf_core.constprop.0.isra.0+0x96> + 3440: 05800693 li a3,88 + 3444: 3cdc8d63 beq s9,a3,381e <_vprintf_core.constprop.0.isra.0+0x7c2> + 3448: 06300713 li a4,99 char spec = *p++; - 343c: 8dbe mv s11,a5 - 343e: f4ec83e3 beq s9,a4,3384 <_vprintf_core.constprop.0.isra.0+0x338> - 3442: b765 j 33ea <_vprintf_core.constprop.0.isra.0+0x39e> + 344c: 8dbe mv s11,a5 + 344e: f4ec83e3 beq s9,a4,3394 <_vprintf_core.constprop.0.isra.0+0x338> + 3452: b765 j 33fa <_vprintf_core.constprop.0.isra.0+0x39e> f_idx += sprintf(&fmt_tmp[f_idx], ".%d", precision); - 3444: 01aa0533 add a0,s4,s10 - 3448: 865e mv a2,s7 - 344a: 00002597 auipc a1,0x2 - 344e: cce58593 addi a1,a1,-818 # 5118 <_GLOBAL__sub_I__ZSt3cin+0x138> - 3452: ba5ff0ef jal 2ff6 - 3456: 00ad0d3b addw s10,s10,a0 - 345a: b341 j 31da <_vprintf_core.constprop.0.isra.0+0x18e> + 3454: 01aa0533 add a0,s4,s10 + 3458: 865e mv a2,s7 + 345a: 00002597 auipc a1,0x2 + 345e: cde58593 addi a1,a1,-802 # 5138 <_GLOBAL__sub_I__ZSt3cin+0x148> + 3462: ba5ff0ef jal 3006 + 3466: 00ad0d3b addw s10,s10,a0 + 346a: b341 j 31ea <_vprintf_core.constprop.0.isra.0+0x18e> f_idx += sprintf(&fmt_tmp[f_idx], "%d", width); - 345c: 01aa0533 add a0,s4,s10 - 3460: 8622 mv a2,s0 - 3462: 00002597 auipc a1,0x2 - 3466: cae58593 addi a1,a1,-850 # 5110 <_GLOBAL__sub_I__ZSt3cin+0x130> - 346a: b8dff0ef jal 2ff6 - 346e: 00ad0d3b addw s10,s10,a0 + 346c: 01aa0533 add a0,s4,s10 + 3470: 8622 mv a2,s0 + 3472: 00002597 auipc a1,0x2 + 3476: cbe58593 addi a1,a1,-834 # 5130 <_GLOBAL__sub_I__ZSt3cin+0x140> + 347a: b8dff0ef jal 3006 + 347e: 00ad0d3b addw s10,s10,a0 if (precision >= 0) - 3472: d60bc4e3 bltz s7,31da <_vprintf_core.constprop.0.isra.0+0x18e> - 3476: b7f9 j 3444 <_vprintf_core.constprop.0.isra.0+0x3f8> + 3482: d60bc4e3 bltz s7,31ea <_vprintf_core.constprop.0.isra.0+0x18e> + 3486: b7f9 j 3454 <_vprintf_core.constprop.0.isra.0+0x3f8> int is_signed = (spec == 'd' || spec == 'i'); - 3478: 06900693 li a3,105 - 347c: 10dc8e63 beq s9,a3,3598 <_vprintf_core.constprop.0.isra.0+0x54c> + 3488: 06900693 li a3,105 + 348c: 10dc8e63 beq s9,a3,35a8 <_vprintf_core.constprop.0.isra.0+0x54c> val = (uint64)va_arg(ap, void *); - 3480: 008c0793 addi a5,s8,8 + 3490: 008c0793 addi a5,s8,8 int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 3484: 07800693 li a3,120 + 3494: 07800693 li a3,120 val = (uint64)va_arg(ap, void *); - 3488: e43e sd a5,8(sp) + 3498: e43e sd a5,8(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 348a: 38dc9d63 bne s9,a3,3824 <_vprintf_core.constprop.0.isra.0+0x7d8> + 349a: 38dc9d63 bne s9,a3,3834 <_vprintf_core.constprop.0.isra.0+0x7d8> else if (len_mod == 1) - 348e: 33ce8963 beq t4,t3,37c0 <_vprintf_core.constprop.0.isra.0+0x774> + 349e: 33ce8963 beq t4,t3,37d0 <_vprintf_core.constprop.0.isra.0+0x774> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 3492: 000c6e03 lwu t3,0(s8) - 3496: 85f6 mv a1,t4 - 3498: e002 sd zero,0(sp) + 34a2: 000c6e03 lwu t3,0(s8) + 34a6: 85f6 mv a1,t4 + 34a8: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 349a: 4341 li t1,16 + 34aa: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 349c: 00002f97 auipc t6,0x2 - 34a0: c44f8f93 addi t6,t6,-956 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> + 34ac: 00002f97 auipc t6,0x2 + 34b0: c54f8f93 addi t6,t6,-940 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> if (val == 0) - 34a4: 120e0363 beqz t3,35ca <_vprintf_core.constprop.0.isra.0+0x57e> - 34a8: 01010293 addi t0,sp,16 + 34b4: 120e0363 beqz t3,35da <_vprintf_core.constprop.0.isra.0+0x57e> + 34b8: 01010293 addi t0,sp,16 sign_char = '-'; - 34ac: 8616 mv a2,t0 - 34ae: 86f2 mv a3,t3 + 34bc: 8616 mv a2,t0 + 34be: 86f2 mv a3,t3 buf[i++] = digits[val % base]; - 34b0: 0266f8b3 remu a7,a3,t1 - 34b4: 8f32 mv t5,a2 + 34c0: 0266f8b3 remu a7,a3,t1 + 34c4: 8f32 mv t5,a2 while (val != 0) - 34b6: 0605 addi a2,a2,1 - 34b8: 8eb6 mv t4,a3 + 34c6: 0605 addi a2,a2,1 + 34c8: 8eb6 mv t4,a3 buf[i++] = digits[val % base]; - 34ba: 98fe add a7,a7,t6 - 34bc: 0008c883 lbu a7,0(a7) + 34ca: 98fe add a7,a7,t6 + 34cc: 0008c883 lbu a7,0(a7) val /= base; - 34c0: 0266d6b3 divu a3,a3,t1 + 34d0: 0266d6b3 divu a3,a3,t1 buf[i++] = digits[val % base]; - 34c4: ff160fa3 sb a7,-1(a2) + 34d4: ff160fa3 sb a7,-1(a2) while (val != 0) - 34c8: fe6ef4e3 bgeu t4,t1,34b0 <_vprintf_core.constprop.0.isra.0+0x464> + 34d8: fe6ef4e3 bgeu t4,t1,34c0 <_vprintf_core.constprop.0.isra.0+0x464> buf[i++] = digits[val % base]; - 34cc: 405f0f3b subw t5,t5,t0 - 34d0: 2f05 addiw t5,t5,1 + 34dc: 405f0f3b subw t5,t5,t0 + 34e0: 2f05 addiw t5,t5,1 if (precision >= 0) - 34d2: 100bc363 bltz s7,35d8 <_vprintf_core.constprop.0.isra.0+0x58c> + 34e2: 100bc363 bltz s7,35e8 <_vprintf_core.constprop.0.isra.0+0x58c> int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; - 34d6: 1d7f4d63 blt t5,s7,36b0 <_vprintf_core.constprop.0.isra.0+0x664> + 34e6: 1d7f4d63 blt t5,s7,36c0 <_vprintf_core.constprop.0.isra.0+0x664> if (precision == 0 && val == 0) - 34da: 340b9163 bnez s7,381c <_vprintf_core.constprop.0.isra.0+0x7d0> - 34de: 200e0763 beqz t3,36ec <_vprintf_core.constprop.0.isra.0+0x6a0> + 34ea: 340b9163 bnez s7,382c <_vprintf_core.constprop.0.isra.0+0x7d0> + 34ee: 200e0763 beqz t3,36fc <_vprintf_core.constprop.0.isra.0+0x6a0> for (int i = digit_len - 1; i >= 0; i--) - 34e2: ffff0c1b addiw s8,t5,-1 + 34f2: ffff0c1b addiw s8,t5,-1 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 34e6: 07000693 li a3,112 + 34f6: 07000693 li a3,112 for (int i = digit_len - 1; i >= 0; i--) - 34ea: 8662 mv a2,s8 + 34fa: 8662 mv a2,s8 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 34ec: 28dc8e63 beq s9,a3,3788 <_vprintf_core.constprop.0.isra.0+0x73c> - 34f0: 2a051663 bnez a0,379c <_vprintf_core.constprop.0.isra.0+0x750> + 34fc: 28dc8e63 beq s9,a3,3798 <_vprintf_core.constprop.0.isra.0+0x73c> + 3500: 2a051663 bnez a0,37ac <_vprintf_core.constprop.0.isra.0+0x750> int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 34f4: 00bf05bb addw a1,t5,a1 - 34f8: 8d52 mv s10,s4 - 34fa: 4b01 li s6,0 + 3504: 00bf05bb addw a1,t5,a1 + 3508: 8d52 mv s10,s4 + 350a: 4b01 li s6,0 char *prefix_str = NULL; - 34fc: 4c81 li s9,0 + 350c: 4c81 li s9,0 int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 34fe: 1085d263 bge a1,s0,3602 <_vprintf_core.constprop.0.isra.0+0x5b6> - 3502: 9c0d subw s0,s0,a1 + 350e: 1085d263 bge a1,s0,3612 <_vprintf_core.constprop.0.isra.0+0x5b6> + 3512: 9c0d subw s0,s0,a1 if (!flag_left && !flag_zero) - 3504: 100d0a63 beqz s10,3618 <_vprintf_core.constprop.0.isra.0+0x5cc> + 3514: 100d0a63 beqz s10,3628 <_vprintf_core.constprop.0.isra.0+0x5cc> if (sign_char) - 3508: 6782 ld a5,0(sp) - 350a: 10079263 bnez a5,360e <_vprintf_core.constprop.0.isra.0+0x5c2> + 3518: 6782 ld a5,0(sp) + 351a: 10079263 bnez a5,361e <_vprintf_core.constprop.0.isra.0+0x5c2> if (prefix_str) - 350e: 000c8c63 beqz s9,3526 <_vprintf_core.constprop.0.isra.0+0x4da> + 351e: 000c8c63 beqz s9,3536 <_vprintf_core.constprop.0.isra.0+0x4da> _out_char(ctx, prefix_str[0]); - 3512: 000cc583 lbu a1,0(s9) - 3516: 8526 mv a0,s1 - 3518: cc1fd0ef jal 11d8 <_out_char> + 3522: 000cc583 lbu a1,0(s9) + 3526: 8526 mv a0,s1 + 3528: cc1fd0ef jal 11e8 <_out_char> _out_char(ctx, prefix_str[1]); - 351c: 001cc583 lbu a1,1(s9) - 3520: 8526 mv a0,s1 - 3522: cb7fd0ef jal 11d8 <_out_char> + 352c: 001cc583 lbu a1,1(s9) + 3530: 8526 mv a0,s1 + 3532: cb7fd0ef jal 11e8 <_out_char> int total_zeros = prec_zeros + ((flag_zero && !flag_left) ? padding : 0); - 3526: 180b0263 beqz s6,36aa <_vprintf_core.constprop.0.isra.0+0x65e> - 352a: 100a1863 bnez s4,363a <_vprintf_core.constprop.0.isra.0+0x5ee> - 352e: 008b8bbb addw s7,s7,s0 + 3536: 180b0263 beqz s6,36ba <_vprintf_core.constprop.0.isra.0+0x65e> + 353a: 100a1863 bnez s4,364a <_vprintf_core.constprop.0.isra.0+0x5ee> + 353e: 008b8bbb addw s7,s7,s0 for (int i = 0; i < total_zeros; i++) - 3532: 2a0b8363 beqz s7,37d8 <_vprintf_core.constprop.0.isra.0+0x78c> - 3536: 4c81 li s9,0 + 3542: 2a0b8363 beqz s7,37e8 <_vprintf_core.constprop.0.isra.0+0x78c> + 3546: 4c81 li s9,0 _out_char(ctx, '0'); - 3538: 03000593 li a1,48 - 353c: 8526 mv a0,s1 + 3548: 03000593 li a1,48 + 354c: 8526 mv a0,s1 for (int i = 0; i < total_zeros; i++) - 353e: 2c85 addiw s9,s9,1 + 354e: 2c85 addiw s9,s9,1 _out_char(ctx, '0'); - 3540: c99fd0ef jal 11d8 <_out_char> + 3550: c99fd0ef jal 11e8 <_out_char> for (int i = 0; i < total_zeros; i++) - 3544: ff7c9ae3 bne s9,s7,3538 <_vprintf_core.constprop.0.isra.0+0x4ec> + 3554: ff7c9ae3 bne s9,s7,3548 <_vprintf_core.constprop.0.isra.0+0x4ec> for (int i = digit_len - 1; i >= 0; i--) - 3548: 57fd li a5,-1 - 354a: 00fc0f63 beq s8,a5,3568 <_vprintf_core.constprop.0.isra.0+0x51c> - 354e: 01010c93 addi s9,sp,16 - 3552: 9ce2 add s9,s9,s8 - 3554: 00f10c13 addi s8,sp,15 + 3558: 57fd li a5,-1 + 355a: 00fc0f63 beq s8,a5,3578 <_vprintf_core.constprop.0.isra.0+0x51c> + 355e: 01010c93 addi s9,sp,16 + 3562: 9ce2 add s9,s9,s8 + 3564: 00f10c13 addi s8,sp,15 _out_char(ctx, num_buf[i]); - 3558: 000cc583 lbu a1,0(s9) - 355c: 8526 mv a0,s1 + 3568: 000cc583 lbu a1,0(s9) + 356c: 8526 mv a0,s1 for (int i = digit_len - 1; i >= 0; i--) - 355e: 1cfd addi s9,s9,-1 + 356e: 1cfd addi s9,s9,-1 _out_char(ctx, num_buf[i]); - 3560: c79fd0ef jal 11d8 <_out_char> + 3570: c79fd0ef jal 11e8 <_out_char> for (int i = digit_len - 1; i >= 0; i--) - 3564: ff9c1ae3 bne s8,s9,3558 <_vprintf_core.constprop.0.isra.0+0x50c> + 3574: ff9c1ae3 bne s8,s9,3568 <_vprintf_core.constprop.0.isra.0+0x50c> if (flag_left) - 3568: 0c0a1e63 bnez s4,3644 <_vprintf_core.constprop.0.isra.0+0x5f8> + 3578: 0c0a1e63 bnez s4,3654 <_vprintf_core.constprop.0.isra.0+0x5f8> char spec = *p++; - 356c: 6c22 ld s8,8(sp) - 356e: be31 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 357c: 6c22 ld s8,8(sp) + 357e: be31 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> int padding = (width > len) ? width - len : 0; - 3570: 4174043b subw s0,s0,s7 + 3580: 4174043b subw s0,s0,s7 if (!flag_left) - 3574: 100a0a63 beqz s4,3688 <_vprintf_core.constprop.0.isra.0+0x63c> + 3584: 100a0a63 beqz s4,3698 <_vprintf_core.constprop.0.isra.0+0x63c> for (int i = 0; i < len; i++) - 3578: d80b9ce3 bnez s7,3310 <_vprintf_core.constprop.0.isra.0+0x2c4> + 3588: d80b9ce3 bnez s7,3320 <_vprintf_core.constprop.0.isra.0+0x2c4> for (int i = 0; i < padding; i++) - 357c: 4a01 li s4,0 + 358c: 4a01 li s4,0 _out_char(ctx, ' '); - 357e: 02000593 li a1,32 - 3582: 8526 mv a0,s1 + 358e: 02000593 li a1,32 + 3592: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 3584: 2a05 addiw s4,s4,1 + 3594: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 3586: c53fd0ef jal 11d8 <_out_char> + 3596: c53fd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 358a: ff441ae3 bne s0,s4,357e <_vprintf_core.constprop.0.isra.0+0x532> + 359a: ff441ae3 bne s0,s4,358e <_vprintf_core.constprop.0.isra.0+0x532> const char *s = va_arg(ap, char *); - 358e: 0c21 addi s8,s8,8 - 3590: bced j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 359e: 0c21 addi s8,s8,8 + 35a0: bced j 309a <_vprintf_core.constprop.0.isra.0+0x3e> for (int i = 0; i < padding; i++) - 3592: f46d bnez s0,357c <_vprintf_core.constprop.0.isra.0+0x530> + 35a2: f46d bnez s0,358c <_vprintf_core.constprop.0.isra.0+0x530> const char *s = va_arg(ap, char *); - 3594: 0c21 addi s8,s8,8 - 3596: bcd5 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 35a4: 0c21 addi s8,s8,8 + 35a6: bcd5 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> else if (len_mod == 1) - 3598: 1fce8163 beq t4,t3,377a <_vprintf_core.constprop.0.isra.0+0x72e> + 35a8: 1fce8163 beq t4,t3,378a <_vprintf_core.constprop.0.isra.0+0x72e> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 359c: 000c2e03 lw t3,0(s8) - 35a0: 008c0793 addi a5,s8,8 - 35a4: e43e sd a5,8(sp) + 35ac: 000c2e03 lw t3,0(s8) + 35b0: 008c0793 addi a5,s8,8 + 35b4: e43e sd a5,8(sp) int64 sval = (int64)val; - 35a6: 86f2 mv a3,t3 + 35b6: 86f2 mv a3,t3 if (sval < 0) - 35a8: 1406cb63 bltz a3,36fe <_vprintf_core.constprop.0.isra.0+0x6b2> + 35b8: 1406cb63 bltz a3,370e <_vprintf_core.constprop.0.isra.0+0x6b2> sign_char = '+'; - 35ac: 02b00793 li a5,43 - 35b0: e03e sd a5,0(sp) + 35bc: 02b00793 li a5,43 + 35c0: e03e sd a5,0(sp) else if (flag_plus) - 35b2: e589 bnez a1,35bc <_vprintf_core.constprop.0.isra.0+0x570> + 35c2: e589 bnez a1,35cc <_vprintf_core.constprop.0.isra.0+0x570> else if (flag_space) - 35b4: 00589793 slli a5,a7,0x5 - 35b8: e03e sd a5,0(sp) - 35ba: 85c6 mv a1,a7 + 35c4: 00589793 slli a5,a7,0x5 + 35c8: e03e sd a5,0(sp) + 35ca: 85c6 mv a1,a7 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 35bc: 4329 li t1,10 - 35be: 00002f97 auipc t6,0x2 - 35c2: b22f8f93 addi t6,t6,-1246 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> + 35cc: 4329 li t1,10 + 35ce: 00002f97 auipc t6,0x2 + 35d2: b32f8f93 addi t6,t6,-1230 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> if (val == 0) - 35c6: ee0e11e3 bnez t3,34a8 <_vprintf_core.constprop.0.isra.0+0x45c> + 35d6: ee0e11e3 bnez t3,34b8 <_vprintf_core.constprop.0.isra.0+0x45c> buf[i++] = '0'; - 35ca: 03000693 li a3,48 - 35ce: 00d10823 sb a3,16(sp) + 35da: 03000693 li a3,48 + 35de: 00d10823 sb a3,16(sp) return i; - 35d2: 4f05 li t5,1 + 35e2: 4f05 li t5,1 if (precision >= 0) - 35d4: f00bd1e3 bgez s7,34d6 <_vprintf_core.constprop.0.isra.0+0x48a> + 35e4: f00bd1e3 bgez s7,34e6 <_vprintf_core.constprop.0.isra.0+0x48a> for (int i = digit_len - 1; i >= 0; i--) - 35d8: ffff0c1b addiw s8,t5,-1 + 35e8: ffff0c1b addiw s8,t5,-1 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 35dc: 07000893 li a7,112 + 35ec: 07000893 li a7,112 if (!flag_left && !flag_zero) - 35e0: 016a6d33 or s10,s4,s6 + 35f0: 016a6d33 or s10,s4,s6 int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; - 35e4: 4b81 li s7,0 + 35f4: 4b81 li s7,0 for (int i = digit_len - 1; i >= 0; i--) - 35e6: 8662 mv a2,s8 + 35f6: 8662 mv a2,s8 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 35e8: 0d1c9f63 bne s9,a7,36c6 <_vprintf_core.constprop.0.isra.0+0x67a> + 35f8: 0d1c9f63 bne s9,a7,36d6 <_vprintf_core.constprop.0.isra.0+0x67a> prefix_str = (spec == 'X') ? "0X" : "0x"; - 35ec: 00002c97 auipc s9,0x2 - 35f0: b0cc8c93 addi s9,s9,-1268 # 50f8 <_GLOBAL__sub_I__ZSt3cin+0x118> + 35fc: 00002c97 auipc s9,0x2 + 3600: b1cc8c93 addi s9,s9,-1252 # 5118 <_GLOBAL__sub_I__ZSt3cin+0x128> prefix_len += 2; - 35f4: 2589 addiw a1,a1,2 + 3604: 2589 addiw a1,a1,2 int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 35f6: 017585bb addw a1,a1,s7 - 35fa: 01e585bb addw a1,a1,t5 - 35fe: f085c2e3 blt a1,s0,3502 <_vprintf_core.constprop.0.isra.0+0x4b6> + 3606: 017585bb addw a1,a1,s7 + 360a: 01e585bb addw a1,a1,t5 + 360e: f085c2e3 blt a1,s0,3512 <_vprintf_core.constprop.0.isra.0+0x4b6> if (!flag_left && !flag_zero) - 3602: 080d0f63 beqz s10,36a0 <_vprintf_core.constprop.0.isra.0+0x654> + 3612: 080d0f63 beqz s10,36b0 <_vprintf_core.constprop.0.isra.0+0x654> if (sign_char) - 3606: 6782 ld a5,0(sp) + 3616: 6782 ld a5,0(sp) int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 3608: 4401 li s0,0 + 3618: 4401 li s0,0 if (sign_char) - 360a: f00782e3 beqz a5,350e <_vprintf_core.constprop.0.isra.0+0x4c2> + 361a: f00782e3 beqz a5,351e <_vprintf_core.constprop.0.isra.0+0x4c2> _out_char(ctx, sign_char); - 360e: 6582 ld a1,0(sp) - 3610: 8526 mv a0,s1 - 3612: bc7fd0ef jal 11d8 <_out_char> - 3616: bde5 j 350e <_vprintf_core.constprop.0.isra.0+0x4c2> + 361e: 6582 ld a1,0(sp) + 3620: 8526 mv a0,s1 + 3622: bc7fd0ef jal 11e8 <_out_char> + 3626: bde5 j 351e <_vprintf_core.constprop.0.isra.0+0x4c2> _out_char(ctx, ' '); - 3618: 02000593 li a1,32 - 361c: 8526 mv a0,s1 + 3628: 02000593 li a1,32 + 362c: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 361e: 2d05 addiw s10,s10,1 + 362e: 2d05 addiw s10,s10,1 _out_char(ctx, ' '); - 3620: bb9fd0ef jal 11d8 <_out_char> + 3630: bb9fd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 3624: efa402e3 beq s0,s10,3508 <_vprintf_core.constprop.0.isra.0+0x4bc> + 3634: efa402e3 beq s0,s10,3518 <_vprintf_core.constprop.0.isra.0+0x4bc> _out_char(ctx, ' '); - 3628: 02000593 li a1,32 - 362c: 8526 mv a0,s1 + 3638: 02000593 li a1,32 + 363c: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 362e: 2d05 addiw s10,s10,1 + 363e: 2d05 addiw s10,s10,1 _out_char(ctx, ' '); - 3630: ba9fd0ef jal 11d8 <_out_char> + 3640: ba9fd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 3634: ffa412e3 bne s0,s10,3618 <_vprintf_core.constprop.0.isra.0+0x5cc> - 3638: bdc1 j 3508 <_vprintf_core.constprop.0.isra.0+0x4bc> + 3644: ffa412e3 bne s0,s10,3628 <_vprintf_core.constprop.0.isra.0+0x5cc> + 3648: bdc1 j 3518 <_vprintf_core.constprop.0.isra.0+0x4bc> for (int i = 0; i < total_zeros; i++) - 363a: ee0b9ee3 bnez s7,3536 <_vprintf_core.constprop.0.isra.0+0x4ea> + 364a: ee0b9ee3 bnez s7,3546 <_vprintf_core.constprop.0.isra.0+0x4ea> for (int i = digit_len - 1; i >= 0; i--) - 363e: 577d li a4,-1 - 3640: f0ec17e3 bne s8,a4,354e <_vprintf_core.constprop.0.isra.0+0x502> + 364e: 577d li a4,-1 + 3650: f0ec17e3 bne s8,a4,355e <_vprintf_core.constprop.0.isra.0+0x502> for (int i = 0; i < padding; i++) - 3644: d405 beqz s0,356c <_vprintf_core.constprop.0.isra.0+0x520> - 3646: 4a01 li s4,0 + 3654: d405 beqz s0,357c <_vprintf_core.constprop.0.isra.0+0x520> + 3656: 4a01 li s4,0 _out_char(ctx, ' '); - 3648: 02000593 li a1,32 - 364c: 8526 mv a0,s1 + 3658: 02000593 li a1,32 + 365c: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 364e: 2a05 addiw s4,s4,1 + 365e: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 3650: b89fd0ef jal 11d8 <_out_char> + 3660: b89fd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 3654: fe8a1ae3 bne s4,s0,3648 <_vprintf_core.constprop.0.isra.0+0x5fc> + 3664: fe8a1ae3 bne s4,s0,3658 <_vprintf_core.constprop.0.isra.0+0x5fc> char spec = *p++; - 3658: 6c22 ld s8,8(sp) - 365a: bc05 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 3668: 6c22 ld s8,8(sp) + 366a: bc05 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> val = (uint64)va_arg(ap, void *); - 365c: 008c0793 addi a5,s8,8 - 3660: e43e sd a5,8(sp) + 366c: 008c0793 addi a5,s8,8 + 3670: e43e sd a5,8(sp) else if (len_mod == 1) - 3662: 180e9163 bnez t4,37e4 <_vprintf_core.constprop.0.isra.0+0x798> + 3672: 180e9163 bnez t4,37f4 <_vprintf_core.constprop.0.isra.0+0x798> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 3666: 000c6e03 lwu t3,0(s8) + 3676: 000c6e03 lwu t3,0(s8) val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 366a: 4581 li a1,0 - 366c: 05800c93 li s9,88 - 3670: e002 sd zero,0(sp) - 3672: 4341 li t1,16 + 367a: 4581 li a1,0 + 367c: 05800c93 li s9,88 + 3680: e002 sd zero,0(sp) + 3682: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 3674: 00002f97 auipc t6,0x2 - 3678: a54f8f93 addi t6,t6,-1452 # 50c8 <_GLOBAL__sub_I__ZSt3cin+0xe8> - 367c: b525 j 34a4 <_vprintf_core.constprop.0.isra.0+0x458> + 3684: 00002f97 auipc t6,0x2 + 3688: a64f8f93 addi t6,t6,-1436 # 50e8 <_GLOBAL__sub_I__ZSt3cin+0xf8> + 368c: b525 j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> int padding = (width > len) ? width - len : 0; - 367e: ca8058e3 blez s0,332e <_vprintf_core.constprop.0.isra.0+0x2e2> + 368e: ca8058e3 blez s0,333e <_vprintf_core.constprop.0.isra.0+0x2e2> if (!flag_left) - 3682: ee0a1de3 bnez s4,357c <_vprintf_core.constprop.0.isra.0+0x530> + 3692: ee0a1de3 bnez s4,358c <_vprintf_core.constprop.0.isra.0+0x530> int len = 0; - 3686: 4b81 li s7,0 + 3696: 4b81 li s7,0 for (int i = 0; i < padding; i++) - 3688: 4d01 li s10,0 + 3698: 4d01 li s10,0 _out_char(ctx, ' '); - 368a: 02000593 li a1,32 - 368e: 8526 mv a0,s1 + 369a: 02000593 li a1,32 + 369e: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 3690: 2d05 addiw s10,s10,1 + 36a0: 2d05 addiw s10,s10,1 _out_char(ctx, ' '); - 3692: b47fd0ef jal 11d8 <_out_char> + 36a2: b47fd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 3696: fe8d1ae3 bne s10,s0,368a <_vprintf_core.constprop.0.isra.0+0x63e> + 36a6: fe8d1ae3 bne s10,s0,369a <_vprintf_core.constprop.0.isra.0+0x63e> for (int i = 0; i < len; i++) - 369a: c60b9be3 bnez s7,3310 <_vprintf_core.constprop.0.isra.0+0x2c4> - 369e: b941 j 332e <_vprintf_core.constprop.0.isra.0+0x2e2> + 36aa: c60b9be3 bnez s7,3320 <_vprintf_core.constprop.0.isra.0+0x2c4> + 36ae: b941 j 333e <_vprintf_core.constprop.0.isra.0+0x2e2> if (sign_char) - 36a0: 6782 ld a5,0(sp) - 36a2: 4401 li s0,0 - 36a4: f7ad bnez a5,360e <_vprintf_core.constprop.0.isra.0+0x5c2> + 36b0: 6782 ld a5,0(sp) + 36b2: 4401 li s0,0 + 36b4: f7ad bnez a5,361e <_vprintf_core.constprop.0.isra.0+0x5c2> if (prefix_str) - 36a6: e60c96e3 bnez s9,3512 <_vprintf_core.constprop.0.isra.0+0x4c6> + 36b6: e60c96e3 bnez s9,3522 <_vprintf_core.constprop.0.isra.0+0x4c6> for (int i = 0; i < total_zeros; i++) - 36aa: e80b96e3 bnez s7,3536 <_vprintf_core.constprop.0.isra.0+0x4ea> - 36ae: bd69 j 3548 <_vprintf_core.constprop.0.isra.0+0x4fc> + 36ba: e80b96e3 bnez s7,3546 <_vprintf_core.constprop.0.isra.0+0x4ea> + 36be: bd69 j 3558 <_vprintf_core.constprop.0.isra.0+0x4fc> int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; - 36b0: 41eb8bbb subw s7,s7,t5 - 36b4: 8d52 mv s10,s4 - 36b6: 4b01 li s6,0 + 36c0: 41eb8bbb subw s7,s7,t5 + 36c4: 8d52 mv s10,s4 + 36c6: 4b01 li s6,0 for (int i = digit_len - 1; i >= 0; i--) - 36b8: ffff0c1b addiw s8,t5,-1 + 36c8: ffff0c1b addiw s8,t5,-1 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 36bc: 07000893 li a7,112 + 36cc: 07000893 li a7,112 for (int i = digit_len - 1; i >= 0; i--) - 36c0: 8662 mv a2,s8 + 36d0: 8662 mv a2,s8 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 36c2: f31c85e3 beq s9,a7,35ec <_vprintf_core.constprop.0.isra.0+0x5a0> - 36c6: cd09 beqz a0,36e0 <_vprintf_core.constprop.0.isra.0+0x694> - 36c8: 000e0c63 beqz t3,36e0 <_vprintf_core.constprop.0.isra.0+0x694> - 36cc: 07800513 li a0,120 + 36d2: f31c85e3 beq s9,a7,35fc <_vprintf_core.constprop.0.isra.0+0x5a0> + 36d6: cd09 beqz a0,36f0 <_vprintf_core.constprop.0.isra.0+0x694> + 36d8: 000e0c63 beqz t3,36f0 <_vprintf_core.constprop.0.isra.0+0x694> + 36dc: 07800513 li a0,120 for (int i = digit_len - 1; i >= 0; i--) - 36d0: 00060c1b sext.w s8,a2 + 36e0: 00060c1b sext.w s8,a2 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 36d4: f0ac8ce3 beq s9,a0,35ec <_vprintf_core.constprop.0.isra.0+0x5a0> - 36d8: 05800613 li a2,88 - 36dc: 12cc8463 beq s9,a2,3804 <_vprintf_core.constprop.0.isra.0+0x7b8> + 36e4: f0ac8ce3 beq s9,a0,35fc <_vprintf_core.constprop.0.isra.0+0x5a0> + 36e8: 05800613 li a2,88 + 36ec: 12cc8463 beq s9,a2,3814 <_vprintf_core.constprop.0.isra.0+0x7b8> int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 36e0: 00bb85bb addw a1,s7,a1 - 36e4: 01e585bb addw a1,a1,t5 + 36f0: 00bb85bb addw a1,s7,a1 + 36f4: 01e585bb addw a1,a1,t5 char *prefix_str = NULL; - 36e8: 4c81 li s9,0 - 36ea: bd11 j 34fe <_vprintf_core.constprop.0.isra.0+0x4b2> + 36f8: 4c81 li s9,0 + 36fa: bd11 j 350e <_vprintf_core.constprop.0.isra.0+0x4b2> if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 36ec: 07000693 li a3,112 - 36f0: 8d52 mv s10,s4 - 36f2: 4b01 li s6,0 - 36f4: 08dc8d63 beq s9,a3,378e <_vprintf_core.constprop.0.isra.0+0x742> - 36f8: 5c7d li s8,-1 + 36fc: 07000693 li a3,112 + 3700: 8d52 mv s10,s4 + 3702: 4b01 li s6,0 + 3704: 08dc8d63 beq s9,a3,379e <_vprintf_core.constprop.0.isra.0+0x742> + 3708: 5c7d li s8,-1 char *prefix_str = NULL; - 36fa: 4c81 li s9,0 - 36fc: b509 j 34fe <_vprintf_core.constprop.0.isra.0+0x4b2> + 370a: 4c81 li s9,0 + 370c: b509 j 350e <_vprintf_core.constprop.0.isra.0+0x4b2> sign_char = '-'; - 36fe: 02d00793 li a5,45 + 370e: 02d00793 li a5,45 val = (uint64)(-sval); - 3702: 40d00e33 neg t3,a3 - 3706: 4585 li a1,1 - 3708: 4329 li t1,10 + 3712: 40d00e33 neg t3,a3 + 3716: 4585 li a1,1 + 3718: 4329 li t1,10 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 370a: 00002f97 auipc t6,0x2 - 370e: 9d6f8f93 addi t6,t6,-1578 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> + 371a: 00002f97 auipc t6,0x2 + 371e: 9e6f8f93 addi t6,t6,-1562 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> sign_char = '-'; - 3712: e03e sd a5,0(sp) - 3714: bb51 j 34a8 <_vprintf_core.constprop.0.isra.0+0x45c> + 3722: e03e sd a5,0(sp) + 3724: bb51 j 34b8 <_vprintf_core.constprop.0.isra.0+0x45c> s = "(null)"; - 3716: 00002c97 auipc s9,0x2 - 371a: 9f2c8c93 addi s9,s9,-1550 # 5108 <_GLOBAL__sub_I__ZSt3cin+0x128> - 371e: bed1 j 32f2 <_vprintf_core.constprop.0.isra.0+0x2a6> + 3726: 00002c97 auipc s9,0x2 + 372a: a02c8c93 addi s9,s9,-1534 # 5128 <_GLOBAL__sub_I__ZSt3cin+0x138> + 372e: bed1 j 3302 <_vprintf_core.constprop.0.isra.0+0x2a6> val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 3720: 000c3683 ld a3,0(s8) - 3724: 008c0713 addi a4,s8,8 - 3728: e43a sd a4,8(sp) - 372a: 8dbe mv s11,a5 - 372c: 8e36 mv t3,a3 + 3730: 000c3683 ld a3,0(s8) + 3734: 008c0713 addi a4,s8,8 + 3738: e43a sd a4,8(sp) + 373a: 8dbe mv s11,a5 + 373c: 8e36 mv t3,a3 if (is_signed) - 372e: bdad j 35a8 <_vprintf_core.constprop.0.isra.0+0x55c> + 373e: bdad j 35b8 <_vprintf_core.constprop.0.isra.0+0x55c> int is_signed = (spec == 'd' || spec == 'i'); - 3730: 06900693 li a3,105 - 3734: fedc86e3 beq s9,a3,3720 <_vprintf_core.constprop.0.isra.0+0x6d4> + 3740: 06900693 li a3,105 + 3744: fedc86e3 beq s9,a3,3730 <_vprintf_core.constprop.0.isra.0+0x6d4> val = (uint64)va_arg(ap, void *); - 3738: 008c0713 addi a4,s8,8 + 3748: 008c0713 addi a4,s8,8 int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 373c: 07800693 li a3,120 + 374c: 07800693 li a3,120 val = (uint64)va_arg(ap, void *); - 3740: e43a sd a4,8(sp) + 3750: e43a sd a4,8(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 3742: 06dc9063 bne s9,a3,37a2 <_vprintf_core.constprop.0.isra.0+0x756> + 3752: 06dc9063 bne s9,a3,37b2 <_vprintf_core.constprop.0.isra.0+0x756> val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 3746: 000c3e03 ld t3,0(s8) - 374a: 8dbe mv s11,a5 - 374c: 4581 li a1,0 - 374e: e002 sd zero,0(sp) + 3756: 000c3e03 ld t3,0(s8) + 375a: 8dbe mv s11,a5 + 375c: 4581 li a1,0 + 375e: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 3750: 4341 li t1,16 + 3760: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 3752: 00002f97 auipc t6,0x2 - 3756: 98ef8f93 addi t6,t6,-1650 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> - 375a: b3a9 j 34a4 <_vprintf_core.constprop.0.isra.0+0x458> + 3762: 00002f97 auipc t6,0x2 + 3766: 99ef8f93 addi t6,t6,-1634 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 376a: b3a9 j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> for (int i = 0; i < padding; i++) - 375c: c809 beqz s0,376e <_vprintf_core.constprop.0.isra.0+0x722> + 376c: c809 beqz s0,377e <_vprintf_core.constprop.0.isra.0+0x722> _out_char(ctx, ' '); - 375e: 02000593 li a1,32 - 3762: 8526 mv a0,s1 + 376e: 02000593 li a1,32 + 3772: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 3764: 2a05 addiw s4,s4,1 + 3774: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 3766: a73fd0ef jal 11d8 <_out_char> + 3776: a73fd0ef jal 11e8 <_out_char> for (int i = 0; i < padding; i++) - 376a: ff441ae3 bne s0,s4,375e <_vprintf_core.constprop.0.isra.0+0x712> + 377a: ff441ae3 bne s0,s4,376e <_vprintf_core.constprop.0.isra.0+0x712> _out_char(ctx, c); - 376e: 85e6 mv a1,s9 - 3770: 8526 mv a0,s1 - 3772: a67fd0ef jal 11d8 <_out_char> + 377e: 85e6 mv a1,s9 + 3780: 8526 mv a0,s1 + 3782: a67fd0ef jal 11e8 <_out_char> const char *s = va_arg(ap, char *); - 3776: 0c21 addi s8,s8,8 - 3778: ba09 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 3786: 0c21 addi s8,s8,8 + 3788: ba09 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 377a: 000c3683 ld a3,0(s8) - 377e: 008c0793 addi a5,s8,8 - 3782: e43e sd a5,8(sp) - 3784: 8e36 mv t3,a3 + 378a: 000c3683 ld a3,0(s8) + 378e: 008c0793 addi a5,s8,8 + 3792: e43e sd a5,8(sp) + 3794: 8e36 mv t3,a3 if (is_signed) - 3786: b50d j 35a8 <_vprintf_core.constprop.0.isra.0+0x55c> + 3796: b50d j 35b8 <_vprintf_core.constprop.0.isra.0+0x55c> if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 3788: 8d52 mv s10,s4 - 378a: 4b01 li s6,0 - 378c: b585 j 35ec <_vprintf_core.constprop.0.isra.0+0x5a0> + 3798: 8d52 mv s10,s4 + 379a: 4b01 li s6,0 + 379c: b585 j 35fc <_vprintf_core.constprop.0.isra.0+0x5a0> digit_len = 0; - 378e: 4f01 li t5,0 + 379e: 4f01 li t5,0 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 3790: 5c7d li s8,-1 + 37a0: 5c7d li s8,-1 prefix_str = (spec == 'X') ? "0X" : "0x"; - 3792: 00002c97 auipc s9,0x2 - 3796: 966c8c93 addi s9,s9,-1690 # 50f8 <_GLOBAL__sub_I__ZSt3cin+0x118> - 379a: bda9 j 35f4 <_vprintf_core.constprop.0.isra.0+0x5a8> + 37a2: 00002c97 auipc s9,0x2 + 37a6: 976c8c93 addi s9,s9,-1674 # 5118 <_GLOBAL__sub_I__ZSt3cin+0x128> + 37aa: bda9 j 3604 <_vprintf_core.constprop.0.isra.0+0x5a8> if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 379c: 8d52 mv s10,s4 - 379e: 4b01 li s6,0 - 37a0: b735 j 36cc <_vprintf_core.constprop.0.isra.0+0x680> + 37ac: 8d52 mv s10,s4 + 37ae: 4b01 li s6,0 + 37b0: b735 j 36dc <_vprintf_core.constprop.0.isra.0+0x680> int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 37a2: 07000693 li a3,112 - 37a6: 04dc8263 beq s9,a3,37ea <_vprintf_core.constprop.0.isra.0+0x79e> + 37b2: 07000693 li a3,112 + 37b6: 04dc8263 beq s9,a3,37fa <_vprintf_core.constprop.0.isra.0+0x79e> val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 37aa: 000c3e03 ld t3,0(s8) - 37ae: 8dbe mv s11,a5 - 37b0: 4581 li a1,0 - 37b2: e002 sd zero,0(sp) + 37ba: 000c3e03 ld t3,0(s8) + 37be: 8dbe mv s11,a5 + 37c0: 4581 li a1,0 + 37c2: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 37b4: 4329 li t1,10 + 37c4: 4329 li t1,10 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 37b6: 00002f97 auipc t6,0x2 - 37ba: 92af8f93 addi t6,t6,-1750 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> - 37be: b1dd j 34a4 <_vprintf_core.constprop.0.isra.0+0x458> + 37c6: 00002f97 auipc t6,0x2 + 37ca: 93af8f93 addi t6,t6,-1734 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 37ce: b1dd j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 37c0: 000c3e03 ld t3,0(s8) - 37c4: 4581 li a1,0 - 37c6: e002 sd zero,0(sp) + 37d0: 000c3e03 ld t3,0(s8) + 37d4: 4581 li a1,0 + 37d6: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 37c8: 4341 li t1,16 + 37d8: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 37ca: 00002f97 auipc t6,0x2 - 37ce: 916f8f93 addi t6,t6,-1770 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> - 37d2: b9c9 j 34a4 <_vprintf_core.constprop.0.isra.0+0x458> + 37da: 00002f97 auipc t6,0x2 + 37de: 926f8f93 addi t6,t6,-1754 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 37e2: b9c9 j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> char spec = *p++; - 37d4: 8dbe mv s11,a5 - 37d6: b911 j 33ea <_vprintf_core.constprop.0.isra.0+0x39e> + 37e4: 8dbe mv s11,a5 + 37e6: b911 j 33fa <_vprintf_core.constprop.0.isra.0+0x39e> for (int i = digit_len - 1; i >= 0; i--) - 37d8: 577d li a4,-1 - 37da: 4401 li s0,0 - 37dc: d6ec19e3 bne s8,a4,354e <_vprintf_core.constprop.0.isra.0+0x502> + 37e8: 577d li a4,-1 + 37ea: 4401 li s0,0 + 37ec: d6ec19e3 bne s8,a4,355e <_vprintf_core.constprop.0.isra.0+0x502> char spec = *p++; - 37e0: 6c22 ld s8,8(sp) - 37e2: b065 j 308a <_vprintf_core.constprop.0.isra.0+0x3e> + 37f0: 6c22 ld s8,8(sp) + 37f2: b065 j 309a <_vprintf_core.constprop.0.isra.0+0x3e> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 37e4: 000c3e03 ld t3,0(s8) + 37f4: 000c3e03 ld t3,0(s8) const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 37e8: b549 j 366a <_vprintf_core.constprop.0.isra.0+0x61e> + 37f8: b549 j 367a <_vprintf_core.constprop.0.isra.0+0x61e> int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 37ea: 8dbe mv s11,a5 + 37fa: 8dbe mv s11,a5 val = (uint64)va_arg(ap, void *); - 37ec: 000c3e03 ld t3,0(s8) - 37f0: 4581 li a1,0 - 37f2: 07000c93 li s9,112 - 37f6: e002 sd zero,0(sp) - 37f8: 4341 li t1,16 + 37fc: 000c3e03 ld t3,0(s8) + 3800: 4581 li a1,0 + 3802: 07000c93 li s9,112 + 3806: e002 sd zero,0(sp) + 3808: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 37fa: 00002f97 auipc t6,0x2 - 37fe: 8e6f8f93 addi t6,t6,-1818 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> - 3802: b14d j 34a4 <_vprintf_core.constprop.0.isra.0+0x458> + 380a: 00002f97 auipc t6,0x2 + 380e: 8f6f8f93 addi t6,t6,-1802 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 3812: b14d j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> prefix_str = (spec == 'X') ? "0X" : "0x"; - 3804: 00002c97 auipc s9,0x2 - 3808: 8fcc8c93 addi s9,s9,-1796 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x120> - 380c: b3e5 j 35f4 <_vprintf_core.constprop.0.isra.0+0x5a8> + 3814: 00002c97 auipc s9,0x2 + 3818: 90cc8c93 addi s9,s9,-1780 # 5120 <_GLOBAL__sub_I__ZSt3cin+0x130> + 381c: b3e5 j 3604 <_vprintf_core.constprop.0.isra.0+0x5a8> val = (uint64)va_arg(ap, void *); - 380e: 008c0713 addi a4,s8,8 + 381e: 008c0713 addi a4,s8,8 val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 3812: 000c3e03 ld t3,0(s8) + 3822: 000c3e03 ld t3,0(s8) val = (uint64)va_arg(ap, void *); - 3816: e43a sd a4,8(sp) + 3826: e43a sd a4,8(sp) val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 3818: 8dbe mv s11,a5 - 381a: bd81 j 366a <_vprintf_core.constprop.0.isra.0+0x61e> - 381c: 8d52 mv s10,s4 - 381e: 4b01 li s6,0 - 3820: 4b81 li s7,0 - 3822: bd59 j 36b8 <_vprintf_core.constprop.0.isra.0+0x66c> + 3828: 8dbe mv s11,a5 + 382a: bd81 j 367a <_vprintf_core.constprop.0.isra.0+0x61e> + 382c: 8d52 mv s10,s4 + 382e: 4b01 li s6,0 + 3830: 4b81 li s7,0 + 3832: bd59 j 36c8 <_vprintf_core.constprop.0.isra.0+0x66c> int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 3824: 07000693 li a3,112 - 3828: fcdc82e3 beq s9,a3,37ec <_vprintf_core.constprop.0.isra.0+0x7a0> + 3834: 07000693 li a3,112 + 3838: fcdc82e3 beq s9,a3,37fc <_vprintf_core.constprop.0.isra.0+0x7a0> else if (len_mod == 1) - 382c: 01ce8c63 beq t4,t3,3844 <_vprintf_core.constprop.0.isra.0+0x7f8> + 383c: 01ce8c63 beq t4,t3,3854 <_vprintf_core.constprop.0.isra.0+0x7f8> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 3830: 000c6e03 lwu t3,0(s8) + 3840: 000c6e03 lwu t3,0(s8) const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 3834: 4581 li a1,0 - 3836: e002 sd zero,0(sp) - 3838: 4329 li t1,10 - 383a: 00002f97 auipc t6,0x2 - 383e: 8a6f8f93 addi t6,t6,-1882 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x100> - 3842: b18d j 34a4 <_vprintf_core.constprop.0.isra.0+0x458> + 3844: 4581 li a1,0 + 3846: e002 sd zero,0(sp) + 3848: 4329 li t1,10 + 384a: 00002f97 auipc t6,0x2 + 384e: 8b6f8f93 addi t6,t6,-1866 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x110> + 3852: b18d j 34b4 <_vprintf_core.constprop.0.isra.0+0x458> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 3844: 000c3e03 ld t3,0(s8) + 3854: 000c3e03 ld t3,0(s8) if (is_signed) - 3848: b7f5 j 3834 <_vprintf_core.constprop.0.isra.0+0x7e8> + 3858: b7f5 j 3844 <_vprintf_core.constprop.0.isra.0+0x7e8> -000000000000384a : +000000000000385a : { - 384a: 7139 addi sp,sp,-64 - 384c: f822 sd s0,48(sp) - 384e: f426 sd s1,40(sp) - 3850: 842e mv s0,a1 - 3852: 84aa mv s1,a0 - 3854: 85b2 mv a1,a2 + 385a: 7139 addi sp,sp,-64 + 385c: f822 sd s0,48(sp) + 385e: f426 sd s1,40(sp) + 3860: 842e mv s0,a1 + 3862: 84aa mv s1,a0 + 3864: 85b2 mv a1,a2 _vprintf_core(&ctx, format, ap); - 3856: 850a mv a0,sp - 3858: 8636 mv a2,a3 + 3866: 850a mv a0,sp + 3868: 8636 mv a2,a3 { - 385a: fc06 sd ra,56(sp) + 386a: fc06 sd ra,56(sp) ctx.buf = str; - 385c: e026 sd s1,0(sp) + 386c: e026 sd s1,0(sp) ctx.limit = size; - 385e: e422 sd s0,8(sp) + 386e: e422 sd s0,8(sp) ctx.written = 0; - 3860: e802 sd zero,16(sp) + 3870: e802 sd zero,16(sp) ctx.stream = NULL; - 3862: ec02 sd zero,24(sp) + 3872: ec02 sd zero,24(sp) _vprintf_core(&ctx, format, ap); - 3864: fe8ff0ef jal 304c <_vprintf_core.constprop.0.isra.0> + 3874: fe8ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> if (ctx.written < size) - 3868: 6542 ld a0,16(sp) + 3878: 6542 ld a0,16(sp) if (size > 0) - 386a: c411 beqz s0,3876 + 387a: c411 beqz s0,3886 if (ctx.written < size) - 386c: 00857b63 bgeu a0,s0,3882 + 387c: 00857b63 bgeu a0,s0,3892 str[ctx.written] = '\0'; - 3870: 94aa add s1,s1,a0 - 3872: 00048023 sb zero,0(s1) -} - 3876: 70e2 ld ra,56(sp) - 3878: 7442 ld s0,48(sp) - 387a: 74a2 ld s1,40(sp) - 387c: 2501 sext.w a0,a0 - 387e: 6121 addi sp,sp,64 - 3880: 8082 ret + 3880: 94aa add s1,s1,a0 + 3882: 00048023 sb zero,0(s1) +} + 3886: 70e2 ld ra,56(sp) + 3888: 7442 ld s0,48(sp) + 388a: 74a2 ld s1,40(sp) + 388c: 2501 sext.w a0,a0 + 388e: 6121 addi sp,sp,64 + 3890: 8082 ret str[size - 1] = '\0'; - 3882: 94a2 add s1,s1,s0 - 3884: fe048fa3 sb zero,-1(s1) + 3892: 94a2 add s1,s1,s0 + 3894: fe048fa3 sb zero,-1(s1) } - 3888: 70e2 ld ra,56(sp) - 388a: 7442 ld s0,48(sp) - 388c: 74a2 ld s1,40(sp) - 388e: 2501 sext.w a0,a0 - 3890: 6121 addi sp,sp,64 - 3892: 8082 ret + 3898: 70e2 ld ra,56(sp) + 389a: 7442 ld s0,48(sp) + 389c: 74a2 ld s1,40(sp) + 389e: 2501 sext.w a0,a0 + 38a0: 6121 addi sp,sp,64 + 38a2: 8082 ret -0000000000003894 : +00000000000038a4 : { - 3894: 7119 addi sp,sp,-128 - 3896: e0a2 sd s0,64(sp) - 3898: fc26 sd s1,56(sp) - 389a: 842e mv s0,a1 - 389c: 84aa mv s1,a0 - 389e: 85b2 mv a1,a2 + 38a4: 7119 addi sp,sp,-128 + 38a6: e0a2 sd s0,64(sp) + 38a8: fc26 sd s1,56(sp) + 38aa: 842e mv s0,a1 + 38ac: 84aa mv s1,a0 + 38ae: 85b2 mv a1,a2 _vprintf_core(&ctx, format, ap); - 38a0: 0808 addi a0,sp,16 + 38b0: 0808 addi a0,sp,16 va_start(ap, format); - 38a2: 08b0 addi a2,sp,88 + 38b2: 08b0 addi a2,sp,88 { - 38a4: e486 sd ra,72(sp) - 38a6: ecb6 sd a3,88(sp) - 38a8: f0ba sd a4,96(sp) - 38aa: f4be sd a5,104(sp) - 38ac: f8c2 sd a6,112(sp) - 38ae: fcc6 sd a7,120(sp) + 38b4: e486 sd ra,72(sp) + 38b6: ecb6 sd a3,88(sp) + 38b8: f0ba sd a4,96(sp) + 38ba: f4be sd a5,104(sp) + 38bc: f8c2 sd a6,112(sp) + 38be: fcc6 sd a7,120(sp) va_start(ap, format); - 38b0: e432 sd a2,8(sp) + 38c0: e432 sd a2,8(sp) ctx.buf = str; - 38b2: e826 sd s1,16(sp) + 38c2: e826 sd s1,16(sp) ctx.limit = size; - 38b4: ec22 sd s0,24(sp) + 38c4: ec22 sd s0,24(sp) ctx.written = 0; - 38b6: f002 sd zero,32(sp) + 38c6: f002 sd zero,32(sp) ctx.stream = NULL; - 38b8: f402 sd zero,40(sp) + 38c8: f402 sd zero,40(sp) _vprintf_core(&ctx, format, ap); - 38ba: f92ff0ef jal 304c <_vprintf_core.constprop.0.isra.0> + 38ca: f92ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> if (ctx.written < size) - 38be: 7502 ld a0,32(sp) + 38ce: 7502 ld a0,32(sp) if (size > 0) - 38c0: c411 beqz s0,38cc + 38d0: c411 beqz s0,38dc if (ctx.written < size) - 38c2: 00857b63 bgeu a0,s0,38d8 + 38d2: 00857b63 bgeu a0,s0,38e8 str[ctx.written] = '\0'; - 38c6: 94aa add s1,s1,a0 - 38c8: 00048023 sb zero,0(s1) -} - 38cc: 60a6 ld ra,72(sp) - 38ce: 6406 ld s0,64(sp) - 38d0: 74e2 ld s1,56(sp) - 38d2: 2501 sext.w a0,a0 - 38d4: 6109 addi sp,sp,128 - 38d6: 8082 ret + 38d6: 94aa add s1,s1,a0 + 38d8: 00048023 sb zero,0(s1) +} + 38dc: 60a6 ld ra,72(sp) + 38de: 6406 ld s0,64(sp) + 38e0: 74e2 ld s1,56(sp) + 38e2: 2501 sext.w a0,a0 + 38e4: 6109 addi sp,sp,128 + 38e6: 8082 ret str[size - 1] = '\0'; - 38d8: 94a2 add s1,s1,s0 - 38da: fe048fa3 sb zero,-1(s1) + 38e8: 94a2 add s1,s1,s0 + 38ea: fe048fa3 sb zero,-1(s1) } - 38de: 60a6 ld ra,72(sp) - 38e0: 6406 ld s0,64(sp) - 38e2: 74e2 ld s1,56(sp) - 38e4: 2501 sext.w a0,a0 - 38e6: 6109 addi sp,sp,128 - 38e8: 8082 ret + 38ee: 60a6 ld ra,72(sp) + 38f0: 6406 ld s0,64(sp) + 38f2: 74e2 ld s1,56(sp) + 38f4: 2501 sext.w a0,a0 + 38f6: 6109 addi sp,sp,128 + 38f8: 8082 ret -00000000000038ea : +00000000000038fa : { - 38ea: 7119 addi sp,sp,-128 + 38fa: 7119 addi sp,sp,-128 va_start(ap, format); - 38ec: 04810313 addi t1,sp,72 + 38fc: 04810313 addi t1,sp,72 { - 38f0: e4ae sd a1,72(sp) - 38f2: e8b2 sd a2,80(sp) - 38f4: f4be sd a5,104(sp) + 3900: e4ae sd a1,72(sp) + 3902: e8b2 sd a2,80(sp) + 3904: f4be sd a5,104(sp) _vprintf_core(&ctx, format, ap); - 38f6: 85aa mv a1,a0 + 3906: 85aa mv a1,a0 ctx.stream = stdout; - 38f8: 00004797 auipc a5,0x4 - 38fc: dd87b783 ld a5,-552(a5) # 76d0 + 3908: 00004797 auipc a5,0x4 + 390c: de87b783 ld a5,-536(a5) # 76f0 _vprintf_core(&ctx, format, ap); - 3900: 0808 addi a0,sp,16 - 3902: 861a mv a2,t1 + 3910: 0808 addi a0,sp,16 + 3912: 861a mv a2,t1 { - 3904: fc06 sd ra,56(sp) - 3906: ecb6 sd a3,88(sp) - 3908: f0ba sd a4,96(sp) - 390a: f8c2 sd a6,112(sp) - 390c: fcc6 sd a7,120(sp) + 3914: fc06 sd ra,56(sp) + 3916: ecb6 sd a3,88(sp) + 3918: f0ba sd a4,96(sp) + 391a: f8c2 sd a6,112(sp) + 391c: fcc6 sd a7,120(sp) va_start(ap, format); - 390e: e41a sd t1,8(sp) + 391e: e41a sd t1,8(sp) ctx.buf = NULL; - 3910: e802 sd zero,16(sp) + 3920: e802 sd zero,16(sp) ctx.limit = 0; - 3912: ec02 sd zero,24(sp) + 3922: ec02 sd zero,24(sp) ctx.written = 0; - 3914: f002 sd zero,32(sp) + 3924: f002 sd zero,32(sp) ctx.stream = stdout; - 3916: f43e sd a5,40(sp) + 3926: f43e sd a5,40(sp) _vprintf_core(&ctx, format, ap); - 3918: f34ff0ef jal 304c <_vprintf_core.constprop.0.isra.0> + 3928: f34ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> } - 391c: 70e2 ld ra,56(sp) - 391e: 5502 lw a0,32(sp) - 3920: 6109 addi sp,sp,128 - 3922: 8082 ret + 392c: 70e2 ld ra,56(sp) + 392e: 5502 lw a0,32(sp) + 3930: 6109 addi sp,sp,128 + 3932: 8082 ret -0000000000003924 : +0000000000003934 : { - 3924: 7159 addi sp,sp,-112 + 3934: 7159 addi sp,sp,-112 va_start(ap, format); - 3926: 04010e13 addi t3,sp,64 + 3936: 04010e13 addi t3,sp,64 { - 392a: 8eaa mv t4,a0 + 393a: 8eaa mv t4,a0 ctx.fd = -1; - 392c: 537d li t1,-1 + 393c: 537d li t1,-1 { - 392e: e0b2 sd a2,64(sp) + 393e: e0b2 sd a2,64(sp) int ret = _vscanf_core(&ctx, format, ap); - 3930: 0808 addi a0,sp,16 - 3932: 8672 mv a2,t3 + 3940: 0808 addi a0,sp,16 + 3942: 8672 mv a2,t3 { - 3934: fc06 sd ra,56(sp) - 3936: e4b6 sd a3,72(sp) - 3938: e8ba sd a4,80(sp) - 393a: ecbe sd a5,88(sp) - 393c: f0c2 sd a6,96(sp) - 393e: f4c6 sd a7,104(sp) + 3944: fc06 sd ra,56(sp) + 3946: e4b6 sd a3,72(sp) + 3948: e8ba sd a4,80(sp) + 394a: ecbe sd a5,88(sp) + 394c: f0c2 sd a6,96(sp) + 394e: f4c6 sd a7,104(sp) va_start(ap, format); - 3940: e472 sd t3,8(sp) + 3950: e472 sd t3,8(sp) ctx.buf = str; - 3942: e876 sd t4,16(sp) + 3952: e876 sd t4,16(sp) ctx.fd = -1; - 3944: cc1a sw t1,24(sp) + 3954: cc1a sw t1,24(sp) ctx.pos = 0; - 3946: f002 sd zero,32(sp) + 3956: f002 sd zero,32(sp) ctx.ungotten = -1; - 3948: d41a sw t1,40(sp) + 3958: d41a sw t1,40(sp) int ret = _vscanf_core(&ctx, format, ap); - 394a: 81efd0ef jal 968 <_vscanf_core.constprop.0> + 395a: 81efd0ef jal 978 <_vscanf_core.constprop.0> } - 394e: 70e2 ld ra,56(sp) - 3950: 6165 addi sp,sp,112 - 3952: 8082 ret + 395e: 70e2 ld ra,56(sp) + 3960: 6165 addi sp,sp,112 + 3962: 8082 ret -0000000000003954 : +0000000000003964 : { - 3954: 7119 addi sp,sp,-128 + 3964: 7119 addi sp,sp,-128 va_start(ap, format); - 3956: 04810313 addi t1,sp,72 + 3966: 04810313 addi t1,sp,72 { - 395a: e4ae sd a1,72(sp) - 395c: e8b2 sd a2,80(sp) - 395e: f4be sd a5,104(sp) + 396a: e4ae sd a1,72(sp) + 396c: e8b2 sd a2,80(sp) + 396e: f4be sd a5,104(sp) int ret = _vscanf_core(&ctx, format, ap); - 3960: 85aa mv a1,a0 + 3970: 85aa mv a1,a0 ctx.ungotten = -1; - 3962: 57fd li a5,-1 + 3972: 57fd li a5,-1 int ret = _vscanf_core(&ctx, format, ap); - 3964: 0808 addi a0,sp,16 - 3966: 861a mv a2,t1 + 3974: 0808 addi a0,sp,16 + 3976: 861a mv a2,t1 { - 3968: fc06 sd ra,56(sp) - 396a: ecb6 sd a3,88(sp) - 396c: f0ba sd a4,96(sp) - 396e: f8c2 sd a6,112(sp) - 3970: fcc6 sd a7,120(sp) + 3978: fc06 sd ra,56(sp) + 397a: ecb6 sd a3,88(sp) + 397c: f0ba sd a4,96(sp) + 397e: f8c2 sd a6,112(sp) + 3980: fcc6 sd a7,120(sp) va_start(ap, format); - 3972: e41a sd t1,8(sp) + 3982: e41a sd t1,8(sp) ctx.buf = NULL; - 3974: e802 sd zero,16(sp) + 3984: e802 sd zero,16(sp) ctx.fd = STDIN_FD; - 3976: cc02 sw zero,24(sp) + 3986: cc02 sw zero,24(sp) ctx.pos = 0; - 3978: f002 sd zero,32(sp) + 3988: f002 sd zero,32(sp) ctx.ungotten = -1; - 397a: d43e sw a5,40(sp) + 398a: d43e sw a5,40(sp) int ret = _vscanf_core(&ctx, format, ap); - 397c: fedfc0ef jal 968 <_vscanf_core.constprop.0> + 398c: fedfc0ef jal 978 <_vscanf_core.constprop.0> } - 3980: 70e2 ld ra,56(sp) - 3982: 6109 addi sp,sp,128 - 3984: 8082 ret + 3990: 70e2 ld ra,56(sp) + 3992: 6109 addi sp,sp,128 + 3994: 8082 ret -0000000000003986 : +0000000000003996 : { - 3986: 1101 addi sp,sp,-32 - 3988: e426 sd s1,8(sp) - 398a: 84ae mv s1,a1 - 398c: e04a sd s2,0(sp) + 3996: 1101 addi sp,sp,-32 + 3998: e426 sd s1,8(sp) + 399a: 84ae mv s1,a1 + 399c: e04a sd s2,0(sp) if (strcmp(mode, "r") == 0) - 398e: 00001597 auipc a1,0x1 - 3992: 79258593 addi a1,a1,1938 # 5120 <_GLOBAL__sub_I__ZSt3cin+0x140> + 399e: 00001597 auipc a1,0x1 + 39a2: 7a258593 addi a1,a1,1954 # 5140 <_GLOBAL__sub_I__ZSt3cin+0x150> { - 3996: 892a mv s2,a0 + 39a6: 892a mv s2,a0 if (strcmp(mode, "r") == 0) - 3998: 8526 mv a0,s1 + 39a8: 8526 mv a0,s1 { - 399a: e822 sd s0,16(sp) - 399c: ec06 sd ra,24(sp) + 39aa: e822 sd s0,16(sp) + 39ac: ec06 sd ra,24(sp) if (strcmp(mode, "r") == 0) - 399e: 298010ef jal 4c36 - 39a2: 842a mv s0,a0 - 39a4: c919 beqz a0,39ba + 39ae: 298010ef jal 4c46 + 39b2: 842a mv s0,a0 + 39b4: c919 beqz a0,39ca else if (strcmp(mode, "w") == 0) - 39a6: 00001597 auipc a1,0x1 - 39aa: 78258593 addi a1,a1,1922 # 5128 <_GLOBAL__sub_I__ZSt3cin+0x148> - 39ae: 8526 mv a0,s1 - 39b0: 286010ef jal 4c36 + 39b6: 00001597 auipc a1,0x1 + 39ba: 79258593 addi a1,a1,1938 # 5148 <_GLOBAL__sub_I__ZSt3cin+0x158> + 39be: 8526 mv a0,s1 + 39c0: 286010ef jal 4c46 flags = O_WRONLY | O_CREAT | O_TRUNC; - 39b4: 24100413 li s0,577 + 39c4: 24100413 li s0,577 else if (strcmp(mode, "w") == 0) - 39b8: ed39 bnez a0,3a16 + 39c8: ed39 bnez a0,3a26 int64 fd = open(filename, flags); - 39ba: 85a2 mv a1,s0 - 39bc: 854a mv a0,s2 - 39be: f4afc0ef jal 108 - 39c2: 84aa mv s1,a0 + 39ca: 85a2 mv a1,s0 + 39cc: 854a mv a0,s2 + 39ce: f42fc0ef jal 110 + 39d2: 84aa mv s1,a0 if (fd < 0) - 39c4: 06054c63 bltz a0,3a3c + 39d4: 06054c63 bltz a0,3a4c FILE *f = (FILE *)malloc(sizeof(FILE)); - 39c8: 42000513 li a0,1056 - 39cc: 2f3000ef jal 44be - 39d0: 892a mv s2,a0 + 39d8: 42000513 li a0,1056 + 39dc: 2f3000ef jal 44ce + 39e0: 892a mv s2,a0 if (!f) - 39d2: c53d beqz a0,3a40 + 39e2: c53d beqz a0,3a50 memset(f, 0, sizeof(FILE)); - 39d4: 42000613 li a2,1056 - 39d8: 4581 li a1,0 - 39da: 0ee010ef jal 4ac8 + 39e4: 42000613 li a2,1056 + 39e8: 4581 li a1,0 + 39ea: 0ee010ef jal 4ad8 if (fd == 1) - 39de: 4785 li a5,1 + 39ee: 4785 li a5,1 f->fd = (int)fd; - 39e0: 00992023 sw s1,0(s2) + 39f0: 00992023 sw s1,0(s2) f->flags = flags; - 39e4: 00892223 sw s0,4(s2) + 39f4: 00892223 sw s0,4(s2) if (fd == 1) - 39e8: 00f48e63 beq s1,a5,3a04 + 39f8: 00f48e63 beq s1,a5,3a14 else if (fd == 2) - 39ec: 4789 li a5,2 - 39ee: 00f48b63 beq s1,a5,3a04 + 39fc: 4789 li a5,2 + 39fe: 00f48b63 beq s1,a5,3a14 f->buf_mode = 0; - 39f2: 40092e23 sw zero,1052(s2) -} - 39f6: 60e2 ld ra,24(sp) - 39f8: 6442 ld s0,16(sp) - 39fa: 64a2 ld s1,8(sp) - 39fc: 854a mv a0,s2 - 39fe: 6902 ld s2,0(sp) - 3a00: 6105 addi sp,sp,32 - 3a02: 8082 ret - 3a04: 60e2 ld ra,24(sp) - 3a06: 6442 ld s0,16(sp) - f->buf_mode = 2; - 3a08: 40992e23 sw s1,1052(s2) + 3a02: 40092e23 sw zero,1052(s2) } + 3a06: 60e2 ld ra,24(sp) + 3a08: 6442 ld s0,16(sp) + 3a0a: 64a2 ld s1,8(sp) 3a0c: 854a mv a0,s2 - 3a0e: 64a2 ld s1,8(sp) - 3a10: 6902 ld s2,0(sp) - 3a12: 6105 addi sp,sp,32 - 3a14: 8082 ret + 3a0e: 6902 ld s2,0(sp) + 3a10: 6105 addi sp,sp,32 + 3a12: 8082 ret + 3a14: 60e2 ld ra,24(sp) + 3a16: 6442 ld s0,16(sp) + f->buf_mode = 2; + 3a18: 40992e23 sw s1,1052(s2) +} + 3a1c: 854a mv a0,s2 + 3a1e: 64a2 ld s1,8(sp) + 3a20: 6902 ld s2,0(sp) + 3a22: 6105 addi sp,sp,32 + 3a24: 8082 ret else if (strcmp(mode, "a") == 0) - 3a16: 00001597 auipc a1,0x1 - 3a1a: 71a58593 addi a1,a1,1818 # 5130 <_GLOBAL__sub_I__ZSt3cin+0x150> - 3a1e: 8526 mv a0,s1 - 3a20: 216010ef jal 4c36 + 3a26: 00001597 auipc a1,0x1 + 3a2a: 72a58593 addi a1,a1,1834 # 5150 <_GLOBAL__sub_I__ZSt3cin+0x160> + 3a2e: 8526 mv a0,s1 + 3a30: 216010ef jal 4c46 flags = O_WRONLY | O_CREAT | O_APPEND; - 3a24: 44100413 li s0,1089 + 3a34: 44100413 li s0,1089 else if (strcmp(mode, "a") == 0) - 3a28: d949 beqz a0,39ba + 3a38: d949 beqz a0,39ca else if (strcmp(mode, "r+") == 0) - 3a2a: 00001597 auipc a1,0x1 - 3a2e: 70e58593 addi a1,a1,1806 # 5138 <_GLOBAL__sub_I__ZSt3cin+0x158> - 3a32: 8526 mv a0,s1 - 3a34: 202010ef jal 4c36 + 3a3a: 00001597 auipc a1,0x1 + 3a3e: 71e58593 addi a1,a1,1822 # 5158 <_GLOBAL__sub_I__ZSt3cin+0x168> + 3a42: 8526 mv a0,s1 + 3a44: 202010ef jal 4c46 flags = O_RDWR; - 3a38: 4409 li s0,2 + 3a48: 4409 li s0,2 else if (strcmp(mode, "r+") == 0) - 3a3a: d141 beqz a0,39ba + 3a4a: d141 beqz a0,39ca return NULL; - 3a3c: 4901 li s2,0 - 3a3e: bf65 j 39f6 + 3a4c: 4901 li s2,0 + 3a4e: bf65 j 3a06 close(fd); - 3a40: 8526 mv a0,s1 - 3a42: eaefc0ef jal f0 + 3a50: 8526 mv a0,s1 + 3a52: ea6fc0ef jal f8 return NULL; - 3a46: 4901 li s2,0 - 3a48: b77d j 39f6 + 3a56: 4901 li s2,0 + 3a58: b77d j 3a06 -0000000000003a4a : +0000000000003a5a : if (!stream) - 3a4a: cd29 beqz a0,3aa4 + 3a5a: cd29 beqz a0,3ab4 if (stream->buf_write_pos > 0) - 3a4c: 41052603 lw a2,1040(a0) + 3a5c: 41052603 lw a2,1040(a0) { - 3a50: 1141 addi sp,sp,-16 - 3a52: e022 sd s0,0(sp) - 3a54: e406 sd ra,8(sp) - 3a56: 842a mv s0,a0 + 3a60: 1141 addi sp,sp,-16 + 3a62: e022 sd s0,0(sp) + 3a64: e406 sd ra,8(sp) + 3a66: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 3a58: 02c04a63 bgtz a2,3a8c + 3a68: 02c04a63 bgtz a2,3a9c if (stream != stdin && stream != stdout && stream != stderr) - 3a5c: 00004797 auipc a5,0x4 - 3a60: c7478793 addi a5,a5,-908 # 76d0 - 3a64: 6798 ld a4,8(a5) - 3a66: 00870e63 beq a4,s0,3a82 - 3a6a: 6398 ld a4,0(a5) - 3a6c: 00870b63 beq a4,s0,3a82 - 3a70: 6b9c ld a5,16(a5) - 3a72: 00878863 beq a5,s0,3a82 + 3a6c: 00004797 auipc a5,0x4 + 3a70: c8478793 addi a5,a5,-892 # 76f0 + 3a74: 6798 ld a4,8(a5) + 3a76: 00870e63 beq a4,s0,3a92 + 3a7a: 6398 ld a4,0(a5) + 3a7c: 00870b63 beq a4,s0,3a92 + 3a80: 6b9c ld a5,16(a5) + 3a82: 00878863 beq a5,s0,3a92 close(stream->fd); - 3a76: 4008 lw a0,0(s0) - 3a78: e78fc0ef jal f0 + 3a86: 4008 lw a0,0(s0) + 3a88: e70fc0ef jal f8 free(stream); - 3a7c: 8522 mv a0,s0 - 3a7e: 1cb000ef jal 4448 + 3a8c: 8522 mv a0,s0 + 3a8e: 1cb000ef jal 4458 } - 3a82: 60a2 ld ra,8(sp) - 3a84: 6402 ld s0,0(sp) + 3a92: 60a2 ld ra,8(sp) + 3a94: 6402 ld s0,0(sp) return 0; - 3a86: 4501 li a0,0 + 3a96: 4501 li a0,0 } - 3a88: 0141 addi sp,sp,16 - 3a8a: 8082 ret + 3a98: 0141 addi sp,sp,16 + 3a9a: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3a8c: 4108 lw a0,0(a0) - 3a8e: 01040593 addi a1,s0,16 - 3a92: e56fc0ef jal e8 + 3a9c: 4108 lw a0,0(a0) + 3a9e: 01040593 addi a1,s0,16 + 3aa2: e4efc0ef jal f0 if (ret < stream->buf_write_pos) - 3a96: 41042783 lw a5,1040(s0) - 3a9a: 00f54763 blt a0,a5,3aa8 + 3aa6: 41042783 lw a5,1040(s0) + 3aaa: 00f54763 blt a0,a5,3ab8 stream->buf_write_pos = 0; - 3a9e: 40042823 sw zero,1040(s0) - 3aa2: bf6d j 3a5c + 3aae: 40042823 sw zero,1040(s0) + 3ab2: bf6d j 3a6c return -1; - 3aa4: 557d li a0,-1 + 3ab4: 557d li a0,-1 } - 3aa6: 8082 ret + 3ab6: 8082 ret stream->error = 1; - 3aa8: 4785 li a5,1 - 3aaa: c41c sw a5,8(s0) + 3ab8: 4785 li a5,1 + 3aba: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3aac: 40042823 sw zero,1040(s0) + 3abc: 40042823 sw zero,1040(s0) return EOF; - 3ab0: b775 j 3a5c + 3ac0: b775 j 3a6c -0000000000003ab2 : +0000000000003ac2 : if (!stream) - 3ab2: c121 beqz a0,3af2 + 3ac2: c121 beqz a0,3b02 if (stream->buf_write_pos > 0) - 3ab4: 41052603 lw a2,1040(a0) + 3ac4: 41052603 lw a2,1040(a0) { - 3ab8: 1141 addi sp,sp,-16 - 3aba: e022 sd s0,0(sp) - 3abc: e406 sd ra,8(sp) - 3abe: 842a mv s0,a0 + 3ac8: 1141 addi sp,sp,-16 + 3aca: e022 sd s0,0(sp) + 3acc: e406 sd ra,8(sp) + 3ace: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 3ac0: 00c04763 bgtz a2,3ace + 3ad0: 00c04763 bgtz a2,3ade return 0; - 3ac4: 4501 li a0,0 + 3ad4: 4501 li a0,0 } - 3ac6: 60a2 ld ra,8(sp) - 3ac8: 6402 ld s0,0(sp) - 3aca: 0141 addi sp,sp,16 - 3acc: 8082 ret + 3ad6: 60a2 ld ra,8(sp) + 3ad8: 6402 ld s0,0(sp) + 3ada: 0141 addi sp,sp,16 + 3adc: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3ace: 4108 lw a0,0(a0) - 3ad0: 01040593 addi a1,s0,16 - 3ad4: e14fc0ef jal e8 + 3ade: 4108 lw a0,0(a0) + 3ae0: 01040593 addi a1,s0,16 + 3ae4: e0cfc0ef jal f0 if (ret < stream->buf_write_pos) - 3ad8: 41042783 lw a5,1040(s0) - 3adc: 00f54563 blt a0,a5,3ae6 + 3ae8: 41042783 lw a5,1040(s0) + 3aec: 00f54563 blt a0,a5,3af6 stream->buf_write_pos = 0; - 3ae0: 40042823 sw zero,1040(s0) - 3ae4: b7c5 j 3ac4 + 3af0: 40042823 sw zero,1040(s0) + 3af4: b7c5 j 3ad4 stream->error = 1; - 3ae6: 4785 li a5,1 - 3ae8: c41c sw a5,8(s0) + 3af6: 4785 li a5,1 + 3af8: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3aea: 40042823 sw zero,1040(s0) + 3afa: 40042823 sw zero,1040(s0) return EOF; - 3aee: 557d li a0,-1 - 3af0: bfd9 j 3ac6 - 3af2: 557d li a0,-1 + 3afe: 557d li a0,-1 + 3b00: bfd9 j 3ad6 + 3b02: 557d li a0,-1 } - 3af4: 8082 ret + 3b04: 8082 ret -0000000000003af6 : +0000000000003b06 : { - 3af6: 7159 addi sp,sp,-112 - 3af8: fc06 sd ra,56(sp) - 3afa: e0b2 sd a2,64(sp) - 3afc: e4b6 sd a3,72(sp) - 3afe: e8ba sd a4,80(sp) - 3b00: ecbe sd a5,88(sp) - 3b02: f0c2 sd a6,96(sp) - 3b04: f4c6 sd a7,104(sp) + 3b06: 7159 addi sp,sp,-112 + 3b08: fc06 sd ra,56(sp) + 3b0a: e0b2 sd a2,64(sp) + 3b0c: e4b6 sd a3,72(sp) + 3b0e: e8ba sd a4,80(sp) + 3b10: ecbe sd a5,88(sp) + 3b12: f0c2 sd a6,96(sp) + 3b14: f4c6 sd a7,104(sp) if (!stream) - 3b06: cd19 beqz a0,3b24 + 3b16: cd19 beqz a0,3b34 va_start(ap, format); - 3b08: 832a mv t1,a0 - 3b0a: 0090 addi a2,sp,64 + 3b18: 832a mv t1,a0 + 3b1a: 0090 addi a2,sp,64 _vprintf_core(&ctx, format, ap); - 3b0c: 0808 addi a0,sp,16 + 3b1c: 0808 addi a0,sp,16 va_start(ap, format); - 3b0e: e432 sd a2,8(sp) + 3b1e: e432 sd a2,8(sp) ctx.buf = NULL; - 3b10: e802 sd zero,16(sp) + 3b20: e802 sd zero,16(sp) ctx.limit = 0; - 3b12: ec02 sd zero,24(sp) + 3b22: ec02 sd zero,24(sp) ctx.written = 0; - 3b14: f002 sd zero,32(sp) + 3b24: f002 sd zero,32(sp) ctx.stream = stream; - 3b16: f41a sd t1,40(sp) + 3b26: f41a sd t1,40(sp) _vprintf_core(&ctx, format, ap); - 3b18: d34ff0ef jal 304c <_vprintf_core.constprop.0.isra.0> + 3b28: d34ff0ef jal 305c <_vprintf_core.constprop.0.isra.0> return (int)ctx.written; - 3b1c: 5502 lw a0,32(sp) + 3b2c: 5502 lw a0,32(sp) } - 3b1e: 70e2 ld ra,56(sp) - 3b20: 6165 addi sp,sp,112 - 3b22: 8082 ret + 3b2e: 70e2 ld ra,56(sp) + 3b30: 6165 addi sp,sp,112 + 3b32: 8082 ret return -1; - 3b24: 557d li a0,-1 - 3b26: bfe5 j 3b1e + 3b34: 557d li a0,-1 + 3b36: bfe5 j 3b2e -0000000000003b28 : +0000000000003b38 : { - 3b28: 7159 addi sp,sp,-112 - 3b2a: fc06 sd ra,56(sp) - 3b2c: e0b2 sd a2,64(sp) - 3b2e: e4b6 sd a3,72(sp) - 3b30: e8ba sd a4,80(sp) - 3b32: ecbe sd a5,88(sp) - 3b34: f0c2 sd a6,96(sp) - 3b36: f4c6 sd a7,104(sp) + 3b38: 7159 addi sp,sp,-112 + 3b3a: fc06 sd ra,56(sp) + 3b3c: e0b2 sd a2,64(sp) + 3b3e: e4b6 sd a3,72(sp) + 3b40: e8ba sd a4,80(sp) + 3b42: ecbe sd a5,88(sp) + 3b44: f0c2 sd a6,96(sp) + 3b46: f4c6 sd a7,104(sp) if (!stream) - 3b38: cd19 beqz a0,3b56 + 3b48: cd19 beqz a0,3b66 ctx.fd = stream->fd; - 3b3a: 411c lw a5,0(a0) + 3b4a: 411c lw a5,0(a0) va_start(ap, format); - 3b3c: 0090 addi a2,sp,64 + 3b4c: 0090 addi a2,sp,64 int ret = _vscanf_core(&ctx, format, ap); - 3b3e: 0808 addi a0,sp,16 + 3b4e: 0808 addi a0,sp,16 ctx.fd = stream->fd; - 3b40: cc3e sw a5,24(sp) + 3b50: cc3e sw a5,24(sp) ctx.ungotten = -1; - 3b42: 57fd li a5,-1 + 3b52: 57fd li a5,-1 va_start(ap, format); - 3b44: e432 sd a2,8(sp) + 3b54: e432 sd a2,8(sp) ctx.buf = NULL; - 3b46: e802 sd zero,16(sp) + 3b56: e802 sd zero,16(sp) ctx.pos = 0; - 3b48: f002 sd zero,32(sp) + 3b58: f002 sd zero,32(sp) ctx.ungotten = -1; - 3b4a: d43e sw a5,40(sp) + 3b5a: d43e sw a5,40(sp) int ret = _vscanf_core(&ctx, format, ap); - 3b4c: e1dfc0ef jal 968 <_vscanf_core.constprop.0> + 3b5c: e1dfc0ef jal 978 <_vscanf_core.constprop.0> } - 3b50: 70e2 ld ra,56(sp) - 3b52: 6165 addi sp,sp,112 - 3b54: 8082 ret + 3b60: 70e2 ld ra,56(sp) + 3b62: 6165 addi sp,sp,112 + 3b64: 8082 ret return -1; - 3b56: 557d li a0,-1 - 3b58: bfe5 j 3b50 + 3b66: 557d li a0,-1 + 3b68: bfe5 j 3b60 -0000000000003b5a : +0000000000003b6a : if (!stream) - 3b5a: c1e1 beqz a1,3c1a + 3b6a: c1e1 beqz a1,3c2a { - 3b5c: 7179 addi sp,sp,-48 - 3b5e: e84a sd s2,16(sp) + 3b6c: 7179 addi sp,sp,-48 + 3b6e: e84a sd s2,16(sp) if (stream->buf_mode == 2) - 3b60: 41c5a903 lw s2,1052(a1) + 3b70: 41c5a903 lw s2,1052(a1) { - 3b64: f022 sd s0,32(sp) - 3b66: ec26 sd s1,24(sp) - 3b68: f406 sd ra,40(sp) + 3b74: f022 sd s0,32(sp) + 3b76: ec26 sd s1,24(sp) + 3b78: f406 sd ra,40(sp) if (stream->buf_mode == 2) - 3b6a: 4789 li a5,2 - 3b6c: 842e mv s0,a1 - 3b6e: 84aa mv s1,a0 + 3b7a: 4789 li a5,2 + 3b7c: 842e mv s0,a1 + 3b7e: 84aa mv s1,a0 char ch = (char)c; - 3b70: 0ff57713 zext.b a4,a0 + 3b80: 0ff57713 zext.b a4,a0 if (stream->buf_mode == 2) - 3b74: 02f90963 beq s2,a5,3ba6 + 3b84: 02f90963 beq s2,a5,3bb6 stream->buffer[stream->buf_write_pos++] = (char)c; - 3b78: 4105a783 lw a5,1040(a1) + 3b88: 4105a783 lw a5,1040(a1) if (stream->buf_write_pos >= BUFSIZ) - 3b7c: 3ff00693 li a3,1023 + 3b8c: 3ff00693 li a3,1023 stream->buffer[stream->buf_write_pos++] = (char)c; - 3b80: 0017861b addiw a2,a5,1 - 3b84: 40c5a823 sw a2,1040(a1) - 3b88: 97ae add a5,a5,a1 - 3b8a: 00e78823 sb a4,16(a5) + 3b90: 0017861b addiw a2,a5,1 + 3b94: 40c5a823 sw a2,1040(a1) + 3b98: 97ae add a5,a5,a1 + 3b9a: 00e78823 sb a4,16(a5) if (stream->buf_write_pos >= BUFSIZ) - 3b8e: 06c6c463 blt a3,a2,3bf6 + 3b9e: 06c6c463 blt a3,a2,3c06 else if (stream->buf_mode == 1 && c == '\n') - 3b92: 4785 li a5,1 - 3b94: 02f90e63 beq s2,a5,3bd0 + 3ba2: 4785 li a5,1 + 3ba4: 02f90e63 beq s2,a5,3be0 return c; - 3b98: 8526 mv a0,s1 -} - 3b9a: 70a2 ld ra,40(sp) - 3b9c: 7402 ld s0,32(sp) - 3b9e: 64e2 ld s1,24(sp) - 3ba0: 6942 ld s2,16(sp) - 3ba2: 6145 addi sp,sp,48 - 3ba4: 8082 ret + 3ba8: 8526 mv a0,s1 +} + 3baa: 70a2 ld ra,40(sp) + 3bac: 7402 ld s0,32(sp) + 3bae: 64e2 ld s1,24(sp) + 3bb0: 6942 ld s2,16(sp) + 3bb2: 6145 addi sp,sp,48 + 3bb4: 8082 ret if (write(stream->fd, &ch, 1) != 1) - 3ba6: 4188 lw a0,0(a1) - 3ba8: 4605 li a2,1 - 3baa: 00f10593 addi a1,sp,15 + 3bb6: 4188 lw a0,0(a1) + 3bb8: 4605 li a2,1 + 3bba: 00f10593 addi a1,sp,15 char ch = (char)c; - 3bae: 00e107a3 sb a4,15(sp) + 3bbe: 00e107a3 sb a4,15(sp) if (write(stream->fd, &ch, 1) != 1) - 3bb2: d36fc0ef jal e8 - 3bb6: 872a mv a4,a0 - 3bb8: 4785 li a5,1 + 3bc2: d2efc0ef jal f0 + 3bc6: 872a mv a4,a0 + 3bc8: 4785 li a5,1 return c; - 3bba: 8526 mv a0,s1 + 3bca: 8526 mv a0,s1 if (write(stream->fd, &ch, 1) != 1) - 3bbc: fcf70fe3 beq a4,a5,3b9a + 3bcc: fcf70fe3 beq a4,a5,3baa } - 3bc0: 70a2 ld ra,40(sp) + 3bd0: 70a2 ld ra,40(sp) stream->error = 1; - 3bc2: c41c sw a5,8(s0) + 3bd2: c41c sw a5,8(s0) } - 3bc4: 7402 ld s0,32(sp) - 3bc6: 64e2 ld s1,24(sp) - 3bc8: 6942 ld s2,16(sp) + 3bd4: 7402 ld s0,32(sp) + 3bd6: 64e2 ld s1,24(sp) + 3bd8: 6942 ld s2,16(sp) return EOF; - 3bca: 557d li a0,-1 + 3bda: 557d li a0,-1 } - 3bcc: 6145 addi sp,sp,48 - 3bce: 8082 ret + 3bdc: 6145 addi sp,sp,48 + 3bde: 8082 ret else if (stream->buf_mode == 1 && c == '\n') - 3bd0: 47a9 li a5,10 - 3bd2: fcf513e3 bne a0,a5,3b98 + 3be0: 47a9 li a5,10 + 3be2: fcf513e3 bne a0,a5,3ba8 if (stream->buf_write_pos > 0) - 3bd6: fcc051e3 blez a2,3b98 + 3be6: fcc051e3 blez a2,3ba8 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3bda: 4188 lw a0,0(a1) - 3bdc: 05c1 addi a1,a1,16 - 3bde: d0afc0ef jal e8 + 3bea: 4188 lw a0,0(a1) + 3bec: 05c1 addi a1,a1,16 + 3bee: d02fc0ef jal f0 if (ret < stream->buf_write_pos) - 3be2: 41042783 lw a5,1040(s0) - 3be6: 02f55063 bge a0,a5,3c06 + 3bf2: 41042783 lw a5,1040(s0) + 3bf6: 02f55063 bge a0,a5,3c16 stream->error = 1; - 3bea: 01242423 sw s2,8(s0) + 3bfa: 01242423 sw s2,8(s0) stream->buf_write_pos = 0; - 3bee: 40042823 sw zero,1040(s0) + 3bfe: 40042823 sw zero,1040(s0) return c; - 3bf2: 8526 mv a0,s1 - 3bf4: b75d j 3b9a + 3c02: 8526 mv a0,s1 + 3c04: b75d j 3baa int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3bf6: 4188 lw a0,0(a1) - 3bf8: 05c1 addi a1,a1,16 - 3bfa: ceefc0ef jal e8 + 3c06: 4188 lw a0,0(a1) + 3c08: 05c1 addi a1,a1,16 + 3c0a: ce6fc0ef jal f0 if (ret < stream->buf_write_pos) - 3bfe: 41042783 lw a5,1040(s0) - 3c02: 00f54663 blt a0,a5,3c0e + 3c0e: 41042783 lw a5,1040(s0) + 3c12: 00f54663 blt a0,a5,3c1e stream->buf_write_pos = 0; - 3c06: 40042823 sw zero,1040(s0) + 3c16: 40042823 sw zero,1040(s0) return c; - 3c0a: 8526 mv a0,s1 - 3c0c: b779 j 3b9a + 3c1a: 8526 mv a0,s1 + 3c1c: b779 j 3baa stream->error = 1; - 3c0e: 4785 li a5,1 - 3c10: c41c sw a5,8(s0) + 3c1e: 4785 li a5,1 + 3c20: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3c12: 40042823 sw zero,1040(s0) + 3c22: 40042823 sw zero,1040(s0) return c; - 3c16: 8526 mv a0,s1 - 3c18: b749 j 3b9a + 3c26: 8526 mv a0,s1 + 3c28: b749 j 3baa return EOF; - 3c1a: 557d li a0,-1 + 3c2a: 557d li a0,-1 } - 3c1c: 8082 ret + 3c2c: 8082 ret -0000000000003c1e : +0000000000003c2e : if (!stream) - 3c1e: c1ed beqz a1,3d00 + 3c2e: c1ed beqz a1,3d10 { - 3c20: 711d addi sp,sp,-96 - 3c22: e4a6 sd s1,72(sp) - 3c24: ec86 sd ra,88(sp) + 3c30: 711d addi sp,sp,-96 + 3c32: e4a6 sd s1,72(sp) + 3c34: ec86 sd ra,88(sp) while (*s) - 3c26: 00054703 lbu a4,0(a0) - 3c2a: 84aa mv s1,a0 - 3c2c: cf25 beqz a4,3ca4 - 3c2e: e8a2 sd s0,80(sp) - 3c30: e0ca sd s2,64(sp) - 3c32: fc4e sd s3,56(sp) - 3c34: f852 sd s4,48(sp) - 3c36: f456 sd s5,40(sp) - 3c38: f05a sd s6,32(sp) - 3c3a: ec5e sd s7,24(sp) - 3c3c: 842e mv s0,a1 + 3c36: 00054703 lbu a4,0(a0) + 3c3a: 84aa mv s1,a0 + 3c3c: cf25 beqz a4,3cb4 + 3c3e: e8a2 sd s0,80(sp) + 3c40: e0ca sd s2,64(sp) + 3c42: fc4e sd s3,56(sp) + 3c44: f852 sd s4,48(sp) + 3c46: f456 sd s5,40(sp) + 3c48: f05a sd s6,32(sp) + 3c4a: ec5e sd s7,24(sp) + 3c4c: 842e mv s0,a1 if (stream->buf_mode == 2) - 3c3e: 4909 li s2,2 + 3c4e: 4909 li s2,2 if (stream->buf_write_pos >= BUFSIZ) - 3c40: 3ff00b13 li s6,1023 + 3c50: 3ff00b13 li s6,1023 else if (stream->buf_mode == 1 && c == '\n') - 3c44: 4985 li s3,1 - 3c46: 4a29 li s4,10 + 3c54: 4985 li s3,1 + 3c56: 4a29 li s4,10 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3c48: 01058a93 addi s5,a1,16 + 3c58: 01058a93 addi s5,a1,16 if (write(stream->fd, &ch, 1) != 1) - 3c4c: 00f10b93 addi s7,sp,15 - 3c50: a031 j 3c5c + 3c5c: 00f10b93 addi s7,sp,15 + 3c60: a031 j 3c6c else if (stream->buf_mode == 1 && c == '\n') - 3c52: 09368563 beq a3,s3,3cdc + 3c62: 09368563 beq a3,s3,3cec while (*s) - 3c56: 0004c703 lbu a4,0(s1) - 3c5a: cf15 beqz a4,3c96 + 3c66: 0004c703 lbu a4,0(s1) + 3c6a: cf15 beqz a4,3ca6 if (stream->buf_mode == 2) - 3c5c: 41c42683 lw a3,1052(s0) + 3c6c: 41c42683 lw a3,1052(s0) if (fputc(*s++, stream) == EOF) - 3c60: 0485 addi s1,s1,1 + 3c70: 0485 addi s1,s1,1 if (stream->buf_mode == 2) - 3c62: 05268663 beq a3,s2,3cae + 3c72: 05268663 beq a3,s2,3cbe stream->buffer[stream->buf_write_pos++] = (char)c; - 3c66: 41042783 lw a5,1040(s0) - 3c6a: 0017861b addiw a2,a5,1 - 3c6e: 40c42823 sw a2,1040(s0) - 3c72: 97a2 add a5,a5,s0 - 3c74: 00e78823 sb a4,16(a5) + 3c76: 41042783 lw a5,1040(s0) + 3c7a: 0017861b addiw a2,a5,1 + 3c7e: 40c42823 sw a2,1040(s0) + 3c82: 97a2 add a5,a5,s0 + 3c84: 00e78823 sb a4,16(a5) if (stream->buf_write_pos >= BUFSIZ) - 3c78: fccb5de3 bge s6,a2,3c52 + 3c88: fccb5de3 bge s6,a2,3c62 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3c7c: 4008 lw a0,0(s0) - 3c7e: 85d6 mv a1,s5 - 3c80: c68fc0ef jal e8 + 3c8c: 4008 lw a0,0(s0) + 3c8e: 85d6 mv a1,s5 + 3c90: c60fc0ef jal f0 if (ret < stream->buf_write_pos) - 3c84: 41042783 lw a5,1040(s0) - 3c88: 06f54763 blt a0,a5,3cf6 + 3c94: 41042783 lw a5,1040(s0) + 3c98: 06f54763 blt a0,a5,3d06 stream->buf_write_pos = 0; - 3c8c: 40042823 sw zero,1040(s0) + 3c9c: 40042823 sw zero,1040(s0) while (*s) - 3c90: 0004c703 lbu a4,0(s1) - 3c94: f761 bnez a4,3c5c - 3c96: 6446 ld s0,80(sp) - 3c98: 6906 ld s2,64(sp) - 3c9a: 79e2 ld s3,56(sp) - 3c9c: 7a42 ld s4,48(sp) - 3c9e: 7aa2 ld s5,40(sp) - 3ca0: 7b02 ld s6,32(sp) - 3ca2: 6be2 ld s7,24(sp) -} - 3ca4: 60e6 ld ra,88(sp) - 3ca6: 64a6 ld s1,72(sp) + 3ca0: 0004c703 lbu a4,0(s1) + 3ca4: f761 bnez a4,3c6c + 3ca6: 6446 ld s0,80(sp) + 3ca8: 6906 ld s2,64(sp) + 3caa: 79e2 ld s3,56(sp) + 3cac: 7a42 ld s4,48(sp) + 3cae: 7aa2 ld s5,40(sp) + 3cb0: 7b02 ld s6,32(sp) + 3cb2: 6be2 ld s7,24(sp) +} + 3cb4: 60e6 ld ra,88(sp) + 3cb6: 64a6 ld s1,72(sp) return 0; - 3ca8: 4501 li a0,0 + 3cb8: 4501 li a0,0 } - 3caa: 6125 addi sp,sp,96 - 3cac: 8082 ret + 3cba: 6125 addi sp,sp,96 + 3cbc: 8082 ret if (write(stream->fd, &ch, 1) != 1) - 3cae: 4008 lw a0,0(s0) - 3cb0: 4605 li a2,1 - 3cb2: 85de mv a1,s7 + 3cbe: 4008 lw a0,0(s0) + 3cc0: 4605 li a2,1 + 3cc2: 85de mv a1,s7 char ch = (char)c; - 3cb4: 00e107a3 sb a4,15(sp) + 3cc4: 00e107a3 sb a4,15(sp) if (write(stream->fd, &ch, 1) != 1) - 3cb8: c30fc0ef jal e8 - 3cbc: f9350de3 beq a0,s3,3c56 + 3cc8: c28fc0ef jal f0 + 3ccc: f9350de3 beq a0,s3,3c66 stream->error = 1; - 3cc0: 01342423 sw s3,8(s0) -} - 3cc4: 60e6 ld ra,88(sp) - 3cc6: 6446 ld s0,80(sp) - 3cc8: 6906 ld s2,64(sp) - 3cca: 79e2 ld s3,56(sp) - 3ccc: 7a42 ld s4,48(sp) - 3cce: 7aa2 ld s5,40(sp) - 3cd0: 7b02 ld s6,32(sp) - 3cd2: 6be2 ld s7,24(sp) - 3cd4: 64a6 ld s1,72(sp) + 3cd0: 01342423 sw s3,8(s0) +} + 3cd4: 60e6 ld ra,88(sp) + 3cd6: 6446 ld s0,80(sp) + 3cd8: 6906 ld s2,64(sp) + 3cda: 79e2 ld s3,56(sp) + 3cdc: 7a42 ld s4,48(sp) + 3cde: 7aa2 ld s5,40(sp) + 3ce0: 7b02 ld s6,32(sp) + 3ce2: 6be2 ld s7,24(sp) + 3ce4: 64a6 ld s1,72(sp) return -1; - 3cd6: 557d li a0,-1 + 3ce6: 557d li a0,-1 } - 3cd8: 6125 addi sp,sp,96 - 3cda: 8082 ret + 3ce8: 6125 addi sp,sp,96 + 3cea: 8082 ret else if (stream->buf_mode == 1 && c == '\n') - 3cdc: f7471de3 bne a4,s4,3c56 + 3cec: f7471de3 bne a4,s4,3c66 if (stream->buf_write_pos > 0) - 3ce0: f6c05be3 blez a2,3c56 + 3cf0: f6c05be3 blez a2,3c66 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3ce4: 4008 lw a0,0(s0) - 3ce6: 01040593 addi a1,s0,16 - 3cea: bfefc0ef jal e8 + 3cf4: 4008 lw a0,0(s0) + 3cf6: 01040593 addi a1,s0,16 + 3cfa: bf6fc0ef jal f0 if (ret < stream->buf_write_pos) - 3cee: 41042783 lw a5,1040(s0) - 3cf2: f8f55de3 bge a0,a5,3c8c + 3cfe: 41042783 lw a5,1040(s0) + 3d02: f8f55de3 bge a0,a5,3c9c stream->error = 1; - 3cf6: 4785 li a5,1 - 3cf8: c41c sw a5,8(s0) + 3d06: 4785 li a5,1 + 3d08: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3cfa: 40042823 sw zero,1040(s0) + 3d0a: 40042823 sw zero,1040(s0) return EOF; - 3cfe: bfa1 j 3c56 + 3d0e: bfa1 j 3c66 return -1; - 3d00: 557d li a0,-1 + 3d10: 557d li a0,-1 } - 3d02: 8082 ret + 3d12: 8082 ret -0000000000003d04 : +0000000000003d14 : if (!stream) - 3d04: c949 beqz a0,3d96 + 3d14: c949 beqz a0,3da6 if (stream->buf_write_pos > 0) - 3d06: 41052603 lw a2,1040(a0) + 3d16: 41052603 lw a2,1040(a0) { - 3d0a: 1141 addi sp,sp,-16 - 3d0c: e022 sd s0,0(sp) - 3d0e: e406 sd ra,8(sp) - 3d10: 842a mv s0,a0 + 3d1a: 1141 addi sp,sp,-16 + 3d1c: e022 sd s0,0(sp) + 3d1e: e406 sd ra,8(sp) + 3d20: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 3d12: 04c04863 bgtz a2,3d62 + 3d22: 04c04863 bgtz a2,3d72 if (stream->buf_read_pos < stream->buf_read_cnt) - 3d16: 41442783 lw a5,1044(s0) - 3d1a: 41842703 lw a4,1048(s0) - 3d1e: 00e7dd63 bge a5,a4,3d38 + 3d26: 41442783 lw a5,1044(s0) + 3d2a: 41842703 lw a4,1048(s0) + 3d2e: 00e7dd63 bge a5,a4,3d48 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3d22: 0017871b addiw a4,a5,1 - 3d26: 40e42a23 sw a4,1044(s0) - 3d2a: 943e add s0,s0,a5 - 3d2c: 01044503 lbu a0,16(s0) -} - 3d30: 60a2 ld ra,8(sp) - 3d32: 6402 ld s0,0(sp) - 3d34: 0141 addi sp,sp,16 - 3d36: 8082 ret + 3d32: 0017871b addiw a4,a5,1 + 3d36: 40e42a23 sw a4,1044(s0) + 3d3a: 943e add s0,s0,a5 + 3d3c: 01044503 lbu a0,16(s0) +} + 3d40: 60a2 ld ra,8(sp) + 3d42: 6402 ld s0,0(sp) + 3d44: 0141 addi sp,sp,16 + 3d46: 8082 ret int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 3d38: 4008 lw a0,0(s0) - 3d3a: 40000613 li a2,1024 - 3d3e: 01040593 addi a1,s0,16 - 3d42: b9efc0ef jal e0 - 3d46: 87aa mv a5,a0 + 3d48: 4008 lw a0,0(s0) + 3d4a: 40000613 li a2,1024 + 3d4e: 01040593 addi a1,s0,16 + 3d52: b96fc0ef jal e8 + 3d56: 87aa mv a5,a0 if (ret <= 0) - 3d48: 02a05e63 blez a0,3d84 + 3d58: 02a05e63 blez a0,3d94 stream->buf_read_cnt = (int)ret; - 3d4c: 40f42c23 sw a5,1048(s0) + 3d5c: 40f42c23 sw a5,1048(s0) return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3d50: 4785 li a5,1 - 3d52: 01044503 lbu a0,16(s0) + 3d60: 4785 li a5,1 + 3d62: 01044503 lbu a0,16(s0) } - 3d56: 60a2 ld ra,8(sp) + 3d66: 60a2 ld ra,8(sp) return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3d58: 40f42a23 sw a5,1044(s0) + 3d68: 40f42a23 sw a5,1044(s0) } - 3d5c: 6402 ld s0,0(sp) - 3d5e: 0141 addi sp,sp,16 - 3d60: 8082 ret + 3d6c: 6402 ld s0,0(sp) + 3d6e: 0141 addi sp,sp,16 + 3d70: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3d62: 4108 lw a0,0(a0) - 3d64: 01040593 addi a1,s0,16 - 3d68: b80fc0ef jal e8 + 3d72: 4108 lw a0,0(a0) + 3d74: 01040593 addi a1,s0,16 + 3d78: b78fc0ef jal f0 if (ret < stream->buf_write_pos) - 3d6c: 41042783 lw a5,1040(s0) - 3d70: 00f54563 blt a0,a5,3d7a + 3d7c: 41042783 lw a5,1040(s0) + 3d80: 00f54563 blt a0,a5,3d8a stream->buf_write_pos = 0; - 3d74: 40042823 sw zero,1040(s0) - 3d78: bf79 j 3d16 + 3d84: 40042823 sw zero,1040(s0) + 3d88: bf79 j 3d26 stream->error = 1; - 3d7a: 4785 li a5,1 - 3d7c: c41c sw a5,8(s0) + 3d8a: 4785 li a5,1 + 3d8c: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3d7e: 40042823 sw zero,1040(s0) + 3d8e: 40042823 sw zero,1040(s0) return EOF; - 3d82: bf51 j 3d16 + 3d92: bf51 j 3d26 if (ret == 0) - 3d84: e509 bnez a0,3d8e + 3d94: e509 bnez a0,3d9e stream->eof = 1; - 3d86: 4785 li a5,1 - 3d88: c45c sw a5,12(s0) + 3d96: 4785 li a5,1 + 3d98: c45c sw a5,12(s0) return EOF; - 3d8a: 557d li a0,-1 - 3d8c: b755 j 3d30 + 3d9a: 557d li a0,-1 + 3d9c: b755 j 3d40 stream->error = 1; - 3d8e: 4785 li a5,1 - 3d90: c41c sw a5,8(s0) + 3d9e: 4785 li a5,1 + 3da0: c41c sw a5,8(s0) return EOF; - 3d92: 557d li a0,-1 - 3d94: bf71 j 3d30 - 3d96: 557d li a0,-1 + 3da2: 557d li a0,-1 + 3da4: bf71 j 3d40 + 3da6: 557d li a0,-1 } - 3d98: 8082 ret + 3da8: 8082 ret -0000000000003d9a : +0000000000003daa : if (!stream || n <= 0) - 3d9a: ce5d beqz a2,3e58 - 3d9c: 0ab05e63 blez a1,3e58 + 3daa: ce5d beqz a2,3e68 + 3dac: 0ab05e63 blez a1,3e68 { - 3da0: 715d addi sp,sp,-80 - 3da2: e0a2 sd s0,64(sp) - 3da4: fc26 sd s1,56(sp) - 3da6: f84a sd s2,48(sp) - 3da8: f44e sd s3,40(sp) - 3daa: f052 sd s4,32(sp) - 3dac: ec56 sd s5,24(sp) - 3dae: e85a sd s6,16(sp) - 3db0: e45e sd s7,8(sp) - 3db2: e486 sd ra,72(sp) - 3db4: 8432 mv s0,a2 - 3db6: 8aaa mv s5,a0 - 3db8: 892a mv s2,a0 - 3dba: fff58b9b addiw s7,a1,-1 + 3db0: 715d addi sp,sp,-80 + 3db2: e0a2 sd s0,64(sp) + 3db4: fc26 sd s1,56(sp) + 3db6: f84a sd s2,48(sp) + 3db8: f44e sd s3,40(sp) + 3dba: f052 sd s4,32(sp) + 3dbc: ec56 sd s5,24(sp) + 3dbe: e85a sd s6,16(sp) + 3dc0: e45e sd s7,8(sp) + 3dc2: e486 sd ra,72(sp) + 3dc4: 8432 mv s0,a2 + 3dc6: 8aaa mv s5,a0 + 3dc8: 892a mv s2,a0 + 3dca: fff58b9b addiw s7,a1,-1 int i = 0, c; - 3dbe: 4481 li s1,0 + 3dce: 4481 li s1,0 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3dc0: 01060993 addi s3,a2,16 + 3dd0: 01060993 addi s3,a2,16 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3dc4: 4b05 li s6,1 + 3dd4: 4b05 li s6,1 if (c == '\n') - 3dc6: 4a29 li s4,10 + 3dd6: 4a29 li s4,10 while (i < n - 1) - 3dc8: 05748163 beq s1,s7,3e0a + 3dd8: 05748163 beq s1,s7,3e1a if (stream->buf_write_pos > 0) - 3dcc: 41042603 lw a2,1040(s0) + 3ddc: 41042603 lw a2,1040(s0) int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3dd0: 85ce mv a1,s3 + 3de0: 85ce mv a1,s3 if (stream->buf_write_pos > 0) - 3dd2: 06c04963 bgtz a2,3e44 + 3de2: 06c04963 bgtz a2,3e54 if (stream->buf_read_pos < stream->buf_read_cnt) - 3dd6: 41442783 lw a5,1044(s0) - 3dda: 41842703 lw a4,1048(s0) + 3de6: 41442783 lw a5,1044(s0) + 3dea: 41842703 lw a4,1048(s0) int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 3dde: 40000613 li a2,1024 + 3dee: 40000613 li a2,1024 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3de2: 0017851b addiw a0,a5,1 - 3de6: 00f406b3 add a3,s0,a5 + 3df2: 0017851b addiw a0,a5,1 + 3df6: 00f406b3 add a3,s0,a5 int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 3dea: 85ce mv a1,s3 + 3dfa: 85ce mv a1,s3 if (stream->buf_read_pos < stream->buf_read_cnt) - 3dec: 02e7de63 bge a5,a4,3e28 + 3dfc: 02e7de63 bge a5,a4,3e38 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3df0: 40a42a23 sw a0,1044(s0) - 3df4: 0106c783 lbu a5,16(a3) - 3df8: 0007871b sext.w a4,a5 + 3e00: 40a42a23 sw a0,1044(s0) + 3e04: 0106c783 lbu a5,16(a3) + 3e08: 0007871b sext.w a4,a5 str[i++] = (char)c; - 3dfc: 00f90023 sb a5,0(s2) - 3e00: 2485 addiw s1,s1,1 + 3e0c: 00f90023 sb a5,0(s2) + 3e10: 2485 addiw s1,s1,1 if (c == '\n') - 3e02: 0905 addi s2,s2,1 - 3e04: fd4712e3 bne a4,s4,3dc8 + 3e12: 0905 addi s2,s2,1 + 3e14: fd4712e3 bne a4,s4,3dd8 str[i++] = (char)c; - 3e08: 8ba6 mv s7,s1 + 3e18: 8ba6 mv s7,s1 str[i] = '\0'; - 3e0a: 9bd6 add s7,s7,s5 - 3e0c: 000b8023 sb zero,0(s7) + 3e1a: 9bd6 add s7,s7,s5 + 3e1c: 000b8023 sb zero,0(s7) return str; - 3e10: 8556 mv a0,s5 -} - 3e12: 60a6 ld ra,72(sp) - 3e14: 6406 ld s0,64(sp) - 3e16: 74e2 ld s1,56(sp) - 3e18: 7942 ld s2,48(sp) - 3e1a: 79a2 ld s3,40(sp) - 3e1c: 7a02 ld s4,32(sp) - 3e1e: 6ae2 ld s5,24(sp) - 3e20: 6b42 ld s6,16(sp) - 3e22: 6ba2 ld s7,8(sp) - 3e24: 6161 addi sp,sp,80 - 3e26: 8082 ret + 3e20: 8556 mv a0,s5 +} + 3e22: 60a6 ld ra,72(sp) + 3e24: 6406 ld s0,64(sp) + 3e26: 74e2 ld s1,56(sp) + 3e28: 7942 ld s2,48(sp) + 3e2a: 79a2 ld s3,40(sp) + 3e2c: 7a02 ld s4,32(sp) + 3e2e: 6ae2 ld s5,24(sp) + 3e30: 6b42 ld s6,16(sp) + 3e32: 6ba2 ld s7,8(sp) + 3e34: 6161 addi sp,sp,80 + 3e36: 8082 ret int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 3e28: 4008 lw a0,0(s0) - 3e2a: ab6fc0ef jal e0 + 3e38: 4008 lw a0,0(s0) + 3e3a: aaefc0ef jal e8 if (ret <= 0) - 3e2e: 02a05c63 blez a0,3e66 + 3e3e: 02a05c63 blez a0,3e76 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3e32: 01044783 lbu a5,16(s0) + 3e42: 01044783 lbu a5,16(s0) stream->buf_read_cnt = (int)ret; - 3e36: 40a42c23 sw a0,1048(s0) + 3e46: 40a42c23 sw a0,1048(s0) return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 3e3a: 41642a23 sw s6,1044(s0) - 3e3e: 0007871b sext.w a4,a5 + 3e4a: 41642a23 sw s6,1044(s0) + 3e4e: 0007871b sext.w a4,a5 if (c == -1) - 3e42: bf6d j 3dfc + 3e52: bf6d j 3e0c int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3e44: 4008 lw a0,0(s0) - 3e46: aa2fc0ef jal e8 + 3e54: 4008 lw a0,0(s0) + 3e56: a9afc0ef jal f0 if (ret < stream->buf_write_pos) - 3e4a: 41042783 lw a5,1040(s0) - 3e4e: 00f54763 blt a0,a5,3e5c + 3e5a: 41042783 lw a5,1040(s0) + 3e5e: 00f54763 blt a0,a5,3e6c stream->buf_write_pos = 0; - 3e52: 40042823 sw zero,1040(s0) - 3e56: b741 j 3dd6 + 3e62: 40042823 sw zero,1040(s0) + 3e66: b741 j 3de6 return NULL; - 3e58: 4501 li a0,0 + 3e68: 4501 li a0,0 } - 3e5a: 8082 ret + 3e6a: 8082 ret stream->error = 1; - 3e5c: 4785 li a5,1 - 3e5e: c41c sw a5,8(s0) + 3e6c: 4785 li a5,1 + 3e6e: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3e60: 40042823 sw zero,1040(s0) + 3e70: 40042823 sw zero,1040(s0) return EOF; - 3e64: bf8d j 3dd6 + 3e74: bf8d j 3de6 stream->eof = 1; - 3e66: 4785 li a5,1 + 3e76: 4785 li a5,1 if (ret == 0) - 3e68: e509 bnez a0,3e72 + 3e78: e509 bnez a0,3e82 stream->eof = 1; - 3e6a: c45c sw a5,12(s0) + 3e7a: c45c sw a5,12(s0) if (i == 0) - 3e6c: fcd1 bnez s1,3e08 + 3e7c: fcd1 bnez s1,3e18 return NULL; - 3e6e: 4501 li a0,0 - 3e70: b74d j 3e12 + 3e7e: 4501 li a0,0 + 3e80: b74d j 3e22 stream->error = 1; - 3e72: c41c sw a5,8(s0) + 3e82: c41c sw a5,8(s0) if (c == -1) - 3e74: bfe5 j 3e6c + 3e84: bfe5 j 3e7c -0000000000003e76 : +0000000000003e86 : { - 3e76: 715d addi sp,sp,-80 - 3e78: e486 sd ra,72(sp) - 3e7a: f44e sd s3,40(sp) + 3e86: 715d addi sp,sp,-80 + 3e88: e486 sd ra,72(sp) + 3e8a: f44e sd s3,40(sp) if (!stream || size == 0 || nmemb == 0) - 3e7c: 0e068963 beqz a3,3f6e - 3e80: ec56 sd s5,24(sp) + 3e8c: 0e068963 beqz a3,3f7e + 3e90: ec56 sd s5,24(sp) return 0; - 3e82: 4981 li s3,0 - 3e84: 8aae mv s5,a1 + 3e92: 4981 li s3,0 + 3e94: 8aae mv s5,a1 if (!stream || size == 0 || nmemb == 0) - 3e86: c9bd beqz a1,3efc - 3e88: ca35 beqz a2,3efc + 3e96: c9bd beqz a1,3f0c + 3e98: ca35 beqz a2,3f0c if (stream->buf_write_pos > 0) - 3e8a: 4106a783 lw a5,1040(a3) - 3e8e: e0a2 sd s0,64(sp) - 3e90: f052 sd s4,32(sp) + 3e9a: 4106a783 lw a5,1040(a3) + 3e9e: e0a2 sd s0,64(sp) + 3ea0: f052 sd s4,32(sp) uint64 total_bytes = size * nmemb; - 3e92: 02c589b3 mul s3,a1,a2 - 3e96: 8436 mv s0,a3 - 3e98: 8a2a mv s4,a0 + 3ea2: 02c589b3 mul s3,a1,a2 + 3ea6: 8436 mv s0,a3 + 3ea8: 8a2a mv s4,a0 if (stream->buf_write_pos > 0) - 3e9a: 0af04d63 bgtz a5,3f54 + 3eaa: 0af04d63 bgtz a5,3f64 while (bytes_read < total_bytes) - 3e9e: 04098d63 beqz s3,3ef8 - 3ea2: fc26 sd s1,56(sp) - 3ea4: e85a sd s6,16(sp) - 3ea6: e45e sd s7,8(sp) - 3ea8: f84a sd s2,48(sp) - 3eaa: 4481 li s1,0 + 3eae: 04098d63 beqz s3,3f08 + 3eb2: fc26 sd s1,56(sp) + 3eb4: e85a sd s6,16(sp) + 3eb6: e45e sd s7,8(sp) + 3eb8: f84a sd s2,48(sp) + 3eba: 4481 li s1,0 if (remaining >= BUFSIZ) - 3eac: 3ff00b13 li s6,1023 + 3ebc: 3ff00b13 li s6,1023 int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 3eb0: 01040b93 addi s7,s0,16 + 3ec0: 01040b93 addi s7,s0,16 if (stream->buf_read_pos < stream->buf_read_cnt) - 3eb4: 41442703 lw a4,1044(s0) - 3eb8: 41842783 lw a5,1048(s0) + 3ec4: 41442703 lw a4,1044(s0) + 3ec8: 41842783 lw a5,1048(s0) uint64 remaining = total_bytes - bytes_read; - 3ebc: 40998633 sub a2,s3,s1 + 3ecc: 40998633 sub a2,s3,s1 if (stream->buf_read_pos < stream->buf_read_cnt) - 3ec0: 06f74463 blt a4,a5,3f28 + 3ed0: 06f74463 blt a4,a5,3f38 int64 ret = read(stream->fd, dst + bytes_read, remaining); - 3ec4: 4008 lw a0,0(s0) - 3ec6: 009a05b3 add a1,s4,s1 + 3ed4: 4008 lw a0,0(s0) + 3ed6: 009a05b3 add a1,s4,s1 if (remaining >= BUFSIZ) - 3eca: 02cb7f63 bgeu s6,a2,3f08 + 3eda: 02cb7f63 bgeu s6,a2,3f18 int64 ret = read(stream->fd, dst + bytes_read, remaining); - 3ece: a12fc0ef jal e0 + 3ede: a0afc0ef jal e8 if (ret <= 0) - 3ed2: 0aa05463 blez a0,3f7a + 3ee2: 0aa05463 blez a0,3f8a bytes_read += ret; - 3ed6: 94aa add s1,s1,a0 + 3ee6: 94aa add s1,s1,a0 while (bytes_read < total_bytes) - 3ed8: fd34eee3 bltu s1,s3,3eb4 + 3ee8: fd34eee3 bltu s1,s3,3ec4 return bytes_read / size; - 3edc: 0354d9b3 divu s3,s1,s5 - 3ee0: 6406 ld s0,64(sp) + 3eec: 0354d9b3 divu s3,s1,s5 + 3ef0: 6406 ld s0,64(sp) } - 3ee2: 60a6 ld ra,72(sp) + 3ef2: 60a6 ld ra,72(sp) return bytes_read / size; - 3ee4: 74e2 ld s1,56(sp) - 3ee6: 7942 ld s2,48(sp) - 3ee8: 7a02 ld s4,32(sp) - 3eea: 6ae2 ld s5,24(sp) - 3eec: 6b42 ld s6,16(sp) - 3eee: 6ba2 ld s7,8(sp) -} - 3ef0: 854e mv a0,s3 - 3ef2: 79a2 ld s3,40(sp) - 3ef4: 6161 addi sp,sp,80 - 3ef6: 8082 ret - 3ef8: 6406 ld s0,64(sp) - 3efa: 7a02 ld s4,32(sp) - 3efc: 60a6 ld ra,72(sp) - 3efe: 6ae2 ld s5,24(sp) + 3ef4: 74e2 ld s1,56(sp) + 3ef6: 7942 ld s2,48(sp) + 3ef8: 7a02 ld s4,32(sp) + 3efa: 6ae2 ld s5,24(sp) + 3efc: 6b42 ld s6,16(sp) + 3efe: 6ba2 ld s7,8(sp) +} 3f00: 854e mv a0,s3 3f02: 79a2 ld s3,40(sp) 3f04: 6161 addi sp,sp,80 3f06: 8082 ret + 3f08: 6406 ld s0,64(sp) + 3f0a: 7a02 ld s4,32(sp) + 3f0c: 60a6 ld ra,72(sp) + 3f0e: 6ae2 ld s5,24(sp) + 3f10: 854e mv a0,s3 + 3f12: 79a2 ld s3,40(sp) + 3f14: 6161 addi sp,sp,80 + 3f16: 8082 ret stream->buf_read_pos = 0; - 3f08: 40042a23 sw zero,1044(s0) + 3f18: 40042a23 sw zero,1044(s0) stream->buf_read_cnt = 0; - 3f0c: 40042c23 sw zero,1048(s0) + 3f1c: 40042c23 sw zero,1048(s0) int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 3f10: 40000613 li a2,1024 - 3f14: 85de mv a1,s7 - 3f16: 9cafc0ef jal e0 + 3f20: 40000613 li a2,1024 + 3f24: 85de mv a1,s7 + 3f26: 9c2fc0ef jal e8 if (ret <= 0) - 3f1a: 06a05063 blez a0,3f7a + 3f2a: 06a05063 blez a0,3f8a stream->buf_read_cnt = (int)ret; - 3f1e: 40a42c23 sw a0,1048(s0) + 3f2e: 40a42c23 sw a0,1048(s0) while (bytes_read < total_bytes) - 3f22: f934e9e3 bltu s1,s3,3eb4 - 3f26: bf5d j 3edc + 3f32: f934e9e3 bltu s1,s3,3ec4 + 3f36: bf5d j 3eec uint64 available = stream->buf_read_cnt - stream->buf_read_pos; - 3f28: 40e7893b subw s2,a5,a4 + 3f38: 40e7893b subw s2,a5,a4 memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); - 3f2c: 00eb85b3 add a1,s7,a4 - 3f30: 009a0533 add a0,s4,s1 + 3f3c: 00eb85b3 add a1,s7,a4 + 3f40: 009a0533 add a0,s4,s1 uint64 to_copy = (available < remaining) ? available : remaining; - 3f34: 01267363 bgeu a2,s2,3f3a - 3f38: 8932 mv s2,a2 + 3f44: 01267363 bgeu a2,s2,3f4a + 3f48: 8932 mv s2,a2 memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); - 3f3a: 864a mv a2,s2 - 3f3c: 3e1000ef jal 4b1c + 3f4a: 864a mv a2,s2 + 3f4c: 3e1000ef jal 4b2c stream->buf_read_pos += to_copy; - 3f40: 41442783 lw a5,1044(s0) + 3f50: 41442783 lw a5,1044(s0) bytes_read += to_copy; - 3f44: 94ca add s1,s1,s2 + 3f54: 94ca add s1,s1,s2 stream->buf_read_pos += to_copy; - 3f46: 012787bb addw a5,a5,s2 - 3f4a: 40f42a23 sw a5,1044(s0) + 3f56: 012787bb addw a5,a5,s2 + 3f5a: 40f42a23 sw a5,1044(s0) while (bytes_read < total_bytes) - 3f4e: f734e3e3 bltu s1,s3,3eb4 - 3f52: b769 j 3edc + 3f5e: f734e3e3 bltu s1,s3,3ec4 + 3f62: b769 j 3eec int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3f54: 4288 lw a0,0(a3) - 3f56: 863e mv a2,a5 - 3f58: 01068593 addi a1,a3,16 - 3f5c: 98cfc0ef jal e8 + 3f64: 4288 lw a0,0(a3) + 3f66: 863e mv a2,a5 + 3f68: 01068593 addi a1,a3,16 + 3f6c: 984fc0ef jal f0 if (ret < stream->buf_write_pos) - 3f60: 41042783 lw a5,1040(s0) - 3f64: 02f54163 blt a0,a5,3f86 + 3f70: 41042783 lw a5,1040(s0) + 3f74: 02f54163 blt a0,a5,3f96 stream->buf_write_pos = 0; - 3f68: 40042823 sw zero,1040(s0) - 3f6c: bf0d j 3e9e + 3f78: 40042823 sw zero,1040(s0) + 3f7c: bf0d j 3eae } - 3f6e: 60a6 ld ra,72(sp) + 3f7e: 60a6 ld ra,72(sp) return 0; - 3f70: 4981 li s3,0 + 3f80: 4981 li s3,0 } - 3f72: 854e mv a0,s3 - 3f74: 79a2 ld s3,40(sp) - 3f76: 6161 addi sp,sp,80 - 3f78: 8082 ret + 3f82: 854e mv a0,s3 + 3f84: 79a2 ld s3,40(sp) + 3f86: 6161 addi sp,sp,80 + 3f88: 8082 ret stream->eof = 1; - 3f7a: 4785 li a5,1 + 3f8a: 4785 li a5,1 if (ret == 0) - 3f7c: e119 bnez a0,3f82 + 3f8c: e119 bnez a0,3f92 stream->eof = 1; - 3f7e: c45c sw a5,12(s0) - 3f80: bfb1 j 3edc + 3f8e: c45c sw a5,12(s0) + 3f90: bfb1 j 3eec stream->error = 1; - 3f82: c41c sw a5,8(s0) + 3f92: c41c sw a5,8(s0) return bytes_read / size; - 3f84: bfa1 j 3edc + 3f94: bfa1 j 3eec stream->error = 1; - 3f86: 4785 li a5,1 - 3f88: c41c sw a5,8(s0) + 3f96: 4785 li a5,1 + 3f98: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 3f8a: 40042823 sw zero,1040(s0) + 3f9a: 40042823 sw zero,1040(s0) return EOF; - 3f8e: bf01 j 3e9e + 3f9e: bf01 j 3eae -0000000000003f90 : +0000000000003fa0 : { - 3f90: 711d addi sp,sp,-96 - 3f92: ec86 sd ra,88(sp) - 3f94: e0ca sd s2,64(sp) + 3fa0: 711d addi sp,sp,-96 + 3fa2: ec86 sd ra,88(sp) + 3fa4: e0ca sd s2,64(sp) if (!stream || !ptr || size == 0 || nmemb == 0) - 3f96: 10068063 beqz a3,4096 - 3f9a: f456 sd s5,40(sp) - 3f9c: 8aaa mv s5,a0 - 3f9e: 10050263 beqz a0,40a2 - 3fa2: f05a sd s6,32(sp) + 3fa6: 10068063 beqz a3,40a6 + 3faa: f456 sd s5,40(sp) + 3fac: 8aaa mv s5,a0 + 3fae: 10050263 beqz a0,40b2 + 3fb2: f05a sd s6,32(sp) return 0; - 3fa4: 4901 li s2,0 - 3fa6: 8b2e mv s6,a1 + 3fb4: 4901 li s2,0 + 3fb6: 8b2e mv s6,a1 if (!stream || !ptr || size == 0 || nmemb == 0) - 3fa8: c1d9 beqz a1,402e - 3faa: c251 beqz a2,402e + 3fb8: c1d9 beqz a1,403e + 3fba: c251 beqz a2,403e if (stream->buf_mode == 2) - 3fac: 41c6a703 lw a4,1052(a3) - 3fb0: e8a2 sd s0,80(sp) - 3fb2: 4789 li a5,2 + 3fbc: 41c6a703 lw a4,1052(a3) + 3fc0: e8a2 sd s0,80(sp) + 3fc2: 4789 li a5,2 uint64 total_bytes = size * nmemb; - 3fb4: 02c58933 mul s2,a1,a2 + 3fc4: 02c58933 mul s2,a1,a2 if (stream->buf_mode == 2) - 3fb8: 8436 mv s0,a3 - 3fba: 0ef70b63 beq a4,a5,40b0 - 3fbe: fc4e sd s3,56(sp) - 3fc0: ec5e sd s7,24(sp) - 3fc2: e862 sd s8,16(sp) + 3fc8: 8436 mv s0,a3 + 3fca: 0ef70b63 beq a4,a5,40c0 + 3fce: fc4e sd s3,56(sp) + 3fd0: ec5e sd s7,24(sp) + 3fd2: e862 sd s8,16(sp) uint64 bytes_written = 0; - 3fc4: 4981 li s3,0 - 3fc6: 01068b93 addi s7,a3,16 + 3fd4: 4981 li s3,0 + 3fd6: 01068b93 addi s7,a3,16 uint64 space_left = BUFSIZ - stream->buf_write_pos; - 3fca: 40000c13 li s8,1024 + 3fda: 40000c13 li s8,1024 while (bytes_written < total_bytes) - 3fce: 12090263 beqz s2,40f2 - 3fd2: e4a6 sd s1,72(sp) - 3fd4: f852 sd s4,48(sp) - 3fd6: e466 sd s9,8(sp) + 3fde: 12090263 beqz s2,4102 + 3fe2: e4a6 sd s1,72(sp) + 3fe4: f852 sd s4,48(sp) + 3fe6: e466 sd s9,8(sp) uint64 space_left = BUFSIZ - stream->buf_write_pos; - 3fd8: 41042783 lw a5,1040(s0) + 3fe8: 41042783 lw a5,1040(s0) uint64 remaining = total_bytes - bytes_written; - 3fdc: 41390cb3 sub s9,s2,s3 + 3fec: 41390cb3 sub s9,s2,s3 memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); - 3fe0: 013a85b3 add a1,s5,s3 + 3ff0: 013a85b3 add a1,s5,s3 uint64 space_left = BUFSIZ - stream->buf_write_pos; - 3fe4: 40fc0a3b subw s4,s8,a5 + 3ff4: 40fc0a3b subw s4,s8,a5 memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); - 3fe8: 00fb8533 add a0,s7,a5 - 3fec: 8652 mv a2,s4 + 3ff8: 00fb8533 add a0,s7,a5 + 3ffc: 8652 mv a2,s4 if (remaining <= space_left) - 3fee: 059a6763 bltu s4,s9,403c + 3ffe: 059a6763 bltu s4,s9,404c memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); - 3ff2: 8666 mv a2,s9 - 3ff4: 329000ef jal 4b1c + 4002: 8666 mv a2,s9 + 4004: 329000ef jal 4b2c stream->buf_write_pos += remaining; - 3ff8: 41042783 lw a5,1040(s0) + 4008: 41042783 lw a5,1040(s0) if (stream->buf_write_pos == BUFSIZ) - 3ffc: 40000713 li a4,1024 + 400c: 40000713 li a4,1024 stream->buf_write_pos += remaining; - 4000: 019786bb addw a3,a5,s9 - 4004: 40d42823 sw a3,1040(s0) + 4010: 019786bb addw a3,a5,s9 + 4014: 40d42823 sw a3,1040(s0) if (stream->buf_write_pos == BUFSIZ) - 4008: 06e68a63 beq a3,a4,407c + 4018: 06e68a63 beq a3,a4,408c return bytes_written / size; - 400c: 03695933 divu s2,s2,s6 - 4010: 6446 ld s0,80(sp) - 4012: 64a6 ld s1,72(sp) - 4014: 79e2 ld s3,56(sp) - 4016: 7a42 ld s4,48(sp) - 4018: 7aa2 ld s5,40(sp) - 401a: 7b02 ld s6,32(sp) - 401c: 6be2 ld s7,24(sp) - 401e: 6c42 ld s8,16(sp) - 4020: 6ca2 ld s9,8(sp) -} - 4022: 60e6 ld ra,88(sp) - 4024: 854a mv a0,s2 - 4026: 6906 ld s2,64(sp) - 4028: 6125 addi sp,sp,96 - 402a: 8082 ret - 402c: 6446 ld s0,80(sp) - 402e: 60e6 ld ra,88(sp) - 4030: 7aa2 ld s5,40(sp) - 4032: 7b02 ld s6,32(sp) + 401c: 03695933 divu s2,s2,s6 + 4020: 6446 ld s0,80(sp) + 4022: 64a6 ld s1,72(sp) + 4024: 79e2 ld s3,56(sp) + 4026: 7a42 ld s4,48(sp) + 4028: 7aa2 ld s5,40(sp) + 402a: 7b02 ld s6,32(sp) + 402c: 6be2 ld s7,24(sp) + 402e: 6c42 ld s8,16(sp) + 4030: 6ca2 ld s9,8(sp) +} + 4032: 60e6 ld ra,88(sp) 4034: 854a mv a0,s2 4036: 6906 ld s2,64(sp) 4038: 6125 addi sp,sp,96 403a: 8082 ret + 403c: 6446 ld s0,80(sp) + 403e: 60e6 ld ra,88(sp) + 4040: 7aa2 ld s5,40(sp) + 4042: 7b02 ld s6,32(sp) + 4044: 854a mv a0,s2 + 4046: 6906 ld s2,64(sp) + 4048: 6125 addi sp,sp,96 + 404a: 8082 ret memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); - 403c: 2e1000ef jal 4b1c + 404c: 2e1000ef jal 4b2c stream->buf_write_pos += space_left; - 4040: 41042783 lw a5,1040(s0) + 4050: 41042783 lw a5,1040(s0) int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4044: 85de mv a1,s7 + 4054: 85de mv a1,s7 bytes_written += space_left; - 4046: 99d2 add s3,s3,s4 + 4056: 99d2 add s3,s3,s4 stream->buf_write_pos += space_left; - 4048: 00fa04bb addw s1,s4,a5 + 4058: 00fa04bb addw s1,s4,a5 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 404c: 02049613 slli a2,s1,0x20 + 405c: 02049613 slli a2,s1,0x20 stream->buf_write_pos += space_left; - 4050: 40942823 sw s1,1040(s0) + 4060: 40942823 sw s1,1040(s0) int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4054: 9201 srli a2,a2,0x20 + 4064: 9201 srli a2,a2,0x20 if (stream->buf_write_pos > 0) - 4056: 00904763 bgtz s1,4064 + 4066: 00904763 bgtz s1,4074 while (bytes_written < total_bytes) - 405a: f729efe3 bltu s3,s2,3fd8 + 406a: f729efe3 bltu s3,s2,3fe8 return bytes_written / size; - 405e: 0369d933 divu s2,s3,s6 - 4062: b77d j 4010 + 406e: 0369d933 divu s2,s3,s6 + 4072: b77d j 4020 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4064: 4008 lw a0,0(s0) - 4066: 882fc0ef jal e8 + 4074: 4008 lw a0,0(s0) + 4076: 87afc0ef jal f0 if (ret < stream->buf_write_pos) - 406a: 41042783 lw a5,1040(s0) - 406e: 08f54963 blt a0,a5,4100 + 407a: 41042783 lw a5,1040(s0) + 407e: 08f54963 blt a0,a5,4110 stream->buf_write_pos = 0; - 4072: 40042823 sw zero,1040(s0) + 4082: 40042823 sw zero,1040(s0) while (bytes_written < total_bytes) - 4076: f729e1e3 bltu s3,s2,3fd8 - 407a: b7d5 j 405e + 4086: f729e1e3 bltu s3,s2,3fe8 + 408a: b7d5 j 406e int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 407c: 4008 lw a0,0(s0) - 407e: 40000613 li a2,1024 - 4082: 85de mv a1,s7 - 4084: 864fc0ef jal e8 + 408c: 4008 lw a0,0(s0) + 408e: 40000613 li a2,1024 + 4092: 85de mv a1,s7 + 4094: 85cfc0ef jal f0 if (ret < stream->buf_write_pos) - 4088: 41042783 lw a5,1040(s0) - 408c: 08f54163 blt a0,a5,410e + 4098: 41042783 lw a5,1040(s0) + 409c: 08f54163 blt a0,a5,411e stream->buf_write_pos = 0; - 4090: 40042823 sw zero,1040(s0) - 4094: bfa5 j 400c + 40a0: 40042823 sw zero,1040(s0) + 40a4: bfa5 j 401c } - 4096: 60e6 ld ra,88(sp) + 40a6: 60e6 ld ra,88(sp) return 0; - 4098: 4901 li s2,0 + 40a8: 4901 li s2,0 } - 409a: 854a mv a0,s2 - 409c: 6906 ld s2,64(sp) - 409e: 6125 addi sp,sp,96 - 40a0: 8082 ret - 40a2: 60e6 ld ra,88(sp) + 40aa: 854a mv a0,s2 + 40ac: 6906 ld s2,64(sp) + 40ae: 6125 addi sp,sp,96 + 40b0: 8082 ret + 40b2: 60e6 ld ra,88(sp) return 0; - 40a4: 4901 li s2,0 - 40a6: 7aa2 ld s5,40(sp) + 40b4: 4901 li s2,0 + 40b6: 7aa2 ld s5,40(sp) } - 40a8: 854a mv a0,s2 - 40aa: 6906 ld s2,64(sp) - 40ac: 6125 addi sp,sp,96 - 40ae: 8082 ret + 40b8: 854a mv a0,s2 + 40ba: 6906 ld s2,64(sp) + 40bc: 6125 addi sp,sp,96 + 40be: 8082 ret while (bytes_written < total_bytes) - 40b0: f6090ee3 beqz s2,402c - 40b4: e4a6 sd s1,72(sp) + 40c0: f6090ee3 beqz s2,403c + 40c4: e4a6 sd s1,72(sp) uint64 bytes_written = 0; - 40b6: 4481 li s1,0 - 40b8: a021 j 40c0 + 40c6: 4481 li s1,0 + 40c8: a021 j 40d0 bytes_written += ret; - 40ba: 94aa add s1,s1,a0 + 40ca: 94aa add s1,s1,a0 while (bytes_written < total_bytes) - 40bc: 0324f463 bgeu s1,s2,40e4 + 40cc: 0324f463 bgeu s1,s2,40f4 int64 ret = write(stream->fd, src + bytes_written, total_bytes - bytes_written); - 40c0: 4008 lw a0,0(s0) - 40c2: 40990633 sub a2,s2,s1 - 40c6: 009a85b3 add a1,s5,s1 - 40ca: 81efc0ef jal e8 + 40d0: 4008 lw a0,0(s0) + 40d2: 40990633 sub a2,s2,s1 + 40d6: 009a85b3 add a1,s5,s1 + 40da: 816fc0ef jal f0 if (ret <= 0) - 40ce: fea046e3 bgtz a0,40ba + 40de: fea046e3 bgtz a0,40ca stream->error = 1; - 40d2: 4785 li a5,1 + 40e2: 4785 li a5,1 return bytes_written / size; - 40d4: 0364d933 divu s2,s1,s6 + 40e4: 0364d933 divu s2,s1,s6 stream->error = 1; - 40d8: c41c sw a5,8(s0) + 40e8: c41c sw a5,8(s0) break; - 40da: 64a6 ld s1,72(sp) - 40dc: 6446 ld s0,80(sp) - 40de: 7aa2 ld s5,40(sp) - 40e0: 7b02 ld s6,32(sp) - 40e2: b781 j 4022 - return bytes_written / size; - 40e4: 0364d933 divu s2,s1,s6 - 40e8: 6446 ld s0,80(sp) 40ea: 64a6 ld s1,72(sp) - 40ec: 7aa2 ld s5,40(sp) - 40ee: 7b02 ld s6,32(sp) - 40f0: bf0d j 4022 - 40f2: 6446 ld s0,80(sp) - 40f4: 79e2 ld s3,56(sp) - 40f6: 7aa2 ld s5,40(sp) - 40f8: 7b02 ld s6,32(sp) - 40fa: 6be2 ld s7,24(sp) - 40fc: 6c42 ld s8,16(sp) - 40fe: b715 j 4022 + 40ec: 6446 ld s0,80(sp) + 40ee: 7aa2 ld s5,40(sp) + 40f0: 7b02 ld s6,32(sp) + 40f2: b781 j 4032 + return bytes_written / size; + 40f4: 0364d933 divu s2,s1,s6 + 40f8: 6446 ld s0,80(sp) + 40fa: 64a6 ld s1,72(sp) + 40fc: 7aa2 ld s5,40(sp) + 40fe: 7b02 ld s6,32(sp) + 4100: bf0d j 4032 + 4102: 6446 ld s0,80(sp) + 4104: 79e2 ld s3,56(sp) + 4106: 7aa2 ld s5,40(sp) + 4108: 7b02 ld s6,32(sp) + 410a: 6be2 ld s7,24(sp) + 410c: 6c42 ld s8,16(sp) + 410e: b715 j 4032 stream->error = 1; - 4100: 4785 li a5,1 - 4102: c41c sw a5,8(s0) + 4110: 4785 li a5,1 + 4112: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4104: 40042823 sw zero,1040(s0) + 4114: 40042823 sw zero,1040(s0) while (bytes_written < total_bytes) - 4108: ed29e8e3 bltu s3,s2,3fd8 - 410c: bf89 j 405e + 4118: ed29e8e3 bltu s3,s2,3fe8 + 411c: bf89 j 406e stream->error = 1; - 410e: 4785 li a5,1 - 4110: c41c sw a5,8(s0) + 411e: 4785 li a5,1 + 4120: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4112: 40042823 sw zero,1040(s0) + 4122: 40042823 sw zero,1040(s0) return EOF; - 4116: bddd j 400c + 4126: bddd j 401c -0000000000004118 : +0000000000004128 : if (!stream) - 4118: c925 beqz a0,4188 + 4128: c925 beqz a0,4198 { - 411a: 1101 addi sp,sp,-32 - 411c: e04a sd s2,0(sp) - 411e: 8932 mv s2,a2 + 412a: 1101 addi sp,sp,-32 + 412c: e04a sd s2,0(sp) + 412e: 8932 mv s2,a2 if (stream->buf_write_pos > 0) - 4120: 41052603 lw a2,1040(a0) + 4130: 41052603 lw a2,1040(a0) { - 4124: e822 sd s0,16(sp) - 4126: e426 sd s1,8(sp) - 4128: ec06 sd ra,24(sp) - 412a: 842a mv s0,a0 - 412c: 84ae mv s1,a1 + 4134: e822 sd s0,16(sp) + 4136: e426 sd s1,8(sp) + 4138: ec06 sd ra,24(sp) + 413a: 842a mv s0,a0 + 413c: 84ae mv s1,a1 if (stream->buf_write_pos > 0) - 412e: 02c04863 bgtz a2,415e + 413e: 02c04863 bgtz a2,416e if (lseek(stream->fd, offset, whence) < 0) - 4132: 4008 lw a0,0(s0) + 4142: 4008 lw a0,0(s0) stream->buf_read_pos = 0; - 4134: 40042a23 sw zero,1044(s0) + 4144: 40042a23 sw zero,1044(s0) stream->buf_read_cnt = 0; - 4138: 40042c23 sw zero,1048(s0) + 4148: 40042c23 sw zero,1048(s0) stream->eof = 0; - 413c: 00042623 sw zero,12(s0) + 414c: 00042623 sw zero,12(s0) if (lseek(stream->fd, offset, whence) < 0) - 4140: 864a mv a2,s2 - 4142: 0004859b sext.w a1,s1 - 4146: 832fc0ef jal 178 - 414a: 87aa mv a5,a0 + 4150: 864a mv a2,s2 + 4152: 0004859b sext.w a1,s1 + 4156: 82afc0ef jal 180 + 415a: 87aa mv a5,a0 return 0; - 414c: 4501 li a0,0 + 415c: 4501 li a0,0 if (lseek(stream->fd, offset, whence) < 0) - 414e: 0207c463 bltz a5,4176 -} - 4152: 60e2 ld ra,24(sp) - 4154: 6442 ld s0,16(sp) - 4156: 64a2 ld s1,8(sp) - 4158: 6902 ld s2,0(sp) - 415a: 6105 addi sp,sp,32 - 415c: 8082 ret + 415e: 0207c463 bltz a5,4186 +} + 4162: 60e2 ld ra,24(sp) + 4164: 6442 ld s0,16(sp) + 4166: 64a2 ld s1,8(sp) + 4168: 6902 ld s2,0(sp) + 416a: 6105 addi sp,sp,32 + 416c: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 415e: 4108 lw a0,0(a0) - 4160: 01040593 addi a1,s0,16 - 4164: f85fb0ef jal e8 + 416e: 4108 lw a0,0(a0) + 4170: 01040593 addi a1,s0,16 + 4174: f7dfb0ef jal f0 if (ret < stream->buf_write_pos) - 4168: 41042783 lw a5,1040(s0) - 416c: 00f54963 blt a0,a5,417e + 4178: 41042783 lw a5,1040(s0) + 417c: 00f54963 blt a0,a5,418e stream->buf_write_pos = 0; - 4170: 40042823 sw zero,1040(s0) - 4174: bf7d j 4132 + 4180: 40042823 sw zero,1040(s0) + 4184: bf7d j 4142 stream->error = 1; - 4176: 4785 li a5,1 - 4178: c41c sw a5,8(s0) + 4186: 4785 li a5,1 + 4188: c41c sw a5,8(s0) return -1; - 417a: 557d li a0,-1 - 417c: bfd9 j 4152 + 418a: 557d li a0,-1 + 418c: bfd9 j 4162 stream->error = 1; - 417e: 4785 li a5,1 - 4180: c41c sw a5,8(s0) + 418e: 4785 li a5,1 + 4190: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4182: 40042823 sw zero,1040(s0) + 4192: 40042823 sw zero,1040(s0) return EOF; - 4186: b775 j 4132 + 4196: b775 j 4142 return -1; - 4188: 557d li a0,-1 + 4198: 557d li a0,-1 } - 418a: 8082 ret + 419a: 8082 ret -000000000000418c : +000000000000419c : if (!stream) - 418c: c505 beqz a0,41b4 + 419c: c505 beqz a0,41c4 { - 418e: 1141 addi sp,sp,-16 - 4190: e022 sd s0,0(sp) - 4192: 842a mv s0,a0 + 419e: 1141 addi sp,sp,-16 + 41a0: e022 sd s0,0(sp) + 41a2: 842a mv s0,a0 int64 ret = lseek(stream->fd, 0, SEEK_CUR); - 4194: 4108 lw a0,0(a0) - 4196: 4605 li a2,1 - 4198: 4581 li a1,0 + 41a4: 4108 lw a0,0(a0) + 41a6: 4605 li a2,1 + 41a8: 4581 li a1,0 { - 419a: e406 sd ra,8(sp) + 41aa: e406 sd ra,8(sp) int64 ret = lseek(stream->fd, 0, SEEK_CUR); - 419c: fddfb0ef jal 178 + 41ac: fd5fb0ef jal 180 if (ret < 0) - 41a0: 00054663 bltz a0,41ac + 41b0: 00054663 bltz a0,41bc } - 41a4: 60a2 ld ra,8(sp) - 41a6: 6402 ld s0,0(sp) - 41a8: 0141 addi sp,sp,16 - 41aa: 8082 ret + 41b4: 60a2 ld ra,8(sp) + 41b6: 6402 ld s0,0(sp) + 41b8: 0141 addi sp,sp,16 + 41ba: 8082 ret stream->error = 1; - 41ac: 4785 li a5,1 - 41ae: c41c sw a5,8(s0) + 41bc: 4785 li a5,1 + 41be: c41c sw a5,8(s0) return -1L; - 41b0: 557d li a0,-1 - 41b2: bfcd j 41a4 - 41b4: 557d li a0,-1 + 41c0: 557d li a0,-1 + 41c2: bfcd j 41b4 + 41c4: 557d li a0,-1 } - 41b6: 8082 ret + 41c6: 8082 ret -00000000000041b8 : +00000000000041c8 : if (stream) - 41b8: c915 beqz a0,41ec + 41c8: c915 beqz a0,41fc if (stream->buf_write_pos > 0) - 41ba: 41052603 lw a2,1040(a0) + 41ca: 41052603 lw a2,1040(a0) { - 41be: 1141 addi sp,sp,-16 - 41c0: e022 sd s0,0(sp) - 41c2: e406 sd ra,8(sp) - 41c4: 842a mv s0,a0 + 41ce: 1141 addi sp,sp,-16 + 41d0: e022 sd s0,0(sp) + 41d2: e406 sd ra,8(sp) + 41d4: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 41c6: 02c04463 bgtz a2,41ee + 41d6: 02c04463 bgtz a2,41fe if (lseek(stream->fd, offset, whence) < 0) - 41ca: 4008 lw a0,0(s0) + 41da: 4008 lw a0,0(s0) stream->buf_read_pos = 0; - 41cc: 40042a23 sw zero,1044(s0) + 41dc: 40042a23 sw zero,1044(s0) stream->buf_read_cnt = 0; - 41d0: 40042c23 sw zero,1048(s0) + 41e0: 40042c23 sw zero,1048(s0) stream->eof = 0; - 41d4: 00042623 sw zero,12(s0) + 41e4: 00042623 sw zero,12(s0) if (lseek(stream->fd, offset, whence) < 0) - 41d8: 4601 li a2,0 - 41da: 4581 li a1,0 - 41dc: f9dfb0ef jal 178 + 41e8: 4601 li a2,0 + 41ea: 4581 li a1,0 + 41ec: f95fb0ef jal 180 } - 41e0: 60a2 ld ra,8(sp) + 41f0: 60a2 ld ra,8(sp) stream->error = 0; - 41e2: 00042423 sw zero,8(s0) + 41f2: 00042423 sw zero,8(s0) } - 41e6: 6402 ld s0,0(sp) - 41e8: 0141 addi sp,sp,16 - 41ea: 8082 ret - 41ec: 8082 ret + 41f6: 6402 ld s0,0(sp) + 41f8: 0141 addi sp,sp,16 + 41fa: 8082 ret + 41fc: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 41ee: 4108 lw a0,0(a0) - 41f0: 01040593 addi a1,s0,16 - 41f4: ef5fb0ef jal e8 + 41fe: 4108 lw a0,0(a0) + 4200: 01040593 addi a1,s0,16 + 4204: eedfb0ef jal f0 if (ret < stream->buf_write_pos) - 41f8: 41042783 lw a5,1040(s0) - 41fc: 00f54563 blt a0,a5,4206 + 4208: 41042783 lw a5,1040(s0) + 420c: 00f54563 blt a0,a5,4216 stream->buf_write_pos = 0; - 4200: 40042823 sw zero,1040(s0) - 4204: b7d9 j 41ca + 4210: 40042823 sw zero,1040(s0) + 4214: b7d9 j 41da stream->error = 1; - 4206: 4785 li a5,1 - 4208: c41c sw a5,8(s0) + 4216: 4785 li a5,1 + 4218: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 420a: 40042823 sw zero,1040(s0) + 421a: 40042823 sw zero,1040(s0) return EOF; - 420e: bf75 j 41ca + 421e: bf75 j 41da -0000000000004210 : +0000000000004220 : return (stream) ? stream->eof : 1; - 4210: c119 beqz a0,4216 - 4212: 4548 lw a0,12(a0) - 4214: 8082 ret - 4216: 4505 li a0,1 + 4220: c119 beqz a0,4226 + 4222: 4548 lw a0,12(a0) + 4224: 8082 ret + 4226: 4505 li a0,1 } - 4218: 8082 ret + 4228: 8082 ret -000000000000421a : +000000000000422a : return (stream) ? stream->error : 1; - 421a: c119 beqz a0,4220 - 421c: 4508 lw a0,8(a0) - 421e: 8082 ret - 4220: 4505 li a0,1 + 422a: c119 beqz a0,4230 + 422c: 4508 lw a0,8(a0) + 422e: 8082 ret + 4230: 4505 li a0,1 } - 4222: 8082 ret + 4232: 8082 ret -0000000000004224 : +0000000000004234 : if (stream) - 4224: c509 beqz a0,422e + 4234: c509 beqz a0,423e stream->error = 0; - 4226: 00052423 sw zero,8(a0) + 4236: 00052423 sw zero,8(a0) stream->eof = 0; - 422a: 00052623 sw zero,12(a0) + 423a: 00052623 sw zero,12(a0) } - 422e: 8082 ret + 423e: 8082 ret -0000000000004230 : +0000000000004240 : if (!stream || c == EOF) - 4230: c19d beqz a1,4256 - 4232: 57fd li a5,-1 - 4234: 02f50163 beq a0,a5,4256 + 4240: c19d beqz a1,4266 + 4242: 57fd li a5,-1 + 4244: 02f50163 beq a0,a5,4266 if (stream->buf_read_pos > 0) - 4238: 4145a783 lw a5,1044(a1) - 423c: 00f05d63 blez a5,4256 + 4248: 4145a783 lw a5,1044(a1) + 424c: 00f05d63 blez a5,4266 stream->buf_read_pos--; - 4240: fff7871b addiw a4,a5,-1 - 4244: 40e5aa23 sw a4,1044(a1) + 4250: fff7871b addiw a4,a5,-1 + 4254: 40e5aa23 sw a4,1044(a1) stream->buffer[stream->buf_read_pos] = (char)c; - 4248: 00e587b3 add a5,a1,a4 - 424c: 00a78823 sb a0,16(a5) + 4258: 00e587b3 add a5,a1,a4 + 425c: 00a78823 sb a0,16(a5) stream->eof = 0; - 4250: 0005a623 sw zero,12(a1) + 4260: 0005a623 sw zero,12(a1) return c; - 4254: 8082 ret + 4264: 8082 ret return EOF; - 4256: 557d li a0,-1 - 4258: 8082 ret + 4266: 557d li a0,-1 + 4268: 8082 ret -000000000000425a : +000000000000426a : return new_ptr; } /* String Conversion*/ unsigned long long strtoull(const char *nptr, char **endptr, int base) - 425a: 1141 addi sp,sp,-16 - 425c: e422 sd s0,8(sp) - 425e: 8eaa mv t4,a0 + 426a: 1141 addi sp,sp,-16 + 426c: e422 sd s0,8(sp) + 426e: 8eaa mv t4,a0 { const char *s = nptr; - 4260: 88aa mv a7,a0 + 4270: 88aa mv a7,a0 static inline int isdigit(int c) { return c >= '0' && c <= '9'; } static inline int islower(int c) { return c >= 'a' && c <= 'z'; } static inline int isupper(int c) { return c >= 'A' && c <= 'Z'; } static inline int isalpha(int c) { return islower(c) || isupper(c); } static inline int isalnum(int c) { return isalpha(c) || isdigit(c); } static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } - 4262: 02000313 li t1,32 - 4266: 4e11 li t3,4 + 4272: 02000313 li t1,32 + 4276: 4e11 li t3,4 return 0; } do { c = *s++; - 4268: 0008c783 lbu a5,0(a7) - 426c: 00188813 addi a6,a7,1 - 4270: ff77871b addiw a4,a5,-9 - 4274: 0ff77693 zext.b a3,a4 - 4278: 0007871b sext.w a4,a5 - 427c: 04678363 beq a5,t1,42c2 - 4280: 04de7163 bgeu t3,a3,42c2 + 4278: 0008c783 lbu a5,0(a7) + 427c: 00188813 addi a6,a7,1 + 4280: ff77871b addiw a4,a5,-9 + 4284: 0ff77693 zext.b a3,a4 + 4288: 0007871b sext.w a4,a5 + 428c: 04678363 beq a5,t1,42d2 + 4290: 04de7163 bgeu t3,a3,42d2 } while (isspace(c)); if (c == '-') - 4284: 02d00793 li a5,45 - 4288: 0ef70863 beq a4,a5,4378 + 4294: 02d00793 li a5,45 + 4298: 0ef70863 beq a4,a5,4388 { neg = 1; c = *s++; } else if (c == '+') - 428c: 02b00793 li a5,43 + 429c: 02b00793 li a5,43 int neg = 0, any, cutlim; - 4290: 4381 li t2,0 + 42a0: 4381 li t2,0 else if (c == '+') - 4292: 08f70c63 beq a4,a5,432a + 42a2: 08f70c63 beq a4,a5,433a { c = *s++; } if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 4296: ea05 bnez a2,42c6 - 4298: 03000793 li a5,48 - 429c: 0ef70463 beq a4,a5,4384 - 42a0: 00ccd8b7 lui a7,0xccd - 42a4: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc5465> - 42a8: 08b2 slli a7,a7,0xc - 42aa: ccd88893 addi a7,a7,-819 - 42ae: 08b2 slli a7,a7,0xc - 42b0: ccd88893 addi a7,a7,-819 - 42b4: 08b6 slli a7,a7,0xd - 42b6: 4415 li s0,5 - 42b8: 99988893 addi a7,a7,-1639 - 42bc: 42a9 li t0,10 + 42a6: ea05 bnez a2,42d6 + 42a8: 03000793 li a5,48 + 42ac: 0ef70463 beq a4,a5,4394 + 42b0: 00ccd8b7 lui a7,0xccd + 42b4: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc5445> + 42b8: 08b2 slli a7,a7,0xc + 42ba: ccd88893 addi a7,a7,-819 + 42be: 08b2 slli a7,a7,0xc + 42c0: ccd88893 addi a7,a7,-819 + 42c4: 08b6 slli a7,a7,0xd + 42c6: 4415 li s0,5 + 42c8: 99988893 addi a7,a7,-1639 + 42cc: 42a9 li t0,10 c = s[1]; s += 2; base = 16; } if (base == 0) base = (c == '0' ? 8 : 10); - 42be: 4629 li a2,10 - 42c0: a829 j 42da + 42ce: 4629 li a2,10 + 42d0: a829 j 42ea unsigned long long strtoull(const char *nptr, char **endptr, int base) - 42c2: 88c2 mv a7,a6 - 42c4: b755 j 4268 + 42d2: 88c2 mv a7,a6 + 42d4: b755 j 4278 if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 42c6: 47c1 li a5,16 - 42c8: 0cf60d63 beq a2,a5,43a2 + 42d6: 47c1 li a5,16 + 42d8: 0cf60d63 beq a2,a5,43b2 cutoff = ULLONG_MAX / (unsigned long long)base; - 42cc: 58fd li a7,-1 + 42dc: 58fd li a7,-1 cutlim = ULLONG_MAX % (unsigned long long)base; - 42ce: 02c8f433 remu s0,a7,a2 + 42de: 02c8f433 remu s0,a7,a2 cutoff = ULLONG_MAX / (unsigned long long)base; - 42d2: 82b2 mv t0,a2 - 42d4: 02c8d8b3 divu a7,a7,a2 + 42e2: 82b2 mv t0,a2 + 42e4: 02c8d8b3 divu a7,a7,a2 cutlim = ULLONG_MAX % (unsigned long long)base; - 42d8: 2401 sext.w s0,s0 + 42e8: 2401 sext.w s0,s0 for (acc = 0, any = 0;; c = *s++) - 42da: 4301 li t1,0 - 42dc: 4501 li a0,0 + 42ea: 4301 li t1,0 + 42ec: 4501 li a0,0 { if (isdigit(c)) - 42de: 4e25 li t3,9 + 42ee: 4e25 li t3,9 static inline int isalpha(int c) { return islower(c) || isupper(c); } - 42e0: 4fe5 li t6,25 + 42f0: 4fe5 li t6,25 break; if (c >= base) break; if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 42e2: 5f7d li t5,-1 + 42f2: 5f7d li t5,-1 if (isdigit(c)) - 42e4: fd07079b addiw a5,a4,-48 + 42f4: fd07079b addiw a5,a4,-48 static inline int isdigit(int c) { return c >= '0' && c <= '9'; } - 42e8: 0007069b sext.w a3,a4 - 42ec: 00fe7e63 bgeu t3,a5,4308 + 42f8: 0007069b sext.w a3,a4 + 42fc: 00fe7e63 bgeu t3,a5,4318 static inline int isalpha(int c) { return islower(c) || isupper(c); } - 42f0: f9f6879b addiw a5,a3,-97 - 42f4: 04fff063 bgeu t6,a5,4334 - 42f8: fbf6869b addiw a3,a3,-65 - 42fc: 04dfe163 bltu t6,a3,433e + 4300: f9f6879b addiw a5,a3,-97 + 4304: 04fff063 bgeu t6,a5,4344 + 4308: fbf6869b addiw a3,a3,-65 + 430c: 04dfe163 bltu t6,a3,434e c -= isupper(c) ? 'A' - 10 : 'a' - 10; - 4300: 03700793 li a5,55 - 4304: 40f707bb subw a5,a4,a5 + 4310: 03700793 li a5,55 + 4314: 40f707bb subw a5,a4,a5 if (c >= base) - 4308: 02c7db63 bge a5,a2,433e + 4318: 02c7db63 bge a5,a2,434e if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 430c: 01e30b63 beq t1,t5,4322 + 431c: 01e30b63 beq t1,t5,4332 any = -1; - 4310: 537d li t1,-1 + 4320: 537d li t1,-1 if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 4312: 00a8e863 bltu a7,a0,4322 - 4316: 05150e63 beq a0,a7,4372 + 4322: 00a8e863 bltu a7,a0,4332 + 4326: 05150e63 beq a0,a7,4382 else { any = 1; - 431a: 4305 li t1,1 + 432a: 4305 li t1,1 acc *= base; - 431c: 02550533 mul a0,a0,t0 + 432c: 02550533 mul a0,a0,t0 acc += c; - 4320: 953e add a0,a0,a5 + 4330: 953e add a0,a0,a5 for (acc = 0, any = 0;; c = *s++) - 4322: 0805 addi a6,a6,1 - 4324: fff84703 lbu a4,-1(a6) + 4332: 0805 addi a6,a6,1 + 4334: fff84703 lbu a4,-1(a6) if (isdigit(c)) - 4328: bf75 j 42e4 + 4338: bf75 j 42f4 c = *s++; - 432a: 00084703 lbu a4,0(a6) - 432e: 00288813 addi a6,a7,2 - 4332: b795 j 4296 + 433a: 00084703 lbu a4,0(a6) + 433e: 00288813 addi a6,a7,2 + 4342: b795 j 42a6 c -= isupper(c) ? 'A' - 10 : 'a' - 10; - 4334: 05700793 li a5,87 - 4338: 40f707bb subw a5,a4,a5 - 433c: b7f1 j 4308 + 4344: 05700793 li a5,87 + 4348: 40f707bb subw a5,a4,a5 + 434c: b7f1 j 4318 } } if (any < 0) - 433e: 57fd li a5,-1 - 4340: 00f30e63 beq t1,a5,435c + 434e: 57fd li a5,-1 + 4350: 00f30e63 beq t1,a5,436c { acc = ULLONG_MAX; errno = ERANGE; } else if (neg) - 4344: 00038463 beqz t2,434c + 4354: 00038463 beqz t2,435c acc = -acc; - 4348: 40a00533 neg a0,a0 + 4358: 40a00533 neg a0,a0 if (endptr != 0) - 434c: c589 beqz a1,4356 + 435c: c589 beqz a1,4366 *endptr = (char *)(any ? s - 1 : nptr); - 434e: 00031f63 bnez t1,436c - 4352: 01d5b023 sd t4,0(a1) + 435e: 00031f63 bnez t1,437c + 4362: 01d5b023 sd t4,0(a1) return acc; } - 4356: 6422 ld s0,8(sp) - 4358: 0141 addi sp,sp,16 - 435a: 8082 ret + 4366: 6422 ld s0,8(sp) + 4368: 0141 addi sp,sp,16 + 436a: 8082 ret errno = ERANGE; - 435c: 02200793 li a5,34 - 4360: 00003717 auipc a4,0x3 - 4364: 3cf72823 sw a5,976(a4) # 7730 + 436c: 02200793 li a5,34 + 4370: 00003717 auipc a4,0x3 + 4374: 3ef72023 sw a5,992(a4) # 7750 acc = ULLONG_MAX; - 4368: 557d li a0,-1 + 4378: 557d li a0,-1 if (endptr != 0) - 436a: d5f5 beqz a1,4356 + 437a: d5f5 beqz a1,4366 *endptr = (char *)(any ? s - 1 : nptr); - 436c: fff80e93 addi t4,a6,-1 - 4370: b7cd j 4352 + 437c: fff80e93 addi t4,a6,-1 + 4380: b7cd j 4362 if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 4372: faf448e3 blt s0,a5,4322 - 4376: b755 j 431a + 4382: faf448e3 blt s0,a5,4332 + 4386: b755 j 432a c = *s++; - 4378: 00084703 lbu a4,0(a6) + 4388: 00084703 lbu a4,0(a6) neg = 1; - 437c: 4385 li t2,1 + 438c: 4385 li t2,1 c = *s++; - 437e: 00288813 addi a6,a7,2 - 4382: bf11 j 4296 + 438e: 00288813 addi a6,a7,2 + 4392: bf11 j 42a6 if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 4384: 00084783 lbu a5,0(a6) - 4388: 05800693 li a3,88 - 438c: 0df7f793 andi a5,a5,223 - 4390: 02d78b63 beq a5,a3,43c6 - 4394: 58fd li a7,-1 - 4396: 441d li s0,7 - 4398: 0038d893 srli a7,a7,0x3 - 439c: 42a1 li t0,8 + 4394: 00084783 lbu a5,0(a6) + 4398: 05800693 li a3,88 + 439c: 0df7f793 andi a5,a5,223 + 43a0: 02d78b63 beq a5,a3,43d6 + 43a4: 58fd li a7,-1 + 43a6: 441d li s0,7 + 43a8: 0038d893 srli a7,a7,0x3 + 43ac: 42a1 li t0,8 base = (c == '0' ? 8 : 10); - 439e: 4621 li a2,8 - 43a0: bf2d j 42da + 43ae: 4621 li a2,8 + 43b0: bf2d j 42ea if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 43a2: 03000793 li a5,48 - 43a6: 00f70863 beq a4,a5,43b6 - 43aa: 58fd li a7,-1 - 43ac: 443d li s0,15 - 43ae: 0048d893 srli a7,a7,0x4 - 43b2: 42c1 li t0,16 - 43b4: b71d j 42da - 43b6: 00084783 lbu a5,0(a6) - 43ba: 05800693 li a3,88 - 43be: 0df7f793 andi a5,a5,223 - 43c2: fed794e3 bne a5,a3,43aa + 43b2: 03000793 li a5,48 + 43b6: 00f70863 beq a4,a5,43c6 + 43ba: 58fd li a7,-1 + 43bc: 443d li s0,15 + 43be: 0048d893 srli a7,a7,0x4 + 43c2: 42c1 li t0,16 + 43c4: b71d j 42ea + 43c6: 00084783 lbu a5,0(a6) + 43ca: 05800693 li a3,88 + 43ce: 0df7f793 andi a5,a5,223 + 43d2: fed794e3 bne a5,a3,43ba s += 2; - 43c6: 58fd li a7,-1 + 43d6: 58fd li a7,-1 c = s[1]; - 43c8: 00184703 lbu a4,1(a6) + 43d8: 00184703 lbu a4,1(a6) s += 2; - 43cc: 443d li s0,15 - 43ce: 0809 addi a6,a6,2 - 43d0: 0048d893 srli a7,a7,0x4 - 43d4: 42c1 li t0,16 + 43dc: 443d li s0,15 + 43de: 0809 addi a6,a6,2 + 43e0: 0048d893 srli a7,a7,0x4 + 43e4: 42c1 li t0,16 base = 16; - 43d6: 4641 li a2,16 - 43d8: b709 j 42da + 43e6: 4641 li a2,16 + 43e8: b709 j 42ea -00000000000043da : +00000000000043ea : if (__atexit_func_count >= ATEXIT_MAX) - 43da: 00003717 auipc a4,0x3 - 43de: 35670713 addi a4,a4,854 # 7730 - 43e2: 435c lw a5,4(a4) - 43e4: 46fd li a3,31 - 43e6: 00f6ca63 blt a3,a5,43fa + 43ea: 00003717 auipc a4,0x3 + 43ee: 36670713 addi a4,a4,870 # 7750 + 43f2: 435c lw a5,4(a4) + 43f4: 46fd li a3,31 + 43f6: 00f6ca63 blt a3,a5,440a __atexit_funcs[__atexit_func_count++] = function; - 43ea: 00379693 slli a3,a5,0x3 - 43ee: 96ba add a3,a3,a4 - 43f0: 2785 addiw a5,a5,1 - 43f2: e688 sd a0,8(a3) - 43f4: c35c sw a5,4(a4) + 43fa: 00379693 slli a3,a5,0x3 + 43fe: 96ba add a3,a3,a4 + 4400: 2785 addiw a5,a5,1 + 4402: e688 sd a0,8(a3) + 4404: c35c sw a5,4(a4) return 0; - 43f6: 4501 li a0,0 - 43f8: 8082 ret + 4406: 4501 li a0,0 + 4408: 8082 ret return -1; - 43fa: 557d li a0,-1 + 440a: 557d li a0,-1 } - 43fc: 8082 ret + 440c: 8082 ret -00000000000043fe : +000000000000440e : { - 43fe: 1101 addi sp,sp,-32 - 4400: e822 sd s0,16(sp) + 440e: 1101 addi sp,sp,-32 + 4410: e822 sd s0,16(sp) while (__atexit_func_count > 0) - 4402: 00003417 auipc s0,0x3 - 4406: 32e40413 addi s0,s0,814 # 7730 - 440a: 405c lw a5,4(s0) + 4412: 00003417 auipc s0,0x3 + 4416: 33e40413 addi s0,s0,830 # 7750 + 441a: 405c lw a5,4(s0) { - 440c: e426 sd s1,8(sp) - 440e: ec06 sd ra,24(sp) - 4410: 84aa mv s1,a0 + 441c: e426 sd s1,8(sp) + 441e: ec06 sd ra,24(sp) + 4420: 84aa mv s1,a0 while (__atexit_func_count > 0) - 4412: 00f05d63 blez a5,442c + 4422: 00f05d63 blez a5,443c (__atexit_funcs[--__atexit_func_count])(); - 4416: fff7871b addiw a4,a5,-1 - 441a: 87ba mv a5,a4 - 441c: 070e slli a4,a4,0x3 - 441e: 9722 add a4,a4,s0 - 4420: 6718 ld a4,8(a4) - 4422: c05c sw a5,4(s0) - 4424: 9702 jalr a4 + 4426: fff7871b addiw a4,a5,-1 + 442a: 87ba mv a5,a4 + 442c: 070e slli a4,a4,0x3 + 442e: 9722 add a4,a4,s0 + 4430: 6718 ld a4,8(a4) + 4432: c05c sw a5,4(s0) + 4434: 9702 jalr a4 while (__atexit_func_count > 0) - 4426: 405c lw a5,4(s0) - 4428: fef047e3 bgtz a5,4416 + 4436: 405c lw a5,4(s0) + 4438: fef047e3 bgtz a5,4426 sys_exit(status); - 442c: 8526 mv a0,s1 - 442e: c93fb0ef jal c0 + 443c: 8526 mv a0,s1 + 443e: c8bfb0ef jal c8 while (1) - 4432: a001 j 4432 + 4442: a001 j 4442 -0000000000004434 : +0000000000004444 : { - 4434: 1141 addi sp,sp,-16 + 4444: 1141 addi sp,sp,-16 exit(127); - 4436: 07f00513 li a0,127 + 4446: 07f00513 li a0,127 { - 443a: e406 sd ra,8(sp) + 444a: e406 sd ra,8(sp) exit(127); - 443c: fc3ff0ef jal 43fe + 444c: fc3ff0ef jal 440e -0000000000004440 : +0000000000004450 : } - 4440: 4501 li a0,0 - 4442: 8082 ret + 4450: 4501 li a0,0 + 4452: 8082 ret -0000000000004444 : +0000000000004454 : } - 4444: 557d li a0,-1 - 4446: 8082 ret + 4454: 557d li a0,-1 + 4456: 8082 ret -0000000000004448 : +0000000000004458 : if (!ptr) - 4448: c121 beqz a0,4488 + 4458: c121 beqz a0,4498 for (p = freep; !(bp > p && bp < p->next); p = p->next) - 444a: 00003617 auipc a2,0x3 - 444e: 2e660613 addi a2,a2,742 # 7730 - 4452: 10863783 ld a5,264(a2) + 445a: 00003617 auipc a2,0x3 + 445e: 2f660613 addi a2,a2,758 # 7750 + 4462: 10863783 ld a5,264(a2) bp = (header_t *)ptr - 1; - 4456: ff050693 addi a3,a0,-16 + 4466: ff050693 addi a3,a0,-16 if (p >= p->next && (bp > p || bp < p->next)) - 445a: 6798 ld a4,8(a5) + 446a: 6798 ld a4,8(a5) for (p = freep; !(bp > p && bp < p->next); p = p->next) - 445c: 02d7f763 bgeu a5,a3,448a - 4460: 00e6e463 bltu a3,a4,4468 + 446c: 02d7f763 bgeu a5,a3,449a + 4470: 00e6e463 bltu a3,a4,4478 if (p >= p->next && (bp > p || bp < p->next)) - 4464: 02e7e763 bltu a5,a4,4492 + 4474: 02e7e763 bltu a5,a4,44a2 if ((char *)bp + bp->size == (char *)p->next) - 4468: ff053583 ld a1,-16(a0) - 446c: 00b68833 add a6,a3,a1 - 4470: 03070363 beq a4,a6,4496 + 4478: ff053583 ld a1,-16(a0) + 447c: 00b68833 add a6,a3,a1 + 4480: 03070363 beq a4,a6,44a6 if ((char *)p + p->size == (char *)bp) - 4474: 638c ld a1,0(a5) - 4476: fee53c23 sd a4,-8(a0) - 447a: 00b78833 add a6,a5,a1 - 447e: 03068963 beq a3,a6,44b0 - 4482: e794 sd a3,8(a5) + 4484: 638c ld a1,0(a5) + 4486: fee53c23 sd a4,-8(a0) + 448a: 00b78833 add a6,a5,a1 + 448e: 03068963 beq a3,a6,44c0 + 4492: e794 sd a3,8(a5) freep = p; - 4484: 10f63423 sd a5,264(a2) + 4494: 10f63423 sd a5,264(a2) } - 4488: 8082 ret + 4498: 8082 ret if (p >= p->next && (bp > p || bp < p->next)) - 448a: 00e7e463 bltu a5,a4,4492 - 448e: fce6ede3 bltu a3,a4,4468 + 449a: 00e7e463 bltu a5,a4,44a2 + 449e: fce6ede3 bltu a3,a4,4478 { - 4492: 87ba mv a5,a4 - 4494: b7d9 j 445a + 44a2: 87ba mv a5,a4 + 44a4: b7d9 j 446a bp->size += p->next->size; - 4496: 00073803 ld a6,0(a4) + 44a6: 00073803 ld a6,0(a4) bp->next = p->next->next; - 449a: 6718 ld a4,8(a4) + 44aa: 6718 ld a4,8(a4) bp->size += p->next->size; - 449c: 95c2 add a1,a1,a6 - 449e: feb53823 sd a1,-16(a0) + 44ac: 95c2 add a1,a1,a6 + 44ae: feb53823 sd a1,-16(a0) if ((char *)p + p->size == (char *)bp) - 44a2: 638c ld a1,0(a5) - 44a4: fee53c23 sd a4,-8(a0) - 44a8: 00b78833 add a6,a5,a1 - 44ac: fd069be3 bne a3,a6,4482 + 44b2: 638c ld a1,0(a5) + 44b4: fee53c23 sd a4,-8(a0) + 44b8: 00b78833 add a6,a5,a1 + 44bc: fd069be3 bne a3,a6,4492 p->size += bp->size; - 44b0: ff053503 ld a0,-16(a0) + 44c0: ff053503 ld a0,-16(a0) p->next = bp->next; - 44b4: 86ba mv a3,a4 + 44c4: 86ba mv a3,a4 p->size += bp->size; - 44b6: 00b50733 add a4,a0,a1 - 44ba: e398 sd a4,0(a5) + 44c6: 00b50733 add a4,a0,a1 + 44ca: e398 sd a4,0(a5) p->next = bp->next; - 44bc: b7d9 j 4482 + 44cc: b7d9 j 4492 -00000000000044be : +00000000000044ce : if (size == 0) - 44be: c169 beqz a0,4580 + 44ce: c169 beqz a0,4590 { - 44c0: 7179 addi sp,sp,-48 - 44c2: ec26 sd s1,24(sp) + 44d0: 7179 addi sp,sp,-48 + 44d2: ec26 sd s1,24(sp) if ((prevp = freep) == NULL) - 44c4: 00003497 auipc s1,0x3 - 44c8: 26c48493 addi s1,s1,620 # 7730 - 44cc: 1084b783 ld a5,264(s1) + 44d4: 00003497 auipc s1,0x3 + 44d8: 27c48493 addi s1,s1,636 # 7750 + 44dc: 1084b783 ld a5,264(s1) { - 44d0: f022 sd s0,32(sp) + 44e0: f022 sd s0,32(sp) size = ALIGN(size + sizeof(header_t)); - 44d2: 057d addi a0,a0,31 + 44e2: 057d addi a0,a0,31 { - 44d4: f406 sd ra,40(sp) + 44e4: f406 sd ra,40(sp) size = ALIGN(size + sizeof(header_t)); - 44d6: ff057413 andi s0,a0,-16 + 44e6: ff057413 andi s0,a0,-16 if ((prevp = freep) == NULL) - 44da: c3d1 beqz a5,455e + 44ea: c3d1 beqz a5,456e for (p = prevp->next;; prevp = p, p = p->next) - 44dc: 6788 ld a0,8(a5) + 44ec: 6788 ld a0,8(a5) if (p->size >= size) - 44de: 6118 ld a4,0(a0) - 44e0: 06877163 bgeu a4,s0,4542 - 44e4: e44e sd s3,8(sp) - 44e6: e052 sd s4,0(sp) - 44e8: e84a sd s2,16(sp) + 44ee: 6118 ld a4,0(a0) + 44f0: 06877163 bgeu a4,s0,4552 + 44f4: e44e sd s3,8(sp) + 44f6: e052 sd s4,0(sp) + 44f8: e84a sd s2,16(sp) if (nu < 4096) - 44ea: 6a05 lui s4,0x1 + 44fa: 6a05 lui s4,0x1 if (cp == (void *)-1) - 44ec: 59fd li s3,-1 - 44ee: a029 j 44f8 + 44fc: 59fd li s3,-1 + 44fe: a029 j 4508 for (p = prevp->next;; prevp = p, p = p->next) - 44f0: 6788 ld a0,8(a5) + 4500: 6788 ld a0,8(a5) if (p->size >= size) - 44f2: 6118 ld a4,0(a0) - 44f4: 04877463 bgeu a4,s0,453c + 4502: 6118 ld a4,0(a0) + 4504: 04877463 bgeu a4,s0,454c if (p == freep) - 44f8: 1084b703 ld a4,264(s1) - 44fc: 87aa mv a5,a0 - 44fe: fee519e3 bne a0,a4,44f0 + 4508: 1084b703 ld a4,264(s1) + 450c: 87aa mv a5,a0 + 450e: fee519e3 bne a0,a4,4500 if (nu < 4096) - 4502: 8922 mv s2,s0 - 4504: 01447363 bgeu s0,s4,450a - 4508: 6905 lui s2,0x1 + 4512: 8922 mv s2,s0 + 4514: 01447363 bgeu s0,s4,451a + 4518: 6905 lui s2,0x1 cp = (char *)sbrk(nu); - 450a: 854a mv a0,s2 - 450c: c45fb0ef jal 150 - 4510: 87aa mv a5,a0 + 451a: 854a mv a0,s2 + 451c: c3dfb0ef jal 158 + 4520: 87aa mv a5,a0 free((void *)(up + 1)); - 4512: 0541 addi a0,a0,16 + 4522: 0541 addi a0,a0,16 if (cp == (void *)-1) - 4514: 01378963 beq a5,s3,4526 + 4524: 01378963 beq a5,s3,4536 up->size = nu; - 4518: 0127b023 sd s2,0(a5) + 4528: 0127b023 sd s2,0(a5) free((void *)(up + 1)); - 451c: f2dff0ef jal 4448 + 452c: f2dff0ef jal 4458 return freep; - 4520: 1084b783 ld a5,264(s1) + 4530: 1084b783 ld a5,264(s1) if ((p = morecore(size)) == NULL) - 4524: f7f1 bnez a5,44f0 + 4534: f7f1 bnez a5,4500 } - 4526: 70a2 ld ra,40(sp) - 4528: 7402 ld s0,32(sp) + 4536: 70a2 ld ra,40(sp) + 4538: 7402 ld s0,32(sp) errno = ENOMEM; - 452a: 47b1 li a5,12 - 452c: c09c sw a5,0(s1) + 453a: 47b1 li a5,12 + 453c: c09c sw a5,0(s1) return NULL; - 452e: 6942 ld s2,16(sp) - 4530: 69a2 ld s3,8(sp) - 4532: 6a02 ld s4,0(sp) + 453e: 6942 ld s2,16(sp) + 4540: 69a2 ld s3,8(sp) + 4542: 6a02 ld s4,0(sp) } - 4534: 64e2 ld s1,24(sp) + 4544: 64e2 ld s1,24(sp) return NULL; - 4536: 4501 li a0,0 + 4546: 4501 li a0,0 } - 4538: 6145 addi sp,sp,48 - 453a: 8082 ret - 453c: 6942 ld s2,16(sp) - 453e: 69a2 ld s3,8(sp) - 4540: 6a02 ld s4,0(sp) + 4548: 6145 addi sp,sp,48 + 454a: 8082 ret + 454c: 6942 ld s2,16(sp) + 454e: 69a2 ld s3,8(sp) + 4550: 6a02 ld s4,0(sp) if (p->size == size) - 4542: 02e40c63 beq s0,a4,457a + 4552: 02e40c63 beq s0,a4,458a p->size -= size; - 4546: 8f01 sub a4,a4,s0 - 4548: e118 sd a4,0(a0) + 4556: 8f01 sub a4,a4,s0 + 4558: e118 sd a4,0(a0) p = (header_t *)((char *)p + p->size); - 454a: 953a add a0,a0,a4 + 455a: 953a add a0,a0,a4 p->size = size; - 454c: e100 sd s0,0(a0) + 455c: e100 sd s0,0(a0) } - 454e: 70a2 ld ra,40(sp) - 4550: 7402 ld s0,32(sp) + 455e: 70a2 ld ra,40(sp) + 4560: 7402 ld s0,32(sp) freep = prevp; - 4552: 10f4b423 sd a5,264(s1) + 4562: 10f4b423 sd a5,264(s1) return (void *)(p + 1); - 4556: 0541 addi a0,a0,16 + 4566: 0541 addi a0,a0,16 } - 4558: 64e2 ld s1,24(sp) - 455a: 6145 addi sp,sp,48 - 455c: 8082 ret + 4568: 64e2 ld s1,24(sp) + 456a: 6145 addi sp,sp,48 + 456c: 8082 ret base.next = freep = prevp = &base; - 455e: 00003517 auipc a0,0x3 - 4562: 2e250513 addi a0,a0,738 # 7840 - 4566: 10a4b423 sd a0,264(s1) - 456a: 10a4bc23 sd a0,280(s1) + 456e: 00003517 auipc a0,0x3 + 4572: 2f250513 addi a0,a0,754 # 7860 + 4576: 10a4b423 sd a0,264(s1) + 457a: 10a4bc23 sd a0,280(s1) base.size = 0; - 456e: 00003797 auipc a5,0x3 - 4572: 2c07b923 sd zero,722(a5) # 7840 + 457e: 00003797 auipc a5,0x3 + 4582: 2e07b123 sd zero,738(a5) # 7860 if (p->size >= size) - 4576: f43d bnez s0,44e4 + 4586: f43d bnez s0,44f4 base.next = freep = prevp = &base; - 4578: 87aa mv a5,a0 + 4588: 87aa mv a5,a0 prevp->next = p->next; - 457a: 6518 ld a4,8(a0) - 457c: e798 sd a4,8(a5) - 457e: bfc1 j 454e + 458a: 6518 ld a4,8(a0) + 458c: e798 sd a4,8(a5) + 458e: bfc1 j 455e return NULL; - 4580: 4501 li a0,0 + 4590: 4501 li a0,0 } - 4582: 8082 ret + 4592: 8082 ret -0000000000004584 : +0000000000004594 : if (__builtin_mul_overflow(nmemb, size, &total)) - 4584: 02b537b3 mulhu a5,a0,a1 + 4594: 02b537b3 mulhu a5,a0,a1 { - 4588: 1101 addi sp,sp,-32 - 458a: e822 sd s0,16(sp) - 458c: ec06 sd ra,24(sp) - 458e: e426 sd s1,8(sp) + 4598: 1101 addi sp,sp,-32 + 459a: e822 sd s0,16(sp) + 459c: ec06 sd ra,24(sp) + 459e: e426 sd s1,8(sp) if (__builtin_mul_overflow(nmemb, size, &total)) - 4590: 02b50433 mul s0,a0,a1 - 4594: e385 bnez a5,45b4 + 45a0: 02b50433 mul s0,a0,a1 + 45a4: e385 bnez a5,45c4 void *p = malloc(total); - 4596: 8522 mv a0,s0 - 4598: f27ff0ef jal 44be - 459c: 84aa mv s1,a0 + 45a6: 8522 mv a0,s0 + 45a8: f27ff0ef jal 44ce + 45ac: 84aa mv s1,a0 if (p) - 459e: c509 beqz a0,45a8 + 45ae: c509 beqz a0,45b8 memset(p, 0, total); - 45a0: 8622 mv a2,s0 - 45a2: 4581 li a1,0 - 45a4: 524000ef jal 4ac8 -} - 45a8: 60e2 ld ra,24(sp) - 45aa: 6442 ld s0,16(sp) - 45ac: 8526 mv a0,s1 - 45ae: 64a2 ld s1,8(sp) - 45b0: 6105 addi sp,sp,32 - 45b2: 8082 ret - 45b4: 60e2 ld ra,24(sp) - 45b6: 6442 ld s0,16(sp) + 45b0: 8622 mv a2,s0 + 45b2: 4581 li a1,0 + 45b4: 524000ef jal 4ad8 +} + 45b8: 60e2 ld ra,24(sp) + 45ba: 6442 ld s0,16(sp) + 45bc: 8526 mv a0,s1 + 45be: 64a2 ld s1,8(sp) + 45c0: 6105 addi sp,sp,32 + 45c2: 8082 ret + 45c4: 60e2 ld ra,24(sp) + 45c6: 6442 ld s0,16(sp) errno = ENOMEM; - 45b8: 47b1 li a5,12 + 45c8: 47b1 li a5,12 return NULL; - 45ba: 4481 li s1,0 + 45ca: 4481 li s1,0 errno = ENOMEM; - 45bc: 00003717 auipc a4,0x3 - 45c0: 16f72a23 sw a5,372(a4) # 7730 + 45cc: 00003717 auipc a4,0x3 + 45d0: 18f72223 sw a5,388(a4) # 7750 } - 45c4: 8526 mv a0,s1 - 45c6: 64a2 ld s1,8(sp) - 45c8: 6105 addi sp,sp,32 - 45ca: 8082 ret + 45d4: 8526 mv a0,s1 + 45d6: 64a2 ld s1,8(sp) + 45d8: 6105 addi sp,sp,32 + 45da: 8082 ret -00000000000045cc : +00000000000045dc : if (!ptr) - 45cc: c929 beqz a0,461e + 45dc: c929 beqz a0,462e { - 45ce: 1101 addi sp,sp,-32 - 45d0: ec06 sd ra,24(sp) - 45d2: e426 sd s1,8(sp) + 45de: 1101 addi sp,sp,-32 + 45e0: ec06 sd ra,24(sp) + 45e2: e426 sd s1,8(sp) if (size == 0) - 45d4: c5b9 beqz a1,4622 + 45e4: c5b9 beqz a1,4632 if (bp->size >= new_size) - 45d6: ff053703 ld a4,-16(a0) + 45e6: ff053703 ld a4,-16(a0) size_t new_size = ALIGN(size + sizeof(header_t)); - 45da: 01f58793 addi a5,a1,31 - 45de: e822 sd s0,16(sp) - 45e0: 9bc1 andi a5,a5,-16 - 45e2: 842a mv s0,a0 + 45ea: 01f58793 addi a5,a1,31 + 45ee: e822 sd s0,16(sp) + 45f0: 9bc1 andi a5,a5,-16 + 45f2: 842a mv s0,a0 return ptr; - 45e4: 84aa mv s1,a0 + 45f4: 84aa mv s1,a0 if (bp->size >= new_size) - 45e6: 00f76863 bltu a4,a5,45f6 - 45ea: 6442 ld s0,16(sp) -} - 45ec: 60e2 ld ra,24(sp) - 45ee: 8526 mv a0,s1 - 45f0: 64a2 ld s1,8(sp) - 45f2: 6105 addi sp,sp,32 - 45f4: 8082 ret + 45f6: 00f76863 bltu a4,a5,4606 + 45fa: 6442 ld s0,16(sp) +} + 45fc: 60e2 ld ra,24(sp) + 45fe: 8526 mv a0,s1 + 4600: 64a2 ld s1,8(sp) + 4602: 6105 addi sp,sp,32 + 4604: 8082 ret void *new_ptr = malloc(size); - 45f6: 852e mv a0,a1 - 45f8: ec7ff0ef jal 44be - 45fc: 84aa mv s1,a0 + 4606: 852e mv a0,a1 + 4608: ec7ff0ef jal 44ce + 460c: 84aa mv s1,a0 if (!new_ptr) - 45fe: d575 beqz a0,45ea + 460e: d575 beqz a0,45fa memcpy(new_ptr, ptr, bp->size - sizeof(header_t)); - 4600: ff043603 ld a2,-16(s0) - 4604: 85a2 mv a1,s0 - 4606: 1641 addi a2,a2,-16 - 4608: 514000ef jal 4b1c + 4610: ff043603 ld a2,-16(s0) + 4614: 85a2 mv a1,s0 + 4616: 1641 addi a2,a2,-16 + 4618: 514000ef jal 4b2c free(ptr); - 460c: 8522 mv a0,s0 - 460e: e3bff0ef jal 4448 + 461c: 8522 mv a0,s0 + 461e: e3bff0ef jal 4458 } - 4612: 60e2 ld ra,24(sp) + 4622: 60e2 ld ra,24(sp) free(ptr); - 4614: 6442 ld s0,16(sp) + 4624: 6442 ld s0,16(sp) } - 4616: 8526 mv a0,s1 - 4618: 64a2 ld s1,8(sp) - 461a: 6105 addi sp,sp,32 - 461c: 8082 ret + 4626: 8526 mv a0,s1 + 4628: 64a2 ld s1,8(sp) + 462a: 6105 addi sp,sp,32 + 462c: 8082 ret return malloc(size); - 461e: 852e mv a0,a1 - 4620: bd79 j 44be + 462e: 852e mv a0,a1 + 4630: bd79 j 44ce free(ptr); - 4622: e27ff0ef jal 4448 + 4632: e27ff0ef jal 4458 return NULL; - 4626: 4481 li s1,0 - 4628: b7d1 j 45ec + 4636: 4481 li s1,0 + 4638: b7d1 j 45fc -000000000000462a : +000000000000463a : if (base < 0 || base == 1 || base > 36) - 462a: 02400813 li a6,36 + 463a: 02400813 li a6,36 { - 462e: 86aa mv a3,a0 - 4630: 872e mv a4,a1 + 463e: 86aa mv a3,a0 + 4640: 872e mv a4,a1 if (base < 0 || base == 1 || base > 36) - 4632: 00c86663 bltu a6,a2,463e - 4636: 4805 li a6,1 - 4638: 01060363 beq a2,a6,463e - 463c: b939 j 425a + 4642: 00c86663 bltu a6,a2,464e + 4646: 4805 li a6,1 + 4648: 01060363 beq a2,a6,464e + 464c: b939 j 426a if (endptr) - 463e: c311 beqz a4,4642 + 464e: c311 beqz a4,4652 *endptr = (char *)nptr; - 4640: e314 sd a3,0(a4) + 4650: e314 sd a3,0(a4) errno = 0; /* EINVAL */ - 4642: 00003797 auipc a5,0x3 - 4646: 0e07a723 sw zero,238(a5) # 7730 + 4652: 00003797 auipc a5,0x3 + 4656: 0e07af23 sw zero,254(a5) # 7750 } - 464a: 4501 li a0,0 - 464c: 8082 ret + 465a: 4501 li a0,0 + 465c: 8082 ret -000000000000464e : +000000000000465e : long long strtoll(const char *nptr, char **endptr, int base) { - 464e: 1141 addi sp,sp,-16 - 4650: e406 sd ra,8(sp) - 4652: e022 sd s0,0(sp) + 465e: 1141 addi sp,sp,-16 + 4660: e406 sd ra,8(sp) + 4662: e022 sd s0,0(sp) const char *s = nptr; - 4654: 86aa mv a3,a0 + 4664: 86aa mv a3,a0 static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } - 4656: 02000813 li a6,32 - 465a: 4891 li a7,4 + 4666: 02000813 li a6,32 + 466a: 4891 li a7,4 unsigned long long acc; int c, neg = 0; do { c = *s++; - 465c: 0006c783 lbu a5,0(a3) - 4660: 0685 addi a3,a3,1 - 4662: ff77871b addiw a4,a5,-9 - 4666: 0ff77713 zext.b a4,a4 - 466a: 0007841b sext.w s0,a5 - 466e: ff0787e3 beq a5,a6,465c - 4672: fee8f5e3 bgeu a7,a4,465c + 466c: 0006c783 lbu a5,0(a3) + 4670: 0685 addi a3,a3,1 + 4672: ff77871b addiw a4,a5,-9 + 4676: 0ff77713 zext.b a4,a4 + 467a: 0007841b sext.w s0,a5 + 467e: ff0787e3 beq a5,a6,466c + 4682: fee8f5e3 bgeu a7,a4,466c if (base < 0 || base == 1 || base > 36) - 4676: 02400793 li a5,36 - 467a: 02c7ec63 bltu a5,a2,46b2 - 467e: 4785 li a5,1 - 4680: 02f60963 beq a2,a5,46b2 - 4684: bd7ff0ef jal 425a + 4686: 02400793 li a5,36 + 468a: 02c7ec63 bltu a5,a2,46c2 + 468e: 4785 li a5,1 + 4690: 02f60963 beq a2,a5,46c2 + 4694: bd7ff0ef jal 426a if (c == '-') neg = 1; acc = strtoull(nptr, endptr, base); if (errno == ERANGE && acc == ULLONG_MAX) - 4688: 00003797 auipc a5,0x3 - 468c: 0a878793 addi a5,a5,168 # 7730 - 4690: 4394 lw a3,0(a5) - 4692: 02200713 li a4,34 - 4696: 04e68363 beq a3,a4,46dc + 4698: 00003797 auipc a5,0x3 + 469c: 0b878793 addi a5,a5,184 # 7750 + 46a0: 4394 lw a3,0(a5) + 46a2: 02200713 li a4,34 + 46a6: 04e68363 beq a3,a4,46ec return neg ? LLONG_MIN : LLONG_MAX; if (!neg && acc > (unsigned long long)LLONG_MAX) - 469a: 02d00713 li a4,45 - 469e: 02e40563 beq s0,a4,46c8 - 46a2: 00055f63 bgez a0,46c0 + 46aa: 02d00713 li a4,45 + 46ae: 02e40563 beq s0,a4,46d8 + 46b2: 00055f63 bgez a0,46d0 { errno = ERANGE; - 46a6: 02200713 li a4,34 - 46aa: c398 sw a4,0(a5) + 46b6: 02200713 li a4,34 + 46ba: c398 sw a4,0(a5) return neg ? LLONG_MIN : LLONG_MAX; - 46ac: 557d li a0,-1 - 46ae: 8105 srli a0,a0,0x1 - 46b0: a801 j 46c0 + 46bc: 557d li a0,-1 + 46be: 8105 srli a0,a0,0x1 + 46c0: a801 j 46d0 if (endptr) - 46b2: c191 beqz a1,46b6 + 46c2: c191 beqz a1,46c6 *endptr = (char *)nptr; - 46b4: e188 sd a0,0(a1) + 46c4: e188 sd a0,0(a1) errno = 0; /* EINVAL */ - 46b6: 00003797 auipc a5,0x3 - 46ba: 0607ad23 sw zero,122(a5) # 7730 + 46c6: 00003797 auipc a5,0x3 + 46ca: 0807a523 sw zero,138(a5) # 7750 { errno = ERANGE; return LLONG_MIN; } return neg ? -(long long)acc : (long long)acc; - 46be: 4501 li a0,0 -} - 46c0: 60a2 ld ra,8(sp) - 46c2: 6402 ld s0,0(sp) - 46c4: 0141 addi sp,sp,16 - 46c6: 8082 ret - if (neg && acc > (unsigned long long)LLONG_MAX + 1) - 46c8: 577d li a4,-1 - 46ca: 177e slli a4,a4,0x3f - 46cc: 02a76263 bltu a4,a0,46f0 + 46ce: 4501 li a0,0 } 46d0: 60a2 ld ra,8(sp) 46d2: 6402 ld s0,0(sp) + 46d4: 0141 addi sp,sp,16 + 46d6: 8082 ret + if (neg && acc > (unsigned long long)LLONG_MAX + 1) + 46d8: 577d li a4,-1 + 46da: 177e slli a4,a4,0x3f + 46dc: 02a76263 bltu a4,a0,4700 +} + 46e0: 60a2 ld ra,8(sp) + 46e2: 6402 ld s0,0(sp) return neg ? -(long long)acc : (long long)acc; - 46d4: 40a00533 neg a0,a0 + 46e4: 40a00533 neg a0,a0 } - 46d8: 0141 addi sp,sp,16 - 46da: 8082 ret + 46e8: 0141 addi sp,sp,16 + 46ea: 8082 ret if (errno == ERANGE && acc == ULLONG_MAX) - 46dc: 577d li a4,-1 - 46de: fae51ee3 bne a0,a4,469a + 46ec: 577d li a4,-1 + 46ee: fae51ee3 bne a0,a4,46aa return neg ? LLONG_MIN : LLONG_MAX; - 46e2: 02d00793 li a5,45 - 46e6: fcf413e3 bne s0,a5,46ac + 46f2: 02d00793 li a5,45 + 46f6: fcf413e3 bne s0,a5,46bc return LLONG_MIN; - 46ea: 557d li a0,-1 - 46ec: 157e slli a0,a0,0x3f - 46ee: bfc9 j 46c0 + 46fa: 557d li a0,-1 + 46fc: 157e slli a0,a0,0x3f + 46fe: bfc9 j 46d0 errno = ERANGE; - 46f0: 02200713 li a4,34 - 46f4: c398 sw a4,0(a5) + 4700: 02200713 li a4,34 + 4704: c398 sw a4,0(a5) return LLONG_MIN; - 46f6: bfd5 j 46ea + 4706: bfd5 j 46fa -00000000000046f8 : +0000000000004708 : if (base < 0 || base == 1 || base > 36) - 46f8: 02400813 li a6,36 + 4708: 02400813 li a6,36 unsigned long strtoul(const char *nptr, char **endptr, int base) { - 46fc: 86aa mv a3,a0 - 46fe: 872e mv a4,a1 + 470c: 86aa mv a3,a0 + 470e: 872e mv a4,a1 if (base < 0 || base == 1 || base > 36) - 4700: 00c86663 bltu a6,a2,470c - 4704: 4805 li a6,1 - 4706: 01060363 beq a2,a6,470c - 470a: be81 j 425a + 4710: 00c86663 bltu a6,a2,471c + 4714: 4805 li a6,1 + 4716: 01060363 beq a2,a6,471c + 471a: be81 j 426a if (endptr) - 470c: c311 beqz a4,4710 + 471c: c311 beqz a4,4720 *endptr = (char *)nptr; - 470e: e314 sd a3,0(a4) + 471e: e314 sd a3,0(a4) errno = 0; /* EINVAL */ - 4710: 00003797 auipc a5,0x3 - 4714: 0207a023 sw zero,32(a5) # 7730 + 4720: 00003797 auipc a5,0x3 + 4724: 0207a823 sw zero,48(a5) # 7750 { errno = ERANGE; return ULONG_MAX; } return (unsigned long)ret; } - 4718: 4501 li a0,0 - 471a: 8082 ret + 4728: 4501 li a0,0 + 472a: 8082 ret -000000000000471c : +000000000000472c : long strtol(const char *nptr, char **endptr, int base) { long long ret = strtoll(nptr, endptr, base); - 471c: bf0d j 464e + 472c: bf0d j 465e -000000000000471e : +000000000000472e : return LONG_MIN; } return (long)ret; } int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } - 471e: 1141 addi sp,sp,-16 + 472e: 1141 addi sp,sp,-16 long long ret = strtoll(nptr, endptr, base); - 4720: 4629 li a2,10 - 4722: 4581 li a1,0 + 4730: 4629 li a2,10 + 4732: 4581 li a1,0 int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } - 4724: e406 sd ra,8(sp) + 4734: e406 sd ra,8(sp) long long ret = strtoll(nptr, endptr, base); - 4726: f29ff0ef jal 464e + 4736: f29ff0ef jal 465e int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } - 472a: 60a2 ld ra,8(sp) - 472c: 2501 sext.w a0,a0 - 472e: 0141 addi sp,sp,16 - 4730: 8082 ret + 473a: 60a2 ld ra,8(sp) + 473c: 2501 sext.w a0,a0 + 473e: 0141 addi sp,sp,16 + 4740: 8082 ret -0000000000004732 : +0000000000004742 : long long ret = strtoll(nptr, endptr, base); - 4732: 4629 li a2,10 - 4734: 4581 li a1,0 - 4736: bf21 j 464e + 4742: 4629 li a2,10 + 4744: 4581 li a1,0 + 4746: bf21 j 465e -0000000000004738 : +0000000000004748 : long atol(const char *nptr) { return strtol(nptr, NULL, 10); } long long atoll(const char *nptr) { return strtoll(nptr, NULL, 10); } - 4738: 4629 li a2,10 - 473a: 4581 li a1,0 - 473c: bf09 j 464e + 4748: 4629 li a2,10 + 474a: 4581 li a1,0 + 474c: bf09 j 465e -000000000000473e : - 473e: 02000693 li a3,32 - 4742: 4611 li a2,4 +000000000000474e : + 474e: 02000693 li a3,32 + 4752: 4611 li a2,4 { double val = 0.0; int sign = 1; const char *s = nptr; while (isspace(*s)) - 4744: 00054783 lbu a5,0(a0) - 4748: ff77871b addiw a4,a5,-9 - 474c: 0ff77713 zext.b a4,a4 - 4750: 06d78263 beq a5,a3,47b4 - 4754: 06e67063 bgeu a2,a4,47b4 + 4754: 00054783 lbu a5,0(a0) + 4758: ff77871b addiw a4,a5,-9 + 475c: 0ff77713 zext.b a4,a4 + 4760: 06d78263 beq a5,a3,47c4 + 4764: 06e67063 bgeu a2,a4,47c4 s++; if (*s == '-') - 4758: 02d00713 li a4,45 - 475c: 08e78e63 beq a5,a4,47f8 + 4768: 02d00713 li a4,45 + 476c: 08e78e63 beq a5,a4,4808 { sign = -1; s++; } else if (*s == '+') - 4760: 02b00713 li a4,43 - 4764: 0ae78263 beq a5,a4,4808 - 4768: 00001717 auipc a4,0x1 - 476c: 0e073507 fld fa0,224(a4) # 5848 + 4770: 02b00713 li a4,43 + 4774: 0ae78263 beq a5,a4,4818 + 4778: 00001717 auipc a4,0x1 + 477c: 0f073507 fld fa0,240(a4) # 5868 static inline int isdigit(int c) { return c >= '0' && c <= '9'; } - 4770: fd07861b addiw a2,a5,-48 + 4780: fd07861b addiw a2,a5,-48 s++; while (isdigit(*s)) - 4774: 46a5 li a3,9 - 4776: f20007d3 fmv.d.x fa5,zero - 477a: 8732 mv a4,a2 - 477c: 02c6e363 bltu a3,a2,47a2 - 4780: 00001797 auipc a5,0x1 - 4784: 0d07b687 fld fa3,208(a5) # 5850 - 4788: 4625 li a2,9 - 478a: 00154783 lbu a5,1(a0) + 4784: 46a5 li a3,9 + 4786: f20007d3 fmv.d.x fa5,zero + 478a: 8732 mv a4,a2 + 478c: 02c6e363 bltu a3,a2,47b2 + 4790: 00001797 auipc a5,0x1 + 4794: 0e07b687 fld fa3,224(a5) # 5870 + 4798: 4625 li a2,9 + 479a: 00154783 lbu a5,1(a0) { val = val * 10.0 + (*s - '0'); - 478e: d2070753 fcvt.d.w fa4,a4 + 479e: d2070753 fcvt.d.w fa4,a4 s++; - 4792: 0505 addi a0,a0,1 - 4794: fd07869b addiw a3,a5,-48 + 47a2: 0505 addi a0,a0,1 + 47a4: fd07869b addiw a3,a5,-48 val = val * 10.0 + (*s - '0'); - 4798: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 - 479c: 8736 mv a4,a3 + 47a8: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 + 47ac: 8736 mv a4,a3 while (isdigit(*s)) - 479e: fed676e3 bgeu a2,a3,478a + 47ae: fed676e3 bgeu a2,a3,479a } if (*s == '.') - 47a2: 02e00713 li a4,46 - 47a6: 00e78963 beq a5,a4,47b8 + 47b2: 02e00713 li a4,46 + 47b6: 00e78963 beq a5,a4,47c8 val += (*s - '0') * factor; s++; } } if (endptr) - 47aa: c191 beqz a1,47ae + 47ba: c191 beqz a1,47be *endptr = (char *)s; - 47ac: e188 sd a0,0(a1) + 47bc: e188 sd a0,0(a1) return val * sign; } - 47ae: 12a7f553 fmul.d fa0,fa5,fa0 - 47b2: 8082 ret + 47be: 12a7f553 fmul.d fa0,fa5,fa0 + 47c2: 8082 ret s++; - 47b4: 0505 addi a0,a0,1 - 47b6: b779 j 4744 + 47c4: 0505 addi a0,a0,1 + 47c6: b779 j 4754 while (isdigit(*s)) - 47b8: 00154703 lbu a4,1(a0) - 47bc: 46a5 li a3,9 + 47c8: 00154703 lbu a4,1(a0) + 47cc: 46a5 li a3,9 s++; - 47be: 0505 addi a0,a0,1 - 47c0: fd07071b addiw a4,a4,-48 - 47c4: 87ba mv a5,a4 + 47ce: 0505 addi a0,a0,1 + 47d0: fd07071b addiw a4,a4,-48 + 47d4: 87ba mv a5,a4 while (isdigit(*s)) - 47c6: fee6e2e3 bltu a3,a4,47aa + 47d6: fee6e2e3 bltu a3,a4,47ba double factor = 1.0; - 47ca: 00001717 auipc a4,0x1 - 47ce: 07e73707 fld fa4,126(a4) # 5848 - 47d2: 00001717 auipc a4,0x1 - 47d6: 09673607 fld fa2,150(a4) # 5868 + 47da: 00001717 auipc a4,0x1 + 47de: 08e73707 fld fa4,142(a4) # 5868 + 47e2: 00001717 auipc a4,0x1 + 47e6: 0a673607 fld fa2,166(a4) # 5888 factor *= 0.1; - 47da: 12c77753 fmul.d fa4,fa4,fa2 + 47ea: 12c77753 fmul.d fa4,fa4,fa2 while (isdigit(*s)) - 47de: 00154703 lbu a4,1(a0) + 47ee: 00154703 lbu a4,1(a0) val += (*s - '0') * factor; - 47e2: d20786d3 fcvt.d.w fa3,a5 + 47f2: d20786d3 fcvt.d.w fa3,a5 s++; - 47e6: 0505 addi a0,a0,1 - 47e8: fd07071b addiw a4,a4,-48 - 47ec: 87ba mv a5,a4 + 47f6: 0505 addi a0,a0,1 + 47f8: fd07071b addiw a4,a4,-48 + 47fc: 87ba mv a5,a4 val += (*s - '0') * factor; - 47ee: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 + 47fe: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 while (isdigit(*s)) - 47f2: fee6f4e3 bgeu a3,a4,47da - 47f6: bf55 j 47aa - while (isdigit(*s)) - 47f8: 00154783 lbu a5,1(a0) - 47fc: 00001717 auipc a4,0x1 - 4800: 04473507 fld fa0,68(a4) # 5840 - s++; - 4804: 0505 addi a0,a0,1 - 4806: b7ad j 4770 + 4802: fee6f4e3 bgeu a3,a4,47ea + 4806: bf55 j 47ba while (isdigit(*s)) 4808: 00154783 lbu a5,1(a0) 480c: 00001717 auipc a4,0x1 - 4810: 03c73507 fld fa0,60(a4) # 5848 + 4810: 05473507 fld fa0,84(a4) # 5860 s++; 4814: 0505 addi a0,a0,1 - 4816: bfa9 j 4770 + 4816: b7ad j 4780 + while (isdigit(*s)) + 4818: 00154783 lbu a5,1(a0) + 481c: 00001717 auipc a4,0x1 + 4820: 04c73507 fld fa0,76(a4) # 5868 + s++; + 4824: 0505 addi a0,a0,1 + 4826: bfa9 j 4780 -0000000000004818 : +0000000000004828 : double atof(const char *nptr) { return strtod(nptr, NULL); } - 4818: 4581 li a1,0 - 481a: b715 j 473e + 4828: 4581 li a1,0 + 482a: b715 j 474e -000000000000481c : +000000000000482c : float strtof(const char *nptr, char **endptr) { return (float)strtod(nptr, endptr); } - 481c: 1141 addi sp,sp,-16 - 481e: e406 sd ra,8(sp) - 4820: f1fff0ef jal 473e - 4824: 60a2 ld ra,8(sp) - 4826: 40157553 fcvt.s.d fa0,fa0 - 482a: 0141 addi sp,sp,16 - 482c: 8082 ret - -000000000000482e : + 482c: 1141 addi sp,sp,-16 + 482e: e406 sd ra,8(sp) + 4830: f1fff0ef jal 474e + 4834: 60a2 ld ra,8(sp) + 4836: 40157553 fcvt.s.d fa0,fa0 + 483a: 0141 addi sp,sp,16 + 483c: 8082 ret + +000000000000483e : } } void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { if (nmemb < 2 || size == 0) - 482e: 4785 li a5,1 - 4830: 0cb7fd63 bgeu a5,a1,490a + 483e: 4785 li a5,1 + 4840: 0cb7fd63 bgeu a5,a1,491a { - 4834: 715d addi sp,sp,-80 - 4836: f44e sd s3,40(sp) - 4838: e486 sd ra,72(sp) - 483a: 89b2 mv s3,a2 + 4844: 715d addi sp,sp,-80 + 4846: f44e sd s3,40(sp) + 4848: e486 sd ra,72(sp) + 484a: 89b2 mv s3,a2 if (nmemb < 2 || size == 0) - 483c: c279 beqz a2,4902 - 483e: e85a sd s6,16(sp) - 4840: 8b2e mv s6,a1 + 484c: c279 beqz a2,4912 + 484e: e85a sd s6,16(sp) + 4850: 8b2e mv s6,a1 return; char *base_ptr = (char *)base; char *pivot = base_ptr + (nmemb - 1) * size; - 4842: 1b7d addi s6,s6,-1 - 4844: fc26 sd s1,56(sp) - 4846: 033b04b3 mul s1,s6,s3 - 484a: ec56 sd s5,24(sp) - 484c: 8aaa mv s5,a0 - 484e: f052 sd s4,32(sp) - 4850: e45e sd s7,8(sp) - 4852: e0a2 sd s0,64(sp) - 4854: f84a sd s2,48(sp) - 4856: 8a36 mv s4,a3 + 4852: 1b7d addi s6,s6,-1 + 4854: fc26 sd s1,56(sp) + 4856: 033b04b3 mul s1,s6,s3 + 485a: ec56 sd s5,24(sp) + 485c: 8aaa mv s5,a0 + 485e: f052 sd s4,32(sp) + 4860: e45e sd s7,8(sp) + 4862: e0a2 sd s0,64(sp) + 4864: f84a sd s2,48(sp) + 4866: 8a36 mv s4,a3 if (nmemb < 2 || size == 0) - 4858: 4b85 li s7,1 + 4868: 4b85 li s7,1 char *pivot = base_ptr + (nmemb - 1) * size; - 485a: 94d6 add s1,s1,s5 + 486a: 94d6 add s1,s1,s5 char *i = base_ptr; char *j = base_ptr; /* Partition */ for (; j < pivot; j += size) - 485c: 069af763 bgeu s5,s1,48ca + 486c: 069af763 bgeu s5,s1,48da char *j = base_ptr; - 4860: 8956 mv s2,s5 + 4870: 8956 mv s2,s5 char *i = base_ptr; - 4862: 8456 mv s0,s5 - 4864: a021 j 486c + 4872: 8456 mv s0,s5 + 4874: a021 j 487c for (; j < pivot; j += size) - 4866: 994e add s2,s2,s3 - 4868: 00997f63 bgeu s2,s1,4886 + 4876: 994e add s2,s2,s3 + 4878: 00997f63 bgeu s2,s1,4896 { if (compar(j, pivot) < 0) - 486c: 85a6 mv a1,s1 - 486e: 854a mv a0,s2 - 4870: 9a02 jalr s4 - 4872: fe055ae3 bgez a0,4866 + 487c: 85a6 mv a1,s1 + 487e: 854a mv a0,s2 + 4880: 9a02 jalr s4 + 4882: fe055ae3 bgez a0,4876 { if (i != j) - 4876: 05241d63 bne s0,s2,48d0 - 487a: 01390633 add a2,s2,s3 + 4886: 05241d63 bne s0,s2,48e0 + 488a: 01390633 add a2,s2,s3 swap_bytes(i, j, size); i += size; - 487e: 8432 mv s0,a2 + 488e: 8432 mv s0,a2 for (; j < pivot; j += size) - 4880: 994e add s2,s2,s3 - 4882: fe9965e3 bltu s2,s1,486c + 4890: 994e add s2,s2,s3 + 4892: fe9965e3 bltu s2,s1,487c } } swap_bytes(i, pivot, size); /* Recurse */ size_t left_count = (i - base_ptr) / size; - 4886: 415405b3 sub a1,s0,s5 - 488a: 0335d5b3 divu a1,a1,s3 + 4896: 415405b3 sub a1,s0,s5 + 489a: 0335d5b3 divu a1,a1,s3 qsort(base, left_count, size, compar); qsort(i + size, nmemb - left_count - 1, size, compar); - 488e: 40bb0b33 sub s6,s6,a1 + 489e: 40bb0b33 sub s6,s6,a1 while (size--) - 4892: 013406b3 add a3,s0,s3 + 48a2: 013406b3 add a3,s0,s3 *a++ = *b; - 4896: 0004c703 lbu a4,0(s1) + 48a6: 0004c703 lbu a4,0(s1) temp = *a; - 489a: 00044783 lbu a5,0(s0) + 48aa: 00044783 lbu a5,0(s0) *b++ = temp; - 489e: 0485 addi s1,s1,1 + 48ae: 0485 addi s1,s1,1 *a++ = *b; - 48a0: 0405 addi s0,s0,1 - 48a2: fee40fa3 sb a4,-1(s0) + 48b0: 0405 addi s0,s0,1 + 48b2: fee40fa3 sb a4,-1(s0) *b++ = temp; - 48a6: fef48fa3 sb a5,-1(s1) + 48b6: fef48fa3 sb a5,-1(s1) while (size--) - 48aa: fed416e3 bne s0,a3,4896 + 48ba: fed416e3 bne s0,a3,48a6 qsort(base, left_count, size, compar); - 48ae: 86d2 mv a3,s4 - 48b0: 864e mv a2,s3 - 48b2: 8556 mv a0,s5 - 48b4: f7bff0ef jal 482e + 48be: 86d2 mv a3,s4 + 48c0: 864e mv a2,s3 + 48c2: 8556 mv a0,s5 + 48c4: f7bff0ef jal 483e if (nmemb < 2 || size == 0) - 48b8: 036bfe63 bgeu s7,s6,48f4 + 48c8: 036bfe63 bgeu s7,s6,4904 char *pivot = base_ptr + (nmemb - 1) * size; - 48bc: 1b7d addi s6,s6,-1 - 48be: 033b04b3 mul s1,s6,s3 - 48c2: 8aa2 mv s5,s0 - 48c4: 94d6 add s1,s1,s5 + 48cc: 1b7d addi s6,s6,-1 + 48ce: 033b04b3 mul s1,s6,s3 + 48d2: 8aa2 mv s5,s0 + 48d4: 94d6 add s1,s1,s5 for (; j < pivot; j += size) - 48c6: f89aede3 bltu s5,s1,4860 + 48d6: f89aede3 bltu s5,s1,4870 char *i = base_ptr; - 48ca: 8456 mv s0,s5 + 48da: 8456 mv s0,s5 for (; j < pivot; j += size) - 48cc: 4581 li a1,0 - 48ce: b7d1 j 4892 - 48d0: 01340633 add a2,s0,s3 + 48dc: 4581 li a1,0 + 48de: b7d1 j 48a2 + 48e0: 01340633 add a2,s0,s3 if (i != j) - 48d4: 874a mv a4,s2 - 48d6: 87a2 mv a5,s0 + 48e4: 874a mv a4,s2 + 48e6: 87a2 mv a5,s0 *a++ = *b; - 48d8: 00074683 lbu a3,0(a4) + 48e8: 00074683 lbu a3,0(a4) temp = *a; - 48dc: 0007c803 lbu a6,0(a5) + 48ec: 0007c803 lbu a6,0(a5) *b++ = temp; - 48e0: 0705 addi a4,a4,1 + 48f0: 0705 addi a4,a4,1 *a++ = *b; - 48e2: 0785 addi a5,a5,1 - 48e4: fed78fa3 sb a3,-1(a5) + 48f2: 0785 addi a5,a5,1 + 48f4: fed78fa3 sb a3,-1(a5) *b++ = temp; - 48e8: ff070fa3 sb a6,-1(a4) + 48f8: ff070fa3 sb a6,-1(a4) while (size--) - 48ec: fec796e3 bne a5,a2,48d8 + 48fc: fec796e3 bne a5,a2,48e8 i += size; - 48f0: 8432 mv s0,a2 - 48f2: b779 j 4880 - 48f4: 6406 ld s0,64(sp) - 48f6: 74e2 ld s1,56(sp) - 48f8: 7942 ld s2,48(sp) - 48fa: 7a02 ld s4,32(sp) - 48fc: 6ae2 ld s5,24(sp) - 48fe: 6b42 ld s6,16(sp) - 4900: 6ba2 ld s7,8(sp) -} - 4902: 60a6 ld ra,72(sp) - 4904: 79a2 ld s3,40(sp) - 4906: 6161 addi sp,sp,80 - 4908: 8082 ret - 490a: 8082 ret - -000000000000490c : + 4900: 8432 mv s0,a2 + 4902: b779 j 4890 + 4904: 6406 ld s0,64(sp) + 4906: 74e2 ld s1,56(sp) + 4908: 7942 ld s2,48(sp) + 490a: 7a02 ld s4,32(sp) + 490c: 6ae2 ld s5,24(sp) + 490e: 6b42 ld s6,16(sp) + 4910: 6ba2 ld s7,8(sp) +} + 4912: 60a6 ld ra,72(sp) + 4914: 79a2 ld s3,40(sp) + 4916: 6161 addi sp,sp,80 + 4918: 8082 ret + 491a: 8082 ret + +000000000000491c : void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { - 490c: 715d addi sp,sp,-80 - 490e: e486 sd ra,72(sp) - 4910: fc26 sd s1,56(sp) + 491c: 715d addi sp,sp,-80 + 491e: e486 sd ra,72(sp) + 4920: fc26 sd s1,56(sp) size_t l = 0, u = nmemb; while (l < u) - 4912: c629 beqz a2,495c - 4914: f84a sd s2,48(sp) - 4916: f44e sd s3,40(sp) - 4918: f052 sd s4,32(sp) - 491a: ec56 sd s5,24(sp) - 491c: e85a sd s6,16(sp) - 491e: e45e sd s7,8(sp) - 4920: e0a2 sd s0,64(sp) - 4922: 8932 mv s2,a2 - 4924: 8a2a mv s4,a0 - 4926: 8aae mv s5,a1 - 4928: 8b36 mv s6,a3 - 492a: 8bba mv s7,a4 + 4922: c629 beqz a2,496c + 4924: f84a sd s2,48(sp) + 4926: f44e sd s3,40(sp) + 4928: f052 sd s4,32(sp) + 492a: ec56 sd s5,24(sp) + 492c: e85a sd s6,16(sp) + 492e: e45e sd s7,8(sp) + 4930: e0a2 sd s0,64(sp) + 4932: 8932 mv s2,a2 + 4934: 8a2a mv s4,a0 + 4936: 8aae mv s5,a1 + 4938: 8b36 mv s6,a3 + 493a: 8bba mv s7,a4 size_t l = 0, u = nmemb; - 492c: 4981 li s3,0 + 493c: 4981 li s3,0 { size_t idx = (l + u) / 2; - 492e: 01298433 add s0,s3,s2 - 4932: 8005 srli s0,s0,0x1 + 493e: 01298433 add s0,s3,s2 + 4942: 8005 srli s0,s0,0x1 const void *p = (void *)((const char *)base + (idx * size)); - 4934: 036404b3 mul s1,s0,s6 + 4944: 036404b3 mul s1,s0,s6 int cmp = compar(key, p); - 4938: 8552 mv a0,s4 + 4948: 8552 mv a0,s4 const void *p = (void *)((const char *)base + (idx * size)); - 493a: 94d6 add s1,s1,s5 + 494a: 94d6 add s1,s1,s5 int cmp = compar(key, p); - 493c: 85a6 mv a1,s1 - 493e: 9b82 jalr s7 + 494c: 85a6 mv a1,s1 + 494e: 9b82 jalr s7 if (cmp < 0) - 4940: 02054463 bltz a0,4968 + 4950: 02054463 bltz a0,4978 u = idx; else if (cmp > 0) - 4944: c515 beqz a0,4970 + 4954: c515 beqz a0,4980 l = idx + 1; - 4946: 00140993 addi s3,s0,1 + 4956: 00140993 addi s3,s0,1 while (l < u) - 494a: ff29e2e3 bltu s3,s2,492e - 494e: 6406 ld s0,64(sp) - 4950: 7942 ld s2,48(sp) - 4952: 79a2 ld s3,40(sp) - 4954: 7a02 ld s4,32(sp) - 4956: 6ae2 ld s5,24(sp) - 4958: 6b42 ld s6,16(sp) - 495a: 6ba2 ld s7,8(sp) + 495a: ff29e2e3 bltu s3,s2,493e + 495e: 6406 ld s0,64(sp) + 4960: 7942 ld s2,48(sp) + 4962: 79a2 ld s3,40(sp) + 4964: 7a02 ld s4,32(sp) + 4966: 6ae2 ld s5,24(sp) + 4968: 6b42 ld s6,16(sp) + 496a: 6ba2 ld s7,8(sp) else return (void *)p; } return NULL; } - 495c: 60a6 ld ra,72(sp) + 496c: 60a6 ld ra,72(sp) return NULL; - 495e: 4481 li s1,0 + 496e: 4481 li s1,0 } - 4960: 8526 mv a0,s1 - 4962: 74e2 ld s1,56(sp) - 4964: 6161 addi sp,sp,80 - 4966: 8082 ret + 4970: 8526 mv a0,s1 + 4972: 74e2 ld s1,56(sp) + 4974: 6161 addi sp,sp,80 + 4976: 8082 ret u = idx; - 4968: 8922 mv s2,s0 + 4978: 8922 mv s2,s0 while (l < u) - 496a: fd29e2e3 bltu s3,s2,492e - 496e: b7c5 j 494e - 4970: 6406 ld s0,64(sp) -} - 4972: 60a6 ld ra,72(sp) - 4974: 7942 ld s2,48(sp) - 4976: 79a2 ld s3,40(sp) - 4978: 7a02 ld s4,32(sp) - 497a: 6ae2 ld s5,24(sp) - 497c: 6b42 ld s6,16(sp) - 497e: 6ba2 ld s7,8(sp) - 4980: 8526 mv a0,s1 - 4982: 74e2 ld s1,56(sp) - 4984: 6161 addi sp,sp,80 - 4986: 8082 ret - -0000000000004988 : + 497a: fd29e2e3 bltu s3,s2,493e + 497e: b7c5 j 495e + 4980: 6406 ld s0,64(sp) +} + 4982: 60a6 ld ra,72(sp) + 4984: 7942 ld s2,48(sp) + 4986: 79a2 ld s3,40(sp) + 4988: 7a02 ld s4,32(sp) + 498a: 6ae2 ld s5,24(sp) + 498c: 6b42 ld s6,16(sp) + 498e: 6ba2 ld s7,8(sp) + 4990: 8526 mv a0,s1 + 4992: 74e2 ld s1,56(sp) + 4994: 6161 addi sp,sp,80 + 4996: 8082 ret + +0000000000004998 : /* Math & Mics */ int abs(int j) { return (j < 0) ? -j : j; } - 4988: 41f5579b sraiw a5,a0,0x1f - 498c: 8d3d xor a0,a0,a5 - 498e: 9d1d subw a0,a0,a5 - 4990: 8082 ret + 4998: 41f5579b sraiw a5,a0,0x1f + 499c: 8d3d xor a0,a0,a5 + 499e: 9d1d subw a0,a0,a5 + 49a0: 8082 ret -0000000000004992 : +00000000000049a2 : long labs(long j) { return (j < 0) ? -j : j; } - 4992: 43f55793 srai a5,a0,0x3f - 4996: 8d3d xor a0,a0,a5 - 4998: 8d1d sub a0,a0,a5 - 499a: 8082 ret + 49a2: 43f55793 srai a5,a0,0x3f + 49a6: 8d3d xor a0,a0,a5 + 49a8: 8d1d sub a0,a0,a5 + 49aa: 8082 ret -000000000000499c : +00000000000049ac : long long llabs(long long j) { return (j < 0) ? -j : j; } - 499c: 43f55793 srai a5,a0,0x3f - 49a0: 8d3d xor a0,a0,a5 - 49a2: 8d1d sub a0,a0,a5 - 49a4: 8082 ret + 49ac: 43f55793 srai a5,a0,0x3f + 49b0: 8d3d xor a0,a0,a5 + 49b2: 8d1d sub a0,a0,a5 + 49b4: 8082 ret -00000000000049a6
: +00000000000049b6
: div_t div(int numer, int denom) { div_t res = {numer / denom, numer % denom}; - 49a6: 02b547bb divw a5,a0,a1 + 49b6: 02b547bb divw a5,a0,a1 { - 49aa: 1141 addi sp,sp,-16 + 49ba: 1141 addi sp,sp,-16 return res; } - 49ac: 0141 addi sp,sp,16 + 49bc: 0141 addi sp,sp,16 div_t res = {numer / denom, numer % denom}; - 49ae: 02b5653b remw a0,a0,a1 + 49be: 02b5653b remw a0,a0,a1 return res; - 49b2: 1782 slli a5,a5,0x20 - 49b4: 9381 srli a5,a5,0x20 - 49b6: 1502 slli a0,a0,0x20 + 49c2: 1782 slli a5,a5,0x20 + 49c4: 9381 srli a5,a5,0x20 + 49c6: 1502 slli a0,a0,0x20 } - 49b8: 8d5d or a0,a0,a5 - 49ba: 8082 ret + 49c8: 8d5d or a0,a0,a5 + 49ca: 8082 ret -00000000000049bc : +00000000000049cc : ldiv_t ldiv(long numer, long denom) { - 49bc: 1141 addi sp,sp,-16 - 49be: 87aa mv a5,a0 + 49cc: 1141 addi sp,sp,-16 + 49ce: 87aa mv a5,a0 ldiv_t res = {numer / denom, numer % denom}; return res; } - 49c0: 02b54533 div a0,a0,a1 - 49c4: 0141 addi sp,sp,16 - 49c6: 02b7e5b3 rem a1,a5,a1 - 49ca: 8082 ret + 49d0: 02b54533 div a0,a0,a1 + 49d4: 0141 addi sp,sp,16 + 49d6: 02b7e5b3 rem a1,a5,a1 + 49da: 8082 ret -00000000000049cc : +00000000000049dc : lldiv_t lldiv(long long numer, long long denom) { - 49cc: 1141 addi sp,sp,-16 - 49ce: 87aa mv a5,a0 + 49dc: 1141 addi sp,sp,-16 + 49de: 87aa mv a5,a0 lldiv_t res = {numer / denom, numer % denom}; return res; } - 49d0: 02b54533 div a0,a0,a1 - 49d4: 0141 addi sp,sp,16 - 49d6: 02b7e5b3 rem a1,a5,a1 - 49da: 8082 ret + 49e0: 02b54533 div a0,a0,a1 + 49e4: 0141 addi sp,sp,16 + 49e6: 02b7e5b3 rem a1,a5,a1 + 49ea: 8082 ret -00000000000049dc : +00000000000049ec : static unsigned long next = 1; int rand(void) { next = next * 1103515245 + 12345; - 49dc: 00003697 auipc a3,0x3 - 49e0: d0c68693 addi a3,a3,-756 # 76e8 - 49e4: 629c ld a5,0(a3) - 49e6: 41c65737 lui a4,0x41c65 - 49ea: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5d605> - 49ee: 02e787b3 mul a5,a5,a4 - 49f2: 670d lui a4,0x3 - 49f4: 03970713 addi a4,a4,57 # 3039 - 49f8: 97ba add a5,a5,a4 + 49ec: 00003697 auipc a3,0x3 + 49f0: d1c68693 addi a3,a3,-740 # 7708 + 49f4: 629c ld a5,0(a3) + 49f6: 41c65737 lui a4,0x41c65 + 49fa: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5d5e5> + 49fe: 02e787b3 mul a5,a5,a4 + 4a02: 670d lui a4,0x3 + 4a04: 03970713 addi a4,a4,57 # 3039 + 4a08: 97ba add a5,a5,a4 return (unsigned int)(next / 65536) % 32768; - 49fa: 02179513 slli a0,a5,0x21 + 4a0a: 02179513 slli a0,a5,0x21 next = next * 1103515245 + 12345; - 49fe: e29c sd a5,0(a3) + 4a0e: e29c sd a5,0(a3) } - 4a00: 9145 srli a0,a0,0x31 - 4a02: 8082 ret + 4a10: 9145 srli a0,a0,0x31 + 4a12: 8082 ret -0000000000004a04 : +0000000000004a14 : void srand(unsigned int seed) { next = seed; } - 4a04: 1502 slli a0,a0,0x20 - 4a06: 9101 srli a0,a0,0x20 - 4a08: 00003797 auipc a5,0x3 - 4a0c: cea7b023 sd a0,-800(a5) # 76e8 - 4a10: 8082 ret + 4a14: 1502 slli a0,a0,0x20 + 4a16: 9101 srli a0,a0,0x20 + 4a18: 00003797 auipc a5,0x3 + 4a1c: cea7b823 sd a0,-784(a5) # 7708 + 4a20: 8082 ret -0000000000004a12 : +0000000000004a22 : /* Stub */ int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } - 4a12: c901 beqz a0,4a22 - 4a14: 00054783 lbu a5,0(a0) - 4a18: 4501 li a0,0 - 4a1a: c789 beqz a5,4a24 - 4a1c: 00b03533 snez a0,a1 - 4a20: 8082 ret - 4a22: 4501 li a0,0 - 4a24: 8082 ret - -0000000000004a26 : + 4a22: c901 beqz a0,4a32 + 4a24: 00054783 lbu a5,0(a0) + 4a28: 4501 li a0,0 + 4a2a: c789 beqz a5,4a34 + 4a2c: 00b03533 snez a0,a1 + 4a30: 8082 ret + 4a32: 4501 li a0,0 + 4a34: 8082 ret + +0000000000004a36 : int mbtowc(wchar_t *pwc, const char *s, size_t n) { - 4a26: 87aa mv a5,a0 + 4a36: 87aa mv a5,a0 if (!s) - 4a28: cd81 beqz a1,4a40 + 4a38: cd81 beqz a1,4a50 return 0; if (n == 0) return -1; - 4a2a: 557d li a0,-1 + 4a3a: 557d li a0,-1 if (n == 0) - 4a2c: ca19 beqz a2,4a42 + 4a3c: ca19 beqz a2,4a52 if (pwc) - 4a2e: c781 beqz a5,4a36 + 4a3e: c781 beqz a5,4a46 *pwc = (wchar_t)*s; - 4a30: 0005c703 lbu a4,0(a1) - 4a34: c398 sw a4,0(a5) + 4a40: 0005c703 lbu a4,0(a1) + 4a44: c398 sw a4,0(a5) return (*s != 0); - 4a36: 0005c503 lbu a0,0(a1) - 4a3a: 00a03533 snez a0,a0 - 4a3e: 8082 ret + 4a46: 0005c503 lbu a0,0(a1) + 4a4a: 00a03533 snez a0,a0 + 4a4e: 8082 ret return 0; - 4a40: 4501 li a0,0 + 4a50: 4501 li a0,0 } - 4a42: 8082 ret + 4a52: 8082 ret -0000000000004a44 : +0000000000004a54 : int wctomb(char *s, wchar_t wchar) { if (!s) - 4a44: c509 beqz a0,4a4e + 4a54: c509 beqz a0,4a5e return 0; *s = (char)wchar; - 4a46: 00b50023 sb a1,0(a0) + 4a56: 00b50023 sb a1,0(a0) return 1; - 4a4a: 4505 li a0,1 - 4a4c: 8082 ret + 4a5a: 4505 li a0,1 + 4a5c: 8082 ret return 0; - 4a4e: 4501 li a0,0 + 4a5e: 4501 li a0,0 } - 4a50: 8082 ret + 4a60: 8082 ret -0000000000004a52 : +0000000000004a62 : size_t mbstowcs(wchar_t *dest, const char *src, size_t n) { size_t i = 0; while (src[i] && i < n) - 4a52: 0005c703 lbu a4,0(a1) - 4a56: cb0d beqz a4,4a88 - 4a58: ca15 beqz a2,4a8c - 4a5a: 86aa mv a3,a0 + 4a62: 0005c703 lbu a4,0(a1) + 4a66: cb0d beqz a4,4a98 + 4a68: ca15 beqz a2,4a9c + 4a6a: 86aa mv a3,a0 size_t i = 0; - 4a5c: 4781 li a5,0 - 4a5e: a019 j 4a64 + 4a6c: 4781 li a5,0 + 4a6e: a019 j 4a74 while (src[i] && i < n) - 4a60: 02f60263 beq a2,a5,4a84 + 4a70: 02f60263 beq a2,a5,4a94 { dest[i] = (wchar_t)src[i]; i++; - 4a64: 0785 addi a5,a5,1 + 4a74: 0785 addi a5,a5,1 dest[i] = (wchar_t)src[i]; - 4a66: c298 sw a4,0(a3) + 4a76: c298 sw a4,0(a3) while (src[i] && i < n) - 4a68: 00f58733 add a4,a1,a5 - 4a6c: 00074703 lbu a4,0(a4) - 4a70: 0691 addi a3,a3,4 - 4a72: f77d bnez a4,4a60 + 4a78: 00f58733 add a4,a1,a5 + 4a7c: 00074703 lbu a4,0(a4) + 4a80: 0691 addi a3,a3,4 + 4a82: f77d bnez a4,4a70 } if (i < n) - 4a74: 00c7f763 bgeu a5,a2,4a82 + 4a84: 00c7f763 bgeu a5,a2,4a92 dest[i] = 0; - 4a78: 00279713 slli a4,a5,0x2 - 4a7c: 953a add a0,a0,a4 - 4a7e: 00052023 sw zero,0(a0) + 4a88: 00279713 slli a4,a5,0x2 + 4a8c: 953a add a0,a0,a4 + 4a8e: 00052023 sw zero,0(a0) size_t i = 0; - 4a82: 863e mv a2,a5 - 4a84: 8532 mv a0,a2 - 4a86: 8082 ret - 4a88: 4781 li a5,0 - 4a8a: b7ed j 4a74 - 4a8c: 4501 li a0,0 + 4a92: 863e mv a2,a5 + 4a94: 8532 mv a0,a2 + 4a96: 8082 ret + 4a98: 4781 li a5,0 + 4a9a: b7ed j 4a84 + 4a9c: 4501 li a0,0 return i; } - 4a8e: 8082 ret + 4a9e: 8082 ret -0000000000004a90 : +0000000000004aa0 : size_t wcstombs(char *dest, const wchar_t *src, size_t n) { size_t i = 0; while (src[i] && i < n) - 4a90: 4198 lw a4,0(a1) - 4a92: c71d beqz a4,4ac0 - 4a94: ca05 beqz a2,4ac4 - 4a96: 0591 addi a1,a1,4 + 4aa0: 4198 lw a4,0(a1) + 4aa2: c71d beqz a4,4ad0 + 4aa4: ca05 beqz a2,4ad4 + 4aa6: 0591 addi a1,a1,4 size_t i = 0; - 4a98: 4781 li a5,0 - 4a9a: a019 j 4aa0 + 4aa8: 4781 li a5,0 + 4aaa: a019 j 4ab0 while (src[i] && i < n) - 4a9c: 02f60063 beq a2,a5,4abc + 4aac: 02f60063 beq a2,a5,4acc { dest[i] = (char)src[i]; - 4aa0: 00f506b3 add a3,a0,a5 - 4aa4: 00e68023 sb a4,0(a3) + 4ab0: 00f506b3 add a3,a0,a5 + 4ab4: 00e68023 sb a4,0(a3) while (src[i] && i < n) - 4aa8: 4198 lw a4,0(a1) + 4ab8: 4198 lw a4,0(a1) i++; - 4aaa: 0785 addi a5,a5,1 + 4aba: 0785 addi a5,a5,1 while (src[i] && i < n) - 4aac: 0591 addi a1,a1,4 - 4aae: f77d bnez a4,4a9c + 4abc: 0591 addi a1,a1,4 + 4abe: f77d bnez a4,4aac } if (i < n) - 4ab0: 00c7f563 bgeu a5,a2,4aba + 4ac0: 00c7f563 bgeu a5,a2,4aca dest[i] = 0; - 4ab4: 953e add a0,a0,a5 - 4ab6: 00050023 sb zero,0(a0) + 4ac4: 953e add a0,a0,a5 + 4ac6: 00050023 sb zero,0(a0) size_t i = 0; - 4aba: 863e mv a2,a5 - 4abc: 8532 mv a0,a2 - 4abe: 8082 ret - 4ac0: 4781 li a5,0 - 4ac2: b7fd j 4ab0 - 4ac4: 4501 li a0,0 + 4aca: 863e mv a2,a5 + 4acc: 8532 mv a0,a2 + 4ace: 8082 ret + 4ad0: 4781 li a5,0 + 4ad2: b7fd j 4ac0 + 4ad4: 4501 li a0,0 return i; - 4ac6: 8082 ret + 4ad6: 8082 ret -0000000000004ac8 : +0000000000004ad8 : void *memset(void *dst, int c, size_t n) { char *cdst = (char *)dst; for (size_t i = 0; i < n; i++) cdst[i] = (char)c; - 4ac8: 0ff5f593 zext.b a1,a1 - 4acc: 87aa mv a5,a0 - 4ace: 00a60733 add a4,a2,a0 + 4ad8: 0ff5f593 zext.b a1,a1 + 4adc: 87aa mv a5,a0 + 4ade: 00a60733 add a4,a2,a0 for (size_t i = 0; i < n; i++) - 4ad2: c611 beqz a2,4ade + 4ae2: c611 beqz a2,4aee cdst[i] = (char)c; - 4ad4: 00b78023 sb a1,0(a5) + 4ae4: 00b78023 sb a1,0(a5) for (size_t i = 0; i < n; i++) - 4ad8: 0785 addi a5,a5,1 - 4ada: fee79de3 bne a5,a4,4ad4 + 4ae8: 0785 addi a5,a5,1 + 4aea: fee79de3 bne a5,a4,4ae4 return dst; } - 4ade: 8082 ret + 4aee: 8082 ret -0000000000004ae0 : +0000000000004af0 : void *memmove(void *vdst, const void *vsrc, size_t n) { char *dst = (char *)vdst; const char *src = (const char *)vsrc; if (dst == src) - 4ae0: 02b50d63 beq a0,a1,4b1a + 4af0: 02b50d63 beq a0,a1,4b2a return vdst; if (src > dst) - 4ae4: 00b57e63 bgeu a0,a1,4b00 + 4af4: 00b57e63 bgeu a0,a1,4b10 { while (n--) - 4ae8: ca0d beqz a2,4b1a - 4aea: 962a add a2,a2,a0 + 4af8: ca0d beqz a2,4b2a + 4afa: 962a add a2,a2,a0 char *dst = (char *)vdst; - 4aec: 87aa mv a5,a0 + 4afc: 87aa mv a5,a0 *dst++ = *src++; - 4aee: 0005c703 lbu a4,0(a1) - 4af2: 0785 addi a5,a5,1 - 4af4: 0585 addi a1,a1,1 - 4af6: fee78fa3 sb a4,-1(a5) + 4afe: 0005c703 lbu a4,0(a1) + 4b02: 0785 addi a5,a5,1 + 4b04: 0585 addi a1,a1,1 + 4b06: fee78fa3 sb a4,-1(a5) while (n--) - 4afa: fec79ae3 bne a5,a2,4aee - 4afe: 8082 ret + 4b0a: fec79ae3 bne a5,a2,4afe + 4b0e: 8082 ret } else { dst += n; - 4b00: 00c50733 add a4,a0,a2 + 4b10: 00c50733 add a4,a0,a2 src += n; - 4b04: 00c587b3 add a5,a1,a2 + 4b14: 00c587b3 add a5,a1,a2 while (n-- > 0) - 4b08: ca09 beqz a2,4b1a + 4b18: ca09 beqz a2,4b2a *--dst = *--src; - 4b0a: fff7c683 lbu a3,-1(a5) - 4b0e: 17fd addi a5,a5,-1 - 4b10: 177d addi a4,a4,-1 - 4b12: 00d70023 sb a3,0(a4) + 4b1a: fff7c683 lbu a3,-1(a5) + 4b1e: 17fd addi a5,a5,-1 + 4b20: 177d addi a4,a4,-1 + 4b22: 00d70023 sb a3,0(a4) while (n-- > 0) - 4b16: fef59ae3 bne a1,a5,4b0a + 4b26: fef59ae3 bne a1,a5,4b1a } return vdst; } - 4b1a: 8082 ret + 4b2a: 8082 ret -0000000000004b1c : +0000000000004b2c : void *memcpy(void *vdst, const void *vsrc, size_t n) { return memmove(vdst, vsrc, n); - 4b1c: b7d1 j 4ae0 + 4b2c: b7d1 j 4af0 -0000000000004b1e : +0000000000004b2e : int memcmp(const void *s1, const void *s2, size_t n) { const unsigned char *p1 = (const unsigned char *)s1; const unsigned char *p2 = (const unsigned char *)s2; while (n--) - 4b1e: c205 beqz a2,4b3e - 4b20: 962a add a2,a2,a0 - 4b22: a019 j 4b28 - 4b24: 00c50d63 beq a0,a2,4b3e + 4b2e: c205 beqz a2,4b4e + 4b30: 962a add a2,a2,a0 + 4b32: a019 j 4b38 + 4b34: 00c50d63 beq a0,a2,4b4e { if (*p1 != *p2) - 4b28: 00054783 lbu a5,0(a0) - 4b2c: 0005c703 lbu a4,0(a1) + 4b38: 00054783 lbu a5,0(a0) + 4b3c: 0005c703 lbu a4,0(a1) return *p1 - *p2; p1++; - 4b30: 0505 addi a0,a0,1 + 4b40: 0505 addi a0,a0,1 p2++; - 4b32: 0585 addi a1,a1,1 + 4b42: 0585 addi a1,a1,1 if (*p1 != *p2) - 4b34: fee788e3 beq a5,a4,4b24 + 4b44: fee788e3 beq a5,a4,4b34 return *p1 - *p2; - 4b38: 40e7853b subw a0,a5,a4 - 4b3c: 8082 ret + 4b48: 40e7853b subw a0,a5,a4 + 4b4c: 8082 ret } return 0; - 4b3e: 4501 li a0,0 + 4b4e: 4501 li a0,0 } - 4b40: 8082 ret + 4b50: 8082 ret -0000000000004b42 : +0000000000004b52 : void *memchr(const void *s, int c, size_t n) { const unsigned char *p = (const unsigned char *)s; while (n--) - 4b42: ce09 beqz a2,4b5c + 4b52: ce09 beqz a2,4b6c { if (*p == (unsigned char)c) - 4b44: 0ff5f593 zext.b a1,a1 - 4b48: 962a add a2,a2,a0 - 4b4a: a021 j 4b52 + 4b54: 0ff5f593 zext.b a1,a1 + 4b58: 962a add a2,a2,a0 + 4b5a: a021 j 4b62 return (void *)p; p++; - 4b4c: 0505 addi a0,a0,1 + 4b5c: 0505 addi a0,a0,1 while (n--) - 4b4e: 00a60763 beq a2,a0,4b5c + 4b5e: 00a60763 beq a2,a0,4b6c if (*p == (unsigned char)c) - 4b52: 00054783 lbu a5,0(a0) - 4b56: feb79be3 bne a5,a1,4b4c + 4b62: 00054783 lbu a5,0(a0) + 4b66: feb79be3 bne a5,a1,4b5c } return NULL; } - 4b5a: 8082 ret + 4b6a: 8082 ret return NULL; - 4b5c: 4501 li a0,0 + 4b6c: 4501 li a0,0 } - 4b5e: 8082 ret + 4b6e: 8082 ret -0000000000004b60 : +0000000000004b70 : /* String Manipulation Functions */ size_t strlen(const char *s) { const char *p = s; while (*p) - 4b60: 00054783 lbu a5,0(a0) - 4b64: cb89 beqz a5,4b76 + 4b70: 00054783 lbu a5,0(a0) + 4b74: cb89 beqz a5,4b86 const char *p = s; - 4b66: 87aa mv a5,a0 + 4b76: 87aa mv a5,a0 while (*p) - 4b68: 0017c703 lbu a4,1(a5) + 4b78: 0017c703 lbu a4,1(a5) p++; - 4b6c: 0785 addi a5,a5,1 + 4b7c: 0785 addi a5,a5,1 while (*p) - 4b6e: ff6d bnez a4,4b68 + 4b7e: ff6d bnez a4,4b78 return (size_t)(p - s); - 4b70: 40a78533 sub a0,a5,a0 - 4b74: 8082 ret + 4b80: 40a78533 sub a0,a5,a0 + 4b84: 8082 ret while (*p) - 4b76: 4501 li a0,0 + 4b86: 4501 li a0,0 } - 4b78: 8082 ret + 4b88: 8082 ret -0000000000004b7a : +0000000000004b8a : char *strcpy(char *dst, const char *src) { char *os = dst; while ((*dst++ = *src++) != 0) - 4b7a: 87aa mv a5,a0 - 4b7c: 0005c703 lbu a4,0(a1) - 4b80: 0785 addi a5,a5,1 - 4b82: 0585 addi a1,a1,1 - 4b84: fee78fa3 sb a4,-1(a5) - 4b88: fb75 bnez a4,4b7c + 4b8a: 87aa mv a5,a0 + 4b8c: 0005c703 lbu a4,0(a1) + 4b90: 0785 addi a5,a5,1 + 4b92: 0585 addi a1,a1,1 + 4b94: fee78fa3 sb a4,-1(a5) + 4b98: fb75 bnez a4,4b8c ; return os; } - 4b8a: 8082 ret + 4b9a: 8082 ret -0000000000004b8c : +0000000000004b9c : char *strncpy(char *dst, const char *src, size_t n) { char *os = dst; size_t i; for (i = 0; i < n && src[i] != '\0'; i++) - 4b8c: 4781 li a5,0 - 4b8e: e619 bnez a2,4b9c - 4b90: 8082 ret + 4b9c: 4781 li a5,0 + 4b9e: e619 bnez a2,4bac + 4ba0: 8082 ret dst[i] = src[i]; - 4b92: 00e68023 sb a4,0(a3) + 4ba2: 00e68023 sb a4,0(a3) for (i = 0; i < n && src[i] != '\0'; i++) - 4b96: 0785 addi a5,a5,1 - 4b98: 02f60263 beq a2,a5,4bbc - 4b9c: 00f58733 add a4,a1,a5 - 4ba0: 00074703 lbu a4,0(a4) + 4ba6: 0785 addi a5,a5,1 + 4ba8: 02f60263 beq a2,a5,4bcc + 4bac: 00f58733 add a4,a1,a5 + 4bb0: 00074703 lbu a4,0(a4) dst[i] = src[i]; - 4ba4: 00f506b3 add a3,a0,a5 + 4bb4: 00f506b3 add a3,a0,a5 for (i = 0; i < n && src[i] != '\0'; i++) - 4ba8: f76d bnez a4,4b92 + 4bb8: f76d bnez a4,4ba2 for (; i < n; i++) - 4baa: 00c7f963 bgeu a5,a2,4bbc - 4bae: 87b6 mv a5,a3 - 4bb0: 962a add a2,a2,a0 + 4bba: 00c7f963 bgeu a5,a2,4bcc + 4bbe: 87b6 mv a5,a3 + 4bc0: 962a add a2,a2,a0 dst[i] = '\0'; - 4bb2: 00078023 sb zero,0(a5) + 4bc2: 00078023 sb zero,0(a5) for (; i < n; i++) - 4bb6: 0785 addi a5,a5,1 - 4bb8: fec79de3 bne a5,a2,4bb2 + 4bc6: 0785 addi a5,a5,1 + 4bc8: fec79de3 bne a5,a2,4bc2 return os; } - 4bbc: 8082 ret + 4bcc: 8082 ret -0000000000004bbe : +0000000000004bce : char *strcat(char *dst, const char *src) { char *os = dst; while (*dst) - 4bbe: 00054783 lbu a5,0(a0) - 4bc2: cf91 beqz a5,4bde - 4bc4: 87aa mv a5,a0 - 4bc6: 0017c703 lbu a4,1(a5) + 4bce: 00054783 lbu a5,0(a0) + 4bd2: cf91 beqz a5,4bee + 4bd4: 87aa mv a5,a0 + 4bd6: 0017c703 lbu a4,1(a5) dst++; - 4bca: 0785 addi a5,a5,1 + 4bda: 0785 addi a5,a5,1 while (*dst) - 4bcc: ff6d bnez a4,4bc6 + 4bdc: ff6d bnez a4,4bd6 while ((*dst++ = *src++) != 0) - 4bce: 0005c703 lbu a4,0(a1) - 4bd2: 0785 addi a5,a5,1 - 4bd4: 0585 addi a1,a1,1 - 4bd6: fee78fa3 sb a4,-1(a5) - 4bda: fb75 bnez a4,4bce + 4bde: 0005c703 lbu a4,0(a1) + 4be2: 0785 addi a5,a5,1 + 4be4: 0585 addi a1,a1,1 + 4be6: fee78fa3 sb a4,-1(a5) + 4bea: fb75 bnez a4,4bde ; return os; } - 4bdc: 8082 ret + 4bec: 8082 ret while ((*dst++ = *src++) != 0) - 4bde: 0005c703 lbu a4,0(a1) + 4bee: 0005c703 lbu a4,0(a1) while (*dst) - 4be2: 87aa mv a5,a0 + 4bf2: 87aa mv a5,a0 while ((*dst++ = *src++) != 0) - 4be4: 0785 addi a5,a5,1 - 4be6: fee78fa3 sb a4,-1(a5) - 4bea: 0585 addi a1,a1,1 - 4bec: f36d bnez a4,4bce - 4bee: 8082 ret + 4bf4: 0785 addi a5,a5,1 + 4bf6: fee78fa3 sb a4,-1(a5) + 4bfa: 0585 addi a1,a1,1 + 4bfc: f36d bnez a4,4bde + 4bfe: 8082 ret -0000000000004bf0 : +0000000000004c00 : while (*p) - 4bf0: 00054783 lbu a5,0(a0) + 4c00: 00054783 lbu a5,0(a0) const char *p = s; - 4bf4: 872a mv a4,a0 + 4c04: 872a mv a4,a0 while (*p) - 4bf6: c789 beqz a5,4c00 - 4bf8: 00174783 lbu a5,1(a4) + 4c06: c789 beqz a5,4c10 + 4c08: 00174783 lbu a5,1(a4) p++; - 4bfc: 0705 addi a4,a4,1 + 4c0c: 0705 addi a4,a4,1 while (*p) - 4bfe: ffed bnez a5,4bf8 + 4c0e: ffed bnez a5,4c08 size_t dest_len = strlen(dst); size_t i; dst += dest_len; for (i = 0; i < n && src[i] != '\0'; i++) - 4c00: 86ba mv a3,a4 - 4c02: 4781 li a5,0 - 4c04: 88ba mv a7,a4 - 4c06: ea01 bnez a2,4c16 - 4c08: a839 j 4c26 + 4c10: 86ba mv a3,a4 + 4c12: 4781 li a5,0 + 4c14: 88ba mv a7,a4 + 4c16: ea01 bnez a2,4c26 + 4c18: a839 j 4c36 dst[i] = src[i]; - 4c0a: 01068023 sb a6,0(a3) + 4c1a: 01068023 sb a6,0(a3) for (i = 0; i < n && src[i] != '\0'; i++) - 4c0e: 00188693 addi a3,a7,1 - 4c12: 00f60d63 beq a2,a5,4c2c - 4c16: 00f58833 add a6,a1,a5 - 4c1a: 00084803 lbu a6,0(a6) - 4c1e: 0785 addi a5,a5,1 + 4c1e: 00188693 addi a3,a7,1 + 4c22: 00f60d63 beq a2,a5,4c3c + 4c26: 00f58833 add a6,a1,a5 + 4c2a: 00084803 lbu a6,0(a6) + 4c2e: 0785 addi a5,a5,1 dst[i] = src[i]; - 4c20: 88b6 mv a7,a3 + 4c30: 88b6 mv a7,a3 for (i = 0; i < n && src[i] != '\0'; i++) - 4c22: fe0814e3 bnez a6,4c0a + 4c32: fe0814e3 bnez a6,4c1a dst[i] = '\0'; - 4c26: 00088023 sb zero,0(a7) + 4c36: 00088023 sb zero,0(a7) return os; } - 4c2a: 8082 ret + 4c3a: 8082 ret dst[i] = '\0'; - 4c2c: 00c708b3 add a7,a4,a2 - 4c30: 00088023 sb zero,0(a7) + 4c3c: 00c708b3 add a7,a4,a2 + 4c40: 00088023 sb zero,0(a7) } - 4c34: 8082 ret + 4c44: 8082 ret -0000000000004c36 : +0000000000004c46 : int strcmp(const char *p, const char *q) { while (*p && *p == *q) - 4c36: 00054783 lbu a5,0(a0) - 4c3a: e791 bnez a5,4c46 - 4c3c: a02d j 4c66 - 4c3e: 00054783 lbu a5,0(a0) - 4c42: cf89 beqz a5,4c5c - 4c44: 85b6 mv a1,a3 - 4c46: 0005c703 lbu a4,0(a1) + 4c46: 00054783 lbu a5,0(a0) + 4c4a: e791 bnez a5,4c56 + 4c4c: a02d j 4c76 + 4c4e: 00054783 lbu a5,0(a0) + 4c52: cf89 beqz a5,4c6c + 4c54: 85b6 mv a1,a3 + 4c56: 0005c703 lbu a4,0(a1) { p++; - 4c4a: 0505 addi a0,a0,1 + 4c5a: 0505 addi a0,a0,1 q++; - 4c4c: 00158693 addi a3,a1,1 + 4c5c: 00158693 addi a3,a1,1 while (*p && *p == *q) - 4c50: fef707e3 beq a4,a5,4c3e + 4c60: fef707e3 beq a4,a5,4c4e } return (int)((unsigned char)*p - (unsigned char)*q); - 4c54: 0007851b sext.w a0,a5 + 4c64: 0007851b sext.w a0,a5 } - 4c58: 9d19 subw a0,a0,a4 - 4c5a: 8082 ret + 4c68: 9d19 subw a0,a0,a4 + 4c6a: 8082 ret return (int)((unsigned char)*p - (unsigned char)*q); - 4c5c: 0015c703 lbu a4,1(a1) - 4c60: 4501 li a0,0 + 4c6c: 0015c703 lbu a4,1(a1) + 4c70: 4501 li a0,0 } - 4c62: 9d19 subw a0,a0,a4 - 4c64: 8082 ret + 4c72: 9d19 subw a0,a0,a4 + 4c74: 8082 ret return (int)((unsigned char)*p - (unsigned char)*q); - 4c66: 0005c703 lbu a4,0(a1) - 4c6a: 4501 li a0,0 - 4c6c: b7f5 j 4c58 + 4c76: 0005c703 lbu a4,0(a1) + 4c7a: 4501 li a0,0 + 4c7c: b7f5 j 4c68 -0000000000004c6e : +0000000000004c7e : int strncmp(const char *s1, const char *s2, size_t n) { if (n == 0) - 4c6e: ca0d beqz a2,4ca0 + 4c7e: ca0d beqz a2,4cb0 return 0; while (n-- > 0 && *s1 && *s1 == *s2) - 4c70: 00054783 lbu a5,0(a0) - 4c74: 167d addi a2,a2,-1 - 4c76: 00c506b3 add a3,a0,a2 - 4c7a: eb89 bnez a5,4c8c - 4c7c: a80d j 4cae + 4c80: 00054783 lbu a5,0(a0) + 4c84: 167d addi a2,a2,-1 + 4c86: 00c506b3 add a3,a0,a2 + 4c8a: eb89 bnez a5,4c9c + 4c8c: a80d j 4cbe { if (n == 0 || *s1 == '\0') - 4c7e: 00d50d63 beq a0,a3,4c98 + 4c8e: 00d50d63 beq a0,a3,4ca8 while (n-- > 0 && *s1 && *s1 == *s2) - 4c82: 00154783 lbu a5,1(a0) + 4c92: 00154783 lbu a5,1(a0) break; s1++; - 4c86: 0505 addi a0,a0,1 + 4c96: 0505 addi a0,a0,1 while (n-- > 0 && *s1 && *s1 == *s2) - 4c88: cf91 beqz a5,4ca4 - 4c8a: 85b2 mv a1,a2 - 4c8c: 0005c703 lbu a4,0(a1) + 4c98: cf91 beqz a5,4cb4 + 4c9a: 85b2 mv a1,a2 + 4c9c: 0005c703 lbu a4,0(a1) s2++; - 4c90: 00158613 addi a2,a1,1 + 4ca0: 00158613 addi a2,a1,1 while (n-- > 0 && *s1 && *s1 == *s2) - 4c94: fef705e3 beq a4,a5,4c7e + 4ca4: fef705e3 beq a4,a5,4c8e } return (int)((unsigned char)*s1 - (unsigned char)*s2); - 4c98: 0007851b sext.w a0,a5 - 4c9c: 9d19 subw a0,a0,a4 - 4c9e: 8082 ret + 4ca8: 0007851b sext.w a0,a5 + 4cac: 9d19 subw a0,a0,a4 + 4cae: 8082 ret return 0; - 4ca0: 4501 li a0,0 + 4cb0: 4501 li a0,0 } - 4ca2: 8082 ret + 4cb2: 8082 ret return (int)((unsigned char)*s1 - (unsigned char)*s2); - 4ca4: 0015c703 lbu a4,1(a1) - 4ca8: 4501 li a0,0 - 4caa: 9d19 subw a0,a0,a4 - 4cac: 8082 ret - 4cae: 0005c703 lbu a4,0(a1) - 4cb2: 4501 li a0,0 - 4cb4: b7e5 j 4c9c + 4cb4: 0015c703 lbu a4,1(a1) + 4cb8: 4501 li a0,0 + 4cba: 9d19 subw a0,a0,a4 + 4cbc: 8082 ret + 4cbe: 0005c703 lbu a4,0(a1) + 4cc2: 4501 li a0,0 + 4cc4: b7e5 j 4cac -0000000000004cb6 : +0000000000004cc6 : char *strchr(const char *s, int c) { while (*s != (char)c) - 4cb6: 0ff5f593 zext.b a1,a1 - 4cba: a019 j 4cc0 + 4cc6: 0ff5f593 zext.b a1,a1 + 4cca: a019 j 4cd0 { if (!*s++) - 4cbc: 0505 addi a0,a0,1 - 4cbe: c791 beqz a5,4cca + 4ccc: 0505 addi a0,a0,1 + 4cce: c791 beqz a5,4cda while (*s != (char)c) - 4cc0: 00054783 lbu a5,0(a0) - 4cc4: feb79ce3 bne a5,a1,4cbc - 4cc8: 8082 ret + 4cd0: 00054783 lbu a5,0(a0) + 4cd4: feb79ce3 bne a5,a1,4ccc + 4cd8: 8082 ret return NULL; - 4cca: 4501 li a0,0 + 4cda: 4501 li a0,0 } return (char *)s; } - 4ccc: 8082 ret + 4cdc: 8082 ret -0000000000004cce : +0000000000004cde : char *strrchr(const char *s, int c) { - 4cce: 87aa mv a5,a0 + 4cde: 87aa mv a5,a0 const char *last = NULL; do { if (*s == (char)c) - 4cd0: 0ff5f593 zext.b a1,a1 + 4ce0: 0ff5f593 zext.b a1,a1 const char *last = NULL; - 4cd4: 4501 li a0,0 + 4ce4: 4501 li a0,0 if (*s == (char)c) - 4cd6: 0007c703 lbu a4,0(a5) - 4cda: 00e59363 bne a1,a4,4ce0 + 4ce6: 0007c703 lbu a4,0(a5) + 4cea: 00e59363 bne a1,a4,4cf0 last = s; - 4cde: 853e mv a0,a5 + 4cee: 853e mv a0,a5 } while (*s++); - 4ce0: 0785 addi a5,a5,1 - 4ce2: fb75 bnez a4,4cd6 + 4cf0: 0785 addi a5,a5,1 + 4cf2: fb75 bnez a4,4ce6 return (char *)last; } - 4ce4: 8082 ret + 4cf4: 8082 ret -0000000000004ce6 : +0000000000004cf6 : while (*p) - 4ce6: 0005c883 lbu a7,0(a1) - 4cea: 04088a63 beqz a7,4d3e + 4cf6: 0005c883 lbu a7,0(a1) + 4cfa: 04088a63 beqz a7,4d4e const char *p = s; - 4cee: 87ae mv a5,a1 + 4cfe: 87ae mv a5,a1 while (*p) - 4cf0: 0017c703 lbu a4,1(a5) + 4d00: 0017c703 lbu a4,1(a5) p++; - 4cf4: 0785 addi a5,a5,1 + 4d04: 0785 addi a5,a5,1 while (*p) - 4cf6: ff6d bnez a4,4cf0 + 4d06: ff6d bnez a4,4d00 return (size_t)(p - s); - 4cf8: 40b78833 sub a6,a5,a1 + 4d08: 40b78833 sub a6,a5,a1 char *strstr(const char *haystack, const char *needle) { size_t n_len = strlen(needle); if (n_len == 0) - 4cfc: 04b78163 beq a5,a1,4d3e + 4d0c: 04b78163 beq a5,a1,4d4e return (char *)haystack; for (; *haystack; haystack++) - 4d00: 00054783 lbu a5,0(a0) - 4d04: cf85 beqz a5,4d3c - 4d06: 187d addi a6,a6,-1 - 4d08: 982a add a6,a6,a0 + 4d10: 00054783 lbu a5,0(a0) + 4d14: cf85 beqz a5,4d4c + 4d16: 187d addi a6,a6,-1 + 4d18: 982a add a6,a6,a0 { if (*haystack != *needle) - 4d0a: 02f89463 bne a7,a5,4d32 + 4d1a: 02f89463 bne a7,a5,4d42 while (n-- > 0 && *s1 && *s1 == *s2) - 4d0e: 00054703 lbu a4,0(a0) - 4d12: 8646 mv a2,a7 - 4d14: 86ae mv a3,a1 - 4d16: 87aa mv a5,a0 - 4d18: eb11 bnez a4,4d2c - 4d1a: a821 j 4d32 + 4d1e: 00054703 lbu a4,0(a0) + 4d22: 8646 mv a2,a7 + 4d24: 86ae mv a3,a1 + 4d26: 87aa mv a5,a0 + 4d28: eb11 bnez a4,4d3c + 4d2a: a821 j 4d42 if (n == 0 || *s1 == '\0') - 4d1c: 03078163 beq a5,a6,4d3e + 4d2c: 03078163 beq a5,a6,4d4e while (n-- > 0 && *s1 && *s1 == *s2) - 4d20: 0017c703 lbu a4,1(a5) + 4d30: 0017c703 lbu a4,1(a5) return (int)((unsigned char)*s1 - (unsigned char)*s2); - 4d24: 0006c603 lbu a2,0(a3) + 4d34: 0006c603 lbu a2,0(a3) s1++; - 4d28: 0785 addi a5,a5,1 + 4d38: 0785 addi a5,a5,1 while (n-- > 0 && *s1 && *s1 == *s2) - 4d2a: cb19 beqz a4,4d40 + 4d3a: cb19 beqz a4,4d50 s2++; - 4d2c: 0685 addi a3,a3,1 + 4d3c: 0685 addi a3,a3,1 while (n-- > 0 && *s1 && *s1 == *s2) - 4d2e: fee607e3 beq a2,a4,4d1c + 4d3e: fee607e3 beq a2,a4,4d2c for (; *haystack; haystack++) - 4d32: 00154783 lbu a5,1(a0) - 4d36: 0805 addi a6,a6,1 - 4d38: 0505 addi a0,a0,1 - 4d3a: fbe1 bnez a5,4d0a + 4d42: 00154783 lbu a5,1(a0) + 4d46: 0805 addi a6,a6,1 + 4d48: 0505 addi a0,a0,1 + 4d4a: fbe1 bnez a5,4d1a continue; if (strncmp(haystack, needle, n_len) == 0) return (char *)haystack; } return NULL; - 4d3c: 4501 li a0,0 + 4d4c: 4501 li a0,0 } - 4d3e: 8082 ret + 4d4e: 8082 ret if (strncmp(haystack, needle, n_len) == 0) - 4d40: de7d beqz a2,4d3e + 4d50: de7d beqz a2,4d4e for (; *haystack; haystack++) - 4d42: 00154783 lbu a5,1(a0) - 4d46: 0805 addi a6,a6,1 - 4d48: 0505 addi a0,a0,1 - 4d4a: f3e1 bnez a5,4d0a - 4d4c: bfc5 j 4d3c + 4d52: 00154783 lbu a5,1(a0) + 4d56: 0805 addi a6,a6,1 + 4d58: 0505 addi a0,a0,1 + 4d5a: f3e1 bnez a5,4d1a + 4d5c: bfc5 j 4d4c -0000000000004d4e : +0000000000004d5e : char *strdup(const char *s) { - 4d4e: 1101 addi sp,sp,-32 - 4d50: e426 sd s1,8(sp) - 4d52: ec06 sd ra,24(sp) - 4d54: e822 sd s0,16(sp) + 4d5e: 1101 addi sp,sp,-32 + 4d60: e426 sd s1,8(sp) + 4d62: ec06 sd ra,24(sp) + 4d64: e822 sd s0,16(sp) while (*p) - 4d56: 00054783 lbu a5,0(a0) + 4d66: 00054783 lbu a5,0(a0) { - 4d5a: 84aa mv s1,a0 + 4d6a: 84aa mv s1,a0 while (*p) - 4d5c: cb8d beqz a5,4d8e + 4d6c: cb8d beqz a5,4d9e const char *p = s; - 4d5e: 862a mv a2,a0 + 4d6e: 862a mv a2,a0 while (*p) - 4d60: 00164783 lbu a5,1(a2) + 4d70: 00164783 lbu a5,1(a2) p++; - 4d64: 0605 addi a2,a2,1 + 4d74: 0605 addi a2,a2,1 while (*p) - 4d66: ffed bnez a5,4d60 + 4d76: ffed bnez a5,4d70 return (size_t)(p - s); - 4d68: 8e05 sub a2,a2,s1 + 4d78: 8e05 sub a2,a2,s1 size_t len = strlen(s) + 1; - 4d6a: 00160413 addi s0,a2,1 + 4d7a: 00160413 addi s0,a2,1 char *new_str = (char *)malloc(len); - 4d6e: 8522 mv a0,s0 - 4d70: f4eff0ef jal 44be + 4d7e: 8522 mv a0,s0 + 4d80: f4eff0ef jal 44ce if (new_str == NULL) - 4d74: c901 beqz a0,4d84 + 4d84: c901 beqz a0,4d94 return memmove(vdst, vsrc, n); - 4d76: 8622 mv a2,s0 + 4d86: 8622 mv a2,s0 return NULL; return (char *)memcpy(new_str, s, len); } - 4d78: 6442 ld s0,16(sp) - 4d7a: 60e2 ld ra,24(sp) + 4d88: 6442 ld s0,16(sp) + 4d8a: 60e2 ld ra,24(sp) return memmove(vdst, vsrc, n); - 4d7c: 85a6 mv a1,s1 + 4d8c: 85a6 mv a1,s1 } - 4d7e: 64a2 ld s1,8(sp) - 4d80: 6105 addi sp,sp,32 + 4d8e: 64a2 ld s1,8(sp) + 4d90: 6105 addi sp,sp,32 return memmove(vdst, vsrc, n); - 4d82: bbb9 j 4ae0 + 4d92: bbb9 j 4af0 } - 4d84: 60e2 ld ra,24(sp) - 4d86: 6442 ld s0,16(sp) - 4d88: 64a2 ld s1,8(sp) - 4d8a: 6105 addi sp,sp,32 - 4d8c: 8082 ret + 4d94: 60e2 ld ra,24(sp) + 4d96: 6442 ld s0,16(sp) + 4d98: 64a2 ld s1,8(sp) + 4d9a: 6105 addi sp,sp,32 + 4d9c: 8082 ret while (*p) - 4d8e: 4405 li s0,1 - 4d90: bff9 j 4d6e + 4d9e: 4405 li s0,1 + 4da0: bff9 j 4d7e -0000000000004d92 : - 4d92: 0005c783 lbu a5,0(a1) +0000000000004da2 : + 4da2: 0005c783 lbu a5,0(a1) size_t strlcpy(char *dst, const char *src, size_t size) { - 4d96: 1101 addi sp,sp,-32 - 4d98: ec06 sd ra,24(sp) - 4d9a: e822 sd s0,16(sp) - 4d9c: 86b2 mv a3,a2 + 4da6: 1101 addi sp,sp,-32 + 4da8: ec06 sd ra,24(sp) + 4daa: e822 sd s0,16(sp) + 4dac: 86b2 mv a3,a2 while (*p) - 4d9e: cf8d beqz a5,4dd8 + 4dae: cf8d beqz a5,4de8 const char *p = s; - 4da0: 87ae mv a5,a1 + 4db0: 87ae mv a5,a1 while (*p) - 4da2: 0017c703 lbu a4,1(a5) + 4db2: 0017c703 lbu a4,1(a5) p++; - 4da6: 0785 addi a5,a5,1 + 4db6: 0785 addi a5,a5,1 while (*p) - 4da8: ff6d bnez a4,4da2 + 4db8: ff6d bnez a4,4db2 return (size_t)(p - s); - 4daa: 40b78433 sub s0,a5,a1 + 4dba: 40b78433 sub s0,a5,a1 size_t src_len = strlen(src); if (size > 0) - 4dae: c285 beqz a3,4dce - 4db0: e426 sd s1,8(sp) + 4dbe: c285 beqz a3,4dde + 4dc0: e426 sd s1,8(sp) { size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 4db2: fff68613 addi a2,a3,-1 + 4dc2: fff68613 addi a2,a3,-1 memcpy(dst, src, copy_len); dst[copy_len] = '\0'; - 4db6: 00c504b3 add s1,a0,a2 + 4dc6: 00c504b3 add s1,a0,a2 size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 4dba: 00d47563 bgeu s0,a3,4dc4 + 4dca: 00d47563 bgeu s0,a3,4dd4 dst[copy_len] = '\0'; - 4dbe: 008504b3 add s1,a0,s0 + 4dce: 008504b3 add s1,a0,s0 size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 4dc2: 8622 mv a2,s0 + 4dd2: 8622 mv a2,s0 return memmove(vdst, vsrc, n); - 4dc4: d1dff0ef jal 4ae0 + 4dd4: d1dff0ef jal 4af0 dst[copy_len] = '\0'; - 4dc8: 00048023 sb zero,0(s1) + 4dd8: 00048023 sb zero,0(s1) } return src_len; - 4dcc: 64a2 ld s1,8(sp) + 4ddc: 64a2 ld s1,8(sp) } - 4dce: 60e2 ld ra,24(sp) - 4dd0: 8522 mv a0,s0 - 4dd2: 6442 ld s0,16(sp) - 4dd4: 6105 addi sp,sp,32 - 4dd6: 8082 ret + 4dde: 60e2 ld ra,24(sp) + 4de0: 8522 mv a0,s0 + 4de2: 6442 ld s0,16(sp) + 4de4: 6105 addi sp,sp,32 + 4de6: 8082 ret if (size > 0) - 4dd8: e219 bnez a2,4dde + 4de8: e219 bnez a2,4dee return (size_t)(p - s); - 4dda: 4401 li s0,0 - 4ddc: bfcd j 4dce - 4dde: e426 sd s1,8(sp) - 4de0: 4401 li s0,0 + 4dea: 4401 li s0,0 + 4dec: bfcd j 4dde + 4dee: e426 sd s1,8(sp) + 4df0: 4401 li s0,0 if (size > 0) - 4de2: 84aa mv s1,a0 + 4df2: 84aa mv s1,a0 size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 4de4: 4601 li a2,0 - 4de6: bff9 j 4dc4 + 4df4: 4601 li a2,0 + 4df6: bff9 j 4dd4 -0000000000004de8 : +0000000000004df8 : while (*p) - 4de8: 0005c783 lbu a5,0(a1) + 4df8: 0005c783 lbu a5,0(a1) size_t strlcat(char *dst, const char *src, size_t size) { - 4dec: 7179 addi sp,sp,-48 - 4dee: e84a sd s2,16(sp) - 4df0: f406 sd ra,40(sp) - 4df2: f022 sd s0,32(sp) - 4df4: ec26 sd s1,24(sp) - 4df6: 892a mv s2,a0 + 4dfc: 7179 addi sp,sp,-48 + 4dfe: e84a sd s2,16(sp) + 4e00: f406 sd ra,40(sp) + 4e02: f022 sd s0,32(sp) + 4e04: ec26 sd s1,24(sp) + 4e06: 892a mv s2,a0 while (*p) - 4df8: c7b5 beqz a5,4e64 + 4e08: c7b5 beqz a5,4e74 const char *p = s; - 4dfa: 87ae mv a5,a1 + 4e0a: 87ae mv a5,a1 while (*p) - 4dfc: 0017c703 lbu a4,1(a5) + 4e0c: 0017c703 lbu a4,1(a5) p++; - 4e00: 0785 addi a5,a5,1 + 4e10: 0785 addi a5,a5,1 while (*p) - 4e02: ff6d bnez a4,4dfc + 4e12: ff6d bnez a4,4e0c return (size_t)(p - s); - 4e04: 40b784b3 sub s1,a5,a1 + 4e14: 40b784b3 sub s1,a5,a1 size_t dst_len = 0; - 4e08: 4401 li s0,0 + 4e18: 4401 li s0,0 size_t src_len = strlen(src); while (dst_len < size && dst[dst_len] != '\0') - 4e0a: e609 bnez a2,4e14 - 4e0c: a0a1 j 4e54 + 4e1a: e609 bnez a2,4e24 + 4e1c: a0a1 j 4e64 dst_len++; - 4e0e: 0405 addi s0,s0,1 + 4e1e: 0405 addi s0,s0,1 while (dst_len < size && dst[dst_len] != '\0') - 4e10: 04860263 beq a2,s0,4e54 - 4e14: 00890533 add a0,s2,s0 - 4e18: 00054783 lbu a5,0(a0) - 4e1c: fbed bnez a5,4e0e + 4e20: 04860263 beq a2,s0,4e64 + 4e24: 00890533 add a0,s2,s0 + 4e28: 00054783 lbu a5,0(a0) + 4e2c: fbed bnez a5,4e1e if (dst_len == size) - 4e1e: 02860b63 beq a2,s0,4e54 - 4e22: e44e sd s3,8(sp) + 4e2e: 02860b63 beq a2,s0,4e64 + 4e32: e44e sd s3,8(sp) return size + src_len; size_t space_left = size - dst_len; - 4e24: 408607b3 sub a5,a2,s0 + 4e34: 408607b3 sub a5,a2,s0 size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; - 4e28: 89a6 mv s3,s1 - 4e2a: 02f4f263 bgeu s1,a5,4e4e + 4e38: 89a6 mv s3,s1 + 4e3a: 02f4f263 bgeu s1,a5,4e5e memcpy(dst + dst_len, src, copy_len); dst[dst_len + copy_len] = '\0'; - 4e2e: 994e add s2,s2,s3 - 4e30: 9922 add s2,s2,s0 + 4e3e: 994e add s2,s2,s3 + 4e40: 9922 add s2,s2,s0 return memmove(vdst, vsrc, n); - 4e32: 864e mv a2,s3 - 4e34: cadff0ef jal 4ae0 + 4e42: 864e mv a2,s3 + 4e44: cadff0ef jal 4af0 dst[dst_len + copy_len] = '\0'; - 4e38: 00090023 sb zero,0(s2) # 1000 <_vscanf_core.constprop.0+0x698> + 4e48: 00090023 sb zero,0(s2) # 1000 <_vscanf_core.constprop.0+0x688> return dst_len + src_len; - 4e3c: 00940533 add a0,s0,s1 + 4e4c: 00940533 add a0,s0,s1 } - 4e40: 70a2 ld ra,40(sp) - 4e42: 7402 ld s0,32(sp) + 4e50: 70a2 ld ra,40(sp) + 4e52: 7402 ld s0,32(sp) return dst_len + src_len; - 4e44: 69a2 ld s3,8(sp) + 4e54: 69a2 ld s3,8(sp) } - 4e46: 64e2 ld s1,24(sp) - 4e48: 6942 ld s2,16(sp) - 4e4a: 6145 addi sp,sp,48 - 4e4c: 8082 ret + 4e56: 64e2 ld s1,24(sp) + 4e58: 6942 ld s2,16(sp) + 4e5a: 6145 addi sp,sp,48 + 4e5c: 8082 ret size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; - 4e4e: fff78993 addi s3,a5,-1 - 4e52: bff1 j 4e2e + 4e5e: fff78993 addi s3,a5,-1 + 4e62: bff1 j 4e3e } - 4e54: 70a2 ld ra,40(sp) - 4e56: 7402 ld s0,32(sp) - 4e58: 6942 ld s2,16(sp) + 4e64: 70a2 ld ra,40(sp) + 4e66: 7402 ld s0,32(sp) + 4e68: 6942 ld s2,16(sp) return size + src_len; - 4e5a: 00960533 add a0,a2,s1 + 4e6a: 00960533 add a0,a2,s1 } - 4e5e: 64e2 ld s1,24(sp) - 4e60: 6145 addi sp,sp,48 - 4e62: 8082 ret + 4e6e: 64e2 ld s1,24(sp) + 4e70: 6145 addi sp,sp,48 + 4e72: 8082 ret while (*p) - 4e64: 4481 li s1,0 - 4e66: b74d j 4e08 + 4e74: 4481 li s1,0 + 4e76: b74d j 4e18 -0000000000004e68 : +0000000000004e78 : size_t strspn(const char *s, const char *accept) { const char *p = s; const char *a; while (*p) - 4e68: 00054683 lbu a3,0(a0) - 4e6c: c695 beqz a3,4e98 + 4e78: 00054683 lbu a3,0(a0) + 4e7c: c695 beqz a3,4ea8 { for (a = accept; *a; a++) - 4e6e: 0005c803 lbu a6,0(a1) - 4e72: 862a mv a2,a0 - 4e74: 00080f63 beqz a6,4e92 - 4e78: 87ae mv a5,a1 - 4e7a: 8742 mv a4,a6 - 4e7c: a021 j 4e84 - 4e7e: 0007c703 lbu a4,0(a5) - 4e82: cb01 beqz a4,4e92 - 4e84: 0785 addi a5,a5,1 + 4e7e: 0005c803 lbu a6,0(a1) + 4e82: 862a mv a2,a0 + 4e84: 00080f63 beqz a6,4ea2 + 4e88: 87ae mv a5,a1 + 4e8a: 8742 mv a4,a6 + 4e8c: a021 j 4e94 + 4e8e: 0007c703 lbu a4,0(a5) + 4e92: cb01 beqz a4,4ea2 + 4e94: 0785 addi a5,a5,1 { if (*p == *a) - 4e86: fee69ce3 bne a3,a4,4e7e + 4e96: fee69ce3 bne a3,a4,4e8e while (*p) - 4e8a: 00164683 lbu a3,1(a2) + 4e9a: 00164683 lbu a3,1(a2) break; } if (*a == '\0') return (size_t)(p - s); p++; - 4e8e: 0605 addi a2,a2,1 + 4e9e: 0605 addi a2,a2,1 while (*p) - 4e90: f6e5 bnez a3,4e78 + 4ea0: f6e5 bnez a3,4e88 } return (size_t)(p - s); - 4e92: 40a60533 sub a0,a2,a0 - 4e96: 8082 ret + 4ea2: 40a60533 sub a0,a2,a0 + 4ea6: 8082 ret while (*p) - 4e98: 4501 li a0,0 + 4ea8: 4501 li a0,0 } - 4e9a: 8082 ret + 4eaa: 8082 ret -0000000000004e9c : +0000000000004eac : size_t strcspn(const char *s, const char *reject) { const char *p = s; const char *r; while (*p) - 4e9c: 00054683 lbu a3,0(a0) - 4ea0: ce85 beqz a3,4ed8 + 4eac: 00054683 lbu a3,0(a0) + 4eb0: ce85 beqz a3,4ee8 { for (r = reject; *r; r++) - 4ea2: 0005c803 lbu a6,0(a1) + 4eb2: 0005c803 lbu a6,0(a1) const char *p = s; - 4ea6: 862a mv a2,a0 + 4eb6: 862a mv a2,a0 for (r = reject; *r; r++) - 4ea8: 02080363 beqz a6,4ece - 4eac: 87ae mv a5,a1 - 4eae: 8742 mv a4,a6 - 4eb0: a021 j 4eb8 - 4eb2: 0007c703 lbu a4,0(a5) - 4eb6: c719 beqz a4,4ec4 - 4eb8: 0785 addi a5,a5,1 + 4eb8: 02080363 beqz a6,4ede + 4ebc: 87ae mv a5,a1 + 4ebe: 8742 mv a4,a6 + 4ec0: a021 j 4ec8 + 4ec2: 0007c703 lbu a4,0(a5) + 4ec6: c719 beqz a4,4ed4 + 4ec8: 0785 addi a5,a5,1 { if (*p == *r) - 4eba: fed71ce3 bne a4,a3,4eb2 + 4eca: fed71ce3 bne a4,a3,4ec2 return (size_t)(p - s); } p++; } return (size_t)(p - s); - 4ebe: 40a60533 sub a0,a2,a0 - 4ec2: 8082 ret + 4ece: 40a60533 sub a0,a2,a0 + 4ed2: 8082 ret while (*p) - 4ec4: 00164683 lbu a3,1(a2) + 4ed4: 00164683 lbu a3,1(a2) p++; - 4ec8: 0605 addi a2,a2,1 + 4ed8: 0605 addi a2,a2,1 while (*p) - 4eca: f2ed bnez a3,4eac - 4ecc: bfcd j 4ebe - 4ece: 00164683 lbu a3,1(a2) + 4eda: f2ed bnez a3,4ebc + 4edc: bfcd j 4ece + 4ede: 00164683 lbu a3,1(a2) p++; - 4ed2: 0605 addi a2,a2,1 + 4ee2: 0605 addi a2,a2,1 while (*p) - 4ed4: feed bnez a3,4ece - 4ed6: b7e5 j 4ebe - 4ed8: 4501 li a0,0 + 4ee4: feed bnez a3,4ede + 4ee6: b7e5 j 4ece + 4ee8: 4501 li a0,0 } - 4eda: 8082 ret + 4eea: 8082 ret -0000000000004edc : +0000000000004eec : char *strpbrk(const char *s, const char *accept) { const char *a; while (*s) - 4edc: 00054683 lbu a3,0(a0) - 4ee0: c295 beqz a3,4f04 + 4eec: 00054683 lbu a3,0(a0) + 4ef0: c295 beqz a3,4f14 { for (a = accept; *a; a++) - 4ee2: 0005c603 lbu a2,0(a1) - 4ee6: c20d beqz a2,4f08 - 4ee8: 87ae mv a5,a1 - 4eea: 8732 mv a4,a2 - 4eec: a021 j 4ef4 - 4eee: 0007c703 lbu a4,0(a5) - 4ef2: c709 beqz a4,4efc - 4ef4: 0785 addi a5,a5,1 + 4ef2: 0005c603 lbu a2,0(a1) + 4ef6: c20d beqz a2,4f18 + 4ef8: 87ae mv a5,a1 + 4efa: 8732 mv a4,a2 + 4efc: a021 j 4f04 + 4efe: 0007c703 lbu a4,0(a5) + 4f02: c709 beqz a4,4f0c + 4f04: 0785 addi a5,a5,1 { if (*s == *a) - 4ef6: fed71ce3 bne a4,a3,4eee + 4f06: fed71ce3 bne a4,a3,4efe return (char *)s; } s++; } return NULL; } - 4efa: 8082 ret + 4f0a: 8082 ret while (*s) - 4efc: 00154683 lbu a3,1(a0) + 4f0c: 00154683 lbu a3,1(a0) s++; - 4f00: 0505 addi a0,a0,1 + 4f10: 0505 addi a0,a0,1 while (*s) - 4f02: f2fd bnez a3,4ee8 + 4f12: f2fd bnez a3,4ef8 return NULL; - 4f04: 4501 li a0,0 + 4f14: 4501 li a0,0 } - 4f06: 8082 ret + 4f16: 8082 ret while (*s) - 4f08: 00154683 lbu a3,1(a0) + 4f18: 00154683 lbu a3,1(a0) s++; - 4f0c: 0505 addi a0,a0,1 + 4f1c: 0505 addi a0,a0,1 while (*s) - 4f0e: feed bnez a3,4f08 - 4f10: bfd5 j 4f04 + 4f1e: feed bnez a3,4f18 + 4f20: bfd5 j 4f14 -0000000000004f12 : +0000000000004f22 : char *strtok(char *str, const char *delim) { static char *olds; char *token; if (str == NULL) - 4f12: 00003897 auipc a7,0x3 - 4f16: 93e88893 addi a7,a7,-1730 # 7850 - 4f1a: cd25 beqz a0,4f92 + 4f22: 00003897 auipc a7,0x3 + 4f26: 94e88893 addi a7,a7,-1714 # 7870 + 4f2a: cd25 beqz a0,4fa2 while (*p) - 4f1c: 00054683 lbu a3,0(a0) - 4f20: c295 beqz a3,4f44 + 4f2c: 00054683 lbu a3,0(a0) + 4f30: c295 beqz a3,4f54 for (a = accept; *a; a++) - 4f22: 0005c803 lbu a6,0(a1) - 4f26: 02080463 beqz a6,4f4e - 4f2a: 87ae mv a5,a1 - 4f2c: 8742 mv a4,a6 - 4f2e: a021 j 4f36 - 4f30: 0007c703 lbu a4,0(a5) - 4f34: cf09 beqz a4,4f4e - 4f36: 0785 addi a5,a5,1 + 4f32: 0005c803 lbu a6,0(a1) + 4f36: 02080463 beqz a6,4f5e + 4f3a: 87ae mv a5,a1 + 4f3c: 8742 mv a4,a6 + 4f3e: a021 j 4f46 + 4f40: 0007c703 lbu a4,0(a5) + 4f44: cf09 beqz a4,4f5e + 4f46: 0785 addi a5,a5,1 if (*p == *a) - 4f38: fee69ce3 bne a3,a4,4f30 + 4f48: fee69ce3 bne a3,a4,4f40 while (*p) - 4f3c: 00154683 lbu a3,1(a0) + 4f4c: 00154683 lbu a3,1(a0) p++; - 4f40: 0505 addi a0,a0,1 + 4f50: 0505 addi a0,a0,1 while (*p) - 4f42: f6e5 bnez a3,4f2a - 4f44: 87aa mv a5,a0 + 4f52: f6e5 bnez a3,4f3a + 4f54: 87aa mv a5,a0 str = olds; str += strspn(str, delim); if (*str == '\0') { olds = str; - 4f46: 00f8b023 sd a5,0(a7) + 4f56: 00f8b023 sd a5,0(a7) return NULL; - 4f4a: 4501 li a0,0 + 4f5a: 4501 li a0,0 *str = '\0'; olds = str + 1; } return token; } - 4f4c: 8082 ret + 4f5c: 8082 ret if (*str == '\0') - 4f4e: 00054603 lbu a2,0(a0) - 4f52: da6d beqz a2,4f44 - 4f54: 86aa mv a3,a0 + 4f5e: 00054603 lbu a2,0(a0) + 4f62: da6d beqz a2,4f54 + 4f64: 86aa mv a3,a0 for (a = accept; *a; a++) - 4f56: 04080163 beqz a6,4f98 - 4f5a: 8742 mv a4,a6 - 4f5c: 87ae mv a5,a1 - 4f5e: a021 j 4f66 - 4f60: 0007c703 lbu a4,0(a5) - 4f64: cb19 beqz a4,4f7a - 4f66: 0785 addi a5,a5,1 + 4f66: 04080163 beqz a6,4fa8 + 4f6a: 8742 mv a4,a6 + 4f6c: 87ae mv a5,a1 + 4f6e: a021 j 4f76 + 4f70: 0007c703 lbu a4,0(a5) + 4f74: cb19 beqz a4,4f8a + 4f76: 0785 addi a5,a5,1 if (*s == *a) - 4f68: fee61ce3 bne a2,a4,4f60 + 4f78: fee61ce3 bne a2,a4,4f70 olds = str + 1; - 4f6c: 00168793 addi a5,a3,1 + 4f7c: 00168793 addi a5,a3,1 *str = '\0'; - 4f70: 00068023 sb zero,0(a3) + 4f80: 00068023 sb zero,0(a3) olds = str; - 4f74: 00f8b023 sd a5,0(a7) + 4f84: 00f8b023 sd a5,0(a7) } - 4f78: 8082 ret + 4f88: 8082 ret while (*s) - 4f7a: 0016c603 lbu a2,1(a3) + 4f8a: 0016c603 lbu a2,1(a3) s++; - 4f7e: 0685 addi a3,a3,1 + 4f8e: 0685 addi a3,a3,1 while (*s) - 4f80: fe69 bnez a2,4f5a - 4f82: 87aa mv a5,a0 + 4f90: fe69 bnez a2,4f6a + 4f92: 87aa mv a5,a0 while (*s != (char)c) - 4f84: 0017c703 lbu a4,1(a5) + 4f94: 0017c703 lbu a4,1(a5) if (!*s++) - 4f88: 0785 addi a5,a5,1 + 4f98: 0785 addi a5,a5,1 while (*s != (char)c) - 4f8a: ff6d bnez a4,4f84 + 4f9a: ff6d bnez a4,4f94 olds = str; - 4f8c: 00f8b023 sd a5,0(a7) + 4f9c: 00f8b023 sd a5,0(a7) } - 4f90: 8082 ret + 4fa0: 8082 ret str = olds; - 4f92: 0008b503 ld a0,0(a7) - 4f96: b759 j 4f1c + 4fa2: 0008b503 ld a0,0(a7) + 4fa6: b759 j 4f2c while (*s) - 4f98: 0016c603 lbu a2,1(a3) + 4fa8: 0016c603 lbu a2,1(a3) s++; - 4f9c: 0685 addi a3,a3,1 + 4fac: 0685 addi a3,a3,1 while (*s) - 4f9e: fe6d bnez a2,4f98 - 4fa0: b7cd j 4f82 + 4fae: fe6d bnez a2,4fa8 + 4fb0: b7cd j 4f92 -0000000000004fa2 : +0000000000004fb2 : char *strerror(int errnum) { - 4fa2: 87aa mv a5,a0 + 4fb2: 87aa mv a5,a0 switch (errnum) - 4fa4: cd09 beqz a0,4fbe - 4fa6: 4731 li a4,12 - 4fa8: 00000517 auipc a0,0x0 - 4fac: 1a050513 addi a0,a0,416 # 5148 <_GLOBAL__sub_I__ZSt3cin+0x168> - 4fb0: 00e78b63 beq a5,a4,4fc6 + 4fb4: cd09 beqz a0,4fce + 4fb6: 4731 li a4,12 + 4fb8: 00000517 auipc a0,0x0 + 4fbc: 1b050513 addi a0,a0,432 # 5168 <_GLOBAL__sub_I__ZSt3cin+0x178> + 4fc0: 00e78b63 beq a5,a4,4fd6 return "Success"; // case EINVAL: return "Invalid argument"; case ENOMEM: return "Out of memory"; default: return "Unknown error"; - 4fb4: 00000517 auipc a0,0x0 - 4fb8: 1a450513 addi a0,a0,420 # 5158 <_GLOBAL__sub_I__ZSt3cin+0x178> - 4fbc: 8082 ret + 4fc4: 00000517 auipc a0,0x0 + 4fc8: 1b450513 addi a0,a0,436 # 5178 <_GLOBAL__sub_I__ZSt3cin+0x188> + 4fcc: 8082 ret return "Success"; - 4fbe: 00000517 auipc a0,0x0 - 4fc2: 18250513 addi a0,a0,386 # 5140 <_GLOBAL__sub_I__ZSt3cin+0x160> + 4fce: 00000517 auipc a0,0x0 + 4fd2: 19250513 addi a0,a0,402 # 5160 <_GLOBAL__sub_I__ZSt3cin+0x170> } - 4fc6: 8082 ret + 4fd6: 8082 ret -0000000000004fc8 <_Znwm>: +0000000000004fd8 <_Znwm>: #include "ulib/stdlib.h" void *operator new(unsigned long n) { return malloc(n); - 4fc8: cf6ff06f j 44be + 4fd8: cf6ff06f j 44ce -0000000000004fcc <_Znam>: +0000000000004fdc <_Znam>: } void *operator new[](unsigned long n) - 4fcc: cf2ff06f j 44be + 4fdc: cf2ff06f j 44ce -0000000000004fd0 <_ZdlPv>: +0000000000004fe0 <_ZdlPv>: return malloc(n); } void operator delete(void *p) { free(p); - 4fd0: c78ff06f j 4448 + 4fe0: c78ff06f j 4458 -0000000000004fd4 <_ZdaPv>: +0000000000004fe4 <_ZdaPv>: } void operator delete[](void *p) - 4fd4: c74ff06f j 4448 + 4fe4: c74ff06f j 4458 -0000000000004fd8 <_ZdlPvm>: +0000000000004fe8 <_ZdlPvm>: free(p); } void operator delete(void *p, unsigned long) { free(p); - 4fd8: c70ff06f j 4448 + 4fe8: c70ff06f j 4458 -0000000000004fdc <_ZdaPvm>: +0000000000004fec <_ZdaPvm>: } void operator delete[](void *p, unsigned long) - 4fdc: c6cff06f j 4448 + 4fec: c6cff06f j 4458 -0000000000004fe0 <_GLOBAL__sub_I__ZSt3cin>: +0000000000004ff0 <_GLOBAL__sub_I__ZSt3cin>: #include "ulib/iostream" namespace std { istream cin(stdin); - 4fe0: 00002797 auipc a5,0x2 - 4fe4: 7207b783 ld a5,1824(a5) # 7700 <_GLOBAL_OFFSET_TABLE_+0x10> - 4fe8: 6390 ld a2,0(a5) + 4ff0: 00002797 auipc a5,0x2 + 4ff4: 7307b783 ld a5,1840(a5) # 7720 <_GLOBAL_OFFSET_TABLE_+0x10> + 4ff8: 6390 ld a2,0(a5) ostream cout(stdout); - 4fea: 00002797 auipc a5,0x2 - 4fee: 70e7b783 ld a5,1806(a5) # 76f8 <_GLOBAL_OFFSET_TABLE_+0x8> - 4ff2: 6394 ld a3,0(a5) + 4ffa: 00002797 auipc a5,0x2 + 4ffe: 71e7b783 ld a5,1822(a5) # 7718 <_GLOBAL_OFFSET_TABLE_+0x8> + 5002: 6394 ld a3,0(a5) ostream cerr(stderr); - 4ff4: 00002797 auipc a5,0x2 - 4ff8: 7147b783 ld a5,1812(a5) # 7708 <_GLOBAL_OFFSET_TABLE_+0x18> - 4ffc: 6398 ld a4,0(a5) + 5004: 00002797 auipc a5,0x2 + 5008: 7247b783 ld a5,1828(a5) # 7728 <_GLOBAL_OFFSET_TABLE_+0x18> + 500c: 6398 ld a4,0(a5) class istream{ private: FILE* _stream; public: istream(FILE *f) : _stream(f) {} - 4ffe: 00003797 auipc a5,0x3 - 5002: 85a78793 addi a5,a5,-1958 # 7858 <_ZSt3cin> - 5006: e390 sd a2,0(a5) + 500e: 00003797 auipc a5,0x3 + 5012: 86a78793 addi a5,a5,-1942 # 7878 <_ZSt3cin> + 5016: e390 sd a2,0(a5) ostream(FILE* f) : _stream(f) {} - 5008: e794 sd a3,8(a5) - 500a: eb98 sd a4,16(a5) + 5018: e794 sd a3,8(a5) + 501a: eb98 sd a4,16(a5) } // namespace std - 500c: 8082 ret + 501c: 8082 ret diff --git a/build/user/initcode.out b/build/user/initcode.out index 6ffe98b..9b46ae7 100755 Binary files a/build/user/initcode.out and b/build/user/initcode.out differ diff --git a/build/user/ls b/build/user/ls new file mode 100755 index 0000000..9061337 Binary files /dev/null and b/build/user/ls differ diff --git a/build/user/ls.asm b/build/user/ls.asm new file mode 100644 index 0000000..78dc8f2 --- /dev/null +++ b/build/user/ls.asm @@ -0,0 +1,10822 @@ + +build/user/ls: file format elf64-littleriscv + + +Disassembly of section .text: + +0000000000000000 <_Z8fmt_namePcPKc>: +void fmt_name(char *dst, const char *src) +{ + int i; + char *d = dst; + + for (i = 0; i < 8; i++) + 0: 872e mv a4,a1 + 2: 00850613 addi a2,a0,8 + char *d = dst; + 6: 87aa mv a5,a0 + { + if (src[i] == ' ') + 8: 02000813 li a6,32 + c: 00074683 lbu a3,0(a4) + for (i = 0; i < 8; i++) + 10: 0705 addi a4,a4,1 + if (src[i] == ' ') + 12: 07068663 beq a3,a6,7e <_Z8fmt_namePcPKc+0x7e> + break; + *d++ = src[i]; + 16: 0785 addi a5,a5,1 + 18: fed78fa3 sb a3,-1(a5) + for (i = 0; i < 8; i++) + 1c: fec798e3 bne a5,a2,c <_Z8fmt_namePcPKc+0xc> + } + + if (src[8] != ' ') + 20: 0085c703 lbu a4,8(a1) + 24: 02000793 li a5,32 + 28: 02f70663 beq a4,a5,54 <_Z8fmt_namePcPKc+0x54> + { + *d++ = '.'; + 2c: 02e00713 li a4,46 + 30: 00160793 addi a5,a2,1 + 34: 00e60023 sb a4,0(a2) + for (i = 8; i < 11; i++) + 38: 05a1 addi a1,a1,8 + 3a: 0611 addi a2,a2,4 + { + if (src[i] == ' ') + 3c: 02000693 li a3,32 + 40: 0005c703 lbu a4,0(a1) + for (i = 8; i < 11; i++) + 44: 0585 addi a1,a1,1 + if (src[i] == ' ') + 46: 02d70e63 beq a4,a3,82 <_Z8fmt_namePcPKc+0x82> + break; + *d++ = src[i]; + 4a: 0785 addi a5,a5,1 + 4c: fee78fa3 sb a4,-1(a5) + for (i = 8; i < 11; i++) + 50: fef618e3 bne a2,a5,40 <_Z8fmt_namePcPKc+0x40> + } + } + *d = 0; + 54: 00060023 sb zero,0(a2) + + for (d = dst; *d; d++) + 58: 00054783 lbu a5,0(a0) + 5c: c385 beqz a5,7c <_Z8fmt_namePcPKc+0x7c> + { + if (*d >= 'A' && *d <= 'Z') + 5e: 46e5 li a3,25 + 60: fbf7871b addiw a4,a5,-65 + 64: 0ff77713 zext.b a4,a4 + *d += 32; + 68: 0207879b addiw a5,a5,32 + if (*d >= 'A' && *d <= 'Z') + 6c: 00e6e463 bltu a3,a4,74 <_Z8fmt_namePcPKc+0x74> + *d += 32; + 70: 00f50023 sb a5,0(a0) + for (d = dst; *d; d++) + 74: 00154783 lbu a5,1(a0) + 78: 0505 addi a0,a0,1 + 7a: f3fd bnez a5,60 <_Z8fmt_namePcPKc+0x60> + } +} + 7c: 8082 ret + 7e: 863e mv a2,a5 + 80: b745 j 20 <_Z8fmt_namePcPKc+0x20> + 82: 863e mv a2,a5 + 84: bfc1 j 54 <_Z8fmt_namePcPKc+0x54> + +0000000000000086 <_Z2lsPKc>: + +void ls(const char *path) +{ + 86: 7119 addi sp,sp,-128 + int fd; + struct FAT32_DirEnt de; + char name_buf[16]; + + if ((fd = open(path, O_RDONLY)) < 0) + 88: 4581 li a1,0 +{ + 8a: f0ca sd s2,96(sp) + 8c: fc86 sd ra,120(sp) + 8e: 892a mv s2,a0 + if ((fd = open(path, O_RDONLY)) < 0) + 90: 156000ef jal 1e6 + 94: 08054e63 bltz a0,130 <_Z2lsPKc+0xaa> + 98: f8a2 sd s0,112(sp) + 9a: f4a6 sd s1,104(sp) + 9c: ecce sd s3,88(sp) + 9e: e8d2 sd s4,80(sp) + a0: e4d6 sd s5,72(sp) + a2: e0da sd s6,64(sp) + a4: fc5e sd s7,56(sp) + a6: 84aa mv s1,a0 + a8: 0800 addi s0,sp,16 + if (de.name[0] == 0) + { + break; + } + + if ((unsigned char)de.name[0] == 0xE5) + aa: 0e500993 li s3,229 + { + continue; + } + + if ((de.attr & ATTR_LONG_NAME) == ATTR_LONG_NAME) + ae: 4a3d li s4,15 + { + continue; + } + + fmt_name(name_buf, de.name); + b0: 890a mv s2,sp + + printf("%s %d\t%s\n", + b2: 00005b17 auipc s6,0x5 + b6: 05eb0b13 addi s6,s6,94 # 5110 <_GLOBAL__sub_I__ZSt3cin+0x4a> + ba: 00005a97 auipc s5,0x5 + be: 076a8a93 addi s5,s5,118 # 5130 <_GLOBAL__sub_I__ZSt3cin+0x6a> + c2: 00005b97 auipc s7,0x5 + c6: 03eb8b93 addi s7,s7,62 # 5100 <_GLOBAL__sub_I__ZSt3cin+0x3a> + while (read(fd, &de, sizeof(de)) == sizeof(de)) + ca: 85a2 mv a1,s0 + cc: 02000613 li a2,32 + d0: 8526 mv a0,s1 + d2: 0ec000ef jal 1be + d6: 872a mv a4,a0 + d8: 02000793 li a5,32 + fmt_name(name_buf, de.name); + dc: 85a2 mv a1,s0 + de: 854a mv a0,s2 + while (read(fd, &de, sizeof(de)) == sizeof(de)) + e0: 02f71a63 bne a4,a5,114 <_Z2lsPKc+0x8e> + if (de.name[0] == 0) + e4: 01014783 lbu a5,16(sp) + e8: c795 beqz a5,114 <_Z2lsPKc+0x8e> + if ((unsigned char)de.name[0] == 0xE5) + ea: ff3780e3 beq a5,s3,ca <_Z2lsPKc+0x44> + if ((de.attr & ATTR_LONG_NAME) == ATTR_LONG_NAME) + ee: 01b14783 lbu a5,27(sp) + f2: 8bbd andi a5,a5,15 + f4: fd478be3 beq a5,s4,ca <_Z2lsPKc+0x44> + fmt_name(name_buf, de.name); + f8: f09ff0ef jal 0 <_Z8fmt_namePcPKc> + printf("%s %d\t%s\n", + fc: 01b14783 lbu a5,27(sp) + 100: 86ca mv a3,s2 + 102: 8556 mv a0,s5 + 104: 8bc1 andi a5,a5,16 + 106: 85da mv a1,s6 + 108: c391 beqz a5,10c <_Z2lsPKc+0x86> + 10a: 85de mv a1,s7 + 10c: 5632 lw a2,44(sp) + 10e: 0c3030ef jal 39d0 + 112: bf65 j ca <_Z2lsPKc+0x44> + (de.attr & ATTR_DIRECTORY) ? "" : " ", + de.fileSize, + name_buf); + } + + close(fd); + 114: 8526 mv a0,s1 + 116: 0b8000ef jal 1ce +} + 11a: 70e6 ld ra,120(sp) + close(fd); + 11c: 7446 ld s0,112(sp) + 11e: 74a6 ld s1,104(sp) + 120: 69e6 ld s3,88(sp) + 122: 6a46 ld s4,80(sp) + 124: 6aa6 ld s5,72(sp) + 126: 6b06 ld s6,64(sp) + 128: 7be2 ld s7,56(sp) +} + 12a: 7906 ld s2,96(sp) + 12c: 6109 addi sp,sp,128 + 12e: 8082 ret + 130: 70e6 ld ra,120(sp) + printf("ls: cannot open %s\n", path); + 132: 85ca mv a1,s2 +} + 134: 7906 ld s2,96(sp) + printf("ls: cannot open %s\n", path); + 136: 00005517 auipc a0,0x5 + 13a: fe250513 addi a0,a0,-30 # 5118 <_GLOBAL__sub_I__ZSt3cin+0x52> +} + 13e: 6109 addi sp,sp,128 + printf("ls: cannot open %s\n", path); + 140: 0910306f j 39d0 + +0000000000000144
: + +int main(int argc, char *argv[]) +{ + 144: 1101 addi sp,sp,-32 + 146: ec06 sd ra,24(sp) + if (argc < 2) + 148: 4785 li a5,1 + 14a: 02a7de63 bge a5,a0,186 + 14e: e426 sd s1,8(sp) + 150: ffe5049b addiw s1,a0,-2 + 154: 02049793 slli a5,s1,0x20 + 158: 01d7d493 srli s1,a5,0x1d + 15c: 01058793 addi a5,a1,16 + 160: e822 sd s0,16(sp) + 162: 94be add s1,s1,a5 + 164: 00858413 addi s0,a1,8 + } + else + { + for (int i = 1; i < argc; i++) + { + ls(argv[i]); + 168: 6008 ld a0,0(s0) + for (int i = 1; i < argc; i++) + 16a: 0421 addi s0,s0,8 + ls(argv[i]); + 16c: f1bff0ef jal 86 <_Z2lsPKc> + for (int i = 1; i < argc; i++) + 170: fe941ce3 bne s0,s1,168 + 174: 6442 ld s0,16(sp) + 176: 64a2 ld s1,8(sp) + } + } + exit(0); + 178: 4501 li a0,0 + 17a: 36a040ef jal 44e4 + 17e: 60e2 ld ra,24(sp) + 180: 4501 li a0,0 + 182: 6105 addi sp,sp,32 + 184: 8082 ret + ls("."); + 186: 00005517 auipc a0,0x5 + 18a: fba50513 addi a0,a0,-70 # 5140 <_GLOBAL__sub_I__ZSt3cin+0x7a> + 18e: ef9ff0ef jal 86 <_Z2lsPKc> + 192: b7dd j 178 + +0000000000000194 <_start>: +.global _start + +_start: + + + call main + 194: fb1ff0ef jal 144
+ + call exit + 198: 34c040ef jal 44e4 + + 19c: a001 j 19c <_start+0x8> + +000000000000019e : + name: \ + li a7, SYS_ ## sysname; \ + ecall; \ + ret + +SYSCALL_NAME(sys_exit, exit) + 19e: 488d li a7,3 + 1a0: 00000073 ecall + 1a4: 8082 ret + +00000000000001a6 : + +SYSCALL(fork) + 1a6: 4889 li a7,2 + 1a8: 00000073 ecall + 1ac: 8082 ret + +00000000000001ae : +SYSCALL(wait) + 1ae: 4891 li a7,4 + 1b0: 00000073 ecall + 1b4: 8082 ret + +00000000000001b6 : +SYSCALL(pipe) + 1b6: 4895 li a7,5 + 1b8: 00000073 ecall + 1bc: 8082 ret + +00000000000001be : +SYSCALL(read) + 1be: 4899 li a7,6 + 1c0: 00000073 ecall + 1c4: 8082 ret + +00000000000001c6 : +SYSCALL(write) + 1c6: 48c5 li a7,17 + 1c8: 00000073 ecall + 1cc: 8082 ret + +00000000000001ce : +SYSCALL(close) + 1ce: 48d9 li a7,22 + 1d0: 00000073 ecall + 1d4: 8082 ret + +00000000000001d6 : +SYSCALL(kill) + 1d6: 489d li a7,7 + 1d8: 00000073 ecall + 1dc: 8082 ret + +00000000000001de : +SYSCALL(exec) + 1de: 48a1 li a7,8 + 1e0: 00000073 ecall + 1e4: 8082 ret + +00000000000001e6 : +SYSCALL(open) + 1e6: 48c1 li a7,16 + 1e8: 00000073 ecall + 1ec: 8082 ret + +00000000000001ee : +SYSCALL(mknod) + 1ee: 48c9 li a7,18 + 1f0: 00000073 ecall + 1f4: 8082 ret + +00000000000001f6 : +SYSCALL(unlink) + 1f6: 48cd li a7,19 + 1f8: 00000073 ecall + 1fc: 8082 ret + +00000000000001fe : +SYSCALL(fstat) + 1fe: 48a5 li a7,9 + 200: 00000073 ecall + 204: 8082 ret + +0000000000000206 : +SYSCALL(link) + 206: 48d1 li a7,20 + 208: 00000073 ecall + 20c: 8082 ret + +000000000000020e : +SYSCALL(mkdir) + 20e: 48d5 li a7,21 + 210: 00000073 ecall + 214: 8082 ret + +0000000000000216 : +SYSCALL(chdir) + 216: 48a9 li a7,10 + 218: 00000073 ecall + 21c: 8082 ret + +000000000000021e : +SYSCALL(dup) + 21e: 48ad li a7,11 + 220: 00000073 ecall + 224: 8082 ret + +0000000000000226 : +SYSCALL(getpid) + 226: 48b1 li a7,12 + 228: 00000073 ecall + 22c: 8082 ret + +000000000000022e : +SYSCALL(sbrk) + 22e: 48b5 li a7,13 + 230: 00000073 ecall + 234: 8082 ret + +0000000000000236 : +SYSCALL(sleep) + 236: 48b9 li a7,14 + 238: 00000073 ecall + 23c: 8082 ret + +000000000000023e : +SYSCALL(uptime) + 23e: 48bd li a7,15 + 240: 00000073 ecall + 244: 8082 ret + +0000000000000246 : +SYSCALL(putc) + 246: 4885 li a7,1 + 248: 00000073 ecall + 24c: 8082 ret + +000000000000024e : +SYSCALL(disk_test) + 24e: 48dd li a7,23 + 250: 00000073 ecall + 254: 8082 ret + +0000000000000256 : +SYSCALL(lseek) + 256: 48e1 li a7,24 + 258: 00000073 ecall + 25c: 8082 ret + +000000000000025e : + 25e: 48e5 li a7,25 + 260: 00000073 ecall + 264: 8082 ret + +0000000000000266 : + 266: 45dc lw a5,12(a1) + 268: 4598 lw a4,8(a1) + 26a: 9fb1 addw a5,a5,a2 + 26c: c5dc sw a5,12(a1) + 26e: 0007069b sext.w a3,a4 + 272: 00e65463 bge a2,a4,27a + 276: 0006069b sext.w a3,a2 + 27a: c685 beqz a3,2a2 + 27c: 619c ld a5,0(a1) + 27e: 00a78e63 beq a5,a0,29a + 282: 00d50633 add a2,a0,a3 + 286: 00054703 lbu a4,0(a0) + 28a: 0505 addi a0,a0,1 + 28c: 0785 addi a5,a5,1 + 28e: fee78fa3 sb a4,-1(a5) + 292: fec56ae3 bltu a0,a2,286 + 296: 6188 ld a0,0(a1) + 298: 4598 lw a4,8(a1) + 29a: 9f15 subw a4,a4,a3 + 29c: 9536 add a0,a0,a3 + 29e: e188 sd a0,0(a1) + 2a0: c598 sw a4,8(a1) + 2a2: 1ff00793 li a5,511 + 2a6: 00e7d463 bge a5,a4,2ae + 2aa: 6188 ld a0,0(a1) + 2ac: 8082 ret + 2ae: 01058513 addi a0,a1,16 + 2b2: 8082 ret + +00000000000002b4 : + 2b4: 45dc lw a5,12(a1) + 2b6: 01058513 addi a0,a1,16 + 2ba: 9fb1 addw a5,a5,a2 + 2bc: c5dc sw a5,12(a1) + 2be: 8082 ret + +00000000000002c0 : + 2c0: e20508d3 fmv.x.d a7,fa0 + 2c4: 82aa mv t0,a0 + 2c6: 4348d813 srai a6,a7,0x34 + 2ca: 8ec6 mv t4,a7 + 2cc: 7ff87813 andi a6,a6,2047 + 2d0: 8346 mv t1,a7 + 2d2: 03f8d513 srli a0,a7,0x3f + 2d6: 0008d663 bgez a7,2e2 + 2da: 22a517d3 fneg.d fa5,fa0 + 2de: e20788d3 fmv.x.d a7,fa5 + 2e2: 7ff00e13 li t3,2047 + 2e6: 35c80663 beq a6,t3,632 + 2ea: 1101 addi sp,sp,-32 + 2ec: 14080363 beqz a6,432 + 2f0: c018081b addiw a6,a6,-1023 + 2f4: ec22 sd s0,24(sp) + 2f6: 02081313 slli t1,a6,0x20 + 2fa: 66034d63 bltz t1,974 + 2fe: 4d100313 li t1,1233 + 302: 0303033b mulw t1,t1,a6 + 306: 4849 li a6,18 + 308: 40c3531b sraiw t1,t1,0xc + 30c: 0013039b addiw t2,t1,1 + 310: 4078083b subw a6,a6,t2 + 314: 4359 li t1,22 + 316: 17036163 bltu t1,a6,478 + 31a: 00005317 auipc t1,0x5 + 31e: 16630313 addi t1,t1,358 # 5480 + 322: 080e slli a6,a6,0x3 + 324: 981a add a6,a6,t1 + 326: 00083e03 ld t3,0(a6) + 32a: 00083607 fld fa2,0(a6) + 32e: f20887d3 fmv.d.x fa5,a7 + 332: f8000837 lui a6,0xf8000 + 336: 01187333 and t1,a6,a7 + 33a: 01c87833 and a6,a6,t3 + 33e: 12f676d3 fmul.d fa3,fa2,fa5 + 342: f20807d3 fmv.d.x fa5,a6 + 346: f2030753 fmv.d.x fa4,t1 + 34a: f20305d3 fmv.d.x fa1,t1 + 34e: 0af67653 fsub.d fa2,fa2,fa5 + 352: f20887d3 fmv.d.x fa5,a7 + 356: 0ae7f753 fsub.d fa4,fa5,fa4 + 35a: f20807d3 fmv.d.x fa5,a6 + 35e: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 + 362: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 + 366: f20805d3 fmv.d.x fa1,a6 + 36a: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 + 36e: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 + 372: 02d777d3 fadd.d fa5,fa4,fa3 + 376: 3782e837 lui a6,0x3782e + 37a: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37826157> + 37e: 0832 slli a6,a6,0xc + 380: 9d980813 addi a6,a6,-1575 + 384: 084a slli a6,a6,0x12 + 386: 187d addi a6,a6,-1 + 388: c22798d3 fcvt.l.d a7,fa5,rtz + 38c: 0ad7f6d3 fsub.d fa3,fa5,fa3 + 390: 00070e1b sext.w t3,a4 + 394: d228f653 fcvt.d.l fa2,a7 + 398: 0ac7f5d3 fsub.d fa1,fa5,fa2 + 39c: 0ad77753 fsub.d fa4,fa4,fa3 + 3a0: 0af5f6d3 fsub.d fa3,fa1,fa5 + 3a4: 0ad5f553 fsub.d fa0,fa1,fa3 + 3a8: 02d67653 fadd.d fa2,fa2,fa3 + 3ac: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 3b0: 0ac7f7d3 fsub.d fa5,fa5,fa2 + 3b4: 02b7f7d3 fadd.d fa5,fa5,fa1 + 3b8: 02e7f7d3 fadd.d fa5,fa5,fa4 + 3bc: c2279fd3 fcvt.l.d t6,fa5,rtz + 3c0: 9fc6 add t6,t6,a7 + 3c2: 19f87063 bgeu a6,t6,542 + 3c6: 2385 addiw t2,t2,1 + 3c8: 300e4363 bltz t3,6ce + 3cc: 00e3833b addw t1,t2,a4 + 3d0: 475d li a4,23 + 3d2: 30677663 bgeu a4,t1,6de + 3d6: 577d li a4,-1 + 3d8: 9301 srli a4,a4,0x20 + 3da: 43f75863 bge a4,t6,80a + 3de: 07d00313 li t1,125 + 3e2: 877e mv a4,t6 + 3e4: 4e01 li t3,0 + 3e6: 3e800813 li a6,1000 + 3ea: 130e slli t1,t1,0x23 + 3ec: a039 j 3fa + 3ee: 030747b3 div a5,a4,a6 + 3f2: 4e05 li t3,1 + 3f4: 40674c63 blt a4,t1,80c + 3f8: 873e mv a4,a5 + 3fa: 030768b3 rem a7,a4,a6 + 3fe: fe0888e3 beqz a7,3ee + 402: 400e0163 beqz t3,804 + 406: 8fbe mv t6,a5 + 408: 05f5e7b7 lui a5,0x5f5e + 40c: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56787> + 410: 04060413 addi s0,a2,64 + 414: 03860613 addi a2,a2,56 + 418: 15f7c863 blt a5,t6,568 + 41c: 000f871b sext.w a4,t6 + 420: 20070463 beqz a4,628 + 424: 4f01 li t5,0 + 426: 4f81 li t6,0 + 428: 00006e97 auipc t4,0x6 + 42c: 658e8e93 addi t4,t4,1624 # 6a80 + 430: aaa9 j 58a + 432: 0306 slli t1,t1,0x1 + 434: 3e030e63 beqz t1,830 + 438: 4305 li t1,1 + 43a: ec22 sd s0,24(sp) + 43c: 00ce9e13 slli t3,t4,0xc + 440: 134e slli t1,t1,0x33 + 442: 520e4063 bltz t3,962 + 446: 40135313 srai t1,t1,0x1 + 44a: 01d37e33 and t3,t1,t4 + 44e: 8f42 mv t5,a6 + 450: 387d addiw a6,a6,-1 + 452: fe0e0ae3 beqz t3,446 + 456: 26900313 li t1,617 + 45a: c00f081b addiw a6,t5,-1024 + 45e: 0268083b mulw a6,a6,t1 + 462: 41f8531b sraiw t1,a6,0x1f + 466: 0153531b srliw t1,t1,0x15 + 46a: 0103033b addw t1,t1,a6 + 46e: 40b3539b sraiw t2,t1,0xb + 472: 4849 li a6,18 + 474: 4078083b subw a6,a6,t2 + 478: 41f8531b sraiw t1,a6,0x1f + 47c: 00684eb3 xor t4,a6,t1 + 480: 406e8f3b subw t5,t4,t1 + 484: 2c900313 li t1,713 + 488: 03e3033b mulw t1,t1,t5 + 48c: 4e35 li t3,13 + 48e: 8efa mv t4,t5 + 490: 40e35f9b sraiw t6,t1,0xe + 494: 837e mv t1,t6 + 496: 23fe4363 blt t3,t6,6bc + 49a: 5e25 li t3,-23 + 49c: 026e0e3b mulw t3,t3,t1 + 4a0: 01de0ebb addw t4,t3,t4 + 4a4: 22084f63 bltz a6,6e2 + 4a8: f2000753 fmv.d.x fa4,zero + 4ac: 00005e17 auipc t3,0x5 + 4b0: fd4e0e13 addi t3,t3,-44 # 5480 + 4b4: 380e9e63 bnez t4,850 + 4b8: f20887d3 fmv.d.x fa5,a7 + 4bc: fff30f1b addiw t5,t1,-1 + 4c0: 0f0e slli t5,t5,0x3 + 4c2: 02f777d3 fadd.d fa5,fa4,fa5 + 4c6: 030e slli t1,t1,0x3 + 4c8: 9f72 add t5,t5,t3 + 4ca: 9e1a add t3,t3,t1 + 4cc: 2e0e3e03 ld t3,736(t3) + 4d0: 2e8f3587 fld fa1,744(t5) + 4d4: f8000837 lui a6,0xf8000 + 4d8: e2078ed3 fmv.x.d t4,fa5 + 4dc: 12b7f6d3 fmul.d fa3,fa5,fa1 + 4e0: f2088653 fmv.d.x fa2,a7 + 4e4: 01d87333 and t1,a6,t4 + 4e8: 01c87833 and a6,a6,t3 + 4ec: f20807d3 fmv.d.x fa5,a6 + 4f0: f2030053 fmv.d.x ft0,t1 + 4f4: 0af5f553 fsub.d fa0,fa1,fa5 + 4f8: f20e87d3 fmv.d.x fa5,t4 + 4fc: 0ac7f0d3 fsub.d ft1,fa5,fa2 + 500: f20807d3 fmv.d.x fa5,a6 + 504: f2030653 fmv.d.x fa2,t1 + 508: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 + 50c: f20e87d3 fmv.d.x fa5,t4 + 510: 0a177753 fsub.d fa4,fa4,ft1 + 514: f20300d3 fmv.d.x ft1,t1 + 518: 0a07f7d3 fsub.d fa5,fa5,ft0 + 51c: 350f3007 fld ft0,848(t5) + 520: 62157643 fmadd.d fa2,fa0,ft1,fa2 + 524: 12b77753 fmul.d fa4,fa4,fa1 + 528: f20805d3 fmv.d.x fa1,a6 + 52c: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 + 530: f20e85d3 fmv.d.x fa1,t4 + 534: 7205f743 fmadd.d fa4,fa1,ft0,fa4 + 538: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 + 53c: 02e7f753 fadd.d fa4,fa5,fa4 + 540: bd0d j 372 + 542: 00e3833b addw t1,t2,a4 + 546: 2a0e4663 bltz t3,7f2 + 54a: 475d li a4,23 + 54c: 10677663 bgeu a4,t1,658 + 550: e80f93e3 bnez t6,3d6 + 554: 05f5e7b7 lui a5,0x5f5e + 558: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56787> + 55c: 04060413 addi s0,a2,64 + 560: 03860613 addi a2,a2,56 + 564: ebf7dce3 bge a5,t6,41c + 568: 4f01 li t5,0 + 56a: 00006e97 auipc t4,0x6 + 56e: 516e8e93 addi t4,t4,1302 # 6a80 + 572: 05f5e7b7 lui a5,0x5f5e + 576: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f56788> + 57a: 02ffe833 rem a6,t6,a5 + 57e: 02ffcfb3 div t6,t6,a5 + 582: 0008071b sext.w a4,a6 + 586: 0a080463 beqz a6,62e + 58a: 8822 mv a6,s0 + 58c: 06400893 li a7,100 + 590: 06300e13 li t3,99 + 594: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff8686> + 596: 0007031b sext.w t1,a4 + 59a: 031777bb remuw a5,a4,a7 + 59e: 2785 addiw a5,a5,1 + 5a0: 0017979b slliw a5,a5,0x1 + 5a4: 1782 slli a5,a5,0x20 + 5a6: 9381 srli a5,a5,0x20 + 5a8: 97f6 add a5,a5,t4 + 5aa: 0007d783 lhu a5,0(a5) + 5ae: 0317573b divuw a4,a4,a7 + 5b2: 00f81023 sh a5,0(a6) + 5b6: fc6e6fe3 bltu t3,t1,594 + 5ba: 008f0f3b addw t5,t5,s0 + 5be: 410f0f3b subw t5,t5,a6 + 5c2: 020f8f63 beqz t6,600 + 5c6: 87c2 mv a5,a6 + 5c8: 03000713 li a4,48 + 5cc: 04c80c63 beq a6,a2,624 + 5d0: 17fd addi a5,a5,-1 + 5d2: 00e78023 sb a4,0(a5) + 5d6: fec79de3 bne a5,a2,5d0 + 5da: 408807b3 sub a5,a6,s0 + 5de: 00ff07bb addw a5,t5,a5 + 5e2: 1461 addi s0,s0,-8 + 5e4: 00878f1b addiw t5,a5,8 + 5e8: 05f5e7b7 lui a5,0x5f5e + 5ec: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56787> + 5f0: ff840613 addi a2,s0,-8 + 5f4: f7f7cfe3 blt a5,t6,572 + 5f8: 000f871b sext.w a4,t6 + 5fc: 4f81 li t6,0 + 5fe: b771 j 58a + 600: 020f0563 beqz t5,62a + 604: 00084703 lbu a4,0(a6) + 608: 03000793 li a5,48 + 60c: 22f70f63 beq a4,a5,84a + 610: 2f01 sext.w t5,t5 + 612: 0076a023 sw t2,0(a3) + 616: 6462 ld s0,24(sp) + 618: 0102b023 sd a6,0(t0) + 61c: 01e5a023 sw t5,0(a1) + 620: 6105 addi sp,sp,32 + 622: 8082 ret + 624: 8442 mv s0,a6 + 626: b7c9 j 5e8 + 628: 8822 mv a6,s0 + 62a: 4f01 li t5,0 + 62c: b7dd j 612 + 62e: 8822 mv a6,s0 + 630: bf59 j 5c6 + 632: 0eb2 slli t4,t4,0xc + 634: 00005797 auipc a5,0x5 + 638: b1c78793 addi a5,a5,-1252 # 5150 <_GLOBAL__sub_I__ZSt3cin+0x8a> + 63c: 000e8663 beqz t4,648 + 640: 00005797 auipc a5,0x5 + 644: b0878793 addi a5,a5,-1272 # 5148 <_GLOBAL__sub_I__ZSt3cin+0x82> + 648: 00f2b023 sd a5,0(t0) + 64c: 679d lui a5,0x7 + 64e: c29c sw a5,0(a3) + 650: 4f0d li t5,3 + 652: 01e5a023 sw t5,0(a1) + 656: 8082 ret + 658: 3b9ad737 lui a4,0x3b9ad + 65c: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a5087> + 660: 07f76f63 bltu a4,t6,6de + 664: 4805 li a6,1 + 666: 02081713 slli a4,a6,0x20 + 66a: 01d75893 srli a7,a4,0x1d + 66e: 00005717 auipc a4,0x5 + 672: 1ca70713 addi a4,a4,458 # 5838 + 676: 9746 add a4,a4,a7 + 678: 4e51 li t3,20 + 67a: a021 j 682 + 67c: 2805 addiw a6,a6,1 + 67e: edc809e3 beq a6,t3,550 + 682: 00073883 ld a7,0(a4) + 686: 0721 addi a4,a4,8 + 688: ff1ffae3 bgeu t6,a7,67c + 68c: ed0372e3 bgeu t1,a6,550 + 690: 4068083b subw a6,a6,t1 + 694: 475d li a4,23 + 696: eb076de3 bltu a4,a6,550 + 69a: 080e slli a6,a6,0x3 + 69c: 00005717 auipc a4,0x5 + 6a0: de470713 addi a4,a4,-540 # 5480 + 6a4: 9742 add a4,a4,a6 + 6a6: 3b873803 ld a6,952(a4) + 6aa: 00185713 srli a4,a6,0x1 + 6ae: 977e add a4,a4,t6 + 6b0: 01176363 bltu a4,a7,6b6 + 6b4: 2385 addiw t2,t2,1 + 6b6: 03075fb3 divu t6,a4,a6 + 6ba: bd59 j 550 + 6bc: 4335 li t1,13 + 6be: 5e25 li t3,-23 + 6c0: 026e0e3b mulw t3,t3,t1 + 6c4: 01de0ebb addw t4,t3,t4 + 6c8: de0850e3 bgez a6,4a8 + 6cc: a819 j 6e2 + 6ce: 02571313 slli t1,a4,0x25 + 6d2: 02535313 srli t1,t1,0x25 + 6d6: 0305 addi t1,t1,1 + 6d8: 475d li a4,23 + 6da: ce676ee3 bltu a4,t1,3d6 + 6de: 4829 li a6,10 + 6e0: b759 j 666 + 6e2: 260e8663 beqz t4,94e + 6e6: 00231e13 slli t3,t1,0x2 + 6ea: 41c30e33 sub t3,t1,t3 + 6ee: 0e0e slli t3,t3,0x3 + 6f0: 9e1a add t3,t3,t1 + 6f2: fffe881b addiw a6,t4,-1 + 6f6: 9e7a add t3,t3,t5 + 6f8: 00005e97 auipc t4,0x5 + 6fc: d88e8e93 addi t4,t4,-632 # 5480 + 700: 0e0e slli t3,t3,0x3 + 702: 080e slli a6,a6,0x3 + 704: 9876 add a6,a6,t4 + 706: 9ef2 add t4,t4,t3 + 708: 0b883607 fld fa2,184(a6) + 70c: f20887d3 fmv.d.x fa5,a7 + 710: 0b0ebf03 ld t5,176(t4) + 714: f8000e37 lui t3,0xf8000 + 718: 011e7eb3 and t4,t3,a7 + 71c: 12f676d3 fmul.d fa3,fa2,fa5 + 720: 01ee7e33 and t3,t3,t5 + 724: f20e07d3 fmv.d.x fa5,t3 + 728: f20e0753 fmv.d.x fa4,t3 + 72c: f20e8553 fmv.d.x fa0,t4 + 730: 0af67653 fsub.d fa2,fa2,fa5 + 734: f20e87d3 fmv.d.x fa5,t4 + 738: f20e85d3 fmv.d.x fa1,t4 + 73c: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 + 740: f2088753 fmv.d.x fa4,a7 + 744: 0ab775d3 fsub.d fa1,fa4,fa1 + 748: 16883707 fld fa4,360(a6) + 74c: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 + 750: f20e0553 fmv.d.x fa0,t3 + 754: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 758: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 + 75c: f20887d3 fmv.d.x fa5,a7 + 760: 5af77743 fmadd.d fa4,fa4,fa5,fa1 + 764: c00f87e3 beqz t6,372 + 768: 02d777d3 fadd.d fa5,fa4,fa3 + 76c: fff3089b addiw a7,t1,-1 + 770: 00005817 auipc a6,0x5 + 774: d1080813 addi a6,a6,-752 # 5480 + 778: 030e slli t1,t1,0x3 + 77a: 088e slli a7,a7,0x3 + 77c: 98c2 add a7,a7,a6 + 77e: 981a add a6,a6,t1 + 780: e2078e53 fmv.x.d t3,fa5 + 784: 21083e83 ld t4,528(a6) + 788: f8000837 lui a6,0xf8000 + 78c: 2188b507 fld fa0,536(a7) + 790: 01c87333 and t1,a6,t3 + 794: 01d87833 and a6,a6,t4 + 798: f2080653 fmv.d.x fa2,a6 + 79c: 12f577d3 fmul.d fa5,fa0,fa5 + 7a0: 2808b587 fld fa1,640(a7) + 7a4: 0ac57053 fsub.d ft0,fa0,fa2 + 7a8: f20e0653 fmv.d.x fa2,t3 + 7ac: 0ad67153 fsub.d ft2,fa2,fa3 + 7b0: f20806d3 fmv.d.x fa3,a6 + 7b4: f2030653 fmv.d.x fa2,t1 + 7b8: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 + 7bc: f20e06d3 fmv.d.x fa3,t3 + 7c0: 0ac6f653 fsub.d fa2,fa3,fa2 + 7c4: 22f786d3 fmv.d fa3,fa5 + 7c8: 0a2777d3 fsub.d fa5,fa4,ft2 + 7cc: f2030753 fmv.d.x fa4,t1 + 7d0: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 + 7d4: 12a7f7d3 fmul.d fa5,fa5,fa0 + 7d8: f2080553 fmv.d.x fa0,a6 + 7dc: 72a67743 fmadd.d fa4,fa2,fa0,fa4 + 7e0: f20e0553 fmv.d.x fa0,t3 + 7e4: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 7e8: 72067643 fmadd.d fa2,fa2,ft0,fa4 + 7ec: 02f67753 fadd.d fa4,fa2,fa5 + 7f0: b649 j 372 + 7f2: 02571313 slli t1,a4,0x25 + 7f6: 02535313 srli t1,t1,0x25 + 7fa: 0305 addi t1,t1,1 + 7fc: 475d li a4,23 + 7fe: d46769e3 bltu a4,t1,550 + 802: bd99 j 658 + 804: 87fe mv a5,t6 + 806: 8fbe mv t6,a5 + 808: b101 j 408 + 80a: 87fe mv a5,t6 + 80c: 3e800713 li a4,1000 + 810: 02e7f73b remuw a4,a5,a4 + 814: 2781 sext.w a5,a5 + 816: eb01 bnez a4,826 + 818: 3e800813 li a6,1000 + 81c: 0307d7bb divuw a5,a5,a6 + 820: 0307f73b remuw a4,a5,a6 + 824: df65 beqz a4,81c + 826: 02079f93 slli t6,a5,0x20 + 82a: 020fdf93 srli t6,t6,0x20 + 82e: b31d j 554 + 830: 4785 li a5,1 + 832: c29c sw a5,0(a3) + 834: 00c2b023 sd a2,0(t0) + 838: 03000793 li a5,48 + 83c: 00f60023 sb a5,0(a2) + 840: 4f05 li t5,1 + 842: 01e5a023 sw t5,0(a1) + 846: 6105 addi sp,sp,32 + 848: 8082 ret + 84a: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff8689> + 84c: 3f7d addiw t5,t5,-1 + 84e: b3d1 j 612 + 850: e826 sd s1,16(sp) + 852: e44a sd s2,8(sp) + 854: 4859 li a6,22 + 856: 8976 mv s2,t4 + 858: 11d84363 blt a6,t4,95e + 85c: 0009049b sext.w s1,s2 + 860: 00005e17 auipc t3,0x5 + 864: c20e0e13 addi t3,t3,-992 # 5480 + 868: 00349813 slli a6,s1,0x3 + 86c: 9872 add a6,a6,t3 + 86e: 00083687 fld fa3,0(a6) + 872: 00083803 ld a6,0(a6) + 876: f20887d3 fmv.d.x fa5,a7 + 87a: f8000fb7 lui t6,0xf8000 + 87e: 010ff833 and a6,t6,a6 + 882: 12f6f553 fmul.d fa0,fa3,fa5 + 886: f20807d3 fmv.d.x fa5,a6 + 88a: 011ff433 and s0,t6,a7 + 88e: f2040753 fmv.d.x fa4,s0 + 892: 0af6f6d3 fsub.d fa3,fa3,fa5 + 896: f20887d3 fmv.d.x fa5,a7 + 89a: f2080653 fmv.d.x fa2,a6 + 89e: 412e8ebb subw t4,t4,s2 + 8a2: 0ae7f753 fsub.d fa4,fa5,fa4 + 8a6: f20407d3 fmv.d.x fa5,s0 + 8aa: e20508d3 fmv.x.d a7,fa0 + 8ae: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 + 8b2: f2040653 fmv.d.x fa2,s0 + 8b6: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 + 8ba: f2080653 fmv.d.x fa2,a6 + 8be: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 + 8c2: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 + 8c6: 080e8963 beqz t4,958 + 8ca: 02e577d3 fadd.d fa5,fa0,fa4 + 8ce: 0e8e slli t4,t4,0x3 + 8d0: 01de0833 add a6,t3,t4 + 8d4: 00083587 fld fa1,0(a6) + 8d8: 00231893 slli a7,t1,0x2 + 8dc: 411308b3 sub a7,t1,a7 + 8e0: 00389813 slli a6,a7,0x3 + 8e4: e2078453 fmv.x.d s0,fa5 + 8e8: 12f5f7d3 fmul.d fa5,fa1,fa5 + 8ec: 981a add a6,a6,t1 + 8ee: 987a add a6,a6,t5 + 8f0: 40980833 sub a6,a6,s1 + 8f4: 080e slli a6,a6,0x3 + 8f6: 9872 add a6,a6,t3 + 8f8: 00083e83 ld t4,0(a6) + 8fc: 008ff833 and a6,t6,s0 + 900: e20788d3 fmv.x.d a7,fa5 + 904: f20806d3 fmv.d.x fa3,a6 + 908: f20407d3 fmv.d.x fa5,s0 + 90c: 01dfffb3 and t6,t6,t4 + 910: f20880d3 fmv.d.x ft1,a7 + 914: 0ad7f653 fsub.d fa2,fa5,fa3 + 918: f20f87d3 fmv.d.x fa5,t6 + 91c: 64c2 ld s1,16(sp) + 91e: 6922 ld s2,8(sp) + 920: 0af5f053 fsub.d ft0,fa1,fa5 + 924: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 + 928: f20407d3 fmv.d.x fa5,s0 + 92c: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 930: f2080553 fmv.d.x fa0,a6 + 934: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 + 938: 0af77753 fsub.d fa4,fa4,fa5 + 93c: f20f87d3 fmv.d.x fa5,t6 + 940: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 + 944: 7a067643 fmadd.d fa2,fa2,ft0,fa5 + 948: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 + 94c: b6b5 j 4b8 + 94e: f20886d3 fmv.d.x fa3,a7 + 952: f2000753 fmv.d.x fa4,zero + 956: b539 j 764 + 958: 64c2 ld s1,16(sp) + 95a: 6922 ld s2,8(sp) + 95c: beb1 j 4b8 + 95e: 4959 li s2,22 + 960: bdf5 j 85c + 962: e826 sd s1,16(sp) + 964: e44a sd s2,8(sp) + 966: ecc00393 li t2,-308 + 96a: 4eed li t4,27 + 96c: 4335 li t1,13 + 96e: 14600f13 li t5,326 + 972: b5cd j 854 + 974: 26900313 li t1,617 + 978: 0303083b mulw a6,t1,a6 + 97c: 41f8531b sraiw t1,a6,0x1f + 980: 0153531b srliw t1,t1,0x15 + 984: 0103033b addw t1,t1,a6 + 988: 40b3539b sraiw t2,t1,0xb + 98c: 4849 li a6,18 + 98e: 4078083b subw a6,a6,t2 + 992: b249 j 314 + +0000000000000994 <_in_char.part.0>: +static int _in_char(_InContext *ctx) + 994: 87aa mv a5,a0 + if (ctx->fd == -1) + 996: 4508 lw a0,8(a0) + 998: 577d li a4,-1 + 99a: 00e51d63 bne a0,a4,9b4 <_in_char.part.0+0x20> + if (ctx->buf[ctx->pos] == '\0') + 99e: 6b94 ld a3,16(a5) + 9a0: 6398 ld a4,0(a5) + 9a2: 9736 add a4,a4,a3 + 9a4: 00074603 lbu a2,0(a4) + 9a8: c60d beqz a2,9d2 <_in_char.part.0+0x3e> + return (unsigned char)ctx->buf[ctx->pos++]; + 9aa: 0685 addi a3,a3,1 + 9ac: eb94 sd a3,16(a5) + 9ae: 00074503 lbu a0,0(a4) + 9b2: 8082 ret +static int _in_char(_InContext *ctx) + 9b4: 1101 addi sp,sp,-32 + if (read(ctx->fd, &c, 1) == 1) + 9b6: 4605 li a2,1 + 9b8: 00f10593 addi a1,sp,15 +static int _in_char(_InContext *ctx) + 9bc: ec06 sd ra,24(sp) + if (read(ctx->fd, &c, 1) == 1) + 9be: 801ff0ef jal 1be + 9c2: 4785 li a5,1 + 9c4: 00f51963 bne a0,a5,9d6 <_in_char.part.0+0x42> + return (unsigned char)c; + 9c8: 00f14503 lbu a0,15(sp) +} + 9cc: 60e2 ld ra,24(sp) + 9ce: 6105 addi sp,sp,32 + 9d0: 8082 ret + return -1; + 9d2: 557d li a0,-1 +} + 9d4: 8082 ret + return -1; + 9d6: 557d li a0,-1 + 9d8: bfd5 j 9cc <_in_char.part.0+0x38> + +00000000000009da <_skip_space>: +{ + 9da: 7139 addi sp,sp,-64 + 9dc: f822 sd s0,48(sp) + 9de: f426 sd s1,40(sp) + 9e0: f04a sd s2,32(sp) + 9e2: ec4e sd s3,24(sp) + 9e4: e852 sd s4,16(sp) + 9e6: fc06 sd ra,56(sp) + 9e8: 842a mv s0,a0 + ctx->ungotten = -1; + 9ea: 54fd li s1,-1 + if (read(ctx->fd, &c, 1) == 1) + 9ec: 00f10a13 addi s4,sp,15 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 9f0: 02000913 li s2,32 + 9f4: 4991 li s3,4 + if (ctx->ungotten >= 0) + 9f6: 4c1c lw a5,24(s0) + 9f8: 0407d163 bgez a5,a3a <_skip_space+0x60> + if (ctx->fd == -1) + 9fc: 4408 lw a0,8(s0) + if (read(ctx->fd, &c, 1) == 1) + 9fe: 4605 li a2,1 + a00: 85d2 mv a1,s4 + if (ctx->fd == -1) + a02: 02951e63 bne a0,s1,a3e <_skip_space+0x64> + if (ctx->buf[ctx->pos] == '\0') + a06: 6818 ld a4,16(s0) + a08: 601c ld a5,0(s0) + return (unsigned char)ctx->buf[ctx->pos++]; + a0a: 00170693 addi a3,a4,1 + if (ctx->buf[ctx->pos] == '\0') + a0e: 97ba add a5,a5,a4 + a10: 0007c703 lbu a4,0(a5) # 7000 <_stdout+0x60> + a14: cb19 beqz a4,a2a <_skip_space+0x50> + return (unsigned char)ctx->buf[ctx->pos++]; + a16: e814 sd a3,16(s0) + a18: 0007c783 lbu a5,0(a5) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + a1c: ff77871b addiw a4,a5,-9 + a20: fd278be3 beq a5,s2,9f6 <_skip_space+0x1c> + a24: fce9f9e3 bgeu s3,a4,9f6 <_skip_space+0x1c> + ctx->ungotten = c; + a28: cc1c sw a5,24(s0) +} + a2a: 70e2 ld ra,56(sp) + a2c: 7442 ld s0,48(sp) + a2e: 74a2 ld s1,40(sp) + a30: 7902 ld s2,32(sp) + a32: 69e2 ld s3,24(sp) + a34: 6a42 ld s4,16(sp) + a36: 6121 addi sp,sp,64 + a38: 8082 ret + ctx->ungotten = -1; + a3a: cc04 sw s1,24(s0) + return c; + a3c: b7c5 j a1c <_skip_space+0x42> + if (read(ctx->fd, &c, 1) == 1) + a3e: f80ff0ef jal 1be + a42: 4785 li a5,1 + a44: fef513e3 bne a0,a5,a2a <_skip_space+0x50> + return (unsigned char)c; + a48: 00f14783 lbu a5,15(sp) + a4c: bfc1 j a1c <_skip_space+0x42> + +0000000000000a4e <_vscanf_core.constprop.0>: +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + a4e: 7155 addi sp,sp,-208 + a50: e586 sd ra,200(sp) + a52: e95a sd s6,144(sp) + while (*p) + a54: 0005c783 lbu a5,0(a1) +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + a58: e432 sd a2,8(sp) + while (*p) + a5a: 68078b63 beqz a5,10f0 <_vscanf_core.constprop.0+0x6a2> + a5e: e1a2 sd s0,192(sp) + a60: fd26 sd s1,184(sp) + a62: f152 sd s4,160(sp) + a64: ed56 sd s5,152(sp) + a66: f4ee sd s11,104(sp) + a68: 842e mv s0,a1 + a6a: 8daa mv s11,a0 + int assigned = 0; + a6c: 4b01 li s6,0 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + a6e: 02000493 li s1,32 + a72: 4a91 li s5,4 + if (*p != '%') + a74: 02500a13 li s4,37 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + a78: 04978763 beq a5,s1,ac6 <_vscanf_core.constprop.0+0x78> + a7c: ff77869b addiw a3,a5,-9 + a80: 0ff6f693 zext.b a3,a3 + a84: 04daf163 bgeu s5,a3,ac6 <_vscanf_core.constprop.0+0x78> + if (*p != '%') + a88: 07478d63 beq a5,s4,b02 <_vscanf_core.constprop.0+0xb4> + _skip_space(ctx); + a8c: 856e mv a0,s11 + a8e: f4dff0ef jal 9da <_skip_space> + if (ctx->ungotten >= 0) + a92: 018da503 lw a0,24(s11) + a96: 04055a63 bgez a0,aea <_vscanf_core.constprop.0+0x9c> + a9a: 856e mv a0,s11 + a9c: ef9ff0ef jal 994 <_in_char.part.0> + if (c != *p) + aa0: 00044783 lbu a5,0(s0) + aa4: 04a78a63 beq a5,a0,af8 <_vscanf_core.constprop.0+0xaa> + if (c != -1) + aa8: 57fd li a5,-1 + aaa: 00f50463 beq a0,a5,ab2 <_vscanf_core.constprop.0+0x64> + ctx->ungotten = c; + aae: 00adac23 sw a0,24(s11) + ab2: 640e ld s0,192(sp) + ab4: 74ea ld s1,184(sp) + ab6: 7a0a ld s4,160(sp) + ab8: 6aea ld s5,152(sp) + aba: 7da6 ld s11,104(sp) +} + abc: 60ae ld ra,200(sp) + abe: 855a mv a0,s6 + ac0: 6b4a ld s6,144(sp) + ac2: 6169 addi sp,sp,208 + ac4: 8082 ret + _skip_space(ctx); + ac6: 856e mv a0,s11 + ac8: f13ff0ef jal 9da <_skip_space> + while (isspace(*p)) + acc: 00044783 lbu a5,0(s0) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + ad0: 4611 li a2,4 + ad2: ff77869b addiw a3,a5,-9 + ad6: 0ff6f693 zext.b a3,a3 + ada: 00978663 beq a5,s1,ae6 <_vscanf_core.constprop.0+0x98> + ade: 00d67463 bgeu a2,a3,ae6 <_vscanf_core.constprop.0+0x98> + while (*p) + ae2: fbd9 bnez a5,a78 <_vscanf_core.constprop.0+0x2a> + ae4: b7f9 j ab2 <_vscanf_core.constprop.0+0x64> + p++; + ae6: 0405 addi s0,s0,1 + ae8: b7d5 j acc <_vscanf_core.constprop.0+0x7e> + ctx->ungotten = -1; + aea: 57fd li a5,-1 + aec: 00fdac23 sw a5,24(s11) + if (c != *p) + af0: 00044783 lbu a5,0(s0) + af4: faa79ae3 bne a5,a0,aa8 <_vscanf_core.constprop.0+0x5a> + while (*p) + af8: 00144783 lbu a5,1(s0) + p++; + afc: 0405 addi s0,s0,1 + while (*p) + afe: ffad bnez a5,a78 <_vscanf_core.constprop.0+0x2a> + b00: bf4d j ab2 <_vscanf_core.constprop.0+0x64> + b02: f94a sd s2,176(sp) + b04: f54e sd s3,168(sp) + b06: e55e sd s7,136(sp) + b08: e162 sd s8,128(sp) + if (*p == '*') + b0a: 00144583 lbu a1,1(s0) + b0e: 02a00793 li a5,42 + b12: 22f58d63 beq a1,a5,d4c <_vscanf_core.constprop.0+0x2fe> + p++; + b16: 0405 addi s0,s0,1 + int suppress = 0; + b18: 4981 li s3,0 + while (*p >= '0' && *p <= '9') + b1a: fd05861b addiw a2,a1,-48 + b1e: 0ff67693 zext.b a3,a2 + b22: 47a5 li a5,9 + b24: 36d7e763 bltu a5,a3,e92 <_vscanf_core.constprop.0+0x444> + b28: 4781 li a5,0 + b2a: 4825 li a6,9 + b2c: a019 j b32 <_vscanf_core.constprop.0+0xe4> + width = width * 10 + (*p - '0'); + b2e: 0016979b slliw a5,a3,0x1 + while (*p >= '0' && *p <= '9') + b32: 00144583 lbu a1,1(s0) + width = width * 10 + (*p - '0'); + b36: 00f6093b addw s2,a2,a5 + b3a: 0029169b slliw a3,s2,0x2 + while (*p >= '0' && *p <= '9') + b3e: fd05861b addiw a2,a1,-48 + b42: 0ff67513 zext.b a0,a2 + width = width * 10 + (*p - '0'); + b46: 012686bb addw a3,a3,s2 + p++; + b4a: 0405 addi s0,s0,1 + while (*p >= '0' && *p <= '9') + b4c: fea871e3 bgeu a6,a0,b2e <_vscanf_core.constprop.0+0xe0> + if (*p == 'l') + b50: 06c00693 li a3,108 + p++; + b54: 00140b93 addi s7,s0,1 + if (*p == 'l') + b58: 1ed58f63 beq a1,a3,d56 <_vscanf_core.constprop.0+0x308> + else if (*p == 'h') + b5c: 06800693 li a3,104 + b60: 2ad58863 beq a1,a3,e10 <_vscanf_core.constprop.0+0x3c2> + char spec = *p++; + b64: 00044c03 lbu s8,0(s0) + b68: 8ba2 mv s7,s0 + int len_mod = 0; + b6a: ec02 sd zero,24(sp) + char spec = *p++; + b6c: 06300693 li a3,99 + b70: 001b8413 addi s0,s7,1 + if (!spec) + b74: 2adc0863 beq s8,a3,e24 <_vscanf_core.constprop.0+0x3d6> + b78: 1f86fc63 bgeu a3,s8,d70 <_vscanf_core.constprop.0+0x322> + b7c: f9cc069b addiw a3,s8,-100 + b80: 0ff6f693 zext.b a3,a3 + b84: 4651 li a2,20 + b86: 0cd66e63 bltu a2,a3,c62 <_vscanf_core.constprop.0+0x214> + b8a: 00120637 lui a2,0x120 + b8e: 4585 li a1,1 + b90: 00d595b3 sll a1,a1,a3 + b94: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x1186a9> + b98: 8e6d and a2,a2,a1 + b9a: ee69 bnez a2,c74 <_vscanf_core.constprop.0+0x226> + b9c: 89b9 andi a1,a1,14 + b9e: 1e059263 bnez a1,d82 <_vscanf_core.constprop.0+0x334> + ba2: 463d li a2,15 + ba4: 0ac69f63 bne a3,a2,c62 <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + ba8: 856e mv a0,s11 + baa: e31ff0ef jal 9da <_skip_space> + char *buf = suppress ? NULL : va_arg(ap, char *); + bae: ec02 sd zero,24(sp) + bb0: 00099763 bnez s3,bbe <_vscanf_core.constprop.0+0x170> + bb4: 67a2 ld a5,8(sp) + bb6: 6398 ld a4,0(a5) + bb8: 07a1 addi a5,a5,8 + bba: e43e sd a5,8(sp) + bbc: ec3a sd a4,24(sp) + if (ctx->ungotten >= 0) + bbe: 018da503 lw a0,24(s11) + bc2: 2e055b63 bgez a0,eb8 <_vscanf_core.constprop.0+0x46a> + bc6: 856e mv a0,s11 + bc8: dcdff0ef jal 994 <_in_char.part.0> + while (c != -1 && !isspace(c)) + bcc: 56fd li a3,-1 + bce: 6ad50363 beq a0,a3,1274 <_vscanf_core.constprop.0+0x826> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + bd2: 02000693 li a3,32 + bd6: 3ed50963 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x57a> + bda: 46a5 li a3,9 + bdc: 3ed50663 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x57a> + be0: 46a9 li a3,10 + be2: 3ed50363 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x57a> + be6: 46ad li a3,11 + be8: 3ed50063 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x57a> + bec: 46b1 li a3,12 + bee: 3cd50d63 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x57a> + bf2: 46b5 li a3,13 + bf4: 3cd50a63 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x57a> + bf8: 67e2 ld a5,24(sp) + bfa: fce6 sd s9,120(sp) + bfc: f8ea sd s10,112(sp) + bfe: e83e sd a5,16(sp) + c00: 4d01 li s10,0 + while (c != -1 && !isspace(c)) + c02: 5c7d li s8,-1 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + c04: 02000c93 li s9,32 + if (width > 0 && i >= width) + c08: 01205463 blez s2,c10 <_vscanf_core.constprop.0+0x1c2> + c0c: 052d5563 bge s10,s2,c56 <_vscanf_core.constprop.0+0x208> + if (!suppress) + c10: 00099563 bnez s3,c1a <_vscanf_core.constprop.0+0x1cc> + buf[i] = (char)c; + c14: 67c2 ld a5,16(sp) + c16: 00a78023 sb a0,0(a5) + if (ctx->ungotten >= 0) + c1a: 018da503 lw a0,24(s11) + i++; + c1e: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + c20: 30055963 bgez a0,f32 <_vscanf_core.constprop.0+0x4e4> + c24: 856e mv a0,s11 + c26: d6fff0ef jal 994 <_in_char.part.0> + while (c != -1 && !isspace(c)) + c2a: 27850663 beq a0,s8,e96 <_vscanf_core.constprop.0+0x448> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + c2e: 03950463 beq a0,s9,c56 <_vscanf_core.constprop.0+0x208> + c32: 47a5 li a5,9 + c34: 02f50163 beq a0,a5,c56 <_vscanf_core.constprop.0+0x208> + c38: 47a9 li a5,10 + c3a: 00f50e63 beq a0,a5,c56 <_vscanf_core.constprop.0+0x208> + c3e: 47ad li a5,11 + c40: 00f50b63 beq a0,a5,c56 <_vscanf_core.constprop.0+0x208> + c44: 47b1 li a5,12 + c46: 00f50863 beq a0,a5,c56 <_vscanf_core.constprop.0+0x208> + c4a: 67c2 ld a5,16(sp) + c4c: 0785 addi a5,a5,1 + c4e: e83e sd a5,16(sp) + c50: 47b5 li a5,13 + c52: faf51be3 bne a0,a5,c08 <_vscanf_core.constprop.0+0x1ba> + if (!suppress) + c56: 64098a63 beqz s3,12aa <_vscanf_core.constprop.0+0x85c> + c5a: 7ce6 ld s9,120(sp) + c5c: 7d46 ld s10,112(sp) + ctx->ungotten = c; + c5e: 00adac23 sw a0,24(s11) + while (*p) + c62: 001bc783 lbu a5,1(s7) + c66: 794a ld s2,176(sp) + c68: 79aa ld s3,168(sp) + c6a: 6baa ld s7,136(sp) + c6c: 6c0a ld s8,128(sp) + c6e: e00795e3 bnez a5,a78 <_vscanf_core.constprop.0+0x2a> + c72: b581 j ab2 <_vscanf_core.constprop.0+0x64> + _skip_space(ctx); + c74: 856e mv a0,s11 + c76: f8ea sd s10,112(sp) + c78: d63ff0ef jal 9da <_skip_space> + if (ctx->ungotten >= 0) + c7c: 018da503 lw a0,24(s11) + c80: 24055063 bgez a0,ec0 <_vscanf_core.constprop.0+0x472> + c84: 856e mv a0,s11 + c86: d0fff0ef jal 994 <_in_char.part.0> + if (c == '-' || c == '+') + c8a: fd55069b addiw a3,a0,-43 + c8e: 9af5 andi a3,a3,-3 + c90: 2681 sext.w a3,a3 + int i = 0, c = _in_char(ctx); + c92: 4d01 li s10,0 + if (c == '-' || c == '+') + c94: 3e068863 beqz a3,1084 <_vscanf_core.constprop.0+0x636> + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + c98: 07800693 li a3,120 + c9c: 4641 li a2,16 + c9e: 00dc0863 beq s8,a3,cae <_vscanf_core.constprop.0+0x260> + ca2: 06900693 li a3,105 + ca6: 4629 li a2,10 + ca8: 00dc1363 bne s8,a3,cae <_vscanf_core.constprop.0+0x260> + cac: 4601 li a2,0 + while (c != -1 && i < 63) + cae: 56fd li a3,-1 + cb0: 5cd50863 beq a0,a3,1280 <_vscanf_core.constprop.0+0x832> + cb4: fce6 sd s9,120(sp) + cb6: 02010893 addi a7,sp,32 + cba: 01a88c33 add s8,a7,s10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + cbe: 4cc1 li s9,16 + int digit = (c >= '0' && c <= '9'); + cc0: fd05069b addiw a3,a0,-48 + cc4: 0005031b sext.w t1,a0 + cc8: 00a6b593 sltiu a1,a3,10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ccc: 27960a63 beq a2,s9,f40 <_vscanf_core.constprop.0+0x4f2> + cd0: 2a060d63 beqz a2,f8a <_vscanf_core.constprop.0+0x53c> + int x = (c == 'x' || c == 'X'); + cd4: 07800793 li a5,120 + cd8: 2ef50363 beq a0,a5,fbe <_vscanf_core.constprop.0+0x570> + cdc: fa850693 addi a3,a0,-88 + ce0: 0016b693 seqz a3,a3 + ce4: 4301 li t1,0 + if (width > 0 && i >= width) + ce6: 01205463 blez s2,cee <_vscanf_core.constprop.0+0x2a0> + cea: 032d5a63 bge s10,s2,d1e <_vscanf_core.constprop.0+0x2d0> + if (digit || hex || x) + cee: 0066e6b3 or a3,a3,t1 + cf2: 8ecd or a3,a3,a1 + cf4: c68d beqz a3,d1e <_vscanf_core.constprop.0+0x2d0> + num_buf[i++] = (char)c; + cf6: 00ac0023 sb a0,0(s8) + if (ctx->ungotten >= 0) + cfa: 018da503 lw a0,24(s11) + num_buf[i++] = (char)c; + cfe: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + d00: 22055c63 bgez a0,f38 <_vscanf_core.constprop.0+0x4ea> + d04: 856e mv a0,s11 + d06: e832 sd a2,16(sp) + d08: c8dff0ef jal 994 <_in_char.part.0> + while (c != -1 && i < 63) + d0c: 57fd li a5,-1 + d0e: 6642 ld a2,16(sp) + d10: 3cf50263 beq a0,a5,10d4 <_vscanf_core.constprop.0+0x686> + d14: 03f00693 li a3,63 + d18: 0c05 addi s8,s8,1 + d1a: fadd13e3 bne s10,a3,cc0 <_vscanf_core.constprop.0+0x272> + num_buf[i] = '\0'; + d1e: 040d0793 addi a5,s10,64 + d22: 1018 addi a4,sp,32 + d24: 97ba add a5,a5,a4 + d26: fc078023 sb zero,-64(a5) + ctx->ungotten = c; + d2a: 00adac23 sw a0,24(s11) + d2e: 7ce6 ld s9,120(sp) + if (i == 0) + d30: 1e0d0663 beqz s10,f1c <_vscanf_core.constprop.0+0x4ce> + if (!suppress) + d34: 36098363 beqz s3,109a <_vscanf_core.constprop.0+0x64c> + while (*p) + d38: 001bc783 lbu a5,1(s7) + { + d3c: 794a ld s2,176(sp) + d3e: 79aa ld s3,168(sp) + d40: 6baa ld s7,136(sp) + d42: 6c0a ld s8,128(sp) + d44: 7d46 ld s10,112(sp) + while (*p) + d46: d20799e3 bnez a5,a78 <_vscanf_core.constprop.0+0x2a> + d4a: b3a5 j ab2 <_vscanf_core.constprop.0+0x64> + while (*p >= '0' && *p <= '9') + d4c: 00244583 lbu a1,2(s0) + suppress = 1; + d50: 4985 li s3,1 + p++; + d52: 0409 addi s0,s0,2 + d54: b3d9 j b1a <_vscanf_core.constprop.0+0xcc> + if (*p == 'l') + d56: 00144c03 lbu s8,1(s0) + len_mod = 1; + d5a: 4785 li a5,1 + d5c: ec3e sd a5,24(sp) + if (*p == 'l') + d5e: e0bc17e3 bne s8,a1,b6c <_vscanf_core.constprop.0+0x11e> + len_mod = 2; + d62: 4789 li a5,2 + char spec = *p++; + d64: 00244c03 lbu s8,2(s0) + p++; + d68: 00240b93 addi s7,s0,2 + len_mod = 2; + d6c: ec3e sd a5,24(sp) + d6e: bbfd j b6c <_vscanf_core.constprop.0+0x11e> + d70: 100c0763 beqz s8,e7e <_vscanf_core.constprop.0+0x430> + d74: fbbc079b addiw a5,s8,-69 + d78: 0ff7f793 zext.b a5,a5 + d7c: 4689 li a3,2 + d7e: eef6e2e3 bltu a3,a5,c62 <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + d82: 856e mv a0,s11 + d84: f8ea sd s10,112(sp) + d86: c55ff0ef jal 9da <_skip_space> + if (ctx->ungotten >= 0) + d8a: 018da783 lw a5,24(s11) + d8e: 1207dd63 bgez a5,ec8 <_vscanf_core.constprop.0+0x47a> + d92: 856e mv a0,s11 + d94: c01ff0ef jal 994 <_in_char.part.0> + if (c == '-' || c == '+') + d98: fd55069b addiw a3,a0,-43 + d9c: ffd6f613 andi a2,a3,-3 + da0: 2601 sext.w a2,a2 + da2: 87aa mv a5,a0 + da4: 12060c63 beqz a2,edc <_vscanf_core.constprop.0+0x48e> + while (c != -1 && i < 63) + da8: 567d li a2,-1 + daa: 16c50963 beq a0,a2,f1c <_vscanf_core.constprop.0+0x4ce> + dae: fce6 sd s9,120(sp) + int i = 0, c = _in_char(ctx); + db0: 4d01 li s10,0 + db2: 80000937 lui s2,0x80000 + db6: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff8687> + db8: 0932 slli s2,s2,0xc + dba: 80194913 xori s2,s2,-2047 + dbe: 093e slli s2,s2,0xf + dc0: 02010813 addi a6,sp,32 + dc4: 01a80cb3 add s9,a6,s10 + dc8: 03a00c13 li s8,58 + dcc: 1935 addi s2,s2,-19 + dce: a831 j dea <_vscanf_core.constprop.0+0x39c> + dd0: bc5ff0ef jal 994 <_in_char.part.0> + while (c != -1 && i < 63) + dd4: 577d li a4,-1 + dd6: 87aa mv a5,a0 + dd8: 2ee50563 beq a0,a4,10c2 <_vscanf_core.constprop.0+0x674> + ddc: 03f00713 li a4,63 + de0: 0c85 addi s9,s9,1 + de2: 1eed0e63 beq s10,a4,fde <_vscanf_core.constprop.0+0x590> + de6: fd57869b addiw a3,a5,-43 + int c = ctx->ungotten; + dea: 00d95633 srl a2,s2,a3 + dee: 856e mv a0,s11 + df0: 8a05 andi a2,a2,1 + df2: 1edc6663 bltu s8,a3,fde <_vscanf_core.constprop.0+0x590> + df6: 1e060463 beqz a2,fde <_vscanf_core.constprop.0+0x590> + num_buf[i++] = (char)c; + dfa: 00fc8023 sb a5,0(s9) + if (ctx->ungotten >= 0) + dfe: 018da783 lw a5,24(s11) + num_buf[i++] = (char)c; + e02: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + e04: fc07c6e3 bltz a5,dd0 <_vscanf_core.constprop.0+0x382> + ctx->ungotten = -1; + e08: 577d li a4,-1 + e0a: 00edac23 sw a4,24(s11) + while (c != -1 && i < 63) + e0e: b7f9 j ddc <_vscanf_core.constprop.0+0x38e> + if (*p == 'h') + e10: 00144c03 lbu s8,1(s0) + int len_mod = 0; + e14: ec02 sd zero,24(sp) + if (*p == 'h') + e16: d4bc1be3 bne s8,a1,b6c <_vscanf_core.constprop.0+0x11e> + char spec = *p++; + e1a: 00244c03 lbu s8,2(s0) + p++; + e1e: 00240b93 addi s7,s0,2 + e22: b3a9 j b6c <_vscanf_core.constprop.0+0x11e> + e24: fce6 sd s9,120(sp) + e26: f8ea sd s10,112(sp) + int count = (width > 0) ? width : 1; + e28: 00090c1b sext.w s8,s2 + e2c: 0d205a63 blez s2,f00 <_vscanf_core.constprop.0+0x4b2> + char *buf = suppress ? NULL : va_arg(ap, char *); + e30: 4d01 li s10,0 + e32: 06098d63 beqz s3,eac <_vscanf_core.constprop.0+0x45e> + for (int i = 0; i < count; i++) + e36: 9c6a add s8,s8,s10 + if (c == -1) + e38: 5cfd li s9,-1 + if (ctx->ungotten >= 0) + e3a: 018da783 lw a5,24(s11) + ctx->ungotten = -1; + e3e: 856e mv a0,s11 + if (ctx->ungotten >= 0) + e40: 0207dc63 bgez a5,e78 <_vscanf_core.constprop.0+0x42a> + e44: b51ff0ef jal 994 <_in_char.part.0> + e48: 87aa mv a5,a0 + if (c == -1) + e4a: 0b950d63 beq a0,s9,f04 <_vscanf_core.constprop.0+0x4b6> + if (!suppress) + e4e: 00099463 bnez s3,e56 <_vscanf_core.constprop.0+0x408> + buf[i] = (char)c; + e52: 00fd0023 sb a5,0(s10) + for (int i = 0; i < count; i++) + e56: 0d05 addi s10,s10,1 + e58: ffac11e3 bne s8,s10,e3a <_vscanf_core.constprop.0+0x3ec> + while (*p) + e5c: 001bc783 lbu a5,1(s7) + if (!suppress) + e60: 00099363 bnez s3,e66 <_vscanf_core.constprop.0+0x418> + assigned++; + e64: 2b05 addiw s6,s6,1 + e66: 794a ld s2,176(sp) + e68: 79aa ld s3,168(sp) + e6a: 6baa ld s7,136(sp) + e6c: 6c0a ld s8,128(sp) + e6e: 7ce6 ld s9,120(sp) + e70: 7d46 ld s10,112(sp) + while (*p) + e72: c00793e3 bnez a5,a78 <_vscanf_core.constprop.0+0x2a> + e76: b935 j ab2 <_vscanf_core.constprop.0+0x64> + ctx->ungotten = -1; + e78: 019dac23 sw s9,24(s11) + if (c == -1) + e7c: bfc9 j e4e <_vscanf_core.constprop.0+0x400> + e7e: 640e ld s0,192(sp) + e80: 74ea ld s1,184(sp) + e82: 794a ld s2,176(sp) + e84: 79aa ld s3,168(sp) + e86: 7a0a ld s4,160(sp) + e88: 6aea ld s5,152(sp) + e8a: 6baa ld s7,136(sp) + e8c: 6c0a ld s8,128(sp) + e8e: 7da6 ld s11,104(sp) + e90: b135 j abc <_vscanf_core.constprop.0+0x6e> + int width = -1; + e92: 597d li s2,-1 + e94: b975 j b50 <_vscanf_core.constprop.0+0x102> + if (!suppress) + e96: 3c099c63 bnez s3,126e <_vscanf_core.constprop.0+0x820> + buf[i] = '\0'; + e9a: 67e2 ld a5,24(sp) + e9c: 01a786b3 add a3,a5,s10 + ea0: 00068023 sb zero,0(a3) + while (*p) + ea4: 001bc783 lbu a5,1(s7) + assigned++; + ea8: 2b05 addiw s6,s6,1 + eaa: bf75 j e66 <_vscanf_core.constprop.0+0x418> + char *buf = suppress ? NULL : va_arg(ap, char *); + eac: 67a2 ld a5,8(sp) + eae: 0007bd03 ld s10,0(a5) + eb2: 07a1 addi a5,a5,8 + eb4: e43e sd a5,8(sp) + eb6: b741 j e36 <_vscanf_core.constprop.0+0x3e8> + ctx->ungotten = -1; + eb8: 56fd li a3,-1 + eba: 00ddac23 sw a3,24(s11) + while (c != -1 && !isspace(c)) + ebe: bb11 j bd2 <_vscanf_core.constprop.0+0x184> + ctx->ungotten = -1; + ec0: 56fd li a3,-1 + ec2: 00ddac23 sw a3,24(s11) + return c; + ec6: b3d1 j c8a <_vscanf_core.constprop.0+0x23c> + if (c == '-' || c == '+') + ec8: fd57869b addiw a3,a5,-43 + ecc: ffd6f613 andi a2,a3,-3 + ctx->ungotten = -1; + ed0: 55fd li a1,-1 + ed2: 00bdac23 sw a1,24(s11) + if (c == '-' || c == '+') + ed6: 2601 sext.w a2,a2 + ed8: ec061be3 bnez a2,dae <_vscanf_core.constprop.0+0x360> + num_buf[i++] = (char)c; + edc: 02f10023 sb a5,32(sp) + if (ctx->ungotten >= 0) + ee0: 018da783 lw a5,24(s11) + ee4: 2207da63 bgez a5,1118 <_vscanf_core.constprop.0+0x6ca> + ee8: 856e mv a0,s11 + eea: aabff0ef jal 994 <_in_char.part.0> + while (c != -1 && i < 63) + eee: 567d li a2,-1 + ef0: 87aa mv a5,a0 + num_buf[i++] = (char)c; + ef2: 4d05 li s10,1 + ef4: fd55069b addiw a3,a0,-43 + while (c != -1 && i < 63) + ef8: 3ac50163 beq a0,a2,129a <_vscanf_core.constprop.0+0x84c> + efc: fce6 sd s9,120(sp) + efe: bd55 j db2 <_vscanf_core.constprop.0+0x364> + int count = (width > 0) ? width : 1; + f00: 4c05 li s8,1 + f02: b73d j e30 <_vscanf_core.constprop.0+0x3e2> + f04: 640e ld s0,192(sp) + f06: 74ea ld s1,184(sp) + f08: 794a ld s2,176(sp) + f0a: 79aa ld s3,168(sp) + f0c: 7a0a ld s4,160(sp) + f0e: 6aea ld s5,152(sp) + f10: 6baa ld s7,136(sp) + f12: 6c0a ld s8,128(sp) + f14: 7ce6 ld s9,120(sp) + f16: 7d46 ld s10,112(sp) + f18: 7da6 ld s11,104(sp) + f1a: b64d j abc <_vscanf_core.constprop.0+0x6e> + f1c: 640e ld s0,192(sp) + f1e: 74ea ld s1,184(sp) + f20: 794a ld s2,176(sp) + f22: 79aa ld s3,168(sp) + f24: 7a0a ld s4,160(sp) + f26: 6aea ld s5,152(sp) + f28: 6baa ld s7,136(sp) + f2a: 6c0a ld s8,128(sp) + f2c: 7d46 ld s10,112(sp) + f2e: 7da6 ld s11,104(sp) + f30: b671 j abc <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + f32: 018dac23 sw s8,24(s11) + while (c != -1 && !isspace(c)) + f36: b9e5 j c2e <_vscanf_core.constprop.0+0x1e0> + ctx->ungotten = -1; + f38: 57fd li a5,-1 + f3a: 00fdac23 sw a5,24(s11) + while (c != -1 && i < 63) + f3e: bbd9 j d14 <_vscanf_core.constprop.0+0x2c6> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + f40: f9f3069b addiw a3,t1,-97 + f44: 4795 li a5,5 + f46: 06d7f263 bgeu a5,a3,faa <_vscanf_core.constprop.0+0x55c> + f4a: fbf3031b addiw t1,t1,-65 + f4e: 4795 li a5,5 + f50: 0467fd63 bgeu a5,t1,faa <_vscanf_core.constprop.0+0x55c> + int x = (c == 'x' || c == 'X'); + f54: 07800693 li a3,120 + f58: 18d50763 beq a0,a3,10e6 <_vscanf_core.constprop.0+0x698> + f5c: fa850693 addi a3,a0,-88 + f60: 0016b693 seqz a3,a3 + if (base == 0 && i == 1 && num_buf[0] == '0' && x) + f64: 4301 li t1,0 + f66: 32061663 bnez a2,1292 <_vscanf_core.constprop.0+0x844> + f6a: 4785 li a5,1 + f6c: 4601 li a2,0 + f6e: d6fd1ce3 bne s10,a5,ce6 <_vscanf_core.constprop.0+0x298> + f72: 02014e03 lbu t3,32(sp) + f76: 03000793 li a5,48 + f7a: d6fe16e3 bne t3,a5,ce6 <_vscanf_core.constprop.0+0x298> + f7e: d60684e3 beqz a3,ce6 <_vscanf_core.constprop.0+0x298> + base = 16; + f82: 4641 li a2,16 + if (width > 0 && i >= width) + f84: d7a919e3 bne s2,s10,cf6 <_vscanf_core.constprop.0+0x2a8> + f88: bb59 j d1e <_vscanf_core.constprop.0+0x2d0> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + f8a: f9f3069b addiw a3,t1,-97 + f8e: 4795 li a5,5 + f90: 02d7f263 bgeu a5,a3,fb4 <_vscanf_core.constprop.0+0x566> + f94: fbf3031b addiw t1,t1,-65 + f98: 0467f063 bgeu a5,t1,fd8 <_vscanf_core.constprop.0+0x58a> + int x = (c == 'x' || c == 'X'); + f9c: 07800693 li a3,120 + fa0: fad51ee3 bne a0,a3,f5c <_vscanf_core.constprop.0+0x50e> + fa4: 4301 li t1,0 + fa6: 4685 li a3,1 + fa8: b7c9 j f6a <_vscanf_core.constprop.0+0x51c> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + faa: 4305 li t1,1 + int x = (c == 'x' || c == 'X'); + fac: 4681 li a3,0 + if (width > 0 && i >= width) + fae: d3204ee3 bgtz s2,cea <_vscanf_core.constprop.0+0x29c> + fb2: bb35 j cee <_vscanf_core.constprop.0+0x2a0> + int x = (c == 'x' || c == 'X'); + fb4: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + fb6: 4305 li t1,1 + if (width > 0 && i >= width) + fb8: d32049e3 bgtz s2,cea <_vscanf_core.constprop.0+0x29c> + fbc: bb0d j cee <_vscanf_core.constprop.0+0x2a0> + fbe: 4301 li t1,0 + int x = (c == 'x' || c == 'X'); + fc0: 4685 li a3,1 + if (width > 0 && i >= width) + fc2: d32044e3 bgtz s2,cea <_vscanf_core.constprop.0+0x29c> + fc6: bb05 j cf6 <_vscanf_core.constprop.0+0x2a8> + if (!suppress) + fc8: c8099be3 bnez s3,c5e <_vscanf_core.constprop.0+0x210> + buf[i] = '\0'; + fcc: 67e2 ld a5,24(sp) + fce: 00078023 sb zero,0(a5) + ctx->ungotten = c; + fd2: 00adac23 sw a0,24(s11) + if (i > 0 && !suppress) + fd6: b171 j c62 <_vscanf_core.constprop.0+0x214> + int x = (c == 'x' || c == 'X'); + fd8: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + fda: 4305 li t1,1 + fdc: b779 j f6a <_vscanf_core.constprop.0+0x51c> + num_buf[i] = '\0'; + fde: 040d0713 addi a4,s10,64 + fe2: 1014 addi a3,sp,32 + fe4: 96ba add a3,a3,a4 + fe6: fc068023 sb zero,-64(a3) + ctx->ungotten = c; + fea: 00fdac23 sw a5,24(s11) + if (i == 0) + fee: f00d0be3 beqz s10,f04 <_vscanf_core.constprop.0+0x4b6> + ff2: 7ce6 ld s9,120(sp) + if (!suppress) + ff4: d40992e3 bnez s3,d38 <_vscanf_core.constprop.0+0x2ea> + if (*str == '-') + ff8: 02014603 lbu a2,32(sp) + ffc: 02d00793 li a5,45 + 1000: 1af60963 beq a2,a5,11b2 <_vscanf_core.constprop.0+0x764> + else if (*str == '+') + 1004: 02b00793 li a5,43 + 1008: 20f60a63 beq a2,a5,121c <_vscanf_core.constprop.0+0x7ce> + 100c: 00005797 auipc a5,0x5 + 1010: 8e47b587 fld fa1,-1820(a5) # 58f0 + 1014: 101c addi a5,sp,32 + while (*str >= '0' && *str <= '9') + 1016: fd06069b addiw a3,a2,-48 + 101a: 0ff6f513 zext.b a0,a3 + 101e: 45a5 li a1,9 + 1020: f20007d3 fmv.d.x fa5,zero + 1024: 02a5e463 bltu a1,a0,104c <_vscanf_core.constprop.0+0x5fe> + 1028: 00005717 auipc a4,0x5 + 102c: 8d073707 fld fa4,-1840(a4) # 58f8 + 1030: 4525 li a0,9 + 1032: 0017c603 lbu a2,1(a5) + val = val * 10.0 + (*str - '0'); + 1036: d20686d3 fcvt.d.w fa3,a3 + str++; + 103a: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + 103c: fd06069b addiw a3,a2,-48 + 1040: 0ff6f593 zext.b a1,a3 + val = val * 10.0 + (*str - '0'); + 1044: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 + while (*str >= '0' && *str <= '9') + 1048: feb575e3 bgeu a0,a1,1032 <_vscanf_core.constprop.0+0x5e4> + if (*str == '.') + 104c: 02e00693 li a3,46 + 1050: 16d60a63 beq a2,a3,11c4 <_vscanf_core.constprop.0+0x776> + if (*str == 'e' || *str == 'E') + 1054: 0007c683 lbu a3,0(a5) + 1058: 0df6f693 andi a3,a3,223 + 105c: 04500613 li a2,69 + 1060: 0cc68463 beq a3,a2,1128 <_vscanf_core.constprop.0+0x6da> + *va_arg(ap, double *) = val; + 1064: 6722 ld a4,8(sp) + if (len_mod == 1) + 1066: 4685 li a3,1 + return sign * val; + 1068: 12b7f7d3 fmul.d fa5,fa5,fa1 + *va_arg(ap, double *) = val; + 106c: 631c ld a5,0(a4) + *va_arg(ap, int64 *) = val; + 106e: 0721 addi a4,a4,8 + 1070: e43a sd a4,8(sp) + if (len_mod == 1) + 1072: 6762 ld a4,24(sp) + 1074: 18d70b63 beq a4,a3,120a <_vscanf_core.constprop.0+0x7bc> + *va_arg(ap, float *) = (float)val; + 1078: 4017f7d3 fcvt.s.d fa5,fa5 + assigned++; + 107c: 2b05 addiw s6,s6,1 + *va_arg(ap, float *) = (float)val; + 107e: 00f7a027 fsw fa5,0(a5) + 1082: b95d j d38 <_vscanf_core.constprop.0+0x2ea> + num_buf[i++] = (char)c; + 1084: 02a10023 sb a0,32(sp) + if (ctx->ungotten >= 0) + 1088: 018da503 lw a0,24(s11) + 108c: 06055463 bgez a0,10f4 <_vscanf_core.constprop.0+0x6a6> + 1090: 856e mv a0,s11 + 1092: 903ff0ef jal 994 <_in_char.part.0> + num_buf[i++] = (char)c; + 1096: 4d05 li s10,1 + 1098: b101 j c98 <_vscanf_core.constprop.0+0x24a> + int64 val = strtoll(num_buf, NULL, base); + 109a: 4581 li a1,0 + 109c: 1008 addi a0,sp,32 + 109e: 696030ef jal 4734 + *va_arg(ap, int64 *) = val; + 10a2: 67a2 ld a5,8(sp) + if (len_mod == 2) + 10a4: 6762 ld a4,24(sp) + 10a6: 4689 li a3,2 + *va_arg(ap, int64 *) = val; + 10a8: 07a1 addi a5,a5,8 + if (len_mod == 2) + 10aa: 16d70363 beq a4,a3,1210 <_vscanf_core.constprop.0+0x7c2> + *va_arg(ap, int64 *) = val; + 10ae: 6722 ld a4,8(sp) + else if (len_mod == 1) + 10b0: 4605 li a2,1 + *va_arg(ap, int64 *) = val; + 10b2: 6314 ld a3,0(a4) + else if (len_mod == 1) + 10b4: 6762 ld a4,24(sp) + 10b6: 16c70163 beq a4,a2,1218 <_vscanf_core.constprop.0+0x7ca> + *va_arg(ap, int *) = (int)val; + 10ba: c288 sw a0,0(a3) + assigned++; + 10bc: 2b05 addiw s6,s6,1 + 10be: e43e sd a5,8(sp) + 10c0: b9a5 j d38 <_vscanf_core.constprop.0+0x2ea> + num_buf[i] = '\0'; + 10c2: 040d0793 addi a5,s10,64 + 10c6: 1018 addi a4,sp,32 + 10c8: 00e785b3 add a1,a5,a4 + 10cc: fc058023 sb zero,-64(a1) + if (i == 0) + 10d0: 7ce6 ld s9,120(sp) + 10d2: b70d j ff4 <_vscanf_core.constprop.0+0x5a6> + num_buf[i] = '\0'; + 10d4: 040d0793 addi a5,s10,64 + 10d8: 1018 addi a4,sp,32 + 10da: 00e78833 add a6,a5,a4 + 10de: fc080023 sb zero,-64(a6) + if (i == 0) + 10e2: 7ce6 ld s9,120(sp) + 10e4: b981 j d34 <_vscanf_core.constprop.0+0x2e6> + int x = (c == 'x' || c == 'X'); + 10e6: 4301 li t1,0 + 10e8: 4685 li a3,1 + if (width > 0 && i >= width) + 10ea: c12040e3 bgtz s2,cea <_vscanf_core.constprop.0+0x29c> + 10ee: b101 j cee <_vscanf_core.constprop.0+0x2a0> + int assigned = 0; + 10f0: 4b01 li s6,0 + 10f2: b2e9 j abc <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + 10f4: 56fd li a3,-1 + 10f6: fce6 sd s9,120(sp) + 10f8: 00ddac23 sw a3,24(s11) + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + 10fc: 07800693 li a3,120 + 1100: 4641 li a2,16 + num_buf[i++] = (char)c; + 1102: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + 1104: badc09e3 beq s8,a3,cb6 <_vscanf_core.constprop.0+0x268> + 1108: 06900693 li a3,105 + 110c: 4629 li a2,10 + num_buf[i++] = (char)c; + 110e: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + 1110: badc13e3 bne s8,a3,cb6 <_vscanf_core.constprop.0+0x268> + 1114: 4601 li a2,0 + 1116: b645 j cb6 <_vscanf_core.constprop.0+0x268> + ctx->ungotten = -1; + 1118: 56fd li a3,-1 + 111a: fce6 sd s9,120(sp) + 111c: 00ddac23 sw a3,24(s11) + num_buf[i++] = (char)c; + 1120: 4d05 li s10,1 + 1122: fd57869b addiw a3,a5,-43 + 1126: b171 j db2 <_vscanf_core.constprop.0+0x364> + if (*str == '-') + 1128: 0017c583 lbu a1,1(a5) + 112c: 02d00693 li a3,45 + 1130: 0ed58f63 beq a1,a3,122e <_vscanf_core.constprop.0+0x7e0> + else if (*str == '+') + 1134: 02b00693 li a3,43 + 1138: 10d58e63 beq a1,a3,1254 <_vscanf_core.constprop.0+0x806> + while (*str >= '0' && *str <= '9') + 113c: fd05861b addiw a2,a1,-48 + 1140: 0ff67513 zext.b a0,a2 + 1144: 45a5 li a1,9 + str++; + 1146: 00178693 addi a3,a5,1 + int esign = 1; + 114a: 4805 li a6,1 + while (*str >= '0' && *str <= '9') + 114c: 04a5ec63 bltu a1,a0,11a4 <_vscanf_core.constprop.0+0x756> + 1150: 4525 li a0,9 + 1152: 0016c583 lbu a1,1(a3) + eval = eval * 10 + (*str - '0'); + 1156: 0029979b slliw a5,s3,0x2 + 115a: 013787bb addw a5,a5,s3 + 115e: 0017979b slliw a5,a5,0x1 + 1162: 00f609bb addw s3,a2,a5 + while (*str >= '0' && *str <= '9') + 1166: fd05861b addiw a2,a1,-48 + 116a: 0ff67593 zext.b a1,a2 + str++; + 116e: 0685 addi a3,a3,1 + while (*str >= '0' && *str <= '9') + 1170: feb571e3 bgeu a0,a1,1152 <_vscanf_core.constprop.0+0x704> + while (eval--) + 1174: fff9879b addiw a5,s3,-1 + 1178: 12098463 beqz s3,12a0 <_vscanf_core.constprop.0+0x852> + double p = 1.0; + 117c: 00004717 auipc a4,0x4 + 1180: 77473687 fld fa3,1908(a4) # 58f0 + 1184: 00004717 auipc a4,0x4 + 1188: 77473707 fld fa4,1908(a4) # 58f8 + while (eval--) + 118c: 56fd li a3,-1 + 118e: 37fd addiw a5,a5,-1 + p *= 10.0; + 1190: 12e6f6d3 fmul.d fa3,fa3,fa4 + while (eval--) + 1194: fed79de3 bne a5,a3,118e <_vscanf_core.constprop.0+0x740> + if (esign == 1) + 1198: 4785 li a5,1 + 119a: 00f80963 beq a6,a5,11ac <_vscanf_core.constprop.0+0x75e> + val /= p; + 119e: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 11a2: b5c9 j 1064 <_vscanf_core.constprop.0+0x616> + double p = 1.0; + 11a4: 00004797 auipc a5,0x4 + 11a8: 74c7b687 fld fa3,1868(a5) # 58f0 + val *= p; + 11ac: 12d7f7d3 fmul.d fa5,fa5,fa3 + 11b0: bd55 j 1064 <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 11b2: 00004797 auipc a5,0x4 + 11b6: 7367b587 fld fa1,1846(a5) # 58e8 + 11ba: 02114603 lbu a2,33(sp) + str++; + 11be: 02110793 addi a5,sp,33 + 11c2: bd91 j 1016 <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 11c4: 0017c683 lbu a3,1(a5) + 11c8: 45a5 li a1,9 + str++; + 11ca: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + 11cc: fd06861b addiw a2,a3,-48 + 11d0: 0ff67513 zext.b a0,a2 + 11d4: e8a5e2e3 bltu a1,a0,1058 <_vscanf_core.constprop.0+0x60a> + double div = 10.0; + 11d8: 00004717 auipc a4,0x4 + 11dc: 72073707 fld fa4,1824(a4) # 58f8 + 11e0: 22e70653 fmv.d fa2,fa4 + while (*str >= '0' && *str <= '9') + 11e4: 4525 li a0,9 + val += (*str - '0') / div; + 11e6: d20606d3 fcvt.d.w fa3,a2 + while (*str >= '0' && *str <= '9') + 11ea: 0017c683 lbu a3,1(a5) + str++; + 11ee: 0785 addi a5,a5,1 + val += (*str - '0') / div; + 11f0: 1ac6f6d3 fdiv.d fa3,fa3,fa2 + while (*str >= '0' && *str <= '9') + 11f4: fd06861b addiw a2,a3,-48 + 11f8: 0ff67593 zext.b a1,a2 + div *= 10.0; + 11fc: 12e67653 fmul.d fa2,fa2,fa4 + val += (*str - '0') / div; + 1200: 02d7f7d3 fadd.d fa5,fa5,fa3 + while (*str >= '0' && *str <= '9') + 1204: feb571e3 bgeu a0,a1,11e6 <_vscanf_core.constprop.0+0x798> + 1208: bd81 j 1058 <_vscanf_core.constprop.0+0x60a> + *va_arg(ap, double *) = val; + 120a: a39c fsd fa5,0(a5) + assigned++; + 120c: 2b05 addiw s6,s6,1 + 120e: b62d j d38 <_vscanf_core.constprop.0+0x2ea> + *va_arg(ap, int64 *) = val; + 1210: 6722 ld a4,8(sp) + 1212: 6314 ld a3,0(a4) + 1214: e288 sd a0,0(a3) + 1216: b55d j 10bc <_vscanf_core.constprop.0+0x66e> + *va_arg(ap, long *) = (long)val; + 1218: e288 sd a0,0(a3) + 121a: b54d j 10bc <_vscanf_core.constprop.0+0x66e> + while (*str >= '0' && *str <= '9') + 121c: 00004797 auipc a5,0x4 + 1220: 6d47b587 fld fa1,1748(a5) # 58f0 + 1224: 02114603 lbu a2,33(sp) + str++; + 1228: 02110793 addi a5,sp,33 + 122c: b3ed j 1016 <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 122e: 0027c583 lbu a1,2(a5) + str++; + 1232: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 1236: 4525 li a0,9 + 1238: fd05861b addiw a2,a1,-48 + 123c: 0ff67793 zext.b a5,a2 + esign = -1; + 1240: 587d li a6,-1 + while (*str >= '0' && *str <= '9') + 1242: f0f577e3 bgeu a0,a5,1150 <_vscanf_core.constprop.0+0x702> + double p = 1.0; + 1246: 00004797 auipc a5,0x4 + 124a: 6aa7b687 fld fa3,1706(a5) # 58f0 + val /= p; + 124e: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 1252: bd09 j 1064 <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 1254: 0027c583 lbu a1,2(a5) + str++; + 1258: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 125c: 4525 li a0,9 + 125e: fd05861b addiw a2,a1,-48 + 1262: 0ff67793 zext.b a5,a2 + 1266: f2f56fe3 bltu a0,a5,11a4 <_vscanf_core.constprop.0+0x756> + int esign = 1; + 126a: 4805 li a6,1 + 126c: b5d5 j 1150 <_vscanf_core.constprop.0+0x702> + while (*p) + 126e: 001bc783 lbu a5,1(s7) + 1272: bed5 j e66 <_vscanf_core.constprop.0+0x418> + if (!suppress) + 1274: 9e0997e3 bnez s3,c62 <_vscanf_core.constprop.0+0x214> + buf[i] = '\0'; + 1278: 67e2 ld a5,24(sp) + 127a: 00078023 sb zero,0(a5) + 127e: b2d5 j c62 <_vscanf_core.constprop.0+0x214> + num_buf[i] = '\0'; + 1280: 040d0793 addi a5,s10,64 + 1284: 1018 addi a4,sp,32 + 1286: 97ba add a5,a5,a4 + 1288: fc078023 sb zero,-64(a5) + if (i == 0) + 128c: aa0d14e3 bnez s10,d34 <_vscanf_core.constprop.0+0x2e6> + 1290: b171 j f1c <_vscanf_core.constprop.0+0x4ce> + 1292: 4641 li a2,16 + if (width > 0 && i >= width) + 1294: a5204be3 bgtz s2,cea <_vscanf_core.constprop.0+0x29c> + 1298: bc99 j cee <_vscanf_core.constprop.0+0x2a0> + num_buf[i] = '\0'; + 129a: 020100a3 sb zero,33(sp) + if (i == 0) + 129e: bb99 j ff4 <_vscanf_core.constprop.0+0x5a6> + double p = 1.0; + 12a0: 00004797 auipc a5,0x4 + 12a4: 6507b687 fld fa3,1616(a5) # 58f0 + 12a8: bdc5 j 1198 <_vscanf_core.constprop.0+0x74a> + buf[i] = '\0'; + 12aa: 67e2 ld a5,24(sp) + 12ac: 01a786b3 add a3,a5,s10 + 12b0: 00068023 sb zero,0(a3) + ctx->ungotten = c; + 12b4: 00adac23 sw a0,24(s11) + while (*p) + 12b8: 001bc783 lbu a5,1(s7) + 12bc: b6f5 j ea8 <_vscanf_core.constprop.0+0x45a> + +00000000000012be <_out_char>: +{ + 12be: 7179 addi sp,sp,-48 + 12c0: ec26 sd s1,24(sp) + if (ctx->stream) + 12c2: 6d04 ld s1,24(a0) +{ + 12c4: f022 sd s0,32(sp) + 12c6: f406 sd ra,40(sp) + 12c8: 842a mv s0,a0 + 12ca: 872e mv a4,a1 + if (ctx->stream) + 12cc: c0a1 beqz s1,130c <_out_char+0x4e> + 12ce: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 12d0: 41c4a903 lw s2,1052(s1) + 12d4: 4789 li a5,2 + 12d6: 04f90d63 beq s2,a5,1330 <_out_char+0x72> + stream->buffer[stream->buf_write_pos++] = (char)c; + 12da: 4104a783 lw a5,1040(s1) + if (stream->buf_write_pos >= BUFSIZ) + 12de: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 12e2: 0017861b addiw a2,a5,1 + 12e6: 40c4a823 sw a2,1040(s1) + 12ea: 97a6 add a5,a5,s1 + 12ec: 00b78823 sb a1,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 12f0: 08c6c063 blt a3,a2,1370 <_out_char+0xb2> + else if (stream->buf_mode == 1 && c == '\n') + 12f4: 4785 li a5,1 + 12f6: 04f90a63 beq s2,a5,134a <_out_char+0x8c> + ctx->written++; + 12fa: 681c ld a5,16(s0) + 12fc: 6942 ld s2,16(sp) +} + 12fe: 70a2 ld ra,40(sp) + ctx->written++; + 1300: 0785 addi a5,a5,1 + 1302: e81c sd a5,16(s0) +} + 1304: 7402 ld s0,32(sp) + 1306: 64e2 ld s1,24(sp) + 1308: 6145 addi sp,sp,48 + 130a: 8082 ret + if (ctx->limit > 0 && ctx->written < ctx->limit - 1) + 130c: 6514 ld a3,8(a0) + 130e: 691c ld a5,16(a0) + 1310: ca89 beqz a3,1322 <_out_char+0x64> + 1312: 16fd addi a3,a3,-1 + 1314: 00d7f763 bgeu a5,a3,1322 <_out_char+0x64> + ctx->buf[ctx->written] = c; + 1318: 6114 ld a3,0(a0) + 131a: 97b6 add a5,a5,a3 + 131c: 00b78023 sb a1,0(a5) + ctx->written++; + 1320: 691c ld a5,16(a0) + 1322: 0785 addi a5,a5,1 +} + 1324: 70a2 ld ra,40(sp) + ctx->written++; + 1326: e81c sd a5,16(s0) +} + 1328: 7402 ld s0,32(sp) + 132a: 64e2 ld s1,24(sp) + 132c: 6145 addi sp,sp,48 + 132e: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 1330: 4088 lw a0,0(s1) + 1332: 4605 li a2,1 + 1334: 00f10593 addi a1,sp,15 + char ch = (char)c; + 1338: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 133c: e8bfe0ef jal 1c6 + 1340: 4785 li a5,1 + 1342: faf50ce3 beq a0,a5,12fa <_out_char+0x3c> + stream->error = 1; + 1346: c49c sw a5,8(s1) + return EOF; + 1348: bf4d j 12fa <_out_char+0x3c> + else if (stream->buf_mode == 1 && c == '\n') + 134a: 47a9 li a5,10 + 134c: faf597e3 bne a1,a5,12fa <_out_char+0x3c> + if (stream->buf_write_pos > 0) + 1350: fac055e3 blez a2,12fa <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 1354: 4088 lw a0,0(s1) + 1356: 01048593 addi a1,s1,16 + 135a: e6dfe0ef jal 1c6 + if (ret < stream->buf_write_pos) + 135e: 4104a783 lw a5,1040(s1) + 1362: 02f55063 bge a0,a5,1382 <_out_char+0xc4> + stream->error = 1; + 1366: 0124a423 sw s2,8(s1) + stream->buf_write_pos = 0; + 136a: 4004a823 sw zero,1040(s1) + return EOF; + 136e: b771 j 12fa <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 1370: 4088 lw a0,0(s1) + 1372: 01048593 addi a1,s1,16 + 1376: e51fe0ef jal 1c6 + if (ret < stream->buf_write_pos) + 137a: 4104a783 lw a5,1040(s1) + 137e: 00f54563 blt a0,a5,1388 <_out_char+0xca> + stream->buf_write_pos = 0; + 1382: 4004a823 sw zero,1040(s1) + 1386: bf95 j 12fa <_out_char+0x3c> + stream->error = 1; + 1388: 4785 li a5,1 + 138a: c49c sw a5,8(s1) + stream->buf_write_pos = 0; + 138c: 4004a823 sw zero,1040(s1) + return EOF; + 1390: b7ad j 12fa <_out_char+0x3c> + +0000000000001392 : + "75767778798081828384858687888990919293949596979899" +}; + +STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, char pperiod) +{ + stbsp__period = pperiod; + 1392: 00005797 auipc a5,0x5 + 1396: 6ee78793 addi a5,a5,1774 # 6a80 + 139a: 0cb78623 sb a1,204(a5) + stbsp__comma = pcomma; + 139e: 0ca786a3 sb a0,205(a5) +} + 13a2: 8082 ret + +00000000000013a4 : + + return (stbsp__uint32)(sn - s); +} + +STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *callback, void *user, char *buf, char const *fmt, va_list va) +{ + 13a4: d1010113 addi sp,sp,-752 + // Check if the next 4 bytes contain %(0x25) or end of string. + // Using the 'hasless' trick: + // https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord + stbsp__uint32 v, c; + v = *(stbsp__uint32 *)f; + c = (~v) & 0x80808080; + 13a8: 808087b7 lui a5,0x80808 + if (((v ^ 0x25252525) - 0x01010101) & c) + 13ac: 252523b7 lui t2,0x25252 + 13b0: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x2524abad> +{ + 13b4: 29913c23 sd s9,664(sp) + 13b8: 29b13423 sd s11,648(sp) + int tlen = 0; + 13bc: 4c81 li s9,0 + if (((v ^ 0x25252525) - 0x01010101) & c) + 13be: feff0db7 lui s11,0xfeff0 + c = (~v) & 0x80808080; + 13c2: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff80800708> +{ + 13c6: 2e813023 sd s0,736(sp) + 13ca: 2c913c23 sd s1,728(sp) + 13ce: 2d213823 sd s2,720(sp) + 13d2: 2d313423 sd s3,712(sp) + 13d6: 2b713423 sd s7,680(sp) + 13da: 2b813023 sd s8,672(sp) + 13de: 29a13823 sd s10,656(sp) + 13e2: 2e113423 sd ra,744(sp) + 13e6: 8d66 mv s10,s9 + 13e8: 8432 mv s0,a2 + 13ea: 8c9e mv s9,t2 + 13ec: 89aa mv s3,a0 + 13ee: e42e sd a1,8(sp) + 13f0: 84b6 mv s1,a3 + 13f2: 8bba mv s7,a4 + 13f4: fc02 sd zero,56(sp) + for (;;) { + 13f6: 8932 mv s2,a2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 13f8: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8587> + goto schk1; + if ((v - 0x01010101) & c) + goto schk2; + if (callback) + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 13fc: 20000c13 li s8,512 + 1400: 83be mv t2,a5 + while (((stbsp__uintptr)f) & 3) { + 1402: 0034f793 andi a5,s1,3 + 1406: c7a9 beqz a5,1450 + if (f[0] == '%') + 1408: 0004c783 lbu a5,0(s1) + 140c: 02500713 li a4,37 + 1410: 0ee78263 beq a5,a4,14f4 + if (f[0] == 0) + 1414: cbd9 beqz a5,14aa + stbsp__chk_cb_buf(1); + 1416: 02098663 beqz s3,1442 + 141a: 4124063b subw a2,s0,s2 + 141e: 1fe00713 li a4,510 + 1422: 02c75063 bge a4,a2,1442 + 1426: 65a2 ld a1,8(sp) + 1428: 854a mv a0,s2 + 142a: e81e sd t2,16(sp) + 142c: 00cd0d3b addw s10,s10,a2 + 1430: 9982 jalr s3 + 1432: 892a mv s2,a0 + 1434: e119 bnez a0,143a + 1436: 0200106f j 2456 + *bf++ = f[0]; + 143a: 0004c783 lbu a5,0(s1) + stbsp__chk_cb_buf(1); + 143e: 63c2 ld t2,16(sp) + 1440: 842a mv s0,a0 + ++f; + 1442: 0485 addi s1,s1,1 + *bf++ = f[0]; + 1444: 00f40023 sb a5,0(s0) + while (((stbsp__uintptr)f) & 3) { + 1448: 0034f793 andi a5,s1,3 + *bf++ = f[0]; + 144c: 0405 addi s0,s0,1 + while (((stbsp__uintptr)f) & 3) { + 144e: ffcd bnez a5,1408 + v = *(stbsp__uint32 *)f; + 1450: 4094 lw a3,0(s1) + c = (~v) & 0x80808080; + 1452: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1456: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 145a: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 145e: 01b7073b addw a4,a4,s11 + 1462: 8f7d and a4,a4,a5 + 1464: 2701 sext.w a4,a4 + 1466: f34d bnez a4,1408 + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1468: 460d li a2,3 + 146a: a805 j 149a + if (callback) + 146c: 00098863 beqz s3,147c + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1470: 412407b3 sub a5,s0,s2 + 1474: 40fc07bb subw a5,s8,a5 + 1478: f8f658e3 bge a2,a5,1408 + bf[2] = f[2]; + bf[3] = f[3]; + } else + #endif + { + *(stbsp__uint32 *)bf = v; + 147c: c014 sw a3,0(s0) + v = *(stbsp__uint32 *)f; + 147e: 40d4 lw a3,4(s1) + } + bf += 4; + 1480: 0411 addi s0,s0,4 + f += 4; + 1482: 0491 addi s1,s1,4 + c = (~v) & 0x80808080; + 1484: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1488: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 148c: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1490: 01b7073b addw a4,a4,s11 + 1494: 8f7d and a4,a4,a5 + 1496: 2701 sext.w a4,a4 + 1498: fb25 bnez a4,1408 + if ((v - 0x01010101) & c) + 149a: 01b6873b addw a4,a3,s11 + 149e: 8ff9 and a5,a5,a4 + 14a0: 2781 sext.w a5,a5 + 14a2: d7e9 beqz a5,146c + if (f[0] == 0) + 14a4: 0004c783 lbu a5,0(s1) + 14a8: f7bd bnez a5,1416 +endfmt: + + if (!callback) + *bf = 0; + else + stbsp__flush_cb(); + 14aa: 8cea mv s9,s10 + 14ac: 412404bb subw s1,s0,s2 + if (!callback) + 14b0: 70098563 beqz s3,1bba + stbsp__flush_cb(); + 14b4: 00905663 blez s1,14c0 + 14b8: 65a2 ld a1,8(sp) + 14ba: 8626 mv a2,s1 + 14bc: 854a mv a0,s2 + 14be: 9982 jalr s3 + 14c0: 009c8cbb addw s9,s9,s1 + +done: + return tlen + (int)(bf - buf); +} + 14c4: 2e813083 ld ra,744(sp) + 14c8: 2e013403 ld s0,736(sp) + 14cc: 2d813483 ld s1,728(sp) + 14d0: 2d013903 ld s2,720(sp) + 14d4: 2c813983 ld s3,712(sp) + 14d8: 2a813b83 ld s7,680(sp) + 14dc: 2a013c03 ld s8,672(sp) + 14e0: 29013d03 ld s10,656(sp) + 14e4: 28813d83 ld s11,648(sp) + 14e8: 8566 mv a0,s9 + 14ea: 29813c83 ld s9,664(sp) + 14ee: 2f010113 addi sp,sp,752 + 14f2: 8082 ret + 14f4: 2d413023 sd s4,704(sp) + 14f8: 2b513c23 sd s5,696(sp) + 14fc: 2b613823 sd s6,688(sp) + tz = 0; + 1500: 00248693 addi a3,s1,2 + fl = 0; + 1504: 4e01 li t3,0 + switch (f[0]) { + 1506: 03f00593 li a1,63 + 150a: 00004617 auipc a2,0x4 + 150e: d0660613 addi a2,a2,-762 # 5210 <_GLOBAL__sub_I__ZSt3cin+0x14a> + 1512: fff6c783 lbu a5,-1(a3) + 1516: fff68493 addi s1,a3,-1 + 151a: fe07871b addiw a4,a5,-32 + 151e: 0ff77713 zext.b a4,a4 + 1522: 00e5ec63 bltu a1,a4,153a + 1526: 070a slli a4,a4,0x2 + 1528: 9732 add a4,a4,a2 + 152a: 4318 lw a4,0(a4) + 152c: 9732 add a4,a4,a2 + 152e: 8702 jr a4 + if (f[0] == '*') { + 1530: 0014c783 lbu a5,1(s1) + fl |= STBSP__LEADINGZERO; + 1534: 010e6e13 ori t3,t3,16 + ++f; + 1538: 0485 addi s1,s1,1 + if (f[0] == '*') { + 153a: 02a00713 li a4,42 + 153e: 0ce79163 bne a5,a4,1600 + fw = va_arg(va, stbsp__uint32); + 1542: 000bab03 lw s6,0(s7) + while ((f[0] >= '0') && (f[0] <= '9')) { + 1546: 0014c783 lbu a5,1(s1) + fw = va_arg(va, stbsp__uint32); + 154a: 0ba1 addi s7,s7,8 + ++f; + 154c: 0485 addi s1,s1,1 + if (f[0] == '.') { + 154e: 02e00713 li a4,46 + pr = -1; + 1552: 58fd li a7,-1 + if (f[0] == '.') { + 1554: 0ee78663 beq a5,a4,1640 + switch (f[0]) { + 1558: 04900713 li a4,73 + 155c: 10e78263 beq a5,a4,1660 + 1560: f987871b addiw a4,a5,-104 + 1564: 0ff77713 zext.b a4,a4 + 1568: 46c9 li a3,18 + 156a: 02e6e063 bltu a3,a4,158a + 156e: 00004697 auipc a3,0x4 + 1572: da268693 addi a3,a3,-606 # 5310 <_GLOBAL__sub_I__ZSt3cin+0x24a> + 1576: 070a slli a4,a4,0x2 + 1578: 9736 add a4,a4,a3 + 157a: 4318 lw a4,0(a4) + 157c: 9736 add a4,a4,a3 + 157e: 8702 jr a4 + if (f[0] == 'h') + 1580: 0014c783 lbu a5,1(s1) + fl |= (sizeof(ptrdiff_t) == 8) ? STBSP__INTMAX : 0; + 1584: 020e6e13 ori t3,t3,32 + ++f; + 1588: 0485 addi s1,s1,1 + switch (f[0]) { + 158a: fbf7871b addiw a4,a5,-65 + 158e: 0ff77713 zext.b a4,a4 + 1592: 03700693 li a3,55 + 1596: 0ee6ea63 bltu a3,a4,168a + 159a: 00004697 auipc a3,0x4 + 159e: dc268693 addi a3,a3,-574 # 535c <_GLOBAL__sub_I__ZSt3cin+0x296> + 15a2: 070a slli a4,a4,0x2 + 15a4: 9736 add a4,a4,a3 + 15a6: 4318 lw a4,0(a4) + 15a8: 9736 add a4,a4,a3 + 15aa: 8702 jr a4 + fl |= STBSP__METRIC_NOSPACE; + 15ac: 400e6e13 ori t3,t3,1024 + continue; + 15b0: 0685 addi a3,a3,1 + 15b2: b785 j 1512 + fl |= STBSP__LEFTJUST; + 15b4: 001e6e13 ori t3,t3,1 + continue; + 15b8: 0685 addi a3,a3,1 + 15ba: bfa1 j 1512 + fl |= STBSP__LEADINGPLUS; + 15bc: 002e6e13 ori t3,t3,2 + continue; + 15c0: 0685 addi a3,a3,1 + 15c2: bf81 j 1512 + fl |= STBSP__TRIPLET_COMMA; + 15c4: 040e6e13 ori t3,t3,64 + continue; + 15c8: 0685 addi a3,a3,1 + 15ca: b7a1 j 1512 + if (fl & STBSP__METRIC_SUFFIX) { + 15cc: 100e7793 andi a5,t3,256 + 15d0: 8772 mv a4,t3 + 15d2: 56078363 beqz a5,1b38 + if (fl & STBSP__METRIC_1024) { + 15d6: 6785 lui a5,0x1 + 15d8: 034e1513 slli a0,t3,0x34 + 15dc: 80078793 addi a5,a5,-2048 # 800 + 15e0: 5c055863 bgez a0,1bb0 + fl |= STBSP__METRIC_JEDEC; + 15e4: 6785 lui a5,0x1 + 15e6: 8f5d or a4,a4,a5 + 15e8: 00070e1b sext.w t3,a4 + 15ec: 0685 addi a3,a3,1 + 15ee: b715 j 1512 + fl |= STBSP__LEADING_0X; + 15f0: 008e6e13 ori t3,t3,8 + continue; + 15f4: 0685 addi a3,a3,1 + 15f6: bf31 j 1512 + fl |= STBSP__LEADINGSPACE; + 15f8: 004e6e13 ori t3,t3,4 + continue; + 15fc: 0685 addi a3,a3,1 + 15fe: bf11 j 1512 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1600: fd07871b addiw a4,a5,-48 # fd0 <_vscanf_core.constprop.0+0x582> + 1604: 0ff77713 zext.b a4,a4 + 1608: 4625 li a2,9 + fw = 0; + 160a: 4b01 li s6,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 160c: 46a5 li a3,9 + 160e: f4e660e3 bltu a2,a4,154e + fw = fw * 10 + f[0] - '0'; + 1612: 002b171b slliw a4,s6,0x2 + 1616: 0167073b addw a4,a4,s6 + 161a: 0017171b slliw a4,a4,0x1 + f++; + 161e: 0485 addi s1,s1,1 + fw = fw * 10 + f[0] - '0'; + 1620: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1622: 0004c783 lbu a5,0(s1) + fw = fw * 10 + f[0] - '0'; + 1626: fd070b1b addiw s6,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 162a: fd07871b addiw a4,a5,-48 + 162e: 0ff77713 zext.b a4,a4 + 1632: fee6f0e3 bgeu a3,a4,1612 + if (f[0] == '.') { + 1636: 02e00713 li a4,46 + pr = -1; + 163a: 58fd li a7,-1 + if (f[0] == '.') { + 163c: f0e79ee3 bne a5,a4,1558 + if (f[0] == '*') { + 1640: 0014c783 lbu a5,1(s1) + 1644: 02a00713 li a4,42 + 1648: 52e79763 bne a5,a4,1b76 + while ((f[0] >= '0') && (f[0] <= '9')) { + 164c: 0024c783 lbu a5,2(s1) + switch (f[0]) { + 1650: 04900713 li a4,73 + pr = va_arg(va, stbsp__uint32); + 1654: 000ba883 lw a7,0(s7) + ++f; + 1658: 0489 addi s1,s1,2 + pr = va_arg(va, stbsp__uint32); + 165a: 0ba1 addi s7,s7,8 + switch (f[0]) { + 165c: f0e792e3 bne a5,a4,1560 + if ((f[1] == '6') && (f[2] == '4')) { + 1660: 0014c783 lbu a5,1(s1) + 1664: 03600713 li a4,54 + 1668: 00e79463 bne a5,a4,1670 + 166c: 1e60106f j 2852 + } else if ((f[1] == '3') && (f[2] == '2')) { + 1670: 03300713 li a4,51 + 1674: 6ae796e3 bne a5,a4,2520 + 1678: 0024c683 lbu a3,2(s1) + 167c: 03200713 li a4,50 + 1680: 00e69463 bne a3,a4,1688 + 1684: 0ae0106f j 2732 + ++f; + 1688: 0485 addi s1,s1,1 + *s = f[0]; + 168a: 26f10fa3 sb a5,639(sp) + l = 1; + 168e: 4785 li a5,1 + 1690: d0be sw a5,96(sp) + lead[0] = 0; + 1692: 06010423 sb zero,104(sp) + tail[0] = 0; + 1696: 06010823 sb zero,112(sp) + dp = 0; + 169a: d282 sw zero,100(sp) + 169c: e0de sd s7,64(sp) + 169e: 4701 li a4,0 + 16a0: 4301 li t1,0 + 16a2: 4f81 li t6,0 + 16a4: 4685 li a3,1 + 16a6: 4a01 li s4,0 + cs = 0; + 16a8: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 16aa: 27f10a93 addi s5,sp,639 + fw = fl = 0; + 16ae: 4e01 li t3,0 + tz = 0; + 16b0: 4881 li a7,0 + if (fl & STBSP__LEADINGZERO) // if leading zeros, everything is in pr + 16b2: 010e7793 andi a5,t3,16 + 16b6: 40078ee3 beqz a5,22d2 + pr = (fw > pr) ? fw : pr; + 16ba: 87ba mv a5,a4 + 16bc: 00675363 bge a4,t1,16c2 + 16c0: 879a mv a5,t1 + 16c2: 0007871b sext.w a4,a5 + fw = 0; + 16c6: 4301 li t1,0 + if (fw + pr) { + 16c8: 62070563 beqz a4,1cf2 + sn = lead + 1; + 16cc: 06910793 addi a5,sp,105 + 16d0: fcbe sd a5,120(sp) + while (lead[0]) { + 16d2: 0a0a0863 beqz s4,1782 + stbsp__cb_buf_clamp(i, lead[0]); + 16d6: f026 sd s1,32(sp) + 16d8: f436 sd a3,40(sp) + 16da: 854a mv a0,s2 + 16dc: 86d2 mv a3,s4 + 16de: 84ce mv s1,s3 + stbsp__chk_cb_buf(1); + 16e0: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 16e4: 89be mv s3,a5 + 16e6: 20000b13 li s6,512 + 16ea: 87a2 mv a5,s0 + 16ec: e846 sd a7,16(sp) + 16ee: 846a mv s0,s10 + 16f0: ec7e sd t6,24(sp) + 16f2: 8d6e mv s10,s11 + 16f4: f872 sd t3,48(sp) + 16f6: 8de6 mv s11,s9 + 16f8: 8a3a mv s4,a4 + 16fa: e496 sd t0,72(sp) + 16fc: 891a mv s2,t1 + 16fe: 8c9e mv s9,t2 + 1700: 0006871b sext.w a4,a3 + 1704: 2e0482e3 beqz s1,21e8 + 1708: 40a7863b subw a2,a5,a0 + 170c: 40cb083b subw a6,s6,a2 + 1710: 85c2 mv a1,a6 + 1712: 01075363 bge a4,a6,1718 + 1716: 85ba mv a1,a4 + lead[0] -= (char)i; + 1718: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 171a: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 171e: 06d10423 sb a3,104(sp) + while (i) { + 1722: c70d beqz a4,174c + 1724: 7866 ld a6,120(sp) + 1726: 02071593 slli a1,a4,0x20 + 172a: 9181 srli a1,a1,0x20 + 172c: 00b78633 add a2,a5,a1 + 1730: 8742 mv a4,a6 + *bf++ = *sn++; + 1732: 00074683 lbu a3,0(a4) + 1736: 0785 addi a5,a5,1 + while (i) { + 1738: 0705 addi a4,a4,1 + *bf++ = *sn++; + 173a: fed78fa3 sb a3,-1(a5) + while (i) { + 173e: fec79ae3 bne a5,a2,1732 + 1742: 982e add a6,a6,a1 + 1744: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 1746: c899 beqz s1,175c + 1748: 40a7863b subw a2,a5,a0 + 174c: 00cbd863 bge s7,a2,175c + 1750: 65a2 ld a1,8(sp) + 1752: 9c31 addw s0,s0,a2 + 1754: 9482 jalr s1 + 1756: 34050ee3 beqz a0,22b2 + 175a: 87aa mv a5,a0 + while (lead[0]) { + 175c: 06814683 lbu a3,104(sp) + 1760: f2c5 bnez a3,1700 + 1762: 83e6 mv t2,s9 + 1764: 68c2 ld a7,16(sp) + 1766: 8cee mv s9,s11 + 1768: 6fe2 ld t6,24(sp) + 176a: 8dea mv s11,s10 + 176c: 76a2 ld a3,40(sp) + 176e: 8d22 mv s10,s0 + 1770: 7e42 ld t3,48(sp) + 1772: 843e mv s0,a5 + 1774: 62a6 ld t0,72(sp) + 1776: 87ce mv a5,s3 + 1778: 89a6 mv s3,s1 + 177a: 7482 ld s1,32(sp) + 177c: 834a mv t1,s2 + 177e: 8752 mv a4,s4 + 1780: 892a mv s2,a0 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 1782: 040e7b13 andi s6,t3,64 + c = cs >> 24; + 1786: 0182d61b srliw a2,t0,0x18 + 178a: 0182db9b srliw s7,t0,0x18 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 178e: 4a01 li s4,0 + 1790: 000b0e63 beqz s6,17ac + cs &= 0xffffff; + 1794: 02829a13 slli s4,t0,0x28 + 1798: 028a5a13 srli s4,s4,0x28 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 179c: 00ea0a3b addw s4,s4,a4 + 17a0: 0016059b addiw a1,a2,1 + 17a4: 02ba7a3b remuw s4,s4,a1 + 17a8: 41460a3b subw s4,a2,s4 + while (pr > 0) { + 17ac: 0ce05763 blez a4,187a + *(stbsp__uint32 *)bf = 0x30303030; + 17b0: 30303837 lui a6,0x30303 + 17b4: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fb6b8> + 17b8: f026 sd s1,32(sp) + 17ba: 854a mv a0,s2 + 17bc: 84da mv s1,s6 + 17be: 895e mv s2,s7 + 17c0: e4d6 sd s5,72(sp) + 17c2: 8b4e mv s6,s3 + 17c4: 8aea mv s5,s10 + stbsp__chk_cb_buf(1); + 17c6: 1fe00293 li t0,510 + 17ca: 8d6e mv s10,s11 + *bf++ = stbsp__comma; + 17cc: 00005f17 auipc t5,0x5 + 17d0: 2b4f0f13 addi t5,t5,692 # 6a80 + 17d4: 8de6 mv s11,s9 + *bf++ = '0'; + 17d6: 03000e93 li t4,48 + 17da: e846 sd a7,16(sp) + 17dc: ec7e sd t6,24(sp) + 17de: f436 sd a3,40(sp) + 17e0: f872 sd t3,48(sp) + 17e2: e89a sd t1,80(sp) + 17e4: 89ba mv s3,a4 + 17e6: ecbe sd a5,88(sp) + 17e8: 8bc2 mv s7,a6 + 17ea: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, pr); + 17ec: 240b0ee3 beqz s6,2248 + 17f0: 40a407b3 sub a5,s0,a0 + 17f4: 40fc063b subw a2,s8,a5 + 17f8: 87b2 mv a5,a2 + 17fa: 00c9d363 bge s3,a2,1800 + 17fe: 87ce mv a5,s3 + 1800: 0007859b sext.w a1,a5 + pr -= i; + 1804: 40f989bb subw s3,s3,a5 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 1808: 32048c63 beqz s1,1b40 + while (i) { + 180c: 34058a63 beqz a1,1b60 + 1810: 1582 slli a1,a1,0x20 + *bf++ = stbsp__comma; + 1812: 0cdf4603 lbu a2,205(t5) + 1816: 9181 srli a1,a1,0x20 + 1818: 95a2 add a1,a1,s0 + 181a: 0405 addi s0,s0,1 + if ((fl & STBSP__TRIPLET_COMMA) && (cs++ == c)) { + 181c: c481 beqz s1,1824 + 181e: 1d4901e3 beq s2,s4,21e0 + 1822: 2a05 addiw s4,s4,1 + *bf++ = '0'; + 1824: 03000793 li a5,48 + 1828: fef40fa3 sb a5,-1(s0) + while (i) { + 182c: fe8597e3 bne a1,s0,181a + stbsp__chk_cb_buf(1); + 1830: 320b0b63 beqz s6,1b66 + 1834: 40a5863b subw a2,a1,a0 + 1838: 32c2d763 bge t0,a2,1b66 + 183c: 65a2 ld a1,8(sp) + 183e: 01560abb addw s5,a2,s5 + 1842: 9b02 jalr s6 + 1844: 3a050ce3 beqz a0,23fc + 1848: 842a mv s0,a0 + 184a: 1fe00293 li t0,510 + 184e: 00005f17 auipc t5,0x5 + 1852: 232f0f13 addi t5,t5,562 # 6a80 + 1856: 03000e93 li t4,48 + while (pr > 0) { + 185a: f93049e3 bgtz s3,17ec + while (lead[0]) { + 185e: 83e6 mv t2,s9 + 1860: 68c2 ld a7,16(sp) + 1862: 8cee mv s9,s11 + 1864: 6fe2 ld t6,24(sp) + 1866: 8dea mv s11,s10 + 1868: 7482 ld s1,32(sp) + 186a: 8d56 mv s10,s5 + 186c: 76a2 ld a3,40(sp) + 186e: 7e42 ld t3,48(sp) + 1870: 6346 ld t1,80(sp) + 1872: 67e6 ld a5,88(sp) + 1874: 6aa6 ld s5,72(sp) + 1876: 892a mv s2,a0 + 1878: 89da mv s3,s6 + 187a: 06814a03 lbu s4,104(sp) + sn = lead + 1; + 187e: fcbe sd a5,120(sp) + while (lead[0]) { + 1880: 0a0a0263 beqz s4,1924 + stbsp__cb_buf_clamp(i, lead[0]); + 1884: ec26 sd s1,24(sp) + 1886: f036 sd a3,32(sp) + 1888: 854a mv a0,s2 + 188a: 86d2 mv a3,s4 + 188c: 84ce mv s1,s3 + 188e: 87a2 mv a5,s0 + stbsp__chk_cb_buf(1); + 1890: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 1894: 846a mv s0,s10 + 1896: 20000b13 li s6,512 + 189a: 8d6e mv s10,s11 + 189c: e846 sd a7,16(sp) + 189e: 8de6 mv s11,s9 + 18a0: 8a7e mv s4,t6 + 18a2: 8972 mv s2,t3 + 18a4: 899a mv s3,t1 + 18a6: 8c9e mv s9,t2 + 18a8: 0006871b sext.w a4,a3 + 18ac: 140482e3 beqz s1,21f0 + 18b0: 40a7863b subw a2,a5,a0 + 18b4: 40cb083b subw a6,s6,a2 + 18b8: 85c2 mv a1,a6 + 18ba: 01075363 bge a4,a6,18c0 + 18be: 85ba mv a1,a4 + lead[0] -= (char)i; + 18c0: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 18c2: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 18c6: 06d10423 sb a3,104(sp) + while (i) { + 18ca: c70d beqz a4,18f4 + 18cc: 7866 ld a6,120(sp) + 18ce: 02071593 slli a1,a4,0x20 + 18d2: 9181 srli a1,a1,0x20 + 18d4: 00b78633 add a2,a5,a1 + 18d8: 8742 mv a4,a6 + *bf++ = *sn++; + 18da: 00074683 lbu a3,0(a4) + 18de: 0785 addi a5,a5,1 + while (i) { + 18e0: 0705 addi a4,a4,1 + *bf++ = *sn++; + 18e2: fed78fa3 sb a3,-1(a5) + while (i) { + 18e6: fec79ae3 bne a5,a2,18da + 18ea: 982e add a6,a6,a1 + 18ec: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 18ee: c899 beqz s1,1904 + 18f0: 40a7863b subw a2,a5,a0 + 18f4: 00cbd863 bge s7,a2,1904 + 18f8: 65a2 ld a1,8(sp) + 18fa: 9c31 addw s0,s0,a2 + 18fc: 9482 jalr s1 + 18fe: 1a050ae3 beqz a0,22b2 + 1902: 87aa mv a5,a0 + while (lead[0]) { + 1904: 06814683 lbu a3,104(sp) + 1908: f2c5 bnez a3,18a8 + 190a: 834e mv t1,s3 + 190c: 68c2 ld a7,16(sp) + 190e: 89a6 mv s3,s1 + 1910: 7682 ld a3,32(sp) + 1912: 64e2 ld s1,24(sp) + 1914: 8e4a mv t3,s2 + 1916: 83e6 mv t2,s9 + 1918: 8fd2 mv t6,s4 + 191a: 8cee mv s9,s11 + 191c: 892a mv s2,a0 + 191e: 8dea mv s11,s10 + 1920: 8d22 mv s10,s0 + 1922: 843e mv s0,a5 + while (n) { + 1924: c6f9 beqz a3,19f2 + STBSP__UNALIGNED(while (i >= 4) { + 1926: ec26 sd s1,24(sp) + 1928: 854a mv a0,s2 + 192a: 84d6 mv s1,s5 + 192c: 896a mv s2,s10 + 192e: 87a2 mv a5,s0 + 1930: 8d6e mv s10,s11 + stbsp__chk_cb_buf(1); + 1932: 1fe00b93 li s7,510 + STBSP__UNALIGNED(while (i >= 4) { + 1936: 8de6 mv s11,s9 + stbsp__cb_buf_clamp(i, n); + 1938: 20000b13 li s6,512 + STBSP__UNALIGNED(while (i >= 4) { + 193c: 4a0d li s4,3 + 193e: e87e sd t6,16(sp) + 1940: f072 sd t3,32(sp) + 1942: 8ac6 mv s5,a7 + 1944: f41a sd t1,40(sp) + 1946: 8436 mv s0,a3 + 1948: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, n); + 194a: 0004071b sext.w a4,s0 + 194e: 100982e3 beqz s3,2252 + 1952: 40a78633 sub a2,a5,a0 + 1956: 40cb05bb subw a1,s6,a2 + 195a: 862e mv a2,a1 + 195c: 00b75363 bge a4,a1,1962 + 1960: 863a mv a2,a4 + 1962: 0006071b sext.w a4,a2 + n -= i; + 1966: 9c11 subw s0,s0,a2 + STBSP__UNALIGNED(while (i >= 4) { + 1968: 14ea50e3 bge s4,a4,22a8 + 196c: ffc70f1b addiw t5,a4,-4 + 1970: 002f5e9b srliw t4,t5,0x2 + 1974: 001e8e1b addiw t3,t4,1 + 1978: 0e0a slli t3,t3,0x2 + 197a: 01c785b3 add a1,a5,t3 + 197e: 8626 mv a2,s1 + 1980: 4218 lw a4,0(a2) + 1982: 0791 addi a5,a5,4 + 1984: 0611 addi a2,a2,4 + 1986: 2701 sext.w a4,a4 + 1988: fee7ae23 sw a4,-4(a5) + 198c: feb79ae3 bne a5,a1,1980 + 1990: 002e9e9b slliw t4,t4,0x2 + 1994: 41df073b subw a4,t5,t4 + while (i) { + 1998: 94f2 add s1,s1,t3 + 199a: c31d beqz a4,19c0 + 199c: 8626 mv a2,s1 + 199e: 87ae mv a5,a1 + 19a0: 00e58f3b addw t5,a1,a4 + *bf++ = *s++; + 19a4: 00064e83 lbu t4,0(a2) + 19a8: 0785 addi a5,a5,1 + while (i) { + 19aa: 00078e1b sext.w t3,a5 + *bf++ = *s++; + 19ae: ffd78fa3 sb t4,-1(a5) + 19b2: 0605 addi a2,a2,1 + while (i) { + 19b4: ffcf18e3 bne t5,t3,19a4 + 19b8: 1702 slli a4,a4,0x20 + 19ba: 9301 srli a4,a4,0x20 + 19bc: 95ba add a1,a1,a4 + 19be: 94ba add s1,s1,a4 + stbsp__chk_cb_buf(1); + 19c0: 1a098763 beqz s3,1b6e + 19c4: 40a5863b subw a2,a1,a0 + 19c8: 1acbd363 bge s7,a2,1b6e + 19cc: 65a2 ld a1,8(sp) + 19ce: 0126093b addw s2,a2,s2 + 19d2: 9982 jalr s3 + 19d4: 20050be3 beqz a0,23ea + 19d8: 87aa mv a5,a0 + while (n) { + 19da: f825 bnez s0,194a + 19dc: 6fc2 ld t6,16(sp) + 19de: 64e2 ld s1,24(sp) + 19e0: 7e02 ld t3,32(sp) + 19e2: 7322 ld t1,40(sp) + 19e4: 83e6 mv t2,s9 + 19e6: 88d6 mv a7,s5 + 19e8: 8cee mv s9,s11 + 19ea: 843e mv s0,a5 + 19ec: 8dea mv s11,s10 + 19ee: 8d4a mv s10,s2 + 19f0: 892a mv s2,a0 + while (tz) { + 19f2: 08088863 beqz a7,1a82 + *(stbsp__uint32 *)bf = 0x30303030; + 19f6: 30303b37 lui s6,0x30303 + *bf++ = '0'; + 19fa: 03000a13 li s4,48 + while (i >= 4) { + 19fe: 4a8d li s5,3 + stbsp__chk_cb_buf(1); + 1a00: 1fe00693 li a3,510 + *(stbsp__uint32 *)bf = 0x30303030; + 1a04: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fb6b8> + stbsp__cb_buf_clamp(i, tz); + 1a08: 20000b93 li s7,512 + 1a0c: 040989e3 beqz s3,225e + 1a10: 41240633 sub a2,s0,s2 + 1a14: 40cb87bb subw a5,s7,a2 + 1a18: 873e mv a4,a5 + 1a1a: 00f8d363 bge a7,a5,1a20 + 1a1e: 8746 mv a4,a7 + 1a20: 0007079b sext.w a5,a4 + tz -= i; + 1a24: 40e888bb subw a7,a7,a4 + while (i) { + 1a28: 08078ee3 beqz a5,22c4 + if ((((stbsp__uintptr)bf) & 3) == 0) + 1a2c: 00347713 andi a4,s0,3 + 1a30: e719 bnez a4,1a3e + 1a32: 0390006f j 226a + 1a36: 00347713 andi a4,s0,3 + 1a3a: 7a070f63 beqz a4,21f8 + *bf++ = '0'; + 1a3e: 01440023 sb s4,0(s0) + --i; + 1a42: 37fd addiw a5,a5,-1 + *bf++ = '0'; + 1a44: 0405 addi s0,s0,1 + while (i) { + 1a46: fbe5 bnez a5,1a36 + stbsp__chk_cb_buf(1); + 1a48: 02098b63 beqz s3,1a7e + 1a4c: 4124063b subw a2,s0,s2 + 1a50: 02c6d763 bge a3,a2,1a7e + 1a54: 65a2 ld a1,8(sp) + 1a56: 854a mv a0,s2 + 1a58: f81e sd t2,48(sp) + 1a5a: f41a sd t1,40(sp) + 1a5c: f072 sd t3,32(sp) + 1a5e: ec7e sd t6,24(sp) + 1a60: e846 sd a7,16(sp) + 1a62: 00cd0d3b addw s10,s10,a2 + 1a66: 9982 jalr s3 + 1a68: 892a mv s2,a0 + 1a6a: 1a0502e3 beqz a0,240e + 1a6e: 73c2 ld t2,48(sp) + 1a70: 7322 ld t1,40(sp) + 1a72: 7e02 ld t3,32(sp) + 1a74: 6fe2 ld t6,24(sp) + 1a76: 68c2 ld a7,16(sp) + 1a78: 842a mv s0,a0 + 1a7a: 1fe00693 li a3,510 + while (tz) { + 1a7e: f80897e3 bnez a7,1a0c + sn = tail + 1; + 1a82: 07110793 addi a5,sp,113 + 1a86: fcbe sd a5,120(sp) + while (tail[0]) { + 1a88: 080f8763 beqz t6,1b16 + stbsp__cb_buf_clamp(i, tail[0]); + 1a8c: 854a mv a0,s2 + 1a8e: 8b6a mv s6,s10 + stbsp__chk_cb_buf(1); + 1a90: 1fe00a93 li s5,510 + stbsp__cb_buf_clamp(i, tail[0]); + 1a94: 8d4e mv s10,s3 + 1a96: 20000a13 li s4,512 + 1a9a: 8bf2 mv s7,t3 + 1a9c: 891a mv s2,t1 + 1a9e: 899e mv s3,t2 + 1aa0: 000f879b sext.w a5,t6 + 1aa4: 7c0d0863 beqz s10,2274 + 1aa8: 40a4063b subw a2,s0,a0 + 1aac: 40ca06bb subw a3,s4,a2 + 1ab0: 8736 mv a4,a3 + 1ab2: 00d7d363 bge a5,a3,1ab8 + 1ab6: 873e mv a4,a5 + tail[0] -= (char)i; + 1ab8: 40ef8fbb subw t6,t6,a4 + stbsp__cb_buf_clamp(i, tail[0]); + 1abc: 0007079b sext.w a5,a4 + tail[0] -= (char)i; + 1ac0: 07f10823 sb t6,112(sp) + while (i) { + 1ac4: c795 beqz a5,1af0 + 1ac6: 75e6 ld a1,120(sp) + 1ac8: 02079613 slli a2,a5,0x20 + 1acc: 9201 srli a2,a2,0x20 + 1ace: 00c406b3 add a3,s0,a2 + 1ad2: 87ae mv a5,a1 + *bf++ = *sn++; + 1ad4: 0007c703 lbu a4,0(a5) + 1ad8: 0405 addi s0,s0,1 + while (i) { + 1ada: 0785 addi a5,a5,1 + *bf++ = *sn++; + 1adc: fee40fa3 sb a4,-1(s0) + while (i) { + 1ae0: fed41ae3 bne s0,a3,1ad4 + 1ae4: 95b2 add a1,a1,a2 + 1ae6: fcae sd a1,120(sp) + stbsp__chk_cb_buf(1); + 1ae8: 000d0d63 beqz s10,1b02 + 1aec: 40a4063b subw a2,s0,a0 + 1af0: 00cad963 bge s5,a2,1b02 + 1af4: 65a2 ld a1,8(sp) + 1af6: 00cb0b3b addw s6,s6,a2 + 1afa: 9d02 jalr s10 + 1afc: 200509e3 beqz a0,250e + 1b00: 842a mv s0,a0 + while (tail[0]) { + 1b02: 07014f83 lbu t6,112(sp) + 1b06: f80f9de3 bnez t6,1aa0 + 1b0a: 834a mv t1,s2 + 1b0c: 83ce mv t2,s3 + 1b0e: 8e5e mv t3,s7 + 1b10: 89ea mv s3,s10 + 1b12: 892a mv s2,a0 + 1b14: 8d5a mv s10,s6 + if (fl & STBSP__LEFTJUST) + 1b16: 001e7e13 andi t3,t3,1 + 1b1a: 000e0663 beqz t3,1b26 + if (fw > 0) { + 1b1e: 00605463 blez t1,1b26 + 1b22: 0300106f j 2b52 + for (;;) { + 1b26: 6b86 ld s7,64(sp) + 1b28: 2c013a03 ld s4,704(sp) + 1b2c: 2b813a83 ld s5,696(sp) + 1b30: 2b013b03 ld s6,688(sp) + ++f; + 1b34: 0485 addi s1,s1,1 + for (;;) { + 1b36: b0f1 j 1402 + fl |= STBSP__METRIC_SUFFIX; + 1b38: 100e6e13 ori t3,t3,256 + continue; + 1b3c: 0685 addi a3,a3,1 + 1b3e: bad1 j 1512 + while (i) { + 1b40: 0e0580e3 beqz a1,2420 + if ((((stbsp__uintptr)bf) & 3) == 0) + 1b44: 00347793 andi a5,s0,3 + 1b48: e799 bnez a5,1b56 + 1b4a: 0dd0006f j 2426 + 1b4e: 00347793 andi a5,s0,3 + 1b52: 72078463 beqz a5,227a + *bf++ = '0'; + 1b56: 01d40023 sb t4,0(s0) + --i; + 1b5a: 35fd addiw a1,a1,-1 + *bf++ = '0'; + 1b5c: 0405 addi s0,s0,1 + while (i) { + 1b5e: f9e5 bnez a1,1b4e + while (i) { + 1b60: 85a2 mv a1,s0 + stbsp__chk_cb_buf(1); + 1b62: cc0b19e3 bnez s6,1834 + 1b66: 842e mv s0,a1 + while (pr > 0) { + 1b68: c93042e3 bgtz s3,17ec + 1b6c: b9cd j 185e + while (i) { + 1b6e: 87ae mv a5,a1 + while (n) { + 1b70: dc041de3 bnez s0,194a + 1b74: b5a5 j 19dc + while ((f[0] >= '0') && (f[0] <= '9')) { + 1b76: fd07871b addiw a4,a5,-48 + 1b7a: 0ff77713 zext.b a4,a4 + 1b7e: 4625 li a2,9 + ++f; + 1b80: 0485 addi s1,s1,1 + pr = 0; + 1b82: 4881 li a7,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1b84: 46a5 li a3,9 + 1b86: 9ce669e3 bltu a2,a4,1558 + pr = pr * 10 + f[0] - '0'; + 1b8a: 0028971b slliw a4,a7,0x2 + 1b8e: 0117073b addw a4,a4,a7 + 1b92: 0017171b slliw a4,a4,0x1 + f++; + 1b96: 0485 addi s1,s1,1 + pr = pr * 10 + f[0] - '0'; + 1b98: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1b9a: 0004c783 lbu a5,0(s1) + pr = pr * 10 + f[0] - '0'; + 1b9e: fd07089b addiw a7,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1ba2: fd07871b addiw a4,a5,-48 + 1ba6: 0ff77713 zext.b a4,a4 + 1baa: fee6f0e3 bgeu a3,a4,1b8a + 1bae: b26d j 1558 + fl |= STBSP__METRIC_1024; + 1bb0: 8f5d or a4,a4,a5 + 1bb2: 00070e1b sext.w t3,a4 + 1bb6: 0685 addi a3,a3,1 + 1bb8: baa9 j 1512 + *bf = 0; + 1bba: 00040023 sb zero,0(s0) + 1bbe: b209 j 14c0 + if (f[0] == 'l') { + 1bc0: 0014c783 lbu a5,1(s1) + 1bc4: 06c00713 li a4,108 + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 1bc8: 020e6e13 ori t3,t3,32 + if (f[0] == 'l') { + 1bcc: 00e78c63 beq a5,a4,1be4 + ++f; + 1bd0: 0485 addi s1,s1,1 + 1bd2: ba65 j 158a + if (f[0] == 'h') + 1bd4: 0014c783 lbu a5,1(s1) + 1bd8: 06800713 li a4,104 + fl |= STBSP__HALFWIDTH; + 1bdc: 200e6e13 ori t3,t3,512 + if (f[0] == 'h') + 1be0: fee798e3 bne a5,a4,1bd0 + if ((f[1] == '6') && (f[2] == '4')) { + 1be4: 0024c783 lbu a5,2(s1) + ++f; + 1be8: 0489 addi s1,s1,2 + 1bea: b245 j 158a + s = va_arg(va, char *); + 1bec: 008b8713 addi a4,s7,8 + 1bf0: e0ba sd a4,64(sp) + if (fl & STBSP__INTMAX) { + 1bf2: 020e7693 andi a3,t3,32 + 1bf6: 8772 mv a4,t3 + 1bf8: 24069ee3 bnez a3,2654 + stbsp__int32 i = va_arg(va, stbsp__int32); + 1bfc: 000ba683 lw a3,0(s7) + if ((f[0] != 'u') && (i < 0)) { + 1c00: 07500613 li a2,117 + n64 = (stbsp__uint32)i; + 1c04: 02069f13 slli t5,a3,0x20 + 1c08: 020f5f13 srli t5,t5,0x20 + if ((f[0] != 'u') && (i < 0)) { + 1c0c: 00c78a63 beq a5,a2,1c20 + 1c10: 0006d863 bgez a3,1c20 + fl |= STBSP__NEGATIVE; + 1c14: 08076713 ori a4,a4,128 + n64 = (stbsp__uint32)-i; + 1c18: 40d00f3b negw t5,a3 + fl |= STBSP__NEGATIVE; + 1c1c: 00070e1b sext.w t3,a4 + if (fl & STBSP__METRIC_SUFFIX) { + 1c20: 100e7693 andi a3,t3,256 + 1c24: 5c0683e3 beqz a3,29ea + if (n64 < 1024) + 1c28: 3ff00793 li a5,1023 + 1c2c: 01e7e463 bltu a5,t5,1c34 + 1c30: 0ea0106f j 2d1a + else if (pr == -1) + 1c34: 57fd li a5,-1 + 1c36: 30f887e3 beq a7,a5,2744 + fv = (double)(stbsp__int64)n64; + 1c3a: d22f7553 fcvt.d.l fa0,t5 + if (fl & STBSP__METRIC_1024) + 1c3e: 034e1793 slli a5,t3,0x34 + 1c42: 0007c463 bltz a5,1c4a + 1c46: 2300106f j 2e76 + divisor = 1024.0; + 1c4a: 00004797 auipc a5,0x4 + 1c4e: cb67b787 fld fa5,-842(a5) # 5900 + if ((fv < divisor) && (fv > -divisor)) + 1c52: 22f79753 fneg.d fa4,fa5 + fl += 0x1000000; + 1c56: 010006b7 lui a3,0x1000 + while (fl < 0x4000000) { + 1c5a: 04000737 lui a4,0x4000 + if ((fv < divisor) && (fv > -divisor)) + 1c5e: a2f517d3 flt.d a5,fa0,fa5 + 1c62: c789 beqz a5,1c6c + 1c64: a2a717d3 flt.d a5,fa4,fa0 + 1c68: 3e079863 bnez a5,2058 + fl += 0x1000000; + 1c6c: 01c68e3b addw t3,a3,t3 + fv /= divisor; + 1c70: 1af57553 fdiv.d fa0,fa0,fa5 + while (fl < 0x4000000) { + 1c74: feee65e3 bltu t3,a4,1c5e + 1c78: a6c5 j 2058 + h = (f[0] == 'X') ? hexu : hex; + 1c7a: 05800693 li a3,88 + if (fl & STBSP__INTMAX) { + 1c7e: 020e7713 andi a4,t3,32 + h = (f[0] == 'X') ? hexu : hex; + 1c82: 00005817 auipc a6,0x5 + 1c86: ee680813 addi a6,a6,-282 # 6b68 + 1c8a: 00d79663 bne a5,a3,1c96 + 1c8e: 00005817 auipc a6,0x5 + 1c92: ec280813 addi a6,a6,-318 # 6b50 + l = (4 << 4) | (4 << 8); + 1c96: 44000793 li a5,1088 + 1c9a: d0be sw a5,96(sp) + if (fl & STBSP__LEADING_0X) { + 1c9c: 008e7793 andi a5,t3,8 + 1ca0: 7a079263 bnez a5,2444 + lead[0] = 0; + 1ca4: 06010423 sb zero,104(sp) + s = va_arg(va, char *); + 1ca8: 008b8793 addi a5,s7,8 + 1cac: e0be sd a5,64(sp) + if (fl & STBSP__INTMAX) + 1cae: 72070b63 beqz a4,23e4 + n64 = va_arg(va, stbsp__uint64); + 1cb2: 000bb683 ld a3,0(s7) + dp = 0; + 1cb6: d282 sw zero,100(sp) + tail[0] = 0; + 1cb8: 06010823 sb zero,112(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1cbc: 001e7513 andi a0,t3,1 + if (n64 == 0) { + 1cc0: 380694e3 bnez a3,2848 + lead[0] = 0; + 1cc4: 06010423 sb zero,104(sp) + if (pr == 0) { + 1cc8: 78089a63 bnez a7,245c + if (fw < (stbsp__int32)n) + 1ccc: fffb4313 not t1,s6 + 1cd0: 43f35313 srai t1,t1,0x3f + l = 0; + 1cd4: d082 sw zero,96(sp) + if (fw < (stbsp__int32)n) + 1cd6: 01637333 and t1,t1,s6 + goto scopy; + 1cda: 4701 li a4,0 + 1cdc: 4f81 li t6,0 + 1cde: 4a01 li s4,0 + cs = 0; + 1ce0: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 1ce2: 28010a93 addi s5,sp,640 + if ((fl & STBSP__LEFTJUST) == 0) { + 1ce6: 9c0506e3 beqz a0,16b2 + if (fw + pr) { + 1cea: 00e307bb addw a5,t1,a4 + 1cee: 9c079fe3 bnez a5,16cc + 1cf2: 06910793 addi a5,sp,105 + 1cf6: b661 j 187e + h = (f[0] == 'E') ? hexu : hex; + 1cf8: 04500713 li a4,69 + 1cfc: 00005317 auipc t1,0x5 + 1d00: e6c30313 addi t1,t1,-404 # 6b68 + 1d04: 1ce78ae3 beq a5,a4,26d8 + fv = va_arg(va, double); + 1d08: 008b8713 addi a4,s7,8 + if (pr == -1) + 1d0c: 57fd li a5,-1 + fv = va_arg(va, double); + 1d0e: e0ba sd a4,64(sp) + 1d10: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1d14: 1af88ce3 beq a7,a5,26cc + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1d18: 80000737 lui a4,0x80000 + 1d1c: 00e8e733 or a4,a7,a4 + 1d20: 2701 sext.w a4,a4 + 1d22: 10d4 addi a3,sp,100 + 1d24: 0110 addi a2,sp,128 + 1d26: 108c addi a1,sp,96 + 1d28: 18a8 addi a0,sp,120 + 1d2a: f41e sd t2,40(sp) + 1d2c: f01a sd t1,32(sp) + 1d2e: ec72 sd t3,24(sp) + 1d30: e846 sd a7,16(sp) + 1d32: d8efe0ef jal 2c0 + 1d36: 68c2 ld a7,16(sp) + 1d38: 6e62 ld t3,24(sp) + 1d3a: 7302 ld t1,32(sp) + 1d3c: 73a2 ld t2,40(sp) + if (dp == STBSP__SPECIAL) { + 1d3e: 5796 lw a5,100(sp) + s = (char *)sn; + 1d40: 7ae6 ld s5,120(sp) + if ((l - 1) > (stbsp__uint32)pr) + 1d42: 5686 lw a3,96(sp) + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1d44: 3c0511e3 bnez a0,2906 + tail[0] = 0; + 1d48: 06010823 sb zero,112(sp) + sign[0] = 0; + 1d4c: 06010423 sb zero,104(sp) + } else if (fl & STBSP__LEADINGSPACE) { + 1d50: 004e7713 andi a4,t3,4 + 1d54: 6a070ee3 beqz a4,2c10 + sign[0] = 1; + 1d58: 6709 lui a4,0x2 + 1d5a: 0705 addi a4,a4,1 # 2001 + 1d5c: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1d60: 671d lui a4,0x7 + 1d62: 1ee794e3 bne a5,a4,274a + if (pr < (stbsp__int32)l) + 1d66: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1d6a: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 1d6e: fff7c793 not a5,a5 + n = pr + lead[0] + tail[0] + tz; + 1d72: 07014f83 lbu t6,112(sp) + if (pr < (stbsp__int32)l) + 1d76: 97fd srai a5,a5,0x3f + 1d78: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1d7a: 00fa073b addw a4,s4,a5 + 1d7e: 01f7063b addw a2,a4,t6 + 1d82: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1d84: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 1d88: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 1d8a: 835a mv t1,s6 + 1d8c: 00cb5363 bge s6,a2,1d92 + 1d90: 8332 mv t1,a2 + fw -= n; + 1d92: 40e3033b subw t1,t1,a4 + cs = 0; + 1d96: 4281 li t0,0 + pr -= l; + 1d98: 40d7873b subw a4,a5,a3 + tz = 0; + 1d9c: 4881 li a7,0 + goto scopy; + 1d9e: b7a1 j 1ce6 + h = (f[0] == 'G') ? hexu : hex; + 1da0: 04700713 li a4,71 + 1da4: 00005317 auipc t1,0x5 + 1da8: dc430313 addi t1,t1,-572 # 6b68 + 1dac: 14e783e3 beq a5,a4,26f2 + fv = va_arg(va, double); + 1db0: 008b8713 addi a4,s7,8 + if (pr == -1) + 1db4: 57fd li a5,-1 + fv = va_arg(va, double); + 1db6: e0ba sd a4,64(sp) + 1db8: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1dbc: 12f884e3 beq a7,a5,26e4 + else if (pr == 0) + 1dc0: 6e0887e3 beqz a7,2cae + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1dc4: fff8871b addiw a4,a7,-1 + 1dc8: 800007b7 lui a5,0x80000 + 1dcc: 8f5d or a4,a4,a5 + 1dce: 2701 sext.w a4,a4 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 1dd0: 00088a9b sext.w s5,a7 + 1dd4: 8a46 mv s4,a7 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1dd6: 10d4 addi a3,sp,100 + 1dd8: 0110 addi a2,sp,128 + 1dda: 108c addi a1,sp,96 + 1ddc: 18a8 addi a0,sp,120 + 1dde: f01e sd t2,32(sp) + 1de0: ec1a sd t1,24(sp) + 1de2: e872 sd t3,16(sp) + 1de4: cdcfe0ef jal 2c0 + 1de8: 6e42 ld t3,16(sp) + 1dea: 6362 ld t1,24(sp) + 1dec: 7382 ld t2,32(sp) + 1dee: 4281 li t0,0 + 1df0: c509 beqz a0,1dfa + fl |= STBSP__NEGATIVE; + 1df2: 080e6e13 ori t3,t3,128 + 1df6: 08000293 li t0,128 + if (l > (stbsp__uint32)pr) + 1dfa: 5806 lw a6,96(sp) + 1dfc: 010af463 bgeu s5,a6,1e04 + l = pr; + 1e00: d0d6 sw s5,96(sp) + 1e02: 8856 mv a6,s5 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1e04: 4705 li a4,1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1e06: 5796 lw a5,100(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1e08: 01076463 bltu a4,a6,1e10 + 1e0c: 1800106f j 2f8c + 1e10: 7be6 ld s7,120(sp) + 1e12: fff8071b addiw a4,a6,-1 + 1e16: 1702 slli a4,a4,0x20 + 1e18: 9301 srli a4,a4,0x20 + 1e1a: 001a0e9b addiw t4,s4,1 + 1e1e: 75e2 ld a1,56(sp) + 1e20: 8ade mv s5,s7 + 1e22: 975e add a4,a4,s7 + 1e24: 410e8ebb subw t4,t4,a6 + 1e28: 88d2 mv a7,s4 + 1e2a: 86c2 mv a3,a6 + 1e2c: 4f01 li t5,0 + 1e2e: 03000f93 li t6,48 + 1e32: e842 sd a6,16(sp) + 1e34: a809 j 1e46 + --pr; + 1e36: 38fd addiw a7,a7,-1 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1e38: 211e80e3 beq t4,a7,2838 + 1e3c: 177d addi a4,a4,-1 # 6fff <_stdout+0x5f> + 1e3e: 4f05 li t5,1 + 1e40: 1e088ce3 beqz a7,2838 + --l; + 1e44: 85b6 mv a1,a3 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1e46: 00074803 lbu a6,0(a4) + 1e4a: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff8687> + 1e4e: 0006851b sext.w a0,a3 + 1e52: 2581 sext.w a1,a1 + 1e54: 0006069b sext.w a3,a2 + 1e58: fdf80fe3 beq a6,t6,1e36 + 1e5c: 6842 ld a6,16(sp) + 1e5e: fc2e sd a1,56(sp) + 1e60: 86c2 mv a3,a6 + 1e62: 000f0463 beqz t5,1e6a + 1e66: d0ae sw a1,96(sp) + 1e68: 86ae mv a3,a1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1e6a: 5775 li a4,-3 + 1e6c: 08e7cee3 blt a5,a4,2708 + 1e70: 08fa4be3 blt s4,a5,2706 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1e74: 0005071b sext.w a4,a0 + if (dp > 0) { + 1e78: 7ef057e3 blez a5,2e66 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1e7c: 4881 li a7,0 + 1e7e: 00e7d463 bge a5,a4,1e86 + 1e82: 40f508bb subw a7,a0,a5 + tail[0] = 0; + 1e86: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 1e8a: 20029463 bnez t0,2092 + } else if (fl & STBSP__LEADINGSPACE) { + 1e8e: 004e7713 andi a4,t3,4 + 1e92: 000715e3 bnez a4,269c + } else if (fl & STBSP__LEADINGPLUS) { + 1e96: 002e7713 andi a4,t3,2 + 1e9a: 660719e3 bnez a4,2d0c + sign[0] = 0; + 1e9e: 06010423 sb zero,104(sp) + 1ea2: aaed j 209c + h = (f[0] == 'A') ? hexu : hex; + 1ea4: 04100713 li a4,65 + 1ea8: 00005597 auipc a1,0x5 + 1eac: cc058593 addi a1,a1,-832 # 6b68 + 1eb0: 00e783e3 beq a5,a4,26b6 + fv = va_arg(va, double); + 1eb4: 008b8693 addi a3,s7,8 + if (pr == -1) + 1eb8: 577d li a4,-1 + fv = va_arg(va, double); + 1eba: e0b6 sd a3,64(sp) + 1ebc: 000bb783 ld a5,0(s7) + if (pr == -1) + 1ec0: 7ee88963 beq a7,a4,26b2 + d = value; + + STBSP__COPYFP(b, d); + + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1ec4: 4347d613 srai a2,a5,0x34 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1ec8: 00c79513 slli a0,a5,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1ecc: 7ff67613 andi a2,a2,2047 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1ed0: 8131 srli a0,a0,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1ed2: c016061b addiw a2,a2,-1023 + if (stbsp__real_to_parts((stbsp__int64 *)&n64, &dp, fv)) + 1ed6: 7a07c863 bltz a5,2686 + } else if (fl & STBSP__LEADINGSPACE) { + 1eda: 004e7793 andi a5,t3,4 + 1ede: 60078ee3 beqz a5,2cfa + 1ee2: 6789 lui a5,0x2 + 1ee4: 2785 addiw a5,a5,1 # 2001 + sign[0] = 1; + 1ee6: 06f11423 sh a5,104(sp) + 1eea: 468d li a3,3 + 1eec: 4a0d li s4,3 + 1eee: 4809 li a6,2 + n64 |= (((stbsp__uint64)1) << 52); + 1ef0: 4705 li a4,1 + 1ef2: 1752 slli a4,a4,0x34 + if (dp == -1023) + 1ef4: c0100793 li a5,-1023 + n64 |= (((stbsp__uint64)1) << 52); + 1ef8: 8f49 or a4,a4,a0 + if (dp == -1023) + 1efa: 5cf600e3 beq a2,a5,2cba + if (pr < 15) + 1efe: 4539 li a0,14 + n64 <<= (64 - 56); + 1f00: 00871793 slli a5,a4,0x8 + if (pr < 15) + 1f04: 251546e3 blt a0,a7,2950 + n64 += ((((stbsp__uint64)8) << 56) >> (pr * 4)); + 1f08: 4705 li a4,1 + 1f0a: 0028951b slliw a0,a7,0x2 + 1f0e: 176e slli a4,a4,0x3b + 1f10: 00a75733 srl a4,a4,a0 + 1f14: 973e add a4,a4,a5 + *s++ = h[(n64 >> 60) & 15]; + 1f16: 03c75793 srli a5,a4,0x3c + 1f1a: 97ae add a5,a5,a1 + 1f1c: 0007c503 lbu a0,0(a5) + lead[1 + lead[0]] = '0'; + 1f20: 22080793 addi a5,a6,544 + 1f24: 06010813 addi a6,sp,96 + 1f28: 97c2 add a5,a5,a6 + 1f2a: 03000813 li a6,48 + 1f2e: df078423 sb a6,-536(a5) + lead[2 + lead[0]] = 'x'; + 1f32: 22068793 addi a5,a3,544 + 1f36: 1094 addi a3,sp,96 + 1f38: 96be add a3,a3,a5 + 1f3a: 07800793 li a5,120 + 1f3e: def68423 sb a5,-536(a3) + lead[0] += 2; + 1f42: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 1f46: 0ca10023 sb a0,192(sp) + if (pr) + 1f4a: 740893e3 bnez a7,2e90 + sn = s; + 1f4e: 0c110793 addi a5,sp,193 + 1f52: fcbe sd a5,120(sp) + 1f54: 4701 li a4,0 + 1f56: 4501 li a0,0 + 1f58: 4305 li t1,1 + 1f5a: 4685 li a3,1 + tail[1] = h[17]; + 1f5c: 0115c583 lbu a1,17(a1) + tail[2] = '+'; + 1f60: 02b00793 li a5,43 + tail[1] = h[17]; + 1f64: 06b108a3 sb a1,113(sp) + if (dp < 0) { + 1f68: 00065663 bgez a2,1f74 + dp = -dp; + 1f6c: 40c0063b negw a2,a2 + tail[2] = '-'; + 1f70: 02d00793 li a5,45 + tail[n] = '0' + dp % 10; + 1f74: 4829 li a6,10 + 1f76: 030665bb remw a1,a2,a6 + 1f7a: 06f10923 sb a5,114(sp) + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1f7e: 3e700e93 li t4,999 + tail[n] = '0' + dp % 10; + 1f82: 0305859b addiw a1,a1,48 + 1f86: 0ff5f593 zext.b a1,a1 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1f8a: 18cec3e3 blt t4,a2,2910 + 1f8e: 06300e93 li t4,99 + 1f92: 54cec1e3 blt t4,a2,2cd4 + 1f96: 4ea5 li t4,9 + 1f98: 72ced6e3 bge t4,a2,2ec4 + dp /= 10; + 1f9c: 030647bb divw a5,a2,a6 + tail[0] = (char)n; + 1fa0: 4611 li a2,4 + 1fa2: 06c10823 sb a2,112(sp) + tail[n] = '0' + dp % 10; + 1fa6: 06b10a23 sb a1,116(sp) + 1faa: 4811 li a6,4 + 1fac: 4f91 li t6,4 + 1fae: 0307879b addiw a5,a5,48 + 1fb2: 06f109a3 sb a5,115(sp) + n = pr + lead[0] + tail[0] + tz; + 1fb6: 006a07bb addw a5,s4,t1 + 1fba: 010787bb addw a5,a5,a6 + 1fbe: 0117863b addw a2,a5,a7 + dp = (int)(s - sn); + 1fc2: d2aa sw a0,100(sp) + l = (int)(s - (num + 64)); + 1fc4: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 1fc6: 87b2 mv a5,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1fc8: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1fcc: 835a mv t1,s6 + 1fce: 00cb5363 bge s6,a2,1fd4 + 1fd2: 8332 mv t1,a2 + cs = 1 + (3 << 24); + 1fd4: 030002b7 lui t0,0x3000 + fw -= n; + 1fd8: 40f3033b subw t1,t1,a5 + cs = 1 + (3 << 24); + 1fdc: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8689> + s = num + 64; + 1fde: 0c010a93 addi s5,sp,192 + goto scopy; + 1fe2: b311 j 1ce6 + h = (f[0] == 'B') ? hexu : hex; + 1fe4: 04200713 li a4,66 + 1fe8: 00005817 auipc a6,0x5 + 1fec: b8080813 addi a6,a6,-1152 # 6b68 + 1ff0: 6ce78963 beq a5,a4,26c2 + if (fl & STBSP__LEADING_0X) { + 1ff4: 008e7793 andi a5,t3,8 + 1ff8: 66079e63 bnez a5,2674 + lead[0] = 0; + 1ffc: 06010423 sb zero,104(sp) + l = (8 << 4) | (1 << 8); + 2000: 18000793 li a5,384 + 2004: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 2006: 020e7713 andi a4,t3,32 + goto radixnum; + 200a: b979 j 1ca8 + *s = (char)va_arg(va, int); + 200c: 000ba783 lw a5,0(s7) + l = 1; + 2010: 4705 li a4,1 + 2012: d0ba sw a4,96(sp) + *s = (char)va_arg(va, int); + 2014: 26f10fa3 sb a5,639(sp) + 2018: 008b8793 addi a5,s7,8 + lead[0] = 0; + 201c: 06010423 sb zero,104(sp) + tail[0] = 0; + 2020: 06010823 sb zero,112(sp) + dp = 0; + 2024: d282 sw zero,100(sp) + *s = (char)va_arg(va, int); + 2026: e0be sd a5,64(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 2028: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 202c: 835a mv t1,s6 + 202e: 69605063 blez s6,26ae + fw -= n; + 2032: 337d addiw t1,t1,-1 + goto scopy; + 2034: 4701 li a4,0 + 2036: 4f81 li t6,0 + 2038: 4685 li a3,1 + 203a: 4a01 li s4,0 + cs = 0; + 203c: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 203e: 27f10a93 addi s5,sp,639 + tz = 0; + 2042: 4881 li a7,0 + goto scopy; + 2044: b14d j 1ce6 + fv = va_arg(va, double); + 2046: 008b8713 addi a4,s7,8 + if (fl & STBSP__METRIC_SUFFIX) { + 204a: 100e7793 andi a5,t3,256 + fv = va_arg(va, double); + 204e: e0ba sd a4,64(sp) + 2050: 000bb507 fld fa0,0(s7) + if (fl & STBSP__METRIC_SUFFIX) { + 2054: be0795e3 bnez a5,1c3e + if (pr == -1) + 2058: 57fd li a5,-1 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 205a: 0008871b sext.w a4,a7 + if (pr == -1) + 205e: 00f89463 bne a7,a5,2066 + 2062: 4719 li a4,6 + pr = 6; // default is 6 + 2064: 4899 li a7,6 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 2066: 10d4 addi a3,sp,100 + 2068: 0110 addi a2,sp,128 + 206a: 108c addi a1,sp,96 + 206c: 18a8 addi a0,sp,120 + 206e: f01e sd t2,32(sp) + 2070: ec72 sd t3,24(sp) + 2072: e846 sd a7,16(sp) + 2074: a4cfe0ef jal 2c0 + 2078: 6e62 ld t3,24(sp) + 207a: 68c2 ld a7,16(sp) + 207c: 7382 ld t2,32(sp) + if (dp == STBSP__SPECIAL) { + 207e: 5796 lw a5,100(sp) + if ((stbsp__int32)(l + n) > pr) + 2080: 5686 lw a3,96(sp) + if (fl & STBSP__NEGATIVE) { + 2082: 080e7293 andi t0,t3,128 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 2086: e00500e3 beqz a0,1e86 + fl |= STBSP__NEGATIVE; + 208a: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 208e: 06010823 sb zero,112(sp) + sign[0] = 1; + 2092: 670d lui a4,0x3 + 2094: d0170713 addi a4,a4,-767 # 2d01 + 2098: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 209c: 671d lui a4,0x7 + 209e: 7ce78963 beq a5,a4,2870 + if (dp <= 0) { + 20a2: 46f05fe3 blez a5,2d20 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((600 - (stbsp__uint32)dp) % 3) : 0; + 20a6: 040e7313 andi t1,t3,64 + 20aa: 00078e9b sext.w t4,a5 + 20ae: 4581 li a1,0 + 20b0: 00030963 beqz t1,20c2 + 20b4: 25800593 li a1,600 + 20b8: 41d585bb subw a1,a1,t4 + 20bc: 470d li a4,3 + 20be: 02e5f5bb remuw a1,a1,a4 + *s++ = stbsp__comma; + 20c2: 00005a17 auipc s4,0x5 + 20c6: 9bea0a13 addi s4,s4,-1602 # 6a80 + s = (char *)sn; + 20ca: 7f66 ld t5,120(sp) + *s++ = stbsp__comma; + 20cc: 0cda4283 lbu t0,205(s4) + s = num + 64; + 20d0: 0c010a93 addi s5,sp,192 + if ((stbsp__uint32)dp >= l) { + 20d4: 44defb63 bgeu t4,a3,252a + n = 0; + 20d8: 4501 li a0,0 + s = num + 64; + 20da: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 20dc: 4b91 li s7,4 + 20de: a015 j 2102 + 20e0: 8642 mv a2,a6 + 20e2: 883a mv a6,a4 + 20e4: 8732 mv a4,a2 + *s++ = sn[n]; + 20e6: 02051613 slli a2,a0,0x20 + 20ea: 9201 srli a2,a2,0x20 + 20ec: 967a add a2,a2,t5 + 20ee: 00064f83 lbu t6,0(a2) + ++n; + 20f2: 0015061b addiw a2,a0,1 + 20f6: 0006051b sext.w a0,a2 + *s++ = sn[n]; + 20fa: fff70fa3 sb t6,-1(a4) # 6fff <_stdout+0x5f> + if (n >= (stbsp__uint32)dp) + 20fe: 7bd57563 bgeu a0,t4,28a8 + *s++ = stbsp__comma; + 2102: 00170813 addi a6,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2106: fc030de3 beqz t1,20e0 + 210a: 2585 addiw a1,a1,1 + 210c: fd759ae3 bne a1,s7,20e0 + *s++ = stbsp__comma; + 2110: fe580fa3 sb t0,-1(a6) + 2114: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2116: 4585 li a1,1 + 2118: b7f9 j 20e6 + *d = tlen + (int)(bf - buf); + 211a: 000bb703 ld a4,0(s7) + 211e: 412407b3 sub a5,s0,s2 + 2122: 01a787bb addw a5,a5,s10 + int *d = va_arg(va, int *); + 2126: 008b8693 addi a3,s7,8 + 212a: e0b6 sd a3,64(sp) + *d = tlen + (int)(bf - buf); + 212c: c31c sw a5,0(a4) + } break; + 212e: bae5 j 1b26 + if (fl & STBSP__LEADING_0X) { + 2130: 008e7793 andi a5,t3,8 + 2134: 50079b63 bnez a5,264a + lead[0] = 0; + 2138: 06010423 sb zero,104(sp) + l = (3 << 4) | (3 << 8); + 213c: 33000793 li a5,816 + 2140: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 2142: 020e7713 andi a4,t3,32 + h = hexu; + 2146: 00005817 auipc a6,0x5 + 214a: a0a80813 addi a6,a6,-1526 # 6b50 + goto radixnum; + 214e: bea9 j 1ca8 + fl &= ~STBSP__LEADINGZERO; // 'p' only prints the pointer with zeros + 2150: fefe7e13 andi t3,t3,-17 + 2154: 020e6e13 ori t3,t3,32 + 2158: 02000713 li a4,32 + pr = sizeof(void *) * 2; + 215c: 48c1 li a7,16 + h = (f[0] == 'X') ? hexu : hex; + 215e: 00005817 auipc a6,0x5 + 2162: a0a80813 addi a6,a6,-1526 # 6b68 + 2166: be05 j 1c96 + s = va_arg(va, char *); + 2168: 000bba83 ld s5,0(s7) + 216c: 008b8793 addi a5,s7,8 + 2170: e0be sd a5,64(sp) + if (s == 0) + 2172: 360a8ee3 beqz s5,2cee + if (((stbsp__uintptr)sn & 3) == 0) + 2176: 003af793 andi a5,s5,3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 217a: 5208c663 bltz a7,26a6 + 217e: 0008869b sext.w a3,a7 + if (((stbsp__uintptr)sn & 3) == 0) + 2182: 2a0782e3 beqz a5,2c26 + if (!limit || *sn == 0) + 2186: 5a068b63 beqz a3,273c + if (((stbsp__uintptr)sn & 3) == 0) + 218a: 87d6 mv a5,s5 + 218c: a801 j 219c + ++sn; + 218e: 0785 addi a5,a5,1 + if (((stbsp__uintptr)sn & 3) == 0) + 2190: 0037f713 andi a4,a5,3 + --limit; + 2194: 36fd addiw a3,a3,-1 + if (((stbsp__uintptr)sn & 3) == 0) + 2196: 280709e3 beqz a4,2c28 + if (!limit || *sn == 0) + 219a: c681 beqz a3,21a2 + 219c: 0007c703 lbu a4,0(a5) + 21a0: f77d bnez a4,218e + return (stbsp__uint32)(sn - s); + 21a2: 415787b3 sub a5,a5,s5 + 21a6: 0007869b sext.w a3,a5 + if (pr < (stbsp__int32)l) + 21aa: fff6c713 not a4,a3 + 21ae: 977d srai a4,a4,0x3f + 21b0: 8f7d and a4,a4,a5 + 21b2: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 21b6: 863e mv a2,a5 + pr -= l; + 21b8: 9f15 subw a4,a4,a3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 21ba: d0b6 sw a3,96(sp) + lead[0] = 0; + 21bc: 06010423 sb zero,104(sp) + tail[0] = 0; + 21c0: 06010823 sb zero,112(sp) + dp = 0; + 21c4: d282 sw zero,100(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 21c6: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 21ca: 835a mv t1,s6 + 21cc: 00fb5363 bge s6,a5,21d2 + 21d0: 833e mv t1,a5 + fw -= n; + 21d2: 40c3033b subw t1,t1,a2 + goto scopy; + 21d6: 4f81 li t6,0 + 21d8: 4a01 li s4,0 + cs = 0; + 21da: 4281 li t0,0 + tz = 0; + 21dc: 4881 li a7,0 + goto scopy; + 21de: b621 j 1ce6 + *bf++ = stbsp__comma; + 21e0: 87b2 mv a5,a2 + cs = 0; + 21e2: 4a01 li s4,0 + 21e4: e44ff06f j 1828 + lead[0] -= (char)i; + 21e8: 06010423 sb zero,104(sp) + while (i) { + 21ec: d38ff06f j 1724 + lead[0] -= (char)i; + 21f0: 06010423 sb zero,104(sp) + while (i) { + 21f4: ed8ff06f j 18cc + while (i >= 4) { + 21f8: 06fadc63 bge s5,a5,2270 + tz -= i; + 21fc: 8722 mv a4,s0 + 21fe: 0007851b sext.w a0,a5 + while (i >= 4) { + 2202: 008785bb addw a1,a5,s0 + *(stbsp__uint32 *)bf = 0x30303030; + 2206: 01672023 sw s6,0(a4) + bf += 4; + 220a: 0711 addi a4,a4,4 + while (i >= 4) { + 220c: 40e5863b subw a2,a1,a4 + 2210: fecacbe3 blt s5,a2,2206 + 2214: ffc5061b addiw a2,a0,-4 + 2218: 0026561b srliw a2,a2,0x2 + 221c: 0016071b addiw a4,a2,1 + 2220: 37f1 addiw a5,a5,-4 + 2222: 0026161b slliw a2,a2,0x2 + 2226: 070a slli a4,a4,0x2 + 2228: 9722 add a4,a4,s0 + 222a: 9f91 subw a5,a5,a2 + while (i) { + 222c: 843a mv s0,a4 + 222e: 80078de3 beqz a5,1a48 + 2232: 1782 slli a5,a5,0x20 + 2234: 9381 srli a5,a5,0x20 + 2236: 00f70433 add s0,a4,a5 + *bf++ = '0'; + 223a: 0705 addi a4,a4,1 + 223c: ff470fa3 sb s4,-1(a4) + while (i) { + 2240: fe871de3 bne a4,s0,223a + 2244: 805ff06f j 1a48 + stbsp__cb_buf_clamp(i, pr); + 2248: 85ce mv a1,s3 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 224a: 4981 li s3,0 + 224c: dc049263 bnez s1,1810 + 2250: b8d5 j 1b44 + STBSP__UNALIGNED(while (i >= 4) { + 2252: 4401 li s0,0 + 2254: 85be mv a1,a5 + 2256: f0ea4b63 blt s4,a4,196c + 225a: f42ff06f j 199c + if ((((stbsp__uintptr)bf) & 3) == 0) + 225e: 00347713 andi a4,s0,3 + stbsp__cb_buf_clamp(i, tz); + 2262: 87c6 mv a5,a7 + tz -= i; + 2264: 4881 li a7,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2266: fc071c63 bnez a4,1a3e + while (i >= 4) { + 226a: 470d li a4,3 + 226c: f8f748e3 blt a4,a5,21fc + 2270: 8722 mv a4,s0 + 2272: b7c1 j 2232 + tail[0] -= (char)i; + 2274: 06010823 sb zero,112(sp) + while (i) { + 2278: b0b9 j 1ac6 + while (i >= 4) { + 227a: 478d li a5,3 + 227c: 8622 mv a2,s0 + 227e: d8b7d963 bge a5,a1,1810 + 2282: ffc5839b addiw t2,a1,-4 + 2286: 0023d79b srliw a5,t2,0x2 + 228a: 0017859b addiw a1,a5,1 + 228e: 058a slli a1,a1,0x2 + 2290: 942e add s0,s0,a1 + *(stbsp__uint32 *)bf = 0x30303030; + 2292: 01762023 sw s7,0(a2) + bf += 4; + 2296: 0611 addi a2,a2,4 + while (i >= 4) { + 2298: fe861de3 bne a2,s0,2292 + 229c: 0027979b slliw a5,a5,0x2 + 22a0: 40f385bb subw a1,t2,a5 + 22a4: d68ff06f j 180c + while (i) { + 22a8: 85be mv a1,a5 + 22aa: ee071963 bnez a4,199c + 22ae: f16ff06f j 19c4 + 22b2: 2c013a03 ld s4,704(sp) + 22b6: 2b813a83 ld s5,696(sp) + 22ba: 2b013b03 ld s6,688(sp) + 22be: 8ca2 mv s9,s0 + 22c0: a04ff06f j 14c4 + stbsp__chk_cb_buf(1); + 22c4: 2601 sext.w a2,a2 + 22c6: 1fe00793 li a5,510 + 22ca: f8c7c563 blt a5,a2,1a54 + 22ce: f3eff06f j 1a0c + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 22d2: fbfe7e13 andi t3,t3,-65 + if (fw + pr) { + 22d6: 006707bb addw a5,a4,t1 + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 22da: 2e01 sext.w t3,t3 + if (fw + pr) { + 22dc: a0078be3 beqz a5,1cf2 + while (fw > 0) { + 22e0: be605663 blez t1,16cc + *(stbsp__uint32 *)bf = 0x20202020; + 22e4: 20202837 lui a6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 22e8: 854a mv a0,s2 + 22ea: 894e mv s2,s3 + 22ec: 69a2 ld s3,8(sp) + *(stbsp__uint32 *)bf = 0x20202020; + 22ee: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201fa6a8> + stbsp__cb_buf_clamp(i, fw); + 22f2: ec52 sd s4,24(sp) + 22f4: f426 sd s1,40(sp) + 22f6: 87a2 mv a5,s0 + 22f8: 84ea mv s1,s10 + stbsp__chk_cb_buf(1); + 22fa: 1fe00f13 li t5,510 + stbsp__cb_buf_clamp(i, fw); + 22fe: 8d6e mv s10,s11 + *bf++ = ' '; + 2300: 02000b13 li s6,32 + stbsp__cb_buf_clamp(i, fw); + 2304: 8de6 mv s11,s9 + while (i >= 4) { + 2306: 4b8d li s7,3 + stbsp__cb_buf_clamp(i, fw); + 2308: 20000e93 li t4,512 + 230c: e846 sd a7,16(sp) + 230e: f07e sd t6,32(sp) + 2310: f836 sd a3,48(sp) + 2312: e4f2 sd t3,72(sp) + 2314: e8ba sd a4,80(sp) + 2316: ec96 sd t0,88(sp) + 2318: 841a mv s0,t1 + 231a: 8a42 mv s4,a6 + 231c: 8c9e mv s9,t2 + 231e: 0c090063 beqz s2,23de + 2322: 40a78633 sub a2,a5,a0 + 2326: 40ce873b subw a4,t4,a2 + 232a: 86ba mv a3,a4 + 232c: 00e45363 bge s0,a4,2332 + 2330: 86a2 mv a3,s0 + 2332: 0006871b sext.w a4,a3 + fw -= i; + 2336: 9c15 subw s0,s0,a3 + while (i) { + 2338: e719 bnez a4,2346 + 233a: a095 j 239e + *bf++ = ' '; + 233c: 01678023 sb s6,0(a5) + --i; + 2340: 377d addiw a4,a4,-1 + *bf++ = ' '; + 2342: 0785 addi a5,a5,1 + while (i) { + 2344: cb29 beqz a4,2396 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2346: 0037f693 andi a3,a5,3 + 234a: faed bnez a3,233c + while (i >= 4) { + 234c: 86be mv a3,a5 + 234e: 00070f9b sext.w t6,a4 + 2352: 00f705bb addw a1,a4,a5 + 2356: 02ebd763 bge s7,a4,2384 + *(stbsp__uint32 *)bf = 0x20202020; + 235a: 0146a023 sw s4,0(a3) + bf += 4; + 235e: 0691 addi a3,a3,4 + while (i >= 4) { + 2360: 40d5863b subw a2,a1,a3 + 2364: fecbcbe3 blt s7,a2,235a + 2368: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff8684> + 236c: 0026561b srliw a2,a2,0x2 + 2370: 0016069b addiw a3,a2,1 + 2374: 3771 addiw a4,a4,-4 + 2376: 0026161b slliw a2,a2,0x2 + 237a: 068a slli a3,a3,0x2 + 237c: 96be add a3,a3,a5 + 237e: 9f11 subw a4,a4,a2 + while (i) { + 2380: 87b6 mv a5,a3 + 2382: cb11 beqz a4,2396 + 2384: 1702 slli a4,a4,0x20 + 2386: 9301 srli a4,a4,0x20 + 2388: 00e687b3 add a5,a3,a4 + *bf++ = ' '; + 238c: 0685 addi a3,a3,1 + 238e: ff668fa3 sb s6,-1(a3) + while (i) { + 2392: fef69de3 bne a3,a5,238c + stbsp__chk_cb_buf(1); + 2396: 40a78633 sub a2,a5,a0 + 239a: 00090e63 beqz s2,23b6 + 239e: 2601 sext.w a2,a2 + 23a0: 00cf5b63 bge t5,a2,23b6 + 23a4: 85ce mv a1,s3 + 23a6: 9cb1 addw s1,s1,a2 + 23a8: 9902 jalr s2 + 23aa: c541 beqz a0,2432 + 23ac: 87aa mv a5,a0 + 23ae: 20000e93 li t4,512 + 23b2: 1fe00f13 li t5,510 + while (fw > 0) { + 23b6: f68044e3 bgtz s0,231e + 23ba: 8322 mv t1,s0 + 23bc: 89ca mv s3,s2 + 23be: 83e6 mv t2,s9 + 23c0: 68c2 ld a7,16(sp) + 23c2: 8cee mv s9,s11 + 23c4: 6a62 ld s4,24(sp) + 23c6: 8dea mv s11,s10 + 23c8: 7f82 ld t6,32(sp) + 23ca: 8d26 mv s10,s1 + 23cc: 76c2 ld a3,48(sp) + 23ce: 6e26 ld t3,72(sp) + 23d0: 6746 ld a4,80(sp) + 23d2: 62e6 ld t0,88(sp) + 23d4: 74a2 ld s1,40(sp) + 23d6: 892a mv s2,a0 + 23d8: 843e mv s0,a5 + 23da: af2ff06f j 16cc + stbsp__cb_buf_clamp(i, fw); + 23de: 8722 mv a4,s0 + 23e0: 4401 li s0,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 23e2: b795 j 2346 + n64 = va_arg(va, stbsp__uint32); + 23e4: 000be683 lwu a3,0(s7) + 23e8: b0f9 j 1cb6 + 23ea: 2c013a03 ld s4,704(sp) + 23ee: 2b813a83 ld s5,696(sp) + 23f2: 2b013b03 ld s6,688(sp) + 23f6: 8cca mv s9,s2 + 23f8: 8ccff06f j 14c4 + 23fc: 8cd6 mv s9,s5 + 23fe: 2c013a03 ld s4,704(sp) + 2402: 2b813a83 ld s5,696(sp) + 2406: 2b013b03 ld s6,688(sp) + 240a: 8baff06f j 14c4 + 240e: 2c013a03 ld s4,704(sp) + 2412: 2b813a83 ld s5,696(sp) + 2416: 2b013b03 ld s6,688(sp) + 241a: 8cea mv s9,s10 + 241c: 8a8ff06f j 14c4 + while (i) { + 2420: 85a2 mv a1,s0 + 2422: c12ff06f j 1834 + while (i >= 4) { + 2426: 478d li a5,3 + 2428: 8622 mv a2,s0 + 242a: e4b7cce3 blt a5,a1,2282 + 242e: be2ff06f j 1810 + 2432: 2c013a03 ld s4,704(sp) + 2436: 2b813a83 ld s5,696(sp) + 243a: 2b013b03 ld s6,688(sp) + 243e: 8ca6 mv s9,s1 + 2440: 884ff06f j 14c4 + lead[2] = h[16]; + 2444: 01084683 lbu a3,16(a6) + lead[0] = 2; + 2448: 678d lui a5,0x3 + 244a: 0789 addi a5,a5,2 # 3002 + 244c: 06f11423 sh a5,104(sp) + lead[2] = h[16]; + 2450: 06d10523 sb a3,106(sp) + 2454: b891 j 1ca8 + 2456: 8cea mv s9,s10 + 2458: 86cff06f j 14c4 + 245c: 4f81 li t6,0 + 245e: 4a01 li s4,0 + 2460: 5586 lw a1,96(sp) + *--s = stbsp__comma; + 2462: 00004f17 auipc t5,0x4 + 2466: 6ebf4f03 lbu t5,1771(t5) # 6b4d + 246a: 0510 addi a2,sp,640 + 246c: 0085d71b srliw a4,a1,0x8 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 2470: 4305 li t1,1 + if (fl & STBSP__TRIPLET_COMMA) { + 2472: 040e7e93 andi t4,t3,64 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 2476: 0007029b sext.w t0,a4 + 247a: 005317bb sllw a5,t1,t0 + 247e: 37fd addiw a5,a5,-1 + 2480: 8ff5 and a5,a5,a3 + 2482: 97c2 add a5,a5,a6 + 2484: 0007c783 lbu a5,0(a5) + n64 >>= (l >> 8); + 2488: 0056d6b3 srl a3,a3,t0 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 248c: fff60a93 addi s5,a2,-1 + 2490: fef60fa3 sb a5,-1(a2) + if (!((n64) || ((stbsp__int32)((num + STBSP__NUMSZ) - s) < pr))) + 2494: e691 bnez a3,24a0 + 2496: 051c addi a5,sp,640 + 2498: 415787bb subw a5,a5,s5 + 249c: 0317dd63 bge a5,a7,24d6 + if (fl & STBSP__TRIPLET_COMMA) { + 24a0: 020e8963 beqz t4,24d2 + ++l; + 24a4: 0015879b addiw a5,a1,1 + if ((l & 15) == ((l >> 4) & 15)) { + 24a8: 0047d29b srliw t0,a5,0x4 + 24ac: 00f2c2b3 xor t0,t0,a5 + 24b0: 00f2f293 andi t0,t0,15 + ++l; + 24b4: 0007859b sext.w a1,a5 + if ((l & 15) == ((l >> 4) & 15)) { + 24b8: 0087d71b srliw a4,a5,0x8 + 24bc: 00029b63 bnez t0,24d2 + l &= ~15; + 24c0: 9bc1 andi a5,a5,-16 + 24c2: 0007859b sext.w a1,a5 + *--s = stbsp__comma; + 24c6: ffe60a93 addi s5,a2,-2 + 24ca: ffe60f23 sb t5,-2(a2) + 24ce: 0087d71b srliw a4,a5,0x8 + 24d2: 8656 mv a2,s5 + 24d4: b74d j 2476 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 24d6: 0045d29b srliw t0,a1,0x4 + 24da: 0f0006b7 lui a3,0xf000 + if (pr < (stbsp__int32)l) + 24de: 0007871b sext.w a4,a5 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 24e2: 0182929b slliw t0,t0,0x18 + 24e6: 00d2f2b3 and t0,t0,a3 + n = pr + lead[0] + tail[0] + tz; + 24ea: 00ef863b addw a2,t6,a4 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 24ee: d0be sw a5,96(sp) + n = pr + lead[0] + tail[0] + tz; + 24f0: 8fb2 mv t6,a2 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 24f2: 86be mv a3,a5 + 24f4: 00f282bb addw t0,t0,a5 + if (fw < (stbsp__int32)n) + 24f8: 835a mv t1,s6 + 24fa: 00cb5363 bge s6,a2,2500 + 24fe: 8332 mv t1,a2 + fw -= n; + 2500: 41f3033b subw t1,t1,t6 + pr -= l; + 2504: 9f1d subw a4,a4,a5 + goto scopy; + 2506: 4f81 li t6,0 + tz = 0; + 2508: 4881 li a7,0 + goto scopy; + 250a: fdcff06f j 1ce6 + 250e: 8cda mv s9,s6 + 2510: 2c013a03 ld s4,704(sp) + 2514: 2b813a83 ld s5,696(sp) + 2518: 2b013b03 ld s6,688(sp) + 251c: fa9fe06f j 14c4 + fl |= ((sizeof(void *) == 8) ? STBSP__INTMAX : 0); + 2520: 020e6e13 ori t3,t3,32 + ++f; + 2524: 0485 addi s1,s1,1 + 2526: 864ff06f j 158a + n = 0; + 252a: 4601 li a2,0 + s = num + 64; + 252c: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 252e: 4511 li a0,4 + *s++ = stbsp__comma; + 2530: 00170793 addi a5,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2534: 00030563 beqz t1,253e + 2538: 2585 addiw a1,a1,1 + 253a: 10a58363 beq a1,a0,2640 + 253e: 873e mv a4,a5 + *s++ = sn[n]; + 2540: 02061793 slli a5,a2,0x20 + 2544: 9381 srli a5,a5,0x20 + 2546: 97fa add a5,a5,t5 + 2548: 0007c803 lbu a6,0(a5) + ++n; + 254c: 2605 addiw a2,a2,1 + *s++ = sn[n]; + 254e: ff070fa3 sb a6,-1(a4) + if (n >= l) + 2552: fcd66fe3 bltu a2,a3,2530 + if (n < (stbsp__uint32)dp) { + 2556: 0bd663e3 bltu a2,t4,2dfc + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 255a: 415707b3 sub a5,a4,s5 + 255e: 030002b7 lui t0,0x3000 + 2562: 00f282bb addw t0,t0,a5 + if (pr) { + 2566: 00088a63 beqz a7,257a + *s++ = stbsp__period; + 256a: 0cca4683 lbu a3,204(s4) + 256e: 00170793 addi a5,a4,1 + l = (stbsp__uint32)(s - (num + 64)); + 2572: 415787b3 sub a5,a5,s5 + *s++ = stbsp__period; + 2576: 00d70023 sb a3,0(a4) + if (fl & STBSP__METRIC_SUFFIX) { + 257a: 100e7713 andi a4,t3,256 + 257e: 86f2 mv a3,t3 + 2580: 2c070163 beqz a4,2842 + if (fl & STBSP__METRIC_NOSPACE) + 2584: 40ae5f9b sraiw t6,t3,0xa + 2588: 001fcf93 xori t6,t6,1 + 258c: 001fff93 andi t6,t6,1 + tail[1] = ' '; + 2590: 02000713 li a4,32 + 2594: 06e108a3 sb a4,113(sp) + tail[0] = idx; + 2598: 07f10823 sb t6,112(sp) + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 259c: 018e561b srliw a2,t3,0x18 + 25a0: 018e571b srliw a4,t3,0x18 + n = pr + lead[0] + tail[0] + tz; + 25a4: 000f859b sext.w a1,t6 + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 25a8: c225 beqz a2,2608 + if (fl & STBSP__METRIC_1024) + 25aa: 001f859b addiw a1,t6,1 + 25ae: 0ff5f613 zext.b a2,a1 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 25b2: 1702 slli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 25b4: 03469513 slli a0,a3,0x34 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 25b8: 85b2 mv a1,a2 + 25ba: 9301 srli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 25bc: 06055ee3 bgez a0,2e38 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 25c0: 00003517 auipc a0,0x3 + 25c4: ba050513 addi a0,a0,-1120 # 5160 <_GLOBAL__sub_I__ZSt3cin+0x9a> + 25c8: 972a add a4,a4,a0 + 25ca: 00074503 lbu a0,0(a4) + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 25ce: 6709 lui a4,0x2 + 25d0: 80070713 addi a4,a4,-2048 # 1800 + 25d4: 8f75 and a4,a4,a3 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 25d6: 06010813 addi a6,sp,96 + 25da: 22060693 addi a3,a2,544 + 25de: 96c2 add a3,a3,a6 + 25e0: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff8478> + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 25e4: 8007071b addiw a4,a4,-2048 + 25e8: 060715e3 bnez a4,2e52 + tail[idx + 1] = 'i'; + 25ec: 2f89 addiw t6,t6,2 + 25ee: 0ffff593 zext.b a1,t6 + 25f2: 1094 addi a3,sp,96 + 25f4: 22058713 addi a4,a1,544 + 25f8: 9736 add a4,a4,a3 + 25fa: 06900693 li a3,105 + 25fe: 8fae mv t6,a1 + 2600: ded70823 sb a3,-528(a4) + tail[0] = idx; + 2604: 07f10823 sb t6,112(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2608: 0007869b sext.w a3,a5 + n = pr + lead[0] + tail[0] + tz; + 260c: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 2610: fff6c713 not a4,a3 + 2614: 977d srai a4,a4,0x3f + 2616: 8ff9 and a5,a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2618: 00fa073b addw a4,s4,a5 + 261c: 9f2d addw a4,a4,a1 + 261e: 0117063b addw a2,a4,a7 + l = (stbsp__uint32)(s - (num + 64)); + 2622: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 2624: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 2626: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 2628: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 262c: 835a mv t1,s6 + 262e: 00cb5363 bge s6,a2,2634 + 2632: 8332 mv t1,a2 + fw -= n; + 2634: 40e3033b subw t1,t1,a4 + pr -= l; + 2638: 40d7873b subw a4,a5,a3 + goto scopy; + 263c: eaaff06f j 1ce6 + *s++ = stbsp__comma; + 2640: fe578fa3 sb t0,-1(a5) + 2644: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2646: 4585 li a1,1 + 2648: bde5 j 2540 + lead[0] = 1; + 264a: 678d lui a5,0x3 + 264c: 0785 addi a5,a5,1 # 3001 + 264e: 06f11423 sh a5,104(sp) + 2652: b4ed j 213c + if ((f[0] != 'u') && (i64 < 0)) { + 2654: 07500693 li a3,117 + stbsp__int64 i64 = va_arg(va, stbsp__int64); + 2658: 000bbf03 ld t5,0(s7) + if ((f[0] != 'u') && (i64 < 0)) { + 265c: dcd78263 beq a5,a3,1c20 + 2660: dc0f5063 bgez t5,1c20 + fl |= STBSP__NEGATIVE; + 2664: 08076713 ori a4,a4,128 + n64 = (stbsp__uint64)-i64; + 2668: 41e00f33 neg t5,t5 + fl |= STBSP__NEGATIVE; + 266c: 00070e1b sext.w t3,a4 + 2670: db0ff06f j 1c20 + lead[2] = h[0xb]; + 2674: 00b84703 lbu a4,11(a6) + lead[0] = 2; + 2678: 678d lui a5,0x3 + 267a: 0789 addi a5,a5,2 # 3002 + 267c: 06f11423 sh a5,104(sp) + lead[2] = h[0xb]; + 2680: 06e10523 sb a4,106(sp) + 2684: bab5 j 2000 + sign[0] = 1; + 2686: 678d lui a5,0x3 + 2688: d0178793 addi a5,a5,-767 # 2d01 + fl |= STBSP__NEGATIVE; + 268c: 080e6e13 ori t3,t3,128 + sign[0] = 1; + 2690: 06f11423 sh a5,104(sp) + 2694: 468d li a3,3 + 2696: 4a0d li s4,3 + 2698: 4809 li a6,2 + 269a: b899 j 1ef0 + sign[0] = 1; + 269c: 6709 lui a4,0x2 + 269e: 0705 addi a4,a4,1 # 2001 + 26a0: 06e11423 sh a4,104(sp) + 26a4: bae5 j 209c + if (((stbsp__uintptr)sn & 3) == 0) + 26a6: 0e0780e3 beqz a5,2f86 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 26aa: 56fd li a3,-1 + 26ac: bcf9 j 218a + if (fw < (stbsp__int32)n) + 26ae: 4305 li t1,1 + 26b0: b249 j 2032 + pr = 6; // default is 6 + 26b2: 4899 li a7,6 + 26b4: b801 j 1ec4 + h = (f[0] == 'A') ? hexu : hex; + 26b6: 00004597 auipc a1,0x4 + 26ba: 49a58593 addi a1,a1,1178 # 6b50 + 26be: ff6ff06f j 1eb4 + h = (f[0] == 'B') ? hexu : hex; + 26c2: 00004817 auipc a6,0x4 + 26c6: 48e80813 addi a6,a6,1166 # 6b50 + 26ca: b22d j 1ff4 + 26cc: 80000737 lui a4,0x80000 + 26d0: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff868e> + pr = 6; // default is 6 + 26d2: 4899 li a7,6 + 26d4: e4eff06f j 1d22 + h = (f[0] == 'E') ? hexu : hex; + 26d8: 00004317 auipc t1,0x4 + 26dc: 47830313 addi t1,t1,1144 # 6b50 + 26e0: e28ff06f j 1d08 + 26e4: 80000737 lui a4,0x80000 + 26e8: 4a99 li s5,6 + 26ea: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff868d> + pr = 6; + 26ec: 4a19 li s4,6 + 26ee: ee8ff06f j 1dd6 + h = (f[0] == 'G') ? hexu : hex; + 26f2: 00004317 auipc t1,0x4 + 26f6: 45e30313 addi t1,t1,1118 # 6b50 + 26fa: eb6ff06f j 1db0 + 26fe: 7be6 ld s7,120(sp) + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 2700: 86c2 mv a3,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2702: 8542 mv a0,a6 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 2704: 88d2 mv a7,s4 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2706: 8ade mv s5,s7 + if (pr > (stbsp__int32)l) + 2708: 0005071b sext.w a4,a0 + 270c: 01175f63 bge a4,a7,272a + pr = l - 1; + 2710: fff5089b addiw a7,a0,-1 + tail[0] = 0; + 2714: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 2718: 70028c63 beqz t0,2e30 + sign[0] = 1; + 271c: 670d lui a4,0x3 + 271e: d0170713 addi a4,a4,-767 # 2d01 + 2722: 06e11423 sh a4,104(sp) + 2726: e3aff06f j 1d60 + else if (pr) + 272a: fe0885e3 beqz a7,2714 + --pr; // when using %e, there is one digit before the decimal + 272e: 38fd addiw a7,a7,-1 + 2730: b7d5 j 2714 + switch (f[0]) { + 2732: 0034c783 lbu a5,3(s1) + f += 3; + 2736: 048d addi s1,s1,3 + 2738: e53fe06f j 158a + if (!limit || *sn == 0) + 273c: 4601 li a2,0 + 273e: 4701 li a4,0 + 2740: 4781 li a5,0 + return (stbsp__uint32)(sn - s); + 2742: bca5 j 21ba + pr = 1; + 2744: 4885 li a7,1 + 2746: cf4ff06f j 1c3a + *s++ = sn[0]; + 274a: 000ac703 lbu a4,0(s5) + 274e: 0ce10023 sb a4,192(sp) + if (pr) + 2752: 54088563 beqz a7,2c9c + *s++ = stbsp__period; + 2756: 00004617 auipc a2,0x4 + 275a: 3f664603 lbu a2,1014(a2) # 6b4c + if ((l - 1) > (stbsp__uint32)pr) + 275e: fff6871b addiw a4,a3,-1 + *s++ = stbsp__period; + 2762: 0cc100a3 sb a2,193(sp) + if ((l - 1) > (stbsp__uint32)pr) + 2766: 0008851b sext.w a0,a7 + 276a: 0007061b sext.w a2,a4 + 276e: 52c57163 bgeu a0,a2,2c90 + l = pr + 1; + 2772: 0018869b addiw a3,a7,1 + for (n = 1; n < l; n++) + 2776: 8746 mv a4,a7 + 2778: 02071613 slli a2,a4,0x20 + 277c: 9201 srli a2,a2,0x20 + 277e: 0c210713 addi a4,sp,194 + 2782: 0a85 addi s5,s5,1 + 2784: 963a add a2,a2,a4 + *s++ = sn[n]; + 2786: 000ac583 lbu a1,0(s5) + 278a: 0705 addi a4,a4,1 + for (n = 1; n < l; n++) + 278c: 0a85 addi s5,s5,1 + *s++ = sn[n]; + 278e: feb70fa3 sb a1,-1(a4) + for (n = 1; n < l; n++) + 2792: fec71ae3 bne a4,a2,2786 + tail[1] = h[0xe]; + 2796: 00e34803 lbu a6,14(t1) + dp -= 1; + 279a: fff7871b addiw a4,a5,-1 + tail[2] = '+'; + 279e: 02b00593 li a1,43 + tail[1] = h[0xe]; + 27a2: 070108a3 sb a6,113(sp) + if (dp < 0) { + 27a6: 00075663 bgez a4,27b2 + dp = -dp; + 27aa: 4705 li a4,1 + 27ac: 9f1d subw a4,a4,a5 + tail[2] = '-'; + 27ae: 02d00593 li a1,45 + 27b2: 06b10923 sb a1,114(sp) + n = (dp >= 100) ? 5 : 4; + 27b6: 06300793 li a5,99 + 27ba: 4ee7d663 bge a5,a4,2ca6 + 27be: 4595 li a1,5 + 27c0: 4f95 li t6,5 + 27c2: 4e95 li t4,5 + tail[n] = '0' + dp % 10; + 27c4: 47a9 li a5,10 + dp /= 10; + 27c6: 02f7433b divw t1,a4,a5 + --n; + 27ca: fffe8f1b addiw t5,t4,-1 + tail[n] = '0' + dp % 10; + 27ce: 020f1293 slli t0,t5,0x20 + 27d2: 220e8813 addi a6,t4,544 + 27d6: 06010893 addi a7,sp,96 + 27da: 0202d293 srli t0,t0,0x20 + 27de: 01180eb3 add t4,a6,a7 + 27e2: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff88a8> + 27e6: 011802b3 add t0,a6,a7 + tail[0] = (char)n; + 27ea: 07f10823 sb t6,112(sp) + if (n <= 3) + 27ee: 4a0d li s4,3 + tail[n] = '0' + dp % 10; + 27f0: 02f7673b remw a4,a4,a5 + dp /= 10; + 27f4: 0003081b sext.w a6,t1 + tail[n] = '0' + dp % 10; + 27f8: 02f36abb remw s5,t1,a5 + 27fc: 0307071b addiw a4,a4,48 + 2800: deee8823 sb a4,-528(t4) + 2804: 030a871b addiw a4,s5,48 + 2808: dee28823 sb a4,-528(t0) + if (n <= 3) + 280c: 014f0a63 beq t5,s4,2820 + dp /= 10; + 2810: 02f3483b divw a6,t1,a5 + tail[n] = '0' + dp % 10; + 2814: 02f867bb remw a5,a6,a5 + 2818: 0307879b addiw a5,a5,48 + 281c: 06f109a3 sb a5,115(sp) + tz = pr - (l - 1); + 2820: 2505 addiw a0,a0,1 + l = (stbsp__uint32)(s - (num + 64)); + 2822: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens + 2826: 030002b7 lui t0,0x3000 + tz = pr - (l - 1); + 282a: 40d508bb subw a7,a0,a3 + 282e: d2c2 sw a6,100(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2830: 415607b3 sub a5,a2,s5 + cs = 1 + (3 << 24); // how many tens + 2834: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8689> + 2836: bbc9 j 2608 + 2838: fc2e sd a1,56(sp) + 283a: d0b2 sw a2,96(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 283c: 8536 mv a0,a3 + 283e: e2cff06f j 1e6a + flt_lead: + 2842: 4581 li a1,0 + 2844: 4f81 li t6,0 + 2846: b3c9 j 2608 + n = pr + lead[0] + tail[0] + tz; + 2848: 06814a03 lbu s4,104(sp) + 284c: 000a0f9b sext.w t6,s4 + 2850: b901 j 2460 + if ((f[1] == '6') && (f[2] == '4')) { + 2852: 0024c683 lbu a3,2(s1) + 2856: 03400713 li a4,52 + 285a: 00e68463 beq a3,a4,2862 + 285e: e2bfe06f j 1688 + switch (f[0]) { + 2862: 0034c783 lbu a5,3(s1) + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 2866: 020e6e13 ori t3,t3,32 + f += 3; + 286a: 048d addi s1,s1,3 + 286c: d1ffe06f j 158a + if (pr < (stbsp__int32)l) + 2870: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 2874: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 2878: fff7c793 not a5,a5 + 287c: 97fd srai a5,a5,0x3f + 287e: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 2880: 00fa063b addw a2,s4,a5 + s = (char *)sn; + 2884: 7ae6 ld s5,120(sp) + n = pr + lead[0] + tail[0] + tz; + 2886: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 2888: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 288c: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 288e: 835a mv t1,s6 + 2890: 00cb5363 bge s6,a2,2896 + 2894: 8332 mv t1,a2 + fw -= n; + 2896: 40e3033b subw t1,t1,a4 + goto scopy; + 289a: 4f81 li t6,0 + pr -= l; + 289c: 40d7873b subw a4,a5,a3 + cs = 0; + 28a0: 4281 li t0,0 + tz = 0; + 28a2: 4881 li a7,0 + goto scopy; + 28a4: c42ff06f j 1ce6 + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 28a8: 415705b3 sub a1,a4,s5 + 28ac: 030002b7 lui t0,0x3000 + 28b0: 00b282bb addw t0,t0,a1 + l = pr - n; + 28b4: 0008859b sext.w a1,a7 + if (pr) + 28b8: 42088763 beqz a7,2ce6 + *s++ = stbsp__period; + 28bc: 0cca4f83 lbu t6,204(s4) + if ((l - dp) > (stbsp__uint32)pr) + 28c0: 41d6833b subw t1,a3,t4 + *s++ = stbsp__period; + 28c4: 00280713 addi a4,a6,2 + 28c8: 01f800a3 sb t6,1(a6) + if ((l - dp) > (stbsp__uint32)pr) + 28cc: 4065ed63 bltu a1,t1,2ce6 + while (n < l) { + 28d0: 5ed57863 bgeu a0,a3,2ec0 + 28d4: 40c687bb subw a5,a3,a2 + 28d8: 37fd addiw a5,a5,-1 + 28da: 1782 slli a5,a5,0x20 + 28dc: 9381 srli a5,a5,0x20 + 28de: 1602 slli a2,a2,0x20 + 28e0: 9201 srli a2,a2,0x20 + 28e2: 0785 addi a5,a5,1 + 28e4: 967a add a2,a2,t5 + 28e6: 97ba add a5,a5,a4 + *s++ = sn[n]; + 28e8: 00064503 lbu a0,0(a2) + 28ec: 0705 addi a4,a4,1 + while (n < l) { + 28ee: 0605 addi a2,a2,1 + *s++ = sn[n]; + 28f0: fea70fa3 sb a0,-1(a4) + while (n < l) { + 28f4: fef71ae3 bne a4,a5,28e8 + tz = pr - (l - dp); + 28f8: 01d585bb addw a1,a1,t4 + 28fc: 40d588bb subw a7,a1,a3 + l = (stbsp__uint32)(s - (num + 64)); + 2900: 415787b3 sub a5,a5,s5 + 2904: b99d j 257a + fl |= STBSP__NEGATIVE; + 2906: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 290a: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 290e: b539 j 271c + tail[0] = (char)n; + 2910: 4799 li a5,6 + tail[n] = '0' + dp % 10; + 2912: 06b10b23 sb a1,118(sp) + tail[0] = (char)n; + 2916: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 291a: 4819 li a6,6 + 291c: 4f99 li t6,6 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 291e: 4599 li a1,6 + dp /= 10; + 2920: 4f29 li t5,10 + if (n <= 3) + 2922: 428d li t0,3 + 2924: 87b2 mv a5,a2 + dp /= 10; + 2926: 03e7c7bb divw a5,a5,t5 + --n; + 292a: 35fd addiw a1,a1,-1 + tail[n] = '0' + dp % 10; + 292c: 02059613 slli a2,a1,0x20 + 2930: 9201 srli a2,a2,0x20 + 2932: 06010e93 addi t4,sp,96 + 2936: 22060613 addi a2,a2,544 + 293a: 9676 add a2,a2,t4 + 293c: 03e7eebb remw t4,a5,t5 + 2940: 030e8e9b addiw t4,t4,48 + 2944: dfd60823 sb t4,-528(a2) + if (n <= 3) + 2948: fc559fe3 bne a1,t0,2926 + 294c: e6aff06f j 1fb6 + *s++ = h[(n64 >> 60) & 15]; + 2950: 93f1 srli a5,a5,0x3c + 2952: 97ae add a5,a5,a1 + 2954: 0007c303 lbu t1,0(a5) + lead[1 + lead[0]] = '0'; + 2958: 1088 addi a0,sp,96 + 295a: 22080793 addi a5,a6,544 + 295e: 97aa add a5,a5,a0 + 2960: 03000513 li a0,48 + 2964: dea78423 sb a0,-536(a5) + lead[2 + lead[0]] = 'x'; + 2968: 22068793 addi a5,a3,544 + 296c: 1094 addi a3,sp,96 + 296e: 96be add a3,a3,a5 + *s++ = stbsp__period; + 2970: 00004517 auipc a0,0x4 + 2974: 1dc54503 lbu a0,476(a0) # 6b4c + lead[2 + lead[0]] = 'x'; + 2978: 07800813 li a6,120 + sn = s; + 297c: 0c210793 addi a5,sp,194 + lead[2 + lead[0]] = 'x'; + 2980: df068423 sb a6,-536(a3) + *s++ = stbsp__period; + 2984: 0ca100a3 sb a0,193(sp) + lead[0] += 2; + 2988: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 298c: 0c610023 sb t1,192(sp) + n64 <<= 4; + 2990: 0732 slli a4,a4,0xc + sn = s; + 2992: fcbe sd a5,120(sp) + n = pr; + 2994: 0008869b sext.w a3,a7 + while (n--) { + 2998: 4831 li a6,12 + if (n > 13) + 299a: 4535 li a0,13 + tz = pr - n; + 299c: 40a688bb subw a7,a3,a0 + while (n--) { + 29a0: 02081313 slli t1,a6,0x20 + 29a4: 02035313 srli t1,t1,0x20 + 29a8: 22030693 addi a3,t1,544 + 29ac: 1088 addi a0,sp,96 + 29ae: 9536 add a0,a0,a3 + 29b0: e4350513 addi a0,a0,-445 + *s++ = h[(n64 >> 60) & 15]; + 29b4: 03c75693 srli a3,a4,0x3c + 29b8: 96ae add a3,a3,a1 + 29ba: 0006c683 lbu a3,0(a3) + 29be: 0785 addi a5,a5,1 + n64 <<= 4; + 29c0: 0712 slli a4,a4,0x4 + *s++ = h[(n64 >> 60) & 15]; + 29c2: fed78fa3 sb a3,-1(a5) + while (n--) { + 29c6: fea797e3 bne a5,a0,29b4 + l = (int)(s - (num + 64)); + 29ca: 280d addiw a6,a6,3 + 29cc: 0008069b sext.w a3,a6 + if (pr < (stbsp__int32)l) + 29d0: fff6c713 not a4,a3 + 29d4: 977d srai a4,a4,0x3f + 29d6: 00e87733 and a4,a6,a4 + dp = (int)(s - sn); + 29da: 0013051b addiw a0,t1,1 + if (pr < (stbsp__int32)l) + 29de: 0007031b sext.w t1,a4 + pr -= l; + 29e2: 4107073b subw a4,a4,a6 + 29e6: d76ff06f j 1f5c + *--s = stbsp__comma; + 29ea: 00004a17 auipc s4,0x4 + 29ee: 096a0a13 addi s4,s4,150 # 6a80 + if (n64 >= 100000000) { + 29f2: 05f5e7b7 lui a5,0x5f5e + 29f6: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56787> + n = (stbsp__uint32)(n64 % 100000000); + 29fa: 05f5e637 lui a2,0x5f5e + *--s = stbsp__comma; + 29fe: 0cda4b83 lbu s7,205(s4) + if (n64 >= 100000000) { + 2a02: e83e sd a5,16(sp) + n = (stbsp__uint32)(n64 % 100000000); + 2a04: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f56788> + l = 0; + 2a08: d082 sw zero,96(sp) + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2a0a: 040e7813 andi a6,t3,64 + 2a0e: 4701 li a4,0 + 2a10: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 2a12: 28010a93 addi s5,sp,640 + n = (stbsp__uint32)(n64 % 100000000); + 2a16: ec3e sd a5,24(sp) + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2a18: 430d li t1,3 + n /= 10; + 2a1a: 45a9 li a1,10 + while (n) { + 2a1c: 4ea5 li t4,9 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a1e: 06400f93 li t6,100 + if (n64 >= 100000000) { + 2a22: 67c2 ld a5,16(sp) + char *o = s - 8; + 2a24: ff8a8513 addi a0,s5,-8 + if (n64 >= 100000000) { + 2a28: 0fe7f763 bgeu a5,t5,2b16 + n = (stbsp__uint32)(n64 % 100000000); + 2a2c: 6662 ld a2,24(sp) + 2a2e: 02cf77b3 remu a5,t5,a2 + n64 /= 100000000; + 2a32: 02cf5f33 divu t5,t5,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2a36: 0e080463 beqz a6,2b1e + while (n) { + 2a3a: cb85 beqz a5,2a6a + *--s = stbsp__comma; + 2a3c: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2a3e: 00671763 bne a4,t1,2a4c + --o; + 2a42: 017a8023 sb s7,0(s5) + 2a46: 157d addi a0,a0,-1 + *--s = stbsp__comma; + 2a48: 1afd addi s5,s5,-1 + l = 0; + 2a4a: 4701 li a4,0 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2a4c: 2705 addiw a4,a4,1 + *--s = (char)(n % 10) + '0'; + 2a4e: 02b7f63b remuw a2,a5,a1 + 2a52: 0306061b addiw a2,a2,48 + 2a56: 00ca8023 sb a2,0(s5) + n /= 10; + 2a5a: 02b7d63b divuw a2,a5,a1 + while (n) { + 2a5e: 00fef563 bgeu t4,a5,2a68 + *--s = stbsp__comma; + 2a62: 1afd addi s5,s5,-1 + 2a64: 87b2 mv a5,a2 + 2a66: bfe1 j 2a3e + while (n) { + 2a68: 4285 li t0,1 + if (n64 == 0) { + 2a6a: 020f0063 beqz t5,2a8a + while (s != o) + 2a6e: fb550ae3 beq a0,s5,2a22 + *--s = stbsp__comma; + 2a72: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2a74: 00080663 beqz a6,2a80 + 2a78: 08670863 beq a4,t1,2b08 + 2a7c: 2705 addiw a4,a4,1 + 2a7e: 4285 li t0,1 + *--s = '0'; + 2a80: 03000793 li a5,48 + 2a84: 00fa8023 sb a5,0(s5) + 2a88: b7dd j 2a6e + 2a8a: 00028363 beqz t0,2a90 + 2a8e: d0ba sw a4,96(sp) + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2a90: 000ac703 lbu a4,0(s5) + 2a94: 03000793 li a5,48 + 2a98: 34f70b63 beq a4,a5,2dee + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2a9c: 051c addi a5,sp,640 + 2a9e: 415786bb subw a3,a5,s5 + tail[0] = 0; + 2aa2: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 2aa6: 080e7713 andi a4,t3,128 + 2aaa: 87f2 mv a5,t3 + 2aac: 32070863 beqz a4,2ddc + 2ab0: 678d lui a5,0x3 + 2ab2: d017879b addiw a5,a5,-767 # 2d01 + sign[0] = 1; + 2ab6: 06f11423 sh a5,104(sp) + 2aba: 4705 li a4,1 + 2abc: 4a05 li s4,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2abe: d0b6 sw a3,96(sp) + if (l == 0) { + 2ac0: 30068163 beqz a3,2dc2 + cs = l + (3 << 24); + 2ac4: 030002b7 lui t0,0x3000 + 2ac8: 00d282bb addw t0,t0,a3 + if (pr < (stbsp__int32)l) + 2acc: 0006861b sext.w a2,a3 + if (pr < 0) + 2ad0: fff8c793 not a5,a7 + 2ad4: 97fd srai a5,a5,0x3f + if (pr < (stbsp__int32)l) + 2ad6: 00f8f7b3 and a5,a7,a5 + 2ada: 0007859b sext.w a1,a5 + 2ade: 00c5d363 bge a1,a2,2ae4 + 2ae2: 87b2 mv a5,a2 + n = pr + lead[0] + tail[0] + tz; + 2ae4: 00f7063b addw a2,a4,a5 + 2ae8: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 2aea: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 2aec: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 2af0: 835a mv t1,s6 + 2af2: 00cb5363 bge s6,a2,2af8 + 2af6: 8332 mv t1,a2 + fw -= n; + 2af8: 40e3033b subw t1,t1,a4 + scopy: + 2afc: 4f81 li t6,0 + pr -= l; + 2afe: 40d7873b subw a4,a5,a3 + tz = 0; + 2b02: 4881 li a7,0 + scopy: + 2b04: 9e2ff06f j 1ce6 + *--s = stbsp__comma; + 2b08: 87de mv a5,s7 + --o; + 2b0a: 157d addi a0,a0,-1 + l = 0; + 2b0c: 4701 li a4,0 + --o; + 2b0e: 4285 li t0,1 + 2b10: 00fa8023 sb a5,0(s5) + 2b14: bfa9 j 2a6e + n = (stbsp__uint32)n64; + 2b16: 000f079b sext.w a5,t5 + n64 = 0; + 2b1a: 4f01 li t5,0 + 2b1c: bf29 j 2a36 + 2b1e: f046 sd a7,32(sp) + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2b20: 03f7f63b remuw a2,a5,t6 + s -= 2; + 2b24: 1af9 addi s5,s5,-2 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2b26: 0007889b sext.w a7,a5 + 2b2a: 2605 addiw a2,a2,1 + 2b2c: 0016161b slliw a2,a2,0x1 + 2b30: 1602 slli a2,a2,0x20 + 2b32: 9201 srli a2,a2,0x20 + 2b34: 9652 add a2,a2,s4 + 2b36: 00065603 lhu a2,0(a2) + n /= 100; + 2b3a: 03f7d7bb divuw a5,a5,t6 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2b3e: 00ca9023 sh a2,0(s5) + } while (n); + 2b42: 06300613 li a2,99 + 2b46: fd166de3 bltu a2,a7,2b20 + 2b4a: 7882 ld a7,32(sp) + if (n64 == 0) { + 2b4c: f20f11e3 bnez t5,2a6e + 2b50: bf2d j 2a8a + *(stbsp__uint32 *)bf = 0x20202020; + 2b52: 20202b37 lui s6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 2b56: 854a mv a0,s2 + *bf++ = ' '; + 2b58: 02000a93 li s5,32 + *(stbsp__uint32 *)bf = 0x20202020; + 2b5c: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201fa6a8> + stbsp__chk_cb_buf(1); + 2b60: 1fe00a13 li s4,510 + stbsp__cb_buf_clamp(i, fw); + 2b64: 20000b93 li s7,512 + 2b68: 891a mv s2,t1 + 2b6a: 0a098063 beqz s3,2c0a + 2b6e: 40a40633 sub a2,s0,a0 + 2b72: 40cb87bb subw a5,s7,a2 + 2b76: 873e mv a4,a5 + 2b78: 00f95363 bge s2,a5,2b7e + 2b7c: 874a mv a4,s2 + 2b7e: 0007079b sext.w a5,a4 + fw -= i; + 2b82: 40e9093b subw s2,s2,a4 + while (i) { + 2b86: e799 bnez a5,2b94 + 2b88: a281 j 2cc8 + *bf++ = ' '; + 2b8a: 01540023 sb s5,0(s0) + --i; + 2b8e: 37fd addiw a5,a5,-1 + *bf++ = ' '; + 2b90: 0405 addi s0,s0,1 + while (i) { + 2b92: cba1 beqz a5,2be2 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2b94: 00347713 andi a4,s0,3 + 2b98: fb6d bnez a4,2b8a + while (i >= 4) { + 2b9a: 470d li a4,3 + 2b9c: 40f75363 bge a4,a5,2fa2 + 2ba0: ffc7869b addiw a3,a5,-4 + 2ba4: 0026d79b srliw a5,a3,0x2 + 2ba8: 0017871b addiw a4,a5,1 + 2bac: 070a slli a4,a4,0x2 + 2bae: 9722 add a4,a4,s0 + *(stbsp__uint32 *)bf = 0x20202020; + 2bb0: 01642023 sw s6,0(s0) + bf += 4; + 2bb4: 0411 addi s0,s0,4 + while (i >= 4) { + 2bb6: fee41de3 bne s0,a4,2bb0 + 2bba: 0027979b slliw a5,a5,0x2 + 2bbe: 40f687bb subw a5,a3,a5 + while (i--) + 2bc2: fff7869b addiw a3,a5,-1 + 2bc6: cf91 beqz a5,2be2 + 2bc8: 9fa1 addw a5,a5,s0 + *bf++ = ' '; + 2bca: 0705 addi a4,a4,1 + while (i--) + 2bcc: 0007061b sext.w a2,a4 + *bf++ = ' '; + 2bd0: ff570fa3 sb s5,-1(a4) + while (i--) + 2bd4: fec79be3 bne a5,a2,2bca + 2bd8: 2685 addiw a3,a3,1 + 2bda: 02069793 slli a5,a3,0x20 + 2bde: 9381 srli a5,a5,0x20 + 2be0: 943e add s0,s0,a5 + stbsp__chk_cb_buf(1); + 2be2: 00098f63 beqz s3,2c00 + 2be6: 40a4063b subw a2,s0,a0 + 2bea: 00ca5b63 bge s4,a2,2c00 + 2bee: 65a2 ld a1,8(sp) + 2bf0: e81e sd t2,16(sp) + 2bf2: 00cd0d3b addw s10,s10,a2 + 2bf6: 9982 jalr s3 + 2bf8: 80050be3 beqz a0,240e + 2bfc: 63c2 ld t2,16(sp) + 2bfe: 842a mv s0,a0 + while (fw) { + 2c00: f60915e3 bnez s2,2b6a + 2c04: 892a mv s2,a0 + 2c06: f21fe06f j 1b26 + stbsp__cb_buf_clamp(i, fw); + 2c0a: 87ca mv a5,s2 + fw -= i; + 2c0c: 4901 li s2,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2c0e: b759 j 2b94 + } else if (fl & STBSP__LEADINGPLUS) { + 2c10: 002e7713 andi a4,t3,2 + 2c14: 94070663 beqz a4,1d60 + sign[0] = 1; + 2c18: 670d lui a4,0x3 + 2c1a: b0170713 addi a4,a4,-1279 # 2b01 + 2c1e: 06e11423 sh a4,104(sp) + 2c22: 93eff06f j 1d60 + if (((stbsp__uintptr)sn & 3) == 0) + 2c26: 87d6 mv a5,s5 + while (limit >= 4) { + 2c28: 470d li a4,3 + 2c2a: 22d77763 bgeu a4,a3,2e58 + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2c2e: feff05b7 lui a1,0xfeff0 + 2c32: 80808637 lui a2,0x80808 + 2c36: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8587> + 2c3a: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff80800708> + while (limit >= 4) { + 2c3e: 480d li a6,3 + 2c40: a029 j 2c4a + limit -= 4; + 2c42: 36f1 addiw a3,a3,-4 + sn += 4; + 2c44: 0791 addi a5,a5,4 + while (limit >= 4) { + 2c46: 20d87963 bgeu a6,a3,2e58 + stbsp__uint32 v = *(stbsp__uint32 *)sn; + 2c4a: 4398 lw a4,0(a5) + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2c4c: 00b7053b addw a0,a4,a1 + 2c50: fff74713 not a4,a4 + 2c54: 8f69 and a4,a4,a0 + 2c56: 8f71 and a4,a4,a2 + 2c58: 2701 sext.w a4,a4 + 2c5a: d765 beqz a4,2c42 + 2c5c: 02069713 slli a4,a3,0x20 + 2c60: 9301 srli a4,a4,0x20 + 2c62: 973e add a4,a4,a5 + 2c64: a021 j 2c6c + ++sn; + 2c66: 0785 addi a5,a5,1 + while (limit && *sn) { + 2c68: 00e78663 beq a5,a4,2c74 + 2c6c: 0007c683 lbu a3,0(a5) + 2c70: fafd bnez a3,2c66 + 2c72: 873e mv a4,a5 + return (stbsp__uint32)(sn - s); + 2c74: 41570733 sub a4,a4,s5 + 2c78: 0007069b sext.w a3,a4 + if (pr < (stbsp__int32)l) + 2c7c: fff6c793 not a5,a3 + 2c80: 97fd srai a5,a5,0x3f + 2c82: 8f7d and a4,a4,a5 + 2c84: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2c88: 863e mv a2,a5 + pr -= l; + 2c8a: 9f15 subw a4,a4,a3 + return (stbsp__uint32)(sn - s); + 2c8c: d2eff06f j 21ba + for (n = 1; n < l; n++) + 2c90: 4605 li a2,1 + 2c92: aed663e3 bltu a2,a3,2778 + 2c96: 0c210613 addi a2,sp,194 + 2c9a: bcf5 j 2796 + l = pr + 1; + 2c9c: 4685 li a3,1 + if ((l - 1) > (stbsp__uint32)pr) + 2c9e: 4501 li a0,0 + *s++ = sn[0]; + 2ca0: 0c110613 addi a2,sp,193 + 2ca4: bccd j 2796 + 2ca6: 4591 li a1,4 + 2ca8: 4f91 li t6,4 + n = (dp >= 100) ? 5 : 4; + 2caa: 4e91 li t4,4 + 2cac: be21 j 27c4 + 2cae: 4a85 li s5,1 + 2cb0: 80000737 lui a4,0x80000 + pr = 1; // default is 6 + 2cb4: 4a05 li s4,1 + 2cb6: 920ff06f j 1dd6 + dp = (n64) ? -1022 : 0; + 2cba: 4601 li a2,0 + 2cbc: c119 beqz a0,2cc2 + 2cbe: c0200613 li a2,-1022 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 2cc2: 872a mv a4,a0 + 2cc4: a3aff06f j 1efe + stbsp__chk_cb_buf(1); + 2cc8: 2601 sext.w a2,a2 + 2cca: 1fe00793 li a5,510 + 2cce: f2c7c0e3 blt a5,a2,2bee + 2cd2: bd61 j 2b6a + tail[0] = (char)n; + 2cd4: 4795 li a5,5 + tail[n] = '0' + dp % 10; + 2cd6: 06b10aa3 sb a1,117(sp) + tail[0] = (char)n; + 2cda: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2cde: 4815 li a6,5 + 2ce0: 4f95 li t6,5 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2ce2: 4595 li a1,5 + 2ce4: b935 j 2920 + l = pr + dp; + 2ce6: 011786bb addw a3,a5,a7 + 2cea: d0b6 sw a3,96(sp) + 2cec: b6d5 j 28d0 + s = (char *)"null"; + 2cee: 00002a97 auipc s5,0x2 + 2cf2: 46aa8a93 addi s5,s5,1130 # 5158 <_GLOBAL__sub_I__ZSt3cin+0x92> + 2cf6: c80ff06f j 2176 + } else if (fl & STBSP__LEADINGPLUS) { + 2cfa: 002e7793 andi a5,t3,2 + 2cfe: 1c079c63 bnez a5,2ed6 + sign[0] = 0; + 2d02: 4689 li a3,2 + 2d04: 4a09 li s4,2 + 2d06: 4805 li a6,1 + 2d08: 9e8ff06f j 1ef0 + sign[0] = 1; + 2d0c: 670d lui a4,0x3 + 2d0e: b0170713 addi a4,a4,-1279 # 2b01 + 2d12: 06e11423 sh a4,104(sp) + 2d16: b86ff06f j 209c + pr = 0; + 2d1a: 4881 li a7,0 + 2d1c: f1ffe06f j 1c3a + *s++ = '0'; + 2d20: 03000713 li a4,48 + 2d24: 0ce10023 sb a4,192(sp) + if (pr) + 2d28: 1a088c63 beqz a7,2ee0 + *s++ = stbsp__period; + 2d2c: 00004717 auipc a4,0x4 + 2d30: e2074703 lbu a4,-480(a4) # 6b4c + n = -dp; + 2d34: 40f007bb negw a5,a5 + *s++ = stbsp__period; + 2d38: 0ce100a3 sb a4,193(sp) + if ((stbsp__int32)n > pr) + 2d3c: 0007871b sext.w a4,a5 + 2d40: 00e8d363 bge a7,a4,2d46 + 2d44: 87c6 mv a5,a7 + 2d46: 0007871b sext.w a4,a5 + if ((stbsp__int32)(l + n) > pr) + 2d4a: 00d7833b addw t1,a5,a3 + 2d4e: 883a mv a6,a4 + while (i) { + 2d50: 0c210793 addi a5,sp,194 + *s++ = '0'; + 2d54: 03000513 li a0,48 + while (i) { + 2d58: e711 bnez a4,2d64 + 2d5a: a271 j 2ee6 + if ((((stbsp__uintptr)s) & 3) == 0) + 2d5c: 0037f613 andi a2,a5,3 + 2d60: 18060563 beqz a2,2eea + *s++ = '0'; + 2d64: 85ba mv a1,a4 + 2d66: 00a78023 sb a0,0(a5) + --i; + 2d6a: 377d addiw a4,a4,-1 + *s++ = '0'; + 2d6c: 0785 addi a5,a5,1 + while (i) { + 2d6e: f77d bnez a4,2d5c + if ((stbsp__int32)(l + n) > pr) + 2d70: 0003071b sext.w a4,t1 + 2d74: 4108863b subw a2,a7,a6 + 2d78: 00e8d563 bge a7,a4,2d82 + l = pr - n; + 2d7c: 0006069b sext.w a3,a2 + 2d80: d0b2 sw a2,96(sp) + while (i) { + 2d82: c68d beqz a3,2dac + 2d84: 7566 ld a0,120(sp) + 2d86: 02069813 slli a6,a3,0x20 + 2d8a: 02085813 srli a6,a6,0x20 + 2d8e: 01078eb3 add t4,a5,a6 + 2d92: 85aa mv a1,a0 + 2d94: 873e mv a4,a5 + *s++ = *sn++; + 2d96: 0005c883 lbu a7,0(a1) + 2d9a: 0705 addi a4,a4,1 + while (i) { + 2d9c: 0585 addi a1,a1,1 + *s++ = *sn++; + 2d9e: ff170fa3 sb a7,-1(a4) + while (i) { + 2da2: ffd71ae3 bne a4,t4,2d96 + 2da6: 9542 add a0,a0,a6 + 2da8: 97c2 add a5,a5,a6 + 2daa: fcaa sd a0,120(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2dac: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2db0: 030002b7 lui t0,0x3000 + tz = pr - (n + l); + 2db4: 40d608bb subw a7,a2,a3 + l = (stbsp__uint32)(s - (num + 64)); + 2db8: 415787b3 sub a5,a5,s5 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2dbc: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8689> + 2dbe: fbcff06f j 257a + *--s = '0'; + 2dc2: 03000793 li a5,48 + 2dc6: fefa8fa3 sb a5,-1(s5) + l = 1; + 2dca: 030002b7 lui t0,0x3000 + 2dce: 4785 li a5,1 + 2dd0: d0be sw a5,96(sp) + *--s = '0'; + 2dd2: 1afd addi s5,s5,-1 + l = 1; + 2dd4: 4605 li a2,1 + 2dd6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8689> + 2dd8: 4685 li a3,1 + 2dda: b9dd j 2ad0 + } else if (fl & STBSP__LEADINGSPACE) { + 2ddc: 004e7713 andi a4,t3,4 + 2de0: e74d bnez a4,2e8a + } else if (fl & STBSP__LEADINGPLUS) { + 2de2: 8b89 andi a5,a5,2 + 2de4: efd9 bnez a5,2e82 + sign[0] = 0; + 2de6: 06010423 sb zero,104(sp) + 2dea: 4a01 li s4,0 + 2dec: b9c9 j 2abe + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2dee: 051c addi a5,sp,640 + 2df0: cafa89e3 beq s5,a5,2aa2 + ++s; + 2df4: 0a85 addi s5,s5,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2df6: 415786bb subw a3,a5,s5 + 2dfa: b165 j 2aa2 + n = dp - n; + 2dfc: 40ce87bb subw a5,t4,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2e00: 12030e63 beqz t1,2f3c + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2e04: 4511 li a0,4 + 2e06: 03000613 li a2,48 + *s++ = stbsp__comma; + 2e0a: 00170693 addi a3,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2e0e: 00030563 beqz t1,2e18 + 2e12: 2585 addiw a1,a1,1 + 2e14: 00a58963 beq a1,a0,2e26 + 2e18: 8736 mv a4,a3 + --n; + 2e1a: 37fd addiw a5,a5,-1 + 2e1c: fec70fa3 sb a2,-1(a4) + while (n) { + 2e20: f7ed bnez a5,2e0a + 2e22: f38ff06f j 255a + 2e26: fe568fa3 sb t0,-1(a3) + *s++ = stbsp__comma; + 2e2a: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2e2c: 4585 li a1,1 + 2e2e: b7f5 j 2e1a + sign[0] = 0; + 2e30: 06010423 sb zero,104(sp) + 2e34: f1dfe06f j 1d50 + tail[idx + 1] = "_kMGT"[fl >> 24]; + 2e38: 00002697 auipc a3,0x2 + 2e3c: 33068693 addi a3,a3,816 # 5168 <_GLOBAL__sub_I__ZSt3cin+0xa2> + 2e40: 9736 add a4,a4,a3 + 2e42: 00074683 lbu a3,0(a4) + 2e46: 1088 addi a0,sp,96 + 2e48: 22060713 addi a4,a2,544 + 2e4c: 972a add a4,a4,a0 + 2e4e: ded70823 sb a3,-528(a4) + idx++; + 2e52: 8fb2 mv t6,a2 + 2e54: fb0ff06f j 2604 + while (limit && *sn) { + 2e58: e00692e3 bnez a3,2c5c + 2e5c: bd19 j 2c72 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2e5e: 0008071b sext.w a4,a6 + 2e62: 86c2 mv a3,a6 + 2e64: 88d2 mv a7,s4 + pr = -dp + ((pr > (stbsp__int32)l) ? (stbsp__int32) l : pr); + 2e66: 863a mv a2,a4 + 2e68: 00e8d363 bge a7,a4,2e6e + 2e6c: 8646 mv a2,a7 + 2e6e: 40f608bb subw a7,a2,a5 + 2e72: 814ff06f j 1e86 + divisor = 1000.0f; + 2e76: 00003797 auipc a5,0x3 + 2e7a: a927b787 fld fa5,-1390(a5) # 5908 + 2e7e: dd5fe06f j 1c52 + 2e82: 678d lui a5,0x3 + 2e84: b017879b addiw a5,a5,-1279 # 2b01 + 2e88: b13d j 2ab6 + 2e8a: 6789 lui a5,0x2 + 2e8c: 2785 addiw a5,a5,1 # 2001 + 2e8e: b125 j 2ab6 + *s++ = stbsp__period; + 2e90: 00004517 auipc a0,0x4 + 2e94: cbc54503 lbu a0,-836(a0) # 6b4c + sn = s; + 2e98: 0c210793 addi a5,sp,194 + n = pr; + 2e9c: 0008869b sext.w a3,a7 + *s++ = stbsp__period; + 2ea0: 0ca100a3 sb a0,193(sp) + sn = s; + 2ea4: fcbe sd a5,120(sp) + if (n > 13) + 2ea6: 4535 li a0,13 + n64 <<= 4; + 2ea8: 0712 slli a4,a4,0x4 + if (n > 13) + 2eaa: 8836 mv a6,a3 + 2eac: 00d57363 bgeu a0,a3,2eb2 + 2eb0: 4835 li a6,13 + 2eb2: 0008051b sext.w a0,a6 + while (n--) { + 2eb6: 387d addiw a6,a6,-1 + if (pr > (stbsp__int32)n) + 2eb8: af1542e3 blt a0,a7,299c + tz = 0; + 2ebc: 4881 li a7,0 + 2ebe: b4cd j 29a0 + while (n < l) { + 2ec0: 87ba mv a5,a4 + 2ec2: bc1d j 28f8 + tail[0] = (char)n; + 2ec4: 478d li a5,3 + 2ec6: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2eca: 06b109a3 sb a1,115(sp) + 2ece: 480d li a6,3 + 2ed0: 4f8d li t6,3 + 2ed2: 8e4ff06f j 1fb6 + 2ed6: 678d lui a5,0x3 + 2ed8: b017879b addiw a5,a5,-1279 # 2b01 + 2edc: 80aff06f j 1ee6 + if (pr) + 2ee0: 8336 mv t1,a3 + *s++ = '0'; + 2ee2: 0c110793 addi a5,sp,193 + while (i) { + 2ee6: 4801 li a6,0 + 2ee8: b561 j 2d70 + while (i >= 4) { + 2eea: 460d li a2,3 + 2eec: 04e65663 bge a2,a4,2f38 + 2ef0: ffb5871b addiw a4,a1,-5 + 2ef4: 0027559b srliw a1,a4,0x2 + 2ef8: 0015861b addiw a2,a1,1 + 2efc: 060a slli a2,a2,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2efe: 30303537 lui a0,0x30303 + 2f02: 963e add a2,a2,a5 + 2f04: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fb6b8> + 2f08: c388 sw a0,0(a5) + s += 4; + 2f0a: 0791 addi a5,a5,4 + while (i >= 4) { + 2f0c: fef61ee3 bne a2,a5,2f08 + 2f10: 0025959b slliw a1,a1,0x2 + 2f14: 9f0d subw a4,a4,a1 + while (i) { + 2f16: e4070de3 beqz a4,2d70 + *s++ = '0'; + 2f1a: 03000513 li a0,48 + while (i) { + 2f1e: 00f705bb addw a1,a4,a5 + *s++ = '0'; + 2f22: 0605 addi a2,a2,1 + while (i) { + 2f24: 00060e9b sext.w t4,a2 + *s++ = '0'; + 2f28: fea60fa3 sb a0,-1(a2) + while (i) { + 2f2c: ffd59be3 bne a1,t4,2f22 + 2f30: 1702 slli a4,a4,0x20 + 2f32: 9301 srli a4,a4,0x20 + 2f34: 97ba add a5,a5,a4 + 2f36: bd2d j 2d70 + while (i >= 4) { + 2f38: 863e mv a2,a5 + 2f3a: b7c5 j 2f1a + if ((((stbsp__uintptr)s) & 3) == 0) + 2f3c: 00377693 andi a3,a4,3 + 2f40: ce81 beqz a3,2f58 + *s++ = '0'; + 2f42: 03000693 li a3,48 + 2f46: 00d70023 sb a3,0(a4) + --n; + 2f4a: 37fd addiw a5,a5,-1 + *s++ = '0'; + 2f4c: 0705 addi a4,a4,1 + while (n) { + 2f4e: e0078663 beqz a5,255a + if ((((stbsp__uintptr)s) & 3) == 0) + 2f52: 00377613 andi a2,a4,3 + 2f56: fa65 bnez a2,2f46 + while (n >= 4) { + 2f58: 468d li a3,3 + 2f5a: eaf6f5e3 bgeu a3,a5,2e04 + 2f5e: ffc7869b addiw a3,a5,-4 + 2f62: 0026d69b srliw a3,a3,0x2 + 2f66: 2685 addiw a3,a3,1 + 2f68: 068a slli a3,a3,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2f6a: 30303637 lui a2,0x30303 + 2f6e: 96ba add a3,a3,a4 + 2f70: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fb6b8> + 2f74: c310 sw a2,0(a4) + s += 4; + 2f76: 0711 addi a4,a4,4 + while (n >= 4) { + 2f78: fed71ee3 bne a4,a3,2f74 + 2f7c: 8b8d andi a5,a5,3 + while (n) { + 2f7e: e80793e3 bnez a5,2e04 + 2f82: dd8ff06f j 255a + if (((stbsp__uintptr)sn & 3) == 0) + 2f86: 87d6 mv a5,s5 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 2f88: 56fd li a3,-1 + 2f8a: b155 j 2c2e + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 2f8c: 5775 li a4,-3 + 2f8e: 00e7ce63 blt a5,a4,2faa + 2f92: f6fa4663 blt s4,a5,26fe + if (dp > 0) { + 2f96: ecf054e3 blez a5,2e5e + 2f9a: 86c2 mv a3,a6 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2f9c: 4881 li a7,0 + 2f9e: ee9fe06f j 1e86 + while (i--) + 2fa2: fff7869b addiw a3,a5,-1 + 2fa6: 8722 mv a4,s0 + 2fa8: b105 j 2bc8 + if (pr > (stbsp__int32)l) + 2faa: 0008071b sext.w a4,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2fae: 7ae6 ld s5,120(sp) + if (pr > (stbsp__int32)l) + 2fb0: 86c2 mv a3,a6 + 2fb2: 88d2 mv a7,s4 + 2fb4: f7475d63 bge a4,s4,272e + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2fb8: 8542 mv a0,a6 + 2fba: f56ff06f j 2710 + +0000000000002fbe : +{ + 2fbe: 715d addi sp,sp,-80 + va_start(va, fmt); + 2fc0: 02010313 addi t1,sp,32 +{ + 2fc4: f032 sd a2,32(sp) + 2fc6: f436 sd a3,40(sp) + 2fc8: f83a sd a4,48(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2fca: 86ae mv a3,a1 + 2fcc: 862a mv a2,a0 + 2fce: 871a mv a4,t1 + 2fd0: 4581 li a1,0 + 2fd2: 4501 li a0,0 +{ + 2fd4: ec06 sd ra,24(sp) + 2fd6: fc3e sd a5,56(sp) + 2fd8: e0c2 sd a6,64(sp) + 2fda: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2fdc: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2fde: bc6fe0ef jal 13a4 +} + 2fe2: 60e2 ld ra,24(sp) + 2fe4: 6161 addi sp,sp,80 + 2fe6: 8082 ret + +0000000000002fe8 : +{ + 2fe8: dd010113 addi sp,sp,-560 + 2fec: 22813023 sd s0,544(sp) + 2ff0: 20913c23 sd s1,536(sp) + 2ff4: 22113423 sd ra,552(sp) + 2ff8: 84ae mv s1,a1 + 2ffa: 842a mv s0,a0 + 2ffc: 88b2 mv a7,a2 + 2ffe: 8736 mv a4,a3 + if ( (count == 0) && !buf ) + 3000: e591 bnez a1,300c + 3002: c141 beqz a0,3082 + c.buf = buf; + 3004: e02a sd a0,0(sp) + c.count = count; + 3006: e402 sd zero,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 3008: 0810 addi a2,sp,16 + 300a: a089 j 304c + if (len > c->count) + 300c: 0015a593 slti a1,a1,1 + 3010: 40b005bb negw a1,a1 + 3014: 8de5 and a1,a1,s1 + c.buf = buf; + 3016: e02a sd a0,0(sp) + c.count = count; + 3018: c426 sw s1,8(sp) + c.length = 0; + 301a: c602 sw zero,12(sp) + if (len > c->count) + 301c: 2581 sext.w a1,a1 + if (len) { + 301e: 0804d663 bgez s1,30aa + s = buf; + 3022: 4781 li a5,0 + if (buf != c->buf) { + 3024: c911 beqz a0,3038 + *d++ = *s++; + 3026: 0007c803 lbu a6,0(a5) + 302a: 0785 addi a5,a5,1 + 302c: 00f40533 add a0,s0,a5 + 3030: ff050fa3 sb a6,-1(a0) + } while (s < se); + 3034: feb7e9e3 bltu a5,a1,3026 + c->count -= len; + 3038: 40b486bb subw a3,s1,a1 + c->buf += len; + 303c: 95a2 add a1,a1,s0 + 303e: e02e sd a1,0(sp) + c->count -= len; + 3040: c436 sw a3,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 3042: 1ff00793 li a5,511 + 3046: fcd7d1e3 bge a5,a3,3008 + 304a: 6602 ld a2,0(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__clamp_callback, &c, stbsp__clamp_callback(0,&c,0), fmt, va ); + 304c: 86c6 mv a3,a7 + 304e: 858a mv a1,sp + 3050: ffffd517 auipc a0,0xffffd + 3054: 21650513 addi a0,a0,534 # 266 + 3058: b4cfe0ef jal 13a4 + l = (int)( c.buf - buf ); + 305c: 6782 ld a5,0(sp) + 305e: 9f81 subw a5,a5,s0 + if ( l >= count ) // should never be greater, only equal (or less) than count + 3060: 0097c463 blt a5,s1,3068 + l = count - 1; + 3064: fff4879b addiw a5,s1,-1 + buf[l] = 0; + 3068: 943e add s0,s0,a5 + 306a: 00040023 sb zero,0(s0) +} + 306e: 22813083 ld ra,552(sp) + 3072: 22013403 ld s0,544(sp) + 3076: 4532 lw a0,12(sp) + 3078: 21813483 ld s1,536(sp) + 307c: 23010113 addi sp,sp,560 + 3080: 8082 ret + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 3082: 86b2 mv a3,a2 + 3084: 858a mv a1,sp + 3086: 0810 addi a2,sp,16 + 3088: ffffd517 auipc a0,0xffffd + 308c: 22c50513 addi a0,a0,556 # 2b4 + c.length = 0; + 3090: c602 sw zero,12(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 3092: b12fe0ef jal 13a4 +} + 3096: 22813083 ld ra,552(sp) + 309a: 22013403 ld s0,544(sp) + 309e: 4532 lw a0,12(sp) + 30a0: 21813483 ld s1,536(sp) + 30a4: 23010113 addi sp,sp,560 + 30a8: 8082 ret + 30aa: 86a6 mv a3,s1 + 30ac: bf59 j 3042 + +00000000000030ae : +{ + 30ae: 715d addi sp,sp,-80 + va_start(va, fmt); + 30b0: 02810313 addi t1,sp,40 +{ + 30b4: f436 sd a3,40(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 30b6: 869a mv a3,t1 +{ + 30b8: ec06 sd ra,24(sp) + 30ba: f83a sd a4,48(sp) + 30bc: fc3e sd a5,56(sp) + 30be: e0c2 sd a6,64(sp) + 30c0: e4c6 sd a7,72(sp) + va_start(va, fmt); + 30c2: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 30c4: f25ff0ef jal 2fe8 +} + 30c8: 60e2 ld ra,24(sp) + 30ca: 6161 addi sp,sp,80 + 30cc: 8082 ret + +00000000000030ce : +{ + 30ce: 86ae mv a3,a1 + 30d0: 8732 mv a4,a2 + return STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 30d2: 4581 li a1,0 + 30d4: 862a mv a2,a0 + 30d6: 4501 li a0,0 + 30d8: accfe06f j 13a4 + +00000000000030dc : +{ + 30dc: 7119 addi sp,sp,-128 + va_start(ap, format); + 30de: 05010313 addi t1,sp,80 +{ + 30e2: e0a2 sd s0,64(sp) + 30e4: fc26 sd s1,56(sp) + 30e6: 842a mv s0,a0 + 30e8: e8b2 sd a2,80(sp) + _vprintf_core(&ctx, format, ap); + 30ea: 0808 addi a0,sp,16 + ctx.limit = size; + 30ec: 54fd li s1,-1 + _vprintf_core(&ctx, format, ap); + 30ee: 861a mv a2,t1 +{ + 30f0: e486 sd ra,72(sp) + 30f2: ecb6 sd a3,88(sp) + 30f4: f0ba sd a4,96(sp) + 30f6: f4be sd a5,104(sp) + 30f8: f8c2 sd a6,112(sp) + 30fa: fcc6 sd a7,120(sp) + va_start(ap, format); + 30fc: e41a sd t1,8(sp) + ctx.buf = str; + 30fe: e822 sd s0,16(sp) + ctx.limit = size; + 3100: ec26 sd s1,24(sp) + ctx.written = 0; + 3102: f002 sd zero,32(sp) + ctx.stream = NULL; + 3104: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 3106: 02c000ef jal 3132 <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 310a: 7502 ld a0,32(sp) + 310c: 00950b63 beq a0,s1,3122 + str[ctx.written] = '\0'; + 3110: 942a add s0,s0,a0 + 3112: 00040023 sb zero,0(s0) +} + 3116: 60a6 ld ra,72(sp) + 3118: 6406 ld s0,64(sp) + 311a: 74e2 ld s1,56(sp) + 311c: 2501 sext.w a0,a0 + 311e: 6109 addi sp,sp,128 + 3120: 8082 ret + str[size - 1] = '\0'; + 3122: fe040f23 sb zero,-2(s0) +} + 3126: 60a6 ld ra,72(sp) + 3128: 6406 ld s0,64(sp) + 312a: 74e2 ld s1,56(sp) + 312c: 2501 sext.w a0,a0 + 312e: 6109 addi sp,sp,128 + 3130: 8082 ret + +0000000000003132 <_vprintf_core.constprop.0.isra.0>: +static int _vprintf_core(_OutContext *ctx, const char *format, va_list ap) + 3132: 7129 addi sp,sp,-320 + 3134: edee sd s11,216(sp) + 3136: fe06 sd ra,312(sp) + 3138: 8dae mv s11,a1 + while (*p) + 313a: 0005c583 lbu a1,0(a1) + 313e: cde9 beqz a1,3218 <_vprintf_core.constprop.0.isra.0+0xe6> + 3140: f626 sd s1,296(sp) + 3142: f24a sd s2,288(sp) + 3144: ee4e sd s3,280(sp) + 3146: e656 sd s5,264(sp) + 3148: f9e2 sd s8,240(sp) + 314a: fa22 sd s0,304(sp) + 314c: ea52 sd s4,272(sp) + 314e: e25a sd s6,256(sp) + 3150: fdde sd s7,248(sp) + 3152: f5e6 sd s9,232(sp) + 3154: f1ea sd s10,224(sp) + 3156: 84aa mv s1,a0 + 3158: 8c32 mv s8,a2 + if (*p != '%') + 315a: 02500a93 li s5,37 + 315e: 49c1 li s3,16 + 3160: 00002917 auipc s2,0x2 + 3164: 2dc90913 addi s2,s2,732 # 543c <_GLOBAL__sub_I__ZSt3cin+0x376> + 3168: a039 j 3176 <_vprintf_core.constprop.0.isra.0+0x44> + _out_char(ctx, spec); + 316a: 8526 mv a0,s1 + 316c: 952fe0ef jal 12be <_out_char> + while (*p) + 3170: 000dc583 lbu a1,0(s11) + 3174: c5d9 beqz a1,3202 <_vprintf_core.constprop.0.isra.0+0xd0> + _out_char(ctx, *p++); + 3176: 0d85 addi s11,s11,1 + if (*p != '%') + 3178: ff5599e3 bne a1,s5,316a <_vprintf_core.constprop.0.isra.0+0x38> + int flag_left = 0, flag_zero = 0, flag_plus = 0, flag_space = 0, flag_hash = 0; + 317c: 4501 li a0,0 + 317e: 4881 li a7,0 + 3180: 4581 li a1,0 + 3182: 4b01 li s6,0 + 3184: 4a01 li s4,0 + if (*p == '-') + 3186: 000dcc83 lbu s9,0(s11) + 318a: fe0c871b addiw a4,s9,-32 + 318e: 0ff77713 zext.b a4,a4 + 3192: 00e9e763 bltu s3,a4,31a0 <_vprintf_core.constprop.0.isra.0+0x6e> + 3196: 070a slli a4,a4,0x2 + 3198: 974a add a4,a4,s2 + 319a: 4318 lw a4,0(a4) + 319c: 974a add a4,a4,s2 + 319e: 8702 jr a4 + if (*p == '*') + 31a0: 02a00793 li a5,42 + 31a4: 16fc9c63 bne s9,a5,331c <_vprintf_core.constprop.0.isra.0+0x1ea> + width = va_arg(ap, int); + 31a8: 000c2403 lw s0,0(s8) + 31ac: 0c21 addi s8,s8,8 + if (width < 0) + 31ae: 00045563 bgez s0,31b8 <_vprintf_core.constprop.0.isra.0+0x86> + width = -width; + 31b2: 4080043b negw s0,s0 + flag_left = 1; + 31b6: 4a05 li s4,1 + while (*p >= '0' && *p <= '9') + 31b8: 001dcc83 lbu s9,1(s11) + p++; + 31bc: 0d85 addi s11,s11,1 + if (*p == '.') + 31be: 02e00793 li a5,46 + int precision = -1; + 31c2: 5bfd li s7,-1 + if (*p == '.') + 31c4: 18fc8a63 beq s9,a5,3358 <_vprintf_core.constprop.0.isra.0+0x226> + if (*p == 'l') + 31c8: 06c00693 li a3,108 + 31cc: 8666 mv a2,s9 + 31ce: 1adc8663 beq s9,a3,337a <_vprintf_core.constprop.0.isra.0+0x248> + else if (*p == 'z') + 31d2: 07a00693 li a3,122 + p++; + 31d6: 0d85 addi s11,s11,1 + else if (*p == 'z') + 31d8: 24dc8163 beq s9,a3,341a <_vprintf_core.constprop.0.isra.0+0x2e8> + if (!spec) + 31dc: 06400693 li a3,100 + 31e0: 4adc8163 beq s9,a3,3682 <_vprintf_core.constprop.0.isra.0+0x550> + 31e4: 06400693 li a3,100 + int len_mod = 0; + 31e8: 4e81 li t4,0 + 31ea: 1b96e663 bltu a3,s9,3396 <_vprintf_core.constprop.0.isra.0+0x264> + 31ee: 04700693 li a3,71 + 31f2: 2796e463 bltu a3,s9,345a <_vprintf_core.constprop.0.isra.0+0x328> + 31f6: 04400693 li a3,68 + 31fa: 0596e363 bltu a3,s9,3240 <_vprintf_core.constprop.0.isra.0+0x10e> + 31fe: 240c9363 bnez s9,3444 <_vprintf_core.constprop.0.isra.0+0x312> + 3202: 7452 ld s0,304(sp) + 3204: 74b2 ld s1,296(sp) + 3206: 7912 ld s2,288(sp) + 3208: 69f2 ld s3,280(sp) + 320a: 6a52 ld s4,272(sp) + 320c: 6ab2 ld s5,264(sp) + 320e: 6b12 ld s6,256(sp) + 3210: 7bee ld s7,248(sp) + 3212: 7c4e ld s8,240(sp) + 3214: 7cae ld s9,232(sp) + 3216: 7d0e ld s10,224(sp) +} + 3218: 70f2 ld ra,312(sp) + 321a: 6dee ld s11,216(sp) + 321c: 6131 addi sp,sp,320 + 321e: 8082 ret + if (*p == '-') + 3220: 4585 li a1,1 + p++; + 3222: 0d85 addi s11,s11,1 + if (*p == '-') + 3224: b78d j 3186 <_vprintf_core.constprop.0.isra.0+0x54> + 3226: 4505 li a0,1 + p++; + 3228: 0d85 addi s11,s11,1 + while (1) + 322a: bfb1 j 3186 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 322c: 4885 li a7,1 + p++; + 322e: 0d85 addi s11,s11,1 + while (1) + 3230: bf99 j 3186 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3232: 4b05 li s6,1 + p++; + 3234: 0d85 addi s11,s11,1 + while (1) + 3236: bf81 j 3186 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3238: 4a05 li s4,1 + p++; + 323a: 0d85 addi s11,s11,1 + while (1) + 323c: b7a9 j 3186 <_vprintf_core.constprop.0.isra.0+0x54> + char spec = *p++; + 323e: 8dbe mv s11,a5 + fmt_tmp[f_idx++] = '%'; + 3240: 02500693 li a3,37 + 3244: 02d10823 sb a3,48(sp) + 3248: 4d05 li s10,1 + if (flag_left) + 324a: 000a0763 beqz s4,3258 <_vprintf_core.constprop.0.isra.0+0x126> + fmt_tmp[f_idx++] = '-'; + 324e: 02d00693 li a3,45 + 3252: 02d108a3 sb a3,49(sp) + 3256: 4d09 li s10,2 + if (flag_zero) + 3258: 000b0c63 beqz s6,3270 <_vprintf_core.constprop.0.isra.0+0x13e> + fmt_tmp[f_idx++] = '0'; + 325c: 0c0d0793 addi a5,s10,192 + 3260: 0818 addi a4,sp,16 + 3262: 00e786b3 add a3,a5,a4 + 3266: 03000613 li a2,48 + 326a: f6c68023 sb a2,-160(a3) + 326e: 2d05 addiw s10,s10,1 + if (flag_plus) + 3270: c999 beqz a1,3286 <_vprintf_core.constprop.0.isra.0+0x154> + fmt_tmp[f_idx++] = '+'; + 3272: 0c0d0793 addi a5,s10,192 + 3276: 0818 addi a4,sp,16 + 3278: 00e786b3 add a3,a5,a4 + 327c: 02b00613 li a2,43 + 3280: f6c68023 sb a2,-160(a3) + 3284: 2d05 addiw s10,s10,1 + if (flag_space) + 3286: 00088c63 beqz a7,329e <_vprintf_core.constprop.0.isra.0+0x16c> + fmt_tmp[f_idx++] = ' '; + 328a: 0c0d0793 addi a5,s10,192 + 328e: 0818 addi a4,sp,16 + 3290: 00e786b3 add a3,a5,a4 + 3294: 02000613 li a2,32 + 3298: f6c68023 sb a2,-160(a3) + 329c: 2d05 addiw s10,s10,1 + if (flag_hash) + 329e: c919 beqz a0,32b4 <_vprintf_core.constprop.0.isra.0+0x182> + fmt_tmp[f_idx++] = '#'; + 32a0: 0c0d0793 addi a5,s10,192 + 32a4: 0818 addi a4,sp,16 + 32a6: 00e786b3 add a3,a5,a4 + 32aa: 02300613 li a2,35 + 32ae: f6c68023 sb a2,-160(a3) + 32b2: 2d05 addiw s10,s10,1 + if (width > 0) + 32b4: 03010a13 addi s4,sp,48 + 32b8: 28804563 bgtz s0,3542 <_vprintf_core.constprop.0.isra.0+0x410> + if (precision >= 0) + 32bc: 260bd763 bgez s7,352a <_vprintf_core.constprop.0.isra.0+0x3f8> + fmt_tmp[f_idx++] = spec; + 32c0: 0c0d0793 addi a5,s10,192 + 32c4: 0818 addi a4,sp,16 + 32c6: 00e78633 add a2,a5,a4 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 32ca: 000c3683 ld a3,0(s8) + fmt_tmp[f_idx] = '\0'; + 32ce: 001d071b addiw a4,s10,1 + 32d2: 0c070793 addi a5,a4,192 + 32d6: 0818 addi a4,sp,16 + fmt_tmp[f_idx++] = spec; + 32d8: f7960023 sb s9,-160(a2) + fmt_tmp[f_idx] = '\0'; + 32dc: 973e add a4,a4,a5 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 32de: 08000593 li a1,128 + 32e2: 8652 mv a2,s4 + 32e4: 0888 addi a0,sp,80 + fmt_tmp[f_idx] = '\0'; + 32e6: f6070023 sb zero,-160(a4) + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 32ea: dc5ff0ef jal 30ae + for (int i = 0; f_buf[i] != '\0'; i++) + 32ee: 05014583 lbu a1,80(sp) + double f_val = va_arg(ap, double); + 32f2: 0c21 addi s8,s8,8 + for (int i = 0; f_buf[i] != '\0'; i++) + 32f4: 05110413 addi s0,sp,81 + 32f8: e6058ce3 beqz a1,3170 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 32fc: 8526 mv a0,s1 + 32fe: fc1fd0ef jal 12be <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 3302: 00044583 lbu a1,0(s0) + 3306: 0405 addi s0,s0,1 + 3308: e60584e3 beqz a1,3170 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 330c: 8526 mv a0,s1 + 330e: fb1fd0ef jal 12be <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 3312: 00044583 lbu a1,0(s0) + 3316: 0405 addi s0,s0,1 + 3318: f1f5 bnez a1,32fc <_vprintf_core.constprop.0.isra.0+0x1ca> + 331a: bd99 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + while (*p >= '0' && *p <= '9') + 331c: fd0c869b addiw a3,s9,-48 + 3320: 0ff6f313 zext.b t1,a3 + 3324: 4725 li a4,9 + int width = 0; + 3326: 4401 li s0,0 + while (*p >= '0' && *p <= '9') + 3328: 4625 li a2,9 + 332a: e8676ae3 bltu a4,t1,31be <_vprintf_core.constprop.0.isra.0+0x8c> + 332e: 001dcc83 lbu s9,1(s11) + width = width * 10 + (*p - '0'); + 3332: 0024171b slliw a4,s0,0x2 + 3336: 9f21 addw a4,a4,s0 + 3338: 0017171b slliw a4,a4,0x1 + 333c: 00e6843b addw s0,a3,a4 + while (*p >= '0' && *p <= '9') + 3340: fd0c869b addiw a3,s9,-48 + 3344: 0ff6f713 zext.b a4,a3 + p++; + 3348: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 334a: fee672e3 bgeu a2,a4,332e <_vprintf_core.constprop.0.isra.0+0x1fc> + if (*p == '.') + 334e: 02e00793 li a5,46 + int precision = -1; + 3352: 5bfd li s7,-1 + if (*p == '.') + 3354: e6fc9ae3 bne s9,a5,31c8 <_vprintf_core.constprop.0.isra.0+0x96> + if (*p == '*') + 3358: 001dcc83 lbu s9,1(s11) + 335c: 02a00793 li a5,42 + 3360: 16fc9f63 bne s9,a5,34de <_vprintf_core.constprop.0.isra.0+0x3ac> + while (*p >= '0' && *p <= '9') + 3364: 002dcc83 lbu s9,2(s11) + if (*p == 'l') + 3368: 06c00693 li a3,108 + precision = va_arg(ap, int); + 336c: 000c2b83 lw s7,0(s8) + p++; + 3370: 0d89 addi s11,s11,2 + precision = va_arg(ap, int); + 3372: 0c21 addi s8,s8,8 + if (*p == 'l') + 3374: 8666 mv a2,s9 + 3376: e4dc9ee3 bne s9,a3,31d2 <_vprintf_core.constprop.0.isra.0+0xa0> + if (*p == 'l') + 337a: 001dcc83 lbu s9,1(s11) + 337e: 08cc8d63 beq s9,a2,3418 <_vprintf_core.constprop.0.isra.0+0x2e6> + char spec = *p++; + 3382: 06400693 li a3,100 + 3386: 0d89 addi s11,s11,2 + if (!spec) + 3388: 4cdc8c63 beq s9,a3,3860 <_vprintf_core.constprop.0.isra.0+0x72e> + 338c: 06400693 li a3,100 + len_mod = 1; + 3390: 4e85 li t4,1 + 3392: e596fee3 bgeu a3,s9,31ee <_vprintf_core.constprop.0.isra.0+0xbc> + 3396: f9bc869b addiw a3,s9,-101 + 339a: 0ff6f693 zext.b a3,a3 + 339e: 464d li a2,19 + 33a0: 12d66863 bltu a2,a3,34d0 <_vprintf_core.constprop.0.isra.0+0x39e> + 33a4: 4e05 li t3,1 + 33a6: 00091637 lui a2,0x91 + 33aa: 00de1333 sll t1,t3,a3 + 33ae: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x88e98> + 33b2: 00c37633 and a2,t1,a2 + 33b6: 1a061463 bnez a2,355e <_vprintf_core.constprop.0.isra.0+0x42c> + 33ba: 00737313 andi t1,t1,7 + 33be: e80311e3 bnez t1,3240 <_vprintf_core.constprop.0.isra.0+0x10e> + 33c2: 4639 li a2,14 + 33c4: 10c69663 bne a3,a2,34d0 <_vprintf_core.constprop.0.isra.0+0x39e> + const char *s = va_arg(ap, char *); + 33c8: 000c3c83 ld s9,0(s8) + if (!s) + 33cc: 420c8863 beqz s9,37fc <_vprintf_core.constprop.0.isra.0+0x6ca> + while (*tmp && (precision < 0 || len < precision)) + 33d0: 000cc683 lbu a3,0(s9) + 33d4: 38068863 beqz a3,3764 <_vprintf_core.constprop.0.isra.0+0x632> + const char *tmp = s; + 33d8: 8666 mv a2,s9 + int len = 0; + 33da: 4681 li a3,0 + while (*tmp && (precision < 0 || len < precision)) + 33dc: 00db8863 beq s7,a3,33ec <_vprintf_core.constprop.0.isra.0+0x2ba> + 33e0: 00164583 lbu a1,1(a2) + len++; + 33e4: 2685 addiw a3,a3,1 + tmp++; + 33e6: 0605 addi a2,a2,1 + while (*tmp && (precision < 0 || len < precision)) + 33e8: f9f5 bnez a1,33dc <_vprintf_core.constprop.0.isra.0+0x2aa> + 33ea: 8bb6 mv s7,a3 + int padding = (width > len) ? width - len : 0; + 33ec: 268bc563 blt s7,s0,3656 <_vprintf_core.constprop.0.isra.0+0x524> + for (int i = 0; i < len; i++) + 33f0: 4401 li s0,0 + 33f2: 020b8163 beqz s7,3414 <_vprintf_core.constprop.0.isra.0+0x2e2> + 33f6: 4d01 li s10,0 + _out_char(ctx, s[i]); + 33f8: 01ac86b3 add a3,s9,s10 + 33fc: 0006c583 lbu a1,0(a3) + 3400: 8526 mv a0,s1 + for (int i = 0; i < len; i++) + 3402: 0d05 addi s10,s10,1 + _out_char(ctx, s[i]); + 3404: ebbfd0ef jal 12be <_out_char> + for (int i = 0; i < len; i++) + 3408: 000d069b sext.w a3,s10 + 340c: ff76c6e3 blt a3,s7,33f8 <_vprintf_core.constprop.0.isra.0+0x2c6> + if (flag_left) + 3410: 260a1463 bnez s4,3678 <_vprintf_core.constprop.0.isra.0+0x546> + const char *s = va_arg(ap, char *); + 3414: 0c21 addi s8,s8,8 + 3416: bba9 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + p++; + 3418: 0d89 addi s11,s11,2 + char spec = *p++; + 341a: 000dcc83 lbu s9,0(s11) + 341e: 06400693 li a3,100 + 3422: 001d8793 addi a5,s11,1 + if (!spec) + 3426: 3edc8063 beq s9,a3,3806 <_vprintf_core.constprop.0.isra.0+0x6d4> + 342a: 0796ea63 bltu a3,s9,349e <_vprintf_core.constprop.0.isra.0+0x36c> + 342e: 04700693 li a3,71 + 3432: 0f96e263 bltu a3,s9,3516 <_vprintf_core.constprop.0.isra.0+0x3e4> + 3436: 04400693 li a3,68 + 343a: e196e2e3 bltu a3,s9,323e <_vprintf_core.constprop.0.isra.0+0x10c> + 343e: dc0c82e3 beqz s9,3202 <_vprintf_core.constprop.0.isra.0+0xd0> + char spec = *p++; + 3442: 8dbe mv s11,a5 + _out_char(ctx, '%'); + 3444: 02500593 li a1,37 + 3448: 8526 mv a0,s1 + 344a: e75fd0ef jal 12be <_out_char> + if (spec != '%') + 344e: 02500713 li a4,37 + 3452: d0ec8fe3 beq s9,a4,3170 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, spec); + 3456: 85e6 mv a1,s9 + 3458: bb09 j 316a <_vprintf_core.constprop.0.isra.0+0x38> + 345a: 05800693 li a3,88 + 345e: 2edc8263 beq s9,a3,3742 <_vprintf_core.constprop.0.isra.0+0x610> + 3462: 06300713 li a4,99 + 3466: 06ec9563 bne s9,a4,34d0 <_vprintf_core.constprop.0.isra.0+0x39e> + char c = (char)va_arg(ap, int); + 346a: 000c4c83 lbu s9,0(s8) + int padding = (width > 1) ? width - 1 : 0; + 346e: 8722 mv a4,s0 + 3470: 00804363 bgtz s0,3476 <_vprintf_core.constprop.0.isra.0+0x344> + 3474: 4705 li a4,1 + 3476: fff7041b addiw s0,a4,-1 + if (!flag_left) + 347a: 3c0a0463 beqz s4,3842 <_vprintf_core.constprop.0.isra.0+0x710> + _out_char(ctx, c); + 347e: 85e6 mv a1,s9 + 3480: 8526 mv a0,s1 + 3482: e3dfd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 3486: 4a01 li s4,0 + 3488: d451 beqz s0,3414 <_vprintf_core.constprop.0.isra.0+0x2e2> + _out_char(ctx, ' '); + 348a: 02000593 li a1,32 + 348e: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3490: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3492: e2dfd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 3496: ff441ae3 bne s0,s4,348a <_vprintf_core.constprop.0.isra.0+0x358> + const char *s = va_arg(ap, char *); + 349a: 0c21 addi s8,s8,8 + 349c: b9d1 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + 349e: f9bc861b addiw a2,s9,-101 + 34a2: 0ff67613 zext.b a2,a2 + 34a6: 46cd li a3,19 + 34a8: 40c6e963 bltu a3,a2,38ba <_vprintf_core.constprop.0.isra.0+0x788> + 34ac: 00091337 lui t1,0x91 + 34b0: 4685 li a3,1 + 34b2: 00c696b3 sll a3,a3,a2 + 34b6: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x88e98> + 34ba: 0066f333 and t1,a3,t1 + 34be: 34031c63 bnez t1,3816 <_vprintf_core.constprop.0.isra.0+0x6e4> + 34c2: 8a9d andi a3,a3,7 + 34c4: d6069de3 bnez a3,323e <_vprintf_core.constprop.0.isra.0+0x10c> + 34c8: 46b9 li a3,14 + char spec = *p++; + 34ca: 8dbe mv s11,a5 + 34cc: eed60ee3 beq a2,a3,33c8 <_vprintf_core.constprop.0.isra.0+0x296> + _out_char(ctx, '%'); + 34d0: 02500593 li a1,37 + 34d4: 8526 mv a0,s1 + 34d6: de9fd0ef jal 12be <_out_char> + _out_char(ctx, spec); + 34da: 85e6 mv a1,s9 + 34dc: b179 j 316a <_vprintf_core.constprop.0.isra.0+0x38> + while (*p >= '0' && *p <= '9') + 34de: fd0c869b addiw a3,s9,-48 + 34e2: 0ff6fe13 zext.b t3,a3 + 34e6: 4625 li a2,9 + p++; + 34e8: 0d85 addi s11,s11,1 + precision = 0; + 34ea: 4b81 li s7,0 + while (*p >= '0' && *p <= '9') + 34ec: 4325 li t1,9 + 34ee: cdc66de3 bltu a2,t3,31c8 <_vprintf_core.constprop.0.isra.0+0x96> + precision = precision * 10 + (*p - '0'); + 34f2: 002b961b slliw a2,s7,0x2 + while (*p >= '0' && *p <= '9') + 34f6: 001dcc83 lbu s9,1(s11) + precision = precision * 10 + (*p - '0'); + 34fa: 0176073b addw a4,a2,s7 + 34fe: 0017171b slliw a4,a4,0x1 + 3502: 00e68bbb addw s7,a3,a4 + while (*p >= '0' && *p <= '9') + 3506: fd0c869b addiw a3,s9,-48 + 350a: 0ff6f613 zext.b a2,a3 + p++; + 350e: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 3510: fec371e3 bgeu t1,a2,34f2 <_vprintf_core.constprop.0.isra.0+0x3c0> + 3514: b955 j 31c8 <_vprintf_core.constprop.0.isra.0+0x96> + 3516: 05800693 li a3,88 + 351a: 3cdc8d63 beq s9,a3,38f4 <_vprintf_core.constprop.0.isra.0+0x7c2> + 351e: 06300713 li a4,99 + char spec = *p++; + 3522: 8dbe mv s11,a5 + 3524: f4ec83e3 beq s9,a4,346a <_vprintf_core.constprop.0.isra.0+0x338> + 3528: b765 j 34d0 <_vprintf_core.constprop.0.isra.0+0x39e> + f_idx += sprintf(&fmt_tmp[f_idx], ".%d", precision); + 352a: 01aa0533 add a0,s4,s10 + 352e: 865e mv a2,s7 + 3530: 00002597 auipc a1,0x2 + 3534: c9058593 addi a1,a1,-880 # 51c0 <_GLOBAL__sub_I__ZSt3cin+0xfa> + 3538: ba5ff0ef jal 30dc + 353c: 00ad0d3b addw s10,s10,a0 + 3540: b341 j 32c0 <_vprintf_core.constprop.0.isra.0+0x18e> + f_idx += sprintf(&fmt_tmp[f_idx], "%d", width); + 3542: 01aa0533 add a0,s4,s10 + 3546: 8622 mv a2,s0 + 3548: 00002597 auipc a1,0x2 + 354c: c7058593 addi a1,a1,-912 # 51b8 <_GLOBAL__sub_I__ZSt3cin+0xf2> + 3550: b8dff0ef jal 30dc + 3554: 00ad0d3b addw s10,s10,a0 + if (precision >= 0) + 3558: d60bc4e3 bltz s7,32c0 <_vprintf_core.constprop.0.isra.0+0x18e> + 355c: b7f9 j 352a <_vprintf_core.constprop.0.isra.0+0x3f8> + int is_signed = (spec == 'd' || spec == 'i'); + 355e: 06900693 li a3,105 + 3562: 10dc8e63 beq s9,a3,367e <_vprintf_core.constprop.0.isra.0+0x54c> + val = (uint64)va_arg(ap, void *); + 3566: 008c0793 addi a5,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 356a: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 356e: e43e sd a5,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3570: 38dc9d63 bne s9,a3,390a <_vprintf_core.constprop.0.isra.0+0x7d8> + else if (len_mod == 1) + 3574: 33ce8963 beq t4,t3,38a6 <_vprintf_core.constprop.0.isra.0+0x774> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3578: 000c6e03 lwu t3,0(s8) + 357c: 85f6 mv a1,t4 + 357e: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3580: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3582: 00002f97 auipc t6,0x2 + 3586: c06f8f93 addi t6,t6,-1018 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + if (val == 0) + 358a: 120e0363 beqz t3,36b0 <_vprintf_core.constprop.0.isra.0+0x57e> + 358e: 01010293 addi t0,sp,16 + sign_char = '-'; + 3592: 8616 mv a2,t0 + 3594: 86f2 mv a3,t3 + buf[i++] = digits[val % base]; + 3596: 0266f8b3 remu a7,a3,t1 + 359a: 8f32 mv t5,a2 + while (val != 0) + 359c: 0605 addi a2,a2,1 + 359e: 8eb6 mv t4,a3 + buf[i++] = digits[val % base]; + 35a0: 98fe add a7,a7,t6 + 35a2: 0008c883 lbu a7,0(a7) + val /= base; + 35a6: 0266d6b3 divu a3,a3,t1 + buf[i++] = digits[val % base]; + 35aa: ff160fa3 sb a7,-1(a2) + while (val != 0) + 35ae: fe6ef4e3 bgeu t4,t1,3596 <_vprintf_core.constprop.0.isra.0+0x464> + buf[i++] = digits[val % base]; + 35b2: 405f0f3b subw t5,t5,t0 + 35b6: 2f05 addiw t5,t5,1 + if (precision >= 0) + 35b8: 100bc363 bltz s7,36be <_vprintf_core.constprop.0.isra.0+0x58c> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 35bc: 1d7f4d63 blt t5,s7,3796 <_vprintf_core.constprop.0.isra.0+0x664> + if (precision == 0 && val == 0) + 35c0: 340b9163 bnez s7,3902 <_vprintf_core.constprop.0.isra.0+0x7d0> + 35c4: 200e0763 beqz t3,37d2 <_vprintf_core.constprop.0.isra.0+0x6a0> + for (int i = digit_len - 1; i >= 0; i--) + 35c8: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35cc: 07000693 li a3,112 + for (int i = digit_len - 1; i >= 0; i--) + 35d0: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35d2: 28dc8e63 beq s9,a3,386e <_vprintf_core.constprop.0.isra.0+0x73c> + 35d6: 2a051663 bnez a0,3882 <_vprintf_core.constprop.0.isra.0+0x750> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 35da: 00bf05bb addw a1,t5,a1 + 35de: 8d52 mv s10,s4 + 35e0: 4b01 li s6,0 + char *prefix_str = NULL; + 35e2: 4c81 li s9,0 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 35e4: 1085d263 bge a1,s0,36e8 <_vprintf_core.constprop.0.isra.0+0x5b6> + 35e8: 9c0d subw s0,s0,a1 + if (!flag_left && !flag_zero) + 35ea: 100d0a63 beqz s10,36fe <_vprintf_core.constprop.0.isra.0+0x5cc> + if (sign_char) + 35ee: 6782 ld a5,0(sp) + 35f0: 10079263 bnez a5,36f4 <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 35f4: 000c8c63 beqz s9,360c <_vprintf_core.constprop.0.isra.0+0x4da> + _out_char(ctx, prefix_str[0]); + 35f8: 000cc583 lbu a1,0(s9) + 35fc: 8526 mv a0,s1 + 35fe: cc1fd0ef jal 12be <_out_char> + _out_char(ctx, prefix_str[1]); + 3602: 001cc583 lbu a1,1(s9) + 3606: 8526 mv a0,s1 + 3608: cb7fd0ef jal 12be <_out_char> + int total_zeros = prec_zeros + ((flag_zero && !flag_left) ? padding : 0); + 360c: 180b0263 beqz s6,3790 <_vprintf_core.constprop.0.isra.0+0x65e> + 3610: 100a1863 bnez s4,3720 <_vprintf_core.constprop.0.isra.0+0x5ee> + 3614: 008b8bbb addw s7,s7,s0 + for (int i = 0; i < total_zeros; i++) + 3618: 2a0b8363 beqz s7,38be <_vprintf_core.constprop.0.isra.0+0x78c> + 361c: 4c81 li s9,0 + _out_char(ctx, '0'); + 361e: 03000593 li a1,48 + 3622: 8526 mv a0,s1 + for (int i = 0; i < total_zeros; i++) + 3624: 2c85 addiw s9,s9,1 + _out_char(ctx, '0'); + 3626: c99fd0ef jal 12be <_out_char> + for (int i = 0; i < total_zeros; i++) + 362a: ff7c9ae3 bne s9,s7,361e <_vprintf_core.constprop.0.isra.0+0x4ec> + for (int i = digit_len - 1; i >= 0; i--) + 362e: 57fd li a5,-1 + 3630: 00fc0f63 beq s8,a5,364e <_vprintf_core.constprop.0.isra.0+0x51c> + 3634: 01010c93 addi s9,sp,16 + 3638: 9ce2 add s9,s9,s8 + 363a: 00f10c13 addi s8,sp,15 + _out_char(ctx, num_buf[i]); + 363e: 000cc583 lbu a1,0(s9) + 3642: 8526 mv a0,s1 + for (int i = digit_len - 1; i >= 0; i--) + 3644: 1cfd addi s9,s9,-1 + _out_char(ctx, num_buf[i]); + 3646: c79fd0ef jal 12be <_out_char> + for (int i = digit_len - 1; i >= 0; i--) + 364a: ff9c1ae3 bne s8,s9,363e <_vprintf_core.constprop.0.isra.0+0x50c> + if (flag_left) + 364e: 0c0a1e63 bnez s4,372a <_vprintf_core.constprop.0.isra.0+0x5f8> + char spec = *p++; + 3652: 6c22 ld s8,8(sp) + 3654: be31 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + int padding = (width > len) ? width - len : 0; + 3656: 4174043b subw s0,s0,s7 + if (!flag_left) + 365a: 100a0a63 beqz s4,376e <_vprintf_core.constprop.0.isra.0+0x63c> + for (int i = 0; i < len; i++) + 365e: d80b9ce3 bnez s7,33f6 <_vprintf_core.constprop.0.isra.0+0x2c4> + for (int i = 0; i < padding; i++) + 3662: 4a01 li s4,0 + _out_char(ctx, ' '); + 3664: 02000593 li a1,32 + 3668: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 366a: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 366c: c53fd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 3670: ff441ae3 bne s0,s4,3664 <_vprintf_core.constprop.0.isra.0+0x532> + const char *s = va_arg(ap, char *); + 3674: 0c21 addi s8,s8,8 + 3676: bced j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + for (int i = 0; i < padding; i++) + 3678: f46d bnez s0,3662 <_vprintf_core.constprop.0.isra.0+0x530> + const char *s = va_arg(ap, char *); + 367a: 0c21 addi s8,s8,8 + 367c: bcd5 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + else if (len_mod == 1) + 367e: 1fce8163 beq t4,t3,3860 <_vprintf_core.constprop.0.isra.0+0x72e> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3682: 000c2e03 lw t3,0(s8) + 3686: 008c0793 addi a5,s8,8 + 368a: e43e sd a5,8(sp) + int64 sval = (int64)val; + 368c: 86f2 mv a3,t3 + if (sval < 0) + 368e: 1406cb63 bltz a3,37e4 <_vprintf_core.constprop.0.isra.0+0x6b2> + sign_char = '+'; + 3692: 02b00793 li a5,43 + 3696: e03e sd a5,0(sp) + else if (flag_plus) + 3698: e589 bnez a1,36a2 <_vprintf_core.constprop.0.isra.0+0x570> + else if (flag_space) + 369a: 00589793 slli a5,a7,0x5 + 369e: e03e sd a5,0(sp) + 36a0: 85c6 mv a1,a7 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 36a2: 4329 li t1,10 + 36a4: 00002f97 auipc t6,0x2 + 36a8: ae4f8f93 addi t6,t6,-1308 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + if (val == 0) + 36ac: ee0e11e3 bnez t3,358e <_vprintf_core.constprop.0.isra.0+0x45c> + buf[i++] = '0'; + 36b0: 03000693 li a3,48 + 36b4: 00d10823 sb a3,16(sp) + return i; + 36b8: 4f05 li t5,1 + if (precision >= 0) + 36ba: f00bd1e3 bgez s7,35bc <_vprintf_core.constprop.0.isra.0+0x48a> + for (int i = digit_len - 1; i >= 0; i--) + 36be: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36c2: 07000893 li a7,112 + if (!flag_left && !flag_zero) + 36c6: 016a6d33 or s10,s4,s6 + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 36ca: 4b81 li s7,0 + for (int i = digit_len - 1; i >= 0; i--) + 36cc: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36ce: 0d1c9f63 bne s9,a7,37ac <_vprintf_core.constprop.0.isra.0+0x67a> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 36d2: 00002c97 auipc s9,0x2 + 36d6: acec8c93 addi s9,s9,-1330 # 51a0 <_GLOBAL__sub_I__ZSt3cin+0xda> + prefix_len += 2; + 36da: 2589 addiw a1,a1,2 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 36dc: 017585bb addw a1,a1,s7 + 36e0: 01e585bb addw a1,a1,t5 + 36e4: f085c2e3 blt a1,s0,35e8 <_vprintf_core.constprop.0.isra.0+0x4b6> + if (!flag_left && !flag_zero) + 36e8: 080d0f63 beqz s10,3786 <_vprintf_core.constprop.0.isra.0+0x654> + if (sign_char) + 36ec: 6782 ld a5,0(sp) + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 36ee: 4401 li s0,0 + if (sign_char) + 36f0: f00782e3 beqz a5,35f4 <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, sign_char); + 36f4: 6582 ld a1,0(sp) + 36f6: 8526 mv a0,s1 + 36f8: bc7fd0ef jal 12be <_out_char> + 36fc: bde5 j 35f4 <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, ' '); + 36fe: 02000593 li a1,32 + 3702: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3704: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 3706: bb9fd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 370a: efa402e3 beq s0,s10,35ee <_vprintf_core.constprop.0.isra.0+0x4bc> + _out_char(ctx, ' '); + 370e: 02000593 li a1,32 + 3712: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3714: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 3716: ba9fd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 371a: ffa412e3 bne s0,s10,36fe <_vprintf_core.constprop.0.isra.0+0x5cc> + 371e: bdc1 j 35ee <_vprintf_core.constprop.0.isra.0+0x4bc> + for (int i = 0; i < total_zeros; i++) + 3720: ee0b9ee3 bnez s7,361c <_vprintf_core.constprop.0.isra.0+0x4ea> + for (int i = digit_len - 1; i >= 0; i--) + 3724: 577d li a4,-1 + 3726: f0ec17e3 bne s8,a4,3634 <_vprintf_core.constprop.0.isra.0+0x502> + for (int i = 0; i < padding; i++) + 372a: d405 beqz s0,3652 <_vprintf_core.constprop.0.isra.0+0x520> + 372c: 4a01 li s4,0 + _out_char(ctx, ' '); + 372e: 02000593 li a1,32 + 3732: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3734: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3736: b89fd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 373a: fe8a1ae3 bne s4,s0,372e <_vprintf_core.constprop.0.isra.0+0x5fc> + char spec = *p++; + 373e: 6c22 ld s8,8(sp) + 3740: bc05 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + val = (uint64)va_arg(ap, void *); + 3742: 008c0793 addi a5,s8,8 + 3746: e43e sd a5,8(sp) + else if (len_mod == 1) + 3748: 180e9163 bnez t4,38ca <_vprintf_core.constprop.0.isra.0+0x798> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 374c: 000c6e03 lwu t3,0(s8) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3750: 4581 li a1,0 + 3752: 05800c93 li s9,88 + 3756: e002 sd zero,0(sp) + 3758: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 375a: 00002f97 auipc t6,0x2 + 375e: a16f8f93 addi t6,t6,-1514 # 5170 <_GLOBAL__sub_I__ZSt3cin+0xaa> + 3762: b525 j 358a <_vprintf_core.constprop.0.isra.0+0x458> + int padding = (width > len) ? width - len : 0; + 3764: ca8058e3 blez s0,3414 <_vprintf_core.constprop.0.isra.0+0x2e2> + if (!flag_left) + 3768: ee0a1de3 bnez s4,3662 <_vprintf_core.constprop.0.isra.0+0x530> + int len = 0; + 376c: 4b81 li s7,0 + for (int i = 0; i < padding; i++) + 376e: 4d01 li s10,0 + _out_char(ctx, ' '); + 3770: 02000593 li a1,32 + 3774: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3776: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 3778: b47fd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 377c: fe8d1ae3 bne s10,s0,3770 <_vprintf_core.constprop.0.isra.0+0x63e> + for (int i = 0; i < len; i++) + 3780: c60b9be3 bnez s7,33f6 <_vprintf_core.constprop.0.isra.0+0x2c4> + 3784: b941 j 3414 <_vprintf_core.constprop.0.isra.0+0x2e2> + if (sign_char) + 3786: 6782 ld a5,0(sp) + 3788: 4401 li s0,0 + 378a: f7ad bnez a5,36f4 <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 378c: e60c96e3 bnez s9,35f8 <_vprintf_core.constprop.0.isra.0+0x4c6> + for (int i = 0; i < total_zeros; i++) + 3790: e80b96e3 bnez s7,361c <_vprintf_core.constprop.0.isra.0+0x4ea> + 3794: bd69 j 362e <_vprintf_core.constprop.0.isra.0+0x4fc> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 3796: 41eb8bbb subw s7,s7,t5 + 379a: 8d52 mv s10,s4 + 379c: 4b01 li s6,0 + for (int i = digit_len - 1; i >= 0; i--) + 379e: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 37a2: 07000893 li a7,112 + for (int i = digit_len - 1; i >= 0; i--) + 37a6: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 37a8: f31c85e3 beq s9,a7,36d2 <_vprintf_core.constprop.0.isra.0+0x5a0> + 37ac: cd09 beqz a0,37c6 <_vprintf_core.constprop.0.isra.0+0x694> + 37ae: 000e0c63 beqz t3,37c6 <_vprintf_core.constprop.0.isra.0+0x694> + 37b2: 07800513 li a0,120 + for (int i = digit_len - 1; i >= 0; i--) + 37b6: 00060c1b sext.w s8,a2 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 37ba: f0ac8ce3 beq s9,a0,36d2 <_vprintf_core.constprop.0.isra.0+0x5a0> + 37be: 05800613 li a2,88 + 37c2: 12cc8463 beq s9,a2,38ea <_vprintf_core.constprop.0.isra.0+0x7b8> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 37c6: 00bb85bb addw a1,s7,a1 + 37ca: 01e585bb addw a1,a1,t5 + char *prefix_str = NULL; + 37ce: 4c81 li s9,0 + 37d0: bd11 j 35e4 <_vprintf_core.constprop.0.isra.0+0x4b2> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 37d2: 07000693 li a3,112 + 37d6: 8d52 mv s10,s4 + 37d8: 4b01 li s6,0 + 37da: 08dc8d63 beq s9,a3,3874 <_vprintf_core.constprop.0.isra.0+0x742> + 37de: 5c7d li s8,-1 + char *prefix_str = NULL; + 37e0: 4c81 li s9,0 + 37e2: b509 j 35e4 <_vprintf_core.constprop.0.isra.0+0x4b2> + sign_char = '-'; + 37e4: 02d00793 li a5,45 + val = (uint64)(-sval); + 37e8: 40d00e33 neg t3,a3 + 37ec: 4585 li a1,1 + 37ee: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37f0: 00002f97 auipc t6,0x2 + 37f4: 998f8f93 addi t6,t6,-1640 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + sign_char = '-'; + 37f8: e03e sd a5,0(sp) + 37fa: bb51 j 358e <_vprintf_core.constprop.0.isra.0+0x45c> + s = "(null)"; + 37fc: 00002c97 auipc s9,0x2 + 3800: 9b4c8c93 addi s9,s9,-1612 # 51b0 <_GLOBAL__sub_I__ZSt3cin+0xea> + 3804: bed1 j 33d8 <_vprintf_core.constprop.0.isra.0+0x2a6> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3806: 000c3683 ld a3,0(s8) + 380a: 008c0713 addi a4,s8,8 + 380e: e43a sd a4,8(sp) + 3810: 8dbe mv s11,a5 + 3812: 8e36 mv t3,a3 + if (is_signed) + 3814: bdad j 368e <_vprintf_core.constprop.0.isra.0+0x55c> + int is_signed = (spec == 'd' || spec == 'i'); + 3816: 06900693 li a3,105 + 381a: fedc86e3 beq s9,a3,3806 <_vprintf_core.constprop.0.isra.0+0x6d4> + val = (uint64)va_arg(ap, void *); + 381e: 008c0713 addi a4,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3822: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 3826: e43a sd a4,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3828: 06dc9063 bne s9,a3,3888 <_vprintf_core.constprop.0.isra.0+0x756> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 382c: 000c3e03 ld t3,0(s8) + 3830: 8dbe mv s11,a5 + 3832: 4581 li a1,0 + 3834: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3836: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3838: 00002f97 auipc t6,0x2 + 383c: 950f8f93 addi t6,t6,-1712 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + 3840: b3a9 j 358a <_vprintf_core.constprop.0.isra.0+0x458> + for (int i = 0; i < padding; i++) + 3842: c809 beqz s0,3854 <_vprintf_core.constprop.0.isra.0+0x722> + _out_char(ctx, ' '); + 3844: 02000593 li a1,32 + 3848: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 384a: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 384c: a73fd0ef jal 12be <_out_char> + for (int i = 0; i < padding; i++) + 3850: ff441ae3 bne s0,s4,3844 <_vprintf_core.constprop.0.isra.0+0x712> + _out_char(ctx, c); + 3854: 85e6 mv a1,s9 + 3856: 8526 mv a0,s1 + 3858: a67fd0ef jal 12be <_out_char> + const char *s = va_arg(ap, char *); + 385c: 0c21 addi s8,s8,8 + 385e: ba09 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 3860: 000c3683 ld a3,0(s8) + 3864: 008c0793 addi a5,s8,8 + 3868: e43e sd a5,8(sp) + 386a: 8e36 mv t3,a3 + if (is_signed) + 386c: b50d j 368e <_vprintf_core.constprop.0.isra.0+0x55c> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 386e: 8d52 mv s10,s4 + 3870: 4b01 li s6,0 + 3872: b585 j 36d2 <_vprintf_core.constprop.0.isra.0+0x5a0> + digit_len = 0; + 3874: 4f01 li t5,0 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3876: 5c7d li s8,-1 + prefix_str = (spec == 'X') ? "0X" : "0x"; + 3878: 00002c97 auipc s9,0x2 + 387c: 928c8c93 addi s9,s9,-1752 # 51a0 <_GLOBAL__sub_I__ZSt3cin+0xda> + 3880: bda9 j 36da <_vprintf_core.constprop.0.isra.0+0x5a8> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3882: 8d52 mv s10,s4 + 3884: 4b01 li s6,0 + 3886: b735 j 37b2 <_vprintf_core.constprop.0.isra.0+0x680> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3888: 07000693 li a3,112 + 388c: 04dc8263 beq s9,a3,38d0 <_vprintf_core.constprop.0.isra.0+0x79e> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3890: 000c3e03 ld t3,0(s8) + 3894: 8dbe mv s11,a5 + 3896: 4581 li a1,0 + 3898: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 389a: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 389c: 00002f97 auipc t6,0x2 + 38a0: 8ecf8f93 addi t6,t6,-1812 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + 38a4: b1dd j 358a <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 38a6: 000c3e03 ld t3,0(s8) + 38aa: 4581 li a1,0 + 38ac: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 38ae: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 38b0: 00002f97 auipc t6,0x2 + 38b4: 8d8f8f93 addi t6,t6,-1832 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + 38b8: b9c9 j 358a <_vprintf_core.constprop.0.isra.0+0x458> + char spec = *p++; + 38ba: 8dbe mv s11,a5 + 38bc: b911 j 34d0 <_vprintf_core.constprop.0.isra.0+0x39e> + for (int i = digit_len - 1; i >= 0; i--) + 38be: 577d li a4,-1 + 38c0: 4401 li s0,0 + 38c2: d6ec19e3 bne s8,a4,3634 <_vprintf_core.constprop.0.isra.0+0x502> + char spec = *p++; + 38c6: 6c22 ld s8,8(sp) + 38c8: b065 j 3170 <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 38ca: 000c3e03 ld t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 38ce: b549 j 3750 <_vprintf_core.constprop.0.isra.0+0x61e> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 38d0: 8dbe mv s11,a5 + val = (uint64)va_arg(ap, void *); + 38d2: 000c3e03 ld t3,0(s8) + 38d6: 4581 li a1,0 + 38d8: 07000c93 li s9,112 + 38dc: e002 sd zero,0(sp) + 38de: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 38e0: 00002f97 auipc t6,0x2 + 38e4: 8a8f8f93 addi t6,t6,-1880 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + 38e8: b14d j 358a <_vprintf_core.constprop.0.isra.0+0x458> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 38ea: 00002c97 auipc s9,0x2 + 38ee: 8bec8c93 addi s9,s9,-1858 # 51a8 <_GLOBAL__sub_I__ZSt3cin+0xe2> + 38f2: b3e5 j 36da <_vprintf_core.constprop.0.isra.0+0x5a8> + val = (uint64)va_arg(ap, void *); + 38f4: 008c0713 addi a4,s8,8 + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 38f8: 000c3e03 ld t3,0(s8) + val = (uint64)va_arg(ap, void *); + 38fc: e43a sd a4,8(sp) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 38fe: 8dbe mv s11,a5 + 3900: bd81 j 3750 <_vprintf_core.constprop.0.isra.0+0x61e> + 3902: 8d52 mv s10,s4 + 3904: 4b01 li s6,0 + 3906: 4b81 li s7,0 + 3908: bd59 j 379e <_vprintf_core.constprop.0.isra.0+0x66c> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 390a: 07000693 li a3,112 + 390e: fcdc82e3 beq s9,a3,38d2 <_vprintf_core.constprop.0.isra.0+0x7a0> + else if (len_mod == 1) + 3912: 01ce8c63 beq t4,t3,392a <_vprintf_core.constprop.0.isra.0+0x7f8> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3916: 000c6e03 lwu t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 391a: 4581 li a1,0 + 391c: e002 sd zero,0(sp) + 391e: 4329 li t1,10 + 3920: 00002f97 auipc t6,0x2 + 3924: 868f8f93 addi t6,t6,-1944 # 5188 <_GLOBAL__sub_I__ZSt3cin+0xc2> + 3928: b18d j 358a <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 392a: 000c3e03 ld t3,0(s8) + if (is_signed) + 392e: b7f5 j 391a <_vprintf_core.constprop.0.isra.0+0x7e8> + +0000000000003930 : +{ + 3930: 7139 addi sp,sp,-64 + 3932: f822 sd s0,48(sp) + 3934: f426 sd s1,40(sp) + 3936: 842e mv s0,a1 + 3938: 84aa mv s1,a0 + 393a: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 393c: 850a mv a0,sp + 393e: 8636 mv a2,a3 +{ + 3940: fc06 sd ra,56(sp) + ctx.buf = str; + 3942: e026 sd s1,0(sp) + ctx.limit = size; + 3944: e422 sd s0,8(sp) + ctx.written = 0; + 3946: e802 sd zero,16(sp) + ctx.stream = NULL; + 3948: ec02 sd zero,24(sp) + _vprintf_core(&ctx, format, ap); + 394a: fe8ff0ef jal 3132 <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 394e: 6542 ld a0,16(sp) + if (size > 0) + 3950: c411 beqz s0,395c + if (ctx.written < size) + 3952: 00857b63 bgeu a0,s0,3968 + str[ctx.written] = '\0'; + 3956: 94aa add s1,s1,a0 + 3958: 00048023 sb zero,0(s1) +} + 395c: 70e2 ld ra,56(sp) + 395e: 7442 ld s0,48(sp) + 3960: 74a2 ld s1,40(sp) + 3962: 2501 sext.w a0,a0 + 3964: 6121 addi sp,sp,64 + 3966: 8082 ret + str[size - 1] = '\0'; + 3968: 94a2 add s1,s1,s0 + 396a: fe048fa3 sb zero,-1(s1) +} + 396e: 70e2 ld ra,56(sp) + 3970: 7442 ld s0,48(sp) + 3972: 74a2 ld s1,40(sp) + 3974: 2501 sext.w a0,a0 + 3976: 6121 addi sp,sp,64 + 3978: 8082 ret + +000000000000397a : +{ + 397a: 7119 addi sp,sp,-128 + 397c: e0a2 sd s0,64(sp) + 397e: fc26 sd s1,56(sp) + 3980: 842e mv s0,a1 + 3982: 84aa mv s1,a0 + 3984: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 3986: 0808 addi a0,sp,16 + va_start(ap, format); + 3988: 08b0 addi a2,sp,88 +{ + 398a: e486 sd ra,72(sp) + 398c: ecb6 sd a3,88(sp) + 398e: f0ba sd a4,96(sp) + 3990: f4be sd a5,104(sp) + 3992: f8c2 sd a6,112(sp) + 3994: fcc6 sd a7,120(sp) + va_start(ap, format); + 3996: e432 sd a2,8(sp) + ctx.buf = str; + 3998: e826 sd s1,16(sp) + ctx.limit = size; + 399a: ec22 sd s0,24(sp) + ctx.written = 0; + 399c: f002 sd zero,32(sp) + ctx.stream = NULL; + 399e: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 39a0: f92ff0ef jal 3132 <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 39a4: 7502 ld a0,32(sp) + if (size > 0) + 39a6: c411 beqz s0,39b2 + if (ctx.written < size) + 39a8: 00857b63 bgeu a0,s0,39be + str[ctx.written] = '\0'; + 39ac: 94aa add s1,s1,a0 + 39ae: 00048023 sb zero,0(s1) +} + 39b2: 60a6 ld ra,72(sp) + 39b4: 6406 ld s0,64(sp) + 39b6: 74e2 ld s1,56(sp) + 39b8: 2501 sext.w a0,a0 + 39ba: 6109 addi sp,sp,128 + 39bc: 8082 ret + str[size - 1] = '\0'; + 39be: 94a2 add s1,s1,s0 + 39c0: fe048fa3 sb zero,-1(s1) +} + 39c4: 60a6 ld ra,72(sp) + 39c6: 6406 ld s0,64(sp) + 39c8: 74e2 ld s1,56(sp) + 39ca: 2501 sext.w a0,a0 + 39cc: 6109 addi sp,sp,128 + 39ce: 8082 ret + +00000000000039d0 : +{ + 39d0: 7119 addi sp,sp,-128 + va_start(ap, format); + 39d2: 04810313 addi t1,sp,72 +{ + 39d6: e4ae sd a1,72(sp) + 39d8: e8b2 sd a2,80(sp) + 39da: f4be sd a5,104(sp) + _vprintf_core(&ctx, format, ap); + 39dc: 85aa mv a1,a0 + ctx.stream = stdout; + 39de: 00004797 auipc a5,0x4 + 39e2: e027b783 ld a5,-510(a5) # 77e0 + _vprintf_core(&ctx, format, ap); + 39e6: 0808 addi a0,sp,16 + 39e8: 861a mv a2,t1 +{ + 39ea: fc06 sd ra,56(sp) + 39ec: ecb6 sd a3,88(sp) + 39ee: f0ba sd a4,96(sp) + 39f0: f8c2 sd a6,112(sp) + 39f2: fcc6 sd a7,120(sp) + va_start(ap, format); + 39f4: e41a sd t1,8(sp) + ctx.buf = NULL; + 39f6: e802 sd zero,16(sp) + ctx.limit = 0; + 39f8: ec02 sd zero,24(sp) + ctx.written = 0; + 39fa: f002 sd zero,32(sp) + ctx.stream = stdout; + 39fc: f43e sd a5,40(sp) + _vprintf_core(&ctx, format, ap); + 39fe: f34ff0ef jal 3132 <_vprintf_core.constprop.0.isra.0> +} + 3a02: 70e2 ld ra,56(sp) + 3a04: 5502 lw a0,32(sp) + 3a06: 6109 addi sp,sp,128 + 3a08: 8082 ret + +0000000000003a0a : +{ + 3a0a: 7159 addi sp,sp,-112 + va_start(ap, format); + 3a0c: 04010e13 addi t3,sp,64 +{ + 3a10: 8eaa mv t4,a0 + ctx.fd = -1; + 3a12: 537d li t1,-1 +{ + 3a14: e0b2 sd a2,64(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3a16: 0808 addi a0,sp,16 + 3a18: 8672 mv a2,t3 +{ + 3a1a: fc06 sd ra,56(sp) + 3a1c: e4b6 sd a3,72(sp) + 3a1e: e8ba sd a4,80(sp) + 3a20: ecbe sd a5,88(sp) + 3a22: f0c2 sd a6,96(sp) + 3a24: f4c6 sd a7,104(sp) + va_start(ap, format); + 3a26: e472 sd t3,8(sp) + ctx.buf = str; + 3a28: e876 sd t4,16(sp) + ctx.fd = -1; + 3a2a: cc1a sw t1,24(sp) + ctx.pos = 0; + 3a2c: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3a2e: d41a sw t1,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3a30: 81efd0ef jal a4e <_vscanf_core.constprop.0> +} + 3a34: 70e2 ld ra,56(sp) + 3a36: 6165 addi sp,sp,112 + 3a38: 8082 ret + +0000000000003a3a : +{ + 3a3a: 7119 addi sp,sp,-128 + va_start(ap, format); + 3a3c: 04810313 addi t1,sp,72 +{ + 3a40: e4ae sd a1,72(sp) + 3a42: e8b2 sd a2,80(sp) + 3a44: f4be sd a5,104(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3a46: 85aa mv a1,a0 + ctx.ungotten = -1; + 3a48: 57fd li a5,-1 + int ret = _vscanf_core(&ctx, format, ap); + 3a4a: 0808 addi a0,sp,16 + 3a4c: 861a mv a2,t1 +{ + 3a4e: fc06 sd ra,56(sp) + 3a50: ecb6 sd a3,88(sp) + 3a52: f0ba sd a4,96(sp) + 3a54: f8c2 sd a6,112(sp) + 3a56: fcc6 sd a7,120(sp) + va_start(ap, format); + 3a58: e41a sd t1,8(sp) + ctx.buf = NULL; + 3a5a: e802 sd zero,16(sp) + ctx.fd = STDIN_FD; + 3a5c: cc02 sw zero,24(sp) + ctx.pos = 0; + 3a5e: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3a60: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3a62: fedfc0ef jal a4e <_vscanf_core.constprop.0> +} + 3a66: 70e2 ld ra,56(sp) + 3a68: 6109 addi sp,sp,128 + 3a6a: 8082 ret + +0000000000003a6c : +{ + 3a6c: 1101 addi sp,sp,-32 + 3a6e: e426 sd s1,8(sp) + 3a70: 84ae mv s1,a1 + 3a72: e04a sd s2,0(sp) + if (strcmp(mode, "r") == 0) + 3a74: 00001597 auipc a1,0x1 + 3a78: 75458593 addi a1,a1,1876 # 51c8 <_GLOBAL__sub_I__ZSt3cin+0x102> +{ + 3a7c: 892a mv s2,a0 + if (strcmp(mode, "r") == 0) + 3a7e: 8526 mv a0,s1 +{ + 3a80: e822 sd s0,16(sp) + 3a82: ec06 sd ra,24(sp) + if (strcmp(mode, "r") == 0) + 3a84: 298010ef jal 4d1c + 3a88: 842a mv s0,a0 + 3a8a: c919 beqz a0,3aa0 + else if (strcmp(mode, "w") == 0) + 3a8c: 00001597 auipc a1,0x1 + 3a90: 74458593 addi a1,a1,1860 # 51d0 <_GLOBAL__sub_I__ZSt3cin+0x10a> + 3a94: 8526 mv a0,s1 + 3a96: 286010ef jal 4d1c + flags = O_WRONLY | O_CREAT | O_TRUNC; + 3a9a: 24100413 li s0,577 + else if (strcmp(mode, "w") == 0) + 3a9e: ed39 bnez a0,3afc + int64 fd = open(filename, flags); + 3aa0: 85a2 mv a1,s0 + 3aa2: 854a mv a0,s2 + 3aa4: f42fc0ef jal 1e6 + 3aa8: 84aa mv s1,a0 + if (fd < 0) + 3aaa: 06054c63 bltz a0,3b22 + FILE *f = (FILE *)malloc(sizeof(FILE)); + 3aae: 42000513 li a0,1056 + 3ab2: 2f3000ef jal 45a4 + 3ab6: 892a mv s2,a0 + if (!f) + 3ab8: c53d beqz a0,3b26 + memset(f, 0, sizeof(FILE)); + 3aba: 42000613 li a2,1056 + 3abe: 4581 li a1,0 + 3ac0: 0ee010ef jal 4bae + if (fd == 1) + 3ac4: 4785 li a5,1 + f->fd = (int)fd; + 3ac6: 00992023 sw s1,0(s2) + f->flags = flags; + 3aca: 00892223 sw s0,4(s2) + if (fd == 1) + 3ace: 00f48e63 beq s1,a5,3aea + else if (fd == 2) + 3ad2: 4789 li a5,2 + 3ad4: 00f48b63 beq s1,a5,3aea + f->buf_mode = 0; + 3ad8: 40092e23 sw zero,1052(s2) +} + 3adc: 60e2 ld ra,24(sp) + 3ade: 6442 ld s0,16(sp) + 3ae0: 64a2 ld s1,8(sp) + 3ae2: 854a mv a0,s2 + 3ae4: 6902 ld s2,0(sp) + 3ae6: 6105 addi sp,sp,32 + 3ae8: 8082 ret + 3aea: 60e2 ld ra,24(sp) + 3aec: 6442 ld s0,16(sp) + f->buf_mode = 2; + 3aee: 40992e23 sw s1,1052(s2) +} + 3af2: 854a mv a0,s2 + 3af4: 64a2 ld s1,8(sp) + 3af6: 6902 ld s2,0(sp) + 3af8: 6105 addi sp,sp,32 + 3afa: 8082 ret + else if (strcmp(mode, "a") == 0) + 3afc: 00001597 auipc a1,0x1 + 3b00: 6dc58593 addi a1,a1,1756 # 51d8 <_GLOBAL__sub_I__ZSt3cin+0x112> + 3b04: 8526 mv a0,s1 + 3b06: 216010ef jal 4d1c + flags = O_WRONLY | O_CREAT | O_APPEND; + 3b0a: 44100413 li s0,1089 + else if (strcmp(mode, "a") == 0) + 3b0e: d949 beqz a0,3aa0 + else if (strcmp(mode, "r+") == 0) + 3b10: 00001597 auipc a1,0x1 + 3b14: 6d058593 addi a1,a1,1744 # 51e0 <_GLOBAL__sub_I__ZSt3cin+0x11a> + 3b18: 8526 mv a0,s1 + 3b1a: 202010ef jal 4d1c + flags = O_RDWR; + 3b1e: 4409 li s0,2 + else if (strcmp(mode, "r+") == 0) + 3b20: d141 beqz a0,3aa0 + return NULL; + 3b22: 4901 li s2,0 + 3b24: bf65 j 3adc + close(fd); + 3b26: 8526 mv a0,s1 + 3b28: ea6fc0ef jal 1ce + return NULL; + 3b2c: 4901 li s2,0 + 3b2e: b77d j 3adc + +0000000000003b30 : + if (!stream) + 3b30: cd29 beqz a0,3b8a + if (stream->buf_write_pos > 0) + 3b32: 41052603 lw a2,1040(a0) +{ + 3b36: 1141 addi sp,sp,-16 + 3b38: e022 sd s0,0(sp) + 3b3a: e406 sd ra,8(sp) + 3b3c: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3b3e: 02c04a63 bgtz a2,3b72 + if (stream != stdin && stream != stdout && stream != stderr) + 3b42: 00004797 auipc a5,0x4 + 3b46: c9e78793 addi a5,a5,-866 # 77e0 + 3b4a: 6798 ld a4,8(a5) + 3b4c: 00870e63 beq a4,s0,3b68 + 3b50: 6398 ld a4,0(a5) + 3b52: 00870b63 beq a4,s0,3b68 + 3b56: 6b9c ld a5,16(a5) + 3b58: 00878863 beq a5,s0,3b68 + close(stream->fd); + 3b5c: 4008 lw a0,0(s0) + 3b5e: e70fc0ef jal 1ce + free(stream); + 3b62: 8522 mv a0,s0 + 3b64: 1cb000ef jal 452e +} + 3b68: 60a2 ld ra,8(sp) + 3b6a: 6402 ld s0,0(sp) + return 0; + 3b6c: 4501 li a0,0 +} + 3b6e: 0141 addi sp,sp,16 + 3b70: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3b72: 4108 lw a0,0(a0) + 3b74: 01040593 addi a1,s0,16 + 3b78: e4efc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3b7c: 41042783 lw a5,1040(s0) + 3b80: 00f54763 blt a0,a5,3b8e + stream->buf_write_pos = 0; + 3b84: 40042823 sw zero,1040(s0) + 3b88: bf6d j 3b42 + return -1; + 3b8a: 557d li a0,-1 +} + 3b8c: 8082 ret + stream->error = 1; + 3b8e: 4785 li a5,1 + 3b90: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3b92: 40042823 sw zero,1040(s0) + return EOF; + 3b96: b775 j 3b42 + +0000000000003b98 : + if (!stream) + 3b98: c121 beqz a0,3bd8 + if (stream->buf_write_pos > 0) + 3b9a: 41052603 lw a2,1040(a0) +{ + 3b9e: 1141 addi sp,sp,-16 + 3ba0: e022 sd s0,0(sp) + 3ba2: e406 sd ra,8(sp) + 3ba4: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3ba6: 00c04763 bgtz a2,3bb4 + return 0; + 3baa: 4501 li a0,0 +} + 3bac: 60a2 ld ra,8(sp) + 3bae: 6402 ld s0,0(sp) + 3bb0: 0141 addi sp,sp,16 + 3bb2: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3bb4: 4108 lw a0,0(a0) + 3bb6: 01040593 addi a1,s0,16 + 3bba: e0cfc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3bbe: 41042783 lw a5,1040(s0) + 3bc2: 00f54563 blt a0,a5,3bcc + stream->buf_write_pos = 0; + 3bc6: 40042823 sw zero,1040(s0) + 3bca: b7c5 j 3baa + stream->error = 1; + 3bcc: 4785 li a5,1 + 3bce: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3bd0: 40042823 sw zero,1040(s0) + return EOF; + 3bd4: 557d li a0,-1 + 3bd6: bfd9 j 3bac + 3bd8: 557d li a0,-1 +} + 3bda: 8082 ret + +0000000000003bdc : +{ + 3bdc: 7159 addi sp,sp,-112 + 3bde: fc06 sd ra,56(sp) + 3be0: e0b2 sd a2,64(sp) + 3be2: e4b6 sd a3,72(sp) + 3be4: e8ba sd a4,80(sp) + 3be6: ecbe sd a5,88(sp) + 3be8: f0c2 sd a6,96(sp) + 3bea: f4c6 sd a7,104(sp) + if (!stream) + 3bec: cd19 beqz a0,3c0a + va_start(ap, format); + 3bee: 832a mv t1,a0 + 3bf0: 0090 addi a2,sp,64 + _vprintf_core(&ctx, format, ap); + 3bf2: 0808 addi a0,sp,16 + va_start(ap, format); + 3bf4: e432 sd a2,8(sp) + ctx.buf = NULL; + 3bf6: e802 sd zero,16(sp) + ctx.limit = 0; + 3bf8: ec02 sd zero,24(sp) + ctx.written = 0; + 3bfa: f002 sd zero,32(sp) + ctx.stream = stream; + 3bfc: f41a sd t1,40(sp) + _vprintf_core(&ctx, format, ap); + 3bfe: d34ff0ef jal 3132 <_vprintf_core.constprop.0.isra.0> + return (int)ctx.written; + 3c02: 5502 lw a0,32(sp) +} + 3c04: 70e2 ld ra,56(sp) + 3c06: 6165 addi sp,sp,112 + 3c08: 8082 ret + return -1; + 3c0a: 557d li a0,-1 + 3c0c: bfe5 j 3c04 + +0000000000003c0e : +{ + 3c0e: 7159 addi sp,sp,-112 + 3c10: fc06 sd ra,56(sp) + 3c12: e0b2 sd a2,64(sp) + 3c14: e4b6 sd a3,72(sp) + 3c16: e8ba sd a4,80(sp) + 3c18: ecbe sd a5,88(sp) + 3c1a: f0c2 sd a6,96(sp) + 3c1c: f4c6 sd a7,104(sp) + if (!stream) + 3c1e: cd19 beqz a0,3c3c + ctx.fd = stream->fd; + 3c20: 411c lw a5,0(a0) + va_start(ap, format); + 3c22: 0090 addi a2,sp,64 + int ret = _vscanf_core(&ctx, format, ap); + 3c24: 0808 addi a0,sp,16 + ctx.fd = stream->fd; + 3c26: cc3e sw a5,24(sp) + ctx.ungotten = -1; + 3c28: 57fd li a5,-1 + va_start(ap, format); + 3c2a: e432 sd a2,8(sp) + ctx.buf = NULL; + 3c2c: e802 sd zero,16(sp) + ctx.pos = 0; + 3c2e: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3c30: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3c32: e1dfc0ef jal a4e <_vscanf_core.constprop.0> +} + 3c36: 70e2 ld ra,56(sp) + 3c38: 6165 addi sp,sp,112 + 3c3a: 8082 ret + return -1; + 3c3c: 557d li a0,-1 + 3c3e: bfe5 j 3c36 + +0000000000003c40 : + if (!stream) + 3c40: c1e1 beqz a1,3d00 +{ + 3c42: 7179 addi sp,sp,-48 + 3c44: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 3c46: 41c5a903 lw s2,1052(a1) +{ + 3c4a: f022 sd s0,32(sp) + 3c4c: ec26 sd s1,24(sp) + 3c4e: f406 sd ra,40(sp) + if (stream->buf_mode == 2) + 3c50: 4789 li a5,2 + 3c52: 842e mv s0,a1 + 3c54: 84aa mv s1,a0 + char ch = (char)c; + 3c56: 0ff57713 zext.b a4,a0 + if (stream->buf_mode == 2) + 3c5a: 02f90963 beq s2,a5,3c8c + stream->buffer[stream->buf_write_pos++] = (char)c; + 3c5e: 4105a783 lw a5,1040(a1) + if (stream->buf_write_pos >= BUFSIZ) + 3c62: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3c66: 0017861b addiw a2,a5,1 + 3c6a: 40c5a823 sw a2,1040(a1) + 3c6e: 97ae add a5,a5,a1 + 3c70: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3c74: 06c6c463 blt a3,a2,3cdc + else if (stream->buf_mode == 1 && c == '\n') + 3c78: 4785 li a5,1 + 3c7a: 02f90e63 beq s2,a5,3cb6 + return c; + 3c7e: 8526 mv a0,s1 +} + 3c80: 70a2 ld ra,40(sp) + 3c82: 7402 ld s0,32(sp) + 3c84: 64e2 ld s1,24(sp) + 3c86: 6942 ld s2,16(sp) + 3c88: 6145 addi sp,sp,48 + 3c8a: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3c8c: 4188 lw a0,0(a1) + 3c8e: 4605 li a2,1 + 3c90: 00f10593 addi a1,sp,15 + char ch = (char)c; + 3c94: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3c98: d2efc0ef jal 1c6 + 3c9c: 872a mv a4,a0 + 3c9e: 4785 li a5,1 + return c; + 3ca0: 8526 mv a0,s1 + if (write(stream->fd, &ch, 1) != 1) + 3ca2: fcf70fe3 beq a4,a5,3c80 +} + 3ca6: 70a2 ld ra,40(sp) + stream->error = 1; + 3ca8: c41c sw a5,8(s0) +} + 3caa: 7402 ld s0,32(sp) + 3cac: 64e2 ld s1,24(sp) + 3cae: 6942 ld s2,16(sp) + return EOF; + 3cb0: 557d li a0,-1 +} + 3cb2: 6145 addi sp,sp,48 + 3cb4: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3cb6: 47a9 li a5,10 + 3cb8: fcf513e3 bne a0,a5,3c7e + if (stream->buf_write_pos > 0) + 3cbc: fcc051e3 blez a2,3c7e + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3cc0: 4188 lw a0,0(a1) + 3cc2: 05c1 addi a1,a1,16 + 3cc4: d02fc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3cc8: 41042783 lw a5,1040(s0) + 3ccc: 02f55063 bge a0,a5,3cec + stream->error = 1; + 3cd0: 01242423 sw s2,8(s0) + stream->buf_write_pos = 0; + 3cd4: 40042823 sw zero,1040(s0) + return c; + 3cd8: 8526 mv a0,s1 + 3cda: b75d j 3c80 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3cdc: 4188 lw a0,0(a1) + 3cde: 05c1 addi a1,a1,16 + 3ce0: ce6fc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3ce4: 41042783 lw a5,1040(s0) + 3ce8: 00f54663 blt a0,a5,3cf4 + stream->buf_write_pos = 0; + 3cec: 40042823 sw zero,1040(s0) + return c; + 3cf0: 8526 mv a0,s1 + 3cf2: b779 j 3c80 + stream->error = 1; + 3cf4: 4785 li a5,1 + 3cf6: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3cf8: 40042823 sw zero,1040(s0) + return c; + 3cfc: 8526 mv a0,s1 + 3cfe: b749 j 3c80 + return EOF; + 3d00: 557d li a0,-1 +} + 3d02: 8082 ret + +0000000000003d04 : + if (!stream) + 3d04: c1ed beqz a1,3de6 +{ + 3d06: 711d addi sp,sp,-96 + 3d08: e4a6 sd s1,72(sp) + 3d0a: ec86 sd ra,88(sp) + while (*s) + 3d0c: 00054703 lbu a4,0(a0) + 3d10: 84aa mv s1,a0 + 3d12: cf25 beqz a4,3d8a + 3d14: e8a2 sd s0,80(sp) + 3d16: e0ca sd s2,64(sp) + 3d18: fc4e sd s3,56(sp) + 3d1a: f852 sd s4,48(sp) + 3d1c: f456 sd s5,40(sp) + 3d1e: f05a sd s6,32(sp) + 3d20: ec5e sd s7,24(sp) + 3d22: 842e mv s0,a1 + if (stream->buf_mode == 2) + 3d24: 4909 li s2,2 + if (stream->buf_write_pos >= BUFSIZ) + 3d26: 3ff00b13 li s6,1023 + else if (stream->buf_mode == 1 && c == '\n') + 3d2a: 4985 li s3,1 + 3d2c: 4a29 li s4,10 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d2e: 01058a93 addi s5,a1,16 + if (write(stream->fd, &ch, 1) != 1) + 3d32: 00f10b93 addi s7,sp,15 + 3d36: a031 j 3d42 + else if (stream->buf_mode == 1 && c == '\n') + 3d38: 09368563 beq a3,s3,3dc2 + while (*s) + 3d3c: 0004c703 lbu a4,0(s1) + 3d40: cf15 beqz a4,3d7c + if (stream->buf_mode == 2) + 3d42: 41c42683 lw a3,1052(s0) + if (fputc(*s++, stream) == EOF) + 3d46: 0485 addi s1,s1,1 + if (stream->buf_mode == 2) + 3d48: 05268663 beq a3,s2,3d94 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3d4c: 41042783 lw a5,1040(s0) + 3d50: 0017861b addiw a2,a5,1 + 3d54: 40c42823 sw a2,1040(s0) + 3d58: 97a2 add a5,a5,s0 + 3d5a: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3d5e: fccb5de3 bge s6,a2,3d38 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d62: 4008 lw a0,0(s0) + 3d64: 85d6 mv a1,s5 + 3d66: c60fc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3d6a: 41042783 lw a5,1040(s0) + 3d6e: 06f54763 blt a0,a5,3ddc + stream->buf_write_pos = 0; + 3d72: 40042823 sw zero,1040(s0) + while (*s) + 3d76: 0004c703 lbu a4,0(s1) + 3d7a: f761 bnez a4,3d42 + 3d7c: 6446 ld s0,80(sp) + 3d7e: 6906 ld s2,64(sp) + 3d80: 79e2 ld s3,56(sp) + 3d82: 7a42 ld s4,48(sp) + 3d84: 7aa2 ld s5,40(sp) + 3d86: 7b02 ld s6,32(sp) + 3d88: 6be2 ld s7,24(sp) +} + 3d8a: 60e6 ld ra,88(sp) + 3d8c: 64a6 ld s1,72(sp) + return 0; + 3d8e: 4501 li a0,0 +} + 3d90: 6125 addi sp,sp,96 + 3d92: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3d94: 4008 lw a0,0(s0) + 3d96: 4605 li a2,1 + 3d98: 85de mv a1,s7 + char ch = (char)c; + 3d9a: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3d9e: c28fc0ef jal 1c6 + 3da2: f9350de3 beq a0,s3,3d3c + stream->error = 1; + 3da6: 01342423 sw s3,8(s0) +} + 3daa: 60e6 ld ra,88(sp) + 3dac: 6446 ld s0,80(sp) + 3dae: 6906 ld s2,64(sp) + 3db0: 79e2 ld s3,56(sp) + 3db2: 7a42 ld s4,48(sp) + 3db4: 7aa2 ld s5,40(sp) + 3db6: 7b02 ld s6,32(sp) + 3db8: 6be2 ld s7,24(sp) + 3dba: 64a6 ld s1,72(sp) + return -1; + 3dbc: 557d li a0,-1 +} + 3dbe: 6125 addi sp,sp,96 + 3dc0: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3dc2: f7471de3 bne a4,s4,3d3c + if (stream->buf_write_pos > 0) + 3dc6: f6c05be3 blez a2,3d3c + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3dca: 4008 lw a0,0(s0) + 3dcc: 01040593 addi a1,s0,16 + 3dd0: bf6fc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3dd4: 41042783 lw a5,1040(s0) + 3dd8: f8f55de3 bge a0,a5,3d72 + stream->error = 1; + 3ddc: 4785 li a5,1 + 3dde: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3de0: 40042823 sw zero,1040(s0) + return EOF; + 3de4: bfa1 j 3d3c + return -1; + 3de6: 557d li a0,-1 +} + 3de8: 8082 ret + +0000000000003dea : + if (!stream) + 3dea: c949 beqz a0,3e7c + if (stream->buf_write_pos > 0) + 3dec: 41052603 lw a2,1040(a0) +{ + 3df0: 1141 addi sp,sp,-16 + 3df2: e022 sd s0,0(sp) + 3df4: e406 sd ra,8(sp) + 3df6: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3df8: 04c04863 bgtz a2,3e48 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3dfc: 41442783 lw a5,1044(s0) + 3e00: 41842703 lw a4,1048(s0) + 3e04: 00e7dd63 bge a5,a4,3e1e + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e08: 0017871b addiw a4,a5,1 + 3e0c: 40e42a23 sw a4,1044(s0) + 3e10: 943e add s0,s0,a5 + 3e12: 01044503 lbu a0,16(s0) +} + 3e16: 60a2 ld ra,8(sp) + 3e18: 6402 ld s0,0(sp) + 3e1a: 0141 addi sp,sp,16 + 3e1c: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3e1e: 4008 lw a0,0(s0) + 3e20: 40000613 li a2,1024 + 3e24: 01040593 addi a1,s0,16 + 3e28: b96fc0ef jal 1be + 3e2c: 87aa mv a5,a0 + if (ret <= 0) + 3e2e: 02a05e63 blez a0,3e6a + stream->buf_read_cnt = (int)ret; + 3e32: 40f42c23 sw a5,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e36: 4785 li a5,1 + 3e38: 01044503 lbu a0,16(s0) +} + 3e3c: 60a2 ld ra,8(sp) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e3e: 40f42a23 sw a5,1044(s0) +} + 3e42: 6402 ld s0,0(sp) + 3e44: 0141 addi sp,sp,16 + 3e46: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3e48: 4108 lw a0,0(a0) + 3e4a: 01040593 addi a1,s0,16 + 3e4e: b78fc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3e52: 41042783 lw a5,1040(s0) + 3e56: 00f54563 blt a0,a5,3e60 + stream->buf_write_pos = 0; + 3e5a: 40042823 sw zero,1040(s0) + 3e5e: bf79 j 3dfc + stream->error = 1; + 3e60: 4785 li a5,1 + 3e62: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3e64: 40042823 sw zero,1040(s0) + return EOF; + 3e68: bf51 j 3dfc + if (ret == 0) + 3e6a: e509 bnez a0,3e74 + stream->eof = 1; + 3e6c: 4785 li a5,1 + 3e6e: c45c sw a5,12(s0) + return EOF; + 3e70: 557d li a0,-1 + 3e72: b755 j 3e16 + stream->error = 1; + 3e74: 4785 li a5,1 + 3e76: c41c sw a5,8(s0) + return EOF; + 3e78: 557d li a0,-1 + 3e7a: bf71 j 3e16 + 3e7c: 557d li a0,-1 +} + 3e7e: 8082 ret + +0000000000003e80 : + if (!stream || n <= 0) + 3e80: ce5d beqz a2,3f3e + 3e82: 0ab05e63 blez a1,3f3e +{ + 3e86: 715d addi sp,sp,-80 + 3e88: e0a2 sd s0,64(sp) + 3e8a: fc26 sd s1,56(sp) + 3e8c: f84a sd s2,48(sp) + 3e8e: f44e sd s3,40(sp) + 3e90: f052 sd s4,32(sp) + 3e92: ec56 sd s5,24(sp) + 3e94: e85a sd s6,16(sp) + 3e96: e45e sd s7,8(sp) + 3e98: e486 sd ra,72(sp) + 3e9a: 8432 mv s0,a2 + 3e9c: 8aaa mv s5,a0 + 3e9e: 892a mv s2,a0 + 3ea0: fff58b9b addiw s7,a1,-1 + int i = 0, c; + 3ea4: 4481 li s1,0 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3ea6: 01060993 addi s3,a2,16 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3eaa: 4b05 li s6,1 + if (c == '\n') + 3eac: 4a29 li s4,10 + while (i < n - 1) + 3eae: 05748163 beq s1,s7,3ef0 + if (stream->buf_write_pos > 0) + 3eb2: 41042603 lw a2,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3eb6: 85ce mv a1,s3 + if (stream->buf_write_pos > 0) + 3eb8: 06c04963 bgtz a2,3f2a + if (stream->buf_read_pos < stream->buf_read_cnt) + 3ebc: 41442783 lw a5,1044(s0) + 3ec0: 41842703 lw a4,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3ec4: 40000613 li a2,1024 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3ec8: 0017851b addiw a0,a5,1 + 3ecc: 00f406b3 add a3,s0,a5 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3ed0: 85ce mv a1,s3 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3ed2: 02e7de63 bge a5,a4,3f0e + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3ed6: 40a42a23 sw a0,1044(s0) + 3eda: 0106c783 lbu a5,16(a3) + 3ede: 0007871b sext.w a4,a5 + str[i++] = (char)c; + 3ee2: 00f90023 sb a5,0(s2) + 3ee6: 2485 addiw s1,s1,1 + if (c == '\n') + 3ee8: 0905 addi s2,s2,1 + 3eea: fd4712e3 bne a4,s4,3eae + str[i++] = (char)c; + 3eee: 8ba6 mv s7,s1 + str[i] = '\0'; + 3ef0: 9bd6 add s7,s7,s5 + 3ef2: 000b8023 sb zero,0(s7) + return str; + 3ef6: 8556 mv a0,s5 +} + 3ef8: 60a6 ld ra,72(sp) + 3efa: 6406 ld s0,64(sp) + 3efc: 74e2 ld s1,56(sp) + 3efe: 7942 ld s2,48(sp) + 3f00: 79a2 ld s3,40(sp) + 3f02: 7a02 ld s4,32(sp) + 3f04: 6ae2 ld s5,24(sp) + 3f06: 6b42 ld s6,16(sp) + 3f08: 6ba2 ld s7,8(sp) + 3f0a: 6161 addi sp,sp,80 + 3f0c: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3f0e: 4008 lw a0,0(s0) + 3f10: aaefc0ef jal 1be + if (ret <= 0) + 3f14: 02a05c63 blez a0,3f4c + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3f18: 01044783 lbu a5,16(s0) + stream->buf_read_cnt = (int)ret; + 3f1c: 40a42c23 sw a0,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3f20: 41642a23 sw s6,1044(s0) + 3f24: 0007871b sext.w a4,a5 + if (c == -1) + 3f28: bf6d j 3ee2 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3f2a: 4008 lw a0,0(s0) + 3f2c: a9afc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 3f30: 41042783 lw a5,1040(s0) + 3f34: 00f54763 blt a0,a5,3f42 + stream->buf_write_pos = 0; + 3f38: 40042823 sw zero,1040(s0) + 3f3c: b741 j 3ebc + return NULL; + 3f3e: 4501 li a0,0 +} + 3f40: 8082 ret + stream->error = 1; + 3f42: 4785 li a5,1 + 3f44: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3f46: 40042823 sw zero,1040(s0) + return EOF; + 3f4a: bf8d j 3ebc + stream->eof = 1; + 3f4c: 4785 li a5,1 + if (ret == 0) + 3f4e: e509 bnez a0,3f58 + stream->eof = 1; + 3f50: c45c sw a5,12(s0) + if (i == 0) + 3f52: fcd1 bnez s1,3eee + return NULL; + 3f54: 4501 li a0,0 + 3f56: b74d j 3ef8 + stream->error = 1; + 3f58: c41c sw a5,8(s0) + if (c == -1) + 3f5a: bfe5 j 3f52 + +0000000000003f5c : +{ + 3f5c: 715d addi sp,sp,-80 + 3f5e: e486 sd ra,72(sp) + 3f60: f44e sd s3,40(sp) + if (!stream || size == 0 || nmemb == 0) + 3f62: 0e068963 beqz a3,4054 + 3f66: ec56 sd s5,24(sp) + return 0; + 3f68: 4981 li s3,0 + 3f6a: 8aae mv s5,a1 + if (!stream || size == 0 || nmemb == 0) + 3f6c: c9bd beqz a1,3fe2 + 3f6e: ca35 beqz a2,3fe2 + if (stream->buf_write_pos > 0) + 3f70: 4106a783 lw a5,1040(a3) + 3f74: e0a2 sd s0,64(sp) + 3f76: f052 sd s4,32(sp) + uint64 total_bytes = size * nmemb; + 3f78: 02c589b3 mul s3,a1,a2 + 3f7c: 8436 mv s0,a3 + 3f7e: 8a2a mv s4,a0 + if (stream->buf_write_pos > 0) + 3f80: 0af04d63 bgtz a5,403a + while (bytes_read < total_bytes) + 3f84: 04098d63 beqz s3,3fde + 3f88: fc26 sd s1,56(sp) + 3f8a: e85a sd s6,16(sp) + 3f8c: e45e sd s7,8(sp) + 3f8e: f84a sd s2,48(sp) + 3f90: 4481 li s1,0 + if (remaining >= BUFSIZ) + 3f92: 3ff00b13 li s6,1023 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3f96: 01040b93 addi s7,s0,16 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3f9a: 41442703 lw a4,1044(s0) + 3f9e: 41842783 lw a5,1048(s0) + uint64 remaining = total_bytes - bytes_read; + 3fa2: 40998633 sub a2,s3,s1 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3fa6: 06f74463 blt a4,a5,400e + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3faa: 4008 lw a0,0(s0) + 3fac: 009a05b3 add a1,s4,s1 + if (remaining >= BUFSIZ) + 3fb0: 02cb7f63 bgeu s6,a2,3fee + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3fb4: a0afc0ef jal 1be + if (ret <= 0) + 3fb8: 0aa05463 blez a0,4060 + bytes_read += ret; + 3fbc: 94aa add s1,s1,a0 + while (bytes_read < total_bytes) + 3fbe: fd34eee3 bltu s1,s3,3f9a + return bytes_read / size; + 3fc2: 0354d9b3 divu s3,s1,s5 + 3fc6: 6406 ld s0,64(sp) +} + 3fc8: 60a6 ld ra,72(sp) + return bytes_read / size; + 3fca: 74e2 ld s1,56(sp) + 3fcc: 7942 ld s2,48(sp) + 3fce: 7a02 ld s4,32(sp) + 3fd0: 6ae2 ld s5,24(sp) + 3fd2: 6b42 ld s6,16(sp) + 3fd4: 6ba2 ld s7,8(sp) +} + 3fd6: 854e mv a0,s3 + 3fd8: 79a2 ld s3,40(sp) + 3fda: 6161 addi sp,sp,80 + 3fdc: 8082 ret + 3fde: 6406 ld s0,64(sp) + 3fe0: 7a02 ld s4,32(sp) + 3fe2: 60a6 ld ra,72(sp) + 3fe4: 6ae2 ld s5,24(sp) + 3fe6: 854e mv a0,s3 + 3fe8: 79a2 ld s3,40(sp) + 3fea: 6161 addi sp,sp,80 + 3fec: 8082 ret + stream->buf_read_pos = 0; + 3fee: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 3ff2: 40042c23 sw zero,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3ff6: 40000613 li a2,1024 + 3ffa: 85de mv a1,s7 + 3ffc: 9c2fc0ef jal 1be + if (ret <= 0) + 4000: 06a05063 blez a0,4060 + stream->buf_read_cnt = (int)ret; + 4004: 40a42c23 sw a0,1048(s0) + while (bytes_read < total_bytes) + 4008: f934e9e3 bltu s1,s3,3f9a + 400c: bf5d j 3fc2 + uint64 available = stream->buf_read_cnt - stream->buf_read_pos; + 400e: 40e7893b subw s2,a5,a4 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 4012: 00eb85b3 add a1,s7,a4 + 4016: 009a0533 add a0,s4,s1 + uint64 to_copy = (available < remaining) ? available : remaining; + 401a: 01267363 bgeu a2,s2,4020 + 401e: 8932 mv s2,a2 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 4020: 864a mv a2,s2 + 4022: 3e1000ef jal 4c02 + stream->buf_read_pos += to_copy; + 4026: 41442783 lw a5,1044(s0) + bytes_read += to_copy; + 402a: 94ca add s1,s1,s2 + stream->buf_read_pos += to_copy; + 402c: 012787bb addw a5,a5,s2 + 4030: 40f42a23 sw a5,1044(s0) + while (bytes_read < total_bytes) + 4034: f734e3e3 bltu s1,s3,3f9a + 4038: b769 j 3fc2 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 403a: 4288 lw a0,0(a3) + 403c: 863e mv a2,a5 + 403e: 01068593 addi a1,a3,16 + 4042: 984fc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 4046: 41042783 lw a5,1040(s0) + 404a: 02f54163 blt a0,a5,406c + stream->buf_write_pos = 0; + 404e: 40042823 sw zero,1040(s0) + 4052: bf0d j 3f84 +} + 4054: 60a6 ld ra,72(sp) + return 0; + 4056: 4981 li s3,0 +} + 4058: 854e mv a0,s3 + 405a: 79a2 ld s3,40(sp) + 405c: 6161 addi sp,sp,80 + 405e: 8082 ret + stream->eof = 1; + 4060: 4785 li a5,1 + if (ret == 0) + 4062: e119 bnez a0,4068 + stream->eof = 1; + 4064: c45c sw a5,12(s0) + 4066: bfb1 j 3fc2 + stream->error = 1; + 4068: c41c sw a5,8(s0) + return bytes_read / size; + 406a: bfa1 j 3fc2 + stream->error = 1; + 406c: 4785 li a5,1 + 406e: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 4070: 40042823 sw zero,1040(s0) + return EOF; + 4074: bf01 j 3f84 + +0000000000004076 : +{ + 4076: 711d addi sp,sp,-96 + 4078: ec86 sd ra,88(sp) + 407a: e0ca sd s2,64(sp) + if (!stream || !ptr || size == 0 || nmemb == 0) + 407c: 10068063 beqz a3,417c + 4080: f456 sd s5,40(sp) + 4082: 8aaa mv s5,a0 + 4084: 10050263 beqz a0,4188 + 4088: f05a sd s6,32(sp) + return 0; + 408a: 4901 li s2,0 + 408c: 8b2e mv s6,a1 + if (!stream || !ptr || size == 0 || nmemb == 0) + 408e: c1d9 beqz a1,4114 + 4090: c251 beqz a2,4114 + if (stream->buf_mode == 2) + 4092: 41c6a703 lw a4,1052(a3) + 4096: e8a2 sd s0,80(sp) + 4098: 4789 li a5,2 + uint64 total_bytes = size * nmemb; + 409a: 02c58933 mul s2,a1,a2 + if (stream->buf_mode == 2) + 409e: 8436 mv s0,a3 + 40a0: 0ef70b63 beq a4,a5,4196 + 40a4: fc4e sd s3,56(sp) + 40a6: ec5e sd s7,24(sp) + 40a8: e862 sd s8,16(sp) + uint64 bytes_written = 0; + 40aa: 4981 li s3,0 + 40ac: 01068b93 addi s7,a3,16 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 40b0: 40000c13 li s8,1024 + while (bytes_written < total_bytes) + 40b4: 12090263 beqz s2,41d8 + 40b8: e4a6 sd s1,72(sp) + 40ba: f852 sd s4,48(sp) + 40bc: e466 sd s9,8(sp) + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 40be: 41042783 lw a5,1040(s0) + uint64 remaining = total_bytes - bytes_written; + 40c2: 41390cb3 sub s9,s2,s3 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 40c6: 013a85b3 add a1,s5,s3 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 40ca: 40fc0a3b subw s4,s8,a5 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 40ce: 00fb8533 add a0,s7,a5 + 40d2: 8652 mv a2,s4 + if (remaining <= space_left) + 40d4: 059a6763 bltu s4,s9,4122 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 40d8: 8666 mv a2,s9 + 40da: 329000ef jal 4c02 + stream->buf_write_pos += remaining; + 40de: 41042783 lw a5,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 40e2: 40000713 li a4,1024 + stream->buf_write_pos += remaining; + 40e6: 019786bb addw a3,a5,s9 + 40ea: 40d42823 sw a3,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 40ee: 06e68a63 beq a3,a4,4162 + return bytes_written / size; + 40f2: 03695933 divu s2,s2,s6 + 40f6: 6446 ld s0,80(sp) + 40f8: 64a6 ld s1,72(sp) + 40fa: 79e2 ld s3,56(sp) + 40fc: 7a42 ld s4,48(sp) + 40fe: 7aa2 ld s5,40(sp) + 4100: 7b02 ld s6,32(sp) + 4102: 6be2 ld s7,24(sp) + 4104: 6c42 ld s8,16(sp) + 4106: 6ca2 ld s9,8(sp) +} + 4108: 60e6 ld ra,88(sp) + 410a: 854a mv a0,s2 + 410c: 6906 ld s2,64(sp) + 410e: 6125 addi sp,sp,96 + 4110: 8082 ret + 4112: 6446 ld s0,80(sp) + 4114: 60e6 ld ra,88(sp) + 4116: 7aa2 ld s5,40(sp) + 4118: 7b02 ld s6,32(sp) + 411a: 854a mv a0,s2 + 411c: 6906 ld s2,64(sp) + 411e: 6125 addi sp,sp,96 + 4120: 8082 ret + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 4122: 2e1000ef jal 4c02 + stream->buf_write_pos += space_left; + 4126: 41042783 lw a5,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 412a: 85de mv a1,s7 + bytes_written += space_left; + 412c: 99d2 add s3,s3,s4 + stream->buf_write_pos += space_left; + 412e: 00fa04bb addw s1,s4,a5 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4132: 02049613 slli a2,s1,0x20 + stream->buf_write_pos += space_left; + 4136: 40942823 sw s1,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 413a: 9201 srli a2,a2,0x20 + if (stream->buf_write_pos > 0) + 413c: 00904763 bgtz s1,414a + while (bytes_written < total_bytes) + 4140: f729efe3 bltu s3,s2,40be + return bytes_written / size; + 4144: 0369d933 divu s2,s3,s6 + 4148: b77d j 40f6 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 414a: 4008 lw a0,0(s0) + 414c: 87afc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 4150: 41042783 lw a5,1040(s0) + 4154: 08f54963 blt a0,a5,41e6 + stream->buf_write_pos = 0; + 4158: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 415c: f729e1e3 bltu s3,s2,40be + 4160: b7d5 j 4144 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4162: 4008 lw a0,0(s0) + 4164: 40000613 li a2,1024 + 4168: 85de mv a1,s7 + 416a: 85cfc0ef jal 1c6 + if (ret < stream->buf_write_pos) + 416e: 41042783 lw a5,1040(s0) + 4172: 08f54163 blt a0,a5,41f4 + stream->buf_write_pos = 0; + 4176: 40042823 sw zero,1040(s0) + 417a: bfa5 j 40f2 +} + 417c: 60e6 ld ra,88(sp) + return 0; + 417e: 4901 li s2,0 +} + 4180: 854a mv a0,s2 + 4182: 6906 ld s2,64(sp) + 4184: 6125 addi sp,sp,96 + 4186: 8082 ret + 4188: 60e6 ld ra,88(sp) + return 0; + 418a: 4901 li s2,0 + 418c: 7aa2 ld s5,40(sp) +} + 418e: 854a mv a0,s2 + 4190: 6906 ld s2,64(sp) + 4192: 6125 addi sp,sp,96 + 4194: 8082 ret + while (bytes_written < total_bytes) + 4196: f6090ee3 beqz s2,4112 + 419a: e4a6 sd s1,72(sp) + uint64 bytes_written = 0; + 419c: 4481 li s1,0 + 419e: a021 j 41a6 + bytes_written += ret; + 41a0: 94aa add s1,s1,a0 + while (bytes_written < total_bytes) + 41a2: 0324f463 bgeu s1,s2,41ca + int64 ret = write(stream->fd, src + bytes_written, total_bytes - bytes_written); + 41a6: 4008 lw a0,0(s0) + 41a8: 40990633 sub a2,s2,s1 + 41ac: 009a85b3 add a1,s5,s1 + 41b0: 816fc0ef jal 1c6 + if (ret <= 0) + 41b4: fea046e3 bgtz a0,41a0 + stream->error = 1; + 41b8: 4785 li a5,1 + return bytes_written / size; + 41ba: 0364d933 divu s2,s1,s6 + stream->error = 1; + 41be: c41c sw a5,8(s0) + break; + 41c0: 64a6 ld s1,72(sp) + 41c2: 6446 ld s0,80(sp) + 41c4: 7aa2 ld s5,40(sp) + 41c6: 7b02 ld s6,32(sp) + 41c8: b781 j 4108 + return bytes_written / size; + 41ca: 0364d933 divu s2,s1,s6 + 41ce: 6446 ld s0,80(sp) + 41d0: 64a6 ld s1,72(sp) + 41d2: 7aa2 ld s5,40(sp) + 41d4: 7b02 ld s6,32(sp) + 41d6: bf0d j 4108 + 41d8: 6446 ld s0,80(sp) + 41da: 79e2 ld s3,56(sp) + 41dc: 7aa2 ld s5,40(sp) + 41de: 7b02 ld s6,32(sp) + 41e0: 6be2 ld s7,24(sp) + 41e2: 6c42 ld s8,16(sp) + 41e4: b715 j 4108 + stream->error = 1; + 41e6: 4785 li a5,1 + 41e8: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 41ea: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 41ee: ed29e8e3 bltu s3,s2,40be + 41f2: bf89 j 4144 + stream->error = 1; + 41f4: 4785 li a5,1 + 41f6: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 41f8: 40042823 sw zero,1040(s0) + return EOF; + 41fc: bddd j 40f2 + +00000000000041fe : + if (!stream) + 41fe: c925 beqz a0,426e +{ + 4200: 1101 addi sp,sp,-32 + 4202: e04a sd s2,0(sp) + 4204: 8932 mv s2,a2 + if (stream->buf_write_pos > 0) + 4206: 41052603 lw a2,1040(a0) +{ + 420a: e822 sd s0,16(sp) + 420c: e426 sd s1,8(sp) + 420e: ec06 sd ra,24(sp) + 4210: 842a mv s0,a0 + 4212: 84ae mv s1,a1 + if (stream->buf_write_pos > 0) + 4214: 02c04863 bgtz a2,4244 + if (lseek(stream->fd, offset, whence) < 0) + 4218: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 421a: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 421e: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 4222: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 4226: 864a mv a2,s2 + 4228: 0004859b sext.w a1,s1 + 422c: 82afc0ef jal 256 + 4230: 87aa mv a5,a0 + return 0; + 4232: 4501 li a0,0 + if (lseek(stream->fd, offset, whence) < 0) + 4234: 0207c463 bltz a5,425c +} + 4238: 60e2 ld ra,24(sp) + 423a: 6442 ld s0,16(sp) + 423c: 64a2 ld s1,8(sp) + 423e: 6902 ld s2,0(sp) + 4240: 6105 addi sp,sp,32 + 4242: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4244: 4108 lw a0,0(a0) + 4246: 01040593 addi a1,s0,16 + 424a: f7dfb0ef jal 1c6 + if (ret < stream->buf_write_pos) + 424e: 41042783 lw a5,1040(s0) + 4252: 00f54963 blt a0,a5,4264 + stream->buf_write_pos = 0; + 4256: 40042823 sw zero,1040(s0) + 425a: bf7d j 4218 + stream->error = 1; + 425c: 4785 li a5,1 + 425e: c41c sw a5,8(s0) + return -1; + 4260: 557d li a0,-1 + 4262: bfd9 j 4238 + stream->error = 1; + 4264: 4785 li a5,1 + 4266: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 4268: 40042823 sw zero,1040(s0) + return EOF; + 426c: b775 j 4218 + return -1; + 426e: 557d li a0,-1 +} + 4270: 8082 ret + +0000000000004272 : + if (!stream) + 4272: c505 beqz a0,429a +{ + 4274: 1141 addi sp,sp,-16 + 4276: e022 sd s0,0(sp) + 4278: 842a mv s0,a0 + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 427a: 4108 lw a0,0(a0) + 427c: 4605 li a2,1 + 427e: 4581 li a1,0 +{ + 4280: e406 sd ra,8(sp) + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 4282: fd5fb0ef jal 256 + if (ret < 0) + 4286: 00054663 bltz a0,4292 +} + 428a: 60a2 ld ra,8(sp) + 428c: 6402 ld s0,0(sp) + 428e: 0141 addi sp,sp,16 + 4290: 8082 ret + stream->error = 1; + 4292: 4785 li a5,1 + 4294: c41c sw a5,8(s0) + return -1L; + 4296: 557d li a0,-1 + 4298: bfcd j 428a + 429a: 557d li a0,-1 +} + 429c: 8082 ret + +000000000000429e : + if (stream) + 429e: c915 beqz a0,42d2 + if (stream->buf_write_pos > 0) + 42a0: 41052603 lw a2,1040(a0) +{ + 42a4: 1141 addi sp,sp,-16 + 42a6: e022 sd s0,0(sp) + 42a8: e406 sd ra,8(sp) + 42aa: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 42ac: 02c04463 bgtz a2,42d4 + if (lseek(stream->fd, offset, whence) < 0) + 42b0: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 42b2: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 42b6: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 42ba: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 42be: 4601 li a2,0 + 42c0: 4581 li a1,0 + 42c2: f95fb0ef jal 256 +} + 42c6: 60a2 ld ra,8(sp) + stream->error = 0; + 42c8: 00042423 sw zero,8(s0) +} + 42cc: 6402 ld s0,0(sp) + 42ce: 0141 addi sp,sp,16 + 42d0: 8082 ret + 42d2: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 42d4: 4108 lw a0,0(a0) + 42d6: 01040593 addi a1,s0,16 + 42da: eedfb0ef jal 1c6 + if (ret < stream->buf_write_pos) + 42de: 41042783 lw a5,1040(s0) + 42e2: 00f54563 blt a0,a5,42ec + stream->buf_write_pos = 0; + 42e6: 40042823 sw zero,1040(s0) + 42ea: b7d9 j 42b0 + stream->error = 1; + 42ec: 4785 li a5,1 + 42ee: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 42f0: 40042823 sw zero,1040(s0) + return EOF; + 42f4: bf75 j 42b0 + +00000000000042f6 : + return (stream) ? stream->eof : 1; + 42f6: c119 beqz a0,42fc + 42f8: 4548 lw a0,12(a0) + 42fa: 8082 ret + 42fc: 4505 li a0,1 +} + 42fe: 8082 ret + +0000000000004300 : + return (stream) ? stream->error : 1; + 4300: c119 beqz a0,4306 + 4302: 4508 lw a0,8(a0) + 4304: 8082 ret + 4306: 4505 li a0,1 +} + 4308: 8082 ret + +000000000000430a : + if (stream) + 430a: c509 beqz a0,4314 + stream->error = 0; + 430c: 00052423 sw zero,8(a0) + stream->eof = 0; + 4310: 00052623 sw zero,12(a0) +} + 4314: 8082 ret + +0000000000004316 : + if (!stream || c == EOF) + 4316: c19d beqz a1,433c + 4318: 57fd li a5,-1 + 431a: 02f50163 beq a0,a5,433c + if (stream->buf_read_pos > 0) + 431e: 4145a783 lw a5,1044(a1) + 4322: 00f05d63 blez a5,433c + stream->buf_read_pos--; + 4326: fff7871b addiw a4,a5,-1 + 432a: 40e5aa23 sw a4,1044(a1) + stream->buffer[stream->buf_read_pos] = (char)c; + 432e: 00e587b3 add a5,a1,a4 + 4332: 00a78823 sb a0,16(a5) + stream->eof = 0; + 4336: 0005a623 sw zero,12(a1) + return c; + 433a: 8082 ret + return EOF; + 433c: 557d li a0,-1 + 433e: 8082 ret + +0000000000004340 : + return new_ptr; +} + +/* String Conversion*/ + +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 4340: 1141 addi sp,sp,-16 + 4342: e422 sd s0,8(sp) + 4344: 8eaa mv t4,a0 +{ + const char *s = nptr; + 4346: 88aa mv a7,a0 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + static inline int islower(int c) { return c >= 'a' && c <= 'z'; } + static inline int isupper(int c) { return c >= 'A' && c <= 'Z'; } + static inline int isalpha(int c) { return islower(c) || isupper(c); } + static inline int isalnum(int c) { return isalpha(c) || isdigit(c); } + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 4348: 02000313 li t1,32 + 434c: 4e11 li t3,4 + return 0; + } + + do + { + c = *s++; + 434e: 0008c783 lbu a5,0(a7) + 4352: 00188813 addi a6,a7,1 + 4356: ff77871b addiw a4,a5,-9 + 435a: 0ff77693 zext.b a3,a4 + 435e: 0007871b sext.w a4,a5 + 4362: 04678363 beq a5,t1,43a8 + 4366: 04de7163 bgeu t3,a3,43a8 + } while (isspace(c)); + + if (c == '-') + 436a: 02d00793 li a5,45 + 436e: 0ef70863 beq a4,a5,445e + { + neg = 1; + c = *s++; + } + else if (c == '+') + 4372: 02b00793 li a5,43 + int neg = 0, any, cutlim; + 4376: 4381 li t2,0 + else if (c == '+') + 4378: 08f70c63 beq a4,a5,4410 + { + c = *s++; + } + + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 437c: ea05 bnez a2,43ac + 437e: 03000793 li a5,48 + 4382: 0ef70463 beq a4,a5,446a + 4386: 00ccd8b7 lui a7,0xccd + 438a: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc5355> + 438e: 08b2 slli a7,a7,0xc + 4390: ccd88893 addi a7,a7,-819 + 4394: 08b2 slli a7,a7,0xc + 4396: ccd88893 addi a7,a7,-819 + 439a: 08b6 slli a7,a7,0xd + 439c: 4415 li s0,5 + 439e: 99988893 addi a7,a7,-1639 + 43a2: 42a9 li t0,10 + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = (c == '0' ? 8 : 10); + 43a4: 4629 li a2,10 + 43a6: a829 j 43c0 +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 43a8: 88c2 mv a7,a6 + 43aa: b755 j 434e + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 43ac: 47c1 li a5,16 + 43ae: 0cf60d63 beq a2,a5,4488 + + cutoff = ULLONG_MAX / (unsigned long long)base; + 43b2: 58fd li a7,-1 + cutlim = ULLONG_MAX % (unsigned long long)base; + 43b4: 02c8f433 remu s0,a7,a2 + cutoff = ULLONG_MAX / (unsigned long long)base; + 43b8: 82b2 mv t0,a2 + 43ba: 02c8d8b3 divu a7,a7,a2 + cutlim = ULLONG_MAX % (unsigned long long)base; + 43be: 2401 sext.w s0,s0 + + for (acc = 0, any = 0;; c = *s++) + 43c0: 4301 li t1,0 + 43c2: 4501 li a0,0 + { + if (isdigit(c)) + 43c4: 4e25 li t3,9 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 43c6: 4fe5 li t6,25 + break; + + if (c >= base) + break; + + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 43c8: 5f7d li t5,-1 + if (isdigit(c)) + 43ca: fd07079b addiw a5,a4,-48 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 43ce: 0007069b sext.w a3,a4 + 43d2: 00fe7e63 bgeu t3,a5,43ee + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 43d6: f9f6879b addiw a5,a3,-97 + 43da: 04fff063 bgeu t6,a5,441a + 43de: fbf6869b addiw a3,a3,-65 + 43e2: 04dfe163 bltu t6,a3,4424 + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 43e6: 03700793 li a5,55 + 43ea: 40f707bb subw a5,a4,a5 + if (c >= base) + 43ee: 02c7db63 bge a5,a2,4424 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 43f2: 01e30b63 beq t1,t5,4408 + any = -1; + 43f6: 537d li t1,-1 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 43f8: 00a8e863 bltu a7,a0,4408 + 43fc: 05150e63 beq a0,a7,4458 + else + { + any = 1; + 4400: 4305 li t1,1 + acc *= base; + 4402: 02550533 mul a0,a0,t0 + acc += c; + 4406: 953e add a0,a0,a5 + for (acc = 0, any = 0;; c = *s++) + 4408: 0805 addi a6,a6,1 + 440a: fff84703 lbu a4,-1(a6) + if (isdigit(c)) + 440e: bf75 j 43ca + c = *s++; + 4410: 00084703 lbu a4,0(a6) + 4414: 00288813 addi a6,a7,2 + 4418: b795 j 437c + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 441a: 05700793 li a5,87 + 441e: 40f707bb subw a5,a4,a5 + 4422: b7f1 j 43ee + } + } + + if (any < 0) + 4424: 57fd li a5,-1 + 4426: 00f30e63 beq t1,a5,4442 + { + acc = ULLONG_MAX; + errno = ERANGE; + } + else if (neg) + 442a: 00038463 beqz t2,4432 + acc = -acc; + 442e: 40a00533 neg a0,a0 + + if (endptr != 0) + 4432: c589 beqz a1,443c + *endptr = (char *)(any ? s - 1 : nptr); + 4434: 00031f63 bnez t1,4452 + 4438: 01d5b023 sd t4,0(a1) + + return acc; +} + 443c: 6422 ld s0,8(sp) + 443e: 0141 addi sp,sp,16 + 4440: 8082 ret + errno = ERANGE; + 4442: 02200793 li a5,34 + 4446: 00003717 auipc a4,0x3 + 444a: 3ef72d23 sw a5,1018(a4) # 7840 + acc = ULLONG_MAX; + 444e: 557d li a0,-1 + if (endptr != 0) + 4450: d5f5 beqz a1,443c + *endptr = (char *)(any ? s - 1 : nptr); + 4452: fff80e93 addi t4,a6,-1 + 4456: b7cd j 4438 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 4458: faf448e3 blt s0,a5,4408 + 445c: b755 j 4400 + c = *s++; + 445e: 00084703 lbu a4,0(a6) + neg = 1; + 4462: 4385 li t2,1 + c = *s++; + 4464: 00288813 addi a6,a7,2 + 4468: bf11 j 437c + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 446a: 00084783 lbu a5,0(a6) + 446e: 05800693 li a3,88 + 4472: 0df7f793 andi a5,a5,223 + 4476: 02d78b63 beq a5,a3,44ac + 447a: 58fd li a7,-1 + 447c: 441d li s0,7 + 447e: 0038d893 srli a7,a7,0x3 + 4482: 42a1 li t0,8 + base = (c == '0' ? 8 : 10); + 4484: 4621 li a2,8 + 4486: bf2d j 43c0 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 4488: 03000793 li a5,48 + 448c: 00f70863 beq a4,a5,449c + 4490: 58fd li a7,-1 + 4492: 443d li s0,15 + 4494: 0048d893 srli a7,a7,0x4 + 4498: 42c1 li t0,16 + 449a: b71d j 43c0 + 449c: 00084783 lbu a5,0(a6) + 44a0: 05800693 li a3,88 + 44a4: 0df7f793 andi a5,a5,223 + 44a8: fed794e3 bne a5,a3,4490 + s += 2; + 44ac: 58fd li a7,-1 + c = s[1]; + 44ae: 00184703 lbu a4,1(a6) + s += 2; + 44b2: 443d li s0,15 + 44b4: 0809 addi a6,a6,2 + 44b6: 0048d893 srli a7,a7,0x4 + 44ba: 42c1 li t0,16 + base = 16; + 44bc: 4641 li a2,16 + 44be: b709 j 43c0 + +00000000000044c0 : + if (__atexit_func_count >= ATEXIT_MAX) + 44c0: 00003717 auipc a4,0x3 + 44c4: 38070713 addi a4,a4,896 # 7840 + 44c8: 435c lw a5,4(a4) + 44ca: 46fd li a3,31 + 44cc: 00f6ca63 blt a3,a5,44e0 + __atexit_funcs[__atexit_func_count++] = function; + 44d0: 00379693 slli a3,a5,0x3 + 44d4: 96ba add a3,a3,a4 + 44d6: 2785 addiw a5,a5,1 + 44d8: e688 sd a0,8(a3) + 44da: c35c sw a5,4(a4) + return 0; + 44dc: 4501 li a0,0 + 44de: 8082 ret + return -1; + 44e0: 557d li a0,-1 +} + 44e2: 8082 ret + +00000000000044e4 : +{ + 44e4: 1101 addi sp,sp,-32 + 44e6: e822 sd s0,16(sp) + while (__atexit_func_count > 0) + 44e8: 00003417 auipc s0,0x3 + 44ec: 35840413 addi s0,s0,856 # 7840 + 44f0: 405c lw a5,4(s0) +{ + 44f2: e426 sd s1,8(sp) + 44f4: ec06 sd ra,24(sp) + 44f6: 84aa mv s1,a0 + while (__atexit_func_count > 0) + 44f8: 00f05d63 blez a5,4512 + (__atexit_funcs[--__atexit_func_count])(); + 44fc: fff7871b addiw a4,a5,-1 + 4500: 87ba mv a5,a4 + 4502: 070e slli a4,a4,0x3 + 4504: 9722 add a4,a4,s0 + 4506: 6718 ld a4,8(a4) + 4508: c05c sw a5,4(s0) + 450a: 9702 jalr a4 + while (__atexit_func_count > 0) + 450c: 405c lw a5,4(s0) + 450e: fef047e3 bgtz a5,44fc + sys_exit(status); + 4512: 8526 mv a0,s1 + 4514: c8bfb0ef jal 19e + while (1) + 4518: a001 j 4518 + +000000000000451a : +{ + 451a: 1141 addi sp,sp,-16 + exit(127); + 451c: 07f00513 li a0,127 +{ + 4520: e406 sd ra,8(sp) + exit(127); + 4522: fc3ff0ef jal 44e4 + +0000000000004526 : +} + 4526: 4501 li a0,0 + 4528: 8082 ret + +000000000000452a : +} + 452a: 557d li a0,-1 + 452c: 8082 ret + +000000000000452e : + if (!ptr) + 452e: c121 beqz a0,456e + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 4530: 00003617 auipc a2,0x3 + 4534: 31060613 addi a2,a2,784 # 7840 + 4538: 10863783 ld a5,264(a2) + bp = (header_t *)ptr - 1; + 453c: ff050693 addi a3,a0,-16 + if (p >= p->next && (bp > p || bp < p->next)) + 4540: 6798 ld a4,8(a5) + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 4542: 02d7f763 bgeu a5,a3,4570 + 4546: 00e6e463 bltu a3,a4,454e + if (p >= p->next && (bp > p || bp < p->next)) + 454a: 02e7e763 bltu a5,a4,4578 + if ((char *)bp + bp->size == (char *)p->next) + 454e: ff053583 ld a1,-16(a0) + 4552: 00b68833 add a6,a3,a1 + 4556: 03070363 beq a4,a6,457c + if ((char *)p + p->size == (char *)bp) + 455a: 638c ld a1,0(a5) + 455c: fee53c23 sd a4,-8(a0) + 4560: 00b78833 add a6,a5,a1 + 4564: 03068963 beq a3,a6,4596 + 4568: e794 sd a3,8(a5) + freep = p; + 456a: 10f63423 sd a5,264(a2) +} + 456e: 8082 ret + if (p >= p->next && (bp > p || bp < p->next)) + 4570: 00e7e463 bltu a5,a4,4578 + 4574: fce6ede3 bltu a3,a4,454e +{ + 4578: 87ba mv a5,a4 + 457a: b7d9 j 4540 + bp->size += p->next->size; + 457c: 00073803 ld a6,0(a4) + bp->next = p->next->next; + 4580: 6718 ld a4,8(a4) + bp->size += p->next->size; + 4582: 95c2 add a1,a1,a6 + 4584: feb53823 sd a1,-16(a0) + if ((char *)p + p->size == (char *)bp) + 4588: 638c ld a1,0(a5) + 458a: fee53c23 sd a4,-8(a0) + 458e: 00b78833 add a6,a5,a1 + 4592: fd069be3 bne a3,a6,4568 + p->size += bp->size; + 4596: ff053503 ld a0,-16(a0) + p->next = bp->next; + 459a: 86ba mv a3,a4 + p->size += bp->size; + 459c: 00b50733 add a4,a0,a1 + 45a0: e398 sd a4,0(a5) + p->next = bp->next; + 45a2: b7d9 j 4568 + +00000000000045a4 : + if (size == 0) + 45a4: c169 beqz a0,4666 +{ + 45a6: 7179 addi sp,sp,-48 + 45a8: ec26 sd s1,24(sp) + if ((prevp = freep) == NULL) + 45aa: 00003497 auipc s1,0x3 + 45ae: 29648493 addi s1,s1,662 # 7840 + 45b2: 1084b783 ld a5,264(s1) +{ + 45b6: f022 sd s0,32(sp) + size = ALIGN(size + sizeof(header_t)); + 45b8: 057d addi a0,a0,31 +{ + 45ba: f406 sd ra,40(sp) + size = ALIGN(size + sizeof(header_t)); + 45bc: ff057413 andi s0,a0,-16 + if ((prevp = freep) == NULL) + 45c0: c3d1 beqz a5,4644 + for (p = prevp->next;; prevp = p, p = p->next) + 45c2: 6788 ld a0,8(a5) + if (p->size >= size) + 45c4: 6118 ld a4,0(a0) + 45c6: 06877163 bgeu a4,s0,4628 + 45ca: e44e sd s3,8(sp) + 45cc: e052 sd s4,0(sp) + 45ce: e84a sd s2,16(sp) + if (nu < 4096) + 45d0: 6a05 lui s4,0x1 + if (cp == (void *)-1) + 45d2: 59fd li s3,-1 + 45d4: a029 j 45de + for (p = prevp->next;; prevp = p, p = p->next) + 45d6: 6788 ld a0,8(a5) + if (p->size >= size) + 45d8: 6118 ld a4,0(a0) + 45da: 04877463 bgeu a4,s0,4622 + if (p == freep) + 45de: 1084b703 ld a4,264(s1) + 45e2: 87aa mv a5,a0 + 45e4: fee519e3 bne a0,a4,45d6 + if (nu < 4096) + 45e8: 8922 mv s2,s0 + 45ea: 01447363 bgeu s0,s4,45f0 + 45ee: 6905 lui s2,0x1 + cp = (char *)sbrk(nu); + 45f0: 854a mv a0,s2 + 45f2: c3dfb0ef jal 22e + 45f6: 87aa mv a5,a0 + free((void *)(up + 1)); + 45f8: 0541 addi a0,a0,16 + if (cp == (void *)-1) + 45fa: 01378963 beq a5,s3,460c + up->size = nu; + 45fe: 0127b023 sd s2,0(a5) + free((void *)(up + 1)); + 4602: f2dff0ef jal 452e + return freep; + 4606: 1084b783 ld a5,264(s1) + if ((p = morecore(size)) == NULL) + 460a: f7f1 bnez a5,45d6 +} + 460c: 70a2 ld ra,40(sp) + 460e: 7402 ld s0,32(sp) + errno = ENOMEM; + 4610: 47b1 li a5,12 + 4612: c09c sw a5,0(s1) + return NULL; + 4614: 6942 ld s2,16(sp) + 4616: 69a2 ld s3,8(sp) + 4618: 6a02 ld s4,0(sp) +} + 461a: 64e2 ld s1,24(sp) + return NULL; + 461c: 4501 li a0,0 +} + 461e: 6145 addi sp,sp,48 + 4620: 8082 ret + 4622: 6942 ld s2,16(sp) + 4624: 69a2 ld s3,8(sp) + 4626: 6a02 ld s4,0(sp) + if (p->size == size) + 4628: 02e40c63 beq s0,a4,4660 + p->size -= size; + 462c: 8f01 sub a4,a4,s0 + 462e: e118 sd a4,0(a0) + p = (header_t *)((char *)p + p->size); + 4630: 953a add a0,a0,a4 + p->size = size; + 4632: e100 sd s0,0(a0) +} + 4634: 70a2 ld ra,40(sp) + 4636: 7402 ld s0,32(sp) + freep = prevp; + 4638: 10f4b423 sd a5,264(s1) + return (void *)(p + 1); + 463c: 0541 addi a0,a0,16 +} + 463e: 64e2 ld s1,24(sp) + 4640: 6145 addi sp,sp,48 + 4642: 8082 ret + base.next = freep = prevp = &base; + 4644: 00003517 auipc a0,0x3 + 4648: 30c50513 addi a0,a0,780 # 7950 + 464c: 10a4b423 sd a0,264(s1) + 4650: 10a4bc23 sd a0,280(s1) + base.size = 0; + 4654: 00003797 auipc a5,0x3 + 4658: 2e07be23 sd zero,764(a5) # 7950 + if (p->size >= size) + 465c: f43d bnez s0,45ca + base.next = freep = prevp = &base; + 465e: 87aa mv a5,a0 + prevp->next = p->next; + 4660: 6518 ld a4,8(a0) + 4662: e798 sd a4,8(a5) + 4664: bfc1 j 4634 + return NULL; + 4666: 4501 li a0,0 +} + 4668: 8082 ret + +000000000000466a : + if (__builtin_mul_overflow(nmemb, size, &total)) + 466a: 02b537b3 mulhu a5,a0,a1 +{ + 466e: 1101 addi sp,sp,-32 + 4670: e822 sd s0,16(sp) + 4672: ec06 sd ra,24(sp) + 4674: e426 sd s1,8(sp) + if (__builtin_mul_overflow(nmemb, size, &total)) + 4676: 02b50433 mul s0,a0,a1 + 467a: e385 bnez a5,469a + void *p = malloc(total); + 467c: 8522 mv a0,s0 + 467e: f27ff0ef jal 45a4 + 4682: 84aa mv s1,a0 + if (p) + 4684: c509 beqz a0,468e + memset(p, 0, total); + 4686: 8622 mv a2,s0 + 4688: 4581 li a1,0 + 468a: 524000ef jal 4bae +} + 468e: 60e2 ld ra,24(sp) + 4690: 6442 ld s0,16(sp) + 4692: 8526 mv a0,s1 + 4694: 64a2 ld s1,8(sp) + 4696: 6105 addi sp,sp,32 + 4698: 8082 ret + 469a: 60e2 ld ra,24(sp) + 469c: 6442 ld s0,16(sp) + errno = ENOMEM; + 469e: 47b1 li a5,12 + return NULL; + 46a0: 4481 li s1,0 + errno = ENOMEM; + 46a2: 00003717 auipc a4,0x3 + 46a6: 18f72f23 sw a5,414(a4) # 7840 +} + 46aa: 8526 mv a0,s1 + 46ac: 64a2 ld s1,8(sp) + 46ae: 6105 addi sp,sp,32 + 46b0: 8082 ret + +00000000000046b2 : + if (!ptr) + 46b2: c929 beqz a0,4704 +{ + 46b4: 1101 addi sp,sp,-32 + 46b6: ec06 sd ra,24(sp) + 46b8: e426 sd s1,8(sp) + if (size == 0) + 46ba: c5b9 beqz a1,4708 + if (bp->size >= new_size) + 46bc: ff053703 ld a4,-16(a0) + size_t new_size = ALIGN(size + sizeof(header_t)); + 46c0: 01f58793 addi a5,a1,31 + 46c4: e822 sd s0,16(sp) + 46c6: 9bc1 andi a5,a5,-16 + 46c8: 842a mv s0,a0 + return ptr; + 46ca: 84aa mv s1,a0 + if (bp->size >= new_size) + 46cc: 00f76863 bltu a4,a5,46dc + 46d0: 6442 ld s0,16(sp) +} + 46d2: 60e2 ld ra,24(sp) + 46d4: 8526 mv a0,s1 + 46d6: 64a2 ld s1,8(sp) + 46d8: 6105 addi sp,sp,32 + 46da: 8082 ret + void *new_ptr = malloc(size); + 46dc: 852e mv a0,a1 + 46de: ec7ff0ef jal 45a4 + 46e2: 84aa mv s1,a0 + if (!new_ptr) + 46e4: d575 beqz a0,46d0 + memcpy(new_ptr, ptr, bp->size - sizeof(header_t)); + 46e6: ff043603 ld a2,-16(s0) + 46ea: 85a2 mv a1,s0 + 46ec: 1641 addi a2,a2,-16 + 46ee: 514000ef jal 4c02 + free(ptr); + 46f2: 8522 mv a0,s0 + 46f4: e3bff0ef jal 452e +} + 46f8: 60e2 ld ra,24(sp) + free(ptr); + 46fa: 6442 ld s0,16(sp) +} + 46fc: 8526 mv a0,s1 + 46fe: 64a2 ld s1,8(sp) + 4700: 6105 addi sp,sp,32 + 4702: 8082 ret + return malloc(size); + 4704: 852e mv a0,a1 + 4706: bd79 j 45a4 + free(ptr); + 4708: e27ff0ef jal 452e + return NULL; + 470c: 4481 li s1,0 + 470e: b7d1 j 46d2 + +0000000000004710 : + if (base < 0 || base == 1 || base > 36) + 4710: 02400813 li a6,36 +{ + 4714: 86aa mv a3,a0 + 4716: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 4718: 00c86663 bltu a6,a2,4724 + 471c: 4805 li a6,1 + 471e: 01060363 beq a2,a6,4724 + 4722: b939 j 4340 + if (endptr) + 4724: c311 beqz a4,4728 + *endptr = (char *)nptr; + 4726: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 4728: 00003797 auipc a5,0x3 + 472c: 1007ac23 sw zero,280(a5) # 7840 +} + 4730: 4501 li a0,0 + 4732: 8082 ret + +0000000000004734 : + +long long strtoll(const char *nptr, char **endptr, int base) +{ + 4734: 1141 addi sp,sp,-16 + 4736: e406 sd ra,8(sp) + 4738: e022 sd s0,0(sp) + const char *s = nptr; + 473a: 86aa mv a3,a0 + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 473c: 02000813 li a6,32 + 4740: 4891 li a7,4 + unsigned long long acc; + int c, neg = 0; + + do + { + c = *s++; + 4742: 0006c783 lbu a5,0(a3) + 4746: 0685 addi a3,a3,1 + 4748: ff77871b addiw a4,a5,-9 + 474c: 0ff77713 zext.b a4,a4 + 4750: 0007841b sext.w s0,a5 + 4754: ff0787e3 beq a5,a6,4742 + 4758: fee8f5e3 bgeu a7,a4,4742 + if (base < 0 || base == 1 || base > 36) + 475c: 02400793 li a5,36 + 4760: 02c7ec63 bltu a5,a2,4798 + 4764: 4785 li a5,1 + 4766: 02f60963 beq a2,a5,4798 + 476a: bd7ff0ef jal 4340 + if (c == '-') + neg = 1; + + acc = strtoull(nptr, endptr, base); + + if (errno == ERANGE && acc == ULLONG_MAX) + 476e: 00003797 auipc a5,0x3 + 4772: 0d278793 addi a5,a5,210 # 7840 + 4776: 4394 lw a3,0(a5) + 4778: 02200713 li a4,34 + 477c: 04e68363 beq a3,a4,47c2 + return neg ? LLONG_MIN : LLONG_MAX; + + if (!neg && acc > (unsigned long long)LLONG_MAX) + 4780: 02d00713 li a4,45 + 4784: 02e40563 beq s0,a4,47ae + 4788: 00055f63 bgez a0,47a6 + { + errno = ERANGE; + 478c: 02200713 li a4,34 + 4790: c398 sw a4,0(a5) + return neg ? LLONG_MIN : LLONG_MAX; + 4792: 557d li a0,-1 + 4794: 8105 srli a0,a0,0x1 + 4796: a801 j 47a6 + if (endptr) + 4798: c191 beqz a1,479c + *endptr = (char *)nptr; + 479a: e188 sd a0,0(a1) + errno = 0; /* EINVAL */ + 479c: 00003797 auipc a5,0x3 + 47a0: 0a07a223 sw zero,164(a5) # 7840 + { + errno = ERANGE; + return LLONG_MIN; + } + + return neg ? -(long long)acc : (long long)acc; + 47a4: 4501 li a0,0 +} + 47a6: 60a2 ld ra,8(sp) + 47a8: 6402 ld s0,0(sp) + 47aa: 0141 addi sp,sp,16 + 47ac: 8082 ret + if (neg && acc > (unsigned long long)LLONG_MAX + 1) + 47ae: 577d li a4,-1 + 47b0: 177e slli a4,a4,0x3f + 47b2: 02a76263 bltu a4,a0,47d6 +} + 47b6: 60a2 ld ra,8(sp) + 47b8: 6402 ld s0,0(sp) + return neg ? -(long long)acc : (long long)acc; + 47ba: 40a00533 neg a0,a0 +} + 47be: 0141 addi sp,sp,16 + 47c0: 8082 ret + if (errno == ERANGE && acc == ULLONG_MAX) + 47c2: 577d li a4,-1 + 47c4: fae51ee3 bne a0,a4,4780 + return neg ? LLONG_MIN : LLONG_MAX; + 47c8: 02d00793 li a5,45 + 47cc: fcf413e3 bne s0,a5,4792 + return LLONG_MIN; + 47d0: 557d li a0,-1 + 47d2: 157e slli a0,a0,0x3f + 47d4: bfc9 j 47a6 + errno = ERANGE; + 47d6: 02200713 li a4,34 + 47da: c398 sw a4,0(a5) + return LLONG_MIN; + 47dc: bfd5 j 47d0 + +00000000000047de : + if (base < 0 || base == 1 || base > 36) + 47de: 02400813 li a6,36 + +unsigned long strtoul(const char *nptr, char **endptr, int base) +{ + 47e2: 86aa mv a3,a0 + 47e4: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 47e6: 00c86663 bltu a6,a2,47f2 + 47ea: 4805 li a6,1 + 47ec: 01060363 beq a2,a6,47f2 + 47f0: be81 j 4340 + if (endptr) + 47f2: c311 beqz a4,47f6 + *endptr = (char *)nptr; + 47f4: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 47f6: 00003797 auipc a5,0x3 + 47fa: 0407a523 sw zero,74(a5) # 7840 + { + errno = ERANGE; + return ULONG_MAX; + } + return (unsigned long)ret; +} + 47fe: 4501 li a0,0 + 4800: 8082 ret + +0000000000004802 : + +long strtol(const char *nptr, char **endptr, int base) +{ + long long ret = strtoll(nptr, endptr, base); + 4802: bf0d j 4734 + +0000000000004804 : + return LONG_MIN; + } + return (long)ret; +} + +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 4804: 1141 addi sp,sp,-16 + long long ret = strtoll(nptr, endptr, base); + 4806: 4629 li a2,10 + 4808: 4581 li a1,0 +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 480a: e406 sd ra,8(sp) + long long ret = strtoll(nptr, endptr, base); + 480c: f29ff0ef jal 4734 +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 4810: 60a2 ld ra,8(sp) + 4812: 2501 sext.w a0,a0 + 4814: 0141 addi sp,sp,16 + 4816: 8082 ret + +0000000000004818 : + long long ret = strtoll(nptr, endptr, base); + 4818: 4629 li a2,10 + 481a: 4581 li a1,0 + 481c: bf21 j 4734 + +000000000000481e : +long atol(const char *nptr) { return strtol(nptr, NULL, 10); } +long long atoll(const char *nptr) { return strtoll(nptr, NULL, 10); } + 481e: 4629 li a2,10 + 4820: 4581 li a1,0 + 4822: bf09 j 4734 + +0000000000004824 : + 4824: 02000693 li a3,32 + 4828: 4611 li a2,4 +{ + double val = 0.0; + int sign = 1; + const char *s = nptr; + + while (isspace(*s)) + 482a: 00054783 lbu a5,0(a0) + 482e: ff77871b addiw a4,a5,-9 + 4832: 0ff77713 zext.b a4,a4 + 4836: 06d78263 beq a5,a3,489a + 483a: 06e67063 bgeu a2,a4,489a + s++; + if (*s == '-') + 483e: 02d00713 li a4,45 + 4842: 08e78e63 beq a5,a4,48de + { + sign = -1; + s++; + } + else if (*s == '+') + 4846: 02b00713 li a4,43 + 484a: 0ae78263 beq a5,a4,48ee + 484e: 00001717 auipc a4,0x1 + 4852: 0a273507 fld fa0,162(a4) # 58f0 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 4856: fd07861b addiw a2,a5,-48 + s++; + + while (isdigit(*s)) + 485a: 46a5 li a3,9 + 485c: f20007d3 fmv.d.x fa5,zero + 4860: 8732 mv a4,a2 + 4862: 02c6e363 bltu a3,a2,4888 + 4866: 00001797 auipc a5,0x1 + 486a: 0927b687 fld fa3,146(a5) # 58f8 + 486e: 4625 li a2,9 + 4870: 00154783 lbu a5,1(a0) + { + val = val * 10.0 + (*s - '0'); + 4874: d2070753 fcvt.d.w fa4,a4 + s++; + 4878: 0505 addi a0,a0,1 + 487a: fd07869b addiw a3,a5,-48 + val = val * 10.0 + (*s - '0'); + 487e: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 + 4882: 8736 mv a4,a3 + while (isdigit(*s)) + 4884: fed676e3 bgeu a2,a3,4870 + } + if (*s == '.') + 4888: 02e00713 li a4,46 + 488c: 00e78963 beq a5,a4,489e + val += (*s - '0') * factor; + s++; + } + } + + if (endptr) + 4890: c191 beqz a1,4894 + *endptr = (char *)s; + 4892: e188 sd a0,0(a1) + return val * sign; +} + 4894: 12a7f553 fmul.d fa0,fa5,fa0 + 4898: 8082 ret + s++; + 489a: 0505 addi a0,a0,1 + 489c: b779 j 482a + while (isdigit(*s)) + 489e: 00154703 lbu a4,1(a0) + 48a2: 46a5 li a3,9 + s++; + 48a4: 0505 addi a0,a0,1 + 48a6: fd07071b addiw a4,a4,-48 + 48aa: 87ba mv a5,a4 + while (isdigit(*s)) + 48ac: fee6e2e3 bltu a3,a4,4890 + double factor = 1.0; + 48b0: 00001717 auipc a4,0x1 + 48b4: 04073707 fld fa4,64(a4) # 58f0 + 48b8: 00001717 auipc a4,0x1 + 48bc: 05873607 fld fa2,88(a4) # 5910 + factor *= 0.1; + 48c0: 12c77753 fmul.d fa4,fa4,fa2 + while (isdigit(*s)) + 48c4: 00154703 lbu a4,1(a0) + val += (*s - '0') * factor; + 48c8: d20786d3 fcvt.d.w fa3,a5 + s++; + 48cc: 0505 addi a0,a0,1 + 48ce: fd07071b addiw a4,a4,-48 + 48d2: 87ba mv a5,a4 + val += (*s - '0') * factor; + 48d4: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 + while (isdigit(*s)) + 48d8: fee6f4e3 bgeu a3,a4,48c0 + 48dc: bf55 j 4890 + while (isdigit(*s)) + 48de: 00154783 lbu a5,1(a0) + 48e2: 00001717 auipc a4,0x1 + 48e6: 00673507 fld fa0,6(a4) # 58e8 + s++; + 48ea: 0505 addi a0,a0,1 + 48ec: b7ad j 4856 + while (isdigit(*s)) + 48ee: 00154783 lbu a5,1(a0) + 48f2: 00001717 auipc a4,0x1 + 48f6: ffe73507 fld fa0,-2(a4) # 58f0 + s++; + 48fa: 0505 addi a0,a0,1 + 48fc: bfa9 j 4856 + +00000000000048fe : + +double atof(const char *nptr) { return strtod(nptr, NULL); } + 48fe: 4581 li a1,0 + 4900: b715 j 4824 + +0000000000004902 : +float strtof(const char *nptr, char **endptr) { return (float)strtod(nptr, endptr); } + 4902: 1141 addi sp,sp,-16 + 4904: e406 sd ra,8(sp) + 4906: f1fff0ef jal 4824 + 490a: 60a2 ld ra,8(sp) + 490c: 40157553 fcvt.s.d fa0,fa0 + 4910: 0141 addi sp,sp,16 + 4912: 8082 ret + +0000000000004914 : + } +} + +void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + if (nmemb < 2 || size == 0) + 4914: 4785 li a5,1 + 4916: 0cb7fd63 bgeu a5,a1,49f0 +{ + 491a: 715d addi sp,sp,-80 + 491c: f44e sd s3,40(sp) + 491e: e486 sd ra,72(sp) + 4920: 89b2 mv s3,a2 + if (nmemb < 2 || size == 0) + 4922: c279 beqz a2,49e8 + 4924: e85a sd s6,16(sp) + 4926: 8b2e mv s6,a1 + return; + + char *base_ptr = (char *)base; + char *pivot = base_ptr + (nmemb - 1) * size; + 4928: 1b7d addi s6,s6,-1 + 492a: fc26 sd s1,56(sp) + 492c: 033b04b3 mul s1,s6,s3 + 4930: ec56 sd s5,24(sp) + 4932: 8aaa mv s5,a0 + 4934: f052 sd s4,32(sp) + 4936: e45e sd s7,8(sp) + 4938: e0a2 sd s0,64(sp) + 493a: f84a sd s2,48(sp) + 493c: 8a36 mv s4,a3 + if (nmemb < 2 || size == 0) + 493e: 4b85 li s7,1 + char *pivot = base_ptr + (nmemb - 1) * size; + 4940: 94d6 add s1,s1,s5 + char *i = base_ptr; + char *j = base_ptr; + + /* Partition */ + for (; j < pivot; j += size) + 4942: 069af763 bgeu s5,s1,49b0 + char *j = base_ptr; + 4946: 8956 mv s2,s5 + char *i = base_ptr; + 4948: 8456 mv s0,s5 + 494a: a021 j 4952 + for (; j < pivot; j += size) + 494c: 994e add s2,s2,s3 + 494e: 00997f63 bgeu s2,s1,496c + { + if (compar(j, pivot) < 0) + 4952: 85a6 mv a1,s1 + 4954: 854a mv a0,s2 + 4956: 9a02 jalr s4 + 4958: fe055ae3 bgez a0,494c + { + if (i != j) + 495c: 05241d63 bne s0,s2,49b6 + 4960: 01390633 add a2,s2,s3 + swap_bytes(i, j, size); + i += size; + 4964: 8432 mv s0,a2 + for (; j < pivot; j += size) + 4966: 994e add s2,s2,s3 + 4968: fe9965e3 bltu s2,s1,4952 + } + } + swap_bytes(i, pivot, size); + + /* Recurse */ + size_t left_count = (i - base_ptr) / size; + 496c: 415405b3 sub a1,s0,s5 + 4970: 0335d5b3 divu a1,a1,s3 + qsort(base, left_count, size, compar); + qsort(i + size, nmemb - left_count - 1, size, compar); + 4974: 40bb0b33 sub s6,s6,a1 + while (size--) + 4978: 013406b3 add a3,s0,s3 + *a++ = *b; + 497c: 0004c703 lbu a4,0(s1) + temp = *a; + 4980: 00044783 lbu a5,0(s0) + *b++ = temp; + 4984: 0485 addi s1,s1,1 + *a++ = *b; + 4986: 0405 addi s0,s0,1 + 4988: fee40fa3 sb a4,-1(s0) + *b++ = temp; + 498c: fef48fa3 sb a5,-1(s1) + while (size--) + 4990: fed416e3 bne s0,a3,497c + qsort(base, left_count, size, compar); + 4994: 86d2 mv a3,s4 + 4996: 864e mv a2,s3 + 4998: 8556 mv a0,s5 + 499a: f7bff0ef jal 4914 + if (nmemb < 2 || size == 0) + 499e: 036bfe63 bgeu s7,s6,49da + char *pivot = base_ptr + (nmemb - 1) * size; + 49a2: 1b7d addi s6,s6,-1 + 49a4: 033b04b3 mul s1,s6,s3 + 49a8: 8aa2 mv s5,s0 + 49aa: 94d6 add s1,s1,s5 + for (; j < pivot; j += size) + 49ac: f89aede3 bltu s5,s1,4946 + char *i = base_ptr; + 49b0: 8456 mv s0,s5 + for (; j < pivot; j += size) + 49b2: 4581 li a1,0 + 49b4: b7d1 j 4978 + 49b6: 01340633 add a2,s0,s3 + if (i != j) + 49ba: 874a mv a4,s2 + 49bc: 87a2 mv a5,s0 + *a++ = *b; + 49be: 00074683 lbu a3,0(a4) + temp = *a; + 49c2: 0007c803 lbu a6,0(a5) + *b++ = temp; + 49c6: 0705 addi a4,a4,1 + *a++ = *b; + 49c8: 0785 addi a5,a5,1 + 49ca: fed78fa3 sb a3,-1(a5) + *b++ = temp; + 49ce: ff070fa3 sb a6,-1(a4) + while (size--) + 49d2: fec796e3 bne a5,a2,49be + i += size; + 49d6: 8432 mv s0,a2 + 49d8: b779 j 4966 + 49da: 6406 ld s0,64(sp) + 49dc: 74e2 ld s1,56(sp) + 49de: 7942 ld s2,48(sp) + 49e0: 7a02 ld s4,32(sp) + 49e2: 6ae2 ld s5,24(sp) + 49e4: 6b42 ld s6,16(sp) + 49e6: 6ba2 ld s7,8(sp) +} + 49e8: 60a6 ld ra,72(sp) + 49ea: 79a2 ld s3,40(sp) + 49ec: 6161 addi sp,sp,80 + 49ee: 8082 ret + 49f0: 8082 ret + +00000000000049f2 : + +void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + 49f2: 715d addi sp,sp,-80 + 49f4: e486 sd ra,72(sp) + 49f6: fc26 sd s1,56(sp) + size_t l = 0, u = nmemb; + while (l < u) + 49f8: c629 beqz a2,4a42 + 49fa: f84a sd s2,48(sp) + 49fc: f44e sd s3,40(sp) + 49fe: f052 sd s4,32(sp) + 4a00: ec56 sd s5,24(sp) + 4a02: e85a sd s6,16(sp) + 4a04: e45e sd s7,8(sp) + 4a06: e0a2 sd s0,64(sp) + 4a08: 8932 mv s2,a2 + 4a0a: 8a2a mv s4,a0 + 4a0c: 8aae mv s5,a1 + 4a0e: 8b36 mv s6,a3 + 4a10: 8bba mv s7,a4 + size_t l = 0, u = nmemb; + 4a12: 4981 li s3,0 + { + size_t idx = (l + u) / 2; + 4a14: 01298433 add s0,s3,s2 + 4a18: 8005 srli s0,s0,0x1 + const void *p = (void *)((const char *)base + (idx * size)); + 4a1a: 036404b3 mul s1,s0,s6 + int cmp = compar(key, p); + 4a1e: 8552 mv a0,s4 + const void *p = (void *)((const char *)base + (idx * size)); + 4a20: 94d6 add s1,s1,s5 + int cmp = compar(key, p); + 4a22: 85a6 mv a1,s1 + 4a24: 9b82 jalr s7 + if (cmp < 0) + 4a26: 02054463 bltz a0,4a4e + u = idx; + else if (cmp > 0) + 4a2a: c515 beqz a0,4a56 + l = idx + 1; + 4a2c: 00140993 addi s3,s0,1 + while (l < u) + 4a30: ff29e2e3 bltu s3,s2,4a14 + 4a34: 6406 ld s0,64(sp) + 4a36: 7942 ld s2,48(sp) + 4a38: 79a2 ld s3,40(sp) + 4a3a: 7a02 ld s4,32(sp) + 4a3c: 6ae2 ld s5,24(sp) + 4a3e: 6b42 ld s6,16(sp) + 4a40: 6ba2 ld s7,8(sp) + else + return (void *)p; + } + return NULL; +} + 4a42: 60a6 ld ra,72(sp) + return NULL; + 4a44: 4481 li s1,0 +} + 4a46: 8526 mv a0,s1 + 4a48: 74e2 ld s1,56(sp) + 4a4a: 6161 addi sp,sp,80 + 4a4c: 8082 ret + u = idx; + 4a4e: 8922 mv s2,s0 + while (l < u) + 4a50: fd29e2e3 bltu s3,s2,4a14 + 4a54: b7c5 j 4a34 + 4a56: 6406 ld s0,64(sp) +} + 4a58: 60a6 ld ra,72(sp) + 4a5a: 7942 ld s2,48(sp) + 4a5c: 79a2 ld s3,40(sp) + 4a5e: 7a02 ld s4,32(sp) + 4a60: 6ae2 ld s5,24(sp) + 4a62: 6b42 ld s6,16(sp) + 4a64: 6ba2 ld s7,8(sp) + 4a66: 8526 mv a0,s1 + 4a68: 74e2 ld s1,56(sp) + 4a6a: 6161 addi sp,sp,80 + 4a6c: 8082 ret + +0000000000004a6e : + +/* Math & Mics */ + +int abs(int j) { return (j < 0) ? -j : j; } + 4a6e: 41f5579b sraiw a5,a0,0x1f + 4a72: 8d3d xor a0,a0,a5 + 4a74: 9d1d subw a0,a0,a5 + 4a76: 8082 ret + +0000000000004a78 : +long labs(long j) { return (j < 0) ? -j : j; } + 4a78: 43f55793 srai a5,a0,0x3f + 4a7c: 8d3d xor a0,a0,a5 + 4a7e: 8d1d sub a0,a0,a5 + 4a80: 8082 ret + +0000000000004a82 : +long long llabs(long long j) { return (j < 0) ? -j : j; } + 4a82: 43f55793 srai a5,a0,0x3f + 4a86: 8d3d xor a0,a0,a5 + 4a88: 8d1d sub a0,a0,a5 + 4a8a: 8082 ret + +0000000000004a8c
: + +div_t div(int numer, int denom) +{ + div_t res = {numer / denom, numer % denom}; + 4a8c: 02b547bb divw a5,a0,a1 +{ + 4a90: 1141 addi sp,sp,-16 + return res; +} + 4a92: 0141 addi sp,sp,16 + div_t res = {numer / denom, numer % denom}; + 4a94: 02b5653b remw a0,a0,a1 + return res; + 4a98: 1782 slli a5,a5,0x20 + 4a9a: 9381 srli a5,a5,0x20 + 4a9c: 1502 slli a0,a0,0x20 +} + 4a9e: 8d5d or a0,a0,a5 + 4aa0: 8082 ret + +0000000000004aa2 : +ldiv_t ldiv(long numer, long denom) +{ + 4aa2: 1141 addi sp,sp,-16 + 4aa4: 87aa mv a5,a0 + ldiv_t res = {numer / denom, numer % denom}; + return res; +} + 4aa6: 02b54533 div a0,a0,a1 + 4aaa: 0141 addi sp,sp,16 + 4aac: 02b7e5b3 rem a1,a5,a1 + 4ab0: 8082 ret + +0000000000004ab2 : +lldiv_t lldiv(long long numer, long long denom) +{ + 4ab2: 1141 addi sp,sp,-16 + 4ab4: 87aa mv a5,a0 + lldiv_t res = {numer / denom, numer % denom}; + return res; +} + 4ab6: 02b54533 div a0,a0,a1 + 4aba: 0141 addi sp,sp,16 + 4abc: 02b7e5b3 rem a1,a5,a1 + 4ac0: 8082 ret + +0000000000004ac2 : + +static unsigned long next = 1; +int rand(void) +{ + next = next * 1103515245 + 12345; + 4ac2: 00003697 auipc a3,0x3 + 4ac6: d3668693 addi a3,a3,-714 # 77f8 + 4aca: 629c ld a5,0(a3) + 4acc: 41c65737 lui a4,0x41c65 + 4ad0: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5d4f5> + 4ad4: 02e787b3 mul a5,a5,a4 + 4ad8: 670d lui a4,0x3 + 4ada: 03970713 addi a4,a4,57 # 3039 + 4ade: 97ba add a5,a5,a4 + return (unsigned int)(next / 65536) % 32768; + 4ae0: 02179513 slli a0,a5,0x21 + next = next * 1103515245 + 12345; + 4ae4: e29c sd a5,0(a3) +} + 4ae6: 9145 srli a0,a0,0x31 + 4ae8: 8082 ret + +0000000000004aea : +void srand(unsigned int seed) { next = seed; } + 4aea: 1502 slli a0,a0,0x20 + 4aec: 9101 srli a0,a0,0x20 + 4aee: 00003797 auipc a5,0x3 + 4af2: d0a7b523 sd a0,-758(a5) # 77f8 + 4af6: 8082 ret + +0000000000004af8 : + +/* Stub */ +int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } + 4af8: c901 beqz a0,4b08 + 4afa: 00054783 lbu a5,0(a0) + 4afe: 4501 li a0,0 + 4b00: c789 beqz a5,4b0a + 4b02: 00b03533 snez a0,a1 + 4b06: 8082 ret + 4b08: 4501 li a0,0 + 4b0a: 8082 ret + +0000000000004b0c : +int mbtowc(wchar_t *pwc, const char *s, size_t n) +{ + 4b0c: 87aa mv a5,a0 + if (!s) + 4b0e: cd81 beqz a1,4b26 + return 0; + if (n == 0) + return -1; + 4b10: 557d li a0,-1 + if (n == 0) + 4b12: ca19 beqz a2,4b28 + if (pwc) + 4b14: c781 beqz a5,4b1c + *pwc = (wchar_t)*s; + 4b16: 0005c703 lbu a4,0(a1) + 4b1a: c398 sw a4,0(a5) + return (*s != 0); + 4b1c: 0005c503 lbu a0,0(a1) + 4b20: 00a03533 snez a0,a0 + 4b24: 8082 ret + return 0; + 4b26: 4501 li a0,0 +} + 4b28: 8082 ret + +0000000000004b2a : +int wctomb(char *s, wchar_t wchar) +{ + if (!s) + 4b2a: c509 beqz a0,4b34 + return 0; + *s = (char)wchar; + 4b2c: 00b50023 sb a1,0(a0) + return 1; + 4b30: 4505 li a0,1 + 4b32: 8082 ret + return 0; + 4b34: 4501 li a0,0 +} + 4b36: 8082 ret + +0000000000004b38 : +size_t mbstowcs(wchar_t *dest, const char *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4b38: 0005c703 lbu a4,0(a1) + 4b3c: cb0d beqz a4,4b6e + 4b3e: ca15 beqz a2,4b72 + 4b40: 86aa mv a3,a0 + size_t i = 0; + 4b42: 4781 li a5,0 + 4b44: a019 j 4b4a + while (src[i] && i < n) + 4b46: 02f60263 beq a2,a5,4b6a + { + dest[i] = (wchar_t)src[i]; + i++; + 4b4a: 0785 addi a5,a5,1 + dest[i] = (wchar_t)src[i]; + 4b4c: c298 sw a4,0(a3) + while (src[i] && i < n) + 4b4e: 00f58733 add a4,a1,a5 + 4b52: 00074703 lbu a4,0(a4) + 4b56: 0691 addi a3,a3,4 + 4b58: f77d bnez a4,4b46 + } + if (i < n) + 4b5a: 00c7f763 bgeu a5,a2,4b68 + dest[i] = 0; + 4b5e: 00279713 slli a4,a5,0x2 + 4b62: 953a add a0,a0,a4 + 4b64: 00052023 sw zero,0(a0) + size_t i = 0; + 4b68: 863e mv a2,a5 + 4b6a: 8532 mv a0,a2 + 4b6c: 8082 ret + 4b6e: 4781 li a5,0 + 4b70: b7ed j 4b5a + 4b72: 4501 li a0,0 + return i; +} + 4b74: 8082 ret + +0000000000004b76 : +size_t wcstombs(char *dest, const wchar_t *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4b76: 4198 lw a4,0(a1) + 4b78: c71d beqz a4,4ba6 + 4b7a: ca05 beqz a2,4baa + 4b7c: 0591 addi a1,a1,4 + size_t i = 0; + 4b7e: 4781 li a5,0 + 4b80: a019 j 4b86 + while (src[i] && i < n) + 4b82: 02f60063 beq a2,a5,4ba2 + { + dest[i] = (char)src[i]; + 4b86: 00f506b3 add a3,a0,a5 + 4b8a: 00e68023 sb a4,0(a3) + while (src[i] && i < n) + 4b8e: 4198 lw a4,0(a1) + i++; + 4b90: 0785 addi a5,a5,1 + while (src[i] && i < n) + 4b92: 0591 addi a1,a1,4 + 4b94: f77d bnez a4,4b82 + } + if (i < n) + 4b96: 00c7f563 bgeu a5,a2,4ba0 + dest[i] = 0; + 4b9a: 953e add a0,a0,a5 + 4b9c: 00050023 sb zero,0(a0) + size_t i = 0; + 4ba0: 863e mv a2,a5 + 4ba2: 8532 mv a0,a2 + 4ba4: 8082 ret + 4ba6: 4781 li a5,0 + 4ba8: b7fd j 4b96 + 4baa: 4501 li a0,0 + return i; + 4bac: 8082 ret + +0000000000004bae : + +void *memset(void *dst, int c, size_t n) +{ + char *cdst = (char *)dst; + for (size_t i = 0; i < n; i++) + cdst[i] = (char)c; + 4bae: 0ff5f593 zext.b a1,a1 + 4bb2: 87aa mv a5,a0 + 4bb4: 00a60733 add a4,a2,a0 + for (size_t i = 0; i < n; i++) + 4bb8: c611 beqz a2,4bc4 + cdst[i] = (char)c; + 4bba: 00b78023 sb a1,0(a5) + for (size_t i = 0; i < n; i++) + 4bbe: 0785 addi a5,a5,1 + 4bc0: fee79de3 bne a5,a4,4bba + return dst; +} + 4bc4: 8082 ret + +0000000000004bc6 : + +void *memmove(void *vdst, const void *vsrc, size_t n) +{ + char *dst = (char *)vdst; + const char *src = (const char *)vsrc; + if (dst == src) + 4bc6: 02b50d63 beq a0,a1,4c00 + return vdst; + + if (src > dst) + 4bca: 00b57e63 bgeu a0,a1,4be6 + { + while (n--) + 4bce: ca0d beqz a2,4c00 + 4bd0: 962a add a2,a2,a0 + char *dst = (char *)vdst; + 4bd2: 87aa mv a5,a0 + *dst++ = *src++; + 4bd4: 0005c703 lbu a4,0(a1) + 4bd8: 0785 addi a5,a5,1 + 4bda: 0585 addi a1,a1,1 + 4bdc: fee78fa3 sb a4,-1(a5) + while (n--) + 4be0: fec79ae3 bne a5,a2,4bd4 + 4be4: 8082 ret + } + else + { + dst += n; + 4be6: 00c50733 add a4,a0,a2 + src += n; + 4bea: 00c587b3 add a5,a1,a2 + while (n-- > 0) + 4bee: ca09 beqz a2,4c00 + *--dst = *--src; + 4bf0: fff7c683 lbu a3,-1(a5) + 4bf4: 17fd addi a5,a5,-1 + 4bf6: 177d addi a4,a4,-1 + 4bf8: 00d70023 sb a3,0(a4) + while (n-- > 0) + 4bfc: fef59ae3 bne a1,a5,4bf0 + } + return vdst; +} + 4c00: 8082 ret + +0000000000004c02 : + +void *memcpy(void *vdst, const void *vsrc, size_t n) +{ + return memmove(vdst, vsrc, n); + 4c02: b7d1 j 4bc6 + +0000000000004c04 : + +int memcmp(const void *s1, const void *s2, size_t n) +{ + const unsigned char *p1 = (const unsigned char *)s1; + const unsigned char *p2 = (const unsigned char *)s2; + while (n--) + 4c04: c205 beqz a2,4c24 + 4c06: 962a add a2,a2,a0 + 4c08: a019 j 4c0e + 4c0a: 00c50d63 beq a0,a2,4c24 + { + if (*p1 != *p2) + 4c0e: 00054783 lbu a5,0(a0) + 4c12: 0005c703 lbu a4,0(a1) + return *p1 - *p2; + p1++; + 4c16: 0505 addi a0,a0,1 + p2++; + 4c18: 0585 addi a1,a1,1 + if (*p1 != *p2) + 4c1a: fee788e3 beq a5,a4,4c0a + return *p1 - *p2; + 4c1e: 40e7853b subw a0,a5,a4 + 4c22: 8082 ret + } + return 0; + 4c24: 4501 li a0,0 +} + 4c26: 8082 ret + +0000000000004c28 : + +void *memchr(const void *s, int c, size_t n) +{ + const unsigned char *p = (const unsigned char *)s; + while (n--) + 4c28: ce09 beqz a2,4c42 + { + if (*p == (unsigned char)c) + 4c2a: 0ff5f593 zext.b a1,a1 + 4c2e: 962a add a2,a2,a0 + 4c30: a021 j 4c38 + return (void *)p; + p++; + 4c32: 0505 addi a0,a0,1 + while (n--) + 4c34: 00a60763 beq a2,a0,4c42 + if (*p == (unsigned char)c) + 4c38: 00054783 lbu a5,0(a0) + 4c3c: feb79be3 bne a5,a1,4c32 + } + return NULL; +} + 4c40: 8082 ret + return NULL; + 4c42: 4501 li a0,0 +} + 4c44: 8082 ret + +0000000000004c46 : +/* String Manipulation Functions */ + +size_t strlen(const char *s) +{ + const char *p = s; + while (*p) + 4c46: 00054783 lbu a5,0(a0) + 4c4a: cb89 beqz a5,4c5c + const char *p = s; + 4c4c: 87aa mv a5,a0 + while (*p) + 4c4e: 0017c703 lbu a4,1(a5) + p++; + 4c52: 0785 addi a5,a5,1 + while (*p) + 4c54: ff6d bnez a4,4c4e + return (size_t)(p - s); + 4c56: 40a78533 sub a0,a5,a0 + 4c5a: 8082 ret + while (*p) + 4c5c: 4501 li a0,0 +} + 4c5e: 8082 ret + +0000000000004c60 : + +char *strcpy(char *dst, const char *src) +{ + char *os = dst; + while ((*dst++ = *src++) != 0) + 4c60: 87aa mv a5,a0 + 4c62: 0005c703 lbu a4,0(a1) + 4c66: 0785 addi a5,a5,1 + 4c68: 0585 addi a1,a1,1 + 4c6a: fee78fa3 sb a4,-1(a5) + 4c6e: fb75 bnez a4,4c62 + ; + return os; +} + 4c70: 8082 ret + +0000000000004c72 : +char *strncpy(char *dst, const char *src, size_t n) +{ + char *os = dst; + size_t i; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4c72: 4781 li a5,0 + 4c74: e619 bnez a2,4c82 + 4c76: 8082 ret + dst[i] = src[i]; + 4c78: 00e68023 sb a4,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4c7c: 0785 addi a5,a5,1 + 4c7e: 02f60263 beq a2,a5,4ca2 + 4c82: 00f58733 add a4,a1,a5 + 4c86: 00074703 lbu a4,0(a4) + dst[i] = src[i]; + 4c8a: 00f506b3 add a3,a0,a5 + for (i = 0; i < n && src[i] != '\0'; i++) + 4c8e: f76d bnez a4,4c78 + + for (; i < n; i++) + 4c90: 00c7f963 bgeu a5,a2,4ca2 + 4c94: 87b6 mv a5,a3 + 4c96: 962a add a2,a2,a0 + dst[i] = '\0'; + 4c98: 00078023 sb zero,0(a5) + for (; i < n; i++) + 4c9c: 0785 addi a5,a5,1 + 4c9e: fec79de3 bne a5,a2,4c98 + + return os; +} + 4ca2: 8082 ret + +0000000000004ca4 : + +char *strcat(char *dst, const char *src) +{ + char *os = dst; + while (*dst) + 4ca4: 00054783 lbu a5,0(a0) + 4ca8: cf91 beqz a5,4cc4 + 4caa: 87aa mv a5,a0 + 4cac: 0017c703 lbu a4,1(a5) + dst++; + 4cb0: 0785 addi a5,a5,1 + while (*dst) + 4cb2: ff6d bnez a4,4cac + while ((*dst++ = *src++) != 0) + 4cb4: 0005c703 lbu a4,0(a1) + 4cb8: 0785 addi a5,a5,1 + 4cba: 0585 addi a1,a1,1 + 4cbc: fee78fa3 sb a4,-1(a5) + 4cc0: fb75 bnez a4,4cb4 + ; + return os; +} + 4cc2: 8082 ret + while ((*dst++ = *src++) != 0) + 4cc4: 0005c703 lbu a4,0(a1) + while (*dst) + 4cc8: 87aa mv a5,a0 + while ((*dst++ = *src++) != 0) + 4cca: 0785 addi a5,a5,1 + 4ccc: fee78fa3 sb a4,-1(a5) + 4cd0: 0585 addi a1,a1,1 + 4cd2: f36d bnez a4,4cb4 + 4cd4: 8082 ret + +0000000000004cd6 : + while (*p) + 4cd6: 00054783 lbu a5,0(a0) + const char *p = s; + 4cda: 872a mv a4,a0 + while (*p) + 4cdc: c789 beqz a5,4ce6 + 4cde: 00174783 lbu a5,1(a4) + p++; + 4ce2: 0705 addi a4,a4,1 + while (*p) + 4ce4: ffed bnez a5,4cde + size_t dest_len = strlen(dst); + size_t i; + + dst += dest_len; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4ce6: 86ba mv a3,a4 + 4ce8: 4781 li a5,0 + 4cea: 88ba mv a7,a4 + 4cec: ea01 bnez a2,4cfc + 4cee: a839 j 4d0c + dst[i] = src[i]; + 4cf0: 01068023 sb a6,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4cf4: 00188693 addi a3,a7,1 + 4cf8: 00f60d63 beq a2,a5,4d12 + 4cfc: 00f58833 add a6,a1,a5 + 4d00: 00084803 lbu a6,0(a6) + 4d04: 0785 addi a5,a5,1 + dst[i] = src[i]; + 4d06: 88b6 mv a7,a3 + for (i = 0; i < n && src[i] != '\0'; i++) + 4d08: fe0814e3 bnez a6,4cf0 + + dst[i] = '\0'; + 4d0c: 00088023 sb zero,0(a7) + + return os; +} + 4d10: 8082 ret + dst[i] = '\0'; + 4d12: 00c708b3 add a7,a4,a2 + 4d16: 00088023 sb zero,0(a7) +} + 4d1a: 8082 ret + +0000000000004d1c : + +int strcmp(const char *p, const char *q) +{ + while (*p && *p == *q) + 4d1c: 00054783 lbu a5,0(a0) + 4d20: e791 bnez a5,4d2c + 4d22: a02d j 4d4c + 4d24: 00054783 lbu a5,0(a0) + 4d28: cf89 beqz a5,4d42 + 4d2a: 85b6 mv a1,a3 + 4d2c: 0005c703 lbu a4,0(a1) + { + p++; + 4d30: 0505 addi a0,a0,1 + q++; + 4d32: 00158693 addi a3,a1,1 + while (*p && *p == *q) + 4d36: fef707e3 beq a4,a5,4d24 + } + return (int)((unsigned char)*p - (unsigned char)*q); + 4d3a: 0007851b sext.w a0,a5 +} + 4d3e: 9d19 subw a0,a0,a4 + 4d40: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4d42: 0015c703 lbu a4,1(a1) + 4d46: 4501 li a0,0 +} + 4d48: 9d19 subw a0,a0,a4 + 4d4a: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4d4c: 0005c703 lbu a4,0(a1) + 4d50: 4501 li a0,0 + 4d52: b7f5 j 4d3e + +0000000000004d54 : + +int strncmp(const char *s1, const char *s2, size_t n) +{ + if (n == 0) + 4d54: ca0d beqz a2,4d86 + return 0; + + while (n-- > 0 && *s1 && *s1 == *s2) + 4d56: 00054783 lbu a5,0(a0) + 4d5a: 167d addi a2,a2,-1 + 4d5c: 00c506b3 add a3,a0,a2 + 4d60: eb89 bnez a5,4d72 + 4d62: a80d j 4d94 + { + if (n == 0 || *s1 == '\0') + 4d64: 00d50d63 beq a0,a3,4d7e + while (n-- > 0 && *s1 && *s1 == *s2) + 4d68: 00154783 lbu a5,1(a0) + break; + s1++; + 4d6c: 0505 addi a0,a0,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4d6e: cf91 beqz a5,4d8a + 4d70: 85b2 mv a1,a2 + 4d72: 0005c703 lbu a4,0(a1) + s2++; + 4d76: 00158613 addi a2,a1,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4d7a: fef705e3 beq a4,a5,4d64 + } + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4d7e: 0007851b sext.w a0,a5 + 4d82: 9d19 subw a0,a0,a4 + 4d84: 8082 ret + return 0; + 4d86: 4501 li a0,0 +} + 4d88: 8082 ret + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4d8a: 0015c703 lbu a4,1(a1) + 4d8e: 4501 li a0,0 + 4d90: 9d19 subw a0,a0,a4 + 4d92: 8082 ret + 4d94: 0005c703 lbu a4,0(a1) + 4d98: 4501 li a0,0 + 4d9a: b7e5 j 4d82 + +0000000000004d9c : + +char *strchr(const char *s, int c) +{ + while (*s != (char)c) + 4d9c: 0ff5f593 zext.b a1,a1 + 4da0: a019 j 4da6 + { + if (!*s++) + 4da2: 0505 addi a0,a0,1 + 4da4: c791 beqz a5,4db0 + while (*s != (char)c) + 4da6: 00054783 lbu a5,0(a0) + 4daa: feb79ce3 bne a5,a1,4da2 + 4dae: 8082 ret + return NULL; + 4db0: 4501 li a0,0 + } + return (char *)s; +} + 4db2: 8082 ret + +0000000000004db4 : + +char *strrchr(const char *s, int c) +{ + 4db4: 87aa mv a5,a0 + const char *last = NULL; + do + { + if (*s == (char)c) + 4db6: 0ff5f593 zext.b a1,a1 + const char *last = NULL; + 4dba: 4501 li a0,0 + if (*s == (char)c) + 4dbc: 0007c703 lbu a4,0(a5) + 4dc0: 00e59363 bne a1,a4,4dc6 + last = s; + 4dc4: 853e mv a0,a5 + } while (*s++); + 4dc6: 0785 addi a5,a5,1 + 4dc8: fb75 bnez a4,4dbc + + return (char *)last; +} + 4dca: 8082 ret + +0000000000004dcc : + while (*p) + 4dcc: 0005c883 lbu a7,0(a1) + 4dd0: 04088a63 beqz a7,4e24 + const char *p = s; + 4dd4: 87ae mv a5,a1 + while (*p) + 4dd6: 0017c703 lbu a4,1(a5) + p++; + 4dda: 0785 addi a5,a5,1 + while (*p) + 4ddc: ff6d bnez a4,4dd6 + return (size_t)(p - s); + 4dde: 40b78833 sub a6,a5,a1 + + +char *strstr(const char *haystack, const char *needle) +{ + size_t n_len = strlen(needle); + if (n_len == 0) + 4de2: 04b78163 beq a5,a1,4e24 + return (char *)haystack; + + for (; *haystack; haystack++) + 4de6: 00054783 lbu a5,0(a0) + 4dea: cf85 beqz a5,4e22 + 4dec: 187d addi a6,a6,-1 + 4dee: 982a add a6,a6,a0 + { + if (*haystack != *needle) + 4df0: 02f89463 bne a7,a5,4e18 + while (n-- > 0 && *s1 && *s1 == *s2) + 4df4: 00054703 lbu a4,0(a0) + 4df8: 8646 mv a2,a7 + 4dfa: 86ae mv a3,a1 + 4dfc: 87aa mv a5,a0 + 4dfe: eb11 bnez a4,4e12 + 4e00: a821 j 4e18 + if (n == 0 || *s1 == '\0') + 4e02: 03078163 beq a5,a6,4e24 + while (n-- > 0 && *s1 && *s1 == *s2) + 4e06: 0017c703 lbu a4,1(a5) + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4e0a: 0006c603 lbu a2,0(a3) + s1++; + 4e0e: 0785 addi a5,a5,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4e10: cb19 beqz a4,4e26 + s2++; + 4e12: 0685 addi a3,a3,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4e14: fee607e3 beq a2,a4,4e02 + for (; *haystack; haystack++) + 4e18: 00154783 lbu a5,1(a0) + 4e1c: 0805 addi a6,a6,1 + 4e1e: 0505 addi a0,a0,1 + 4e20: fbe1 bnez a5,4df0 + continue; + + if (strncmp(haystack, needle, n_len) == 0) + return (char *)haystack; + } + return NULL; + 4e22: 4501 li a0,0 +} + 4e24: 8082 ret + if (strncmp(haystack, needle, n_len) == 0) + 4e26: de7d beqz a2,4e24 + for (; *haystack; haystack++) + 4e28: 00154783 lbu a5,1(a0) + 4e2c: 0805 addi a6,a6,1 + 4e2e: 0505 addi a0,a0,1 + 4e30: f3e1 bnez a5,4df0 + 4e32: bfc5 j 4e22 + +0000000000004e34 : + +char *strdup(const char *s) +{ + 4e34: 1101 addi sp,sp,-32 + 4e36: e426 sd s1,8(sp) + 4e38: ec06 sd ra,24(sp) + 4e3a: e822 sd s0,16(sp) + while (*p) + 4e3c: 00054783 lbu a5,0(a0) +{ + 4e40: 84aa mv s1,a0 + while (*p) + 4e42: cb8d beqz a5,4e74 + const char *p = s; + 4e44: 862a mv a2,a0 + while (*p) + 4e46: 00164783 lbu a5,1(a2) + p++; + 4e4a: 0605 addi a2,a2,1 + while (*p) + 4e4c: ffed bnez a5,4e46 + return (size_t)(p - s); + 4e4e: 8e05 sub a2,a2,s1 + size_t len = strlen(s) + 1; + 4e50: 00160413 addi s0,a2,1 + char *new_str = (char *)malloc(len); + 4e54: 8522 mv a0,s0 + 4e56: f4eff0ef jal 45a4 + if (new_str == NULL) + 4e5a: c901 beqz a0,4e6a + return memmove(vdst, vsrc, n); + 4e5c: 8622 mv a2,s0 + return NULL; + + return (char *)memcpy(new_str, s, len); +} + 4e5e: 6442 ld s0,16(sp) + 4e60: 60e2 ld ra,24(sp) + return memmove(vdst, vsrc, n); + 4e62: 85a6 mv a1,s1 +} + 4e64: 64a2 ld s1,8(sp) + 4e66: 6105 addi sp,sp,32 + return memmove(vdst, vsrc, n); + 4e68: bbb9 j 4bc6 +} + 4e6a: 60e2 ld ra,24(sp) + 4e6c: 6442 ld s0,16(sp) + 4e6e: 64a2 ld s1,8(sp) + 4e70: 6105 addi sp,sp,32 + 4e72: 8082 ret + while (*p) + 4e74: 4405 li s0,1 + 4e76: bff9 j 4e54 + +0000000000004e78 : + 4e78: 0005c783 lbu a5,0(a1) + +size_t strlcpy(char *dst, const char *src, size_t size) +{ + 4e7c: 1101 addi sp,sp,-32 + 4e7e: ec06 sd ra,24(sp) + 4e80: e822 sd s0,16(sp) + 4e82: 86b2 mv a3,a2 + while (*p) + 4e84: cf8d beqz a5,4ebe + const char *p = s; + 4e86: 87ae mv a5,a1 + while (*p) + 4e88: 0017c703 lbu a4,1(a5) + p++; + 4e8c: 0785 addi a5,a5,1 + while (*p) + 4e8e: ff6d bnez a4,4e88 + return (size_t)(p - s); + 4e90: 40b78433 sub s0,a5,a1 + size_t src_len = strlen(src); + + if (size > 0) + 4e94: c285 beqz a3,4eb4 + 4e96: e426 sd s1,8(sp) + { + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4e98: fff68613 addi a2,a3,-1 + memcpy(dst, src, copy_len); + dst[copy_len] = '\0'; + 4e9c: 00c504b3 add s1,a0,a2 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4ea0: 00d47563 bgeu s0,a3,4eaa + dst[copy_len] = '\0'; + 4ea4: 008504b3 add s1,a0,s0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4ea8: 8622 mv a2,s0 + return memmove(vdst, vsrc, n); + 4eaa: d1dff0ef jal 4bc6 + dst[copy_len] = '\0'; + 4eae: 00048023 sb zero,0(s1) + } + + return src_len; + 4eb2: 64a2 ld s1,8(sp) +} + 4eb4: 60e2 ld ra,24(sp) + 4eb6: 8522 mv a0,s0 + 4eb8: 6442 ld s0,16(sp) + 4eba: 6105 addi sp,sp,32 + 4ebc: 8082 ret + if (size > 0) + 4ebe: e219 bnez a2,4ec4 + return (size_t)(p - s); + 4ec0: 4401 li s0,0 + 4ec2: bfcd j 4eb4 + 4ec4: e426 sd s1,8(sp) + 4ec6: 4401 li s0,0 + if (size > 0) + 4ec8: 84aa mv s1,a0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4eca: 4601 li a2,0 + 4ecc: bff9 j 4eaa + +0000000000004ece : + while (*p) + 4ece: 0005c783 lbu a5,0(a1) + +size_t strlcat(char *dst, const char *src, size_t size) +{ + 4ed2: 7179 addi sp,sp,-48 + 4ed4: e84a sd s2,16(sp) + 4ed6: f406 sd ra,40(sp) + 4ed8: f022 sd s0,32(sp) + 4eda: ec26 sd s1,24(sp) + 4edc: 892a mv s2,a0 + while (*p) + 4ede: c7b5 beqz a5,4f4a + const char *p = s; + 4ee0: 87ae mv a5,a1 + while (*p) + 4ee2: 0017c703 lbu a4,1(a5) + p++; + 4ee6: 0785 addi a5,a5,1 + while (*p) + 4ee8: ff6d bnez a4,4ee2 + return (size_t)(p - s); + 4eea: 40b784b3 sub s1,a5,a1 + size_t dst_len = 0; + 4eee: 4401 li s0,0 + size_t src_len = strlen(src); + + while (dst_len < size && dst[dst_len] != '\0') + 4ef0: e609 bnez a2,4efa + 4ef2: a0a1 j 4f3a + dst_len++; + 4ef4: 0405 addi s0,s0,1 + while (dst_len < size && dst[dst_len] != '\0') + 4ef6: 04860263 beq a2,s0,4f3a + 4efa: 00890533 add a0,s2,s0 + 4efe: 00054783 lbu a5,0(a0) + 4f02: fbed bnez a5,4ef4 + + if (dst_len == size) + 4f04: 02860b63 beq a2,s0,4f3a + 4f08: e44e sd s3,8(sp) + return size + src_len; + + size_t space_left = size - dst_len; + 4f0a: 408607b3 sub a5,a2,s0 + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4f0e: 89a6 mv s3,s1 + 4f10: 02f4f263 bgeu s1,a5,4f34 + + memcpy(dst + dst_len, src, copy_len); + dst[dst_len + copy_len] = '\0'; + 4f14: 994e add s2,s2,s3 + 4f16: 9922 add s2,s2,s0 + return memmove(vdst, vsrc, n); + 4f18: 864e mv a2,s3 + 4f1a: cadff0ef jal 4bc6 + dst[dst_len + copy_len] = '\0'; + 4f1e: 00090023 sb zero,0(s2) # 1000 <_vscanf_core.constprop.0+0x5b2> + + return dst_len + src_len; + 4f22: 00940533 add a0,s0,s1 +} + 4f26: 70a2 ld ra,40(sp) + 4f28: 7402 ld s0,32(sp) + return dst_len + src_len; + 4f2a: 69a2 ld s3,8(sp) +} + 4f2c: 64e2 ld s1,24(sp) + 4f2e: 6942 ld s2,16(sp) + 4f30: 6145 addi sp,sp,48 + 4f32: 8082 ret + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4f34: fff78993 addi s3,a5,-1 + 4f38: bff1 j 4f14 +} + 4f3a: 70a2 ld ra,40(sp) + 4f3c: 7402 ld s0,32(sp) + 4f3e: 6942 ld s2,16(sp) + return size + src_len; + 4f40: 00960533 add a0,a2,s1 +} + 4f44: 64e2 ld s1,24(sp) + 4f46: 6145 addi sp,sp,48 + 4f48: 8082 ret + while (*p) + 4f4a: 4481 li s1,0 + 4f4c: b74d j 4eee + +0000000000004f4e : +size_t strspn(const char *s, const char *accept) +{ + const char *p = s; + const char *a; + + while (*p) + 4f4e: 00054683 lbu a3,0(a0) + 4f52: c695 beqz a3,4f7e + { + for (a = accept; *a; a++) + 4f54: 0005c803 lbu a6,0(a1) + 4f58: 862a mv a2,a0 + 4f5a: 00080f63 beqz a6,4f78 + 4f5e: 87ae mv a5,a1 + 4f60: 8742 mv a4,a6 + 4f62: a021 j 4f6a + 4f64: 0007c703 lbu a4,0(a5) + 4f68: cb01 beqz a4,4f78 + 4f6a: 0785 addi a5,a5,1 + { + if (*p == *a) + 4f6c: fee69ce3 bne a3,a4,4f64 + while (*p) + 4f70: 00164683 lbu a3,1(a2) + break; + } + if (*a == '\0') + return (size_t)(p - s); + p++; + 4f74: 0605 addi a2,a2,1 + while (*p) + 4f76: f6e5 bnez a3,4f5e + } + return (size_t)(p - s); + 4f78: 40a60533 sub a0,a2,a0 + 4f7c: 8082 ret + while (*p) + 4f7e: 4501 li a0,0 +} + 4f80: 8082 ret + +0000000000004f82 : +size_t strcspn(const char *s, const char *reject) +{ + const char *p = s; + const char *r; + + while (*p) + 4f82: 00054683 lbu a3,0(a0) + 4f86: ce85 beqz a3,4fbe + { + for (r = reject; *r; r++) + 4f88: 0005c803 lbu a6,0(a1) + const char *p = s; + 4f8c: 862a mv a2,a0 + for (r = reject; *r; r++) + 4f8e: 02080363 beqz a6,4fb4 + 4f92: 87ae mv a5,a1 + 4f94: 8742 mv a4,a6 + 4f96: a021 j 4f9e + 4f98: 0007c703 lbu a4,0(a5) + 4f9c: c719 beqz a4,4faa + 4f9e: 0785 addi a5,a5,1 + { + if (*p == *r) + 4fa0: fed71ce3 bne a4,a3,4f98 + return (size_t)(p - s); + } + p++; + } + return (size_t)(p - s); + 4fa4: 40a60533 sub a0,a2,a0 + 4fa8: 8082 ret + while (*p) + 4faa: 00164683 lbu a3,1(a2) + p++; + 4fae: 0605 addi a2,a2,1 + while (*p) + 4fb0: f2ed bnez a3,4f92 + 4fb2: bfcd j 4fa4 + 4fb4: 00164683 lbu a3,1(a2) + p++; + 4fb8: 0605 addi a2,a2,1 + while (*p) + 4fba: feed bnez a3,4fb4 + 4fbc: b7e5 j 4fa4 + 4fbe: 4501 li a0,0 +} + 4fc0: 8082 ret + +0000000000004fc2 : + +char *strpbrk(const char *s, const char *accept) +{ + const char *a; + while (*s) + 4fc2: 00054683 lbu a3,0(a0) + 4fc6: c295 beqz a3,4fea + { + for (a = accept; *a; a++) + 4fc8: 0005c603 lbu a2,0(a1) + 4fcc: c20d beqz a2,4fee + 4fce: 87ae mv a5,a1 + 4fd0: 8732 mv a4,a2 + 4fd2: a021 j 4fda + 4fd4: 0007c703 lbu a4,0(a5) + 4fd8: c709 beqz a4,4fe2 + 4fda: 0785 addi a5,a5,1 + { + if (*s == *a) + 4fdc: fed71ce3 bne a4,a3,4fd4 + return (char *)s; + } + s++; + } + return NULL; +} + 4fe0: 8082 ret + while (*s) + 4fe2: 00154683 lbu a3,1(a0) + s++; + 4fe6: 0505 addi a0,a0,1 + while (*s) + 4fe8: f2fd bnez a3,4fce + return NULL; + 4fea: 4501 li a0,0 +} + 4fec: 8082 ret + while (*s) + 4fee: 00154683 lbu a3,1(a0) + s++; + 4ff2: 0505 addi a0,a0,1 + while (*s) + 4ff4: feed bnez a3,4fee + 4ff6: bfd5 j 4fea + +0000000000004ff8 : +char *strtok(char *str, const char *delim) +{ + static char *olds; + char *token; + + if (str == NULL) + 4ff8: 00003897 auipc a7,0x3 + 4ffc: 96888893 addi a7,a7,-1688 # 7960 + 5000: cd25 beqz a0,5078 + while (*p) + 5002: 00054683 lbu a3,0(a0) + 5006: c295 beqz a3,502a + for (a = accept; *a; a++) + 5008: 0005c803 lbu a6,0(a1) + 500c: 02080463 beqz a6,5034 + 5010: 87ae mv a5,a1 + 5012: 8742 mv a4,a6 + 5014: a021 j 501c + 5016: 0007c703 lbu a4,0(a5) + 501a: cf09 beqz a4,5034 + 501c: 0785 addi a5,a5,1 + if (*p == *a) + 501e: fee69ce3 bne a3,a4,5016 + while (*p) + 5022: 00154683 lbu a3,1(a0) + p++; + 5026: 0505 addi a0,a0,1 + while (*p) + 5028: f6e5 bnez a3,5010 + 502a: 87aa mv a5,a0 + str = olds; + + str += strspn(str, delim); + if (*str == '\0') + { + olds = str; + 502c: 00f8b023 sd a5,0(a7) + return NULL; + 5030: 4501 li a0,0 + *str = '\0'; + olds = str + 1; + } + + return token; +} + 5032: 8082 ret + if (*str == '\0') + 5034: 00054603 lbu a2,0(a0) + 5038: da6d beqz a2,502a + 503a: 86aa mv a3,a0 + for (a = accept; *a; a++) + 503c: 04080163 beqz a6,507e + 5040: 8742 mv a4,a6 + 5042: 87ae mv a5,a1 + 5044: a021 j 504c + 5046: 0007c703 lbu a4,0(a5) + 504a: cb19 beqz a4,5060 + 504c: 0785 addi a5,a5,1 + if (*s == *a) + 504e: fee61ce3 bne a2,a4,5046 + olds = str + 1; + 5052: 00168793 addi a5,a3,1 + *str = '\0'; + 5056: 00068023 sb zero,0(a3) + olds = str; + 505a: 00f8b023 sd a5,0(a7) +} + 505e: 8082 ret + while (*s) + 5060: 0016c603 lbu a2,1(a3) + s++; + 5064: 0685 addi a3,a3,1 + while (*s) + 5066: fe69 bnez a2,5040 + 5068: 87aa mv a5,a0 + while (*s != (char)c) + 506a: 0017c703 lbu a4,1(a5) + if (!*s++) + 506e: 0785 addi a5,a5,1 + while (*s != (char)c) + 5070: ff6d bnez a4,506a + olds = str; + 5072: 00f8b023 sd a5,0(a7) +} + 5076: 8082 ret + str = olds; + 5078: 0008b503 ld a0,0(a7) + 507c: b759 j 5002 + while (*s) + 507e: 0016c603 lbu a2,1(a3) + s++; + 5082: 0685 addi a3,a3,1 + while (*s) + 5084: fe6d bnez a2,507e + 5086: b7cd j 5068 + +0000000000005088 : + +char *strerror(int errnum) +{ + 5088: 87aa mv a5,a0 + + switch (errnum) + 508a: cd09 beqz a0,50a4 + 508c: 4731 li a4,12 + 508e: 00000517 auipc a0,0x0 + 5092: 16250513 addi a0,a0,354 # 51f0 <_GLOBAL__sub_I__ZSt3cin+0x12a> + 5096: 00e78b63 beq a5,a4,50ac + return "Success"; + // case EINVAL: return "Invalid argument"; + case ENOMEM: return "Out of memory"; + + default: + return "Unknown error"; + 509a: 00000517 auipc a0,0x0 + 509e: 16650513 addi a0,a0,358 # 5200 <_GLOBAL__sub_I__ZSt3cin+0x13a> + 50a2: 8082 ret + return "Success"; + 50a4: 00000517 auipc a0,0x0 + 50a8: 14450513 addi a0,a0,324 # 51e8 <_GLOBAL__sub_I__ZSt3cin+0x122> + } + 50ac: 8082 ret + +00000000000050ae <_Znwm>: +#include "ulib/stdlib.h" + +void *operator new(unsigned long n) +{ + return malloc(n); + 50ae: cf6ff06f j 45a4 + +00000000000050b2 <_Znam>: +} + +void *operator new[](unsigned long n) + 50b2: cf2ff06f j 45a4 + +00000000000050b6 <_ZdlPv>: + return malloc(n); +} + +void operator delete(void *p) +{ + free(p); + 50b6: c78ff06f j 452e + +00000000000050ba <_ZdaPv>: +} + +void operator delete[](void *p) + 50ba: c74ff06f j 452e + +00000000000050be <_ZdlPvm>: + free(p); +} + +void operator delete(void *p, unsigned long) +{ + free(p); + 50be: c70ff06f j 452e + +00000000000050c2 <_ZdaPvm>: +} + +void operator delete[](void *p, unsigned long) + 50c2: c6cff06f j 452e + +00000000000050c6 <_GLOBAL__sub_I__ZSt3cin>: +#include "ulib/iostream" + +namespace std +{ + istream cin(stdin); + 50c6: 00002797 auipc a5,0x2 + 50ca: 74a7b783 ld a5,1866(a5) # 7810 <_GLOBAL_OFFSET_TABLE_+0x10> + 50ce: 6390 ld a2,0(a5) + ostream cout(stdout); + 50d0: 00002797 auipc a5,0x2 + 50d4: 7387b783 ld a5,1848(a5) # 7808 <_GLOBAL_OFFSET_TABLE_+0x8> + 50d8: 6394 ld a3,0(a5) + ostream cerr(stderr); + 50da: 00002797 auipc a5,0x2 + 50de: 73e7b783 ld a5,1854(a5) # 7818 <_GLOBAL_OFFSET_TABLE_+0x18> + 50e2: 6398 ld a4,0(a5) + + class istream{ + private: + FILE* _stream; + public: + istream(FILE *f) : _stream(f) {} + 50e4: 00003797 auipc a5,0x3 + 50e8: 88478793 addi a5,a5,-1916 # 7968 <_ZSt3cin> + 50ec: e390 sd a2,0(a5) + ostream(FILE* f) : _stream(f) {} + 50ee: e794 sd a3,8(a5) + 50f0: eb98 sd a4,16(a5) +} // namespace std + 50f2: 8082 ret diff --git a/build/user/ls.sym b/build/user/ls.sym new file mode 100644 index 0000000..f6529cc --- /dev/null +++ b/build/user/ls.sym @@ -0,0 +1,191 @@ +0000000000000000 .text +00000000000050f8 .rodata +0000000000005918 .eh_frame +0000000000006a78 .data +0000000000007800 .got +0000000000007820 .got.plt +0000000000007830 .init_array +0000000000007838 .bss +0000000000000000 .debug_info +0000000000000000 .debug_abbrev +0000000000000000 .debug_loclists +0000000000000000 .debug_aranges +0000000000000000 .debug_rnglists +0000000000000000 .debug_line +0000000000000000 .debug_str +0000000000000000 .debug_line_str +0000000000000000 .comment +0000000000000000 .riscv.attributes +0000000000000000 ls.cc +0000000000000000 entry.o +0000000000000000 usys.o +0000000000000000 stdio.c +0000000000000266 stbsp__clamp_callback +00000000000002b4 stbsp__count_clamp_callback +00000000000002c0 stbsp__real_to_str +0000000000000994 _in_char.part.0 +00000000000009da _skip_space +0000000000000a4e _vscanf_core.constprop.0 +00000000000012be _out_char +0000000000003132 _vprintf_core.constprop.0.isra.0 +0000000000006a80 stbsp__digitpair +0000000000006b4c stbsp__period +0000000000006b4d stbsp__comma +0000000000006b50 hexu.1 +0000000000006b68 hex.0 +0000000000006b80 _stderr +0000000000006fa0 _stdout +00000000000073c0 _stdin +0000000000005480 stbsp__bot +0000000000005538 stbsp__negbot +00000000000055e8 stbsp__negboterr +0000000000005698 stbsp__negtop +0000000000005700 stbsp__negtoperr +0000000000005768 stbsp__top +00000000000057d0 stbsp__toperr +0000000000005838 stbsp__powten +0000000000000000 stdlib.c +0000000000004340 strtoull.part.0 +00000000000077f8 next +0000000000007844 __atexit_func_count +0000000000007848 __atexit_funcs +0000000000007948 freep +0000000000007950 base +0000000000000000 string.c +0000000000007960 olds.0 +0000000000000000 cxx.cc +0000000000000000 iostream.cpp +00000000000050c6 _GLOBAL__sub_I__ZSt3cin +0000000000007800 _GLOBAL_OFFSET_TABLE_ +0000000000004c60 strcpy +00000000000039d0 printf +00000000000077e0 stdout +00000000000058dc STDOUT_FD +0000000000004316 ungetc +0000000000005088 strerror +0000000000004bc6 memmove +000000000000397a snprintf +00000000000001ee mknod +0000000000004818 atol +0000000000004526 getenv +00000000000050ae _Znwm +0000000000007840 errno +0000000000004a78 labs +00000000000049f2 bsearch +0000000000000226 getpid +0000000000004914 qsort +0000000000003c0e fscanf +0000000000003e80 fgets +0000000000007978 _ZSt4cerr +0000000000004c02 memcpy +000000000000452a system +00000000000042f6 feof +00000000000045a4 malloc +0000000000000236 sleep +0000000000003930 vsnprintf +0000000000004734 strtoll +00000000000047de strtoul +0000000000004b2a wctomb +0000000000004b76 wcstombs +0000000000003b98 fflush +0000000000004b38 mbstowcs +0000000000000256 lseek +00000000000050b6 _ZdlPv +000000000000451a abort +0000000000004802 strtol +00000000000001b6 pipe +0000000000004af8 mblen +0000000000004db4 strrchr +000000000000466a calloc +0000000000004824 strtod +000000000000024e disk_test +00000000000001c6 write +00000000000048fe atof +0000000000000086 _Z2lsPKc +00000000000001fe fstat +0000000000003bdc fprintf +00000000000001d6 kill +0000000000004ca4 strcat +0000000000000216 chdir +00000000000041fe fseek +00000000000030ce stbsp_vsprintf +00000000000001de exec +0000000000004c28 memchr +00000000000077e8 stdin +00000000000001ae wait +0000000000002fe8 stbsp_vsnprintf +0000000000000194 _start +0000000000004300 ferror +0000000000004dcc strstr +0000000000004ac2 rand +00000000000001be read +0000000000004e78 strlcpy +0000000000004d54 strncmp +0000000000001392 stbsp_set_separators +00000000000050be _ZdlPvm +0000000000004c72 strncpy +00000000000001f6 unlink +00000000000046b2 realloc +0000000000004ff8 strtok +0000000000004c04 memcmp +00000000000001a6 fork +0000000000003a0a sscanf +0000000000004cd6 strncat +0000000000003f5c fread +000000000000022e sbrk +0000000000004e34 strdup +000000000000023e uptime +0000000000004710 strtoull +0000000000002fbe stbsp_sprintf +0000000000003a6c fopen +0000000000004bae memset +0000000000000144 main +0000000000004272 ftell +0000000000004aea srand +0000000000004ece strlcat +000000000000430a clearerr +00000000000050ba _ZdaPv +0000000000003b30 fclose +0000000000000246 putc +0000000000004d1c strcmp +000000000000025e shutdown +000000000000021e dup +0000000000003dea fgetc +00000000000030dc sprintf +0000000000004902 strtof +00000000000044c0 atexit +0000000000004f82 strcspn +00000000000030ae stbsp_snprintf +0000000000007968 _ZSt3cin +0000000000003a3a scanf +00000000000077f0 stderr +0000000000004aa2 ldiv +0000000000003c40 fputc +00000000000050b2 _Znam +0000000000004ab2 lldiv +0000000000004076 fwrite +000000000000429e rewind +0000000000007970 _ZSt4cout +0000000000000206 link +00000000000044e4 exit +000000000000019e sys_exit +0000000000004a82 llabs +0000000000004804 atoi +00000000000058d8 STDERR_FD +0000000000004f4e strspn +0000000000004c46 strlen +00000000000013a4 stbsp_vsprintfcb +00000000000001e6 open +00000000000058e0 STDIN_FD +000000000000481e atoll +0000000000004a8c div +0000000000004a6e abs +0000000000004d9c strchr +0000000000003d04 fputs +00000000000050c2 _ZdaPvm +0000000000000000 _Z8fmt_namePcPKc +000000000000020e mkdir +00000000000001ce close +0000000000004b0c mbtowc +0000000000004fc2 strpbrk +000000000000452e free diff --git a/build/user/mkdir b/build/user/mkdir new file mode 100755 index 0000000..a87fa88 Binary files /dev/null and b/build/user/mkdir differ diff --git a/build/user/mkdir.asm b/build/user/mkdir.asm new file mode 100644 index 0000000..ec4427e --- /dev/null +++ b/build/user/mkdir.asm @@ -0,0 +1,10640 @@ + +build/user/mkdir: file format elf64-littleriscv + + +Disassembly of section .text: + +0000000000000000
: +#include "ulib/stdio.h" +#include "user/user.h" + +int main(int argc, char* argv[]) +{ + 0: 1101 addi sp,sp,-32 + 2: ec06 sd ra,24(sp) + if (argc < 2) + 4: 4785 li a5,1 + 6: 04a7de63 bge a5,a0,62 + { + printf("Usage: mkdir ...\n"); + exit(1); + } + + for (int i = 1; i < argc; i++) + a: e426 sd s1,8(sp) + c: ffe5049b addiw s1,a0,-2 + 10: 02049793 slli a5,s1,0x20 + 14: 01d7d493 srli s1,a5,0x1d + 18: 01058793 addi a5,a1,16 + 1c: e822 sd s0,16(sp) + 1e: e04a sd s2,0(sp) + 20: 00858413 addi s0,a1,8 + 24: 94be add s1,s1,a5 + { + if (mkdir(argv[i]) < 0) + { + printf("mkdir: cannot create directory '%s'\n", argv[i]); + 26: 00005917 auipc s2,0x5 + 2a: fda90913 addi s2,s2,-38 # 5000 <_GLOBAL__sub_I__ZSt3cin+0x58> + 2e: a021 j 36 + for (int i = 1; i < argc; i++) + 30: 0421 addi s0,s0,8 + 32: 00940e63 beq s0,s1,4e + if (mkdir(argv[i]) < 0) + 36: 6008 ld a0,0(s0) + 38: 0b8000ef jal f0 + 3c: fe055ae3 bgez a0,30 + printf("mkdir: cannot create directory '%s'\n", argv[i]); + 40: 600c ld a1,0(s0) + 42: 854a mv a0,s2 + for (int i = 1; i < argc; i++) + 44: 0421 addi s0,s0,8 + printf("mkdir: cannot create directory '%s'\n", argv[i]); + 46: 06d030ef jal 38b2 + for (int i = 1; i < argc; i++) + 4a: fe9416e3 bne s0,s1,36 + 4e: 6442 ld s0,16(sp) + 50: 64a2 ld s1,8(sp) + 52: 6902 ld s2,0(sp) + } + } + + exit(0); + 54: 4501 li a0,0 + 56: 370040ef jal 43c6 + 5a: 60e2 ld ra,24(sp) + 5c: 4501 li a0,0 + 5e: 6105 addi sp,sp,32 + 60: 8082 ret + printf("Usage: mkdir ...\n"); + 62: 00005517 auipc a0,0x5 + 66: f7e50513 addi a0,a0,-130 # 4fe0 <_GLOBAL__sub_I__ZSt3cin+0x38> + 6a: 049030ef jal 38b2 + exit(1); + 6e: 4505 li a0,1 + 70: 356040ef jal 43c6 + for (int i = 1; i < argc; i++) + 74: b7c5 j 54 + +0000000000000076 <_start>: +.global _start + +_start: + + + call main + 76: f8bff0ef jal 0
+ + call exit + 7a: 34c040ef jal 43c6 + + 7e: a001 j 7e <_start+0x8> + +0000000000000080 : + name: \ + li a7, SYS_ ## sysname; \ + ecall; \ + ret + +SYSCALL_NAME(sys_exit, exit) + 80: 488d li a7,3 + 82: 00000073 ecall + 86: 8082 ret + +0000000000000088 : + +SYSCALL(fork) + 88: 4889 li a7,2 + 8a: 00000073 ecall + 8e: 8082 ret + +0000000000000090 : +SYSCALL(wait) + 90: 4891 li a7,4 + 92: 00000073 ecall + 96: 8082 ret + +0000000000000098 : +SYSCALL(pipe) + 98: 4895 li a7,5 + 9a: 00000073 ecall + 9e: 8082 ret + +00000000000000a0 : +SYSCALL(read) + a0: 4899 li a7,6 + a2: 00000073 ecall + a6: 8082 ret + +00000000000000a8 : +SYSCALL(write) + a8: 48c5 li a7,17 + aa: 00000073 ecall + ae: 8082 ret + +00000000000000b0 : +SYSCALL(close) + b0: 48d9 li a7,22 + b2: 00000073 ecall + b6: 8082 ret + +00000000000000b8 : +SYSCALL(kill) + b8: 489d li a7,7 + ba: 00000073 ecall + be: 8082 ret + +00000000000000c0 : +SYSCALL(exec) + c0: 48a1 li a7,8 + c2: 00000073 ecall + c6: 8082 ret + +00000000000000c8 : +SYSCALL(open) + c8: 48c1 li a7,16 + ca: 00000073 ecall + ce: 8082 ret + +00000000000000d0 : +SYSCALL(mknod) + d0: 48c9 li a7,18 + d2: 00000073 ecall + d6: 8082 ret + +00000000000000d8 : +SYSCALL(unlink) + d8: 48cd li a7,19 + da: 00000073 ecall + de: 8082 ret + +00000000000000e0 : +SYSCALL(fstat) + e0: 48a5 li a7,9 + e2: 00000073 ecall + e6: 8082 ret + +00000000000000e8 : +SYSCALL(link) + e8: 48d1 li a7,20 + ea: 00000073 ecall + ee: 8082 ret + +00000000000000f0 : +SYSCALL(mkdir) + f0: 48d5 li a7,21 + f2: 00000073 ecall + f6: 8082 ret + +00000000000000f8 : +SYSCALL(chdir) + f8: 48a9 li a7,10 + fa: 00000073 ecall + fe: 8082 ret + +0000000000000100 : +SYSCALL(dup) + 100: 48ad li a7,11 + 102: 00000073 ecall + 106: 8082 ret + +0000000000000108 : +SYSCALL(getpid) + 108: 48b1 li a7,12 + 10a: 00000073 ecall + 10e: 8082 ret + +0000000000000110 : +SYSCALL(sbrk) + 110: 48b5 li a7,13 + 112: 00000073 ecall + 116: 8082 ret + +0000000000000118 : +SYSCALL(sleep) + 118: 48b9 li a7,14 + 11a: 00000073 ecall + 11e: 8082 ret + +0000000000000120 : +SYSCALL(uptime) + 120: 48bd li a7,15 + 122: 00000073 ecall + 126: 8082 ret + +0000000000000128 : +SYSCALL(putc) + 128: 4885 li a7,1 + 12a: 00000073 ecall + 12e: 8082 ret + +0000000000000130 : +SYSCALL(disk_test) + 130: 48dd li a7,23 + 132: 00000073 ecall + 136: 8082 ret + +0000000000000138 : +SYSCALL(lseek) + 138: 48e1 li a7,24 + 13a: 00000073 ecall + 13e: 8082 ret + +0000000000000140 : + 140: 48e5 li a7,25 + 142: 00000073 ecall + 146: 8082 ret + +0000000000000148 : + 148: 45dc lw a5,12(a1) + 14a: 4598 lw a4,8(a1) + 14c: 9fb1 addw a5,a5,a2 + 14e: c5dc sw a5,12(a1) + 150: 0007069b sext.w a3,a4 + 154: 00e65463 bge a2,a4,15c + 158: 0006069b sext.w a3,a2 + 15c: c685 beqz a3,184 + 15e: 619c ld a5,0(a1) + 160: 00a78e63 beq a5,a0,17c + 164: 00d50633 add a2,a0,a3 + 168: 00054703 lbu a4,0(a0) + 16c: 0505 addi a0,a0,1 + 16e: 0785 addi a5,a5,1 + 170: fee78fa3 sb a4,-1(a5) + 174: fec56ae3 bltu a0,a2,168 + 178: 6188 ld a0,0(a1) + 17a: 4598 lw a4,8(a1) + 17c: 9f15 subw a4,a4,a3 + 17e: 9536 add a0,a0,a3 + 180: e188 sd a0,0(a1) + 182: c598 sw a4,8(a1) + 184: 1ff00793 li a5,511 + 188: 00e7d463 bge a5,a4,190 + 18c: 6188 ld a0,0(a1) + 18e: 8082 ret + 190: 01058513 addi a0,a1,16 + 194: 8082 ret + +0000000000000196 : + 196: 45dc lw a5,12(a1) + 198: 01058513 addi a0,a1,16 + 19c: 9fb1 addw a5,a5,a2 + 19e: c5dc sw a5,12(a1) + 1a0: 8082 ret + +00000000000001a2 : + 1a2: e20508d3 fmv.x.d a7,fa0 + 1a6: 82aa mv t0,a0 + 1a8: 4348d813 srai a6,a7,0x34 + 1ac: 8ec6 mv t4,a7 + 1ae: 7ff87813 andi a6,a6,2047 + 1b2: 8346 mv t1,a7 + 1b4: 03f8d513 srli a0,a7,0x3f + 1b8: 0008d663 bgez a7,1c4 + 1bc: 22a517d3 fneg.d fa5,fa0 + 1c0: e20788d3 fmv.x.d a7,fa5 + 1c4: 7ff00e13 li t3,2047 + 1c8: 35c80663 beq a6,t3,514 + 1cc: 1101 addi sp,sp,-32 + 1ce: 14080363 beqz a6,314 + 1d2: c018081b addiw a6,a6,-1023 + 1d6: ec22 sd s0,24(sp) + 1d8: 02081313 slli t1,a6,0x20 + 1dc: 66034d63 bltz t1,856 + 1e0: 4d100313 li t1,1233 + 1e4: 0303033b mulw t1,t1,a6 + 1e8: 4849 li a6,18 + 1ea: 40c3531b sraiw t1,t1,0xc + 1ee: 0013039b addiw t2,t1,1 + 1f2: 4078083b subw a6,a6,t2 + 1f6: 4359 li t1,22 + 1f8: 17036163 bltu t1,a6,35a + 1fc: 00005317 auipc t1,0x5 + 200: 16430313 addi t1,t1,356 # 5360 + 204: 080e slli a6,a6,0x3 + 206: 981a add a6,a6,t1 + 208: 00083e03 ld t3,0(a6) + 20c: 00083607 fld fa2,0(a6) + 210: f20887d3 fmv.d.x fa5,a7 + 214: f8000837 lui a6,0xf8000 + 218: 01187333 and t1,a6,a7 + 21c: 01c87833 and a6,a6,t3 + 220: 12f676d3 fmul.d fa3,fa2,fa5 + 224: f20807d3 fmv.d.x fa5,a6 + 228: f2030753 fmv.d.x fa4,t1 + 22c: f20305d3 fmv.d.x fa1,t1 + 230: 0af67653 fsub.d fa2,fa2,fa5 + 234: f20887d3 fmv.d.x fa5,a7 + 238: 0ae7f753 fsub.d fa4,fa5,fa4 + 23c: f20807d3 fmv.d.x fa5,a6 + 240: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 + 244: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 + 248: f20805d3 fmv.d.x fa1,a6 + 24c: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 + 250: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 + 254: 02d777d3 fadd.d fa5,fa4,fa3 + 258: 3782e837 lui a6,0x3782e + 25c: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x378262d7> + 260: 0832 slli a6,a6,0xc + 262: 9d980813 addi a6,a6,-1575 + 266: 084a slli a6,a6,0x12 + 268: 187d addi a6,a6,-1 + 26a: c22798d3 fcvt.l.d a7,fa5,rtz + 26e: 0ad7f6d3 fsub.d fa3,fa5,fa3 + 272: 00070e1b sext.w t3,a4 + 276: d228f653 fcvt.d.l fa2,a7 + 27a: 0ac7f5d3 fsub.d fa1,fa5,fa2 + 27e: 0ad77753 fsub.d fa4,fa4,fa3 + 282: 0af5f6d3 fsub.d fa3,fa1,fa5 + 286: 0ad5f553 fsub.d fa0,fa1,fa3 + 28a: 02d67653 fadd.d fa2,fa2,fa3 + 28e: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 292: 0ac7f7d3 fsub.d fa5,fa5,fa2 + 296: 02b7f7d3 fadd.d fa5,fa5,fa1 + 29a: 02e7f7d3 fadd.d fa5,fa5,fa4 + 29e: c2279fd3 fcvt.l.d t6,fa5,rtz + 2a2: 9fc6 add t6,t6,a7 + 2a4: 19f87063 bgeu a6,t6,424 + 2a8: 2385 addiw t2,t2,1 + 2aa: 300e4363 bltz t3,5b0 + 2ae: 00e3833b addw t1,t2,a4 + 2b2: 475d li a4,23 + 2b4: 30677663 bgeu a4,t1,5c0 + 2b8: 577d li a4,-1 + 2ba: 9301 srli a4,a4,0x20 + 2bc: 43f75863 bge a4,t6,6ec + 2c0: 07d00313 li t1,125 + 2c4: 877e mv a4,t6 + 2c6: 4e01 li t3,0 + 2c8: 3e800813 li a6,1000 + 2cc: 130e slli t1,t1,0x23 + 2ce: a039 j 2dc + 2d0: 030747b3 div a5,a4,a6 + 2d4: 4e05 li t3,1 + 2d6: 40674c63 blt a4,t1,6ee + 2da: 873e mv a4,a5 + 2dc: 030768b3 rem a7,a4,a6 + 2e0: fe0888e3 beqz a7,2d0 + 2e4: 400e0163 beqz t3,6e6 + 2e8: 8fbe mv t6,a5 + 2ea: 05f5e7b7 lui a5,0x5f5e + 2ee: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56907> + 2f2: 04060413 addi s0,a2,64 + 2f6: 03860613 addi a2,a2,56 + 2fa: 15f7c863 blt a5,t6,44a + 2fe: 000f871b sext.w a4,t6 + 302: 20070463 beqz a4,50a + 306: 4f01 li t5,0 + 308: 4f81 li t6,0 + 30a: 00006e97 auipc t4,0x6 + 30e: 5f6e8e93 addi t4,t4,1526 # 6900 + 312: aaa9 j 46c + 314: 0306 slli t1,t1,0x1 + 316: 3e030e63 beqz t1,712 + 31a: 4305 li t1,1 + 31c: ec22 sd s0,24(sp) + 31e: 00ce9e13 slli t3,t4,0xc + 322: 134e slli t1,t1,0x33 + 324: 520e4063 bltz t3,844 + 328: 40135313 srai t1,t1,0x1 + 32c: 01d37e33 and t3,t1,t4 + 330: 8f42 mv t5,a6 + 332: 387d addiw a6,a6,-1 + 334: fe0e0ae3 beqz t3,328 + 338: 26900313 li t1,617 + 33c: c00f081b addiw a6,t5,-1024 + 340: 0268083b mulw a6,a6,t1 + 344: 41f8531b sraiw t1,a6,0x1f + 348: 0153531b srliw t1,t1,0x15 + 34c: 0103033b addw t1,t1,a6 + 350: 40b3539b sraiw t2,t1,0xb + 354: 4849 li a6,18 + 356: 4078083b subw a6,a6,t2 + 35a: 41f8531b sraiw t1,a6,0x1f + 35e: 00684eb3 xor t4,a6,t1 + 362: 406e8f3b subw t5,t4,t1 + 366: 2c900313 li t1,713 + 36a: 03e3033b mulw t1,t1,t5 + 36e: 4e35 li t3,13 + 370: 8efa mv t4,t5 + 372: 40e35f9b sraiw t6,t1,0xe + 376: 837e mv t1,t6 + 378: 23fe4363 blt t3,t6,59e + 37c: 5e25 li t3,-23 + 37e: 026e0e3b mulw t3,t3,t1 + 382: 01de0ebb addw t4,t3,t4 + 386: 22084f63 bltz a6,5c4 + 38a: f2000753 fmv.d.x fa4,zero + 38e: 00005e17 auipc t3,0x5 + 392: fd2e0e13 addi t3,t3,-46 # 5360 + 396: 380e9e63 bnez t4,732 + 39a: f20887d3 fmv.d.x fa5,a7 + 39e: fff30f1b addiw t5,t1,-1 + 3a2: 0f0e slli t5,t5,0x3 + 3a4: 02f777d3 fadd.d fa5,fa4,fa5 + 3a8: 030e slli t1,t1,0x3 + 3aa: 9f72 add t5,t5,t3 + 3ac: 9e1a add t3,t3,t1 + 3ae: 2e0e3e03 ld t3,736(t3) + 3b2: 2e8f3587 fld fa1,744(t5) + 3b6: f8000837 lui a6,0xf8000 + 3ba: e2078ed3 fmv.x.d t4,fa5 + 3be: 12b7f6d3 fmul.d fa3,fa5,fa1 + 3c2: f2088653 fmv.d.x fa2,a7 + 3c6: 01d87333 and t1,a6,t4 + 3ca: 01c87833 and a6,a6,t3 + 3ce: f20807d3 fmv.d.x fa5,a6 + 3d2: f2030053 fmv.d.x ft0,t1 + 3d6: 0af5f553 fsub.d fa0,fa1,fa5 + 3da: f20e87d3 fmv.d.x fa5,t4 + 3de: 0ac7f0d3 fsub.d ft1,fa5,fa2 + 3e2: f20807d3 fmv.d.x fa5,a6 + 3e6: f2030653 fmv.d.x fa2,t1 + 3ea: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 + 3ee: f20e87d3 fmv.d.x fa5,t4 + 3f2: 0a177753 fsub.d fa4,fa4,ft1 + 3f6: f20300d3 fmv.d.x ft1,t1 + 3fa: 0a07f7d3 fsub.d fa5,fa5,ft0 + 3fe: 350f3007 fld ft0,848(t5) + 402: 62157643 fmadd.d fa2,fa0,ft1,fa2 + 406: 12b77753 fmul.d fa4,fa4,fa1 + 40a: f20805d3 fmv.d.x fa1,a6 + 40e: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 + 412: f20e85d3 fmv.d.x fa1,t4 + 416: 7205f743 fmadd.d fa4,fa1,ft0,fa4 + 41a: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 + 41e: 02e7f753 fadd.d fa4,fa5,fa4 + 422: bd0d j 254 + 424: 00e3833b addw t1,t2,a4 + 428: 2a0e4663 bltz t3,6d4 + 42c: 475d li a4,23 + 42e: 10677663 bgeu a4,t1,53a + 432: e80f93e3 bnez t6,2b8 + 436: 05f5e7b7 lui a5,0x5f5e + 43a: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56907> + 43e: 04060413 addi s0,a2,64 + 442: 03860613 addi a2,a2,56 + 446: ebf7dce3 bge a5,t6,2fe + 44a: 4f01 li t5,0 + 44c: 00006e97 auipc t4,0x6 + 450: 4b4e8e93 addi t4,t4,1204 # 6900 + 454: 05f5e7b7 lui a5,0x5f5e + 458: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f56908> + 45c: 02ffe833 rem a6,t6,a5 + 460: 02ffcfb3 div t6,t6,a5 + 464: 0008071b sext.w a4,a6 + 468: 0a080463 beqz a6,510 + 46c: 8822 mv a6,s0 + 46e: 06400893 li a7,100 + 472: 06300e13 li t3,99 + 476: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff8806> + 478: 0007031b sext.w t1,a4 + 47c: 031777bb remuw a5,a4,a7 + 480: 2785 addiw a5,a5,1 + 482: 0017979b slliw a5,a5,0x1 + 486: 1782 slli a5,a5,0x20 + 488: 9381 srli a5,a5,0x20 + 48a: 97f6 add a5,a5,t4 + 48c: 0007d783 lhu a5,0(a5) + 490: 0317573b divuw a4,a4,a7 + 494: 00f81023 sh a5,0(a6) + 498: fc6e6fe3 bltu t3,t1,476 + 49c: 008f0f3b addw t5,t5,s0 + 4a0: 410f0f3b subw t5,t5,a6 + 4a4: 020f8f63 beqz t6,4e2 + 4a8: 87c2 mv a5,a6 + 4aa: 03000713 li a4,48 + 4ae: 04c80c63 beq a6,a2,506 + 4b2: 17fd addi a5,a5,-1 + 4b4: 00e78023 sb a4,0(a5) + 4b8: fec79de3 bne a5,a2,4b2 + 4bc: 408807b3 sub a5,a6,s0 + 4c0: 00ff07bb addw a5,t5,a5 + 4c4: 1461 addi s0,s0,-8 + 4c6: 00878f1b addiw t5,a5,8 + 4ca: 05f5e7b7 lui a5,0x5f5e + 4ce: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56907> + 4d2: ff840613 addi a2,s0,-8 + 4d6: f7f7cfe3 blt a5,t6,454 + 4da: 000f871b sext.w a4,t6 + 4de: 4f81 li t6,0 + 4e0: b771 j 46c + 4e2: 020f0563 beqz t5,50c + 4e6: 00084703 lbu a4,0(a6) + 4ea: 03000793 li a5,48 + 4ee: 22f70f63 beq a4,a5,72c + 4f2: 2f01 sext.w t5,t5 + 4f4: 0076a023 sw t2,0(a3) + 4f8: 6462 ld s0,24(sp) + 4fa: 0102b023 sd a6,0(t0) + 4fe: 01e5a023 sw t5,0(a1) + 502: 6105 addi sp,sp,32 + 504: 8082 ret + 506: 8442 mv s0,a6 + 508: b7c9 j 4ca + 50a: 8822 mv a6,s0 + 50c: 4f01 li t5,0 + 50e: b7dd j 4f4 + 510: 8822 mv a6,s0 + 512: bf59 j 4a8 + 514: 0eb2 slli t4,t4,0xc + 516: 00005797 auipc a5,0x5 + 51a: b1a78793 addi a5,a5,-1254 # 5030 <_GLOBAL__sub_I__ZSt3cin+0x88> + 51e: 000e8663 beqz t4,52a + 522: 00005797 auipc a5,0x5 + 526: b0678793 addi a5,a5,-1274 # 5028 <_GLOBAL__sub_I__ZSt3cin+0x80> + 52a: 00f2b023 sd a5,0(t0) + 52e: 679d lui a5,0x7 + 530: c29c sw a5,0(a3) + 532: 4f0d li t5,3 + 534: 01e5a023 sw t5,0(a1) + 538: 8082 ret + 53a: 3b9ad737 lui a4,0x3b9ad + 53e: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a5207> + 542: 07f76f63 bltu a4,t6,5c0 + 546: 4805 li a6,1 + 548: 02081713 slli a4,a6,0x20 + 54c: 01d75893 srli a7,a4,0x1d + 550: 00005717 auipc a4,0x5 + 554: 1c870713 addi a4,a4,456 # 5718 + 558: 9746 add a4,a4,a7 + 55a: 4e51 li t3,20 + 55c: a021 j 564 + 55e: 2805 addiw a6,a6,1 + 560: edc809e3 beq a6,t3,432 + 564: 00073883 ld a7,0(a4) + 568: 0721 addi a4,a4,8 + 56a: ff1ffae3 bgeu t6,a7,55e + 56e: ed0372e3 bgeu t1,a6,432 + 572: 4068083b subw a6,a6,t1 + 576: 475d li a4,23 + 578: eb076de3 bltu a4,a6,432 + 57c: 080e slli a6,a6,0x3 + 57e: 00005717 auipc a4,0x5 + 582: de270713 addi a4,a4,-542 # 5360 + 586: 9742 add a4,a4,a6 + 588: 3b873803 ld a6,952(a4) + 58c: 00185713 srli a4,a6,0x1 + 590: 977e add a4,a4,t6 + 592: 01176363 bltu a4,a7,598 + 596: 2385 addiw t2,t2,1 + 598: 03075fb3 divu t6,a4,a6 + 59c: bd59 j 432 + 59e: 4335 li t1,13 + 5a0: 5e25 li t3,-23 + 5a2: 026e0e3b mulw t3,t3,t1 + 5a6: 01de0ebb addw t4,t3,t4 + 5aa: de0850e3 bgez a6,38a + 5ae: a819 j 5c4 + 5b0: 02571313 slli t1,a4,0x25 + 5b4: 02535313 srli t1,t1,0x25 + 5b8: 0305 addi t1,t1,1 + 5ba: 475d li a4,23 + 5bc: ce676ee3 bltu a4,t1,2b8 + 5c0: 4829 li a6,10 + 5c2: b759 j 548 + 5c4: 260e8663 beqz t4,830 + 5c8: 00231e13 slli t3,t1,0x2 + 5cc: 41c30e33 sub t3,t1,t3 + 5d0: 0e0e slli t3,t3,0x3 + 5d2: 9e1a add t3,t3,t1 + 5d4: fffe881b addiw a6,t4,-1 + 5d8: 9e7a add t3,t3,t5 + 5da: 00005e97 auipc t4,0x5 + 5de: d86e8e93 addi t4,t4,-634 # 5360 + 5e2: 0e0e slli t3,t3,0x3 + 5e4: 080e slli a6,a6,0x3 + 5e6: 9876 add a6,a6,t4 + 5e8: 9ef2 add t4,t4,t3 + 5ea: 0b883607 fld fa2,184(a6) + 5ee: f20887d3 fmv.d.x fa5,a7 + 5f2: 0b0ebf03 ld t5,176(t4) + 5f6: f8000e37 lui t3,0xf8000 + 5fa: 011e7eb3 and t4,t3,a7 + 5fe: 12f676d3 fmul.d fa3,fa2,fa5 + 602: 01ee7e33 and t3,t3,t5 + 606: f20e07d3 fmv.d.x fa5,t3 + 60a: f20e0753 fmv.d.x fa4,t3 + 60e: f20e8553 fmv.d.x fa0,t4 + 612: 0af67653 fsub.d fa2,fa2,fa5 + 616: f20e87d3 fmv.d.x fa5,t4 + 61a: f20e85d3 fmv.d.x fa1,t4 + 61e: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 + 622: f2088753 fmv.d.x fa4,a7 + 626: 0ab775d3 fsub.d fa1,fa4,fa1 + 62a: 16883707 fld fa4,360(a6) + 62e: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 + 632: f20e0553 fmv.d.x fa0,t3 + 636: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 63a: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 + 63e: f20887d3 fmv.d.x fa5,a7 + 642: 5af77743 fmadd.d fa4,fa4,fa5,fa1 + 646: c00f87e3 beqz t6,254 + 64a: 02d777d3 fadd.d fa5,fa4,fa3 + 64e: fff3089b addiw a7,t1,-1 + 652: 00005817 auipc a6,0x5 + 656: d0e80813 addi a6,a6,-754 # 5360 + 65a: 030e slli t1,t1,0x3 + 65c: 088e slli a7,a7,0x3 + 65e: 98c2 add a7,a7,a6 + 660: 981a add a6,a6,t1 + 662: e2078e53 fmv.x.d t3,fa5 + 666: 21083e83 ld t4,528(a6) + 66a: f8000837 lui a6,0xf8000 + 66e: 2188b507 fld fa0,536(a7) + 672: 01c87333 and t1,a6,t3 + 676: 01d87833 and a6,a6,t4 + 67a: f2080653 fmv.d.x fa2,a6 + 67e: 12f577d3 fmul.d fa5,fa0,fa5 + 682: 2808b587 fld fa1,640(a7) + 686: 0ac57053 fsub.d ft0,fa0,fa2 + 68a: f20e0653 fmv.d.x fa2,t3 + 68e: 0ad67153 fsub.d ft2,fa2,fa3 + 692: f20806d3 fmv.d.x fa3,a6 + 696: f2030653 fmv.d.x fa2,t1 + 69a: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 + 69e: f20e06d3 fmv.d.x fa3,t3 + 6a2: 0ac6f653 fsub.d fa2,fa3,fa2 + 6a6: 22f786d3 fmv.d fa3,fa5 + 6aa: 0a2777d3 fsub.d fa5,fa4,ft2 + 6ae: f2030753 fmv.d.x fa4,t1 + 6b2: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 + 6b6: 12a7f7d3 fmul.d fa5,fa5,fa0 + 6ba: f2080553 fmv.d.x fa0,a6 + 6be: 72a67743 fmadd.d fa4,fa2,fa0,fa4 + 6c2: f20e0553 fmv.d.x fa0,t3 + 6c6: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 6ca: 72067643 fmadd.d fa2,fa2,ft0,fa4 + 6ce: 02f67753 fadd.d fa4,fa2,fa5 + 6d2: b649 j 254 + 6d4: 02571313 slli t1,a4,0x25 + 6d8: 02535313 srli t1,t1,0x25 + 6dc: 0305 addi t1,t1,1 + 6de: 475d li a4,23 + 6e0: d46769e3 bltu a4,t1,432 + 6e4: bd99 j 53a + 6e6: 87fe mv a5,t6 + 6e8: 8fbe mv t6,a5 + 6ea: b101 j 2ea + 6ec: 87fe mv a5,t6 + 6ee: 3e800713 li a4,1000 + 6f2: 02e7f73b remuw a4,a5,a4 + 6f6: 2781 sext.w a5,a5 + 6f8: eb01 bnez a4,708 + 6fa: 3e800813 li a6,1000 + 6fe: 0307d7bb divuw a5,a5,a6 + 702: 0307f73b remuw a4,a5,a6 + 706: df65 beqz a4,6fe + 708: 02079f93 slli t6,a5,0x20 + 70c: 020fdf93 srli t6,t6,0x20 + 710: b31d j 436 + 712: 4785 li a5,1 + 714: c29c sw a5,0(a3) + 716: 00c2b023 sd a2,0(t0) + 71a: 03000793 li a5,48 + 71e: 00f60023 sb a5,0(a2) + 722: 4f05 li t5,1 + 724: 01e5a023 sw t5,0(a1) + 728: 6105 addi sp,sp,32 + 72a: 8082 ret + 72c: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff8809> + 72e: 3f7d addiw t5,t5,-1 + 730: b3d1 j 4f4 + 732: e826 sd s1,16(sp) + 734: e44a sd s2,8(sp) + 736: 4859 li a6,22 + 738: 8976 mv s2,t4 + 73a: 11d84363 blt a6,t4,840 + 73e: 0009049b sext.w s1,s2 + 742: 00005e17 auipc t3,0x5 + 746: c1ee0e13 addi t3,t3,-994 # 5360 + 74a: 00349813 slli a6,s1,0x3 + 74e: 9872 add a6,a6,t3 + 750: 00083687 fld fa3,0(a6) + 754: 00083803 ld a6,0(a6) + 758: f20887d3 fmv.d.x fa5,a7 + 75c: f8000fb7 lui t6,0xf8000 + 760: 010ff833 and a6,t6,a6 + 764: 12f6f553 fmul.d fa0,fa3,fa5 + 768: f20807d3 fmv.d.x fa5,a6 + 76c: 011ff433 and s0,t6,a7 + 770: f2040753 fmv.d.x fa4,s0 + 774: 0af6f6d3 fsub.d fa3,fa3,fa5 + 778: f20887d3 fmv.d.x fa5,a7 + 77c: f2080653 fmv.d.x fa2,a6 + 780: 412e8ebb subw t4,t4,s2 + 784: 0ae7f753 fsub.d fa4,fa5,fa4 + 788: f20407d3 fmv.d.x fa5,s0 + 78c: e20508d3 fmv.x.d a7,fa0 + 790: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 + 794: f2040653 fmv.d.x fa2,s0 + 798: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 + 79c: f2080653 fmv.d.x fa2,a6 + 7a0: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 + 7a4: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 + 7a8: 080e8963 beqz t4,83a + 7ac: 02e577d3 fadd.d fa5,fa0,fa4 + 7b0: 0e8e slli t4,t4,0x3 + 7b2: 01de0833 add a6,t3,t4 + 7b6: 00083587 fld fa1,0(a6) + 7ba: 00231893 slli a7,t1,0x2 + 7be: 411308b3 sub a7,t1,a7 + 7c2: 00389813 slli a6,a7,0x3 + 7c6: e2078453 fmv.x.d s0,fa5 + 7ca: 12f5f7d3 fmul.d fa5,fa1,fa5 + 7ce: 981a add a6,a6,t1 + 7d0: 987a add a6,a6,t5 + 7d2: 40980833 sub a6,a6,s1 + 7d6: 080e slli a6,a6,0x3 + 7d8: 9872 add a6,a6,t3 + 7da: 00083e83 ld t4,0(a6) + 7de: 008ff833 and a6,t6,s0 + 7e2: e20788d3 fmv.x.d a7,fa5 + 7e6: f20806d3 fmv.d.x fa3,a6 + 7ea: f20407d3 fmv.d.x fa5,s0 + 7ee: 01dfffb3 and t6,t6,t4 + 7f2: f20880d3 fmv.d.x ft1,a7 + 7f6: 0ad7f653 fsub.d fa2,fa5,fa3 + 7fa: f20f87d3 fmv.d.x fa5,t6 + 7fe: 64c2 ld s1,16(sp) + 800: 6922 ld s2,8(sp) + 802: 0af5f053 fsub.d ft0,fa1,fa5 + 806: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 + 80a: f20407d3 fmv.d.x fa5,s0 + 80e: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 812: f2080553 fmv.d.x fa0,a6 + 816: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 + 81a: 0af77753 fsub.d fa4,fa4,fa5 + 81e: f20f87d3 fmv.d.x fa5,t6 + 822: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 + 826: 7a067643 fmadd.d fa2,fa2,ft0,fa5 + 82a: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 + 82e: b6b5 j 39a + 830: f20886d3 fmv.d.x fa3,a7 + 834: f2000753 fmv.d.x fa4,zero + 838: b539 j 646 + 83a: 64c2 ld s1,16(sp) + 83c: 6922 ld s2,8(sp) + 83e: beb1 j 39a + 840: 4959 li s2,22 + 842: bdf5 j 73e + 844: e826 sd s1,16(sp) + 846: e44a sd s2,8(sp) + 848: ecc00393 li t2,-308 + 84c: 4eed li t4,27 + 84e: 4335 li t1,13 + 850: 14600f13 li t5,326 + 854: b5cd j 736 + 856: 26900313 li t1,617 + 85a: 0303083b mulw a6,t1,a6 + 85e: 41f8531b sraiw t1,a6,0x1f + 862: 0153531b srliw t1,t1,0x15 + 866: 0103033b addw t1,t1,a6 + 86a: 40b3539b sraiw t2,t1,0xb + 86e: 4849 li a6,18 + 870: 4078083b subw a6,a6,t2 + 874: b249 j 1f6 + +0000000000000876 <_in_char.part.0>: +static int _in_char(_InContext *ctx) + 876: 87aa mv a5,a0 + if (ctx->fd == -1) + 878: 4508 lw a0,8(a0) + 87a: 577d li a4,-1 + 87c: 00e51d63 bne a0,a4,896 <_in_char.part.0+0x20> + if (ctx->buf[ctx->pos] == '\0') + 880: 6b94 ld a3,16(a5) + 882: 6398 ld a4,0(a5) + 884: 9736 add a4,a4,a3 + 886: 00074603 lbu a2,0(a4) + 88a: c60d beqz a2,8b4 <_in_char.part.0+0x3e> + return (unsigned char)ctx->buf[ctx->pos++]; + 88c: 0685 addi a3,a3,1 + 88e: eb94 sd a3,16(a5) + 890: 00074503 lbu a0,0(a4) + 894: 8082 ret +static int _in_char(_InContext *ctx) + 896: 1101 addi sp,sp,-32 + if (read(ctx->fd, &c, 1) == 1) + 898: 4605 li a2,1 + 89a: 00f10593 addi a1,sp,15 +static int _in_char(_InContext *ctx) + 89e: ec06 sd ra,24(sp) + if (read(ctx->fd, &c, 1) == 1) + 8a0: 801ff0ef jal a0 + 8a4: 4785 li a5,1 + 8a6: 00f51963 bne a0,a5,8b8 <_in_char.part.0+0x42> + return (unsigned char)c; + 8aa: 00f14503 lbu a0,15(sp) +} + 8ae: 60e2 ld ra,24(sp) + 8b0: 6105 addi sp,sp,32 + 8b2: 8082 ret + return -1; + 8b4: 557d li a0,-1 +} + 8b6: 8082 ret + return -1; + 8b8: 557d li a0,-1 + 8ba: bfd5 j 8ae <_in_char.part.0+0x38> + +00000000000008bc <_skip_space>: +{ + 8bc: 7139 addi sp,sp,-64 + 8be: f822 sd s0,48(sp) + 8c0: f426 sd s1,40(sp) + 8c2: f04a sd s2,32(sp) + 8c4: ec4e sd s3,24(sp) + 8c6: e852 sd s4,16(sp) + 8c8: fc06 sd ra,56(sp) + 8ca: 842a mv s0,a0 + ctx->ungotten = -1; + 8cc: 54fd li s1,-1 + if (read(ctx->fd, &c, 1) == 1) + 8ce: 00f10a13 addi s4,sp,15 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 8d2: 02000913 li s2,32 + 8d6: 4991 li s3,4 + if (ctx->ungotten >= 0) + 8d8: 4c1c lw a5,24(s0) + 8da: 0407d163 bgez a5,91c <_skip_space+0x60> + if (ctx->fd == -1) + 8de: 4408 lw a0,8(s0) + if (read(ctx->fd, &c, 1) == 1) + 8e0: 4605 li a2,1 + 8e2: 85d2 mv a1,s4 + if (ctx->fd == -1) + 8e4: 02951e63 bne a0,s1,920 <_skip_space+0x64> + if (ctx->buf[ctx->pos] == '\0') + 8e8: 6818 ld a4,16(s0) + 8ea: 601c ld a5,0(s0) + return (unsigned char)ctx->buf[ctx->pos++]; + 8ec: 00170693 addi a3,a4,1 + if (ctx->buf[ctx->pos] == '\0') + 8f0: 97ba add a5,a5,a4 + 8f2: 0007c703 lbu a4,0(a5) # 7000 <_stdout+0x1e0> + 8f6: cb19 beqz a4,90c <_skip_space+0x50> + return (unsigned char)ctx->buf[ctx->pos++]; + 8f8: e814 sd a3,16(s0) + 8fa: 0007c783 lbu a5,0(a5) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 8fe: ff77871b addiw a4,a5,-9 + 902: fd278be3 beq a5,s2,8d8 <_skip_space+0x1c> + 906: fce9f9e3 bgeu s3,a4,8d8 <_skip_space+0x1c> + ctx->ungotten = c; + 90a: cc1c sw a5,24(s0) +} + 90c: 70e2 ld ra,56(sp) + 90e: 7442 ld s0,48(sp) + 910: 74a2 ld s1,40(sp) + 912: 7902 ld s2,32(sp) + 914: 69e2 ld s3,24(sp) + 916: 6a42 ld s4,16(sp) + 918: 6121 addi sp,sp,64 + 91a: 8082 ret + ctx->ungotten = -1; + 91c: cc04 sw s1,24(s0) + return c; + 91e: b7c5 j 8fe <_skip_space+0x42> + if (read(ctx->fd, &c, 1) == 1) + 920: f80ff0ef jal a0 + 924: 4785 li a5,1 + 926: fef513e3 bne a0,a5,90c <_skip_space+0x50> + return (unsigned char)c; + 92a: 00f14783 lbu a5,15(sp) + 92e: bfc1 j 8fe <_skip_space+0x42> + +0000000000000930 <_vscanf_core.constprop.0>: +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + 930: 7155 addi sp,sp,-208 + 932: e586 sd ra,200(sp) + 934: e95a sd s6,144(sp) + while (*p) + 936: 0005c783 lbu a5,0(a1) +static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) + 93a: e432 sd a2,8(sp) + while (*p) + 93c: 68078b63 beqz a5,fd2 <_vscanf_core.constprop.0+0x6a2> + 940: e1a2 sd s0,192(sp) + 942: fd26 sd s1,184(sp) + 944: f152 sd s4,160(sp) + 946: ed56 sd s5,152(sp) + 948: f4ee sd s11,104(sp) + 94a: 842e mv s0,a1 + 94c: 8daa mv s11,a0 + int assigned = 0; + 94e: 4b01 li s6,0 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 950: 02000493 li s1,32 + 954: 4a91 li s5,4 + if (*p != '%') + 956: 02500a13 li s4,37 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 95a: 04978763 beq a5,s1,9a8 <_vscanf_core.constprop.0+0x78> + 95e: ff77869b addiw a3,a5,-9 + 962: 0ff6f693 zext.b a3,a3 + 966: 04daf163 bgeu s5,a3,9a8 <_vscanf_core.constprop.0+0x78> + if (*p != '%') + 96a: 07478d63 beq a5,s4,9e4 <_vscanf_core.constprop.0+0xb4> + _skip_space(ctx); + 96e: 856e mv a0,s11 + 970: f4dff0ef jal 8bc <_skip_space> + if (ctx->ungotten >= 0) + 974: 018da503 lw a0,24(s11) + 978: 04055a63 bgez a0,9cc <_vscanf_core.constprop.0+0x9c> + 97c: 856e mv a0,s11 + 97e: ef9ff0ef jal 876 <_in_char.part.0> + if (c != *p) + 982: 00044783 lbu a5,0(s0) + 986: 04a78a63 beq a5,a0,9da <_vscanf_core.constprop.0+0xaa> + if (c != -1) + 98a: 57fd li a5,-1 + 98c: 00f50463 beq a0,a5,994 <_vscanf_core.constprop.0+0x64> + ctx->ungotten = c; + 990: 00adac23 sw a0,24(s11) + 994: 640e ld s0,192(sp) + 996: 74ea ld s1,184(sp) + 998: 7a0a ld s4,160(sp) + 99a: 6aea ld s5,152(sp) + 99c: 7da6 ld s11,104(sp) +} + 99e: 60ae ld ra,200(sp) + 9a0: 855a mv a0,s6 + 9a2: 6b4a ld s6,144(sp) + 9a4: 6169 addi sp,sp,208 + 9a6: 8082 ret + _skip_space(ctx); + 9a8: 856e mv a0,s11 + 9aa: f13ff0ef jal 8bc <_skip_space> + while (isspace(*p)) + 9ae: 00044783 lbu a5,0(s0) + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + 9b2: 4611 li a2,4 + 9b4: ff77869b addiw a3,a5,-9 + 9b8: 0ff6f693 zext.b a3,a3 + 9bc: 00978663 beq a5,s1,9c8 <_vscanf_core.constprop.0+0x98> + 9c0: 00d67463 bgeu a2,a3,9c8 <_vscanf_core.constprop.0+0x98> + while (*p) + 9c4: fbd9 bnez a5,95a <_vscanf_core.constprop.0+0x2a> + 9c6: b7f9 j 994 <_vscanf_core.constprop.0+0x64> + p++; + 9c8: 0405 addi s0,s0,1 + 9ca: b7d5 j 9ae <_vscanf_core.constprop.0+0x7e> + ctx->ungotten = -1; + 9cc: 57fd li a5,-1 + 9ce: 00fdac23 sw a5,24(s11) + if (c != *p) + 9d2: 00044783 lbu a5,0(s0) + 9d6: faa79ae3 bne a5,a0,98a <_vscanf_core.constprop.0+0x5a> + while (*p) + 9da: 00144783 lbu a5,1(s0) + p++; + 9de: 0405 addi s0,s0,1 + while (*p) + 9e0: ffad bnez a5,95a <_vscanf_core.constprop.0+0x2a> + 9e2: bf4d j 994 <_vscanf_core.constprop.0+0x64> + 9e4: f94a sd s2,176(sp) + 9e6: f54e sd s3,168(sp) + 9e8: e55e sd s7,136(sp) + 9ea: e162 sd s8,128(sp) + if (*p == '*') + 9ec: 00144583 lbu a1,1(s0) + 9f0: 02a00793 li a5,42 + 9f4: 22f58d63 beq a1,a5,c2e <_vscanf_core.constprop.0+0x2fe> + p++; + 9f8: 0405 addi s0,s0,1 + int suppress = 0; + 9fa: 4981 li s3,0 + while (*p >= '0' && *p <= '9') + 9fc: fd05861b addiw a2,a1,-48 + a00: 0ff67693 zext.b a3,a2 + a04: 47a5 li a5,9 + a06: 36d7e763 bltu a5,a3,d74 <_vscanf_core.constprop.0+0x444> + a0a: 4781 li a5,0 + a0c: 4825 li a6,9 + a0e: a019 j a14 <_vscanf_core.constprop.0+0xe4> + width = width * 10 + (*p - '0'); + a10: 0016979b slliw a5,a3,0x1 + while (*p >= '0' && *p <= '9') + a14: 00144583 lbu a1,1(s0) + width = width * 10 + (*p - '0'); + a18: 00f6093b addw s2,a2,a5 + a1c: 0029169b slliw a3,s2,0x2 + while (*p >= '0' && *p <= '9') + a20: fd05861b addiw a2,a1,-48 + a24: 0ff67513 zext.b a0,a2 + width = width * 10 + (*p - '0'); + a28: 012686bb addw a3,a3,s2 + p++; + a2c: 0405 addi s0,s0,1 + while (*p >= '0' && *p <= '9') + a2e: fea871e3 bgeu a6,a0,a10 <_vscanf_core.constprop.0+0xe0> + if (*p == 'l') + a32: 06c00693 li a3,108 + p++; + a36: 00140b93 addi s7,s0,1 + if (*p == 'l') + a3a: 1ed58f63 beq a1,a3,c38 <_vscanf_core.constprop.0+0x308> + else if (*p == 'h') + a3e: 06800693 li a3,104 + a42: 2ad58863 beq a1,a3,cf2 <_vscanf_core.constprop.0+0x3c2> + char spec = *p++; + a46: 00044c03 lbu s8,0(s0) + a4a: 8ba2 mv s7,s0 + int len_mod = 0; + a4c: ec02 sd zero,24(sp) + char spec = *p++; + a4e: 06300693 li a3,99 + a52: 001b8413 addi s0,s7,1 + if (!spec) + a56: 2adc0863 beq s8,a3,d06 <_vscanf_core.constprop.0+0x3d6> + a5a: 1f86fc63 bgeu a3,s8,c52 <_vscanf_core.constprop.0+0x322> + a5e: f9cc069b addiw a3,s8,-100 + a62: 0ff6f693 zext.b a3,a3 + a66: 4651 li a2,20 + a68: 0cd66e63 bltu a2,a3,b44 <_vscanf_core.constprop.0+0x214> + a6c: 00120637 lui a2,0x120 + a70: 4585 li a1,1 + a72: 00d595b3 sll a1,a1,a3 + a76: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x118829> + a7a: 8e6d and a2,a2,a1 + a7c: ee69 bnez a2,b56 <_vscanf_core.constprop.0+0x226> + a7e: 89b9 andi a1,a1,14 + a80: 1e059263 bnez a1,c64 <_vscanf_core.constprop.0+0x334> + a84: 463d li a2,15 + a86: 0ac69f63 bne a3,a2,b44 <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + a8a: 856e mv a0,s11 + a8c: e31ff0ef jal 8bc <_skip_space> + char *buf = suppress ? NULL : va_arg(ap, char *); + a90: ec02 sd zero,24(sp) + a92: 00099763 bnez s3,aa0 <_vscanf_core.constprop.0+0x170> + a96: 67a2 ld a5,8(sp) + a98: 6398 ld a4,0(a5) + a9a: 07a1 addi a5,a5,8 + a9c: e43e sd a5,8(sp) + a9e: ec3a sd a4,24(sp) + if (ctx->ungotten >= 0) + aa0: 018da503 lw a0,24(s11) + aa4: 2e055b63 bgez a0,d9a <_vscanf_core.constprop.0+0x46a> + aa8: 856e mv a0,s11 + aaa: dcdff0ef jal 876 <_in_char.part.0> + while (c != -1 && !isspace(c)) + aae: 56fd li a3,-1 + ab0: 6ad50363 beq a0,a3,1156 <_vscanf_core.constprop.0+0x826> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + ab4: 02000693 li a3,32 + ab8: 3ed50963 beq a0,a3,eaa <_vscanf_core.constprop.0+0x57a> + abc: 46a5 li a3,9 + abe: 3ed50663 beq a0,a3,eaa <_vscanf_core.constprop.0+0x57a> + ac2: 46a9 li a3,10 + ac4: 3ed50363 beq a0,a3,eaa <_vscanf_core.constprop.0+0x57a> + ac8: 46ad li a3,11 + aca: 3ed50063 beq a0,a3,eaa <_vscanf_core.constprop.0+0x57a> + ace: 46b1 li a3,12 + ad0: 3cd50d63 beq a0,a3,eaa <_vscanf_core.constprop.0+0x57a> + ad4: 46b5 li a3,13 + ad6: 3cd50a63 beq a0,a3,eaa <_vscanf_core.constprop.0+0x57a> + ada: 67e2 ld a5,24(sp) + adc: fce6 sd s9,120(sp) + ade: f8ea sd s10,112(sp) + ae0: e83e sd a5,16(sp) + ae2: 4d01 li s10,0 + while (c != -1 && !isspace(c)) + ae4: 5c7d li s8,-1 + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + ae6: 02000c93 li s9,32 + if (width > 0 && i >= width) + aea: 01205463 blez s2,af2 <_vscanf_core.constprop.0+0x1c2> + aee: 052d5563 bge s10,s2,b38 <_vscanf_core.constprop.0+0x208> + if (!suppress) + af2: 00099563 bnez s3,afc <_vscanf_core.constprop.0+0x1cc> + buf[i] = (char)c; + af6: 67c2 ld a5,16(sp) + af8: 00a78023 sb a0,0(a5) + if (ctx->ungotten >= 0) + afc: 018da503 lw a0,24(s11) + i++; + b00: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + b02: 30055963 bgez a0,e14 <_vscanf_core.constprop.0+0x4e4> + b06: 856e mv a0,s11 + b08: d6fff0ef jal 876 <_in_char.part.0> + while (c != -1 && !isspace(c)) + b0c: 27850663 beq a0,s8,d78 <_vscanf_core.constprop.0+0x448> + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; + b10: 03950463 beq a0,s9,b38 <_vscanf_core.constprop.0+0x208> + b14: 47a5 li a5,9 + b16: 02f50163 beq a0,a5,b38 <_vscanf_core.constprop.0+0x208> + b1a: 47a9 li a5,10 + b1c: 00f50e63 beq a0,a5,b38 <_vscanf_core.constprop.0+0x208> + b20: 47ad li a5,11 + b22: 00f50b63 beq a0,a5,b38 <_vscanf_core.constprop.0+0x208> + b26: 47b1 li a5,12 + b28: 00f50863 beq a0,a5,b38 <_vscanf_core.constprop.0+0x208> + b2c: 67c2 ld a5,16(sp) + b2e: 0785 addi a5,a5,1 + b30: e83e sd a5,16(sp) + b32: 47b5 li a5,13 + b34: faf51be3 bne a0,a5,aea <_vscanf_core.constprop.0+0x1ba> + if (!suppress) + b38: 64098a63 beqz s3,118c <_vscanf_core.constprop.0+0x85c> + b3c: 7ce6 ld s9,120(sp) + b3e: 7d46 ld s10,112(sp) + ctx->ungotten = c; + b40: 00adac23 sw a0,24(s11) + while (*p) + b44: 001bc783 lbu a5,1(s7) + b48: 794a ld s2,176(sp) + b4a: 79aa ld s3,168(sp) + b4c: 6baa ld s7,136(sp) + b4e: 6c0a ld s8,128(sp) + b50: e00795e3 bnez a5,95a <_vscanf_core.constprop.0+0x2a> + b54: b581 j 994 <_vscanf_core.constprop.0+0x64> + _skip_space(ctx); + b56: 856e mv a0,s11 + b58: f8ea sd s10,112(sp) + b5a: d63ff0ef jal 8bc <_skip_space> + if (ctx->ungotten >= 0) + b5e: 018da503 lw a0,24(s11) + b62: 24055063 bgez a0,da2 <_vscanf_core.constprop.0+0x472> + b66: 856e mv a0,s11 + b68: d0fff0ef jal 876 <_in_char.part.0> + if (c == '-' || c == '+') + b6c: fd55069b addiw a3,a0,-43 + b70: 9af5 andi a3,a3,-3 + b72: 2681 sext.w a3,a3 + int i = 0, c = _in_char(ctx); + b74: 4d01 li s10,0 + if (c == '-' || c == '+') + b76: 3e068863 beqz a3,f66 <_vscanf_core.constprop.0+0x636> + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + b7a: 07800693 li a3,120 + b7e: 4641 li a2,16 + b80: 00dc0863 beq s8,a3,b90 <_vscanf_core.constprop.0+0x260> + b84: 06900693 li a3,105 + b88: 4629 li a2,10 + b8a: 00dc1363 bne s8,a3,b90 <_vscanf_core.constprop.0+0x260> + b8e: 4601 li a2,0 + while (c != -1 && i < 63) + b90: 56fd li a3,-1 + b92: 5cd50863 beq a0,a3,1162 <_vscanf_core.constprop.0+0x832> + b96: fce6 sd s9,120(sp) + b98: 02010893 addi a7,sp,32 + b9c: 01a88c33 add s8,a7,s10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ba0: 4cc1 li s9,16 + int digit = (c >= '0' && c <= '9'); + ba2: fd05069b addiw a3,a0,-48 + ba6: 0005031b sext.w t1,a0 + baa: 00a6b593 sltiu a1,a3,10 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + bae: 27960a63 beq a2,s9,e22 <_vscanf_core.constprop.0+0x4f2> + bb2: 2a060d63 beqz a2,e6c <_vscanf_core.constprop.0+0x53c> + int x = (c == 'x' || c == 'X'); + bb6: 07800793 li a5,120 + bba: 2ef50363 beq a0,a5,ea0 <_vscanf_core.constprop.0+0x570> + bbe: fa850693 addi a3,a0,-88 + bc2: 0016b693 seqz a3,a3 + bc6: 4301 li t1,0 + if (width > 0 && i >= width) + bc8: 01205463 blez s2,bd0 <_vscanf_core.constprop.0+0x2a0> + bcc: 032d5a63 bge s10,s2,c00 <_vscanf_core.constprop.0+0x2d0> + if (digit || hex || x) + bd0: 0066e6b3 or a3,a3,t1 + bd4: 8ecd or a3,a3,a1 + bd6: c68d beqz a3,c00 <_vscanf_core.constprop.0+0x2d0> + num_buf[i++] = (char)c; + bd8: 00ac0023 sb a0,0(s8) + if (ctx->ungotten >= 0) + bdc: 018da503 lw a0,24(s11) + num_buf[i++] = (char)c; + be0: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + be2: 22055c63 bgez a0,e1a <_vscanf_core.constprop.0+0x4ea> + be6: 856e mv a0,s11 + be8: e832 sd a2,16(sp) + bea: c8dff0ef jal 876 <_in_char.part.0> + while (c != -1 && i < 63) + bee: 57fd li a5,-1 + bf0: 6642 ld a2,16(sp) + bf2: 3cf50263 beq a0,a5,fb6 <_vscanf_core.constprop.0+0x686> + bf6: 03f00693 li a3,63 + bfa: 0c05 addi s8,s8,1 + bfc: fadd13e3 bne s10,a3,ba2 <_vscanf_core.constprop.0+0x272> + num_buf[i] = '\0'; + c00: 040d0793 addi a5,s10,64 + c04: 1018 addi a4,sp,32 + c06: 97ba add a5,a5,a4 + c08: fc078023 sb zero,-64(a5) + ctx->ungotten = c; + c0c: 00adac23 sw a0,24(s11) + c10: 7ce6 ld s9,120(sp) + if (i == 0) + c12: 1e0d0663 beqz s10,dfe <_vscanf_core.constprop.0+0x4ce> + if (!suppress) + c16: 36098363 beqz s3,f7c <_vscanf_core.constprop.0+0x64c> + while (*p) + c1a: 001bc783 lbu a5,1(s7) + { + c1e: 794a ld s2,176(sp) + c20: 79aa ld s3,168(sp) + c22: 6baa ld s7,136(sp) + c24: 6c0a ld s8,128(sp) + c26: 7d46 ld s10,112(sp) + while (*p) + c28: d20799e3 bnez a5,95a <_vscanf_core.constprop.0+0x2a> + c2c: b3a5 j 994 <_vscanf_core.constprop.0+0x64> + while (*p >= '0' && *p <= '9') + c2e: 00244583 lbu a1,2(s0) + suppress = 1; + c32: 4985 li s3,1 + p++; + c34: 0409 addi s0,s0,2 + c36: b3d9 j 9fc <_vscanf_core.constprop.0+0xcc> + if (*p == 'l') + c38: 00144c03 lbu s8,1(s0) + len_mod = 1; + c3c: 4785 li a5,1 + c3e: ec3e sd a5,24(sp) + if (*p == 'l') + c40: e0bc17e3 bne s8,a1,a4e <_vscanf_core.constprop.0+0x11e> + len_mod = 2; + c44: 4789 li a5,2 + char spec = *p++; + c46: 00244c03 lbu s8,2(s0) + p++; + c4a: 00240b93 addi s7,s0,2 + len_mod = 2; + c4e: ec3e sd a5,24(sp) + c50: bbfd j a4e <_vscanf_core.constprop.0+0x11e> + c52: 100c0763 beqz s8,d60 <_vscanf_core.constprop.0+0x430> + c56: fbbc079b addiw a5,s8,-69 + c5a: 0ff7f793 zext.b a5,a5 + c5e: 4689 li a3,2 + c60: eef6e2e3 bltu a3,a5,b44 <_vscanf_core.constprop.0+0x214> + _skip_space(ctx); + c64: 856e mv a0,s11 + c66: f8ea sd s10,112(sp) + c68: c55ff0ef jal 8bc <_skip_space> + if (ctx->ungotten >= 0) + c6c: 018da783 lw a5,24(s11) + c70: 1207dd63 bgez a5,daa <_vscanf_core.constprop.0+0x47a> + c74: 856e mv a0,s11 + c76: c01ff0ef jal 876 <_in_char.part.0> + if (c == '-' || c == '+') + c7a: fd55069b addiw a3,a0,-43 + c7e: ffd6f613 andi a2,a3,-3 + c82: 2601 sext.w a2,a2 + c84: 87aa mv a5,a0 + c86: 12060c63 beqz a2,dbe <_vscanf_core.constprop.0+0x48e> + while (c != -1 && i < 63) + c8a: 567d li a2,-1 + c8c: 16c50963 beq a0,a2,dfe <_vscanf_core.constprop.0+0x4ce> + c90: fce6 sd s9,120(sp) + int i = 0, c = _in_char(ctx); + c92: 4d01 li s10,0 + c94: 80000937 lui s2,0x80000 + c98: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff8807> + c9a: 0932 slli s2,s2,0xc + c9c: 80194913 xori s2,s2,-2047 + ca0: 093e slli s2,s2,0xf + ca2: 02010813 addi a6,sp,32 + ca6: 01a80cb3 add s9,a6,s10 + caa: 03a00c13 li s8,58 + cae: 1935 addi s2,s2,-19 + cb0: a831 j ccc <_vscanf_core.constprop.0+0x39c> + cb2: bc5ff0ef jal 876 <_in_char.part.0> + while (c != -1 && i < 63) + cb6: 577d li a4,-1 + cb8: 87aa mv a5,a0 + cba: 2ee50563 beq a0,a4,fa4 <_vscanf_core.constprop.0+0x674> + cbe: 03f00713 li a4,63 + cc2: 0c85 addi s9,s9,1 + cc4: 1eed0e63 beq s10,a4,ec0 <_vscanf_core.constprop.0+0x590> + cc8: fd57869b addiw a3,a5,-43 + int c = ctx->ungotten; + ccc: 00d95633 srl a2,s2,a3 + cd0: 856e mv a0,s11 + cd2: 8a05 andi a2,a2,1 + cd4: 1edc6663 bltu s8,a3,ec0 <_vscanf_core.constprop.0+0x590> + cd8: 1e060463 beqz a2,ec0 <_vscanf_core.constprop.0+0x590> + num_buf[i++] = (char)c; + cdc: 00fc8023 sb a5,0(s9) + if (ctx->ungotten >= 0) + ce0: 018da783 lw a5,24(s11) + num_buf[i++] = (char)c; + ce4: 2d05 addiw s10,s10,1 + if (ctx->ungotten >= 0) + ce6: fc07c6e3 bltz a5,cb2 <_vscanf_core.constprop.0+0x382> + ctx->ungotten = -1; + cea: 577d li a4,-1 + cec: 00edac23 sw a4,24(s11) + while (c != -1 && i < 63) + cf0: b7f9 j cbe <_vscanf_core.constprop.0+0x38e> + if (*p == 'h') + cf2: 00144c03 lbu s8,1(s0) + int len_mod = 0; + cf6: ec02 sd zero,24(sp) + if (*p == 'h') + cf8: d4bc1be3 bne s8,a1,a4e <_vscanf_core.constprop.0+0x11e> + char spec = *p++; + cfc: 00244c03 lbu s8,2(s0) + p++; + d00: 00240b93 addi s7,s0,2 + d04: b3a9 j a4e <_vscanf_core.constprop.0+0x11e> + d06: fce6 sd s9,120(sp) + d08: f8ea sd s10,112(sp) + int count = (width > 0) ? width : 1; + d0a: 00090c1b sext.w s8,s2 + d0e: 0d205a63 blez s2,de2 <_vscanf_core.constprop.0+0x4b2> + char *buf = suppress ? NULL : va_arg(ap, char *); + d12: 4d01 li s10,0 + d14: 06098d63 beqz s3,d8e <_vscanf_core.constprop.0+0x45e> + for (int i = 0; i < count; i++) + d18: 9c6a add s8,s8,s10 + if (c == -1) + d1a: 5cfd li s9,-1 + if (ctx->ungotten >= 0) + d1c: 018da783 lw a5,24(s11) + ctx->ungotten = -1; + d20: 856e mv a0,s11 + if (ctx->ungotten >= 0) + d22: 0207dc63 bgez a5,d5a <_vscanf_core.constprop.0+0x42a> + d26: b51ff0ef jal 876 <_in_char.part.0> + d2a: 87aa mv a5,a0 + if (c == -1) + d2c: 0b950d63 beq a0,s9,de6 <_vscanf_core.constprop.0+0x4b6> + if (!suppress) + d30: 00099463 bnez s3,d38 <_vscanf_core.constprop.0+0x408> + buf[i] = (char)c; + d34: 00fd0023 sb a5,0(s10) + for (int i = 0; i < count; i++) + d38: 0d05 addi s10,s10,1 + d3a: ffac11e3 bne s8,s10,d1c <_vscanf_core.constprop.0+0x3ec> + while (*p) + d3e: 001bc783 lbu a5,1(s7) + if (!suppress) + d42: 00099363 bnez s3,d48 <_vscanf_core.constprop.0+0x418> + assigned++; + d46: 2b05 addiw s6,s6,1 + d48: 794a ld s2,176(sp) + d4a: 79aa ld s3,168(sp) + d4c: 6baa ld s7,136(sp) + d4e: 6c0a ld s8,128(sp) + d50: 7ce6 ld s9,120(sp) + d52: 7d46 ld s10,112(sp) + while (*p) + d54: c00793e3 bnez a5,95a <_vscanf_core.constprop.0+0x2a> + d58: b935 j 994 <_vscanf_core.constprop.0+0x64> + ctx->ungotten = -1; + d5a: 019dac23 sw s9,24(s11) + if (c == -1) + d5e: bfc9 j d30 <_vscanf_core.constprop.0+0x400> + d60: 640e ld s0,192(sp) + d62: 74ea ld s1,184(sp) + d64: 794a ld s2,176(sp) + d66: 79aa ld s3,168(sp) + d68: 7a0a ld s4,160(sp) + d6a: 6aea ld s5,152(sp) + d6c: 6baa ld s7,136(sp) + d6e: 6c0a ld s8,128(sp) + d70: 7da6 ld s11,104(sp) + d72: b135 j 99e <_vscanf_core.constprop.0+0x6e> + int width = -1; + d74: 597d li s2,-1 + d76: b975 j a32 <_vscanf_core.constprop.0+0x102> + if (!suppress) + d78: 3c099c63 bnez s3,1150 <_vscanf_core.constprop.0+0x820> + buf[i] = '\0'; + d7c: 67e2 ld a5,24(sp) + d7e: 01a786b3 add a3,a5,s10 + d82: 00068023 sb zero,0(a3) + while (*p) + d86: 001bc783 lbu a5,1(s7) + assigned++; + d8a: 2b05 addiw s6,s6,1 + d8c: bf75 j d48 <_vscanf_core.constprop.0+0x418> + char *buf = suppress ? NULL : va_arg(ap, char *); + d8e: 67a2 ld a5,8(sp) + d90: 0007bd03 ld s10,0(a5) + d94: 07a1 addi a5,a5,8 + d96: e43e sd a5,8(sp) + d98: b741 j d18 <_vscanf_core.constprop.0+0x3e8> + ctx->ungotten = -1; + d9a: 56fd li a3,-1 + d9c: 00ddac23 sw a3,24(s11) + while (c != -1 && !isspace(c)) + da0: bb11 j ab4 <_vscanf_core.constprop.0+0x184> + ctx->ungotten = -1; + da2: 56fd li a3,-1 + da4: 00ddac23 sw a3,24(s11) + return c; + da8: b3d1 j b6c <_vscanf_core.constprop.0+0x23c> + if (c == '-' || c == '+') + daa: fd57869b addiw a3,a5,-43 + dae: ffd6f613 andi a2,a3,-3 + ctx->ungotten = -1; + db2: 55fd li a1,-1 + db4: 00bdac23 sw a1,24(s11) + if (c == '-' || c == '+') + db8: 2601 sext.w a2,a2 + dba: ec061be3 bnez a2,c90 <_vscanf_core.constprop.0+0x360> + num_buf[i++] = (char)c; + dbe: 02f10023 sb a5,32(sp) + if (ctx->ungotten >= 0) + dc2: 018da783 lw a5,24(s11) + dc6: 2207da63 bgez a5,ffa <_vscanf_core.constprop.0+0x6ca> + dca: 856e mv a0,s11 + dcc: aabff0ef jal 876 <_in_char.part.0> + while (c != -1 && i < 63) + dd0: 567d li a2,-1 + dd2: 87aa mv a5,a0 + num_buf[i++] = (char)c; + dd4: 4d05 li s10,1 + dd6: fd55069b addiw a3,a0,-43 + while (c != -1 && i < 63) + dda: 3ac50163 beq a0,a2,117c <_vscanf_core.constprop.0+0x84c> + dde: fce6 sd s9,120(sp) + de0: bd55 j c94 <_vscanf_core.constprop.0+0x364> + int count = (width > 0) ? width : 1; + de2: 4c05 li s8,1 + de4: b73d j d12 <_vscanf_core.constprop.0+0x3e2> + de6: 640e ld s0,192(sp) + de8: 74ea ld s1,184(sp) + dea: 794a ld s2,176(sp) + dec: 79aa ld s3,168(sp) + dee: 7a0a ld s4,160(sp) + df0: 6aea ld s5,152(sp) + df2: 6baa ld s7,136(sp) + df4: 6c0a ld s8,128(sp) + df6: 7ce6 ld s9,120(sp) + df8: 7d46 ld s10,112(sp) + dfa: 7da6 ld s11,104(sp) + dfc: b64d j 99e <_vscanf_core.constprop.0+0x6e> + dfe: 640e ld s0,192(sp) + e00: 74ea ld s1,184(sp) + e02: 794a ld s2,176(sp) + e04: 79aa ld s3,168(sp) + e06: 7a0a ld s4,160(sp) + e08: 6aea ld s5,152(sp) + e0a: 6baa ld s7,136(sp) + e0c: 6c0a ld s8,128(sp) + e0e: 7d46 ld s10,112(sp) + e10: 7da6 ld s11,104(sp) + e12: b671 j 99e <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + e14: 018dac23 sw s8,24(s11) + while (c != -1 && !isspace(c)) + e18: b9e5 j b10 <_vscanf_core.constprop.0+0x1e0> + ctx->ungotten = -1; + e1a: 57fd li a5,-1 + e1c: 00fdac23 sw a5,24(s11) + while (c != -1 && i < 63) + e20: bbd9 j bf6 <_vscanf_core.constprop.0+0x2c6> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e22: f9f3069b addiw a3,t1,-97 + e26: 4795 li a5,5 + e28: 06d7f263 bgeu a5,a3,e8c <_vscanf_core.constprop.0+0x55c> + e2c: fbf3031b addiw t1,t1,-65 + e30: 4795 li a5,5 + e32: 0467fd63 bgeu a5,t1,e8c <_vscanf_core.constprop.0+0x55c> + int x = (c == 'x' || c == 'X'); + e36: 07800693 li a3,120 + e3a: 18d50763 beq a0,a3,fc8 <_vscanf_core.constprop.0+0x698> + e3e: fa850693 addi a3,a0,-88 + e42: 0016b693 seqz a3,a3 + if (base == 0 && i == 1 && num_buf[0] == '0' && x) + e46: 4301 li t1,0 + e48: 32061663 bnez a2,1174 <_vscanf_core.constprop.0+0x844> + e4c: 4785 li a5,1 + e4e: 4601 li a2,0 + e50: d6fd1ce3 bne s10,a5,bc8 <_vscanf_core.constprop.0+0x298> + e54: 02014e03 lbu t3,32(sp) + e58: 03000793 li a5,48 + e5c: d6fe16e3 bne t3,a5,bc8 <_vscanf_core.constprop.0+0x298> + e60: d60684e3 beqz a3,bc8 <_vscanf_core.constprop.0+0x298> + base = 16; + e64: 4641 li a2,16 + if (width > 0 && i >= width) + e66: d7a919e3 bne s2,s10,bd8 <_vscanf_core.constprop.0+0x2a8> + e6a: bb59 j c00 <_vscanf_core.constprop.0+0x2d0> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e6c: f9f3069b addiw a3,t1,-97 + e70: 4795 li a5,5 + e72: 02d7f263 bgeu a5,a3,e96 <_vscanf_core.constprop.0+0x566> + e76: fbf3031b addiw t1,t1,-65 + e7a: 0467f063 bgeu a5,t1,eba <_vscanf_core.constprop.0+0x58a> + int x = (c == 'x' || c == 'X'); + e7e: 07800693 li a3,120 + e82: fad51ee3 bne a0,a3,e3e <_vscanf_core.constprop.0+0x50e> + e86: 4301 li t1,0 + e88: 4685 li a3,1 + e8a: b7c9 j e4c <_vscanf_core.constprop.0+0x51c> + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e8c: 4305 li t1,1 + int x = (c == 'x' || c == 'X'); + e8e: 4681 li a3,0 + if (width > 0 && i >= width) + e90: d3204ee3 bgtz s2,bcc <_vscanf_core.constprop.0+0x29c> + e94: bb35 j bd0 <_vscanf_core.constprop.0+0x2a0> + int x = (c == 'x' || c == 'X'); + e96: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + e98: 4305 li t1,1 + if (width > 0 && i >= width) + e9a: d32049e3 bgtz s2,bcc <_vscanf_core.constprop.0+0x29c> + e9e: bb0d j bd0 <_vscanf_core.constprop.0+0x2a0> + ea0: 4301 li t1,0 + int x = (c == 'x' || c == 'X'); + ea2: 4685 li a3,1 + if (width > 0 && i >= width) + ea4: d32044e3 bgtz s2,bcc <_vscanf_core.constprop.0+0x29c> + ea8: bb05 j bd8 <_vscanf_core.constprop.0+0x2a8> + if (!suppress) + eaa: c8099be3 bnez s3,b40 <_vscanf_core.constprop.0+0x210> + buf[i] = '\0'; + eae: 67e2 ld a5,24(sp) + eb0: 00078023 sb zero,0(a5) + ctx->ungotten = c; + eb4: 00adac23 sw a0,24(s11) + if (i > 0 && !suppress) + eb8: b171 j b44 <_vscanf_core.constprop.0+0x214> + int x = (c == 'x' || c == 'X'); + eba: 4681 li a3,0 + int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); + ebc: 4305 li t1,1 + ebe: b779 j e4c <_vscanf_core.constprop.0+0x51c> + num_buf[i] = '\0'; + ec0: 040d0713 addi a4,s10,64 + ec4: 1014 addi a3,sp,32 + ec6: 96ba add a3,a3,a4 + ec8: fc068023 sb zero,-64(a3) + ctx->ungotten = c; + ecc: 00fdac23 sw a5,24(s11) + if (i == 0) + ed0: f00d0be3 beqz s10,de6 <_vscanf_core.constprop.0+0x4b6> + ed4: 7ce6 ld s9,120(sp) + if (!suppress) + ed6: d40992e3 bnez s3,c1a <_vscanf_core.constprop.0+0x2ea> + if (*str == '-') + eda: 02014603 lbu a2,32(sp) + ede: 02d00793 li a5,45 + ee2: 1af60963 beq a2,a5,1094 <_vscanf_core.constprop.0+0x764> + else if (*str == '+') + ee6: 02b00793 li a5,43 + eea: 20f60a63 beq a2,a5,10fe <_vscanf_core.constprop.0+0x7ce> + eee: 00005797 auipc a5,0x5 + ef2: 8e27b587 fld fa1,-1822(a5) # 57d0 + ef6: 101c addi a5,sp,32 + while (*str >= '0' && *str <= '9') + ef8: fd06069b addiw a3,a2,-48 + efc: 0ff6f513 zext.b a0,a3 + f00: 45a5 li a1,9 + f02: f20007d3 fmv.d.x fa5,zero + f06: 02a5e463 bltu a1,a0,f2e <_vscanf_core.constprop.0+0x5fe> + f0a: 00005717 auipc a4,0x5 + f0e: 8ce73707 fld fa4,-1842(a4) # 57d8 + f12: 4525 li a0,9 + f14: 0017c603 lbu a2,1(a5) + val = val * 10.0 + (*str - '0'); + f18: d20686d3 fcvt.d.w fa3,a3 + str++; + f1c: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + f1e: fd06069b addiw a3,a2,-48 + f22: 0ff6f593 zext.b a1,a3 + val = val * 10.0 + (*str - '0'); + f26: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 + while (*str >= '0' && *str <= '9') + f2a: feb575e3 bgeu a0,a1,f14 <_vscanf_core.constprop.0+0x5e4> + if (*str == '.') + f2e: 02e00693 li a3,46 + f32: 16d60a63 beq a2,a3,10a6 <_vscanf_core.constprop.0+0x776> + if (*str == 'e' || *str == 'E') + f36: 0007c683 lbu a3,0(a5) + f3a: 0df6f693 andi a3,a3,223 + f3e: 04500613 li a2,69 + f42: 0cc68463 beq a3,a2,100a <_vscanf_core.constprop.0+0x6da> + *va_arg(ap, double *) = val; + f46: 6722 ld a4,8(sp) + if (len_mod == 1) + f48: 4685 li a3,1 + return sign * val; + f4a: 12b7f7d3 fmul.d fa5,fa5,fa1 + *va_arg(ap, double *) = val; + f4e: 631c ld a5,0(a4) + *va_arg(ap, int64 *) = val; + f50: 0721 addi a4,a4,8 + f52: e43a sd a4,8(sp) + if (len_mod == 1) + f54: 6762 ld a4,24(sp) + f56: 18d70b63 beq a4,a3,10ec <_vscanf_core.constprop.0+0x7bc> + *va_arg(ap, float *) = (float)val; + f5a: 4017f7d3 fcvt.s.d fa5,fa5 + assigned++; + f5e: 2b05 addiw s6,s6,1 + *va_arg(ap, float *) = (float)val; + f60: 00f7a027 fsw fa5,0(a5) + f64: b95d j c1a <_vscanf_core.constprop.0+0x2ea> + num_buf[i++] = (char)c; + f66: 02a10023 sb a0,32(sp) + if (ctx->ungotten >= 0) + f6a: 018da503 lw a0,24(s11) + f6e: 06055463 bgez a0,fd6 <_vscanf_core.constprop.0+0x6a6> + f72: 856e mv a0,s11 + f74: 903ff0ef jal 876 <_in_char.part.0> + num_buf[i++] = (char)c; + f78: 4d05 li s10,1 + f7a: b101 j b7a <_vscanf_core.constprop.0+0x24a> + int64 val = strtoll(num_buf, NULL, base); + f7c: 4581 li a1,0 + f7e: 1008 addi a0,sp,32 + f80: 696030ef jal 4616 + *va_arg(ap, int64 *) = val; + f84: 67a2 ld a5,8(sp) + if (len_mod == 2) + f86: 6762 ld a4,24(sp) + f88: 4689 li a3,2 + *va_arg(ap, int64 *) = val; + f8a: 07a1 addi a5,a5,8 + if (len_mod == 2) + f8c: 16d70363 beq a4,a3,10f2 <_vscanf_core.constprop.0+0x7c2> + *va_arg(ap, int64 *) = val; + f90: 6722 ld a4,8(sp) + else if (len_mod == 1) + f92: 4605 li a2,1 + *va_arg(ap, int64 *) = val; + f94: 6314 ld a3,0(a4) + else if (len_mod == 1) + f96: 6762 ld a4,24(sp) + f98: 16c70163 beq a4,a2,10fa <_vscanf_core.constprop.0+0x7ca> + *va_arg(ap, int *) = (int)val; + f9c: c288 sw a0,0(a3) + assigned++; + f9e: 2b05 addiw s6,s6,1 + fa0: e43e sd a5,8(sp) + fa2: b9a5 j c1a <_vscanf_core.constprop.0+0x2ea> + num_buf[i] = '\0'; + fa4: 040d0793 addi a5,s10,64 + fa8: 1018 addi a4,sp,32 + faa: 00e785b3 add a1,a5,a4 + fae: fc058023 sb zero,-64(a1) + if (i == 0) + fb2: 7ce6 ld s9,120(sp) + fb4: b70d j ed6 <_vscanf_core.constprop.0+0x5a6> + num_buf[i] = '\0'; + fb6: 040d0793 addi a5,s10,64 + fba: 1018 addi a4,sp,32 + fbc: 00e78833 add a6,a5,a4 + fc0: fc080023 sb zero,-64(a6) + if (i == 0) + fc4: 7ce6 ld s9,120(sp) + fc6: b981 j c16 <_vscanf_core.constprop.0+0x2e6> + int x = (c == 'x' || c == 'X'); + fc8: 4301 li t1,0 + fca: 4685 li a3,1 + if (width > 0 && i >= width) + fcc: c12040e3 bgtz s2,bcc <_vscanf_core.constprop.0+0x29c> + fd0: b101 j bd0 <_vscanf_core.constprop.0+0x2a0> + int assigned = 0; + fd2: 4b01 li s6,0 + fd4: b2e9 j 99e <_vscanf_core.constprop.0+0x6e> + ctx->ungotten = -1; + fd6: 56fd li a3,-1 + fd8: fce6 sd s9,120(sp) + fda: 00ddac23 sw a3,24(s11) + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + fde: 07800693 li a3,120 + fe2: 4641 li a2,16 + num_buf[i++] = (char)c; + fe4: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + fe6: badc09e3 beq s8,a3,b98 <_vscanf_core.constprop.0+0x268> + fea: 06900693 li a3,105 + fee: 4629 li a2,10 + num_buf[i++] = (char)c; + ff0: 4d05 li s10,1 + int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); + ff2: badc13e3 bne s8,a3,b98 <_vscanf_core.constprop.0+0x268> + ff6: 4601 li a2,0 + ff8: b645 j b98 <_vscanf_core.constprop.0+0x268> + ctx->ungotten = -1; + ffa: 56fd li a3,-1 + ffc: fce6 sd s9,120(sp) + ffe: 00ddac23 sw a3,24(s11) + num_buf[i++] = (char)c; + 1002: 4d05 li s10,1 + 1004: fd57869b addiw a3,a5,-43 + 1008: b171 j c94 <_vscanf_core.constprop.0+0x364> + if (*str == '-') + 100a: 0017c583 lbu a1,1(a5) + 100e: 02d00693 li a3,45 + 1012: 0ed58f63 beq a1,a3,1110 <_vscanf_core.constprop.0+0x7e0> + else if (*str == '+') + 1016: 02b00693 li a3,43 + 101a: 10d58e63 beq a1,a3,1136 <_vscanf_core.constprop.0+0x806> + while (*str >= '0' && *str <= '9') + 101e: fd05861b addiw a2,a1,-48 + 1022: 0ff67513 zext.b a0,a2 + 1026: 45a5 li a1,9 + str++; + 1028: 00178693 addi a3,a5,1 + int esign = 1; + 102c: 4805 li a6,1 + while (*str >= '0' && *str <= '9') + 102e: 04a5ec63 bltu a1,a0,1086 <_vscanf_core.constprop.0+0x756> + 1032: 4525 li a0,9 + 1034: 0016c583 lbu a1,1(a3) + eval = eval * 10 + (*str - '0'); + 1038: 0029979b slliw a5,s3,0x2 + 103c: 013787bb addw a5,a5,s3 + 1040: 0017979b slliw a5,a5,0x1 + 1044: 00f609bb addw s3,a2,a5 + while (*str >= '0' && *str <= '9') + 1048: fd05861b addiw a2,a1,-48 + 104c: 0ff67593 zext.b a1,a2 + str++; + 1050: 0685 addi a3,a3,1 + while (*str >= '0' && *str <= '9') + 1052: feb571e3 bgeu a0,a1,1034 <_vscanf_core.constprop.0+0x704> + while (eval--) + 1056: fff9879b addiw a5,s3,-1 + 105a: 12098463 beqz s3,1182 <_vscanf_core.constprop.0+0x852> + double p = 1.0; + 105e: 00004717 auipc a4,0x4 + 1062: 77273687 fld fa3,1906(a4) # 57d0 + 1066: 00004717 auipc a4,0x4 + 106a: 77273707 fld fa4,1906(a4) # 57d8 + while (eval--) + 106e: 56fd li a3,-1 + 1070: 37fd addiw a5,a5,-1 + p *= 10.0; + 1072: 12e6f6d3 fmul.d fa3,fa3,fa4 + while (eval--) + 1076: fed79de3 bne a5,a3,1070 <_vscanf_core.constprop.0+0x740> + if (esign == 1) + 107a: 4785 li a5,1 + 107c: 00f80963 beq a6,a5,108e <_vscanf_core.constprop.0+0x75e> + val /= p; + 1080: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 1084: b5c9 j f46 <_vscanf_core.constprop.0+0x616> + double p = 1.0; + 1086: 00004797 auipc a5,0x4 + 108a: 74a7b687 fld fa3,1866(a5) # 57d0 + val *= p; + 108e: 12d7f7d3 fmul.d fa5,fa5,fa3 + 1092: bd55 j f46 <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 1094: 00004797 auipc a5,0x4 + 1098: 7347b587 fld fa1,1844(a5) # 57c8 + 109c: 02114603 lbu a2,33(sp) + str++; + 10a0: 02110793 addi a5,sp,33 + 10a4: bd91 j ef8 <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 10a6: 0017c683 lbu a3,1(a5) + 10aa: 45a5 li a1,9 + str++; + 10ac: 0785 addi a5,a5,1 + while (*str >= '0' && *str <= '9') + 10ae: fd06861b addiw a2,a3,-48 + 10b2: 0ff67513 zext.b a0,a2 + 10b6: e8a5e2e3 bltu a1,a0,f3a <_vscanf_core.constprop.0+0x60a> + double div = 10.0; + 10ba: 00004717 auipc a4,0x4 + 10be: 71e73707 fld fa4,1822(a4) # 57d8 + 10c2: 22e70653 fmv.d fa2,fa4 + while (*str >= '0' && *str <= '9') + 10c6: 4525 li a0,9 + val += (*str - '0') / div; + 10c8: d20606d3 fcvt.d.w fa3,a2 + while (*str >= '0' && *str <= '9') + 10cc: 0017c683 lbu a3,1(a5) + str++; + 10d0: 0785 addi a5,a5,1 + val += (*str - '0') / div; + 10d2: 1ac6f6d3 fdiv.d fa3,fa3,fa2 + while (*str >= '0' && *str <= '9') + 10d6: fd06861b addiw a2,a3,-48 + 10da: 0ff67593 zext.b a1,a2 + div *= 10.0; + 10de: 12e67653 fmul.d fa2,fa2,fa4 + val += (*str - '0') / div; + 10e2: 02d7f7d3 fadd.d fa5,fa5,fa3 + while (*str >= '0' && *str <= '9') + 10e6: feb571e3 bgeu a0,a1,10c8 <_vscanf_core.constprop.0+0x798> + 10ea: bd81 j f3a <_vscanf_core.constprop.0+0x60a> + *va_arg(ap, double *) = val; + 10ec: a39c fsd fa5,0(a5) + assigned++; + 10ee: 2b05 addiw s6,s6,1 + 10f0: b62d j c1a <_vscanf_core.constprop.0+0x2ea> + *va_arg(ap, int64 *) = val; + 10f2: 6722 ld a4,8(sp) + 10f4: 6314 ld a3,0(a4) + 10f6: e288 sd a0,0(a3) + 10f8: b55d j f9e <_vscanf_core.constprop.0+0x66e> + *va_arg(ap, long *) = (long)val; + 10fa: e288 sd a0,0(a3) + 10fc: b54d j f9e <_vscanf_core.constprop.0+0x66e> + while (*str >= '0' && *str <= '9') + 10fe: 00004797 auipc a5,0x4 + 1102: 6d27b587 fld fa1,1746(a5) # 57d0 + 1106: 02114603 lbu a2,33(sp) + str++; + 110a: 02110793 addi a5,sp,33 + 110e: b3ed j ef8 <_vscanf_core.constprop.0+0x5c8> + while (*str >= '0' && *str <= '9') + 1110: 0027c583 lbu a1,2(a5) + str++; + 1114: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 1118: 4525 li a0,9 + 111a: fd05861b addiw a2,a1,-48 + 111e: 0ff67793 zext.b a5,a2 + esign = -1; + 1122: 587d li a6,-1 + while (*str >= '0' && *str <= '9') + 1124: f0f577e3 bgeu a0,a5,1032 <_vscanf_core.constprop.0+0x702> + double p = 1.0; + 1128: 00004797 auipc a5,0x4 + 112c: 6a87b687 fld fa3,1704(a5) # 57d0 + val /= p; + 1130: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 1134: bd09 j f46 <_vscanf_core.constprop.0+0x616> + while (*str >= '0' && *str <= '9') + 1136: 0027c583 lbu a1,2(a5) + str++; + 113a: 00278693 addi a3,a5,2 + while (*str >= '0' && *str <= '9') + 113e: 4525 li a0,9 + 1140: fd05861b addiw a2,a1,-48 + 1144: 0ff67793 zext.b a5,a2 + 1148: f2f56fe3 bltu a0,a5,1086 <_vscanf_core.constprop.0+0x756> + int esign = 1; + 114c: 4805 li a6,1 + 114e: b5d5 j 1032 <_vscanf_core.constprop.0+0x702> + while (*p) + 1150: 001bc783 lbu a5,1(s7) + 1154: bed5 j d48 <_vscanf_core.constprop.0+0x418> + if (!suppress) + 1156: 9e0997e3 bnez s3,b44 <_vscanf_core.constprop.0+0x214> + buf[i] = '\0'; + 115a: 67e2 ld a5,24(sp) + 115c: 00078023 sb zero,0(a5) + 1160: b2d5 j b44 <_vscanf_core.constprop.0+0x214> + num_buf[i] = '\0'; + 1162: 040d0793 addi a5,s10,64 + 1166: 1018 addi a4,sp,32 + 1168: 97ba add a5,a5,a4 + 116a: fc078023 sb zero,-64(a5) + if (i == 0) + 116e: aa0d14e3 bnez s10,c16 <_vscanf_core.constprop.0+0x2e6> + 1172: b171 j dfe <_vscanf_core.constprop.0+0x4ce> + 1174: 4641 li a2,16 + if (width > 0 && i >= width) + 1176: a5204be3 bgtz s2,bcc <_vscanf_core.constprop.0+0x29c> + 117a: bc99 j bd0 <_vscanf_core.constprop.0+0x2a0> + num_buf[i] = '\0'; + 117c: 020100a3 sb zero,33(sp) + if (i == 0) + 1180: bb99 j ed6 <_vscanf_core.constprop.0+0x5a6> + double p = 1.0; + 1182: 00004797 auipc a5,0x4 + 1186: 64e7b687 fld fa3,1614(a5) # 57d0 + 118a: bdc5 j 107a <_vscanf_core.constprop.0+0x74a> + buf[i] = '\0'; + 118c: 67e2 ld a5,24(sp) + 118e: 01a786b3 add a3,a5,s10 + 1192: 00068023 sb zero,0(a3) + ctx->ungotten = c; + 1196: 00adac23 sw a0,24(s11) + while (*p) + 119a: 001bc783 lbu a5,1(s7) + 119e: b6f5 j d8a <_vscanf_core.constprop.0+0x45a> + +00000000000011a0 <_out_char>: +{ + 11a0: 7179 addi sp,sp,-48 + 11a2: ec26 sd s1,24(sp) + if (ctx->stream) + 11a4: 6d04 ld s1,24(a0) +{ + 11a6: f022 sd s0,32(sp) + 11a8: f406 sd ra,40(sp) + 11aa: 842a mv s0,a0 + 11ac: 872e mv a4,a1 + if (ctx->stream) + 11ae: c0a1 beqz s1,11ee <_out_char+0x4e> + 11b0: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 11b2: 41c4a903 lw s2,1052(s1) + 11b6: 4789 li a5,2 + 11b8: 04f90d63 beq s2,a5,1212 <_out_char+0x72> + stream->buffer[stream->buf_write_pos++] = (char)c; + 11bc: 4104a783 lw a5,1040(s1) + if (stream->buf_write_pos >= BUFSIZ) + 11c0: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 11c4: 0017861b addiw a2,a5,1 + 11c8: 40c4a823 sw a2,1040(s1) + 11cc: 97a6 add a5,a5,s1 + 11ce: 00b78823 sb a1,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 11d2: 08c6c063 blt a3,a2,1252 <_out_char+0xb2> + else if (stream->buf_mode == 1 && c == '\n') + 11d6: 4785 li a5,1 + 11d8: 04f90a63 beq s2,a5,122c <_out_char+0x8c> + ctx->written++; + 11dc: 681c ld a5,16(s0) + 11de: 6942 ld s2,16(sp) +} + 11e0: 70a2 ld ra,40(sp) + ctx->written++; + 11e2: 0785 addi a5,a5,1 + 11e4: e81c sd a5,16(s0) +} + 11e6: 7402 ld s0,32(sp) + 11e8: 64e2 ld s1,24(sp) + 11ea: 6145 addi sp,sp,48 + 11ec: 8082 ret + if (ctx->limit > 0 && ctx->written < ctx->limit - 1) + 11ee: 6514 ld a3,8(a0) + 11f0: 691c ld a5,16(a0) + 11f2: ca89 beqz a3,1204 <_out_char+0x64> + 11f4: 16fd addi a3,a3,-1 + 11f6: 00d7f763 bgeu a5,a3,1204 <_out_char+0x64> + ctx->buf[ctx->written] = c; + 11fa: 6114 ld a3,0(a0) + 11fc: 97b6 add a5,a5,a3 + 11fe: 00b78023 sb a1,0(a5) + ctx->written++; + 1202: 691c ld a5,16(a0) + 1204: 0785 addi a5,a5,1 +} + 1206: 70a2 ld ra,40(sp) + ctx->written++; + 1208: e81c sd a5,16(s0) +} + 120a: 7402 ld s0,32(sp) + 120c: 64e2 ld s1,24(sp) + 120e: 6145 addi sp,sp,48 + 1210: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 1212: 4088 lw a0,0(s1) + 1214: 4605 li a2,1 + 1216: 00f10593 addi a1,sp,15 + char ch = (char)c; + 121a: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 121e: e8bfe0ef jal a8 + 1222: 4785 li a5,1 + 1224: faf50ce3 beq a0,a5,11dc <_out_char+0x3c> + stream->error = 1; + 1228: c49c sw a5,8(s1) + return EOF; + 122a: bf4d j 11dc <_out_char+0x3c> + else if (stream->buf_mode == 1 && c == '\n') + 122c: 47a9 li a5,10 + 122e: faf597e3 bne a1,a5,11dc <_out_char+0x3c> + if (stream->buf_write_pos > 0) + 1232: fac055e3 blez a2,11dc <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 1236: 4088 lw a0,0(s1) + 1238: 01048593 addi a1,s1,16 + 123c: e6dfe0ef jal a8 + if (ret < stream->buf_write_pos) + 1240: 4104a783 lw a5,1040(s1) + 1244: 02f55063 bge a0,a5,1264 <_out_char+0xc4> + stream->error = 1; + 1248: 0124a423 sw s2,8(s1) + stream->buf_write_pos = 0; + 124c: 4004a823 sw zero,1040(s1) + return EOF; + 1250: b771 j 11dc <_out_char+0x3c> + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 1252: 4088 lw a0,0(s1) + 1254: 01048593 addi a1,s1,16 + 1258: e51fe0ef jal a8 + if (ret < stream->buf_write_pos) + 125c: 4104a783 lw a5,1040(s1) + 1260: 00f54563 blt a0,a5,126a <_out_char+0xca> + stream->buf_write_pos = 0; + 1264: 4004a823 sw zero,1040(s1) + 1268: bf95 j 11dc <_out_char+0x3c> + stream->error = 1; + 126a: 4785 li a5,1 + 126c: c49c sw a5,8(s1) + stream->buf_write_pos = 0; + 126e: 4004a823 sw zero,1040(s1) + return EOF; + 1272: b7ad j 11dc <_out_char+0x3c> + +0000000000001274 : + "75767778798081828384858687888990919293949596979899" +}; + +STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, char pperiod) +{ + stbsp__period = pperiod; + 1274: 00005797 auipc a5,0x5 + 1278: 68c78793 addi a5,a5,1676 # 6900 + 127c: 0cb78623 sb a1,204(a5) + stbsp__comma = pcomma; + 1280: 0ca786a3 sb a0,205(a5) +} + 1284: 8082 ret + +0000000000001286 : + + return (stbsp__uint32)(sn - s); +} + +STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *callback, void *user, char *buf, char const *fmt, va_list va) +{ + 1286: d1010113 addi sp,sp,-752 + // Check if the next 4 bytes contain %(0x25) or end of string. + // Using the 'hasless' trick: + // https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord + stbsp__uint32 v, c; + v = *(stbsp__uint32 *)f; + c = (~v) & 0x80808080; + 128a: 808087b7 lui a5,0x80808 + if (((v ^ 0x25252525) - 0x01010101) & c) + 128e: 252523b7 lui t2,0x25252 + 1292: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x2524ad2d> +{ + 1296: 29913c23 sd s9,664(sp) + 129a: 29b13423 sd s11,648(sp) + int tlen = 0; + 129e: 4c81 li s9,0 + if (((v ^ 0x25252525) - 0x01010101) & c) + 12a0: feff0db7 lui s11,0xfeff0 + c = (~v) & 0x80808080; + 12a4: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff80800888> +{ + 12a8: 2e813023 sd s0,736(sp) + 12ac: 2c913c23 sd s1,728(sp) + 12b0: 2d213823 sd s2,720(sp) + 12b4: 2d313423 sd s3,712(sp) + 12b8: 2b713423 sd s7,680(sp) + 12bc: 2b813023 sd s8,672(sp) + 12c0: 29a13823 sd s10,656(sp) + 12c4: 2e113423 sd ra,744(sp) + 12c8: 8d66 mv s10,s9 + 12ca: 8432 mv s0,a2 + 12cc: 8c9e mv s9,t2 + 12ce: 89aa mv s3,a0 + 12d0: e42e sd a1,8(sp) + 12d2: 84b6 mv s1,a3 + 12d4: 8bba mv s7,a4 + 12d6: fc02 sd zero,56(sp) + for (;;) { + 12d8: 8932 mv s2,a2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 12da: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8707> + goto schk1; + if ((v - 0x01010101) & c) + goto schk2; + if (callback) + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 12de: 20000c13 li s8,512 + 12e2: 83be mv t2,a5 + while (((stbsp__uintptr)f) & 3) { + 12e4: 0034f793 andi a5,s1,3 + 12e8: c7a9 beqz a5,1332 + if (f[0] == '%') + 12ea: 0004c783 lbu a5,0(s1) + 12ee: 02500713 li a4,37 + 12f2: 0ee78263 beq a5,a4,13d6 + if (f[0] == 0) + 12f6: cbd9 beqz a5,138c + stbsp__chk_cb_buf(1); + 12f8: 02098663 beqz s3,1324 + 12fc: 4124063b subw a2,s0,s2 + 1300: 1fe00713 li a4,510 + 1304: 02c75063 bge a4,a2,1324 + 1308: 65a2 ld a1,8(sp) + 130a: 854a mv a0,s2 + 130c: e81e sd t2,16(sp) + 130e: 00cd0d3b addw s10,s10,a2 + 1312: 9982 jalr s3 + 1314: 892a mv s2,a0 + 1316: e119 bnez a0,131c + 1318: 0200106f j 2338 + *bf++ = f[0]; + 131c: 0004c783 lbu a5,0(s1) + stbsp__chk_cb_buf(1); + 1320: 63c2 ld t2,16(sp) + 1322: 842a mv s0,a0 + ++f; + 1324: 0485 addi s1,s1,1 + *bf++ = f[0]; + 1326: 00f40023 sb a5,0(s0) + while (((stbsp__uintptr)f) & 3) { + 132a: 0034f793 andi a5,s1,3 + *bf++ = f[0]; + 132e: 0405 addi s0,s0,1 + while (((stbsp__uintptr)f) & 3) { + 1330: ffcd bnez a5,12ea + v = *(stbsp__uint32 *)f; + 1332: 4094 lw a3,0(s1) + c = (~v) & 0x80808080; + 1334: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1338: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 133c: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1340: 01b7073b addw a4,a4,s11 + 1344: 8f7d and a4,a4,a5 + 1346: 2701 sext.w a4,a4 + 1348: f34d bnez a4,12ea + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 134a: 460d li a2,3 + 134c: a805 j 137c + if (callback) + 134e: 00098863 beqz s3,135e + if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) + 1352: 412407b3 sub a5,s0,s2 + 1356: 40fc07bb subw a5,s8,a5 + 135a: f8f658e3 bge a2,a5,12ea + bf[2] = f[2]; + bf[3] = f[3]; + } else + #endif + { + *(stbsp__uint32 *)bf = v; + 135e: c014 sw a3,0(s0) + v = *(stbsp__uint32 *)f; + 1360: 40d4 lw a3,4(s1) + } + bf += 4; + 1362: 0411 addi s0,s0,4 + f += 4; + 1364: 0491 addi s1,s1,4 + c = (~v) & 0x80808080; + 1366: fff6c793 not a5,a3 + if (((v ^ 0x25252525) - 0x01010101) & c) + 136a: 0196c733 xor a4,a3,s9 + c = (~v) & 0x80808080; + 136e: 0077f7b3 and a5,a5,t2 + if (((v ^ 0x25252525) - 0x01010101) & c) + 1372: 01b7073b addw a4,a4,s11 + 1376: 8f7d and a4,a4,a5 + 1378: 2701 sext.w a4,a4 + 137a: fb25 bnez a4,12ea + if ((v - 0x01010101) & c) + 137c: 01b6873b addw a4,a3,s11 + 1380: 8ff9 and a5,a5,a4 + 1382: 2781 sext.w a5,a5 + 1384: d7e9 beqz a5,134e + if (f[0] == 0) + 1386: 0004c783 lbu a5,0(s1) + 138a: f7bd bnez a5,12f8 +endfmt: + + if (!callback) + *bf = 0; + else + stbsp__flush_cb(); + 138c: 8cea mv s9,s10 + 138e: 412404bb subw s1,s0,s2 + if (!callback) + 1392: 70098563 beqz s3,1a9c + stbsp__flush_cb(); + 1396: 00905663 blez s1,13a2 + 139a: 65a2 ld a1,8(sp) + 139c: 8626 mv a2,s1 + 139e: 854a mv a0,s2 + 13a0: 9982 jalr s3 + 13a2: 009c8cbb addw s9,s9,s1 + +done: + return tlen + (int)(bf - buf); +} + 13a6: 2e813083 ld ra,744(sp) + 13aa: 2e013403 ld s0,736(sp) + 13ae: 2d813483 ld s1,728(sp) + 13b2: 2d013903 ld s2,720(sp) + 13b6: 2c813983 ld s3,712(sp) + 13ba: 2a813b83 ld s7,680(sp) + 13be: 2a013c03 ld s8,672(sp) + 13c2: 29013d03 ld s10,656(sp) + 13c6: 28813d83 ld s11,648(sp) + 13ca: 8566 mv a0,s9 + 13cc: 29813c83 ld s9,664(sp) + 13d0: 2f010113 addi sp,sp,752 + 13d4: 8082 ret + 13d6: 2d413023 sd s4,704(sp) + 13da: 2b513c23 sd s5,696(sp) + 13de: 2b613823 sd s6,688(sp) + tz = 0; + 13e2: 00248693 addi a3,s1,2 + fl = 0; + 13e6: 4e01 li t3,0 + switch (f[0]) { + 13e8: 03f00593 li a1,63 + 13ec: 00004617 auipc a2,0x4 + 13f0: d0460613 addi a2,a2,-764 # 50f0 <_GLOBAL__sub_I__ZSt3cin+0x148> + 13f4: fff6c783 lbu a5,-1(a3) + 13f8: fff68493 addi s1,a3,-1 + 13fc: fe07871b addiw a4,a5,-32 + 1400: 0ff77713 zext.b a4,a4 + 1404: 00e5ec63 bltu a1,a4,141c + 1408: 070a slli a4,a4,0x2 + 140a: 9732 add a4,a4,a2 + 140c: 4318 lw a4,0(a4) + 140e: 9732 add a4,a4,a2 + 1410: 8702 jr a4 + if (f[0] == '*') { + 1412: 0014c783 lbu a5,1(s1) + fl |= STBSP__LEADINGZERO; + 1416: 010e6e13 ori t3,t3,16 + ++f; + 141a: 0485 addi s1,s1,1 + if (f[0] == '*') { + 141c: 02a00713 li a4,42 + 1420: 0ce79163 bne a5,a4,14e2 + fw = va_arg(va, stbsp__uint32); + 1424: 000bab03 lw s6,0(s7) + while ((f[0] >= '0') && (f[0] <= '9')) { + 1428: 0014c783 lbu a5,1(s1) + fw = va_arg(va, stbsp__uint32); + 142c: 0ba1 addi s7,s7,8 + ++f; + 142e: 0485 addi s1,s1,1 + if (f[0] == '.') { + 1430: 02e00713 li a4,46 + pr = -1; + 1434: 58fd li a7,-1 + if (f[0] == '.') { + 1436: 0ee78663 beq a5,a4,1522 + switch (f[0]) { + 143a: 04900713 li a4,73 + 143e: 10e78263 beq a5,a4,1542 + 1442: f987871b addiw a4,a5,-104 + 1446: 0ff77713 zext.b a4,a4 + 144a: 46c9 li a3,18 + 144c: 02e6e063 bltu a3,a4,146c + 1450: 00004697 auipc a3,0x4 + 1454: da068693 addi a3,a3,-608 # 51f0 <_GLOBAL__sub_I__ZSt3cin+0x248> + 1458: 070a slli a4,a4,0x2 + 145a: 9736 add a4,a4,a3 + 145c: 4318 lw a4,0(a4) + 145e: 9736 add a4,a4,a3 + 1460: 8702 jr a4 + if (f[0] == 'h') + 1462: 0014c783 lbu a5,1(s1) + fl |= (sizeof(ptrdiff_t) == 8) ? STBSP__INTMAX : 0; + 1466: 020e6e13 ori t3,t3,32 + ++f; + 146a: 0485 addi s1,s1,1 + switch (f[0]) { + 146c: fbf7871b addiw a4,a5,-65 + 1470: 0ff77713 zext.b a4,a4 + 1474: 03700693 li a3,55 + 1478: 0ee6ea63 bltu a3,a4,156c + 147c: 00004697 auipc a3,0x4 + 1480: dc068693 addi a3,a3,-576 # 523c <_GLOBAL__sub_I__ZSt3cin+0x294> + 1484: 070a slli a4,a4,0x2 + 1486: 9736 add a4,a4,a3 + 1488: 4318 lw a4,0(a4) + 148a: 9736 add a4,a4,a3 + 148c: 8702 jr a4 + fl |= STBSP__METRIC_NOSPACE; + 148e: 400e6e13 ori t3,t3,1024 + continue; + 1492: 0685 addi a3,a3,1 + 1494: b785 j 13f4 + fl |= STBSP__LEFTJUST; + 1496: 001e6e13 ori t3,t3,1 + continue; + 149a: 0685 addi a3,a3,1 + 149c: bfa1 j 13f4 + fl |= STBSP__LEADINGPLUS; + 149e: 002e6e13 ori t3,t3,2 + continue; + 14a2: 0685 addi a3,a3,1 + 14a4: bf81 j 13f4 + fl |= STBSP__TRIPLET_COMMA; + 14a6: 040e6e13 ori t3,t3,64 + continue; + 14aa: 0685 addi a3,a3,1 + 14ac: b7a1 j 13f4 + if (fl & STBSP__METRIC_SUFFIX) { + 14ae: 100e7793 andi a5,t3,256 + 14b2: 8772 mv a4,t3 + 14b4: 56078363 beqz a5,1a1a + if (fl & STBSP__METRIC_1024) { + 14b8: 6785 lui a5,0x1 + 14ba: 034e1513 slli a0,t3,0x34 + 14be: 80078793 addi a5,a5,-2048 # 800 + 14c2: 5c055863 bgez a0,1a92 + fl |= STBSP__METRIC_JEDEC; + 14c6: 6785 lui a5,0x1 + 14c8: 8f5d or a4,a4,a5 + 14ca: 00070e1b sext.w t3,a4 + 14ce: 0685 addi a3,a3,1 + 14d0: b715 j 13f4 + fl |= STBSP__LEADING_0X; + 14d2: 008e6e13 ori t3,t3,8 + continue; + 14d6: 0685 addi a3,a3,1 + 14d8: bf31 j 13f4 + fl |= STBSP__LEADINGSPACE; + 14da: 004e6e13 ori t3,t3,4 + continue; + 14de: 0685 addi a3,a3,1 + 14e0: bf11 j 13f4 + while ((f[0] >= '0') && (f[0] <= '9')) { + 14e2: fd07871b addiw a4,a5,-48 # fd0 <_vscanf_core.constprop.0+0x6a0> + 14e6: 0ff77713 zext.b a4,a4 + 14ea: 4625 li a2,9 + fw = 0; + 14ec: 4b01 li s6,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 14ee: 46a5 li a3,9 + 14f0: f4e660e3 bltu a2,a4,1430 + fw = fw * 10 + f[0] - '0'; + 14f4: 002b171b slliw a4,s6,0x2 + 14f8: 0167073b addw a4,a4,s6 + 14fc: 0017171b slliw a4,a4,0x1 + f++; + 1500: 0485 addi s1,s1,1 + fw = fw * 10 + f[0] - '0'; + 1502: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1504: 0004c783 lbu a5,0(s1) + fw = fw * 10 + f[0] - '0'; + 1508: fd070b1b addiw s6,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 150c: fd07871b addiw a4,a5,-48 + 1510: 0ff77713 zext.b a4,a4 + 1514: fee6f0e3 bgeu a3,a4,14f4 + if (f[0] == '.') { + 1518: 02e00713 li a4,46 + pr = -1; + 151c: 58fd li a7,-1 + if (f[0] == '.') { + 151e: f0e79ee3 bne a5,a4,143a + if (f[0] == '*') { + 1522: 0014c783 lbu a5,1(s1) + 1526: 02a00713 li a4,42 + 152a: 52e79763 bne a5,a4,1a58 + while ((f[0] >= '0') && (f[0] <= '9')) { + 152e: 0024c783 lbu a5,2(s1) + switch (f[0]) { + 1532: 04900713 li a4,73 + pr = va_arg(va, stbsp__uint32); + 1536: 000ba883 lw a7,0(s7) + ++f; + 153a: 0489 addi s1,s1,2 + pr = va_arg(va, stbsp__uint32); + 153c: 0ba1 addi s7,s7,8 + switch (f[0]) { + 153e: f0e792e3 bne a5,a4,1442 + if ((f[1] == '6') && (f[2] == '4')) { + 1542: 0014c783 lbu a5,1(s1) + 1546: 03600713 li a4,54 + 154a: 00e79463 bne a5,a4,1552 + 154e: 1e60106f j 2734 + } else if ((f[1] == '3') && (f[2] == '2')) { + 1552: 03300713 li a4,51 + 1556: 6ae796e3 bne a5,a4,2402 + 155a: 0024c683 lbu a3,2(s1) + 155e: 03200713 li a4,50 + 1562: 00e69463 bne a3,a4,156a + 1566: 0ae0106f j 2614 + ++f; + 156a: 0485 addi s1,s1,1 + *s = f[0]; + 156c: 26f10fa3 sb a5,639(sp) + l = 1; + 1570: 4785 li a5,1 + 1572: d0be sw a5,96(sp) + lead[0] = 0; + 1574: 06010423 sb zero,104(sp) + tail[0] = 0; + 1578: 06010823 sb zero,112(sp) + dp = 0; + 157c: d282 sw zero,100(sp) + 157e: e0de sd s7,64(sp) + 1580: 4701 li a4,0 + 1582: 4301 li t1,0 + 1584: 4f81 li t6,0 + 1586: 4685 li a3,1 + 1588: 4a01 li s4,0 + cs = 0; + 158a: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 158c: 27f10a93 addi s5,sp,639 + fw = fl = 0; + 1590: 4e01 li t3,0 + tz = 0; + 1592: 4881 li a7,0 + if (fl & STBSP__LEADINGZERO) // if leading zeros, everything is in pr + 1594: 010e7793 andi a5,t3,16 + 1598: 40078ee3 beqz a5,21b4 + pr = (fw > pr) ? fw : pr; + 159c: 87ba mv a5,a4 + 159e: 00675363 bge a4,t1,15a4 + 15a2: 879a mv a5,t1 + 15a4: 0007871b sext.w a4,a5 + fw = 0; + 15a8: 4301 li t1,0 + if (fw + pr) { + 15aa: 62070563 beqz a4,1bd4 + sn = lead + 1; + 15ae: 06910793 addi a5,sp,105 + 15b2: fcbe sd a5,120(sp) + while (lead[0]) { + 15b4: 0a0a0863 beqz s4,1664 + stbsp__cb_buf_clamp(i, lead[0]); + 15b8: f026 sd s1,32(sp) + 15ba: f436 sd a3,40(sp) + 15bc: 854a mv a0,s2 + 15be: 86d2 mv a3,s4 + 15c0: 84ce mv s1,s3 + stbsp__chk_cb_buf(1); + 15c2: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 15c6: 89be mv s3,a5 + 15c8: 20000b13 li s6,512 + 15cc: 87a2 mv a5,s0 + 15ce: e846 sd a7,16(sp) + 15d0: 846a mv s0,s10 + 15d2: ec7e sd t6,24(sp) + 15d4: 8d6e mv s10,s11 + 15d6: f872 sd t3,48(sp) + 15d8: 8de6 mv s11,s9 + 15da: 8a3a mv s4,a4 + 15dc: e496 sd t0,72(sp) + 15de: 891a mv s2,t1 + 15e0: 8c9e mv s9,t2 + 15e2: 0006871b sext.w a4,a3 + 15e6: 2e0482e3 beqz s1,20ca + 15ea: 40a7863b subw a2,a5,a0 + 15ee: 40cb083b subw a6,s6,a2 + 15f2: 85c2 mv a1,a6 + 15f4: 01075363 bge a4,a6,15fa + 15f8: 85ba mv a1,a4 + lead[0] -= (char)i; + 15fa: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 15fc: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 1600: 06d10423 sb a3,104(sp) + while (i) { + 1604: c70d beqz a4,162e + 1606: 7866 ld a6,120(sp) + 1608: 02071593 slli a1,a4,0x20 + 160c: 9181 srli a1,a1,0x20 + 160e: 00b78633 add a2,a5,a1 + 1612: 8742 mv a4,a6 + *bf++ = *sn++; + 1614: 00074683 lbu a3,0(a4) + 1618: 0785 addi a5,a5,1 + while (i) { + 161a: 0705 addi a4,a4,1 + *bf++ = *sn++; + 161c: fed78fa3 sb a3,-1(a5) + while (i) { + 1620: fec79ae3 bne a5,a2,1614 + 1624: 982e add a6,a6,a1 + 1626: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 1628: c899 beqz s1,163e + 162a: 40a7863b subw a2,a5,a0 + 162e: 00cbd863 bge s7,a2,163e + 1632: 65a2 ld a1,8(sp) + 1634: 9c31 addw s0,s0,a2 + 1636: 9482 jalr s1 + 1638: 34050ee3 beqz a0,2194 + 163c: 87aa mv a5,a0 + while (lead[0]) { + 163e: 06814683 lbu a3,104(sp) + 1642: f2c5 bnez a3,15e2 + 1644: 83e6 mv t2,s9 + 1646: 68c2 ld a7,16(sp) + 1648: 8cee mv s9,s11 + 164a: 6fe2 ld t6,24(sp) + 164c: 8dea mv s11,s10 + 164e: 76a2 ld a3,40(sp) + 1650: 8d22 mv s10,s0 + 1652: 7e42 ld t3,48(sp) + 1654: 843e mv s0,a5 + 1656: 62a6 ld t0,72(sp) + 1658: 87ce mv a5,s3 + 165a: 89a6 mv s3,s1 + 165c: 7482 ld s1,32(sp) + 165e: 834a mv t1,s2 + 1660: 8752 mv a4,s4 + 1662: 892a mv s2,a0 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 1664: 040e7b13 andi s6,t3,64 + c = cs >> 24; + 1668: 0182d61b srliw a2,t0,0x18 + 166c: 0182db9b srliw s7,t0,0x18 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 1670: 4a01 li s4,0 + 1672: 000b0e63 beqz s6,168e + cs &= 0xffffff; + 1676: 02829a13 slli s4,t0,0x28 + 167a: 028a5a13 srli s4,s4,0x28 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; + 167e: 00ea0a3b addw s4,s4,a4 + 1682: 0016059b addiw a1,a2,1 + 1686: 02ba7a3b remuw s4,s4,a1 + 168a: 41460a3b subw s4,a2,s4 + while (pr > 0) { + 168e: 0ce05763 blez a4,175c + *(stbsp__uint32 *)bf = 0x30303030; + 1692: 30303837 lui a6,0x30303 + 1696: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fb838> + 169a: f026 sd s1,32(sp) + 169c: 854a mv a0,s2 + 169e: 84da mv s1,s6 + 16a0: 895e mv s2,s7 + 16a2: e4d6 sd s5,72(sp) + 16a4: 8b4e mv s6,s3 + 16a6: 8aea mv s5,s10 + stbsp__chk_cb_buf(1); + 16a8: 1fe00293 li t0,510 + 16ac: 8d6e mv s10,s11 + *bf++ = stbsp__comma; + 16ae: 00005f17 auipc t5,0x5 + 16b2: 252f0f13 addi t5,t5,594 # 6900 + 16b6: 8de6 mv s11,s9 + *bf++ = '0'; + 16b8: 03000e93 li t4,48 + 16bc: e846 sd a7,16(sp) + 16be: ec7e sd t6,24(sp) + 16c0: f436 sd a3,40(sp) + 16c2: f872 sd t3,48(sp) + 16c4: e89a sd t1,80(sp) + 16c6: 89ba mv s3,a4 + 16c8: ecbe sd a5,88(sp) + 16ca: 8bc2 mv s7,a6 + 16cc: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, pr); + 16ce: 240b0ee3 beqz s6,212a + 16d2: 40a407b3 sub a5,s0,a0 + 16d6: 40fc063b subw a2,s8,a5 + 16da: 87b2 mv a5,a2 + 16dc: 00c9d363 bge s3,a2,16e2 + 16e0: 87ce mv a5,s3 + 16e2: 0007859b sext.w a1,a5 + pr -= i; + 16e6: 40f989bb subw s3,s3,a5 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 16ea: 32048c63 beqz s1,1a22 + while (i) { + 16ee: 34058a63 beqz a1,1a42 + 16f2: 1582 slli a1,a1,0x20 + *bf++ = stbsp__comma; + 16f4: 0cdf4603 lbu a2,205(t5) + 16f8: 9181 srli a1,a1,0x20 + 16fa: 95a2 add a1,a1,s0 + 16fc: 0405 addi s0,s0,1 + if ((fl & STBSP__TRIPLET_COMMA) && (cs++ == c)) { + 16fe: c481 beqz s1,1706 + 1700: 1d4901e3 beq s2,s4,20c2 + 1704: 2a05 addiw s4,s4,1 + *bf++ = '0'; + 1706: 03000793 li a5,48 + 170a: fef40fa3 sb a5,-1(s0) + while (i) { + 170e: fe8597e3 bne a1,s0,16fc + stbsp__chk_cb_buf(1); + 1712: 320b0b63 beqz s6,1a48 + 1716: 40a5863b subw a2,a1,a0 + 171a: 32c2d763 bge t0,a2,1a48 + 171e: 65a2 ld a1,8(sp) + 1720: 01560abb addw s5,a2,s5 + 1724: 9b02 jalr s6 + 1726: 3a050ce3 beqz a0,22de + 172a: 842a mv s0,a0 + 172c: 1fe00293 li t0,510 + 1730: 00005f17 auipc t5,0x5 + 1734: 1d0f0f13 addi t5,t5,464 # 6900 + 1738: 03000e93 li t4,48 + while (pr > 0) { + 173c: f93049e3 bgtz s3,16ce + while (lead[0]) { + 1740: 83e6 mv t2,s9 + 1742: 68c2 ld a7,16(sp) + 1744: 8cee mv s9,s11 + 1746: 6fe2 ld t6,24(sp) + 1748: 8dea mv s11,s10 + 174a: 7482 ld s1,32(sp) + 174c: 8d56 mv s10,s5 + 174e: 76a2 ld a3,40(sp) + 1750: 7e42 ld t3,48(sp) + 1752: 6346 ld t1,80(sp) + 1754: 67e6 ld a5,88(sp) + 1756: 6aa6 ld s5,72(sp) + 1758: 892a mv s2,a0 + 175a: 89da mv s3,s6 + 175c: 06814a03 lbu s4,104(sp) + sn = lead + 1; + 1760: fcbe sd a5,120(sp) + while (lead[0]) { + 1762: 0a0a0263 beqz s4,1806 + stbsp__cb_buf_clamp(i, lead[0]); + 1766: ec26 sd s1,24(sp) + 1768: f036 sd a3,32(sp) + 176a: 854a mv a0,s2 + 176c: 86d2 mv a3,s4 + 176e: 84ce mv s1,s3 + 1770: 87a2 mv a5,s0 + stbsp__chk_cb_buf(1); + 1772: 1fe00b93 li s7,510 + stbsp__cb_buf_clamp(i, lead[0]); + 1776: 846a mv s0,s10 + 1778: 20000b13 li s6,512 + 177c: 8d6e mv s10,s11 + 177e: e846 sd a7,16(sp) + 1780: 8de6 mv s11,s9 + 1782: 8a7e mv s4,t6 + 1784: 8972 mv s2,t3 + 1786: 899a mv s3,t1 + 1788: 8c9e mv s9,t2 + 178a: 0006871b sext.w a4,a3 + 178e: 140482e3 beqz s1,20d2 + 1792: 40a7863b subw a2,a5,a0 + 1796: 40cb083b subw a6,s6,a2 + 179a: 85c2 mv a1,a6 + 179c: 01075363 bge a4,a6,17a2 + 17a0: 85ba mv a1,a4 + lead[0] -= (char)i; + 17a2: 9e8d subw a3,a3,a1 + stbsp__cb_buf_clamp(i, lead[0]); + 17a4: 0005871b sext.w a4,a1 + lead[0] -= (char)i; + 17a8: 06d10423 sb a3,104(sp) + while (i) { + 17ac: c70d beqz a4,17d6 + 17ae: 7866 ld a6,120(sp) + 17b0: 02071593 slli a1,a4,0x20 + 17b4: 9181 srli a1,a1,0x20 + 17b6: 00b78633 add a2,a5,a1 + 17ba: 8742 mv a4,a6 + *bf++ = *sn++; + 17bc: 00074683 lbu a3,0(a4) + 17c0: 0785 addi a5,a5,1 + while (i) { + 17c2: 0705 addi a4,a4,1 + *bf++ = *sn++; + 17c4: fed78fa3 sb a3,-1(a5) + while (i) { + 17c8: fec79ae3 bne a5,a2,17bc + 17cc: 982e add a6,a6,a1 + 17ce: fcc2 sd a6,120(sp) + stbsp__chk_cb_buf(1); + 17d0: c899 beqz s1,17e6 + 17d2: 40a7863b subw a2,a5,a0 + 17d6: 00cbd863 bge s7,a2,17e6 + 17da: 65a2 ld a1,8(sp) + 17dc: 9c31 addw s0,s0,a2 + 17de: 9482 jalr s1 + 17e0: 1a050ae3 beqz a0,2194 + 17e4: 87aa mv a5,a0 + while (lead[0]) { + 17e6: 06814683 lbu a3,104(sp) + 17ea: f2c5 bnez a3,178a + 17ec: 834e mv t1,s3 + 17ee: 68c2 ld a7,16(sp) + 17f0: 89a6 mv s3,s1 + 17f2: 7682 ld a3,32(sp) + 17f4: 64e2 ld s1,24(sp) + 17f6: 8e4a mv t3,s2 + 17f8: 83e6 mv t2,s9 + 17fa: 8fd2 mv t6,s4 + 17fc: 8cee mv s9,s11 + 17fe: 892a mv s2,a0 + 1800: 8dea mv s11,s10 + 1802: 8d22 mv s10,s0 + 1804: 843e mv s0,a5 + while (n) { + 1806: c6f9 beqz a3,18d4 + STBSP__UNALIGNED(while (i >= 4) { + 1808: ec26 sd s1,24(sp) + 180a: 854a mv a0,s2 + 180c: 84d6 mv s1,s5 + 180e: 896a mv s2,s10 + 1810: 87a2 mv a5,s0 + 1812: 8d6e mv s10,s11 + stbsp__chk_cb_buf(1); + 1814: 1fe00b93 li s7,510 + STBSP__UNALIGNED(while (i >= 4) { + 1818: 8de6 mv s11,s9 + stbsp__cb_buf_clamp(i, n); + 181a: 20000b13 li s6,512 + STBSP__UNALIGNED(while (i >= 4) { + 181e: 4a0d li s4,3 + 1820: e87e sd t6,16(sp) + 1822: f072 sd t3,32(sp) + 1824: 8ac6 mv s5,a7 + 1826: f41a sd t1,40(sp) + 1828: 8436 mv s0,a3 + 182a: 8c9e mv s9,t2 + stbsp__cb_buf_clamp(i, n); + 182c: 0004071b sext.w a4,s0 + 1830: 100982e3 beqz s3,2134 + 1834: 40a78633 sub a2,a5,a0 + 1838: 40cb05bb subw a1,s6,a2 + 183c: 862e mv a2,a1 + 183e: 00b75363 bge a4,a1,1844 + 1842: 863a mv a2,a4 + 1844: 0006071b sext.w a4,a2 + n -= i; + 1848: 9c11 subw s0,s0,a2 + STBSP__UNALIGNED(while (i >= 4) { + 184a: 14ea50e3 bge s4,a4,218a + 184e: ffc70f1b addiw t5,a4,-4 + 1852: 002f5e9b srliw t4,t5,0x2 + 1856: 001e8e1b addiw t3,t4,1 + 185a: 0e0a slli t3,t3,0x2 + 185c: 01c785b3 add a1,a5,t3 + 1860: 8626 mv a2,s1 + 1862: 4218 lw a4,0(a2) + 1864: 0791 addi a5,a5,4 + 1866: 0611 addi a2,a2,4 + 1868: 2701 sext.w a4,a4 + 186a: fee7ae23 sw a4,-4(a5) + 186e: feb79ae3 bne a5,a1,1862 + 1872: 002e9e9b slliw t4,t4,0x2 + 1876: 41df073b subw a4,t5,t4 + while (i) { + 187a: 94f2 add s1,s1,t3 + 187c: c31d beqz a4,18a2 + 187e: 8626 mv a2,s1 + 1880: 87ae mv a5,a1 + 1882: 00e58f3b addw t5,a1,a4 + *bf++ = *s++; + 1886: 00064e83 lbu t4,0(a2) + 188a: 0785 addi a5,a5,1 + while (i) { + 188c: 00078e1b sext.w t3,a5 + *bf++ = *s++; + 1890: ffd78fa3 sb t4,-1(a5) + 1894: 0605 addi a2,a2,1 + while (i) { + 1896: ffcf18e3 bne t5,t3,1886 + 189a: 1702 slli a4,a4,0x20 + 189c: 9301 srli a4,a4,0x20 + 189e: 95ba add a1,a1,a4 + 18a0: 94ba add s1,s1,a4 + stbsp__chk_cb_buf(1); + 18a2: 1a098763 beqz s3,1a50 + 18a6: 40a5863b subw a2,a1,a0 + 18aa: 1acbd363 bge s7,a2,1a50 + 18ae: 65a2 ld a1,8(sp) + 18b0: 0126093b addw s2,a2,s2 + 18b4: 9982 jalr s3 + 18b6: 20050be3 beqz a0,22cc + 18ba: 87aa mv a5,a0 + while (n) { + 18bc: f825 bnez s0,182c + 18be: 6fc2 ld t6,16(sp) + 18c0: 64e2 ld s1,24(sp) + 18c2: 7e02 ld t3,32(sp) + 18c4: 7322 ld t1,40(sp) + 18c6: 83e6 mv t2,s9 + 18c8: 88d6 mv a7,s5 + 18ca: 8cee mv s9,s11 + 18cc: 843e mv s0,a5 + 18ce: 8dea mv s11,s10 + 18d0: 8d4a mv s10,s2 + 18d2: 892a mv s2,a0 + while (tz) { + 18d4: 08088863 beqz a7,1964 + *(stbsp__uint32 *)bf = 0x30303030; + 18d8: 30303b37 lui s6,0x30303 + *bf++ = '0'; + 18dc: 03000a13 li s4,48 + while (i >= 4) { + 18e0: 4a8d li s5,3 + stbsp__chk_cb_buf(1); + 18e2: 1fe00693 li a3,510 + *(stbsp__uint32 *)bf = 0x30303030; + 18e6: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fb838> + stbsp__cb_buf_clamp(i, tz); + 18ea: 20000b93 li s7,512 + 18ee: 040989e3 beqz s3,2140 + 18f2: 41240633 sub a2,s0,s2 + 18f6: 40cb87bb subw a5,s7,a2 + 18fa: 873e mv a4,a5 + 18fc: 00f8d363 bge a7,a5,1902 + 1900: 8746 mv a4,a7 + 1902: 0007079b sext.w a5,a4 + tz -= i; + 1906: 40e888bb subw a7,a7,a4 + while (i) { + 190a: 08078ee3 beqz a5,21a6 + if ((((stbsp__uintptr)bf) & 3) == 0) + 190e: 00347713 andi a4,s0,3 + 1912: e719 bnez a4,1920 + 1914: 0390006f j 214c + 1918: 00347713 andi a4,s0,3 + 191c: 7a070f63 beqz a4,20da + *bf++ = '0'; + 1920: 01440023 sb s4,0(s0) + --i; + 1924: 37fd addiw a5,a5,-1 + *bf++ = '0'; + 1926: 0405 addi s0,s0,1 + while (i) { + 1928: fbe5 bnez a5,1918 + stbsp__chk_cb_buf(1); + 192a: 02098b63 beqz s3,1960 + 192e: 4124063b subw a2,s0,s2 + 1932: 02c6d763 bge a3,a2,1960 + 1936: 65a2 ld a1,8(sp) + 1938: 854a mv a0,s2 + 193a: f81e sd t2,48(sp) + 193c: f41a sd t1,40(sp) + 193e: f072 sd t3,32(sp) + 1940: ec7e sd t6,24(sp) + 1942: e846 sd a7,16(sp) + 1944: 00cd0d3b addw s10,s10,a2 + 1948: 9982 jalr s3 + 194a: 892a mv s2,a0 + 194c: 1a0502e3 beqz a0,22f0 + 1950: 73c2 ld t2,48(sp) + 1952: 7322 ld t1,40(sp) + 1954: 7e02 ld t3,32(sp) + 1956: 6fe2 ld t6,24(sp) + 1958: 68c2 ld a7,16(sp) + 195a: 842a mv s0,a0 + 195c: 1fe00693 li a3,510 + while (tz) { + 1960: f80897e3 bnez a7,18ee + sn = tail + 1; + 1964: 07110793 addi a5,sp,113 + 1968: fcbe sd a5,120(sp) + while (tail[0]) { + 196a: 080f8763 beqz t6,19f8 + stbsp__cb_buf_clamp(i, tail[0]); + 196e: 854a mv a0,s2 + 1970: 8b6a mv s6,s10 + stbsp__chk_cb_buf(1); + 1972: 1fe00a93 li s5,510 + stbsp__cb_buf_clamp(i, tail[0]); + 1976: 8d4e mv s10,s3 + 1978: 20000a13 li s4,512 + 197c: 8bf2 mv s7,t3 + 197e: 891a mv s2,t1 + 1980: 899e mv s3,t2 + 1982: 000f879b sext.w a5,t6 + 1986: 7c0d0863 beqz s10,2156 + 198a: 40a4063b subw a2,s0,a0 + 198e: 40ca06bb subw a3,s4,a2 + 1992: 8736 mv a4,a3 + 1994: 00d7d363 bge a5,a3,199a + 1998: 873e mv a4,a5 + tail[0] -= (char)i; + 199a: 40ef8fbb subw t6,t6,a4 + stbsp__cb_buf_clamp(i, tail[0]); + 199e: 0007079b sext.w a5,a4 + tail[0] -= (char)i; + 19a2: 07f10823 sb t6,112(sp) + while (i) { + 19a6: c795 beqz a5,19d2 + 19a8: 75e6 ld a1,120(sp) + 19aa: 02079613 slli a2,a5,0x20 + 19ae: 9201 srli a2,a2,0x20 + 19b0: 00c406b3 add a3,s0,a2 + 19b4: 87ae mv a5,a1 + *bf++ = *sn++; + 19b6: 0007c703 lbu a4,0(a5) + 19ba: 0405 addi s0,s0,1 + while (i) { + 19bc: 0785 addi a5,a5,1 + *bf++ = *sn++; + 19be: fee40fa3 sb a4,-1(s0) + while (i) { + 19c2: fed41ae3 bne s0,a3,19b6 + 19c6: 95b2 add a1,a1,a2 + 19c8: fcae sd a1,120(sp) + stbsp__chk_cb_buf(1); + 19ca: 000d0d63 beqz s10,19e4 + 19ce: 40a4063b subw a2,s0,a0 + 19d2: 00cad963 bge s5,a2,19e4 + 19d6: 65a2 ld a1,8(sp) + 19d8: 00cb0b3b addw s6,s6,a2 + 19dc: 9d02 jalr s10 + 19de: 200509e3 beqz a0,23f0 + 19e2: 842a mv s0,a0 + while (tail[0]) { + 19e4: 07014f83 lbu t6,112(sp) + 19e8: f80f9de3 bnez t6,1982 + 19ec: 834a mv t1,s2 + 19ee: 83ce mv t2,s3 + 19f0: 8e5e mv t3,s7 + 19f2: 89ea mv s3,s10 + 19f4: 892a mv s2,a0 + 19f6: 8d5a mv s10,s6 + if (fl & STBSP__LEFTJUST) + 19f8: 001e7e13 andi t3,t3,1 + 19fc: 000e0663 beqz t3,1a08 + if (fw > 0) { + 1a00: 00605463 blez t1,1a08 + 1a04: 0300106f j 2a34 + for (;;) { + 1a08: 6b86 ld s7,64(sp) + 1a0a: 2c013a03 ld s4,704(sp) + 1a0e: 2b813a83 ld s5,696(sp) + 1a12: 2b013b03 ld s6,688(sp) + ++f; + 1a16: 0485 addi s1,s1,1 + for (;;) { + 1a18: b0f1 j 12e4 + fl |= STBSP__METRIC_SUFFIX; + 1a1a: 100e6e13 ori t3,t3,256 + continue; + 1a1e: 0685 addi a3,a3,1 + 1a20: bad1 j 13f4 + while (i) { + 1a22: 0e0580e3 beqz a1,2302 + if ((((stbsp__uintptr)bf) & 3) == 0) + 1a26: 00347793 andi a5,s0,3 + 1a2a: e799 bnez a5,1a38 + 1a2c: 0dd0006f j 2308 + 1a30: 00347793 andi a5,s0,3 + 1a34: 72078463 beqz a5,215c + *bf++ = '0'; + 1a38: 01d40023 sb t4,0(s0) + --i; + 1a3c: 35fd addiw a1,a1,-1 + *bf++ = '0'; + 1a3e: 0405 addi s0,s0,1 + while (i) { + 1a40: f9e5 bnez a1,1a30 + while (i) { + 1a42: 85a2 mv a1,s0 + stbsp__chk_cb_buf(1); + 1a44: cc0b19e3 bnez s6,1716 + 1a48: 842e mv s0,a1 + while (pr > 0) { + 1a4a: c93042e3 bgtz s3,16ce + 1a4e: b9cd j 1740 + while (i) { + 1a50: 87ae mv a5,a1 + while (n) { + 1a52: dc041de3 bnez s0,182c + 1a56: b5a5 j 18be + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a58: fd07871b addiw a4,a5,-48 + 1a5c: 0ff77713 zext.b a4,a4 + 1a60: 4625 li a2,9 + ++f; + 1a62: 0485 addi s1,s1,1 + pr = 0; + 1a64: 4881 li a7,0 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a66: 46a5 li a3,9 + 1a68: 9ce669e3 bltu a2,a4,143a + pr = pr * 10 + f[0] - '0'; + 1a6c: 0028971b slliw a4,a7,0x2 + 1a70: 0117073b addw a4,a4,a7 + 1a74: 0017171b slliw a4,a4,0x1 + f++; + 1a78: 0485 addi s1,s1,1 + pr = pr * 10 + f[0] - '0'; + 1a7a: 9f3d addw a4,a4,a5 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a7c: 0004c783 lbu a5,0(s1) + pr = pr * 10 + f[0] - '0'; + 1a80: fd07089b addiw a7,a4,-48 + while ((f[0] >= '0') && (f[0] <= '9')) { + 1a84: fd07871b addiw a4,a5,-48 + 1a88: 0ff77713 zext.b a4,a4 + 1a8c: fee6f0e3 bgeu a3,a4,1a6c + 1a90: b26d j 143a + fl |= STBSP__METRIC_1024; + 1a92: 8f5d or a4,a4,a5 + 1a94: 00070e1b sext.w t3,a4 + 1a98: 0685 addi a3,a3,1 + 1a9a: baa9 j 13f4 + *bf = 0; + 1a9c: 00040023 sb zero,0(s0) + 1aa0: b209 j 13a2 + if (f[0] == 'l') { + 1aa2: 0014c783 lbu a5,1(s1) + 1aa6: 06c00713 li a4,108 + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 1aaa: 020e6e13 ori t3,t3,32 + if (f[0] == 'l') { + 1aae: 00e78c63 beq a5,a4,1ac6 + ++f; + 1ab2: 0485 addi s1,s1,1 + 1ab4: ba65 j 146c + if (f[0] == 'h') + 1ab6: 0014c783 lbu a5,1(s1) + 1aba: 06800713 li a4,104 + fl |= STBSP__HALFWIDTH; + 1abe: 200e6e13 ori t3,t3,512 + if (f[0] == 'h') + 1ac2: fee798e3 bne a5,a4,1ab2 + if ((f[1] == '6') && (f[2] == '4')) { + 1ac6: 0024c783 lbu a5,2(s1) + ++f; + 1aca: 0489 addi s1,s1,2 + 1acc: b245 j 146c + s = va_arg(va, char *); + 1ace: 008b8713 addi a4,s7,8 + 1ad2: e0ba sd a4,64(sp) + if (fl & STBSP__INTMAX) { + 1ad4: 020e7693 andi a3,t3,32 + 1ad8: 8772 mv a4,t3 + 1ada: 24069ee3 bnez a3,2536 + stbsp__int32 i = va_arg(va, stbsp__int32); + 1ade: 000ba683 lw a3,0(s7) + if ((f[0] != 'u') && (i < 0)) { + 1ae2: 07500613 li a2,117 + n64 = (stbsp__uint32)i; + 1ae6: 02069f13 slli t5,a3,0x20 + 1aea: 020f5f13 srli t5,t5,0x20 + if ((f[0] != 'u') && (i < 0)) { + 1aee: 00c78a63 beq a5,a2,1b02 + 1af2: 0006d863 bgez a3,1b02 + fl |= STBSP__NEGATIVE; + 1af6: 08076713 ori a4,a4,128 + n64 = (stbsp__uint32)-i; + 1afa: 40d00f3b negw t5,a3 + fl |= STBSP__NEGATIVE; + 1afe: 00070e1b sext.w t3,a4 + if (fl & STBSP__METRIC_SUFFIX) { + 1b02: 100e7693 andi a3,t3,256 + 1b06: 5c0683e3 beqz a3,28cc + if (n64 < 1024) + 1b0a: 3ff00793 li a5,1023 + 1b0e: 01e7e463 bltu a5,t5,1b16 + 1b12: 0ea0106f j 2bfc + else if (pr == -1) + 1b16: 57fd li a5,-1 + 1b18: 30f887e3 beq a7,a5,2626 + fv = (double)(stbsp__int64)n64; + 1b1c: d22f7553 fcvt.d.l fa0,t5 + if (fl & STBSP__METRIC_1024) + 1b20: 034e1793 slli a5,t3,0x34 + 1b24: 0007c463 bltz a5,1b2c + 1b28: 2300106f j 2d58 + divisor = 1024.0; + 1b2c: 00004797 auipc a5,0x4 + 1b30: cb47b787 fld fa5,-844(a5) # 57e0 + if ((fv < divisor) && (fv > -divisor)) + 1b34: 22f79753 fneg.d fa4,fa5 + fl += 0x1000000; + 1b38: 010006b7 lui a3,0x1000 + while (fl < 0x4000000) { + 1b3c: 04000737 lui a4,0x4000 + if ((fv < divisor) && (fv > -divisor)) + 1b40: a2f517d3 flt.d a5,fa0,fa5 + 1b44: c789 beqz a5,1b4e + 1b46: a2a717d3 flt.d a5,fa4,fa0 + 1b4a: 3e079863 bnez a5,1f3a + fl += 0x1000000; + 1b4e: 01c68e3b addw t3,a3,t3 + fv /= divisor; + 1b52: 1af57553 fdiv.d fa0,fa0,fa5 + while (fl < 0x4000000) { + 1b56: feee65e3 bltu t3,a4,1b40 + 1b5a: a6c5 j 1f3a + h = (f[0] == 'X') ? hexu : hex; + 1b5c: 05800693 li a3,88 + if (fl & STBSP__INTMAX) { + 1b60: 020e7713 andi a4,t3,32 + h = (f[0] == 'X') ? hexu : hex; + 1b64: 00005817 auipc a6,0x5 + 1b68: e8480813 addi a6,a6,-380 # 69e8 + 1b6c: 00d79663 bne a5,a3,1b78 + 1b70: 00005817 auipc a6,0x5 + 1b74: e6080813 addi a6,a6,-416 # 69d0 + l = (4 << 4) | (4 << 8); + 1b78: 44000793 li a5,1088 + 1b7c: d0be sw a5,96(sp) + if (fl & STBSP__LEADING_0X) { + 1b7e: 008e7793 andi a5,t3,8 + 1b82: 7a079263 bnez a5,2326 + lead[0] = 0; + 1b86: 06010423 sb zero,104(sp) + s = va_arg(va, char *); + 1b8a: 008b8793 addi a5,s7,8 + 1b8e: e0be sd a5,64(sp) + if (fl & STBSP__INTMAX) + 1b90: 72070b63 beqz a4,22c6 + n64 = va_arg(va, stbsp__uint64); + 1b94: 000bb683 ld a3,0(s7) + dp = 0; + 1b98: d282 sw zero,100(sp) + tail[0] = 0; + 1b9a: 06010823 sb zero,112(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1b9e: 001e7513 andi a0,t3,1 + if (n64 == 0) { + 1ba2: 380694e3 bnez a3,272a + lead[0] = 0; + 1ba6: 06010423 sb zero,104(sp) + if (pr == 0) { + 1baa: 78089a63 bnez a7,233e + if (fw < (stbsp__int32)n) + 1bae: fffb4313 not t1,s6 + 1bb2: 43f35313 srai t1,t1,0x3f + l = 0; + 1bb6: d082 sw zero,96(sp) + if (fw < (stbsp__int32)n) + 1bb8: 01637333 and t1,t1,s6 + goto scopy; + 1bbc: 4701 li a4,0 + 1bbe: 4f81 li t6,0 + 1bc0: 4a01 li s4,0 + cs = 0; + 1bc2: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 1bc4: 28010a93 addi s5,sp,640 + if ((fl & STBSP__LEFTJUST) == 0) { + 1bc8: 9c0506e3 beqz a0,1594 + if (fw + pr) { + 1bcc: 00e307bb addw a5,t1,a4 + 1bd0: 9c079fe3 bnez a5,15ae + 1bd4: 06910793 addi a5,sp,105 + 1bd8: b661 j 1760 + h = (f[0] == 'E') ? hexu : hex; + 1bda: 04500713 li a4,69 + 1bde: 00005317 auipc t1,0x5 + 1be2: e0a30313 addi t1,t1,-502 # 69e8 + 1be6: 1ce78ae3 beq a5,a4,25ba + fv = va_arg(va, double); + 1bea: 008b8713 addi a4,s7,8 + if (pr == -1) + 1bee: 57fd li a5,-1 + fv = va_arg(va, double); + 1bf0: e0ba sd a4,64(sp) + 1bf2: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1bf6: 1af88ce3 beq a7,a5,25ae + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1bfa: 80000737 lui a4,0x80000 + 1bfe: 00e8e733 or a4,a7,a4 + 1c02: 2701 sext.w a4,a4 + 1c04: 10d4 addi a3,sp,100 + 1c06: 0110 addi a2,sp,128 + 1c08: 108c addi a1,sp,96 + 1c0a: 18a8 addi a0,sp,120 + 1c0c: f41e sd t2,40(sp) + 1c0e: f01a sd t1,32(sp) + 1c10: ec72 sd t3,24(sp) + 1c12: e846 sd a7,16(sp) + 1c14: d8efe0ef jal 1a2 + 1c18: 68c2 ld a7,16(sp) + 1c1a: 6e62 ld t3,24(sp) + 1c1c: 7302 ld t1,32(sp) + 1c1e: 73a2 ld t2,40(sp) + if (dp == STBSP__SPECIAL) { + 1c20: 5796 lw a5,100(sp) + s = (char *)sn; + 1c22: 7ae6 ld s5,120(sp) + if ((l - 1) > (stbsp__uint32)pr) + 1c24: 5686 lw a3,96(sp) + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) + 1c26: 3c0511e3 bnez a0,27e8 + tail[0] = 0; + 1c2a: 06010823 sb zero,112(sp) + sign[0] = 0; + 1c2e: 06010423 sb zero,104(sp) + } else if (fl & STBSP__LEADINGSPACE) { + 1c32: 004e7713 andi a4,t3,4 + 1c36: 6a070ee3 beqz a4,2af2 + sign[0] = 1; + 1c3a: 6709 lui a4,0x2 + 1c3c: 0705 addi a4,a4,1 # 2001 + 1c3e: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1c42: 671d lui a4,0x7 + 1c44: 1ee794e3 bne a5,a4,262c + if (pr < (stbsp__int32)l) + 1c48: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1c4c: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 1c50: fff7c793 not a5,a5 + n = pr + lead[0] + tail[0] + tz; + 1c54: 07014f83 lbu t6,112(sp) + if (pr < (stbsp__int32)l) + 1c58: 97fd srai a5,a5,0x3f + 1c5a: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 1c5c: 00fa073b addw a4,s4,a5 + 1c60: 01f7063b addw a2,a4,t6 + 1c64: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1c66: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 1c6a: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 1c6c: 835a mv t1,s6 + 1c6e: 00cb5363 bge s6,a2,1c74 + 1c72: 8332 mv t1,a2 + fw -= n; + 1c74: 40e3033b subw t1,t1,a4 + cs = 0; + 1c78: 4281 li t0,0 + pr -= l; + 1c7a: 40d7873b subw a4,a5,a3 + tz = 0; + 1c7e: 4881 li a7,0 + goto scopy; + 1c80: b7a1 j 1bc8 + h = (f[0] == 'G') ? hexu : hex; + 1c82: 04700713 li a4,71 + 1c86: 00005317 auipc t1,0x5 + 1c8a: d6230313 addi t1,t1,-670 # 69e8 + 1c8e: 14e783e3 beq a5,a4,25d4 + fv = va_arg(va, double); + 1c92: 008b8713 addi a4,s7,8 + if (pr == -1) + 1c96: 57fd li a5,-1 + fv = va_arg(va, double); + 1c98: e0ba sd a4,64(sp) + 1c9a: 000bb507 fld fa0,0(s7) + if (pr == -1) + 1c9e: 12f884e3 beq a7,a5,25c6 + else if (pr == 0) + 1ca2: 6e0887e3 beqz a7,2b90 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1ca6: fff8871b addiw a4,a7,-1 + 1caa: 800007b7 lui a5,0x80000 + 1cae: 8f5d or a4,a4,a5 + 1cb0: 2701 sext.w a4,a4 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 1cb2: 00088a9b sext.w s5,a7 + 1cb6: 8a46 mv s4,a7 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) + 1cb8: 10d4 addi a3,sp,100 + 1cba: 0110 addi a2,sp,128 + 1cbc: 108c addi a1,sp,96 + 1cbe: 18a8 addi a0,sp,120 + 1cc0: f01e sd t2,32(sp) + 1cc2: ec1a sd t1,24(sp) + 1cc4: e872 sd t3,16(sp) + 1cc6: cdcfe0ef jal 1a2 + 1cca: 6e42 ld t3,16(sp) + 1ccc: 6362 ld t1,24(sp) + 1cce: 7382 ld t2,32(sp) + 1cd0: 4281 li t0,0 + 1cd2: c509 beqz a0,1cdc + fl |= STBSP__NEGATIVE; + 1cd4: 080e6e13 ori t3,t3,128 + 1cd8: 08000293 li t0,128 + if (l > (stbsp__uint32)pr) + 1cdc: 5806 lw a6,96(sp) + 1cde: 010af463 bgeu s5,a6,1ce6 + l = pr; + 1ce2: d0d6 sw s5,96(sp) + 1ce4: 8856 mv a6,s5 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1ce6: 4705 li a4,1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1ce8: 5796 lw a5,100(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1cea: 01076463 bltu a4,a6,1cf2 + 1cee: 1800106f j 2e6e + 1cf2: 7be6 ld s7,120(sp) + 1cf4: fff8071b addiw a4,a6,-1 + 1cf8: 1702 slli a4,a4,0x20 + 1cfa: 9301 srli a4,a4,0x20 + 1cfc: 001a0e9b addiw t4,s4,1 + 1d00: 75e2 ld a1,56(sp) + 1d02: 8ade mv s5,s7 + 1d04: 975e add a4,a4,s7 + 1d06: 410e8ebb subw t4,t4,a6 + 1d0a: 88d2 mv a7,s4 + 1d0c: 86c2 mv a3,a6 + 1d0e: 4f01 li t5,0 + 1d10: 03000f93 li t6,48 + 1d14: e842 sd a6,16(sp) + 1d16: a809 j 1d28 + --pr; + 1d18: 38fd addiw a7,a7,-1 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d1a: 211e80e3 beq t4,a7,271a + 1d1e: 177d addi a4,a4,-1 # 6fff <_stdout+0x1df> + 1d20: 4f05 li t5,1 + 1d22: 1e088ce3 beqz a7,271a + --l; + 1d26: 85b6 mv a1,a3 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 1d28: 00074803 lbu a6,0(a4) + 1d2c: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff8807> + 1d30: 0006851b sext.w a0,a3 + 1d34: 2581 sext.w a1,a1 + 1d36: 0006069b sext.w a3,a2 + 1d3a: fdf80fe3 beq a6,t6,1d18 + 1d3e: 6842 ld a6,16(sp) + 1d40: fc2e sd a1,56(sp) + 1d42: 86c2 mv a3,a6 + 1d44: 000f0463 beqz t5,1d4c + 1d48: d0ae sw a1,96(sp) + 1d4a: 86ae mv a3,a1 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 1d4c: 5775 li a4,-3 + 1d4e: 08e7cee3 blt a5,a4,25ea + 1d52: 08fa4be3 blt s4,a5,25e8 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1d56: 0005071b sext.w a4,a0 + if (dp > 0) { + 1d5a: 7ef057e3 blez a5,2d48 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 1d5e: 4881 li a7,0 + 1d60: 00e7d463 bge a5,a4,1d68 + 1d64: 40f508bb subw a7,a0,a5 + tail[0] = 0; + 1d68: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 1d6c: 20029463 bnez t0,1f74 + } else if (fl & STBSP__LEADINGSPACE) { + 1d70: 004e7713 andi a4,t3,4 + 1d74: 000715e3 bnez a4,257e + } else if (fl & STBSP__LEADINGPLUS) { + 1d78: 002e7713 andi a4,t3,2 + 1d7c: 660719e3 bnez a4,2bee + sign[0] = 0; + 1d80: 06010423 sb zero,104(sp) + 1d84: aaed j 1f7e + h = (f[0] == 'A') ? hexu : hex; + 1d86: 04100713 li a4,65 + 1d8a: 00005597 auipc a1,0x5 + 1d8e: c5e58593 addi a1,a1,-930 # 69e8 + 1d92: 00e783e3 beq a5,a4,2598 + fv = va_arg(va, double); + 1d96: 008b8693 addi a3,s7,8 + if (pr == -1) + 1d9a: 577d li a4,-1 + fv = va_arg(va, double); + 1d9c: e0b6 sd a3,64(sp) + 1d9e: 000bb783 ld a5,0(s7) + if (pr == -1) + 1da2: 7ee88963 beq a7,a4,2594 + d = value; + + STBSP__COPYFP(b, d); + + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1da6: 4347d613 srai a2,a5,0x34 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1daa: 00c79513 slli a0,a5,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1dae: 7ff67613 andi a2,a2,2047 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 1db2: 8131 srli a0,a0,0xc + *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); + 1db4: c016061b addiw a2,a2,-1023 + if (stbsp__real_to_parts((stbsp__int64 *)&n64, &dp, fv)) + 1db8: 7a07c863 bltz a5,2568 + } else if (fl & STBSP__LEADINGSPACE) { + 1dbc: 004e7793 andi a5,t3,4 + 1dc0: 60078ee3 beqz a5,2bdc + 1dc4: 6789 lui a5,0x2 + 1dc6: 2785 addiw a5,a5,1 # 2001 + sign[0] = 1; + 1dc8: 06f11423 sh a5,104(sp) + 1dcc: 468d li a3,3 + 1dce: 4a0d li s4,3 + 1dd0: 4809 li a6,2 + n64 |= (((stbsp__uint64)1) << 52); + 1dd2: 4705 li a4,1 + 1dd4: 1752 slli a4,a4,0x34 + if (dp == -1023) + 1dd6: c0100793 li a5,-1023 + n64 |= (((stbsp__uint64)1) << 52); + 1dda: 8f49 or a4,a4,a0 + if (dp == -1023) + 1ddc: 5cf600e3 beq a2,a5,2b9c + if (pr < 15) + 1de0: 4539 li a0,14 + n64 <<= (64 - 56); + 1de2: 00871793 slli a5,a4,0x8 + if (pr < 15) + 1de6: 251546e3 blt a0,a7,2832 + n64 += ((((stbsp__uint64)8) << 56) >> (pr * 4)); + 1dea: 4705 li a4,1 + 1dec: 0028951b slliw a0,a7,0x2 + 1df0: 176e slli a4,a4,0x3b + 1df2: 00a75733 srl a4,a4,a0 + 1df6: 973e add a4,a4,a5 + *s++ = h[(n64 >> 60) & 15]; + 1df8: 03c75793 srli a5,a4,0x3c + 1dfc: 97ae add a5,a5,a1 + 1dfe: 0007c503 lbu a0,0(a5) + lead[1 + lead[0]] = '0'; + 1e02: 22080793 addi a5,a6,544 + 1e06: 06010813 addi a6,sp,96 + 1e0a: 97c2 add a5,a5,a6 + 1e0c: 03000813 li a6,48 + 1e10: df078423 sb a6,-536(a5) + lead[2 + lead[0]] = 'x'; + 1e14: 22068793 addi a5,a3,544 + 1e18: 1094 addi a3,sp,96 + 1e1a: 96be add a3,a3,a5 + 1e1c: 07800793 li a5,120 + 1e20: def68423 sb a5,-536(a3) + lead[0] += 2; + 1e24: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 1e28: 0ca10023 sb a0,192(sp) + if (pr) + 1e2c: 740893e3 bnez a7,2d72 + sn = s; + 1e30: 0c110793 addi a5,sp,193 + 1e34: fcbe sd a5,120(sp) + 1e36: 4701 li a4,0 + 1e38: 4501 li a0,0 + 1e3a: 4305 li t1,1 + 1e3c: 4685 li a3,1 + tail[1] = h[17]; + 1e3e: 0115c583 lbu a1,17(a1) + tail[2] = '+'; + 1e42: 02b00793 li a5,43 + tail[1] = h[17]; + 1e46: 06b108a3 sb a1,113(sp) + if (dp < 0) { + 1e4a: 00065663 bgez a2,1e56 + dp = -dp; + 1e4e: 40c0063b negw a2,a2 + tail[2] = '-'; + 1e52: 02d00793 li a5,45 + tail[n] = '0' + dp % 10; + 1e56: 4829 li a6,10 + 1e58: 030665bb remw a1,a2,a6 + 1e5c: 06f10923 sb a5,114(sp) + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1e60: 3e700e93 li t4,999 + tail[n] = '0' + dp % 10; + 1e64: 0305859b addiw a1,a1,48 + 1e68: 0ff5f593 zext.b a1,a1 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 1e6c: 18cec3e3 blt t4,a2,27f2 + 1e70: 06300e93 li t4,99 + 1e74: 54cec1e3 blt t4,a2,2bb6 + 1e78: 4ea5 li t4,9 + 1e7a: 72ced6e3 bge t4,a2,2da6 + dp /= 10; + 1e7e: 030647bb divw a5,a2,a6 + tail[0] = (char)n; + 1e82: 4611 li a2,4 + 1e84: 06c10823 sb a2,112(sp) + tail[n] = '0' + dp % 10; + 1e88: 06b10a23 sb a1,116(sp) + 1e8c: 4811 li a6,4 + 1e8e: 4f91 li t6,4 + 1e90: 0307879b addiw a5,a5,48 + 1e94: 06f109a3 sb a5,115(sp) + n = pr + lead[0] + tail[0] + tz; + 1e98: 006a07bb addw a5,s4,t1 + 1e9c: 010787bb addw a5,a5,a6 + 1ea0: 0117863b addw a2,a5,a7 + dp = (int)(s - sn); + 1ea4: d2aa sw a0,100(sp) + l = (int)(s - (num + 64)); + 1ea6: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 1ea8: 87b2 mv a5,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 1eaa: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1eae: 835a mv t1,s6 + 1eb0: 00cb5363 bge s6,a2,1eb6 + 1eb4: 8332 mv t1,a2 + cs = 1 + (3 << 24); + 1eb6: 030002b7 lui t0,0x3000 + fw -= n; + 1eba: 40f3033b subw t1,t1,a5 + cs = 1 + (3 << 24); + 1ebe: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8809> + s = num + 64; + 1ec0: 0c010a93 addi s5,sp,192 + goto scopy; + 1ec4: b311 j 1bc8 + h = (f[0] == 'B') ? hexu : hex; + 1ec6: 04200713 li a4,66 + 1eca: 00005817 auipc a6,0x5 + 1ece: b1e80813 addi a6,a6,-1250 # 69e8 + 1ed2: 6ce78963 beq a5,a4,25a4 + if (fl & STBSP__LEADING_0X) { + 1ed6: 008e7793 andi a5,t3,8 + 1eda: 66079e63 bnez a5,2556 + lead[0] = 0; + 1ede: 06010423 sb zero,104(sp) + l = (8 << 4) | (1 << 8); + 1ee2: 18000793 li a5,384 + 1ee6: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 1ee8: 020e7713 andi a4,t3,32 + goto radixnum; + 1eec: b979 j 1b8a + *s = (char)va_arg(va, int); + 1eee: 000ba783 lw a5,0(s7) + l = 1; + 1ef2: 4705 li a4,1 + 1ef4: d0ba sw a4,96(sp) + *s = (char)va_arg(va, int); + 1ef6: 26f10fa3 sb a5,639(sp) + 1efa: 008b8793 addi a5,s7,8 + lead[0] = 0; + 1efe: 06010423 sb zero,104(sp) + tail[0] = 0; + 1f02: 06010823 sb zero,112(sp) + dp = 0; + 1f06: d282 sw zero,100(sp) + *s = (char)va_arg(va, int); + 1f08: e0be sd a5,64(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 1f0a: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 1f0e: 835a mv t1,s6 + 1f10: 69605063 blez s6,2590 + fw -= n; + 1f14: 337d addiw t1,t1,-1 + goto scopy; + 1f16: 4701 li a4,0 + 1f18: 4f81 li t6,0 + 1f1a: 4685 li a3,1 + 1f1c: 4a01 li s4,0 + cs = 0; + 1f1e: 4281 li t0,0 + s = num + STBSP__NUMSZ - 1; + 1f20: 27f10a93 addi s5,sp,639 + tz = 0; + 1f24: 4881 li a7,0 + goto scopy; + 1f26: b14d j 1bc8 + fv = va_arg(va, double); + 1f28: 008b8713 addi a4,s7,8 + if (fl & STBSP__METRIC_SUFFIX) { + 1f2c: 100e7793 andi a5,t3,256 + fv = va_arg(va, double); + 1f30: e0ba sd a4,64(sp) + 1f32: 000bb507 fld fa0,0(s7) + if (fl & STBSP__METRIC_SUFFIX) { + 1f36: be0795e3 bnez a5,1b20 + if (pr == -1) + 1f3a: 57fd li a5,-1 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f3c: 0008871b sext.w a4,a7 + if (pr == -1) + 1f40: 00f89463 bne a7,a5,1f48 + 1f44: 4719 li a4,6 + pr = 6; // default is 6 + 1f46: 4899 li a7,6 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f48: 10d4 addi a3,sp,100 + 1f4a: 0110 addi a2,sp,128 + 1f4c: 108c addi a1,sp,96 + 1f4e: 18a8 addi a0,sp,120 + 1f50: f01e sd t2,32(sp) + 1f52: ec72 sd t3,24(sp) + 1f54: e846 sd a7,16(sp) + 1f56: a4cfe0ef jal 1a2 + 1f5a: 6e62 ld t3,24(sp) + 1f5c: 68c2 ld a7,16(sp) + 1f5e: 7382 ld t2,32(sp) + if (dp == STBSP__SPECIAL) { + 1f60: 5796 lw a5,100(sp) + if ((stbsp__int32)(l + n) > pr) + 1f62: 5686 lw a3,96(sp) + if (fl & STBSP__NEGATIVE) { + 1f64: 080e7293 andi t0,t3,128 + if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) + 1f68: e00500e3 beqz a0,1d68 + fl |= STBSP__NEGATIVE; + 1f6c: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 1f70: 06010823 sb zero,112(sp) + sign[0] = 1; + 1f74: 670d lui a4,0x3 + 1f76: d0170713 addi a4,a4,-767 # 2d01 + 1f7a: 06e11423 sh a4,104(sp) + if (dp == STBSP__SPECIAL) { + 1f7e: 671d lui a4,0x7 + 1f80: 7ce78963 beq a5,a4,2752 + if (dp <= 0) { + 1f84: 46f05fe3 blez a5,2c02 + cs = (fl & STBSP__TRIPLET_COMMA) ? ((600 - (stbsp__uint32)dp) % 3) : 0; + 1f88: 040e7313 andi t1,t3,64 + 1f8c: 00078e9b sext.w t4,a5 + 1f90: 4581 li a1,0 + 1f92: 00030963 beqz t1,1fa4 + 1f96: 25800593 li a1,600 + 1f9a: 41d585bb subw a1,a1,t4 + 1f9e: 470d li a4,3 + 1fa0: 02e5f5bb remuw a1,a1,a4 + *s++ = stbsp__comma; + 1fa4: 00005a17 auipc s4,0x5 + 1fa8: 95ca0a13 addi s4,s4,-1700 # 6900 + s = (char *)sn; + 1fac: 7f66 ld t5,120(sp) + *s++ = stbsp__comma; + 1fae: 0cda4283 lbu t0,205(s4) + s = num + 64; + 1fb2: 0c010a93 addi s5,sp,192 + if ((stbsp__uint32)dp >= l) { + 1fb6: 44defb63 bgeu t4,a3,240c + n = 0; + 1fba: 4501 li a0,0 + s = num + 64; + 1fbc: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 1fbe: 4b91 li s7,4 + 1fc0: a015 j 1fe4 + 1fc2: 8642 mv a2,a6 + 1fc4: 883a mv a6,a4 + 1fc6: 8732 mv a4,a2 + *s++ = sn[n]; + 1fc8: 02051613 slli a2,a0,0x20 + 1fcc: 9201 srli a2,a2,0x20 + 1fce: 967a add a2,a2,t5 + 1fd0: 00064f83 lbu t6,0(a2) + ++n; + 1fd4: 0015061b addiw a2,a0,1 + 1fd8: 0006051b sext.w a0,a2 + *s++ = sn[n]; + 1fdc: fff70fa3 sb t6,-1(a4) # 6fff <_stdout+0x1df> + if (n >= (stbsp__uint32)dp) + 1fe0: 7bd57563 bgeu a0,t4,278a + *s++ = stbsp__comma; + 1fe4: 00170813 addi a6,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 1fe8: fc030de3 beqz t1,1fc2 + 1fec: 2585 addiw a1,a1,1 + 1fee: fd759ae3 bne a1,s7,1fc2 + *s++ = stbsp__comma; + 1ff2: fe580fa3 sb t0,-1(a6) + 1ff6: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 1ff8: 4585 li a1,1 + 1ffa: b7f9 j 1fc8 + *d = tlen + (int)(bf - buf); + 1ffc: 000bb703 ld a4,0(s7) + 2000: 412407b3 sub a5,s0,s2 + 2004: 01a787bb addw a5,a5,s10 + int *d = va_arg(va, int *); + 2008: 008b8693 addi a3,s7,8 + 200c: e0b6 sd a3,64(sp) + *d = tlen + (int)(bf - buf); + 200e: c31c sw a5,0(a4) + } break; + 2010: bae5 j 1a08 + if (fl & STBSP__LEADING_0X) { + 2012: 008e7793 andi a5,t3,8 + 2016: 50079b63 bnez a5,252c + lead[0] = 0; + 201a: 06010423 sb zero,104(sp) + l = (3 << 4) | (3 << 8); + 201e: 33000793 li a5,816 + 2022: d0be sw a5,96(sp) + if (fl & STBSP__INTMAX) { + 2024: 020e7713 andi a4,t3,32 + h = hexu; + 2028: 00005817 auipc a6,0x5 + 202c: 9a880813 addi a6,a6,-1624 # 69d0 + goto radixnum; + 2030: bea9 j 1b8a + fl &= ~STBSP__LEADINGZERO; // 'p' only prints the pointer with zeros + 2032: fefe7e13 andi t3,t3,-17 + 2036: 020e6e13 ori t3,t3,32 + 203a: 02000713 li a4,32 + pr = sizeof(void *) * 2; + 203e: 48c1 li a7,16 + h = (f[0] == 'X') ? hexu : hex; + 2040: 00005817 auipc a6,0x5 + 2044: 9a880813 addi a6,a6,-1624 # 69e8 + 2048: be05 j 1b78 + s = va_arg(va, char *); + 204a: 000bba83 ld s5,0(s7) + 204e: 008b8793 addi a5,s7,8 + 2052: e0be sd a5,64(sp) + if (s == 0) + 2054: 360a8ee3 beqz s5,2bd0 + if (((stbsp__uintptr)sn & 3) == 0) + 2058: 003af793 andi a5,s5,3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 205c: 5208c663 bltz a7,2588 + 2060: 0008869b sext.w a3,a7 + if (((stbsp__uintptr)sn & 3) == 0) + 2064: 2a0782e3 beqz a5,2b08 + if (!limit || *sn == 0) + 2068: 5a068b63 beqz a3,261e + if (((stbsp__uintptr)sn & 3) == 0) + 206c: 87d6 mv a5,s5 + 206e: a801 j 207e + ++sn; + 2070: 0785 addi a5,a5,1 + if (((stbsp__uintptr)sn & 3) == 0) + 2072: 0037f713 andi a4,a5,3 + --limit; + 2076: 36fd addiw a3,a3,-1 + if (((stbsp__uintptr)sn & 3) == 0) + 2078: 280709e3 beqz a4,2b0a + if (!limit || *sn == 0) + 207c: c681 beqz a3,2084 + 207e: 0007c703 lbu a4,0(a5) + 2082: f77d bnez a4,2070 + return (stbsp__uint32)(sn - s); + 2084: 415787b3 sub a5,a5,s5 + 2088: 0007869b sext.w a3,a5 + if (pr < (stbsp__int32)l) + 208c: fff6c713 not a4,a3 + 2090: 977d srai a4,a4,0x3f + 2092: 8f7d and a4,a4,a5 + 2094: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2098: 863e mv a2,a5 + pr -= l; + 209a: 9f15 subw a4,a4,a3 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 209c: d0b6 sw a3,96(sp) + lead[0] = 0; + 209e: 06010423 sb zero,104(sp) + tail[0] = 0; + 20a2: 06010823 sb zero,112(sp) + dp = 0; + 20a6: d282 sw zero,100(sp) + if ((fl & STBSP__LEFTJUST) == 0) { + 20a8: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 20ac: 835a mv t1,s6 + 20ae: 00fb5363 bge s6,a5,20b4 + 20b2: 833e mv t1,a5 + fw -= n; + 20b4: 40c3033b subw t1,t1,a2 + goto scopy; + 20b8: 4f81 li t6,0 + 20ba: 4a01 li s4,0 + cs = 0; + 20bc: 4281 li t0,0 + tz = 0; + 20be: 4881 li a7,0 + goto scopy; + 20c0: b621 j 1bc8 + *bf++ = stbsp__comma; + 20c2: 87b2 mv a5,a2 + cs = 0; + 20c4: 4a01 li s4,0 + 20c6: e44ff06f j 170a + lead[0] -= (char)i; + 20ca: 06010423 sb zero,104(sp) + while (i) { + 20ce: d38ff06f j 1606 + lead[0] -= (char)i; + 20d2: 06010423 sb zero,104(sp) + while (i) { + 20d6: ed8ff06f j 17ae + while (i >= 4) { + 20da: 06fadc63 bge s5,a5,2152 + tz -= i; + 20de: 8722 mv a4,s0 + 20e0: 0007851b sext.w a0,a5 + while (i >= 4) { + 20e4: 008785bb addw a1,a5,s0 + *(stbsp__uint32 *)bf = 0x30303030; + 20e8: 01672023 sw s6,0(a4) + bf += 4; + 20ec: 0711 addi a4,a4,4 + while (i >= 4) { + 20ee: 40e5863b subw a2,a1,a4 + 20f2: fecacbe3 blt s5,a2,20e8 + 20f6: ffc5061b addiw a2,a0,-4 + 20fa: 0026561b srliw a2,a2,0x2 + 20fe: 0016071b addiw a4,a2,1 + 2102: 37f1 addiw a5,a5,-4 + 2104: 0026161b slliw a2,a2,0x2 + 2108: 070a slli a4,a4,0x2 + 210a: 9722 add a4,a4,s0 + 210c: 9f91 subw a5,a5,a2 + while (i) { + 210e: 843a mv s0,a4 + 2110: 80078de3 beqz a5,192a + 2114: 1782 slli a5,a5,0x20 + 2116: 9381 srli a5,a5,0x20 + 2118: 00f70433 add s0,a4,a5 + *bf++ = '0'; + 211c: 0705 addi a4,a4,1 + 211e: ff470fa3 sb s4,-1(a4) + while (i) { + 2122: fe871de3 bne a4,s0,211c + 2126: 805ff06f j 192a + stbsp__cb_buf_clamp(i, pr); + 212a: 85ce mv a1,s3 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 212c: 4981 li s3,0 + 212e: dc049263 bnez s1,16f2 + 2132: b8d5 j 1a26 + STBSP__UNALIGNED(while (i >= 4) { + 2134: 4401 li s0,0 + 2136: 85be mv a1,a5 + 2138: f0ea4b63 blt s4,a4,184e + 213c: f42ff06f j 187e + if ((((stbsp__uintptr)bf) & 3) == 0) + 2140: 00347713 andi a4,s0,3 + stbsp__cb_buf_clamp(i, tz); + 2144: 87c6 mv a5,a7 + tz -= i; + 2146: 4881 li a7,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2148: fc071c63 bnez a4,1920 + while (i >= 4) { + 214c: 470d li a4,3 + 214e: f8f748e3 blt a4,a5,20de + 2152: 8722 mv a4,s0 + 2154: b7c1 j 2114 + tail[0] -= (char)i; + 2156: 06010823 sb zero,112(sp) + while (i) { + 215a: b0b9 j 19a8 + while (i >= 4) { + 215c: 478d li a5,3 + 215e: 8622 mv a2,s0 + 2160: d8b7d963 bge a5,a1,16f2 + 2164: ffc5839b addiw t2,a1,-4 + 2168: 0023d79b srliw a5,t2,0x2 + 216c: 0017859b addiw a1,a5,1 + 2170: 058a slli a1,a1,0x2 + 2172: 942e add s0,s0,a1 + *(stbsp__uint32 *)bf = 0x30303030; + 2174: 01762023 sw s7,0(a2) + bf += 4; + 2178: 0611 addi a2,a2,4 + while (i >= 4) { + 217a: fe861de3 bne a2,s0,2174 + 217e: 0027979b slliw a5,a5,0x2 + 2182: 40f385bb subw a1,t2,a5 + 2186: d68ff06f j 16ee + while (i) { + 218a: 85be mv a1,a5 + 218c: ee071963 bnez a4,187e + 2190: f16ff06f j 18a6 + 2194: 2c013a03 ld s4,704(sp) + 2198: 2b813a83 ld s5,696(sp) + 219c: 2b013b03 ld s6,688(sp) + 21a0: 8ca2 mv s9,s0 + 21a2: a04ff06f j 13a6 + stbsp__chk_cb_buf(1); + 21a6: 2601 sext.w a2,a2 + 21a8: 1fe00793 li a5,510 + 21ac: f8c7c563 blt a5,a2,1936 + 21b0: f3eff06f j 18ee + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 21b4: fbfe7e13 andi t3,t3,-65 + if (fw + pr) { + 21b8: 006707bb addw a5,a4,t1 + fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas + 21bc: 2e01 sext.w t3,t3 + if (fw + pr) { + 21be: a0078be3 beqz a5,1bd4 + while (fw > 0) { + 21c2: be605663 blez t1,15ae + *(stbsp__uint32 *)bf = 0x20202020; + 21c6: 20202837 lui a6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 21ca: 854a mv a0,s2 + 21cc: 894e mv s2,s3 + 21ce: 69a2 ld s3,8(sp) + *(stbsp__uint32 *)bf = 0x20202020; + 21d0: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201fa828> + stbsp__cb_buf_clamp(i, fw); + 21d4: ec52 sd s4,24(sp) + 21d6: f426 sd s1,40(sp) + 21d8: 87a2 mv a5,s0 + 21da: 84ea mv s1,s10 + stbsp__chk_cb_buf(1); + 21dc: 1fe00f13 li t5,510 + stbsp__cb_buf_clamp(i, fw); + 21e0: 8d6e mv s10,s11 + *bf++ = ' '; + 21e2: 02000b13 li s6,32 + stbsp__cb_buf_clamp(i, fw); + 21e6: 8de6 mv s11,s9 + while (i >= 4) { + 21e8: 4b8d li s7,3 + stbsp__cb_buf_clamp(i, fw); + 21ea: 20000e93 li t4,512 + 21ee: e846 sd a7,16(sp) + 21f0: f07e sd t6,32(sp) + 21f2: f836 sd a3,48(sp) + 21f4: e4f2 sd t3,72(sp) + 21f6: e8ba sd a4,80(sp) + 21f8: ec96 sd t0,88(sp) + 21fa: 841a mv s0,t1 + 21fc: 8a42 mv s4,a6 + 21fe: 8c9e mv s9,t2 + 2200: 0c090063 beqz s2,22c0 + 2204: 40a78633 sub a2,a5,a0 + 2208: 40ce873b subw a4,t4,a2 + 220c: 86ba mv a3,a4 + 220e: 00e45363 bge s0,a4,2214 + 2212: 86a2 mv a3,s0 + 2214: 0006871b sext.w a4,a3 + fw -= i; + 2218: 9c15 subw s0,s0,a3 + while (i) { + 221a: e719 bnez a4,2228 + 221c: a095 j 2280 + *bf++ = ' '; + 221e: 01678023 sb s6,0(a5) + --i; + 2222: 377d addiw a4,a4,-1 + *bf++ = ' '; + 2224: 0785 addi a5,a5,1 + while (i) { + 2226: cb29 beqz a4,2278 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2228: 0037f693 andi a3,a5,3 + 222c: faed bnez a3,221e + while (i >= 4) { + 222e: 86be mv a3,a5 + 2230: 00070f9b sext.w t6,a4 + 2234: 00f705bb addw a1,a4,a5 + 2238: 02ebd763 bge s7,a4,2266 + *(stbsp__uint32 *)bf = 0x20202020; + 223c: 0146a023 sw s4,0(a3) + bf += 4; + 2240: 0691 addi a3,a3,4 + while (i >= 4) { + 2242: 40d5863b subw a2,a1,a3 + 2246: fecbcbe3 blt s7,a2,223c + 224a: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff8804> + 224e: 0026561b srliw a2,a2,0x2 + 2252: 0016069b addiw a3,a2,1 + 2256: 3771 addiw a4,a4,-4 + 2258: 0026161b slliw a2,a2,0x2 + 225c: 068a slli a3,a3,0x2 + 225e: 96be add a3,a3,a5 + 2260: 9f11 subw a4,a4,a2 + while (i) { + 2262: 87b6 mv a5,a3 + 2264: cb11 beqz a4,2278 + 2266: 1702 slli a4,a4,0x20 + 2268: 9301 srli a4,a4,0x20 + 226a: 00e687b3 add a5,a3,a4 + *bf++ = ' '; + 226e: 0685 addi a3,a3,1 + 2270: ff668fa3 sb s6,-1(a3) + while (i) { + 2274: fef69de3 bne a3,a5,226e + stbsp__chk_cb_buf(1); + 2278: 40a78633 sub a2,a5,a0 + 227c: 00090e63 beqz s2,2298 + 2280: 2601 sext.w a2,a2 + 2282: 00cf5b63 bge t5,a2,2298 + 2286: 85ce mv a1,s3 + 2288: 9cb1 addw s1,s1,a2 + 228a: 9902 jalr s2 + 228c: c541 beqz a0,2314 + 228e: 87aa mv a5,a0 + 2290: 20000e93 li t4,512 + 2294: 1fe00f13 li t5,510 + while (fw > 0) { + 2298: f68044e3 bgtz s0,2200 + 229c: 8322 mv t1,s0 + 229e: 89ca mv s3,s2 + 22a0: 83e6 mv t2,s9 + 22a2: 68c2 ld a7,16(sp) + 22a4: 8cee mv s9,s11 + 22a6: 6a62 ld s4,24(sp) + 22a8: 8dea mv s11,s10 + 22aa: 7f82 ld t6,32(sp) + 22ac: 8d26 mv s10,s1 + 22ae: 76c2 ld a3,48(sp) + 22b0: 6e26 ld t3,72(sp) + 22b2: 6746 ld a4,80(sp) + 22b4: 62e6 ld t0,88(sp) + 22b6: 74a2 ld s1,40(sp) + 22b8: 892a mv s2,a0 + 22ba: 843e mv s0,a5 + 22bc: af2ff06f j 15ae + stbsp__cb_buf_clamp(i, fw); + 22c0: 8722 mv a4,s0 + 22c2: 4401 li s0,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 22c4: b795 j 2228 + n64 = va_arg(va, stbsp__uint32); + 22c6: 000be683 lwu a3,0(s7) + 22ca: b0f9 j 1b98 + 22cc: 2c013a03 ld s4,704(sp) + 22d0: 2b813a83 ld s5,696(sp) + 22d4: 2b013b03 ld s6,688(sp) + 22d8: 8cca mv s9,s2 + 22da: 8ccff06f j 13a6 + 22de: 8cd6 mv s9,s5 + 22e0: 2c013a03 ld s4,704(sp) + 22e4: 2b813a83 ld s5,696(sp) + 22e8: 2b013b03 ld s6,688(sp) + 22ec: 8baff06f j 13a6 + 22f0: 2c013a03 ld s4,704(sp) + 22f4: 2b813a83 ld s5,696(sp) + 22f8: 2b013b03 ld s6,688(sp) + 22fc: 8cea mv s9,s10 + 22fe: 8a8ff06f j 13a6 + while (i) { + 2302: 85a2 mv a1,s0 + 2304: c12ff06f j 1716 + while (i >= 4) { + 2308: 478d li a5,3 + 230a: 8622 mv a2,s0 + 230c: e4b7cce3 blt a5,a1,2164 + 2310: be2ff06f j 16f2 + 2314: 2c013a03 ld s4,704(sp) + 2318: 2b813a83 ld s5,696(sp) + 231c: 2b013b03 ld s6,688(sp) + 2320: 8ca6 mv s9,s1 + 2322: 884ff06f j 13a6 + lead[2] = h[16]; + 2326: 01084683 lbu a3,16(a6) + lead[0] = 2; + 232a: 678d lui a5,0x3 + 232c: 0789 addi a5,a5,2 # 3002 + 232e: 06f11423 sh a5,104(sp) + lead[2] = h[16]; + 2332: 06d10523 sb a3,106(sp) + 2336: b891 j 1b8a + 2338: 8cea mv s9,s10 + 233a: 86cff06f j 13a6 + 233e: 4f81 li t6,0 + 2340: 4a01 li s4,0 + 2342: 5586 lw a1,96(sp) + *--s = stbsp__comma; + 2344: 00004f17 auipc t5,0x4 + 2348: 689f4f03 lbu t5,1673(t5) # 69cd + 234c: 0510 addi a2,sp,640 + 234e: 0085d71b srliw a4,a1,0x8 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 2352: 4305 li t1,1 + if (fl & STBSP__TRIPLET_COMMA) { + 2354: 040e7e93 andi t4,t3,64 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 2358: 0007029b sext.w t0,a4 + 235c: 005317bb sllw a5,t1,t0 + 2360: 37fd addiw a5,a5,-1 + 2362: 8ff5 and a5,a5,a3 + 2364: 97c2 add a5,a5,a6 + 2366: 0007c783 lbu a5,0(a5) + n64 >>= (l >> 8); + 236a: 0056d6b3 srl a3,a3,t0 + *--s = h[n64 & ((1 << (l >> 8)) - 1)]; + 236e: fff60a93 addi s5,a2,-1 + 2372: fef60fa3 sb a5,-1(a2) + if (!((n64) || ((stbsp__int32)((num + STBSP__NUMSZ) - s) < pr))) + 2376: e691 bnez a3,2382 + 2378: 051c addi a5,sp,640 + 237a: 415787bb subw a5,a5,s5 + 237e: 0317dd63 bge a5,a7,23b8 + if (fl & STBSP__TRIPLET_COMMA) { + 2382: 020e8963 beqz t4,23b4 + ++l; + 2386: 0015879b addiw a5,a1,1 + if ((l & 15) == ((l >> 4) & 15)) { + 238a: 0047d29b srliw t0,a5,0x4 + 238e: 00f2c2b3 xor t0,t0,a5 + 2392: 00f2f293 andi t0,t0,15 + ++l; + 2396: 0007859b sext.w a1,a5 + if ((l & 15) == ((l >> 4) & 15)) { + 239a: 0087d71b srliw a4,a5,0x8 + 239e: 00029b63 bnez t0,23b4 + l &= ~15; + 23a2: 9bc1 andi a5,a5,-16 + 23a4: 0007859b sext.w a1,a5 + *--s = stbsp__comma; + 23a8: ffe60a93 addi s5,a2,-2 + 23ac: ffe60f23 sb t5,-2(a2) + 23b0: 0087d71b srliw a4,a5,0x8 + 23b4: 8656 mv a2,s5 + 23b6: b74d j 2358 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 23b8: 0045d29b srliw t0,a1,0x4 + 23bc: 0f0006b7 lui a3,0xf000 + if (pr < (stbsp__int32)l) + 23c0: 0007871b sext.w a4,a5 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 23c4: 0182929b slliw t0,t0,0x18 + 23c8: 00d2f2b3 and t0,t0,a3 + n = pr + lead[0] + tail[0] + tz; + 23cc: 00ef863b addw a2,t6,a4 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 23d0: d0be sw a5,96(sp) + n = pr + lead[0] + tail[0] + tz; + 23d2: 8fb2 mv t6,a2 + cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); + 23d4: 86be mv a3,a5 + 23d6: 00f282bb addw t0,t0,a5 + if (fw < (stbsp__int32)n) + 23da: 835a mv t1,s6 + 23dc: 00cb5363 bge s6,a2,23e2 + 23e0: 8332 mv t1,a2 + fw -= n; + 23e2: 41f3033b subw t1,t1,t6 + pr -= l; + 23e6: 9f1d subw a4,a4,a5 + goto scopy; + 23e8: 4f81 li t6,0 + tz = 0; + 23ea: 4881 li a7,0 + goto scopy; + 23ec: fdcff06f j 1bc8 + 23f0: 8cda mv s9,s6 + 23f2: 2c013a03 ld s4,704(sp) + 23f6: 2b813a83 ld s5,696(sp) + 23fa: 2b013b03 ld s6,688(sp) + 23fe: fa9fe06f j 13a6 + fl |= ((sizeof(void *) == 8) ? STBSP__INTMAX : 0); + 2402: 020e6e13 ori t3,t3,32 + ++f; + 2406: 0485 addi s1,s1,1 + 2408: 864ff06f j 146c + n = 0; + 240c: 4601 li a2,0 + s = num + 64; + 240e: 8756 mv a4,s5 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2410: 4511 li a0,4 + *s++ = stbsp__comma; + 2412: 00170793 addi a5,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2416: 00030563 beqz t1,2420 + 241a: 2585 addiw a1,a1,1 + 241c: 10a58363 beq a1,a0,2522 + 2420: 873e mv a4,a5 + *s++ = sn[n]; + 2422: 02061793 slli a5,a2,0x20 + 2426: 9381 srli a5,a5,0x20 + 2428: 97fa add a5,a5,t5 + 242a: 0007c803 lbu a6,0(a5) + ++n; + 242e: 2605 addiw a2,a2,1 + *s++ = sn[n]; + 2430: ff070fa3 sb a6,-1(a4) + if (n >= l) + 2434: fcd66fe3 bltu a2,a3,2412 + if (n < (stbsp__uint32)dp) { + 2438: 0bd663e3 bltu a2,t4,2cde + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 243c: 415707b3 sub a5,a4,s5 + 2440: 030002b7 lui t0,0x3000 + 2444: 00f282bb addw t0,t0,a5 + if (pr) { + 2448: 00088a63 beqz a7,245c + *s++ = stbsp__period; + 244c: 0cca4683 lbu a3,204(s4) + 2450: 00170793 addi a5,a4,1 + l = (stbsp__uint32)(s - (num + 64)); + 2454: 415787b3 sub a5,a5,s5 + *s++ = stbsp__period; + 2458: 00d70023 sb a3,0(a4) + if (fl & STBSP__METRIC_SUFFIX) { + 245c: 100e7713 andi a4,t3,256 + 2460: 86f2 mv a3,t3 + 2462: 2c070163 beqz a4,2724 + if (fl & STBSP__METRIC_NOSPACE) + 2466: 40ae5f9b sraiw t6,t3,0xa + 246a: 001fcf93 xori t6,t6,1 + 246e: 001fff93 andi t6,t6,1 + tail[1] = ' '; + 2472: 02000713 li a4,32 + 2476: 06e108a3 sb a4,113(sp) + tail[0] = idx; + 247a: 07f10823 sb t6,112(sp) + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 247e: 018e561b srliw a2,t3,0x18 + 2482: 018e571b srliw a4,t3,0x18 + n = pr + lead[0] + tail[0] + tz; + 2486: 000f859b sext.w a1,t6 + if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. + 248a: c225 beqz a2,24ea + if (fl & STBSP__METRIC_1024) + 248c: 001f859b addiw a1,t6,1 + 2490: 0ff5f613 zext.b a2,a1 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 2494: 1702 slli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 2496: 03469513 slli a0,a3,0x34 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 249a: 85b2 mv a1,a2 + 249c: 9301 srli a4,a4,0x20 + if (fl & STBSP__METRIC_1024) + 249e: 06055ee3 bgez a0,2d1a + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24a2: 00003517 auipc a0,0x3 + 24a6: b9e50513 addi a0,a0,-1122 # 5040 <_GLOBAL__sub_I__ZSt3cin+0x98> + 24aa: 972a add a4,a4,a0 + 24ac: 00074503 lbu a0,0(a4) + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 24b0: 6709 lui a4,0x2 + 24b2: 80070713 addi a4,a4,-2048 # 1800 + 24b6: 8f75 and a4,a4,a3 + tail[idx + 1] = "_KMGT"[fl >> 24]; + 24b8: 06010813 addi a6,sp,96 + 24bc: 22060693 addi a3,a2,544 + 24c0: 96c2 add a3,a3,a6 + 24c2: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff85f8> + if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { + 24c6: 8007071b addiw a4,a4,-2048 + 24ca: 060715e3 bnez a4,2d34 + tail[idx + 1] = 'i'; + 24ce: 2f89 addiw t6,t6,2 + 24d0: 0ffff593 zext.b a1,t6 + 24d4: 1094 addi a3,sp,96 + 24d6: 22058713 addi a4,a1,544 + 24da: 9736 add a4,a4,a3 + 24dc: 06900693 li a3,105 + 24e0: 8fae mv t6,a1 + 24e2: ded70823 sb a3,-528(a4) + tail[0] = idx; + 24e6: 07f10823 sb t6,112(sp) + l = (stbsp__uint32)(s - (num + 64)); + 24ea: 0007869b sext.w a3,a5 + n = pr + lead[0] + tail[0] + tz; + 24ee: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 24f2: fff6c713 not a4,a3 + 24f6: 977d srai a4,a4,0x3f + 24f8: 8ff9 and a5,a5,a4 + n = pr + lead[0] + tail[0] + tz; + 24fa: 00fa073b addw a4,s4,a5 + 24fe: 9f2d addw a4,a4,a1 + 2500: 0117063b addw a2,a4,a7 + l = (stbsp__uint32)(s - (num + 64)); + 2504: d0b6 sw a3,96(sp) + n = pr + lead[0] + tail[0] + tz; + 2506: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 2508: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 250a: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 250e: 835a mv t1,s6 + 2510: 00cb5363 bge s6,a2,2516 + 2514: 8332 mv t1,a2 + fw -= n; + 2516: 40e3033b subw t1,t1,a4 + pr -= l; + 251a: 40d7873b subw a4,a5,a3 + goto scopy; + 251e: eaaff06f j 1bc8 + *s++ = stbsp__comma; + 2522: fe578fa3 sb t0,-1(a5) + 2526: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2528: 4585 li a1,1 + 252a: bde5 j 2422 + lead[0] = 1; + 252c: 678d lui a5,0x3 + 252e: 0785 addi a5,a5,1 # 3001 + 2530: 06f11423 sh a5,104(sp) + 2534: b4ed j 201e + if ((f[0] != 'u') && (i64 < 0)) { + 2536: 07500693 li a3,117 + stbsp__int64 i64 = va_arg(va, stbsp__int64); + 253a: 000bbf03 ld t5,0(s7) + if ((f[0] != 'u') && (i64 < 0)) { + 253e: dcd78263 beq a5,a3,1b02 + 2542: dc0f5063 bgez t5,1b02 + fl |= STBSP__NEGATIVE; + 2546: 08076713 ori a4,a4,128 + n64 = (stbsp__uint64)-i64; + 254a: 41e00f33 neg t5,t5 + fl |= STBSP__NEGATIVE; + 254e: 00070e1b sext.w t3,a4 + 2552: db0ff06f j 1b02 + lead[2] = h[0xb]; + 2556: 00b84703 lbu a4,11(a6) + lead[0] = 2; + 255a: 678d lui a5,0x3 + 255c: 0789 addi a5,a5,2 # 3002 + 255e: 06f11423 sh a5,104(sp) + lead[2] = h[0xb]; + 2562: 06e10523 sb a4,106(sp) + 2566: bab5 j 1ee2 + sign[0] = 1; + 2568: 678d lui a5,0x3 + 256a: d0178793 addi a5,a5,-767 # 2d01 + fl |= STBSP__NEGATIVE; + 256e: 080e6e13 ori t3,t3,128 + sign[0] = 1; + 2572: 06f11423 sh a5,104(sp) + 2576: 468d li a3,3 + 2578: 4a0d li s4,3 + 257a: 4809 li a6,2 + 257c: b899 j 1dd2 + sign[0] = 1; + 257e: 6709 lui a4,0x2 + 2580: 0705 addi a4,a4,1 # 2001 + 2582: 06e11423 sh a4,104(sp) + 2586: bae5 j 1f7e + if (((stbsp__uintptr)sn & 3) == 0) + 2588: 0e0780e3 beqz a5,2e68 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 258c: 56fd li a3,-1 + 258e: bcf9 j 206c + if (fw < (stbsp__int32)n) + 2590: 4305 li t1,1 + 2592: b249 j 1f14 + pr = 6; // default is 6 + 2594: 4899 li a7,6 + 2596: b801 j 1da6 + h = (f[0] == 'A') ? hexu : hex; + 2598: 00004597 auipc a1,0x4 + 259c: 43858593 addi a1,a1,1080 # 69d0 + 25a0: ff6ff06f j 1d96 + h = (f[0] == 'B') ? hexu : hex; + 25a4: 00004817 auipc a6,0x4 + 25a8: 42c80813 addi a6,a6,1068 # 69d0 + 25ac: b22d j 1ed6 + 25ae: 80000737 lui a4,0x80000 + 25b2: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff880e> + pr = 6; // default is 6 + 25b4: 4899 li a7,6 + 25b6: e4eff06f j 1c04 + h = (f[0] == 'E') ? hexu : hex; + 25ba: 00004317 auipc t1,0x4 + 25be: 41630313 addi t1,t1,1046 # 69d0 + 25c2: e28ff06f j 1bea + 25c6: 80000737 lui a4,0x80000 + 25ca: 4a99 li s5,6 + 25cc: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff880d> + pr = 6; + 25ce: 4a19 li s4,6 + 25d0: ee8ff06f j 1cb8 + h = (f[0] == 'G') ? hexu : hex; + 25d4: 00004317 auipc t1,0x4 + 25d8: 3fc30313 addi t1,t1,1020 # 69d0 + 25dc: eb6ff06f j 1c92 + 25e0: 7be6 ld s7,120(sp) + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 25e2: 86c2 mv a3,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 25e4: 8542 mv a0,a6 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 25e6: 88d2 mv a7,s4 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 25e8: 8ade mv s5,s7 + if (pr > (stbsp__int32)l) + 25ea: 0005071b sext.w a4,a0 + 25ee: 01175f63 bge a4,a7,260c + pr = l - 1; + 25f2: fff5089b addiw a7,a0,-1 + tail[0] = 0; + 25f6: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 25fa: 70028c63 beqz t0,2d12 + sign[0] = 1; + 25fe: 670d lui a4,0x3 + 2600: d0170713 addi a4,a4,-767 # 2d01 + 2604: 06e11423 sh a4,104(sp) + 2608: e3aff06f j 1c42 + else if (pr) + 260c: fe0885e3 beqz a7,25f6 + --pr; // when using %e, there is one digit before the decimal + 2610: 38fd addiw a7,a7,-1 + 2612: b7d5 j 25f6 + switch (f[0]) { + 2614: 0034c783 lbu a5,3(s1) + f += 3; + 2618: 048d addi s1,s1,3 + 261a: e53fe06f j 146c + if (!limit || *sn == 0) + 261e: 4601 li a2,0 + 2620: 4701 li a4,0 + 2622: 4781 li a5,0 + return (stbsp__uint32)(sn - s); + 2624: bca5 j 209c + pr = 1; + 2626: 4885 li a7,1 + 2628: cf4ff06f j 1b1c + *s++ = sn[0]; + 262c: 000ac703 lbu a4,0(s5) + 2630: 0ce10023 sb a4,192(sp) + if (pr) + 2634: 54088563 beqz a7,2b7e + *s++ = stbsp__period; + 2638: 00004617 auipc a2,0x4 + 263c: 39464603 lbu a2,916(a2) # 69cc + if ((l - 1) > (stbsp__uint32)pr) + 2640: fff6871b addiw a4,a3,-1 + *s++ = stbsp__period; + 2644: 0cc100a3 sb a2,193(sp) + if ((l - 1) > (stbsp__uint32)pr) + 2648: 0008851b sext.w a0,a7 + 264c: 0007061b sext.w a2,a4 + 2650: 52c57163 bgeu a0,a2,2b72 + l = pr + 1; + 2654: 0018869b addiw a3,a7,1 + for (n = 1; n < l; n++) + 2658: 8746 mv a4,a7 + 265a: 02071613 slli a2,a4,0x20 + 265e: 9201 srli a2,a2,0x20 + 2660: 0c210713 addi a4,sp,194 + 2664: 0a85 addi s5,s5,1 + 2666: 963a add a2,a2,a4 + *s++ = sn[n]; + 2668: 000ac583 lbu a1,0(s5) + 266c: 0705 addi a4,a4,1 + for (n = 1; n < l; n++) + 266e: 0a85 addi s5,s5,1 + *s++ = sn[n]; + 2670: feb70fa3 sb a1,-1(a4) + for (n = 1; n < l; n++) + 2674: fec71ae3 bne a4,a2,2668 + tail[1] = h[0xe]; + 2678: 00e34803 lbu a6,14(t1) + dp -= 1; + 267c: fff7871b addiw a4,a5,-1 + tail[2] = '+'; + 2680: 02b00593 li a1,43 + tail[1] = h[0xe]; + 2684: 070108a3 sb a6,113(sp) + if (dp < 0) { + 2688: 00075663 bgez a4,2694 + dp = -dp; + 268c: 4705 li a4,1 + 268e: 9f1d subw a4,a4,a5 + tail[2] = '-'; + 2690: 02d00593 li a1,45 + 2694: 06b10923 sb a1,114(sp) + n = (dp >= 100) ? 5 : 4; + 2698: 06300793 li a5,99 + 269c: 4ee7d663 bge a5,a4,2b88 + 26a0: 4595 li a1,5 + 26a2: 4f95 li t6,5 + 26a4: 4e95 li t4,5 + tail[n] = '0' + dp % 10; + 26a6: 47a9 li a5,10 + dp /= 10; + 26a8: 02f7433b divw t1,a4,a5 + --n; + 26ac: fffe8f1b addiw t5,t4,-1 + tail[n] = '0' + dp % 10; + 26b0: 020f1293 slli t0,t5,0x20 + 26b4: 220e8813 addi a6,t4,544 + 26b8: 06010893 addi a7,sp,96 + 26bc: 0202d293 srli t0,t0,0x20 + 26c0: 01180eb3 add t4,a6,a7 + 26c4: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff8a28> + 26c8: 011802b3 add t0,a6,a7 + tail[0] = (char)n; + 26cc: 07f10823 sb t6,112(sp) + if (n <= 3) + 26d0: 4a0d li s4,3 + tail[n] = '0' + dp % 10; + 26d2: 02f7673b remw a4,a4,a5 + dp /= 10; + 26d6: 0003081b sext.w a6,t1 + tail[n] = '0' + dp % 10; + 26da: 02f36abb remw s5,t1,a5 + 26de: 0307071b addiw a4,a4,48 + 26e2: deee8823 sb a4,-528(t4) + 26e6: 030a871b addiw a4,s5,48 + 26ea: dee28823 sb a4,-528(t0) + if (n <= 3) + 26ee: 014f0a63 beq t5,s4,2702 + dp /= 10; + 26f2: 02f3483b divw a6,t1,a5 + tail[n] = '0' + dp % 10; + 26f6: 02f867bb remw a5,a6,a5 + 26fa: 0307879b addiw a5,a5,48 + 26fe: 06f109a3 sb a5,115(sp) + tz = pr - (l - 1); + 2702: 2505 addiw a0,a0,1 + l = (stbsp__uint32)(s - (num + 64)); + 2704: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens + 2708: 030002b7 lui t0,0x3000 + tz = pr - (l - 1); + 270c: 40d508bb subw a7,a0,a3 + 2710: d2c2 sw a6,100(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2712: 415607b3 sub a5,a2,s5 + cs = 1 + (3 << 24); // how many tens + 2716: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8809> + 2718: bbc9 j 24ea + 271a: fc2e sd a1,56(sp) + 271c: d0b2 sw a2,96(sp) + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 271e: 8536 mv a0,a3 + 2720: e2cff06f j 1d4c + flt_lead: + 2724: 4581 li a1,0 + 2726: 4f81 li t6,0 + 2728: b3c9 j 24ea + n = pr + lead[0] + tail[0] + tz; + 272a: 06814a03 lbu s4,104(sp) + 272e: 000a0f9b sext.w t6,s4 + 2732: b901 j 2342 + if ((f[1] == '6') && (f[2] == '4')) { + 2734: 0024c683 lbu a3,2(s1) + 2738: 03400713 li a4,52 + 273c: 00e68463 beq a3,a4,2744 + 2740: e2bfe06f j 156a + switch (f[0]) { + 2744: 0034c783 lbu a5,3(s1) + fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); + 2748: 020e6e13 ori t3,t3,32 + f += 3; + 274c: 048d addi s1,s1,3 + 274e: d1ffe06f j 146c + if (pr < (stbsp__int32)l) + 2752: 0006879b sext.w a5,a3 + n = pr + lead[0] + tail[0] + tz; + 2756: 06814a03 lbu s4,104(sp) + if (pr < (stbsp__int32)l) + 275a: fff7c793 not a5,a5 + 275e: 97fd srai a5,a5,0x3f + 2760: 8ff5 and a5,a5,a3 + n = pr + lead[0] + tail[0] + tz; + 2762: 00fa063b addw a2,s4,a5 + s = (char *)sn; + 2766: 7ae6 ld s5,120(sp) + n = pr + lead[0] + tail[0] + tz; + 2768: 8732 mv a4,a2 + if ((fl & STBSP__LEFTJUST) == 0) { + 276a: 001e7513 andi a0,t3,1 + if (pr < (stbsp__int32)l) + 276e: 2781 sext.w a5,a5 + if (fw < (stbsp__int32)n) + 2770: 835a mv t1,s6 + 2772: 00cb5363 bge s6,a2,2778 + 2776: 8332 mv t1,a2 + fw -= n; + 2778: 40e3033b subw t1,t1,a4 + goto scopy; + 277c: 4f81 li t6,0 + pr -= l; + 277e: 40d7873b subw a4,a5,a3 + cs = 0; + 2782: 4281 li t0,0 + tz = 0; + 2784: 4881 li a7,0 + goto scopy; + 2786: c42ff06f j 1bc8 + cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens + 278a: 415705b3 sub a1,a4,s5 + 278e: 030002b7 lui t0,0x3000 + 2792: 00b282bb addw t0,t0,a1 + l = pr - n; + 2796: 0008859b sext.w a1,a7 + if (pr) + 279a: 42088763 beqz a7,2bc8 + *s++ = stbsp__period; + 279e: 0cca4f83 lbu t6,204(s4) + if ((l - dp) > (stbsp__uint32)pr) + 27a2: 41d6833b subw t1,a3,t4 + *s++ = stbsp__period; + 27a6: 00280713 addi a4,a6,2 + 27aa: 01f800a3 sb t6,1(a6) + if ((l - dp) > (stbsp__uint32)pr) + 27ae: 4065ed63 bltu a1,t1,2bc8 + while (n < l) { + 27b2: 5ed57863 bgeu a0,a3,2da2 + 27b6: 40c687bb subw a5,a3,a2 + 27ba: 37fd addiw a5,a5,-1 + 27bc: 1782 slli a5,a5,0x20 + 27be: 9381 srli a5,a5,0x20 + 27c0: 1602 slli a2,a2,0x20 + 27c2: 9201 srli a2,a2,0x20 + 27c4: 0785 addi a5,a5,1 + 27c6: 967a add a2,a2,t5 + 27c8: 97ba add a5,a5,a4 + *s++ = sn[n]; + 27ca: 00064503 lbu a0,0(a2) + 27ce: 0705 addi a4,a4,1 + while (n < l) { + 27d0: 0605 addi a2,a2,1 + *s++ = sn[n]; + 27d2: fea70fa3 sb a0,-1(a4) + while (n < l) { + 27d6: fef71ae3 bne a4,a5,27ca + tz = pr - (l - dp); + 27da: 01d585bb addw a1,a1,t4 + 27de: 40d588bb subw a7,a1,a3 + l = (stbsp__uint32)(s - (num + 64)); + 27e2: 415787b3 sub a5,a5,s5 + 27e6: b99d j 245c + fl |= STBSP__NEGATIVE; + 27e8: 080e6e13 ori t3,t3,128 + tail[0] = 0; + 27ec: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 27f0: b539 j 25fe + tail[0] = (char)n; + 27f2: 4799 li a5,6 + tail[n] = '0' + dp % 10; + 27f4: 06b10b23 sb a1,118(sp) + tail[0] = (char)n; + 27f8: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 27fc: 4819 li a6,6 + 27fe: 4f99 li t6,6 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2800: 4599 li a1,6 + dp /= 10; + 2802: 4f29 li t5,10 + if (n <= 3) + 2804: 428d li t0,3 + 2806: 87b2 mv a5,a2 + dp /= 10; + 2808: 03e7c7bb divw a5,a5,t5 + --n; + 280c: 35fd addiw a1,a1,-1 + tail[n] = '0' + dp % 10; + 280e: 02059613 slli a2,a1,0x20 + 2812: 9201 srli a2,a2,0x20 + 2814: 06010e93 addi t4,sp,96 + 2818: 22060613 addi a2,a2,544 + 281c: 9676 add a2,a2,t4 + 281e: 03e7eebb remw t4,a5,t5 + 2822: 030e8e9b addiw t4,t4,48 + 2826: dfd60823 sb t4,-528(a2) + if (n <= 3) + 282a: fc559fe3 bne a1,t0,2808 + 282e: e6aff06f j 1e98 + *s++ = h[(n64 >> 60) & 15]; + 2832: 93f1 srli a5,a5,0x3c + 2834: 97ae add a5,a5,a1 + 2836: 0007c303 lbu t1,0(a5) + lead[1 + lead[0]] = '0'; + 283a: 1088 addi a0,sp,96 + 283c: 22080793 addi a5,a6,544 + 2840: 97aa add a5,a5,a0 + 2842: 03000513 li a0,48 + 2846: dea78423 sb a0,-536(a5) + lead[2 + lead[0]] = 'x'; + 284a: 22068793 addi a5,a3,544 + 284e: 1094 addi a3,sp,96 + 2850: 96be add a3,a3,a5 + *s++ = stbsp__period; + 2852: 00004517 auipc a0,0x4 + 2856: 17a54503 lbu a0,378(a0) # 69cc + lead[2 + lead[0]] = 'x'; + 285a: 07800813 li a6,120 + sn = s; + 285e: 0c210793 addi a5,sp,194 + lead[2 + lead[0]] = 'x'; + 2862: df068423 sb a6,-536(a3) + *s++ = stbsp__period; + 2866: 0ca100a3 sb a0,193(sp) + lead[0] += 2; + 286a: 07410423 sb s4,104(sp) + *s++ = h[(n64 >> 60) & 15]; + 286e: 0c610023 sb t1,192(sp) + n64 <<= 4; + 2872: 0732 slli a4,a4,0xc + sn = s; + 2874: fcbe sd a5,120(sp) + n = pr; + 2876: 0008869b sext.w a3,a7 + while (n--) { + 287a: 4831 li a6,12 + if (n > 13) + 287c: 4535 li a0,13 + tz = pr - n; + 287e: 40a688bb subw a7,a3,a0 + while (n--) { + 2882: 02081313 slli t1,a6,0x20 + 2886: 02035313 srli t1,t1,0x20 + 288a: 22030693 addi a3,t1,544 + 288e: 1088 addi a0,sp,96 + 2890: 9536 add a0,a0,a3 + 2892: e4350513 addi a0,a0,-445 + *s++ = h[(n64 >> 60) & 15]; + 2896: 03c75693 srli a3,a4,0x3c + 289a: 96ae add a3,a3,a1 + 289c: 0006c683 lbu a3,0(a3) + 28a0: 0785 addi a5,a5,1 + n64 <<= 4; + 28a2: 0712 slli a4,a4,0x4 + *s++ = h[(n64 >> 60) & 15]; + 28a4: fed78fa3 sb a3,-1(a5) + while (n--) { + 28a8: fea797e3 bne a5,a0,2896 + l = (int)(s - (num + 64)); + 28ac: 280d addiw a6,a6,3 + 28ae: 0008069b sext.w a3,a6 + if (pr < (stbsp__int32)l) + 28b2: fff6c713 not a4,a3 + 28b6: 977d srai a4,a4,0x3f + 28b8: 00e87733 and a4,a6,a4 + dp = (int)(s - sn); + 28bc: 0013051b addiw a0,t1,1 + if (pr < (stbsp__int32)l) + 28c0: 0007031b sext.w t1,a4 + pr -= l; + 28c4: 4107073b subw a4,a4,a6 + 28c8: d76ff06f j 1e3e + *--s = stbsp__comma; + 28cc: 00004a17 auipc s4,0x4 + 28d0: 034a0a13 addi s4,s4,52 # 6900 + if (n64 >= 100000000) { + 28d4: 05f5e7b7 lui a5,0x5f5e + 28d8: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f56907> + n = (stbsp__uint32)(n64 % 100000000); + 28dc: 05f5e637 lui a2,0x5f5e + *--s = stbsp__comma; + 28e0: 0cda4b83 lbu s7,205(s4) + if (n64 >= 100000000) { + 28e4: e83e sd a5,16(sp) + n = (stbsp__uint32)(n64 % 100000000); + 28e6: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f56908> + l = 0; + 28ea: d082 sw zero,96(sp) + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 28ec: 040e7813 andi a6,t3,64 + 28f0: 4701 li a4,0 + 28f2: 4281 li t0,0 + s = num + STBSP__NUMSZ; + 28f4: 28010a93 addi s5,sp,640 + n = (stbsp__uint32)(n64 % 100000000); + 28f8: ec3e sd a5,24(sp) + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 28fa: 430d li t1,3 + n /= 10; + 28fc: 45a9 li a1,10 + while (n) { + 28fe: 4ea5 li t4,9 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2900: 06400f93 li t6,100 + if (n64 >= 100000000) { + 2904: 67c2 ld a5,16(sp) + char *o = s - 8; + 2906: ff8a8513 addi a0,s5,-8 + if (n64 >= 100000000) { + 290a: 0fe7f763 bgeu a5,t5,29f8 + n = (stbsp__uint32)(n64 % 100000000); + 290e: 6662 ld a2,24(sp) + 2910: 02cf77b3 remu a5,t5,a2 + n64 /= 100000000; + 2914: 02cf5f33 divu t5,t5,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2918: 0e080463 beqz a6,2a00 + while (n) { + 291c: cb85 beqz a5,294c + *--s = stbsp__comma; + 291e: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2920: 00671763 bne a4,t1,292e + --o; + 2924: 017a8023 sb s7,0(s5) + 2928: 157d addi a0,a0,-1 + *--s = stbsp__comma; + 292a: 1afd addi s5,s5,-1 + l = 0; + 292c: 4701 li a4,0 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 292e: 2705 addiw a4,a4,1 + *--s = (char)(n % 10) + '0'; + 2930: 02b7f63b remuw a2,a5,a1 + 2934: 0306061b addiw a2,a2,48 + 2938: 00ca8023 sb a2,0(s5) + n /= 10; + 293c: 02b7d63b divuw a2,a5,a1 + while (n) { + 2940: 00fef563 bgeu t4,a5,294a + *--s = stbsp__comma; + 2944: 1afd addi s5,s5,-1 + 2946: 87b2 mv a5,a2 + 2948: bfe1 j 2920 + while (n) { + 294a: 4285 li t0,1 + if (n64 == 0) { + 294c: 020f0063 beqz t5,296c + while (s != o) + 2950: fb550ae3 beq a0,s5,2904 + *--s = stbsp__comma; + 2954: 1afd addi s5,s5,-1 + if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { + 2956: 00080663 beqz a6,2962 + 295a: 08670863 beq a4,t1,29ea + 295e: 2705 addiw a4,a4,1 + 2960: 4285 li t0,1 + *--s = '0'; + 2962: 03000793 li a5,48 + 2966: 00fa8023 sb a5,0(s5) + 296a: b7dd j 2950 + 296c: 00028363 beqz t0,2972 + 2970: d0ba sw a4,96(sp) + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2972: 000ac703 lbu a4,0(s5) + 2976: 03000793 li a5,48 + 297a: 34f70b63 beq a4,a5,2cd0 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 297e: 051c addi a5,sp,640 + 2980: 415786bb subw a3,a5,s5 + tail[0] = 0; + 2984: 06010823 sb zero,112(sp) + if (fl & STBSP__NEGATIVE) { + 2988: 080e7713 andi a4,t3,128 + 298c: 87f2 mv a5,t3 + 298e: 32070863 beqz a4,2cbe + 2992: 678d lui a5,0x3 + 2994: d017879b addiw a5,a5,-767 # 2d01 + sign[0] = 1; + 2998: 06f11423 sh a5,104(sp) + 299c: 4705 li a4,1 + 299e: 4a05 li s4,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 29a0: d0b6 sw a3,96(sp) + if (l == 0) { + 29a2: 30068163 beqz a3,2ca4 + cs = l + (3 << 24); + 29a6: 030002b7 lui t0,0x3000 + 29aa: 00d282bb addw t0,t0,a3 + if (pr < (stbsp__int32)l) + 29ae: 0006861b sext.w a2,a3 + if (pr < 0) + 29b2: fff8c793 not a5,a7 + 29b6: 97fd srai a5,a5,0x3f + if (pr < (stbsp__int32)l) + 29b8: 00f8f7b3 and a5,a7,a5 + 29bc: 0007859b sext.w a1,a5 + 29c0: 00c5d363 bge a1,a2,29c6 + 29c4: 87b2 mv a5,a2 + n = pr + lead[0] + tail[0] + tz; + 29c6: 00f7063b addw a2,a4,a5 + 29ca: 8732 mv a4,a2 + if (pr < (stbsp__int32)l) + 29cc: 2781 sext.w a5,a5 + if ((fl & STBSP__LEFTJUST) == 0) { + 29ce: 001e7513 andi a0,t3,1 + if (fw < (stbsp__int32)n) + 29d2: 835a mv t1,s6 + 29d4: 00cb5363 bge s6,a2,29da + 29d8: 8332 mv t1,a2 + fw -= n; + 29da: 40e3033b subw t1,t1,a4 + scopy: + 29de: 4f81 li t6,0 + pr -= l; + 29e0: 40d7873b subw a4,a5,a3 + tz = 0; + 29e4: 4881 li a7,0 + scopy: + 29e6: 9e2ff06f j 1bc8 + *--s = stbsp__comma; + 29ea: 87de mv a5,s7 + --o; + 29ec: 157d addi a0,a0,-1 + l = 0; + 29ee: 4701 li a4,0 + --o; + 29f0: 4285 li t0,1 + 29f2: 00fa8023 sb a5,0(s5) + 29f6: bfa9 j 2950 + n = (stbsp__uint32)n64; + 29f8: 000f079b sext.w a5,t5 + n64 = 0; + 29fc: 4f01 li t5,0 + 29fe: bf29 j 2918 + 2a00: f046 sd a7,32(sp) + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a02: 03f7f63b remuw a2,a5,t6 + s -= 2; + 2a06: 1af9 addi s5,s5,-2 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a08: 0007889b sext.w a7,a5 + 2a0c: 2605 addiw a2,a2,1 + 2a0e: 0016161b slliw a2,a2,0x1 + 2a12: 1602 slli a2,a2,0x20 + 2a14: 9201 srli a2,a2,0x20 + 2a16: 9652 add a2,a2,s4 + 2a18: 00065603 lhu a2,0(a2) + n /= 100; + 2a1c: 03f7d7bb divuw a5,a5,t6 + *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; + 2a20: 00ca9023 sh a2,0(s5) + } while (n); + 2a24: 06300613 li a2,99 + 2a28: fd166de3 bltu a2,a7,2a02 + 2a2c: 7882 ld a7,32(sp) + if (n64 == 0) { + 2a2e: f20f11e3 bnez t5,2950 + 2a32: bf2d j 296c + *(stbsp__uint32 *)bf = 0x20202020; + 2a34: 20202b37 lui s6,0x20202 + stbsp__cb_buf_clamp(i, fw); + 2a38: 854a mv a0,s2 + *bf++ = ' '; + 2a3a: 02000a93 li s5,32 + *(stbsp__uint32 *)bf = 0x20202020; + 2a3e: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201fa828> + stbsp__chk_cb_buf(1); + 2a42: 1fe00a13 li s4,510 + stbsp__cb_buf_clamp(i, fw); + 2a46: 20000b93 li s7,512 + 2a4a: 891a mv s2,t1 + 2a4c: 0a098063 beqz s3,2aec + 2a50: 40a40633 sub a2,s0,a0 + 2a54: 40cb87bb subw a5,s7,a2 + 2a58: 873e mv a4,a5 + 2a5a: 00f95363 bge s2,a5,2a60 + 2a5e: 874a mv a4,s2 + 2a60: 0007079b sext.w a5,a4 + fw -= i; + 2a64: 40e9093b subw s2,s2,a4 + while (i) { + 2a68: e799 bnez a5,2a76 + 2a6a: a281 j 2baa + *bf++ = ' '; + 2a6c: 01540023 sb s5,0(s0) + --i; + 2a70: 37fd addiw a5,a5,-1 + *bf++ = ' '; + 2a72: 0405 addi s0,s0,1 + while (i) { + 2a74: cba1 beqz a5,2ac4 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2a76: 00347713 andi a4,s0,3 + 2a7a: fb6d bnez a4,2a6c + while (i >= 4) { + 2a7c: 470d li a4,3 + 2a7e: 40f75363 bge a4,a5,2e84 + 2a82: ffc7869b addiw a3,a5,-4 + 2a86: 0026d79b srliw a5,a3,0x2 + 2a8a: 0017871b addiw a4,a5,1 + 2a8e: 070a slli a4,a4,0x2 + 2a90: 9722 add a4,a4,s0 + *(stbsp__uint32 *)bf = 0x20202020; + 2a92: 01642023 sw s6,0(s0) + bf += 4; + 2a96: 0411 addi s0,s0,4 + while (i >= 4) { + 2a98: fee41de3 bne s0,a4,2a92 + 2a9c: 0027979b slliw a5,a5,0x2 + 2aa0: 40f687bb subw a5,a3,a5 + while (i--) + 2aa4: fff7869b addiw a3,a5,-1 + 2aa8: cf91 beqz a5,2ac4 + 2aaa: 9fa1 addw a5,a5,s0 + *bf++ = ' '; + 2aac: 0705 addi a4,a4,1 + while (i--) + 2aae: 0007061b sext.w a2,a4 + *bf++ = ' '; + 2ab2: ff570fa3 sb s5,-1(a4) + while (i--) + 2ab6: fec79be3 bne a5,a2,2aac + 2aba: 2685 addiw a3,a3,1 + 2abc: 02069793 slli a5,a3,0x20 + 2ac0: 9381 srli a5,a5,0x20 + 2ac2: 943e add s0,s0,a5 + stbsp__chk_cb_buf(1); + 2ac4: 00098f63 beqz s3,2ae2 + 2ac8: 40a4063b subw a2,s0,a0 + 2acc: 00ca5b63 bge s4,a2,2ae2 + 2ad0: 65a2 ld a1,8(sp) + 2ad2: e81e sd t2,16(sp) + 2ad4: 00cd0d3b addw s10,s10,a2 + 2ad8: 9982 jalr s3 + 2ada: 80050be3 beqz a0,22f0 + 2ade: 63c2 ld t2,16(sp) + 2ae0: 842a mv s0,a0 + while (fw) { + 2ae2: f60915e3 bnez s2,2a4c + 2ae6: 892a mv s2,a0 + 2ae8: f21fe06f j 1a08 + stbsp__cb_buf_clamp(i, fw); + 2aec: 87ca mv a5,s2 + fw -= i; + 2aee: 4901 li s2,0 + if ((((stbsp__uintptr)bf) & 3) == 0) + 2af0: b759 j 2a76 + } else if (fl & STBSP__LEADINGPLUS) { + 2af2: 002e7713 andi a4,t3,2 + 2af6: 94070663 beqz a4,1c42 + sign[0] = 1; + 2afa: 670d lui a4,0x3 + 2afc: b0170713 addi a4,a4,-1279 # 2b01 + 2b00: 06e11423 sh a4,104(sp) + 2b04: 93eff06f j 1c42 + if (((stbsp__uintptr)sn & 3) == 0) + 2b08: 87d6 mv a5,s5 + while (limit >= 4) { + 2b0a: 470d li a4,3 + 2b0c: 22d77763 bgeu a4,a3,2d3a + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2b10: feff05b7 lui a1,0xfeff0 + 2b14: 80808637 lui a2,0x80808 + 2b18: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe8707> + 2b1c: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff80800888> + while (limit >= 4) { + 2b20: 480d li a6,3 + 2b22: a029 j 2b2c + limit -= 4; + 2b24: 36f1 addiw a3,a3,-4 + sn += 4; + 2b26: 0791 addi a5,a5,4 + while (limit >= 4) { + 2b28: 20d87963 bgeu a6,a3,2d3a + stbsp__uint32 v = *(stbsp__uint32 *)sn; + 2b2c: 4398 lw a4,0(a5) + if ((v - 0x01010101) & (~v) & 0x80808080UL) + 2b2e: 00b7053b addw a0,a4,a1 + 2b32: fff74713 not a4,a4 + 2b36: 8f69 and a4,a4,a0 + 2b38: 8f71 and a4,a4,a2 + 2b3a: 2701 sext.w a4,a4 + 2b3c: d765 beqz a4,2b24 + 2b3e: 02069713 slli a4,a3,0x20 + 2b42: 9301 srli a4,a4,0x20 + 2b44: 973e add a4,a4,a5 + 2b46: a021 j 2b4e + ++sn; + 2b48: 0785 addi a5,a5,1 + while (limit && *sn) { + 2b4a: 00e78663 beq a5,a4,2b56 + 2b4e: 0007c683 lbu a3,0(a5) + 2b52: fafd bnez a3,2b48 + 2b54: 873e mv a4,a5 + return (stbsp__uint32)(sn - s); + 2b56: 41570733 sub a4,a4,s5 + 2b5a: 0007069b sext.w a3,a4 + if (pr < (stbsp__int32)l) + 2b5e: fff6c793 not a5,a3 + 2b62: 97fd srai a5,a5,0x3f + 2b64: 8f7d and a4,a4,a5 + 2b66: 0007079b sext.w a5,a4 + n = pr + lead[0] + tail[0] + tz; + 2b6a: 863e mv a2,a5 + pr -= l; + 2b6c: 9f15 subw a4,a4,a3 + return (stbsp__uint32)(sn - s); + 2b6e: d2eff06f j 209c + for (n = 1; n < l; n++) + 2b72: 4605 li a2,1 + 2b74: aed663e3 bltu a2,a3,265a + 2b78: 0c210613 addi a2,sp,194 + 2b7c: bcf5 j 2678 + l = pr + 1; + 2b7e: 4685 li a3,1 + if ((l - 1) > (stbsp__uint32)pr) + 2b80: 4501 li a0,0 + *s++ = sn[0]; + 2b82: 0c110613 addi a2,sp,193 + 2b86: bccd j 2678 + 2b88: 4591 li a1,4 + 2b8a: 4f91 li t6,4 + n = (dp >= 100) ? 5 : 4; + 2b8c: 4e91 li t4,4 + 2b8e: be21 j 26a6 + 2b90: 4a85 li s5,1 + 2b92: 80000737 lui a4,0x80000 + pr = 1; // default is 6 + 2b96: 4a05 li s4,1 + 2b98: 920ff06f j 1cb8 + dp = (n64) ? -1022 : 0; + 2b9c: 4601 li a2,0 + 2b9e: c119 beqz a0,2ba4 + 2ba0: c0200613 li a2,-1022 + *bits = b & ((((stbsp__uint64)1) << 52) - 1); + 2ba4: 872a mv a4,a0 + 2ba6: a3aff06f j 1de0 + stbsp__chk_cb_buf(1); + 2baa: 2601 sext.w a2,a2 + 2bac: 1fe00793 li a5,510 + 2bb0: f2c7c0e3 blt a5,a2,2ad0 + 2bb4: bd61 j 2a4c + tail[0] = (char)n; + 2bb6: 4795 li a5,5 + tail[n] = '0' + dp % 10; + 2bb8: 06b10aa3 sb a1,117(sp) + tail[0] = (char)n; + 2bbc: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2bc0: 4815 li a6,5 + 2bc2: 4f95 li t6,5 + n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); + 2bc4: 4595 li a1,5 + 2bc6: b935 j 2802 + l = pr + dp; + 2bc8: 011786bb addw a3,a5,a7 + 2bcc: d0b6 sw a3,96(sp) + 2bce: b6d5 j 27b2 + s = (char *)"null"; + 2bd0: 00002a97 auipc s5,0x2 + 2bd4: 468a8a93 addi s5,s5,1128 # 5038 <_GLOBAL__sub_I__ZSt3cin+0x90> + 2bd8: c80ff06f j 2058 + } else if (fl & STBSP__LEADINGPLUS) { + 2bdc: 002e7793 andi a5,t3,2 + 2be0: 1c079c63 bnez a5,2db8 + sign[0] = 0; + 2be4: 4689 li a3,2 + 2be6: 4a09 li s4,2 + 2be8: 4805 li a6,1 + 2bea: 9e8ff06f j 1dd2 + sign[0] = 1; + 2bee: 670d lui a4,0x3 + 2bf0: b0170713 addi a4,a4,-1279 # 2b01 + 2bf4: 06e11423 sh a4,104(sp) + 2bf8: b86ff06f j 1f7e + pr = 0; + 2bfc: 4881 li a7,0 + 2bfe: f1ffe06f j 1b1c + *s++ = '0'; + 2c02: 03000713 li a4,48 + 2c06: 0ce10023 sb a4,192(sp) + if (pr) + 2c0a: 1a088c63 beqz a7,2dc2 + *s++ = stbsp__period; + 2c0e: 00004717 auipc a4,0x4 + 2c12: dbe74703 lbu a4,-578(a4) # 69cc + n = -dp; + 2c16: 40f007bb negw a5,a5 + *s++ = stbsp__period; + 2c1a: 0ce100a3 sb a4,193(sp) + if ((stbsp__int32)n > pr) + 2c1e: 0007871b sext.w a4,a5 + 2c22: 00e8d363 bge a7,a4,2c28 + 2c26: 87c6 mv a5,a7 + 2c28: 0007871b sext.w a4,a5 + if ((stbsp__int32)(l + n) > pr) + 2c2c: 00d7833b addw t1,a5,a3 + 2c30: 883a mv a6,a4 + while (i) { + 2c32: 0c210793 addi a5,sp,194 + *s++ = '0'; + 2c36: 03000513 li a0,48 + while (i) { + 2c3a: e711 bnez a4,2c46 + 2c3c: a271 j 2dc8 + if ((((stbsp__uintptr)s) & 3) == 0) + 2c3e: 0037f613 andi a2,a5,3 + 2c42: 18060563 beqz a2,2dcc + *s++ = '0'; + 2c46: 85ba mv a1,a4 + 2c48: 00a78023 sb a0,0(a5) + --i; + 2c4c: 377d addiw a4,a4,-1 + *s++ = '0'; + 2c4e: 0785 addi a5,a5,1 + while (i) { + 2c50: f77d bnez a4,2c3e + if ((stbsp__int32)(l + n) > pr) + 2c52: 0003071b sext.w a4,t1 + 2c56: 4108863b subw a2,a7,a6 + 2c5a: 00e8d563 bge a7,a4,2c64 + l = pr - n; + 2c5e: 0006069b sext.w a3,a2 + 2c62: d0b2 sw a2,96(sp) + while (i) { + 2c64: c68d beqz a3,2c8e + 2c66: 7566 ld a0,120(sp) + 2c68: 02069813 slli a6,a3,0x20 + 2c6c: 02085813 srli a6,a6,0x20 + 2c70: 01078eb3 add t4,a5,a6 + 2c74: 85aa mv a1,a0 + 2c76: 873e mv a4,a5 + *s++ = *sn++; + 2c78: 0005c883 lbu a7,0(a1) + 2c7c: 0705 addi a4,a4,1 + while (i) { + 2c7e: 0585 addi a1,a1,1 + *s++ = *sn++; + 2c80: ff170fa3 sb a7,-1(a4) + while (i) { + 2c84: ffd71ae3 bne a4,t4,2c78 + 2c88: 9542 add a0,a0,a6 + 2c8a: 97c2 add a5,a5,a6 + 2c8c: fcaa sd a0,120(sp) + l = (stbsp__uint32)(s - (num + 64)); + 2c8e: 0c010a93 addi s5,sp,192 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2c92: 030002b7 lui t0,0x3000 + tz = pr - (n + l); + 2c96: 40d608bb subw a7,a2,a3 + l = (stbsp__uint32)(s - (num + 64)); + 2c9a: 415787b3 sub a5,a5,s5 + cs = 1 + (3 << 24); // how many tens did we write (for commas below) + 2c9e: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8809> + 2ca0: fbcff06f j 245c + *--s = '0'; + 2ca4: 03000793 li a5,48 + 2ca8: fefa8fa3 sb a5,-1(s5) + l = 1; + 2cac: 030002b7 lui t0,0x3000 + 2cb0: 4785 li a5,1 + 2cb2: d0be sw a5,96(sp) + *--s = '0'; + 2cb4: 1afd addi s5,s5,-1 + l = 1; + 2cb6: 4605 li a2,1 + 2cb8: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8809> + 2cba: 4685 li a3,1 + 2cbc: b9dd j 29b2 + } else if (fl & STBSP__LEADINGSPACE) { + 2cbe: 004e7713 andi a4,t3,4 + 2cc2: e74d bnez a4,2d6c + } else if (fl & STBSP__LEADINGPLUS) { + 2cc4: 8b89 andi a5,a5,2 + 2cc6: efd9 bnez a5,2d64 + sign[0] = 0; + 2cc8: 06010423 sb zero,104(sp) + 2ccc: 4a01 li s4,0 + 2cce: b9c9 j 29a0 + if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) + 2cd0: 051c addi a5,sp,640 + 2cd2: cafa89e3 beq s5,a5,2984 + ++s; + 2cd6: 0a85 addi s5,s5,1 + l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); + 2cd8: 415786bb subw a3,a5,s5 + 2cdc: b165 j 2984 + n = dp - n; + 2cde: 40ce87bb subw a5,t4,a2 + if ((fl & STBSP__TRIPLET_COMMA) == 0) { + 2ce2: 12030e63 beqz t1,2e1e + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2ce6: 4511 li a0,4 + 2ce8: 03000613 li a2,48 + *s++ = stbsp__comma; + 2cec: 00170693 addi a3,a4,1 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2cf0: 00030563 beqz t1,2cfa + 2cf4: 2585 addiw a1,a1,1 + 2cf6: 00a58963 beq a1,a0,2d08 + 2cfa: 8736 mv a4,a3 + --n; + 2cfc: 37fd addiw a5,a5,-1 + 2cfe: fec70fa3 sb a2,-1(a4) + while (n) { + 2d02: f7ed bnez a5,2cec + 2d04: f38ff06f j 243c + 2d08: fe568fa3 sb t0,-1(a3) + *s++ = stbsp__comma; + 2d0c: 0709 addi a4,a4,2 + if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { + 2d0e: 4585 li a1,1 + 2d10: b7f5 j 2cfc + sign[0] = 0; + 2d12: 06010423 sb zero,104(sp) + 2d16: f1dfe06f j 1c32 + tail[idx + 1] = "_kMGT"[fl >> 24]; + 2d1a: 00002697 auipc a3,0x2 + 2d1e: 32e68693 addi a3,a3,814 # 5048 <_GLOBAL__sub_I__ZSt3cin+0xa0> + 2d22: 9736 add a4,a4,a3 + 2d24: 00074683 lbu a3,0(a4) + 2d28: 1088 addi a0,sp,96 + 2d2a: 22060713 addi a4,a2,544 + 2d2e: 972a add a4,a4,a0 + 2d30: ded70823 sb a3,-528(a4) + idx++; + 2d34: 8fb2 mv t6,a2 + 2d36: fb0ff06f j 24e6 + while (limit && *sn) { + 2d3a: e00692e3 bnez a3,2b3e + 2d3e: bd19 j 2b54 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2d40: 0008071b sext.w a4,a6 + 2d44: 86c2 mv a3,a6 + 2d46: 88d2 mv a7,s4 + pr = -dp + ((pr > (stbsp__int32)l) ? (stbsp__int32) l : pr); + 2d48: 863a mv a2,a4 + 2d4a: 00e8d363 bge a7,a4,2d50 + 2d4e: 8646 mv a2,a7 + 2d50: 40f608bb subw a7,a2,a5 + 2d54: 814ff06f j 1d68 + divisor = 1000.0f; + 2d58: 00003797 auipc a5,0x3 + 2d5c: a907b787 fld fa5,-1392(a5) # 57e8 + 2d60: dd5fe06f j 1b34 + 2d64: 678d lui a5,0x3 + 2d66: b017879b addiw a5,a5,-1279 # 2b01 + 2d6a: b13d j 2998 + 2d6c: 6789 lui a5,0x2 + 2d6e: 2785 addiw a5,a5,1 # 2001 + 2d70: b125 j 2998 + *s++ = stbsp__period; + 2d72: 00004517 auipc a0,0x4 + 2d76: c5a54503 lbu a0,-934(a0) # 69cc + sn = s; + 2d7a: 0c210793 addi a5,sp,194 + n = pr; + 2d7e: 0008869b sext.w a3,a7 + *s++ = stbsp__period; + 2d82: 0ca100a3 sb a0,193(sp) + sn = s; + 2d86: fcbe sd a5,120(sp) + if (n > 13) + 2d88: 4535 li a0,13 + n64 <<= 4; + 2d8a: 0712 slli a4,a4,0x4 + if (n > 13) + 2d8c: 8836 mv a6,a3 + 2d8e: 00d57363 bgeu a0,a3,2d94 + 2d92: 4835 li a6,13 + 2d94: 0008051b sext.w a0,a6 + while (n--) { + 2d98: 387d addiw a6,a6,-1 + if (pr > (stbsp__int32)n) + 2d9a: af1542e3 blt a0,a7,287e + tz = 0; + 2d9e: 4881 li a7,0 + 2da0: b4cd j 2882 + while (n < l) { + 2da2: 87ba mv a5,a4 + 2da4: bc1d j 27da + tail[0] = (char)n; + 2da6: 478d li a5,3 + 2da8: 06f10823 sb a5,112(sp) + tail[n] = '0' + dp % 10; + 2dac: 06b109a3 sb a1,115(sp) + 2db0: 480d li a6,3 + 2db2: 4f8d li t6,3 + 2db4: 8e4ff06f j 1e98 + 2db8: 678d lui a5,0x3 + 2dba: b017879b addiw a5,a5,-1279 # 2b01 + 2dbe: 80aff06f j 1dc8 + if (pr) + 2dc2: 8336 mv t1,a3 + *s++ = '0'; + 2dc4: 0c110793 addi a5,sp,193 + while (i) { + 2dc8: 4801 li a6,0 + 2dca: b561 j 2c52 + while (i >= 4) { + 2dcc: 460d li a2,3 + 2dce: 04e65663 bge a2,a4,2e1a + 2dd2: ffb5871b addiw a4,a1,-5 + 2dd6: 0027559b srliw a1,a4,0x2 + 2dda: 0015861b addiw a2,a1,1 + 2dde: 060a slli a2,a2,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2de0: 30303537 lui a0,0x30303 + 2de4: 963e add a2,a2,a5 + 2de6: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fb838> + 2dea: c388 sw a0,0(a5) + s += 4; + 2dec: 0791 addi a5,a5,4 + while (i >= 4) { + 2dee: fef61ee3 bne a2,a5,2dea + 2df2: 0025959b slliw a1,a1,0x2 + 2df6: 9f0d subw a4,a4,a1 + while (i) { + 2df8: e4070de3 beqz a4,2c52 + *s++ = '0'; + 2dfc: 03000513 li a0,48 + while (i) { + 2e00: 00f705bb addw a1,a4,a5 + *s++ = '0'; + 2e04: 0605 addi a2,a2,1 + while (i) { + 2e06: 00060e9b sext.w t4,a2 + *s++ = '0'; + 2e0a: fea60fa3 sb a0,-1(a2) + while (i) { + 2e0e: ffd59be3 bne a1,t4,2e04 + 2e12: 1702 slli a4,a4,0x20 + 2e14: 9301 srli a4,a4,0x20 + 2e16: 97ba add a5,a5,a4 + 2e18: bd2d j 2c52 + while (i >= 4) { + 2e1a: 863e mv a2,a5 + 2e1c: b7c5 j 2dfc + if ((((stbsp__uintptr)s) & 3) == 0) + 2e1e: 00377693 andi a3,a4,3 + 2e22: ce81 beqz a3,2e3a + *s++ = '0'; + 2e24: 03000693 li a3,48 + 2e28: 00d70023 sb a3,0(a4) + --n; + 2e2c: 37fd addiw a5,a5,-1 + *s++ = '0'; + 2e2e: 0705 addi a4,a4,1 + while (n) { + 2e30: e0078663 beqz a5,243c + if ((((stbsp__uintptr)s) & 3) == 0) + 2e34: 00377613 andi a2,a4,3 + 2e38: fa65 bnez a2,2e28 + while (n >= 4) { + 2e3a: 468d li a3,3 + 2e3c: eaf6f5e3 bgeu a3,a5,2ce6 + 2e40: ffc7869b addiw a3,a5,-4 + 2e44: 0026d69b srliw a3,a3,0x2 + 2e48: 2685 addiw a3,a3,1 + 2e4a: 068a slli a3,a3,0x2 + *(stbsp__uint32 *)s = 0x30303030; + 2e4c: 30303637 lui a2,0x30303 + 2e50: 96ba add a3,a3,a4 + 2e52: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fb838> + 2e56: c310 sw a2,0(a4) + s += 4; + 2e58: 0711 addi a4,a4,4 + while (n >= 4) { + 2e5a: fed71ee3 bne a4,a3,2e56 + 2e5e: 8b8d andi a5,a5,3 + while (n) { + 2e60: e80793e3 bnez a5,2ce6 + 2e64: dd8ff06f j 243c + if (((stbsp__uintptr)sn & 3) == 0) + 2e68: 87d6 mv a5,s5 + l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); + 2e6a: 56fd li a3,-1 + 2e6c: b155 j 2b10 + if ((dp <= -4) || (dp > (stbsp__int32)n)) { + 2e6e: 5775 li a4,-3 + 2e70: 00e7ce63 blt a5,a4,2e8c + 2e74: f6fa4663 blt s4,a5,25e0 + if (dp > 0) { + 2e78: ecf054e3 blez a5,2d40 + 2e7c: 86c2 mv a3,a6 + pr = (dp < (stbsp__int32)l) ? l - dp : 0; + 2e7e: 4881 li a7,0 + 2e80: ee9fe06f j 1d68 + while (i--) + 2e84: fff7869b addiw a3,a5,-1 + 2e88: 8722 mv a4,s0 + 2e8a: b105 j 2aaa + if (pr > (stbsp__int32)l) + 2e8c: 0008071b sext.w a4,a6 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2e90: 7ae6 ld s5,120(sp) + if (pr > (stbsp__int32)l) + 2e92: 86c2 mv a3,a6 + 2e94: 88d2 mv a7,s4 + 2e96: f7475d63 bge a4,s4,2610 + while ((l > 1) && (pr) && (sn[l - 1] == '0')) { + 2e9a: 8542 mv a0,a6 + 2e9c: f56ff06f j 25f2 + +0000000000002ea0 : +{ + 2ea0: 715d addi sp,sp,-80 + va_start(va, fmt); + 2ea2: 02010313 addi t1,sp,32 +{ + 2ea6: f032 sd a2,32(sp) + 2ea8: f436 sd a3,40(sp) + 2eaa: f83a sd a4,48(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2eac: 86ae mv a3,a1 + 2eae: 862a mv a2,a0 + 2eb0: 871a mv a4,t1 + 2eb2: 4581 li a1,0 + 2eb4: 4501 li a0,0 +{ + 2eb6: ec06 sd ra,24(sp) + 2eb8: fc3e sd a5,56(sp) + 2eba: e0c2 sd a6,64(sp) + 2ebc: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2ebe: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2ec0: bc6fe0ef jal 1286 +} + 2ec4: 60e2 ld ra,24(sp) + 2ec6: 6161 addi sp,sp,80 + 2ec8: 8082 ret + +0000000000002eca : +{ + 2eca: dd010113 addi sp,sp,-560 + 2ece: 22813023 sd s0,544(sp) + 2ed2: 20913c23 sd s1,536(sp) + 2ed6: 22113423 sd ra,552(sp) + 2eda: 84ae mv s1,a1 + 2edc: 842a mv s0,a0 + 2ede: 88b2 mv a7,a2 + 2ee0: 8736 mv a4,a3 + if ( (count == 0) && !buf ) + 2ee2: e591 bnez a1,2eee + 2ee4: c141 beqz a0,2f64 + c.buf = buf; + 2ee6: e02a sd a0,0(sp) + c.count = count; + 2ee8: e402 sd zero,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 2eea: 0810 addi a2,sp,16 + 2eec: a089 j 2f2e + if (len > c->count) + 2eee: 0015a593 slti a1,a1,1 + 2ef2: 40b005bb negw a1,a1 + 2ef6: 8de5 and a1,a1,s1 + c.buf = buf; + 2ef8: e02a sd a0,0(sp) + c.count = count; + 2efa: c426 sw s1,8(sp) + c.length = 0; + 2efc: c602 sw zero,12(sp) + if (len > c->count) + 2efe: 2581 sext.w a1,a1 + if (len) { + 2f00: 0804d663 bgez s1,2f8c + s = buf; + 2f04: 4781 li a5,0 + if (buf != c->buf) { + 2f06: c911 beqz a0,2f1a + *d++ = *s++; + 2f08: 0007c803 lbu a6,0(a5) + 2f0c: 0785 addi a5,a5,1 + 2f0e: 00f40533 add a0,s0,a5 + 2f12: ff050fa3 sb a6,-1(a0) + } while (s < se); + 2f16: feb7e9e3 bltu a5,a1,2f08 + c->count -= len; + 2f1a: 40b486bb subw a3,s1,a1 + c->buf += len; + 2f1e: 95a2 add a1,a1,s0 + 2f20: e02e sd a1,0(sp) + c->count -= len; + 2f22: c436 sw a3,8(sp) + return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can + 2f24: 1ff00793 li a5,511 + 2f28: fcd7d1e3 bge a5,a3,2eea + 2f2c: 6602 ld a2,0(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__clamp_callback, &c, stbsp__clamp_callback(0,&c,0), fmt, va ); + 2f2e: 86c6 mv a3,a7 + 2f30: 858a mv a1,sp + 2f32: ffffd517 auipc a0,0xffffd + 2f36: 21650513 addi a0,a0,534 # 148 + 2f3a: b4cfe0ef jal 1286 + l = (int)( c.buf - buf ); + 2f3e: 6782 ld a5,0(sp) + 2f40: 9f81 subw a5,a5,s0 + if ( l >= count ) // should never be greater, only equal (or less) than count + 2f42: 0097c463 blt a5,s1,2f4a + l = count - 1; + 2f46: fff4879b addiw a5,s1,-1 + buf[l] = 0; + 2f4a: 943e add s0,s0,a5 + 2f4c: 00040023 sb zero,0(s0) +} + 2f50: 22813083 ld ra,552(sp) + 2f54: 22013403 ld s0,544(sp) + 2f58: 4532 lw a0,12(sp) + 2f5a: 21813483 ld s1,536(sp) + 2f5e: 23010113 addi sp,sp,560 + 2f62: 8082 ret + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 2f64: 86b2 mv a3,a2 + 2f66: 858a mv a1,sp + 2f68: 0810 addi a2,sp,16 + 2f6a: ffffd517 auipc a0,0xffffd + 2f6e: 22c50513 addi a0,a0,556 # 196 + c.length = 0; + 2f72: c602 sw zero,12(sp) + STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); + 2f74: b12fe0ef jal 1286 +} + 2f78: 22813083 ld ra,552(sp) + 2f7c: 22013403 ld s0,544(sp) + 2f80: 4532 lw a0,12(sp) + 2f82: 21813483 ld s1,536(sp) + 2f86: 23010113 addi sp,sp,560 + 2f8a: 8082 ret + 2f8c: 86a6 mv a3,s1 + 2f8e: bf59 j 2f24 + +0000000000002f90 : +{ + 2f90: 715d addi sp,sp,-80 + va_start(va, fmt); + 2f92: 02810313 addi t1,sp,40 +{ + 2f96: f436 sd a3,40(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 2f98: 869a mv a3,t1 +{ + 2f9a: ec06 sd ra,24(sp) + 2f9c: f83a sd a4,48(sp) + 2f9e: fc3e sd a5,56(sp) + 2fa0: e0c2 sd a6,64(sp) + 2fa2: e4c6 sd a7,72(sp) + va_start(va, fmt); + 2fa4: e41a sd t1,8(sp) + result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); + 2fa6: f25ff0ef jal 2eca +} + 2faa: 60e2 ld ra,24(sp) + 2fac: 6161 addi sp,sp,80 + 2fae: 8082 ret + +0000000000002fb0 : +{ + 2fb0: 86ae mv a3,a1 + 2fb2: 8732 mv a4,a2 + return STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); + 2fb4: 4581 li a1,0 + 2fb6: 862a mv a2,a0 + 2fb8: 4501 li a0,0 + 2fba: accfe06f j 1286 + +0000000000002fbe : +{ + 2fbe: 7119 addi sp,sp,-128 + va_start(ap, format); + 2fc0: 05010313 addi t1,sp,80 +{ + 2fc4: e0a2 sd s0,64(sp) + 2fc6: fc26 sd s1,56(sp) + 2fc8: 842a mv s0,a0 + 2fca: e8b2 sd a2,80(sp) + _vprintf_core(&ctx, format, ap); + 2fcc: 0808 addi a0,sp,16 + ctx.limit = size; + 2fce: 54fd li s1,-1 + _vprintf_core(&ctx, format, ap); + 2fd0: 861a mv a2,t1 +{ + 2fd2: e486 sd ra,72(sp) + 2fd4: ecb6 sd a3,88(sp) + 2fd6: f0ba sd a4,96(sp) + 2fd8: f4be sd a5,104(sp) + 2fda: f8c2 sd a6,112(sp) + 2fdc: fcc6 sd a7,120(sp) + va_start(ap, format); + 2fde: e41a sd t1,8(sp) + ctx.buf = str; + 2fe0: e822 sd s0,16(sp) + ctx.limit = size; + 2fe2: ec26 sd s1,24(sp) + ctx.written = 0; + 2fe4: f002 sd zero,32(sp) + ctx.stream = NULL; + 2fe6: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 2fe8: 02c000ef jal 3014 <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 2fec: 7502 ld a0,32(sp) + 2fee: 00950b63 beq a0,s1,3004 + str[ctx.written] = '\0'; + 2ff2: 942a add s0,s0,a0 + 2ff4: 00040023 sb zero,0(s0) +} + 2ff8: 60a6 ld ra,72(sp) + 2ffa: 6406 ld s0,64(sp) + 2ffc: 74e2 ld s1,56(sp) + 2ffe: 2501 sext.w a0,a0 + 3000: 6109 addi sp,sp,128 + 3002: 8082 ret + str[size - 1] = '\0'; + 3004: fe040f23 sb zero,-2(s0) +} + 3008: 60a6 ld ra,72(sp) + 300a: 6406 ld s0,64(sp) + 300c: 74e2 ld s1,56(sp) + 300e: 2501 sext.w a0,a0 + 3010: 6109 addi sp,sp,128 + 3012: 8082 ret + +0000000000003014 <_vprintf_core.constprop.0.isra.0>: +static int _vprintf_core(_OutContext *ctx, const char *format, va_list ap) + 3014: 7129 addi sp,sp,-320 + 3016: edee sd s11,216(sp) + 3018: fe06 sd ra,312(sp) + 301a: 8dae mv s11,a1 + while (*p) + 301c: 0005c583 lbu a1,0(a1) + 3020: cde9 beqz a1,30fa <_vprintf_core.constprop.0.isra.0+0xe6> + 3022: f626 sd s1,296(sp) + 3024: f24a sd s2,288(sp) + 3026: ee4e sd s3,280(sp) + 3028: e656 sd s5,264(sp) + 302a: f9e2 sd s8,240(sp) + 302c: fa22 sd s0,304(sp) + 302e: ea52 sd s4,272(sp) + 3030: e25a sd s6,256(sp) + 3032: fdde sd s7,248(sp) + 3034: f5e6 sd s9,232(sp) + 3036: f1ea sd s10,224(sp) + 3038: 84aa mv s1,a0 + 303a: 8c32 mv s8,a2 + if (*p != '%') + 303c: 02500a93 li s5,37 + 3040: 49c1 li s3,16 + 3042: 00002917 auipc s2,0x2 + 3046: 2da90913 addi s2,s2,730 # 531c <_GLOBAL__sub_I__ZSt3cin+0x374> + 304a: a039 j 3058 <_vprintf_core.constprop.0.isra.0+0x44> + _out_char(ctx, spec); + 304c: 8526 mv a0,s1 + 304e: 952fe0ef jal 11a0 <_out_char> + while (*p) + 3052: 000dc583 lbu a1,0(s11) + 3056: c5d9 beqz a1,30e4 <_vprintf_core.constprop.0.isra.0+0xd0> + _out_char(ctx, *p++); + 3058: 0d85 addi s11,s11,1 + if (*p != '%') + 305a: ff5599e3 bne a1,s5,304c <_vprintf_core.constprop.0.isra.0+0x38> + int flag_left = 0, flag_zero = 0, flag_plus = 0, flag_space = 0, flag_hash = 0; + 305e: 4501 li a0,0 + 3060: 4881 li a7,0 + 3062: 4581 li a1,0 + 3064: 4b01 li s6,0 + 3066: 4a01 li s4,0 + if (*p == '-') + 3068: 000dcc83 lbu s9,0(s11) + 306c: fe0c871b addiw a4,s9,-32 + 3070: 0ff77713 zext.b a4,a4 + 3074: 00e9e763 bltu s3,a4,3082 <_vprintf_core.constprop.0.isra.0+0x6e> + 3078: 070a slli a4,a4,0x2 + 307a: 974a add a4,a4,s2 + 307c: 4318 lw a4,0(a4) + 307e: 974a add a4,a4,s2 + 3080: 8702 jr a4 + if (*p == '*') + 3082: 02a00793 li a5,42 + 3086: 16fc9c63 bne s9,a5,31fe <_vprintf_core.constprop.0.isra.0+0x1ea> + width = va_arg(ap, int); + 308a: 000c2403 lw s0,0(s8) + 308e: 0c21 addi s8,s8,8 + if (width < 0) + 3090: 00045563 bgez s0,309a <_vprintf_core.constprop.0.isra.0+0x86> + width = -width; + 3094: 4080043b negw s0,s0 + flag_left = 1; + 3098: 4a05 li s4,1 + while (*p >= '0' && *p <= '9') + 309a: 001dcc83 lbu s9,1(s11) + p++; + 309e: 0d85 addi s11,s11,1 + if (*p == '.') + 30a0: 02e00793 li a5,46 + int precision = -1; + 30a4: 5bfd li s7,-1 + if (*p == '.') + 30a6: 18fc8a63 beq s9,a5,323a <_vprintf_core.constprop.0.isra.0+0x226> + if (*p == 'l') + 30aa: 06c00693 li a3,108 + 30ae: 8666 mv a2,s9 + 30b0: 1adc8663 beq s9,a3,325c <_vprintf_core.constprop.0.isra.0+0x248> + else if (*p == 'z') + 30b4: 07a00693 li a3,122 + p++; + 30b8: 0d85 addi s11,s11,1 + else if (*p == 'z') + 30ba: 24dc8163 beq s9,a3,32fc <_vprintf_core.constprop.0.isra.0+0x2e8> + if (!spec) + 30be: 06400693 li a3,100 + 30c2: 4adc8163 beq s9,a3,3564 <_vprintf_core.constprop.0.isra.0+0x550> + 30c6: 06400693 li a3,100 + int len_mod = 0; + 30ca: 4e81 li t4,0 + 30cc: 1b96e663 bltu a3,s9,3278 <_vprintf_core.constprop.0.isra.0+0x264> + 30d0: 04700693 li a3,71 + 30d4: 2796e463 bltu a3,s9,333c <_vprintf_core.constprop.0.isra.0+0x328> + 30d8: 04400693 li a3,68 + 30dc: 0596e363 bltu a3,s9,3122 <_vprintf_core.constprop.0.isra.0+0x10e> + 30e0: 240c9363 bnez s9,3326 <_vprintf_core.constprop.0.isra.0+0x312> + 30e4: 7452 ld s0,304(sp) + 30e6: 74b2 ld s1,296(sp) + 30e8: 7912 ld s2,288(sp) + 30ea: 69f2 ld s3,280(sp) + 30ec: 6a52 ld s4,272(sp) + 30ee: 6ab2 ld s5,264(sp) + 30f0: 6b12 ld s6,256(sp) + 30f2: 7bee ld s7,248(sp) + 30f4: 7c4e ld s8,240(sp) + 30f6: 7cae ld s9,232(sp) + 30f8: 7d0e ld s10,224(sp) +} + 30fa: 70f2 ld ra,312(sp) + 30fc: 6dee ld s11,216(sp) + 30fe: 6131 addi sp,sp,320 + 3100: 8082 ret + if (*p == '-') + 3102: 4585 li a1,1 + p++; + 3104: 0d85 addi s11,s11,1 + if (*p == '-') + 3106: b78d j 3068 <_vprintf_core.constprop.0.isra.0+0x54> + 3108: 4505 li a0,1 + p++; + 310a: 0d85 addi s11,s11,1 + while (1) + 310c: bfb1 j 3068 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 310e: 4885 li a7,1 + p++; + 3110: 0d85 addi s11,s11,1 + while (1) + 3112: bf99 j 3068 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 3114: 4b05 li s6,1 + p++; + 3116: 0d85 addi s11,s11,1 + while (1) + 3118: bf81 j 3068 <_vprintf_core.constprop.0.isra.0+0x54> + if (*p == '-') + 311a: 4a05 li s4,1 + p++; + 311c: 0d85 addi s11,s11,1 + while (1) + 311e: b7a9 j 3068 <_vprintf_core.constprop.0.isra.0+0x54> + char spec = *p++; + 3120: 8dbe mv s11,a5 + fmt_tmp[f_idx++] = '%'; + 3122: 02500693 li a3,37 + 3126: 02d10823 sb a3,48(sp) + 312a: 4d05 li s10,1 + if (flag_left) + 312c: 000a0763 beqz s4,313a <_vprintf_core.constprop.0.isra.0+0x126> + fmt_tmp[f_idx++] = '-'; + 3130: 02d00693 li a3,45 + 3134: 02d108a3 sb a3,49(sp) + 3138: 4d09 li s10,2 + if (flag_zero) + 313a: 000b0c63 beqz s6,3152 <_vprintf_core.constprop.0.isra.0+0x13e> + fmt_tmp[f_idx++] = '0'; + 313e: 0c0d0793 addi a5,s10,192 + 3142: 0818 addi a4,sp,16 + 3144: 00e786b3 add a3,a5,a4 + 3148: 03000613 li a2,48 + 314c: f6c68023 sb a2,-160(a3) + 3150: 2d05 addiw s10,s10,1 + if (flag_plus) + 3152: c999 beqz a1,3168 <_vprintf_core.constprop.0.isra.0+0x154> + fmt_tmp[f_idx++] = '+'; + 3154: 0c0d0793 addi a5,s10,192 + 3158: 0818 addi a4,sp,16 + 315a: 00e786b3 add a3,a5,a4 + 315e: 02b00613 li a2,43 + 3162: f6c68023 sb a2,-160(a3) + 3166: 2d05 addiw s10,s10,1 + if (flag_space) + 3168: 00088c63 beqz a7,3180 <_vprintf_core.constprop.0.isra.0+0x16c> + fmt_tmp[f_idx++] = ' '; + 316c: 0c0d0793 addi a5,s10,192 + 3170: 0818 addi a4,sp,16 + 3172: 00e786b3 add a3,a5,a4 + 3176: 02000613 li a2,32 + 317a: f6c68023 sb a2,-160(a3) + 317e: 2d05 addiw s10,s10,1 + if (flag_hash) + 3180: c919 beqz a0,3196 <_vprintf_core.constprop.0.isra.0+0x182> + fmt_tmp[f_idx++] = '#'; + 3182: 0c0d0793 addi a5,s10,192 + 3186: 0818 addi a4,sp,16 + 3188: 00e786b3 add a3,a5,a4 + 318c: 02300613 li a2,35 + 3190: f6c68023 sb a2,-160(a3) + 3194: 2d05 addiw s10,s10,1 + if (width > 0) + 3196: 03010a13 addi s4,sp,48 + 319a: 28804563 bgtz s0,3424 <_vprintf_core.constprop.0.isra.0+0x410> + if (precision >= 0) + 319e: 260bd763 bgez s7,340c <_vprintf_core.constprop.0.isra.0+0x3f8> + fmt_tmp[f_idx++] = spec; + 31a2: 0c0d0793 addi a5,s10,192 + 31a6: 0818 addi a4,sp,16 + 31a8: 00e78633 add a2,a5,a4 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31ac: 000c3683 ld a3,0(s8) + fmt_tmp[f_idx] = '\0'; + 31b0: 001d071b addiw a4,s10,1 + 31b4: 0c070793 addi a5,a4,192 + 31b8: 0818 addi a4,sp,16 + fmt_tmp[f_idx++] = spec; + 31ba: f7960023 sb s9,-160(a2) + fmt_tmp[f_idx] = '\0'; + 31be: 973e add a4,a4,a5 + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31c0: 08000593 li a1,128 + 31c4: 8652 mv a2,s4 + 31c6: 0888 addi a0,sp,80 + fmt_tmp[f_idx] = '\0'; + 31c8: f6070023 sb zero,-160(a4) + stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); + 31cc: dc5ff0ef jal 2f90 + for (int i = 0; f_buf[i] != '\0'; i++) + 31d0: 05014583 lbu a1,80(sp) + double f_val = va_arg(ap, double); + 31d4: 0c21 addi s8,s8,8 + for (int i = 0; f_buf[i] != '\0'; i++) + 31d6: 05110413 addi s0,sp,81 + 31da: e6058ce3 beqz a1,3052 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 31de: 8526 mv a0,s1 + 31e0: fc1fd0ef jal 11a0 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 31e4: 00044583 lbu a1,0(s0) + 31e8: 0405 addi s0,s0,1 + 31ea: e60584e3 beqz a1,3052 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, f_buf[i]); + 31ee: 8526 mv a0,s1 + 31f0: fb1fd0ef jal 11a0 <_out_char> + for (int i = 0; f_buf[i] != '\0'; i++) + 31f4: 00044583 lbu a1,0(s0) + 31f8: 0405 addi s0,s0,1 + 31fa: f1f5 bnez a1,31de <_vprintf_core.constprop.0.isra.0+0x1ca> + 31fc: bd99 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + while (*p >= '0' && *p <= '9') + 31fe: fd0c869b addiw a3,s9,-48 + 3202: 0ff6f313 zext.b t1,a3 + 3206: 4725 li a4,9 + int width = 0; + 3208: 4401 li s0,0 + while (*p >= '0' && *p <= '9') + 320a: 4625 li a2,9 + 320c: e8676ae3 bltu a4,t1,30a0 <_vprintf_core.constprop.0.isra.0+0x8c> + 3210: 001dcc83 lbu s9,1(s11) + width = width * 10 + (*p - '0'); + 3214: 0024171b slliw a4,s0,0x2 + 3218: 9f21 addw a4,a4,s0 + 321a: 0017171b slliw a4,a4,0x1 + 321e: 00e6843b addw s0,a3,a4 + while (*p >= '0' && *p <= '9') + 3222: fd0c869b addiw a3,s9,-48 + 3226: 0ff6f713 zext.b a4,a3 + p++; + 322a: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 322c: fee672e3 bgeu a2,a4,3210 <_vprintf_core.constprop.0.isra.0+0x1fc> + if (*p == '.') + 3230: 02e00793 li a5,46 + int precision = -1; + 3234: 5bfd li s7,-1 + if (*p == '.') + 3236: e6fc9ae3 bne s9,a5,30aa <_vprintf_core.constprop.0.isra.0+0x96> + if (*p == '*') + 323a: 001dcc83 lbu s9,1(s11) + 323e: 02a00793 li a5,42 + 3242: 16fc9f63 bne s9,a5,33c0 <_vprintf_core.constprop.0.isra.0+0x3ac> + while (*p >= '0' && *p <= '9') + 3246: 002dcc83 lbu s9,2(s11) + if (*p == 'l') + 324a: 06c00693 li a3,108 + precision = va_arg(ap, int); + 324e: 000c2b83 lw s7,0(s8) + p++; + 3252: 0d89 addi s11,s11,2 + precision = va_arg(ap, int); + 3254: 0c21 addi s8,s8,8 + if (*p == 'l') + 3256: 8666 mv a2,s9 + 3258: e4dc9ee3 bne s9,a3,30b4 <_vprintf_core.constprop.0.isra.0+0xa0> + if (*p == 'l') + 325c: 001dcc83 lbu s9,1(s11) + 3260: 08cc8d63 beq s9,a2,32fa <_vprintf_core.constprop.0.isra.0+0x2e6> + char spec = *p++; + 3264: 06400693 li a3,100 + 3268: 0d89 addi s11,s11,2 + if (!spec) + 326a: 4cdc8c63 beq s9,a3,3742 <_vprintf_core.constprop.0.isra.0+0x72e> + 326e: 06400693 li a3,100 + len_mod = 1; + 3272: 4e85 li t4,1 + 3274: e596fee3 bgeu a3,s9,30d0 <_vprintf_core.constprop.0.isra.0+0xbc> + 3278: f9bc869b addiw a3,s9,-101 + 327c: 0ff6f693 zext.b a3,a3 + 3280: 464d li a2,19 + 3282: 12d66863 bltu a2,a3,33b2 <_vprintf_core.constprop.0.isra.0+0x39e> + 3286: 4e05 li t3,1 + 3288: 00091637 lui a2,0x91 + 328c: 00de1333 sll t1,t3,a3 + 3290: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x89018> + 3294: 00c37633 and a2,t1,a2 + 3298: 1a061463 bnez a2,3440 <_vprintf_core.constprop.0.isra.0+0x42c> + 329c: 00737313 andi t1,t1,7 + 32a0: e80311e3 bnez t1,3122 <_vprintf_core.constprop.0.isra.0+0x10e> + 32a4: 4639 li a2,14 + 32a6: 10c69663 bne a3,a2,33b2 <_vprintf_core.constprop.0.isra.0+0x39e> + const char *s = va_arg(ap, char *); + 32aa: 000c3c83 ld s9,0(s8) + if (!s) + 32ae: 420c8863 beqz s9,36de <_vprintf_core.constprop.0.isra.0+0x6ca> + while (*tmp && (precision < 0 || len < precision)) + 32b2: 000cc683 lbu a3,0(s9) + 32b6: 38068863 beqz a3,3646 <_vprintf_core.constprop.0.isra.0+0x632> + const char *tmp = s; + 32ba: 8666 mv a2,s9 + int len = 0; + 32bc: 4681 li a3,0 + while (*tmp && (precision < 0 || len < precision)) + 32be: 00db8863 beq s7,a3,32ce <_vprintf_core.constprop.0.isra.0+0x2ba> + 32c2: 00164583 lbu a1,1(a2) + len++; + 32c6: 2685 addiw a3,a3,1 + tmp++; + 32c8: 0605 addi a2,a2,1 + while (*tmp && (precision < 0 || len < precision)) + 32ca: f9f5 bnez a1,32be <_vprintf_core.constprop.0.isra.0+0x2aa> + 32cc: 8bb6 mv s7,a3 + int padding = (width > len) ? width - len : 0; + 32ce: 268bc563 blt s7,s0,3538 <_vprintf_core.constprop.0.isra.0+0x524> + for (int i = 0; i < len; i++) + 32d2: 4401 li s0,0 + 32d4: 020b8163 beqz s7,32f6 <_vprintf_core.constprop.0.isra.0+0x2e2> + 32d8: 4d01 li s10,0 + _out_char(ctx, s[i]); + 32da: 01ac86b3 add a3,s9,s10 + 32de: 0006c583 lbu a1,0(a3) + 32e2: 8526 mv a0,s1 + for (int i = 0; i < len; i++) + 32e4: 0d05 addi s10,s10,1 + _out_char(ctx, s[i]); + 32e6: ebbfd0ef jal 11a0 <_out_char> + for (int i = 0; i < len; i++) + 32ea: 000d069b sext.w a3,s10 + 32ee: ff76c6e3 blt a3,s7,32da <_vprintf_core.constprop.0.isra.0+0x2c6> + if (flag_left) + 32f2: 260a1463 bnez s4,355a <_vprintf_core.constprop.0.isra.0+0x546> + const char *s = va_arg(ap, char *); + 32f6: 0c21 addi s8,s8,8 + 32f8: bba9 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + p++; + 32fa: 0d89 addi s11,s11,2 + char spec = *p++; + 32fc: 000dcc83 lbu s9,0(s11) + 3300: 06400693 li a3,100 + 3304: 001d8793 addi a5,s11,1 + if (!spec) + 3308: 3edc8063 beq s9,a3,36e8 <_vprintf_core.constprop.0.isra.0+0x6d4> + 330c: 0796ea63 bltu a3,s9,3380 <_vprintf_core.constprop.0.isra.0+0x36c> + 3310: 04700693 li a3,71 + 3314: 0f96e263 bltu a3,s9,33f8 <_vprintf_core.constprop.0.isra.0+0x3e4> + 3318: 04400693 li a3,68 + 331c: e196e2e3 bltu a3,s9,3120 <_vprintf_core.constprop.0.isra.0+0x10c> + 3320: dc0c82e3 beqz s9,30e4 <_vprintf_core.constprop.0.isra.0+0xd0> + char spec = *p++; + 3324: 8dbe mv s11,a5 + _out_char(ctx, '%'); + 3326: 02500593 li a1,37 + 332a: 8526 mv a0,s1 + 332c: e75fd0ef jal 11a0 <_out_char> + if (spec != '%') + 3330: 02500713 li a4,37 + 3334: d0ec8fe3 beq s9,a4,3052 <_vprintf_core.constprop.0.isra.0+0x3e> + _out_char(ctx, spec); + 3338: 85e6 mv a1,s9 + 333a: bb09 j 304c <_vprintf_core.constprop.0.isra.0+0x38> + 333c: 05800693 li a3,88 + 3340: 2edc8263 beq s9,a3,3624 <_vprintf_core.constprop.0.isra.0+0x610> + 3344: 06300713 li a4,99 + 3348: 06ec9563 bne s9,a4,33b2 <_vprintf_core.constprop.0.isra.0+0x39e> + char c = (char)va_arg(ap, int); + 334c: 000c4c83 lbu s9,0(s8) + int padding = (width > 1) ? width - 1 : 0; + 3350: 8722 mv a4,s0 + 3352: 00804363 bgtz s0,3358 <_vprintf_core.constprop.0.isra.0+0x344> + 3356: 4705 li a4,1 + 3358: fff7041b addiw s0,a4,-1 + if (!flag_left) + 335c: 3c0a0463 beqz s4,3724 <_vprintf_core.constprop.0.isra.0+0x710> + _out_char(ctx, c); + 3360: 85e6 mv a1,s9 + 3362: 8526 mv a0,s1 + 3364: e3dfd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 3368: 4a01 li s4,0 + 336a: d451 beqz s0,32f6 <_vprintf_core.constprop.0.isra.0+0x2e2> + _out_char(ctx, ' '); + 336c: 02000593 li a1,32 + 3370: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3372: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3374: e2dfd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 3378: ff441ae3 bne s0,s4,336c <_vprintf_core.constprop.0.isra.0+0x358> + const char *s = va_arg(ap, char *); + 337c: 0c21 addi s8,s8,8 + 337e: b9d1 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + 3380: f9bc861b addiw a2,s9,-101 + 3384: 0ff67613 zext.b a2,a2 + 3388: 46cd li a3,19 + 338a: 40c6e963 bltu a3,a2,379c <_vprintf_core.constprop.0.isra.0+0x788> + 338e: 00091337 lui t1,0x91 + 3392: 4685 li a3,1 + 3394: 00c696b3 sll a3,a3,a2 + 3398: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x89018> + 339c: 0066f333 and t1,a3,t1 + 33a0: 34031c63 bnez t1,36f8 <_vprintf_core.constprop.0.isra.0+0x6e4> + 33a4: 8a9d andi a3,a3,7 + 33a6: d6069de3 bnez a3,3120 <_vprintf_core.constprop.0.isra.0+0x10c> + 33aa: 46b9 li a3,14 + char spec = *p++; + 33ac: 8dbe mv s11,a5 + 33ae: eed60ee3 beq a2,a3,32aa <_vprintf_core.constprop.0.isra.0+0x296> + _out_char(ctx, '%'); + 33b2: 02500593 li a1,37 + 33b6: 8526 mv a0,s1 + 33b8: de9fd0ef jal 11a0 <_out_char> + _out_char(ctx, spec); + 33bc: 85e6 mv a1,s9 + 33be: b179 j 304c <_vprintf_core.constprop.0.isra.0+0x38> + while (*p >= '0' && *p <= '9') + 33c0: fd0c869b addiw a3,s9,-48 + 33c4: 0ff6fe13 zext.b t3,a3 + 33c8: 4625 li a2,9 + p++; + 33ca: 0d85 addi s11,s11,1 + precision = 0; + 33cc: 4b81 li s7,0 + while (*p >= '0' && *p <= '9') + 33ce: 4325 li t1,9 + 33d0: cdc66de3 bltu a2,t3,30aa <_vprintf_core.constprop.0.isra.0+0x96> + precision = precision * 10 + (*p - '0'); + 33d4: 002b961b slliw a2,s7,0x2 + while (*p >= '0' && *p <= '9') + 33d8: 001dcc83 lbu s9,1(s11) + precision = precision * 10 + (*p - '0'); + 33dc: 0176073b addw a4,a2,s7 + 33e0: 0017171b slliw a4,a4,0x1 + 33e4: 00e68bbb addw s7,a3,a4 + while (*p >= '0' && *p <= '9') + 33e8: fd0c869b addiw a3,s9,-48 + 33ec: 0ff6f613 zext.b a2,a3 + p++; + 33f0: 0d85 addi s11,s11,1 + while (*p >= '0' && *p <= '9') + 33f2: fec371e3 bgeu t1,a2,33d4 <_vprintf_core.constprop.0.isra.0+0x3c0> + 33f6: b955 j 30aa <_vprintf_core.constprop.0.isra.0+0x96> + 33f8: 05800693 li a3,88 + 33fc: 3cdc8d63 beq s9,a3,37d6 <_vprintf_core.constprop.0.isra.0+0x7c2> + 3400: 06300713 li a4,99 + char spec = *p++; + 3404: 8dbe mv s11,a5 + 3406: f4ec83e3 beq s9,a4,334c <_vprintf_core.constprop.0.isra.0+0x338> + 340a: b765 j 33b2 <_vprintf_core.constprop.0.isra.0+0x39e> + f_idx += sprintf(&fmt_tmp[f_idx], ".%d", precision); + 340c: 01aa0533 add a0,s4,s10 + 3410: 865e mv a2,s7 + 3412: 00002597 auipc a1,0x2 + 3416: c8e58593 addi a1,a1,-882 # 50a0 <_GLOBAL__sub_I__ZSt3cin+0xf8> + 341a: ba5ff0ef jal 2fbe + 341e: 00ad0d3b addw s10,s10,a0 + 3422: b341 j 31a2 <_vprintf_core.constprop.0.isra.0+0x18e> + f_idx += sprintf(&fmt_tmp[f_idx], "%d", width); + 3424: 01aa0533 add a0,s4,s10 + 3428: 8622 mv a2,s0 + 342a: 00002597 auipc a1,0x2 + 342e: c6e58593 addi a1,a1,-914 # 5098 <_GLOBAL__sub_I__ZSt3cin+0xf0> + 3432: b8dff0ef jal 2fbe + 3436: 00ad0d3b addw s10,s10,a0 + if (precision >= 0) + 343a: d60bc4e3 bltz s7,31a2 <_vprintf_core.constprop.0.isra.0+0x18e> + 343e: b7f9 j 340c <_vprintf_core.constprop.0.isra.0+0x3f8> + int is_signed = (spec == 'd' || spec == 'i'); + 3440: 06900693 li a3,105 + 3444: 10dc8e63 beq s9,a3,3560 <_vprintf_core.constprop.0.isra.0+0x54c> + val = (uint64)va_arg(ap, void *); + 3448: 008c0793 addi a5,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 344c: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 3450: e43e sd a5,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3452: 38dc9d63 bne s9,a3,37ec <_vprintf_core.constprop.0.isra.0+0x7d8> + else if (len_mod == 1) + 3456: 33ce8963 beq t4,t3,3788 <_vprintf_core.constprop.0.isra.0+0x774> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 345a: 000c6e03 lwu t3,0(s8) + 345e: 85f6 mv a1,t4 + 3460: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3462: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3464: 00002f97 auipc t6,0x2 + 3468: c04f8f93 addi t6,t6,-1020 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + if (val == 0) + 346c: 120e0363 beqz t3,3592 <_vprintf_core.constprop.0.isra.0+0x57e> + 3470: 01010293 addi t0,sp,16 + sign_char = '-'; + 3474: 8616 mv a2,t0 + 3476: 86f2 mv a3,t3 + buf[i++] = digits[val % base]; + 3478: 0266f8b3 remu a7,a3,t1 + 347c: 8f32 mv t5,a2 + while (val != 0) + 347e: 0605 addi a2,a2,1 + 3480: 8eb6 mv t4,a3 + buf[i++] = digits[val % base]; + 3482: 98fe add a7,a7,t6 + 3484: 0008c883 lbu a7,0(a7) + val /= base; + 3488: 0266d6b3 divu a3,a3,t1 + buf[i++] = digits[val % base]; + 348c: ff160fa3 sb a7,-1(a2) + while (val != 0) + 3490: fe6ef4e3 bgeu t4,t1,3478 <_vprintf_core.constprop.0.isra.0+0x464> + buf[i++] = digits[val % base]; + 3494: 405f0f3b subw t5,t5,t0 + 3498: 2f05 addiw t5,t5,1 + if (precision >= 0) + 349a: 100bc363 bltz s7,35a0 <_vprintf_core.constprop.0.isra.0+0x58c> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 349e: 1d7f4d63 blt t5,s7,3678 <_vprintf_core.constprop.0.isra.0+0x664> + if (precision == 0 && val == 0) + 34a2: 340b9163 bnez s7,37e4 <_vprintf_core.constprop.0.isra.0+0x7d0> + 34a6: 200e0763 beqz t3,36b4 <_vprintf_core.constprop.0.isra.0+0x6a0> + for (int i = digit_len - 1; i >= 0; i--) + 34aa: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 34ae: 07000693 li a3,112 + for (int i = digit_len - 1; i >= 0; i--) + 34b2: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 34b4: 28dc8e63 beq s9,a3,3750 <_vprintf_core.constprop.0.isra.0+0x73c> + 34b8: 2a051663 bnez a0,3764 <_vprintf_core.constprop.0.isra.0+0x750> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 34bc: 00bf05bb addw a1,t5,a1 + 34c0: 8d52 mv s10,s4 + 34c2: 4b01 li s6,0 + char *prefix_str = NULL; + 34c4: 4c81 li s9,0 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 34c6: 1085d263 bge a1,s0,35ca <_vprintf_core.constprop.0.isra.0+0x5b6> + 34ca: 9c0d subw s0,s0,a1 + if (!flag_left && !flag_zero) + 34cc: 100d0a63 beqz s10,35e0 <_vprintf_core.constprop.0.isra.0+0x5cc> + if (sign_char) + 34d0: 6782 ld a5,0(sp) + 34d2: 10079263 bnez a5,35d6 <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 34d6: 000c8c63 beqz s9,34ee <_vprintf_core.constprop.0.isra.0+0x4da> + _out_char(ctx, prefix_str[0]); + 34da: 000cc583 lbu a1,0(s9) + 34de: 8526 mv a0,s1 + 34e0: cc1fd0ef jal 11a0 <_out_char> + _out_char(ctx, prefix_str[1]); + 34e4: 001cc583 lbu a1,1(s9) + 34e8: 8526 mv a0,s1 + 34ea: cb7fd0ef jal 11a0 <_out_char> + int total_zeros = prec_zeros + ((flag_zero && !flag_left) ? padding : 0); + 34ee: 180b0263 beqz s6,3672 <_vprintf_core.constprop.0.isra.0+0x65e> + 34f2: 100a1863 bnez s4,3602 <_vprintf_core.constprop.0.isra.0+0x5ee> + 34f6: 008b8bbb addw s7,s7,s0 + for (int i = 0; i < total_zeros; i++) + 34fa: 2a0b8363 beqz s7,37a0 <_vprintf_core.constprop.0.isra.0+0x78c> + 34fe: 4c81 li s9,0 + _out_char(ctx, '0'); + 3500: 03000593 li a1,48 + 3504: 8526 mv a0,s1 + for (int i = 0; i < total_zeros; i++) + 3506: 2c85 addiw s9,s9,1 + _out_char(ctx, '0'); + 3508: c99fd0ef jal 11a0 <_out_char> + for (int i = 0; i < total_zeros; i++) + 350c: ff7c9ae3 bne s9,s7,3500 <_vprintf_core.constprop.0.isra.0+0x4ec> + for (int i = digit_len - 1; i >= 0; i--) + 3510: 57fd li a5,-1 + 3512: 00fc0f63 beq s8,a5,3530 <_vprintf_core.constprop.0.isra.0+0x51c> + 3516: 01010c93 addi s9,sp,16 + 351a: 9ce2 add s9,s9,s8 + 351c: 00f10c13 addi s8,sp,15 + _out_char(ctx, num_buf[i]); + 3520: 000cc583 lbu a1,0(s9) + 3524: 8526 mv a0,s1 + for (int i = digit_len - 1; i >= 0; i--) + 3526: 1cfd addi s9,s9,-1 + _out_char(ctx, num_buf[i]); + 3528: c79fd0ef jal 11a0 <_out_char> + for (int i = digit_len - 1; i >= 0; i--) + 352c: ff9c1ae3 bne s8,s9,3520 <_vprintf_core.constprop.0.isra.0+0x50c> + if (flag_left) + 3530: 0c0a1e63 bnez s4,360c <_vprintf_core.constprop.0.isra.0+0x5f8> + char spec = *p++; + 3534: 6c22 ld s8,8(sp) + 3536: be31 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + int padding = (width > len) ? width - len : 0; + 3538: 4174043b subw s0,s0,s7 + if (!flag_left) + 353c: 100a0a63 beqz s4,3650 <_vprintf_core.constprop.0.isra.0+0x63c> + for (int i = 0; i < len; i++) + 3540: d80b9ce3 bnez s7,32d8 <_vprintf_core.constprop.0.isra.0+0x2c4> + for (int i = 0; i < padding; i++) + 3544: 4a01 li s4,0 + _out_char(ctx, ' '); + 3546: 02000593 li a1,32 + 354a: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 354c: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 354e: c53fd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 3552: ff441ae3 bne s0,s4,3546 <_vprintf_core.constprop.0.isra.0+0x532> + const char *s = va_arg(ap, char *); + 3556: 0c21 addi s8,s8,8 + 3558: bced j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + for (int i = 0; i < padding; i++) + 355a: f46d bnez s0,3544 <_vprintf_core.constprop.0.isra.0+0x530> + const char *s = va_arg(ap, char *); + 355c: 0c21 addi s8,s8,8 + 355e: bcd5 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + else if (len_mod == 1) + 3560: 1fce8163 beq t4,t3,3742 <_vprintf_core.constprop.0.isra.0+0x72e> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 3564: 000c2e03 lw t3,0(s8) + 3568: 008c0793 addi a5,s8,8 + 356c: e43e sd a5,8(sp) + int64 sval = (int64)val; + 356e: 86f2 mv a3,t3 + if (sval < 0) + 3570: 1406cb63 bltz a3,36c6 <_vprintf_core.constprop.0.isra.0+0x6b2> + sign_char = '+'; + 3574: 02b00793 li a5,43 + 3578: e03e sd a5,0(sp) + else if (flag_plus) + 357a: e589 bnez a1,3584 <_vprintf_core.constprop.0.isra.0+0x570> + else if (flag_space) + 357c: 00589793 slli a5,a7,0x5 + 3580: e03e sd a5,0(sp) + 3582: 85c6 mv a1,a7 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3584: 4329 li t1,10 + 3586: 00002f97 auipc t6,0x2 + 358a: ae2f8f93 addi t6,t6,-1310 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + if (val == 0) + 358e: ee0e11e3 bnez t3,3470 <_vprintf_core.constprop.0.isra.0+0x45c> + buf[i++] = '0'; + 3592: 03000693 li a3,48 + 3596: 00d10823 sb a3,16(sp) + return i; + 359a: 4f05 li t5,1 + if (precision >= 0) + 359c: f00bd1e3 bgez s7,349e <_vprintf_core.constprop.0.isra.0+0x48a> + for (int i = digit_len - 1; i >= 0; i--) + 35a0: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35a4: 07000893 li a7,112 + if (!flag_left && !flag_zero) + 35a8: 016a6d33 or s10,s4,s6 + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 35ac: 4b81 li s7,0 + for (int i = digit_len - 1; i >= 0; i--) + 35ae: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 35b0: 0d1c9f63 bne s9,a7,368e <_vprintf_core.constprop.0.isra.0+0x67a> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 35b4: 00002c97 auipc s9,0x2 + 35b8: accc8c93 addi s9,s9,-1332 # 5080 <_GLOBAL__sub_I__ZSt3cin+0xd8> + prefix_len += 2; + 35bc: 2589 addiw a1,a1,2 + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 35be: 017585bb addw a1,a1,s7 + 35c2: 01e585bb addw a1,a1,t5 + 35c6: f085c2e3 blt a1,s0,34ca <_vprintf_core.constprop.0.isra.0+0x4b6> + if (!flag_left && !flag_zero) + 35ca: 080d0f63 beqz s10,3668 <_vprintf_core.constprop.0.isra.0+0x654> + if (sign_char) + 35ce: 6782 ld a5,0(sp) + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 35d0: 4401 li s0,0 + if (sign_char) + 35d2: f00782e3 beqz a5,34d6 <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, sign_char); + 35d6: 6582 ld a1,0(sp) + 35d8: 8526 mv a0,s1 + 35da: bc7fd0ef jal 11a0 <_out_char> + 35de: bde5 j 34d6 <_vprintf_core.constprop.0.isra.0+0x4c2> + _out_char(ctx, ' '); + 35e0: 02000593 li a1,32 + 35e4: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 35e6: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 35e8: bb9fd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 35ec: efa402e3 beq s0,s10,34d0 <_vprintf_core.constprop.0.isra.0+0x4bc> + _out_char(ctx, ' '); + 35f0: 02000593 li a1,32 + 35f4: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 35f6: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 35f8: ba9fd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 35fc: ffa412e3 bne s0,s10,35e0 <_vprintf_core.constprop.0.isra.0+0x5cc> + 3600: bdc1 j 34d0 <_vprintf_core.constprop.0.isra.0+0x4bc> + for (int i = 0; i < total_zeros; i++) + 3602: ee0b9ee3 bnez s7,34fe <_vprintf_core.constprop.0.isra.0+0x4ea> + for (int i = digit_len - 1; i >= 0; i--) + 3606: 577d li a4,-1 + 3608: f0ec17e3 bne s8,a4,3516 <_vprintf_core.constprop.0.isra.0+0x502> + for (int i = 0; i < padding; i++) + 360c: d405 beqz s0,3534 <_vprintf_core.constprop.0.isra.0+0x520> + 360e: 4a01 li s4,0 + _out_char(ctx, ' '); + 3610: 02000593 li a1,32 + 3614: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3616: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 3618: b89fd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 361c: fe8a1ae3 bne s4,s0,3610 <_vprintf_core.constprop.0.isra.0+0x5fc> + char spec = *p++; + 3620: 6c22 ld s8,8(sp) + 3622: bc05 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + val = (uint64)va_arg(ap, void *); + 3624: 008c0793 addi a5,s8,8 + 3628: e43e sd a5,8(sp) + else if (len_mod == 1) + 362a: 180e9163 bnez t4,37ac <_vprintf_core.constprop.0.isra.0+0x798> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 362e: 000c6e03 lwu t3,0(s8) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3632: 4581 li a1,0 + 3634: 05800c93 li s9,88 + 3638: e002 sd zero,0(sp) + 363a: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 363c: 00002f97 auipc t6,0x2 + 3640: a14f8f93 addi t6,t6,-1516 # 5050 <_GLOBAL__sub_I__ZSt3cin+0xa8> + 3644: b525 j 346c <_vprintf_core.constprop.0.isra.0+0x458> + int padding = (width > len) ? width - len : 0; + 3646: ca8058e3 blez s0,32f6 <_vprintf_core.constprop.0.isra.0+0x2e2> + if (!flag_left) + 364a: ee0a1de3 bnez s4,3544 <_vprintf_core.constprop.0.isra.0+0x530> + int len = 0; + 364e: 4b81 li s7,0 + for (int i = 0; i < padding; i++) + 3650: 4d01 li s10,0 + _out_char(ctx, ' '); + 3652: 02000593 li a1,32 + 3656: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 3658: 2d05 addiw s10,s10,1 + _out_char(ctx, ' '); + 365a: b47fd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 365e: fe8d1ae3 bne s10,s0,3652 <_vprintf_core.constprop.0.isra.0+0x63e> + for (int i = 0; i < len; i++) + 3662: c60b9be3 bnez s7,32d8 <_vprintf_core.constprop.0.isra.0+0x2c4> + 3666: b941 j 32f6 <_vprintf_core.constprop.0.isra.0+0x2e2> + if (sign_char) + 3668: 6782 ld a5,0(sp) + 366a: 4401 li s0,0 + 366c: f7ad bnez a5,35d6 <_vprintf_core.constprop.0.isra.0+0x5c2> + if (prefix_str) + 366e: e60c96e3 bnez s9,34da <_vprintf_core.constprop.0.isra.0+0x4c6> + for (int i = 0; i < total_zeros; i++) + 3672: e80b96e3 bnez s7,34fe <_vprintf_core.constprop.0.isra.0+0x4ea> + 3676: bd69 j 3510 <_vprintf_core.constprop.0.isra.0+0x4fc> + int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; + 3678: 41eb8bbb subw s7,s7,t5 + 367c: 8d52 mv s10,s4 + 367e: 4b01 li s6,0 + for (int i = digit_len - 1; i >= 0; i--) + 3680: ffff0c1b addiw s8,t5,-1 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3684: 07000893 li a7,112 + for (int i = digit_len - 1; i >= 0; i--) + 3688: 8662 mv a2,s8 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 368a: f31c85e3 beq s9,a7,35b4 <_vprintf_core.constprop.0.isra.0+0x5a0> + 368e: cd09 beqz a0,36a8 <_vprintf_core.constprop.0.isra.0+0x694> + 3690: 000e0c63 beqz t3,36a8 <_vprintf_core.constprop.0.isra.0+0x694> + 3694: 07800513 li a0,120 + for (int i = digit_len - 1; i >= 0; i--) + 3698: 00060c1b sext.w s8,a2 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 369c: f0ac8ce3 beq s9,a0,35b4 <_vprintf_core.constprop.0.isra.0+0x5a0> + 36a0: 05800613 li a2,88 + 36a4: 12cc8463 beq s9,a2,37cc <_vprintf_core.constprop.0.isra.0+0x7b8> + int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; + 36a8: 00bb85bb addw a1,s7,a1 + 36ac: 01e585bb addw a1,a1,t5 + char *prefix_str = NULL; + 36b0: 4c81 li s9,0 + 36b2: bd11 j 34c6 <_vprintf_core.constprop.0.isra.0+0x4b2> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 36b4: 07000693 li a3,112 + 36b8: 8d52 mv s10,s4 + 36ba: 4b01 li s6,0 + 36bc: 08dc8d63 beq s9,a3,3756 <_vprintf_core.constprop.0.isra.0+0x742> + 36c0: 5c7d li s8,-1 + char *prefix_str = NULL; + 36c2: 4c81 li s9,0 + 36c4: b509 j 34c6 <_vprintf_core.constprop.0.isra.0+0x4b2> + sign_char = '-'; + 36c6: 02d00793 li a5,45 + val = (uint64)(-sval); + 36ca: 40d00e33 neg t3,a3 + 36ce: 4585 li a1,1 + 36d0: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 36d2: 00002f97 auipc t6,0x2 + 36d6: 996f8f93 addi t6,t6,-1642 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + sign_char = '-'; + 36da: e03e sd a5,0(sp) + 36dc: bb51 j 3470 <_vprintf_core.constprop.0.isra.0+0x45c> + s = "(null)"; + 36de: 00002c97 auipc s9,0x2 + 36e2: 9b2c8c93 addi s9,s9,-1614 # 5090 <_GLOBAL__sub_I__ZSt3cin+0xe8> + 36e6: bed1 j 32ba <_vprintf_core.constprop.0.isra.0+0x2a6> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 36e8: 000c3683 ld a3,0(s8) + 36ec: 008c0713 addi a4,s8,8 + 36f0: e43a sd a4,8(sp) + 36f2: 8dbe mv s11,a5 + 36f4: 8e36 mv t3,a3 + if (is_signed) + 36f6: bdad j 3570 <_vprintf_core.constprop.0.isra.0+0x55c> + int is_signed = (spec == 'd' || spec == 'i'); + 36f8: 06900693 li a3,105 + 36fc: fedc86e3 beq s9,a3,36e8 <_vprintf_core.constprop.0.isra.0+0x6d4> + val = (uint64)va_arg(ap, void *); + 3700: 008c0713 addi a4,s8,8 + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3704: 07800693 li a3,120 + val = (uint64)va_arg(ap, void *); + 3708: e43a sd a4,8(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 370a: 06dc9063 bne s9,a3,376a <_vprintf_core.constprop.0.isra.0+0x756> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 370e: 000c3e03 ld t3,0(s8) + 3712: 8dbe mv s11,a5 + 3714: 4581 li a1,0 + 3716: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3718: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 371a: 00002f97 auipc t6,0x2 + 371e: 94ef8f93 addi t6,t6,-1714 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + 3722: b3a9 j 346c <_vprintf_core.constprop.0.isra.0+0x458> + for (int i = 0; i < padding; i++) + 3724: c809 beqz s0,3736 <_vprintf_core.constprop.0.isra.0+0x722> + _out_char(ctx, ' '); + 3726: 02000593 li a1,32 + 372a: 8526 mv a0,s1 + for (int i = 0; i < padding; i++) + 372c: 2a05 addiw s4,s4,1 + _out_char(ctx, ' '); + 372e: a73fd0ef jal 11a0 <_out_char> + for (int i = 0; i < padding; i++) + 3732: ff441ae3 bne s0,s4,3726 <_vprintf_core.constprop.0.isra.0+0x712> + _out_char(ctx, c); + 3736: 85e6 mv a1,s9 + 3738: 8526 mv a0,s1 + 373a: a67fd0ef jal 11a0 <_out_char> + const char *s = va_arg(ap, char *); + 373e: 0c21 addi s8,s8,8 + 3740: ba09 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 3742: 000c3683 ld a3,0(s8) + 3746: 008c0793 addi a5,s8,8 + 374a: e43e sd a5,8(sp) + 374c: 8e36 mv t3,a3 + if (is_signed) + 374e: b50d j 3570 <_vprintf_core.constprop.0.isra.0+0x55c> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3750: 8d52 mv s10,s4 + 3752: 4b01 li s6,0 + 3754: b585 j 35b4 <_vprintf_core.constprop.0.isra.0+0x5a0> + digit_len = 0; + 3756: 4f01 li t5,0 + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3758: 5c7d li s8,-1 + prefix_str = (spec == 'X') ? "0X" : "0x"; + 375a: 00002c97 auipc s9,0x2 + 375e: 926c8c93 addi s9,s9,-1754 # 5080 <_GLOBAL__sub_I__ZSt3cin+0xd8> + 3762: bda9 j 35bc <_vprintf_core.constprop.0.isra.0+0x5a8> + if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) + 3764: 8d52 mv s10,s4 + 3766: 4b01 li s6,0 + 3768: b735 j 3694 <_vprintf_core.constprop.0.isra.0+0x680> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 376a: 07000693 li a3,112 + 376e: 04dc8263 beq s9,a3,37b2 <_vprintf_core.constprop.0.isra.0+0x79e> + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 3772: 000c3e03 ld t3,0(s8) + 3776: 8dbe mv s11,a5 + 3778: 4581 li a1,0 + 377a: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 377c: 4329 li t1,10 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 377e: 00002f97 auipc t6,0x2 + 3782: 8eaf8f93 addi t6,t6,-1814 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + 3786: b1dd j 346c <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 3788: 000c3e03 ld t3,0(s8) + 378c: 4581 li a1,0 + 378e: e002 sd zero,0(sp) + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 3790: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 3792: 00002f97 auipc t6,0x2 + 3796: 8d6f8f93 addi t6,t6,-1834 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + 379a: b9c9 j 346c <_vprintf_core.constprop.0.isra.0+0x458> + char spec = *p++; + 379c: 8dbe mv s11,a5 + 379e: b911 j 33b2 <_vprintf_core.constprop.0.isra.0+0x39e> + for (int i = digit_len - 1; i >= 0; i--) + 37a0: 577d li a4,-1 + 37a2: 4401 li s0,0 + 37a4: d6ec19e3 bne s8,a4,3516 <_vprintf_core.constprop.0.isra.0+0x502> + char spec = *p++; + 37a8: 6c22 ld s8,8(sp) + 37aa: b065 j 3052 <_vprintf_core.constprop.0.isra.0+0x3e> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 37ac: 000c3e03 ld t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37b0: b549 j 3632 <_vprintf_core.constprop.0.isra.0+0x61e> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37b2: 8dbe mv s11,a5 + val = (uint64)va_arg(ap, void *); + 37b4: 000c3e03 ld t3,0(s8) + 37b8: 4581 li a1,0 + 37ba: 07000c93 li s9,112 + 37be: e002 sd zero,0(sp) + 37c0: 4341 li t1,16 + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37c2: 00002f97 auipc t6,0x2 + 37c6: 8a6f8f93 addi t6,t6,-1882 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + 37ca: b14d j 346c <_vprintf_core.constprop.0.isra.0+0x458> + prefix_str = (spec == 'X') ? "0X" : "0x"; + 37cc: 00002c97 auipc s9,0x2 + 37d0: 8bcc8c93 addi s9,s9,-1860 # 5088 <_GLOBAL__sub_I__ZSt3cin+0xe0> + 37d4: b3e5 j 35bc <_vprintf_core.constprop.0.isra.0+0x5a8> + val = (uint64)va_arg(ap, void *); + 37d6: 008c0713 addi a4,s8,8 + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 37da: 000c3e03 ld t3,0(s8) + val = (uint64)va_arg(ap, void *); + 37de: e43a sd a4,8(sp) + val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); + 37e0: 8dbe mv s11,a5 + 37e2: bd81 j 3632 <_vprintf_core.constprop.0.isra.0+0x61e> + 37e4: 8d52 mv s10,s4 + 37e6: 4b01 li s6,0 + 37e8: 4b81 li s7,0 + 37ea: bd59 j 3680 <_vprintf_core.constprop.0.isra.0+0x66c> + int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; + 37ec: 07000693 li a3,112 + 37f0: fcdc82e3 beq s9,a3,37b4 <_vprintf_core.constprop.0.isra.0+0x7a0> + else if (len_mod == 1) + 37f4: 01ce8c63 beq t4,t3,380c <_vprintf_core.constprop.0.isra.0+0x7f8> + val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); + 37f8: 000c6e03 lwu t3,0(s8) + const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; + 37fc: 4581 li a1,0 + 37fe: e002 sd zero,0(sp) + 3800: 4329 li t1,10 + 3802: 00002f97 auipc t6,0x2 + 3806: 866f8f93 addi t6,t6,-1946 # 5068 <_GLOBAL__sub_I__ZSt3cin+0xc0> + 380a: b18d j 346c <_vprintf_core.constprop.0.isra.0+0x458> + val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); + 380c: 000c3e03 ld t3,0(s8) + if (is_signed) + 3810: b7f5 j 37fc <_vprintf_core.constprop.0.isra.0+0x7e8> + +0000000000003812 : +{ + 3812: 7139 addi sp,sp,-64 + 3814: f822 sd s0,48(sp) + 3816: f426 sd s1,40(sp) + 3818: 842e mv s0,a1 + 381a: 84aa mv s1,a0 + 381c: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 381e: 850a mv a0,sp + 3820: 8636 mv a2,a3 +{ + 3822: fc06 sd ra,56(sp) + ctx.buf = str; + 3824: e026 sd s1,0(sp) + ctx.limit = size; + 3826: e422 sd s0,8(sp) + ctx.written = 0; + 3828: e802 sd zero,16(sp) + ctx.stream = NULL; + 382a: ec02 sd zero,24(sp) + _vprintf_core(&ctx, format, ap); + 382c: fe8ff0ef jal 3014 <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 3830: 6542 ld a0,16(sp) + if (size > 0) + 3832: c411 beqz s0,383e + if (ctx.written < size) + 3834: 00857b63 bgeu a0,s0,384a + str[ctx.written] = '\0'; + 3838: 94aa add s1,s1,a0 + 383a: 00048023 sb zero,0(s1) +} + 383e: 70e2 ld ra,56(sp) + 3840: 7442 ld s0,48(sp) + 3842: 74a2 ld s1,40(sp) + 3844: 2501 sext.w a0,a0 + 3846: 6121 addi sp,sp,64 + 3848: 8082 ret + str[size - 1] = '\0'; + 384a: 94a2 add s1,s1,s0 + 384c: fe048fa3 sb zero,-1(s1) +} + 3850: 70e2 ld ra,56(sp) + 3852: 7442 ld s0,48(sp) + 3854: 74a2 ld s1,40(sp) + 3856: 2501 sext.w a0,a0 + 3858: 6121 addi sp,sp,64 + 385a: 8082 ret + +000000000000385c : +{ + 385c: 7119 addi sp,sp,-128 + 385e: e0a2 sd s0,64(sp) + 3860: fc26 sd s1,56(sp) + 3862: 842e mv s0,a1 + 3864: 84aa mv s1,a0 + 3866: 85b2 mv a1,a2 + _vprintf_core(&ctx, format, ap); + 3868: 0808 addi a0,sp,16 + va_start(ap, format); + 386a: 08b0 addi a2,sp,88 +{ + 386c: e486 sd ra,72(sp) + 386e: ecb6 sd a3,88(sp) + 3870: f0ba sd a4,96(sp) + 3872: f4be sd a5,104(sp) + 3874: f8c2 sd a6,112(sp) + 3876: fcc6 sd a7,120(sp) + va_start(ap, format); + 3878: e432 sd a2,8(sp) + ctx.buf = str; + 387a: e826 sd s1,16(sp) + ctx.limit = size; + 387c: ec22 sd s0,24(sp) + ctx.written = 0; + 387e: f002 sd zero,32(sp) + ctx.stream = NULL; + 3880: f402 sd zero,40(sp) + _vprintf_core(&ctx, format, ap); + 3882: f92ff0ef jal 3014 <_vprintf_core.constprop.0.isra.0> + if (ctx.written < size) + 3886: 7502 ld a0,32(sp) + if (size > 0) + 3888: c411 beqz s0,3894 + if (ctx.written < size) + 388a: 00857b63 bgeu a0,s0,38a0 + str[ctx.written] = '\0'; + 388e: 94aa add s1,s1,a0 + 3890: 00048023 sb zero,0(s1) +} + 3894: 60a6 ld ra,72(sp) + 3896: 6406 ld s0,64(sp) + 3898: 74e2 ld s1,56(sp) + 389a: 2501 sext.w a0,a0 + 389c: 6109 addi sp,sp,128 + 389e: 8082 ret + str[size - 1] = '\0'; + 38a0: 94a2 add s1,s1,s0 + 38a2: fe048fa3 sb zero,-1(s1) +} + 38a6: 60a6 ld ra,72(sp) + 38a8: 6406 ld s0,64(sp) + 38aa: 74e2 ld s1,56(sp) + 38ac: 2501 sext.w a0,a0 + 38ae: 6109 addi sp,sp,128 + 38b0: 8082 ret + +00000000000038b2 : +{ + 38b2: 7119 addi sp,sp,-128 + va_start(ap, format); + 38b4: 04810313 addi t1,sp,72 +{ + 38b8: e4ae sd a1,72(sp) + 38ba: e8b2 sd a2,80(sp) + 38bc: f4be sd a5,104(sp) + _vprintf_core(&ctx, format, ap); + 38be: 85aa mv a1,a0 + ctx.stream = stdout; + 38c0: 00004797 auipc a5,0x4 + 38c4: da07b783 ld a5,-608(a5) # 7660 + _vprintf_core(&ctx, format, ap); + 38c8: 0808 addi a0,sp,16 + 38ca: 861a mv a2,t1 +{ + 38cc: fc06 sd ra,56(sp) + 38ce: ecb6 sd a3,88(sp) + 38d0: f0ba sd a4,96(sp) + 38d2: f8c2 sd a6,112(sp) + 38d4: fcc6 sd a7,120(sp) + va_start(ap, format); + 38d6: e41a sd t1,8(sp) + ctx.buf = NULL; + 38d8: e802 sd zero,16(sp) + ctx.limit = 0; + 38da: ec02 sd zero,24(sp) + ctx.written = 0; + 38dc: f002 sd zero,32(sp) + ctx.stream = stdout; + 38de: f43e sd a5,40(sp) + _vprintf_core(&ctx, format, ap); + 38e0: f34ff0ef jal 3014 <_vprintf_core.constprop.0.isra.0> +} + 38e4: 70e2 ld ra,56(sp) + 38e6: 5502 lw a0,32(sp) + 38e8: 6109 addi sp,sp,128 + 38ea: 8082 ret + +00000000000038ec : +{ + 38ec: 7159 addi sp,sp,-112 + va_start(ap, format); + 38ee: 04010e13 addi t3,sp,64 +{ + 38f2: 8eaa mv t4,a0 + ctx.fd = -1; + 38f4: 537d li t1,-1 +{ + 38f6: e0b2 sd a2,64(sp) + int ret = _vscanf_core(&ctx, format, ap); + 38f8: 0808 addi a0,sp,16 + 38fa: 8672 mv a2,t3 +{ + 38fc: fc06 sd ra,56(sp) + 38fe: e4b6 sd a3,72(sp) + 3900: e8ba sd a4,80(sp) + 3902: ecbe sd a5,88(sp) + 3904: f0c2 sd a6,96(sp) + 3906: f4c6 sd a7,104(sp) + va_start(ap, format); + 3908: e472 sd t3,8(sp) + ctx.buf = str; + 390a: e876 sd t4,16(sp) + ctx.fd = -1; + 390c: cc1a sw t1,24(sp) + ctx.pos = 0; + 390e: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3910: d41a sw t1,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3912: 81efd0ef jal 930 <_vscanf_core.constprop.0> +} + 3916: 70e2 ld ra,56(sp) + 3918: 6165 addi sp,sp,112 + 391a: 8082 ret + +000000000000391c : +{ + 391c: 7119 addi sp,sp,-128 + va_start(ap, format); + 391e: 04810313 addi t1,sp,72 +{ + 3922: e4ae sd a1,72(sp) + 3924: e8b2 sd a2,80(sp) + 3926: f4be sd a5,104(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3928: 85aa mv a1,a0 + ctx.ungotten = -1; + 392a: 57fd li a5,-1 + int ret = _vscanf_core(&ctx, format, ap); + 392c: 0808 addi a0,sp,16 + 392e: 861a mv a2,t1 +{ + 3930: fc06 sd ra,56(sp) + 3932: ecb6 sd a3,88(sp) + 3934: f0ba sd a4,96(sp) + 3936: f8c2 sd a6,112(sp) + 3938: fcc6 sd a7,120(sp) + va_start(ap, format); + 393a: e41a sd t1,8(sp) + ctx.buf = NULL; + 393c: e802 sd zero,16(sp) + ctx.fd = STDIN_FD; + 393e: cc02 sw zero,24(sp) + ctx.pos = 0; + 3940: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3942: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3944: fedfc0ef jal 930 <_vscanf_core.constprop.0> +} + 3948: 70e2 ld ra,56(sp) + 394a: 6109 addi sp,sp,128 + 394c: 8082 ret + +000000000000394e : +{ + 394e: 1101 addi sp,sp,-32 + 3950: e426 sd s1,8(sp) + 3952: 84ae mv s1,a1 + 3954: e04a sd s2,0(sp) + if (strcmp(mode, "r") == 0) + 3956: 00001597 auipc a1,0x1 + 395a: 75258593 addi a1,a1,1874 # 50a8 <_GLOBAL__sub_I__ZSt3cin+0x100> +{ + 395e: 892a mv s2,a0 + if (strcmp(mode, "r") == 0) + 3960: 8526 mv a0,s1 +{ + 3962: e822 sd s0,16(sp) + 3964: ec06 sd ra,24(sp) + if (strcmp(mode, "r") == 0) + 3966: 298010ef jal 4bfe + 396a: 842a mv s0,a0 + 396c: c919 beqz a0,3982 + else if (strcmp(mode, "w") == 0) + 396e: 00001597 auipc a1,0x1 + 3972: 74258593 addi a1,a1,1858 # 50b0 <_GLOBAL__sub_I__ZSt3cin+0x108> + 3976: 8526 mv a0,s1 + 3978: 286010ef jal 4bfe + flags = O_WRONLY | O_CREAT | O_TRUNC; + 397c: 24100413 li s0,577 + else if (strcmp(mode, "w") == 0) + 3980: ed39 bnez a0,39de + int64 fd = open(filename, flags); + 3982: 85a2 mv a1,s0 + 3984: 854a mv a0,s2 + 3986: f42fc0ef jal c8 + 398a: 84aa mv s1,a0 + if (fd < 0) + 398c: 06054c63 bltz a0,3a04 + FILE *f = (FILE *)malloc(sizeof(FILE)); + 3990: 42000513 li a0,1056 + 3994: 2f3000ef jal 4486 + 3998: 892a mv s2,a0 + if (!f) + 399a: c53d beqz a0,3a08 + memset(f, 0, sizeof(FILE)); + 399c: 42000613 li a2,1056 + 39a0: 4581 li a1,0 + 39a2: 0ee010ef jal 4a90 + if (fd == 1) + 39a6: 4785 li a5,1 + f->fd = (int)fd; + 39a8: 00992023 sw s1,0(s2) + f->flags = flags; + 39ac: 00892223 sw s0,4(s2) + if (fd == 1) + 39b0: 00f48e63 beq s1,a5,39cc + else if (fd == 2) + 39b4: 4789 li a5,2 + 39b6: 00f48b63 beq s1,a5,39cc + f->buf_mode = 0; + 39ba: 40092e23 sw zero,1052(s2) +} + 39be: 60e2 ld ra,24(sp) + 39c0: 6442 ld s0,16(sp) + 39c2: 64a2 ld s1,8(sp) + 39c4: 854a mv a0,s2 + 39c6: 6902 ld s2,0(sp) + 39c8: 6105 addi sp,sp,32 + 39ca: 8082 ret + 39cc: 60e2 ld ra,24(sp) + 39ce: 6442 ld s0,16(sp) + f->buf_mode = 2; + 39d0: 40992e23 sw s1,1052(s2) +} + 39d4: 854a mv a0,s2 + 39d6: 64a2 ld s1,8(sp) + 39d8: 6902 ld s2,0(sp) + 39da: 6105 addi sp,sp,32 + 39dc: 8082 ret + else if (strcmp(mode, "a") == 0) + 39de: 00001597 auipc a1,0x1 + 39e2: 6da58593 addi a1,a1,1754 # 50b8 <_GLOBAL__sub_I__ZSt3cin+0x110> + 39e6: 8526 mv a0,s1 + 39e8: 216010ef jal 4bfe + flags = O_WRONLY | O_CREAT | O_APPEND; + 39ec: 44100413 li s0,1089 + else if (strcmp(mode, "a") == 0) + 39f0: d949 beqz a0,3982 + else if (strcmp(mode, "r+") == 0) + 39f2: 00001597 auipc a1,0x1 + 39f6: 6ce58593 addi a1,a1,1742 # 50c0 <_GLOBAL__sub_I__ZSt3cin+0x118> + 39fa: 8526 mv a0,s1 + 39fc: 202010ef jal 4bfe + flags = O_RDWR; + 3a00: 4409 li s0,2 + else if (strcmp(mode, "r+") == 0) + 3a02: d141 beqz a0,3982 + return NULL; + 3a04: 4901 li s2,0 + 3a06: bf65 j 39be + close(fd); + 3a08: 8526 mv a0,s1 + 3a0a: ea6fc0ef jal b0 + return NULL; + 3a0e: 4901 li s2,0 + 3a10: b77d j 39be + +0000000000003a12 : + if (!stream) + 3a12: cd29 beqz a0,3a6c + if (stream->buf_write_pos > 0) + 3a14: 41052603 lw a2,1040(a0) +{ + 3a18: 1141 addi sp,sp,-16 + 3a1a: e022 sd s0,0(sp) + 3a1c: e406 sd ra,8(sp) + 3a1e: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3a20: 02c04a63 bgtz a2,3a54 + if (stream != stdin && stream != stdout && stream != stderr) + 3a24: 00004797 auipc a5,0x4 + 3a28: c3c78793 addi a5,a5,-964 # 7660 + 3a2c: 6798 ld a4,8(a5) + 3a2e: 00870e63 beq a4,s0,3a4a + 3a32: 6398 ld a4,0(a5) + 3a34: 00870b63 beq a4,s0,3a4a + 3a38: 6b9c ld a5,16(a5) + 3a3a: 00878863 beq a5,s0,3a4a + close(stream->fd); + 3a3e: 4008 lw a0,0(s0) + 3a40: e70fc0ef jal b0 + free(stream); + 3a44: 8522 mv a0,s0 + 3a46: 1cb000ef jal 4410 +} + 3a4a: 60a2 ld ra,8(sp) + 3a4c: 6402 ld s0,0(sp) + return 0; + 3a4e: 4501 li a0,0 +} + 3a50: 0141 addi sp,sp,16 + 3a52: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3a54: 4108 lw a0,0(a0) + 3a56: 01040593 addi a1,s0,16 + 3a5a: e4efc0ef jal a8 + if (ret < stream->buf_write_pos) + 3a5e: 41042783 lw a5,1040(s0) + 3a62: 00f54763 blt a0,a5,3a70 + stream->buf_write_pos = 0; + 3a66: 40042823 sw zero,1040(s0) + 3a6a: bf6d j 3a24 + return -1; + 3a6c: 557d li a0,-1 +} + 3a6e: 8082 ret + stream->error = 1; + 3a70: 4785 li a5,1 + 3a72: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3a74: 40042823 sw zero,1040(s0) + return EOF; + 3a78: b775 j 3a24 + +0000000000003a7a : + if (!stream) + 3a7a: c121 beqz a0,3aba + if (stream->buf_write_pos > 0) + 3a7c: 41052603 lw a2,1040(a0) +{ + 3a80: 1141 addi sp,sp,-16 + 3a82: e022 sd s0,0(sp) + 3a84: e406 sd ra,8(sp) + 3a86: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3a88: 00c04763 bgtz a2,3a96 + return 0; + 3a8c: 4501 li a0,0 +} + 3a8e: 60a2 ld ra,8(sp) + 3a90: 6402 ld s0,0(sp) + 3a92: 0141 addi sp,sp,16 + 3a94: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3a96: 4108 lw a0,0(a0) + 3a98: 01040593 addi a1,s0,16 + 3a9c: e0cfc0ef jal a8 + if (ret < stream->buf_write_pos) + 3aa0: 41042783 lw a5,1040(s0) + 3aa4: 00f54563 blt a0,a5,3aae + stream->buf_write_pos = 0; + 3aa8: 40042823 sw zero,1040(s0) + 3aac: b7c5 j 3a8c + stream->error = 1; + 3aae: 4785 li a5,1 + 3ab0: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3ab2: 40042823 sw zero,1040(s0) + return EOF; + 3ab6: 557d li a0,-1 + 3ab8: bfd9 j 3a8e + 3aba: 557d li a0,-1 +} + 3abc: 8082 ret + +0000000000003abe : +{ + 3abe: 7159 addi sp,sp,-112 + 3ac0: fc06 sd ra,56(sp) + 3ac2: e0b2 sd a2,64(sp) + 3ac4: e4b6 sd a3,72(sp) + 3ac6: e8ba sd a4,80(sp) + 3ac8: ecbe sd a5,88(sp) + 3aca: f0c2 sd a6,96(sp) + 3acc: f4c6 sd a7,104(sp) + if (!stream) + 3ace: cd19 beqz a0,3aec + va_start(ap, format); + 3ad0: 832a mv t1,a0 + 3ad2: 0090 addi a2,sp,64 + _vprintf_core(&ctx, format, ap); + 3ad4: 0808 addi a0,sp,16 + va_start(ap, format); + 3ad6: e432 sd a2,8(sp) + ctx.buf = NULL; + 3ad8: e802 sd zero,16(sp) + ctx.limit = 0; + 3ada: ec02 sd zero,24(sp) + ctx.written = 0; + 3adc: f002 sd zero,32(sp) + ctx.stream = stream; + 3ade: f41a sd t1,40(sp) + _vprintf_core(&ctx, format, ap); + 3ae0: d34ff0ef jal 3014 <_vprintf_core.constprop.0.isra.0> + return (int)ctx.written; + 3ae4: 5502 lw a0,32(sp) +} + 3ae6: 70e2 ld ra,56(sp) + 3ae8: 6165 addi sp,sp,112 + 3aea: 8082 ret + return -1; + 3aec: 557d li a0,-1 + 3aee: bfe5 j 3ae6 + +0000000000003af0 : +{ + 3af0: 7159 addi sp,sp,-112 + 3af2: fc06 sd ra,56(sp) + 3af4: e0b2 sd a2,64(sp) + 3af6: e4b6 sd a3,72(sp) + 3af8: e8ba sd a4,80(sp) + 3afa: ecbe sd a5,88(sp) + 3afc: f0c2 sd a6,96(sp) + 3afe: f4c6 sd a7,104(sp) + if (!stream) + 3b00: cd19 beqz a0,3b1e + ctx.fd = stream->fd; + 3b02: 411c lw a5,0(a0) + va_start(ap, format); + 3b04: 0090 addi a2,sp,64 + int ret = _vscanf_core(&ctx, format, ap); + 3b06: 0808 addi a0,sp,16 + ctx.fd = stream->fd; + 3b08: cc3e sw a5,24(sp) + ctx.ungotten = -1; + 3b0a: 57fd li a5,-1 + va_start(ap, format); + 3b0c: e432 sd a2,8(sp) + ctx.buf = NULL; + 3b0e: e802 sd zero,16(sp) + ctx.pos = 0; + 3b10: f002 sd zero,32(sp) + ctx.ungotten = -1; + 3b12: d43e sw a5,40(sp) + int ret = _vscanf_core(&ctx, format, ap); + 3b14: e1dfc0ef jal 930 <_vscanf_core.constprop.0> +} + 3b18: 70e2 ld ra,56(sp) + 3b1a: 6165 addi sp,sp,112 + 3b1c: 8082 ret + return -1; + 3b1e: 557d li a0,-1 + 3b20: bfe5 j 3b18 + +0000000000003b22 : + if (!stream) + 3b22: c1e1 beqz a1,3be2 +{ + 3b24: 7179 addi sp,sp,-48 + 3b26: e84a sd s2,16(sp) + if (stream->buf_mode == 2) + 3b28: 41c5a903 lw s2,1052(a1) +{ + 3b2c: f022 sd s0,32(sp) + 3b2e: ec26 sd s1,24(sp) + 3b30: f406 sd ra,40(sp) + if (stream->buf_mode == 2) + 3b32: 4789 li a5,2 + 3b34: 842e mv s0,a1 + 3b36: 84aa mv s1,a0 + char ch = (char)c; + 3b38: 0ff57713 zext.b a4,a0 + if (stream->buf_mode == 2) + 3b3c: 02f90963 beq s2,a5,3b6e + stream->buffer[stream->buf_write_pos++] = (char)c; + 3b40: 4105a783 lw a5,1040(a1) + if (stream->buf_write_pos >= BUFSIZ) + 3b44: 3ff00693 li a3,1023 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3b48: 0017861b addiw a2,a5,1 + 3b4c: 40c5a823 sw a2,1040(a1) + 3b50: 97ae add a5,a5,a1 + 3b52: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3b56: 06c6c463 blt a3,a2,3bbe + else if (stream->buf_mode == 1 && c == '\n') + 3b5a: 4785 li a5,1 + 3b5c: 02f90e63 beq s2,a5,3b98 + return c; + 3b60: 8526 mv a0,s1 +} + 3b62: 70a2 ld ra,40(sp) + 3b64: 7402 ld s0,32(sp) + 3b66: 64e2 ld s1,24(sp) + 3b68: 6942 ld s2,16(sp) + 3b6a: 6145 addi sp,sp,48 + 3b6c: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3b6e: 4188 lw a0,0(a1) + 3b70: 4605 li a2,1 + 3b72: 00f10593 addi a1,sp,15 + char ch = (char)c; + 3b76: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3b7a: d2efc0ef jal a8 + 3b7e: 872a mv a4,a0 + 3b80: 4785 li a5,1 + return c; + 3b82: 8526 mv a0,s1 + if (write(stream->fd, &ch, 1) != 1) + 3b84: fcf70fe3 beq a4,a5,3b62 +} + 3b88: 70a2 ld ra,40(sp) + stream->error = 1; + 3b8a: c41c sw a5,8(s0) +} + 3b8c: 7402 ld s0,32(sp) + 3b8e: 64e2 ld s1,24(sp) + 3b90: 6942 ld s2,16(sp) + return EOF; + 3b92: 557d li a0,-1 +} + 3b94: 6145 addi sp,sp,48 + 3b96: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3b98: 47a9 li a5,10 + 3b9a: fcf513e3 bne a0,a5,3b60 + if (stream->buf_write_pos > 0) + 3b9e: fcc051e3 blez a2,3b60 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3ba2: 4188 lw a0,0(a1) + 3ba4: 05c1 addi a1,a1,16 + 3ba6: d02fc0ef jal a8 + if (ret < stream->buf_write_pos) + 3baa: 41042783 lw a5,1040(s0) + 3bae: 02f55063 bge a0,a5,3bce + stream->error = 1; + 3bb2: 01242423 sw s2,8(s0) + stream->buf_write_pos = 0; + 3bb6: 40042823 sw zero,1040(s0) + return c; + 3bba: 8526 mv a0,s1 + 3bbc: b75d j 3b62 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3bbe: 4188 lw a0,0(a1) + 3bc0: 05c1 addi a1,a1,16 + 3bc2: ce6fc0ef jal a8 + if (ret < stream->buf_write_pos) + 3bc6: 41042783 lw a5,1040(s0) + 3bca: 00f54663 blt a0,a5,3bd6 + stream->buf_write_pos = 0; + 3bce: 40042823 sw zero,1040(s0) + return c; + 3bd2: 8526 mv a0,s1 + 3bd4: b779 j 3b62 + stream->error = 1; + 3bd6: 4785 li a5,1 + 3bd8: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3bda: 40042823 sw zero,1040(s0) + return c; + 3bde: 8526 mv a0,s1 + 3be0: b749 j 3b62 + return EOF; + 3be2: 557d li a0,-1 +} + 3be4: 8082 ret + +0000000000003be6 : + if (!stream) + 3be6: c1ed beqz a1,3cc8 +{ + 3be8: 711d addi sp,sp,-96 + 3bea: e4a6 sd s1,72(sp) + 3bec: ec86 sd ra,88(sp) + while (*s) + 3bee: 00054703 lbu a4,0(a0) + 3bf2: 84aa mv s1,a0 + 3bf4: cf25 beqz a4,3c6c + 3bf6: e8a2 sd s0,80(sp) + 3bf8: e0ca sd s2,64(sp) + 3bfa: fc4e sd s3,56(sp) + 3bfc: f852 sd s4,48(sp) + 3bfe: f456 sd s5,40(sp) + 3c00: f05a sd s6,32(sp) + 3c02: ec5e sd s7,24(sp) + 3c04: 842e mv s0,a1 + if (stream->buf_mode == 2) + 3c06: 4909 li s2,2 + if (stream->buf_write_pos >= BUFSIZ) + 3c08: 3ff00b13 li s6,1023 + else if (stream->buf_mode == 1 && c == '\n') + 3c0c: 4985 li s3,1 + 3c0e: 4a29 li s4,10 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c10: 01058a93 addi s5,a1,16 + if (write(stream->fd, &ch, 1) != 1) + 3c14: 00f10b93 addi s7,sp,15 + 3c18: a031 j 3c24 + else if (stream->buf_mode == 1 && c == '\n') + 3c1a: 09368563 beq a3,s3,3ca4 + while (*s) + 3c1e: 0004c703 lbu a4,0(s1) + 3c22: cf15 beqz a4,3c5e + if (stream->buf_mode == 2) + 3c24: 41c42683 lw a3,1052(s0) + if (fputc(*s++, stream) == EOF) + 3c28: 0485 addi s1,s1,1 + if (stream->buf_mode == 2) + 3c2a: 05268663 beq a3,s2,3c76 + stream->buffer[stream->buf_write_pos++] = (char)c; + 3c2e: 41042783 lw a5,1040(s0) + 3c32: 0017861b addiw a2,a5,1 + 3c36: 40c42823 sw a2,1040(s0) + 3c3a: 97a2 add a5,a5,s0 + 3c3c: 00e78823 sb a4,16(a5) + if (stream->buf_write_pos >= BUFSIZ) + 3c40: fccb5de3 bge s6,a2,3c1a + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3c44: 4008 lw a0,0(s0) + 3c46: 85d6 mv a1,s5 + 3c48: c60fc0ef jal a8 + if (ret < stream->buf_write_pos) + 3c4c: 41042783 lw a5,1040(s0) + 3c50: 06f54763 blt a0,a5,3cbe + stream->buf_write_pos = 0; + 3c54: 40042823 sw zero,1040(s0) + while (*s) + 3c58: 0004c703 lbu a4,0(s1) + 3c5c: f761 bnez a4,3c24 + 3c5e: 6446 ld s0,80(sp) + 3c60: 6906 ld s2,64(sp) + 3c62: 79e2 ld s3,56(sp) + 3c64: 7a42 ld s4,48(sp) + 3c66: 7aa2 ld s5,40(sp) + 3c68: 7b02 ld s6,32(sp) + 3c6a: 6be2 ld s7,24(sp) +} + 3c6c: 60e6 ld ra,88(sp) + 3c6e: 64a6 ld s1,72(sp) + return 0; + 3c70: 4501 li a0,0 +} + 3c72: 6125 addi sp,sp,96 + 3c74: 8082 ret + if (write(stream->fd, &ch, 1) != 1) + 3c76: 4008 lw a0,0(s0) + 3c78: 4605 li a2,1 + 3c7a: 85de mv a1,s7 + char ch = (char)c; + 3c7c: 00e107a3 sb a4,15(sp) + if (write(stream->fd, &ch, 1) != 1) + 3c80: c28fc0ef jal a8 + 3c84: f9350de3 beq a0,s3,3c1e + stream->error = 1; + 3c88: 01342423 sw s3,8(s0) +} + 3c8c: 60e6 ld ra,88(sp) + 3c8e: 6446 ld s0,80(sp) + 3c90: 6906 ld s2,64(sp) + 3c92: 79e2 ld s3,56(sp) + 3c94: 7a42 ld s4,48(sp) + 3c96: 7aa2 ld s5,40(sp) + 3c98: 7b02 ld s6,32(sp) + 3c9a: 6be2 ld s7,24(sp) + 3c9c: 64a6 ld s1,72(sp) + return -1; + 3c9e: 557d li a0,-1 +} + 3ca0: 6125 addi sp,sp,96 + 3ca2: 8082 ret + else if (stream->buf_mode == 1 && c == '\n') + 3ca4: f7471de3 bne a4,s4,3c1e + if (stream->buf_write_pos > 0) + 3ca8: f6c05be3 blez a2,3c1e + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3cac: 4008 lw a0,0(s0) + 3cae: 01040593 addi a1,s0,16 + 3cb2: bf6fc0ef jal a8 + if (ret < stream->buf_write_pos) + 3cb6: 41042783 lw a5,1040(s0) + 3cba: f8f55de3 bge a0,a5,3c54 + stream->error = 1; + 3cbe: 4785 li a5,1 + 3cc0: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3cc2: 40042823 sw zero,1040(s0) + return EOF; + 3cc6: bfa1 j 3c1e + return -1; + 3cc8: 557d li a0,-1 +} + 3cca: 8082 ret + +0000000000003ccc : + if (!stream) + 3ccc: c949 beqz a0,3d5e + if (stream->buf_write_pos > 0) + 3cce: 41052603 lw a2,1040(a0) +{ + 3cd2: 1141 addi sp,sp,-16 + 3cd4: e022 sd s0,0(sp) + 3cd6: e406 sd ra,8(sp) + 3cd8: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 3cda: 04c04863 bgtz a2,3d2a + if (stream->buf_read_pos < stream->buf_read_cnt) + 3cde: 41442783 lw a5,1044(s0) + 3ce2: 41842703 lw a4,1048(s0) + 3ce6: 00e7dd63 bge a5,a4,3d00 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3cea: 0017871b addiw a4,a5,1 + 3cee: 40e42a23 sw a4,1044(s0) + 3cf2: 943e add s0,s0,a5 + 3cf4: 01044503 lbu a0,16(s0) +} + 3cf8: 60a2 ld ra,8(sp) + 3cfa: 6402 ld s0,0(sp) + 3cfc: 0141 addi sp,sp,16 + 3cfe: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3d00: 4008 lw a0,0(s0) + 3d02: 40000613 li a2,1024 + 3d06: 01040593 addi a1,s0,16 + 3d0a: b96fc0ef jal a0 + 3d0e: 87aa mv a5,a0 + if (ret <= 0) + 3d10: 02a05e63 blez a0,3d4c + stream->buf_read_cnt = (int)ret; + 3d14: 40f42c23 sw a5,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d18: 4785 li a5,1 + 3d1a: 01044503 lbu a0,16(s0) +} + 3d1e: 60a2 ld ra,8(sp) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d20: 40f42a23 sw a5,1044(s0) +} + 3d24: 6402 ld s0,0(sp) + 3d26: 0141 addi sp,sp,16 + 3d28: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d2a: 4108 lw a0,0(a0) + 3d2c: 01040593 addi a1,s0,16 + 3d30: b78fc0ef jal a8 + if (ret < stream->buf_write_pos) + 3d34: 41042783 lw a5,1040(s0) + 3d38: 00f54563 blt a0,a5,3d42 + stream->buf_write_pos = 0; + 3d3c: 40042823 sw zero,1040(s0) + 3d40: bf79 j 3cde + stream->error = 1; + 3d42: 4785 li a5,1 + 3d44: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3d46: 40042823 sw zero,1040(s0) + return EOF; + 3d4a: bf51 j 3cde + if (ret == 0) + 3d4c: e509 bnez a0,3d56 + stream->eof = 1; + 3d4e: 4785 li a5,1 + 3d50: c45c sw a5,12(s0) + return EOF; + 3d52: 557d li a0,-1 + 3d54: b755 j 3cf8 + stream->error = 1; + 3d56: 4785 li a5,1 + 3d58: c41c sw a5,8(s0) + return EOF; + 3d5a: 557d li a0,-1 + 3d5c: bf71 j 3cf8 + 3d5e: 557d li a0,-1 +} + 3d60: 8082 ret + +0000000000003d62 : + if (!stream || n <= 0) + 3d62: ce5d beqz a2,3e20 + 3d64: 0ab05e63 blez a1,3e20 +{ + 3d68: 715d addi sp,sp,-80 + 3d6a: e0a2 sd s0,64(sp) + 3d6c: fc26 sd s1,56(sp) + 3d6e: f84a sd s2,48(sp) + 3d70: f44e sd s3,40(sp) + 3d72: f052 sd s4,32(sp) + 3d74: ec56 sd s5,24(sp) + 3d76: e85a sd s6,16(sp) + 3d78: e45e sd s7,8(sp) + 3d7a: e486 sd ra,72(sp) + 3d7c: 8432 mv s0,a2 + 3d7e: 8aaa mv s5,a0 + 3d80: 892a mv s2,a0 + 3d82: fff58b9b addiw s7,a1,-1 + int i = 0, c; + 3d86: 4481 li s1,0 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d88: 01060993 addi s3,a2,16 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3d8c: 4b05 li s6,1 + if (c == '\n') + 3d8e: 4a29 li s4,10 + while (i < n - 1) + 3d90: 05748163 beq s1,s7,3dd2 + if (stream->buf_write_pos > 0) + 3d94: 41042603 lw a2,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3d98: 85ce mv a1,s3 + if (stream->buf_write_pos > 0) + 3d9a: 06c04963 bgtz a2,3e0c + if (stream->buf_read_pos < stream->buf_read_cnt) + 3d9e: 41442783 lw a5,1044(s0) + 3da2: 41842703 lw a4,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3da6: 40000613 li a2,1024 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3daa: 0017851b addiw a0,a5,1 + 3dae: 00f406b3 add a3,s0,a5 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3db2: 85ce mv a1,s3 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3db4: 02e7de63 bge a5,a4,3df0 + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3db8: 40a42a23 sw a0,1044(s0) + 3dbc: 0106c783 lbu a5,16(a3) + 3dc0: 0007871b sext.w a4,a5 + str[i++] = (char)c; + 3dc4: 00f90023 sb a5,0(s2) + 3dc8: 2485 addiw s1,s1,1 + if (c == '\n') + 3dca: 0905 addi s2,s2,1 + 3dcc: fd4712e3 bne a4,s4,3d90 + str[i++] = (char)c; + 3dd0: 8ba6 mv s7,s1 + str[i] = '\0'; + 3dd2: 9bd6 add s7,s7,s5 + 3dd4: 000b8023 sb zero,0(s7) + return str; + 3dd8: 8556 mv a0,s5 +} + 3dda: 60a6 ld ra,72(sp) + 3ddc: 6406 ld s0,64(sp) + 3dde: 74e2 ld s1,56(sp) + 3de0: 7942 ld s2,48(sp) + 3de2: 79a2 ld s3,40(sp) + 3de4: 7a02 ld s4,32(sp) + 3de6: 6ae2 ld s5,24(sp) + 3de8: 6b42 ld s6,16(sp) + 3dea: 6ba2 ld s7,8(sp) + 3dec: 6161 addi sp,sp,80 + 3dee: 8082 ret + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3df0: 4008 lw a0,0(s0) + 3df2: aaefc0ef jal a0 + if (ret <= 0) + 3df6: 02a05c63 blez a0,3e2e + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3dfa: 01044783 lbu a5,16(s0) + stream->buf_read_cnt = (int)ret; + 3dfe: 40a42c23 sw a0,1048(s0) + return (unsigned char)stream->buffer[stream->buf_read_pos++]; + 3e02: 41642a23 sw s6,1044(s0) + 3e06: 0007871b sext.w a4,a5 + if (c == -1) + 3e0a: bf6d j 3dc4 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3e0c: 4008 lw a0,0(s0) + 3e0e: a9afc0ef jal a8 + if (ret < stream->buf_write_pos) + 3e12: 41042783 lw a5,1040(s0) + 3e16: 00f54763 blt a0,a5,3e24 + stream->buf_write_pos = 0; + 3e1a: 40042823 sw zero,1040(s0) + 3e1e: b741 j 3d9e + return NULL; + 3e20: 4501 li a0,0 +} + 3e22: 8082 ret + stream->error = 1; + 3e24: 4785 li a5,1 + 3e26: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3e28: 40042823 sw zero,1040(s0) + return EOF; + 3e2c: bf8d j 3d9e + stream->eof = 1; + 3e2e: 4785 li a5,1 + if (ret == 0) + 3e30: e509 bnez a0,3e3a + stream->eof = 1; + 3e32: c45c sw a5,12(s0) + if (i == 0) + 3e34: fcd1 bnez s1,3dd0 + return NULL; + 3e36: 4501 li a0,0 + 3e38: b74d j 3dda + stream->error = 1; + 3e3a: c41c sw a5,8(s0) + if (c == -1) + 3e3c: bfe5 j 3e34 + +0000000000003e3e : +{ + 3e3e: 715d addi sp,sp,-80 + 3e40: e486 sd ra,72(sp) + 3e42: f44e sd s3,40(sp) + if (!stream || size == 0 || nmemb == 0) + 3e44: 0e068963 beqz a3,3f36 + 3e48: ec56 sd s5,24(sp) + return 0; + 3e4a: 4981 li s3,0 + 3e4c: 8aae mv s5,a1 + if (!stream || size == 0 || nmemb == 0) + 3e4e: c9bd beqz a1,3ec4 + 3e50: ca35 beqz a2,3ec4 + if (stream->buf_write_pos > 0) + 3e52: 4106a783 lw a5,1040(a3) + 3e56: e0a2 sd s0,64(sp) + 3e58: f052 sd s4,32(sp) + uint64 total_bytes = size * nmemb; + 3e5a: 02c589b3 mul s3,a1,a2 + 3e5e: 8436 mv s0,a3 + 3e60: 8a2a mv s4,a0 + if (stream->buf_write_pos > 0) + 3e62: 0af04d63 bgtz a5,3f1c + while (bytes_read < total_bytes) + 3e66: 04098d63 beqz s3,3ec0 + 3e6a: fc26 sd s1,56(sp) + 3e6c: e85a sd s6,16(sp) + 3e6e: e45e sd s7,8(sp) + 3e70: f84a sd s2,48(sp) + 3e72: 4481 li s1,0 + if (remaining >= BUFSIZ) + 3e74: 3ff00b13 li s6,1023 + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3e78: 01040b93 addi s7,s0,16 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3e7c: 41442703 lw a4,1044(s0) + 3e80: 41842783 lw a5,1048(s0) + uint64 remaining = total_bytes - bytes_read; + 3e84: 40998633 sub a2,s3,s1 + if (stream->buf_read_pos < stream->buf_read_cnt) + 3e88: 06f74463 blt a4,a5,3ef0 + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3e8c: 4008 lw a0,0(s0) + 3e8e: 009a05b3 add a1,s4,s1 + if (remaining >= BUFSIZ) + 3e92: 02cb7f63 bgeu s6,a2,3ed0 + int64 ret = read(stream->fd, dst + bytes_read, remaining); + 3e96: a0afc0ef jal a0 + if (ret <= 0) + 3e9a: 0aa05463 blez a0,3f42 + bytes_read += ret; + 3e9e: 94aa add s1,s1,a0 + while (bytes_read < total_bytes) + 3ea0: fd34eee3 bltu s1,s3,3e7c + return bytes_read / size; + 3ea4: 0354d9b3 divu s3,s1,s5 + 3ea8: 6406 ld s0,64(sp) +} + 3eaa: 60a6 ld ra,72(sp) + return bytes_read / size; + 3eac: 74e2 ld s1,56(sp) + 3eae: 7942 ld s2,48(sp) + 3eb0: 7a02 ld s4,32(sp) + 3eb2: 6ae2 ld s5,24(sp) + 3eb4: 6b42 ld s6,16(sp) + 3eb6: 6ba2 ld s7,8(sp) +} + 3eb8: 854e mv a0,s3 + 3eba: 79a2 ld s3,40(sp) + 3ebc: 6161 addi sp,sp,80 + 3ebe: 8082 ret + 3ec0: 6406 ld s0,64(sp) + 3ec2: 7a02 ld s4,32(sp) + 3ec4: 60a6 ld ra,72(sp) + 3ec6: 6ae2 ld s5,24(sp) + 3ec8: 854e mv a0,s3 + 3eca: 79a2 ld s3,40(sp) + 3ecc: 6161 addi sp,sp,80 + 3ece: 8082 ret + stream->buf_read_pos = 0; + 3ed0: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 3ed4: 40042c23 sw zero,1048(s0) + int64 ret = read(stream->fd, stream->buffer, BUFSIZ); + 3ed8: 40000613 li a2,1024 + 3edc: 85de mv a1,s7 + 3ede: 9c2fc0ef jal a0 + if (ret <= 0) + 3ee2: 06a05063 blez a0,3f42 + stream->buf_read_cnt = (int)ret; + 3ee6: 40a42c23 sw a0,1048(s0) + while (bytes_read < total_bytes) + 3eea: f934e9e3 bltu s1,s3,3e7c + 3eee: bf5d j 3ea4 + uint64 available = stream->buf_read_cnt - stream->buf_read_pos; + 3ef0: 40e7893b subw s2,a5,a4 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 3ef4: 00eb85b3 add a1,s7,a4 + 3ef8: 009a0533 add a0,s4,s1 + uint64 to_copy = (available < remaining) ? available : remaining; + 3efc: 01267363 bgeu a2,s2,3f02 + 3f00: 8932 mv s2,a2 + memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); + 3f02: 864a mv a2,s2 + 3f04: 3e1000ef jal 4ae4 + stream->buf_read_pos += to_copy; + 3f08: 41442783 lw a5,1044(s0) + bytes_read += to_copy; + 3f0c: 94ca add s1,s1,s2 + stream->buf_read_pos += to_copy; + 3f0e: 012787bb addw a5,a5,s2 + 3f12: 40f42a23 sw a5,1044(s0) + while (bytes_read < total_bytes) + 3f16: f734e3e3 bltu s1,s3,3e7c + 3f1a: b769 j 3ea4 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 3f1c: 4288 lw a0,0(a3) + 3f1e: 863e mv a2,a5 + 3f20: 01068593 addi a1,a3,16 + 3f24: 984fc0ef jal a8 + if (ret < stream->buf_write_pos) + 3f28: 41042783 lw a5,1040(s0) + 3f2c: 02f54163 blt a0,a5,3f4e + stream->buf_write_pos = 0; + 3f30: 40042823 sw zero,1040(s0) + 3f34: bf0d j 3e66 +} + 3f36: 60a6 ld ra,72(sp) + return 0; + 3f38: 4981 li s3,0 +} + 3f3a: 854e mv a0,s3 + 3f3c: 79a2 ld s3,40(sp) + 3f3e: 6161 addi sp,sp,80 + 3f40: 8082 ret + stream->eof = 1; + 3f42: 4785 li a5,1 + if (ret == 0) + 3f44: e119 bnez a0,3f4a + stream->eof = 1; + 3f46: c45c sw a5,12(s0) + 3f48: bfb1 j 3ea4 + stream->error = 1; + 3f4a: c41c sw a5,8(s0) + return bytes_read / size; + 3f4c: bfa1 j 3ea4 + stream->error = 1; + 3f4e: 4785 li a5,1 + 3f50: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 3f52: 40042823 sw zero,1040(s0) + return EOF; + 3f56: bf01 j 3e66 + +0000000000003f58 : +{ + 3f58: 711d addi sp,sp,-96 + 3f5a: ec86 sd ra,88(sp) + 3f5c: e0ca sd s2,64(sp) + if (!stream || !ptr || size == 0 || nmemb == 0) + 3f5e: 10068063 beqz a3,405e + 3f62: f456 sd s5,40(sp) + 3f64: 8aaa mv s5,a0 + 3f66: 10050263 beqz a0,406a + 3f6a: f05a sd s6,32(sp) + return 0; + 3f6c: 4901 li s2,0 + 3f6e: 8b2e mv s6,a1 + if (!stream || !ptr || size == 0 || nmemb == 0) + 3f70: c1d9 beqz a1,3ff6 + 3f72: c251 beqz a2,3ff6 + if (stream->buf_mode == 2) + 3f74: 41c6a703 lw a4,1052(a3) + 3f78: e8a2 sd s0,80(sp) + 3f7a: 4789 li a5,2 + uint64 total_bytes = size * nmemb; + 3f7c: 02c58933 mul s2,a1,a2 + if (stream->buf_mode == 2) + 3f80: 8436 mv s0,a3 + 3f82: 0ef70b63 beq a4,a5,4078 + 3f86: fc4e sd s3,56(sp) + 3f88: ec5e sd s7,24(sp) + 3f8a: e862 sd s8,16(sp) + uint64 bytes_written = 0; + 3f8c: 4981 li s3,0 + 3f8e: 01068b93 addi s7,a3,16 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3f92: 40000c13 li s8,1024 + while (bytes_written < total_bytes) + 3f96: 12090263 beqz s2,40ba + 3f9a: e4a6 sd s1,72(sp) + 3f9c: f852 sd s4,48(sp) + 3f9e: e466 sd s9,8(sp) + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3fa0: 41042783 lw a5,1040(s0) + uint64 remaining = total_bytes - bytes_written; + 3fa4: 41390cb3 sub s9,s2,s3 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 3fa8: 013a85b3 add a1,s5,s3 + uint64 space_left = BUFSIZ - stream->buf_write_pos; + 3fac: 40fc0a3b subw s4,s8,a5 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 3fb0: 00fb8533 add a0,s7,a5 + 3fb4: 8652 mv a2,s4 + if (remaining <= space_left) + 3fb6: 059a6763 bltu s4,s9,4004 + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); + 3fba: 8666 mv a2,s9 + 3fbc: 329000ef jal 4ae4 + stream->buf_write_pos += remaining; + 3fc0: 41042783 lw a5,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 3fc4: 40000713 li a4,1024 + stream->buf_write_pos += remaining; + 3fc8: 019786bb addw a3,a5,s9 + 3fcc: 40d42823 sw a3,1040(s0) + if (stream->buf_write_pos == BUFSIZ) + 3fd0: 06e68a63 beq a3,a4,4044 + return bytes_written / size; + 3fd4: 03695933 divu s2,s2,s6 + 3fd8: 6446 ld s0,80(sp) + 3fda: 64a6 ld s1,72(sp) + 3fdc: 79e2 ld s3,56(sp) + 3fde: 7a42 ld s4,48(sp) + 3fe0: 7aa2 ld s5,40(sp) + 3fe2: 7b02 ld s6,32(sp) + 3fe4: 6be2 ld s7,24(sp) + 3fe6: 6c42 ld s8,16(sp) + 3fe8: 6ca2 ld s9,8(sp) +} + 3fea: 60e6 ld ra,88(sp) + 3fec: 854a mv a0,s2 + 3fee: 6906 ld s2,64(sp) + 3ff0: 6125 addi sp,sp,96 + 3ff2: 8082 ret + 3ff4: 6446 ld s0,80(sp) + 3ff6: 60e6 ld ra,88(sp) + 3ff8: 7aa2 ld s5,40(sp) + 3ffa: 7b02 ld s6,32(sp) + 3ffc: 854a mv a0,s2 + 3ffe: 6906 ld s2,64(sp) + 4000: 6125 addi sp,sp,96 + 4002: 8082 ret + memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); + 4004: 2e1000ef jal 4ae4 + stream->buf_write_pos += space_left; + 4008: 41042783 lw a5,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 400c: 85de mv a1,s7 + bytes_written += space_left; + 400e: 99d2 add s3,s3,s4 + stream->buf_write_pos += space_left; + 4010: 00fa04bb addw s1,s4,a5 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4014: 02049613 slli a2,s1,0x20 + stream->buf_write_pos += space_left; + 4018: 40942823 sw s1,1040(s0) + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 401c: 9201 srli a2,a2,0x20 + if (stream->buf_write_pos > 0) + 401e: 00904763 bgtz s1,402c + while (bytes_written < total_bytes) + 4022: f729efe3 bltu s3,s2,3fa0 + return bytes_written / size; + 4026: 0369d933 divu s2,s3,s6 + 402a: b77d j 3fd8 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 402c: 4008 lw a0,0(s0) + 402e: 87afc0ef jal a8 + if (ret < stream->buf_write_pos) + 4032: 41042783 lw a5,1040(s0) + 4036: 08f54963 blt a0,a5,40c8 + stream->buf_write_pos = 0; + 403a: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 403e: f729e1e3 bltu s3,s2,3fa0 + 4042: b7d5 j 4026 + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4044: 4008 lw a0,0(s0) + 4046: 40000613 li a2,1024 + 404a: 85de mv a1,s7 + 404c: 85cfc0ef jal a8 + if (ret < stream->buf_write_pos) + 4050: 41042783 lw a5,1040(s0) + 4054: 08f54163 blt a0,a5,40d6 + stream->buf_write_pos = 0; + 4058: 40042823 sw zero,1040(s0) + 405c: bfa5 j 3fd4 +} + 405e: 60e6 ld ra,88(sp) + return 0; + 4060: 4901 li s2,0 +} + 4062: 854a mv a0,s2 + 4064: 6906 ld s2,64(sp) + 4066: 6125 addi sp,sp,96 + 4068: 8082 ret + 406a: 60e6 ld ra,88(sp) + return 0; + 406c: 4901 li s2,0 + 406e: 7aa2 ld s5,40(sp) +} + 4070: 854a mv a0,s2 + 4072: 6906 ld s2,64(sp) + 4074: 6125 addi sp,sp,96 + 4076: 8082 ret + while (bytes_written < total_bytes) + 4078: f6090ee3 beqz s2,3ff4 + 407c: e4a6 sd s1,72(sp) + uint64 bytes_written = 0; + 407e: 4481 li s1,0 + 4080: a021 j 4088 + bytes_written += ret; + 4082: 94aa add s1,s1,a0 + while (bytes_written < total_bytes) + 4084: 0324f463 bgeu s1,s2,40ac + int64 ret = write(stream->fd, src + bytes_written, total_bytes - bytes_written); + 4088: 4008 lw a0,0(s0) + 408a: 40990633 sub a2,s2,s1 + 408e: 009a85b3 add a1,s5,s1 + 4092: 816fc0ef jal a8 + if (ret <= 0) + 4096: fea046e3 bgtz a0,4082 + stream->error = 1; + 409a: 4785 li a5,1 + return bytes_written / size; + 409c: 0364d933 divu s2,s1,s6 + stream->error = 1; + 40a0: c41c sw a5,8(s0) + break; + 40a2: 64a6 ld s1,72(sp) + 40a4: 6446 ld s0,80(sp) + 40a6: 7aa2 ld s5,40(sp) + 40a8: 7b02 ld s6,32(sp) + 40aa: b781 j 3fea + return bytes_written / size; + 40ac: 0364d933 divu s2,s1,s6 + 40b0: 6446 ld s0,80(sp) + 40b2: 64a6 ld s1,72(sp) + 40b4: 7aa2 ld s5,40(sp) + 40b6: 7b02 ld s6,32(sp) + 40b8: bf0d j 3fea + 40ba: 6446 ld s0,80(sp) + 40bc: 79e2 ld s3,56(sp) + 40be: 7aa2 ld s5,40(sp) + 40c0: 7b02 ld s6,32(sp) + 40c2: 6be2 ld s7,24(sp) + 40c4: 6c42 ld s8,16(sp) + 40c6: b715 j 3fea + stream->error = 1; + 40c8: 4785 li a5,1 + 40ca: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 40cc: 40042823 sw zero,1040(s0) + while (bytes_written < total_bytes) + 40d0: ed29e8e3 bltu s3,s2,3fa0 + 40d4: bf89 j 4026 + stream->error = 1; + 40d6: 4785 li a5,1 + 40d8: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 40da: 40042823 sw zero,1040(s0) + return EOF; + 40de: bddd j 3fd4 + +00000000000040e0 : + if (!stream) + 40e0: c925 beqz a0,4150 +{ + 40e2: 1101 addi sp,sp,-32 + 40e4: e04a sd s2,0(sp) + 40e6: 8932 mv s2,a2 + if (stream->buf_write_pos > 0) + 40e8: 41052603 lw a2,1040(a0) +{ + 40ec: e822 sd s0,16(sp) + 40ee: e426 sd s1,8(sp) + 40f0: ec06 sd ra,24(sp) + 40f2: 842a mv s0,a0 + 40f4: 84ae mv s1,a1 + if (stream->buf_write_pos > 0) + 40f6: 02c04863 bgtz a2,4126 + if (lseek(stream->fd, offset, whence) < 0) + 40fa: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 40fc: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 4100: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 4104: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 4108: 864a mv a2,s2 + 410a: 0004859b sext.w a1,s1 + 410e: 82afc0ef jal 138 + 4112: 87aa mv a5,a0 + return 0; + 4114: 4501 li a0,0 + if (lseek(stream->fd, offset, whence) < 0) + 4116: 0207c463 bltz a5,413e +} + 411a: 60e2 ld ra,24(sp) + 411c: 6442 ld s0,16(sp) + 411e: 64a2 ld s1,8(sp) + 4120: 6902 ld s2,0(sp) + 4122: 6105 addi sp,sp,32 + 4124: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 4126: 4108 lw a0,0(a0) + 4128: 01040593 addi a1,s0,16 + 412c: f7dfb0ef jal a8 + if (ret < stream->buf_write_pos) + 4130: 41042783 lw a5,1040(s0) + 4134: 00f54963 blt a0,a5,4146 + stream->buf_write_pos = 0; + 4138: 40042823 sw zero,1040(s0) + 413c: bf7d j 40fa + stream->error = 1; + 413e: 4785 li a5,1 + 4140: c41c sw a5,8(s0) + return -1; + 4142: 557d li a0,-1 + 4144: bfd9 j 411a + stream->error = 1; + 4146: 4785 li a5,1 + 4148: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 414a: 40042823 sw zero,1040(s0) + return EOF; + 414e: b775 j 40fa + return -1; + 4150: 557d li a0,-1 +} + 4152: 8082 ret + +0000000000004154 : + if (!stream) + 4154: c505 beqz a0,417c +{ + 4156: 1141 addi sp,sp,-16 + 4158: e022 sd s0,0(sp) + 415a: 842a mv s0,a0 + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 415c: 4108 lw a0,0(a0) + 415e: 4605 li a2,1 + 4160: 4581 li a1,0 +{ + 4162: e406 sd ra,8(sp) + int64 ret = lseek(stream->fd, 0, SEEK_CUR); + 4164: fd5fb0ef jal 138 + if (ret < 0) + 4168: 00054663 bltz a0,4174 +} + 416c: 60a2 ld ra,8(sp) + 416e: 6402 ld s0,0(sp) + 4170: 0141 addi sp,sp,16 + 4172: 8082 ret + stream->error = 1; + 4174: 4785 li a5,1 + 4176: c41c sw a5,8(s0) + return -1L; + 4178: 557d li a0,-1 + 417a: bfcd j 416c + 417c: 557d li a0,-1 +} + 417e: 8082 ret + +0000000000004180 : + if (stream) + 4180: c915 beqz a0,41b4 + if (stream->buf_write_pos > 0) + 4182: 41052603 lw a2,1040(a0) +{ + 4186: 1141 addi sp,sp,-16 + 4188: e022 sd s0,0(sp) + 418a: e406 sd ra,8(sp) + 418c: 842a mv s0,a0 + if (stream->buf_write_pos > 0) + 418e: 02c04463 bgtz a2,41b6 + if (lseek(stream->fd, offset, whence) < 0) + 4192: 4008 lw a0,0(s0) + stream->buf_read_pos = 0; + 4194: 40042a23 sw zero,1044(s0) + stream->buf_read_cnt = 0; + 4198: 40042c23 sw zero,1048(s0) + stream->eof = 0; + 419c: 00042623 sw zero,12(s0) + if (lseek(stream->fd, offset, whence) < 0) + 41a0: 4601 li a2,0 + 41a2: 4581 li a1,0 + 41a4: f95fb0ef jal 138 +} + 41a8: 60a2 ld ra,8(sp) + stream->error = 0; + 41aa: 00042423 sw zero,8(s0) +} + 41ae: 6402 ld s0,0(sp) + 41b0: 0141 addi sp,sp,16 + 41b2: 8082 ret + 41b4: 8082 ret + int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); + 41b6: 4108 lw a0,0(a0) + 41b8: 01040593 addi a1,s0,16 + 41bc: eedfb0ef jal a8 + if (ret < stream->buf_write_pos) + 41c0: 41042783 lw a5,1040(s0) + 41c4: 00f54563 blt a0,a5,41ce + stream->buf_write_pos = 0; + 41c8: 40042823 sw zero,1040(s0) + 41cc: b7d9 j 4192 + stream->error = 1; + 41ce: 4785 li a5,1 + 41d0: c41c sw a5,8(s0) + stream->buf_write_pos = 0; + 41d2: 40042823 sw zero,1040(s0) + return EOF; + 41d6: bf75 j 4192 + +00000000000041d8 : + return (stream) ? stream->eof : 1; + 41d8: c119 beqz a0,41de + 41da: 4548 lw a0,12(a0) + 41dc: 8082 ret + 41de: 4505 li a0,1 +} + 41e0: 8082 ret + +00000000000041e2 : + return (stream) ? stream->error : 1; + 41e2: c119 beqz a0,41e8 + 41e4: 4508 lw a0,8(a0) + 41e6: 8082 ret + 41e8: 4505 li a0,1 +} + 41ea: 8082 ret + +00000000000041ec : + if (stream) + 41ec: c509 beqz a0,41f6 + stream->error = 0; + 41ee: 00052423 sw zero,8(a0) + stream->eof = 0; + 41f2: 00052623 sw zero,12(a0) +} + 41f6: 8082 ret + +00000000000041f8 : + if (!stream || c == EOF) + 41f8: c19d beqz a1,421e + 41fa: 57fd li a5,-1 + 41fc: 02f50163 beq a0,a5,421e + if (stream->buf_read_pos > 0) + 4200: 4145a783 lw a5,1044(a1) + 4204: 00f05d63 blez a5,421e + stream->buf_read_pos--; + 4208: fff7871b addiw a4,a5,-1 + 420c: 40e5aa23 sw a4,1044(a1) + stream->buffer[stream->buf_read_pos] = (char)c; + 4210: 00e587b3 add a5,a1,a4 + 4214: 00a78823 sb a0,16(a5) + stream->eof = 0; + 4218: 0005a623 sw zero,12(a1) + return c; + 421c: 8082 ret + return EOF; + 421e: 557d li a0,-1 + 4220: 8082 ret + +0000000000004222 : + return new_ptr; +} + +/* String Conversion*/ + +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 4222: 1141 addi sp,sp,-16 + 4224: e422 sd s0,8(sp) + 4226: 8eaa mv t4,a0 +{ + const char *s = nptr; + 4228: 88aa mv a7,a0 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + static inline int islower(int c) { return c >= 'a' && c <= 'z'; } + static inline int isupper(int c) { return c >= 'A' && c <= 'Z'; } + static inline int isalpha(int c) { return islower(c) || isupper(c); } + static inline int isalnum(int c) { return isalpha(c) || isdigit(c); } + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 422a: 02000313 li t1,32 + 422e: 4e11 li t3,4 + return 0; + } + + do + { + c = *s++; + 4230: 0008c783 lbu a5,0(a7) + 4234: 00188813 addi a6,a7,1 + 4238: ff77871b addiw a4,a5,-9 + 423c: 0ff77693 zext.b a3,a4 + 4240: 0007871b sext.w a4,a5 + 4244: 04678363 beq a5,t1,428a + 4248: 04de7163 bgeu t3,a3,428a + } while (isspace(c)); + + if (c == '-') + 424c: 02d00793 li a5,45 + 4250: 0ef70863 beq a4,a5,4340 + { + neg = 1; + c = *s++; + } + else if (c == '+') + 4254: 02b00793 li a5,43 + int neg = 0, any, cutlim; + 4258: 4381 li t2,0 + else if (c == '+') + 425a: 08f70c63 beq a4,a5,42f2 + { + c = *s++; + } + + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 425e: ea05 bnez a2,428e + 4260: 03000793 li a5,48 + 4264: 0ef70463 beq a4,a5,434c + 4268: 00ccd8b7 lui a7,0xccd + 426c: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc54d5> + 4270: 08b2 slli a7,a7,0xc + 4272: ccd88893 addi a7,a7,-819 + 4276: 08b2 slli a7,a7,0xc + 4278: ccd88893 addi a7,a7,-819 + 427c: 08b6 slli a7,a7,0xd + 427e: 4415 li s0,5 + 4280: 99988893 addi a7,a7,-1639 + 4284: 42a9 li t0,10 + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = (c == '0' ? 8 : 10); + 4286: 4629 li a2,10 + 4288: a829 j 42a2 +unsigned long long strtoull(const char *nptr, char **endptr, int base) + 428a: 88c2 mv a7,a6 + 428c: b755 j 4230 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 428e: 47c1 li a5,16 + 4290: 0cf60d63 beq a2,a5,436a + + cutoff = ULLONG_MAX / (unsigned long long)base; + 4294: 58fd li a7,-1 + cutlim = ULLONG_MAX % (unsigned long long)base; + 4296: 02c8f433 remu s0,a7,a2 + cutoff = ULLONG_MAX / (unsigned long long)base; + 429a: 82b2 mv t0,a2 + 429c: 02c8d8b3 divu a7,a7,a2 + cutlim = ULLONG_MAX % (unsigned long long)base; + 42a0: 2401 sext.w s0,s0 + + for (acc = 0, any = 0;; c = *s++) + 42a2: 4301 li t1,0 + 42a4: 4501 li a0,0 + { + if (isdigit(c)) + 42a6: 4e25 li t3,9 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 42a8: 4fe5 li t6,25 + break; + + if (c >= base) + break; + + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42aa: 5f7d li t5,-1 + if (isdigit(c)) + 42ac: fd07079b addiw a5,a4,-48 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 42b0: 0007069b sext.w a3,a4 + 42b4: 00fe7e63 bgeu t3,a5,42d0 + static inline int isalpha(int c) { return islower(c) || isupper(c); } + 42b8: f9f6879b addiw a5,a3,-97 + 42bc: 04fff063 bgeu t6,a5,42fc + 42c0: fbf6869b addiw a3,a3,-65 + 42c4: 04dfe163 bltu t6,a3,4306 + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 42c8: 03700793 li a5,55 + 42cc: 40f707bb subw a5,a4,a5 + if (c >= base) + 42d0: 02c7db63 bge a5,a2,4306 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42d4: 01e30b63 beq t1,t5,42ea + any = -1; + 42d8: 537d li t1,-1 + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 42da: 00a8e863 bltu a7,a0,42ea + 42de: 05150e63 beq a0,a7,433a + else + { + any = 1; + 42e2: 4305 li t1,1 + acc *= base; + 42e4: 02550533 mul a0,a0,t0 + acc += c; + 42e8: 953e add a0,a0,a5 + for (acc = 0, any = 0;; c = *s++) + 42ea: 0805 addi a6,a6,1 + 42ec: fff84703 lbu a4,-1(a6) + if (isdigit(c)) + 42f0: bf75 j 42ac + c = *s++; + 42f2: 00084703 lbu a4,0(a6) + 42f6: 00288813 addi a6,a7,2 + 42fa: b795 j 425e + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + 42fc: 05700793 li a5,87 + 4300: 40f707bb subw a5,a4,a5 + 4304: b7f1 j 42d0 + } + } + + if (any < 0) + 4306: 57fd li a5,-1 + 4308: 00f30e63 beq t1,a5,4324 + { + acc = ULLONG_MAX; + errno = ERANGE; + } + else if (neg) + 430c: 00038463 beqz t2,4314 + acc = -acc; + 4310: 40a00533 neg a0,a0 + + if (endptr != 0) + 4314: c589 beqz a1,431e + *endptr = (char *)(any ? s - 1 : nptr); + 4316: 00031f63 bnez t1,4334 + 431a: 01d5b023 sd t4,0(a1) + + return acc; +} + 431e: 6422 ld s0,8(sp) + 4320: 0141 addi sp,sp,16 + 4322: 8082 ret + errno = ERANGE; + 4324: 02200793 li a5,34 + 4328: 00003717 auipc a4,0x3 + 432c: 38f72c23 sw a5,920(a4) # 76c0 + acc = ULLONG_MAX; + 4330: 557d li a0,-1 + if (endptr != 0) + 4332: d5f5 beqz a1,431e + *endptr = (char *)(any ? s - 1 : nptr); + 4334: fff80e93 addi t4,a6,-1 + 4338: b7cd j 431a + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + 433a: faf448e3 blt s0,a5,42ea + 433e: b755 j 42e2 + c = *s++; + 4340: 00084703 lbu a4,0(a6) + neg = 1; + 4344: 4385 li t2,1 + c = *s++; + 4346: 00288813 addi a6,a7,2 + 434a: bf11 j 425e + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 434c: 00084783 lbu a5,0(a6) + 4350: 05800693 li a3,88 + 4354: 0df7f793 andi a5,a5,223 + 4358: 02d78b63 beq a5,a3,438e + 435c: 58fd li a7,-1 + 435e: 441d li s0,7 + 4360: 0038d893 srli a7,a7,0x3 + 4364: 42a1 li t0,8 + base = (c == '0' ? 8 : 10); + 4366: 4621 li a2,8 + 4368: bf2d j 42a2 + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) + 436a: 03000793 li a5,48 + 436e: 00f70863 beq a4,a5,437e + 4372: 58fd li a7,-1 + 4374: 443d li s0,15 + 4376: 0048d893 srli a7,a7,0x4 + 437a: 42c1 li t0,16 + 437c: b71d j 42a2 + 437e: 00084783 lbu a5,0(a6) + 4382: 05800693 li a3,88 + 4386: 0df7f793 andi a5,a5,223 + 438a: fed794e3 bne a5,a3,4372 + s += 2; + 438e: 58fd li a7,-1 + c = s[1]; + 4390: 00184703 lbu a4,1(a6) + s += 2; + 4394: 443d li s0,15 + 4396: 0809 addi a6,a6,2 + 4398: 0048d893 srli a7,a7,0x4 + 439c: 42c1 li t0,16 + base = 16; + 439e: 4641 li a2,16 + 43a0: b709 j 42a2 + +00000000000043a2 : + if (__atexit_func_count >= ATEXIT_MAX) + 43a2: 00003717 auipc a4,0x3 + 43a6: 31e70713 addi a4,a4,798 # 76c0 + 43aa: 435c lw a5,4(a4) + 43ac: 46fd li a3,31 + 43ae: 00f6ca63 blt a3,a5,43c2 + __atexit_funcs[__atexit_func_count++] = function; + 43b2: 00379693 slli a3,a5,0x3 + 43b6: 96ba add a3,a3,a4 + 43b8: 2785 addiw a5,a5,1 + 43ba: e688 sd a0,8(a3) + 43bc: c35c sw a5,4(a4) + return 0; + 43be: 4501 li a0,0 + 43c0: 8082 ret + return -1; + 43c2: 557d li a0,-1 +} + 43c4: 8082 ret + +00000000000043c6 : +{ + 43c6: 1101 addi sp,sp,-32 + 43c8: e822 sd s0,16(sp) + while (__atexit_func_count > 0) + 43ca: 00003417 auipc s0,0x3 + 43ce: 2f640413 addi s0,s0,758 # 76c0 + 43d2: 405c lw a5,4(s0) +{ + 43d4: e426 sd s1,8(sp) + 43d6: ec06 sd ra,24(sp) + 43d8: 84aa mv s1,a0 + while (__atexit_func_count > 0) + 43da: 00f05d63 blez a5,43f4 + (__atexit_funcs[--__atexit_func_count])(); + 43de: fff7871b addiw a4,a5,-1 + 43e2: 87ba mv a5,a4 + 43e4: 070e slli a4,a4,0x3 + 43e6: 9722 add a4,a4,s0 + 43e8: 6718 ld a4,8(a4) + 43ea: c05c sw a5,4(s0) + 43ec: 9702 jalr a4 + while (__atexit_func_count > 0) + 43ee: 405c lw a5,4(s0) + 43f0: fef047e3 bgtz a5,43de + sys_exit(status); + 43f4: 8526 mv a0,s1 + 43f6: c8bfb0ef jal 80 + while (1) + 43fa: a001 j 43fa + +00000000000043fc : +{ + 43fc: 1141 addi sp,sp,-16 + exit(127); + 43fe: 07f00513 li a0,127 +{ + 4402: e406 sd ra,8(sp) + exit(127); + 4404: fc3ff0ef jal 43c6 + +0000000000004408 : +} + 4408: 4501 li a0,0 + 440a: 8082 ret + +000000000000440c : +} + 440c: 557d li a0,-1 + 440e: 8082 ret + +0000000000004410 : + if (!ptr) + 4410: c121 beqz a0,4450 + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 4412: 00003617 auipc a2,0x3 + 4416: 2ae60613 addi a2,a2,686 # 76c0 + 441a: 10863783 ld a5,264(a2) + bp = (header_t *)ptr - 1; + 441e: ff050693 addi a3,a0,-16 + if (p >= p->next && (bp > p || bp < p->next)) + 4422: 6798 ld a4,8(a5) + for (p = freep; !(bp > p && bp < p->next); p = p->next) + 4424: 02d7f763 bgeu a5,a3,4452 + 4428: 00e6e463 bltu a3,a4,4430 + if (p >= p->next && (bp > p || bp < p->next)) + 442c: 02e7e763 bltu a5,a4,445a + if ((char *)bp + bp->size == (char *)p->next) + 4430: ff053583 ld a1,-16(a0) + 4434: 00b68833 add a6,a3,a1 + 4438: 03070363 beq a4,a6,445e + if ((char *)p + p->size == (char *)bp) + 443c: 638c ld a1,0(a5) + 443e: fee53c23 sd a4,-8(a0) + 4442: 00b78833 add a6,a5,a1 + 4446: 03068963 beq a3,a6,4478 + 444a: e794 sd a3,8(a5) + freep = p; + 444c: 10f63423 sd a5,264(a2) +} + 4450: 8082 ret + if (p >= p->next && (bp > p || bp < p->next)) + 4452: 00e7e463 bltu a5,a4,445a + 4456: fce6ede3 bltu a3,a4,4430 +{ + 445a: 87ba mv a5,a4 + 445c: b7d9 j 4422 + bp->size += p->next->size; + 445e: 00073803 ld a6,0(a4) + bp->next = p->next->next; + 4462: 6718 ld a4,8(a4) + bp->size += p->next->size; + 4464: 95c2 add a1,a1,a6 + 4466: feb53823 sd a1,-16(a0) + if ((char *)p + p->size == (char *)bp) + 446a: 638c ld a1,0(a5) + 446c: fee53c23 sd a4,-8(a0) + 4470: 00b78833 add a6,a5,a1 + 4474: fd069be3 bne a3,a6,444a + p->size += bp->size; + 4478: ff053503 ld a0,-16(a0) + p->next = bp->next; + 447c: 86ba mv a3,a4 + p->size += bp->size; + 447e: 00b50733 add a4,a0,a1 + 4482: e398 sd a4,0(a5) + p->next = bp->next; + 4484: b7d9 j 444a + +0000000000004486 : + if (size == 0) + 4486: c169 beqz a0,4548 +{ + 4488: 7179 addi sp,sp,-48 + 448a: ec26 sd s1,24(sp) + if ((prevp = freep) == NULL) + 448c: 00003497 auipc s1,0x3 + 4490: 23448493 addi s1,s1,564 # 76c0 + 4494: 1084b783 ld a5,264(s1) +{ + 4498: f022 sd s0,32(sp) + size = ALIGN(size + sizeof(header_t)); + 449a: 057d addi a0,a0,31 +{ + 449c: f406 sd ra,40(sp) + size = ALIGN(size + sizeof(header_t)); + 449e: ff057413 andi s0,a0,-16 + if ((prevp = freep) == NULL) + 44a2: c3d1 beqz a5,4526 + for (p = prevp->next;; prevp = p, p = p->next) + 44a4: 6788 ld a0,8(a5) + if (p->size >= size) + 44a6: 6118 ld a4,0(a0) + 44a8: 06877163 bgeu a4,s0,450a + 44ac: e44e sd s3,8(sp) + 44ae: e052 sd s4,0(sp) + 44b0: e84a sd s2,16(sp) + if (nu < 4096) + 44b2: 6a05 lui s4,0x1 + if (cp == (void *)-1) + 44b4: 59fd li s3,-1 + 44b6: a029 j 44c0 + for (p = prevp->next;; prevp = p, p = p->next) + 44b8: 6788 ld a0,8(a5) + if (p->size >= size) + 44ba: 6118 ld a4,0(a0) + 44bc: 04877463 bgeu a4,s0,4504 + if (p == freep) + 44c0: 1084b703 ld a4,264(s1) + 44c4: 87aa mv a5,a0 + 44c6: fee519e3 bne a0,a4,44b8 + if (nu < 4096) + 44ca: 8922 mv s2,s0 + 44cc: 01447363 bgeu s0,s4,44d2 + 44d0: 6905 lui s2,0x1 + cp = (char *)sbrk(nu); + 44d2: 854a mv a0,s2 + 44d4: c3dfb0ef jal 110 + 44d8: 87aa mv a5,a0 + free((void *)(up + 1)); + 44da: 0541 addi a0,a0,16 + if (cp == (void *)-1) + 44dc: 01378963 beq a5,s3,44ee + up->size = nu; + 44e0: 0127b023 sd s2,0(a5) + free((void *)(up + 1)); + 44e4: f2dff0ef jal 4410 + return freep; + 44e8: 1084b783 ld a5,264(s1) + if ((p = morecore(size)) == NULL) + 44ec: f7f1 bnez a5,44b8 +} + 44ee: 70a2 ld ra,40(sp) + 44f0: 7402 ld s0,32(sp) + errno = ENOMEM; + 44f2: 47b1 li a5,12 + 44f4: c09c sw a5,0(s1) + return NULL; + 44f6: 6942 ld s2,16(sp) + 44f8: 69a2 ld s3,8(sp) + 44fa: 6a02 ld s4,0(sp) +} + 44fc: 64e2 ld s1,24(sp) + return NULL; + 44fe: 4501 li a0,0 +} + 4500: 6145 addi sp,sp,48 + 4502: 8082 ret + 4504: 6942 ld s2,16(sp) + 4506: 69a2 ld s3,8(sp) + 4508: 6a02 ld s4,0(sp) + if (p->size == size) + 450a: 02e40c63 beq s0,a4,4542 + p->size -= size; + 450e: 8f01 sub a4,a4,s0 + 4510: e118 sd a4,0(a0) + p = (header_t *)((char *)p + p->size); + 4512: 953a add a0,a0,a4 + p->size = size; + 4514: e100 sd s0,0(a0) +} + 4516: 70a2 ld ra,40(sp) + 4518: 7402 ld s0,32(sp) + freep = prevp; + 451a: 10f4b423 sd a5,264(s1) + return (void *)(p + 1); + 451e: 0541 addi a0,a0,16 +} + 4520: 64e2 ld s1,24(sp) + 4522: 6145 addi sp,sp,48 + 4524: 8082 ret + base.next = freep = prevp = &base; + 4526: 00003517 auipc a0,0x3 + 452a: 2aa50513 addi a0,a0,682 # 77d0 + 452e: 10a4b423 sd a0,264(s1) + 4532: 10a4bc23 sd a0,280(s1) + base.size = 0; + 4536: 00003797 auipc a5,0x3 + 453a: 2807bd23 sd zero,666(a5) # 77d0 + if (p->size >= size) + 453e: f43d bnez s0,44ac + base.next = freep = prevp = &base; + 4540: 87aa mv a5,a0 + prevp->next = p->next; + 4542: 6518 ld a4,8(a0) + 4544: e798 sd a4,8(a5) + 4546: bfc1 j 4516 + return NULL; + 4548: 4501 li a0,0 +} + 454a: 8082 ret + +000000000000454c : + if (__builtin_mul_overflow(nmemb, size, &total)) + 454c: 02b537b3 mulhu a5,a0,a1 +{ + 4550: 1101 addi sp,sp,-32 + 4552: e822 sd s0,16(sp) + 4554: ec06 sd ra,24(sp) + 4556: e426 sd s1,8(sp) + if (__builtin_mul_overflow(nmemb, size, &total)) + 4558: 02b50433 mul s0,a0,a1 + 455c: e385 bnez a5,457c + void *p = malloc(total); + 455e: 8522 mv a0,s0 + 4560: f27ff0ef jal 4486 + 4564: 84aa mv s1,a0 + if (p) + 4566: c509 beqz a0,4570 + memset(p, 0, total); + 4568: 8622 mv a2,s0 + 456a: 4581 li a1,0 + 456c: 524000ef jal 4a90 +} + 4570: 60e2 ld ra,24(sp) + 4572: 6442 ld s0,16(sp) + 4574: 8526 mv a0,s1 + 4576: 64a2 ld s1,8(sp) + 4578: 6105 addi sp,sp,32 + 457a: 8082 ret + 457c: 60e2 ld ra,24(sp) + 457e: 6442 ld s0,16(sp) + errno = ENOMEM; + 4580: 47b1 li a5,12 + return NULL; + 4582: 4481 li s1,0 + errno = ENOMEM; + 4584: 00003717 auipc a4,0x3 + 4588: 12f72e23 sw a5,316(a4) # 76c0 +} + 458c: 8526 mv a0,s1 + 458e: 64a2 ld s1,8(sp) + 4590: 6105 addi sp,sp,32 + 4592: 8082 ret + +0000000000004594 : + if (!ptr) + 4594: c929 beqz a0,45e6 +{ + 4596: 1101 addi sp,sp,-32 + 4598: ec06 sd ra,24(sp) + 459a: e426 sd s1,8(sp) + if (size == 0) + 459c: c5b9 beqz a1,45ea + if (bp->size >= new_size) + 459e: ff053703 ld a4,-16(a0) + size_t new_size = ALIGN(size + sizeof(header_t)); + 45a2: 01f58793 addi a5,a1,31 + 45a6: e822 sd s0,16(sp) + 45a8: 9bc1 andi a5,a5,-16 + 45aa: 842a mv s0,a0 + return ptr; + 45ac: 84aa mv s1,a0 + if (bp->size >= new_size) + 45ae: 00f76863 bltu a4,a5,45be + 45b2: 6442 ld s0,16(sp) +} + 45b4: 60e2 ld ra,24(sp) + 45b6: 8526 mv a0,s1 + 45b8: 64a2 ld s1,8(sp) + 45ba: 6105 addi sp,sp,32 + 45bc: 8082 ret + void *new_ptr = malloc(size); + 45be: 852e mv a0,a1 + 45c0: ec7ff0ef jal 4486 + 45c4: 84aa mv s1,a0 + if (!new_ptr) + 45c6: d575 beqz a0,45b2 + memcpy(new_ptr, ptr, bp->size - sizeof(header_t)); + 45c8: ff043603 ld a2,-16(s0) + 45cc: 85a2 mv a1,s0 + 45ce: 1641 addi a2,a2,-16 + 45d0: 514000ef jal 4ae4 + free(ptr); + 45d4: 8522 mv a0,s0 + 45d6: e3bff0ef jal 4410 +} + 45da: 60e2 ld ra,24(sp) + free(ptr); + 45dc: 6442 ld s0,16(sp) +} + 45de: 8526 mv a0,s1 + 45e0: 64a2 ld s1,8(sp) + 45e2: 6105 addi sp,sp,32 + 45e4: 8082 ret + return malloc(size); + 45e6: 852e mv a0,a1 + 45e8: bd79 j 4486 + free(ptr); + 45ea: e27ff0ef jal 4410 + return NULL; + 45ee: 4481 li s1,0 + 45f0: b7d1 j 45b4 + +00000000000045f2 : + if (base < 0 || base == 1 || base > 36) + 45f2: 02400813 li a6,36 +{ + 45f6: 86aa mv a3,a0 + 45f8: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 45fa: 00c86663 bltu a6,a2,4606 + 45fe: 4805 li a6,1 + 4600: 01060363 beq a2,a6,4606 + 4604: b939 j 4222 + if (endptr) + 4606: c311 beqz a4,460a + *endptr = (char *)nptr; + 4608: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 460a: 00003797 auipc a5,0x3 + 460e: 0a07ab23 sw zero,182(a5) # 76c0 +} + 4612: 4501 li a0,0 + 4614: 8082 ret + +0000000000004616 : + +long long strtoll(const char *nptr, char **endptr, int base) +{ + 4616: 1141 addi sp,sp,-16 + 4618: e406 sd ra,8(sp) + 461a: e022 sd s0,0(sp) + const char *s = nptr; + 461c: 86aa mv a3,a0 + static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } + 461e: 02000813 li a6,32 + 4622: 4891 li a7,4 + unsigned long long acc; + int c, neg = 0; + + do + { + c = *s++; + 4624: 0006c783 lbu a5,0(a3) + 4628: 0685 addi a3,a3,1 + 462a: ff77871b addiw a4,a5,-9 + 462e: 0ff77713 zext.b a4,a4 + 4632: 0007841b sext.w s0,a5 + 4636: ff0787e3 beq a5,a6,4624 + 463a: fee8f5e3 bgeu a7,a4,4624 + if (base < 0 || base == 1 || base > 36) + 463e: 02400793 li a5,36 + 4642: 02c7ec63 bltu a5,a2,467a + 4646: 4785 li a5,1 + 4648: 02f60963 beq a2,a5,467a + 464c: bd7ff0ef jal 4222 + if (c == '-') + neg = 1; + + acc = strtoull(nptr, endptr, base); + + if (errno == ERANGE && acc == ULLONG_MAX) + 4650: 00003797 auipc a5,0x3 + 4654: 07078793 addi a5,a5,112 # 76c0 + 4658: 4394 lw a3,0(a5) + 465a: 02200713 li a4,34 + 465e: 04e68363 beq a3,a4,46a4 + return neg ? LLONG_MIN : LLONG_MAX; + + if (!neg && acc > (unsigned long long)LLONG_MAX) + 4662: 02d00713 li a4,45 + 4666: 02e40563 beq s0,a4,4690 + 466a: 00055f63 bgez a0,4688 + { + errno = ERANGE; + 466e: 02200713 li a4,34 + 4672: c398 sw a4,0(a5) + return neg ? LLONG_MIN : LLONG_MAX; + 4674: 557d li a0,-1 + 4676: 8105 srli a0,a0,0x1 + 4678: a801 j 4688 + if (endptr) + 467a: c191 beqz a1,467e + *endptr = (char *)nptr; + 467c: e188 sd a0,0(a1) + errno = 0; /* EINVAL */ + 467e: 00003797 auipc a5,0x3 + 4682: 0407a123 sw zero,66(a5) # 76c0 + { + errno = ERANGE; + return LLONG_MIN; + } + + return neg ? -(long long)acc : (long long)acc; + 4686: 4501 li a0,0 +} + 4688: 60a2 ld ra,8(sp) + 468a: 6402 ld s0,0(sp) + 468c: 0141 addi sp,sp,16 + 468e: 8082 ret + if (neg && acc > (unsigned long long)LLONG_MAX + 1) + 4690: 577d li a4,-1 + 4692: 177e slli a4,a4,0x3f + 4694: 02a76263 bltu a4,a0,46b8 +} + 4698: 60a2 ld ra,8(sp) + 469a: 6402 ld s0,0(sp) + return neg ? -(long long)acc : (long long)acc; + 469c: 40a00533 neg a0,a0 +} + 46a0: 0141 addi sp,sp,16 + 46a2: 8082 ret + if (errno == ERANGE && acc == ULLONG_MAX) + 46a4: 577d li a4,-1 + 46a6: fae51ee3 bne a0,a4,4662 + return neg ? LLONG_MIN : LLONG_MAX; + 46aa: 02d00793 li a5,45 + 46ae: fcf413e3 bne s0,a5,4674 + return LLONG_MIN; + 46b2: 557d li a0,-1 + 46b4: 157e slli a0,a0,0x3f + 46b6: bfc9 j 4688 + errno = ERANGE; + 46b8: 02200713 li a4,34 + 46bc: c398 sw a4,0(a5) + return LLONG_MIN; + 46be: bfd5 j 46b2 + +00000000000046c0 : + if (base < 0 || base == 1 || base > 36) + 46c0: 02400813 li a6,36 + +unsigned long strtoul(const char *nptr, char **endptr, int base) +{ + 46c4: 86aa mv a3,a0 + 46c6: 872e mv a4,a1 + if (base < 0 || base == 1 || base > 36) + 46c8: 00c86663 bltu a6,a2,46d4 + 46cc: 4805 li a6,1 + 46ce: 01060363 beq a2,a6,46d4 + 46d2: be81 j 4222 + if (endptr) + 46d4: c311 beqz a4,46d8 + *endptr = (char *)nptr; + 46d6: e314 sd a3,0(a4) + errno = 0; /* EINVAL */ + 46d8: 00003797 auipc a5,0x3 + 46dc: fe07a423 sw zero,-24(a5) # 76c0 + { + errno = ERANGE; + return ULONG_MAX; + } + return (unsigned long)ret; +} + 46e0: 4501 li a0,0 + 46e2: 8082 ret + +00000000000046e4 : + +long strtol(const char *nptr, char **endptr, int base) +{ + long long ret = strtoll(nptr, endptr, base); + 46e4: bf0d j 4616 + +00000000000046e6 : + return LONG_MIN; + } + return (long)ret; +} + +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 46e6: 1141 addi sp,sp,-16 + long long ret = strtoll(nptr, endptr, base); + 46e8: 4629 li a2,10 + 46ea: 4581 li a1,0 +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 46ec: e406 sd ra,8(sp) + long long ret = strtoll(nptr, endptr, base); + 46ee: f29ff0ef jal 4616 +int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } + 46f2: 60a2 ld ra,8(sp) + 46f4: 2501 sext.w a0,a0 + 46f6: 0141 addi sp,sp,16 + 46f8: 8082 ret + +00000000000046fa : + long long ret = strtoll(nptr, endptr, base); + 46fa: 4629 li a2,10 + 46fc: 4581 li a1,0 + 46fe: bf21 j 4616 + +0000000000004700 : +long atol(const char *nptr) { return strtol(nptr, NULL, 10); } +long long atoll(const char *nptr) { return strtoll(nptr, NULL, 10); } + 4700: 4629 li a2,10 + 4702: 4581 li a1,0 + 4704: bf09 j 4616 + +0000000000004706 : + 4706: 02000693 li a3,32 + 470a: 4611 li a2,4 +{ + double val = 0.0; + int sign = 1; + const char *s = nptr; + + while (isspace(*s)) + 470c: 00054783 lbu a5,0(a0) + 4710: ff77871b addiw a4,a5,-9 + 4714: 0ff77713 zext.b a4,a4 + 4718: 06d78263 beq a5,a3,477c + 471c: 06e67063 bgeu a2,a4,477c + s++; + if (*s == '-') + 4720: 02d00713 li a4,45 + 4724: 08e78e63 beq a5,a4,47c0 + { + sign = -1; + s++; + } + else if (*s == '+') + 4728: 02b00713 li a4,43 + 472c: 0ae78263 beq a5,a4,47d0 + 4730: 00001717 auipc a4,0x1 + 4734: 0a073507 fld fa0,160(a4) # 57d0 + static inline int isdigit(int c) { return c >= '0' && c <= '9'; } + 4738: fd07861b addiw a2,a5,-48 + s++; + + while (isdigit(*s)) + 473c: 46a5 li a3,9 + 473e: f20007d3 fmv.d.x fa5,zero + 4742: 8732 mv a4,a2 + 4744: 02c6e363 bltu a3,a2,476a + 4748: 00001797 auipc a5,0x1 + 474c: 0907b687 fld fa3,144(a5) # 57d8 + 4750: 4625 li a2,9 + 4752: 00154783 lbu a5,1(a0) + { + val = val * 10.0 + (*s - '0'); + 4756: d2070753 fcvt.d.w fa4,a4 + s++; + 475a: 0505 addi a0,a0,1 + 475c: fd07869b addiw a3,a5,-48 + val = val * 10.0 + (*s - '0'); + 4760: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 + 4764: 8736 mv a4,a3 + while (isdigit(*s)) + 4766: fed676e3 bgeu a2,a3,4752 + } + if (*s == '.') + 476a: 02e00713 li a4,46 + 476e: 00e78963 beq a5,a4,4780 + val += (*s - '0') * factor; + s++; + } + } + + if (endptr) + 4772: c191 beqz a1,4776 + *endptr = (char *)s; + 4774: e188 sd a0,0(a1) + return val * sign; +} + 4776: 12a7f553 fmul.d fa0,fa5,fa0 + 477a: 8082 ret + s++; + 477c: 0505 addi a0,a0,1 + 477e: b779 j 470c + while (isdigit(*s)) + 4780: 00154703 lbu a4,1(a0) + 4784: 46a5 li a3,9 + s++; + 4786: 0505 addi a0,a0,1 + 4788: fd07071b addiw a4,a4,-48 + 478c: 87ba mv a5,a4 + while (isdigit(*s)) + 478e: fee6e2e3 bltu a3,a4,4772 + double factor = 1.0; + 4792: 00001717 auipc a4,0x1 + 4796: 03e73707 fld fa4,62(a4) # 57d0 + 479a: 00001717 auipc a4,0x1 + 479e: 05673607 fld fa2,86(a4) # 57f0 + factor *= 0.1; + 47a2: 12c77753 fmul.d fa4,fa4,fa2 + while (isdigit(*s)) + 47a6: 00154703 lbu a4,1(a0) + val += (*s - '0') * factor; + 47aa: d20786d3 fcvt.d.w fa3,a5 + s++; + 47ae: 0505 addi a0,a0,1 + 47b0: fd07071b addiw a4,a4,-48 + 47b4: 87ba mv a5,a4 + val += (*s - '0') * factor; + 47b6: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 + while (isdigit(*s)) + 47ba: fee6f4e3 bgeu a3,a4,47a2 + 47be: bf55 j 4772 + while (isdigit(*s)) + 47c0: 00154783 lbu a5,1(a0) + 47c4: 00001717 auipc a4,0x1 + 47c8: 00473507 fld fa0,4(a4) # 57c8 + s++; + 47cc: 0505 addi a0,a0,1 + 47ce: b7ad j 4738 + while (isdigit(*s)) + 47d0: 00154783 lbu a5,1(a0) + 47d4: 00001717 auipc a4,0x1 + 47d8: ffc73507 fld fa0,-4(a4) # 57d0 + s++; + 47dc: 0505 addi a0,a0,1 + 47de: bfa9 j 4738 + +00000000000047e0 : + +double atof(const char *nptr) { return strtod(nptr, NULL); } + 47e0: 4581 li a1,0 + 47e2: b715 j 4706 + +00000000000047e4 : +float strtof(const char *nptr, char **endptr) { return (float)strtod(nptr, endptr); } + 47e4: 1141 addi sp,sp,-16 + 47e6: e406 sd ra,8(sp) + 47e8: f1fff0ef jal 4706 + 47ec: 60a2 ld ra,8(sp) + 47ee: 40157553 fcvt.s.d fa0,fa0 + 47f2: 0141 addi sp,sp,16 + 47f4: 8082 ret + +00000000000047f6 : + } +} + +void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + if (nmemb < 2 || size == 0) + 47f6: 4785 li a5,1 + 47f8: 0cb7fd63 bgeu a5,a1,48d2 +{ + 47fc: 715d addi sp,sp,-80 + 47fe: f44e sd s3,40(sp) + 4800: e486 sd ra,72(sp) + 4802: 89b2 mv s3,a2 + if (nmemb < 2 || size == 0) + 4804: c279 beqz a2,48ca + 4806: e85a sd s6,16(sp) + 4808: 8b2e mv s6,a1 + return; + + char *base_ptr = (char *)base; + char *pivot = base_ptr + (nmemb - 1) * size; + 480a: 1b7d addi s6,s6,-1 + 480c: fc26 sd s1,56(sp) + 480e: 033b04b3 mul s1,s6,s3 + 4812: ec56 sd s5,24(sp) + 4814: 8aaa mv s5,a0 + 4816: f052 sd s4,32(sp) + 4818: e45e sd s7,8(sp) + 481a: e0a2 sd s0,64(sp) + 481c: f84a sd s2,48(sp) + 481e: 8a36 mv s4,a3 + if (nmemb < 2 || size == 0) + 4820: 4b85 li s7,1 + char *pivot = base_ptr + (nmemb - 1) * size; + 4822: 94d6 add s1,s1,s5 + char *i = base_ptr; + char *j = base_ptr; + + /* Partition */ + for (; j < pivot; j += size) + 4824: 069af763 bgeu s5,s1,4892 + char *j = base_ptr; + 4828: 8956 mv s2,s5 + char *i = base_ptr; + 482a: 8456 mv s0,s5 + 482c: a021 j 4834 + for (; j < pivot; j += size) + 482e: 994e add s2,s2,s3 + 4830: 00997f63 bgeu s2,s1,484e + { + if (compar(j, pivot) < 0) + 4834: 85a6 mv a1,s1 + 4836: 854a mv a0,s2 + 4838: 9a02 jalr s4 + 483a: fe055ae3 bgez a0,482e + { + if (i != j) + 483e: 05241d63 bne s0,s2,4898 + 4842: 01390633 add a2,s2,s3 + swap_bytes(i, j, size); + i += size; + 4846: 8432 mv s0,a2 + for (; j < pivot; j += size) + 4848: 994e add s2,s2,s3 + 484a: fe9965e3 bltu s2,s1,4834 + } + } + swap_bytes(i, pivot, size); + + /* Recurse */ + size_t left_count = (i - base_ptr) / size; + 484e: 415405b3 sub a1,s0,s5 + 4852: 0335d5b3 divu a1,a1,s3 + qsort(base, left_count, size, compar); + qsort(i + size, nmemb - left_count - 1, size, compar); + 4856: 40bb0b33 sub s6,s6,a1 + while (size--) + 485a: 013406b3 add a3,s0,s3 + *a++ = *b; + 485e: 0004c703 lbu a4,0(s1) + temp = *a; + 4862: 00044783 lbu a5,0(s0) + *b++ = temp; + 4866: 0485 addi s1,s1,1 + *a++ = *b; + 4868: 0405 addi s0,s0,1 + 486a: fee40fa3 sb a4,-1(s0) + *b++ = temp; + 486e: fef48fa3 sb a5,-1(s1) + while (size--) + 4872: fed416e3 bne s0,a3,485e + qsort(base, left_count, size, compar); + 4876: 86d2 mv a3,s4 + 4878: 864e mv a2,s3 + 487a: 8556 mv a0,s5 + 487c: f7bff0ef jal 47f6 + if (nmemb < 2 || size == 0) + 4880: 036bfe63 bgeu s7,s6,48bc + char *pivot = base_ptr + (nmemb - 1) * size; + 4884: 1b7d addi s6,s6,-1 + 4886: 033b04b3 mul s1,s6,s3 + 488a: 8aa2 mv s5,s0 + 488c: 94d6 add s1,s1,s5 + for (; j < pivot; j += size) + 488e: f89aede3 bltu s5,s1,4828 + char *i = base_ptr; + 4892: 8456 mv s0,s5 + for (; j < pivot; j += size) + 4894: 4581 li a1,0 + 4896: b7d1 j 485a + 4898: 01340633 add a2,s0,s3 + if (i != j) + 489c: 874a mv a4,s2 + 489e: 87a2 mv a5,s0 + *a++ = *b; + 48a0: 00074683 lbu a3,0(a4) + temp = *a; + 48a4: 0007c803 lbu a6,0(a5) + *b++ = temp; + 48a8: 0705 addi a4,a4,1 + *a++ = *b; + 48aa: 0785 addi a5,a5,1 + 48ac: fed78fa3 sb a3,-1(a5) + *b++ = temp; + 48b0: ff070fa3 sb a6,-1(a4) + while (size--) + 48b4: fec796e3 bne a5,a2,48a0 + i += size; + 48b8: 8432 mv s0,a2 + 48ba: b779 j 4848 + 48bc: 6406 ld s0,64(sp) + 48be: 74e2 ld s1,56(sp) + 48c0: 7942 ld s2,48(sp) + 48c2: 7a02 ld s4,32(sp) + 48c4: 6ae2 ld s5,24(sp) + 48c6: 6b42 ld s6,16(sp) + 48c8: 6ba2 ld s7,8(sp) +} + 48ca: 60a6 ld ra,72(sp) + 48cc: 79a2 ld s3,40(sp) + 48ce: 6161 addi sp,sp,80 + 48d0: 8082 ret + 48d2: 8082 ret + +00000000000048d4 : + +void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) +{ + 48d4: 715d addi sp,sp,-80 + 48d6: e486 sd ra,72(sp) + 48d8: fc26 sd s1,56(sp) + size_t l = 0, u = nmemb; + while (l < u) + 48da: c629 beqz a2,4924 + 48dc: f84a sd s2,48(sp) + 48de: f44e sd s3,40(sp) + 48e0: f052 sd s4,32(sp) + 48e2: ec56 sd s5,24(sp) + 48e4: e85a sd s6,16(sp) + 48e6: e45e sd s7,8(sp) + 48e8: e0a2 sd s0,64(sp) + 48ea: 8932 mv s2,a2 + 48ec: 8a2a mv s4,a0 + 48ee: 8aae mv s5,a1 + 48f0: 8b36 mv s6,a3 + 48f2: 8bba mv s7,a4 + size_t l = 0, u = nmemb; + 48f4: 4981 li s3,0 + { + size_t idx = (l + u) / 2; + 48f6: 01298433 add s0,s3,s2 + 48fa: 8005 srli s0,s0,0x1 + const void *p = (void *)((const char *)base + (idx * size)); + 48fc: 036404b3 mul s1,s0,s6 + int cmp = compar(key, p); + 4900: 8552 mv a0,s4 + const void *p = (void *)((const char *)base + (idx * size)); + 4902: 94d6 add s1,s1,s5 + int cmp = compar(key, p); + 4904: 85a6 mv a1,s1 + 4906: 9b82 jalr s7 + if (cmp < 0) + 4908: 02054463 bltz a0,4930 + u = idx; + else if (cmp > 0) + 490c: c515 beqz a0,4938 + l = idx + 1; + 490e: 00140993 addi s3,s0,1 + while (l < u) + 4912: ff29e2e3 bltu s3,s2,48f6 + 4916: 6406 ld s0,64(sp) + 4918: 7942 ld s2,48(sp) + 491a: 79a2 ld s3,40(sp) + 491c: 7a02 ld s4,32(sp) + 491e: 6ae2 ld s5,24(sp) + 4920: 6b42 ld s6,16(sp) + 4922: 6ba2 ld s7,8(sp) + else + return (void *)p; + } + return NULL; +} + 4924: 60a6 ld ra,72(sp) + return NULL; + 4926: 4481 li s1,0 +} + 4928: 8526 mv a0,s1 + 492a: 74e2 ld s1,56(sp) + 492c: 6161 addi sp,sp,80 + 492e: 8082 ret + u = idx; + 4930: 8922 mv s2,s0 + while (l < u) + 4932: fd29e2e3 bltu s3,s2,48f6 + 4936: b7c5 j 4916 + 4938: 6406 ld s0,64(sp) +} + 493a: 60a6 ld ra,72(sp) + 493c: 7942 ld s2,48(sp) + 493e: 79a2 ld s3,40(sp) + 4940: 7a02 ld s4,32(sp) + 4942: 6ae2 ld s5,24(sp) + 4944: 6b42 ld s6,16(sp) + 4946: 6ba2 ld s7,8(sp) + 4948: 8526 mv a0,s1 + 494a: 74e2 ld s1,56(sp) + 494c: 6161 addi sp,sp,80 + 494e: 8082 ret + +0000000000004950 : + +/* Math & Mics */ + +int abs(int j) { return (j < 0) ? -j : j; } + 4950: 41f5579b sraiw a5,a0,0x1f + 4954: 8d3d xor a0,a0,a5 + 4956: 9d1d subw a0,a0,a5 + 4958: 8082 ret + +000000000000495a : +long labs(long j) { return (j < 0) ? -j : j; } + 495a: 43f55793 srai a5,a0,0x3f + 495e: 8d3d xor a0,a0,a5 + 4960: 8d1d sub a0,a0,a5 + 4962: 8082 ret + +0000000000004964 : +long long llabs(long long j) { return (j < 0) ? -j : j; } + 4964: 43f55793 srai a5,a0,0x3f + 4968: 8d3d xor a0,a0,a5 + 496a: 8d1d sub a0,a0,a5 + 496c: 8082 ret + +000000000000496e
: + +div_t div(int numer, int denom) +{ + div_t res = {numer / denom, numer % denom}; + 496e: 02b547bb divw a5,a0,a1 +{ + 4972: 1141 addi sp,sp,-16 + return res; +} + 4974: 0141 addi sp,sp,16 + div_t res = {numer / denom, numer % denom}; + 4976: 02b5653b remw a0,a0,a1 + return res; + 497a: 1782 slli a5,a5,0x20 + 497c: 9381 srli a5,a5,0x20 + 497e: 1502 slli a0,a0,0x20 +} + 4980: 8d5d or a0,a0,a5 + 4982: 8082 ret + +0000000000004984 : +ldiv_t ldiv(long numer, long denom) +{ + 4984: 1141 addi sp,sp,-16 + 4986: 87aa mv a5,a0 + ldiv_t res = {numer / denom, numer % denom}; + return res; +} + 4988: 02b54533 div a0,a0,a1 + 498c: 0141 addi sp,sp,16 + 498e: 02b7e5b3 rem a1,a5,a1 + 4992: 8082 ret + +0000000000004994 : +lldiv_t lldiv(long long numer, long long denom) +{ + 4994: 1141 addi sp,sp,-16 + 4996: 87aa mv a5,a0 + lldiv_t res = {numer / denom, numer % denom}; + return res; +} + 4998: 02b54533 div a0,a0,a1 + 499c: 0141 addi sp,sp,16 + 499e: 02b7e5b3 rem a1,a5,a1 + 49a2: 8082 ret + +00000000000049a4 : + +static unsigned long next = 1; +int rand(void) +{ + next = next * 1103515245 + 12345; + 49a4: 00003697 auipc a3,0x3 + 49a8: cd468693 addi a3,a3,-812 # 7678 + 49ac: 629c ld a5,0(a3) + 49ae: 41c65737 lui a4,0x41c65 + 49b2: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5d675> + 49b6: 02e787b3 mul a5,a5,a4 + 49ba: 670d lui a4,0x3 + 49bc: 03970713 addi a4,a4,57 # 3039 <_vprintf_core.constprop.0.isra.0+0x25> + 49c0: 97ba add a5,a5,a4 + return (unsigned int)(next / 65536) % 32768; + 49c2: 02179513 slli a0,a5,0x21 + next = next * 1103515245 + 12345; + 49c6: e29c sd a5,0(a3) +} + 49c8: 9145 srli a0,a0,0x31 + 49ca: 8082 ret + +00000000000049cc : +void srand(unsigned int seed) { next = seed; } + 49cc: 1502 slli a0,a0,0x20 + 49ce: 9101 srli a0,a0,0x20 + 49d0: 00003797 auipc a5,0x3 + 49d4: caa7b423 sd a0,-856(a5) # 7678 + 49d8: 8082 ret + +00000000000049da : + +/* Stub */ +int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } + 49da: c901 beqz a0,49ea + 49dc: 00054783 lbu a5,0(a0) + 49e0: 4501 li a0,0 + 49e2: c789 beqz a5,49ec + 49e4: 00b03533 snez a0,a1 + 49e8: 8082 ret + 49ea: 4501 li a0,0 + 49ec: 8082 ret + +00000000000049ee : +int mbtowc(wchar_t *pwc, const char *s, size_t n) +{ + 49ee: 87aa mv a5,a0 + if (!s) + 49f0: cd81 beqz a1,4a08 + return 0; + if (n == 0) + return -1; + 49f2: 557d li a0,-1 + if (n == 0) + 49f4: ca19 beqz a2,4a0a + if (pwc) + 49f6: c781 beqz a5,49fe + *pwc = (wchar_t)*s; + 49f8: 0005c703 lbu a4,0(a1) + 49fc: c398 sw a4,0(a5) + return (*s != 0); + 49fe: 0005c503 lbu a0,0(a1) + 4a02: 00a03533 snez a0,a0 + 4a06: 8082 ret + return 0; + 4a08: 4501 li a0,0 +} + 4a0a: 8082 ret + +0000000000004a0c : +int wctomb(char *s, wchar_t wchar) +{ + if (!s) + 4a0c: c509 beqz a0,4a16 + return 0; + *s = (char)wchar; + 4a0e: 00b50023 sb a1,0(a0) + return 1; + 4a12: 4505 li a0,1 + 4a14: 8082 ret + return 0; + 4a16: 4501 li a0,0 +} + 4a18: 8082 ret + +0000000000004a1a : +size_t mbstowcs(wchar_t *dest, const char *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4a1a: 0005c703 lbu a4,0(a1) + 4a1e: cb0d beqz a4,4a50 + 4a20: ca15 beqz a2,4a54 + 4a22: 86aa mv a3,a0 + size_t i = 0; + 4a24: 4781 li a5,0 + 4a26: a019 j 4a2c + while (src[i] && i < n) + 4a28: 02f60263 beq a2,a5,4a4c + { + dest[i] = (wchar_t)src[i]; + i++; + 4a2c: 0785 addi a5,a5,1 + dest[i] = (wchar_t)src[i]; + 4a2e: c298 sw a4,0(a3) + while (src[i] && i < n) + 4a30: 00f58733 add a4,a1,a5 + 4a34: 00074703 lbu a4,0(a4) + 4a38: 0691 addi a3,a3,4 + 4a3a: f77d bnez a4,4a28 + } + if (i < n) + 4a3c: 00c7f763 bgeu a5,a2,4a4a + dest[i] = 0; + 4a40: 00279713 slli a4,a5,0x2 + 4a44: 953a add a0,a0,a4 + 4a46: 00052023 sw zero,0(a0) + size_t i = 0; + 4a4a: 863e mv a2,a5 + 4a4c: 8532 mv a0,a2 + 4a4e: 8082 ret + 4a50: 4781 li a5,0 + 4a52: b7ed j 4a3c + 4a54: 4501 li a0,0 + return i; +} + 4a56: 8082 ret + +0000000000004a58 : +size_t wcstombs(char *dest, const wchar_t *src, size_t n) +{ + size_t i = 0; + while (src[i] && i < n) + 4a58: 4198 lw a4,0(a1) + 4a5a: c71d beqz a4,4a88 + 4a5c: ca05 beqz a2,4a8c + 4a5e: 0591 addi a1,a1,4 + size_t i = 0; + 4a60: 4781 li a5,0 + 4a62: a019 j 4a68 + while (src[i] && i < n) + 4a64: 02f60063 beq a2,a5,4a84 + { + dest[i] = (char)src[i]; + 4a68: 00f506b3 add a3,a0,a5 + 4a6c: 00e68023 sb a4,0(a3) + while (src[i] && i < n) + 4a70: 4198 lw a4,0(a1) + i++; + 4a72: 0785 addi a5,a5,1 + while (src[i] && i < n) + 4a74: 0591 addi a1,a1,4 + 4a76: f77d bnez a4,4a64 + } + if (i < n) + 4a78: 00c7f563 bgeu a5,a2,4a82 + dest[i] = 0; + 4a7c: 953e add a0,a0,a5 + 4a7e: 00050023 sb zero,0(a0) + size_t i = 0; + 4a82: 863e mv a2,a5 + 4a84: 8532 mv a0,a2 + 4a86: 8082 ret + 4a88: 4781 li a5,0 + 4a8a: b7fd j 4a78 + 4a8c: 4501 li a0,0 + return i; + 4a8e: 8082 ret + +0000000000004a90 : + +void *memset(void *dst, int c, size_t n) +{ + char *cdst = (char *)dst; + for (size_t i = 0; i < n; i++) + cdst[i] = (char)c; + 4a90: 0ff5f593 zext.b a1,a1 + 4a94: 87aa mv a5,a0 + 4a96: 00a60733 add a4,a2,a0 + for (size_t i = 0; i < n; i++) + 4a9a: c611 beqz a2,4aa6 + cdst[i] = (char)c; + 4a9c: 00b78023 sb a1,0(a5) + for (size_t i = 0; i < n; i++) + 4aa0: 0785 addi a5,a5,1 + 4aa2: fee79de3 bne a5,a4,4a9c + return dst; +} + 4aa6: 8082 ret + +0000000000004aa8 : + +void *memmove(void *vdst, const void *vsrc, size_t n) +{ + char *dst = (char *)vdst; + const char *src = (const char *)vsrc; + if (dst == src) + 4aa8: 02b50d63 beq a0,a1,4ae2 + return vdst; + + if (src > dst) + 4aac: 00b57e63 bgeu a0,a1,4ac8 + { + while (n--) + 4ab0: ca0d beqz a2,4ae2 + 4ab2: 962a add a2,a2,a0 + char *dst = (char *)vdst; + 4ab4: 87aa mv a5,a0 + *dst++ = *src++; + 4ab6: 0005c703 lbu a4,0(a1) + 4aba: 0785 addi a5,a5,1 + 4abc: 0585 addi a1,a1,1 + 4abe: fee78fa3 sb a4,-1(a5) + while (n--) + 4ac2: fec79ae3 bne a5,a2,4ab6 + 4ac6: 8082 ret + } + else + { + dst += n; + 4ac8: 00c50733 add a4,a0,a2 + src += n; + 4acc: 00c587b3 add a5,a1,a2 + while (n-- > 0) + 4ad0: ca09 beqz a2,4ae2 + *--dst = *--src; + 4ad2: fff7c683 lbu a3,-1(a5) + 4ad6: 17fd addi a5,a5,-1 + 4ad8: 177d addi a4,a4,-1 + 4ada: 00d70023 sb a3,0(a4) + while (n-- > 0) + 4ade: fef59ae3 bne a1,a5,4ad2 + } + return vdst; +} + 4ae2: 8082 ret + +0000000000004ae4 : + +void *memcpy(void *vdst, const void *vsrc, size_t n) +{ + return memmove(vdst, vsrc, n); + 4ae4: b7d1 j 4aa8 + +0000000000004ae6 : + +int memcmp(const void *s1, const void *s2, size_t n) +{ + const unsigned char *p1 = (const unsigned char *)s1; + const unsigned char *p2 = (const unsigned char *)s2; + while (n--) + 4ae6: c205 beqz a2,4b06 + 4ae8: 962a add a2,a2,a0 + 4aea: a019 j 4af0 + 4aec: 00c50d63 beq a0,a2,4b06 + { + if (*p1 != *p2) + 4af0: 00054783 lbu a5,0(a0) + 4af4: 0005c703 lbu a4,0(a1) + return *p1 - *p2; + p1++; + 4af8: 0505 addi a0,a0,1 + p2++; + 4afa: 0585 addi a1,a1,1 + if (*p1 != *p2) + 4afc: fee788e3 beq a5,a4,4aec + return *p1 - *p2; + 4b00: 40e7853b subw a0,a5,a4 + 4b04: 8082 ret + } + return 0; + 4b06: 4501 li a0,0 +} + 4b08: 8082 ret + +0000000000004b0a : + +void *memchr(const void *s, int c, size_t n) +{ + const unsigned char *p = (const unsigned char *)s; + while (n--) + 4b0a: ce09 beqz a2,4b24 + { + if (*p == (unsigned char)c) + 4b0c: 0ff5f593 zext.b a1,a1 + 4b10: 962a add a2,a2,a0 + 4b12: a021 j 4b1a + return (void *)p; + p++; + 4b14: 0505 addi a0,a0,1 + while (n--) + 4b16: 00a60763 beq a2,a0,4b24 + if (*p == (unsigned char)c) + 4b1a: 00054783 lbu a5,0(a0) + 4b1e: feb79be3 bne a5,a1,4b14 + } + return NULL; +} + 4b22: 8082 ret + return NULL; + 4b24: 4501 li a0,0 +} + 4b26: 8082 ret + +0000000000004b28 : +/* String Manipulation Functions */ + +size_t strlen(const char *s) +{ + const char *p = s; + while (*p) + 4b28: 00054783 lbu a5,0(a0) + 4b2c: cb89 beqz a5,4b3e + const char *p = s; + 4b2e: 87aa mv a5,a0 + while (*p) + 4b30: 0017c703 lbu a4,1(a5) + p++; + 4b34: 0785 addi a5,a5,1 + while (*p) + 4b36: ff6d bnez a4,4b30 + return (size_t)(p - s); + 4b38: 40a78533 sub a0,a5,a0 + 4b3c: 8082 ret + while (*p) + 4b3e: 4501 li a0,0 +} + 4b40: 8082 ret + +0000000000004b42 : + +char *strcpy(char *dst, const char *src) +{ + char *os = dst; + while ((*dst++ = *src++) != 0) + 4b42: 87aa mv a5,a0 + 4b44: 0005c703 lbu a4,0(a1) + 4b48: 0785 addi a5,a5,1 + 4b4a: 0585 addi a1,a1,1 + 4b4c: fee78fa3 sb a4,-1(a5) + 4b50: fb75 bnez a4,4b44 + ; + return os; +} + 4b52: 8082 ret + +0000000000004b54 : +char *strncpy(char *dst, const char *src, size_t n) +{ + char *os = dst; + size_t i; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4b54: 4781 li a5,0 + 4b56: e619 bnez a2,4b64 + 4b58: 8082 ret + dst[i] = src[i]; + 4b5a: 00e68023 sb a4,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4b5e: 0785 addi a5,a5,1 + 4b60: 02f60263 beq a2,a5,4b84 + 4b64: 00f58733 add a4,a1,a5 + 4b68: 00074703 lbu a4,0(a4) + dst[i] = src[i]; + 4b6c: 00f506b3 add a3,a0,a5 + for (i = 0; i < n && src[i] != '\0'; i++) + 4b70: f76d bnez a4,4b5a + + for (; i < n; i++) + 4b72: 00c7f963 bgeu a5,a2,4b84 + 4b76: 87b6 mv a5,a3 + 4b78: 962a add a2,a2,a0 + dst[i] = '\0'; + 4b7a: 00078023 sb zero,0(a5) + for (; i < n; i++) + 4b7e: 0785 addi a5,a5,1 + 4b80: fec79de3 bne a5,a2,4b7a + + return os; +} + 4b84: 8082 ret + +0000000000004b86 : + +char *strcat(char *dst, const char *src) +{ + char *os = dst; + while (*dst) + 4b86: 00054783 lbu a5,0(a0) + 4b8a: cf91 beqz a5,4ba6 + 4b8c: 87aa mv a5,a0 + 4b8e: 0017c703 lbu a4,1(a5) + dst++; + 4b92: 0785 addi a5,a5,1 + while (*dst) + 4b94: ff6d bnez a4,4b8e + while ((*dst++ = *src++) != 0) + 4b96: 0005c703 lbu a4,0(a1) + 4b9a: 0785 addi a5,a5,1 + 4b9c: 0585 addi a1,a1,1 + 4b9e: fee78fa3 sb a4,-1(a5) + 4ba2: fb75 bnez a4,4b96 + ; + return os; +} + 4ba4: 8082 ret + while ((*dst++ = *src++) != 0) + 4ba6: 0005c703 lbu a4,0(a1) + while (*dst) + 4baa: 87aa mv a5,a0 + while ((*dst++ = *src++) != 0) + 4bac: 0785 addi a5,a5,1 + 4bae: fee78fa3 sb a4,-1(a5) + 4bb2: 0585 addi a1,a1,1 + 4bb4: f36d bnez a4,4b96 + 4bb6: 8082 ret + +0000000000004bb8 : + while (*p) + 4bb8: 00054783 lbu a5,0(a0) + const char *p = s; + 4bbc: 872a mv a4,a0 + while (*p) + 4bbe: c789 beqz a5,4bc8 + 4bc0: 00174783 lbu a5,1(a4) + p++; + 4bc4: 0705 addi a4,a4,1 + while (*p) + 4bc6: ffed bnez a5,4bc0 + size_t dest_len = strlen(dst); + size_t i; + + dst += dest_len; + + for (i = 0; i < n && src[i] != '\0'; i++) + 4bc8: 86ba mv a3,a4 + 4bca: 4781 li a5,0 + 4bcc: 88ba mv a7,a4 + 4bce: ea01 bnez a2,4bde + 4bd0: a839 j 4bee + dst[i] = src[i]; + 4bd2: 01068023 sb a6,0(a3) + for (i = 0; i < n && src[i] != '\0'; i++) + 4bd6: 00188693 addi a3,a7,1 + 4bda: 00f60d63 beq a2,a5,4bf4 + 4bde: 00f58833 add a6,a1,a5 + 4be2: 00084803 lbu a6,0(a6) + 4be6: 0785 addi a5,a5,1 + dst[i] = src[i]; + 4be8: 88b6 mv a7,a3 + for (i = 0; i < n && src[i] != '\0'; i++) + 4bea: fe0814e3 bnez a6,4bd2 + + dst[i] = '\0'; + 4bee: 00088023 sb zero,0(a7) + + return os; +} + 4bf2: 8082 ret + dst[i] = '\0'; + 4bf4: 00c708b3 add a7,a4,a2 + 4bf8: 00088023 sb zero,0(a7) +} + 4bfc: 8082 ret + +0000000000004bfe : + +int strcmp(const char *p, const char *q) +{ + while (*p && *p == *q) + 4bfe: 00054783 lbu a5,0(a0) + 4c02: e791 bnez a5,4c0e + 4c04: a02d j 4c2e + 4c06: 00054783 lbu a5,0(a0) + 4c0a: cf89 beqz a5,4c24 + 4c0c: 85b6 mv a1,a3 + 4c0e: 0005c703 lbu a4,0(a1) + { + p++; + 4c12: 0505 addi a0,a0,1 + q++; + 4c14: 00158693 addi a3,a1,1 + while (*p && *p == *q) + 4c18: fef707e3 beq a4,a5,4c06 + } + return (int)((unsigned char)*p - (unsigned char)*q); + 4c1c: 0007851b sext.w a0,a5 +} + 4c20: 9d19 subw a0,a0,a4 + 4c22: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4c24: 0015c703 lbu a4,1(a1) + 4c28: 4501 li a0,0 +} + 4c2a: 9d19 subw a0,a0,a4 + 4c2c: 8082 ret + return (int)((unsigned char)*p - (unsigned char)*q); + 4c2e: 0005c703 lbu a4,0(a1) + 4c32: 4501 li a0,0 + 4c34: b7f5 j 4c20 + +0000000000004c36 : + +int strncmp(const char *s1, const char *s2, size_t n) +{ + if (n == 0) + 4c36: ca0d beqz a2,4c68 + return 0; + + while (n-- > 0 && *s1 && *s1 == *s2) + 4c38: 00054783 lbu a5,0(a0) + 4c3c: 167d addi a2,a2,-1 + 4c3e: 00c506b3 add a3,a0,a2 + 4c42: eb89 bnez a5,4c54 + 4c44: a80d j 4c76 + { + if (n == 0 || *s1 == '\0') + 4c46: 00d50d63 beq a0,a3,4c60 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c4a: 00154783 lbu a5,1(a0) + break; + s1++; + 4c4e: 0505 addi a0,a0,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c50: cf91 beqz a5,4c6c + 4c52: 85b2 mv a1,a2 + 4c54: 0005c703 lbu a4,0(a1) + s2++; + 4c58: 00158613 addi a2,a1,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4c5c: fef705e3 beq a4,a5,4c46 + } + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4c60: 0007851b sext.w a0,a5 + 4c64: 9d19 subw a0,a0,a4 + 4c66: 8082 ret + return 0; + 4c68: 4501 li a0,0 +} + 4c6a: 8082 ret + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4c6c: 0015c703 lbu a4,1(a1) + 4c70: 4501 li a0,0 + 4c72: 9d19 subw a0,a0,a4 + 4c74: 8082 ret + 4c76: 0005c703 lbu a4,0(a1) + 4c7a: 4501 li a0,0 + 4c7c: b7e5 j 4c64 + +0000000000004c7e : + +char *strchr(const char *s, int c) +{ + while (*s != (char)c) + 4c7e: 0ff5f593 zext.b a1,a1 + 4c82: a019 j 4c88 + { + if (!*s++) + 4c84: 0505 addi a0,a0,1 + 4c86: c791 beqz a5,4c92 + while (*s != (char)c) + 4c88: 00054783 lbu a5,0(a0) + 4c8c: feb79ce3 bne a5,a1,4c84 + 4c90: 8082 ret + return NULL; + 4c92: 4501 li a0,0 + } + return (char *)s; +} + 4c94: 8082 ret + +0000000000004c96 : + +char *strrchr(const char *s, int c) +{ + 4c96: 87aa mv a5,a0 + const char *last = NULL; + do + { + if (*s == (char)c) + 4c98: 0ff5f593 zext.b a1,a1 + const char *last = NULL; + 4c9c: 4501 li a0,0 + if (*s == (char)c) + 4c9e: 0007c703 lbu a4,0(a5) + 4ca2: 00e59363 bne a1,a4,4ca8 + last = s; + 4ca6: 853e mv a0,a5 + } while (*s++); + 4ca8: 0785 addi a5,a5,1 + 4caa: fb75 bnez a4,4c9e + + return (char *)last; +} + 4cac: 8082 ret + +0000000000004cae : + while (*p) + 4cae: 0005c883 lbu a7,0(a1) + 4cb2: 04088a63 beqz a7,4d06 + const char *p = s; + 4cb6: 87ae mv a5,a1 + while (*p) + 4cb8: 0017c703 lbu a4,1(a5) + p++; + 4cbc: 0785 addi a5,a5,1 + while (*p) + 4cbe: ff6d bnez a4,4cb8 + return (size_t)(p - s); + 4cc0: 40b78833 sub a6,a5,a1 + + +char *strstr(const char *haystack, const char *needle) +{ + size_t n_len = strlen(needle); + if (n_len == 0) + 4cc4: 04b78163 beq a5,a1,4d06 + return (char *)haystack; + + for (; *haystack; haystack++) + 4cc8: 00054783 lbu a5,0(a0) + 4ccc: cf85 beqz a5,4d04 + 4cce: 187d addi a6,a6,-1 + 4cd0: 982a add a6,a6,a0 + { + if (*haystack != *needle) + 4cd2: 02f89463 bne a7,a5,4cfa + while (n-- > 0 && *s1 && *s1 == *s2) + 4cd6: 00054703 lbu a4,0(a0) + 4cda: 8646 mv a2,a7 + 4cdc: 86ae mv a3,a1 + 4cde: 87aa mv a5,a0 + 4ce0: eb11 bnez a4,4cf4 + 4ce2: a821 j 4cfa + if (n == 0 || *s1 == '\0') + 4ce4: 03078163 beq a5,a6,4d06 + while (n-- > 0 && *s1 && *s1 == *s2) + 4ce8: 0017c703 lbu a4,1(a5) + return (int)((unsigned char)*s1 - (unsigned char)*s2); + 4cec: 0006c603 lbu a2,0(a3) + s1++; + 4cf0: 0785 addi a5,a5,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4cf2: cb19 beqz a4,4d08 + s2++; + 4cf4: 0685 addi a3,a3,1 + while (n-- > 0 && *s1 && *s1 == *s2) + 4cf6: fee607e3 beq a2,a4,4ce4 + for (; *haystack; haystack++) + 4cfa: 00154783 lbu a5,1(a0) + 4cfe: 0805 addi a6,a6,1 + 4d00: 0505 addi a0,a0,1 + 4d02: fbe1 bnez a5,4cd2 + continue; + + if (strncmp(haystack, needle, n_len) == 0) + return (char *)haystack; + } + return NULL; + 4d04: 4501 li a0,0 +} + 4d06: 8082 ret + if (strncmp(haystack, needle, n_len) == 0) + 4d08: de7d beqz a2,4d06 + for (; *haystack; haystack++) + 4d0a: 00154783 lbu a5,1(a0) + 4d0e: 0805 addi a6,a6,1 + 4d10: 0505 addi a0,a0,1 + 4d12: f3e1 bnez a5,4cd2 + 4d14: bfc5 j 4d04 + +0000000000004d16 : + +char *strdup(const char *s) +{ + 4d16: 1101 addi sp,sp,-32 + 4d18: e426 sd s1,8(sp) + 4d1a: ec06 sd ra,24(sp) + 4d1c: e822 sd s0,16(sp) + while (*p) + 4d1e: 00054783 lbu a5,0(a0) +{ + 4d22: 84aa mv s1,a0 + while (*p) + 4d24: cb8d beqz a5,4d56 + const char *p = s; + 4d26: 862a mv a2,a0 + while (*p) + 4d28: 00164783 lbu a5,1(a2) + p++; + 4d2c: 0605 addi a2,a2,1 + while (*p) + 4d2e: ffed bnez a5,4d28 + return (size_t)(p - s); + 4d30: 8e05 sub a2,a2,s1 + size_t len = strlen(s) + 1; + 4d32: 00160413 addi s0,a2,1 + char *new_str = (char *)malloc(len); + 4d36: 8522 mv a0,s0 + 4d38: f4eff0ef jal 4486 + if (new_str == NULL) + 4d3c: c901 beqz a0,4d4c + return memmove(vdst, vsrc, n); + 4d3e: 8622 mv a2,s0 + return NULL; + + return (char *)memcpy(new_str, s, len); +} + 4d40: 6442 ld s0,16(sp) + 4d42: 60e2 ld ra,24(sp) + return memmove(vdst, vsrc, n); + 4d44: 85a6 mv a1,s1 +} + 4d46: 64a2 ld s1,8(sp) + 4d48: 6105 addi sp,sp,32 + return memmove(vdst, vsrc, n); + 4d4a: bbb9 j 4aa8 +} + 4d4c: 60e2 ld ra,24(sp) + 4d4e: 6442 ld s0,16(sp) + 4d50: 64a2 ld s1,8(sp) + 4d52: 6105 addi sp,sp,32 + 4d54: 8082 ret + while (*p) + 4d56: 4405 li s0,1 + 4d58: bff9 j 4d36 + +0000000000004d5a : + 4d5a: 0005c783 lbu a5,0(a1) + +size_t strlcpy(char *dst, const char *src, size_t size) +{ + 4d5e: 1101 addi sp,sp,-32 + 4d60: ec06 sd ra,24(sp) + 4d62: e822 sd s0,16(sp) + 4d64: 86b2 mv a3,a2 + while (*p) + 4d66: cf8d beqz a5,4da0 + const char *p = s; + 4d68: 87ae mv a5,a1 + while (*p) + 4d6a: 0017c703 lbu a4,1(a5) + p++; + 4d6e: 0785 addi a5,a5,1 + while (*p) + 4d70: ff6d bnez a4,4d6a + return (size_t)(p - s); + 4d72: 40b78433 sub s0,a5,a1 + size_t src_len = strlen(src); + + if (size > 0) + 4d76: c285 beqz a3,4d96 + 4d78: e426 sd s1,8(sp) + { + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4d7a: fff68613 addi a2,a3,-1 + memcpy(dst, src, copy_len); + dst[copy_len] = '\0'; + 4d7e: 00c504b3 add s1,a0,a2 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4d82: 00d47563 bgeu s0,a3,4d8c + dst[copy_len] = '\0'; + 4d86: 008504b3 add s1,a0,s0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4d8a: 8622 mv a2,s0 + return memmove(vdst, vsrc, n); + 4d8c: d1dff0ef jal 4aa8 + dst[copy_len] = '\0'; + 4d90: 00048023 sb zero,0(s1) + } + + return src_len; + 4d94: 64a2 ld s1,8(sp) +} + 4d96: 60e2 ld ra,24(sp) + 4d98: 8522 mv a0,s0 + 4d9a: 6442 ld s0,16(sp) + 4d9c: 6105 addi sp,sp,32 + 4d9e: 8082 ret + if (size > 0) + 4da0: e219 bnez a2,4da6 + return (size_t)(p - s); + 4da2: 4401 li s0,0 + 4da4: bfcd j 4d96 + 4da6: e426 sd s1,8(sp) + 4da8: 4401 li s0,0 + if (size > 0) + 4daa: 84aa mv s1,a0 + size_t copy_len = (src_len >= size) ? size - 1 : src_len; + 4dac: 4601 li a2,0 + 4dae: bff9 j 4d8c + +0000000000004db0 : + while (*p) + 4db0: 0005c783 lbu a5,0(a1) + +size_t strlcat(char *dst, const char *src, size_t size) +{ + 4db4: 7179 addi sp,sp,-48 + 4db6: e84a sd s2,16(sp) + 4db8: f406 sd ra,40(sp) + 4dba: f022 sd s0,32(sp) + 4dbc: ec26 sd s1,24(sp) + 4dbe: 892a mv s2,a0 + while (*p) + 4dc0: c7b5 beqz a5,4e2c + const char *p = s; + 4dc2: 87ae mv a5,a1 + while (*p) + 4dc4: 0017c703 lbu a4,1(a5) + p++; + 4dc8: 0785 addi a5,a5,1 + while (*p) + 4dca: ff6d bnez a4,4dc4 + return (size_t)(p - s); + 4dcc: 40b784b3 sub s1,a5,a1 + size_t dst_len = 0; + 4dd0: 4401 li s0,0 + size_t src_len = strlen(src); + + while (dst_len < size && dst[dst_len] != '\0') + 4dd2: e609 bnez a2,4ddc + 4dd4: a0a1 j 4e1c + dst_len++; + 4dd6: 0405 addi s0,s0,1 + while (dst_len < size && dst[dst_len] != '\0') + 4dd8: 04860263 beq a2,s0,4e1c + 4ddc: 00890533 add a0,s2,s0 + 4de0: 00054783 lbu a5,0(a0) + 4de4: fbed bnez a5,4dd6 + + if (dst_len == size) + 4de6: 02860b63 beq a2,s0,4e1c + 4dea: e44e sd s3,8(sp) + return size + src_len; + + size_t space_left = size - dst_len; + 4dec: 408607b3 sub a5,a2,s0 + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4df0: 89a6 mv s3,s1 + 4df2: 02f4f263 bgeu s1,a5,4e16 + + memcpy(dst + dst_len, src, copy_len); + dst[dst_len + copy_len] = '\0'; + 4df6: 994e add s2,s2,s3 + 4df8: 9922 add s2,s2,s0 + return memmove(vdst, vsrc, n); + 4dfa: 864e mv a2,s3 + 4dfc: cadff0ef jal 4aa8 + dst[dst_len + copy_len] = '\0'; + 4e00: 00090023 sb zero,0(s2) # 1000 <_vscanf_core.constprop.0+0x6d0> + + return dst_len + src_len; + 4e04: 00940533 add a0,s0,s1 +} + 4e08: 70a2 ld ra,40(sp) + 4e0a: 7402 ld s0,32(sp) + return dst_len + src_len; + 4e0c: 69a2 ld s3,8(sp) +} + 4e0e: 64e2 ld s1,24(sp) + 4e10: 6942 ld s2,16(sp) + 4e12: 6145 addi sp,sp,48 + 4e14: 8082 ret + size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; + 4e16: fff78993 addi s3,a5,-1 + 4e1a: bff1 j 4df6 +} + 4e1c: 70a2 ld ra,40(sp) + 4e1e: 7402 ld s0,32(sp) + 4e20: 6942 ld s2,16(sp) + return size + src_len; + 4e22: 00960533 add a0,a2,s1 +} + 4e26: 64e2 ld s1,24(sp) + 4e28: 6145 addi sp,sp,48 + 4e2a: 8082 ret + while (*p) + 4e2c: 4481 li s1,0 + 4e2e: b74d j 4dd0 + +0000000000004e30 : +size_t strspn(const char *s, const char *accept) +{ + const char *p = s; + const char *a; + + while (*p) + 4e30: 00054683 lbu a3,0(a0) + 4e34: c695 beqz a3,4e60 + { + for (a = accept; *a; a++) + 4e36: 0005c803 lbu a6,0(a1) + 4e3a: 862a mv a2,a0 + 4e3c: 00080f63 beqz a6,4e5a + 4e40: 87ae mv a5,a1 + 4e42: 8742 mv a4,a6 + 4e44: a021 j 4e4c + 4e46: 0007c703 lbu a4,0(a5) + 4e4a: cb01 beqz a4,4e5a + 4e4c: 0785 addi a5,a5,1 + { + if (*p == *a) + 4e4e: fee69ce3 bne a3,a4,4e46 + while (*p) + 4e52: 00164683 lbu a3,1(a2) + break; + } + if (*a == '\0') + return (size_t)(p - s); + p++; + 4e56: 0605 addi a2,a2,1 + while (*p) + 4e58: f6e5 bnez a3,4e40 + } + return (size_t)(p - s); + 4e5a: 40a60533 sub a0,a2,a0 + 4e5e: 8082 ret + while (*p) + 4e60: 4501 li a0,0 +} + 4e62: 8082 ret + +0000000000004e64 : +size_t strcspn(const char *s, const char *reject) +{ + const char *p = s; + const char *r; + + while (*p) + 4e64: 00054683 lbu a3,0(a0) + 4e68: ce85 beqz a3,4ea0 + { + for (r = reject; *r; r++) + 4e6a: 0005c803 lbu a6,0(a1) + const char *p = s; + 4e6e: 862a mv a2,a0 + for (r = reject; *r; r++) + 4e70: 02080363 beqz a6,4e96 + 4e74: 87ae mv a5,a1 + 4e76: 8742 mv a4,a6 + 4e78: a021 j 4e80 + 4e7a: 0007c703 lbu a4,0(a5) + 4e7e: c719 beqz a4,4e8c + 4e80: 0785 addi a5,a5,1 + { + if (*p == *r) + 4e82: fed71ce3 bne a4,a3,4e7a + return (size_t)(p - s); + } + p++; + } + return (size_t)(p - s); + 4e86: 40a60533 sub a0,a2,a0 + 4e8a: 8082 ret + while (*p) + 4e8c: 00164683 lbu a3,1(a2) + p++; + 4e90: 0605 addi a2,a2,1 + while (*p) + 4e92: f2ed bnez a3,4e74 + 4e94: bfcd j 4e86 + 4e96: 00164683 lbu a3,1(a2) + p++; + 4e9a: 0605 addi a2,a2,1 + while (*p) + 4e9c: feed bnez a3,4e96 + 4e9e: b7e5 j 4e86 + 4ea0: 4501 li a0,0 +} + 4ea2: 8082 ret + +0000000000004ea4 : + +char *strpbrk(const char *s, const char *accept) +{ + const char *a; + while (*s) + 4ea4: 00054683 lbu a3,0(a0) + 4ea8: c295 beqz a3,4ecc + { + for (a = accept; *a; a++) + 4eaa: 0005c603 lbu a2,0(a1) + 4eae: c20d beqz a2,4ed0 + 4eb0: 87ae mv a5,a1 + 4eb2: 8732 mv a4,a2 + 4eb4: a021 j 4ebc + 4eb6: 0007c703 lbu a4,0(a5) + 4eba: c709 beqz a4,4ec4 + 4ebc: 0785 addi a5,a5,1 + { + if (*s == *a) + 4ebe: fed71ce3 bne a4,a3,4eb6 + return (char *)s; + } + s++; + } + return NULL; +} + 4ec2: 8082 ret + while (*s) + 4ec4: 00154683 lbu a3,1(a0) + s++; + 4ec8: 0505 addi a0,a0,1 + while (*s) + 4eca: f2fd bnez a3,4eb0 + return NULL; + 4ecc: 4501 li a0,0 +} + 4ece: 8082 ret + while (*s) + 4ed0: 00154683 lbu a3,1(a0) + s++; + 4ed4: 0505 addi a0,a0,1 + while (*s) + 4ed6: feed bnez a3,4ed0 + 4ed8: bfd5 j 4ecc + +0000000000004eda : +char *strtok(char *str, const char *delim) +{ + static char *olds; + char *token; + + if (str == NULL) + 4eda: 00003897 auipc a7,0x3 + 4ede: 90688893 addi a7,a7,-1786 # 77e0 + 4ee2: cd25 beqz a0,4f5a + while (*p) + 4ee4: 00054683 lbu a3,0(a0) + 4ee8: c295 beqz a3,4f0c + for (a = accept; *a; a++) + 4eea: 0005c803 lbu a6,0(a1) + 4eee: 02080463 beqz a6,4f16 + 4ef2: 87ae mv a5,a1 + 4ef4: 8742 mv a4,a6 + 4ef6: a021 j 4efe + 4ef8: 0007c703 lbu a4,0(a5) + 4efc: cf09 beqz a4,4f16 + 4efe: 0785 addi a5,a5,1 + if (*p == *a) + 4f00: fee69ce3 bne a3,a4,4ef8 + while (*p) + 4f04: 00154683 lbu a3,1(a0) + p++; + 4f08: 0505 addi a0,a0,1 + while (*p) + 4f0a: f6e5 bnez a3,4ef2 + 4f0c: 87aa mv a5,a0 + str = olds; + + str += strspn(str, delim); + if (*str == '\0') + { + olds = str; + 4f0e: 00f8b023 sd a5,0(a7) + return NULL; + 4f12: 4501 li a0,0 + *str = '\0'; + olds = str + 1; + } + + return token; +} + 4f14: 8082 ret + if (*str == '\0') + 4f16: 00054603 lbu a2,0(a0) + 4f1a: da6d beqz a2,4f0c + 4f1c: 86aa mv a3,a0 + for (a = accept; *a; a++) + 4f1e: 04080163 beqz a6,4f60 + 4f22: 8742 mv a4,a6 + 4f24: 87ae mv a5,a1 + 4f26: a021 j 4f2e + 4f28: 0007c703 lbu a4,0(a5) + 4f2c: cb19 beqz a4,4f42 + 4f2e: 0785 addi a5,a5,1 + if (*s == *a) + 4f30: fee61ce3 bne a2,a4,4f28 + olds = str + 1; + 4f34: 00168793 addi a5,a3,1 + *str = '\0'; + 4f38: 00068023 sb zero,0(a3) + olds = str; + 4f3c: 00f8b023 sd a5,0(a7) +} + 4f40: 8082 ret + while (*s) + 4f42: 0016c603 lbu a2,1(a3) + s++; + 4f46: 0685 addi a3,a3,1 + while (*s) + 4f48: fe69 bnez a2,4f22 + 4f4a: 87aa mv a5,a0 + while (*s != (char)c) + 4f4c: 0017c703 lbu a4,1(a5) + if (!*s++) + 4f50: 0785 addi a5,a5,1 + while (*s != (char)c) + 4f52: ff6d bnez a4,4f4c + olds = str; + 4f54: 00f8b023 sd a5,0(a7) +} + 4f58: 8082 ret + str = olds; + 4f5a: 0008b503 ld a0,0(a7) + 4f5e: b759 j 4ee4 + while (*s) + 4f60: 0016c603 lbu a2,1(a3) + s++; + 4f64: 0685 addi a3,a3,1 + while (*s) + 4f66: fe6d bnez a2,4f60 + 4f68: b7cd j 4f4a + +0000000000004f6a : + +char *strerror(int errnum) +{ + 4f6a: 87aa mv a5,a0 + + switch (errnum) + 4f6c: cd09 beqz a0,4f86 + 4f6e: 4731 li a4,12 + 4f70: 00000517 auipc a0,0x0 + 4f74: 16050513 addi a0,a0,352 # 50d0 <_GLOBAL__sub_I__ZSt3cin+0x128> + 4f78: 00e78b63 beq a5,a4,4f8e + return "Success"; + // case EINVAL: return "Invalid argument"; + case ENOMEM: return "Out of memory"; + + default: + return "Unknown error"; + 4f7c: 00000517 auipc a0,0x0 + 4f80: 16450513 addi a0,a0,356 # 50e0 <_GLOBAL__sub_I__ZSt3cin+0x138> + 4f84: 8082 ret + return "Success"; + 4f86: 00000517 auipc a0,0x0 + 4f8a: 14250513 addi a0,a0,322 # 50c8 <_GLOBAL__sub_I__ZSt3cin+0x120> + } + 4f8e: 8082 ret + +0000000000004f90 <_Znwm>: +#include "ulib/stdlib.h" + +void *operator new(unsigned long n) +{ + return malloc(n); + 4f90: cf6ff06f j 4486 + +0000000000004f94 <_Znam>: +} + +void *operator new[](unsigned long n) + 4f94: cf2ff06f j 4486 + +0000000000004f98 <_ZdlPv>: + return malloc(n); +} + +void operator delete(void *p) +{ + free(p); + 4f98: c78ff06f j 4410 + +0000000000004f9c <_ZdaPv>: +} + +void operator delete[](void *p) + 4f9c: c74ff06f j 4410 + +0000000000004fa0 <_ZdlPvm>: + free(p); +} + +void operator delete(void *p, unsigned long) +{ + free(p); + 4fa0: c70ff06f j 4410 + +0000000000004fa4 <_ZdaPvm>: +} + +void operator delete[](void *p, unsigned long) + 4fa4: c6cff06f j 4410 + +0000000000004fa8 <_GLOBAL__sub_I__ZSt3cin>: +#include "ulib/iostream" + +namespace std +{ + istream cin(stdin); + 4fa8: 00002797 auipc a5,0x2 + 4fac: 6e87b783 ld a5,1768(a5) # 7690 <_GLOBAL_OFFSET_TABLE_+0x10> + 4fb0: 6390 ld a2,0(a5) + ostream cout(stdout); + 4fb2: 00002797 auipc a5,0x2 + 4fb6: 6d67b783 ld a5,1750(a5) # 7688 <_GLOBAL_OFFSET_TABLE_+0x8> + 4fba: 6394 ld a3,0(a5) + ostream cerr(stderr); + 4fbc: 00002797 auipc a5,0x2 + 4fc0: 6dc7b783 ld a5,1756(a5) # 7698 <_GLOBAL_OFFSET_TABLE_+0x18> + 4fc4: 6398 ld a4,0(a5) + + class istream{ + private: + FILE* _stream; + public: + istream(FILE *f) : _stream(f) {} + 4fc6: 00003797 auipc a5,0x3 + 4fca: 82278793 addi a5,a5,-2014 # 77e8 <_ZSt3cin> + 4fce: e390 sd a2,0(a5) + ostream(FILE* f) : _stream(f) {} + 4fd0: e794 sd a3,8(a5) + 4fd2: eb98 sd a4,16(a5) +} // namespace std + 4fd4: 8082 ret diff --git a/build/user/mkdir.sym b/build/user/mkdir.sym new file mode 100644 index 0000000..475d722 --- /dev/null +++ b/build/user/mkdir.sym @@ -0,0 +1,189 @@ +0000000000000000 .text +0000000000004fd8 .rodata +00000000000057f8 .eh_frame +00000000000068f8 .data +0000000000007680 .got +00000000000076a0 .got.plt +00000000000076b0 .init_array +00000000000076b8 .bss +0000000000000000 .debug_info +0000000000000000 .debug_abbrev +0000000000000000 .debug_loclists +0000000000000000 .debug_aranges +0000000000000000 .debug_rnglists +0000000000000000 .debug_line +0000000000000000 .debug_str +0000000000000000 .debug_line_str +0000000000000000 .comment +0000000000000000 .riscv.attributes +0000000000000000 mkdir.cc +0000000000000000 entry.o +0000000000000000 usys.o +0000000000000000 stdio.c +0000000000000148 stbsp__clamp_callback +0000000000000196 stbsp__count_clamp_callback +00000000000001a2 stbsp__real_to_str +0000000000000876 _in_char.part.0 +00000000000008bc _skip_space +0000000000000930 _vscanf_core.constprop.0 +00000000000011a0 _out_char +0000000000003014 _vprintf_core.constprop.0.isra.0 +0000000000006900 stbsp__digitpair +00000000000069cc stbsp__period +00000000000069cd stbsp__comma +00000000000069d0 hexu.1 +00000000000069e8 hex.0 +0000000000006a00 _stderr +0000000000006e20 _stdout +0000000000007240 _stdin +0000000000005360 stbsp__bot +0000000000005418 stbsp__negbot +00000000000054c8 stbsp__negboterr +0000000000005578 stbsp__negtop +00000000000055e0 stbsp__negtoperr +0000000000005648 stbsp__top +00000000000056b0 stbsp__toperr +0000000000005718 stbsp__powten +0000000000000000 stdlib.c +0000000000004222 strtoull.part.0 +0000000000007678 next +00000000000076c4 __atexit_func_count +00000000000076c8 __atexit_funcs +00000000000077c8 freep +00000000000077d0 base +0000000000000000 string.c +00000000000077e0 olds.0 +0000000000000000 cxx.cc +0000000000000000 iostream.cpp +0000000000004fa8 _GLOBAL__sub_I__ZSt3cin +0000000000007680 _GLOBAL_OFFSET_TABLE_ +0000000000004b42 strcpy +00000000000038b2 printf +0000000000007660 stdout +00000000000057bc STDOUT_FD +00000000000041f8 ungetc +0000000000004f6a strerror +0000000000004aa8 memmove +000000000000385c snprintf +00000000000000d0 mknod +00000000000046fa atol +0000000000004408 getenv +0000000000004f90 _Znwm +00000000000076c0 errno +000000000000495a labs +00000000000048d4 bsearch +0000000000000108 getpid +00000000000047f6 qsort +0000000000003af0 fscanf +0000000000003d62 fgets +00000000000077f8 _ZSt4cerr +0000000000004ae4 memcpy +000000000000440c system +00000000000041d8 feof +0000000000004486 malloc +0000000000000118 sleep +0000000000003812 vsnprintf +0000000000004616 strtoll +00000000000046c0 strtoul +0000000000004a0c wctomb +0000000000004a58 wcstombs +0000000000003a7a fflush +0000000000004a1a mbstowcs +0000000000000138 lseek +0000000000004f98 _ZdlPv +00000000000043fc abort +00000000000046e4 strtol +0000000000000098 pipe +00000000000049da mblen +0000000000004c96 strrchr +000000000000454c calloc +0000000000004706 strtod +0000000000000130 disk_test +00000000000000a8 write +00000000000047e0 atof +00000000000000e0 fstat +0000000000003abe fprintf +00000000000000b8 kill +0000000000004b86 strcat +00000000000000f8 chdir +00000000000040e0 fseek +0000000000002fb0 stbsp_vsprintf +00000000000000c0 exec +0000000000004b0a memchr +0000000000007668 stdin +0000000000000090 wait +0000000000002eca stbsp_vsnprintf +0000000000000076 _start +00000000000041e2 ferror +0000000000004cae strstr +00000000000049a4 rand +00000000000000a0 read +0000000000004d5a strlcpy +0000000000004c36 strncmp +0000000000001274 stbsp_set_separators +0000000000004fa0 _ZdlPvm +0000000000004b54 strncpy +00000000000000d8 unlink +0000000000004594 realloc +0000000000004eda strtok +0000000000004ae6 memcmp +0000000000000088 fork +00000000000038ec sscanf +0000000000004bb8 strncat +0000000000003e3e fread +0000000000000110 sbrk +0000000000004d16 strdup +0000000000000120 uptime +00000000000045f2 strtoull +0000000000002ea0 stbsp_sprintf +000000000000394e fopen +0000000000004a90 memset +0000000000000000 main +0000000000004154 ftell +00000000000049cc srand +0000000000004db0 strlcat +00000000000041ec clearerr +0000000000004f9c _ZdaPv +0000000000003a12 fclose +0000000000000128 putc +0000000000004bfe strcmp +0000000000000140 shutdown +0000000000000100 dup +0000000000003ccc fgetc +0000000000002fbe sprintf +00000000000047e4 strtof +00000000000043a2 atexit +0000000000004e64 strcspn +0000000000002f90 stbsp_snprintf +00000000000077e8 _ZSt3cin +000000000000391c scanf +0000000000007670 stderr +0000000000004984 ldiv +0000000000003b22 fputc +0000000000004f94 _Znam +0000000000004994 lldiv +0000000000003f58 fwrite +0000000000004180 rewind +00000000000077f0 _ZSt4cout +00000000000000e8 link +00000000000043c6 exit +0000000000000080 sys_exit +0000000000004964 llabs +00000000000046e6 atoi +00000000000057b8 STDERR_FD +0000000000004e30 strspn +0000000000004b28 strlen +0000000000001286 stbsp_vsprintfcb +00000000000000c8 open +00000000000057c0 STDIN_FD +0000000000004700 atoll +000000000000496e div +0000000000004950 abs +0000000000004c7e strchr +0000000000003be6 fputs +0000000000004fa4 _ZdaPvm +00000000000000f0 mkdir +00000000000000b0 close +00000000000049ee mbtowc +0000000000004ea4 strpbrk +0000000000004410 free diff --git a/build/user/sh b/build/user/sh index 4b9c8c4..b6dd520 100755 Binary files a/build/user/sh and b/build/user/sh differ diff --git a/build/user/sh.asm b/build/user/sh.asm index f7f11c7..f7b0cd9 100644 --- a/build/user/sh.asm +++ b/build/user/sh.asm @@ -15,11 +15,11 @@ void panic(const char *s) 2: 85aa mv a1,a0 printf("shell panic: %s\n", s); 4: 00006517 auipc a0,0x6 - 8: 06450513 addi a0,a0,100 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> + 8: 04450513 addi a0,a0,68 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> { c: e406 sd ra,8(sp) printf("shell panic: %s\n", s); - e: 101040ef jal 490e + e: 0ed040ef jal 48fa exit(1); } 12: 60a2 ld ra,8(sp) @@ -28,7 +28,7 @@ void panic(const char *s) } 16: 0141 addi sp,sp,16 exit(1); - 18: 40a0506f j 5422 + 18: 3f60506f j 540e 000000000000001c <_Z13fork_or_panicv>: @@ -38,7 +38,7 @@ int fork_or_panic() 1e: e022 sd s0,0(sp) 20: e406 sd ra,8(sp) int pid = fork(); - 22: 0ca010ef jal 10ec + 22: 0ae010ef jal 10d0 if (pid == -1) 26: 57fd li a5,-1 int pid = fork(); @@ -55,13 +55,13 @@ int fork_or_panic() 36: 8082 ret printf("shell panic: %s\n", s); 38: 00006597 auipc a1,0x6 - 3c: 02858593 addi a1,a1,40 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x5c> + 3c: 00858593 addi a1,a1,8 # 6040 <_GLOBAL__sub_I__ZSt3cin+0x50> 40: 00006517 auipc a0,0x6 - 44: 02850513 addi a0,a0,40 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 48: 0c7040ef jal 490e + 44: 00850513 addi a0,a0,8 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 48: 0b3040ef jal 48fa exit(1); 4c: 4505 li a0,1 - 4e: 3d4050ef jal 5422 + 4e: 3c0050ef jal 540e } 52: 60a2 ld ra,8(sp) 54: 8522 mv a0,s0 @@ -76,12583 +76,12544 @@ int fork_or_panic() int getcmd(char *buf, int nbuf) { - 5c: 7159 addi sp,sp,-112 - 5e: e8ca sd s2,80(sp) - 60: e4ce sd s3,72(sp) - 62: 892e mv s2,a1 - 64: 89aa mv s3,a0 + 5c: 1101 addi sp,sp,-32 + 5e: e822 sd s0,16(sp) + 60: e426 sd s1,8(sp) + 62: 842a mv s0,a0 + 64: 84ae mv s1,a1 write(1, "$ ", 2); 66: 4609 li a2,2 68: 00006597 auipc a1,0x6 - 6c: 08058593 addi a1,a1,128 # 60e8 <_GLOBAL__sub_I__ZSt3cin+0xe4> + 6c: 06058593 addi a1,a1,96 # 60c8 <_GLOBAL__sub_I__ZSt3cin+0xd8> 70: 4505 li a0,1 { - 72: f486 sd ra,104(sp) + 72: ec06 sd ra,24(sp) write(1, "$ ", 2); - 74: 098010ef jal 110c + 74: 07c010ef jal 10f0 memset(buf, 0, nbuf); - 78: 864a mv a2,s2 + 78: 8626 mv a2,s1 7a: 4581 li a1,0 - 7c: 854e mv a0,s3 - 7e: 26f050ef jal 5aec - - int i = 0; - while (i < nbuf - 1) - 82: 4785 li a5,1 - 84: 0927d063 bge a5,s2,104 <_Z6getcmdPci+0xa8> - 88: f0a2 sd s0,96(sp) - 8a: eca6 sd s1,88(sp) - 8c: e0d2 sd s4,64(sp) - 8e: fc56 sd s5,56(sp) - 90: f85a sd s6,48(sp) - 92: f45e sd s7,40(sp) - 94: f062 sd s8,32(sp) - 96: ec66 sd s9,24(sp) - 98: fff90b1b addiw s6,s2,-1 - 9c: 4401 li s0,0 - 9e: 00f10493 addi s1,sp,15 - char c; - int n = read(0, &c, 1); - if (n <= 0) - return -1; + 7c: 8522 mv a0,s0 + 7e: 25b050ef jal 5ad8 - if (c == '\b' || c == 127) - a2: 4a21 li s4,8 - { - if (i > 0) - { - write(1, "\b \b", 3); - a4: 00006b97 auipc s7,0x6 - a8: 04cb8b93 addi s7,s7,76 # 60f0 <_GLOBAL__sub_I__ZSt3cin+0xec> - if (c == '\b' || c == 127) - ac: 07f00a93 li s5,127 - i--; - } - } - else if (c == '\n' || c == '\r') - b0: 4c29 li s8,10 - b2: 4cb5 li s9,13 - int n = read(0, &c, 1); - b4: 4605 li a2,1 - b6: 85a6 mv a1,s1 - b8: 4501 li a0,0 - ba: 04a010ef jal 1104 - be: 87aa mv a5,a0 - buf[i] = 0; - return 0; - } - else - { - write(1, &c, 1); - c0: 4605 li a2,1 - c2: 85a6 mv a1,s1 - c4: 4505 li a0,1 - if (n <= 0) - c6: 06f05063 blez a5,126 <_Z6getcmdPci+0xca> - if (c == '\b' || c == 127) - ca: 00f14783 lbu a5,15(sp) - buf[i++] = c; - ce: 00898933 add s2,s3,s0 - if (c == '\b' || c == 127) - d2: 03478f63 beq a5,s4,110 <_Z6getcmdPci+0xb4> - d6: 03578d63 beq a5,s5,110 <_Z6getcmdPci+0xb4> - else if (c == '\n' || c == '\r') - da: 07878463 beq a5,s8,142 <_Z6getcmdPci+0xe6> - de: 07978263 beq a5,s9,142 <_Z6getcmdPci+0xe6> - write(1, &c, 1); - e2: 02a010ef jal 110c - buf[i++] = c; - e6: 00f14783 lbu a5,15(sp) - ea: 2405 addiw s0,s0,1 - ec: 00f90023 sb a5,0(s2) - while (i < nbuf - 1) - f0: fd6442e3 blt s0,s6,b4 <_Z6getcmdPci+0x58> - f4: 7406 ld s0,96(sp) - f6: 64e6 ld s1,88(sp) - f8: 6a06 ld s4,64(sp) - fa: 7ae2 ld s5,56(sp) - fc: 7b42 ld s6,48(sp) - fe: 7ba2 ld s7,40(sp) - 100: 7c02 ld s8,32(sp) - 102: 6ce2 ld s9,24(sp) - } - } - return -1; -} - 104: 70a6 ld ra,104(sp) - 106: 6946 ld s2,80(sp) - 108: 69a6 ld s3,72(sp) - return -1; - 10a: 557d li a0,-1 -} - 10c: 6165 addi sp,sp,112 - 10e: 8082 ret - write(1, "\b \b", 3); - 110: 460d li a2,3 - 112: 85de mv a1,s7 - 114: 4505 li a0,1 - if (i > 0) - 116: f8805fe3 blez s0,b4 <_Z6getcmdPci+0x58> - i--; - 11a: 347d addiw s0,s0,-1 - write(1, "\b \b", 3); - 11c: 7f1000ef jal 110c - while (i < nbuf - 1) - 120: f9644ae3 blt s0,s6,b4 <_Z6getcmdPci+0x58> - 124: bfc1 j f4 <_Z6getcmdPci+0x98> - return -1; - 126: 557d li a0,-1 - 128: 7406 ld s0,96(sp) + int n = read(0, buf, nbuf - 1); + 82: fff4861b addiw a2,s1,-1 + 86: 85a2 mv a1,s0 + 88: 4501 li a0,0 + 8a: 05e010ef jal 10e8 + + if (n < 0) + 8e: 00054b63 bltz a0,a4 <_Z6getcmdPci+0x48> + return -1; + + buf[n] = 0; + 92: 942a add s0,s0,a0 + 94: 00040023 sb zero,0(s0) + return 0; + 98: 4501 li a0,0 } - 12a: 70a6 ld ra,104(sp) - return -1; - 12c: 64e6 ld s1,88(sp) - 12e: 6a06 ld s4,64(sp) - 130: 7ae2 ld s5,56(sp) - 132: 7b42 ld s6,48(sp) - 134: 7ba2 ld s7,40(sp) - 136: 7c02 ld s8,32(sp) - 138: 6ce2 ld s9,24(sp) -} - 13a: 6946 ld s2,80(sp) - 13c: 69a6 ld s3,72(sp) - 13e: 6165 addi sp,sp,112 - 140: 8082 ret - write(1, "\n", 1); - 142: 4605 li a2,1 - 144: 00006597 auipc a1,0x6 - 148: fb458593 addi a1,a1,-76 # 60f8 <_GLOBAL__sub_I__ZSt3cin+0xf4> - 14c: 4505 li a0,1 - 14e: 7bf000ef jal 110c - return 0; - 152: 4501 li a0,0 - buf[i] = 0; - 154: 00090023 sb zero,0(s2) - return 0; - 158: bfc1 j 128 <_Z6getcmdPci+0xcc> - -000000000000015a <_ZN12RedirCommandD1Ev>: + 9a: 60e2 ld ra,24(sp) + 9c: 6442 ld s0,16(sp) + 9e: 64a2 ld s1,8(sp) + a0: 6105 addi sp,sp,32 + a2: 8082 ret + return -1; + a4: 557d li a0,-1 + a6: bfd5 j 9a <_Z6getcmdPci+0x3e> + +00000000000000a8 <_ZN12RedirCommandD1Ev>: ~RedirCommand() { delete sub_cmd; } - 15a: 87aa mv a5,a0 - 15c: 6508 ld a0,8(a0) - 15e: 00008717 auipc a4,0x8 - 162: cea70713 addi a4,a4,-790 # 7e48 <_ZTV12RedirCommand+0x10> - 166: e398 sd a4,0(a5) - 168: c501 beqz a0,170 <_ZN12RedirCommandD1Ev+0x16> - 16a: 611c ld a5,0(a0) - 16c: 679c ld a5,8(a5) - 16e: 8782 jr a5 - 170: 8082 ret - -0000000000000172 <_ZN11PipeCommandD1Ev>: + a8: 87aa mv a5,a0 + aa: 6508 ld a0,8(a0) + ac: 00008717 auipc a4,0x8 + b0: dcc70713 addi a4,a4,-564 # 7e78 <_ZTV12RedirCommand+0x10> + b4: e398 sd a4,0(a5) + b6: c501 beqz a0,be <_ZN12RedirCommandD1Ev+0x16> + b8: 611c ld a5,0(a0) + ba: 679c ld a5,8(a5) + bc: 8782 jr a5 + be: 8082 ret + +00000000000000c0 <_ZN11PipeCommandD1Ev>: ~PipeCommand() - 172: 1141 addi sp,sp,-16 - 174: e022 sd s0,0(sp) - 176: 842a mv s0,a0 + c0: 1141 addi sp,sp,-16 + c2: e022 sd s0,0(sp) + c4: 842a mv s0,a0 delete left; - 178: 6508 ld a0,8(a0) + c6: 6508 ld a0,8(a0) ~PipeCommand() - 17a: e406 sd ra,8(sp) + c8: e406 sd ra,8(sp) { - 17c: 00008797 auipc a5,0x8 - 180: cf478793 addi a5,a5,-780 # 7e70 <_ZTV11PipeCommand+0x10> - 184: e01c sd a5,0(s0) + ca: 00008797 auipc a5,0x8 + ce: dd678793 addi a5,a5,-554 # 7ea0 <_ZTV11PipeCommand+0x10> + d2: e01c sd a5,0(s0) delete left; - 186: c501 beqz a0,18e <_ZN11PipeCommandD1Ev+0x1c> - 188: 611c ld a5,0(a0) - 18a: 679c ld a5,8(a5) - 18c: 9782 jalr a5 + d4: c501 beqz a0,dc <_ZN11PipeCommandD1Ev+0x1c> + d6: 611c ld a5,0(a0) + d8: 679c ld a5,8(a5) + da: 9782 jalr a5 delete right; - 18e: 6808 ld a0,16(s0) - 190: c519 beqz a0,19e <_ZN11PipeCommandD1Ev+0x2c> - 192: 611c ld a5,0(a0) + dc: 6808 ld a0,16(s0) + de: c519 beqz a0,ec <_ZN11PipeCommandD1Ev+0x2c> + e0: 611c ld a5,0(a0) } - 194: 6402 ld s0,0(sp) - 196: 60a2 ld ra,8(sp) + e2: 6402 ld s0,0(sp) + e4: 60a2 ld ra,8(sp) delete right; - 198: 679c ld a5,8(a5) + e6: 679c ld a5,8(a5) } - 19a: 0141 addi sp,sp,16 + e8: 0141 addi sp,sp,16 delete right; - 19c: 8782 jr a5 + ea: 8782 jr a5 } - 19e: 60a2 ld ra,8(sp) - 1a0: 6402 ld s0,0(sp) - 1a2: 0141 addi sp,sp,16 - 1a4: 8082 ret + ec: 60a2 ld ra,8(sp) + ee: 6402 ld s0,0(sp) + f0: 0141 addi sp,sp,16 + f2: 8082 ret -00000000000001a6 <_ZN11ListCommandD1Ev>: +00000000000000f4 <_ZN11ListCommandD1Ev>: ~ListCommand() - 1a6: 1141 addi sp,sp,-16 - 1a8: e022 sd s0,0(sp) - 1aa: 842a mv s0,a0 + f4: 1141 addi sp,sp,-16 + f6: e022 sd s0,0(sp) + f8: 842a mv s0,a0 delete left; - 1ac: 6508 ld a0,8(a0) + fa: 6508 ld a0,8(a0) ~ListCommand() - 1ae: e406 sd ra,8(sp) + fc: e406 sd ra,8(sp) { - 1b0: 00008797 auipc a5,0x8 - 1b4: ce878793 addi a5,a5,-792 # 7e98 <_ZTV11ListCommand+0x10> - 1b8: e01c sd a5,0(s0) + fe: 00008797 auipc a5,0x8 + 102: dca78793 addi a5,a5,-566 # 7ec8 <_ZTV11ListCommand+0x10> + 106: e01c sd a5,0(s0) delete left; - 1ba: c501 beqz a0,1c2 <_ZN11ListCommandD1Ev+0x1c> - 1bc: 611c ld a5,0(a0) - 1be: 679c ld a5,8(a5) - 1c0: 9782 jalr a5 + 108: c501 beqz a0,110 <_ZN11ListCommandD1Ev+0x1c> + 10a: 611c ld a5,0(a0) + 10c: 679c ld a5,8(a5) + 10e: 9782 jalr a5 delete right; - 1c2: 6808 ld a0,16(s0) - 1c4: c519 beqz a0,1d2 <_ZN11ListCommandD1Ev+0x2c> - 1c6: 611c ld a5,0(a0) + 110: 6808 ld a0,16(s0) + 112: c519 beqz a0,120 <_ZN11ListCommandD1Ev+0x2c> + 114: 611c ld a5,0(a0) } - 1c8: 6402 ld s0,0(sp) - 1ca: 60a2 ld ra,8(sp) + 116: 6402 ld s0,0(sp) + 118: 60a2 ld ra,8(sp) delete right; - 1cc: 679c ld a5,8(a5) + 11a: 679c ld a5,8(a5) } - 1ce: 0141 addi sp,sp,16 + 11c: 0141 addi sp,sp,16 delete right; - 1d0: 8782 jr a5 + 11e: 8782 jr a5 } - 1d2: 60a2 ld ra,8(sp) - 1d4: 6402 ld s0,0(sp) - 1d6: 0141 addi sp,sp,16 - 1d8: 8082 ret + 120: 60a2 ld ra,8(sp) + 122: 6402 ld s0,0(sp) + 124: 0141 addi sp,sp,16 + 126: 8082 ret -00000000000001da <_ZN11BackCommandD1Ev>: +0000000000000128 <_ZN11BackCommandD1Ev>: ~BackCommand() { delete sub_cmd; } - 1da: 87aa mv a5,a0 - 1dc: 6508 ld a0,8(a0) - 1de: 00008717 auipc a4,0x8 - 1e2: ce270713 addi a4,a4,-798 # 7ec0 <_ZTV11BackCommand+0x10> - 1e6: e398 sd a4,0(a5) - 1e8: c501 beqz a0,1f0 <_ZN11BackCommandD1Ev+0x16> - 1ea: 611c ld a5,0(a0) - 1ec: 679c ld a5,8(a5) - 1ee: 8782 jr a5 - 1f0: 8082 ret - -00000000000001f2 <_ZN11ExecCommandD1Ev>: + 128: 87aa mv a5,a0 + 12a: 6508 ld a0,8(a0) + 12c: 00008717 auipc a4,0x8 + 130: dc470713 addi a4,a4,-572 # 7ef0 <_ZTV11BackCommand+0x10> + 134: e398 sd a4,0(a5) + 136: c501 beqz a0,13e <_ZN11BackCommandD1Ev+0x16> + 138: 611c ld a5,0(a0) + 13a: 679c ld a5,8(a5) + 13c: 8782 jr a5 + 13e: 8082 ret + +0000000000000140 <_ZN11ExecCommandD1Ev>: struct ExecCommand : public Command - 1f2: 8082 ret + 140: 8082 ret -00000000000001f4 <_ZN12RedirCommand3runEv>: +0000000000000142 <_ZN12RedirCommand3runEv>: void run() override - 1f4: 1141 addi sp,sp,-16 - 1f6: e022 sd s0,0(sp) - 1f8: 842a mv s0,a0 + 142: 1141 addi sp,sp,-16 + 144: e022 sd s0,0(sp) + 146: 842a mv s0,a0 close(fd); - 1fa: 5148 lw a0,36(a0) + 148: 5148 lw a0,36(a0) void run() override - 1fc: e406 sd ra,8(sp) + 14a: e406 sd ra,8(sp) close(fd); - 1fe: 717000ef jal 1114 + 14c: 7ad000ef jal 10f8 if (open(file, mode) < 0) - 202: 500c lw a1,32(s0) - 204: 6808 ld a0,16(s0) - 206: 727000ef jal 112c - 20a: 00054963 bltz a0,21c <_ZN12RedirCommand3runEv+0x28> + 150: 500c lw a1,32(s0) + 152: 6808 ld a0,16(s0) + 154: 7bd000ef jal 1110 + 158: 00054963 bltz a0,16a <_ZN12RedirCommand3runEv+0x28> sub_cmd->run(); - 20e: 6408 ld a0,8(s0) + 15c: 6408 ld a0,8(s0) } - 210: 6402 ld s0,0(sp) - 212: 60a2 ld ra,8(sp) + 15e: 6402 ld s0,0(sp) + 160: 60a2 ld ra,8(sp) sub_cmd->run(); - 214: 611c ld a5,0(a0) - 216: 6b9c ld a5,16(a5) + 162: 611c ld a5,0(a0) + 164: 6b9c ld a5,16(a5) } - 218: 0141 addi sp,sp,16 + 166: 0141 addi sp,sp,16 sub_cmd->run(); - 21a: 8782 jr a5 + 168: 8782 jr a5 printf("open %s failed\n", file); - 21c: 680c ld a1,16(s0) - 21e: 00006517 auipc a0,0x6 - 222: e2250513 addi a0,a0,-478 # 6040 <_GLOBAL__sub_I__ZSt3cin+0x3c> - 226: 6e8040ef jal 490e + 16a: 680c ld a1,16(s0) + 16c: 00006517 auipc a0,0x6 + 170: eb450513 addi a0,a0,-332 # 6020 <_GLOBAL__sub_I__ZSt3cin+0x30> + 174: 786040ef jal 48fa exit(1); - 22a: 4505 li a0,1 - 22c: 1f6050ef jal 5422 + 178: 4505 li a0,1 + 17a: 294050ef jal 540e sub_cmd->run(); - 230: 6408 ld a0,8(s0) + 17e: 6408 ld a0,8(s0) } - 232: 6402 ld s0,0(sp) - 234: 60a2 ld ra,8(sp) + 180: 6402 ld s0,0(sp) + 182: 60a2 ld ra,8(sp) sub_cmd->run(); - 236: 611c ld a5,0(a0) - 238: 6b9c ld a5,16(a5) + 184: 611c ld a5,0(a0) + 186: 6b9c ld a5,16(a5) } - 23a: 0141 addi sp,sp,16 + 188: 0141 addi sp,sp,16 sub_cmd->run(); - 23c: 8782 jr a5 + 18a: 8782 jr a5 -000000000000023e <_ZN11ExecCommand3runEv>: +000000000000018c <_ZN11ExecCommand3runEv>: void run() override - 23e: 1141 addi sp,sp,-16 - 240: e022 sd s0,0(sp) - 242: 842a mv s0,a0 + 18c: 1141 addi sp,sp,-16 + 18e: e022 sd s0,0(sp) + 190: 842a mv s0,a0 if (argv[0] == nullptr) - 244: 6508 ld a0,8(a0) + 192: 6508 ld a0,8(a0) void run() override - 246: e406 sd ra,8(sp) + 194: e406 sd ra,8(sp) if (argv[0] == nullptr) - 248: c115 beqz a0,26c <_ZN11ExecCommand3runEv+0x2e> + 196: c115 beqz a0,1ba <_ZN11ExecCommand3runEv+0x2e> exec(argv[0], argv); - 24a: 00840593 addi a1,s0,8 - 24e: 6d7000ef jal 1124 + 198: 00840593 addi a1,s0,8 + 19c: 76d000ef jal 1108 printf("exec %s failed\n", argv[0]); - 252: 640c ld a1,8(s0) - 254: 00006517 auipc a0,0x6 - 258: dfc50513 addi a0,a0,-516 # 6050 <_GLOBAL__sub_I__ZSt3cin+0x4c> - 25c: 6b2040ef jal 490e + 1a0: 640c ld a1,8(s0) + 1a2: 00006517 auipc a0,0x6 + 1a6: e8e50513 addi a0,a0,-370 # 6030 <_GLOBAL__sub_I__ZSt3cin+0x40> + 1aa: 750040ef jal 48fa } - 260: 6402 ld s0,0(sp) - 262: 60a2 ld ra,8(sp) + 1ae: 6402 ld s0,0(sp) + 1b0: 60a2 ld ra,8(sp) exit(1); - 264: 4505 li a0,1 + 1b2: 4505 li a0,1 } - 266: 0141 addi sp,sp,16 + 1b4: 0141 addi sp,sp,16 exit(1); - 268: 1ba0506f j 5422 + 1b6: 2580506f j 540e exit(1); - 26c: 4505 li a0,1 - 26e: 1b4050ef jal 5422 + 1ba: 4505 li a0,1 + 1bc: 252050ef jal 540e exec(argv[0], argv); - 272: 6408 ld a0,8(s0) - 274: bfd9 j 24a <_ZN11ExecCommand3runEv+0xc> + 1c0: 6408 ld a0,8(s0) + 1c2: bfd9 j 198 <_ZN11ExecCommand3runEv+0xc> -0000000000000276 <_ZN11ExecCommandD0Ev>: +00000000000001c4 <_ZN11ExecCommandD0Ev>: struct ExecCommand : public Command - 276: 05800593 li a1,88 - 27a: 5830506f j 5ffc <_ZdlPvm> + 1c4: 05800593 li a1,88 + 1c8: 6210506f j 5fe8 <_ZdlPvm> -000000000000027e <_ZN12RedirCommandD0Ev>: +00000000000001cc <_ZN12RedirCommandD0Ev>: ~RedirCommand() { delete sub_cmd; } - 27e: 1141 addi sp,sp,-16 - 280: e022 sd s0,0(sp) - 282: 842a mv s0,a0 - 284: 6508 ld a0,8(a0) - 286: e406 sd ra,8(sp) - 288: 00008797 auipc a5,0x8 - 28c: bc078793 addi a5,a5,-1088 # 7e48 <_ZTV12RedirCommand+0x10> - 290: e01c sd a5,0(s0) - 292: c501 beqz a0,29a <_ZN12RedirCommandD0Ev+0x1c> - 294: 611c ld a5,0(a0) - 296: 679c ld a5,8(a5) - 298: 9782 jalr a5 - 29a: 8522 mv a0,s0 - 29c: 6402 ld s0,0(sp) - 29e: 60a2 ld ra,8(sp) - 2a0: 02800593 li a1,40 - 2a4: 0141 addi sp,sp,16 - 2a6: 5570506f j 5ffc <_ZdlPvm> - -00000000000002aa <_ZN11BackCommandD0Ev>: + 1cc: 1141 addi sp,sp,-16 + 1ce: e022 sd s0,0(sp) + 1d0: 842a mv s0,a0 + 1d2: 6508 ld a0,8(a0) + 1d4: e406 sd ra,8(sp) + 1d6: 00008797 auipc a5,0x8 + 1da: ca278793 addi a5,a5,-862 # 7e78 <_ZTV12RedirCommand+0x10> + 1de: e01c sd a5,0(s0) + 1e0: c501 beqz a0,1e8 <_ZN12RedirCommandD0Ev+0x1c> + 1e2: 611c ld a5,0(a0) + 1e4: 679c ld a5,8(a5) + 1e6: 9782 jalr a5 + 1e8: 8522 mv a0,s0 + 1ea: 6402 ld s0,0(sp) + 1ec: 60a2 ld ra,8(sp) + 1ee: 02800593 li a1,40 + 1f2: 0141 addi sp,sp,16 + 1f4: 5f50506f j 5fe8 <_ZdlPvm> + +00000000000001f8 <_ZN11BackCommandD0Ev>: ~BackCommand() { delete sub_cmd; } - 2aa: 1141 addi sp,sp,-16 - 2ac: e022 sd s0,0(sp) - 2ae: 842a mv s0,a0 - 2b0: 6508 ld a0,8(a0) - 2b2: e406 sd ra,8(sp) - 2b4: 00008797 auipc a5,0x8 - 2b8: c0c78793 addi a5,a5,-1012 # 7ec0 <_ZTV11BackCommand+0x10> - 2bc: e01c sd a5,0(s0) - 2be: c501 beqz a0,2c6 <_ZN11BackCommandD0Ev+0x1c> - 2c0: 611c ld a5,0(a0) - 2c2: 679c ld a5,8(a5) - 2c4: 9782 jalr a5 - 2c6: 8522 mv a0,s0 - 2c8: 6402 ld s0,0(sp) - 2ca: 60a2 ld ra,8(sp) - 2cc: 45c1 li a1,16 - 2ce: 0141 addi sp,sp,16 - 2d0: 52d0506f j 5ffc <_ZdlPvm> - -00000000000002d4 <_ZN11PipeCommandD0Ev>: + 1f8: 1141 addi sp,sp,-16 + 1fa: e022 sd s0,0(sp) + 1fc: 842a mv s0,a0 + 1fe: 6508 ld a0,8(a0) + 200: e406 sd ra,8(sp) + 202: 00008797 auipc a5,0x8 + 206: cee78793 addi a5,a5,-786 # 7ef0 <_ZTV11BackCommand+0x10> + 20a: e01c sd a5,0(s0) + 20c: c501 beqz a0,214 <_ZN11BackCommandD0Ev+0x1c> + 20e: 611c ld a5,0(a0) + 210: 679c ld a5,8(a5) + 212: 9782 jalr a5 + 214: 8522 mv a0,s0 + 216: 6402 ld s0,0(sp) + 218: 60a2 ld ra,8(sp) + 21a: 45c1 li a1,16 + 21c: 0141 addi sp,sp,16 + 21e: 5cb0506f j 5fe8 <_ZdlPvm> + +0000000000000222 <_ZN11PipeCommandD0Ev>: ~PipeCommand() - 2d4: 1141 addi sp,sp,-16 - 2d6: e022 sd s0,0(sp) - 2d8: 842a mv s0,a0 + 222: 1141 addi sp,sp,-16 + 224: e022 sd s0,0(sp) + 226: 842a mv s0,a0 delete left; - 2da: 6508 ld a0,8(a0) + 228: 6508 ld a0,8(a0) ~PipeCommand() - 2dc: e406 sd ra,8(sp) + 22a: e406 sd ra,8(sp) { - 2de: 00008797 auipc a5,0x8 - 2e2: b9278793 addi a5,a5,-1134 # 7e70 <_ZTV11PipeCommand+0x10> - 2e6: e01c sd a5,0(s0) + 22c: 00008797 auipc a5,0x8 + 230: c7478793 addi a5,a5,-908 # 7ea0 <_ZTV11PipeCommand+0x10> + 234: e01c sd a5,0(s0) delete left; - 2e8: c501 beqz a0,2f0 <_ZN11PipeCommandD0Ev+0x1c> - 2ea: 611c ld a5,0(a0) - 2ec: 679c ld a5,8(a5) - 2ee: 9782 jalr a5 + 236: c501 beqz a0,23e <_ZN11PipeCommandD0Ev+0x1c> + 238: 611c ld a5,0(a0) + 23a: 679c ld a5,8(a5) + 23c: 9782 jalr a5 delete right; - 2f0: 6808 ld a0,16(s0) - 2f2: c501 beqz a0,2fa <_ZN11PipeCommandD0Ev+0x26> - 2f4: 611c ld a5,0(a0) - 2f6: 679c ld a5,8(a5) - 2f8: 9782 jalr a5 + 23e: 6808 ld a0,16(s0) + 240: c501 beqz a0,248 <_ZN11PipeCommandD0Ev+0x26> + 242: 611c ld a5,0(a0) + 244: 679c ld a5,8(a5) + 246: 9782 jalr a5 } - 2fa: 8522 mv a0,s0 - 2fc: 6402 ld s0,0(sp) - 2fe: 60a2 ld ra,8(sp) - 300: 45e1 li a1,24 - 302: 0141 addi sp,sp,16 - 304: 4f90506f j 5ffc <_ZdlPvm> - -0000000000000308 <_ZN11ListCommandD0Ev>: + 248: 8522 mv a0,s0 + 24a: 6402 ld s0,0(sp) + 24c: 60a2 ld ra,8(sp) + 24e: 45e1 li a1,24 + 250: 0141 addi sp,sp,16 + 252: 5970506f j 5fe8 <_ZdlPvm> + +0000000000000256 <_ZN11ListCommandD0Ev>: ~ListCommand() - 308: 1141 addi sp,sp,-16 - 30a: e022 sd s0,0(sp) - 30c: 842a mv s0,a0 + 256: 1141 addi sp,sp,-16 + 258: e022 sd s0,0(sp) + 25a: 842a mv s0,a0 delete left; - 30e: 6508 ld a0,8(a0) + 25c: 6508 ld a0,8(a0) ~ListCommand() - 310: e406 sd ra,8(sp) + 25e: e406 sd ra,8(sp) { - 312: 00008797 auipc a5,0x8 - 316: b8678793 addi a5,a5,-1146 # 7e98 <_ZTV11ListCommand+0x10> - 31a: e01c sd a5,0(s0) + 260: 00008797 auipc a5,0x8 + 264: c6878793 addi a5,a5,-920 # 7ec8 <_ZTV11ListCommand+0x10> + 268: e01c sd a5,0(s0) delete left; - 31c: c501 beqz a0,324 <_ZN11ListCommandD0Ev+0x1c> - 31e: 611c ld a5,0(a0) - 320: 679c ld a5,8(a5) - 322: 9782 jalr a5 + 26a: c501 beqz a0,272 <_ZN11ListCommandD0Ev+0x1c> + 26c: 611c ld a5,0(a0) + 26e: 679c ld a5,8(a5) + 270: 9782 jalr a5 delete right; - 324: 6808 ld a0,16(s0) - 326: c501 beqz a0,32e <_ZN11ListCommandD0Ev+0x26> - 328: 611c ld a5,0(a0) - 32a: 679c ld a5,8(a5) - 32c: 9782 jalr a5 + 272: 6808 ld a0,16(s0) + 274: c501 beqz a0,27c <_ZN11ListCommandD0Ev+0x26> + 276: 611c ld a5,0(a0) + 278: 679c ld a5,8(a5) + 27a: 9782 jalr a5 } - 32e: 8522 mv a0,s0 - 330: 6402 ld s0,0(sp) - 332: 60a2 ld ra,8(sp) - 334: 45e1 li a1,24 - 336: 0141 addi sp,sp,16 - 338: 4c50506f j 5ffc <_ZdlPvm> - -000000000000033c <_ZN11BackCommand3runEv>: + 27c: 8522 mv a0,s0 + 27e: 6402 ld s0,0(sp) + 280: 60a2 ld ra,8(sp) + 282: 45e1 li a1,24 + 284: 0141 addi sp,sp,16 + 286: 5630506f j 5fe8 <_ZdlPvm> + +000000000000028a <_ZN11BackCommand3runEv>: void run() override - 33c: 1141 addi sp,sp,-16 - 33e: e022 sd s0,0(sp) - 340: e406 sd ra,8(sp) - 342: 842a mv s0,a0 + 28a: 1141 addi sp,sp,-16 + 28c: e022 sd s0,0(sp) + 28e: e406 sd ra,8(sp) + 290: 842a mv s0,a0 int pid = fork(); - 344: 5a9000ef jal 10ec + 292: 63f000ef jal 10d0 if (pid == -1) - 348: 57fd li a5,-1 - 34a: 00f50d63 beq a0,a5,364 <_ZN11BackCommand3runEv+0x28> + 296: 57fd li a5,-1 + 298: 00f50d63 beq a0,a5,2b2 <_ZN11BackCommand3runEv+0x28> if (fork_or_panic() == 0) - 34e: e509 bnez a0,358 <_ZN11BackCommand3runEv+0x1c> + 29c: e509 bnez a0,2a6 <_ZN11BackCommand3runEv+0x1c> sub_cmd->run(); - 350: 6408 ld a0,8(s0) - 352: 611c ld a5,0(a0) - 354: 6b9c ld a5,16(a5) - 356: 9782 jalr a5 + 29e: 6408 ld a0,8(s0) + 2a0: 611c ld a5,0(a0) + 2a2: 6b9c ld a5,16(a5) + 2a4: 9782 jalr a5 } - 358: 6402 ld s0,0(sp) - 35a: 60a2 ld ra,8(sp) + 2a6: 6402 ld s0,0(sp) + 2a8: 60a2 ld ra,8(sp) exit(0); - 35c: 4501 li a0,0 + 2aa: 4501 li a0,0 } - 35e: 0141 addi sp,sp,16 + 2ac: 0141 addi sp,sp,16 exit(0); - 360: 0c20506f j 5422 + 2ae: 1600506f j 540e printf("shell panic: %s\n", s); - 364: 00006597 auipc a1,0x6 - 368: cfc58593 addi a1,a1,-772 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x5c> - 36c: 00006517 auipc a0,0x6 - 370: cfc50513 addi a0,a0,-772 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 374: 59a040ef jal 490e + 2b2: 00006597 auipc a1,0x6 + 2b6: d8e58593 addi a1,a1,-626 # 6040 <_GLOBAL__sub_I__ZSt3cin+0x50> + 2ba: 00006517 auipc a0,0x6 + 2be: d8e50513 addi a0,a0,-626 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 2c2: 638040ef jal 48fa exit(1); - 378: 4505 li a0,1 - 37a: 0a8050ef jal 5422 + 2c6: 4505 li a0,1 + 2c8: 146050ef jal 540e } - 37e: 6402 ld s0,0(sp) - 380: 60a2 ld ra,8(sp) + 2cc: 6402 ld s0,0(sp) + 2ce: 60a2 ld ra,8(sp) exit(0); - 382: 4501 li a0,0 + 2d0: 4501 li a0,0 } - 384: 0141 addi sp,sp,16 + 2d2: 0141 addi sp,sp,16 exit(0); - 386: 09c0506f j 5422 + 2d4: 13a0506f j 540e -000000000000038a <_ZN11ListCommand3runEv>: +00000000000002d8 <_ZN11ListCommand3runEv>: void run() override - 38a: 1141 addi sp,sp,-16 - 38c: e022 sd s0,0(sp) - 38e: e406 sd ra,8(sp) - 390: 842a mv s0,a0 + 2d8: 1141 addi sp,sp,-16 + 2da: e022 sd s0,0(sp) + 2dc: e406 sd ra,8(sp) + 2de: 842a mv s0,a0 int pid = fork(); - 392: 55b000ef jal 10ec + 2e0: 5f1000ef jal 10d0 if (pid == -1) - 396: 57fd li a5,-1 - 398: 02f50163 beq a0,a5,3ba <_ZN11ListCommand3runEv+0x30> + 2e4: 57fd li a5,-1 + 2e6: 02f50163 beq a0,a5,308 <_ZN11ListCommand3runEv+0x30> if (fork_or_panic() == 0) - 39c: e509 bnez a0,3a6 <_ZN11ListCommand3runEv+0x1c> + 2ea: e509 bnez a0,2f4 <_ZN11ListCommand3runEv+0x1c> left->run(); - 39e: 6408 ld a0,8(s0) - 3a0: 611c ld a5,0(a0) - 3a2: 6b9c ld a5,16(a5) - 3a4: 9782 jalr a5 + 2ec: 6408 ld a0,8(s0) + 2ee: 611c ld a5,0(a0) + 2f0: 6b9c ld a5,16(a5) + 2f2: 9782 jalr a5 wait(0); - 3a6: 4501 li a0,0 - 3a8: 54d000ef jal 10f4 + 2f4: 4501 li a0,0 + 2f6: 5e3000ef jal 10d8 right->run(); - 3ac: 6808 ld a0,16(s0) + 2fa: 6808 ld a0,16(s0) } - 3ae: 6402 ld s0,0(sp) - 3b0: 60a2 ld ra,8(sp) + 2fc: 6402 ld s0,0(sp) + 2fe: 60a2 ld ra,8(sp) right->run(); - 3b2: 611c ld a5,0(a0) - 3b4: 6b9c ld a5,16(a5) + 300: 611c ld a5,0(a0) + 302: 6b9c ld a5,16(a5) } - 3b6: 0141 addi sp,sp,16 + 304: 0141 addi sp,sp,16 right->run(); - 3b8: 8782 jr a5 + 306: 8782 jr a5 printf("shell panic: %s\n", s); - 3ba: 00006597 auipc a1,0x6 - 3be: ca658593 addi a1,a1,-858 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x5c> - 3c2: 00006517 auipc a0,0x6 - 3c6: ca650513 addi a0,a0,-858 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 3ca: 544040ef jal 490e + 308: 00006597 auipc a1,0x6 + 30c: d3858593 addi a1,a1,-712 # 6040 <_GLOBAL__sub_I__ZSt3cin+0x50> + 310: 00006517 auipc a0,0x6 + 314: d3850513 addi a0,a0,-712 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 318: 5e2040ef jal 48fa exit(1); - 3ce: 4505 li a0,1 - 3d0: 052050ef jal 5422 + 31c: 4505 li a0,1 + 31e: 0f0050ef jal 540e return pid; - 3d4: bfc9 j 3a6 <_ZN11ListCommand3runEv+0x1c> + 322: bfc9 j 2f4 <_ZN11ListCommand3runEv+0x1c> -00000000000003d6 <_ZN11PipeCommand3runEv>: +0000000000000324 <_ZN11PipeCommand3runEv>: void run() override - 3d6: 1101 addi sp,sp,-32 - 3d8: e822 sd s0,16(sp) - 3da: 842a mv s0,a0 + 324: 1101 addi sp,sp,-32 + 326: e822 sd s0,16(sp) + 328: 842a mv s0,a0 if (pipe(p) < 0) - 3dc: 0028 addi a0,sp,8 + 32a: 0028 addi a0,sp,8 void run() override - 3de: ec06 sd ra,24(sp) + 32c: ec06 sd ra,24(sp) if (pipe(p) < 0) - 3e0: 51d000ef jal 10fc - 3e4: 0a054463 bltz a0,48c <_ZN11PipeCommand3runEv+0xb6> + 32e: 5b3000ef jal 10e0 + 332: 0a054463 bltz a0,3da <_ZN11PipeCommand3runEv+0xb6> int pid = fork(); - 3e8: 505000ef jal 10ec + 336: 59b000ef jal 10d0 if (pid == -1) - 3ec: 57fd li a5,-1 - 3ee: 0cf50163 beq a0,a5,4b0 <_ZN11PipeCommand3runEv+0xda> + 33a: 57fd li a5,-1 + 33c: 0cf50163 beq a0,a5,3fe <_ZN11PipeCommand3runEv+0xda> if (fork_or_panic() == 0) - 3f2: c931 beqz a0,446 <_ZN11PipeCommand3runEv+0x70> + 340: c931 beqz a0,394 <_ZN11PipeCommand3runEv+0x70> int pid = fork(); - 3f4: 4f9000ef jal 10ec + 342: 58f000ef jal 10d0 if (pid == -1) - 3f8: 577d li a4,-1 - 3fa: 06e50b63 beq a0,a4,470 <_ZN11PipeCommand3runEv+0x9a> + 346: 577d li a4,-1 + 348: 06e50b63 beq a0,a4,3be <_ZN11PipeCommand3runEv+0x9a> if (fork_or_panic() == 0) - 3fe: c505 beqz a0,426 <_ZN11PipeCommand3runEv+0x50> + 34c: c505 beqz a0,374 <_ZN11PipeCommand3runEv+0x50> close(p[0]); - 400: 4522 lw a0,8(sp) - 402: 513000ef jal 1114 + 34e: 4522 lw a0,8(sp) + 350: 5a9000ef jal 10f8 close(p[1]); - 406: 4532 lw a0,12(sp) - 408: 50d000ef jal 1114 + 354: 4532 lw a0,12(sp) + 356: 5a3000ef jal 10f8 wait(0); - 40c: 4501 li a0,0 - 40e: 4e7000ef jal 10f4 + 35a: 4501 li a0,0 + 35c: 57d000ef jal 10d8 wait(0); - 412: 4501 li a0,0 - 414: 4e1000ef jal 10f4 + 360: 4501 li a0,0 + 362: 577000ef jal 10d8 exit(0); - 418: 4501 li a0,0 - 41a: 008050ef jal 5422 + 366: 4501 li a0,0 + 368: 0a6050ef jal 540e } - 41e: 60e2 ld ra,24(sp) - 420: 6442 ld s0,16(sp) - 422: 6105 addi sp,sp,32 - 424: 8082 ret + 36c: 60e2 ld ra,24(sp) + 36e: 6442 ld s0,16(sp) + 370: 6105 addi sp,sp,32 + 372: 8082 ret close(0); // close stdin - 426: 4ef000ef jal 1114 + 374: 585000ef jal 10f8 dup(p[0]); // dup read-end to stdin - 42a: 4522 lw a0,8(sp) - 42c: 539000ef jal 1164 + 378: 4522 lw a0,8(sp) + 37a: 5cf000ef jal 1148 close(p[0]); - 430: 4522 lw a0,8(sp) - 432: 4e3000ef jal 1114 + 37e: 4522 lw a0,8(sp) + 380: 579000ef jal 10f8 close(p[1]); - 436: 4532 lw a0,12(sp) - 438: 4dd000ef jal 1114 + 384: 4532 lw a0,12(sp) + 386: 573000ef jal 10f8 right->run(); - 43c: 6808 ld a0,16(s0) - 43e: 611c ld a5,0(a0) - 440: 6b9c ld a5,16(a5) - 442: 9782 jalr a5 - 444: bf75 j 400 <_ZN11PipeCommand3runEv+0x2a> + 38a: 6808 ld a0,16(s0) + 38c: 611c ld a5,0(a0) + 38e: 6b9c ld a5,16(a5) + 390: 9782 jalr a5 + 392: bf75 j 34e <_ZN11PipeCommand3runEv+0x2a> close(1); // close stdout - 446: 4505 li a0,1 - 448: 4cd000ef jal 1114 + 394: 4505 li a0,1 + 396: 563000ef jal 10f8 dup(p[1]); // dup write-end to stdout - 44c: 4532 lw a0,12(sp) - 44e: 517000ef jal 1164 + 39a: 4532 lw a0,12(sp) + 39c: 5ad000ef jal 1148 close(p[0]); - 452: 4522 lw a0,8(sp) - 454: 4c1000ef jal 1114 + 3a0: 4522 lw a0,8(sp) + 3a2: 557000ef jal 10f8 close(p[1]); - 458: 4532 lw a0,12(sp) - 45a: 4bb000ef jal 1114 + 3a6: 4532 lw a0,12(sp) + 3a8: 551000ef jal 10f8 left->run(); - 45e: 6408 ld a0,8(s0) - 460: 611c ld a5,0(a0) - 462: 6b9c ld a5,16(a5) - 464: 9782 jalr a5 + 3ac: 6408 ld a0,8(s0) + 3ae: 611c ld a5,0(a0) + 3b0: 6b9c ld a5,16(a5) + 3b2: 9782 jalr a5 int pid = fork(); - 466: 487000ef jal 10ec + 3b4: 51d000ef jal 10d0 if (pid == -1) - 46a: 577d li a4,-1 - 46c: f8e519e3 bne a0,a4,3fe <_ZN11PipeCommand3runEv+0x28> + 3b8: 577d li a4,-1 + 3ba: f8e519e3 bne a0,a4,34c <_ZN11PipeCommand3runEv+0x28> printf("shell panic: %s\n", s); - 470: 00006597 auipc a1,0x6 - 474: bf058593 addi a1,a1,-1040 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x5c> - 478: 00006517 auipc a0,0x6 - 47c: bf050513 addi a0,a0,-1040 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 480: 48e040ef jal 490e + 3be: 00006597 auipc a1,0x6 + 3c2: c8258593 addi a1,a1,-894 # 6040 <_GLOBAL__sub_I__ZSt3cin+0x50> + 3c6: 00006517 auipc a0,0x6 + 3ca: c8250513 addi a0,a0,-894 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 3ce: 52c040ef jal 48fa exit(1); - 484: 4505 li a0,1 - 486: 79d040ef jal 5422 + 3d2: 4505 li a0,1 + 3d4: 03a050ef jal 540e return pid; - 48a: bf9d j 400 <_ZN11PipeCommand3runEv+0x2a> + 3d8: bf9d j 34e <_ZN11PipeCommand3runEv+0x2a> printf("shell panic: %s\n", s); - 48c: 00006597 auipc a1,0x6 - 490: bf458593 addi a1,a1,-1036 # 6080 <_GLOBAL__sub_I__ZSt3cin+0x7c> - 494: 00006517 auipc a0,0x6 - 498: bd450513 addi a0,a0,-1068 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 49c: 472040ef jal 490e + 3da: 00006597 auipc a1,0x6 + 3de: c8658593 addi a1,a1,-890 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x70> + 3e2: 00006517 auipc a0,0x6 + 3e6: c6650513 addi a0,a0,-922 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 3ea: 510040ef jal 48fa exit(1); - 4a0: 4505 li a0,1 - 4a2: 781040ef jal 5422 + 3ee: 4505 li a0,1 + 3f0: 01e050ef jal 540e int pid = fork(); - 4a6: 447000ef jal 10ec + 3f4: 4dd000ef jal 10d0 if (pid == -1) - 4aa: 57fd li a5,-1 - 4ac: f4f513e3 bne a0,a5,3f2 <_ZN11PipeCommand3runEv+0x1c> + 3f8: 57fd li a5,-1 + 3fa: f4f513e3 bne a0,a5,340 <_ZN11PipeCommand3runEv+0x1c> printf("shell panic: %s\n", s); - 4b0: 00006597 auipc a1,0x6 - 4b4: bb058593 addi a1,a1,-1104 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x5c> - 4b8: 00006517 auipc a0,0x6 - 4bc: bb050513 addi a0,a0,-1104 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 4c0: 44e040ef jal 490e + 3fe: 00006597 auipc a1,0x6 + 402: c4258593 addi a1,a1,-958 # 6040 <_GLOBAL__sub_I__ZSt3cin+0x50> + 406: 00006517 auipc a0,0x6 + 40a: c4250513 addi a0,a0,-958 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 40e: 4ec040ef jal 48fa exit(1); - 4c4: 4505 li a0,1 - 4c6: 75d040ef jal 5422 + 412: 4505 li a0,1 + 414: 7fb040ef jal 540e return pid; - 4ca: b72d j 3f4 <_ZN11PipeCommand3runEv+0x1e> + 418: b72d j 342 <_ZN11PipeCommand3runEv+0x1e> -00000000000004cc <_ZN6Parser12parse_redirsEP7CommandPPcS2_>: +000000000000041a <_ZN6Parser12parse_redirsEP7CommandPPcS2_>: : sub_cmd(c), file(f), efile(ef), mode(m), fd(fd_in) {} - 4cc: 4785 li a5,1 - 4ce: 1782 slli a5,a5,0x20 + 41a: 4785 li a5,1 + 41c: 1782 slli a5,a5,0x20 static Command *parse_redirs(Command *cmd, char **ps, char *es) - 4d0: 7119 addi sp,sp,-128 + 41e: 7119 addi sp,sp,-128 : sub_cmd(c), file(f), efile(ef), mode(m), fd(fd_in) {} - 4d2: 60178793 addi a5,a5,1537 + 420: 60178793 addi a5,a5,1537 static Command *parse_redirs(Command *cmd, char **ps, char *es) - 4d6: f8a2 sd s0,112(sp) - 4d8: f4a6 sd s1,104(sp) - 4da: e4d6 sd s5,72(sp) - 4dc: e0da sd s6,64(sp) - 4de: f862 sd s8,48(sp) - 4e0: f466 sd s9,40(sp) - 4e2: fc86 sd ra,120(sp) - 4e4: f0ca sd s2,96(sp) - 4e6: ecce sd s3,88(sp) - 4e8: e8d2 sd s4,80(sp) - 4ea: fc5e sd s7,56(sp) - 4ec: f06a sd s10,32(sp) - 4ee: ec6e sd s11,24(sp) - 4f0: 8aae mv s5,a1 - 4f2: 8432 mv s0,a2 + 424: f8a2 sd s0,112(sp) + 426: f4a6 sd s1,104(sp) + 428: e4d6 sd s5,72(sp) + 42a: e0da sd s6,64(sp) + 42c: f862 sd s8,48(sp) + 42e: f466 sd s9,40(sp) + 430: fc86 sd ra,120(sp) + 432: f0ca sd s2,96(sp) + 434: ecce sd s3,88(sp) + 436: e8d2 sd s4,80(sp) + 438: fc5e sd s7,56(sp) + 43a: f06a sd s10,32(sp) + 43c: ec6e sd s11,24(sp) + 43e: 8aae mv s5,a1 + 440: 8432 mv s0,a2 while (peek(ps, es, "<>")) - 4f4: 8c2a mv s8,a0 - 4f6: 00008497 auipc s1,0x8 - 4fa: 9e248493 addi s1,s1,-1566 # 7ed8 + 442: 8c2a mv s8,a0 + 444: 00008497 auipc s1,0x8 + 448: ac448493 addi s1,s1,-1340 # 7f08 switch (*s) - 4fe: 03c00b13 li s6,60 + 44c: 03c00b13 li s6,60 if (get_token(ps, es, &q, &eq) != 'a') - 502: 06100c93 li s9,97 + 450: 06100c93 li s9,97 : sub_cmd(c), file(f), efile(ef), mode(m), fd(fd_in) {} - 506: e43e sd a5,8(sp) + 454: e43e sd a5,8(sp) char *s = *ps; - 508: 000ab903 ld s2,0(s5) + 456: 000ab903 ld s2,0(s5) while (s < es && strchr(WHITESPACE, *s)) - 50c: 00896663 bltu s2,s0,518 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x4c> - 510: a811 j 524 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x58> + 45a: 00896663 bltu s2,s0,466 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x4c> + 45e: a811 j 472 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x58> s++; - 512: 0905 addi s2,s2,1 + 460: 0905 addi s2,s2,1 while (s < es && strchr(WHITESPACE, *s)) - 514: 01240863 beq s0,s2,524 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x58> - 518: 00094583 lbu a1,0(s2) - 51c: 6088 ld a0,0(s1) - 51e: 7bc050ef jal 5cda - 522: f965 bnez a0,512 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x46> + 462: 01240863 beq s0,s2,472 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x58> + 466: 00094583 lbu a1,0(s2) + 46a: 6088 ld a0,0(s1) + 46c: 05b050ef jal 5cc6 + 470: f965 bnez a0,460 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x46> *ps = s; - 524: 012ab023 sd s2,0(s5) + 472: 012ab023 sd s2,0(s5) return *s && strchr(toks, *s); - 528: 00094583 lbu a1,0(s2) - 52c: e18d bnez a1,54e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x82> + 476: 00094583 lbu a1,0(s2) + 47a: e18d bnez a1,49c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x82> } - 52e: 70e6 ld ra,120(sp) - 530: 7446 ld s0,112(sp) - 532: 74a6 ld s1,104(sp) - 534: 7906 ld s2,96(sp) - 536: 69e6 ld s3,88(sp) - 538: 6a46 ld s4,80(sp) - 53a: 6aa6 ld s5,72(sp) - 53c: 6b06 ld s6,64(sp) - 53e: 7be2 ld s7,56(sp) - 540: 7ca2 ld s9,40(sp) - 542: 7d02 ld s10,32(sp) - 544: 6de2 ld s11,24(sp) - 546: 8562 mv a0,s8 - 548: 7c42 ld s8,48(sp) - 54a: 6109 addi sp,sp,128 - 54c: 8082 ret + 47c: 70e6 ld ra,120(sp) + 47e: 7446 ld s0,112(sp) + 480: 74a6 ld s1,104(sp) + 482: 7906 ld s2,96(sp) + 484: 69e6 ld s3,88(sp) + 486: 6a46 ld s4,80(sp) + 488: 6aa6 ld s5,72(sp) + 48a: 6b06 ld s6,64(sp) + 48c: 7be2 ld s7,56(sp) + 48e: 7ca2 ld s9,40(sp) + 490: 7d02 ld s10,32(sp) + 492: 6de2 ld s11,24(sp) + 494: 8562 mv a0,s8 + 496: 7c42 ld s8,48(sp) + 498: 6109 addi sp,sp,128 + 49a: 8082 ret return *s && strchr(toks, *s); - 54e: 00006517 auipc a0,0x6 - 552: b5a50513 addi a0,a0,-1190 # 60a8 <_GLOBAL__sub_I__ZSt3cin+0xa4> - 556: 784050ef jal 5cda - 55a: d971 beqz a0,52e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x62> + 49c: 00006517 auipc a0,0x6 + 4a0: bec50513 addi a0,a0,-1044 # 6088 <_GLOBAL__sub_I__ZSt3cin+0x98> + 4a4: 023050ef jal 5cc6 + 4a8: d971 beqz a0,47c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x62> s = *ps; - 55c: 000abd83 ld s11,0(s5) + 4aa: 000abd83 ld s11,0(s5) while (s < es && strchr(WHITESPACE, *s)) - 560: 008de663 bltu s11,s0,56c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xa0> - 564: a811 j 578 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xac> + 4ae: 008de663 bltu s11,s0,4ba <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xa0> + 4b2: a811 j 4c6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xac> s++; - 566: 0d85 addi s11,s11,1 + 4b4: 0d85 addi s11,s11,1 while (s < es && strchr(WHITESPACE, *s)) - 568: 01b40863 beq s0,s11,578 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xac> - 56c: 000dc583 lbu a1,0(s11) - 570: 6088 ld a0,0(s1) - 572: 768050ef jal 5cda - 576: f965 bnez a0,566 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x9a> + 4b6: 01b40863 beq s0,s11,4c6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xac> + 4ba: 000dc583 lbu a1,0(s11) + 4be: 6088 ld a0,0(s1) + 4c0: 007050ef jal 5cc6 + 4c4: f965 bnez a0,4b4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x9a> ret = *s; - 578: 000dc983 lbu s3,0(s11) + 4c6: 000dc983 lbu s3,0(s11) switch (*s) - 57c: 193b6e63 bltu s6,s3,718 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x24c> - 580: 03a00713 li a4,58 - 584: 01376f63 bltu a4,s3,5a2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> - 588: 00098e63 beqz s3,5a4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd8> - 58c: 02600713 li a4,38 - 590: 00e98963 beq s3,a4,5a2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> - 594: fd89871b addiw a4,s3,-40 - 598: 0ff77713 zext.b a4,a4 - 59c: 4685 li a3,1 - 59e: 0ce6ef63 bltu a3,a4,67c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1b0> + 4ca: 193b6e63 bltu s6,s3,666 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x24c> + 4ce: 03a00713 li a4,58 + 4d2: 01376f63 bltu a4,s3,4f0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> + 4d6: 00098e63 beqz s3,4f2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd8> + 4da: 02600713 li a4,38 + 4de: 00e98963 beq s3,a4,4f0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> + 4e2: fd89871b addiw a4,s3,-40 + 4e6: 0ff77713 zext.b a4,a4 + 4ea: 4685 li a3,1 + 4ec: 0ce6ef63 bltu a3,a4,5ca <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1b0> s++; - 5a2: 0d85 addi s11,s11,1 + 4f0: 0d85 addi s11,s11,1 while (s < es && strchr(WHITESPACE, *s)) - 5a4: 108df363 bgeu s11,s0,6aa <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1de> - 5a8: 8926 mv s2,s1 - 5aa: a021 j 5b2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xe6> + 4f2: 108df363 bgeu s11,s0,5f8 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1de> + 4f6: 8926 mv s2,s1 + 4f8: a021 j 500 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xe6> s++; - 5ac: 0d85 addi s11,s11,1 + 4fa: 0d85 addi s11,s11,1 while (s < es && strchr(WHITESPACE, *s)) - 5ae: 25b40963 beq s0,s11,800 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x334> - 5b2: 000dc583 lbu a1,0(s11) - 5b6: 6088 ld a0,0(s1) - 5b8: 722050ef jal 5cda - 5bc: f965 bnez a0,5ac <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xe0> + 4fc: 25b40963 beq s0,s11,74e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x334> + 500: 000dc583 lbu a1,0(s11) + 504: 6088 ld a0,0(s1) + 506: 7c0050ef jal 5cc6 + 50a: f965 bnez a0,4fa <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xe0> *ps = s; - 5be: 01bab023 sd s11,0(s5) + 50c: 01bab023 sd s11,0(s5) while (s < es && strchr(WHITESPACE, *s)) - 5c2: 008de663 bltu s11,s0,5ce <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x102> - 5c6: a0e5 j 6ae <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1e2> + 510: 008de663 bltu s11,s0,51c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x102> + 514: a0e5 j 5fc <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1e2> s++; - 5c8: 0d85 addi s11,s11,1 + 516: 0d85 addi s11,s11,1 while (s < es && strchr(WHITESPACE, *s)) - 5ca: 01b40863 beq s0,s11,5da <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x10e> - 5ce: 000dc583 lbu a1,0(s11) - 5d2: 6088 ld a0,0(s1) - 5d4: 706050ef jal 5cda - 5d8: f965 bnez a0,5c8 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xfc> + 518: 01b40863 beq s0,s11,528 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x10e> + 51c: 000dc583 lbu a1,0(s11) + 520: 6088 ld a0,0(s1) + 522: 7a4050ef jal 5cc6 + 526: f965 bnez a0,516 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xfc> ret = *s; - 5da: 000dca03 lbu s4,0(s11) + 528: 000dca03 lbu s4,0(s11) switch (*s) - 5de: 154b6963 bltu s6,s4,730 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x264> - 5e2: 03a00713 li a4,58 - 5e6: 01476f63 bltu a4,s4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> - 5ea: 0c0a0c63 beqz s4,6c2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1f6> - 5ee: 02600713 li a4,38 - 5f2: 00ea0963 beq s4,a4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> - 5f6: fd8a071b addiw a4,s4,-40 - 5fa: 0ff77713 zext.b a4,a4 - 5fe: 4685 li a3,1 - 600: 18e6e163 bltu a3,a4,782 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2b6> + 52c: 154b6963 bltu s6,s4,67e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x264> + 530: 03a00713 li a4,58 + 534: 01476f63 bltu a4,s4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 538: 0c0a0c63 beqz s4,610 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1f6> + 53c: 02600713 li a4,38 + 540: 00ea0963 beq s4,a4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 544: fd8a071b addiw a4,s4,-40 + 548: 0ff77713 zext.b a4,a4 + 54c: 4685 li a3,1 + 54e: 18e6e163 bltu a3,a4,6d0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2b6> ret = *s; - 604: 8bee mv s7,s11 + 552: 8bee mv s7,s11 s++; - 606: 0d85 addi s11,s11,1 + 554: 0d85 addi s11,s11,1 ret = *s; - 608: 2a01 sext.w s4,s4 + 556: 2a01 sext.w s4,s4 while (s < es && strchr(WHITESPACE, *s)) - 60a: 8926 mv s2,s1 - 60c: 0c8df063 bgeu s11,s0,6cc <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x200> + 558: 8926 mv s2,s1 + 55a: 0c8df063 bgeu s11,s0,61a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x200> ret = *s; - 610: 8d6e mv s10,s11 - 612: a021 j 61a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x14e> + 55e: 8d6e mv s10,s11 + 560: a021 j 568 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x14e> s++; - 614: 0d05 addi s10,s10,1 + 562: 0d05 addi s10,s10,1 while (s < es && strchr(WHITESPACE, *s)) - 616: 008d7963 bgeu s10,s0,628 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x15c> - 61a: 000d4583 lbu a1,0(s10) - 61e: 00093503 ld a0,0(s2) - 622: 6b8050ef jal 5cda - 626: f57d bnez a0,614 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x148> + 564: 008d7963 bgeu s10,s0,576 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x15c> + 568: 000d4583 lbu a1,0(s10) + 56c: 00093503 ld a0,0(s2) + 570: 756050ef jal 5cc6 + 574: f57d bnez a0,562 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x148> *ps = s; - 628: 01aab023 sd s10,0(s5) + 576: 01aab023 sd s10,0(s5) if (get_token(ps, es, &q, &eq) != 'a') - 62c: 0b9a1263 bne s4,s9,6d0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x204> + 57a: 0b9a1263 bne s4,s9,61e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x204> *eq = 0; // Null terminate filename immediately - 630: 000d8023 sb zero,0(s11) + 57e: 000d8023 sb zero,0(s11) switch (tok) - 634: 0b698f63 beq s3,s6,6f2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x226> - 638: 03e00713 li a4,62 - 63c: 10e98c63 beq s3,a4,754 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x288> - 640: 02b00713 li a4,43 - 644: ece992e3 bne s3,a4,508 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> + 582: 0b698f63 beq s3,s6,640 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x226> + 586: 03e00713 li a4,62 + 58a: 10e98c63 beq s3,a4,6a2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x288> + 58e: 02b00713 li a4,43 + 592: ece992e3 bne s3,a4,456 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> cmd = new RedirCommand(cmd, q, eq, O_WRONLY | O_CREATE, 1); // Append not fully supported in simple OS yet? - 648: 02800513 li a0,40 - 64c: 1a1050ef jal 5fec <_Znwm> + 596: 02800513 li a0,40 + 59a: 23f050ef jal 5fd8 <_Znwm> : sub_cmd(c), file(f), efile(ef), mode(m), fd(fd_in) {} - 650: 4705 li a4,1 - 652: 1702 slli a4,a4,0x20 - 654: 20170713 addi a4,a4,513 - 658: 00007797 auipc a5,0x7 - 65c: 7f078793 addi a5,a5,2032 # 7e48 <_ZTV12RedirCommand+0x10> - 660: 01853423 sd s8,8(a0) - 664: e11c sd a5,0(a0) - 666: 01753823 sd s7,16(a0) - 66a: 01b53c23 sd s11,24(a0) - 66e: f118 sd a4,32(a0) + 59e: 4705 li a4,1 + 5a0: 1702 slli a4,a4,0x20 + 5a2: 20170713 addi a4,a4,513 + 5a6: 00008797 auipc a5,0x8 + 5aa: 8d278793 addi a5,a5,-1838 # 7e78 <_ZTV12RedirCommand+0x10> + 5ae: 01853423 sd s8,8(a0) + 5b2: e11c sd a5,0(a0) + 5b4: 01753823 sd s7,16(a0) + 5b8: 01b53c23 sd s11,24(a0) + 5bc: f118 sd a4,32(a0) cmd = new RedirCommand(cmd, q, eq, O_WRONLY | O_CREATE, 1); // Append not fully supported in simple OS yet? - 670: 8c2a mv s8,a0 + 5be: 8c2a mv s8,a0 break; - 672: bd59 j 508 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> + 5c0: bd59 j 456 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> switch (*s) - 674: 07c00713 li a4,124 - 678: f2e985e3 beq s3,a4,5a2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> + 5c2: 07c00713 li a4,124 + 5c6: f2e985e3 beq s3,a4,4f0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - 67c: 008dec63 bltu s11,s0,694 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1c8> - 680: a01d j 6a6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1da> - 682: 000dc583 lbu a1,0(s11) - 686: 6488 ld a0,8(s1) - 688: 652050ef jal 5cda - 68c: e911 bnez a0,6a0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1d4> + 5ca: 008dec63 bltu s11,s0,5e2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1c8> + 5ce: a01d j 5f4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1da> + 5d0: 000dc583 lbu a1,0(s11) + 5d4: 6488 ld a0,8(s1) + 5d6: 6f0050ef jal 5cc6 + 5da: e911 bnez a0,5ee <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1d4> s++; - 68e: 0d85 addi s11,s11,1 + 5dc: 0d85 addi s11,s11,1 while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - 690: 01b40b63 beq s0,s11,6a6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1da> - 694: 000dc583 lbu a1,0(s11) - 698: 6088 ld a0,0(s1) - 69a: 640050ef jal 5cda - 69e: d175 beqz a0,682 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1b6> - 6a0: 06100993 li s3,97 - 6a4: b701 j 5a4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd8> - 6a6: 06100993 li s3,97 + 5de: 01b40b63 beq s0,s11,5f4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1da> + 5e2: 000dc583 lbu a1,0(s11) + 5e6: 6088 ld a0,0(s1) + 5e8: 6de050ef jal 5cc6 + 5ec: d175 beqz a0,5d0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1b6> + 5ee: 06100993 li s3,97 + 5f2: b701 j 4f2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd8> + 5f4: 06100993 li s3,97 *ps = s; - 6aa: 01bab023 sd s11,0(s5) + 5f8: 01bab023 sd s11,0(s5) ret = *s; - 6ae: 000dca03 lbu s4,0(s11) + 5fc: 000dca03 lbu s4,0(s11) switch (*s) - 6b2: 114b6963 bltu s6,s4,7c4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2f8> - 6b6: 03a00713 li a4,58 - 6ba: f54765e3 bltu a4,s4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> - 6be: 120a1063 bnez s4,7de <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x312> + 600: 114b6963 bltu s6,s4,712 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2f8> + 604: 03a00713 li a4,58 + 608: f54765e3 bltu a4,s4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 60c: 120a1063 bnez s4,72c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x312> while (s < es && strchr(WHITESPACE, *s)) - 6c2: 8bee mv s7,s11 + 610: 8bee mv s7,s11 ret = *s; - 6c4: 4a01 li s4,0 - 6c6: 8926 mv s2,s1 + 612: 4a01 li s4,0 + 614: 8926 mv s2,s1 while (s < es && strchr(WHITESPACE, *s)) - 6c8: f48de4e3 bltu s11,s0,610 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> + 616: f48de4e3 bltu s11,s0,55e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> *ps = s; - 6cc: 01bab023 sd s11,0(s5) + 61a: 01bab023 sd s11,0(s5) printf("shell panic: %s\n", s); - 6d0: 00006597 auipc a1,0x6 - 6d4: 9b858593 addi a1,a1,-1608 # 6088 <_GLOBAL__sub_I__ZSt3cin+0x84> - 6d8: 00006517 auipc a0,0x6 - 6dc: 99050513 addi a0,a0,-1648 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 6e0: 22e040ef jal 490e + 61e: 00006597 auipc a1,0x6 + 622: a4a58593 addi a1,a1,-1462 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x78> + 626: 00006517 auipc a0,0x6 + 62a: a2250513 addi a0,a0,-1502 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 62e: 2cc040ef jal 48fa exit(1); - 6e4: 4505 li a0,1 - 6e6: 53d040ef jal 5422 + 632: 4505 li a0,1 + 634: 5db040ef jal 540e *eq = 0; // Null terminate filename immediately - 6ea: 000d8023 sb zero,0(s11) + 638: 000d8023 sb zero,0(s11) switch (tok) - 6ee: f56995e3 bne s3,s6,638 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x16c> + 63c: f56995e3 bne s3,s6,586 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x16c> cmd = new RedirCommand(cmd, q, eq, O_RDONLY, 0); - 6f2: 02800513 li a0,40 - 6f6: 0f7050ef jal 5fec <_Znwm> + 640: 02800513 li a0,40 + 644: 195050ef jal 5fd8 <_Znwm> : sub_cmd(c), file(f), efile(ef), mode(m), fd(fd_in) {} - 6fa: 00007797 auipc a5,0x7 - 6fe: 74e78793 addi a5,a5,1870 # 7e48 <_ZTV12RedirCommand+0x10> - 702: 01853423 sd s8,8(a0) - 706: e11c sd a5,0(a0) - 708: 01753823 sd s7,16(a0) - 70c: 01b53c23 sd s11,24(a0) - 710: 02053023 sd zero,32(a0) + 648: 00008797 auipc a5,0x8 + 64c: 83078793 addi a5,a5,-2000 # 7e78 <_ZTV12RedirCommand+0x10> + 650: 01853423 sd s8,8(a0) + 654: e11c sd a5,0(a0) + 656: 01753823 sd s7,16(a0) + 65a: 01b53c23 sd s11,24(a0) + 65e: 02053023 sd zero,32(a0) cmd = new RedirCommand(cmd, q, eq, O_RDONLY, 0); - 714: 8c2a mv s8,a0 + 662: 8c2a mv s8,a0 break; - 716: bbcd j 508 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> + 664: bbcd j 456 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> switch (*s) - 718: 03e00713 li a4,62 - 71c: f4e99ce3 bne s3,a4,674 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1a8> + 666: 03e00713 li a4,62 + 66a: f4e99ce3 bne s3,a4,5c2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1a8> if (*s == '>') - 720: 001dc703 lbu a4,1(s11) - 724: e7371fe3 bne a4,s3,5a2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> + 66e: 001dc703 lbu a4,1(s11) + 672: e7371fe3 bne a4,s3,4f0 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd6> s++; - 728: 0d89 addi s11,s11,2 - 72a: 02b00993 li s3,43 - 72e: bd9d j 5a4 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd8> + 676: 0d89 addi s11,s11,2 + 678: 02b00993 li s3,43 + 67c: bd9d j 4f2 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0xd8> switch (*s) - 730: 03e00713 li a4,62 - 734: 8bee mv s7,s11 - 736: 04ea1263 bne s4,a4,77a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2ae> + 67e: 03e00713 li a4,62 + 682: 8bee mv s7,s11 + 684: 04ea1263 bne s4,a4,6c8 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2ae> if (*s == '>') - 73a: 001dc683 lbu a3,1(s11) - 73e: 03e00713 li a4,62 - 742: 06e68a63 beq a3,a4,7b6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2ea> + 688: 001dc683 lbu a3,1(s11) + 68c: 03e00713 li a4,62 + 690: 06e68a63 beq a3,a4,704 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2ea> s++; - 746: 0d85 addi s11,s11,1 + 694: 0d85 addi s11,s11,1 ret = *s; - 748: 03e00a13 li s4,62 - 74c: 8926 mv s2,s1 + 696: 03e00a13 li s4,62 + 69a: 8926 mv s2,s1 while (s < es && strchr(WHITESPACE, *s)) - 74e: ec8de1e3 bltu s11,s0,610 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> - 752: bfad j 6cc <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x200> + 69c: ec8de1e3 bltu s11,s0,55e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> + 6a0: bfad j 61a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x200> cmd = new RedirCommand(cmd, q, eq, O_WRONLY | O_CREATE | O_TRUNC, 1); - 754: 02800513 li a0,40 - 758: 095050ef jal 5fec <_Znwm> + 6a2: 02800513 li a0,40 + 6a6: 133050ef jal 5fd8 <_Znwm> : sub_cmd(c), file(f), efile(ef), mode(m), fd(fd_in) {} - 75c: 00007797 auipc a5,0x7 - 760: 6ec78793 addi a5,a5,1772 # 7e48 <_ZTV12RedirCommand+0x10> - 764: e11c sd a5,0(a0) - 766: 67a2 ld a5,8(sp) - 768: 01853423 sd s8,8(a0) - 76c: 01753823 sd s7,16(a0) - 770: 01b53c23 sd s11,24(a0) - 774: f11c sd a5,32(a0) + 6aa: 00007797 auipc a5,0x7 + 6ae: 7ce78793 addi a5,a5,1998 # 7e78 <_ZTV12RedirCommand+0x10> + 6b2: e11c sd a5,0(a0) + 6b4: 67a2 ld a5,8(sp) + 6b6: 01853423 sd s8,8(a0) + 6ba: 01753823 sd s7,16(a0) + 6be: 01b53c23 sd s11,24(a0) + 6c2: f11c sd a5,32(a0) cmd = new RedirCommand(cmd, q, eq, O_WRONLY | O_CREATE | O_TRUNC, 1); - 776: 8c2a mv s8,a0 + 6c4: 8c2a mv s8,a0 break; - 778: bb41 j 508 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> + 6c6: bb41 j 456 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x3c> switch (*s) - 77a: 07c00713 li a4,124 - 77e: e8ea03e3 beq s4,a4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 6c8: 07c00713 li a4,124 + 6cc: e8ea03e3 beq s4,a4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - 782: 048dfa63 bgeu s11,s0,7d6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x30a> - 786: 8d6e mv s10,s11 - 788: a811 j 79c <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2d0> - 78a: 000d4583 lbu a1,0(s10) - 78e: 6488 ld a0,8(s1) - 790: 54a050ef jal 5cda - 794: e911 bnez a0,7a8 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2dc> + 6d0: 048dfa63 bgeu s11,s0,724 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x30a> + 6d4: 8d6e mv s10,s11 + 6d6: a811 j 6ea <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2d0> + 6d8: 000d4583 lbu a1,0(s10) + 6dc: 6488 ld a0,8(s1) + 6de: 5e8050ef jal 5cc6 + 6e2: e911 bnez a0,6f6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2dc> s++; - 796: 0d05 addi s10,s10,1 + 6e4: 0d05 addi s10,s10,1 while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - 798: 05a40f63 beq s0,s10,7f6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x32a> - 79c: 000d4583 lbu a1,0(s10) - 7a0: 6088 ld a0,0(s1) - 7a2: 538050ef jal 5cda - 7a6: d175 beqz a0,78a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2be> + 6e6: 05a40f63 beq s0,s10,744 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x32a> + 6ea: 000d4583 lbu a1,0(s10) + 6ee: 6088 ld a0,0(s1) + 6f0: 5d6050ef jal 5cc6 + 6f4: d175 beqz a0,6d8 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x2be> while (s < es && strchr(WHITESPACE, *s)) - 7a8: 048d7763 bgeu s10,s0,7f6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x32a> - 7ac: 8bee mv s7,s11 - 7ae: 06100a13 li s4,97 - 7b2: 8dea mv s11,s10 - 7b4: bdb1 j 610 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> + 6f6: 048d7763 bgeu s10,s0,744 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x32a> + 6fa: 8bee mv s7,s11 + 6fc: 06100a13 li s4,97 + 700: 8dea mv s11,s10 + 702: bdb1 j 55e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> s++; - 7b6: 0d89 addi s11,s11,2 + 704: 0d89 addi s11,s11,2 ret = '+'; - 7b8: 02b00a13 li s4,43 - 7bc: 8926 mv s2,s1 + 706: 02b00a13 li s4,43 + 70a: 8926 mv s2,s1 while (s < es && strchr(WHITESPACE, *s)) - 7be: e48de9e3 bltu s11,s0,610 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> - 7c2: b729 j 6cc <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x200> + 70c: e48de9e3 bltu s11,s0,55e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x144> + 710: b729 j 61a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x200> switch (*s) - 7c4: 03e00713 li a4,62 - 7c8: 8bee mv s7,s11 - 7ca: f6ea08e3 beq s4,a4,73a <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x26e> - 7ce: 07c00713 li a4,124 - 7d2: e2ea09e3 beq s4,a4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 712: 03e00713 li a4,62 + 716: 8bee mv s7,s11 + 718: f6ea08e3 beq s4,a4,688 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x26e> + 71c: 07c00713 li a4,124 + 720: e2ea09e3 beq s4,a4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> *ps = s; - 7d6: 01bab023 sd s11,0(s5) - 7da: 8bee mv s7,s11 - 7dc: bd91 j 630 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x164> + 724: 01bab023 sd s11,0(s5) + 728: 8bee mv s7,s11 + 72a: bd91 j 57e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x164> switch (*s) - 7de: 02600713 li a4,38 - 7e2: e2ea01e3 beq s4,a4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> - 7e6: fd8a071b addiw a4,s4,-40 - 7ea: 0ff77713 zext.b a4,a4 - 7ee: 4685 li a3,1 - 7f0: e0e6fae3 bgeu a3,a4,604 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> - 7f4: b7cd j 7d6 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x30a> + 72c: 02600713 li a4,38 + 730: e2ea01e3 beq s4,a4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 734: fd8a071b addiw a4,s4,-40 + 738: 0ff77713 zext.b a4,a4 + 73c: 4685 li a3,1 + 73e: e0e6fae3 bgeu a3,a4,552 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x138> + 742: b7cd j 724 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x30a> *ps = s; - 7f6: 8bee mv s7,s11 - 7f8: 01aab023 sd s10,0(s5) - 7fc: 8dea mv s11,s10 - 7fe: bd0d j 630 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x164> - 800: 008ab023 sd s0,0(s5) + 744: 8bee mv s7,s11 + 746: 01aab023 sd s10,0(s5) + 74a: 8dea mv s11,s10 + 74c: bd0d j 57e <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x164> + 74e: 008ab023 sd s0,0(s5) while (s < es && strchr(WHITESPACE, *s)) - 804: b56d j 6ae <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1e2> + 752: b56d j 5fc <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x1e2> -0000000000000806 <_ZN6Parser10parse_pipeEPPcS0_>: +0000000000000754 <_ZN6Parser10parse_pipeEPPcS0_>: static Command *parse_pipe(char **ps, char *es) - 806: 7119 addi sp,sp,-128 - 808: e8d2 sd s4,80(sp) - 80a: 8a2a mv s4,a0 + 754: 7119 addi sp,sp,-128 + 756: e8d2 sd s4,80(sp) + 758: 8a2a mv s4,a0 ExecCommand *cmd = new ExecCommand(); - 80c: 05800513 li a0,88 + 75a: 05800513 li a0,88 static Command *parse_pipe(char **ps, char *es) - 810: fc86 sd ra,120(sp) - 812: f8a2 sd s0,112(sp) - 814: f4a6 sd s1,104(sp) - 816: 842e mv s0,a1 - 818: e4d6 sd s5,72(sp) - 81a: e0da sd s6,64(sp) - 81c: fc5e sd s7,56(sp) - 81e: f466 sd s9,40(sp) - 820: f06a sd s10,32(sp) - 822: f0ca sd s2,96(sp) - 824: ecce sd s3,88(sp) - 826: f862 sd s8,48(sp) - 828: ec6e sd s11,24(sp) + 75e: fc86 sd ra,120(sp) + 760: f8a2 sd s0,112(sp) + 762: f4a6 sd s1,104(sp) + 764: 842e mv s0,a1 + 766: e4d6 sd s5,72(sp) + 768: e0da sd s6,64(sp) + 76a: fc5e sd s7,56(sp) + 76c: f466 sd s9,40(sp) + 76e: f06a sd s10,32(sp) + 770: f0ca sd s2,96(sp) + 772: ecce sd s3,88(sp) + 774: f862 sd s8,48(sp) + 776: ec6e sd s11,24(sp) ExecCommand *cmd = new ExecCommand(); - 82a: 7c2050ef jal 5fec <_Znwm> - 82e: 84aa mv s1,a0 + 778: 061050ef jal 5fd8 <_Znwm> + 77c: 84aa mv s1,a0 { - 830: 00007797 auipc a5,0x7 - 834: 5f078793 addi a5,a5,1520 # 7e20 <_ZTV11ExecCommand+0x10> + 77e: 00007797 auipc a5,0x7 + 782: 6d278793 addi a5,a5,1746 # 7e50 <_ZTV11ExecCommand+0x10> memset(argv, 0, sizeof(argv)); - 838: 00850b93 addi s7,a0,8 + 786: 00850b93 addi s7,a0,8 { - 83c: e09c sd a5,0(s1) + 78a: e09c sd a5,0(s1) ExecCommand *cmd = new ExecCommand(); - 83e: e42a sd a0,8(sp) + 78c: e42a sd a0,8(sp) memset(argv, 0, sizeof(argv)); - 840: 05000613 li a2,80 - 844: 4581 li a1,0 - 846: 855e mv a0,s7 - 848: 2a4050ef jal 5aec + 78e: 05000613 li a2,80 + 792: 4581 li a1,0 + 794: 855e mv a0,s7 + 796: 342050ef jal 5ad8 ret = parse_redirs(ret, ps, es); - 84c: 8526 mv a0,s1 - 84e: 8622 mv a2,s0 - 850: 85d2 mv a1,s4 - 852: c7bff0ef jal 4cc <_ZN6Parser12parse_redirsEP7CommandPPcS2_> + 79a: 8526 mv a0,s1 + 79c: 8622 mv a2,s0 + 79e: 85d2 mv a1,s4 + 7a0: c7bff0ef jal 41a <_ZN6Parser12parse_redirsEP7CommandPPcS2_> char *s = *ps; - 856: 000a3d03 ld s10,0(s4) + 7a4: 000a3d03 ld s10,0(s4) ret = parse_redirs(ret, ps, es); - 85a: 8aaa mv s5,a0 + 7a8: 8aaa mv s5,a0 argc = 0; - 85c: 4b01 li s6,0 + 7aa: 4b01 li s6,0 while (s < es && strchr(WHITESPACE, *s)) - 85e: 00007497 auipc s1,0x7 - 862: 67a48493 addi s1,s1,1658 # 7ed8 + 7ac: 00007497 auipc s1,0x7 + 7b0: 75c48493 addi s1,s1,1884 # 7f08 if (*s == '>') - 866: 03e00c93 li s9,62 + 7b4: 03e00c93 li s9,62 while (s < es && strchr(WHITESPACE, *s)) - 86a: 0c8d7f63 bgeu s10,s0,948 <_ZN6Parser10parse_pipeEPPcS0_+0x142> - 86e: 89a6 mv s3,s1 - 870: a021 j 878 <_ZN6Parser10parse_pipeEPPcS0_+0x72> + 7b8: 0c8d7f63 bgeu s10,s0,896 <_ZN6Parser10parse_pipeEPPcS0_+0x142> + 7bc: 89a6 mv s3,s1 + 7be: a021 j 7c6 <_ZN6Parser10parse_pipeEPPcS0_+0x72> s++; - 872: 0d05 addi s10,s10,1 + 7c0: 0d05 addi s10,s10,1 while (s < es && strchr(WHITESPACE, *s)) - 874: 01a40863 beq s0,s10,884 <_ZN6Parser10parse_pipeEPPcS0_+0x7e> - 878: 000d4583 lbu a1,0(s10) - 87c: 6088 ld a0,0(s1) - 87e: 45c050ef jal 5cda - 882: f965 bnez a0,872 <_ZN6Parser10parse_pipeEPPcS0_+0x6c> + 7c2: 01a40863 beq s0,s10,7d2 <_ZN6Parser10parse_pipeEPPcS0_+0x7e> + 7c6: 000d4583 lbu a1,0(s10) + 7ca: 6088 ld a0,0(s1) + 7cc: 4fa050ef jal 5cc6 + 7d0: f965 bnez a0,7c0 <_ZN6Parser10parse_pipeEPPcS0_+0x6c> *ps = s; - 884: 01aa3023 sd s10,0(s4) + 7d2: 01aa3023 sd s10,0(s4) return *s && strchr(toks, *s); - 888: 000d4583 lbu a1,0(s10) - 88c: 10059063 bnez a1,98c <_ZN6Parser10parse_pipeEPPcS0_+0x186> + 7d6: 000d4583 lbu a1,0(s10) + 7da: 10059063 bnez a1,8da <_ZN6Parser10parse_pipeEPPcS0_+0x186> while (s < es && strchr(WHITESPACE, *s)) - 890: 008d6863 bltu s10,s0,8a0 <_ZN6Parser10parse_pipeEPPcS0_+0x9a> - 894: a6ad j bfe <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> + 7de: 008d6863 bltu s10,s0,7ee <_ZN6Parser10parse_pipeEPPcS0_+0x9a> + 7e2: a6ad j b4c <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> s++; - 896: 0d05 addi s10,s10,1 + 7e4: 0d05 addi s10,s10,1 ret = *s; - 898: 000d4903 lbu s2,0(s10) + 7e6: 000d4903 lbu s2,0(s10) while (s < es && strchr(WHITESPACE, *s)) - 89c: 0ba40f63 beq s0,s10,95a <_ZN6Parser10parse_pipeEPPcS0_+0x154> - 8a0: 000d4583 lbu a1,0(s10) - 8a4: 6088 ld a0,0(s1) - 8a6: 434050ef jal 5cda - 8aa: f575 bnez a0,896 <_ZN6Parser10parse_pipeEPPcS0_+0x90> + 7ea: 0ba40f63 beq s0,s10,8a8 <_ZN6Parser10parse_pipeEPPcS0_+0x154> + 7ee: 000d4583 lbu a1,0(s10) + 7f2: 6088 ld a0,0(s1) + 7f4: 4d2050ef jal 5cc6 + 7f8: f575 bnez a0,7e4 <_ZN6Parser10parse_pipeEPPcS0_+0x90> ret = *s; - 8ac: 000d4903 lbu s2,0(s10) + 7fa: 000d4903 lbu s2,0(s10) switch (*s) - 8b0: 08090f63 beqz s2,94e <_ZN6Parser10parse_pipeEPPcS0_+0x148> - 8b4: 1b990663 beq s2,s9,a60 <_ZN6Parser10parse_pipeEPPcS0_+0x25a> - 8b8: 2d2ceb63 bltu s9,s2,b8e <_ZN6Parser10parse_pipeEPPcS0_+0x388> - 8bc: 02900713 li a4,41 - 8c0: 29276663 bltu a4,s2,b4c <_ZN6Parser10parse_pipeEPPcS0_+0x346> - 8c4: 02700713 li a4,39 - 8c8: 01276663 bltu a4,s2,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> - 8cc: 02600713 li a4,38 - 8d0: 28e91563 bne s2,a4,b5a <_ZN6Parser10parse_pipeEPPcS0_+0x354> + 7fe: 08090f63 beqz s2,89c <_ZN6Parser10parse_pipeEPPcS0_+0x148> + 802: 1b990663 beq s2,s9,9ae <_ZN6Parser10parse_pipeEPPcS0_+0x25a> + 806: 2d2ceb63 bltu s9,s2,adc <_ZN6Parser10parse_pipeEPPcS0_+0x388> + 80a: 02900713 li a4,41 + 80e: 29276663 bltu a4,s2,a9a <_ZN6Parser10parse_pipeEPPcS0_+0x346> + 812: 02700713 li a4,39 + 816: 01276663 bltu a4,s2,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + 81a: 02600713 li a4,38 + 81e: 28e91563 bne s2,a4,aa8 <_ZN6Parser10parse_pipeEPPcS0_+0x354> ret = *s; - 8d4: 8c6a mv s8,s10 + 822: 8c6a mv s8,s10 s++; - 8d6: 0d05 addi s10,s10,1 + 824: 0d05 addi s10,s10,1 ret = *s; - 8d8: 2901 sext.w s2,s2 - 8da: 89a6 mv s3,s1 + 826: 2901 sext.w s2,s2 + 828: 89a6 mv s3,s1 while (s < es && strchr(WHITESPACE, *s)) - 8dc: 168d7f63 bgeu s10,s0,a5a <_ZN6Parser10parse_pipeEPPcS0_+0x254> + 82a: 168d7f63 bgeu s10,s0,9a8 <_ZN6Parser10parse_pipeEPPcS0_+0x254> ret = *s; - 8e0: 8dea mv s11,s10 - 8e2: a021 j 8ea <_ZN6Parser10parse_pipeEPPcS0_+0xe4> + 82e: 8dea mv s11,s10 + 830: a021 j 838 <_ZN6Parser10parse_pipeEPPcS0_+0xe4> s++; - 8e4: 0d85 addi s11,s11,1 + 832: 0d85 addi s11,s11,1 while (s < es && strchr(WHITESPACE, *s)) - 8e6: 008df963 bgeu s11,s0,8f8 <_ZN6Parser10parse_pipeEPPcS0_+0xf2> - 8ea: 000dc583 lbu a1,0(s11) - 8ee: 0009b503 ld a0,0(s3) - 8f2: 3e8050ef jal 5cda - 8f6: f57d bnez a0,8e4 <_ZN6Parser10parse_pipeEPPcS0_+0xde> + 834: 008df963 bgeu s11,s0,846 <_ZN6Parser10parse_pipeEPPcS0_+0xf2> + 838: 000dc583 lbu a1,0(s11) + 83c: 0009b503 ld a0,0(s3) + 840: 486050ef jal 5cc6 + 844: f57d bnez a0,832 <_ZN6Parser10parse_pipeEPPcS0_+0xde> *ps = s; - 8f8: 01ba3023 sd s11,0(s4) + 846: 01ba3023 sd s11,0(s4) if ((tok = get_token(ps, es, &q, &eq)) == 0) - 8fc: 0a090163 beqz s2,99e <_ZN6Parser10parse_pipeEPPcS0_+0x198> + 84a: 0a090163 beqz s2,8ec <_ZN6Parser10parse_pipeEPPcS0_+0x198> if (tok != 'a') - 900: 06100793 li a5,97 - 904: 00f90f63 beq s2,a5,922 <_ZN6Parser10parse_pipeEPPcS0_+0x11c> + 84e: 06100793 li a5,97 + 852: 00f90f63 beq s2,a5,870 <_ZN6Parser10parse_pipeEPPcS0_+0x11c> printf("shell panic: %s\n", s); - 908: 00005597 auipc a1,0x5 - 90c: 7a858593 addi a1,a1,1960 # 60b0 <_GLOBAL__sub_I__ZSt3cin+0xac> - 910: 00005517 auipc a0,0x5 - 914: 75850513 addi a0,a0,1880 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - 918: 7f7030ef jal 490e + 856: 00006597 auipc a1,0x6 + 85a: 83a58593 addi a1,a1,-1990 # 6090 <_GLOBAL__sub_I__ZSt3cin+0xa0> + 85e: 00005517 auipc a0,0x5 + 862: 7ea50513 addi a0,a0,2026 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 866: 094040ef jal 48fa exit(1); - 91c: 4505 li a0,1 - 91e: 305040ef jal 5422 + 86a: 4505 li a0,1 + 86c: 3a3040ef jal 540e cmd->argv[argc] = q; - 922: 018bb023 sd s8,0(s7) + 870: 018bb023 sd s8,0(s7) *eq = 0; // Temp - 926: 000d0023 sb zero,0(s10) + 874: 000d0023 sb zero,0(s10) argc++; - 92a: 2b05 addiw s6,s6,1 + 878: 2b05 addiw s6,s6,1 if (argc >= MAX_ARGS) - 92c: 47a5 li a5,9 - 92e: 0d67c463 blt a5,s6,9f6 <_ZN6Parser10parse_pipeEPPcS0_+0x1f0> + 87a: 47a5 li a5,9 + 87c: 0d67c463 blt a5,s6,944 <_ZN6Parser10parse_pipeEPPcS0_+0x1f0> ret = parse_redirs(ret, ps, es); - 932: 8556 mv a0,s5 - 934: 8622 mv a2,s0 - 936: 85d2 mv a1,s4 - 938: b95ff0ef jal 4cc <_ZN6Parser12parse_redirsEP7CommandPPcS2_> + 880: 8556 mv a0,s5 + 882: 8622 mv a2,s0 + 884: 85d2 mv a1,s4 + 886: b95ff0ef jal 41a <_ZN6Parser12parse_redirsEP7CommandPPcS2_> char *s = *ps; - 93c: 000a3d03 ld s10,0(s4) + 88a: 000a3d03 ld s10,0(s4) ret = parse_redirs(ret, ps, es); - 940: 8aaa mv s5,a0 - 942: 0ba1 addi s7,s7,8 + 88e: 8aaa mv s5,a0 + 890: 0ba1 addi s7,s7,8 while (s < es && strchr(WHITESPACE, *s)) - 944: f28d65e3 bltu s10,s0,86e <_ZN6Parser10parse_pipeEPPcS0_+0x68> + 892: f28d65e3 bltu s10,s0,7bc <_ZN6Parser10parse_pipeEPPcS0_+0x68> return *s && strchr(toks, *s); - 948: 000d4583 lbu a1,0(s10) - 94c: e1a1 bnez a1,98c <_ZN6Parser10parse_pipeEPPcS0_+0x186> + 896: 000d4583 lbu a1,0(s10) + 89a: e1a1 bnez a1,8da <_ZN6Parser10parse_pipeEPPcS0_+0x186> while (s < es && strchr(WHITESPACE, *s)) - 94e: 2a8d7863 bgeu s10,s0,bfe <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> - 952: 8c6a mv s8,s10 + 89c: 2a8d7863 bgeu s10,s0,b4c <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> + 8a0: 8c6a mv s8,s10 ret = *s; - 954: 4901 li s2,0 - 956: 89a6 mv s3,s1 - 958: b761 j 8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> + 8a2: 4901 li s2,0 + 8a4: 89a6 mv s3,s1 + 8a6: b761 j 82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> switch (*s) - 95a: 0f990463 beq s2,s9,a42 <_ZN6Parser10parse_pipeEPPcS0_+0x23c> - 95e: 0d2cea63 bltu s9,s2,a32 <_ZN6Parser10parse_pipeEPPcS0_+0x22c> - 962: 02900793 li a5,41 - 966: 1127ef63 bltu a5,s2,a84 <_ZN6Parser10parse_pipeEPPcS0_+0x27e> - 96a: 02700713 li a4,39 - 96e: f72763e3 bltu a4,s2,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> - 972: 28090663 beqz s2,bfe <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> - 976: 02600713 li a4,38 - 97a: 0ce91063 bne s2,a4,a3a <_ZN6Parser10parse_pipeEPPcS0_+0x234> + 8a8: 0f990463 beq s2,s9,990 <_ZN6Parser10parse_pipeEPPcS0_+0x23c> + 8ac: 0d2cea63 bltu s9,s2,980 <_ZN6Parser10parse_pipeEPPcS0_+0x22c> + 8b0: 02900793 li a5,41 + 8b4: 1127ef63 bltu a5,s2,9d2 <_ZN6Parser10parse_pipeEPPcS0_+0x27e> + 8b8: 02700713 li a4,39 + 8bc: f72763e3 bltu a4,s2,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + 8c0: 28090663 beqz s2,b4c <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> + 8c4: 02600713 li a4,38 + 8c8: 0ce91063 bne s2,a4,988 <_ZN6Parser10parse_pipeEPPcS0_+0x234> ret = *s; - 97e: 8c6a mv s8,s10 + 8cc: 8c6a mv s8,s10 s++; - 980: 0d05 addi s10,s10,1 + 8ce: 0d05 addi s10,s10,1 ret = *s; - 982: 2901 sext.w s2,s2 - 984: 89a6 mv s3,s1 + 8d0: 2901 sext.w s2,s2 + 8d2: 89a6 mv s3,s1 while (s < es && strchr(WHITESPACE, *s)) - 986: f48d6de3 bltu s10,s0,8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> - 98a: a8c1 j a5a <_ZN6Parser10parse_pipeEPPcS0_+0x254> + 8d4: f48d6de3 bltu s10,s0,82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> + 8d8: a8c1 j 9a8 <_ZN6Parser10parse_pipeEPPcS0_+0x254> return *s && strchr(toks, *s); - 98c: 00005517 auipc a0,0x5 - 990: 73c50513 addi a0,a0,1852 # 60c8 <_GLOBAL__sub_I__ZSt3cin+0xc4> - 994: 346050ef jal 5cda - 998: cd2d beqz a0,a12 <_ZN6Parser10parse_pipeEPPcS0_+0x20c> + 8da: 00005517 auipc a0,0x5 + 8de: 7ce50513 addi a0,a0,1998 # 60a8 <_GLOBAL__sub_I__ZSt3cin+0xb8> + 8e2: 3e4050ef jal 5cc6 + 8e6: cd2d beqz a0,960 <_ZN6Parser10parse_pipeEPPcS0_+0x20c> char *s = *ps; - 99a: 000a3d83 ld s11,0(s4) + 8e8: 000a3d83 ld s11,0(s4) cmd->argv[argc] = 0; - 99e: 67a2 ld a5,8(sp) - 9a0: 0b0e slli s6,s6,0x3 - 9a2: 97da add a5,a5,s6 - 9a4: 0007b423 sd zero,8(a5) + 8ec: 67a2 ld a5,8(sp) + 8ee: 0b0e slli s6,s6,0x3 + 8f0: 97da add a5,a5,s6 + 8f2: 0007b423 sd zero,8(a5) while (s < es && strchr(WHITESPACE, *s)) - 9a8: 028df163 bgeu s11,s0,9ca <_ZN6Parser10parse_pipeEPPcS0_+0x1c4> - 9ac: 00007997 auipc s3,0x7 - 9b0: 52c98993 addi s3,s3,1324 # 7ed8 - 9b4: a021 j 9bc <_ZN6Parser10parse_pipeEPPcS0_+0x1b6> + 8f6: 028df163 bgeu s11,s0,918 <_ZN6Parser10parse_pipeEPPcS0_+0x1c4> + 8fa: 00007997 auipc s3,0x7 + 8fe: 60e98993 addi s3,s3,1550 # 7f08 + 902: a021 j 90a <_ZN6Parser10parse_pipeEPPcS0_+0x1b6> s++; - 9b6: 0d85 addi s11,s11,1 + 904: 0d85 addi s11,s11,1 while (s < es && strchr(WHITESPACE, *s)) - 9b8: 01b40963 beq s0,s11,9ca <_ZN6Parser10parse_pipeEPPcS0_+0x1c4> - 9bc: 000dc583 lbu a1,0(s11) - 9c0: 0009b503 ld a0,0(s3) - 9c4: 316050ef jal 5cda - 9c8: f57d bnez a0,9b6 <_ZN6Parser10parse_pipeEPPcS0_+0x1b0> + 906: 01b40963 beq s0,s11,918 <_ZN6Parser10parse_pipeEPPcS0_+0x1c4> + 90a: 000dc583 lbu a1,0(s11) + 90e: 0009b503 ld a0,0(s3) + 912: 3b4050ef jal 5cc6 + 916: f57d bnez a0,904 <_ZN6Parser10parse_pipeEPPcS0_+0x1b0> *ps = s; - 9ca: 01ba3023 sd s11,0(s4) + 918: 01ba3023 sd s11,0(s4) return *s && strchr(toks, *s); - 9ce: 000dc583 lbu a1,0(s11) - 9d2: e5f9 bnez a1,aa0 <_ZN6Parser10parse_pipeEPPcS0_+0x29a> + 91c: 000dc583 lbu a1,0(s11) + 920: e5f9 bnez a1,9ee <_ZN6Parser10parse_pipeEPPcS0_+0x29a> Command *cmd = parse_exec(ps, es); - 9d4: 8456 mv s0,s5 + 922: 8456 mv s0,s5 } - 9d6: 70e6 ld ra,120(sp) - 9d8: 8522 mv a0,s0 - 9da: 7446 ld s0,112(sp) - 9dc: 74a6 ld s1,104(sp) - 9de: 7906 ld s2,96(sp) - 9e0: 69e6 ld s3,88(sp) - 9e2: 6a46 ld s4,80(sp) - 9e4: 6aa6 ld s5,72(sp) - 9e6: 6b06 ld s6,64(sp) - 9e8: 7be2 ld s7,56(sp) - 9ea: 7c42 ld s8,48(sp) - 9ec: 7ca2 ld s9,40(sp) - 9ee: 7d02 ld s10,32(sp) - 9f0: 6de2 ld s11,24(sp) - 9f2: 6109 addi sp,sp,128 - 9f4: 8082 ret + 924: 70e6 ld ra,120(sp) + 926: 8522 mv a0,s0 + 928: 7446 ld s0,112(sp) + 92a: 74a6 ld s1,104(sp) + 92c: 7906 ld s2,96(sp) + 92e: 69e6 ld s3,88(sp) + 930: 6a46 ld s4,80(sp) + 932: 6aa6 ld s5,72(sp) + 934: 6b06 ld s6,64(sp) + 936: 7be2 ld s7,56(sp) + 938: 7c42 ld s8,48(sp) + 93a: 7ca2 ld s9,40(sp) + 93c: 7d02 ld s10,32(sp) + 93e: 6de2 ld s11,24(sp) + 940: 6109 addi sp,sp,128 + 942: 8082 ret printf("shell panic: %s\n", s); - 9f6: 00005597 auipc a1,0x5 - 9fa: 6c258593 addi a1,a1,1730 # 60b8 <_GLOBAL__sub_I__ZSt3cin+0xb4> - 9fe: 00005517 auipc a0,0x5 - a02: 66a50513 addi a0,a0,1642 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - a06: 709030ef jal 490e + 944: 00005597 auipc a1,0x5 + 948: 75458593 addi a1,a1,1876 # 6098 <_GLOBAL__sub_I__ZSt3cin+0xa8> + 94c: 00005517 auipc a0,0x5 + 950: 6fc50513 addi a0,a0,1788 # 6048 <_GLOBAL__sub_I__ZSt3cin+0x58> + 954: 7a7030ef jal 48fa exit(1); - a0a: 4505 li a0,1 - a0c: 217040ef jal 5422 + 958: 4505 li a0,1 + 95a: 2b5040ef jal 540e } - a10: b70d j 932 <_ZN6Parser10parse_pipeEPPcS0_+0x12c> + 95e: b70d j 880 <_ZN6Parser10parse_pipeEPPcS0_+0x12c> char *s = *ps; - a12: 000a3d03 ld s10,0(s4) - a16: 89a6 mv s3,s1 + 960: 000a3d03 ld s10,0(s4) + 964: 89a6 mv s3,s1 ret = *s; - a18: 000d4903 lbu s2,0(s10) + 966: 000d4903 lbu s2,0(s10) while (s < es && strchr(WHITESPACE, *s)) - a1c: e88d62e3 bltu s10,s0,8a0 <_ZN6Parser10parse_pipeEPPcS0_+0x9a> + 96a: e88d62e3 bltu s10,s0,7ee <_ZN6Parser10parse_pipeEPPcS0_+0x9a> switch (*s) - a20: 03c00713 li a4,60 - a24: 1f277163 bgeu a4,s2,c06 <_ZN6Parser10parse_pipeEPPcS0_+0x400> - a28: 03e00713 li a4,62 - a2c: 8c6a mv s8,s10 - a2e: 00e90b63 beq s2,a4,a44 <_ZN6Parser10parse_pipeEPPcS0_+0x23e> - a32: 07c00713 li a4,124 - a36: e8e90fe3 beq s2,a4,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + 96e: 03c00713 li a4,60 + 972: 1f277163 bgeu a4,s2,b54 <_ZN6Parser10parse_pipeEPPcS0_+0x400> + 976: 03e00713 li a4,62 + 97a: 8c6a mv s8,s10 + 97c: 00e90b63 beq s2,a4,992 <_ZN6Parser10parse_pipeEPPcS0_+0x23e> + 980: 07c00713 li a4,124 + 984: e8e90fe3 beq s2,a4,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> *ps = s; - a3a: 01aa3023 sd s10,0(s4) - a3e: 8c6a mv s8,s10 - a40: b5cd j 922 <_ZN6Parser10parse_pipeEPPcS0_+0x11c> + 988: 01aa3023 sd s10,0(s4) + 98c: 8c6a mv s8,s10 + 98e: b5cd j 870 <_ZN6Parser10parse_pipeEPPcS0_+0x11c> switch (*s) - a42: 8c22 mv s8,s0 + 990: 8c22 mv s8,s0 if (*s == '>') - a44: 001c4783 lbu a5,1(s8) - a48: 03978163 beq a5,s9,a6a <_ZN6Parser10parse_pipeEPPcS0_+0x264> + 992: 001c4783 lbu a5,1(s8) + 996: 03978163 beq a5,s9,9b8 <_ZN6Parser10parse_pipeEPPcS0_+0x264> s++; - a4c: 001c0d13 addi s10,s8,1 + 99a: 001c0d13 addi s10,s8,1 ret = *s; - a50: 03e00913 li s2,62 - a54: 89a6 mv s3,s1 + 99e: 03e00913 li s2,62 + 9a2: 89a6 mv s3,s1 while (s < es && strchr(WHITESPACE, *s)) - a56: e88d65e3 bltu s10,s0,8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> + 9a4: e88d65e3 bltu s10,s0,82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> *ps = s; - a5a: 01aa3023 sd s10,0(s4) + 9a8: 01aa3023 sd s10,0(s4) if (tok != 'a') - a5e: b56d j 908 <_ZN6Parser10parse_pipeEPPcS0_+0x102> + 9ac: b56d j 856 <_ZN6Parser10parse_pipeEPPcS0_+0x102> switch (*s) - a60: 8c6a mv s8,s10 + 9ae: 8c6a mv s8,s10 if (*s == '>') - a62: 001c4783 lbu a5,1(s8) - a66: ff9793e3 bne a5,s9,a4c <_ZN6Parser10parse_pipeEPPcS0_+0x246> + 9b0: 001c4783 lbu a5,1(s8) + 9b4: ff9793e3 bne a5,s9,99a <_ZN6Parser10parse_pipeEPPcS0_+0x246> s++; - a6a: 002c0d13 addi s10,s8,2 + 9b8: 002c0d13 addi s10,s8,2 ret = '+'; - a6e: 02b00913 li s2,43 - a72: 00007997 auipc s3,0x7 - a76: 46698993 addi s3,s3,1126 # 7ed8 + 9bc: 02b00913 li s2,43 + 9c0: 00007997 auipc s3,0x7 + 9c4: 54898993 addi s3,s3,1352 # 7f08 while (s < es && strchr(WHITESPACE, *s)) - a7a: e68d63e3 bltu s10,s0,8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> + 9c8: e68d63e3 bltu s10,s0,82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> *ps = s; - a7e: 01aa3023 sd s10,0(s4) + 9cc: 01aa3023 sd s10,0(s4) if (tok != 'a') - a82: b559 j 908 <_ZN6Parser10parse_pipeEPPcS0_+0x102> + 9d0: b559 j 856 <_ZN6Parser10parse_pipeEPPcS0_+0x102> switch (*s) - a84: fc59071b addiw a4,s2,-59 - a88: 0ff77713 zext.b a4,a4 - a8c: 4685 li a3,1 - a8e: fae6e6e3 bltu a3,a4,a3a <_ZN6Parser10parse_pipeEPPcS0_+0x234> + 9d2: fc59071b addiw a4,s2,-59 + 9d6: 0ff77713 zext.b a4,a4 + 9da: 4685 li a3,1 + 9dc: fae6e6e3 bltu a3,a4,988 <_ZN6Parser10parse_pipeEPPcS0_+0x234> ret = *s; - a92: 8c6a mv s8,s10 + 9e0: 8c6a mv s8,s10 s++; - a94: 0d05 addi s10,s10,1 + 9e2: 0d05 addi s10,s10,1 ret = *s; - a96: 2901 sext.w s2,s2 - a98: 89a6 mv s3,s1 + 9e4: 2901 sext.w s2,s2 + 9e6: 89a6 mv s3,s1 while (s < es && strchr(WHITESPACE, *s)) - a9a: e48d63e3 bltu s10,s0,8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> - a9e: bf75 j a5a <_ZN6Parser10parse_pipeEPPcS0_+0x254> + 9e8: e48d63e3 bltu s10,s0,82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> + 9ec: bf75 j 9a8 <_ZN6Parser10parse_pipeEPPcS0_+0x254> return *s && strchr(toks, *s); - aa0: 00005517 auipc a0,0x5 - aa4: 63050513 addi a0,a0,1584 # 60d0 <_GLOBAL__sub_I__ZSt3cin+0xcc> - aa8: 232050ef jal 5cda - aac: d505 beqz a0,9d4 <_ZN6Parser10parse_pipeEPPcS0_+0x1ce> + 9ee: 00005517 auipc a0,0x5 + 9f2: 6c250513 addi a0,a0,1730 # 60b0 <_GLOBAL__sub_I__ZSt3cin+0xc0> + 9f6: 2d0050ef jal 5cc6 + 9fa: d505 beqz a0,922 <_ZN6Parser10parse_pipeEPPcS0_+0x1ce> s = *ps; - aae: 000a3483 ld s1,0(s4) + 9fc: 000a3483 ld s1,0(s4) while (s < es && strchr(WHITESPACE, *s)) - ab2: 0284f163 bgeu s1,s0,ad4 <_ZN6Parser10parse_pipeEPPcS0_+0x2ce> - ab6: 00007997 auipc s3,0x7 - aba: 42298993 addi s3,s3,1058 # 7ed8 - abe: a021 j ac6 <_ZN6Parser10parse_pipeEPPcS0_+0x2c0> + a00: 0284f163 bgeu s1,s0,a22 <_ZN6Parser10parse_pipeEPPcS0_+0x2ce> + a04: 00007997 auipc s3,0x7 + a08: 50498993 addi s3,s3,1284 # 7f08 + a0c: a021 j a14 <_ZN6Parser10parse_pipeEPPcS0_+0x2c0> s++; - ac0: 0485 addi s1,s1,1 + a0e: 0485 addi s1,s1,1 while (s < es && strchr(WHITESPACE, *s)) - ac2: 00940963 beq s0,s1,ad4 <_ZN6Parser10parse_pipeEPPcS0_+0x2ce> - ac6: 0004c583 lbu a1,0(s1) - aca: 0009b503 ld a0,0(s3) - ace: 20c050ef jal 5cda - ad2: f57d bnez a0,ac0 <_ZN6Parser10parse_pipeEPPcS0_+0x2ba> + a10: 00940963 beq s0,s1,a22 <_ZN6Parser10parse_pipeEPPcS0_+0x2ce> + a14: 0004c583 lbu a1,0(s1) + a18: 0009b503 ld a0,0(s3) + a1c: 2aa050ef jal 5cc6 + a20: f57d bnez a0,a0e <_ZN6Parser10parse_pipeEPPcS0_+0x2ba> ret = *s; - ad4: 0004c783 lbu a5,0(s1) + a22: 0004c783 lbu a5,0(s1) switch (*s) - ad8: 03c00713 li a4,60 - adc: 0cf76963 bltu a4,a5,bae <_ZN6Parser10parse_pipeEPPcS0_+0x3a8> - ae0: 03a00713 li a4,58 - ae4: 00f76e63 bltu a4,a5,b00 <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> - ae8: cf89 beqz a5,b02 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> - aea: 02600713 li a4,38 - aee: 00e78963 beq a5,a4,b00 <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> - af2: fd87879b addiw a5,a5,-40 - af6: 0ff7f793 zext.b a5,a5 - afa: 4705 li a4,1 - afc: 0cf76763 bltu a4,a5,bca <_ZN6Parser10parse_pipeEPPcS0_+0x3c4> + a26: 03c00713 li a4,60 + a2a: 0cf76963 bltu a4,a5,afc <_ZN6Parser10parse_pipeEPPcS0_+0x3a8> + a2e: 03a00713 li a4,58 + a32: 00f76e63 bltu a4,a5,a4e <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> + a36: cf89 beqz a5,a50 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> + a38: 02600713 li a4,38 + a3c: 00e78963 beq a5,a4,a4e <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> + a40: fd87879b addiw a5,a5,-40 + a44: 0ff7f793 zext.b a5,a5 + a48: 4705 li a4,1 + a4a: 0cf76763 bltu a4,a5,b18 <_ZN6Parser10parse_pipeEPPcS0_+0x3c4> s++; - b00: 0485 addi s1,s1,1 + a4e: 0485 addi s1,s1,1 while (s < es && strchr(WHITESPACE, *s)) - b02: 00007997 auipc s3,0x7 - b06: 3d698993 addi s3,s3,982 # 7ed8 - b0a: 0084e663 bltu s1,s0,b16 <_ZN6Parser10parse_pipeEPPcS0_+0x310> - b0e: a819 j b24 <_ZN6Parser10parse_pipeEPPcS0_+0x31e> + a50: 00007997 auipc s3,0x7 + a54: 4b898993 addi s3,s3,1208 # 7f08 + a58: 0084e663 bltu s1,s0,a64 <_ZN6Parser10parse_pipeEPPcS0_+0x310> + a5c: a819 j a72 <_ZN6Parser10parse_pipeEPPcS0_+0x31e> s++; - b10: 0485 addi s1,s1,1 + a5e: 0485 addi s1,s1,1 while (s < es && strchr(WHITESPACE, *s)) - b12: 0e940463 beq s0,s1,bfa <_ZN6Parser10parse_pipeEPPcS0_+0x3f4> - b16: 0004c583 lbu a1,0(s1) - b1a: 0009b503 ld a0,0(s3) - b1e: 1bc050ef jal 5cda - b22: f57d bnez a0,b10 <_ZN6Parser10parse_pipeEPPcS0_+0x30a> + a60: 0e940463 beq s0,s1,b48 <_ZN6Parser10parse_pipeEPPcS0_+0x3f4> + a64: 0004c583 lbu a1,0(s1) + a68: 0009b503 ld a0,0(s3) + a6c: 25a050ef jal 5cc6 + a70: f57d bnez a0,a5e <_ZN6Parser10parse_pipeEPPcS0_+0x30a> *ps = s; - b24: 009a3023 sd s1,0(s4) + a72: 009a3023 sd s1,0(s4) cmd = new PipeCommand(cmd, parse_pipe(ps, es)); - b28: 4561 li a0,24 - b2a: 4c2050ef jal 5fec <_Znwm> - b2e: 87aa mv a5,a0 - b30: 85a2 mv a1,s0 - b32: 8552 mv a0,s4 - b34: 843e mv s0,a5 - b36: cd1ff0ef jal 806 <_ZN6Parser10parse_pipeEPPcS0_> + a76: 4561 li a0,24 + a78: 560050ef jal 5fd8 <_Znwm> + a7c: 87aa mv a5,a0 + a7e: 85a2 mv a1,s0 + a80: 8552 mv a0,s4 + a82: 843e mv s0,a5 + a84: cd1ff0ef jal 754 <_ZN6Parser10parse_pipeEPPcS0_> PipeCommand(Command *l, Command *r) : left(l), right(r) {} - b3a: 00007797 auipc a5,0x7 - b3e: 33678793 addi a5,a5,822 # 7e70 <_ZTV11PipeCommand+0x10> - b42: e01c sd a5,0(s0) - b44: 01543423 sd s5,8(s0) - b48: e808 sd a0,16(s0) - b4a: b571 j 9d6 <_ZN6Parser10parse_pipeEPPcS0_+0x1d0> + a88: 00007797 auipc a5,0x7 + a8c: 41878793 addi a5,a5,1048 # 7ea0 <_ZTV11PipeCommand+0x10> + a90: e01c sd a5,0(s0) + a92: 01543423 sd s5,8(s0) + a96: e808 sd a0,16(s0) + a98: b571 j 924 <_ZN6Parser10parse_pipeEPPcS0_+0x1d0> switch (*s) - b4c: fc59071b addiw a4,s2,-59 - b50: 0ff77713 zext.b a4,a4 - b54: 4685 li a3,1 - b56: d6e6ffe3 bgeu a3,a4,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + a9a: fc59071b addiw a4,s2,-59 + a9e: 0ff77713 zext.b a4,a4 + aa2: 4685 li a3,1 + aa4: d6e6ffe3 bgeu a3,a4,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - b5a: ee8d70e3 bgeu s10,s0,a3a <_ZN6Parser10parse_pipeEPPcS0_+0x234> - b5e: 8dea mv s11,s10 - b60: a811 j b74 <_ZN6Parser10parse_pipeEPPcS0_+0x36e> - b62: 000dc583 lbu a1,0(s11) - b66: 6488 ld a0,8(s1) - b68: 172050ef jal 5cda - b6c: e911 bnez a0,b80 <_ZN6Parser10parse_pipeEPPcS0_+0x37a> + aa8: ee8d70e3 bgeu s10,s0,988 <_ZN6Parser10parse_pipeEPPcS0_+0x234> + aac: 8dea mv s11,s10 + aae: a811 j ac2 <_ZN6Parser10parse_pipeEPPcS0_+0x36e> + ab0: 000dc583 lbu a1,0(s11) + ab4: 6488 ld a0,8(s1) + ab6: 210050ef jal 5cc6 + aba: e911 bnez a0,ace <_ZN6Parser10parse_pipeEPPcS0_+0x37a> s++; - b6e: 0d85 addi s11,s11,1 + abc: 0d85 addi s11,s11,1 while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - b70: 03b40a63 beq s0,s11,ba4 <_ZN6Parser10parse_pipeEPPcS0_+0x39e> - b74: 000dc583 lbu a1,0(s11) - b78: 6088 ld a0,0(s1) - b7a: 160050ef jal 5cda - b7e: d175 beqz a0,b62 <_ZN6Parser10parse_pipeEPPcS0_+0x35c> + abe: 03b40a63 beq s0,s11,af2 <_ZN6Parser10parse_pipeEPPcS0_+0x39e> + ac2: 000dc583 lbu a1,0(s11) + ac6: 6088 ld a0,0(s1) + ac8: 1fe050ef jal 5cc6 + acc: d175 beqz a0,ab0 <_ZN6Parser10parse_pipeEPPcS0_+0x35c> while (s < es && strchr(WHITESPACE, *s)) - b80: 8c6a mv s8,s10 - b82: 0a8df463 bgeu s11,s0,c2a <_ZN6Parser10parse_pipeEPPcS0_+0x424> - b86: 06100913 li s2,97 - b8a: 8d6e mv s10,s11 - b8c: bb91 j 8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> + ace: 8c6a mv s8,s10 + ad0: 0a8df463 bgeu s11,s0,b78 <_ZN6Parser10parse_pipeEPPcS0_+0x424> + ad4: 06100913 li s2,97 + ad8: 8d6e mv s10,s11 + ada: bb91 j 82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> switch (*s) - b8e: 07c00713 li a4,124 - b92: fce914e3 bne s2,a4,b5a <_ZN6Parser10parse_pipeEPPcS0_+0x354> + adc: 07c00713 li a4,124 + ae0: fce914e3 bne s2,a4,aa8 <_ZN6Parser10parse_pipeEPPcS0_+0x354> ret = *s; - b96: 8c6a mv s8,s10 + ae4: 8c6a mv s8,s10 s++; - b98: 0d05 addi s10,s10,1 + ae6: 0d05 addi s10,s10,1 ret = *s; - b9a: 2901 sext.w s2,s2 - b9c: 89a6 mv s3,s1 + ae8: 2901 sext.w s2,s2 + aea: 89a6 mv s3,s1 while (s < es && strchr(WHITESPACE, *s)) - b9e: d48d61e3 bltu s10,s0,8e0 <_ZN6Parser10parse_pipeEPPcS0_+0xda> - ba2: bd65 j a5a <_ZN6Parser10parse_pipeEPPcS0_+0x254> + aec: d48d61e3 bltu s10,s0,82e <_ZN6Parser10parse_pipeEPPcS0_+0xda> + af0: bd65 j 9a8 <_ZN6Parser10parse_pipeEPPcS0_+0x254> *ps = s; - ba4: 8c6a mv s8,s10 - ba6: 008a3023 sd s0,0(s4) - baa: 8d22 mv s10,s0 - bac: bb9d j 922 <_ZN6Parser10parse_pipeEPPcS0_+0x11c> + af2: 8c6a mv s8,s10 + af4: 008a3023 sd s0,0(s4) + af8: 8d22 mv s10,s0 + afa: bb9d j 870 <_ZN6Parser10parse_pipeEPPcS0_+0x11c> switch (*s) - bae: 03e00713 li a4,62 - bb2: 00e79863 bne a5,a4,bc2 <_ZN6Parser10parse_pipeEPPcS0_+0x3bc> + afc: 03e00713 li a4,62 + b00: 00e79863 bne a5,a4,b10 <_ZN6Parser10parse_pipeEPPcS0_+0x3bc> if (*s == '>') - bb6: 0014c703 lbu a4,1(s1) - bba: f4f713e3 bne a4,a5,b00 <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> + b04: 0014c703 lbu a4,1(s1) + b08: f4f713e3 bne a4,a5,a4e <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> s++; - bbe: 0489 addi s1,s1,2 - bc0: b789 j b02 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> + b0c: 0489 addi s1,s1,2 + b0e: b789 j a50 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> switch (*s) - bc2: 07c00713 li a4,124 - bc6: f2e78de3 beq a5,a4,b00 <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> + b10: 07c00713 li a4,124 + b14: f2e78de3 beq a5,a4,a4e <_ZN6Parser10parse_pipeEPPcS0_+0x2fa> while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - bca: f484fde3 bgeu s1,s0,b24 <_ZN6Parser10parse_pipeEPPcS0_+0x31e> - bce: 00007997 auipc s3,0x7 - bd2: 30a98993 addi s3,s3,778 # 7ed8 - bd6: 0004c583 lbu a1,0(s1) - bda: 0009b503 ld a0,0(s3) - bde: 0fc050ef jal 5cda - be2: f105 bnez a0,b02 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> - be4: 0004c583 lbu a1,0(s1) - be8: 0089b503 ld a0,8(s3) - bec: 0ee050ef jal 5cda - bf0: f00519e3 bnez a0,b02 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> + b18: f484fde3 bgeu s1,s0,a72 <_ZN6Parser10parse_pipeEPPcS0_+0x31e> + b1c: 00007997 auipc s3,0x7 + b20: 3ec98993 addi s3,s3,1004 # 7f08 + b24: 0004c583 lbu a1,0(s1) + b28: 0009b503 ld a0,0(s3) + b2c: 19a050ef jal 5cc6 + b30: f105 bnez a0,a50 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> + b32: 0004c583 lbu a1,0(s1) + b36: 0089b503 ld a0,8(s3) + b3a: 18c050ef jal 5cc6 + b3e: f00519e3 bnez a0,a50 <_ZN6Parser10parse_pipeEPPcS0_+0x2fc> s++; - bf4: 0485 addi s1,s1,1 + b42: 0485 addi s1,s1,1 while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - bf6: fe9410e3 bne s0,s1,bd6 <_ZN6Parser10parse_pipeEPPcS0_+0x3d0> - bfa: 84a2 mv s1,s0 - bfc: b725 j b24 <_ZN6Parser10parse_pipeEPPcS0_+0x31e> + b44: fe9410e3 bne s0,s1,b24 <_ZN6Parser10parse_pipeEPPcS0_+0x3d0> + b48: 84a2 mv s1,s0 + b4a: b725 j a72 <_ZN6Parser10parse_pipeEPPcS0_+0x31e> *ps = s; - bfe: 01aa3023 sd s10,0(s4) - c02: 8dea mv s11,s10 - c04: bb69 j 99e <_ZN6Parser10parse_pipeEPPcS0_+0x198> + b4c: 01aa3023 sd s10,0(s4) + b50: 8dea mv s11,s10 + b52: bb69 j 8ec <_ZN6Parser10parse_pipeEPPcS0_+0x198> switch (*s) - c06: 03a00713 li a4,58 - c0a: cd2765e3 bltu a4,s2,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> - c0e: fe0908e3 beqz s2,bfe <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> - c12: 02600713 li a4,38 - c16: cae90fe3 beq s2,a4,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> - c1a: fd89071b addiw a4,s2,-40 - c1e: 0ff77713 zext.b a4,a4 - c22: 4685 li a3,1 - c24: cae6f8e3 bgeu a3,a4,8d4 <_ZN6Parser10parse_pipeEPPcS0_+0xce> - c28: bd09 j a3a <_ZN6Parser10parse_pipeEPPcS0_+0x234> + b54: 03a00713 li a4,58 + b58: cd2765e3 bltu a4,s2,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + b5c: fe0908e3 beqz s2,b4c <_ZN6Parser10parse_pipeEPPcS0_+0x3f8> + b60: 02600713 li a4,38 + b64: cae90fe3 beq s2,a4,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + b68: fd89071b addiw a4,s2,-40 + b6c: 0ff77713 zext.b a4,a4 + b70: 4685 li a3,1 + b72: cae6f8e3 bgeu a3,a4,822 <_ZN6Parser10parse_pipeEPPcS0_+0xce> + b76: bd09 j 988 <_ZN6Parser10parse_pipeEPPcS0_+0x234> *ps = s; - c2a: 01ba3023 sd s11,0(s4) - c2e: 8d6e mv s10,s11 - c30: 06100913 li s2,97 - c34: b1f1 j 900 <_ZN6Parser10parse_pipeEPPcS0_+0xfa> + b78: 01ba3023 sd s11,0(s4) + b7c: 8d6e mv s10,s11 + b7e: 06100913 li s2,97 + b82: b1f1 j 84e <_ZN6Parser10parse_pipeEPPcS0_+0xfa> -0000000000000c36 <_ZN6Parser10parse_lineEPPcS0_>: +0000000000000b84 <_ZN6Parser10parse_lineEPPcS0_>: static Command *parse_line(char **ps, char *es) - c36: 7159 addi sp,sp,-112 - c38: eca6 sd s1,88(sp) - c3a: e8ca sd s2,80(sp) - c3c: e4ce sd s3,72(sp) - c3e: e0d2 sd s4,64(sp) - c40: fc56 sd s5,56(sp) - c42: f85a sd s6,48(sp) - c44: f45e sd s7,40(sp) - c46: f062 sd s8,32(sp) - c48: ec66 sd s9,24(sp) - c4a: e86a sd s10,16(sp) - c4c: e46e sd s11,8(sp) - c4e: f486 sd ra,104(sp) - c50: f0a2 sd s0,96(sp) - c52: 89aa mv s3,a0 - c54: 84ae mv s1,a1 + b84: 7159 addi sp,sp,-112 + b86: eca6 sd s1,88(sp) + b88: e8ca sd s2,80(sp) + b8a: e4ce sd s3,72(sp) + b8c: e0d2 sd s4,64(sp) + b8e: fc56 sd s5,56(sp) + b90: f85a sd s6,48(sp) + b92: f45e sd s7,40(sp) + b94: f062 sd s8,32(sp) + b96: ec66 sd s9,24(sp) + b98: e86a sd s10,16(sp) + b9a: e46e sd s11,8(sp) + b9c: f486 sd ra,104(sp) + b9e: f0a2 sd s0,96(sp) + ba0: 89aa mv s3,a0 + ba2: 84ae mv s1,a1 Command *cmd = parse_pipe(ps, es); - c56: bb1ff0ef jal 806 <_ZN6Parser10parse_pipeEPPcS0_> - c5a: 8a2a mv s4,a0 + ba4: bb1ff0ef jal 754 <_ZN6Parser10parse_pipeEPPcS0_> + ba8: 8a2a mv s4,a0 while (peek(ps, es, "&")) - c5c: 00007917 auipc s2,0x7 - c60: 27c90913 addi s2,s2,636 # 7ed8 + baa: 00007917 auipc s2,0x7 + bae: 35e90913 addi s2,s2,862 # 7f08 return *s && strchr(toks, *s); - c64: 00005c97 auipc s9,0x5 - c68: 474c8c93 addi s9,s9,1140 # 60d8 <_GLOBAL__sub_I__ZSt3cin+0xd4> + bb2: 00005c97 auipc s9,0x5 + bb6: 506c8c93 addi s9,s9,1286 # 60b8 <_GLOBAL__sub_I__ZSt3cin+0xc8> switch (*s) - c6c: 03c00b13 li s6,60 - c70: 03e00b93 li s7,62 - c74: 07c00d93 li s11,124 - c78: 03a00c13 li s8,58 - c7c: 02600d13 li s10,38 + bba: 03c00b13 li s6,60 + bbe: 03e00b93 li s7,62 + bc2: 07c00d93 li s11,124 + bc6: 03a00c13 li s8,58 + bca: 02600d13 li s10,38 BackCommand(Command *c) : sub_cmd(c) {} - c80: 00007a97 auipc s5,0x7 - c84: 240a8a93 addi s5,s5,576 # 7ec0 <_ZTV11BackCommand+0x10> + bce: 00007a97 auipc s5,0x7 + bd2: 322a8a93 addi s5,s5,802 # 7ef0 <_ZTV11BackCommand+0x10> char *s = *ps; - c88: 0009b403 ld s0,0(s3) + bd6: 0009b403 ld s0,0(s3) while (s < es && strchr(WHITESPACE, *s)) - c8c: 00946663 bltu s0,s1,c98 <_ZN6Parser10parse_lineEPPcS0_+0x62> - c90: a819 j ca6 <_ZN6Parser10parse_lineEPPcS0_+0x70> + bda: 00946663 bltu s0,s1,be6 <_ZN6Parser10parse_lineEPPcS0_+0x62> + bde: a819 j bf4 <_ZN6Parser10parse_lineEPPcS0_+0x70> s++; - c92: 0405 addi s0,s0,1 + be0: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - c94: 00848963 beq s1,s0,ca6 <_ZN6Parser10parse_lineEPPcS0_+0x70> - c98: 00044583 lbu a1,0(s0) - c9c: 00093503 ld a0,0(s2) - ca0: 03a050ef jal 5cda - ca4: f57d bnez a0,c92 <_ZN6Parser10parse_lineEPPcS0_+0x5c> + be2: 00848963 beq s1,s0,bf4 <_ZN6Parser10parse_lineEPPcS0_+0x70> + be6: 00044583 lbu a1,0(s0) + bea: 00093503 ld a0,0(s2) + bee: 0d8050ef jal 5cc6 + bf2: f57d bnez a0,be0 <_ZN6Parser10parse_lineEPPcS0_+0x5c> *ps = s; - ca6: 0089b023 sd s0,0(s3) + bf4: 0089b023 sd s0,0(s3) return *s && strchr(toks, *s); - caa: 00044583 lbu a1,0(s0) - cae: e9a9 bnez a1,d00 <_ZN6Parser10parse_lineEPPcS0_+0xca> + bf8: 00044583 lbu a1,0(s0) + bfc: e9a9 bnez a1,c4e <_ZN6Parser10parse_lineEPPcS0_+0xca> while (s < es && strchr(WHITESPACE, *s)) - cb0: 02947163 bgeu s0,s1,cd2 <_ZN6Parser10parse_lineEPPcS0_+0x9c> - cb4: 00007917 auipc s2,0x7 - cb8: 22490913 addi s2,s2,548 # 7ed8 - cbc: a021 j cc4 <_ZN6Parser10parse_lineEPPcS0_+0x8e> + bfe: 02947163 bgeu s0,s1,c20 <_ZN6Parser10parse_lineEPPcS0_+0x9c> + c02: 00007917 auipc s2,0x7 + c06: 30690913 addi s2,s2,774 # 7f08 + c0a: a021 j c12 <_ZN6Parser10parse_lineEPPcS0_+0x8e> s++; - cbe: 0405 addi s0,s0,1 + c0c: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - cc0: 00848963 beq s1,s0,cd2 <_ZN6Parser10parse_lineEPPcS0_+0x9c> - cc4: 00044583 lbu a1,0(s0) - cc8: 00093503 ld a0,0(s2) - ccc: 00e050ef jal 5cda - cd0: f57d bnez a0,cbe <_ZN6Parser10parse_lineEPPcS0_+0x88> + c0e: 00848963 beq s1,s0,c20 <_ZN6Parser10parse_lineEPPcS0_+0x9c> + c12: 00044583 lbu a1,0(s0) + c16: 00093503 ld a0,0(s2) + c1a: 0ac050ef jal 5cc6 + c1e: f57d bnez a0,c0c <_ZN6Parser10parse_lineEPPcS0_+0x88> *ps = s; - cd2: 0089b023 sd s0,0(s3) + c20: 0089b023 sd s0,0(s3) return *s && strchr(toks, *s); - cd6: 00044583 lbu a1,0(s0) - cda: 0e059a63 bnez a1,dce <_ZN6Parser10parse_lineEPPcS0_+0x198> - cde: 8452 mv s0,s4 + c24: 00044583 lbu a1,0(s0) + c28: 0e059a63 bnez a1,d1c <_ZN6Parser10parse_lineEPPcS0_+0x198> + c2c: 8452 mv s0,s4 } - ce0: 70a6 ld ra,104(sp) - ce2: 8522 mv a0,s0 - ce4: 7406 ld s0,96(sp) - ce6: 64e6 ld s1,88(sp) - ce8: 6946 ld s2,80(sp) - cea: 69a6 ld s3,72(sp) - cec: 6a06 ld s4,64(sp) - cee: 7ae2 ld s5,56(sp) - cf0: 7b42 ld s6,48(sp) - cf2: 7ba2 ld s7,40(sp) - cf4: 7c02 ld s8,32(sp) - cf6: 6ce2 ld s9,24(sp) - cf8: 6d42 ld s10,16(sp) - cfa: 6da2 ld s11,8(sp) - cfc: 6165 addi sp,sp,112 - cfe: 8082 ret + c2e: 70a6 ld ra,104(sp) + c30: 8522 mv a0,s0 + c32: 7406 ld s0,96(sp) + c34: 64e6 ld s1,88(sp) + c36: 6946 ld s2,80(sp) + c38: 69a6 ld s3,72(sp) + c3a: 6a06 ld s4,64(sp) + c3c: 7ae2 ld s5,56(sp) + c3e: 7b42 ld s6,48(sp) + c40: 7ba2 ld s7,40(sp) + c42: 7c02 ld s8,32(sp) + c44: 6ce2 ld s9,24(sp) + c46: 6d42 ld s10,16(sp) + c48: 6da2 ld s11,8(sp) + c4a: 6165 addi sp,sp,112 + c4c: 8082 ret return *s && strchr(toks, *s); - d00: 8566 mv a0,s9 - d02: 7d9040ef jal 5cda + c4e: 8566 mv a0,s9 + c50: 076050ef jal 5cc6 s = *ps; - d06: 0009b403 ld s0,0(s3) + c54: 0009b403 ld s0,0(s3) return *s && strchr(toks, *s); - d0a: d15d beqz a0,cb0 <_ZN6Parser10parse_lineEPPcS0_+0x7a> + c58: d15d beqz a0,bfe <_ZN6Parser10parse_lineEPPcS0_+0x7a> while (s < es && strchr(WHITESPACE, *s)) - d0c: 00946663 bltu s0,s1,d18 <_ZN6Parser10parse_lineEPPcS0_+0xe2> - d10: a819 j d26 <_ZN6Parser10parse_lineEPPcS0_+0xf0> + c5a: 00946663 bltu s0,s1,c66 <_ZN6Parser10parse_lineEPPcS0_+0xe2> + c5e: a819 j c74 <_ZN6Parser10parse_lineEPPcS0_+0xf0> s++; - d12: 0405 addi s0,s0,1 + c60: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - d14: 00848963 beq s1,s0,d26 <_ZN6Parser10parse_lineEPPcS0_+0xf0> - d18: 00044583 lbu a1,0(s0) - d1c: 00093503 ld a0,0(s2) - d20: 7bb040ef jal 5cda - d24: f57d bnez a0,d12 <_ZN6Parser10parse_lineEPPcS0_+0xdc> + c62: 00848963 beq s1,s0,c74 <_ZN6Parser10parse_lineEPPcS0_+0xf0> + c66: 00044583 lbu a1,0(s0) + c6a: 00093503 ld a0,0(s2) + c6e: 058050ef jal 5cc6 + c72: f57d bnez a0,c60 <_ZN6Parser10parse_lineEPPcS0_+0xdc> ret = *s; - d26: 00044783 lbu a5,0(s0) + c74: 00044783 lbu a5,0(s0) switch (*s) - d2a: 08fb6a63 bltu s6,a5,dbe <_ZN6Parser10parse_lineEPPcS0_+0x188> - d2e: 00fc6c63 bltu s8,a5,d46 <_ZN6Parser10parse_lineEPPcS0_+0x110> - d32: cb99 beqz a5,d48 <_ZN6Parser10parse_lineEPPcS0_+0x112> - d34: 01a78963 beq a5,s10,d46 <_ZN6Parser10parse_lineEPPcS0_+0x110> - d38: fd87879b addiw a5,a5,-40 - d3c: 0ff7f793 zext.b a5,a5 - d40: 4705 li a4,1 - d42: 02f76d63 bltu a4,a5,d7c <_ZN6Parser10parse_lineEPPcS0_+0x146> + c78: 08fb6a63 bltu s6,a5,d0c <_ZN6Parser10parse_lineEPPcS0_+0x188> + c7c: 00fc6c63 bltu s8,a5,c94 <_ZN6Parser10parse_lineEPPcS0_+0x110> + c80: cb99 beqz a5,c96 <_ZN6Parser10parse_lineEPPcS0_+0x112> + c82: 01a78963 beq a5,s10,c94 <_ZN6Parser10parse_lineEPPcS0_+0x110> + c86: fd87879b addiw a5,a5,-40 + c8a: 0ff7f793 zext.b a5,a5 + c8e: 4705 li a4,1 + c90: 02f76d63 bltu a4,a5,cca <_ZN6Parser10parse_lineEPPcS0_+0x146> s++; - d46: 0405 addi s0,s0,1 + c94: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - d48: 00946663 bltu s0,s1,d54 <_ZN6Parser10parse_lineEPPcS0_+0x11e> - d4c: a819 j d62 <_ZN6Parser10parse_lineEPPcS0_+0x12c> + c96: 00946663 bltu s0,s1,ca2 <_ZN6Parser10parse_lineEPPcS0_+0x11e> + c9a: a819 j cb0 <_ZN6Parser10parse_lineEPPcS0_+0x12c> s++; - d4e: 0405 addi s0,s0,1 + c9c: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - d50: 04848b63 beq s1,s0,da6 <_ZN6Parser10parse_lineEPPcS0_+0x170> - d54: 00044583 lbu a1,0(s0) - d58: 00093503 ld a0,0(s2) - d5c: 77f040ef jal 5cda - d60: f57d bnez a0,d4e <_ZN6Parser10parse_lineEPPcS0_+0x118> + c9e: 04848b63 beq s1,s0,cf4 <_ZN6Parser10parse_lineEPPcS0_+0x170> + ca2: 00044583 lbu a1,0(s0) + ca6: 00093503 ld a0,0(s2) + caa: 01c050ef jal 5cc6 + cae: f57d bnez a0,c9c <_ZN6Parser10parse_lineEPPcS0_+0x118> *ps = s; - d62: 0089b023 sd s0,0(s3) + cb0: 0089b023 sd s0,0(s3) cmd = new BackCommand(cmd); - d66: 4541 li a0,16 - d68: 284050ef jal 5fec <_Znwm> + cb4: 4541 li a0,16 + cb6: 322050ef jal 5fd8 <_Znwm> BackCommand(Command *c) : sub_cmd(c) {} - d6c: 01453423 sd s4,8(a0) - d70: 01553023 sd s5,0(a0) + cba: 01453423 sd s4,8(a0) + cbe: 01553023 sd s5,0(a0) cmd = new BackCommand(cmd); - d74: 8a2a mv s4,a0 - d76: bf09 j c88 <_ZN6Parser10parse_lineEPPcS0_+0x52> + cc2: 8a2a mv s4,a0 + cc4: bf09 j bd6 <_ZN6Parser10parse_lineEPPcS0_+0x52> switch (*s) - d78: fdb787e3 beq a5,s11,d46 <_ZN6Parser10parse_lineEPPcS0_+0x110> + cc6: fdb787e3 beq a5,s11,c94 <_ZN6Parser10parse_lineEPPcS0_+0x110> while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - d7c: 00946d63 bltu s0,s1,d96 <_ZN6Parser10parse_lineEPPcS0_+0x160> - d80: b7cd j d62 <_ZN6Parser10parse_lineEPPcS0_+0x12c> - d82: 00044583 lbu a1,0(s0) - d86: 00893503 ld a0,8(s2) - d8a: 751040ef jal 5cda - d8e: fd4d bnez a0,d48 <_ZN6Parser10parse_lineEPPcS0_+0x112> + cca: 00946d63 bltu s0,s1,ce4 <_ZN6Parser10parse_lineEPPcS0_+0x160> + cce: b7cd j cb0 <_ZN6Parser10parse_lineEPPcS0_+0x12c> + cd0: 00044583 lbu a1,0(s0) + cd4: 00893503 ld a0,8(s2) + cd8: 7ef040ef jal 5cc6 + cdc: fd4d bnez a0,c96 <_ZN6Parser10parse_lineEPPcS0_+0x112> s++; - d90: 0405 addi s0,s0,1 + cde: 0405 addi s0,s0,1 while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - d92: 00848a63 beq s1,s0,da6 <_ZN6Parser10parse_lineEPPcS0_+0x170> - d96: 00044583 lbu a1,0(s0) - d9a: 00093503 ld a0,0(s2) - d9e: 73d040ef jal 5cda - da2: d165 beqz a0,d82 <_ZN6Parser10parse_lineEPPcS0_+0x14c> - da4: b755 j d48 <_ZN6Parser10parse_lineEPPcS0_+0x112> - da6: 8426 mv s0,s1 + ce0: 00848a63 beq s1,s0,cf4 <_ZN6Parser10parse_lineEPPcS0_+0x170> + ce4: 00044583 lbu a1,0(s0) + ce8: 00093503 ld a0,0(s2) + cec: 7db040ef jal 5cc6 + cf0: d165 beqz a0,cd0 <_ZN6Parser10parse_lineEPPcS0_+0x14c> + cf2: b755 j c96 <_ZN6Parser10parse_lineEPPcS0_+0x112> + cf4: 8426 mv s0,s1 *ps = s; - da8: 0089b023 sd s0,0(s3) + cf6: 0089b023 sd s0,0(s3) cmd = new BackCommand(cmd); - dac: 4541 li a0,16 - dae: 23e050ef jal 5fec <_Znwm> + cfa: 4541 li a0,16 + cfc: 2dc050ef jal 5fd8 <_Znwm> BackCommand(Command *c) : sub_cmd(c) {} - db2: 01453423 sd s4,8(a0) - db6: 01553023 sd s5,0(a0) + d00: 01453423 sd s4,8(a0) + d04: 01553023 sd s5,0(a0) cmd = new BackCommand(cmd); - dba: 8a2a mv s4,a0 - dbc: b5f1 j c88 <_ZN6Parser10parse_lineEPPcS0_+0x52> + d08: 8a2a mv s4,a0 + d0a: b5f1 j bd6 <_ZN6Parser10parse_lineEPPcS0_+0x52> switch (*s) - dbe: fb779de3 bne a5,s7,d78 <_ZN6Parser10parse_lineEPPcS0_+0x142> + d0c: fb779de3 bne a5,s7,cc6 <_ZN6Parser10parse_lineEPPcS0_+0x142> if (*s == '>') - dc2: 00144783 lbu a5,1(s0) - dc6: f97790e3 bne a5,s7,d46 <_ZN6Parser10parse_lineEPPcS0_+0x110> + d10: 00144783 lbu a5,1(s0) + d14: f97790e3 bne a5,s7,c94 <_ZN6Parser10parse_lineEPPcS0_+0x110> s++; - dca: 0409 addi s0,s0,2 - dcc: bfb5 j d48 <_ZN6Parser10parse_lineEPPcS0_+0x112> + d18: 0409 addi s0,s0,2 + d1a: bfb5 j c96 <_ZN6Parser10parse_lineEPPcS0_+0x112> return *s && strchr(toks, *s); - dce: 00005517 auipc a0,0x5 - dd2: 31250513 addi a0,a0,786 # 60e0 <_GLOBAL__sub_I__ZSt3cin+0xdc> - dd6: 705040ef jal 5cda - dda: f00502e3 beqz a0,cde <_ZN6Parser10parse_lineEPPcS0_+0xa8> + d1c: 00005517 auipc a0,0x5 + d20: 3a450513 addi a0,a0,932 # 60c0 <_GLOBAL__sub_I__ZSt3cin+0xd0> + d24: 7a3040ef jal 5cc6 + d28: f00502e3 beqz a0,c2c <_ZN6Parser10parse_lineEPPcS0_+0xa8> s = *ps; - dde: 0009b403 ld s0,0(s3) + d2c: 0009b403 ld s0,0(s3) ret = *s; - de2: 00044783 lbu a5,0(s0) + d30: 00044783 lbu a5,0(s0) while (s < es && strchr(WHITESPACE, *s)) - de6: 0e947863 bgeu s0,s1,ed6 <_ZN6Parser10parse_lineEPPcS0_+0x2a0> - dea: 00007917 auipc s2,0x7 - dee: 0ee90913 addi s2,s2,238 # 7ed8 - df2: a021 j dfa <_ZN6Parser10parse_lineEPPcS0_+0x1c4> + d34: 0e947863 bgeu s0,s1,e24 <_ZN6Parser10parse_lineEPPcS0_+0x2a0> + d38: 00007917 auipc s2,0x7 + d3c: 1d090913 addi s2,s2,464 # 7f08 + d40: a021 j d48 <_ZN6Parser10parse_lineEPPcS0_+0x1c4> s++; - df4: 0405 addi s0,s0,1 + d42: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - df6: 00848963 beq s1,s0,e08 <_ZN6Parser10parse_lineEPPcS0_+0x1d2> - dfa: 00044583 lbu a1,0(s0) - dfe: 00093503 ld a0,0(s2) - e02: 6d9040ef jal 5cda - e06: f57d bnez a0,df4 <_ZN6Parser10parse_lineEPPcS0_+0x1be> + d44: 00848963 beq s1,s0,d56 <_ZN6Parser10parse_lineEPPcS0_+0x1d2> + d48: 00044583 lbu a1,0(s0) + d4c: 00093503 ld a0,0(s2) + d50: 777040ef jal 5cc6 + d54: f57d bnez a0,d42 <_ZN6Parser10parse_lineEPPcS0_+0x1be> ret = *s; - e08: 00044783 lbu a5,0(s0) + d56: 00044783 lbu a5,0(s0) switch (*s) - e0c: 02900713 li a4,41 - e10: 04f76b63 bltu a4,a5,e66 <_ZN6Parser10parse_lineEPPcS0_+0x230> - e14: 02700713 li a4,39 - e18: 08f76f63 bltu a4,a5,eb6 <_ZN6Parser10parse_lineEPPcS0_+0x280> - e1c: efd9 bnez a5,eba <_ZN6Parser10parse_lineEPPcS0_+0x284> + d5a: 02900713 li a4,41 + d5e: 04f76b63 bltu a4,a5,db4 <_ZN6Parser10parse_lineEPPcS0_+0x230> + d62: 02700713 li a4,39 + d66: 08f76f63 bltu a4,a5,e04 <_ZN6Parser10parse_lineEPPcS0_+0x280> + d6a: efd9 bnez a5,e08 <_ZN6Parser10parse_lineEPPcS0_+0x284> while (s < es && strchr(WHITESPACE, *s)) - e1e: 00007917 auipc s2,0x7 - e22: 0ba90913 addi s2,s2,186 # 7ed8 - e26: 00946663 bltu s0,s1,e32 <_ZN6Parser10parse_lineEPPcS0_+0x1fc> - e2a: a819 j e40 <_ZN6Parser10parse_lineEPPcS0_+0x20a> + d6c: 00007917 auipc s2,0x7 + d70: 19c90913 addi s2,s2,412 # 7f08 + d74: 00946663 bltu s0,s1,d80 <_ZN6Parser10parse_lineEPPcS0_+0x1fc> + d78: a819 j d8e <_ZN6Parser10parse_lineEPPcS0_+0x20a> s++; - e2c: 0405 addi s0,s0,1 + d7a: 0405 addi s0,s0,1 while (s < es && strchr(WHITESPACE, *s)) - e2e: 06848c63 beq s1,s0,ea6 <_ZN6Parser10parse_lineEPPcS0_+0x270> - e32: 00044583 lbu a1,0(s0) - e36: 00093503 ld a0,0(s2) - e3a: 6a1040ef jal 5cda - e3e: f57d bnez a0,e2c <_ZN6Parser10parse_lineEPPcS0_+0x1f6> + d7c: 06848c63 beq s1,s0,df4 <_ZN6Parser10parse_lineEPPcS0_+0x270> + d80: 00044583 lbu a1,0(s0) + d84: 00093503 ld a0,0(s2) + d88: 73f040ef jal 5cc6 + d8c: f57d bnez a0,d7a <_ZN6Parser10parse_lineEPPcS0_+0x1f6> *ps = s; - e40: 0089b023 sd s0,0(s3) + d8e: 0089b023 sd s0,0(s3) cmd = new ListCommand(cmd, parse_line(ps, es)); - e44: 4561 li a0,24 - e46: 1a6050ef jal 5fec <_Znwm> - e4a: 842a mv s0,a0 - e4c: 85a6 mv a1,s1 - e4e: 854e mv a0,s3 - e50: de7ff0ef jal c36 <_ZN6Parser10parse_lineEPPcS0_> + d92: 4561 li a0,24 + d94: 244050ef jal 5fd8 <_Znwm> + d98: 842a mv s0,a0 + d9a: 85a6 mv a1,s1 + d9c: 854e mv a0,s3 + d9e: de7ff0ef jal b84 <_ZN6Parser10parse_lineEPPcS0_> ListCommand(Command *l, Command *r) : left(l), right(r) {} - e54: 00007797 auipc a5,0x7 - e58: 04478793 addi a5,a5,68 # 7e98 <_ZTV11ListCommand+0x10> - e5c: e01c sd a5,0(s0) - e5e: 01443423 sd s4,8(s0) - e62: e808 sd a0,16(s0) - e64: bdb5 j ce0 <_ZN6Parser10parse_lineEPPcS0_+0xaa> + da2: 00007797 auipc a5,0x7 + da6: 12678793 addi a5,a5,294 # 7ec8 <_ZTV11ListCommand+0x10> + daa: e01c sd a5,0(s0) + dac: 01443423 sd s4,8(s0) + db0: e808 sd a0,16(s0) + db2: bdb5 j c2e <_ZN6Parser10parse_lineEPPcS0_+0xaa> switch (*s) - e66: 03e00713 li a4,62 - e6a: 04e78063 beq a5,a4,eaa <_ZN6Parser10parse_lineEPPcS0_+0x274> - e6e: 04f76c63 bltu a4,a5,ec6 <_ZN6Parser10parse_lineEPPcS0_+0x290> - e72: fc57879b addiw a5,a5,-59 - e76: 0ff7f793 zext.b a5,a5 - e7a: 4705 li a4,1 - e7c: 02f77d63 bgeu a4,a5,eb6 <_ZN6Parser10parse_lineEPPcS0_+0x280> + db4: 03e00713 li a4,62 + db8: 04e78063 beq a5,a4,df8 <_ZN6Parser10parse_lineEPPcS0_+0x274> + dbc: 04f76c63 bltu a4,a5,e14 <_ZN6Parser10parse_lineEPPcS0_+0x290> + dc0: fc57879b addiw a5,a5,-59 + dc4: 0ff7f793 zext.b a5,a5 + dc8: 4705 li a4,1 + dca: 02f77d63 bgeu a4,a5,e04 <_ZN6Parser10parse_lineEPPcS0_+0x280> while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - e80: fc9470e3 bgeu s0,s1,e40 <_ZN6Parser10parse_lineEPPcS0_+0x20a> - e84: 00044583 lbu a1,0(s0) - e88: 00093503 ld a0,0(s2) - e8c: 64f040ef jal 5cda - e90: f559 bnez a0,e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> - e92: 00044583 lbu a1,0(s0) - e96: 00893503 ld a0,8(s2) - e9a: 641040ef jal 5cda - e9e: f141 bnez a0,e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + dce: fc9470e3 bgeu s0,s1,d8e <_ZN6Parser10parse_lineEPPcS0_+0x20a> + dd2: 00044583 lbu a1,0(s0) + dd6: 00093503 ld a0,0(s2) + dda: 6ed040ef jal 5cc6 + dde: f559 bnez a0,d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + de0: 00044583 lbu a1,0(s0) + de4: 00893503 ld a0,8(s2) + de8: 6df040ef jal 5cc6 + dec: f141 bnez a0,d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> s++; - ea0: 0405 addi s0,s0,1 + dee: 0405 addi s0,s0,1 while (s < es && !strchr(WHITESPACE, *s) && !strchr(SYMBOLS, *s)) - ea2: fe8491e3 bne s1,s0,e84 <_ZN6Parser10parse_lineEPPcS0_+0x24e> - ea6: 8426 mv s0,s1 - ea8: bf61 j e40 <_ZN6Parser10parse_lineEPPcS0_+0x20a> + df0: fe8491e3 bne s1,s0,dd2 <_ZN6Parser10parse_lineEPPcS0_+0x24e> + df4: 8426 mv s0,s1 + df6: bf61 j d8e <_ZN6Parser10parse_lineEPPcS0_+0x20a> if (*s == '>') - eaa: 00144703 lbu a4,1(s0) - eae: 03e00793 li a5,62 - eb2: 02f70063 beq a4,a5,ed2 <_ZN6Parser10parse_lineEPPcS0_+0x29c> + df8: 00144703 lbu a4,1(s0) + dfc: 03e00793 li a5,62 + e00: 02f70063 beq a4,a5,e20 <_ZN6Parser10parse_lineEPPcS0_+0x29c> s++; - eb6: 0405 addi s0,s0,1 - eb8: b79d j e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + e04: 0405 addi s0,s0,1 + e06: b79d j d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> switch (*s) - eba: 02600713 li a4,38 - ebe: fce791e3 bne a5,a4,e80 <_ZN6Parser10parse_lineEPPcS0_+0x24a> + e08: 02600713 li a4,38 + e0c: fce791e3 bne a5,a4,dce <_ZN6Parser10parse_lineEPPcS0_+0x24a> s++; - ec2: 0405 addi s0,s0,1 - ec4: bfa9 j e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + e10: 0405 addi s0,s0,1 + e12: bfa9 j d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> switch (*s) - ec6: 07c00713 li a4,124 - eca: fae79be3 bne a5,a4,e80 <_ZN6Parser10parse_lineEPPcS0_+0x24a> + e14: 07c00713 li a4,124 + e18: fae79be3 bne a5,a4,dce <_ZN6Parser10parse_lineEPPcS0_+0x24a> s++; - ece: 0405 addi s0,s0,1 - ed0: b7b9 j e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + e1c: 0405 addi s0,s0,1 + e1e: b7b9 j d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> s++; - ed2: 0409 addi s0,s0,2 - ed4: b7a9 j e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + e20: 0409 addi s0,s0,2 + e22: b7a9 j d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> switch (*s) - ed6: 03c00713 li a4,60 - eda: 02f76463 bltu a4,a5,f02 <_ZN6Parser10parse_lineEPPcS0_+0x2cc> - ede: 03a00713 li a4,58 - ee2: fcf76ae3 bltu a4,a5,eb6 <_ZN6Parser10parse_lineEPPcS0_+0x280> - ee6: dfa9 beqz a5,e40 <_ZN6Parser10parse_lineEPPcS0_+0x20a> - ee8: 02600713 li a4,38 - eec: fce785e3 beq a5,a4,eb6 <_ZN6Parser10parse_lineEPPcS0_+0x280> - ef0: fd87879b addiw a5,a5,-40 - ef4: 0ff7f793 zext.b a5,a5 - ef8: 4705 li a4,1 - efa: f4f763e3 bltu a4,a5,e40 <_ZN6Parser10parse_lineEPPcS0_+0x20a> + e24: 03c00713 li a4,60 + e28: 02f76463 bltu a4,a5,e50 <_ZN6Parser10parse_lineEPPcS0_+0x2cc> + e2c: 03a00713 li a4,58 + e30: fcf76ae3 bltu a4,a5,e04 <_ZN6Parser10parse_lineEPPcS0_+0x280> + e34: dfa9 beqz a5,d8e <_ZN6Parser10parse_lineEPPcS0_+0x20a> + e36: 02600713 li a4,38 + e3a: fce785e3 beq a5,a4,e04 <_ZN6Parser10parse_lineEPPcS0_+0x280> + e3e: fd87879b addiw a5,a5,-40 + e42: 0ff7f793 zext.b a5,a5 + e46: 4705 li a4,1 + e48: f4f763e3 bltu a4,a5,d8e <_ZN6Parser10parse_lineEPPcS0_+0x20a> s++; - efe: 0405 addi s0,s0,1 - f00: bf39 j e1e <_ZN6Parser10parse_lineEPPcS0_+0x1e8> + e4c: 0405 addi s0,s0,1 + e4e: bf39 j d6c <_ZN6Parser10parse_lineEPPcS0_+0x1e8> switch (*s) - f02: 03e00713 li a4,62 - f06: fae782e3 beq a5,a4,eaa <_ZN6Parser10parse_lineEPPcS0_+0x274> - f0a: 07c00713 li a4,124 - f0e: f2e799e3 bne a5,a4,e40 <_ZN6Parser10parse_lineEPPcS0_+0x20a> - f12: b755 j eb6 <_ZN6Parser10parse_lineEPPcS0_+0x280> + e50: 03e00713 li a4,62 + e54: fae782e3 beq a5,a4,df8 <_ZN6Parser10parse_lineEPPcS0_+0x274> + e58: 07c00713 li a4,124 + e5c: f2e799e3 bne a5,a4,d8e <_ZN6Parser10parse_lineEPPcS0_+0x20a> + e60: b755 j e04 <_ZN6Parser10parse_lineEPPcS0_+0x280> -0000000000000f14
: +0000000000000e62
: int main() { - f14: 7159 addi sp,sp,-112 + e62: 7119 addi sp,sp,-128 // close(fd); // break; // } // } - printf("\n[Lume Shell] Initialized! \n"); - f16: 00005517 auipc a0,0x5 - f1a: 1ea50513 addi a0,a0,490 # 6100 <_GLOBAL__sub_I__ZSt3cin+0xfc> + printf(ANSI_GREEN"\n[Lume Shell] Welcome! \n"ANSI_RESET); + e64: 00005517 auipc a0,0x5 + e68: 26c50513 addi a0,a0,620 # 60d0 <_GLOBAL__sub_I__ZSt3cin+0xe0> { - f1e: e8ca sd s2,80(sp) - f20: e4ce sd s3,72(sp) - f22: e0d2 sd s4,64(sp) - f24: fc56 sd s5,56(sp) - f26: f85a sd s6,48(sp) - f28: f45e sd s7,40(sp) - f2a: f062 sd s8,32(sp) - f2c: ec66 sd s9,24(sp) - f2e: f486 sd ra,104(sp) - f30: f0a2 sd s0,96(sp) - f32: eca6 sd s1,88(sp) - f34: e86a sd s10,16(sp) - f36: 00008917 auipc s2,0x8 - f3a: d6a90913 addi s2,s2,-662 # 8ca0 <_ZZ4mainE3buf> - printf("\n[Lume Shell] Initialized! \n"); - f3e: 1d1030ef jal 490e + e6c: fc86 sd ra,120(sp) + e6e: f8a2 sd s0,112(sp) + e70: f4a6 sd s1,104(sp) + e72: f0ca sd s2,96(sp) + e74: ecce sd s3,88(sp) + e76: e8d2 sd s4,80(sp) + e78: e4d6 sd s5,72(sp) + e7a: e0da sd s6,64(sp) + e7c: fc5e sd s7,56(sp) + printf(ANSI_GREEN"\n[Lume Shell] Welcome! \n"ANSI_RESET); + e7e: 27d030ef jal 48fa + printf(ANSI_YELLOW "[Lume Shell] Start your journey of exploration!"ANSI_RESET); + e82: 00005517 auipc a0,0x5 + e86: 27650513 addi a0,a0,630 # 60f8 <_GLOBAL__sub_I__ZSt3cin+0x108> + e8a: 271030ef jal 48fa + printf("\n"); + e8e: 00005517 auipc a0,0x5 + e92: 2aa50513 addi a0,a0,682 # 6138 <_GLOBAL__sub_I__ZSt3cin+0x148> + e96: 265030ef jal 48fa while (getcmd(buf, sizeof(buf)) >= 0) + e9a: 00008417 auipc s0,0x8 + e9e: e3640413 addi s0,s0,-458 # 8cd0 <_ZZ4mainE3buf> + write(1, "$ ", 2); + ea2: 00005497 auipc s1,0x5 + ea6: 22648493 addi s1,s1,550 # 60c8 <_GLOBAL__sub_I__ZSt3cin+0xd8> { + int len = strlen(buf); + if (len > 0 && buf[len - 1] == '\n') + eaa: 4b29 li s6,10 + { + printf("cannot cd %s\n", path); + } + continue; + } + if (strcmp(buf, "shutdown") == 0 || strcmp(buf, "poweroff") == 0) + eac: 00005917 auipc s2,0x5 + eb0: 2bc90913 addi s2,s2,700 # 6168 <_GLOBAL__sub_I__ZSt3cin+0x178> + eb4: 00005997 auipc s3,0x5 + eb8: 2ec98993 addi s3,s3,748 # 61a0 <_GLOBAL__sub_I__ZSt3cin+0x1b0> + if (pid == -1) + ebc: 5bfd li s7,-1 + { + printf(ANSI_BLUE"System shutting down..."ANSI_RESET); + ebe: 00005a97 auipc s5,0x5 + ec2: 2baa8a93 addi s5,s5,698 # 6178 <_GLOBAL__sub_I__ZSt3cin+0x188> + printf("\n"); + ec6: 00005a17 auipc s4,0x5 + eca: 272a0a13 addi s4,s4,626 # 6138 <_GLOBAL__sub_I__ZSt3cin+0x148> + write(1, "$ ", 2); + ece: 4609 li a2,2 + ed0: 85a6 mv a1,s1 + ed2: 4505 li a0,1 + ed4: 21c000ef jal 10f0 + memset(buf, 0, nbuf); + ed8: 06400613 li a2,100 + edc: 4581 li a1,0 + ede: 8522 mv a0,s0 + ee0: 3f9040ef jal 5ad8 + int n = read(0, buf, nbuf - 1); + ee4: 06300613 li a2,99 + ee8: 85a2 mv a1,s0 + eea: 4501 li a0,0 + eec: 1fc000ef jal 10e8 + if (n < 0) + ef0: 1a054b63 bltz a0,10a6 + buf[n] = 0; + ef4: 00a407b3 add a5,s0,a0 + ef8: 00078023 sb zero,0(a5) + int len = strlen(buf); + efc: 8522 mv a0,s0 + efe: 473040ef jal 5b70 + f02: 2501 sext.w a0,a0 + if (len > 0 && buf[len - 1] == '\n') + f04: 00a05a63 blez a0,f18 + f08: 357d addiw a0,a0,-1 + f0a: 9522 add a0,a0,s0 + f0c: 00054783 lbu a5,0(a0) + f10: 01679463 bne a5,s6,f18 + buf[len - 1] = 0; + f14: 00050023 sb zero,0(a0) if (buf[0] == 'c' && buf[1] == 'd' && (buf[2] == ' ' || buf[2] == '\n' || buf[2] == 0)) - f42: 06300a13 li s4,99 + f18: 00044703 lbu a4,0(s0) + f1c: 06300793 li a5,99 + f20: 00f71863 bne a4,a5,f30 + f24: 00144703 lbu a4,1(s0) + f28: 06400793 li a5,100 + f2c: 02f70e63 beq a4,a5,f68 + if (strcmp(buf, "shutdown") == 0 || strcmp(buf, "poweroff") == 0) + f30: 85ca mv a1,s2 + f32: 8522 mv a0,s0 + f34: 513040ef jal 5c46 + f38: cd19 beqz a0,f56 + f3a: 85ce mv a1,s3 + f3c: 8522 mv a0,s0 + f3e: 509040ef jal 5c46 + f42: c911 beqz a0,f56 + int pid = fork(); + f44: 18c000ef jal 10d0 if (pid == -1) - f46: 5afd li s5,-1 - Command *cmd = parse_line(&s, es); - f48: 00810b13 addi s6,sp,8 - printf("leftovers: %s\n", s); - f4c: 00005c97 auipc s9,0x5 - f50: 1fcc8c93 addi s9,s9,508 # 6148 <_GLOBAL__sub_I__ZSt3cin+0x144> - f54: 00007997 auipc s3,0x7 - f58: f8498993 addi s3,s3,-124 # 7ed8 - printf("shell panic: %s\n", s); - f5c: 00005c17 auipc s8,0x5 - f60: 104c0c13 addi s8,s8,260 # 6060 <_GLOBAL__sub_I__ZSt3cin+0x5c> - f64: 00005b97 auipc s7,0x5 - f68: 104b8b93 addi s7,s7,260 # 6068 <_GLOBAL__sub_I__ZSt3cin+0x64> - while (getcmd(buf, sizeof(buf)) >= 0) - f6c: a021 j f74 + f48: 0f750c63 beq a0,s7,1040 + shutdown(); + + continue; + } + + if (fork_or_panic() == 0) + f4c: c52d beqz a0,fb6 cmd->run(); delete cmd; } exit(0); } wait(0); - f6e: 4501 li a0,0 - f70: 184000ef jal 10f4 - while (getcmd(buf, sizeof(buf)) >= 0) - f74: 06400593 li a1,100 - f78: 854a mv a0,s2 - f7a: 8e2ff0ef jal 5c <_Z6getcmdPci> - f7e: 0e054f63 bltz a0,107c + f4e: 4501 li a0,0 + f50: 188000ef jal 10d8 + f54: bfad j ece + printf(ANSI_BLUE"System shutting down..."ANSI_RESET); + f56: 8556 mv a0,s5 + f58: 1a3030ef jal 48fa + printf("\n"); + f5c: 8552 mv a0,s4 + f5e: 19d030ef jal 48fa + shutdown(); + f62: 226000ef jal 1188 + continue; + f66: b7a5 j ece if (buf[0] == 'c' && buf[1] == 'd' && (buf[2] == ' ' || buf[2] == '\n' || buf[2] == 0)) - f82: 00094783 lbu a5,0(s2) - f86: 01479863 bne a5,s4,f96 - f8a: 00194703 lbu a4,1(s2) - f8e: 06400793 li a5,100 - f92: 08f70e63 beq a4,a5,102e - int pid = fork(); - f96: 156000ef jal 10ec - if (pid == -1) - f9a: 09550263 beq a0,s5,101e - if (fork_or_panic() == 0) - f9e: f961 bnez a0,f6e + f68: 00244703 lbu a4,2(s0) + f6c: 02000793 li a5,32 + f70: fce7e0e3 bltu a5,a4,f30 + f74: 4785 li a5,1 + f76: 1782 slli a5,a5,0x20 + f78: 40178793 addi a5,a5,1025 + f7c: 00e7d7b3 srl a5,a5,a4 + f80: 8b85 andi a5,a5,1 + f82: d7dd beqz a5,f30 + if (buf[strlen(buf) - 1] == '\n') + f84: 00008517 auipc a0,0x8 + f88: d4c50513 addi a0,a0,-692 # 8cd0 <_ZZ4mainE3buf> + f8c: 3e5040ef jal 5b70 + f90: 9522 add a0,a0,s0 + f92: fff54703 lbu a4,-1(a0) + f96: 47a9 li a5,10 + f98: 0ef70c63 beq a4,a5,1090 + if (buf[2] == '\n' || buf[2] == 0) + f9c: 00244783 lbu a5,2(s0) + fa0: 4729 li a4,10 + fa2: 00e78363 beq a5,a4,fa8 + fa6: e3f1 bnez a5,106a + printf("cd: argument missing\n"); + fa8: 00005517 auipc a0,0x5 + fac: 19850513 addi a0,a0,408 # 6140 <_GLOBAL__sub_I__ZSt3cin+0x150> + fb0: 14b030ef jal 48fa + continue; + fb4: bf29 j ece char *es = s + strlen(s); - fa0: 854a mv a0,s2 - fa2: e44a sd s2,8(sp) - fa4: 3e1040ef jal 5b84 - fa8: 00a904b3 add s1,s2,a0 + fb6: 00008517 auipc a0,0x8 + fba: d1a50513 addi a0,a0,-742 # 8cd0 <_ZZ4mainE3buf> + fbe: f862 sd s8,48(sp) + fc0: f466 sd s9,40(sp) + fc2: ec6e sd s11,24(sp) + fc4: e422 sd s0,8(sp) + fc6: 3ab040ef jal 5b70 + fca: 00a40cb3 add s9,s0,a0 Command *cmd = parse_line(&s, es); - fac: 85a6 mv a1,s1 - fae: 855a mv a0,s6 - fb0: c87ff0ef jal c36 <_ZN6Parser10parse_lineEPPcS0_> + fce: 85e6 mv a1,s9 + fd0: 0028 addi a0,sp,8 + fd2: bb3ff0ef jal b84 <_ZN6Parser10parse_lineEPPcS0_> char *s = *ps; - fb4: 6422 ld s0,8(sp) + fd6: 6c22 ld s8,8(sp) Command *cmd = parse_line(&s, es); - fb6: 8d2a mv s10,a0 + fd8: 8daa mv s11,a0 while (s < es && strchr(WHITESPACE, *s)) - fb8: 00946663 bltu s0,s1,fc4 - fbc: a819 j fd2 + fda: 039c7363 bgeu s8,s9,1000 + fde: f06a sd s10,32(sp) + fe0: 00007d17 auipc s10,0x7 + fe4: f28d0d13 addi s10,s10,-216 # 7f08 + fe8: a021 j ff0 s++; - fbe: 0405 addi s0,s0,1 + fea: 0c05 addi s8,s8,1 while (s < es && strchr(WHITESPACE, *s)) - fc0: 04848363 beq s1,s0,1006 - fc4: 00044583 lbu a1,0(s0) - fc8: 0009b503 ld a0,0(s3) - fcc: 50f040ef jal 5cda - fd0: f57d bnez a0,fbe + fec: 018c8963 beq s9,s8,ffe + ff0: 000c4583 lbu a1,0(s8) + ff4: 000d3503 ld a0,0(s10) + ff8: 4cf040ef jal 5cc6 + ffc: f57d bnez a0,fea + ffe: 7d02 ld s10,32(sp) *ps = s; - fd2: e422 sd s0,8(sp) + 1000: e462 sd s8,8(sp) return *s && strchr(toks, *s); - fd4: 00044583 lbu a1,0(s0) - fd8: e99d bnez a1,100e + 1002: 000c4583 lbu a1,0(s8) + 1006: e9b9 bnez a1,105c if (s != es) - fda: 00848663 beq s1,s0,fe6 + 1008: 65a2 ld a1,8(sp) + 100a: 00bc8863 beq s9,a1,101a printf("leftovers: %s\n", s); - fde: 85a2 mv a1,s0 - fe0: 8566 mv a0,s9 - fe2: 12d030ef jal 490e + 100e: 00005517 auipc a0,0x5 + 1012: 1a250513 addi a0,a0,418 # 61b0 <_GLOBAL__sub_I__ZSt3cin+0x1c0> + 1016: 0e5030ef jal 48fa if (cmd) - fe6: 000d0c63 beqz s10,ffe + 101a: 000d8c63 beqz s11,1032 cmd->run(); - fea: 000d3783 ld a5,0(s10) - fee: 856a mv a0,s10 - ff0: 6b9c ld a5,16(a5) - ff2: 9782 jalr a5 + 101e: 000db783 ld a5,0(s11) + 1022: 856e mv a0,s11 + 1024: 6b9c ld a5,16(a5) + 1026: 9782 jalr a5 delete cmd; - ff4: 000d3783 ld a5,0(s10) - ff8: 856a mv a0,s10 - ffa: 679c ld a5,8(a5) - ffc: 9782 jalr a5 + 1028: 000db783 ld a5,0(s11) + 102c: 856e mv a0,s11 + 102e: 679c ld a5,8(a5) + 1030: 9782 jalr a5 exit(0); - ffe: 4501 li a0,0 - 1000: 422040ef jal 5422 - 1004: b7ad j f6e - return *s && strchr(toks, *s); - 1006: 0004c583 lbu a1,0(s1) - *ps = s; - 100a: e426 sd s1,8(sp) - return *s && strchr(toks, *s); - 100c: dde9 beqz a1,fe6 - 100e: 00005517 auipc a0,0x5 - 1012: 06a50513 addi a0,a0,106 # 6078 <_GLOBAL__sub_I__ZSt3cin+0x74> - 1016: 4c5040ef jal 5cda - if (s != es) - 101a: 6422 ld s0,8(sp) - 101c: bf7d j fda + 1032: 4501 li a0,0 + 1034: 3da040ef jal 540e + 1038: 7c42 ld s8,48(sp) + 103a: 7ca2 ld s9,40(sp) + 103c: 6de2 ld s11,24(sp) + 103e: bf01 j f4e printf("shell panic: %s\n", s); - 101e: 85e2 mv a1,s8 - 1020: 855e mv a0,s7 - 1022: 0ed030ef jal 490e + 1040: 00005597 auipc a1,0x5 + 1044: 00058593 mv a1,a1 + 1048: 00005517 auipc a0,0x5 + 104c: 00050513 mv a0,a0 + 1050: 0ab030ef jal 48fa exit(1); - 1026: 4505 li a0,1 - 1028: 3fa040ef jal 5422 + 1054: 4505 li a0,1 + 1056: 3b8040ef jal 540e return pid; - 102c: b789 j f6e - if (buf[0] == 'c' && buf[1] == 'd' && (buf[2] == ' ' || buf[2] == '\n' || buf[2] == 0)) - 102e: 00294703 lbu a4,2(s2) - 1032: 02000793 li a5,32 - 1036: f6e7e0e3 bltu a5,a4,f96 - 103a: 4785 li a5,1 - 103c: 1782 slli a5,a5,0x20 - 103e: 40178793 addi a5,a5,1025 - 1042: 00e7d7b3 srl a5,a5,a4 - 1046: 8b85 andi a5,a5,1 - 1048: d7b9 beqz a5,f96 - if (buf[strlen(buf) - 1] == '\n') - 104a: 00008517 auipc a0,0x8 - 104e: c5650513 addi a0,a0,-938 # 8ca0 <_ZZ4mainE3buf> - 1052: 333040ef jal 5b84 - 1056: 954a add a0,a0,s2 - 1058: fff54703 lbu a4,-1(a0) - 105c: 47a9 li a5,10 - 105e: 06f70163 beq a4,a5,10c0 - if (buf[2] == '\n' || buf[2] == 0) - 1062: 00294783 lbu a5,2(s2) - 1066: 4729 li a4,10 - 1068: 00e78363 beq a5,a4,106e - 106c: e79d bnez a5,109a - printf("cd: argument missing\n"); - 106e: 00005517 auipc a0,0x5 - 1072: 0b250513 addi a0,a0,178 # 6120 <_GLOBAL__sub_I__ZSt3cin+0x11c> - 1076: 099030ef jal 490e - continue; - 107a: bded j f74 - } - return 0; - 107c: 70a6 ld ra,104(sp) - 107e: 7406 ld s0,96(sp) - 1080: 64e6 ld s1,88(sp) - 1082: 6946 ld s2,80(sp) - 1084: 69a6 ld s3,72(sp) - 1086: 6a06 ld s4,64(sp) - 1088: 7ae2 ld s5,56(sp) - 108a: 7b42 ld s6,48(sp) - 108c: 7ba2 ld s7,40(sp) - 108e: 7c02 ld s8,32(sp) - 1090: 6ce2 ld s9,24(sp) - 1092: 6d42 ld s10,16(sp) - 1094: 4501 li a0,0 - 1096: 6165 addi sp,sp,112 - 1098: 8082 ret + 105a: bdd5 j f4e + return *s && strchr(toks, *s); + 105c: 00005517 auipc a0,0x5 + 1060: ffc50513 addi a0,a0,-4 # 6058 <_GLOBAL__sub_I__ZSt3cin+0x68> + 1064: 463040ef jal 5cc6 + 1068: b745 j 1008 if (chdir(path) < 0) - 109a: 00008517 auipc a0,0x8 - 109e: c0950513 addi a0,a0,-1015 # 8ca3 <_ZZ4mainE3buf+0x3> - 10a2: 0ba000ef jal 115c - 10a6: ec0557e3 bgez a0,f74 + 106a: 00008517 auipc a0,0x8 + 106e: c6950513 addi a0,a0,-919 # 8cd3 <_ZZ4mainE3buf+0x3> + 1072: 0ce000ef jal 1140 + 1076: e4055ce3 bgez a0,ece printf("cannot cd %s\n", path); - 10aa: 00008597 auipc a1,0x8 - 10ae: bf958593 addi a1,a1,-1031 # 8ca3 <_ZZ4mainE3buf+0x3> - 10b2: 00005517 auipc a0,0x5 - 10b6: 08650513 addi a0,a0,134 # 6138 <_GLOBAL__sub_I__ZSt3cin+0x134> - 10ba: 055030ef jal 490e - 10be: bd5d j f74 + 107a: 00008597 auipc a1,0x8 + 107e: c5958593 addi a1,a1,-935 # 8cd3 <_ZZ4mainE3buf+0x3> + 1082: 00005517 auipc a0,0x5 + 1086: 0d650513 addi a0,a0,214 # 6158 <_GLOBAL__sub_I__ZSt3cin+0x168> + 108a: 071030ef jal 48fa + 108e: b581 j ece buf[strlen(buf) - 1] = 0; - 10c0: 00008517 auipc a0,0x8 - 10c4: be050513 addi a0,a0,-1056 # 8ca0 <_ZZ4mainE3buf> - 10c8: 2bd040ef jal 5b84 - 10cc: 00a907b3 add a5,s2,a0 - 10d0: fe078fa3 sb zero,-1(a5) - 10d4: b779 j 1062 - -00000000000010d6 <_start>: -.section .text + 1090: 00008517 auipc a0,0x8 + 1094: c4050513 addi a0,a0,-960 # 8cd0 <_ZZ4mainE3buf> + 1098: 2d9040ef jal 5b70 + 109c: 00a407b3 add a5,s0,a0 + 10a0: fe078fa3 sb zero,-1(a5) + 10a4: bde5 j f9c + } + return 0; + 10a6: 70e6 ld ra,120(sp) + 10a8: 7446 ld s0,112(sp) + 10aa: 74a6 ld s1,104(sp) + 10ac: 7906 ld s2,96(sp) + 10ae: 69e6 ld s3,88(sp) + 10b0: 6a46 ld s4,80(sp) + 10b2: 6aa6 ld s5,72(sp) + 10b4: 6b06 ld s6,64(sp) + 10b6: 7be2 ld s7,56(sp) + 10b8: 4501 li a0,0 + 10ba: 6109 addi sp,sp,128 + 10bc: 8082 ret + +00000000000010be <_start>: .global _start _start: - li a0, 0 - 10d6: 4501 li a0,0 - li a1, 0 - 10d8: 4581 li a1,0 + call main - 10da: e3bff0ef jal f14
+ 10be: da5ff0ef jal e62
call exit - 10de: 344040ef jal 5422 + 10c2: 34c040ef jal 540e - 10e2: a001 j 10e2 <_start+0xc> + 10c6: a001 j 10c6 <_start+0x8> -00000000000010e4 : +00000000000010c8 : name: \ li a7, SYS_ ## sysname; \ ecall; \ ret SYSCALL_NAME(sys_exit, exit) - 10e4: 488d li a7,3 - 10e6: 00000073 ecall - 10ea: 8082 ret + 10c8: 488d li a7,3 + 10ca: 00000073 ecall + 10ce: 8082 ret -00000000000010ec : +00000000000010d0 : SYSCALL(fork) - 10ec: 4889 li a7,2 - 10ee: 00000073 ecall - 10f2: 8082 ret + 10d0: 4889 li a7,2 + 10d2: 00000073 ecall + 10d6: 8082 ret -00000000000010f4 : +00000000000010d8 : SYSCALL(wait) - 10f4: 4891 li a7,4 - 10f6: 00000073 ecall - 10fa: 8082 ret + 10d8: 4891 li a7,4 + 10da: 00000073 ecall + 10de: 8082 ret -00000000000010fc : +00000000000010e0 : SYSCALL(pipe) - 10fc: 4895 li a7,5 - 10fe: 00000073 ecall - 1102: 8082 ret + 10e0: 4895 li a7,5 + 10e2: 00000073 ecall + 10e6: 8082 ret -0000000000001104 : +00000000000010e8 : SYSCALL(read) - 1104: 4899 li a7,6 - 1106: 00000073 ecall - 110a: 8082 ret + 10e8: 4899 li a7,6 + 10ea: 00000073 ecall + 10ee: 8082 ret -000000000000110c : +00000000000010f0 : SYSCALL(write) - 110c: 48c5 li a7,17 - 110e: 00000073 ecall - 1112: 8082 ret + 10f0: 48c5 li a7,17 + 10f2: 00000073 ecall + 10f6: 8082 ret -0000000000001114 : +00000000000010f8 : SYSCALL(close) - 1114: 48d9 li a7,22 - 1116: 00000073 ecall - 111a: 8082 ret + 10f8: 48d9 li a7,22 + 10fa: 00000073 ecall + 10fe: 8082 ret -000000000000111c : +0000000000001100 : SYSCALL(kill) - 111c: 489d li a7,7 - 111e: 00000073 ecall - 1122: 8082 ret + 1100: 489d li a7,7 + 1102: 00000073 ecall + 1106: 8082 ret -0000000000001124 : +0000000000001108 : SYSCALL(exec) - 1124: 48a1 li a7,8 - 1126: 00000073 ecall - 112a: 8082 ret + 1108: 48a1 li a7,8 + 110a: 00000073 ecall + 110e: 8082 ret -000000000000112c : +0000000000001110 : SYSCALL(open) - 112c: 48c1 li a7,16 - 112e: 00000073 ecall - 1132: 8082 ret + 1110: 48c1 li a7,16 + 1112: 00000073 ecall + 1116: 8082 ret -0000000000001134 : +0000000000001118 : SYSCALL(mknod) - 1134: 48c9 li a7,18 - 1136: 00000073 ecall - 113a: 8082 ret + 1118: 48c9 li a7,18 + 111a: 00000073 ecall + 111e: 8082 ret -000000000000113c : +0000000000001120 : SYSCALL(unlink) - 113c: 48cd li a7,19 - 113e: 00000073 ecall - 1142: 8082 ret + 1120: 48cd li a7,19 + 1122: 00000073 ecall + 1126: 8082 ret -0000000000001144 : +0000000000001128 : SYSCALL(fstat) - 1144: 48a5 li a7,9 - 1146: 00000073 ecall - 114a: 8082 ret + 1128: 48a5 li a7,9 + 112a: 00000073 ecall + 112e: 8082 ret -000000000000114c : +0000000000001130 : SYSCALL(link) - 114c: 48d1 li a7,20 - 114e: 00000073 ecall - 1152: 8082 ret + 1130: 48d1 li a7,20 + 1132: 00000073 ecall + 1136: 8082 ret -0000000000001154 : +0000000000001138 : SYSCALL(mkdir) - 1154: 48d5 li a7,21 - 1156: 00000073 ecall - 115a: 8082 ret + 1138: 48d5 li a7,21 + 113a: 00000073 ecall + 113e: 8082 ret -000000000000115c : +0000000000001140 : SYSCALL(chdir) - 115c: 48a9 li a7,10 - 115e: 00000073 ecall - 1162: 8082 ret + 1140: 48a9 li a7,10 + 1142: 00000073 ecall + 1146: 8082 ret -0000000000001164 : +0000000000001148 : SYSCALL(dup) - 1164: 48ad li a7,11 - 1166: 00000073 ecall - 116a: 8082 ret + 1148: 48ad li a7,11 + 114a: 00000073 ecall + 114e: 8082 ret -000000000000116c : +0000000000001150 : SYSCALL(getpid) - 116c: 48b1 li a7,12 - 116e: 00000073 ecall - 1172: 8082 ret + 1150: 48b1 li a7,12 + 1152: 00000073 ecall + 1156: 8082 ret -0000000000001174 : +0000000000001158 : SYSCALL(sbrk) - 1174: 48b5 li a7,13 - 1176: 00000073 ecall - 117a: 8082 ret + 1158: 48b5 li a7,13 + 115a: 00000073 ecall + 115e: 8082 ret -000000000000117c : +0000000000001160 : SYSCALL(sleep) - 117c: 48b9 li a7,14 - 117e: 00000073 ecall - 1182: 8082 ret + 1160: 48b9 li a7,14 + 1162: 00000073 ecall + 1166: 8082 ret -0000000000001184 : +0000000000001168 : SYSCALL(uptime) - 1184: 48bd li a7,15 - 1186: 00000073 ecall - 118a: 8082 ret + 1168: 48bd li a7,15 + 116a: 00000073 ecall + 116e: 8082 ret -000000000000118c : +0000000000001170 : SYSCALL(putc) - 118c: 4885 li a7,1 - 118e: 00000073 ecall - 1192: 8082 ret + 1170: 4885 li a7,1 + 1172: 00000073 ecall + 1176: 8082 ret -0000000000001194 : +0000000000001178 : SYSCALL(disk_test) - 1194: 48dd li a7,23 - 1196: 00000073 ecall - 119a: 8082 ret - -000000000000119c : - 119c: 48e1 li a7,24 - 119e: 00000073 ecall - 11a2: 8082 ret - -00000000000011a4 : - 11a4: 45dc lw a5,12(a1) - 11a6: 4598 lw a4,8(a1) - 11a8: 9fb1 addw a5,a5,a2 - 11aa: c5dc sw a5,12(a1) - 11ac: 0007069b sext.w a3,a4 - 11b0: 00e65463 bge a2,a4,11b8 - 11b4: 0006069b sext.w a3,a2 - 11b8: c685 beqz a3,11e0 - 11ba: 619c ld a5,0(a1) - 11bc: 00a78e63 beq a5,a0,11d8 - 11c0: 00d50633 add a2,a0,a3 - 11c4: 00054703 lbu a4,0(a0) - 11c8: 0505 addi a0,a0,1 - 11ca: 0785 addi a5,a5,1 - 11cc: fee78fa3 sb a4,-1(a5) - 11d0: fec56ae3 bltu a0,a2,11c4 + 1178: 48dd li a7,23 + 117a: 00000073 ecall + 117e: 8082 ret + +0000000000001180 : +SYSCALL(lseek) + 1180: 48e1 li a7,24 + 1182: 00000073 ecall + 1186: 8082 ret + +0000000000001188 : + 1188: 48e5 li a7,25 + 118a: 00000073 ecall + 118e: 8082 ret + +0000000000001190 : + 1190: 45dc lw a5,12(a1) + 1192: 4598 lw a4,8(a1) + 1194: 9fb1 addw a5,a5,a2 + 1196: c5dc sw a5,12(a1) + 1198: 0007069b sext.w a3,a4 + 119c: 00e65463 bge a2,a4,11a4 + 11a0: 0006069b sext.w a3,a2 + 11a4: c685 beqz a3,11cc + 11a6: 619c ld a5,0(a1) + 11a8: 00a78e63 beq a5,a0,11c4 + 11ac: 00d50633 add a2,a0,a3 + 11b0: 00054703 lbu a4,0(a0) + 11b4: 0505 addi a0,a0,1 + 11b6: 0785 addi a5,a5,1 + 11b8: fee78fa3 sb a4,-1(a5) + 11bc: fec56ae3 bltu a0,a2,11b0 + 11c0: 6188 ld a0,0(a1) + 11c2: 4598 lw a4,8(a1) + 11c4: 9f15 subw a4,a4,a3 + 11c6: 9536 add a0,a0,a3 + 11c8: e188 sd a0,0(a1) + 11ca: c598 sw a4,8(a1) + 11cc: 1ff00793 li a5,511 + 11d0: 00e7d463 bge a5,a4,11d8 11d4: 6188 ld a0,0(a1) - 11d6: 4598 lw a4,8(a1) - 11d8: 9f15 subw a4,a4,a3 - 11da: 9536 add a0,a0,a3 - 11dc: e188 sd a0,0(a1) - 11de: c598 sw a4,8(a1) - 11e0: 1ff00793 li a5,511 - 11e4: 00e7d463 bge a5,a4,11ec - 11e8: 6188 ld a0,0(a1) - 11ea: 8082 ret - 11ec: 01058513 addi a0,a1,16 - 11f0: 8082 ret - -00000000000011f2 : - 11f2: 45dc lw a5,12(a1) - 11f4: 01058513 addi a0,a1,16 - 11f8: 9fb1 addw a5,a5,a2 - 11fa: c5dc sw a5,12(a1) - 11fc: 8082 ret - -00000000000011fe : - 11fe: e20508d3 fmv.x.d a7,fa0 - 1202: 82aa mv t0,a0 - 1204: 4348d813 srai a6,a7,0x34 - 1208: 8ec6 mv t4,a7 - 120a: 7ff87813 andi a6,a6,2047 - 120e: 8346 mv t1,a7 - 1210: 03f8d513 srli a0,a7,0x3f - 1214: 0008d663 bgez a7,1220 - 1218: 22a517d3 fneg.d fa5,fa0 - 121c: e20788d3 fmv.x.d a7,fa5 - 1220: 7ff00e13 li t3,2047 - 1224: 35c80663 beq a6,t3,1570 - 1228: 1101 addi sp,sp,-32 - 122a: 14080363 beqz a6,1370 - 122e: c018081b addiw a6,a6,-1023 - 1232: ec22 sd s0,24(sp) - 1234: 02081313 slli t1,a6,0x20 - 1238: 66034d63 bltz t1,18b2 - 123c: 4d100313 li t1,1233 - 1240: 0303033b mulw t1,t1,a6 - 1244: 4849 li a6,18 - 1246: 40c3531b sraiw t1,t1,0xc - 124a: 0013039b addiw t2,t1,1 - 124e: 4078083b subw a6,a6,t2 - 1252: 4359 li t1,22 - 1254: 17036163 bltu t1,a6,13b6 - 1258: 00005317 auipc t1,0x5 - 125c: 24830313 addi t1,t1,584 # 64a0 - 1260: 080e slli a6,a6,0x3 - 1262: 981a add a6,a6,t1 - 1264: 00083e03 ld t3,0(a6) - 1268: 00083607 fld fa2,0(a6) - 126c: f20887d3 fmv.d.x fa5,a7 - 1270: f8000837 lui a6,0xf8000 - 1274: 01187333 and t1,a6,a7 - 1278: 01c87833 and a6,a6,t3 - 127c: 12f676d3 fmul.d fa3,fa2,fa5 - 1280: f20807d3 fmv.d.x fa5,a6 - 1284: f2030753 fmv.d.x fa4,t1 - 1288: f20305d3 fmv.d.x fa1,t1 - 128c: 0af67653 fsub.d fa2,fa2,fa5 - 1290: f20887d3 fmv.d.x fa5,a7 - 1294: 0ae7f753 fsub.d fa4,fa5,fa4 - 1298: f20807d3 fmv.d.x fa5,a6 - 129c: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 - 12a0: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 - 12a4: f20805d3 fmv.d.x fa1,a6 - 12a8: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 - 12ac: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 - 12b0: 02d777d3 fadd.d fa5,fa4,fa3 - 12b4: 3782e837 lui a6,0x3782e - 12b8: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37824c8f> - 12bc: 0832 slli a6,a6,0xc - 12be: 9d980813 addi a6,a6,-1575 - 12c2: 084a slli a6,a6,0x12 - 12c4: 187d addi a6,a6,-1 - 12c6: c22798d3 fcvt.l.d a7,fa5,rtz - 12ca: 0ad7f6d3 fsub.d fa3,fa5,fa3 - 12ce: 00070e1b sext.w t3,a4 - 12d2: d228f653 fcvt.d.l fa2,a7 - 12d6: 0ac7f5d3 fsub.d fa1,fa5,fa2 - 12da: 0ad77753 fsub.d fa4,fa4,fa3 - 12de: 0af5f6d3 fsub.d fa3,fa1,fa5 - 12e2: 0ad5f553 fsub.d fa0,fa1,fa3 - 12e6: 02d67653 fadd.d fa2,fa2,fa3 - 12ea: 0aa7f7d3 fsub.d fa5,fa5,fa0 - 12ee: 0ac7f7d3 fsub.d fa5,fa5,fa2 - 12f2: 02b7f7d3 fadd.d fa5,fa5,fa1 - 12f6: 02e7f7d3 fadd.d fa5,fa5,fa4 - 12fa: c2279fd3 fcvt.l.d t6,fa5,rtz - 12fe: 9fc6 add t6,t6,a7 - 1300: 19f87063 bgeu a6,t6,1480 - 1304: 2385 addiw t2,t2,1 - 1306: 300e4363 bltz t3,160c - 130a: 00e3833b addw t1,t2,a4 - 130e: 475d li a4,23 - 1310: 30677663 bgeu a4,t1,161c - 1314: 577d li a4,-1 - 1316: 9301 srli a4,a4,0x20 - 1318: 43f75863 bge a4,t6,1748 - 131c: 07d00313 li t1,125 - 1320: 877e mv a4,t6 - 1322: 4e01 li t3,0 - 1324: 3e800813 li a6,1000 - 1328: 130e slli t1,t1,0x23 - 132a: a039 j 1338 - 132c: 030747b3 div a5,a4,a6 - 1330: 4e05 li t3,1 - 1332: 40674c63 blt a4,t1,174a - 1336: 873e mv a4,a5 - 1338: 030768b3 rem a7,a4,a6 - 133c: fe0888e3 beqz a7,132c - 1340: 400e0163 beqz t3,1742 - 1344: 8fbe mv t6,a5 - 1346: 05f5e7b7 lui a5,0x5f5e - 134a: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f552bf> - 134e: 04060413 addi s0,a2,64 - 1352: 03860613 addi a2,a2,56 - 1356: 15f7c863 blt a5,t6,14a6 - 135a: 000f871b sext.w a4,t6 - 135e: 20070463 beqz a4,1566 - 1362: 4f01 li t5,0 - 1364: 4f81 li t6,0 - 1366: 00007e97 auipc t4,0x7 - 136a: b82e8e93 addi t4,t4,-1150 # 7ee8 - 136e: aaa9 j 14c8 - 1370: 0306 slli t1,t1,0x1 - 1372: 3e030e63 beqz t1,176e - 1376: 4305 li t1,1 - 1378: ec22 sd s0,24(sp) - 137a: 00ce9e13 slli t3,t4,0xc - 137e: 134e slli t1,t1,0x33 - 1380: 520e4063 bltz t3,18a0 - 1384: 40135313 srai t1,t1,0x1 - 1388: 01d37e33 and t3,t1,t4 - 138c: 8f42 mv t5,a6 - 138e: 387d addiw a6,a6,-1 - 1390: fe0e0ae3 beqz t3,1384 - 1394: 26900313 li t1,617 - 1398: c00f081b addiw a6,t5,-1024 - 139c: 0268083b mulw a6,a6,t1 - 13a0: 41f8531b sraiw t1,a6,0x1f - 13a4: 0153531b srliw t1,t1,0x15 - 13a8: 0103033b addw t1,t1,a6 - 13ac: 40b3539b sraiw t2,t1,0xb - 13b0: 4849 li a6,18 - 13b2: 4078083b subw a6,a6,t2 - 13b6: 41f8531b sraiw t1,a6,0x1f - 13ba: 00684eb3 xor t4,a6,t1 - 13be: 406e8f3b subw t5,t4,t1 - 13c2: 2c900313 li t1,713 - 13c6: 03e3033b mulw t1,t1,t5 - 13ca: 4e35 li t3,13 - 13cc: 8efa mv t4,t5 - 13ce: 40e35f9b sraiw t6,t1,0xe - 13d2: 837e mv t1,t6 - 13d4: 23fe4363 blt t3,t6,15fa - 13d8: 5e25 li t3,-23 - 13da: 026e0e3b mulw t3,t3,t1 - 13de: 01de0ebb addw t4,t3,t4 - 13e2: 22084f63 bltz a6,1620 - 13e6: f2000753 fmv.d.x fa4,zero - 13ea: 00005e17 auipc t3,0x5 - 13ee: 0b6e0e13 addi t3,t3,182 # 64a0 - 13f2: 380e9e63 bnez t4,178e - 13f6: f20887d3 fmv.d.x fa5,a7 - 13fa: fff30f1b addiw t5,t1,-1 - 13fe: 0f0e slli t5,t5,0x3 - 1400: 02f777d3 fadd.d fa5,fa4,fa5 - 1404: 030e slli t1,t1,0x3 - 1406: 9f72 add t5,t5,t3 - 1408: 9e1a add t3,t3,t1 - 140a: 2e0e3e03 ld t3,736(t3) - 140e: 2e8f3587 fld fa1,744(t5) - 1412: f8000837 lui a6,0xf8000 - 1416: e2078ed3 fmv.x.d t4,fa5 - 141a: 12b7f6d3 fmul.d fa3,fa5,fa1 - 141e: f2088653 fmv.d.x fa2,a7 - 1422: 01d87333 and t1,a6,t4 - 1426: 01c87833 and a6,a6,t3 + 11d6: 8082 ret + 11d8: 01058513 addi a0,a1,16 + 11dc: 8082 ret + +00000000000011de : + 11de: 45dc lw a5,12(a1) + 11e0: 01058513 addi a0,a1,16 + 11e4: 9fb1 addw a5,a5,a2 + 11e6: c5dc sw a5,12(a1) + 11e8: 8082 ret + +00000000000011ea : + 11ea: e20508d3 fmv.x.d a7,fa0 + 11ee: 82aa mv t0,a0 + 11f0: 4348d813 srai a6,a7,0x34 + 11f4: 8ec6 mv t4,a7 + 11f6: 7ff87813 andi a6,a6,2047 + 11fa: 8346 mv t1,a7 + 11fc: 03f8d513 srli a0,a7,0x3f + 1200: 0008d663 bgez a7,120c + 1204: 22a517d3 fneg.d fa5,fa0 + 1208: e20788d3 fmv.x.d a7,fa5 + 120c: 7ff00e13 li t3,2047 + 1210: 35c80663 beq a6,t3,155c + 1214: 1101 addi sp,sp,-32 + 1216: 14080363 beqz a6,135c + 121a: c018081b addiw a6,a6,-1023 + 121e: ec22 sd s0,24(sp) + 1220: 02081313 slli t1,a6,0x20 + 1224: 66034d63 bltz t1,189e + 1228: 4d100313 li t1,1233 + 122c: 0303033b mulw t1,t1,a6 + 1230: 4849 li a6,18 + 1232: 40c3531b sraiw t1,t1,0xc + 1236: 0013039b addiw t2,t1,1 + 123a: 4078083b subw a6,a6,t2 + 123e: 4359 li t1,22 + 1240: 17036163 bltu t1,a6,13a2 + 1244: 00005317 auipc t1,0x5 + 1248: 2c430313 addi t1,t1,708 # 6508 + 124c: 080e slli a6,a6,0x3 + 124e: 981a add a6,a6,t1 + 1250: 00083e03 ld t3,0(a6) + 1254: 00083607 fld fa2,0(a6) + 1258: f20887d3 fmv.d.x fa5,a7 + 125c: f8000837 lui a6,0xf8000 + 1260: 01187333 and t1,a6,a7 + 1264: 01c87833 and a6,a6,t3 + 1268: 12f676d3 fmul.d fa3,fa2,fa5 + 126c: f20807d3 fmv.d.x fa5,a6 + 1270: f2030753 fmv.d.x fa4,t1 + 1274: f20305d3 fmv.d.x fa1,t1 + 1278: 0af67653 fsub.d fa2,fa2,fa5 + 127c: f20887d3 fmv.d.x fa5,a7 + 1280: 0ae7f753 fsub.d fa4,fa5,fa4 + 1284: f20807d3 fmv.d.x fa5,a6 + 1288: 6ab7f7c7 fmsub.d fa5,fa5,fa1,fa3 + 128c: 7ab677c3 fmadd.d fa5,fa2,fa1,fa5 + 1290: f20805d3 fmv.d.x fa1,a6 + 1294: 7ab777c3 fmadd.d fa5,fa4,fa1,fa5 + 1298: 7ac77743 fmadd.d fa4,fa4,fa2,fa5 + 129c: 02d777d3 fadd.d fa5,fa4,fa3 + 12a0: 3782e837 lui a6,0x3782e + 12a4: acf80813 addi a6,a6,-1329 # 3782dacf <_ZSt4cerr+0x37824c5f> + 12a8: 0832 slli a6,a6,0xc + 12aa: 9d980813 addi a6,a6,-1575 + 12ae: 084a slli a6,a6,0x12 + 12b0: 187d addi a6,a6,-1 + 12b2: c22798d3 fcvt.l.d a7,fa5,rtz + 12b6: 0ad7f6d3 fsub.d fa3,fa5,fa3 + 12ba: 00070e1b sext.w t3,a4 + 12be: d228f653 fcvt.d.l fa2,a7 + 12c2: 0ac7f5d3 fsub.d fa1,fa5,fa2 + 12c6: 0ad77753 fsub.d fa4,fa4,fa3 + 12ca: 0af5f6d3 fsub.d fa3,fa1,fa5 + 12ce: 0ad5f553 fsub.d fa0,fa1,fa3 + 12d2: 02d67653 fadd.d fa2,fa2,fa3 + 12d6: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 12da: 0ac7f7d3 fsub.d fa5,fa5,fa2 + 12de: 02b7f7d3 fadd.d fa5,fa5,fa1 + 12e2: 02e7f7d3 fadd.d fa5,fa5,fa4 + 12e6: c2279fd3 fcvt.l.d t6,fa5,rtz + 12ea: 9fc6 add t6,t6,a7 + 12ec: 19f87063 bgeu a6,t6,146c + 12f0: 2385 addiw t2,t2,1 + 12f2: 300e4363 bltz t3,15f8 + 12f6: 00e3833b addw t1,t2,a4 + 12fa: 475d li a4,23 + 12fc: 30677663 bgeu a4,t1,1608 + 1300: 577d li a4,-1 + 1302: 9301 srli a4,a4,0x20 + 1304: 43f75863 bge a4,t6,1734 + 1308: 07d00313 li t1,125 + 130c: 877e mv a4,t6 + 130e: 4e01 li t3,0 + 1310: 3e800813 li a6,1000 + 1314: 130e slli t1,t1,0x23 + 1316: a039 j 1324 + 1318: 030747b3 div a5,a4,a6 + 131c: 4e05 li t3,1 + 131e: 40674c63 blt a4,t1,1736 + 1322: 873e mv a4,a5 + 1324: 030768b3 rem a7,a4,a6 + 1328: fe0888e3 beqz a7,1318 + 132c: 400e0163 beqz t3,172e + 1330: 8fbe mv t6,a5 + 1332: 05f5e7b7 lui a5,0x5f5e + 1336: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f5528f> + 133a: 04060413 addi s0,a2,64 + 133e: 03860613 addi a2,a2,56 + 1342: 15f7c863 blt a5,t6,1492 + 1346: 000f871b sext.w a4,t6 + 134a: 20070463 beqz a4,1552 + 134e: 4f01 li t5,0 + 1350: 4f81 li t6,0 + 1352: 00007e97 auipc t4,0x7 + 1356: bc6e8e93 addi t4,t4,-1082 # 7f18 + 135a: aaa9 j 14b4 + 135c: 0306 slli t1,t1,0x1 + 135e: 3e030e63 beqz t1,175a + 1362: 4305 li t1,1 + 1364: ec22 sd s0,24(sp) + 1366: 00ce9e13 slli t3,t4,0xc + 136a: 134e slli t1,t1,0x33 + 136c: 520e4063 bltz t3,188c + 1370: 40135313 srai t1,t1,0x1 + 1374: 01d37e33 and t3,t1,t4 + 1378: 8f42 mv t5,a6 + 137a: 387d addiw a6,a6,-1 + 137c: fe0e0ae3 beqz t3,1370 + 1380: 26900313 li t1,617 + 1384: c00f081b addiw a6,t5,-1024 + 1388: 0268083b mulw a6,a6,t1 + 138c: 41f8531b sraiw t1,a6,0x1f + 1390: 0153531b srliw t1,t1,0x15 + 1394: 0103033b addw t1,t1,a6 + 1398: 40b3539b sraiw t2,t1,0xb + 139c: 4849 li a6,18 + 139e: 4078083b subw a6,a6,t2 + 13a2: 41f8531b sraiw t1,a6,0x1f + 13a6: 00684eb3 xor t4,a6,t1 + 13aa: 406e8f3b subw t5,t4,t1 + 13ae: 2c900313 li t1,713 + 13b2: 03e3033b mulw t1,t1,t5 + 13b6: 4e35 li t3,13 + 13b8: 8efa mv t4,t5 + 13ba: 40e35f9b sraiw t6,t1,0xe + 13be: 837e mv t1,t6 + 13c0: 23fe4363 blt t3,t6,15e6 + 13c4: 5e25 li t3,-23 + 13c6: 026e0e3b mulw t3,t3,t1 + 13ca: 01de0ebb addw t4,t3,t4 + 13ce: 22084f63 bltz a6,160c + 13d2: f2000753 fmv.d.x fa4,zero + 13d6: 00005e17 auipc t3,0x5 + 13da: 132e0e13 addi t3,t3,306 # 6508 + 13de: 380e9e63 bnez t4,177a + 13e2: f20887d3 fmv.d.x fa5,a7 + 13e6: fff30f1b addiw t5,t1,-1 + 13ea: 0f0e slli t5,t5,0x3 + 13ec: 02f777d3 fadd.d fa5,fa4,fa5 + 13f0: 030e slli t1,t1,0x3 + 13f2: 9f72 add t5,t5,t3 + 13f4: 9e1a add t3,t3,t1 + 13f6: 2e0e3e03 ld t3,736(t3) + 13fa: 2e8f3587 fld fa1,744(t5) + 13fe: f8000837 lui a6,0xf8000 + 1402: e2078ed3 fmv.x.d t4,fa5 + 1406: 12b7f6d3 fmul.d fa3,fa5,fa1 + 140a: f2088653 fmv.d.x fa2,a7 + 140e: 01d87333 and t1,a6,t4 + 1412: 01c87833 and a6,a6,t3 + 1416: f20807d3 fmv.d.x fa5,a6 + 141a: f2030053 fmv.d.x ft0,t1 + 141e: 0af5f553 fsub.d fa0,fa1,fa5 + 1422: f20e87d3 fmv.d.x fa5,t4 + 1426: 0ac7f0d3 fsub.d ft1,fa5,fa2 142a: f20807d3 fmv.d.x fa5,a6 - 142e: f2030053 fmv.d.x ft0,t1 - 1432: 0af5f553 fsub.d fa0,fa1,fa5 + 142e: f2030653 fmv.d.x fa2,t1 + 1432: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 1436: f20e87d3 fmv.d.x fa5,t4 - 143a: 0ac7f0d3 fsub.d ft1,fa5,fa2 - 143e: f20807d3 fmv.d.x fa5,a6 - 1442: f2030653 fmv.d.x fa2,t1 - 1446: 6ac7f647 fmsub.d fa2,fa5,fa2,fa3 - 144a: f20e87d3 fmv.d.x fa5,t4 - 144e: 0a177753 fsub.d fa4,fa4,ft1 - 1452: f20300d3 fmv.d.x ft1,t1 - 1456: 0a07f7d3 fsub.d fa5,fa5,ft0 - 145a: 350f3007 fld ft0,848(t5) - 145e: 62157643 fmadd.d fa2,fa0,ft1,fa2 - 1462: 12b77753 fmul.d fa4,fa4,fa1 - 1466: f20805d3 fmv.d.x fa1,a6 - 146a: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 - 146e: f20e85d3 fmv.d.x fa1,t4 - 1472: 7205f743 fmadd.d fa4,fa1,ft0,fa4 - 1476: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 - 147a: 02e7f753 fadd.d fa4,fa5,fa4 - 147e: bd0d j 12b0 - 1480: 00e3833b addw t1,t2,a4 - 1484: 2a0e4663 bltz t3,1730 - 1488: 475d li a4,23 - 148a: 10677663 bgeu a4,t1,1596 - 148e: e80f93e3 bnez t6,1314 - 1492: 05f5e7b7 lui a5,0x5f5e - 1496: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f552bf> - 149a: 04060413 addi s0,a2,64 - 149e: 03860613 addi a2,a2,56 - 14a2: ebf7dce3 bge a5,t6,135a - 14a6: 4f01 li t5,0 - 14a8: 00007e97 auipc t4,0x7 - 14ac: a40e8e93 addi t4,t4,-1472 # 7ee8 - 14b0: 05f5e7b7 lui a5,0x5f5e - 14b4: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f552c0> - 14b8: 02ffe833 rem a6,t6,a5 - 14bc: 02ffcfb3 div t6,t6,a5 - 14c0: 0008071b sext.w a4,a6 - 14c4: 0a080463 beqz a6,156c - 14c8: 8822 mv a6,s0 - 14ca: 06400893 li a7,100 - 14ce: 06300e13 li t3,99 - 14d2: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff71be> - 14d4: 0007031b sext.w t1,a4 - 14d8: 031777bb remuw a5,a4,a7 - 14dc: 2785 addiw a5,a5,1 - 14de: 0017979b slliw a5,a5,0x1 - 14e2: 1782 slli a5,a5,0x20 - 14e4: 9381 srli a5,a5,0x20 - 14e6: 97f6 add a5,a5,t4 - 14e8: 0007d783 lhu a5,0(a5) - 14ec: 0317573b divuw a4,a4,a7 - 14f0: 00f81023 sh a5,0(a6) - 14f4: fc6e6fe3 bltu t3,t1,14d2 - 14f8: 008f0f3b addw t5,t5,s0 - 14fc: 410f0f3b subw t5,t5,a6 - 1500: 020f8f63 beqz t6,153e - 1504: 87c2 mv a5,a6 - 1506: 03000713 li a4,48 - 150a: 04c80c63 beq a6,a2,1562 - 150e: 17fd addi a5,a5,-1 - 1510: 00e78023 sb a4,0(a5) - 1514: fec79de3 bne a5,a2,150e - 1518: 408807b3 sub a5,a6,s0 - 151c: 00ff07bb addw a5,t5,a5 - 1520: 1461 addi s0,s0,-8 - 1522: 00878f1b addiw t5,a5,8 - 1526: 05f5e7b7 lui a5,0x5f5e - 152a: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f552bf> - 152e: ff840613 addi a2,s0,-8 - 1532: f7f7cfe3 blt a5,t6,14b0 - 1536: 000f871b sext.w a4,t6 - 153a: 4f81 li t6,0 - 153c: b771 j 14c8 - 153e: 020f0563 beqz t5,1568 - 1542: 00084703 lbu a4,0(a6) - 1546: 03000793 li a5,48 - 154a: 22f70f63 beq a4,a5,1788 - 154e: 2f01 sext.w t5,t5 - 1550: 0076a023 sw t2,0(a3) - 1554: 6462 ld s0,24(sp) - 1556: 0102b023 sd a6,0(t0) - 155a: 01e5a023 sw t5,0(a1) - 155e: 6105 addi sp,sp,32 - 1560: 8082 ret - 1562: 8442 mv s0,a6 - 1564: b7c9 j 1526 - 1566: 8822 mv a6,s0 - 1568: 4f01 li t5,0 - 156a: b7dd j 1550 - 156c: 8822 mv a6,s0 - 156e: bf59 j 1504 - 1570: 0eb2 slli t4,t4,0xc - 1572: 00005797 auipc a5,0x5 - 1576: bfe78793 addi a5,a5,-1026 # 6170 <_GLOBAL__sub_I__ZSt3cin+0x16c> - 157a: 000e8663 beqz t4,1586 - 157e: 00005797 auipc a5,0x5 - 1582: bea78793 addi a5,a5,-1046 # 6168 <_GLOBAL__sub_I__ZSt3cin+0x164> - 1586: 00f2b023 sd a5,0(t0) - 158a: 679d lui a5,0x7 - 158c: c29c sw a5,0(a3) - 158e: 4f0d li t5,3 - 1590: 01e5a023 sw t5,0(a1) - 1594: 8082 ret - 1596: 3b9ad737 lui a4,0x3b9ad - 159a: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a3bbf> - 159e: 07f76f63 bltu a4,t6,161c - 15a2: 4805 li a6,1 - 15a4: 02081713 slli a4,a6,0x20 - 15a8: 01d75893 srli a7,a4,0x1d - 15ac: 00005717 auipc a4,0x5 - 15b0: 2ac70713 addi a4,a4,684 # 6858 - 15b4: 9746 add a4,a4,a7 - 15b6: 4e51 li t3,20 - 15b8: a021 j 15c0 - 15ba: 2805 addiw a6,a6,1 - 15bc: edc809e3 beq a6,t3,148e - 15c0: 00073883 ld a7,0(a4) - 15c4: 0721 addi a4,a4,8 - 15c6: ff1ffae3 bgeu t6,a7,15ba - 15ca: ed0372e3 bgeu t1,a6,148e - 15ce: 4068083b subw a6,a6,t1 - 15d2: 475d li a4,23 - 15d4: eb076de3 bltu a4,a6,148e - 15d8: 080e slli a6,a6,0x3 - 15da: 00005717 auipc a4,0x5 - 15de: ec670713 addi a4,a4,-314 # 64a0 - 15e2: 9742 add a4,a4,a6 - 15e4: 3b873803 ld a6,952(a4) - 15e8: 00185713 srli a4,a6,0x1 - 15ec: 977e add a4,a4,t6 - 15ee: 01176363 bltu a4,a7,15f4 - 15f2: 2385 addiw t2,t2,1 - 15f4: 03075fb3 divu t6,a4,a6 - 15f8: bd59 j 148e - 15fa: 4335 li t1,13 - 15fc: 5e25 li t3,-23 - 15fe: 026e0e3b mulw t3,t3,t1 - 1602: 01de0ebb addw t4,t3,t4 - 1606: de0850e3 bgez a6,13e6 - 160a: a819 j 1620 - 160c: 02571313 slli t1,a4,0x25 - 1610: 02535313 srli t1,t1,0x25 - 1614: 0305 addi t1,t1,1 - 1616: 475d li a4,23 - 1618: ce676ee3 bltu a4,t1,1314 - 161c: 4829 li a6,10 - 161e: b759 j 15a4 - 1620: 260e8663 beqz t4,188c - 1624: 00231e13 slli t3,t1,0x2 - 1628: 41c30e33 sub t3,t1,t3 - 162c: 0e0e slli t3,t3,0x3 - 162e: 9e1a add t3,t3,t1 - 1630: fffe881b addiw a6,t4,-1 - 1634: 9e7a add t3,t3,t5 - 1636: 00005e97 auipc t4,0x5 - 163a: e6ae8e93 addi t4,t4,-406 # 64a0 - 163e: 0e0e slli t3,t3,0x3 - 1640: 080e slli a6,a6,0x3 - 1642: 9876 add a6,a6,t4 - 1644: 9ef2 add t4,t4,t3 - 1646: 0b883607 fld fa2,184(a6) - 164a: f20887d3 fmv.d.x fa5,a7 - 164e: 0b0ebf03 ld t5,176(t4) - 1652: f8000e37 lui t3,0xf8000 - 1656: 011e7eb3 and t4,t3,a7 - 165a: 12f676d3 fmul.d fa3,fa2,fa5 - 165e: 01ee7e33 and t3,t3,t5 - 1662: f20e07d3 fmv.d.x fa5,t3 - 1666: f20e0753 fmv.d.x fa4,t3 - 166a: f20e8553 fmv.d.x fa0,t4 - 166e: 0af67653 fsub.d fa2,fa2,fa5 - 1672: f20e87d3 fmv.d.x fa5,t4 - 1676: f20e85d3 fmv.d.x fa1,t4 - 167a: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 - 167e: f2088753 fmv.d.x fa4,a7 - 1682: 0ab775d3 fsub.d fa1,fa4,fa1 - 1686: 16883707 fld fa4,360(a6) - 168a: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 - 168e: f20e0553 fmv.d.x fa0,t3 - 1692: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 - 1696: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 - 169a: f20887d3 fmv.d.x fa5,a7 - 169e: 5af77743 fmadd.d fa4,fa4,fa5,fa1 - 16a2: c00f87e3 beqz t6,12b0 - 16a6: 02d777d3 fadd.d fa5,fa4,fa3 - 16aa: fff3089b addiw a7,t1,-1 - 16ae: 00005817 auipc a6,0x5 - 16b2: df280813 addi a6,a6,-526 # 64a0 - 16b6: 030e slli t1,t1,0x3 - 16b8: 088e slli a7,a7,0x3 - 16ba: 98c2 add a7,a7,a6 - 16bc: 981a add a6,a6,t1 - 16be: e2078e53 fmv.x.d t3,fa5 - 16c2: 21083e83 ld t4,528(a6) - 16c6: f8000837 lui a6,0xf8000 - 16ca: 2188b507 fld fa0,536(a7) - 16ce: 01c87333 and t1,a6,t3 - 16d2: 01d87833 and a6,a6,t4 - 16d6: f2080653 fmv.d.x fa2,a6 - 16da: 12f577d3 fmul.d fa5,fa0,fa5 - 16de: 2808b587 fld fa1,640(a7) - 16e2: 0ac57053 fsub.d ft0,fa0,fa2 - 16e6: f20e0653 fmv.d.x fa2,t3 - 16ea: 0ad67153 fsub.d ft2,fa2,fa3 - 16ee: f20806d3 fmv.d.x fa3,a6 - 16f2: f2030653 fmv.d.x fa2,t1 - 16f6: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 - 16fa: f20e06d3 fmv.d.x fa3,t3 - 16fe: 0ac6f653 fsub.d fa2,fa3,fa2 - 1702: 22f786d3 fmv.d fa3,fa5 - 1706: 0a2777d3 fsub.d fa5,fa4,ft2 - 170a: f2030753 fmv.d.x fa4,t1 - 170e: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 - 1712: 12a7f7d3 fmul.d fa5,fa5,fa0 - 1716: f2080553 fmv.d.x fa0,a6 - 171a: 72a67743 fmadd.d fa4,fa2,fa0,fa4 - 171e: f20e0553 fmv.d.x fa0,t3 - 1722: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 - 1726: 72067643 fmadd.d fa2,fa2,ft0,fa4 - 172a: 02f67753 fadd.d fa4,fa2,fa5 - 172e: b649 j 12b0 - 1730: 02571313 slli t1,a4,0x25 - 1734: 02535313 srli t1,t1,0x25 - 1738: 0305 addi t1,t1,1 - 173a: 475d li a4,23 - 173c: d46769e3 bltu a4,t1,148e - 1740: bd99 j 1596 - 1742: 87fe mv a5,t6 - 1744: 8fbe mv t6,a5 - 1746: b101 j 1346 - 1748: 87fe mv a5,t6 - 174a: 3e800713 li a4,1000 - 174e: 02e7f73b remuw a4,a5,a4 - 1752: 2781 sext.w a5,a5 - 1754: eb01 bnez a4,1764 - 1756: 3e800813 li a6,1000 - 175a: 0307d7bb divuw a5,a5,a6 - 175e: 0307f73b remuw a4,a5,a6 - 1762: df65 beqz a4,175a - 1764: 02079f93 slli t6,a5,0x20 - 1768: 020fdf93 srli t6,t6,0x20 - 176c: b31d j 1492 - 176e: 4785 li a5,1 - 1770: c29c sw a5,0(a3) - 1772: 00c2b023 sd a2,0(t0) - 1776: 03000793 li a5,48 - 177a: 00f60023 sb a5,0(a2) - 177e: 4f05 li t5,1 - 1780: 01e5a023 sw t5,0(a1) - 1784: 6105 addi sp,sp,32 - 1786: 8082 ret - 1788: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff71c1> - 178a: 3f7d addiw t5,t5,-1 - 178c: b3d1 j 1550 - 178e: e826 sd s1,16(sp) - 1790: e44a sd s2,8(sp) - 1792: 4859 li a6,22 - 1794: 8976 mv s2,t4 - 1796: 11d84363 blt a6,t4,189c - 179a: 0009049b sext.w s1,s2 - 179e: 00005e17 auipc t3,0x5 - 17a2: d02e0e13 addi t3,t3,-766 # 64a0 - 17a6: 00349813 slli a6,s1,0x3 - 17aa: 9872 add a6,a6,t3 - 17ac: 00083687 fld fa3,0(a6) - 17b0: 00083803 ld a6,0(a6) - 17b4: f20887d3 fmv.d.x fa5,a7 - 17b8: f8000fb7 lui t6,0xf8000 - 17bc: 010ff833 and a6,t6,a6 - 17c0: 12f6f553 fmul.d fa0,fa3,fa5 - 17c4: f20807d3 fmv.d.x fa5,a6 - 17c8: 011ff433 and s0,t6,a7 - 17cc: f2040753 fmv.d.x fa4,s0 - 17d0: 0af6f6d3 fsub.d fa3,fa3,fa5 - 17d4: f20887d3 fmv.d.x fa5,a7 - 17d8: f2080653 fmv.d.x fa2,a6 - 17dc: 412e8ebb subw t4,t4,s2 - 17e0: 0ae7f753 fsub.d fa4,fa5,fa4 - 17e4: f20407d3 fmv.d.x fa5,s0 - 17e8: e20508d3 fmv.x.d a7,fa0 - 17ec: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 - 17f0: f2040653 fmv.d.x fa2,s0 - 17f4: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 - 17f8: f2080653 fmv.d.x fa2,a6 - 17fc: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 - 1800: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 - 1804: 080e8963 beqz t4,1896 - 1808: 02e577d3 fadd.d fa5,fa0,fa4 - 180c: 0e8e slli t4,t4,0x3 - 180e: 01de0833 add a6,t3,t4 - 1812: 00083587 fld fa1,0(a6) - 1816: 00231893 slli a7,t1,0x2 - 181a: 411308b3 sub a7,t1,a7 - 181e: 00389813 slli a6,a7,0x3 - 1822: e2078453 fmv.x.d s0,fa5 - 1826: 12f5f7d3 fmul.d fa5,fa1,fa5 - 182a: 981a add a6,a6,t1 - 182c: 987a add a6,a6,t5 - 182e: 40980833 sub a6,a6,s1 - 1832: 080e slli a6,a6,0x3 - 1834: 9872 add a6,a6,t3 - 1836: 00083e83 ld t4,0(a6) - 183a: 008ff833 and a6,t6,s0 - 183e: e20788d3 fmv.x.d a7,fa5 - 1842: f20806d3 fmv.d.x fa3,a6 - 1846: f20407d3 fmv.d.x fa5,s0 - 184a: 01dfffb3 and t6,t6,t4 - 184e: f20880d3 fmv.d.x ft1,a7 - 1852: 0ad7f653 fsub.d fa2,fa5,fa3 - 1856: f20f87d3 fmv.d.x fa5,t6 - 185a: 64c2 ld s1,16(sp) - 185c: 6922 ld s2,8(sp) - 185e: 0af5f053 fsub.d ft0,fa1,fa5 - 1862: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 - 1866: f20407d3 fmv.d.x fa5,s0 - 186a: 0aa7f7d3 fsub.d fa5,fa5,fa0 - 186e: f2080553 fmv.d.x fa0,a6 - 1872: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 - 1876: 0af77753 fsub.d fa4,fa4,fa5 - 187a: f20f87d3 fmv.d.x fa5,t6 - 187e: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 - 1882: 7a067643 fmadd.d fa2,fa2,ft0,fa5 - 1886: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 - 188a: b6b5 j 13f6 - 188c: f20886d3 fmv.d.x fa3,a7 - 1890: f2000753 fmv.d.x fa4,zero - 1894: b539 j 16a2 - 1896: 64c2 ld s1,16(sp) - 1898: 6922 ld s2,8(sp) - 189a: beb1 j 13f6 - 189c: 4959 li s2,22 - 189e: bdf5 j 179a - 18a0: e826 sd s1,16(sp) - 18a2: e44a sd s2,8(sp) - 18a4: ecc00393 li t2,-308 - 18a8: 4eed li t4,27 - 18aa: 4335 li t1,13 - 18ac: 14600f13 li t5,326 - 18b0: b5cd j 1792 - 18b2: 26900313 li t1,617 - 18b6: 0303083b mulw a6,t1,a6 - 18ba: 41f8531b sraiw t1,a6,0x1f - 18be: 0153531b srliw t1,t1,0x15 - 18c2: 0103033b addw t1,t1,a6 - 18c6: 40b3539b sraiw t2,t1,0xb - 18ca: 4849 li a6,18 - 18cc: 4078083b subw a6,a6,t2 - 18d0: b249 j 1252 - -00000000000018d2 <_in_char.part.0>: + 143a: 0a177753 fsub.d fa4,fa4,ft1 + 143e: f20300d3 fmv.d.x ft1,t1 + 1442: 0a07f7d3 fsub.d fa5,fa5,ft0 + 1446: 350f3007 fld ft0,848(t5) + 144a: 62157643 fmadd.d fa2,fa0,ft1,fa2 + 144e: 12b77753 fmul.d fa4,fa4,fa1 + 1452: f20805d3 fmv.d.x fa1,a6 + 1456: 62b7f643 fmadd.d fa2,fa5,fa1,fa2 + 145a: f20e85d3 fmv.d.x fa1,t4 + 145e: 7205f743 fmadd.d fa4,fa1,ft0,fa4 + 1462: 62a7f7c3 fmadd.d fa5,fa5,fa0,fa2 + 1466: 02e7f753 fadd.d fa4,fa5,fa4 + 146a: bd0d j 129c + 146c: 00e3833b addw t1,t2,a4 + 1470: 2a0e4663 bltz t3,171c + 1474: 475d li a4,23 + 1476: 10677663 bgeu a4,t1,1582 + 147a: e80f93e3 bnez t6,1300 + 147e: 05f5e7b7 lui a5,0x5f5e + 1482: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f5528f> + 1486: 04060413 addi s0,a2,64 + 148a: 03860613 addi a2,a2,56 + 148e: ebf7dce3 bge a5,t6,1346 + 1492: 4f01 li t5,0 + 1494: 00007e97 auipc t4,0x7 + 1498: a84e8e93 addi t4,t4,-1404 # 7f18 + 149c: 05f5e7b7 lui a5,0x5f5e + 14a0: 10078793 addi a5,a5,256 # 5f5e100 <_ZSt4cerr+0x5f55290> + 14a4: 02ffe833 rem a6,t6,a5 + 14a8: 02ffcfb3 div t6,t6,a5 + 14ac: 0008071b sext.w a4,a6 + 14b0: 0a080463 beqz a6,1558 + 14b4: 8822 mv a6,s0 + 14b6: 06400893 li a7,100 + 14ba: 06300e13 li t3,99 + 14be: 1879 addi a6,a6,-2 # fffffffff7fffffe <_ZSt4cerr+0xfffffffff7ff718e> + 14c0: 0007031b sext.w t1,a4 + 14c4: 031777bb remuw a5,a4,a7 + 14c8: 2785 addiw a5,a5,1 + 14ca: 0017979b slliw a5,a5,0x1 + 14ce: 1782 slli a5,a5,0x20 + 14d0: 9381 srli a5,a5,0x20 + 14d2: 97f6 add a5,a5,t4 + 14d4: 0007d783 lhu a5,0(a5) + 14d8: 0317573b divuw a4,a4,a7 + 14dc: 00f81023 sh a5,0(a6) + 14e0: fc6e6fe3 bltu t3,t1,14be + 14e4: 008f0f3b addw t5,t5,s0 + 14e8: 410f0f3b subw t5,t5,a6 + 14ec: 020f8f63 beqz t6,152a + 14f0: 87c2 mv a5,a6 + 14f2: 03000713 li a4,48 + 14f6: 04c80c63 beq a6,a2,154e + 14fa: 17fd addi a5,a5,-1 + 14fc: 00e78023 sb a4,0(a5) + 1500: fec79de3 bne a5,a2,14fa + 1504: 408807b3 sub a5,a6,s0 + 1508: 00ff07bb addw a5,t5,a5 + 150c: 1461 addi s0,s0,-8 + 150e: 00878f1b addiw t5,a5,8 + 1512: 05f5e7b7 lui a5,0x5f5e + 1516: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f5528f> + 151a: ff840613 addi a2,s0,-8 + 151e: f7f7cfe3 blt a5,t6,149c + 1522: 000f871b sext.w a4,t6 + 1526: 4f81 li t6,0 + 1528: b771 j 14b4 + 152a: 020f0563 beqz t5,1554 + 152e: 00084703 lbu a4,0(a6) + 1532: 03000793 li a5,48 + 1536: 22f70f63 beq a4,a5,1774 + 153a: 2f01 sext.w t5,t5 + 153c: 0076a023 sw t2,0(a3) + 1540: 6462 ld s0,24(sp) + 1542: 0102b023 sd a6,0(t0) + 1546: 01e5a023 sw t5,0(a1) + 154a: 6105 addi sp,sp,32 + 154c: 8082 ret + 154e: 8442 mv s0,a6 + 1550: b7c9 j 1512 + 1552: 8822 mv a6,s0 + 1554: 4f01 li t5,0 + 1556: b7dd j 153c + 1558: 8822 mv a6,s0 + 155a: bf59 j 14f0 + 155c: 0eb2 slli t4,t4,0xc + 155e: 00005797 auipc a5,0x5 + 1562: c7a78793 addi a5,a5,-902 # 61d8 <_GLOBAL__sub_I__ZSt3cin+0x1e8> + 1566: 000e8663 beqz t4,1572 + 156a: 00005797 auipc a5,0x5 + 156e: c6678793 addi a5,a5,-922 # 61d0 <_GLOBAL__sub_I__ZSt3cin+0x1e0> + 1572: 00f2b023 sd a5,0(t0) + 1576: 679d lui a5,0x7 + 1578: c29c sw a5,0(a3) + 157a: 4f0d li t5,3 + 157c: 01e5a023 sw t5,0(a1) + 1580: 8082 ret + 1582: 3b9ad737 lui a4,0x3b9ad + 1586: 9ff70713 addi a4,a4,-1537 # 3b9ac9ff <_ZSt4cerr+0x3b9a3b8f> + 158a: 07f76f63 bltu a4,t6,1608 + 158e: 4805 li a6,1 + 1590: 02081713 slli a4,a6,0x20 + 1594: 01d75893 srli a7,a4,0x1d + 1598: 00005717 auipc a4,0x5 + 159c: 32870713 addi a4,a4,808 # 68c0 + 15a0: 9746 add a4,a4,a7 + 15a2: 4e51 li t3,20 + 15a4: a021 j 15ac + 15a6: 2805 addiw a6,a6,1 + 15a8: edc809e3 beq a6,t3,147a + 15ac: 00073883 ld a7,0(a4) + 15b0: 0721 addi a4,a4,8 + 15b2: ff1ffae3 bgeu t6,a7,15a6 + 15b6: ed0372e3 bgeu t1,a6,147a + 15ba: 4068083b subw a6,a6,t1 + 15be: 475d li a4,23 + 15c0: eb076de3 bltu a4,a6,147a + 15c4: 080e slli a6,a6,0x3 + 15c6: 00005717 auipc a4,0x5 + 15ca: f4270713 addi a4,a4,-190 # 6508 + 15ce: 9742 add a4,a4,a6 + 15d0: 3b873803 ld a6,952(a4) + 15d4: 00185713 srli a4,a6,0x1 + 15d8: 977e add a4,a4,t6 + 15da: 01176363 bltu a4,a7,15e0 + 15de: 2385 addiw t2,t2,1 + 15e0: 03075fb3 divu t6,a4,a6 + 15e4: bd59 j 147a + 15e6: 4335 li t1,13 + 15e8: 5e25 li t3,-23 + 15ea: 026e0e3b mulw t3,t3,t1 + 15ee: 01de0ebb addw t4,t3,t4 + 15f2: de0850e3 bgez a6,13d2 + 15f6: a819 j 160c + 15f8: 02571313 slli t1,a4,0x25 + 15fc: 02535313 srli t1,t1,0x25 + 1600: 0305 addi t1,t1,1 + 1602: 475d li a4,23 + 1604: ce676ee3 bltu a4,t1,1300 + 1608: 4829 li a6,10 + 160a: b759 j 1590 + 160c: 260e8663 beqz t4,1878 + 1610: 00231e13 slli t3,t1,0x2 + 1614: 41c30e33 sub t3,t1,t3 + 1618: 0e0e slli t3,t3,0x3 + 161a: 9e1a add t3,t3,t1 + 161c: fffe881b addiw a6,t4,-1 + 1620: 9e7a add t3,t3,t5 + 1622: 00005e97 auipc t4,0x5 + 1626: ee6e8e93 addi t4,t4,-282 # 6508 + 162a: 0e0e slli t3,t3,0x3 + 162c: 080e slli a6,a6,0x3 + 162e: 9876 add a6,a6,t4 + 1630: 9ef2 add t4,t4,t3 + 1632: 0b883607 fld fa2,184(a6) + 1636: f20887d3 fmv.d.x fa5,a7 + 163a: 0b0ebf03 ld t5,176(t4) + 163e: f8000e37 lui t3,0xf8000 + 1642: 011e7eb3 and t4,t3,a7 + 1646: 12f676d3 fmul.d fa3,fa2,fa5 + 164a: 01ee7e33 and t3,t3,t5 + 164e: f20e07d3 fmv.d.x fa5,t3 + 1652: f20e0753 fmv.d.x fa4,t3 + 1656: f20e8553 fmv.d.x fa0,t4 + 165a: 0af67653 fsub.d fa2,fa2,fa5 + 165e: f20e87d3 fmv.d.x fa5,t4 + 1662: f20e85d3 fmv.d.x fa1,t4 + 1666: 6ae7f7c7 fmsub.d fa5,fa5,fa4,fa3 + 166a: f2088753 fmv.d.x fa4,a7 + 166e: 0ab775d3 fsub.d fa1,fa4,fa1 + 1672: 16883707 fld fa4,360(a6) + 1676: 7aa677c3 fmadd.d fa5,fa2,fa0,fa5 + 167a: f20e0553 fmv.d.x fa0,t3 + 167e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 1682: 7ac5f5c3 fmadd.d fa1,fa1,fa2,fa5 + 1686: f20887d3 fmv.d.x fa5,a7 + 168a: 5af77743 fmadd.d fa4,fa4,fa5,fa1 + 168e: c00f87e3 beqz t6,129c + 1692: 02d777d3 fadd.d fa5,fa4,fa3 + 1696: fff3089b addiw a7,t1,-1 + 169a: 00005817 auipc a6,0x5 + 169e: e6e80813 addi a6,a6,-402 # 6508 + 16a2: 030e slli t1,t1,0x3 + 16a4: 088e slli a7,a7,0x3 + 16a6: 98c2 add a7,a7,a6 + 16a8: 981a add a6,a6,t1 + 16aa: e2078e53 fmv.x.d t3,fa5 + 16ae: 21083e83 ld t4,528(a6) + 16b2: f8000837 lui a6,0xf8000 + 16b6: 2188b507 fld fa0,536(a7) + 16ba: 01c87333 and t1,a6,t3 + 16be: 01d87833 and a6,a6,t4 + 16c2: f2080653 fmv.d.x fa2,a6 + 16c6: 12f577d3 fmul.d fa5,fa0,fa5 + 16ca: 2808b587 fld fa1,640(a7) + 16ce: 0ac57053 fsub.d ft0,fa0,fa2 + 16d2: f20e0653 fmv.d.x fa2,t3 + 16d6: 0ad67153 fsub.d ft2,fa2,fa3 + 16da: f20806d3 fmv.d.x fa3,a6 + 16de: f2030653 fmv.d.x fa2,t1 + 16e2: 7ac6f0c7 fmsub.d ft1,fa3,fa2,fa5 + 16e6: f20e06d3 fmv.d.x fa3,t3 + 16ea: 0ac6f653 fsub.d fa2,fa3,fa2 + 16ee: 22f786d3 fmv.d fa3,fa5 + 16f2: 0a2777d3 fsub.d fa5,fa4,ft2 + 16f6: f2030753 fmv.d.x fa4,t1 + 16fa: 0ae07743 fmadd.d fa4,ft0,fa4,ft1 + 16fe: 12a7f7d3 fmul.d fa5,fa5,fa0 + 1702: f2080553 fmv.d.x fa0,a6 + 1706: 72a67743 fmadd.d fa4,fa2,fa0,fa4 + 170a: f20e0553 fmv.d.x fa0,t3 + 170e: 7aa5f7c3 fmadd.d fa5,fa1,fa0,fa5 + 1712: 72067643 fmadd.d fa2,fa2,ft0,fa4 + 1716: 02f67753 fadd.d fa4,fa2,fa5 + 171a: b649 j 129c + 171c: 02571313 slli t1,a4,0x25 + 1720: 02535313 srli t1,t1,0x25 + 1724: 0305 addi t1,t1,1 + 1726: 475d li a4,23 + 1728: d46769e3 bltu a4,t1,147a + 172c: bd99 j 1582 + 172e: 87fe mv a5,t6 + 1730: 8fbe mv t6,a5 + 1732: b101 j 1332 + 1734: 87fe mv a5,t6 + 1736: 3e800713 li a4,1000 + 173a: 02e7f73b remuw a4,a5,a4 + 173e: 2781 sext.w a5,a5 + 1740: eb01 bnez a4,1750 + 1742: 3e800813 li a6,1000 + 1746: 0307d7bb divuw a5,a5,a6 + 174a: 0307f73b remuw a4,a5,a6 + 174e: df65 beqz a4,1746 + 1750: 02079f93 slli t6,a5,0x20 + 1754: 020fdf93 srli t6,t6,0x20 + 1758: b31d j 147e + 175a: 4785 li a5,1 + 175c: c29c sw a5,0(a3) + 175e: 00c2b023 sd a2,0(t0) + 1762: 03000793 li a5,48 + 1766: 00f60023 sb a5,0(a2) + 176a: 4f05 li t5,1 + 176c: 01e5a023 sw t5,0(a1) + 1770: 6105 addi sp,sp,32 + 1772: 8082 ret + 1774: 0805 addi a6,a6,1 # fffffffff8000001 <_ZSt4cerr+0xfffffffff7ff7191> + 1776: 3f7d addiw t5,t5,-1 + 1778: b3d1 j 153c + 177a: e826 sd s1,16(sp) + 177c: e44a sd s2,8(sp) + 177e: 4859 li a6,22 + 1780: 8976 mv s2,t4 + 1782: 11d84363 blt a6,t4,1888 + 1786: 0009049b sext.w s1,s2 + 178a: 00005e17 auipc t3,0x5 + 178e: d7ee0e13 addi t3,t3,-642 # 6508 + 1792: 00349813 slli a6,s1,0x3 + 1796: 9872 add a6,a6,t3 + 1798: 00083687 fld fa3,0(a6) + 179c: 00083803 ld a6,0(a6) + 17a0: f20887d3 fmv.d.x fa5,a7 + 17a4: f8000fb7 lui t6,0xf8000 + 17a8: 010ff833 and a6,t6,a6 + 17ac: 12f6f553 fmul.d fa0,fa3,fa5 + 17b0: f20807d3 fmv.d.x fa5,a6 + 17b4: 011ff433 and s0,t6,a7 + 17b8: f2040753 fmv.d.x fa4,s0 + 17bc: 0af6f6d3 fsub.d fa3,fa3,fa5 + 17c0: f20887d3 fmv.d.x fa5,a7 + 17c4: f2080653 fmv.d.x fa2,a6 + 17c8: 412e8ebb subw t4,t4,s2 + 17cc: 0ae7f753 fsub.d fa4,fa5,fa4 + 17d0: f20407d3 fmv.d.x fa5,s0 + 17d4: e20508d3 fmv.x.d a7,fa0 + 17d8: 52c7f7c7 fmsub.d fa5,fa5,fa2,fa0 + 17dc: f2040653 fmv.d.x fa2,s0 + 17e0: 7ac6f7c3 fmadd.d fa5,fa3,fa2,fa5 + 17e4: f2080653 fmv.d.x fa2,a6 + 17e8: 7ac777c3 fmadd.d fa5,fa4,fa2,fa5 + 17ec: 7ad77743 fmadd.d fa4,fa4,fa3,fa5 + 17f0: 080e8963 beqz t4,1882 + 17f4: 02e577d3 fadd.d fa5,fa0,fa4 + 17f8: 0e8e slli t4,t4,0x3 + 17fa: 01de0833 add a6,t3,t4 + 17fe: 00083587 fld fa1,0(a6) + 1802: 00231893 slli a7,t1,0x2 + 1806: 411308b3 sub a7,t1,a7 + 180a: 00389813 slli a6,a7,0x3 + 180e: e2078453 fmv.x.d s0,fa5 + 1812: 12f5f7d3 fmul.d fa5,fa1,fa5 + 1816: 981a add a6,a6,t1 + 1818: 987a add a6,a6,t5 + 181a: 40980833 sub a6,a6,s1 + 181e: 080e slli a6,a6,0x3 + 1820: 9872 add a6,a6,t3 + 1822: 00083e83 ld t4,0(a6) + 1826: 008ff833 and a6,t6,s0 + 182a: e20788d3 fmv.x.d a7,fa5 + 182e: f20806d3 fmv.d.x fa3,a6 + 1832: f20407d3 fmv.d.x fa5,s0 + 1836: 01dfffb3 and t6,t6,t4 + 183a: f20880d3 fmv.d.x ft1,a7 + 183e: 0ad7f653 fsub.d fa2,fa5,fa3 + 1842: f20f87d3 fmv.d.x fa5,t6 + 1846: 64c2 ld s1,16(sp) + 1848: 6922 ld s2,8(sp) + 184a: 0af5f053 fsub.d ft0,fa1,fa5 + 184e: 0ad7f6c7 fmsub.d fa3,fa5,fa3,ft1 + 1852: f20407d3 fmv.d.x fa5,s0 + 1856: 0aa7f7d3 fsub.d fa5,fa5,fa0 + 185a: f2080553 fmv.d.x fa0,a6 + 185e: 6aa076c3 fmadd.d fa3,ft0,fa0,fa3 + 1862: 0af77753 fsub.d fa4,fa4,fa5 + 1866: f20f87d3 fmv.d.x fa5,t6 + 186a: 6af677c3 fmadd.d fa5,fa2,fa5,fa3 + 186e: 7a067643 fmadd.d fa2,fa2,ft0,fa5 + 1872: 62e5f743 fmadd.d fa4,fa1,fa4,fa2 + 1876: b6b5 j 13e2 + 1878: f20886d3 fmv.d.x fa3,a7 + 187c: f2000753 fmv.d.x fa4,zero + 1880: b539 j 168e + 1882: 64c2 ld s1,16(sp) + 1884: 6922 ld s2,8(sp) + 1886: beb1 j 13e2 + 1888: 4959 li s2,22 + 188a: bdf5 j 1786 + 188c: e826 sd s1,16(sp) + 188e: e44a sd s2,8(sp) + 1890: ecc00393 li t2,-308 + 1894: 4eed li t4,27 + 1896: 4335 li t1,13 + 1898: 14600f13 li t5,326 + 189c: b5cd j 177e + 189e: 26900313 li t1,617 + 18a2: 0303083b mulw a6,t1,a6 + 18a6: 41f8531b sraiw t1,a6,0x1f + 18aa: 0153531b srliw t1,t1,0x15 + 18ae: 0103033b addw t1,t1,a6 + 18b2: 40b3539b sraiw t2,t1,0xb + 18b6: 4849 li a6,18 + 18b8: 4078083b subw a6,a6,t2 + 18bc: b249 j 123e + +00000000000018be <_in_char.part.0>: static int _in_char(_InContext *ctx) - 18d2: 87aa mv a5,a0 + 18be: 87aa mv a5,a0 if (ctx->fd == -1) - 18d4: 4508 lw a0,8(a0) - 18d6: 577d li a4,-1 - 18d8: 00e51d63 bne a0,a4,18f2 <_in_char.part.0+0x20> + 18c0: 4508 lw a0,8(a0) + 18c2: 577d li a4,-1 + 18c4: 00e51d63 bne a0,a4,18de <_in_char.part.0+0x20> if (ctx->buf[ctx->pos] == '\0') - 18dc: 6b94 ld a3,16(a5) - 18de: 6398 ld a4,0(a5) - 18e0: 9736 add a4,a4,a3 - 18e2: 00074603 lbu a2,0(a4) - 18e6: c60d beqz a2,1910 <_in_char.part.0+0x3e> + 18c8: 6b94 ld a3,16(a5) + 18ca: 6398 ld a4,0(a5) + 18cc: 9736 add a4,a4,a3 + 18ce: 00074603 lbu a2,0(a4) + 18d2: c60d beqz a2,18fc <_in_char.part.0+0x3e> return (unsigned char)ctx->buf[ctx->pos++]; - 18e8: 0685 addi a3,a3,1 - 18ea: eb94 sd a3,16(a5) - 18ec: 00074503 lbu a0,0(a4) - 18f0: 8082 ret + 18d4: 0685 addi a3,a3,1 + 18d6: eb94 sd a3,16(a5) + 18d8: 00074503 lbu a0,0(a4) + 18dc: 8082 ret static int _in_char(_InContext *ctx) - 18f2: 1101 addi sp,sp,-32 + 18de: 1101 addi sp,sp,-32 if (read(ctx->fd, &c, 1) == 1) - 18f4: 4605 li a2,1 - 18f6: 00f10593 addi a1,sp,15 + 18e0: 4605 li a2,1 + 18e2: 00f10593 addi a1,sp,15 static int _in_char(_InContext *ctx) - 18fa: ec06 sd ra,24(sp) + 18e6: ec06 sd ra,24(sp) if (read(ctx->fd, &c, 1) == 1) - 18fc: 809ff0ef jal 1104 - 1900: 4785 li a5,1 - 1902: 00f51963 bne a0,a5,1914 <_in_char.part.0+0x42> + 18e8: 801ff0ef jal 10e8 + 18ec: 4785 li a5,1 + 18ee: 00f51963 bne a0,a5,1900 <_in_char.part.0+0x42> return (unsigned char)c; - 1906: 00f14503 lbu a0,15(sp) + 18f2: 00f14503 lbu a0,15(sp) } - 190a: 60e2 ld ra,24(sp) - 190c: 6105 addi sp,sp,32 - 190e: 8082 ret + 18f6: 60e2 ld ra,24(sp) + 18f8: 6105 addi sp,sp,32 + 18fa: 8082 ret return -1; - 1910: 557d li a0,-1 + 18fc: 557d li a0,-1 } - 1912: 8082 ret + 18fe: 8082 ret return -1; - 1914: 557d li a0,-1 - 1916: bfd5 j 190a <_in_char.part.0+0x38> + 1900: 557d li a0,-1 + 1902: bfd5 j 18f6 <_in_char.part.0+0x38> -0000000000001918 <_skip_space>: +0000000000001904 <_skip_space>: { - 1918: 7139 addi sp,sp,-64 - 191a: f822 sd s0,48(sp) - 191c: f426 sd s1,40(sp) - 191e: f04a sd s2,32(sp) - 1920: ec4e sd s3,24(sp) - 1922: e852 sd s4,16(sp) - 1924: fc06 sd ra,56(sp) - 1926: 842a mv s0,a0 + 1904: 7139 addi sp,sp,-64 + 1906: f822 sd s0,48(sp) + 1908: f426 sd s1,40(sp) + 190a: f04a sd s2,32(sp) + 190c: ec4e sd s3,24(sp) + 190e: e852 sd s4,16(sp) + 1910: fc06 sd ra,56(sp) + 1912: 842a mv s0,a0 ctx->ungotten = -1; - 1928: 54fd li s1,-1 + 1914: 54fd li s1,-1 if (read(ctx->fd, &c, 1) == 1) - 192a: 00f10a13 addi s4,sp,15 + 1916: 00f10a13 addi s4,sp,15 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 192e: 02000913 li s2,32 - 1932: 4991 li s3,4 + 191a: 02000913 li s2,32 + 191e: 4991 li s3,4 if (ctx->ungotten >= 0) - 1934: 4c1c lw a5,24(s0) - 1936: 0407d163 bgez a5,1978 <_skip_space+0x60> + 1920: 4c1c lw a5,24(s0) + 1922: 0407d163 bgez a5,1964 <_skip_space+0x60> if (ctx->fd == -1) - 193a: 4408 lw a0,8(s0) + 1926: 4408 lw a0,8(s0) if (read(ctx->fd, &c, 1) == 1) - 193c: 4605 li a2,1 - 193e: 85d2 mv a1,s4 + 1928: 4605 li a2,1 + 192a: 85d2 mv a1,s4 if (ctx->fd == -1) - 1940: 02951e63 bne a0,s1,197c <_skip_space+0x64> + 192c: 02951e63 bne a0,s1,1968 <_skip_space+0x64> if (ctx->buf[ctx->pos] == '\0') - 1944: 6818 ld a4,16(s0) - 1946: 601c ld a5,0(s0) + 1930: 6818 ld a4,16(s0) + 1932: 601c ld a5,0(s0) return (unsigned char)ctx->buf[ctx->pos++]; - 1948: 00170693 addi a3,a4,1 + 1934: 00170693 addi a3,a4,1 if (ctx->buf[ctx->pos] == '\0') - 194c: 97ba add a5,a5,a4 - 194e: 0007c703 lbu a4,0(a5) # 7000 - 1952: cb19 beqz a4,1968 <_skip_space+0x50> + 1938: 97ba add a5,a5,a4 + 193a: 0007c703 lbu a4,0(a5) # 7000 + 193e: cb19 beqz a4,1954 <_skip_space+0x50> return (unsigned char)ctx->buf[ctx->pos++]; - 1954: e814 sd a3,16(s0) - 1956: 0007c783 lbu a5,0(a5) + 1940: e814 sd a3,16(s0) + 1942: 0007c783 lbu a5,0(a5) return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 195a: ff77871b addiw a4,a5,-9 - 195e: fd278be3 beq a5,s2,1934 <_skip_space+0x1c> - 1962: fce9f9e3 bgeu s3,a4,1934 <_skip_space+0x1c> + 1946: ff77871b addiw a4,a5,-9 + 194a: fd278be3 beq a5,s2,1920 <_skip_space+0x1c> + 194e: fce9f9e3 bgeu s3,a4,1920 <_skip_space+0x1c> ctx->ungotten = c; - 1966: cc1c sw a5,24(s0) -} - 1968: 70e2 ld ra,56(sp) - 196a: 7442 ld s0,48(sp) - 196c: 74a2 ld s1,40(sp) - 196e: 7902 ld s2,32(sp) - 1970: 69e2 ld s3,24(sp) - 1972: 6a42 ld s4,16(sp) - 1974: 6121 addi sp,sp,64 - 1976: 8082 ret + 1952: cc1c sw a5,24(s0) +} + 1954: 70e2 ld ra,56(sp) + 1956: 7442 ld s0,48(sp) + 1958: 74a2 ld s1,40(sp) + 195a: 7902 ld s2,32(sp) + 195c: 69e2 ld s3,24(sp) + 195e: 6a42 ld s4,16(sp) + 1960: 6121 addi sp,sp,64 + 1962: 8082 ret ctx->ungotten = -1; - 1978: cc04 sw s1,24(s0) + 1964: cc04 sw s1,24(s0) return c; - 197a: b7c5 j 195a <_skip_space+0x42> + 1966: b7c5 j 1946 <_skip_space+0x42> if (read(ctx->fd, &c, 1) == 1) - 197c: f88ff0ef jal 1104 - 1980: 4785 li a5,1 - 1982: fef513e3 bne a0,a5,1968 <_skip_space+0x50> + 1968: f80ff0ef jal 10e8 + 196c: 4785 li a5,1 + 196e: fef513e3 bne a0,a5,1954 <_skip_space+0x50> return (unsigned char)c; - 1986: 00f14783 lbu a5,15(sp) - 198a: bfc1 j 195a <_skip_space+0x42> + 1972: 00f14783 lbu a5,15(sp) + 1976: bfc1 j 1946 <_skip_space+0x42> -000000000000198c <_vscanf_core.constprop.0>: +0000000000001978 <_vscanf_core.constprop.0>: static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) - 198c: 7155 addi sp,sp,-208 - 198e: e586 sd ra,200(sp) - 1990: e95a sd s6,144(sp) + 1978: 7155 addi sp,sp,-208 + 197a: e586 sd ra,200(sp) + 197c: e95a sd s6,144(sp) while (*p) - 1992: 0005c783 lbu a5,0(a1) + 197e: 0005c783 lbu a5,0(a1) static int _vscanf_core(_InContext *ctx, const char *format, va_list ap) - 1996: e432 sd a2,8(sp) + 1982: e432 sd a2,8(sp) while (*p) - 1998: 68078b63 beqz a5,202e <_vscanf_core.constprop.0+0x6a2> - 199c: e1a2 sd s0,192(sp) - 199e: fd26 sd s1,184(sp) - 19a0: f152 sd s4,160(sp) - 19a2: ed56 sd s5,152(sp) - 19a4: f4ee sd s11,104(sp) - 19a6: 842e mv s0,a1 - 19a8: 8daa mv s11,a0 + 1984: 68078b63 beqz a5,201a <_vscanf_core.constprop.0+0x6a2> + 1988: e1a2 sd s0,192(sp) + 198a: fd26 sd s1,184(sp) + 198c: f152 sd s4,160(sp) + 198e: ed56 sd s5,152(sp) + 1990: f4ee sd s11,104(sp) + 1992: 842e mv s0,a1 + 1994: 8daa mv s11,a0 int assigned = 0; - 19aa: 4b01 li s6,0 + 1996: 4b01 li s6,0 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 19ac: 02000493 li s1,32 - 19b0: 4a91 li s5,4 + 1998: 02000493 li s1,32 + 199c: 4a91 li s5,4 if (*p != '%') - 19b2: 02500a13 li s4,37 + 199e: 02500a13 li s4,37 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 19b6: 04978763 beq a5,s1,1a04 <_vscanf_core.constprop.0+0x78> - 19ba: ff77869b addiw a3,a5,-9 - 19be: 0ff6f693 zext.b a3,a3 - 19c2: 04daf163 bgeu s5,a3,1a04 <_vscanf_core.constprop.0+0x78> + 19a2: 04978763 beq a5,s1,19f0 <_vscanf_core.constprop.0+0x78> + 19a6: ff77869b addiw a3,a5,-9 + 19aa: 0ff6f693 zext.b a3,a3 + 19ae: 04daf163 bgeu s5,a3,19f0 <_vscanf_core.constprop.0+0x78> if (*p != '%') - 19c6: 07478d63 beq a5,s4,1a40 <_vscanf_core.constprop.0+0xb4> + 19b2: 07478d63 beq a5,s4,1a2c <_vscanf_core.constprop.0+0xb4> _skip_space(ctx); - 19ca: 856e mv a0,s11 - 19cc: f4dff0ef jal 1918 <_skip_space> + 19b6: 856e mv a0,s11 + 19b8: f4dff0ef jal 1904 <_skip_space> if (ctx->ungotten >= 0) - 19d0: 018da503 lw a0,24(s11) - 19d4: 04055a63 bgez a0,1a28 <_vscanf_core.constprop.0+0x9c> - 19d8: 856e mv a0,s11 - 19da: ef9ff0ef jal 18d2 <_in_char.part.0> + 19bc: 018da503 lw a0,24(s11) + 19c0: 04055a63 bgez a0,1a14 <_vscanf_core.constprop.0+0x9c> + 19c4: 856e mv a0,s11 + 19c6: ef9ff0ef jal 18be <_in_char.part.0> if (c != *p) - 19de: 00044783 lbu a5,0(s0) - 19e2: 04a78a63 beq a5,a0,1a36 <_vscanf_core.constprop.0+0xaa> + 19ca: 00044783 lbu a5,0(s0) + 19ce: 04a78a63 beq a5,a0,1a22 <_vscanf_core.constprop.0+0xaa> if (c != -1) - 19e6: 57fd li a5,-1 - 19e8: 00f50463 beq a0,a5,19f0 <_vscanf_core.constprop.0+0x64> + 19d2: 57fd li a5,-1 + 19d4: 00f50463 beq a0,a5,19dc <_vscanf_core.constprop.0+0x64> ctx->ungotten = c; - 19ec: 00adac23 sw a0,24(s11) - 19f0: 640e ld s0,192(sp) - 19f2: 74ea ld s1,184(sp) - 19f4: 7a0a ld s4,160(sp) - 19f6: 6aea ld s5,152(sp) - 19f8: 7da6 ld s11,104(sp) -} - 19fa: 60ae ld ra,200(sp) - 19fc: 855a mv a0,s6 - 19fe: 6b4a ld s6,144(sp) - 1a00: 6169 addi sp,sp,208 - 1a02: 8082 ret + 19d8: 00adac23 sw a0,24(s11) + 19dc: 640e ld s0,192(sp) + 19de: 74ea ld s1,184(sp) + 19e0: 7a0a ld s4,160(sp) + 19e2: 6aea ld s5,152(sp) + 19e4: 7da6 ld s11,104(sp) +} + 19e6: 60ae ld ra,200(sp) + 19e8: 855a mv a0,s6 + 19ea: 6b4a ld s6,144(sp) + 19ec: 6169 addi sp,sp,208 + 19ee: 8082 ret _skip_space(ctx); - 1a04: 856e mv a0,s11 - 1a06: f13ff0ef jal 1918 <_skip_space> + 19f0: 856e mv a0,s11 + 19f2: f13ff0ef jal 1904 <_skip_space> while (isspace(*p)) - 1a0a: 00044783 lbu a5,0(s0) + 19f6: 00044783 lbu a5,0(s0) return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 1a0e: 4611 li a2,4 - 1a10: ff77869b addiw a3,a5,-9 - 1a14: 0ff6f693 zext.b a3,a3 - 1a18: 00978663 beq a5,s1,1a24 <_vscanf_core.constprop.0+0x98> - 1a1c: 00d67463 bgeu a2,a3,1a24 <_vscanf_core.constprop.0+0x98> + 19fa: 4611 li a2,4 + 19fc: ff77869b addiw a3,a5,-9 + 1a00: 0ff6f693 zext.b a3,a3 + 1a04: 00978663 beq a5,s1,1a10 <_vscanf_core.constprop.0+0x98> + 1a08: 00d67463 bgeu a2,a3,1a10 <_vscanf_core.constprop.0+0x98> while (*p) - 1a20: fbd9 bnez a5,19b6 <_vscanf_core.constprop.0+0x2a> - 1a22: b7f9 j 19f0 <_vscanf_core.constprop.0+0x64> + 1a0c: fbd9 bnez a5,19a2 <_vscanf_core.constprop.0+0x2a> + 1a0e: b7f9 j 19dc <_vscanf_core.constprop.0+0x64> p++; - 1a24: 0405 addi s0,s0,1 - 1a26: b7d5 j 1a0a <_vscanf_core.constprop.0+0x7e> + 1a10: 0405 addi s0,s0,1 + 1a12: b7d5 j 19f6 <_vscanf_core.constprop.0+0x7e> ctx->ungotten = -1; - 1a28: 57fd li a5,-1 - 1a2a: 00fdac23 sw a5,24(s11) + 1a14: 57fd li a5,-1 + 1a16: 00fdac23 sw a5,24(s11) if (c != *p) - 1a2e: 00044783 lbu a5,0(s0) - 1a32: faa79ae3 bne a5,a0,19e6 <_vscanf_core.constprop.0+0x5a> + 1a1a: 00044783 lbu a5,0(s0) + 1a1e: faa79ae3 bne a5,a0,19d2 <_vscanf_core.constprop.0+0x5a> while (*p) - 1a36: 00144783 lbu a5,1(s0) + 1a22: 00144783 lbu a5,1(s0) p++; - 1a3a: 0405 addi s0,s0,1 + 1a26: 0405 addi s0,s0,1 while (*p) - 1a3c: ffad bnez a5,19b6 <_vscanf_core.constprop.0+0x2a> - 1a3e: bf4d j 19f0 <_vscanf_core.constprop.0+0x64> - 1a40: f94a sd s2,176(sp) - 1a42: f54e sd s3,168(sp) - 1a44: e55e sd s7,136(sp) - 1a46: e162 sd s8,128(sp) + 1a28: ffad bnez a5,19a2 <_vscanf_core.constprop.0+0x2a> + 1a2a: bf4d j 19dc <_vscanf_core.constprop.0+0x64> + 1a2c: f94a sd s2,176(sp) + 1a2e: f54e sd s3,168(sp) + 1a30: e55e sd s7,136(sp) + 1a32: e162 sd s8,128(sp) if (*p == '*') - 1a48: 00144583 lbu a1,1(s0) - 1a4c: 02a00793 li a5,42 - 1a50: 22f58d63 beq a1,a5,1c8a <_vscanf_core.constprop.0+0x2fe> + 1a34: 00144583 lbu a1,1(s0) + 1a38: 02a00793 li a5,42 + 1a3c: 22f58d63 beq a1,a5,1c76 <_vscanf_core.constprop.0+0x2fe> p++; - 1a54: 0405 addi s0,s0,1 + 1a40: 0405 addi s0,s0,1 int suppress = 0; - 1a56: 4981 li s3,0 + 1a42: 4981 li s3,0 while (*p >= '0' && *p <= '9') - 1a58: fd05861b addiw a2,a1,-48 - 1a5c: 0ff67693 zext.b a3,a2 - 1a60: 47a5 li a5,9 - 1a62: 36d7e763 bltu a5,a3,1dd0 <_vscanf_core.constprop.0+0x444> - 1a66: 4781 li a5,0 - 1a68: 4825 li a6,9 - 1a6a: a019 j 1a70 <_vscanf_core.constprop.0+0xe4> + 1a44: fd05861b addiw a2,a1,-48 + 1a48: 0ff67693 zext.b a3,a2 + 1a4c: 47a5 li a5,9 + 1a4e: 36d7e763 bltu a5,a3,1dbc <_vscanf_core.constprop.0+0x444> + 1a52: 4781 li a5,0 + 1a54: 4825 li a6,9 + 1a56: a019 j 1a5c <_vscanf_core.constprop.0+0xe4> width = width * 10 + (*p - '0'); - 1a6c: 0016979b slliw a5,a3,0x1 + 1a58: 0016979b slliw a5,a3,0x1 while (*p >= '0' && *p <= '9') - 1a70: 00144583 lbu a1,1(s0) + 1a5c: 00144583 lbu a1,1(s0) width = width * 10 + (*p - '0'); - 1a74: 00f6093b addw s2,a2,a5 - 1a78: 0029169b slliw a3,s2,0x2 + 1a60: 00f6093b addw s2,a2,a5 + 1a64: 0029169b slliw a3,s2,0x2 while (*p >= '0' && *p <= '9') - 1a7c: fd05861b addiw a2,a1,-48 - 1a80: 0ff67513 zext.b a0,a2 + 1a68: fd05861b addiw a2,a1,-48 + 1a6c: 0ff67513 zext.b a0,a2 width = width * 10 + (*p - '0'); - 1a84: 012686bb addw a3,a3,s2 + 1a70: 012686bb addw a3,a3,s2 p++; - 1a88: 0405 addi s0,s0,1 + 1a74: 0405 addi s0,s0,1 while (*p >= '0' && *p <= '9') - 1a8a: fea871e3 bgeu a6,a0,1a6c <_vscanf_core.constprop.0+0xe0> + 1a76: fea871e3 bgeu a6,a0,1a58 <_vscanf_core.constprop.0+0xe0> if (*p == 'l') - 1a8e: 06c00693 li a3,108 + 1a7a: 06c00693 li a3,108 p++; - 1a92: 00140b93 addi s7,s0,1 + 1a7e: 00140b93 addi s7,s0,1 if (*p == 'l') - 1a96: 1ed58f63 beq a1,a3,1c94 <_vscanf_core.constprop.0+0x308> + 1a82: 1ed58f63 beq a1,a3,1c80 <_vscanf_core.constprop.0+0x308> else if (*p == 'h') - 1a9a: 06800693 li a3,104 - 1a9e: 2ad58863 beq a1,a3,1d4e <_vscanf_core.constprop.0+0x3c2> + 1a86: 06800693 li a3,104 + 1a8a: 2ad58863 beq a1,a3,1d3a <_vscanf_core.constprop.0+0x3c2> char spec = *p++; - 1aa2: 00044c03 lbu s8,0(s0) - 1aa6: 8ba2 mv s7,s0 + 1a8e: 00044c03 lbu s8,0(s0) + 1a92: 8ba2 mv s7,s0 int len_mod = 0; - 1aa8: ec02 sd zero,24(sp) + 1a94: ec02 sd zero,24(sp) char spec = *p++; - 1aaa: 06300693 li a3,99 - 1aae: 001b8413 addi s0,s7,1 + 1a96: 06300693 li a3,99 + 1a9a: 001b8413 addi s0,s7,1 if (!spec) - 1ab2: 2adc0863 beq s8,a3,1d62 <_vscanf_core.constprop.0+0x3d6> - 1ab6: 1f86fc63 bgeu a3,s8,1cae <_vscanf_core.constprop.0+0x322> - 1aba: f9cc069b addiw a3,s8,-100 - 1abe: 0ff6f693 zext.b a3,a3 - 1ac2: 4651 li a2,20 - 1ac4: 0cd66e63 bltu a2,a3,1ba0 <_vscanf_core.constprop.0+0x214> - 1ac8: 00120637 lui a2,0x120 - 1acc: 4585 li a1,1 - 1ace: 00d595b3 sll a1,a1,a3 - 1ad2: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x1171e1> - 1ad6: 8e6d and a2,a2,a1 - 1ad8: ee69 bnez a2,1bb2 <_vscanf_core.constprop.0+0x226> - 1ada: 89b9 andi a1,a1,14 - 1adc: 1e059263 bnez a1,1cc0 <_vscanf_core.constprop.0+0x334> - 1ae0: 463d li a2,15 - 1ae2: 0ac69f63 bne a3,a2,1ba0 <_vscanf_core.constprop.0+0x214> + 1a9e: 2adc0863 beq s8,a3,1d4e <_vscanf_core.constprop.0+0x3d6> + 1aa2: 1f86fc63 bgeu a3,s8,1c9a <_vscanf_core.constprop.0+0x322> + 1aa6: f9cc069b addiw a3,s8,-100 + 1aaa: 0ff6f693 zext.b a3,a3 + 1aae: 4651 li a2,20 + 1ab0: 0cd66e63 bltu a2,a3,1b8c <_vscanf_core.constprop.0+0x214> + 1ab4: 00120637 lui a2,0x120 + 1ab8: 4585 li a1,1 + 1aba: 00d595b3 sll a1,a1,a3 + 1abe: 02160613 addi a2,a2,33 # 120021 <_ZSt4cerr+0x1171b1> + 1ac2: 8e6d and a2,a2,a1 + 1ac4: ee69 bnez a2,1b9e <_vscanf_core.constprop.0+0x226> + 1ac6: 89b9 andi a1,a1,14 + 1ac8: 1e059263 bnez a1,1cac <_vscanf_core.constprop.0+0x334> + 1acc: 463d li a2,15 + 1ace: 0ac69f63 bne a3,a2,1b8c <_vscanf_core.constprop.0+0x214> _skip_space(ctx); - 1ae6: 856e mv a0,s11 - 1ae8: e31ff0ef jal 1918 <_skip_space> + 1ad2: 856e mv a0,s11 + 1ad4: e31ff0ef jal 1904 <_skip_space> char *buf = suppress ? NULL : va_arg(ap, char *); - 1aec: ec02 sd zero,24(sp) - 1aee: 00099763 bnez s3,1afc <_vscanf_core.constprop.0+0x170> - 1af2: 67a2 ld a5,8(sp) - 1af4: 6398 ld a4,0(a5) - 1af6: 07a1 addi a5,a5,8 - 1af8: e43e sd a5,8(sp) - 1afa: ec3a sd a4,24(sp) + 1ad8: ec02 sd zero,24(sp) + 1ada: 00099763 bnez s3,1ae8 <_vscanf_core.constprop.0+0x170> + 1ade: 67a2 ld a5,8(sp) + 1ae0: 6398 ld a4,0(a5) + 1ae2: 07a1 addi a5,a5,8 + 1ae4: e43e sd a5,8(sp) + 1ae6: ec3a sd a4,24(sp) if (ctx->ungotten >= 0) - 1afc: 018da503 lw a0,24(s11) - 1b00: 2e055b63 bgez a0,1df6 <_vscanf_core.constprop.0+0x46a> - 1b04: 856e mv a0,s11 - 1b06: dcdff0ef jal 18d2 <_in_char.part.0> + 1ae8: 018da503 lw a0,24(s11) + 1aec: 2e055b63 bgez a0,1de2 <_vscanf_core.constprop.0+0x46a> + 1af0: 856e mv a0,s11 + 1af2: dcdff0ef jal 18be <_in_char.part.0> while (c != -1 && !isspace(c)) - 1b0a: 56fd li a3,-1 - 1b0c: 6ad50363 beq a0,a3,21b2 <_vscanf_core.constprop.0+0x826> + 1af6: 56fd li a3,-1 + 1af8: 6ad50363 beq a0,a3,219e <_vscanf_core.constprop.0+0x826> return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 1b10: 02000693 li a3,32 - 1b14: 3ed50963 beq a0,a3,1f06 <_vscanf_core.constprop.0+0x57a> - 1b18: 46a5 li a3,9 - 1b1a: 3ed50663 beq a0,a3,1f06 <_vscanf_core.constprop.0+0x57a> - 1b1e: 46a9 li a3,10 - 1b20: 3ed50363 beq a0,a3,1f06 <_vscanf_core.constprop.0+0x57a> - 1b24: 46ad li a3,11 - 1b26: 3ed50063 beq a0,a3,1f06 <_vscanf_core.constprop.0+0x57a> - 1b2a: 46b1 li a3,12 - 1b2c: 3cd50d63 beq a0,a3,1f06 <_vscanf_core.constprop.0+0x57a> - 1b30: 46b5 li a3,13 - 1b32: 3cd50a63 beq a0,a3,1f06 <_vscanf_core.constprop.0+0x57a> - 1b36: 67e2 ld a5,24(sp) - 1b38: fce6 sd s9,120(sp) - 1b3a: f8ea sd s10,112(sp) - 1b3c: e83e sd a5,16(sp) - 1b3e: 4d01 li s10,0 + 1afc: 02000693 li a3,32 + 1b00: 3ed50963 beq a0,a3,1ef2 <_vscanf_core.constprop.0+0x57a> + 1b04: 46a5 li a3,9 + 1b06: 3ed50663 beq a0,a3,1ef2 <_vscanf_core.constprop.0+0x57a> + 1b0a: 46a9 li a3,10 + 1b0c: 3ed50363 beq a0,a3,1ef2 <_vscanf_core.constprop.0+0x57a> + 1b10: 46ad li a3,11 + 1b12: 3ed50063 beq a0,a3,1ef2 <_vscanf_core.constprop.0+0x57a> + 1b16: 46b1 li a3,12 + 1b18: 3cd50d63 beq a0,a3,1ef2 <_vscanf_core.constprop.0+0x57a> + 1b1c: 46b5 li a3,13 + 1b1e: 3cd50a63 beq a0,a3,1ef2 <_vscanf_core.constprop.0+0x57a> + 1b22: 67e2 ld a5,24(sp) + 1b24: fce6 sd s9,120(sp) + 1b26: f8ea sd s10,112(sp) + 1b28: e83e sd a5,16(sp) + 1b2a: 4d01 li s10,0 while (c != -1 && !isspace(c)) - 1b40: 5c7d li s8,-1 + 1b2c: 5c7d li s8,-1 return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 1b42: 02000c93 li s9,32 + 1b2e: 02000c93 li s9,32 if (width > 0 && i >= width) - 1b46: 01205463 blez s2,1b4e <_vscanf_core.constprop.0+0x1c2> - 1b4a: 052d5563 bge s10,s2,1b94 <_vscanf_core.constprop.0+0x208> + 1b32: 01205463 blez s2,1b3a <_vscanf_core.constprop.0+0x1c2> + 1b36: 052d5563 bge s10,s2,1b80 <_vscanf_core.constprop.0+0x208> if (!suppress) - 1b4e: 00099563 bnez s3,1b58 <_vscanf_core.constprop.0+0x1cc> + 1b3a: 00099563 bnez s3,1b44 <_vscanf_core.constprop.0+0x1cc> buf[i] = (char)c; - 1b52: 67c2 ld a5,16(sp) - 1b54: 00a78023 sb a0,0(a5) + 1b3e: 67c2 ld a5,16(sp) + 1b40: 00a78023 sb a0,0(a5) if (ctx->ungotten >= 0) - 1b58: 018da503 lw a0,24(s11) + 1b44: 018da503 lw a0,24(s11) i++; - 1b5c: 2d05 addiw s10,s10,1 + 1b48: 2d05 addiw s10,s10,1 if (ctx->ungotten >= 0) - 1b5e: 30055963 bgez a0,1e70 <_vscanf_core.constprop.0+0x4e4> - 1b62: 856e mv a0,s11 - 1b64: d6fff0ef jal 18d2 <_in_char.part.0> + 1b4a: 30055963 bgez a0,1e5c <_vscanf_core.constprop.0+0x4e4> + 1b4e: 856e mv a0,s11 + 1b50: d6fff0ef jal 18be <_in_char.part.0> while (c != -1 && !isspace(c)) - 1b68: 27850663 beq a0,s8,1dd4 <_vscanf_core.constprop.0+0x448> + 1b54: 27850663 beq a0,s8,1dc0 <_vscanf_core.constprop.0+0x448> return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - 1b6c: 03950463 beq a0,s9,1b94 <_vscanf_core.constprop.0+0x208> - 1b70: 47a5 li a5,9 - 1b72: 02f50163 beq a0,a5,1b94 <_vscanf_core.constprop.0+0x208> - 1b76: 47a9 li a5,10 - 1b78: 00f50e63 beq a0,a5,1b94 <_vscanf_core.constprop.0+0x208> - 1b7c: 47ad li a5,11 - 1b7e: 00f50b63 beq a0,a5,1b94 <_vscanf_core.constprop.0+0x208> - 1b82: 47b1 li a5,12 - 1b84: 00f50863 beq a0,a5,1b94 <_vscanf_core.constprop.0+0x208> - 1b88: 67c2 ld a5,16(sp) - 1b8a: 0785 addi a5,a5,1 - 1b8c: e83e sd a5,16(sp) - 1b8e: 47b5 li a5,13 - 1b90: faf51be3 bne a0,a5,1b46 <_vscanf_core.constprop.0+0x1ba> + 1b58: 03950463 beq a0,s9,1b80 <_vscanf_core.constprop.0+0x208> + 1b5c: 47a5 li a5,9 + 1b5e: 02f50163 beq a0,a5,1b80 <_vscanf_core.constprop.0+0x208> + 1b62: 47a9 li a5,10 + 1b64: 00f50e63 beq a0,a5,1b80 <_vscanf_core.constprop.0+0x208> + 1b68: 47ad li a5,11 + 1b6a: 00f50b63 beq a0,a5,1b80 <_vscanf_core.constprop.0+0x208> + 1b6e: 47b1 li a5,12 + 1b70: 00f50863 beq a0,a5,1b80 <_vscanf_core.constprop.0+0x208> + 1b74: 67c2 ld a5,16(sp) + 1b76: 0785 addi a5,a5,1 + 1b78: e83e sd a5,16(sp) + 1b7a: 47b5 li a5,13 + 1b7c: faf51be3 bne a0,a5,1b32 <_vscanf_core.constprop.0+0x1ba> if (!suppress) - 1b94: 64098a63 beqz s3,21e8 <_vscanf_core.constprop.0+0x85c> - 1b98: 7ce6 ld s9,120(sp) - 1b9a: 7d46 ld s10,112(sp) + 1b80: 64098a63 beqz s3,21d4 <_vscanf_core.constprop.0+0x85c> + 1b84: 7ce6 ld s9,120(sp) + 1b86: 7d46 ld s10,112(sp) ctx->ungotten = c; - 1b9c: 00adac23 sw a0,24(s11) + 1b88: 00adac23 sw a0,24(s11) while (*p) - 1ba0: 001bc783 lbu a5,1(s7) - 1ba4: 794a ld s2,176(sp) - 1ba6: 79aa ld s3,168(sp) - 1ba8: 6baa ld s7,136(sp) - 1baa: 6c0a ld s8,128(sp) - 1bac: e00795e3 bnez a5,19b6 <_vscanf_core.constprop.0+0x2a> - 1bb0: b581 j 19f0 <_vscanf_core.constprop.0+0x64> + 1b8c: 001bc783 lbu a5,1(s7) + 1b90: 794a ld s2,176(sp) + 1b92: 79aa ld s3,168(sp) + 1b94: 6baa ld s7,136(sp) + 1b96: 6c0a ld s8,128(sp) + 1b98: e00795e3 bnez a5,19a2 <_vscanf_core.constprop.0+0x2a> + 1b9c: b581 j 19dc <_vscanf_core.constprop.0+0x64> _skip_space(ctx); - 1bb2: 856e mv a0,s11 - 1bb4: f8ea sd s10,112(sp) - 1bb6: d63ff0ef jal 1918 <_skip_space> + 1b9e: 856e mv a0,s11 + 1ba0: f8ea sd s10,112(sp) + 1ba2: d63ff0ef jal 1904 <_skip_space> if (ctx->ungotten >= 0) - 1bba: 018da503 lw a0,24(s11) - 1bbe: 24055063 bgez a0,1dfe <_vscanf_core.constprop.0+0x472> - 1bc2: 856e mv a0,s11 - 1bc4: d0fff0ef jal 18d2 <_in_char.part.0> + 1ba6: 018da503 lw a0,24(s11) + 1baa: 24055063 bgez a0,1dea <_vscanf_core.constprop.0+0x472> + 1bae: 856e mv a0,s11 + 1bb0: d0fff0ef jal 18be <_in_char.part.0> if (c == '-' || c == '+') - 1bc8: fd55069b addiw a3,a0,-43 - 1bcc: 9af5 andi a3,a3,-3 - 1bce: 2681 sext.w a3,a3 + 1bb4: fd55069b addiw a3,a0,-43 + 1bb8: 9af5 andi a3,a3,-3 + 1bba: 2681 sext.w a3,a3 int i = 0, c = _in_char(ctx); - 1bd0: 4d01 li s10,0 + 1bbc: 4d01 li s10,0 if (c == '-' || c == '+') - 1bd2: 3e068863 beqz a3,1fc2 <_vscanf_core.constprop.0+0x636> + 1bbe: 3e068863 beqz a3,1fae <_vscanf_core.constprop.0+0x636> int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 1bd6: 07800693 li a3,120 - 1bda: 4641 li a2,16 - 1bdc: 00dc0863 beq s8,a3,1bec <_vscanf_core.constprop.0+0x260> - 1be0: 06900693 li a3,105 - 1be4: 4629 li a2,10 - 1be6: 00dc1363 bne s8,a3,1bec <_vscanf_core.constprop.0+0x260> - 1bea: 4601 li a2,0 + 1bc2: 07800693 li a3,120 + 1bc6: 4641 li a2,16 + 1bc8: 00dc0863 beq s8,a3,1bd8 <_vscanf_core.constprop.0+0x260> + 1bcc: 06900693 li a3,105 + 1bd0: 4629 li a2,10 + 1bd2: 00dc1363 bne s8,a3,1bd8 <_vscanf_core.constprop.0+0x260> + 1bd6: 4601 li a2,0 while (c != -1 && i < 63) - 1bec: 56fd li a3,-1 - 1bee: 5cd50863 beq a0,a3,21be <_vscanf_core.constprop.0+0x832> - 1bf2: fce6 sd s9,120(sp) - 1bf4: 02010893 addi a7,sp,32 - 1bf8: 01a88c33 add s8,a7,s10 + 1bd8: 56fd li a3,-1 + 1bda: 5cd50863 beq a0,a3,21aa <_vscanf_core.constprop.0+0x832> + 1bde: fce6 sd s9,120(sp) + 1be0: 02010893 addi a7,sp,32 + 1be4: 01a88c33 add s8,a7,s10 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1bfc: 4cc1 li s9,16 + 1be8: 4cc1 li s9,16 int digit = (c >= '0' && c <= '9'); - 1bfe: fd05069b addiw a3,a0,-48 - 1c02: 0005031b sext.w t1,a0 - 1c06: 00a6b593 sltiu a1,a3,10 + 1bea: fd05069b addiw a3,a0,-48 + 1bee: 0005031b sext.w t1,a0 + 1bf2: 00a6b593 sltiu a1,a3,10 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1c0a: 27960a63 beq a2,s9,1e7e <_vscanf_core.constprop.0+0x4f2> - 1c0e: 2a060d63 beqz a2,1ec8 <_vscanf_core.constprop.0+0x53c> + 1bf6: 27960a63 beq a2,s9,1e6a <_vscanf_core.constprop.0+0x4f2> + 1bfa: 2a060d63 beqz a2,1eb4 <_vscanf_core.constprop.0+0x53c> int x = (c == 'x' || c == 'X'); - 1c12: 07800793 li a5,120 - 1c16: 2ef50363 beq a0,a5,1efc <_vscanf_core.constprop.0+0x570> - 1c1a: fa850693 addi a3,a0,-88 - 1c1e: 0016b693 seqz a3,a3 - 1c22: 4301 li t1,0 + 1bfe: 07800793 li a5,120 + 1c02: 2ef50363 beq a0,a5,1ee8 <_vscanf_core.constprop.0+0x570> + 1c06: fa850693 addi a3,a0,-88 + 1c0a: 0016b693 seqz a3,a3 + 1c0e: 4301 li t1,0 if (width > 0 && i >= width) - 1c24: 01205463 blez s2,1c2c <_vscanf_core.constprop.0+0x2a0> - 1c28: 032d5a63 bge s10,s2,1c5c <_vscanf_core.constprop.0+0x2d0> + 1c10: 01205463 blez s2,1c18 <_vscanf_core.constprop.0+0x2a0> + 1c14: 032d5a63 bge s10,s2,1c48 <_vscanf_core.constprop.0+0x2d0> if (digit || hex || x) - 1c2c: 0066e6b3 or a3,a3,t1 - 1c30: 8ecd or a3,a3,a1 - 1c32: c68d beqz a3,1c5c <_vscanf_core.constprop.0+0x2d0> + 1c18: 0066e6b3 or a3,a3,t1 + 1c1c: 8ecd or a3,a3,a1 + 1c1e: c68d beqz a3,1c48 <_vscanf_core.constprop.0+0x2d0> num_buf[i++] = (char)c; - 1c34: 00ac0023 sb a0,0(s8) + 1c20: 00ac0023 sb a0,0(s8) if (ctx->ungotten >= 0) - 1c38: 018da503 lw a0,24(s11) + 1c24: 018da503 lw a0,24(s11) num_buf[i++] = (char)c; - 1c3c: 2d05 addiw s10,s10,1 + 1c28: 2d05 addiw s10,s10,1 if (ctx->ungotten >= 0) - 1c3e: 22055c63 bgez a0,1e76 <_vscanf_core.constprop.0+0x4ea> - 1c42: 856e mv a0,s11 - 1c44: e832 sd a2,16(sp) - 1c46: c8dff0ef jal 18d2 <_in_char.part.0> + 1c2a: 22055c63 bgez a0,1e62 <_vscanf_core.constprop.0+0x4ea> + 1c2e: 856e mv a0,s11 + 1c30: e832 sd a2,16(sp) + 1c32: c8dff0ef jal 18be <_in_char.part.0> while (c != -1 && i < 63) - 1c4a: 57fd li a5,-1 - 1c4c: 6642 ld a2,16(sp) - 1c4e: 3cf50263 beq a0,a5,2012 <_vscanf_core.constprop.0+0x686> - 1c52: 03f00693 li a3,63 - 1c56: 0c05 addi s8,s8,1 - 1c58: fadd13e3 bne s10,a3,1bfe <_vscanf_core.constprop.0+0x272> + 1c36: 57fd li a5,-1 + 1c38: 6642 ld a2,16(sp) + 1c3a: 3cf50263 beq a0,a5,1ffe <_vscanf_core.constprop.0+0x686> + 1c3e: 03f00693 li a3,63 + 1c42: 0c05 addi s8,s8,1 + 1c44: fadd13e3 bne s10,a3,1bea <_vscanf_core.constprop.0+0x272> num_buf[i] = '\0'; - 1c5c: 040d0793 addi a5,s10,64 - 1c60: 1018 addi a4,sp,32 - 1c62: 97ba add a5,a5,a4 - 1c64: fc078023 sb zero,-64(a5) + 1c48: 040d0793 addi a5,s10,64 + 1c4c: 1018 addi a4,sp,32 + 1c4e: 97ba add a5,a5,a4 + 1c50: fc078023 sb zero,-64(a5) ctx->ungotten = c; - 1c68: 00adac23 sw a0,24(s11) - 1c6c: 7ce6 ld s9,120(sp) + 1c54: 00adac23 sw a0,24(s11) + 1c58: 7ce6 ld s9,120(sp) if (i == 0) - 1c6e: 1e0d0663 beqz s10,1e5a <_vscanf_core.constprop.0+0x4ce> + 1c5a: 1e0d0663 beqz s10,1e46 <_vscanf_core.constprop.0+0x4ce> if (!suppress) - 1c72: 36098363 beqz s3,1fd8 <_vscanf_core.constprop.0+0x64c> + 1c5e: 36098363 beqz s3,1fc4 <_vscanf_core.constprop.0+0x64c> while (*p) - 1c76: 001bc783 lbu a5,1(s7) + 1c62: 001bc783 lbu a5,1(s7) { - 1c7a: 794a ld s2,176(sp) - 1c7c: 79aa ld s3,168(sp) - 1c7e: 6baa ld s7,136(sp) - 1c80: 6c0a ld s8,128(sp) - 1c82: 7d46 ld s10,112(sp) + 1c66: 794a ld s2,176(sp) + 1c68: 79aa ld s3,168(sp) + 1c6a: 6baa ld s7,136(sp) + 1c6c: 6c0a ld s8,128(sp) + 1c6e: 7d46 ld s10,112(sp) while (*p) - 1c84: d20799e3 bnez a5,19b6 <_vscanf_core.constprop.0+0x2a> - 1c88: b3a5 j 19f0 <_vscanf_core.constprop.0+0x64> + 1c70: d20799e3 bnez a5,19a2 <_vscanf_core.constprop.0+0x2a> + 1c74: b3a5 j 19dc <_vscanf_core.constprop.0+0x64> while (*p >= '0' && *p <= '9') - 1c8a: 00244583 lbu a1,2(s0) + 1c76: 00244583 lbu a1,2(s0) suppress = 1; - 1c8e: 4985 li s3,1 + 1c7a: 4985 li s3,1 p++; - 1c90: 0409 addi s0,s0,2 - 1c92: b3d9 j 1a58 <_vscanf_core.constprop.0+0xcc> + 1c7c: 0409 addi s0,s0,2 + 1c7e: b3d9 j 1a44 <_vscanf_core.constprop.0+0xcc> if (*p == 'l') - 1c94: 00144c03 lbu s8,1(s0) + 1c80: 00144c03 lbu s8,1(s0) len_mod = 1; - 1c98: 4785 li a5,1 - 1c9a: ec3e sd a5,24(sp) + 1c84: 4785 li a5,1 + 1c86: ec3e sd a5,24(sp) if (*p == 'l') - 1c9c: e0bc17e3 bne s8,a1,1aaa <_vscanf_core.constprop.0+0x11e> + 1c88: e0bc17e3 bne s8,a1,1a96 <_vscanf_core.constprop.0+0x11e> len_mod = 2; - 1ca0: 4789 li a5,2 + 1c8c: 4789 li a5,2 char spec = *p++; - 1ca2: 00244c03 lbu s8,2(s0) + 1c8e: 00244c03 lbu s8,2(s0) p++; - 1ca6: 00240b93 addi s7,s0,2 + 1c92: 00240b93 addi s7,s0,2 len_mod = 2; - 1caa: ec3e sd a5,24(sp) - 1cac: bbfd j 1aaa <_vscanf_core.constprop.0+0x11e> - 1cae: 100c0763 beqz s8,1dbc <_vscanf_core.constprop.0+0x430> - 1cb2: fbbc079b addiw a5,s8,-69 - 1cb6: 0ff7f793 zext.b a5,a5 - 1cba: 4689 li a3,2 - 1cbc: eef6e2e3 bltu a3,a5,1ba0 <_vscanf_core.constprop.0+0x214> + 1c96: ec3e sd a5,24(sp) + 1c98: bbfd j 1a96 <_vscanf_core.constprop.0+0x11e> + 1c9a: 100c0763 beqz s8,1da8 <_vscanf_core.constprop.0+0x430> + 1c9e: fbbc079b addiw a5,s8,-69 + 1ca2: 0ff7f793 zext.b a5,a5 + 1ca6: 4689 li a3,2 + 1ca8: eef6e2e3 bltu a3,a5,1b8c <_vscanf_core.constprop.0+0x214> _skip_space(ctx); - 1cc0: 856e mv a0,s11 - 1cc2: f8ea sd s10,112(sp) - 1cc4: c55ff0ef jal 1918 <_skip_space> + 1cac: 856e mv a0,s11 + 1cae: f8ea sd s10,112(sp) + 1cb0: c55ff0ef jal 1904 <_skip_space> if (ctx->ungotten >= 0) - 1cc8: 018da783 lw a5,24(s11) - 1ccc: 1207dd63 bgez a5,1e06 <_vscanf_core.constprop.0+0x47a> - 1cd0: 856e mv a0,s11 - 1cd2: c01ff0ef jal 18d2 <_in_char.part.0> + 1cb4: 018da783 lw a5,24(s11) + 1cb8: 1207dd63 bgez a5,1df2 <_vscanf_core.constprop.0+0x47a> + 1cbc: 856e mv a0,s11 + 1cbe: c01ff0ef jal 18be <_in_char.part.0> if (c == '-' || c == '+') - 1cd6: fd55069b addiw a3,a0,-43 - 1cda: ffd6f613 andi a2,a3,-3 - 1cde: 2601 sext.w a2,a2 - 1ce0: 87aa mv a5,a0 - 1ce2: 12060c63 beqz a2,1e1a <_vscanf_core.constprop.0+0x48e> + 1cc2: fd55069b addiw a3,a0,-43 + 1cc6: ffd6f613 andi a2,a3,-3 + 1cca: 2601 sext.w a2,a2 + 1ccc: 87aa mv a5,a0 + 1cce: 12060c63 beqz a2,1e06 <_vscanf_core.constprop.0+0x48e> while (c != -1 && i < 63) - 1ce6: 567d li a2,-1 - 1ce8: 16c50963 beq a0,a2,1e5a <_vscanf_core.constprop.0+0x4ce> - 1cec: fce6 sd s9,120(sp) + 1cd2: 567d li a2,-1 + 1cd4: 16c50963 beq a0,a2,1e46 <_vscanf_core.constprop.0+0x4ce> + 1cd8: fce6 sd s9,120(sp) int i = 0, c = _in_char(ctx); - 1cee: 4d01 li s10,0 - 1cf0: 80000937 lui s2,0x80000 - 1cf4: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff71bf> - 1cf6: 0932 slli s2,s2,0xc - 1cf8: 80194913 xori s2,s2,-2047 - 1cfc: 093e slli s2,s2,0xf - 1cfe: 02010813 addi a6,sp,32 - 1d02: 01a80cb3 add s9,a6,s10 - 1d06: 03a00c13 li s8,58 - 1d0a: 1935 addi s2,s2,-19 - 1d0c: a831 j 1d28 <_vscanf_core.constprop.0+0x39c> - 1d0e: bc5ff0ef jal 18d2 <_in_char.part.0> + 1cda: 4d01 li s10,0 + 1cdc: 80000937 lui s2,0x80000 + 1ce0: 197d addi s2,s2,-1 # ffffffff7fffffff <_ZSt4cerr+0xffffffff7fff718f> + 1ce2: 0932 slli s2,s2,0xc + 1ce4: 80194913 xori s2,s2,-2047 + 1ce8: 093e slli s2,s2,0xf + 1cea: 02010813 addi a6,sp,32 + 1cee: 01a80cb3 add s9,a6,s10 + 1cf2: 03a00c13 li s8,58 + 1cf6: 1935 addi s2,s2,-19 + 1cf8: a831 j 1d14 <_vscanf_core.constprop.0+0x39c> + 1cfa: bc5ff0ef jal 18be <_in_char.part.0> while (c != -1 && i < 63) - 1d12: 577d li a4,-1 - 1d14: 87aa mv a5,a0 - 1d16: 2ee50563 beq a0,a4,2000 <_vscanf_core.constprop.0+0x674> - 1d1a: 03f00713 li a4,63 - 1d1e: 0c85 addi s9,s9,1 - 1d20: 1eed0e63 beq s10,a4,1f1c <_vscanf_core.constprop.0+0x590> - 1d24: fd57869b addiw a3,a5,-43 + 1cfe: 577d li a4,-1 + 1d00: 87aa mv a5,a0 + 1d02: 2ee50563 beq a0,a4,1fec <_vscanf_core.constprop.0+0x674> + 1d06: 03f00713 li a4,63 + 1d0a: 0c85 addi s9,s9,1 + 1d0c: 1eed0e63 beq s10,a4,1f08 <_vscanf_core.constprop.0+0x590> + 1d10: fd57869b addiw a3,a5,-43 int c = ctx->ungotten; - 1d28: 00d95633 srl a2,s2,a3 - 1d2c: 856e mv a0,s11 - 1d2e: 8a05 andi a2,a2,1 - 1d30: 1edc6663 bltu s8,a3,1f1c <_vscanf_core.constprop.0+0x590> - 1d34: 1e060463 beqz a2,1f1c <_vscanf_core.constprop.0+0x590> + 1d14: 00d95633 srl a2,s2,a3 + 1d18: 856e mv a0,s11 + 1d1a: 8a05 andi a2,a2,1 + 1d1c: 1edc6663 bltu s8,a3,1f08 <_vscanf_core.constprop.0+0x590> + 1d20: 1e060463 beqz a2,1f08 <_vscanf_core.constprop.0+0x590> num_buf[i++] = (char)c; - 1d38: 00fc8023 sb a5,0(s9) + 1d24: 00fc8023 sb a5,0(s9) if (ctx->ungotten >= 0) - 1d3c: 018da783 lw a5,24(s11) + 1d28: 018da783 lw a5,24(s11) num_buf[i++] = (char)c; - 1d40: 2d05 addiw s10,s10,1 + 1d2c: 2d05 addiw s10,s10,1 if (ctx->ungotten >= 0) - 1d42: fc07c6e3 bltz a5,1d0e <_vscanf_core.constprop.0+0x382> + 1d2e: fc07c6e3 bltz a5,1cfa <_vscanf_core.constprop.0+0x382> ctx->ungotten = -1; - 1d46: 577d li a4,-1 - 1d48: 00edac23 sw a4,24(s11) + 1d32: 577d li a4,-1 + 1d34: 00edac23 sw a4,24(s11) while (c != -1 && i < 63) - 1d4c: b7f9 j 1d1a <_vscanf_core.constprop.0+0x38e> + 1d38: b7f9 j 1d06 <_vscanf_core.constprop.0+0x38e> if (*p == 'h') - 1d4e: 00144c03 lbu s8,1(s0) + 1d3a: 00144c03 lbu s8,1(s0) int len_mod = 0; - 1d52: ec02 sd zero,24(sp) + 1d3e: ec02 sd zero,24(sp) if (*p == 'h') - 1d54: d4bc1be3 bne s8,a1,1aaa <_vscanf_core.constprop.0+0x11e> + 1d40: d4bc1be3 bne s8,a1,1a96 <_vscanf_core.constprop.0+0x11e> char spec = *p++; - 1d58: 00244c03 lbu s8,2(s0) + 1d44: 00244c03 lbu s8,2(s0) p++; - 1d5c: 00240b93 addi s7,s0,2 - 1d60: b3a9 j 1aaa <_vscanf_core.constprop.0+0x11e> - 1d62: fce6 sd s9,120(sp) - 1d64: f8ea sd s10,112(sp) + 1d48: 00240b93 addi s7,s0,2 + 1d4c: b3a9 j 1a96 <_vscanf_core.constprop.0+0x11e> + 1d4e: fce6 sd s9,120(sp) + 1d50: f8ea sd s10,112(sp) int count = (width > 0) ? width : 1; - 1d66: 00090c1b sext.w s8,s2 - 1d6a: 0d205a63 blez s2,1e3e <_vscanf_core.constprop.0+0x4b2> + 1d52: 00090c1b sext.w s8,s2 + 1d56: 0d205a63 blez s2,1e2a <_vscanf_core.constprop.0+0x4b2> char *buf = suppress ? NULL : va_arg(ap, char *); - 1d6e: 4d01 li s10,0 - 1d70: 06098d63 beqz s3,1dea <_vscanf_core.constprop.0+0x45e> + 1d5a: 4d01 li s10,0 + 1d5c: 06098d63 beqz s3,1dd6 <_vscanf_core.constprop.0+0x45e> for (int i = 0; i < count; i++) - 1d74: 9c6a add s8,s8,s10 + 1d60: 9c6a add s8,s8,s10 if (c == -1) - 1d76: 5cfd li s9,-1 + 1d62: 5cfd li s9,-1 if (ctx->ungotten >= 0) - 1d78: 018da783 lw a5,24(s11) + 1d64: 018da783 lw a5,24(s11) ctx->ungotten = -1; - 1d7c: 856e mv a0,s11 + 1d68: 856e mv a0,s11 if (ctx->ungotten >= 0) - 1d7e: 0207dc63 bgez a5,1db6 <_vscanf_core.constprop.0+0x42a> - 1d82: b51ff0ef jal 18d2 <_in_char.part.0> - 1d86: 87aa mv a5,a0 + 1d6a: 0207dc63 bgez a5,1da2 <_vscanf_core.constprop.0+0x42a> + 1d6e: b51ff0ef jal 18be <_in_char.part.0> + 1d72: 87aa mv a5,a0 if (c == -1) - 1d88: 0b950d63 beq a0,s9,1e42 <_vscanf_core.constprop.0+0x4b6> + 1d74: 0b950d63 beq a0,s9,1e2e <_vscanf_core.constprop.0+0x4b6> if (!suppress) - 1d8c: 00099463 bnez s3,1d94 <_vscanf_core.constprop.0+0x408> + 1d78: 00099463 bnez s3,1d80 <_vscanf_core.constprop.0+0x408> buf[i] = (char)c; - 1d90: 00fd0023 sb a5,0(s10) + 1d7c: 00fd0023 sb a5,0(s10) for (int i = 0; i < count; i++) - 1d94: 0d05 addi s10,s10,1 - 1d96: ffac11e3 bne s8,s10,1d78 <_vscanf_core.constprop.0+0x3ec> + 1d80: 0d05 addi s10,s10,1 + 1d82: ffac11e3 bne s8,s10,1d64 <_vscanf_core.constprop.0+0x3ec> while (*p) - 1d9a: 001bc783 lbu a5,1(s7) + 1d86: 001bc783 lbu a5,1(s7) if (!suppress) - 1d9e: 00099363 bnez s3,1da4 <_vscanf_core.constprop.0+0x418> + 1d8a: 00099363 bnez s3,1d90 <_vscanf_core.constprop.0+0x418> assigned++; - 1da2: 2b05 addiw s6,s6,1 - 1da4: 794a ld s2,176(sp) - 1da6: 79aa ld s3,168(sp) - 1da8: 6baa ld s7,136(sp) - 1daa: 6c0a ld s8,128(sp) - 1dac: 7ce6 ld s9,120(sp) - 1dae: 7d46 ld s10,112(sp) + 1d8e: 2b05 addiw s6,s6,1 + 1d90: 794a ld s2,176(sp) + 1d92: 79aa ld s3,168(sp) + 1d94: 6baa ld s7,136(sp) + 1d96: 6c0a ld s8,128(sp) + 1d98: 7ce6 ld s9,120(sp) + 1d9a: 7d46 ld s10,112(sp) while (*p) - 1db0: c00793e3 bnez a5,19b6 <_vscanf_core.constprop.0+0x2a> - 1db4: b935 j 19f0 <_vscanf_core.constprop.0+0x64> + 1d9c: c00793e3 bnez a5,19a2 <_vscanf_core.constprop.0+0x2a> + 1da0: b935 j 19dc <_vscanf_core.constprop.0+0x64> ctx->ungotten = -1; - 1db6: 019dac23 sw s9,24(s11) + 1da2: 019dac23 sw s9,24(s11) if (c == -1) - 1dba: bfc9 j 1d8c <_vscanf_core.constprop.0+0x400> - 1dbc: 640e ld s0,192(sp) - 1dbe: 74ea ld s1,184(sp) - 1dc0: 794a ld s2,176(sp) - 1dc2: 79aa ld s3,168(sp) - 1dc4: 7a0a ld s4,160(sp) - 1dc6: 6aea ld s5,152(sp) - 1dc8: 6baa ld s7,136(sp) - 1dca: 6c0a ld s8,128(sp) - 1dcc: 7da6 ld s11,104(sp) - 1dce: b135 j 19fa <_vscanf_core.constprop.0+0x6e> + 1da6: bfc9 j 1d78 <_vscanf_core.constprop.0+0x400> + 1da8: 640e ld s0,192(sp) + 1daa: 74ea ld s1,184(sp) + 1dac: 794a ld s2,176(sp) + 1dae: 79aa ld s3,168(sp) + 1db0: 7a0a ld s4,160(sp) + 1db2: 6aea ld s5,152(sp) + 1db4: 6baa ld s7,136(sp) + 1db6: 6c0a ld s8,128(sp) + 1db8: 7da6 ld s11,104(sp) + 1dba: b135 j 19e6 <_vscanf_core.constprop.0+0x6e> int width = -1; - 1dd0: 597d li s2,-1 - 1dd2: b975 j 1a8e <_vscanf_core.constprop.0+0x102> + 1dbc: 597d li s2,-1 + 1dbe: b975 j 1a7a <_vscanf_core.constprop.0+0x102> if (!suppress) - 1dd4: 3c099c63 bnez s3,21ac <_vscanf_core.constprop.0+0x820> + 1dc0: 3c099c63 bnez s3,2198 <_vscanf_core.constprop.0+0x820> buf[i] = '\0'; - 1dd8: 67e2 ld a5,24(sp) - 1dda: 01a786b3 add a3,a5,s10 - 1dde: 00068023 sb zero,0(a3) + 1dc4: 67e2 ld a5,24(sp) + 1dc6: 01a786b3 add a3,a5,s10 + 1dca: 00068023 sb zero,0(a3) while (*p) - 1de2: 001bc783 lbu a5,1(s7) + 1dce: 001bc783 lbu a5,1(s7) assigned++; - 1de6: 2b05 addiw s6,s6,1 - 1de8: bf75 j 1da4 <_vscanf_core.constprop.0+0x418> + 1dd2: 2b05 addiw s6,s6,1 + 1dd4: bf75 j 1d90 <_vscanf_core.constprop.0+0x418> char *buf = suppress ? NULL : va_arg(ap, char *); - 1dea: 67a2 ld a5,8(sp) - 1dec: 0007bd03 ld s10,0(a5) - 1df0: 07a1 addi a5,a5,8 - 1df2: e43e sd a5,8(sp) - 1df4: b741 j 1d74 <_vscanf_core.constprop.0+0x3e8> + 1dd6: 67a2 ld a5,8(sp) + 1dd8: 0007bd03 ld s10,0(a5) + 1ddc: 07a1 addi a5,a5,8 + 1dde: e43e sd a5,8(sp) + 1de0: b741 j 1d60 <_vscanf_core.constprop.0+0x3e8> ctx->ungotten = -1; - 1df6: 56fd li a3,-1 - 1df8: 00ddac23 sw a3,24(s11) + 1de2: 56fd li a3,-1 + 1de4: 00ddac23 sw a3,24(s11) while (c != -1 && !isspace(c)) - 1dfc: bb11 j 1b10 <_vscanf_core.constprop.0+0x184> + 1de8: bb11 j 1afc <_vscanf_core.constprop.0+0x184> ctx->ungotten = -1; - 1dfe: 56fd li a3,-1 - 1e00: 00ddac23 sw a3,24(s11) + 1dea: 56fd li a3,-1 + 1dec: 00ddac23 sw a3,24(s11) return c; - 1e04: b3d1 j 1bc8 <_vscanf_core.constprop.0+0x23c> + 1df0: b3d1 j 1bb4 <_vscanf_core.constprop.0+0x23c> if (c == '-' || c == '+') - 1e06: fd57869b addiw a3,a5,-43 - 1e0a: ffd6f613 andi a2,a3,-3 + 1df2: fd57869b addiw a3,a5,-43 + 1df6: ffd6f613 andi a2,a3,-3 ctx->ungotten = -1; - 1e0e: 55fd li a1,-1 - 1e10: 00bdac23 sw a1,24(s11) + 1dfa: 55fd li a1,-1 + 1dfc: 00bdac23 sw a1,24(s11) if (c == '-' || c == '+') - 1e14: 2601 sext.w a2,a2 - 1e16: ec061be3 bnez a2,1cec <_vscanf_core.constprop.0+0x360> + 1e00: 2601 sext.w a2,a2 + 1e02: ec061be3 bnez a2,1cd8 <_vscanf_core.constprop.0+0x360> num_buf[i++] = (char)c; - 1e1a: 02f10023 sb a5,32(sp) + 1e06: 02f10023 sb a5,32(sp) if (ctx->ungotten >= 0) - 1e1e: 018da783 lw a5,24(s11) - 1e22: 2207da63 bgez a5,2056 <_vscanf_core.constprop.0+0x6ca> - 1e26: 856e mv a0,s11 - 1e28: aabff0ef jal 18d2 <_in_char.part.0> + 1e0a: 018da783 lw a5,24(s11) + 1e0e: 2207da63 bgez a5,2042 <_vscanf_core.constprop.0+0x6ca> + 1e12: 856e mv a0,s11 + 1e14: aabff0ef jal 18be <_in_char.part.0> while (c != -1 && i < 63) - 1e2c: 567d li a2,-1 - 1e2e: 87aa mv a5,a0 + 1e18: 567d li a2,-1 + 1e1a: 87aa mv a5,a0 num_buf[i++] = (char)c; - 1e30: 4d05 li s10,1 - 1e32: fd55069b addiw a3,a0,-43 + 1e1c: 4d05 li s10,1 + 1e1e: fd55069b addiw a3,a0,-43 while (c != -1 && i < 63) - 1e36: 3ac50163 beq a0,a2,21d8 <_vscanf_core.constprop.0+0x84c> - 1e3a: fce6 sd s9,120(sp) - 1e3c: bd55 j 1cf0 <_vscanf_core.constprop.0+0x364> + 1e22: 3ac50163 beq a0,a2,21c4 <_vscanf_core.constprop.0+0x84c> + 1e26: fce6 sd s9,120(sp) + 1e28: bd55 j 1cdc <_vscanf_core.constprop.0+0x364> int count = (width > 0) ? width : 1; - 1e3e: 4c05 li s8,1 - 1e40: b73d j 1d6e <_vscanf_core.constprop.0+0x3e2> - 1e42: 640e ld s0,192(sp) - 1e44: 74ea ld s1,184(sp) - 1e46: 794a ld s2,176(sp) - 1e48: 79aa ld s3,168(sp) - 1e4a: 7a0a ld s4,160(sp) - 1e4c: 6aea ld s5,152(sp) - 1e4e: 6baa ld s7,136(sp) - 1e50: 6c0a ld s8,128(sp) - 1e52: 7ce6 ld s9,120(sp) - 1e54: 7d46 ld s10,112(sp) - 1e56: 7da6 ld s11,104(sp) - 1e58: b64d j 19fa <_vscanf_core.constprop.0+0x6e> - 1e5a: 640e ld s0,192(sp) - 1e5c: 74ea ld s1,184(sp) - 1e5e: 794a ld s2,176(sp) - 1e60: 79aa ld s3,168(sp) - 1e62: 7a0a ld s4,160(sp) - 1e64: 6aea ld s5,152(sp) - 1e66: 6baa ld s7,136(sp) - 1e68: 6c0a ld s8,128(sp) - 1e6a: 7d46 ld s10,112(sp) - 1e6c: 7da6 ld s11,104(sp) - 1e6e: b671 j 19fa <_vscanf_core.constprop.0+0x6e> + 1e2a: 4c05 li s8,1 + 1e2c: b73d j 1d5a <_vscanf_core.constprop.0+0x3e2> + 1e2e: 640e ld s0,192(sp) + 1e30: 74ea ld s1,184(sp) + 1e32: 794a ld s2,176(sp) + 1e34: 79aa ld s3,168(sp) + 1e36: 7a0a ld s4,160(sp) + 1e38: 6aea ld s5,152(sp) + 1e3a: 6baa ld s7,136(sp) + 1e3c: 6c0a ld s8,128(sp) + 1e3e: 7ce6 ld s9,120(sp) + 1e40: 7d46 ld s10,112(sp) + 1e42: 7da6 ld s11,104(sp) + 1e44: b64d j 19e6 <_vscanf_core.constprop.0+0x6e> + 1e46: 640e ld s0,192(sp) + 1e48: 74ea ld s1,184(sp) + 1e4a: 794a ld s2,176(sp) + 1e4c: 79aa ld s3,168(sp) + 1e4e: 7a0a ld s4,160(sp) + 1e50: 6aea ld s5,152(sp) + 1e52: 6baa ld s7,136(sp) + 1e54: 6c0a ld s8,128(sp) + 1e56: 7d46 ld s10,112(sp) + 1e58: 7da6 ld s11,104(sp) + 1e5a: b671 j 19e6 <_vscanf_core.constprop.0+0x6e> ctx->ungotten = -1; - 1e70: 018dac23 sw s8,24(s11) + 1e5c: 018dac23 sw s8,24(s11) while (c != -1 && !isspace(c)) - 1e74: b9e5 j 1b6c <_vscanf_core.constprop.0+0x1e0> + 1e60: b9e5 j 1b58 <_vscanf_core.constprop.0+0x1e0> ctx->ungotten = -1; - 1e76: 57fd li a5,-1 - 1e78: 00fdac23 sw a5,24(s11) + 1e62: 57fd li a5,-1 + 1e64: 00fdac23 sw a5,24(s11) while (c != -1 && i < 63) - 1e7c: bbd9 j 1c52 <_vscanf_core.constprop.0+0x2c6> + 1e68: bbd9 j 1c3e <_vscanf_core.constprop.0+0x2c6> int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1e7e: f9f3069b addiw a3,t1,-97 - 1e82: 4795 li a5,5 - 1e84: 06d7f263 bgeu a5,a3,1ee8 <_vscanf_core.constprop.0+0x55c> - 1e88: fbf3031b addiw t1,t1,-65 - 1e8c: 4795 li a5,5 - 1e8e: 0467fd63 bgeu a5,t1,1ee8 <_vscanf_core.constprop.0+0x55c> + 1e6a: f9f3069b addiw a3,t1,-97 + 1e6e: 4795 li a5,5 + 1e70: 06d7f263 bgeu a5,a3,1ed4 <_vscanf_core.constprop.0+0x55c> + 1e74: fbf3031b addiw t1,t1,-65 + 1e78: 4795 li a5,5 + 1e7a: 0467fd63 bgeu a5,t1,1ed4 <_vscanf_core.constprop.0+0x55c> int x = (c == 'x' || c == 'X'); - 1e92: 07800693 li a3,120 - 1e96: 18d50763 beq a0,a3,2024 <_vscanf_core.constprop.0+0x698> - 1e9a: fa850693 addi a3,a0,-88 - 1e9e: 0016b693 seqz a3,a3 + 1e7e: 07800693 li a3,120 + 1e82: 18d50763 beq a0,a3,2010 <_vscanf_core.constprop.0+0x698> + 1e86: fa850693 addi a3,a0,-88 + 1e8a: 0016b693 seqz a3,a3 if (base == 0 && i == 1 && num_buf[0] == '0' && x) - 1ea2: 4301 li t1,0 - 1ea4: 32061663 bnez a2,21d0 <_vscanf_core.constprop.0+0x844> - 1ea8: 4785 li a5,1 - 1eaa: 4601 li a2,0 - 1eac: d6fd1ce3 bne s10,a5,1c24 <_vscanf_core.constprop.0+0x298> - 1eb0: 02014e03 lbu t3,32(sp) - 1eb4: 03000793 li a5,48 - 1eb8: d6fe16e3 bne t3,a5,1c24 <_vscanf_core.constprop.0+0x298> - 1ebc: d60684e3 beqz a3,1c24 <_vscanf_core.constprop.0+0x298> + 1e8e: 4301 li t1,0 + 1e90: 32061663 bnez a2,21bc <_vscanf_core.constprop.0+0x844> + 1e94: 4785 li a5,1 + 1e96: 4601 li a2,0 + 1e98: d6fd1ce3 bne s10,a5,1c10 <_vscanf_core.constprop.0+0x298> + 1e9c: 02014e03 lbu t3,32(sp) + 1ea0: 03000793 li a5,48 + 1ea4: d6fe16e3 bne t3,a5,1c10 <_vscanf_core.constprop.0+0x298> + 1ea8: d60684e3 beqz a3,1c10 <_vscanf_core.constprop.0+0x298> base = 16; - 1ec0: 4641 li a2,16 + 1eac: 4641 li a2,16 if (width > 0 && i >= width) - 1ec2: d7a919e3 bne s2,s10,1c34 <_vscanf_core.constprop.0+0x2a8> - 1ec6: bb59 j 1c5c <_vscanf_core.constprop.0+0x2d0> + 1eae: d7a919e3 bne s2,s10,1c20 <_vscanf_core.constprop.0+0x2a8> + 1eb2: bb59 j 1c48 <_vscanf_core.constprop.0+0x2d0> int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1ec8: f9f3069b addiw a3,t1,-97 - 1ecc: 4795 li a5,5 - 1ece: 02d7f263 bgeu a5,a3,1ef2 <_vscanf_core.constprop.0+0x566> - 1ed2: fbf3031b addiw t1,t1,-65 - 1ed6: 0467f063 bgeu a5,t1,1f16 <_vscanf_core.constprop.0+0x58a> + 1eb4: f9f3069b addiw a3,t1,-97 + 1eb8: 4795 li a5,5 + 1eba: 02d7f263 bgeu a5,a3,1ede <_vscanf_core.constprop.0+0x566> + 1ebe: fbf3031b addiw t1,t1,-65 + 1ec2: 0467f063 bgeu a5,t1,1f02 <_vscanf_core.constprop.0+0x58a> int x = (c == 'x' || c == 'X'); - 1eda: 07800693 li a3,120 - 1ede: fad51ee3 bne a0,a3,1e9a <_vscanf_core.constprop.0+0x50e> - 1ee2: 4301 li t1,0 - 1ee4: 4685 li a3,1 - 1ee6: b7c9 j 1ea8 <_vscanf_core.constprop.0+0x51c> + 1ec6: 07800693 li a3,120 + 1eca: fad51ee3 bne a0,a3,1e86 <_vscanf_core.constprop.0+0x50e> + 1ece: 4301 li t1,0 + 1ed0: 4685 li a3,1 + 1ed2: b7c9 j 1e94 <_vscanf_core.constprop.0+0x51c> int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1ee8: 4305 li t1,1 + 1ed4: 4305 li t1,1 int x = (c == 'x' || c == 'X'); - 1eea: 4681 li a3,0 + 1ed6: 4681 li a3,0 if (width > 0 && i >= width) - 1eec: d3204ee3 bgtz s2,1c28 <_vscanf_core.constprop.0+0x29c> - 1ef0: bb35 j 1c2c <_vscanf_core.constprop.0+0x2a0> + 1ed8: d3204ee3 bgtz s2,1c14 <_vscanf_core.constprop.0+0x29c> + 1edc: bb35 j 1c18 <_vscanf_core.constprop.0+0x2a0> int x = (c == 'x' || c == 'X'); - 1ef2: 4681 li a3,0 + 1ede: 4681 li a3,0 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1ef4: 4305 li t1,1 + 1ee0: 4305 li t1,1 if (width > 0 && i >= width) - 1ef6: d32049e3 bgtz s2,1c28 <_vscanf_core.constprop.0+0x29c> - 1efa: bb0d j 1c2c <_vscanf_core.constprop.0+0x2a0> - 1efc: 4301 li t1,0 + 1ee2: d32049e3 bgtz s2,1c14 <_vscanf_core.constprop.0+0x29c> + 1ee6: bb0d j 1c18 <_vscanf_core.constprop.0+0x2a0> + 1ee8: 4301 li t1,0 int x = (c == 'x' || c == 'X'); - 1efe: 4685 li a3,1 + 1eea: 4685 li a3,1 if (width > 0 && i >= width) - 1f00: d32044e3 bgtz s2,1c28 <_vscanf_core.constprop.0+0x29c> - 1f04: bb05 j 1c34 <_vscanf_core.constprop.0+0x2a8> + 1eec: d32044e3 bgtz s2,1c14 <_vscanf_core.constprop.0+0x29c> + 1ef0: bb05 j 1c20 <_vscanf_core.constprop.0+0x2a8> if (!suppress) - 1f06: c8099be3 bnez s3,1b9c <_vscanf_core.constprop.0+0x210> + 1ef2: c8099be3 bnez s3,1b88 <_vscanf_core.constprop.0+0x210> buf[i] = '\0'; - 1f0a: 67e2 ld a5,24(sp) - 1f0c: 00078023 sb zero,0(a5) + 1ef6: 67e2 ld a5,24(sp) + 1ef8: 00078023 sb zero,0(a5) ctx->ungotten = c; - 1f10: 00adac23 sw a0,24(s11) + 1efc: 00adac23 sw a0,24(s11) if (i > 0 && !suppress) - 1f14: b171 j 1ba0 <_vscanf_core.constprop.0+0x214> + 1f00: b171 j 1b8c <_vscanf_core.constprop.0+0x214> int x = (c == 'x' || c == 'X'); - 1f16: 4681 li a3,0 + 1f02: 4681 li a3,0 int hex = (base == 16 || base == 0) && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); - 1f18: 4305 li t1,1 - 1f1a: b779 j 1ea8 <_vscanf_core.constprop.0+0x51c> + 1f04: 4305 li t1,1 + 1f06: b779 j 1e94 <_vscanf_core.constprop.0+0x51c> num_buf[i] = '\0'; - 1f1c: 040d0713 addi a4,s10,64 - 1f20: 1014 addi a3,sp,32 - 1f22: 96ba add a3,a3,a4 - 1f24: fc068023 sb zero,-64(a3) + 1f08: 040d0713 addi a4,s10,64 + 1f0c: 1014 addi a3,sp,32 + 1f0e: 96ba add a3,a3,a4 + 1f10: fc068023 sb zero,-64(a3) ctx->ungotten = c; - 1f28: 00fdac23 sw a5,24(s11) + 1f14: 00fdac23 sw a5,24(s11) if (i == 0) - 1f2c: f00d0be3 beqz s10,1e42 <_vscanf_core.constprop.0+0x4b6> - 1f30: 7ce6 ld s9,120(sp) + 1f18: f00d0be3 beqz s10,1e2e <_vscanf_core.constprop.0+0x4b6> + 1f1c: 7ce6 ld s9,120(sp) if (!suppress) - 1f32: d40992e3 bnez s3,1c76 <_vscanf_core.constprop.0+0x2ea> + 1f1e: d40992e3 bnez s3,1c62 <_vscanf_core.constprop.0+0x2ea> if (*str == '-') - 1f36: 02014603 lbu a2,32(sp) - 1f3a: 02d00793 li a5,45 - 1f3e: 1af60963 beq a2,a5,20f0 <_vscanf_core.constprop.0+0x764> + 1f22: 02014603 lbu a2,32(sp) + 1f26: 02d00793 li a5,45 + 1f2a: 1af60963 beq a2,a5,20dc <_vscanf_core.constprop.0+0x764> else if (*str == '+') - 1f42: 02b00793 li a5,43 - 1f46: 20f60a63 beq a2,a5,215a <_vscanf_core.constprop.0+0x7ce> - 1f4a: 00005797 auipc a5,0x5 - 1f4e: 9c67b587 fld fa1,-1594(a5) # 6910 - 1f52: 101c addi a5,sp,32 + 1f2e: 02b00793 li a5,43 + 1f32: 20f60a63 beq a2,a5,2146 <_vscanf_core.constprop.0+0x7ce> + 1f36: 00005797 auipc a5,0x5 + 1f3a: a427b587 fld fa1,-1470(a5) # 6978 + 1f3e: 101c addi a5,sp,32 while (*str >= '0' && *str <= '9') - 1f54: fd06069b addiw a3,a2,-48 - 1f58: 0ff6f513 zext.b a0,a3 - 1f5c: 45a5 li a1,9 - 1f5e: f20007d3 fmv.d.x fa5,zero - 1f62: 02a5e463 bltu a1,a0,1f8a <_vscanf_core.constprop.0+0x5fe> - 1f66: 00005717 auipc a4,0x5 - 1f6a: 9b273707 fld fa4,-1614(a4) # 6918 - 1f6e: 4525 li a0,9 - 1f70: 0017c603 lbu a2,1(a5) + 1f40: fd06069b addiw a3,a2,-48 + 1f44: 0ff6f513 zext.b a0,a3 + 1f48: 45a5 li a1,9 + 1f4a: f20007d3 fmv.d.x fa5,zero + 1f4e: 02a5e463 bltu a1,a0,1f76 <_vscanf_core.constprop.0+0x5fe> + 1f52: 00005717 auipc a4,0x5 + 1f56: a2e73707 fld fa4,-1490(a4) # 6980 + 1f5a: 4525 li a0,9 + 1f5c: 0017c603 lbu a2,1(a5) val = val * 10.0 + (*str - '0'); - 1f74: d20686d3 fcvt.d.w fa3,a3 + 1f60: d20686d3 fcvt.d.w fa3,a3 str++; - 1f78: 0785 addi a5,a5,1 + 1f64: 0785 addi a5,a5,1 while (*str >= '0' && *str <= '9') - 1f7a: fd06069b addiw a3,a2,-48 - 1f7e: 0ff6f593 zext.b a1,a3 + 1f66: fd06069b addiw a3,a2,-48 + 1f6a: 0ff6f593 zext.b a1,a3 val = val * 10.0 + (*str - '0'); - 1f82: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 + 1f6e: 6ae7f7c3 fmadd.d fa5,fa5,fa4,fa3 while (*str >= '0' && *str <= '9') - 1f86: feb575e3 bgeu a0,a1,1f70 <_vscanf_core.constprop.0+0x5e4> + 1f72: feb575e3 bgeu a0,a1,1f5c <_vscanf_core.constprop.0+0x5e4> if (*str == '.') - 1f8a: 02e00693 li a3,46 - 1f8e: 16d60a63 beq a2,a3,2102 <_vscanf_core.constprop.0+0x776> + 1f76: 02e00693 li a3,46 + 1f7a: 16d60a63 beq a2,a3,20ee <_vscanf_core.constprop.0+0x776> if (*str == 'e' || *str == 'E') - 1f92: 0007c683 lbu a3,0(a5) - 1f96: 0df6f693 andi a3,a3,223 - 1f9a: 04500613 li a2,69 - 1f9e: 0cc68463 beq a3,a2,2066 <_vscanf_core.constprop.0+0x6da> + 1f7e: 0007c683 lbu a3,0(a5) + 1f82: 0df6f693 andi a3,a3,223 + 1f86: 04500613 li a2,69 + 1f8a: 0cc68463 beq a3,a2,2052 <_vscanf_core.constprop.0+0x6da> *va_arg(ap, double *) = val; - 1fa2: 6722 ld a4,8(sp) + 1f8e: 6722 ld a4,8(sp) if (len_mod == 1) - 1fa4: 4685 li a3,1 + 1f90: 4685 li a3,1 return sign * val; - 1fa6: 12b7f7d3 fmul.d fa5,fa5,fa1 + 1f92: 12b7f7d3 fmul.d fa5,fa5,fa1 *va_arg(ap, double *) = val; - 1faa: 631c ld a5,0(a4) + 1f96: 631c ld a5,0(a4) *va_arg(ap, int64 *) = val; - 1fac: 0721 addi a4,a4,8 - 1fae: e43a sd a4,8(sp) + 1f98: 0721 addi a4,a4,8 + 1f9a: e43a sd a4,8(sp) if (len_mod == 1) - 1fb0: 6762 ld a4,24(sp) - 1fb2: 18d70b63 beq a4,a3,2148 <_vscanf_core.constprop.0+0x7bc> + 1f9c: 6762 ld a4,24(sp) + 1f9e: 18d70b63 beq a4,a3,2134 <_vscanf_core.constprop.0+0x7bc> *va_arg(ap, float *) = (float)val; - 1fb6: 4017f7d3 fcvt.s.d fa5,fa5 + 1fa2: 4017f7d3 fcvt.s.d fa5,fa5 assigned++; - 1fba: 2b05 addiw s6,s6,1 + 1fa6: 2b05 addiw s6,s6,1 *va_arg(ap, float *) = (float)val; - 1fbc: 00f7a027 fsw fa5,0(a5) - 1fc0: b95d j 1c76 <_vscanf_core.constprop.0+0x2ea> + 1fa8: 00f7a027 fsw fa5,0(a5) + 1fac: b95d j 1c62 <_vscanf_core.constprop.0+0x2ea> num_buf[i++] = (char)c; - 1fc2: 02a10023 sb a0,32(sp) + 1fae: 02a10023 sb a0,32(sp) if (ctx->ungotten >= 0) - 1fc6: 018da503 lw a0,24(s11) - 1fca: 06055463 bgez a0,2032 <_vscanf_core.constprop.0+0x6a6> - 1fce: 856e mv a0,s11 - 1fd0: 903ff0ef jal 18d2 <_in_char.part.0> + 1fb2: 018da503 lw a0,24(s11) + 1fb6: 06055463 bgez a0,201e <_vscanf_core.constprop.0+0x6a6> + 1fba: 856e mv a0,s11 + 1fbc: 903ff0ef jal 18be <_in_char.part.0> num_buf[i++] = (char)c; - 1fd4: 4d05 li s10,1 - 1fd6: b101 j 1bd6 <_vscanf_core.constprop.0+0x24a> + 1fc0: 4d05 li s10,1 + 1fc2: b101 j 1bc2 <_vscanf_core.constprop.0+0x24a> int64 val = strtoll(num_buf, NULL, base); - 1fd8: 4581 li a1,0 - 1fda: 1008 addi a0,sp,32 - 1fdc: 696030ef jal 5672 + 1fc4: 4581 li a1,0 + 1fc6: 1008 addi a0,sp,32 + 1fc8: 696030ef jal 565e *va_arg(ap, int64 *) = val; - 1fe0: 67a2 ld a5,8(sp) + 1fcc: 67a2 ld a5,8(sp) if (len_mod == 2) - 1fe2: 6762 ld a4,24(sp) - 1fe4: 4689 li a3,2 + 1fce: 6762 ld a4,24(sp) + 1fd0: 4689 li a3,2 *va_arg(ap, int64 *) = val; - 1fe6: 07a1 addi a5,a5,8 + 1fd2: 07a1 addi a5,a5,8 if (len_mod == 2) - 1fe8: 16d70363 beq a4,a3,214e <_vscanf_core.constprop.0+0x7c2> + 1fd4: 16d70363 beq a4,a3,213a <_vscanf_core.constprop.0+0x7c2> *va_arg(ap, int64 *) = val; - 1fec: 6722 ld a4,8(sp) + 1fd8: 6722 ld a4,8(sp) else if (len_mod == 1) - 1fee: 4605 li a2,1 + 1fda: 4605 li a2,1 *va_arg(ap, int64 *) = val; - 1ff0: 6314 ld a3,0(a4) + 1fdc: 6314 ld a3,0(a4) else if (len_mod == 1) - 1ff2: 6762 ld a4,24(sp) - 1ff4: 16c70163 beq a4,a2,2156 <_vscanf_core.constprop.0+0x7ca> + 1fde: 6762 ld a4,24(sp) + 1fe0: 16c70163 beq a4,a2,2142 <_vscanf_core.constprop.0+0x7ca> *va_arg(ap, int *) = (int)val; - 1ff8: c288 sw a0,0(a3) + 1fe4: c288 sw a0,0(a3) assigned++; - 1ffa: 2b05 addiw s6,s6,1 - 1ffc: e43e sd a5,8(sp) - 1ffe: b9a5 j 1c76 <_vscanf_core.constprop.0+0x2ea> + 1fe6: 2b05 addiw s6,s6,1 + 1fe8: e43e sd a5,8(sp) + 1fea: b9a5 j 1c62 <_vscanf_core.constprop.0+0x2ea> num_buf[i] = '\0'; - 2000: 040d0793 addi a5,s10,64 - 2004: 1018 addi a4,sp,32 - 2006: 00e785b3 add a1,a5,a4 - 200a: fc058023 sb zero,-64(a1) + 1fec: 040d0793 addi a5,s10,64 + 1ff0: 1018 addi a4,sp,32 + 1ff2: 00e785b3 add a1,a5,a4 + 1ff6: fc058023 sb zero,-64(a1) if (i == 0) - 200e: 7ce6 ld s9,120(sp) - 2010: b70d j 1f32 <_vscanf_core.constprop.0+0x5a6> + 1ffa: 7ce6 ld s9,120(sp) + 1ffc: b70d j 1f1e <_vscanf_core.constprop.0+0x5a6> num_buf[i] = '\0'; - 2012: 040d0793 addi a5,s10,64 - 2016: 1018 addi a4,sp,32 - 2018: 00e78833 add a6,a5,a4 - 201c: fc080023 sb zero,-64(a6) + 1ffe: 040d0793 addi a5,s10,64 + 2002: 1018 addi a4,sp,32 + 2004: 00e78833 add a6,a5,a4 + 2008: fc080023 sb zero,-64(a6) if (i == 0) - 2020: 7ce6 ld s9,120(sp) - 2022: b981 j 1c72 <_vscanf_core.constprop.0+0x2e6> + 200c: 7ce6 ld s9,120(sp) + 200e: b981 j 1c5e <_vscanf_core.constprop.0+0x2e6> int x = (c == 'x' || c == 'X'); - 2024: 4301 li t1,0 - 2026: 4685 li a3,1 + 2010: 4301 li t1,0 + 2012: 4685 li a3,1 if (width > 0 && i >= width) - 2028: c12040e3 bgtz s2,1c28 <_vscanf_core.constprop.0+0x29c> - 202c: b101 j 1c2c <_vscanf_core.constprop.0+0x2a0> + 2014: c12040e3 bgtz s2,1c14 <_vscanf_core.constprop.0+0x29c> + 2018: b101 j 1c18 <_vscanf_core.constprop.0+0x2a0> int assigned = 0; - 202e: 4b01 li s6,0 - 2030: b2e9 j 19fa <_vscanf_core.constprop.0+0x6e> + 201a: 4b01 li s6,0 + 201c: b2e9 j 19e6 <_vscanf_core.constprop.0+0x6e> ctx->ungotten = -1; - 2032: 56fd li a3,-1 - 2034: fce6 sd s9,120(sp) - 2036: 00ddac23 sw a3,24(s11) + 201e: 56fd li a3,-1 + 2020: fce6 sd s9,120(sp) + 2022: 00ddac23 sw a3,24(s11) int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 203a: 07800693 li a3,120 - 203e: 4641 li a2,16 + 2026: 07800693 li a3,120 + 202a: 4641 li a2,16 num_buf[i++] = (char)c; - 2040: 4d05 li s10,1 + 202c: 4d05 li s10,1 int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 2042: badc09e3 beq s8,a3,1bf4 <_vscanf_core.constprop.0+0x268> - 2046: 06900693 li a3,105 - 204a: 4629 li a2,10 + 202e: badc09e3 beq s8,a3,1be0 <_vscanf_core.constprop.0+0x268> + 2032: 06900693 li a3,105 + 2036: 4629 li a2,10 num_buf[i++] = (char)c; - 204c: 4d05 li s10,1 + 2038: 4d05 li s10,1 int base = (spec == 'x') ? 16 : (spec == 'i' ? 0 : 10); - 204e: badc13e3 bne s8,a3,1bf4 <_vscanf_core.constprop.0+0x268> - 2052: 4601 li a2,0 - 2054: b645 j 1bf4 <_vscanf_core.constprop.0+0x268> + 203a: badc13e3 bne s8,a3,1be0 <_vscanf_core.constprop.0+0x268> + 203e: 4601 li a2,0 + 2040: b645 j 1be0 <_vscanf_core.constprop.0+0x268> ctx->ungotten = -1; - 2056: 56fd li a3,-1 - 2058: fce6 sd s9,120(sp) - 205a: 00ddac23 sw a3,24(s11) + 2042: 56fd li a3,-1 + 2044: fce6 sd s9,120(sp) + 2046: 00ddac23 sw a3,24(s11) num_buf[i++] = (char)c; - 205e: 4d05 li s10,1 - 2060: fd57869b addiw a3,a5,-43 - 2064: b171 j 1cf0 <_vscanf_core.constprop.0+0x364> + 204a: 4d05 li s10,1 + 204c: fd57869b addiw a3,a5,-43 + 2050: b171 j 1cdc <_vscanf_core.constprop.0+0x364> if (*str == '-') - 2066: 0017c583 lbu a1,1(a5) - 206a: 02d00693 li a3,45 - 206e: 0ed58f63 beq a1,a3,216c <_vscanf_core.constprop.0+0x7e0> + 2052: 0017c583 lbu a1,1(a5) + 2056: 02d00693 li a3,45 + 205a: 0ed58f63 beq a1,a3,2158 <_vscanf_core.constprop.0+0x7e0> else if (*str == '+') - 2072: 02b00693 li a3,43 - 2076: 10d58e63 beq a1,a3,2192 <_vscanf_core.constprop.0+0x806> + 205e: 02b00693 li a3,43 + 2062: 10d58e63 beq a1,a3,217e <_vscanf_core.constprop.0+0x806> while (*str >= '0' && *str <= '9') - 207a: fd05861b addiw a2,a1,-48 - 207e: 0ff67513 zext.b a0,a2 - 2082: 45a5 li a1,9 + 2066: fd05861b addiw a2,a1,-48 + 206a: 0ff67513 zext.b a0,a2 + 206e: 45a5 li a1,9 str++; - 2084: 00178693 addi a3,a5,1 + 2070: 00178693 addi a3,a5,1 int esign = 1; - 2088: 4805 li a6,1 + 2074: 4805 li a6,1 while (*str >= '0' && *str <= '9') - 208a: 04a5ec63 bltu a1,a0,20e2 <_vscanf_core.constprop.0+0x756> - 208e: 4525 li a0,9 - 2090: 0016c583 lbu a1,1(a3) + 2076: 04a5ec63 bltu a1,a0,20ce <_vscanf_core.constprop.0+0x756> + 207a: 4525 li a0,9 + 207c: 0016c583 lbu a1,1(a3) eval = eval * 10 + (*str - '0'); - 2094: 0029979b slliw a5,s3,0x2 - 2098: 013787bb addw a5,a5,s3 - 209c: 0017979b slliw a5,a5,0x1 - 20a0: 00f609bb addw s3,a2,a5 + 2080: 0029979b slliw a5,s3,0x2 + 2084: 013787bb addw a5,a5,s3 + 2088: 0017979b slliw a5,a5,0x1 + 208c: 00f609bb addw s3,a2,a5 while (*str >= '0' && *str <= '9') - 20a4: fd05861b addiw a2,a1,-48 - 20a8: 0ff67593 zext.b a1,a2 + 2090: fd05861b addiw a2,a1,-48 + 2094: 0ff67593 zext.b a1,a2 str++; - 20ac: 0685 addi a3,a3,1 + 2098: 0685 addi a3,a3,1 while (*str >= '0' && *str <= '9') - 20ae: feb571e3 bgeu a0,a1,2090 <_vscanf_core.constprop.0+0x704> + 209a: feb571e3 bgeu a0,a1,207c <_vscanf_core.constprop.0+0x704> while (eval--) - 20b2: fff9879b addiw a5,s3,-1 - 20b6: 12098463 beqz s3,21de <_vscanf_core.constprop.0+0x852> + 209e: fff9879b addiw a5,s3,-1 + 20a2: 12098463 beqz s3,21ca <_vscanf_core.constprop.0+0x852> double p = 1.0; - 20ba: 00005717 auipc a4,0x5 - 20be: 85673687 fld fa3,-1962(a4) # 6910 - 20c2: 00005717 auipc a4,0x5 - 20c6: 85673707 fld fa4,-1962(a4) # 6918 + 20a6: 00005717 auipc a4,0x5 + 20aa: 8d273687 fld fa3,-1838(a4) # 6978 + 20ae: 00005717 auipc a4,0x5 + 20b2: 8d273707 fld fa4,-1838(a4) # 6980 while (eval--) - 20ca: 56fd li a3,-1 - 20cc: 37fd addiw a5,a5,-1 + 20b6: 56fd li a3,-1 + 20b8: 37fd addiw a5,a5,-1 p *= 10.0; - 20ce: 12e6f6d3 fmul.d fa3,fa3,fa4 + 20ba: 12e6f6d3 fmul.d fa3,fa3,fa4 while (eval--) - 20d2: fed79de3 bne a5,a3,20cc <_vscanf_core.constprop.0+0x740> + 20be: fed79de3 bne a5,a3,20b8 <_vscanf_core.constprop.0+0x740> if (esign == 1) - 20d6: 4785 li a5,1 - 20d8: 00f80963 beq a6,a5,20ea <_vscanf_core.constprop.0+0x75e> + 20c2: 4785 li a5,1 + 20c4: 00f80963 beq a6,a5,20d6 <_vscanf_core.constprop.0+0x75e> val /= p; - 20dc: 1ad7f7d3 fdiv.d fa5,fa5,fa3 - 20e0: b5c9 j 1fa2 <_vscanf_core.constprop.0+0x616> + 20c8: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 20cc: b5c9 j 1f8e <_vscanf_core.constprop.0+0x616> double p = 1.0; - 20e2: 00005797 auipc a5,0x5 - 20e6: 82e7b687 fld fa3,-2002(a5) # 6910 + 20ce: 00005797 auipc a5,0x5 + 20d2: 8aa7b687 fld fa3,-1878(a5) # 6978 val *= p; - 20ea: 12d7f7d3 fmul.d fa5,fa5,fa3 - 20ee: bd55 j 1fa2 <_vscanf_core.constprop.0+0x616> + 20d6: 12d7f7d3 fmul.d fa5,fa5,fa3 + 20da: bd55 j 1f8e <_vscanf_core.constprop.0+0x616> while (*str >= '0' && *str <= '9') - 20f0: 00005797 auipc a5,0x5 - 20f4: 8187b587 fld fa1,-2024(a5) # 6908 - 20f8: 02114603 lbu a2,33(sp) + 20dc: 00005797 auipc a5,0x5 + 20e0: 8947b587 fld fa1,-1900(a5) # 6970 + 20e4: 02114603 lbu a2,33(sp) str++; - 20fc: 02110793 addi a5,sp,33 - 2100: bd91 j 1f54 <_vscanf_core.constprop.0+0x5c8> + 20e8: 02110793 addi a5,sp,33 + 20ec: bd91 j 1f40 <_vscanf_core.constprop.0+0x5c8> while (*str >= '0' && *str <= '9') - 2102: 0017c683 lbu a3,1(a5) - 2106: 45a5 li a1,9 + 20ee: 0017c683 lbu a3,1(a5) + 20f2: 45a5 li a1,9 str++; - 2108: 0785 addi a5,a5,1 + 20f4: 0785 addi a5,a5,1 while (*str >= '0' && *str <= '9') - 210a: fd06861b addiw a2,a3,-48 - 210e: 0ff67513 zext.b a0,a2 - 2112: e8a5e2e3 bltu a1,a0,1f96 <_vscanf_core.constprop.0+0x60a> + 20f6: fd06861b addiw a2,a3,-48 + 20fa: 0ff67513 zext.b a0,a2 + 20fe: e8a5e2e3 bltu a1,a0,1f82 <_vscanf_core.constprop.0+0x60a> double div = 10.0; - 2116: 00005717 auipc a4,0x5 - 211a: 80273707 fld fa4,-2046(a4) # 6918 - 211e: 22e70653 fmv.d fa2,fa4 + 2102: 00005717 auipc a4,0x5 + 2106: 87e73707 fld fa4,-1922(a4) # 6980 + 210a: 22e70653 fmv.d fa2,fa4 while (*str >= '0' && *str <= '9') - 2122: 4525 li a0,9 + 210e: 4525 li a0,9 val += (*str - '0') / div; - 2124: d20606d3 fcvt.d.w fa3,a2 + 2110: d20606d3 fcvt.d.w fa3,a2 while (*str >= '0' && *str <= '9') - 2128: 0017c683 lbu a3,1(a5) + 2114: 0017c683 lbu a3,1(a5) str++; - 212c: 0785 addi a5,a5,1 + 2118: 0785 addi a5,a5,1 val += (*str - '0') / div; - 212e: 1ac6f6d3 fdiv.d fa3,fa3,fa2 + 211a: 1ac6f6d3 fdiv.d fa3,fa3,fa2 while (*str >= '0' && *str <= '9') - 2132: fd06861b addiw a2,a3,-48 - 2136: 0ff67593 zext.b a1,a2 + 211e: fd06861b addiw a2,a3,-48 + 2122: 0ff67593 zext.b a1,a2 div *= 10.0; - 213a: 12e67653 fmul.d fa2,fa2,fa4 + 2126: 12e67653 fmul.d fa2,fa2,fa4 val += (*str - '0') / div; - 213e: 02d7f7d3 fadd.d fa5,fa5,fa3 + 212a: 02d7f7d3 fadd.d fa5,fa5,fa3 while (*str >= '0' && *str <= '9') - 2142: feb571e3 bgeu a0,a1,2124 <_vscanf_core.constprop.0+0x798> - 2146: bd81 j 1f96 <_vscanf_core.constprop.0+0x60a> + 212e: feb571e3 bgeu a0,a1,2110 <_vscanf_core.constprop.0+0x798> + 2132: bd81 j 1f82 <_vscanf_core.constprop.0+0x60a> *va_arg(ap, double *) = val; - 2148: a39c fsd fa5,0(a5) + 2134: a39c fsd fa5,0(a5) assigned++; - 214a: 2b05 addiw s6,s6,1 - 214c: b62d j 1c76 <_vscanf_core.constprop.0+0x2ea> + 2136: 2b05 addiw s6,s6,1 + 2138: b62d j 1c62 <_vscanf_core.constprop.0+0x2ea> *va_arg(ap, int64 *) = val; - 214e: 6722 ld a4,8(sp) - 2150: 6314 ld a3,0(a4) - 2152: e288 sd a0,0(a3) - 2154: b55d j 1ffa <_vscanf_core.constprop.0+0x66e> + 213a: 6722 ld a4,8(sp) + 213c: 6314 ld a3,0(a4) + 213e: e288 sd a0,0(a3) + 2140: b55d j 1fe6 <_vscanf_core.constprop.0+0x66e> *va_arg(ap, long *) = (long)val; - 2156: e288 sd a0,0(a3) - 2158: b54d j 1ffa <_vscanf_core.constprop.0+0x66e> + 2142: e288 sd a0,0(a3) + 2144: b54d j 1fe6 <_vscanf_core.constprop.0+0x66e> while (*str >= '0' && *str <= '9') - 215a: 00004797 auipc a5,0x4 - 215e: 7b67b587 fld fa1,1974(a5) # 6910 - 2162: 02114603 lbu a2,33(sp) + 2146: 00005797 auipc a5,0x5 + 214a: 8327b587 fld fa1,-1998(a5) # 6978 + 214e: 02114603 lbu a2,33(sp) str++; - 2166: 02110793 addi a5,sp,33 - 216a: b3ed j 1f54 <_vscanf_core.constprop.0+0x5c8> + 2152: 02110793 addi a5,sp,33 + 2156: b3ed j 1f40 <_vscanf_core.constprop.0+0x5c8> while (*str >= '0' && *str <= '9') - 216c: 0027c583 lbu a1,2(a5) + 2158: 0027c583 lbu a1,2(a5) str++; - 2170: 00278693 addi a3,a5,2 + 215c: 00278693 addi a3,a5,2 while (*str >= '0' && *str <= '9') - 2174: 4525 li a0,9 - 2176: fd05861b addiw a2,a1,-48 - 217a: 0ff67793 zext.b a5,a2 + 2160: 4525 li a0,9 + 2162: fd05861b addiw a2,a1,-48 + 2166: 0ff67793 zext.b a5,a2 esign = -1; - 217e: 587d li a6,-1 + 216a: 587d li a6,-1 while (*str >= '0' && *str <= '9') - 2180: f0f577e3 bgeu a0,a5,208e <_vscanf_core.constprop.0+0x702> + 216c: f0f577e3 bgeu a0,a5,207a <_vscanf_core.constprop.0+0x702> double p = 1.0; - 2184: 00004797 auipc a5,0x4 - 2188: 78c7b687 fld fa3,1932(a5) # 6910 + 2170: 00005797 auipc a5,0x5 + 2174: 8087b687 fld fa3,-2040(a5) # 6978 val /= p; - 218c: 1ad7f7d3 fdiv.d fa5,fa5,fa3 - 2190: bd09 j 1fa2 <_vscanf_core.constprop.0+0x616> + 2178: 1ad7f7d3 fdiv.d fa5,fa5,fa3 + 217c: bd09 j 1f8e <_vscanf_core.constprop.0+0x616> while (*str >= '0' && *str <= '9') - 2192: 0027c583 lbu a1,2(a5) + 217e: 0027c583 lbu a1,2(a5) str++; - 2196: 00278693 addi a3,a5,2 + 2182: 00278693 addi a3,a5,2 while (*str >= '0' && *str <= '9') - 219a: 4525 li a0,9 - 219c: fd05861b addiw a2,a1,-48 - 21a0: 0ff67793 zext.b a5,a2 - 21a4: f2f56fe3 bltu a0,a5,20e2 <_vscanf_core.constprop.0+0x756> + 2186: 4525 li a0,9 + 2188: fd05861b addiw a2,a1,-48 + 218c: 0ff67793 zext.b a5,a2 + 2190: f2f56fe3 bltu a0,a5,20ce <_vscanf_core.constprop.0+0x756> int esign = 1; - 21a8: 4805 li a6,1 - 21aa: b5d5 j 208e <_vscanf_core.constprop.0+0x702> + 2194: 4805 li a6,1 + 2196: b5d5 j 207a <_vscanf_core.constprop.0+0x702> while (*p) - 21ac: 001bc783 lbu a5,1(s7) - 21b0: bed5 j 1da4 <_vscanf_core.constprop.0+0x418> + 2198: 001bc783 lbu a5,1(s7) + 219c: bed5 j 1d90 <_vscanf_core.constprop.0+0x418> if (!suppress) - 21b2: 9e0997e3 bnez s3,1ba0 <_vscanf_core.constprop.0+0x214> + 219e: 9e0997e3 bnez s3,1b8c <_vscanf_core.constprop.0+0x214> buf[i] = '\0'; - 21b6: 67e2 ld a5,24(sp) - 21b8: 00078023 sb zero,0(a5) - 21bc: b2d5 j 1ba0 <_vscanf_core.constprop.0+0x214> + 21a2: 67e2 ld a5,24(sp) + 21a4: 00078023 sb zero,0(a5) + 21a8: b2d5 j 1b8c <_vscanf_core.constprop.0+0x214> num_buf[i] = '\0'; - 21be: 040d0793 addi a5,s10,64 - 21c2: 1018 addi a4,sp,32 - 21c4: 97ba add a5,a5,a4 - 21c6: fc078023 sb zero,-64(a5) + 21aa: 040d0793 addi a5,s10,64 + 21ae: 1018 addi a4,sp,32 + 21b0: 97ba add a5,a5,a4 + 21b2: fc078023 sb zero,-64(a5) if (i == 0) - 21ca: aa0d14e3 bnez s10,1c72 <_vscanf_core.constprop.0+0x2e6> - 21ce: b171 j 1e5a <_vscanf_core.constprop.0+0x4ce> - 21d0: 4641 li a2,16 + 21b6: aa0d14e3 bnez s10,1c5e <_vscanf_core.constprop.0+0x2e6> + 21ba: b171 j 1e46 <_vscanf_core.constprop.0+0x4ce> + 21bc: 4641 li a2,16 if (width > 0 && i >= width) - 21d2: a5204be3 bgtz s2,1c28 <_vscanf_core.constprop.0+0x29c> - 21d6: bc99 j 1c2c <_vscanf_core.constprop.0+0x2a0> + 21be: a5204be3 bgtz s2,1c14 <_vscanf_core.constprop.0+0x29c> + 21c2: bc99 j 1c18 <_vscanf_core.constprop.0+0x2a0> num_buf[i] = '\0'; - 21d8: 020100a3 sb zero,33(sp) + 21c4: 020100a3 sb zero,33(sp) if (i == 0) - 21dc: bb99 j 1f32 <_vscanf_core.constprop.0+0x5a6> + 21c8: bb99 j 1f1e <_vscanf_core.constprop.0+0x5a6> double p = 1.0; - 21de: 00004797 auipc a5,0x4 - 21e2: 7327b687 fld fa3,1842(a5) # 6910 - 21e6: bdc5 j 20d6 <_vscanf_core.constprop.0+0x74a> + 21ca: 00004797 auipc a5,0x4 + 21ce: 7ae7b687 fld fa3,1966(a5) # 6978 + 21d2: bdc5 j 20c2 <_vscanf_core.constprop.0+0x74a> buf[i] = '\0'; - 21e8: 67e2 ld a5,24(sp) - 21ea: 01a786b3 add a3,a5,s10 - 21ee: 00068023 sb zero,0(a3) + 21d4: 67e2 ld a5,24(sp) + 21d6: 01a786b3 add a3,a5,s10 + 21da: 00068023 sb zero,0(a3) ctx->ungotten = c; - 21f2: 00adac23 sw a0,24(s11) + 21de: 00adac23 sw a0,24(s11) while (*p) - 21f6: 001bc783 lbu a5,1(s7) - 21fa: b6f5 j 1de6 <_vscanf_core.constprop.0+0x45a> + 21e2: 001bc783 lbu a5,1(s7) + 21e6: b6f5 j 1dd2 <_vscanf_core.constprop.0+0x45a> -00000000000021fc <_out_char>: +00000000000021e8 <_out_char>: { - 21fc: 7179 addi sp,sp,-48 - 21fe: ec26 sd s1,24(sp) + 21e8: 7179 addi sp,sp,-48 + 21ea: ec26 sd s1,24(sp) if (ctx->stream) - 2200: 6d04 ld s1,24(a0) + 21ec: 6d04 ld s1,24(a0) { - 2202: f022 sd s0,32(sp) - 2204: f406 sd ra,40(sp) - 2206: 842a mv s0,a0 - 2208: 872e mv a4,a1 + 21ee: f022 sd s0,32(sp) + 21f0: f406 sd ra,40(sp) + 21f2: 842a mv s0,a0 + 21f4: 872e mv a4,a1 if (ctx->stream) - 220a: c0a1 beqz s1,224a <_out_char+0x4e> - 220c: e84a sd s2,16(sp) + 21f6: c0a1 beqz s1,2236 <_out_char+0x4e> + 21f8: e84a sd s2,16(sp) if (stream->buf_mode == 2) - 220e: 41c4a903 lw s2,1052(s1) - 2212: 4789 li a5,2 - 2214: 04f90d63 beq s2,a5,226e <_out_char+0x72> + 21fa: 41c4a903 lw s2,1052(s1) + 21fe: 4789 li a5,2 + 2200: 04f90d63 beq s2,a5,225a <_out_char+0x72> stream->buffer[stream->buf_write_pos++] = (char)c; - 2218: 4104a783 lw a5,1040(s1) + 2204: 4104a783 lw a5,1040(s1) if (stream->buf_write_pos >= BUFSIZ) - 221c: 3ff00693 li a3,1023 + 2208: 3ff00693 li a3,1023 stream->buffer[stream->buf_write_pos++] = (char)c; - 2220: 0017861b addiw a2,a5,1 - 2224: 40c4a823 sw a2,1040(s1) - 2228: 97a6 add a5,a5,s1 - 222a: 00b78823 sb a1,16(a5) + 220c: 0017861b addiw a2,a5,1 + 2210: 40c4a823 sw a2,1040(s1) + 2214: 97a6 add a5,a5,s1 + 2216: 00b78823 sb a1,16(a5) if (stream->buf_write_pos >= BUFSIZ) - 222e: 08c6c063 blt a3,a2,22ae <_out_char+0xb2> + 221a: 08c6c063 blt a3,a2,229a <_out_char+0xb2> else if (stream->buf_mode == 1 && c == '\n') - 2232: 4785 li a5,1 - 2234: 04f90a63 beq s2,a5,2288 <_out_char+0x8c> + 221e: 4785 li a5,1 + 2220: 04f90a63 beq s2,a5,2274 <_out_char+0x8c> ctx->written++; - 2238: 681c ld a5,16(s0) - 223a: 6942 ld s2,16(sp) + 2224: 681c ld a5,16(s0) + 2226: 6942 ld s2,16(sp) } - 223c: 70a2 ld ra,40(sp) + 2228: 70a2 ld ra,40(sp) ctx->written++; - 223e: 0785 addi a5,a5,1 - 2240: e81c sd a5,16(s0) + 222a: 0785 addi a5,a5,1 + 222c: e81c sd a5,16(s0) } - 2242: 7402 ld s0,32(sp) - 2244: 64e2 ld s1,24(sp) - 2246: 6145 addi sp,sp,48 - 2248: 8082 ret + 222e: 7402 ld s0,32(sp) + 2230: 64e2 ld s1,24(sp) + 2232: 6145 addi sp,sp,48 + 2234: 8082 ret if (ctx->limit > 0 && ctx->written < ctx->limit - 1) - 224a: 6514 ld a3,8(a0) - 224c: 691c ld a5,16(a0) - 224e: ca89 beqz a3,2260 <_out_char+0x64> - 2250: 16fd addi a3,a3,-1 - 2252: 00d7f763 bgeu a5,a3,2260 <_out_char+0x64> + 2236: 6514 ld a3,8(a0) + 2238: 691c ld a5,16(a0) + 223a: ca89 beqz a3,224c <_out_char+0x64> + 223c: 16fd addi a3,a3,-1 + 223e: 00d7f763 bgeu a5,a3,224c <_out_char+0x64> ctx->buf[ctx->written] = c; - 2256: 6114 ld a3,0(a0) - 2258: 97b6 add a5,a5,a3 - 225a: 00b78023 sb a1,0(a5) + 2242: 6114 ld a3,0(a0) + 2244: 97b6 add a5,a5,a3 + 2246: 00b78023 sb a1,0(a5) ctx->written++; - 225e: 691c ld a5,16(a0) - 2260: 0785 addi a5,a5,1 + 224a: 691c ld a5,16(a0) + 224c: 0785 addi a5,a5,1 } - 2262: 70a2 ld ra,40(sp) + 224e: 70a2 ld ra,40(sp) ctx->written++; - 2264: e81c sd a5,16(s0) + 2250: e81c sd a5,16(s0) } - 2266: 7402 ld s0,32(sp) - 2268: 64e2 ld s1,24(sp) - 226a: 6145 addi sp,sp,48 - 226c: 8082 ret + 2252: 7402 ld s0,32(sp) + 2254: 64e2 ld s1,24(sp) + 2256: 6145 addi sp,sp,48 + 2258: 8082 ret if (write(stream->fd, &ch, 1) != 1) - 226e: 4088 lw a0,0(s1) - 2270: 4605 li a2,1 - 2272: 00f10593 addi a1,sp,15 + 225a: 4088 lw a0,0(s1) + 225c: 4605 li a2,1 + 225e: 00f10593 addi a1,sp,15 char ch = (char)c; - 2276: 00e107a3 sb a4,15(sp) + 2262: 00e107a3 sb a4,15(sp) if (write(stream->fd, &ch, 1) != 1) - 227a: e93fe0ef jal 110c - 227e: 4785 li a5,1 - 2280: faf50ce3 beq a0,a5,2238 <_out_char+0x3c> + 2266: e8bfe0ef jal 10f0 + 226a: 4785 li a5,1 + 226c: faf50ce3 beq a0,a5,2224 <_out_char+0x3c> stream->error = 1; - 2284: c49c sw a5,8(s1) + 2270: c49c sw a5,8(s1) return EOF; - 2286: bf4d j 2238 <_out_char+0x3c> + 2272: bf4d j 2224 <_out_char+0x3c> else if (stream->buf_mode == 1 && c == '\n') - 2288: 47a9 li a5,10 - 228a: faf597e3 bne a1,a5,2238 <_out_char+0x3c> + 2274: 47a9 li a5,10 + 2276: faf597e3 bne a1,a5,2224 <_out_char+0x3c> if (stream->buf_write_pos > 0) - 228e: fac055e3 blez a2,2238 <_out_char+0x3c> + 227a: fac055e3 blez a2,2224 <_out_char+0x3c> int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 2292: 4088 lw a0,0(s1) - 2294: 01048593 addi a1,s1,16 - 2298: e75fe0ef jal 110c + 227e: 4088 lw a0,0(s1) + 2280: 01048593 addi a1,s1,16 + 2284: e6dfe0ef jal 10f0 if (ret < stream->buf_write_pos) - 229c: 4104a783 lw a5,1040(s1) - 22a0: 02f55063 bge a0,a5,22c0 <_out_char+0xc4> + 2288: 4104a783 lw a5,1040(s1) + 228c: 02f55063 bge a0,a5,22ac <_out_char+0xc4> stream->error = 1; - 22a4: 0124a423 sw s2,8(s1) + 2290: 0124a423 sw s2,8(s1) stream->buf_write_pos = 0; - 22a8: 4004a823 sw zero,1040(s1) + 2294: 4004a823 sw zero,1040(s1) return EOF; - 22ac: b771 j 2238 <_out_char+0x3c> + 2298: b771 j 2224 <_out_char+0x3c> int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 22ae: 4088 lw a0,0(s1) - 22b0: 01048593 addi a1,s1,16 - 22b4: e59fe0ef jal 110c + 229a: 4088 lw a0,0(s1) + 229c: 01048593 addi a1,s1,16 + 22a0: e51fe0ef jal 10f0 if (ret < stream->buf_write_pos) - 22b8: 4104a783 lw a5,1040(s1) - 22bc: 00f54563 blt a0,a5,22c6 <_out_char+0xca> + 22a4: 4104a783 lw a5,1040(s1) + 22a8: 00f54563 blt a0,a5,22b2 <_out_char+0xca> stream->buf_write_pos = 0; - 22c0: 4004a823 sw zero,1040(s1) - 22c4: bf95 j 2238 <_out_char+0x3c> + 22ac: 4004a823 sw zero,1040(s1) + 22b0: bf95 j 2224 <_out_char+0x3c> stream->error = 1; - 22c6: 4785 li a5,1 - 22c8: c49c sw a5,8(s1) + 22b2: 4785 li a5,1 + 22b4: c49c sw a5,8(s1) stream->buf_write_pos = 0; - 22ca: 4004a823 sw zero,1040(s1) + 22b6: 4004a823 sw zero,1040(s1) return EOF; - 22ce: b7ad j 2238 <_out_char+0x3c> + 22ba: b7ad j 2224 <_out_char+0x3c> -00000000000022d0 : +00000000000022bc : "75767778798081828384858687888990919293949596979899" }; STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, char pperiod) { stbsp__period = pperiod; - 22d0: 00006797 auipc a5,0x6 - 22d4: c1878793 addi a5,a5,-1000 # 7ee8 - 22d8: 0cb78623 sb a1,204(a5) + 22bc: 00006797 auipc a5,0x6 + 22c0: c5c78793 addi a5,a5,-932 # 7f18 + 22c4: 0cb78623 sb a1,204(a5) stbsp__comma = pcomma; - 22dc: 0ca786a3 sb a0,205(a5) + 22c8: 0ca786a3 sb a0,205(a5) } - 22e0: 8082 ret + 22cc: 8082 ret -00000000000022e2 : +00000000000022ce : return (stbsp__uint32)(sn - s); } STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *callback, void *user, char *buf, char const *fmt, va_list va) { - 22e2: d1010113 addi sp,sp,-752 + 22ce: d1010113 addi sp,sp,-752 // Check if the next 4 bytes contain %(0x25) or end of string. // Using the 'hasless' trick: // https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord stbsp__uint32 v, c; v = *(stbsp__uint32 *)f; c = (~v) & 0x80808080; - 22e6: 808087b7 lui a5,0x80808 + 22d2: 808087b7 lui a5,0x80808 if (((v ^ 0x25252525) - 0x01010101) & c) - 22ea: 252523b7 lui t2,0x25252 - 22ee: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x252496e5> + 22d6: 252523b7 lui t2,0x25252 + 22da: 52538393 addi t2,t2,1317 # 25252525 <_ZSt4cerr+0x252496b5> { - 22f2: 29913c23 sd s9,664(sp) - 22f6: 29b13423 sd s11,648(sp) + 22de: 29913c23 sd s9,664(sp) + 22e2: 29b13423 sd s11,648(sp) int tlen = 0; - 22fa: 4c81 li s9,0 + 22e6: 4c81 li s9,0 if (((v ^ 0x25252525) - 0x01010101) & c) - 22fc: feff0db7 lui s11,0xfeff0 + 22e8: feff0db7 lui s11,0xfeff0 c = (~v) & 0x80808080; - 2300: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff807ff240> + 22ec: 08078793 addi a5,a5,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff807ff210> { - 2304: 2e813023 sd s0,736(sp) - 2308: 2c913c23 sd s1,728(sp) - 230c: 2d213823 sd s2,720(sp) - 2310: 2d313423 sd s3,712(sp) - 2314: 2b713423 sd s7,680(sp) - 2318: 2b813023 sd s8,672(sp) - 231c: 29a13823 sd s10,656(sp) - 2320: 2e113423 sd ra,744(sp) - 2324: 8d66 mv s10,s9 - 2326: 8432 mv s0,a2 - 2328: 8c9e mv s9,t2 - 232a: 89aa mv s3,a0 - 232c: e42e sd a1,8(sp) - 232e: 84b6 mv s1,a3 - 2330: 8bba mv s7,a4 - 2332: fc02 sd zero,56(sp) + 22f0: 2e813023 sd s0,736(sp) + 22f4: 2c913c23 sd s1,728(sp) + 22f8: 2d213823 sd s2,720(sp) + 22fc: 2d313423 sd s3,712(sp) + 2300: 2b713423 sd s7,680(sp) + 2304: 2b813023 sd s8,672(sp) + 2308: 29a13823 sd s10,656(sp) + 230c: 2e113423 sd ra,744(sp) + 2310: 8d66 mv s10,s9 + 2312: 8432 mv s0,a2 + 2314: 8c9e mv s9,t2 + 2316: 89aa mv s3,a0 + 2318: e42e sd a1,8(sp) + 231a: 84b6 mv s1,a3 + 231c: 8bba mv s7,a4 + 231e: fc02 sd zero,56(sp) for (;;) { - 2334: 8932 mv s2,a2 + 2320: 8932 mv s2,a2 if (((v ^ 0x25252525) - 0x01010101) & c) - 2336: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe70bf> + 2322: effd8d9b addiw s11,s11,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe708f> goto schk1; if ((v - 0x01010101) & c) goto schk2; if (callback) if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 233a: 20000c13 li s8,512 - 233e: 83be mv t2,a5 + 2326: 20000c13 li s8,512 + 232a: 83be mv t2,a5 while (((stbsp__uintptr)f) & 3) { - 2340: 0034f793 andi a5,s1,3 - 2344: c7a9 beqz a5,238e + 232c: 0034f793 andi a5,s1,3 + 2330: c7a9 beqz a5,237a if (f[0] == '%') - 2346: 0004c783 lbu a5,0(s1) - 234a: 02500713 li a4,37 - 234e: 0ee78263 beq a5,a4,2432 + 2332: 0004c783 lbu a5,0(s1) + 2336: 02500713 li a4,37 + 233a: 0ee78263 beq a5,a4,241e if (f[0] == 0) - 2352: cbd9 beqz a5,23e8 + 233e: cbd9 beqz a5,23d4 stbsp__chk_cb_buf(1); - 2354: 02098663 beqz s3,2380 - 2358: 4124063b subw a2,s0,s2 - 235c: 1fe00713 li a4,510 - 2360: 02c75063 bge a4,a2,2380 - 2364: 65a2 ld a1,8(sp) - 2366: 854a mv a0,s2 - 2368: e81e sd t2,16(sp) - 236a: 00cd0d3b addw s10,s10,a2 - 236e: 9982 jalr s3 - 2370: 892a mv s2,a0 - 2372: e119 bnez a0,2378 - 2374: 0200106f j 3394 + 2340: 02098663 beqz s3,236c + 2344: 4124063b subw a2,s0,s2 + 2348: 1fe00713 li a4,510 + 234c: 02c75063 bge a4,a2,236c + 2350: 65a2 ld a1,8(sp) + 2352: 854a mv a0,s2 + 2354: e81e sd t2,16(sp) + 2356: 00cd0d3b addw s10,s10,a2 + 235a: 9982 jalr s3 + 235c: 892a mv s2,a0 + 235e: e119 bnez a0,2364 + 2360: 0200106f j 3380 *bf++ = f[0]; - 2378: 0004c783 lbu a5,0(s1) + 2364: 0004c783 lbu a5,0(s1) stbsp__chk_cb_buf(1); - 237c: 63c2 ld t2,16(sp) - 237e: 842a mv s0,a0 + 2368: 63c2 ld t2,16(sp) + 236a: 842a mv s0,a0 ++f; - 2380: 0485 addi s1,s1,1 + 236c: 0485 addi s1,s1,1 *bf++ = f[0]; - 2382: 00f40023 sb a5,0(s0) + 236e: 00f40023 sb a5,0(s0) while (((stbsp__uintptr)f) & 3) { - 2386: 0034f793 andi a5,s1,3 + 2372: 0034f793 andi a5,s1,3 *bf++ = f[0]; - 238a: 0405 addi s0,s0,1 + 2376: 0405 addi s0,s0,1 while (((stbsp__uintptr)f) & 3) { - 238c: ffcd bnez a5,2346 + 2378: ffcd bnez a5,2332 v = *(stbsp__uint32 *)f; - 238e: 4094 lw a3,0(s1) + 237a: 4094 lw a3,0(s1) c = (~v) & 0x80808080; - 2390: fff6c793 not a5,a3 + 237c: fff6c793 not a5,a3 if (((v ^ 0x25252525) - 0x01010101) & c) - 2394: 0196c733 xor a4,a3,s9 + 2380: 0196c733 xor a4,a3,s9 c = (~v) & 0x80808080; - 2398: 0077f7b3 and a5,a5,t2 + 2384: 0077f7b3 and a5,a5,t2 if (((v ^ 0x25252525) - 0x01010101) & c) - 239c: 01b7073b addw a4,a4,s11 - 23a0: 8f7d and a4,a4,a5 - 23a2: 2701 sext.w a4,a4 - 23a4: f34d bnez a4,2346 + 2388: 01b7073b addw a4,a4,s11 + 238c: 8f7d and a4,a4,a5 + 238e: 2701 sext.w a4,a4 + 2390: f34d bnez a4,2332 if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 23a6: 460d li a2,3 - 23a8: a805 j 23d8 + 2392: 460d li a2,3 + 2394: a805 j 23c4 if (callback) - 23aa: 00098863 beqz s3,23ba + 2396: 00098863 beqz s3,23a6 if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 23ae: 412407b3 sub a5,s0,s2 - 23b2: 40fc07bb subw a5,s8,a5 - 23b6: f8f658e3 bge a2,a5,2346 + 239a: 412407b3 sub a5,s0,s2 + 239e: 40fc07bb subw a5,s8,a5 + 23a2: f8f658e3 bge a2,a5,2332 bf[2] = f[2]; bf[3] = f[3]; } else #endif { *(stbsp__uint32 *)bf = v; - 23ba: c014 sw a3,0(s0) + 23a6: c014 sw a3,0(s0) v = *(stbsp__uint32 *)f; - 23bc: 40d4 lw a3,4(s1) + 23a8: 40d4 lw a3,4(s1) } bf += 4; - 23be: 0411 addi s0,s0,4 + 23aa: 0411 addi s0,s0,4 f += 4; - 23c0: 0491 addi s1,s1,4 + 23ac: 0491 addi s1,s1,4 c = (~v) & 0x80808080; - 23c2: fff6c793 not a5,a3 + 23ae: fff6c793 not a5,a3 if (((v ^ 0x25252525) - 0x01010101) & c) - 23c6: 0196c733 xor a4,a3,s9 + 23b2: 0196c733 xor a4,a3,s9 c = (~v) & 0x80808080; - 23ca: 0077f7b3 and a5,a5,t2 + 23b6: 0077f7b3 and a5,a5,t2 if (((v ^ 0x25252525) - 0x01010101) & c) - 23ce: 01b7073b addw a4,a4,s11 - 23d2: 8f7d and a4,a4,a5 - 23d4: 2701 sext.w a4,a4 - 23d6: fb25 bnez a4,2346 + 23ba: 01b7073b addw a4,a4,s11 + 23be: 8f7d and a4,a4,a5 + 23c0: 2701 sext.w a4,a4 + 23c2: fb25 bnez a4,2332 if ((v - 0x01010101) & c) - 23d8: 01b6873b addw a4,a3,s11 - 23dc: 8ff9 and a5,a5,a4 - 23de: 2781 sext.w a5,a5 - 23e0: d7e9 beqz a5,23aa + 23c4: 01b6873b addw a4,a3,s11 + 23c8: 8ff9 and a5,a5,a4 + 23ca: 2781 sext.w a5,a5 + 23cc: d7e9 beqz a5,2396 if (f[0] == 0) - 23e2: 0004c783 lbu a5,0(s1) - 23e6: f7bd bnez a5,2354 + 23ce: 0004c783 lbu a5,0(s1) + 23d2: f7bd bnez a5,2340 endfmt: if (!callback) *bf = 0; else stbsp__flush_cb(); - 23e8: 8cea mv s9,s10 - 23ea: 412404bb subw s1,s0,s2 + 23d4: 8cea mv s9,s10 + 23d6: 412404bb subw s1,s0,s2 if (!callback) - 23ee: 70098563 beqz s3,2af8 + 23da: 70098563 beqz s3,2ae4 stbsp__flush_cb(); - 23f2: 00905663 blez s1,23fe - 23f6: 65a2 ld a1,8(sp) - 23f8: 8626 mv a2,s1 - 23fa: 854a mv a0,s2 - 23fc: 9982 jalr s3 - 23fe: 009c8cbb addw s9,s9,s1 + 23de: 00905663 blez s1,23ea + 23e2: 65a2 ld a1,8(sp) + 23e4: 8626 mv a2,s1 + 23e6: 854a mv a0,s2 + 23e8: 9982 jalr s3 + 23ea: 009c8cbb addw s9,s9,s1 done: return tlen + (int)(bf - buf); } - 2402: 2e813083 ld ra,744(sp) - 2406: 2e013403 ld s0,736(sp) - 240a: 2d813483 ld s1,728(sp) - 240e: 2d013903 ld s2,720(sp) - 2412: 2c813983 ld s3,712(sp) - 2416: 2a813b83 ld s7,680(sp) - 241a: 2a013c03 ld s8,672(sp) - 241e: 29013d03 ld s10,656(sp) - 2422: 28813d83 ld s11,648(sp) - 2426: 8566 mv a0,s9 - 2428: 29813c83 ld s9,664(sp) - 242c: 2f010113 addi sp,sp,752 - 2430: 8082 ret - 2432: 2d413023 sd s4,704(sp) - 2436: 2b513c23 sd s5,696(sp) - 243a: 2b613823 sd s6,688(sp) + 23ee: 2e813083 ld ra,744(sp) + 23f2: 2e013403 ld s0,736(sp) + 23f6: 2d813483 ld s1,728(sp) + 23fa: 2d013903 ld s2,720(sp) + 23fe: 2c813983 ld s3,712(sp) + 2402: 2a813b83 ld s7,680(sp) + 2406: 2a013c03 ld s8,672(sp) + 240a: 29013d03 ld s10,656(sp) + 240e: 28813d83 ld s11,648(sp) + 2412: 8566 mv a0,s9 + 2414: 29813c83 ld s9,664(sp) + 2418: 2f010113 addi sp,sp,752 + 241c: 8082 ret + 241e: 2d413023 sd s4,704(sp) + 2422: 2b513c23 sd s5,696(sp) + 2426: 2b613823 sd s6,688(sp) tz = 0; - 243e: 00248693 addi a3,s1,2 + 242a: 00248693 addi a3,s1,2 fl = 0; - 2442: 4e01 li t3,0 + 242e: 4e01 li t3,0 switch (f[0]) { - 2444: 03f00593 li a1,63 - 2448: 00004617 auipc a2,0x4 - 244c: de860613 addi a2,a2,-536 # 6230 <_GLOBAL__sub_I__ZSt3cin+0x22c> - 2450: fff6c783 lbu a5,-1(a3) - 2454: fff68493 addi s1,a3,-1 - 2458: fe07871b addiw a4,a5,-32 - 245c: 0ff77713 zext.b a4,a4 - 2460: 00e5ec63 bltu a1,a4,2478 - 2464: 070a slli a4,a4,0x2 - 2466: 9732 add a4,a4,a2 - 2468: 4318 lw a4,0(a4) - 246a: 9732 add a4,a4,a2 - 246c: 8702 jr a4 + 2430: 03f00593 li a1,63 + 2434: 00004617 auipc a2,0x4 + 2438: e6460613 addi a2,a2,-412 # 6298 <_GLOBAL__sub_I__ZSt3cin+0x2a8> + 243c: fff6c783 lbu a5,-1(a3) + 2440: fff68493 addi s1,a3,-1 + 2444: fe07871b addiw a4,a5,-32 + 2448: 0ff77713 zext.b a4,a4 + 244c: 00e5ec63 bltu a1,a4,2464 + 2450: 070a slli a4,a4,0x2 + 2452: 9732 add a4,a4,a2 + 2454: 4318 lw a4,0(a4) + 2456: 9732 add a4,a4,a2 + 2458: 8702 jr a4 if (f[0] == '*') { - 246e: 0014c783 lbu a5,1(s1) + 245a: 0014c783 lbu a5,1(s1) fl |= STBSP__LEADINGZERO; - 2472: 010e6e13 ori t3,t3,16 + 245e: 010e6e13 ori t3,t3,16 ++f; - 2476: 0485 addi s1,s1,1 + 2462: 0485 addi s1,s1,1 if (f[0] == '*') { - 2478: 02a00713 li a4,42 - 247c: 0ce79163 bne a5,a4,253e + 2464: 02a00713 li a4,42 + 2468: 0ce79163 bne a5,a4,252a fw = va_arg(va, stbsp__uint32); - 2480: 000bab03 lw s6,0(s7) + 246c: 000bab03 lw s6,0(s7) while ((f[0] >= '0') && (f[0] <= '9')) { - 2484: 0014c783 lbu a5,1(s1) + 2470: 0014c783 lbu a5,1(s1) fw = va_arg(va, stbsp__uint32); - 2488: 0ba1 addi s7,s7,8 + 2474: 0ba1 addi s7,s7,8 ++f; - 248a: 0485 addi s1,s1,1 + 2476: 0485 addi s1,s1,1 if (f[0] == '.') { - 248c: 02e00713 li a4,46 + 2478: 02e00713 li a4,46 pr = -1; - 2490: 58fd li a7,-1 + 247c: 58fd li a7,-1 if (f[0] == '.') { - 2492: 0ee78663 beq a5,a4,257e + 247e: 0ee78663 beq a5,a4,256a switch (f[0]) { - 2496: 04900713 li a4,73 - 249a: 10e78263 beq a5,a4,259e - 249e: f987871b addiw a4,a5,-104 - 24a2: 0ff77713 zext.b a4,a4 - 24a6: 46c9 li a3,18 - 24a8: 02e6e063 bltu a3,a4,24c8 - 24ac: 00004697 auipc a3,0x4 - 24b0: e8468693 addi a3,a3,-380 # 6330 <_GLOBAL__sub_I__ZSt3cin+0x32c> - 24b4: 070a slli a4,a4,0x2 - 24b6: 9736 add a4,a4,a3 - 24b8: 4318 lw a4,0(a4) - 24ba: 9736 add a4,a4,a3 - 24bc: 8702 jr a4 + 2482: 04900713 li a4,73 + 2486: 10e78263 beq a5,a4,258a + 248a: f987871b addiw a4,a5,-104 + 248e: 0ff77713 zext.b a4,a4 + 2492: 46c9 li a3,18 + 2494: 02e6e063 bltu a3,a4,24b4 + 2498: 00004697 auipc a3,0x4 + 249c: f0068693 addi a3,a3,-256 # 6398 <_GLOBAL__sub_I__ZSt3cin+0x3a8> + 24a0: 070a slli a4,a4,0x2 + 24a2: 9736 add a4,a4,a3 + 24a4: 4318 lw a4,0(a4) + 24a6: 9736 add a4,a4,a3 + 24a8: 8702 jr a4 if (f[0] == 'h') - 24be: 0014c783 lbu a5,1(s1) + 24aa: 0014c783 lbu a5,1(s1) fl |= (sizeof(ptrdiff_t) == 8) ? STBSP__INTMAX : 0; - 24c2: 020e6e13 ori t3,t3,32 + 24ae: 020e6e13 ori t3,t3,32 ++f; - 24c6: 0485 addi s1,s1,1 + 24b2: 0485 addi s1,s1,1 switch (f[0]) { - 24c8: fbf7871b addiw a4,a5,-65 - 24cc: 0ff77713 zext.b a4,a4 - 24d0: 03700693 li a3,55 - 24d4: 0ee6ea63 bltu a3,a4,25c8 - 24d8: 00004697 auipc a3,0x4 - 24dc: ea468693 addi a3,a3,-348 # 637c <_GLOBAL__sub_I__ZSt3cin+0x378> - 24e0: 070a slli a4,a4,0x2 - 24e2: 9736 add a4,a4,a3 - 24e4: 4318 lw a4,0(a4) - 24e6: 9736 add a4,a4,a3 - 24e8: 8702 jr a4 + 24b4: fbf7871b addiw a4,a5,-65 + 24b8: 0ff77713 zext.b a4,a4 + 24bc: 03700693 li a3,55 + 24c0: 0ee6ea63 bltu a3,a4,25b4 + 24c4: 00004697 auipc a3,0x4 + 24c8: f2068693 addi a3,a3,-224 # 63e4 <_GLOBAL__sub_I__ZSt3cin+0x3f4> + 24cc: 070a slli a4,a4,0x2 + 24ce: 9736 add a4,a4,a3 + 24d0: 4318 lw a4,0(a4) + 24d2: 9736 add a4,a4,a3 + 24d4: 8702 jr a4 fl |= STBSP__METRIC_NOSPACE; - 24ea: 400e6e13 ori t3,t3,1024 + 24d6: 400e6e13 ori t3,t3,1024 continue; - 24ee: 0685 addi a3,a3,1 - 24f0: b785 j 2450 + 24da: 0685 addi a3,a3,1 + 24dc: b785 j 243c fl |= STBSP__LEFTJUST; - 24f2: 001e6e13 ori t3,t3,1 + 24de: 001e6e13 ori t3,t3,1 continue; - 24f6: 0685 addi a3,a3,1 - 24f8: bfa1 j 2450 + 24e2: 0685 addi a3,a3,1 + 24e4: bfa1 j 243c fl |= STBSP__LEADINGPLUS; - 24fa: 002e6e13 ori t3,t3,2 + 24e6: 002e6e13 ori t3,t3,2 continue; - 24fe: 0685 addi a3,a3,1 - 2500: bf81 j 2450 + 24ea: 0685 addi a3,a3,1 + 24ec: bf81 j 243c fl |= STBSP__TRIPLET_COMMA; - 2502: 040e6e13 ori t3,t3,64 + 24ee: 040e6e13 ori t3,t3,64 continue; - 2506: 0685 addi a3,a3,1 - 2508: b7a1 j 2450 + 24f2: 0685 addi a3,a3,1 + 24f4: b7a1 j 243c if (fl & STBSP__METRIC_SUFFIX) { - 250a: 100e7793 andi a5,t3,256 - 250e: 8772 mv a4,t3 - 2510: 56078363 beqz a5,2a76 + 24f6: 100e7793 andi a5,t3,256 + 24fa: 8772 mv a4,t3 + 24fc: 56078363 beqz a5,2a62 if (fl & STBSP__METRIC_1024) { - 2514: 6785 lui a5,0x1 - 2516: 034e1513 slli a0,t3,0x34 - 251a: 80078793 addi a5,a5,-2048 # 800 <_ZN6Parser12parse_redirsEP7CommandPPcS2_+0x334> - 251e: 5c055863 bgez a0,2aee + 2500: 6785 lui a5,0x1 + 2502: 034e1513 slli a0,t3,0x34 + 2506: 80078793 addi a5,a5,-2048 # 800 <_ZN6Parser10parse_pipeEPPcS0_+0xac> + 250a: 5c055863 bgez a0,2ada fl |= STBSP__METRIC_JEDEC; - 2522: 6785 lui a5,0x1 - 2524: 8f5d or a4,a4,a5 - 2526: 00070e1b sext.w t3,a4 - 252a: 0685 addi a3,a3,1 - 252c: b715 j 2450 + 250e: 6785 lui a5,0x1 + 2510: 8f5d or a4,a4,a5 + 2512: 00070e1b sext.w t3,a4 + 2516: 0685 addi a3,a3,1 + 2518: b715 j 243c fl |= STBSP__LEADING_0X; - 252e: 008e6e13 ori t3,t3,8 + 251a: 008e6e13 ori t3,t3,8 continue; - 2532: 0685 addi a3,a3,1 - 2534: bf31 j 2450 + 251e: 0685 addi a3,a3,1 + 2520: bf31 j 243c fl |= STBSP__LEADINGSPACE; - 2536: 004e6e13 ori t3,t3,4 + 2522: 004e6e13 ori t3,t3,4 continue; - 253a: 0685 addi a3,a3,1 - 253c: bf11 j 2450 + 2526: 0685 addi a3,a3,1 + 2528: bf11 j 243c while ((f[0] >= '0') && (f[0] <= '9')) { - 253e: fd07871b addiw a4,a5,-48 # fd0 - 2542: 0ff77713 zext.b a4,a4 - 2546: 4625 li a2,9 + 252a: fd07871b addiw a4,a5,-48 # fd0 + 252e: 0ff77713 zext.b a4,a4 + 2532: 4625 li a2,9 fw = 0; - 2548: 4b01 li s6,0 + 2534: 4b01 li s6,0 while ((f[0] >= '0') && (f[0] <= '9')) { - 254a: 46a5 li a3,9 - 254c: f4e660e3 bltu a2,a4,248c + 2536: 46a5 li a3,9 + 2538: f4e660e3 bltu a2,a4,2478 fw = fw * 10 + f[0] - '0'; - 2550: 002b171b slliw a4,s6,0x2 - 2554: 0167073b addw a4,a4,s6 - 2558: 0017171b slliw a4,a4,0x1 + 253c: 002b171b slliw a4,s6,0x2 + 2540: 0167073b addw a4,a4,s6 + 2544: 0017171b slliw a4,a4,0x1 f++; - 255c: 0485 addi s1,s1,1 + 2548: 0485 addi s1,s1,1 fw = fw * 10 + f[0] - '0'; - 255e: 9f3d addw a4,a4,a5 + 254a: 9f3d addw a4,a4,a5 while ((f[0] >= '0') && (f[0] <= '9')) { - 2560: 0004c783 lbu a5,0(s1) + 254c: 0004c783 lbu a5,0(s1) fw = fw * 10 + f[0] - '0'; - 2564: fd070b1b addiw s6,a4,-48 + 2550: fd070b1b addiw s6,a4,-48 while ((f[0] >= '0') && (f[0] <= '9')) { - 2568: fd07871b addiw a4,a5,-48 - 256c: 0ff77713 zext.b a4,a4 - 2570: fee6f0e3 bgeu a3,a4,2550 + 2554: fd07871b addiw a4,a5,-48 + 2558: 0ff77713 zext.b a4,a4 + 255c: fee6f0e3 bgeu a3,a4,253c if (f[0] == '.') { - 2574: 02e00713 li a4,46 + 2560: 02e00713 li a4,46 pr = -1; - 2578: 58fd li a7,-1 + 2564: 58fd li a7,-1 if (f[0] == '.') { - 257a: f0e79ee3 bne a5,a4,2496 + 2566: f0e79ee3 bne a5,a4,2482 if (f[0] == '*') { - 257e: 0014c783 lbu a5,1(s1) - 2582: 02a00713 li a4,42 - 2586: 52e79763 bne a5,a4,2ab4 + 256a: 0014c783 lbu a5,1(s1) + 256e: 02a00713 li a4,42 + 2572: 52e79763 bne a5,a4,2aa0 while ((f[0] >= '0') && (f[0] <= '9')) { - 258a: 0024c783 lbu a5,2(s1) + 2576: 0024c783 lbu a5,2(s1) switch (f[0]) { - 258e: 04900713 li a4,73 + 257a: 04900713 li a4,73 pr = va_arg(va, stbsp__uint32); - 2592: 000ba883 lw a7,0(s7) + 257e: 000ba883 lw a7,0(s7) ++f; - 2596: 0489 addi s1,s1,2 + 2582: 0489 addi s1,s1,2 pr = va_arg(va, stbsp__uint32); - 2598: 0ba1 addi s7,s7,8 + 2584: 0ba1 addi s7,s7,8 switch (f[0]) { - 259a: f0e792e3 bne a5,a4,249e + 2586: f0e792e3 bne a5,a4,248a if ((f[1] == '6') && (f[2] == '4')) { - 259e: 0014c783 lbu a5,1(s1) - 25a2: 03600713 li a4,54 - 25a6: 00e79463 bne a5,a4,25ae - 25aa: 1e60106f j 3790 + 258a: 0014c783 lbu a5,1(s1) + 258e: 03600713 li a4,54 + 2592: 00e79463 bne a5,a4,259a + 2596: 1e60106f j 377c } else if ((f[1] == '3') && (f[2] == '2')) { - 25ae: 03300713 li a4,51 - 25b2: 6ae796e3 bne a5,a4,345e - 25b6: 0024c683 lbu a3,2(s1) - 25ba: 03200713 li a4,50 - 25be: 00e69463 bne a3,a4,25c6 - 25c2: 0ae0106f j 3670 + 259a: 03300713 li a4,51 + 259e: 6ae796e3 bne a5,a4,344a + 25a2: 0024c683 lbu a3,2(s1) + 25a6: 03200713 li a4,50 + 25aa: 00e69463 bne a3,a4,25b2 + 25ae: 0ae0106f j 365c ++f; - 25c6: 0485 addi s1,s1,1 + 25b2: 0485 addi s1,s1,1 *s = f[0]; - 25c8: 26f10fa3 sb a5,639(sp) + 25b4: 26f10fa3 sb a5,639(sp) l = 1; - 25cc: 4785 li a5,1 - 25ce: d0be sw a5,96(sp) + 25b8: 4785 li a5,1 + 25ba: d0be sw a5,96(sp) lead[0] = 0; - 25d0: 06010423 sb zero,104(sp) + 25bc: 06010423 sb zero,104(sp) tail[0] = 0; - 25d4: 06010823 sb zero,112(sp) + 25c0: 06010823 sb zero,112(sp) dp = 0; - 25d8: d282 sw zero,100(sp) - 25da: e0de sd s7,64(sp) - 25dc: 4701 li a4,0 - 25de: 4301 li t1,0 - 25e0: 4f81 li t6,0 - 25e2: 4685 li a3,1 - 25e4: 4a01 li s4,0 + 25c4: d282 sw zero,100(sp) + 25c6: e0de sd s7,64(sp) + 25c8: 4701 li a4,0 + 25ca: 4301 li t1,0 + 25cc: 4f81 li t6,0 + 25ce: 4685 li a3,1 + 25d0: 4a01 li s4,0 cs = 0; - 25e6: 4281 li t0,0 + 25d2: 4281 li t0,0 s = num + STBSP__NUMSZ - 1; - 25e8: 27f10a93 addi s5,sp,639 + 25d4: 27f10a93 addi s5,sp,639 fw = fl = 0; - 25ec: 4e01 li t3,0 + 25d8: 4e01 li t3,0 tz = 0; - 25ee: 4881 li a7,0 + 25da: 4881 li a7,0 if (fl & STBSP__LEADINGZERO) // if leading zeros, everything is in pr - 25f0: 010e7793 andi a5,t3,16 - 25f4: 40078ee3 beqz a5,3210 + 25dc: 010e7793 andi a5,t3,16 + 25e0: 40078ee3 beqz a5,31fc pr = (fw > pr) ? fw : pr; - 25f8: 87ba mv a5,a4 - 25fa: 00675363 bge a4,t1,2600 - 25fe: 879a mv a5,t1 - 2600: 0007871b sext.w a4,a5 + 25e4: 87ba mv a5,a4 + 25e6: 00675363 bge a4,t1,25ec + 25ea: 879a mv a5,t1 + 25ec: 0007871b sext.w a4,a5 fw = 0; - 2604: 4301 li t1,0 + 25f0: 4301 li t1,0 if (fw + pr) { - 2606: 62070563 beqz a4,2c30 + 25f2: 62070563 beqz a4,2c1c sn = lead + 1; - 260a: 06910793 addi a5,sp,105 - 260e: fcbe sd a5,120(sp) + 25f6: 06910793 addi a5,sp,105 + 25fa: fcbe sd a5,120(sp) while (lead[0]) { - 2610: 0a0a0863 beqz s4,26c0 + 25fc: 0a0a0863 beqz s4,26ac stbsp__cb_buf_clamp(i, lead[0]); - 2614: f026 sd s1,32(sp) - 2616: f436 sd a3,40(sp) - 2618: 854a mv a0,s2 - 261a: 86d2 mv a3,s4 - 261c: 84ce mv s1,s3 + 2600: f026 sd s1,32(sp) + 2602: f436 sd a3,40(sp) + 2604: 854a mv a0,s2 + 2606: 86d2 mv a3,s4 + 2608: 84ce mv s1,s3 stbsp__chk_cb_buf(1); - 261e: 1fe00b93 li s7,510 + 260a: 1fe00b93 li s7,510 stbsp__cb_buf_clamp(i, lead[0]); - 2622: 89be mv s3,a5 - 2624: 20000b13 li s6,512 - 2628: 87a2 mv a5,s0 - 262a: e846 sd a7,16(sp) - 262c: 846a mv s0,s10 - 262e: ec7e sd t6,24(sp) - 2630: 8d6e mv s10,s11 - 2632: f872 sd t3,48(sp) - 2634: 8de6 mv s11,s9 - 2636: 8a3a mv s4,a4 - 2638: e496 sd t0,72(sp) - 263a: 891a mv s2,t1 - 263c: 8c9e mv s9,t2 - 263e: 0006871b sext.w a4,a3 - 2642: 2e0482e3 beqz s1,3126 - 2646: 40a7863b subw a2,a5,a0 - 264a: 40cb083b subw a6,s6,a2 - 264e: 85c2 mv a1,a6 - 2650: 01075363 bge a4,a6,2656 - 2654: 85ba mv a1,a4 + 260e: 89be mv s3,a5 + 2610: 20000b13 li s6,512 + 2614: 87a2 mv a5,s0 + 2616: e846 sd a7,16(sp) + 2618: 846a mv s0,s10 + 261a: ec7e sd t6,24(sp) + 261c: 8d6e mv s10,s11 + 261e: f872 sd t3,48(sp) + 2620: 8de6 mv s11,s9 + 2622: 8a3a mv s4,a4 + 2624: e496 sd t0,72(sp) + 2626: 891a mv s2,t1 + 2628: 8c9e mv s9,t2 + 262a: 0006871b sext.w a4,a3 + 262e: 2e0482e3 beqz s1,3112 + 2632: 40a7863b subw a2,a5,a0 + 2636: 40cb083b subw a6,s6,a2 + 263a: 85c2 mv a1,a6 + 263c: 01075363 bge a4,a6,2642 + 2640: 85ba mv a1,a4 lead[0] -= (char)i; - 2656: 9e8d subw a3,a3,a1 + 2642: 9e8d subw a3,a3,a1 stbsp__cb_buf_clamp(i, lead[0]); - 2658: 0005871b sext.w a4,a1 + 2644: 0005871b sext.w a4,a1 lead[0] -= (char)i; - 265c: 06d10423 sb a3,104(sp) + 2648: 06d10423 sb a3,104(sp) while (i) { - 2660: c70d beqz a4,268a - 2662: 7866 ld a6,120(sp) - 2664: 02071593 slli a1,a4,0x20 - 2668: 9181 srli a1,a1,0x20 - 266a: 00b78633 add a2,a5,a1 - 266e: 8742 mv a4,a6 + 264c: c70d beqz a4,2676 + 264e: 7866 ld a6,120(sp) + 2650: 02071593 slli a1,a4,0x20 + 2654: 9181 srli a1,a1,0x20 + 2656: 00b78633 add a2,a5,a1 + 265a: 8742 mv a4,a6 *bf++ = *sn++; - 2670: 00074683 lbu a3,0(a4) - 2674: 0785 addi a5,a5,1 + 265c: 00074683 lbu a3,0(a4) + 2660: 0785 addi a5,a5,1 while (i) { - 2676: 0705 addi a4,a4,1 + 2662: 0705 addi a4,a4,1 *bf++ = *sn++; - 2678: fed78fa3 sb a3,-1(a5) + 2664: fed78fa3 sb a3,-1(a5) while (i) { - 267c: fec79ae3 bne a5,a2,2670 - 2680: 982e add a6,a6,a1 - 2682: fcc2 sd a6,120(sp) + 2668: fec79ae3 bne a5,a2,265c + 266c: 982e add a6,a6,a1 + 266e: fcc2 sd a6,120(sp) stbsp__chk_cb_buf(1); - 2684: c899 beqz s1,269a - 2686: 40a7863b subw a2,a5,a0 - 268a: 00cbd863 bge s7,a2,269a - 268e: 65a2 ld a1,8(sp) - 2690: 9c31 addw s0,s0,a2 - 2692: 9482 jalr s1 - 2694: 34050ee3 beqz a0,31f0 - 2698: 87aa mv a5,a0 + 2670: c899 beqz s1,2686 + 2672: 40a7863b subw a2,a5,a0 + 2676: 00cbd863 bge s7,a2,2686 + 267a: 65a2 ld a1,8(sp) + 267c: 9c31 addw s0,s0,a2 + 267e: 9482 jalr s1 + 2680: 34050ee3 beqz a0,31dc + 2684: 87aa mv a5,a0 while (lead[0]) { - 269a: 06814683 lbu a3,104(sp) - 269e: f2c5 bnez a3,263e - 26a0: 83e6 mv t2,s9 - 26a2: 68c2 ld a7,16(sp) - 26a4: 8cee mv s9,s11 - 26a6: 6fe2 ld t6,24(sp) - 26a8: 8dea mv s11,s10 - 26aa: 76a2 ld a3,40(sp) - 26ac: 8d22 mv s10,s0 - 26ae: 7e42 ld t3,48(sp) - 26b0: 843e mv s0,a5 - 26b2: 62a6 ld t0,72(sp) - 26b4: 87ce mv a5,s3 - 26b6: 89a6 mv s3,s1 - 26b8: 7482 ld s1,32(sp) - 26ba: 834a mv t1,s2 - 26bc: 8752 mv a4,s4 - 26be: 892a mv s2,a0 + 2686: 06814683 lbu a3,104(sp) + 268a: f2c5 bnez a3,262a + 268c: 83e6 mv t2,s9 + 268e: 68c2 ld a7,16(sp) + 2690: 8cee mv s9,s11 + 2692: 6fe2 ld t6,24(sp) + 2694: 8dea mv s11,s10 + 2696: 76a2 ld a3,40(sp) + 2698: 8d22 mv s10,s0 + 269a: 7e42 ld t3,48(sp) + 269c: 843e mv s0,a5 + 269e: 62a6 ld t0,72(sp) + 26a0: 87ce mv a5,s3 + 26a2: 89a6 mv s3,s1 + 26a4: 7482 ld s1,32(sp) + 26a6: 834a mv t1,s2 + 26a8: 8752 mv a4,s4 + 26aa: 892a mv s2,a0 cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; - 26c0: 040e7b13 andi s6,t3,64 + 26ac: 040e7b13 andi s6,t3,64 c = cs >> 24; - 26c4: 0182d61b srliw a2,t0,0x18 - 26c8: 0182db9b srliw s7,t0,0x18 + 26b0: 0182d61b srliw a2,t0,0x18 + 26b4: 0182db9b srliw s7,t0,0x18 cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; - 26cc: 4a01 li s4,0 - 26ce: 000b0e63 beqz s6,26ea + 26b8: 4a01 li s4,0 + 26ba: 000b0e63 beqz s6,26d6 cs &= 0xffffff; - 26d2: 02829a13 slli s4,t0,0x28 - 26d6: 028a5a13 srli s4,s4,0x28 + 26be: 02829a13 slli s4,t0,0x28 + 26c2: 028a5a13 srli s4,s4,0x28 cs = (fl & STBSP__TRIPLET_COMMA) ? ((stbsp__uint32)(c - ((pr + cs) % (c + 1)))) : 0; - 26da: 00ea0a3b addw s4,s4,a4 - 26de: 0016059b addiw a1,a2,1 - 26e2: 02ba7a3b remuw s4,s4,a1 - 26e6: 41460a3b subw s4,a2,s4 + 26c6: 00ea0a3b addw s4,s4,a4 + 26ca: 0016059b addiw a1,a2,1 + 26ce: 02ba7a3b remuw s4,s4,a1 + 26d2: 41460a3b subw s4,a2,s4 while (pr > 0) { - 26ea: 0ce05763 blez a4,27b8 + 26d6: 0ce05763 blez a4,27a4 *(stbsp__uint32 *)bf = 0x30303030; - 26ee: 30303837 lui a6,0x30303 - 26f2: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fa1f0> - 26f6: f026 sd s1,32(sp) - 26f8: 854a mv a0,s2 - 26fa: 84da mv s1,s6 - 26fc: 895e mv s2,s7 - 26fe: e4d6 sd s5,72(sp) - 2700: 8b4e mv s6,s3 - 2702: 8aea mv s5,s10 + 26da: 30303837 lui a6,0x30303 + 26de: 03080813 addi a6,a6,48 # 30303030 <_ZSt4cerr+0x302fa1c0> + 26e2: f026 sd s1,32(sp) + 26e4: 854a mv a0,s2 + 26e6: 84da mv s1,s6 + 26e8: 895e mv s2,s7 + 26ea: e4d6 sd s5,72(sp) + 26ec: 8b4e mv s6,s3 + 26ee: 8aea mv s5,s10 stbsp__chk_cb_buf(1); - 2704: 1fe00293 li t0,510 - 2708: 8d6e mv s10,s11 + 26f0: 1fe00293 li t0,510 + 26f4: 8d6e mv s10,s11 *bf++ = stbsp__comma; - 270a: 00005f17 auipc t5,0x5 - 270e: 7def0f13 addi t5,t5,2014 # 7ee8 - 2712: 8de6 mv s11,s9 + 26f6: 00006f17 auipc t5,0x6 + 26fa: 822f0f13 addi t5,t5,-2014 # 7f18 + 26fe: 8de6 mv s11,s9 *bf++ = '0'; - 2714: 03000e93 li t4,48 - 2718: e846 sd a7,16(sp) - 271a: ec7e sd t6,24(sp) - 271c: f436 sd a3,40(sp) - 271e: f872 sd t3,48(sp) - 2720: e89a sd t1,80(sp) - 2722: 89ba mv s3,a4 - 2724: ecbe sd a5,88(sp) - 2726: 8bc2 mv s7,a6 - 2728: 8c9e mv s9,t2 + 2700: 03000e93 li t4,48 + 2704: e846 sd a7,16(sp) + 2706: ec7e sd t6,24(sp) + 2708: f436 sd a3,40(sp) + 270a: f872 sd t3,48(sp) + 270c: e89a sd t1,80(sp) + 270e: 89ba mv s3,a4 + 2710: ecbe sd a5,88(sp) + 2712: 8bc2 mv s7,a6 + 2714: 8c9e mv s9,t2 stbsp__cb_buf_clamp(i, pr); - 272a: 240b0ee3 beqz s6,3186 - 272e: 40a407b3 sub a5,s0,a0 - 2732: 40fc063b subw a2,s8,a5 - 2736: 87b2 mv a5,a2 - 2738: 00c9d363 bge s3,a2,273e - 273c: 87ce mv a5,s3 - 273e: 0007859b sext.w a1,a5 + 2716: 240b0ee3 beqz s6,3172 + 271a: 40a407b3 sub a5,s0,a0 + 271e: 40fc063b subw a2,s8,a5 + 2722: 87b2 mv a5,a2 + 2724: 00c9d363 bge s3,a2,272a + 2728: 87ce mv a5,s3 + 272a: 0007859b sext.w a1,a5 pr -= i; - 2742: 40f989bb subw s3,s3,a5 + 272e: 40f989bb subw s3,s3,a5 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 2746: 32048c63 beqz s1,2a7e + 2732: 32048c63 beqz s1,2a6a while (i) { - 274a: 34058a63 beqz a1,2a9e - 274e: 1582 slli a1,a1,0x20 + 2736: 34058a63 beqz a1,2a8a + 273a: 1582 slli a1,a1,0x20 *bf++ = stbsp__comma; - 2750: 0cdf4603 lbu a2,205(t5) - 2754: 9181 srli a1,a1,0x20 - 2756: 95a2 add a1,a1,s0 - 2758: 0405 addi s0,s0,1 + 273c: 0cdf4603 lbu a2,205(t5) + 2740: 9181 srli a1,a1,0x20 + 2742: 95a2 add a1,a1,s0 + 2744: 0405 addi s0,s0,1 if ((fl & STBSP__TRIPLET_COMMA) && (cs++ == c)) { - 275a: c481 beqz s1,2762 - 275c: 1d4901e3 beq s2,s4,311e - 2760: 2a05 addiw s4,s4,1 + 2746: c481 beqz s1,274e + 2748: 1d4901e3 beq s2,s4,310a + 274c: 2a05 addiw s4,s4,1 *bf++ = '0'; - 2762: 03000793 li a5,48 - 2766: fef40fa3 sb a5,-1(s0) + 274e: 03000793 li a5,48 + 2752: fef40fa3 sb a5,-1(s0) while (i) { - 276a: fe8597e3 bne a1,s0,2758 + 2756: fe8597e3 bne a1,s0,2744 stbsp__chk_cb_buf(1); - 276e: 320b0b63 beqz s6,2aa4 - 2772: 40a5863b subw a2,a1,a0 - 2776: 32c2d763 bge t0,a2,2aa4 - 277a: 65a2 ld a1,8(sp) - 277c: 01560abb addw s5,a2,s5 - 2780: 9b02 jalr s6 - 2782: 3a050ce3 beqz a0,333a - 2786: 842a mv s0,a0 - 2788: 1fe00293 li t0,510 - 278c: 00005f17 auipc t5,0x5 - 2790: 75cf0f13 addi t5,t5,1884 # 7ee8 - 2794: 03000e93 li t4,48 + 275a: 320b0b63 beqz s6,2a90 + 275e: 40a5863b subw a2,a1,a0 + 2762: 32c2d763 bge t0,a2,2a90 + 2766: 65a2 ld a1,8(sp) + 2768: 01560abb addw s5,a2,s5 + 276c: 9b02 jalr s6 + 276e: 3a050ce3 beqz a0,3326 + 2772: 842a mv s0,a0 + 2774: 1fe00293 li t0,510 + 2778: 00005f17 auipc t5,0x5 + 277c: 7a0f0f13 addi t5,t5,1952 # 7f18 + 2780: 03000e93 li t4,48 while (pr > 0) { - 2798: f93049e3 bgtz s3,272a + 2784: f93049e3 bgtz s3,2716 while (lead[0]) { - 279c: 83e6 mv t2,s9 - 279e: 68c2 ld a7,16(sp) - 27a0: 8cee mv s9,s11 - 27a2: 6fe2 ld t6,24(sp) - 27a4: 8dea mv s11,s10 - 27a6: 7482 ld s1,32(sp) - 27a8: 8d56 mv s10,s5 - 27aa: 76a2 ld a3,40(sp) - 27ac: 7e42 ld t3,48(sp) - 27ae: 6346 ld t1,80(sp) - 27b0: 67e6 ld a5,88(sp) - 27b2: 6aa6 ld s5,72(sp) - 27b4: 892a mv s2,a0 - 27b6: 89da mv s3,s6 - 27b8: 06814a03 lbu s4,104(sp) + 2788: 83e6 mv t2,s9 + 278a: 68c2 ld a7,16(sp) + 278c: 8cee mv s9,s11 + 278e: 6fe2 ld t6,24(sp) + 2790: 8dea mv s11,s10 + 2792: 7482 ld s1,32(sp) + 2794: 8d56 mv s10,s5 + 2796: 76a2 ld a3,40(sp) + 2798: 7e42 ld t3,48(sp) + 279a: 6346 ld t1,80(sp) + 279c: 67e6 ld a5,88(sp) + 279e: 6aa6 ld s5,72(sp) + 27a0: 892a mv s2,a0 + 27a2: 89da mv s3,s6 + 27a4: 06814a03 lbu s4,104(sp) sn = lead + 1; - 27bc: fcbe sd a5,120(sp) + 27a8: fcbe sd a5,120(sp) while (lead[0]) { - 27be: 0a0a0263 beqz s4,2862 + 27aa: 0a0a0263 beqz s4,284e stbsp__cb_buf_clamp(i, lead[0]); - 27c2: ec26 sd s1,24(sp) - 27c4: f036 sd a3,32(sp) - 27c6: 854a mv a0,s2 - 27c8: 86d2 mv a3,s4 - 27ca: 84ce mv s1,s3 - 27cc: 87a2 mv a5,s0 + 27ae: ec26 sd s1,24(sp) + 27b0: f036 sd a3,32(sp) + 27b2: 854a mv a0,s2 + 27b4: 86d2 mv a3,s4 + 27b6: 84ce mv s1,s3 + 27b8: 87a2 mv a5,s0 stbsp__chk_cb_buf(1); - 27ce: 1fe00b93 li s7,510 + 27ba: 1fe00b93 li s7,510 stbsp__cb_buf_clamp(i, lead[0]); - 27d2: 846a mv s0,s10 - 27d4: 20000b13 li s6,512 - 27d8: 8d6e mv s10,s11 - 27da: e846 sd a7,16(sp) - 27dc: 8de6 mv s11,s9 - 27de: 8a7e mv s4,t6 - 27e0: 8972 mv s2,t3 - 27e2: 899a mv s3,t1 - 27e4: 8c9e mv s9,t2 - 27e6: 0006871b sext.w a4,a3 - 27ea: 140482e3 beqz s1,312e - 27ee: 40a7863b subw a2,a5,a0 - 27f2: 40cb083b subw a6,s6,a2 - 27f6: 85c2 mv a1,a6 - 27f8: 01075363 bge a4,a6,27fe - 27fc: 85ba mv a1,a4 + 27be: 846a mv s0,s10 + 27c0: 20000b13 li s6,512 + 27c4: 8d6e mv s10,s11 + 27c6: e846 sd a7,16(sp) + 27c8: 8de6 mv s11,s9 + 27ca: 8a7e mv s4,t6 + 27cc: 8972 mv s2,t3 + 27ce: 899a mv s3,t1 + 27d0: 8c9e mv s9,t2 + 27d2: 0006871b sext.w a4,a3 + 27d6: 140482e3 beqz s1,311a + 27da: 40a7863b subw a2,a5,a0 + 27de: 40cb083b subw a6,s6,a2 + 27e2: 85c2 mv a1,a6 + 27e4: 01075363 bge a4,a6,27ea + 27e8: 85ba mv a1,a4 lead[0] -= (char)i; - 27fe: 9e8d subw a3,a3,a1 + 27ea: 9e8d subw a3,a3,a1 stbsp__cb_buf_clamp(i, lead[0]); - 2800: 0005871b sext.w a4,a1 + 27ec: 0005871b sext.w a4,a1 lead[0] -= (char)i; - 2804: 06d10423 sb a3,104(sp) + 27f0: 06d10423 sb a3,104(sp) while (i) { - 2808: c70d beqz a4,2832 - 280a: 7866 ld a6,120(sp) - 280c: 02071593 slli a1,a4,0x20 - 2810: 9181 srli a1,a1,0x20 - 2812: 00b78633 add a2,a5,a1 - 2816: 8742 mv a4,a6 + 27f4: c70d beqz a4,281e + 27f6: 7866 ld a6,120(sp) + 27f8: 02071593 slli a1,a4,0x20 + 27fc: 9181 srli a1,a1,0x20 + 27fe: 00b78633 add a2,a5,a1 + 2802: 8742 mv a4,a6 *bf++ = *sn++; - 2818: 00074683 lbu a3,0(a4) - 281c: 0785 addi a5,a5,1 + 2804: 00074683 lbu a3,0(a4) + 2808: 0785 addi a5,a5,1 while (i) { - 281e: 0705 addi a4,a4,1 + 280a: 0705 addi a4,a4,1 *bf++ = *sn++; - 2820: fed78fa3 sb a3,-1(a5) + 280c: fed78fa3 sb a3,-1(a5) while (i) { - 2824: fec79ae3 bne a5,a2,2818 - 2828: 982e add a6,a6,a1 - 282a: fcc2 sd a6,120(sp) + 2810: fec79ae3 bne a5,a2,2804 + 2814: 982e add a6,a6,a1 + 2816: fcc2 sd a6,120(sp) stbsp__chk_cb_buf(1); - 282c: c899 beqz s1,2842 - 282e: 40a7863b subw a2,a5,a0 - 2832: 00cbd863 bge s7,a2,2842 - 2836: 65a2 ld a1,8(sp) - 2838: 9c31 addw s0,s0,a2 - 283a: 9482 jalr s1 - 283c: 1a050ae3 beqz a0,31f0 - 2840: 87aa mv a5,a0 + 2818: c899 beqz s1,282e + 281a: 40a7863b subw a2,a5,a0 + 281e: 00cbd863 bge s7,a2,282e + 2822: 65a2 ld a1,8(sp) + 2824: 9c31 addw s0,s0,a2 + 2826: 9482 jalr s1 + 2828: 1a050ae3 beqz a0,31dc + 282c: 87aa mv a5,a0 while (lead[0]) { - 2842: 06814683 lbu a3,104(sp) - 2846: f2c5 bnez a3,27e6 - 2848: 834e mv t1,s3 - 284a: 68c2 ld a7,16(sp) - 284c: 89a6 mv s3,s1 - 284e: 7682 ld a3,32(sp) - 2850: 64e2 ld s1,24(sp) - 2852: 8e4a mv t3,s2 - 2854: 83e6 mv t2,s9 - 2856: 8fd2 mv t6,s4 - 2858: 8cee mv s9,s11 - 285a: 892a mv s2,a0 - 285c: 8dea mv s11,s10 - 285e: 8d22 mv s10,s0 - 2860: 843e mv s0,a5 + 282e: 06814683 lbu a3,104(sp) + 2832: f2c5 bnez a3,27d2 + 2834: 834e mv t1,s3 + 2836: 68c2 ld a7,16(sp) + 2838: 89a6 mv s3,s1 + 283a: 7682 ld a3,32(sp) + 283c: 64e2 ld s1,24(sp) + 283e: 8e4a mv t3,s2 + 2840: 83e6 mv t2,s9 + 2842: 8fd2 mv t6,s4 + 2844: 8cee mv s9,s11 + 2846: 892a mv s2,a0 + 2848: 8dea mv s11,s10 + 284a: 8d22 mv s10,s0 + 284c: 843e mv s0,a5 while (n) { - 2862: c6f9 beqz a3,2930 + 284e: c6f9 beqz a3,291c STBSP__UNALIGNED(while (i >= 4) { - 2864: ec26 sd s1,24(sp) - 2866: 854a mv a0,s2 - 2868: 84d6 mv s1,s5 - 286a: 896a mv s2,s10 - 286c: 87a2 mv a5,s0 - 286e: 8d6e mv s10,s11 + 2850: ec26 sd s1,24(sp) + 2852: 854a mv a0,s2 + 2854: 84d6 mv s1,s5 + 2856: 896a mv s2,s10 + 2858: 87a2 mv a5,s0 + 285a: 8d6e mv s10,s11 stbsp__chk_cb_buf(1); - 2870: 1fe00b93 li s7,510 + 285c: 1fe00b93 li s7,510 STBSP__UNALIGNED(while (i >= 4) { - 2874: 8de6 mv s11,s9 + 2860: 8de6 mv s11,s9 stbsp__cb_buf_clamp(i, n); - 2876: 20000b13 li s6,512 + 2862: 20000b13 li s6,512 STBSP__UNALIGNED(while (i >= 4) { - 287a: 4a0d li s4,3 - 287c: e87e sd t6,16(sp) - 287e: f072 sd t3,32(sp) - 2880: 8ac6 mv s5,a7 - 2882: f41a sd t1,40(sp) - 2884: 8436 mv s0,a3 - 2886: 8c9e mv s9,t2 + 2866: 4a0d li s4,3 + 2868: e87e sd t6,16(sp) + 286a: f072 sd t3,32(sp) + 286c: 8ac6 mv s5,a7 + 286e: f41a sd t1,40(sp) + 2870: 8436 mv s0,a3 + 2872: 8c9e mv s9,t2 stbsp__cb_buf_clamp(i, n); - 2888: 0004071b sext.w a4,s0 - 288c: 100982e3 beqz s3,3190 - 2890: 40a78633 sub a2,a5,a0 - 2894: 40cb05bb subw a1,s6,a2 - 2898: 862e mv a2,a1 - 289a: 00b75363 bge a4,a1,28a0 - 289e: 863a mv a2,a4 - 28a0: 0006071b sext.w a4,a2 + 2874: 0004071b sext.w a4,s0 + 2878: 100982e3 beqz s3,317c + 287c: 40a78633 sub a2,a5,a0 + 2880: 40cb05bb subw a1,s6,a2 + 2884: 862e mv a2,a1 + 2886: 00b75363 bge a4,a1,288c + 288a: 863a mv a2,a4 + 288c: 0006071b sext.w a4,a2 n -= i; - 28a4: 9c11 subw s0,s0,a2 + 2890: 9c11 subw s0,s0,a2 STBSP__UNALIGNED(while (i >= 4) { - 28a6: 14ea50e3 bge s4,a4,31e6 - 28aa: ffc70f1b addiw t5,a4,-4 - 28ae: 002f5e9b srliw t4,t5,0x2 - 28b2: 001e8e1b addiw t3,t4,1 - 28b6: 0e0a slli t3,t3,0x2 - 28b8: 01c785b3 add a1,a5,t3 - 28bc: 8626 mv a2,s1 - 28be: 4218 lw a4,0(a2) - 28c0: 0791 addi a5,a5,4 - 28c2: 0611 addi a2,a2,4 - 28c4: 2701 sext.w a4,a4 - 28c6: fee7ae23 sw a4,-4(a5) - 28ca: feb79ae3 bne a5,a1,28be - 28ce: 002e9e9b slliw t4,t4,0x2 - 28d2: 41df073b subw a4,t5,t4 + 2892: 14ea50e3 bge s4,a4,31d2 + 2896: ffc70f1b addiw t5,a4,-4 + 289a: 002f5e9b srliw t4,t5,0x2 + 289e: 001e8e1b addiw t3,t4,1 + 28a2: 0e0a slli t3,t3,0x2 + 28a4: 01c785b3 add a1,a5,t3 + 28a8: 8626 mv a2,s1 + 28aa: 4218 lw a4,0(a2) + 28ac: 0791 addi a5,a5,4 + 28ae: 0611 addi a2,a2,4 + 28b0: 2701 sext.w a4,a4 + 28b2: fee7ae23 sw a4,-4(a5) + 28b6: feb79ae3 bne a5,a1,28aa + 28ba: 002e9e9b slliw t4,t4,0x2 + 28be: 41df073b subw a4,t5,t4 while (i) { - 28d6: 94f2 add s1,s1,t3 - 28d8: c31d beqz a4,28fe - 28da: 8626 mv a2,s1 - 28dc: 87ae mv a5,a1 - 28de: 00e58f3b addw t5,a1,a4 + 28c2: 94f2 add s1,s1,t3 + 28c4: c31d beqz a4,28ea + 28c6: 8626 mv a2,s1 + 28c8: 87ae mv a5,a1 + 28ca: 00e58f3b addw t5,a1,a4 *bf++ = *s++; - 28e2: 00064e83 lbu t4,0(a2) - 28e6: 0785 addi a5,a5,1 + 28ce: 00064e83 lbu t4,0(a2) + 28d2: 0785 addi a5,a5,1 while (i) { - 28e8: 00078e1b sext.w t3,a5 + 28d4: 00078e1b sext.w t3,a5 *bf++ = *s++; - 28ec: ffd78fa3 sb t4,-1(a5) - 28f0: 0605 addi a2,a2,1 + 28d8: ffd78fa3 sb t4,-1(a5) + 28dc: 0605 addi a2,a2,1 while (i) { - 28f2: ffcf18e3 bne t5,t3,28e2 - 28f6: 1702 slli a4,a4,0x20 - 28f8: 9301 srli a4,a4,0x20 - 28fa: 95ba add a1,a1,a4 - 28fc: 94ba add s1,s1,a4 + 28de: ffcf18e3 bne t5,t3,28ce + 28e2: 1702 slli a4,a4,0x20 + 28e4: 9301 srli a4,a4,0x20 + 28e6: 95ba add a1,a1,a4 + 28e8: 94ba add s1,s1,a4 stbsp__chk_cb_buf(1); - 28fe: 1a098763 beqz s3,2aac - 2902: 40a5863b subw a2,a1,a0 - 2906: 1acbd363 bge s7,a2,2aac - 290a: 65a2 ld a1,8(sp) - 290c: 0126093b addw s2,a2,s2 - 2910: 9982 jalr s3 - 2912: 20050be3 beqz a0,3328 - 2916: 87aa mv a5,a0 + 28ea: 1a098763 beqz s3,2a98 + 28ee: 40a5863b subw a2,a1,a0 + 28f2: 1acbd363 bge s7,a2,2a98 + 28f6: 65a2 ld a1,8(sp) + 28f8: 0126093b addw s2,a2,s2 + 28fc: 9982 jalr s3 + 28fe: 20050be3 beqz a0,3314 + 2902: 87aa mv a5,a0 while (n) { - 2918: f825 bnez s0,2888 - 291a: 6fc2 ld t6,16(sp) - 291c: 64e2 ld s1,24(sp) - 291e: 7e02 ld t3,32(sp) - 2920: 7322 ld t1,40(sp) - 2922: 83e6 mv t2,s9 - 2924: 88d6 mv a7,s5 - 2926: 8cee mv s9,s11 - 2928: 843e mv s0,a5 - 292a: 8dea mv s11,s10 - 292c: 8d4a mv s10,s2 - 292e: 892a mv s2,a0 + 2904: f825 bnez s0,2874 + 2906: 6fc2 ld t6,16(sp) + 2908: 64e2 ld s1,24(sp) + 290a: 7e02 ld t3,32(sp) + 290c: 7322 ld t1,40(sp) + 290e: 83e6 mv t2,s9 + 2910: 88d6 mv a7,s5 + 2912: 8cee mv s9,s11 + 2914: 843e mv s0,a5 + 2916: 8dea mv s11,s10 + 2918: 8d4a mv s10,s2 + 291a: 892a mv s2,a0 while (tz) { - 2930: 08088863 beqz a7,29c0 + 291c: 08088863 beqz a7,29ac *(stbsp__uint32 *)bf = 0x30303030; - 2934: 30303b37 lui s6,0x30303 + 2920: 30303b37 lui s6,0x30303 *bf++ = '0'; - 2938: 03000a13 li s4,48 + 2924: 03000a13 li s4,48 while (i >= 4) { - 293c: 4a8d li s5,3 + 2928: 4a8d li s5,3 stbsp__chk_cb_buf(1); - 293e: 1fe00693 li a3,510 + 292a: 1fe00693 li a3,510 *(stbsp__uint32 *)bf = 0x30303030; - 2942: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fa1f0> + 292e: 030b0b13 addi s6,s6,48 # 30303030 <_ZSt4cerr+0x302fa1c0> stbsp__cb_buf_clamp(i, tz); - 2946: 20000b93 li s7,512 - 294a: 040989e3 beqz s3,319c - 294e: 41240633 sub a2,s0,s2 - 2952: 40cb87bb subw a5,s7,a2 - 2956: 873e mv a4,a5 - 2958: 00f8d363 bge a7,a5,295e - 295c: 8746 mv a4,a7 - 295e: 0007079b sext.w a5,a4 + 2932: 20000b93 li s7,512 + 2936: 040989e3 beqz s3,3188 + 293a: 41240633 sub a2,s0,s2 + 293e: 40cb87bb subw a5,s7,a2 + 2942: 873e mv a4,a5 + 2944: 00f8d363 bge a7,a5,294a + 2948: 8746 mv a4,a7 + 294a: 0007079b sext.w a5,a4 tz -= i; - 2962: 40e888bb subw a7,a7,a4 + 294e: 40e888bb subw a7,a7,a4 while (i) { - 2966: 08078ee3 beqz a5,3202 + 2952: 08078ee3 beqz a5,31ee if ((((stbsp__uintptr)bf) & 3) == 0) - 296a: 00347713 andi a4,s0,3 - 296e: e719 bnez a4,297c - 2970: 0390006f j 31a8 - 2974: 00347713 andi a4,s0,3 - 2978: 7a070f63 beqz a4,3136 + 2956: 00347713 andi a4,s0,3 + 295a: e719 bnez a4,2968 + 295c: 0390006f j 3194 + 2960: 00347713 andi a4,s0,3 + 2964: 7a070f63 beqz a4,3122 *bf++ = '0'; - 297c: 01440023 sb s4,0(s0) + 2968: 01440023 sb s4,0(s0) --i; - 2980: 37fd addiw a5,a5,-1 + 296c: 37fd addiw a5,a5,-1 *bf++ = '0'; - 2982: 0405 addi s0,s0,1 + 296e: 0405 addi s0,s0,1 while (i) { - 2984: fbe5 bnez a5,2974 + 2970: fbe5 bnez a5,2960 stbsp__chk_cb_buf(1); - 2986: 02098b63 beqz s3,29bc - 298a: 4124063b subw a2,s0,s2 - 298e: 02c6d763 bge a3,a2,29bc - 2992: 65a2 ld a1,8(sp) - 2994: 854a mv a0,s2 - 2996: f81e sd t2,48(sp) - 2998: f41a sd t1,40(sp) - 299a: f072 sd t3,32(sp) - 299c: ec7e sd t6,24(sp) - 299e: e846 sd a7,16(sp) - 29a0: 00cd0d3b addw s10,s10,a2 - 29a4: 9982 jalr s3 - 29a6: 892a mv s2,a0 - 29a8: 1a0502e3 beqz a0,334c - 29ac: 73c2 ld t2,48(sp) - 29ae: 7322 ld t1,40(sp) - 29b0: 7e02 ld t3,32(sp) - 29b2: 6fe2 ld t6,24(sp) - 29b4: 68c2 ld a7,16(sp) - 29b6: 842a mv s0,a0 - 29b8: 1fe00693 li a3,510 + 2972: 02098b63 beqz s3,29a8 + 2976: 4124063b subw a2,s0,s2 + 297a: 02c6d763 bge a3,a2,29a8 + 297e: 65a2 ld a1,8(sp) + 2980: 854a mv a0,s2 + 2982: f81e sd t2,48(sp) + 2984: f41a sd t1,40(sp) + 2986: f072 sd t3,32(sp) + 2988: ec7e sd t6,24(sp) + 298a: e846 sd a7,16(sp) + 298c: 00cd0d3b addw s10,s10,a2 + 2990: 9982 jalr s3 + 2992: 892a mv s2,a0 + 2994: 1a0502e3 beqz a0,3338 + 2998: 73c2 ld t2,48(sp) + 299a: 7322 ld t1,40(sp) + 299c: 7e02 ld t3,32(sp) + 299e: 6fe2 ld t6,24(sp) + 29a0: 68c2 ld a7,16(sp) + 29a2: 842a mv s0,a0 + 29a4: 1fe00693 li a3,510 while (tz) { - 29bc: f80897e3 bnez a7,294a + 29a8: f80897e3 bnez a7,2936 sn = tail + 1; - 29c0: 07110793 addi a5,sp,113 - 29c4: fcbe sd a5,120(sp) + 29ac: 07110793 addi a5,sp,113 + 29b0: fcbe sd a5,120(sp) while (tail[0]) { - 29c6: 080f8763 beqz t6,2a54 + 29b2: 080f8763 beqz t6,2a40 stbsp__cb_buf_clamp(i, tail[0]); - 29ca: 854a mv a0,s2 - 29cc: 8b6a mv s6,s10 + 29b6: 854a mv a0,s2 + 29b8: 8b6a mv s6,s10 stbsp__chk_cb_buf(1); - 29ce: 1fe00a93 li s5,510 + 29ba: 1fe00a93 li s5,510 stbsp__cb_buf_clamp(i, tail[0]); - 29d2: 8d4e mv s10,s3 - 29d4: 20000a13 li s4,512 - 29d8: 8bf2 mv s7,t3 - 29da: 891a mv s2,t1 - 29dc: 899e mv s3,t2 - 29de: 000f879b sext.w a5,t6 - 29e2: 7c0d0863 beqz s10,31b2 - 29e6: 40a4063b subw a2,s0,a0 - 29ea: 40ca06bb subw a3,s4,a2 - 29ee: 8736 mv a4,a3 - 29f0: 00d7d363 bge a5,a3,29f6 - 29f4: 873e mv a4,a5 + 29be: 8d4e mv s10,s3 + 29c0: 20000a13 li s4,512 + 29c4: 8bf2 mv s7,t3 + 29c6: 891a mv s2,t1 + 29c8: 899e mv s3,t2 + 29ca: 000f879b sext.w a5,t6 + 29ce: 7c0d0863 beqz s10,319e + 29d2: 40a4063b subw a2,s0,a0 + 29d6: 40ca06bb subw a3,s4,a2 + 29da: 8736 mv a4,a3 + 29dc: 00d7d363 bge a5,a3,29e2 + 29e0: 873e mv a4,a5 tail[0] -= (char)i; - 29f6: 40ef8fbb subw t6,t6,a4 + 29e2: 40ef8fbb subw t6,t6,a4 stbsp__cb_buf_clamp(i, tail[0]); - 29fa: 0007079b sext.w a5,a4 + 29e6: 0007079b sext.w a5,a4 tail[0] -= (char)i; - 29fe: 07f10823 sb t6,112(sp) + 29ea: 07f10823 sb t6,112(sp) while (i) { - 2a02: c795 beqz a5,2a2e - 2a04: 75e6 ld a1,120(sp) - 2a06: 02079613 slli a2,a5,0x20 - 2a0a: 9201 srli a2,a2,0x20 - 2a0c: 00c406b3 add a3,s0,a2 - 2a10: 87ae mv a5,a1 + 29ee: c795 beqz a5,2a1a + 29f0: 75e6 ld a1,120(sp) + 29f2: 02079613 slli a2,a5,0x20 + 29f6: 9201 srli a2,a2,0x20 + 29f8: 00c406b3 add a3,s0,a2 + 29fc: 87ae mv a5,a1 *bf++ = *sn++; - 2a12: 0007c703 lbu a4,0(a5) - 2a16: 0405 addi s0,s0,1 + 29fe: 0007c703 lbu a4,0(a5) + 2a02: 0405 addi s0,s0,1 while (i) { - 2a18: 0785 addi a5,a5,1 + 2a04: 0785 addi a5,a5,1 *bf++ = *sn++; - 2a1a: fee40fa3 sb a4,-1(s0) + 2a06: fee40fa3 sb a4,-1(s0) while (i) { - 2a1e: fed41ae3 bne s0,a3,2a12 - 2a22: 95b2 add a1,a1,a2 - 2a24: fcae sd a1,120(sp) + 2a0a: fed41ae3 bne s0,a3,29fe + 2a0e: 95b2 add a1,a1,a2 + 2a10: fcae sd a1,120(sp) stbsp__chk_cb_buf(1); - 2a26: 000d0d63 beqz s10,2a40 - 2a2a: 40a4063b subw a2,s0,a0 - 2a2e: 00cad963 bge s5,a2,2a40 - 2a32: 65a2 ld a1,8(sp) - 2a34: 00cb0b3b addw s6,s6,a2 - 2a38: 9d02 jalr s10 - 2a3a: 200509e3 beqz a0,344c - 2a3e: 842a mv s0,a0 + 2a12: 000d0d63 beqz s10,2a2c + 2a16: 40a4063b subw a2,s0,a0 + 2a1a: 00cad963 bge s5,a2,2a2c + 2a1e: 65a2 ld a1,8(sp) + 2a20: 00cb0b3b addw s6,s6,a2 + 2a24: 9d02 jalr s10 + 2a26: 200509e3 beqz a0,3438 + 2a2a: 842a mv s0,a0 while (tail[0]) { - 2a40: 07014f83 lbu t6,112(sp) - 2a44: f80f9de3 bnez t6,29de - 2a48: 834a mv t1,s2 - 2a4a: 83ce mv t2,s3 - 2a4c: 8e5e mv t3,s7 - 2a4e: 89ea mv s3,s10 - 2a50: 892a mv s2,a0 - 2a52: 8d5a mv s10,s6 + 2a2c: 07014f83 lbu t6,112(sp) + 2a30: f80f9de3 bnez t6,29ca + 2a34: 834a mv t1,s2 + 2a36: 83ce mv t2,s3 + 2a38: 8e5e mv t3,s7 + 2a3a: 89ea mv s3,s10 + 2a3c: 892a mv s2,a0 + 2a3e: 8d5a mv s10,s6 if (fl & STBSP__LEFTJUST) - 2a54: 001e7e13 andi t3,t3,1 - 2a58: 000e0663 beqz t3,2a64 + 2a40: 001e7e13 andi t3,t3,1 + 2a44: 000e0663 beqz t3,2a50 if (fw > 0) { - 2a5c: 00605463 blez t1,2a64 - 2a60: 0300106f j 3a90 + 2a48: 00605463 blez t1,2a50 + 2a4c: 0300106f j 3a7c for (;;) { - 2a64: 6b86 ld s7,64(sp) - 2a66: 2c013a03 ld s4,704(sp) - 2a6a: 2b813a83 ld s5,696(sp) - 2a6e: 2b013b03 ld s6,688(sp) + 2a50: 6b86 ld s7,64(sp) + 2a52: 2c013a03 ld s4,704(sp) + 2a56: 2b813a83 ld s5,696(sp) + 2a5a: 2b013b03 ld s6,688(sp) ++f; - 2a72: 0485 addi s1,s1,1 + 2a5e: 0485 addi s1,s1,1 for (;;) { - 2a74: b0f1 j 2340 + 2a60: b0f1 j 232c fl |= STBSP__METRIC_SUFFIX; - 2a76: 100e6e13 ori t3,t3,256 + 2a62: 100e6e13 ori t3,t3,256 continue; - 2a7a: 0685 addi a3,a3,1 - 2a7c: bad1 j 2450 + 2a66: 0685 addi a3,a3,1 + 2a68: bad1 j 243c while (i) { - 2a7e: 0e0580e3 beqz a1,335e + 2a6a: 0e0580e3 beqz a1,334a if ((((stbsp__uintptr)bf) & 3) == 0) - 2a82: 00347793 andi a5,s0,3 - 2a86: e799 bnez a5,2a94 - 2a88: 0dd0006f j 3364 - 2a8c: 00347793 andi a5,s0,3 - 2a90: 72078463 beqz a5,31b8 + 2a6e: 00347793 andi a5,s0,3 + 2a72: e799 bnez a5,2a80 + 2a74: 0dd0006f j 3350 + 2a78: 00347793 andi a5,s0,3 + 2a7c: 72078463 beqz a5,31a4 *bf++ = '0'; - 2a94: 01d40023 sb t4,0(s0) + 2a80: 01d40023 sb t4,0(s0) --i; - 2a98: 35fd addiw a1,a1,-1 + 2a84: 35fd addiw a1,a1,-1 *bf++ = '0'; - 2a9a: 0405 addi s0,s0,1 + 2a86: 0405 addi s0,s0,1 while (i) { - 2a9c: f9e5 bnez a1,2a8c + 2a88: f9e5 bnez a1,2a78 while (i) { - 2a9e: 85a2 mv a1,s0 + 2a8a: 85a2 mv a1,s0 stbsp__chk_cb_buf(1); - 2aa0: cc0b19e3 bnez s6,2772 - 2aa4: 842e mv s0,a1 + 2a8c: cc0b19e3 bnez s6,275e + 2a90: 842e mv s0,a1 while (pr > 0) { - 2aa6: c93042e3 bgtz s3,272a - 2aaa: b9cd j 279c + 2a92: c93042e3 bgtz s3,2716 + 2a96: b9cd j 2788 while (i) { - 2aac: 87ae mv a5,a1 + 2a98: 87ae mv a5,a1 while (n) { - 2aae: dc041de3 bnez s0,2888 - 2ab2: b5a5 j 291a + 2a9a: dc041de3 bnez s0,2874 + 2a9e: b5a5 j 2906 while ((f[0] >= '0') && (f[0] <= '9')) { - 2ab4: fd07871b addiw a4,a5,-48 - 2ab8: 0ff77713 zext.b a4,a4 - 2abc: 4625 li a2,9 + 2aa0: fd07871b addiw a4,a5,-48 + 2aa4: 0ff77713 zext.b a4,a4 + 2aa8: 4625 li a2,9 ++f; - 2abe: 0485 addi s1,s1,1 + 2aaa: 0485 addi s1,s1,1 pr = 0; - 2ac0: 4881 li a7,0 + 2aac: 4881 li a7,0 while ((f[0] >= '0') && (f[0] <= '9')) { - 2ac2: 46a5 li a3,9 - 2ac4: 9ce669e3 bltu a2,a4,2496 + 2aae: 46a5 li a3,9 + 2ab0: 9ce669e3 bltu a2,a4,2482 pr = pr * 10 + f[0] - '0'; - 2ac8: 0028971b slliw a4,a7,0x2 - 2acc: 0117073b addw a4,a4,a7 - 2ad0: 0017171b slliw a4,a4,0x1 + 2ab4: 0028971b slliw a4,a7,0x2 + 2ab8: 0117073b addw a4,a4,a7 + 2abc: 0017171b slliw a4,a4,0x1 f++; - 2ad4: 0485 addi s1,s1,1 + 2ac0: 0485 addi s1,s1,1 pr = pr * 10 + f[0] - '0'; - 2ad6: 9f3d addw a4,a4,a5 + 2ac2: 9f3d addw a4,a4,a5 while ((f[0] >= '0') && (f[0] <= '9')) { - 2ad8: 0004c783 lbu a5,0(s1) + 2ac4: 0004c783 lbu a5,0(s1) pr = pr * 10 + f[0] - '0'; - 2adc: fd07089b addiw a7,a4,-48 + 2ac8: fd07089b addiw a7,a4,-48 while ((f[0] >= '0') && (f[0] <= '9')) { - 2ae0: fd07871b addiw a4,a5,-48 - 2ae4: 0ff77713 zext.b a4,a4 - 2ae8: fee6f0e3 bgeu a3,a4,2ac8 - 2aec: b26d j 2496 + 2acc: fd07871b addiw a4,a5,-48 + 2ad0: 0ff77713 zext.b a4,a4 + 2ad4: fee6f0e3 bgeu a3,a4,2ab4 + 2ad8: b26d j 2482 fl |= STBSP__METRIC_1024; - 2aee: 8f5d or a4,a4,a5 - 2af0: 00070e1b sext.w t3,a4 - 2af4: 0685 addi a3,a3,1 - 2af6: baa9 j 2450 + 2ada: 8f5d or a4,a4,a5 + 2adc: 00070e1b sext.w t3,a4 + 2ae0: 0685 addi a3,a3,1 + 2ae2: baa9 j 243c *bf = 0; - 2af8: 00040023 sb zero,0(s0) - 2afc: b209 j 23fe + 2ae4: 00040023 sb zero,0(s0) + 2ae8: b209 j 23ea if (f[0] == 'l') { - 2afe: 0014c783 lbu a5,1(s1) - 2b02: 06c00713 li a4,108 + 2aea: 0014c783 lbu a5,1(s1) + 2aee: 06c00713 li a4,108 fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); - 2b06: 020e6e13 ori t3,t3,32 + 2af2: 020e6e13 ori t3,t3,32 if (f[0] == 'l') { - 2b0a: 00e78c63 beq a5,a4,2b22 + 2af6: 00e78c63 beq a5,a4,2b0e ++f; - 2b0e: 0485 addi s1,s1,1 - 2b10: ba65 j 24c8 + 2afa: 0485 addi s1,s1,1 + 2afc: ba65 j 24b4 if (f[0] == 'h') - 2b12: 0014c783 lbu a5,1(s1) - 2b16: 06800713 li a4,104 + 2afe: 0014c783 lbu a5,1(s1) + 2b02: 06800713 li a4,104 fl |= STBSP__HALFWIDTH; - 2b1a: 200e6e13 ori t3,t3,512 + 2b06: 200e6e13 ori t3,t3,512 if (f[0] == 'h') - 2b1e: fee798e3 bne a5,a4,2b0e + 2b0a: fee798e3 bne a5,a4,2afa if ((f[1] == '6') && (f[2] == '4')) { - 2b22: 0024c783 lbu a5,2(s1) + 2b0e: 0024c783 lbu a5,2(s1) ++f; - 2b26: 0489 addi s1,s1,2 - 2b28: b245 j 24c8 + 2b12: 0489 addi s1,s1,2 + 2b14: b245 j 24b4 s = va_arg(va, char *); - 2b2a: 008b8713 addi a4,s7,8 - 2b2e: e0ba sd a4,64(sp) + 2b16: 008b8713 addi a4,s7,8 + 2b1a: e0ba sd a4,64(sp) if (fl & STBSP__INTMAX) { - 2b30: 020e7693 andi a3,t3,32 - 2b34: 8772 mv a4,t3 - 2b36: 24069ee3 bnez a3,3592 + 2b1c: 020e7693 andi a3,t3,32 + 2b20: 8772 mv a4,t3 + 2b22: 24069ee3 bnez a3,357e stbsp__int32 i = va_arg(va, stbsp__int32); - 2b3a: 000ba683 lw a3,0(s7) + 2b26: 000ba683 lw a3,0(s7) if ((f[0] != 'u') && (i < 0)) { - 2b3e: 07500613 li a2,117 + 2b2a: 07500613 li a2,117 n64 = (stbsp__uint32)i; - 2b42: 02069f13 slli t5,a3,0x20 - 2b46: 020f5f13 srli t5,t5,0x20 + 2b2e: 02069f13 slli t5,a3,0x20 + 2b32: 020f5f13 srli t5,t5,0x20 if ((f[0] != 'u') && (i < 0)) { - 2b4a: 00c78a63 beq a5,a2,2b5e - 2b4e: 0006d863 bgez a3,2b5e + 2b36: 00c78a63 beq a5,a2,2b4a + 2b3a: 0006d863 bgez a3,2b4a fl |= STBSP__NEGATIVE; - 2b52: 08076713 ori a4,a4,128 + 2b3e: 08076713 ori a4,a4,128 n64 = (stbsp__uint32)-i; - 2b56: 40d00f3b negw t5,a3 + 2b42: 40d00f3b negw t5,a3 fl |= STBSP__NEGATIVE; - 2b5a: 00070e1b sext.w t3,a4 + 2b46: 00070e1b sext.w t3,a4 if (fl & STBSP__METRIC_SUFFIX) { - 2b5e: 100e7693 andi a3,t3,256 - 2b62: 5c0683e3 beqz a3,3928 + 2b4a: 100e7693 andi a3,t3,256 + 2b4e: 5c0683e3 beqz a3,3914 if (n64 < 1024) - 2b66: 3ff00793 li a5,1023 - 2b6a: 01e7e463 bltu a5,t5,2b72 - 2b6e: 0ea0106f j 3c58 + 2b52: 3ff00793 li a5,1023 + 2b56: 01e7e463 bltu a5,t5,2b5e + 2b5a: 0ea0106f j 3c44 else if (pr == -1) - 2b72: 57fd li a5,-1 - 2b74: 30f887e3 beq a7,a5,3682 + 2b5e: 57fd li a5,-1 + 2b60: 30f887e3 beq a7,a5,366e fv = (double)(stbsp__int64)n64; - 2b78: d22f7553 fcvt.d.l fa0,t5 + 2b64: d22f7553 fcvt.d.l fa0,t5 if (fl & STBSP__METRIC_1024) - 2b7c: 034e1793 slli a5,t3,0x34 - 2b80: 0007c463 bltz a5,2b88 - 2b84: 2300106f j 3db4 + 2b68: 034e1793 slli a5,t3,0x34 + 2b6c: 0007c463 bltz a5,2b74 + 2b70: 2300106f j 3da0 divisor = 1024.0; - 2b88: 00004797 auipc a5,0x4 - 2b8c: d987b787 fld fa5,-616(a5) # 6920 + 2b74: 00004797 auipc a5,0x4 + 2b78: e147b787 fld fa5,-492(a5) # 6988 if ((fv < divisor) && (fv > -divisor)) - 2b90: 22f79753 fneg.d fa4,fa5 + 2b7c: 22f79753 fneg.d fa4,fa5 fl += 0x1000000; - 2b94: 010006b7 lui a3,0x1000 + 2b80: 010006b7 lui a3,0x1000 while (fl < 0x4000000) { - 2b98: 04000737 lui a4,0x4000 + 2b84: 04000737 lui a4,0x4000 if ((fv < divisor) && (fv > -divisor)) - 2b9c: a2f517d3 flt.d a5,fa0,fa5 - 2ba0: c789 beqz a5,2baa - 2ba2: a2a717d3 flt.d a5,fa4,fa0 - 2ba6: 3e079863 bnez a5,2f96 + 2b88: a2f517d3 flt.d a5,fa0,fa5 + 2b8c: c789 beqz a5,2b96 + 2b8e: a2a717d3 flt.d a5,fa4,fa0 + 2b92: 3e079863 bnez a5,2f82 fl += 0x1000000; - 2baa: 01c68e3b addw t3,a3,t3 + 2b96: 01c68e3b addw t3,a3,t3 fv /= divisor; - 2bae: 1af57553 fdiv.d fa0,fa0,fa5 + 2b9a: 1af57553 fdiv.d fa0,fa0,fa5 while (fl < 0x4000000) { - 2bb2: feee65e3 bltu t3,a4,2b9c - 2bb6: a6c5 j 2f96 + 2b9e: feee65e3 bltu t3,a4,2b88 + 2ba2: a6c5 j 2f82 h = (f[0] == 'X') ? hexu : hex; - 2bb8: 05800693 li a3,88 + 2ba4: 05800693 li a3,88 if (fl & STBSP__INTMAX) { - 2bbc: 020e7713 andi a4,t3,32 + 2ba8: 020e7713 andi a4,t3,32 h = (f[0] == 'X') ? hexu : hex; - 2bc0: 00005817 auipc a6,0x5 - 2bc4: 41080813 addi a6,a6,1040 # 7fd0 - 2bc8: 00d79663 bne a5,a3,2bd4 - 2bcc: 00005817 auipc a6,0x5 - 2bd0: 3ec80813 addi a6,a6,1004 # 7fb8 + 2bac: 00005817 auipc a6,0x5 + 2bb0: 45480813 addi a6,a6,1108 # 8000 + 2bb4: 00d79663 bne a5,a3,2bc0 + 2bb8: 00005817 auipc a6,0x5 + 2bbc: 43080813 addi a6,a6,1072 # 7fe8 l = (4 << 4) | (4 << 8); - 2bd4: 44000793 li a5,1088 - 2bd8: d0be sw a5,96(sp) + 2bc0: 44000793 li a5,1088 + 2bc4: d0be sw a5,96(sp) if (fl & STBSP__LEADING_0X) { - 2bda: 008e7793 andi a5,t3,8 - 2bde: 7a079263 bnez a5,3382 + 2bc6: 008e7793 andi a5,t3,8 + 2bca: 7a079263 bnez a5,336e lead[0] = 0; - 2be2: 06010423 sb zero,104(sp) + 2bce: 06010423 sb zero,104(sp) s = va_arg(va, char *); - 2be6: 008b8793 addi a5,s7,8 - 2bea: e0be sd a5,64(sp) + 2bd2: 008b8793 addi a5,s7,8 + 2bd6: e0be sd a5,64(sp) if (fl & STBSP__INTMAX) - 2bec: 72070b63 beqz a4,3322 + 2bd8: 72070b63 beqz a4,330e n64 = va_arg(va, stbsp__uint64); - 2bf0: 000bb683 ld a3,0(s7) + 2bdc: 000bb683 ld a3,0(s7) dp = 0; - 2bf4: d282 sw zero,100(sp) + 2be0: d282 sw zero,100(sp) tail[0] = 0; - 2bf6: 06010823 sb zero,112(sp) + 2be2: 06010823 sb zero,112(sp) if ((fl & STBSP__LEFTJUST) == 0) { - 2bfa: 001e7513 andi a0,t3,1 + 2be6: 001e7513 andi a0,t3,1 if (n64 == 0) { - 2bfe: 380694e3 bnez a3,3786 + 2bea: 380694e3 bnez a3,3772 lead[0] = 0; - 2c02: 06010423 sb zero,104(sp) + 2bee: 06010423 sb zero,104(sp) if (pr == 0) { - 2c06: 78089a63 bnez a7,339a + 2bf2: 78089a63 bnez a7,3386 if (fw < (stbsp__int32)n) - 2c0a: fffb4313 not t1,s6 - 2c0e: 43f35313 srai t1,t1,0x3f + 2bf6: fffb4313 not t1,s6 + 2bfa: 43f35313 srai t1,t1,0x3f l = 0; - 2c12: d082 sw zero,96(sp) + 2bfe: d082 sw zero,96(sp) if (fw < (stbsp__int32)n) - 2c14: 01637333 and t1,t1,s6 + 2c00: 01637333 and t1,t1,s6 goto scopy; - 2c18: 4701 li a4,0 - 2c1a: 4f81 li t6,0 - 2c1c: 4a01 li s4,0 + 2c04: 4701 li a4,0 + 2c06: 4f81 li t6,0 + 2c08: 4a01 li s4,0 cs = 0; - 2c1e: 4281 li t0,0 + 2c0a: 4281 li t0,0 s = num + STBSP__NUMSZ; - 2c20: 28010a93 addi s5,sp,640 + 2c0c: 28010a93 addi s5,sp,640 if ((fl & STBSP__LEFTJUST) == 0) { - 2c24: 9c0506e3 beqz a0,25f0 + 2c10: 9c0506e3 beqz a0,25dc if (fw + pr) { - 2c28: 00e307bb addw a5,t1,a4 - 2c2c: 9c079fe3 bnez a5,260a - 2c30: 06910793 addi a5,sp,105 - 2c34: b661 j 27bc + 2c14: 00e307bb addw a5,t1,a4 + 2c18: 9c079fe3 bnez a5,25f6 + 2c1c: 06910793 addi a5,sp,105 + 2c20: b661 j 27a8 h = (f[0] == 'E') ? hexu : hex; - 2c36: 04500713 li a4,69 - 2c3a: 00005317 auipc t1,0x5 - 2c3e: 39630313 addi t1,t1,918 # 7fd0 - 2c42: 1ce78ae3 beq a5,a4,3616 + 2c22: 04500713 li a4,69 + 2c26: 00005317 auipc t1,0x5 + 2c2a: 3da30313 addi t1,t1,986 # 8000 + 2c2e: 1ce78ae3 beq a5,a4,3602 fv = va_arg(va, double); - 2c46: 008b8713 addi a4,s7,8 + 2c32: 008b8713 addi a4,s7,8 if (pr == -1) - 2c4a: 57fd li a5,-1 + 2c36: 57fd li a5,-1 fv = va_arg(va, double); - 2c4c: e0ba sd a4,64(sp) - 2c4e: 000bb507 fld fa0,0(s7) + 2c38: e0ba sd a4,64(sp) + 2c3a: 000bb507 fld fa0,0(s7) if (pr == -1) - 2c52: 1af88ce3 beq a7,a5,360a + 2c3e: 1af88ce3 beq a7,a5,35f6 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) - 2c56: 80000737 lui a4,0x80000 - 2c5a: 00e8e733 or a4,a7,a4 - 2c5e: 2701 sext.w a4,a4 - 2c60: 10d4 addi a3,sp,100 - 2c62: 0110 addi a2,sp,128 - 2c64: 108c addi a1,sp,96 - 2c66: 18a8 addi a0,sp,120 - 2c68: f41e sd t2,40(sp) - 2c6a: f01a sd t1,32(sp) - 2c6c: ec72 sd t3,24(sp) - 2c6e: e846 sd a7,16(sp) - 2c70: d8efe0ef jal 11fe - 2c74: 68c2 ld a7,16(sp) - 2c76: 6e62 ld t3,24(sp) - 2c78: 7302 ld t1,32(sp) - 2c7a: 73a2 ld t2,40(sp) + 2c42: 80000737 lui a4,0x80000 + 2c46: 00e8e733 or a4,a7,a4 + 2c4a: 2701 sext.w a4,a4 + 2c4c: 10d4 addi a3,sp,100 + 2c4e: 0110 addi a2,sp,128 + 2c50: 108c addi a1,sp,96 + 2c52: 18a8 addi a0,sp,120 + 2c54: f41e sd t2,40(sp) + 2c56: f01a sd t1,32(sp) + 2c58: ec72 sd t3,24(sp) + 2c5a: e846 sd a7,16(sp) + 2c5c: d8efe0ef jal 11ea + 2c60: 68c2 ld a7,16(sp) + 2c62: 6e62 ld t3,24(sp) + 2c64: 7302 ld t1,32(sp) + 2c66: 73a2 ld t2,40(sp) if (dp == STBSP__SPECIAL) { - 2c7c: 5796 lw a5,100(sp) + 2c68: 5796 lw a5,100(sp) s = (char *)sn; - 2c7e: 7ae6 ld s5,120(sp) + 2c6a: 7ae6 ld s5,120(sp) if ((l - 1) > (stbsp__uint32)pr) - 2c80: 5686 lw a3,96(sp) + 2c6c: 5686 lw a3,96(sp) if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr | 0x80000000)) - 2c82: 3c0511e3 bnez a0,3844 + 2c6e: 3c0511e3 bnez a0,3830 tail[0] = 0; - 2c86: 06010823 sb zero,112(sp) + 2c72: 06010823 sb zero,112(sp) sign[0] = 0; - 2c8a: 06010423 sb zero,104(sp) + 2c76: 06010423 sb zero,104(sp) } else if (fl & STBSP__LEADINGSPACE) { - 2c8e: 004e7713 andi a4,t3,4 - 2c92: 6a070ee3 beqz a4,3b4e + 2c7a: 004e7713 andi a4,t3,4 + 2c7e: 6a070ee3 beqz a4,3b3a sign[0] = 1; - 2c96: 6709 lui a4,0x2 - 2c98: 0705 addi a4,a4,1 # 2001 <_vscanf_core.constprop.0+0x675> - 2c9a: 06e11423 sh a4,104(sp) + 2c82: 6709 lui a4,0x2 + 2c84: 0705 addi a4,a4,1 # 2001 <_vscanf_core.constprop.0+0x689> + 2c86: 06e11423 sh a4,104(sp) if (dp == STBSP__SPECIAL) { - 2c9e: 671d lui a4,0x7 - 2ca0: 1ee794e3 bne a5,a4,3688 + 2c8a: 671d lui a4,0x7 + 2c8c: 1ee794e3 bne a5,a4,3674 if (pr < (stbsp__int32)l) - 2ca4: 0006879b sext.w a5,a3 + 2c90: 0006879b sext.w a5,a3 n = pr + lead[0] + tail[0] + tz; - 2ca8: 06814a03 lbu s4,104(sp) + 2c94: 06814a03 lbu s4,104(sp) if (pr < (stbsp__int32)l) - 2cac: fff7c793 not a5,a5 + 2c98: fff7c793 not a5,a5 n = pr + lead[0] + tail[0] + tz; - 2cb0: 07014f83 lbu t6,112(sp) + 2c9c: 07014f83 lbu t6,112(sp) if (pr < (stbsp__int32)l) - 2cb4: 97fd srai a5,a5,0x3f - 2cb6: 8ff5 and a5,a5,a3 + 2ca0: 97fd srai a5,a5,0x3f + 2ca2: 8ff5 and a5,a5,a3 n = pr + lead[0] + tail[0] + tz; - 2cb8: 00fa073b addw a4,s4,a5 - 2cbc: 01f7063b addw a2,a4,t6 - 2cc0: 8732 mv a4,a2 + 2ca4: 00fa073b addw a4,s4,a5 + 2ca8: 01f7063b addw a2,a4,t6 + 2cac: 8732 mv a4,a2 if ((fl & STBSP__LEFTJUST) == 0) { - 2cc2: 001e7513 andi a0,t3,1 + 2cae: 001e7513 andi a0,t3,1 if (pr < (stbsp__int32)l) - 2cc6: 2781 sext.w a5,a5 + 2cb2: 2781 sext.w a5,a5 if (fw < (stbsp__int32)n) - 2cc8: 835a mv t1,s6 - 2cca: 00cb5363 bge s6,a2,2cd0 - 2cce: 8332 mv t1,a2 + 2cb4: 835a mv t1,s6 + 2cb6: 00cb5363 bge s6,a2,2cbc + 2cba: 8332 mv t1,a2 fw -= n; - 2cd0: 40e3033b subw t1,t1,a4 + 2cbc: 40e3033b subw t1,t1,a4 cs = 0; - 2cd4: 4281 li t0,0 + 2cc0: 4281 li t0,0 pr -= l; - 2cd6: 40d7873b subw a4,a5,a3 + 2cc2: 40d7873b subw a4,a5,a3 tz = 0; - 2cda: 4881 li a7,0 + 2cc6: 4881 li a7,0 goto scopy; - 2cdc: b7a1 j 2c24 + 2cc8: b7a1 j 2c10 h = (f[0] == 'G') ? hexu : hex; - 2cde: 04700713 li a4,71 - 2ce2: 00005317 auipc t1,0x5 - 2ce6: 2ee30313 addi t1,t1,750 # 7fd0 - 2cea: 14e783e3 beq a5,a4,3630 + 2cca: 04700713 li a4,71 + 2cce: 00005317 auipc t1,0x5 + 2cd2: 33230313 addi t1,t1,818 # 8000 + 2cd6: 14e783e3 beq a5,a4,361c fv = va_arg(va, double); - 2cee: 008b8713 addi a4,s7,8 + 2cda: 008b8713 addi a4,s7,8 if (pr == -1) - 2cf2: 57fd li a5,-1 + 2cde: 57fd li a5,-1 fv = va_arg(va, double); - 2cf4: e0ba sd a4,64(sp) - 2cf6: 000bb507 fld fa0,0(s7) + 2ce0: e0ba sd a4,64(sp) + 2ce2: 000bb507 fld fa0,0(s7) if (pr == -1) - 2cfa: 12f884e3 beq a7,a5,3622 + 2ce6: 12f884e3 beq a7,a5,360e else if (pr == 0) - 2cfe: 6e0887e3 beqz a7,3bec + 2cea: 6e0887e3 beqz a7,3bd8 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) - 2d02: fff8871b addiw a4,a7,-1 - 2d06: 800007b7 lui a5,0x80000 - 2d0a: 8f5d or a4,a4,a5 - 2d0c: 2701 sext.w a4,a4 + 2cee: fff8871b addiw a4,a7,-1 + 2cf2: 800007b7 lui a5,0x80000 + 2cf6: 8f5d or a4,a4,a5 + 2cf8: 2701 sext.w a4,a4 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 2d0e: 00088a9b sext.w s5,a7 - 2d12: 8a46 mv s4,a7 + 2cfa: 00088a9b sext.w s5,a7 + 2cfe: 8a46 mv s4,a7 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, (pr - 1) | 0x80000000)) - 2d14: 10d4 addi a3,sp,100 - 2d16: 0110 addi a2,sp,128 - 2d18: 108c addi a1,sp,96 - 2d1a: 18a8 addi a0,sp,120 - 2d1c: f01e sd t2,32(sp) - 2d1e: ec1a sd t1,24(sp) - 2d20: e872 sd t3,16(sp) - 2d22: cdcfe0ef jal 11fe - 2d26: 6e42 ld t3,16(sp) - 2d28: 6362 ld t1,24(sp) - 2d2a: 7382 ld t2,32(sp) - 2d2c: 4281 li t0,0 - 2d2e: c509 beqz a0,2d38 + 2d00: 10d4 addi a3,sp,100 + 2d02: 0110 addi a2,sp,128 + 2d04: 108c addi a1,sp,96 + 2d06: 18a8 addi a0,sp,120 + 2d08: f01e sd t2,32(sp) + 2d0a: ec1a sd t1,24(sp) + 2d0c: e872 sd t3,16(sp) + 2d0e: cdcfe0ef jal 11ea + 2d12: 6e42 ld t3,16(sp) + 2d14: 6362 ld t1,24(sp) + 2d16: 7382 ld t2,32(sp) + 2d18: 4281 li t0,0 + 2d1a: c509 beqz a0,2d24 fl |= STBSP__NEGATIVE; - 2d30: 080e6e13 ori t3,t3,128 - 2d34: 08000293 li t0,128 + 2d1c: 080e6e13 ori t3,t3,128 + 2d20: 08000293 li t0,128 if (l > (stbsp__uint32)pr) - 2d38: 5806 lw a6,96(sp) - 2d3a: 010af463 bgeu s5,a6,2d42 + 2d24: 5806 lw a6,96(sp) + 2d26: 010af463 bgeu s5,a6,2d2e l = pr; - 2d3e: d0d6 sw s5,96(sp) - 2d40: 8856 mv a6,s5 + 2d2a: d0d6 sw s5,96(sp) + 2d2c: 8856 mv a6,s5 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2d42: 4705 li a4,1 + 2d2e: 4705 li a4,1 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 2d44: 5796 lw a5,100(sp) + 2d30: 5796 lw a5,100(sp) while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2d46: 01076463 bltu a4,a6,2d4e - 2d4a: 1800106f j 3eca - 2d4e: 7be6 ld s7,120(sp) - 2d50: fff8071b addiw a4,a6,-1 - 2d54: 1702 slli a4,a4,0x20 - 2d56: 9301 srli a4,a4,0x20 - 2d58: 001a0e9b addiw t4,s4,1 - 2d5c: 75e2 ld a1,56(sp) - 2d5e: 8ade mv s5,s7 - 2d60: 975e add a4,a4,s7 - 2d62: 410e8ebb subw t4,t4,a6 - 2d66: 88d2 mv a7,s4 - 2d68: 86c2 mv a3,a6 - 2d6a: 4f01 li t5,0 - 2d6c: 03000f93 li t6,48 - 2d70: e842 sd a6,16(sp) - 2d72: a809 j 2d84 + 2d32: 01076463 bltu a4,a6,2d3a + 2d36: 1800106f j 3eb6 + 2d3a: 7be6 ld s7,120(sp) + 2d3c: fff8071b addiw a4,a6,-1 + 2d40: 1702 slli a4,a4,0x20 + 2d42: 9301 srli a4,a4,0x20 + 2d44: 001a0e9b addiw t4,s4,1 + 2d48: 75e2 ld a1,56(sp) + 2d4a: 8ade mv s5,s7 + 2d4c: 975e add a4,a4,s7 + 2d4e: 410e8ebb subw t4,t4,a6 + 2d52: 88d2 mv a7,s4 + 2d54: 86c2 mv a3,a6 + 2d56: 4f01 li t5,0 + 2d58: 03000f93 li t6,48 + 2d5c: e842 sd a6,16(sp) + 2d5e: a809 j 2d70 --pr; - 2d74: 38fd addiw a7,a7,-1 + 2d60: 38fd addiw a7,a7,-1 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2d76: 211e80e3 beq t4,a7,3776 - 2d7a: 177d addi a4,a4,-1 # 6fff - 2d7c: 4f05 li t5,1 - 2d7e: 1e088ce3 beqz a7,3776 + 2d62: 211e80e3 beq t4,a7,3762 + 2d66: 177d addi a4,a4,-1 # 6fff + 2d68: 4f05 li t5,1 + 2d6a: 1e088ce3 beqz a7,3762 --l; - 2d82: 85b6 mv a1,a3 + 2d6e: 85b6 mv a1,a3 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2d84: 00074803 lbu a6,0(a4) - 2d88: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff71bf> - 2d8c: 0006851b sext.w a0,a3 - 2d90: 2581 sext.w a1,a1 - 2d92: 0006069b sext.w a3,a2 - 2d96: fdf80fe3 beq a6,t6,2d74 - 2d9a: 6842 ld a6,16(sp) - 2d9c: fc2e sd a1,56(sp) - 2d9e: 86c2 mv a3,a6 - 2da0: 000f0463 beqz t5,2da8 - 2da4: d0ae sw a1,96(sp) - 2da6: 86ae mv a3,a1 + 2d70: 00074803 lbu a6,0(a4) + 2d74: fff6861b addiw a2,a3,-1 # ffffff <_ZSt4cerr+0xff718f> + 2d78: 0006851b sext.w a0,a3 + 2d7c: 2581 sext.w a1,a1 + 2d7e: 0006069b sext.w a3,a2 + 2d82: fdf80fe3 beq a6,t6,2d60 + 2d86: 6842 ld a6,16(sp) + 2d88: fc2e sd a1,56(sp) + 2d8a: 86c2 mv a3,a6 + 2d8c: 000f0463 beqz t5,2d94 + 2d90: d0ae sw a1,96(sp) + 2d92: 86ae mv a3,a1 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 2da8: 5775 li a4,-3 - 2daa: 08e7cee3 blt a5,a4,3646 - 2dae: 08fa4be3 blt s4,a5,3644 + 2d94: 5775 li a4,-3 + 2d96: 08e7cee3 blt a5,a4,3632 + 2d9a: 08fa4be3 blt s4,a5,3630 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 2db2: 0005071b sext.w a4,a0 + 2d9e: 0005071b sext.w a4,a0 if (dp > 0) { - 2db6: 7ef057e3 blez a5,3da4 + 2da2: 7ef057e3 blez a5,3d90 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 2dba: 4881 li a7,0 - 2dbc: 00e7d463 bge a5,a4,2dc4 - 2dc0: 40f508bb subw a7,a0,a5 + 2da6: 4881 li a7,0 + 2da8: 00e7d463 bge a5,a4,2db0 + 2dac: 40f508bb subw a7,a0,a5 tail[0] = 0; - 2dc4: 06010823 sb zero,112(sp) + 2db0: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 2dc8: 20029463 bnez t0,2fd0 + 2db4: 20029463 bnez t0,2fbc } else if (fl & STBSP__LEADINGSPACE) { - 2dcc: 004e7713 andi a4,t3,4 - 2dd0: 000715e3 bnez a4,35da + 2db8: 004e7713 andi a4,t3,4 + 2dbc: 000715e3 bnez a4,35c6 } else if (fl & STBSP__LEADINGPLUS) { - 2dd4: 002e7713 andi a4,t3,2 - 2dd8: 660719e3 bnez a4,3c4a + 2dc0: 002e7713 andi a4,t3,2 + 2dc4: 660719e3 bnez a4,3c36 sign[0] = 0; - 2ddc: 06010423 sb zero,104(sp) - 2de0: aaed j 2fda + 2dc8: 06010423 sb zero,104(sp) + 2dcc: aaed j 2fc6 h = (f[0] == 'A') ? hexu : hex; - 2de2: 04100713 li a4,65 - 2de6: 00005597 auipc a1,0x5 - 2dea: 1ea58593 addi a1,a1,490 # 7fd0 - 2dee: 00e783e3 beq a5,a4,35f4 + 2dce: 04100713 li a4,65 + 2dd2: 00005597 auipc a1,0x5 + 2dd6: 22e58593 addi a1,a1,558 # 8000 + 2dda: 00e783e3 beq a5,a4,35e0 fv = va_arg(va, double); - 2df2: 008b8693 addi a3,s7,8 + 2dde: 008b8693 addi a3,s7,8 if (pr == -1) - 2df6: 577d li a4,-1 + 2de2: 577d li a4,-1 fv = va_arg(va, double); - 2df8: e0b6 sd a3,64(sp) - 2dfa: 000bb783 ld a5,0(s7) + 2de4: e0b6 sd a3,64(sp) + 2de6: 000bb783 ld a5,0(s7) if (pr == -1) - 2dfe: 7ee88963 beq a7,a4,35f0 + 2dea: 7ee88963 beq a7,a4,35dc d = value; STBSP__COPYFP(b, d); *bits = b & ((((stbsp__uint64)1) << 52) - 1); *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); - 2e02: 4347d613 srai a2,a5,0x34 + 2dee: 4347d613 srai a2,a5,0x34 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 2e06: 00c79513 slli a0,a5,0xc + 2df2: 00c79513 slli a0,a5,0xc *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); - 2e0a: 7ff67613 andi a2,a2,2047 + 2df6: 7ff67613 andi a2,a2,2047 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 2e0e: 8131 srli a0,a0,0xc + 2dfa: 8131 srli a0,a0,0xc *expo = (stbsp__int32)(((b >> 52) & 2047) - 1023); - 2e10: c016061b addiw a2,a2,-1023 + 2dfc: c016061b addiw a2,a2,-1023 if (stbsp__real_to_parts((stbsp__int64 *)&n64, &dp, fv)) - 2e14: 7a07c863 bltz a5,35c4 + 2e00: 7a07c863 bltz a5,35b0 } else if (fl & STBSP__LEADINGSPACE) { - 2e18: 004e7793 andi a5,t3,4 - 2e1c: 60078ee3 beqz a5,3c38 - 2e20: 6789 lui a5,0x2 - 2e22: 2785 addiw a5,a5,1 # 2001 <_vscanf_core.constprop.0+0x675> + 2e04: 004e7793 andi a5,t3,4 + 2e08: 60078ee3 beqz a5,3c24 + 2e0c: 6789 lui a5,0x2 + 2e0e: 2785 addiw a5,a5,1 # 2001 <_vscanf_core.constprop.0+0x689> sign[0] = 1; - 2e24: 06f11423 sh a5,104(sp) - 2e28: 468d li a3,3 - 2e2a: 4a0d li s4,3 - 2e2c: 4809 li a6,2 + 2e10: 06f11423 sh a5,104(sp) + 2e14: 468d li a3,3 + 2e16: 4a0d li s4,3 + 2e18: 4809 li a6,2 n64 |= (((stbsp__uint64)1) << 52); - 2e2e: 4705 li a4,1 - 2e30: 1752 slli a4,a4,0x34 + 2e1a: 4705 li a4,1 + 2e1c: 1752 slli a4,a4,0x34 if (dp == -1023) - 2e32: c0100793 li a5,-1023 + 2e1e: c0100793 li a5,-1023 n64 |= (((stbsp__uint64)1) << 52); - 2e36: 8f49 or a4,a4,a0 + 2e22: 8f49 or a4,a4,a0 if (dp == -1023) - 2e38: 5cf600e3 beq a2,a5,3bf8 + 2e24: 5cf600e3 beq a2,a5,3be4 if (pr < 15) - 2e3c: 4539 li a0,14 + 2e28: 4539 li a0,14 n64 <<= (64 - 56); - 2e3e: 00871793 slli a5,a4,0x8 + 2e2a: 00871793 slli a5,a4,0x8 if (pr < 15) - 2e42: 251546e3 blt a0,a7,388e + 2e2e: 251546e3 blt a0,a7,387a n64 += ((((stbsp__uint64)8) << 56) >> (pr * 4)); - 2e46: 4705 li a4,1 - 2e48: 0028951b slliw a0,a7,0x2 - 2e4c: 176e slli a4,a4,0x3b - 2e4e: 00a75733 srl a4,a4,a0 - 2e52: 973e add a4,a4,a5 + 2e32: 4705 li a4,1 + 2e34: 0028951b slliw a0,a7,0x2 + 2e38: 176e slli a4,a4,0x3b + 2e3a: 00a75733 srl a4,a4,a0 + 2e3e: 973e add a4,a4,a5 *s++ = h[(n64 >> 60) & 15]; - 2e54: 03c75793 srli a5,a4,0x3c - 2e58: 97ae add a5,a5,a1 - 2e5a: 0007c503 lbu a0,0(a5) + 2e40: 03c75793 srli a5,a4,0x3c + 2e44: 97ae add a5,a5,a1 + 2e46: 0007c503 lbu a0,0(a5) lead[1 + lead[0]] = '0'; - 2e5e: 22080793 addi a5,a6,544 - 2e62: 06010813 addi a6,sp,96 - 2e66: 97c2 add a5,a5,a6 - 2e68: 03000813 li a6,48 - 2e6c: df078423 sb a6,-536(a5) + 2e4a: 22080793 addi a5,a6,544 + 2e4e: 06010813 addi a6,sp,96 + 2e52: 97c2 add a5,a5,a6 + 2e54: 03000813 li a6,48 + 2e58: df078423 sb a6,-536(a5) lead[2 + lead[0]] = 'x'; - 2e70: 22068793 addi a5,a3,544 - 2e74: 1094 addi a3,sp,96 - 2e76: 96be add a3,a3,a5 - 2e78: 07800793 li a5,120 - 2e7c: def68423 sb a5,-536(a3) + 2e5c: 22068793 addi a5,a3,544 + 2e60: 1094 addi a3,sp,96 + 2e62: 96be add a3,a3,a5 + 2e64: 07800793 li a5,120 + 2e68: def68423 sb a5,-536(a3) lead[0] += 2; - 2e80: 07410423 sb s4,104(sp) + 2e6c: 07410423 sb s4,104(sp) *s++ = h[(n64 >> 60) & 15]; - 2e84: 0ca10023 sb a0,192(sp) + 2e70: 0ca10023 sb a0,192(sp) if (pr) - 2e88: 740893e3 bnez a7,3dce + 2e74: 740893e3 bnez a7,3dba sn = s; - 2e8c: 0c110793 addi a5,sp,193 - 2e90: fcbe sd a5,120(sp) - 2e92: 4701 li a4,0 - 2e94: 4501 li a0,0 - 2e96: 4305 li t1,1 - 2e98: 4685 li a3,1 + 2e78: 0c110793 addi a5,sp,193 + 2e7c: fcbe sd a5,120(sp) + 2e7e: 4701 li a4,0 + 2e80: 4501 li a0,0 + 2e82: 4305 li t1,1 + 2e84: 4685 li a3,1 tail[1] = h[17]; - 2e9a: 0115c583 lbu a1,17(a1) + 2e86: 0115c583 lbu a1,17(a1) tail[2] = '+'; - 2e9e: 02b00793 li a5,43 + 2e8a: 02b00793 li a5,43 tail[1] = h[17]; - 2ea2: 06b108a3 sb a1,113(sp) + 2e8e: 06b108a3 sb a1,113(sp) if (dp < 0) { - 2ea6: 00065663 bgez a2,2eb2 + 2e92: 00065663 bgez a2,2e9e dp = -dp; - 2eaa: 40c0063b negw a2,a2 + 2e96: 40c0063b negw a2,a2 tail[2] = '-'; - 2eae: 02d00793 li a5,45 + 2e9a: 02d00793 li a5,45 tail[n] = '0' + dp % 10; - 2eb2: 4829 li a6,10 - 2eb4: 030665bb remw a1,a2,a6 - 2eb8: 06f10923 sb a5,114(sp) + 2e9e: 4829 li a6,10 + 2ea0: 030665bb remw a1,a2,a6 + 2ea4: 06f10923 sb a5,114(sp) n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 2ebc: 3e700e93 li t4,999 + 2ea8: 3e700e93 li t4,999 tail[n] = '0' + dp % 10; - 2ec0: 0305859b addiw a1,a1,48 - 2ec4: 0ff5f593 zext.b a1,a1 + 2eac: 0305859b addiw a1,a1,48 + 2eb0: 0ff5f593 zext.b a1,a1 n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 2ec8: 18cec3e3 blt t4,a2,384e - 2ecc: 06300e93 li t4,99 - 2ed0: 54cec1e3 blt t4,a2,3c12 - 2ed4: 4ea5 li t4,9 - 2ed6: 72ced6e3 bge t4,a2,3e02 + 2eb4: 18cec3e3 blt t4,a2,383a + 2eb8: 06300e93 li t4,99 + 2ebc: 54cec1e3 blt t4,a2,3bfe + 2ec0: 4ea5 li t4,9 + 2ec2: 72ced6e3 bge t4,a2,3dee dp /= 10; - 2eda: 030647bb divw a5,a2,a6 + 2ec6: 030647bb divw a5,a2,a6 tail[0] = (char)n; - 2ede: 4611 li a2,4 - 2ee0: 06c10823 sb a2,112(sp) + 2eca: 4611 li a2,4 + 2ecc: 06c10823 sb a2,112(sp) tail[n] = '0' + dp % 10; - 2ee4: 06b10a23 sb a1,116(sp) - 2ee8: 4811 li a6,4 - 2eea: 4f91 li t6,4 - 2eec: 0307879b addiw a5,a5,48 - 2ef0: 06f109a3 sb a5,115(sp) + 2ed0: 06b10a23 sb a1,116(sp) + 2ed4: 4811 li a6,4 + 2ed6: 4f91 li t6,4 + 2ed8: 0307879b addiw a5,a5,48 + 2edc: 06f109a3 sb a5,115(sp) n = pr + lead[0] + tail[0] + tz; - 2ef4: 006a07bb addw a5,s4,t1 - 2ef8: 010787bb addw a5,a5,a6 - 2efc: 0117863b addw a2,a5,a7 + 2ee0: 006a07bb addw a5,s4,t1 + 2ee4: 010787bb addw a5,a5,a6 + 2ee8: 0117863b addw a2,a5,a7 dp = (int)(s - sn); - 2f00: d2aa sw a0,100(sp) + 2eec: d2aa sw a0,100(sp) l = (int)(s - (num + 64)); - 2f02: d0b6 sw a3,96(sp) + 2eee: d0b6 sw a3,96(sp) n = pr + lead[0] + tail[0] + tz; - 2f04: 87b2 mv a5,a2 + 2ef0: 87b2 mv a5,a2 if ((fl & STBSP__LEFTJUST) == 0) { - 2f06: 001e7513 andi a0,t3,1 + 2ef2: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 2f0a: 835a mv t1,s6 - 2f0c: 00cb5363 bge s6,a2,2f12 - 2f10: 8332 mv t1,a2 + 2ef6: 835a mv t1,s6 + 2ef8: 00cb5363 bge s6,a2,2efe + 2efc: 8332 mv t1,a2 cs = 1 + (3 << 24); - 2f12: 030002b7 lui t0,0x3000 + 2efe: 030002b7 lui t0,0x3000 fw -= n; - 2f16: 40f3033b subw t1,t1,a5 + 2f02: 40f3033b subw t1,t1,a5 cs = 1 + (3 << 24); - 2f1a: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff71c1> + 2f06: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff7191> s = num + 64; - 2f1c: 0c010a93 addi s5,sp,192 + 2f08: 0c010a93 addi s5,sp,192 goto scopy; - 2f20: b311 j 2c24 + 2f0c: b311 j 2c10 h = (f[0] == 'B') ? hexu : hex; - 2f22: 04200713 li a4,66 - 2f26: 00005817 auipc a6,0x5 - 2f2a: 0aa80813 addi a6,a6,170 # 7fd0 - 2f2e: 6ce78963 beq a5,a4,3600 + 2f0e: 04200713 li a4,66 + 2f12: 00005817 auipc a6,0x5 + 2f16: 0ee80813 addi a6,a6,238 # 8000 + 2f1a: 6ce78963 beq a5,a4,35ec if (fl & STBSP__LEADING_0X) { - 2f32: 008e7793 andi a5,t3,8 - 2f36: 66079e63 bnez a5,35b2 + 2f1e: 008e7793 andi a5,t3,8 + 2f22: 66079e63 bnez a5,359e lead[0] = 0; - 2f3a: 06010423 sb zero,104(sp) + 2f26: 06010423 sb zero,104(sp) l = (8 << 4) | (1 << 8); - 2f3e: 18000793 li a5,384 - 2f42: d0be sw a5,96(sp) + 2f2a: 18000793 li a5,384 + 2f2e: d0be sw a5,96(sp) if (fl & STBSP__INTMAX) { - 2f44: 020e7713 andi a4,t3,32 + 2f30: 020e7713 andi a4,t3,32 goto radixnum; - 2f48: b979 j 2be6 + 2f34: b979 j 2bd2 *s = (char)va_arg(va, int); - 2f4a: 000ba783 lw a5,0(s7) + 2f36: 000ba783 lw a5,0(s7) l = 1; - 2f4e: 4705 li a4,1 - 2f50: d0ba sw a4,96(sp) + 2f3a: 4705 li a4,1 + 2f3c: d0ba sw a4,96(sp) *s = (char)va_arg(va, int); - 2f52: 26f10fa3 sb a5,639(sp) - 2f56: 008b8793 addi a5,s7,8 + 2f3e: 26f10fa3 sb a5,639(sp) + 2f42: 008b8793 addi a5,s7,8 lead[0] = 0; - 2f5a: 06010423 sb zero,104(sp) + 2f46: 06010423 sb zero,104(sp) tail[0] = 0; - 2f5e: 06010823 sb zero,112(sp) + 2f4a: 06010823 sb zero,112(sp) dp = 0; - 2f62: d282 sw zero,100(sp) + 2f4e: d282 sw zero,100(sp) *s = (char)va_arg(va, int); - 2f64: e0be sd a5,64(sp) + 2f50: e0be sd a5,64(sp) if ((fl & STBSP__LEFTJUST) == 0) { - 2f66: 001e7513 andi a0,t3,1 + 2f52: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 2f6a: 835a mv t1,s6 - 2f6c: 69605063 blez s6,35ec + 2f56: 835a mv t1,s6 + 2f58: 69605063 blez s6,35d8 fw -= n; - 2f70: 337d addiw t1,t1,-1 + 2f5c: 337d addiw t1,t1,-1 goto scopy; - 2f72: 4701 li a4,0 - 2f74: 4f81 li t6,0 - 2f76: 4685 li a3,1 - 2f78: 4a01 li s4,0 + 2f5e: 4701 li a4,0 + 2f60: 4f81 li t6,0 + 2f62: 4685 li a3,1 + 2f64: 4a01 li s4,0 cs = 0; - 2f7a: 4281 li t0,0 + 2f66: 4281 li t0,0 s = num + STBSP__NUMSZ - 1; - 2f7c: 27f10a93 addi s5,sp,639 + 2f68: 27f10a93 addi s5,sp,639 tz = 0; - 2f80: 4881 li a7,0 + 2f6c: 4881 li a7,0 goto scopy; - 2f82: b14d j 2c24 + 2f6e: b14d j 2c10 fv = va_arg(va, double); - 2f84: 008b8713 addi a4,s7,8 + 2f70: 008b8713 addi a4,s7,8 if (fl & STBSP__METRIC_SUFFIX) { - 2f88: 100e7793 andi a5,t3,256 + 2f74: 100e7793 andi a5,t3,256 fv = va_arg(va, double); - 2f8c: e0ba sd a4,64(sp) - 2f8e: 000bb507 fld fa0,0(s7) + 2f78: e0ba sd a4,64(sp) + 2f7a: 000bb507 fld fa0,0(s7) if (fl & STBSP__METRIC_SUFFIX) { - 2f92: be0795e3 bnez a5,2b7c + 2f7e: be0795e3 bnez a5,2b68 if (pr == -1) - 2f96: 57fd li a5,-1 + 2f82: 57fd li a5,-1 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) - 2f98: 0008871b sext.w a4,a7 + 2f84: 0008871b sext.w a4,a7 if (pr == -1) - 2f9c: 00f89463 bne a7,a5,2fa4 - 2fa0: 4719 li a4,6 + 2f88: 00f89463 bne a7,a5,2f90 + 2f8c: 4719 li a4,6 pr = 6; // default is 6 - 2fa2: 4899 li a7,6 + 2f8e: 4899 li a7,6 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) - 2fa4: 10d4 addi a3,sp,100 - 2fa6: 0110 addi a2,sp,128 - 2fa8: 108c addi a1,sp,96 - 2faa: 18a8 addi a0,sp,120 - 2fac: f01e sd t2,32(sp) - 2fae: ec72 sd t3,24(sp) - 2fb0: e846 sd a7,16(sp) - 2fb2: a4cfe0ef jal 11fe - 2fb6: 6e62 ld t3,24(sp) - 2fb8: 68c2 ld a7,16(sp) - 2fba: 7382 ld t2,32(sp) + 2f90: 10d4 addi a3,sp,100 + 2f92: 0110 addi a2,sp,128 + 2f94: 108c addi a1,sp,96 + 2f96: 18a8 addi a0,sp,120 + 2f98: f01e sd t2,32(sp) + 2f9a: ec72 sd t3,24(sp) + 2f9c: e846 sd a7,16(sp) + 2f9e: a4cfe0ef jal 11ea + 2fa2: 6e62 ld t3,24(sp) + 2fa4: 68c2 ld a7,16(sp) + 2fa6: 7382 ld t2,32(sp) if (dp == STBSP__SPECIAL) { - 2fbc: 5796 lw a5,100(sp) + 2fa8: 5796 lw a5,100(sp) if ((stbsp__int32)(l + n) > pr) - 2fbe: 5686 lw a3,96(sp) + 2faa: 5686 lw a3,96(sp) if (fl & STBSP__NEGATIVE) { - 2fc0: 080e7293 andi t0,t3,128 + 2fac: 080e7293 andi t0,t3,128 if (stbsp__real_to_str(&sn, &l, num, &dp, fv, pr)) - 2fc4: e00500e3 beqz a0,2dc4 + 2fb0: e00500e3 beqz a0,2db0 fl |= STBSP__NEGATIVE; - 2fc8: 080e6e13 ori t3,t3,128 + 2fb4: 080e6e13 ori t3,t3,128 tail[0] = 0; - 2fcc: 06010823 sb zero,112(sp) + 2fb8: 06010823 sb zero,112(sp) sign[0] = 1; - 2fd0: 670d lui a4,0x3 - 2fd2: d0170713 addi a4,a4,-767 # 2d01 - 2fd6: 06e11423 sh a4,104(sp) + 2fbc: 670d lui a4,0x3 + 2fbe: d0170713 addi a4,a4,-767 # 2d01 + 2fc2: 06e11423 sh a4,104(sp) if (dp == STBSP__SPECIAL) { - 2fda: 671d lui a4,0x7 - 2fdc: 7ce78963 beq a5,a4,37ae + 2fc6: 671d lui a4,0x7 + 2fc8: 7ce78963 beq a5,a4,379a if (dp <= 0) { - 2fe0: 46f05fe3 blez a5,3c5e + 2fcc: 46f05fe3 blez a5,3c4a cs = (fl & STBSP__TRIPLET_COMMA) ? ((600 - (stbsp__uint32)dp) % 3) : 0; - 2fe4: 040e7313 andi t1,t3,64 - 2fe8: 00078e9b sext.w t4,a5 - 2fec: 4581 li a1,0 - 2fee: 00030963 beqz t1,3000 - 2ff2: 25800593 li a1,600 - 2ff6: 41d585bb subw a1,a1,t4 - 2ffa: 470d li a4,3 - 2ffc: 02e5f5bb remuw a1,a1,a4 + 2fd0: 040e7313 andi t1,t3,64 + 2fd4: 00078e9b sext.w t4,a5 + 2fd8: 4581 li a1,0 + 2fda: 00030963 beqz t1,2fec + 2fde: 25800593 li a1,600 + 2fe2: 41d585bb subw a1,a1,t4 + 2fe6: 470d li a4,3 + 2fe8: 02e5f5bb remuw a1,a1,a4 *s++ = stbsp__comma; - 3000: 00005a17 auipc s4,0x5 - 3004: ee8a0a13 addi s4,s4,-280 # 7ee8 + 2fec: 00005a17 auipc s4,0x5 + 2ff0: f2ca0a13 addi s4,s4,-212 # 7f18 s = (char *)sn; - 3008: 7f66 ld t5,120(sp) + 2ff4: 7f66 ld t5,120(sp) *s++ = stbsp__comma; - 300a: 0cda4283 lbu t0,205(s4) + 2ff6: 0cda4283 lbu t0,205(s4) s = num + 64; - 300e: 0c010a93 addi s5,sp,192 + 2ffa: 0c010a93 addi s5,sp,192 if ((stbsp__uint32)dp >= l) { - 3012: 44defb63 bgeu t4,a3,3468 + 2ffe: 44defb63 bgeu t4,a3,3454 n = 0; - 3016: 4501 li a0,0 + 3002: 4501 li a0,0 s = num + 64; - 3018: 8756 mv a4,s5 + 3004: 8756 mv a4,s5 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 301a: 4b91 li s7,4 - 301c: a015 j 3040 - 301e: 8642 mv a2,a6 - 3020: 883a mv a6,a4 - 3022: 8732 mv a4,a2 + 3006: 4b91 li s7,4 + 3008: a015 j 302c + 300a: 8642 mv a2,a6 + 300c: 883a mv a6,a4 + 300e: 8732 mv a4,a2 *s++ = sn[n]; - 3024: 02051613 slli a2,a0,0x20 - 3028: 9201 srli a2,a2,0x20 - 302a: 967a add a2,a2,t5 - 302c: 00064f83 lbu t6,0(a2) + 3010: 02051613 slli a2,a0,0x20 + 3014: 9201 srli a2,a2,0x20 + 3016: 967a add a2,a2,t5 + 3018: 00064f83 lbu t6,0(a2) ++n; - 3030: 0015061b addiw a2,a0,1 - 3034: 0006051b sext.w a0,a2 + 301c: 0015061b addiw a2,a0,1 + 3020: 0006051b sext.w a0,a2 *s++ = sn[n]; - 3038: fff70fa3 sb t6,-1(a4) # 6fff + 3024: fff70fa3 sb t6,-1(a4) # 6fff if (n >= (stbsp__uint32)dp) - 303c: 7bd57563 bgeu a0,t4,37e6 + 3028: 7bd57563 bgeu a0,t4,37d2 *s++ = stbsp__comma; - 3040: 00170813 addi a6,a4,1 + 302c: 00170813 addi a6,a4,1 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3044: fc030de3 beqz t1,301e - 3048: 2585 addiw a1,a1,1 - 304a: fd759ae3 bne a1,s7,301e + 3030: fc030de3 beqz t1,300a + 3034: 2585 addiw a1,a1,1 + 3036: fd759ae3 bne a1,s7,300a *s++ = stbsp__comma; - 304e: fe580fa3 sb t0,-1(a6) - 3052: 0709 addi a4,a4,2 + 303a: fe580fa3 sb t0,-1(a6) + 303e: 0709 addi a4,a4,2 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3054: 4585 li a1,1 - 3056: b7f9 j 3024 + 3040: 4585 li a1,1 + 3042: b7f9 j 3010 *d = tlen + (int)(bf - buf); - 3058: 000bb703 ld a4,0(s7) - 305c: 412407b3 sub a5,s0,s2 - 3060: 01a787bb addw a5,a5,s10 + 3044: 000bb703 ld a4,0(s7) + 3048: 412407b3 sub a5,s0,s2 + 304c: 01a787bb addw a5,a5,s10 int *d = va_arg(va, int *); - 3064: 008b8693 addi a3,s7,8 - 3068: e0b6 sd a3,64(sp) + 3050: 008b8693 addi a3,s7,8 + 3054: e0b6 sd a3,64(sp) *d = tlen + (int)(bf - buf); - 306a: c31c sw a5,0(a4) + 3056: c31c sw a5,0(a4) } break; - 306c: bae5 j 2a64 + 3058: bae5 j 2a50 if (fl & STBSP__LEADING_0X) { - 306e: 008e7793 andi a5,t3,8 - 3072: 50079b63 bnez a5,3588 + 305a: 008e7793 andi a5,t3,8 + 305e: 50079b63 bnez a5,3574 lead[0] = 0; - 3076: 06010423 sb zero,104(sp) + 3062: 06010423 sb zero,104(sp) l = (3 << 4) | (3 << 8); - 307a: 33000793 li a5,816 - 307e: d0be sw a5,96(sp) + 3066: 33000793 li a5,816 + 306a: d0be sw a5,96(sp) if (fl & STBSP__INTMAX) { - 3080: 020e7713 andi a4,t3,32 + 306c: 020e7713 andi a4,t3,32 h = hexu; - 3084: 00005817 auipc a6,0x5 - 3088: f3480813 addi a6,a6,-204 # 7fb8 + 3070: 00005817 auipc a6,0x5 + 3074: f7880813 addi a6,a6,-136 # 7fe8 goto radixnum; - 308c: bea9 j 2be6 + 3078: bea9 j 2bd2 fl &= ~STBSP__LEADINGZERO; // 'p' only prints the pointer with zeros - 308e: fefe7e13 andi t3,t3,-17 - 3092: 020e6e13 ori t3,t3,32 - 3096: 02000713 li a4,32 + 307a: fefe7e13 andi t3,t3,-17 + 307e: 020e6e13 ori t3,t3,32 + 3082: 02000713 li a4,32 pr = sizeof(void *) * 2; - 309a: 48c1 li a7,16 + 3086: 48c1 li a7,16 h = (f[0] == 'X') ? hexu : hex; - 309c: 00005817 auipc a6,0x5 - 30a0: f3480813 addi a6,a6,-204 # 7fd0 - 30a4: be05 j 2bd4 + 3088: 00005817 auipc a6,0x5 + 308c: f7880813 addi a6,a6,-136 # 8000 + 3090: be05 j 2bc0 s = va_arg(va, char *); - 30a6: 000bba83 ld s5,0(s7) - 30aa: 008b8793 addi a5,s7,8 - 30ae: e0be sd a5,64(sp) + 3092: 000bba83 ld s5,0(s7) + 3096: 008b8793 addi a5,s7,8 + 309a: e0be sd a5,64(sp) if (s == 0) - 30b0: 360a8ee3 beqz s5,3c2c + 309c: 360a8ee3 beqz s5,3c18 if (((stbsp__uintptr)sn & 3) == 0) - 30b4: 003af793 andi a5,s5,3 + 30a0: 003af793 andi a5,s5,3 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 30b8: 5208c663 bltz a7,35e4 - 30bc: 0008869b sext.w a3,a7 + 30a4: 5208c663 bltz a7,35d0 + 30a8: 0008869b sext.w a3,a7 if (((stbsp__uintptr)sn & 3) == 0) - 30c0: 2a0782e3 beqz a5,3b64 + 30ac: 2a0782e3 beqz a5,3b50 if (!limit || *sn == 0) - 30c4: 5a068b63 beqz a3,367a + 30b0: 5a068b63 beqz a3,3666 if (((stbsp__uintptr)sn & 3) == 0) - 30c8: 87d6 mv a5,s5 - 30ca: a801 j 30da + 30b4: 87d6 mv a5,s5 + 30b6: a801 j 30c6 ++sn; - 30cc: 0785 addi a5,a5,1 + 30b8: 0785 addi a5,a5,1 if (((stbsp__uintptr)sn & 3) == 0) - 30ce: 0037f713 andi a4,a5,3 + 30ba: 0037f713 andi a4,a5,3 --limit; - 30d2: 36fd addiw a3,a3,-1 + 30be: 36fd addiw a3,a3,-1 if (((stbsp__uintptr)sn & 3) == 0) - 30d4: 280709e3 beqz a4,3b66 + 30c0: 280709e3 beqz a4,3b52 if (!limit || *sn == 0) - 30d8: c681 beqz a3,30e0 - 30da: 0007c703 lbu a4,0(a5) - 30de: f77d bnez a4,30cc + 30c4: c681 beqz a3,30cc + 30c6: 0007c703 lbu a4,0(a5) + 30ca: f77d bnez a4,30b8 return (stbsp__uint32)(sn - s); - 30e0: 415787b3 sub a5,a5,s5 - 30e4: 0007869b sext.w a3,a5 + 30cc: 415787b3 sub a5,a5,s5 + 30d0: 0007869b sext.w a3,a5 if (pr < (stbsp__int32)l) - 30e8: fff6c713 not a4,a3 - 30ec: 977d srai a4,a4,0x3f - 30ee: 8f7d and a4,a4,a5 - 30f0: 0007079b sext.w a5,a4 + 30d4: fff6c713 not a4,a3 + 30d8: 977d srai a4,a4,0x3f + 30da: 8f7d and a4,a4,a5 + 30dc: 0007079b sext.w a5,a4 n = pr + lead[0] + tail[0] + tz; - 30f4: 863e mv a2,a5 + 30e0: 863e mv a2,a5 pr -= l; - 30f6: 9f15 subw a4,a4,a3 + 30e2: 9f15 subw a4,a4,a3 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 30f8: d0b6 sw a3,96(sp) + 30e4: d0b6 sw a3,96(sp) lead[0] = 0; - 30fa: 06010423 sb zero,104(sp) + 30e6: 06010423 sb zero,104(sp) tail[0] = 0; - 30fe: 06010823 sb zero,112(sp) + 30ea: 06010823 sb zero,112(sp) dp = 0; - 3102: d282 sw zero,100(sp) + 30ee: d282 sw zero,100(sp) if ((fl & STBSP__LEFTJUST) == 0) { - 3104: 001e7513 andi a0,t3,1 + 30f0: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 3108: 835a mv t1,s6 - 310a: 00fb5363 bge s6,a5,3110 - 310e: 833e mv t1,a5 + 30f4: 835a mv t1,s6 + 30f6: 00fb5363 bge s6,a5,30fc + 30fa: 833e mv t1,a5 fw -= n; - 3110: 40c3033b subw t1,t1,a2 + 30fc: 40c3033b subw t1,t1,a2 goto scopy; - 3114: 4f81 li t6,0 - 3116: 4a01 li s4,0 + 3100: 4f81 li t6,0 + 3102: 4a01 li s4,0 cs = 0; - 3118: 4281 li t0,0 + 3104: 4281 li t0,0 tz = 0; - 311a: 4881 li a7,0 + 3106: 4881 li a7,0 goto scopy; - 311c: b621 j 2c24 + 3108: b621 j 2c10 *bf++ = stbsp__comma; - 311e: 87b2 mv a5,a2 + 310a: 87b2 mv a5,a2 cs = 0; - 3120: 4a01 li s4,0 - 3122: e44ff06f j 2766 + 310c: 4a01 li s4,0 + 310e: e44ff06f j 2752 lead[0] -= (char)i; - 3126: 06010423 sb zero,104(sp) + 3112: 06010423 sb zero,104(sp) while (i) { - 312a: d38ff06f j 2662 + 3116: d38ff06f j 264e lead[0] -= (char)i; - 312e: 06010423 sb zero,104(sp) + 311a: 06010423 sb zero,104(sp) while (i) { - 3132: ed8ff06f j 280a + 311e: ed8ff06f j 27f6 while (i >= 4) { - 3136: 06fadc63 bge s5,a5,31ae + 3122: 06fadc63 bge s5,a5,319a tz -= i; - 313a: 8722 mv a4,s0 - 313c: 0007851b sext.w a0,a5 + 3126: 8722 mv a4,s0 + 3128: 0007851b sext.w a0,a5 while (i >= 4) { - 3140: 008785bb addw a1,a5,s0 + 312c: 008785bb addw a1,a5,s0 *(stbsp__uint32 *)bf = 0x30303030; - 3144: 01672023 sw s6,0(a4) + 3130: 01672023 sw s6,0(a4) bf += 4; - 3148: 0711 addi a4,a4,4 + 3134: 0711 addi a4,a4,4 while (i >= 4) { - 314a: 40e5863b subw a2,a1,a4 - 314e: fecacbe3 blt s5,a2,3144 - 3152: ffc5061b addiw a2,a0,-4 - 3156: 0026561b srliw a2,a2,0x2 - 315a: 0016071b addiw a4,a2,1 - 315e: 37f1 addiw a5,a5,-4 - 3160: 0026161b slliw a2,a2,0x2 - 3164: 070a slli a4,a4,0x2 - 3166: 9722 add a4,a4,s0 - 3168: 9f91 subw a5,a5,a2 + 3136: 40e5863b subw a2,a1,a4 + 313a: fecacbe3 blt s5,a2,3130 + 313e: ffc5061b addiw a2,a0,-4 + 3142: 0026561b srliw a2,a2,0x2 + 3146: 0016071b addiw a4,a2,1 + 314a: 37f1 addiw a5,a5,-4 + 314c: 0026161b slliw a2,a2,0x2 + 3150: 070a slli a4,a4,0x2 + 3152: 9722 add a4,a4,s0 + 3154: 9f91 subw a5,a5,a2 while (i) { - 316a: 843a mv s0,a4 - 316c: 80078de3 beqz a5,2986 - 3170: 1782 slli a5,a5,0x20 - 3172: 9381 srli a5,a5,0x20 - 3174: 00f70433 add s0,a4,a5 + 3156: 843a mv s0,a4 + 3158: 80078de3 beqz a5,2972 + 315c: 1782 slli a5,a5,0x20 + 315e: 9381 srli a5,a5,0x20 + 3160: 00f70433 add s0,a4,a5 *bf++ = '0'; - 3178: 0705 addi a4,a4,1 - 317a: ff470fa3 sb s4,-1(a4) + 3164: 0705 addi a4,a4,1 + 3166: ff470fa3 sb s4,-1(a4) while (i) { - 317e: fe871de3 bne a4,s0,3178 - 3182: 805ff06f j 2986 + 316a: fe871de3 bne a4,s0,3164 + 316e: 805ff06f j 2972 stbsp__cb_buf_clamp(i, pr); - 3186: 85ce mv a1,s3 + 3172: 85ce mv a1,s3 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 3188: 4981 li s3,0 - 318a: dc049263 bnez s1,274e - 318e: b8d5 j 2a82 + 3174: 4981 li s3,0 + 3176: dc049263 bnez s1,273a + 317a: b8d5 j 2a6e STBSP__UNALIGNED(while (i >= 4) { - 3190: 4401 li s0,0 - 3192: 85be mv a1,a5 - 3194: f0ea4b63 blt s4,a4,28aa - 3198: f42ff06f j 28da + 317c: 4401 li s0,0 + 317e: 85be mv a1,a5 + 3180: f0ea4b63 blt s4,a4,2896 + 3184: f42ff06f j 28c6 if ((((stbsp__uintptr)bf) & 3) == 0) - 319c: 00347713 andi a4,s0,3 + 3188: 00347713 andi a4,s0,3 stbsp__cb_buf_clamp(i, tz); - 31a0: 87c6 mv a5,a7 + 318c: 87c6 mv a5,a7 tz -= i; - 31a2: 4881 li a7,0 + 318e: 4881 li a7,0 if ((((stbsp__uintptr)bf) & 3) == 0) - 31a4: fc071c63 bnez a4,297c + 3190: fc071c63 bnez a4,2968 while (i >= 4) { - 31a8: 470d li a4,3 - 31aa: f8f748e3 blt a4,a5,313a - 31ae: 8722 mv a4,s0 - 31b0: b7c1 j 3170 + 3194: 470d li a4,3 + 3196: f8f748e3 blt a4,a5,3126 + 319a: 8722 mv a4,s0 + 319c: b7c1 j 315c tail[0] -= (char)i; - 31b2: 06010823 sb zero,112(sp) + 319e: 06010823 sb zero,112(sp) while (i) { - 31b6: b0b9 j 2a04 + 31a2: b0b9 j 29f0 while (i >= 4) { - 31b8: 478d li a5,3 - 31ba: 8622 mv a2,s0 - 31bc: d8b7d963 bge a5,a1,274e - 31c0: ffc5839b addiw t2,a1,-4 - 31c4: 0023d79b srliw a5,t2,0x2 - 31c8: 0017859b addiw a1,a5,1 - 31cc: 058a slli a1,a1,0x2 - 31ce: 942e add s0,s0,a1 + 31a4: 478d li a5,3 + 31a6: 8622 mv a2,s0 + 31a8: d8b7d963 bge a5,a1,273a + 31ac: ffc5839b addiw t2,a1,-4 + 31b0: 0023d79b srliw a5,t2,0x2 + 31b4: 0017859b addiw a1,a5,1 + 31b8: 058a slli a1,a1,0x2 + 31ba: 942e add s0,s0,a1 *(stbsp__uint32 *)bf = 0x30303030; - 31d0: 01762023 sw s7,0(a2) + 31bc: 01762023 sw s7,0(a2) bf += 4; - 31d4: 0611 addi a2,a2,4 + 31c0: 0611 addi a2,a2,4 while (i >= 4) { - 31d6: fe861de3 bne a2,s0,31d0 - 31da: 0027979b slliw a5,a5,0x2 - 31de: 40f385bb subw a1,t2,a5 - 31e2: d68ff06f j 274a + 31c2: fe861de3 bne a2,s0,31bc + 31c6: 0027979b slliw a5,a5,0x2 + 31ca: 40f385bb subw a1,t2,a5 + 31ce: d68ff06f j 2736 while (i) { - 31e6: 85be mv a1,a5 - 31e8: ee071963 bnez a4,28da - 31ec: f16ff06f j 2902 - 31f0: 2c013a03 ld s4,704(sp) - 31f4: 2b813a83 ld s5,696(sp) - 31f8: 2b013b03 ld s6,688(sp) - 31fc: 8ca2 mv s9,s0 - 31fe: a04ff06f j 2402 + 31d2: 85be mv a1,a5 + 31d4: ee071963 bnez a4,28c6 + 31d8: f16ff06f j 28ee + 31dc: 2c013a03 ld s4,704(sp) + 31e0: 2b813a83 ld s5,696(sp) + 31e4: 2b013b03 ld s6,688(sp) + 31e8: 8ca2 mv s9,s0 + 31ea: a04ff06f j 23ee stbsp__chk_cb_buf(1); - 3202: 2601 sext.w a2,a2 - 3204: 1fe00793 li a5,510 - 3208: f8c7c563 blt a5,a2,2992 - 320c: f3eff06f j 294a + 31ee: 2601 sext.w a2,a2 + 31f0: 1fe00793 li a5,510 + 31f4: f8c7c563 blt a5,a2,297e + 31f8: f3eff06f j 2936 fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas - 3210: fbfe7e13 andi t3,t3,-65 + 31fc: fbfe7e13 andi t3,t3,-65 if (fw + pr) { - 3214: 006707bb addw a5,a4,t1 + 3200: 006707bb addw a5,a4,t1 fl &= ~STBSP__TRIPLET_COMMA; // if no leading zeros, then no commas - 3218: 2e01 sext.w t3,t3 + 3204: 2e01 sext.w t3,t3 if (fw + pr) { - 321a: a0078be3 beqz a5,2c30 + 3206: a0078be3 beqz a5,2c1c while (fw > 0) { - 321e: be605663 blez t1,260a + 320a: be605663 blez t1,25f6 *(stbsp__uint32 *)bf = 0x20202020; - 3222: 20202837 lui a6,0x20202 + 320e: 20202837 lui a6,0x20202 stbsp__cb_buf_clamp(i, fw); - 3226: 854a mv a0,s2 - 3228: 894e mv s2,s3 - 322a: 69a2 ld s3,8(sp) + 3212: 854a mv a0,s2 + 3214: 894e mv s2,s3 + 3216: 69a2 ld s3,8(sp) *(stbsp__uint32 *)bf = 0x20202020; - 322c: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201f91e0> + 3218: 02080813 addi a6,a6,32 # 20202020 <_ZSt4cerr+0x201f91b0> stbsp__cb_buf_clamp(i, fw); - 3230: ec52 sd s4,24(sp) - 3232: f426 sd s1,40(sp) - 3234: 87a2 mv a5,s0 - 3236: 84ea mv s1,s10 + 321c: ec52 sd s4,24(sp) + 321e: f426 sd s1,40(sp) + 3220: 87a2 mv a5,s0 + 3222: 84ea mv s1,s10 stbsp__chk_cb_buf(1); - 3238: 1fe00f13 li t5,510 + 3224: 1fe00f13 li t5,510 stbsp__cb_buf_clamp(i, fw); - 323c: 8d6e mv s10,s11 + 3228: 8d6e mv s10,s11 *bf++ = ' '; - 323e: 02000b13 li s6,32 + 322a: 02000b13 li s6,32 stbsp__cb_buf_clamp(i, fw); - 3242: 8de6 mv s11,s9 + 322e: 8de6 mv s11,s9 while (i >= 4) { - 3244: 4b8d li s7,3 + 3230: 4b8d li s7,3 stbsp__cb_buf_clamp(i, fw); - 3246: 20000e93 li t4,512 - 324a: e846 sd a7,16(sp) - 324c: f07e sd t6,32(sp) - 324e: f836 sd a3,48(sp) - 3250: e4f2 sd t3,72(sp) - 3252: e8ba sd a4,80(sp) - 3254: ec96 sd t0,88(sp) - 3256: 841a mv s0,t1 - 3258: 8a42 mv s4,a6 - 325a: 8c9e mv s9,t2 - 325c: 0c090063 beqz s2,331c - 3260: 40a78633 sub a2,a5,a0 - 3264: 40ce873b subw a4,t4,a2 - 3268: 86ba mv a3,a4 - 326a: 00e45363 bge s0,a4,3270 - 326e: 86a2 mv a3,s0 - 3270: 0006871b sext.w a4,a3 + 3232: 20000e93 li t4,512 + 3236: e846 sd a7,16(sp) + 3238: f07e sd t6,32(sp) + 323a: f836 sd a3,48(sp) + 323c: e4f2 sd t3,72(sp) + 323e: e8ba sd a4,80(sp) + 3240: ec96 sd t0,88(sp) + 3242: 841a mv s0,t1 + 3244: 8a42 mv s4,a6 + 3246: 8c9e mv s9,t2 + 3248: 0c090063 beqz s2,3308 + 324c: 40a78633 sub a2,a5,a0 + 3250: 40ce873b subw a4,t4,a2 + 3254: 86ba mv a3,a4 + 3256: 00e45363 bge s0,a4,325c + 325a: 86a2 mv a3,s0 + 325c: 0006871b sext.w a4,a3 fw -= i; - 3274: 9c15 subw s0,s0,a3 + 3260: 9c15 subw s0,s0,a3 while (i) { - 3276: e719 bnez a4,3284 - 3278: a095 j 32dc + 3262: e719 bnez a4,3270 + 3264: a095 j 32c8 *bf++ = ' '; - 327a: 01678023 sb s6,0(a5) + 3266: 01678023 sb s6,0(a5) --i; - 327e: 377d addiw a4,a4,-1 + 326a: 377d addiw a4,a4,-1 *bf++ = ' '; - 3280: 0785 addi a5,a5,1 + 326c: 0785 addi a5,a5,1 while (i) { - 3282: cb29 beqz a4,32d4 + 326e: cb29 beqz a4,32c0 if ((((stbsp__uintptr)bf) & 3) == 0) - 3284: 0037f693 andi a3,a5,3 - 3288: faed bnez a3,327a + 3270: 0037f693 andi a3,a5,3 + 3274: faed bnez a3,3266 while (i >= 4) { - 328a: 86be mv a3,a5 - 328c: 00070f9b sext.w t6,a4 - 3290: 00f705bb addw a1,a4,a5 - 3294: 02ebd763 bge s7,a4,32c2 + 3276: 86be mv a3,a5 + 3278: 00070f9b sext.w t6,a4 + 327c: 00f705bb addw a1,a4,a5 + 3280: 02ebd763 bge s7,a4,32ae *(stbsp__uint32 *)bf = 0x20202020; - 3298: 0146a023 sw s4,0(a3) + 3284: 0146a023 sw s4,0(a3) bf += 4; - 329c: 0691 addi a3,a3,4 + 3288: 0691 addi a3,a3,4 while (i >= 4) { - 329e: 40d5863b subw a2,a1,a3 - 32a2: fecbcbe3 blt s7,a2,3298 - 32a6: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff71bc> - 32aa: 0026561b srliw a2,a2,0x2 - 32ae: 0016069b addiw a3,a2,1 - 32b2: 3771 addiw a4,a4,-4 - 32b4: 0026161b slliw a2,a2,0x2 - 32b8: 068a slli a3,a3,0x2 - 32ba: 96be add a3,a3,a5 - 32bc: 9f11 subw a4,a4,a2 + 328a: 40d5863b subw a2,a1,a3 + 328e: fecbcbe3 blt s7,a2,3284 + 3292: ffcf861b addiw a2,t6,-4 # fffffffff7fffffc <_ZSt4cerr+0xfffffffff7ff718c> + 3296: 0026561b srliw a2,a2,0x2 + 329a: 0016069b addiw a3,a2,1 + 329e: 3771 addiw a4,a4,-4 + 32a0: 0026161b slliw a2,a2,0x2 + 32a4: 068a slli a3,a3,0x2 + 32a6: 96be add a3,a3,a5 + 32a8: 9f11 subw a4,a4,a2 while (i) { - 32be: 87b6 mv a5,a3 - 32c0: cb11 beqz a4,32d4 - 32c2: 1702 slli a4,a4,0x20 - 32c4: 9301 srli a4,a4,0x20 - 32c6: 00e687b3 add a5,a3,a4 + 32aa: 87b6 mv a5,a3 + 32ac: cb11 beqz a4,32c0 + 32ae: 1702 slli a4,a4,0x20 + 32b0: 9301 srli a4,a4,0x20 + 32b2: 00e687b3 add a5,a3,a4 *bf++ = ' '; - 32ca: 0685 addi a3,a3,1 - 32cc: ff668fa3 sb s6,-1(a3) + 32b6: 0685 addi a3,a3,1 + 32b8: ff668fa3 sb s6,-1(a3) while (i) { - 32d0: fef69de3 bne a3,a5,32ca + 32bc: fef69de3 bne a3,a5,32b6 stbsp__chk_cb_buf(1); - 32d4: 40a78633 sub a2,a5,a0 - 32d8: 00090e63 beqz s2,32f4 - 32dc: 2601 sext.w a2,a2 - 32de: 00cf5b63 bge t5,a2,32f4 - 32e2: 85ce mv a1,s3 - 32e4: 9cb1 addw s1,s1,a2 - 32e6: 9902 jalr s2 - 32e8: c541 beqz a0,3370 - 32ea: 87aa mv a5,a0 - 32ec: 20000e93 li t4,512 - 32f0: 1fe00f13 li t5,510 + 32c0: 40a78633 sub a2,a5,a0 + 32c4: 00090e63 beqz s2,32e0 + 32c8: 2601 sext.w a2,a2 + 32ca: 00cf5b63 bge t5,a2,32e0 + 32ce: 85ce mv a1,s3 + 32d0: 9cb1 addw s1,s1,a2 + 32d2: 9902 jalr s2 + 32d4: c541 beqz a0,335c + 32d6: 87aa mv a5,a0 + 32d8: 20000e93 li t4,512 + 32dc: 1fe00f13 li t5,510 while (fw > 0) { - 32f4: f68044e3 bgtz s0,325c - 32f8: 8322 mv t1,s0 - 32fa: 89ca mv s3,s2 - 32fc: 83e6 mv t2,s9 - 32fe: 68c2 ld a7,16(sp) - 3300: 8cee mv s9,s11 - 3302: 6a62 ld s4,24(sp) - 3304: 8dea mv s11,s10 - 3306: 7f82 ld t6,32(sp) - 3308: 8d26 mv s10,s1 - 330a: 76c2 ld a3,48(sp) - 330c: 6e26 ld t3,72(sp) - 330e: 6746 ld a4,80(sp) - 3310: 62e6 ld t0,88(sp) - 3312: 74a2 ld s1,40(sp) - 3314: 892a mv s2,a0 - 3316: 843e mv s0,a5 - 3318: af2ff06f j 260a + 32e0: f68044e3 bgtz s0,3248 + 32e4: 8322 mv t1,s0 + 32e6: 89ca mv s3,s2 + 32e8: 83e6 mv t2,s9 + 32ea: 68c2 ld a7,16(sp) + 32ec: 8cee mv s9,s11 + 32ee: 6a62 ld s4,24(sp) + 32f0: 8dea mv s11,s10 + 32f2: 7f82 ld t6,32(sp) + 32f4: 8d26 mv s10,s1 + 32f6: 76c2 ld a3,48(sp) + 32f8: 6e26 ld t3,72(sp) + 32fa: 6746 ld a4,80(sp) + 32fc: 62e6 ld t0,88(sp) + 32fe: 74a2 ld s1,40(sp) + 3300: 892a mv s2,a0 + 3302: 843e mv s0,a5 + 3304: af2ff06f j 25f6 stbsp__cb_buf_clamp(i, fw); - 331c: 8722 mv a4,s0 - 331e: 4401 li s0,0 + 3308: 8722 mv a4,s0 + 330a: 4401 li s0,0 if ((((stbsp__uintptr)bf) & 3) == 0) - 3320: b795 j 3284 + 330c: b795 j 3270 n64 = va_arg(va, stbsp__uint32); - 3322: 000be683 lwu a3,0(s7) - 3326: b0f9 j 2bf4 + 330e: 000be683 lwu a3,0(s7) + 3312: b0f9 j 2be0 + 3314: 2c013a03 ld s4,704(sp) + 3318: 2b813a83 ld s5,696(sp) + 331c: 2b013b03 ld s6,688(sp) + 3320: 8cca mv s9,s2 + 3322: 8ccff06f j 23ee + 3326: 8cd6 mv s9,s5 3328: 2c013a03 ld s4,704(sp) 332c: 2b813a83 ld s5,696(sp) 3330: 2b013b03 ld s6,688(sp) - 3334: 8cca mv s9,s2 - 3336: 8ccff06f j 2402 - 333a: 8cd6 mv s9,s5 - 333c: 2c013a03 ld s4,704(sp) - 3340: 2b813a83 ld s5,696(sp) - 3344: 2b013b03 ld s6,688(sp) - 3348: 8baff06f j 2402 - 334c: 2c013a03 ld s4,704(sp) - 3350: 2b813a83 ld s5,696(sp) - 3354: 2b013b03 ld s6,688(sp) - 3358: 8cea mv s9,s10 - 335a: 8a8ff06f j 2402 + 3334: 8baff06f j 23ee + 3338: 2c013a03 ld s4,704(sp) + 333c: 2b813a83 ld s5,696(sp) + 3340: 2b013b03 ld s6,688(sp) + 3344: 8cea mv s9,s10 + 3346: 8a8ff06f j 23ee while (i) { - 335e: 85a2 mv a1,s0 - 3360: c12ff06f j 2772 + 334a: 85a2 mv a1,s0 + 334c: c12ff06f j 275e while (i >= 4) { - 3364: 478d li a5,3 - 3366: 8622 mv a2,s0 - 3368: e4b7cce3 blt a5,a1,31c0 - 336c: be2ff06f j 274e - 3370: 2c013a03 ld s4,704(sp) - 3374: 2b813a83 ld s5,696(sp) - 3378: 2b013b03 ld s6,688(sp) - 337c: 8ca6 mv s9,s1 - 337e: 884ff06f j 2402 + 3350: 478d li a5,3 + 3352: 8622 mv a2,s0 + 3354: e4b7cce3 blt a5,a1,31ac + 3358: be2ff06f j 273a + 335c: 2c013a03 ld s4,704(sp) + 3360: 2b813a83 ld s5,696(sp) + 3364: 2b013b03 ld s6,688(sp) + 3368: 8ca6 mv s9,s1 + 336a: 884ff06f j 23ee lead[2] = h[16]; - 3382: 01084683 lbu a3,16(a6) + 336e: 01084683 lbu a3,16(a6) lead[0] = 2; - 3386: 678d lui a5,0x3 - 3388: 0789 addi a5,a5,2 # 3002 - 338a: 06f11423 sh a5,104(sp) + 3372: 678d lui a5,0x3 + 3374: 0789 addi a5,a5,2 # 3002 + 3376: 06f11423 sh a5,104(sp) lead[2] = h[16]; - 338e: 06d10523 sb a3,106(sp) - 3392: b891 j 2be6 - 3394: 8cea mv s9,s10 - 3396: 86cff06f j 2402 - 339a: 4f81 li t6,0 - 339c: 4a01 li s4,0 - 339e: 5586 lw a1,96(sp) + 337a: 06d10523 sb a3,106(sp) + 337e: b891 j 2bd2 + 3380: 8cea mv s9,s10 + 3382: 86cff06f j 23ee + 3386: 4f81 li t6,0 + 3388: 4a01 li s4,0 + 338a: 5586 lw a1,96(sp) *--s = stbsp__comma; - 33a0: 00005f17 auipc t5,0x5 - 33a4: c15f4f03 lbu t5,-1003(t5) # 7fb5 - 33a8: 0510 addi a2,sp,640 - 33aa: 0085d71b srliw a4,a1,0x8 + 338c: 00005f17 auipc t5,0x5 + 3390: c59f4f03 lbu t5,-935(t5) # 7fe5 + 3394: 0510 addi a2,sp,640 + 3396: 0085d71b srliw a4,a1,0x8 *--s = h[n64 & ((1 << (l >> 8)) - 1)]; - 33ae: 4305 li t1,1 + 339a: 4305 li t1,1 if (fl & STBSP__TRIPLET_COMMA) { - 33b0: 040e7e93 andi t4,t3,64 + 339c: 040e7e93 andi t4,t3,64 *--s = h[n64 & ((1 << (l >> 8)) - 1)]; - 33b4: 0007029b sext.w t0,a4 - 33b8: 005317bb sllw a5,t1,t0 - 33bc: 37fd addiw a5,a5,-1 - 33be: 8ff5 and a5,a5,a3 - 33c0: 97c2 add a5,a5,a6 - 33c2: 0007c783 lbu a5,0(a5) + 33a0: 0007029b sext.w t0,a4 + 33a4: 005317bb sllw a5,t1,t0 + 33a8: 37fd addiw a5,a5,-1 + 33aa: 8ff5 and a5,a5,a3 + 33ac: 97c2 add a5,a5,a6 + 33ae: 0007c783 lbu a5,0(a5) n64 >>= (l >> 8); - 33c6: 0056d6b3 srl a3,a3,t0 + 33b2: 0056d6b3 srl a3,a3,t0 *--s = h[n64 & ((1 << (l >> 8)) - 1)]; - 33ca: fff60a93 addi s5,a2,-1 - 33ce: fef60fa3 sb a5,-1(a2) + 33b6: fff60a93 addi s5,a2,-1 + 33ba: fef60fa3 sb a5,-1(a2) if (!((n64) || ((stbsp__int32)((num + STBSP__NUMSZ) - s) < pr))) - 33d2: e691 bnez a3,33de - 33d4: 051c addi a5,sp,640 - 33d6: 415787bb subw a5,a5,s5 - 33da: 0317dd63 bge a5,a7,3414 + 33be: e691 bnez a3,33ca + 33c0: 051c addi a5,sp,640 + 33c2: 415787bb subw a5,a5,s5 + 33c6: 0317dd63 bge a5,a7,3400 if (fl & STBSP__TRIPLET_COMMA) { - 33de: 020e8963 beqz t4,3410 + 33ca: 020e8963 beqz t4,33fc ++l; - 33e2: 0015879b addiw a5,a1,1 + 33ce: 0015879b addiw a5,a1,1 if ((l & 15) == ((l >> 4) & 15)) { - 33e6: 0047d29b srliw t0,a5,0x4 - 33ea: 00f2c2b3 xor t0,t0,a5 - 33ee: 00f2f293 andi t0,t0,15 + 33d2: 0047d29b srliw t0,a5,0x4 + 33d6: 00f2c2b3 xor t0,t0,a5 + 33da: 00f2f293 andi t0,t0,15 ++l; - 33f2: 0007859b sext.w a1,a5 + 33de: 0007859b sext.w a1,a5 if ((l & 15) == ((l >> 4) & 15)) { - 33f6: 0087d71b srliw a4,a5,0x8 - 33fa: 00029b63 bnez t0,3410 + 33e2: 0087d71b srliw a4,a5,0x8 + 33e6: 00029b63 bnez t0,33fc l &= ~15; - 33fe: 9bc1 andi a5,a5,-16 - 3400: 0007859b sext.w a1,a5 + 33ea: 9bc1 andi a5,a5,-16 + 33ec: 0007859b sext.w a1,a5 *--s = stbsp__comma; - 3404: ffe60a93 addi s5,a2,-2 - 3408: ffe60f23 sb t5,-2(a2) - 340c: 0087d71b srliw a4,a5,0x8 - 3410: 8656 mv a2,s5 - 3412: b74d j 33b4 + 33f0: ffe60a93 addi s5,a2,-2 + 33f4: ffe60f23 sb t5,-2(a2) + 33f8: 0087d71b srliw a4,a5,0x8 + 33fc: 8656 mv a2,s5 + 33fe: b74d j 33a0 cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); - 3414: 0045d29b srliw t0,a1,0x4 - 3418: 0f0006b7 lui a3,0xf000 + 3400: 0045d29b srliw t0,a1,0x4 + 3404: 0f0006b7 lui a3,0xf000 if (pr < (stbsp__int32)l) - 341c: 0007871b sext.w a4,a5 + 3408: 0007871b sext.w a4,a5 cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); - 3420: 0182929b slliw t0,t0,0x18 - 3424: 00d2f2b3 and t0,t0,a3 + 340c: 0182929b slliw t0,t0,0x18 + 3410: 00d2f2b3 and t0,t0,a3 n = pr + lead[0] + tail[0] + tz; - 3428: 00ef863b addw a2,t6,a4 + 3414: 00ef863b addw a2,t6,a4 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 342c: d0be sw a5,96(sp) + 3418: d0be sw a5,96(sp) n = pr + lead[0] + tail[0] + tz; - 342e: 8fb2 mv t6,a2 + 341a: 8fb2 mv t6,a2 cs = (stbsp__uint32)((num + STBSP__NUMSZ) - s) + ((((l >> 4) & 15)) << 24); - 3430: 86be mv a3,a5 - 3432: 00f282bb addw t0,t0,a5 + 341c: 86be mv a3,a5 + 341e: 00f282bb addw t0,t0,a5 if (fw < (stbsp__int32)n) - 3436: 835a mv t1,s6 - 3438: 00cb5363 bge s6,a2,343e - 343c: 8332 mv t1,a2 + 3422: 835a mv t1,s6 + 3424: 00cb5363 bge s6,a2,342a + 3428: 8332 mv t1,a2 fw -= n; - 343e: 41f3033b subw t1,t1,t6 + 342a: 41f3033b subw t1,t1,t6 pr -= l; - 3442: 9f1d subw a4,a4,a5 + 342e: 9f1d subw a4,a4,a5 goto scopy; - 3444: 4f81 li t6,0 + 3430: 4f81 li t6,0 tz = 0; - 3446: 4881 li a7,0 + 3432: 4881 li a7,0 goto scopy; - 3448: fdcff06f j 2c24 - 344c: 8cda mv s9,s6 - 344e: 2c013a03 ld s4,704(sp) - 3452: 2b813a83 ld s5,696(sp) - 3456: 2b013b03 ld s6,688(sp) - 345a: fa9fe06f j 2402 + 3434: fdcff06f j 2c10 + 3438: 8cda mv s9,s6 + 343a: 2c013a03 ld s4,704(sp) + 343e: 2b813a83 ld s5,696(sp) + 3442: 2b013b03 ld s6,688(sp) + 3446: fa9fe06f j 23ee fl |= ((sizeof(void *) == 8) ? STBSP__INTMAX : 0); - 345e: 020e6e13 ori t3,t3,32 + 344a: 020e6e13 ori t3,t3,32 ++f; - 3462: 0485 addi s1,s1,1 - 3464: 864ff06f j 24c8 + 344e: 0485 addi s1,s1,1 + 3450: 864ff06f j 24b4 n = 0; - 3468: 4601 li a2,0 + 3454: 4601 li a2,0 s = num + 64; - 346a: 8756 mv a4,s5 + 3456: 8756 mv a4,s5 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 346c: 4511 li a0,4 + 3458: 4511 li a0,4 *s++ = stbsp__comma; - 346e: 00170793 addi a5,a4,1 + 345a: 00170793 addi a5,a4,1 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3472: 00030563 beqz t1,347c - 3476: 2585 addiw a1,a1,1 - 3478: 10a58363 beq a1,a0,357e - 347c: 873e mv a4,a5 + 345e: 00030563 beqz t1,3468 + 3462: 2585 addiw a1,a1,1 + 3464: 10a58363 beq a1,a0,356a + 3468: 873e mv a4,a5 *s++ = sn[n]; - 347e: 02061793 slli a5,a2,0x20 - 3482: 9381 srli a5,a5,0x20 - 3484: 97fa add a5,a5,t5 - 3486: 0007c803 lbu a6,0(a5) + 346a: 02061793 slli a5,a2,0x20 + 346e: 9381 srli a5,a5,0x20 + 3470: 97fa add a5,a5,t5 + 3472: 0007c803 lbu a6,0(a5) ++n; - 348a: 2605 addiw a2,a2,1 + 3476: 2605 addiw a2,a2,1 *s++ = sn[n]; - 348c: ff070fa3 sb a6,-1(a4) + 3478: ff070fa3 sb a6,-1(a4) if (n >= l) - 3490: fcd66fe3 bltu a2,a3,346e + 347c: fcd66fe3 bltu a2,a3,345a if (n < (stbsp__uint32)dp) { - 3494: 0bd663e3 bltu a2,t4,3d3a + 3480: 0bd663e3 bltu a2,t4,3d26 cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens - 3498: 415707b3 sub a5,a4,s5 - 349c: 030002b7 lui t0,0x3000 - 34a0: 00f282bb addw t0,t0,a5 + 3484: 415707b3 sub a5,a4,s5 + 3488: 030002b7 lui t0,0x3000 + 348c: 00f282bb addw t0,t0,a5 if (pr) { - 34a4: 00088a63 beqz a7,34b8 + 3490: 00088a63 beqz a7,34a4 *s++ = stbsp__period; - 34a8: 0cca4683 lbu a3,204(s4) - 34ac: 00170793 addi a5,a4,1 + 3494: 0cca4683 lbu a3,204(s4) + 3498: 00170793 addi a5,a4,1 l = (stbsp__uint32)(s - (num + 64)); - 34b0: 415787b3 sub a5,a5,s5 + 349c: 415787b3 sub a5,a5,s5 *s++ = stbsp__period; - 34b4: 00d70023 sb a3,0(a4) + 34a0: 00d70023 sb a3,0(a4) if (fl & STBSP__METRIC_SUFFIX) { - 34b8: 100e7713 andi a4,t3,256 - 34bc: 86f2 mv a3,t3 - 34be: 2c070163 beqz a4,3780 + 34a4: 100e7713 andi a4,t3,256 + 34a8: 86f2 mv a3,t3 + 34aa: 2c070163 beqz a4,376c if (fl & STBSP__METRIC_NOSPACE) - 34c2: 40ae5f9b sraiw t6,t3,0xa - 34c6: 001fcf93 xori t6,t6,1 - 34ca: 001fff93 andi t6,t6,1 + 34ae: 40ae5f9b sraiw t6,t3,0xa + 34b2: 001fcf93 xori t6,t6,1 + 34b6: 001fff93 andi t6,t6,1 tail[1] = ' '; - 34ce: 02000713 li a4,32 - 34d2: 06e108a3 sb a4,113(sp) + 34ba: 02000713 li a4,32 + 34be: 06e108a3 sb a4,113(sp) tail[0] = idx; - 34d6: 07f10823 sb t6,112(sp) + 34c2: 07f10823 sb t6,112(sp) if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. - 34da: 018e561b srliw a2,t3,0x18 - 34de: 018e571b srliw a4,t3,0x18 + 34c6: 018e561b srliw a2,t3,0x18 + 34ca: 018e571b srliw a4,t3,0x18 n = pr + lead[0] + tail[0] + tz; - 34e2: 000f859b sext.w a1,t6 + 34ce: 000f859b sext.w a1,t6 if (fl >> 24) { // SI kilo is 'k', JEDEC and SI kibits are 'K'. - 34e6: c225 beqz a2,3546 + 34d2: c225 beqz a2,3532 if (fl & STBSP__METRIC_1024) - 34e8: 001f859b addiw a1,t6,1 - 34ec: 0ff5f613 zext.b a2,a1 + 34d4: 001f859b addiw a1,t6,1 + 34d8: 0ff5f613 zext.b a2,a1 tail[idx + 1] = "_KMGT"[fl >> 24]; - 34f0: 1702 slli a4,a4,0x20 + 34dc: 1702 slli a4,a4,0x20 if (fl & STBSP__METRIC_1024) - 34f2: 03469513 slli a0,a3,0x34 + 34de: 03469513 slli a0,a3,0x34 tail[idx + 1] = "_KMGT"[fl >> 24]; - 34f6: 85b2 mv a1,a2 - 34f8: 9301 srli a4,a4,0x20 + 34e2: 85b2 mv a1,a2 + 34e4: 9301 srli a4,a4,0x20 if (fl & STBSP__METRIC_1024) - 34fa: 06055ee3 bgez a0,3d76 + 34e6: 06055ee3 bgez a0,3d62 tail[idx + 1] = "_KMGT"[fl >> 24]; - 34fe: 00003517 auipc a0,0x3 - 3502: c8250513 addi a0,a0,-894 # 6180 <_GLOBAL__sub_I__ZSt3cin+0x17c> - 3506: 972a add a4,a4,a0 - 3508: 00074503 lbu a0,0(a4) + 34ea: 00003517 auipc a0,0x3 + 34ee: cfe50513 addi a0,a0,-770 # 61e8 <_GLOBAL__sub_I__ZSt3cin+0x1f8> + 34f2: 972a add a4,a4,a0 + 34f4: 00074503 lbu a0,0(a4) if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { - 350c: 6709 lui a4,0x2 - 350e: 80070713 addi a4,a4,-2048 # 1800 - 3512: 8f75 and a4,a4,a3 + 34f8: 6709 lui a4,0x2 + 34fa: 80070713 addi a4,a4,-2048 # 1800 + 34fe: 8f75 and a4,a4,a3 tail[idx + 1] = "_KMGT"[fl >> 24]; - 3514: 06010813 addi a6,sp,96 - 3518: 22060693 addi a3,a2,544 - 351c: 96c2 add a3,a3,a6 - 351e: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff6fb0> + 3500: 06010813 addi a6,sp,96 + 3504: 22060693 addi a3,a2,544 + 3508: 96c2 add a3,a3,a6 + 350a: dea68823 sb a0,-528(a3) # efffdf0 <_ZSt4cerr+0xeff6f80> if (fl & STBSP__METRIC_1024 && !(fl & STBSP__METRIC_JEDEC)) { - 3522: 8007071b addiw a4,a4,-2048 - 3526: 060715e3 bnez a4,3d90 + 350e: 8007071b addiw a4,a4,-2048 + 3512: 060715e3 bnez a4,3d7c tail[idx + 1] = 'i'; - 352a: 2f89 addiw t6,t6,2 - 352c: 0ffff593 zext.b a1,t6 - 3530: 1094 addi a3,sp,96 - 3532: 22058713 addi a4,a1,544 - 3536: 9736 add a4,a4,a3 - 3538: 06900693 li a3,105 - 353c: 8fae mv t6,a1 - 353e: ded70823 sb a3,-528(a4) + 3516: 2f89 addiw t6,t6,2 + 3518: 0ffff593 zext.b a1,t6 + 351c: 1094 addi a3,sp,96 + 351e: 22058713 addi a4,a1,544 + 3522: 9736 add a4,a4,a3 + 3524: 06900693 li a3,105 + 3528: 8fae mv t6,a1 + 352a: ded70823 sb a3,-528(a4) tail[0] = idx; - 3542: 07f10823 sb t6,112(sp) + 352e: 07f10823 sb t6,112(sp) l = (stbsp__uint32)(s - (num + 64)); - 3546: 0007869b sext.w a3,a5 + 3532: 0007869b sext.w a3,a5 n = pr + lead[0] + tail[0] + tz; - 354a: 06814a03 lbu s4,104(sp) + 3536: 06814a03 lbu s4,104(sp) if (pr < (stbsp__int32)l) - 354e: fff6c713 not a4,a3 - 3552: 977d srai a4,a4,0x3f - 3554: 8ff9 and a5,a5,a4 + 353a: fff6c713 not a4,a3 + 353e: 977d srai a4,a4,0x3f + 3540: 8ff9 and a5,a5,a4 n = pr + lead[0] + tail[0] + tz; - 3556: 00fa073b addw a4,s4,a5 - 355a: 9f2d addw a4,a4,a1 - 355c: 0117063b addw a2,a4,a7 + 3542: 00fa073b addw a4,s4,a5 + 3546: 9f2d addw a4,a4,a1 + 3548: 0117063b addw a2,a4,a7 l = (stbsp__uint32)(s - (num + 64)); - 3560: d0b6 sw a3,96(sp) + 354c: d0b6 sw a3,96(sp) n = pr + lead[0] + tail[0] + tz; - 3562: 8732 mv a4,a2 + 354e: 8732 mv a4,a2 if (pr < (stbsp__int32)l) - 3564: 2781 sext.w a5,a5 + 3550: 2781 sext.w a5,a5 if ((fl & STBSP__LEFTJUST) == 0) { - 3566: 001e7513 andi a0,t3,1 + 3552: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 356a: 835a mv t1,s6 - 356c: 00cb5363 bge s6,a2,3572 - 3570: 8332 mv t1,a2 + 3556: 835a mv t1,s6 + 3558: 00cb5363 bge s6,a2,355e + 355c: 8332 mv t1,a2 fw -= n; - 3572: 40e3033b subw t1,t1,a4 + 355e: 40e3033b subw t1,t1,a4 pr -= l; - 3576: 40d7873b subw a4,a5,a3 + 3562: 40d7873b subw a4,a5,a3 goto scopy; - 357a: eaaff06f j 2c24 + 3566: eaaff06f j 2c10 *s++ = stbsp__comma; - 357e: fe578fa3 sb t0,-1(a5) - 3582: 0709 addi a4,a4,2 + 356a: fe578fa3 sb t0,-1(a5) + 356e: 0709 addi a4,a4,2 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3584: 4585 li a1,1 - 3586: bde5 j 347e + 3570: 4585 li a1,1 + 3572: bde5 j 346a lead[0] = 1; - 3588: 678d lui a5,0x3 - 358a: 0785 addi a5,a5,1 # 3001 - 358c: 06f11423 sh a5,104(sp) - 3590: b4ed j 307a + 3574: 678d lui a5,0x3 + 3576: 0785 addi a5,a5,1 # 3001 + 3578: 06f11423 sh a5,104(sp) + 357c: b4ed j 3066 if ((f[0] != 'u') && (i64 < 0)) { - 3592: 07500693 li a3,117 + 357e: 07500693 li a3,117 stbsp__int64 i64 = va_arg(va, stbsp__int64); - 3596: 000bbf03 ld t5,0(s7) + 3582: 000bbf03 ld t5,0(s7) if ((f[0] != 'u') && (i64 < 0)) { - 359a: dcd78263 beq a5,a3,2b5e - 359e: dc0f5063 bgez t5,2b5e + 3586: dcd78263 beq a5,a3,2b4a + 358a: dc0f5063 bgez t5,2b4a fl |= STBSP__NEGATIVE; - 35a2: 08076713 ori a4,a4,128 + 358e: 08076713 ori a4,a4,128 n64 = (stbsp__uint64)-i64; - 35a6: 41e00f33 neg t5,t5 + 3592: 41e00f33 neg t5,t5 fl |= STBSP__NEGATIVE; - 35aa: 00070e1b sext.w t3,a4 - 35ae: db0ff06f j 2b5e + 3596: 00070e1b sext.w t3,a4 + 359a: db0ff06f j 2b4a lead[2] = h[0xb]; - 35b2: 00b84703 lbu a4,11(a6) + 359e: 00b84703 lbu a4,11(a6) lead[0] = 2; - 35b6: 678d lui a5,0x3 - 35b8: 0789 addi a5,a5,2 # 3002 - 35ba: 06f11423 sh a5,104(sp) + 35a2: 678d lui a5,0x3 + 35a4: 0789 addi a5,a5,2 # 3002 + 35a6: 06f11423 sh a5,104(sp) lead[2] = h[0xb]; - 35be: 06e10523 sb a4,106(sp) - 35c2: bab5 j 2f3e + 35aa: 06e10523 sb a4,106(sp) + 35ae: bab5 j 2f2a sign[0] = 1; - 35c4: 678d lui a5,0x3 - 35c6: d0178793 addi a5,a5,-767 # 2d01 + 35b0: 678d lui a5,0x3 + 35b2: d0178793 addi a5,a5,-767 # 2d01 fl |= STBSP__NEGATIVE; - 35ca: 080e6e13 ori t3,t3,128 + 35b6: 080e6e13 ori t3,t3,128 sign[0] = 1; - 35ce: 06f11423 sh a5,104(sp) - 35d2: 468d li a3,3 - 35d4: 4a0d li s4,3 - 35d6: 4809 li a6,2 - 35d8: b899 j 2e2e + 35ba: 06f11423 sh a5,104(sp) + 35be: 468d li a3,3 + 35c0: 4a0d li s4,3 + 35c2: 4809 li a6,2 + 35c4: b899 j 2e1a sign[0] = 1; - 35da: 6709 lui a4,0x2 - 35dc: 0705 addi a4,a4,1 # 2001 <_vscanf_core.constprop.0+0x675> - 35de: 06e11423 sh a4,104(sp) - 35e2: bae5 j 2fda + 35c6: 6709 lui a4,0x2 + 35c8: 0705 addi a4,a4,1 # 2001 <_vscanf_core.constprop.0+0x689> + 35ca: 06e11423 sh a4,104(sp) + 35ce: bae5 j 2fc6 if (((stbsp__uintptr)sn & 3) == 0) - 35e4: 0e0780e3 beqz a5,3ec4 + 35d0: 0e0780e3 beqz a5,3eb0 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 35e8: 56fd li a3,-1 - 35ea: bcf9 j 30c8 + 35d4: 56fd li a3,-1 + 35d6: bcf9 j 30b4 if (fw < (stbsp__int32)n) - 35ec: 4305 li t1,1 - 35ee: b249 j 2f70 + 35d8: 4305 li t1,1 + 35da: b249 j 2f5c pr = 6; // default is 6 - 35f0: 4899 li a7,6 - 35f2: b801 j 2e02 + 35dc: 4899 li a7,6 + 35de: b801 j 2dee h = (f[0] == 'A') ? hexu : hex; - 35f4: 00005597 auipc a1,0x5 - 35f8: 9c458593 addi a1,a1,-1596 # 7fb8 - 35fc: ff6ff06f j 2df2 + 35e0: 00005597 auipc a1,0x5 + 35e4: a0858593 addi a1,a1,-1528 # 7fe8 + 35e8: ff6ff06f j 2dde h = (f[0] == 'B') ? hexu : hex; - 3600: 00005817 auipc a6,0x5 - 3604: 9b880813 addi a6,a6,-1608 # 7fb8 - 3608: b22d j 2f32 - 360a: 80000737 lui a4,0x80000 - 360e: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff71c6> + 35ec: 00005817 auipc a6,0x5 + 35f0: 9fc80813 addi a6,a6,-1540 # 7fe8 + 35f4: b22d j 2f1e + 35f6: 80000737 lui a4,0x80000 + 35fa: 0719 addi a4,a4,6 # ffffffff80000006 <_ZSt4cerr+0xffffffff7fff7196> pr = 6; // default is 6 - 3610: 4899 li a7,6 - 3612: e4eff06f j 2c60 + 35fc: 4899 li a7,6 + 35fe: e4eff06f j 2c4c h = (f[0] == 'E') ? hexu : hex; - 3616: 00005317 auipc t1,0x5 - 361a: 9a230313 addi t1,t1,-1630 # 7fb8 - 361e: e28ff06f j 2c46 - 3622: 80000737 lui a4,0x80000 - 3626: 4a99 li s5,6 - 3628: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff71c5> + 3602: 00005317 auipc t1,0x5 + 3606: 9e630313 addi t1,t1,-1562 # 7fe8 + 360a: e28ff06f j 2c32 + 360e: 80000737 lui a4,0x80000 + 3612: 4a99 li s5,6 + 3614: 0715 addi a4,a4,5 # ffffffff80000005 <_ZSt4cerr+0xffffffff7fff7195> pr = 6; - 362a: 4a19 li s4,6 - 362c: ee8ff06f j 2d14 + 3616: 4a19 li s4,6 + 3618: ee8ff06f j 2d00 h = (f[0] == 'G') ? hexu : hex; - 3630: 00005317 auipc t1,0x5 - 3634: 98830313 addi t1,t1,-1656 # 7fb8 - 3638: eb6ff06f j 2cee - 363c: 7be6 ld s7,120(sp) + 361c: 00005317 auipc t1,0x5 + 3620: 9cc30313 addi t1,t1,-1588 # 7fe8 + 3624: eb6ff06f j 2cda + 3628: 7be6 ld s7,120(sp) if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 363e: 86c2 mv a3,a6 + 362a: 86c2 mv a3,a6 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 3640: 8542 mv a0,a6 + 362c: 8542 mv a0,a6 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 3642: 88d2 mv a7,s4 + 362e: 88d2 mv a7,s4 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 3644: 8ade mv s5,s7 + 3630: 8ade mv s5,s7 if (pr > (stbsp__int32)l) - 3646: 0005071b sext.w a4,a0 - 364a: 01175f63 bge a4,a7,3668 + 3632: 0005071b sext.w a4,a0 + 3636: 01175f63 bge a4,a7,3654 pr = l - 1; - 364e: fff5089b addiw a7,a0,-1 + 363a: fff5089b addiw a7,a0,-1 tail[0] = 0; - 3652: 06010823 sb zero,112(sp) + 363e: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 3656: 70028c63 beqz t0,3d6e + 3642: 70028c63 beqz t0,3d5a sign[0] = 1; - 365a: 670d lui a4,0x3 - 365c: d0170713 addi a4,a4,-767 # 2d01 - 3660: 06e11423 sh a4,104(sp) - 3664: e3aff06f j 2c9e + 3646: 670d lui a4,0x3 + 3648: d0170713 addi a4,a4,-767 # 2d01 + 364c: 06e11423 sh a4,104(sp) + 3650: e3aff06f j 2c8a else if (pr) - 3668: fe0885e3 beqz a7,3652 + 3654: fe0885e3 beqz a7,363e --pr; // when using %e, there is one digit before the decimal - 366c: 38fd addiw a7,a7,-1 - 366e: b7d5 j 3652 + 3658: 38fd addiw a7,a7,-1 + 365a: b7d5 j 363e switch (f[0]) { - 3670: 0034c783 lbu a5,3(s1) + 365c: 0034c783 lbu a5,3(s1) f += 3; - 3674: 048d addi s1,s1,3 - 3676: e53fe06f j 24c8 + 3660: 048d addi s1,s1,3 + 3662: e53fe06f j 24b4 if (!limit || *sn == 0) - 367a: 4601 li a2,0 - 367c: 4701 li a4,0 - 367e: 4781 li a5,0 + 3666: 4601 li a2,0 + 3668: 4701 li a4,0 + 366a: 4781 li a5,0 return (stbsp__uint32)(sn - s); - 3680: bca5 j 30f8 + 366c: bca5 j 30e4 pr = 1; - 3682: 4885 li a7,1 - 3684: cf4ff06f j 2b78 + 366e: 4885 li a7,1 + 3670: cf4ff06f j 2b64 *s++ = sn[0]; - 3688: 000ac703 lbu a4,0(s5) - 368c: 0ce10023 sb a4,192(sp) + 3674: 000ac703 lbu a4,0(s5) + 3678: 0ce10023 sb a4,192(sp) if (pr) - 3690: 54088563 beqz a7,3bda + 367c: 54088563 beqz a7,3bc6 *s++ = stbsp__period; - 3694: 00005617 auipc a2,0x5 - 3698: 92064603 lbu a2,-1760(a2) # 7fb4 + 3680: 00005617 auipc a2,0x5 + 3684: 96464603 lbu a2,-1692(a2) # 7fe4 if ((l - 1) > (stbsp__uint32)pr) - 369c: fff6871b addiw a4,a3,-1 + 3688: fff6871b addiw a4,a3,-1 *s++ = stbsp__period; - 36a0: 0cc100a3 sb a2,193(sp) + 368c: 0cc100a3 sb a2,193(sp) if ((l - 1) > (stbsp__uint32)pr) - 36a4: 0008851b sext.w a0,a7 - 36a8: 0007061b sext.w a2,a4 - 36ac: 52c57163 bgeu a0,a2,3bce + 3690: 0008851b sext.w a0,a7 + 3694: 0007061b sext.w a2,a4 + 3698: 52c57163 bgeu a0,a2,3bba l = pr + 1; - 36b0: 0018869b addiw a3,a7,1 + 369c: 0018869b addiw a3,a7,1 for (n = 1; n < l; n++) - 36b4: 8746 mv a4,a7 - 36b6: 02071613 slli a2,a4,0x20 - 36ba: 9201 srli a2,a2,0x20 - 36bc: 0c210713 addi a4,sp,194 - 36c0: 0a85 addi s5,s5,1 - 36c2: 963a add a2,a2,a4 + 36a0: 8746 mv a4,a7 + 36a2: 02071613 slli a2,a4,0x20 + 36a6: 9201 srli a2,a2,0x20 + 36a8: 0c210713 addi a4,sp,194 + 36ac: 0a85 addi s5,s5,1 + 36ae: 963a add a2,a2,a4 *s++ = sn[n]; - 36c4: 000ac583 lbu a1,0(s5) - 36c8: 0705 addi a4,a4,1 + 36b0: 000ac583 lbu a1,0(s5) + 36b4: 0705 addi a4,a4,1 for (n = 1; n < l; n++) - 36ca: 0a85 addi s5,s5,1 + 36b6: 0a85 addi s5,s5,1 *s++ = sn[n]; - 36cc: feb70fa3 sb a1,-1(a4) + 36b8: feb70fa3 sb a1,-1(a4) for (n = 1; n < l; n++) - 36d0: fec71ae3 bne a4,a2,36c4 + 36bc: fec71ae3 bne a4,a2,36b0 tail[1] = h[0xe]; - 36d4: 00e34803 lbu a6,14(t1) + 36c0: 00e34803 lbu a6,14(t1) dp -= 1; - 36d8: fff7871b addiw a4,a5,-1 + 36c4: fff7871b addiw a4,a5,-1 tail[2] = '+'; - 36dc: 02b00593 li a1,43 + 36c8: 02b00593 li a1,43 tail[1] = h[0xe]; - 36e0: 070108a3 sb a6,113(sp) + 36cc: 070108a3 sb a6,113(sp) if (dp < 0) { - 36e4: 00075663 bgez a4,36f0 + 36d0: 00075663 bgez a4,36dc dp = -dp; - 36e8: 4705 li a4,1 - 36ea: 9f1d subw a4,a4,a5 + 36d4: 4705 li a4,1 + 36d6: 9f1d subw a4,a4,a5 tail[2] = '-'; - 36ec: 02d00593 li a1,45 - 36f0: 06b10923 sb a1,114(sp) + 36d8: 02d00593 li a1,45 + 36dc: 06b10923 sb a1,114(sp) n = (dp >= 100) ? 5 : 4; - 36f4: 06300793 li a5,99 - 36f8: 4ee7d663 bge a5,a4,3be4 - 36fc: 4595 li a1,5 - 36fe: 4f95 li t6,5 - 3700: 4e95 li t4,5 + 36e0: 06300793 li a5,99 + 36e4: 4ee7d663 bge a5,a4,3bd0 + 36e8: 4595 li a1,5 + 36ea: 4f95 li t6,5 + 36ec: 4e95 li t4,5 tail[n] = '0' + dp % 10; - 3702: 47a9 li a5,10 + 36ee: 47a9 li a5,10 dp /= 10; - 3704: 02f7433b divw t1,a4,a5 + 36f0: 02f7433b divw t1,a4,a5 --n; - 3708: fffe8f1b addiw t5,t4,-1 + 36f4: fffe8f1b addiw t5,t4,-1 tail[n] = '0' + dp % 10; - 370c: 020f1293 slli t0,t5,0x20 - 3710: 220e8813 addi a6,t4,544 - 3714: 06010893 addi a7,sp,96 - 3718: 0202d293 srli t0,t0,0x20 - 371c: 01180eb3 add t4,a6,a7 - 3720: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff73e0> - 3724: 011802b3 add t0,a6,a7 + 36f8: 020f1293 slli t0,t5,0x20 + 36fc: 220e8813 addi a6,t4,544 + 3700: 06010893 addi a7,sp,96 + 3704: 0202d293 srli t0,t0,0x20 + 3708: 01180eb3 add t4,a6,a7 + 370c: 22028813 addi a6,t0,544 # 3000220 <_ZSt4cerr+0x2ff73b0> + 3710: 011802b3 add t0,a6,a7 tail[0] = (char)n; - 3728: 07f10823 sb t6,112(sp) + 3714: 07f10823 sb t6,112(sp) if (n <= 3) - 372c: 4a0d li s4,3 + 3718: 4a0d li s4,3 tail[n] = '0' + dp % 10; - 372e: 02f7673b remw a4,a4,a5 + 371a: 02f7673b remw a4,a4,a5 dp /= 10; - 3732: 0003081b sext.w a6,t1 + 371e: 0003081b sext.w a6,t1 tail[n] = '0' + dp % 10; - 3736: 02f36abb remw s5,t1,a5 - 373a: 0307071b addiw a4,a4,48 - 373e: deee8823 sb a4,-528(t4) - 3742: 030a871b addiw a4,s5,48 - 3746: dee28823 sb a4,-528(t0) + 3722: 02f36abb remw s5,t1,a5 + 3726: 0307071b addiw a4,a4,48 + 372a: deee8823 sb a4,-528(t4) + 372e: 030a871b addiw a4,s5,48 + 3732: dee28823 sb a4,-528(t0) if (n <= 3) - 374a: 014f0a63 beq t5,s4,375e + 3736: 014f0a63 beq t5,s4,374a dp /= 10; - 374e: 02f3483b divw a6,t1,a5 + 373a: 02f3483b divw a6,t1,a5 tail[n] = '0' + dp % 10; - 3752: 02f867bb remw a5,a6,a5 - 3756: 0307879b addiw a5,a5,48 - 375a: 06f109a3 sb a5,115(sp) + 373e: 02f867bb remw a5,a6,a5 + 3742: 0307879b addiw a5,a5,48 + 3746: 06f109a3 sb a5,115(sp) tz = pr - (l - 1); - 375e: 2505 addiw a0,a0,1 + 374a: 2505 addiw a0,a0,1 l = (stbsp__uint32)(s - (num + 64)); - 3760: 0c010a93 addi s5,sp,192 + 374c: 0c010a93 addi s5,sp,192 cs = 1 + (3 << 24); // how many tens - 3764: 030002b7 lui t0,0x3000 + 3750: 030002b7 lui t0,0x3000 tz = pr - (l - 1); - 3768: 40d508bb subw a7,a0,a3 - 376c: d2c2 sw a6,100(sp) + 3754: 40d508bb subw a7,a0,a3 + 3758: d2c2 sw a6,100(sp) l = (stbsp__uint32)(s - (num + 64)); - 376e: 415607b3 sub a5,a2,s5 + 375a: 415607b3 sub a5,a2,s5 cs = 1 + (3 << 24); // how many tens - 3772: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff71c1> - 3774: bbc9 j 3546 - 3776: fc2e sd a1,56(sp) - 3778: d0b2 sw a2,96(sp) + 375e: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff7191> + 3760: bbc9 j 3532 + 3762: fc2e sd a1,56(sp) + 3764: d0b2 sw a2,96(sp) while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 377a: 8536 mv a0,a3 - 377c: e2cff06f j 2da8 + 3766: 8536 mv a0,a3 + 3768: e2cff06f j 2d94 flt_lead: - 3780: 4581 li a1,0 - 3782: 4f81 li t6,0 - 3784: b3c9 j 3546 + 376c: 4581 li a1,0 + 376e: 4f81 li t6,0 + 3770: b3c9 j 3532 n = pr + lead[0] + tail[0] + tz; - 3786: 06814a03 lbu s4,104(sp) - 378a: 000a0f9b sext.w t6,s4 - 378e: b901 j 339e + 3772: 06814a03 lbu s4,104(sp) + 3776: 000a0f9b sext.w t6,s4 + 377a: b901 j 338a if ((f[1] == '6') && (f[2] == '4')) { - 3790: 0024c683 lbu a3,2(s1) - 3794: 03400713 li a4,52 - 3798: 00e68463 beq a3,a4,37a0 - 379c: e2bfe06f j 25c6 + 377c: 0024c683 lbu a3,2(s1) + 3780: 03400713 li a4,52 + 3784: 00e68463 beq a3,a4,378c + 3788: e2bfe06f j 25b2 switch (f[0]) { - 37a0: 0034c783 lbu a5,3(s1) + 378c: 0034c783 lbu a5,3(s1) fl |= ((sizeof(long) == 8) ? STBSP__INTMAX : 0); - 37a4: 020e6e13 ori t3,t3,32 + 3790: 020e6e13 ori t3,t3,32 f += 3; - 37a8: 048d addi s1,s1,3 - 37aa: d1ffe06f j 24c8 + 3794: 048d addi s1,s1,3 + 3796: d1ffe06f j 24b4 if (pr < (stbsp__int32)l) - 37ae: 0006879b sext.w a5,a3 + 379a: 0006879b sext.w a5,a3 n = pr + lead[0] + tail[0] + tz; - 37b2: 06814a03 lbu s4,104(sp) + 379e: 06814a03 lbu s4,104(sp) if (pr < (stbsp__int32)l) - 37b6: fff7c793 not a5,a5 - 37ba: 97fd srai a5,a5,0x3f - 37bc: 8ff5 and a5,a5,a3 + 37a2: fff7c793 not a5,a5 + 37a6: 97fd srai a5,a5,0x3f + 37a8: 8ff5 and a5,a5,a3 n = pr + lead[0] + tail[0] + tz; - 37be: 00fa063b addw a2,s4,a5 + 37aa: 00fa063b addw a2,s4,a5 s = (char *)sn; - 37c2: 7ae6 ld s5,120(sp) + 37ae: 7ae6 ld s5,120(sp) n = pr + lead[0] + tail[0] + tz; - 37c4: 8732 mv a4,a2 + 37b0: 8732 mv a4,a2 if ((fl & STBSP__LEFTJUST) == 0) { - 37c6: 001e7513 andi a0,t3,1 + 37b2: 001e7513 andi a0,t3,1 if (pr < (stbsp__int32)l) - 37ca: 2781 sext.w a5,a5 + 37b6: 2781 sext.w a5,a5 if (fw < (stbsp__int32)n) - 37cc: 835a mv t1,s6 - 37ce: 00cb5363 bge s6,a2,37d4 - 37d2: 8332 mv t1,a2 + 37b8: 835a mv t1,s6 + 37ba: 00cb5363 bge s6,a2,37c0 + 37be: 8332 mv t1,a2 fw -= n; - 37d4: 40e3033b subw t1,t1,a4 + 37c0: 40e3033b subw t1,t1,a4 goto scopy; - 37d8: 4f81 li t6,0 + 37c4: 4f81 li t6,0 pr -= l; - 37da: 40d7873b subw a4,a5,a3 + 37c6: 40d7873b subw a4,a5,a3 cs = 0; - 37de: 4281 li t0,0 + 37ca: 4281 li t0,0 tz = 0; - 37e0: 4881 li a7,0 + 37cc: 4881 li a7,0 goto scopy; - 37e2: c42ff06f j 2c24 + 37ce: c42ff06f j 2c10 cs = (int)(s - (num + 64)) + (3 << 24); // cs is how many tens - 37e6: 415705b3 sub a1,a4,s5 - 37ea: 030002b7 lui t0,0x3000 - 37ee: 00b282bb addw t0,t0,a1 + 37d2: 415705b3 sub a1,a4,s5 + 37d6: 030002b7 lui t0,0x3000 + 37da: 00b282bb addw t0,t0,a1 l = pr - n; - 37f2: 0008859b sext.w a1,a7 + 37de: 0008859b sext.w a1,a7 if (pr) - 37f6: 42088763 beqz a7,3c24 + 37e2: 42088763 beqz a7,3c10 *s++ = stbsp__period; - 37fa: 0cca4f83 lbu t6,204(s4) + 37e6: 0cca4f83 lbu t6,204(s4) if ((l - dp) > (stbsp__uint32)pr) - 37fe: 41d6833b subw t1,a3,t4 + 37ea: 41d6833b subw t1,a3,t4 *s++ = stbsp__period; - 3802: 00280713 addi a4,a6,2 - 3806: 01f800a3 sb t6,1(a6) + 37ee: 00280713 addi a4,a6,2 + 37f2: 01f800a3 sb t6,1(a6) if ((l - dp) > (stbsp__uint32)pr) - 380a: 4065ed63 bltu a1,t1,3c24 + 37f6: 4065ed63 bltu a1,t1,3c10 while (n < l) { - 380e: 5ed57863 bgeu a0,a3,3dfe - 3812: 40c687bb subw a5,a3,a2 - 3816: 37fd addiw a5,a5,-1 - 3818: 1782 slli a5,a5,0x20 - 381a: 9381 srli a5,a5,0x20 - 381c: 1602 slli a2,a2,0x20 - 381e: 9201 srli a2,a2,0x20 - 3820: 0785 addi a5,a5,1 - 3822: 967a add a2,a2,t5 - 3824: 97ba add a5,a5,a4 + 37fa: 5ed57863 bgeu a0,a3,3dea + 37fe: 40c687bb subw a5,a3,a2 + 3802: 37fd addiw a5,a5,-1 + 3804: 1782 slli a5,a5,0x20 + 3806: 9381 srli a5,a5,0x20 + 3808: 1602 slli a2,a2,0x20 + 380a: 9201 srli a2,a2,0x20 + 380c: 0785 addi a5,a5,1 + 380e: 967a add a2,a2,t5 + 3810: 97ba add a5,a5,a4 *s++ = sn[n]; - 3826: 00064503 lbu a0,0(a2) - 382a: 0705 addi a4,a4,1 + 3812: 00064503 lbu a0,0(a2) + 3816: 0705 addi a4,a4,1 while (n < l) { - 382c: 0605 addi a2,a2,1 + 3818: 0605 addi a2,a2,1 *s++ = sn[n]; - 382e: fea70fa3 sb a0,-1(a4) + 381a: fea70fa3 sb a0,-1(a4) while (n < l) { - 3832: fef71ae3 bne a4,a5,3826 + 381e: fef71ae3 bne a4,a5,3812 tz = pr - (l - dp); - 3836: 01d585bb addw a1,a1,t4 - 383a: 40d588bb subw a7,a1,a3 + 3822: 01d585bb addw a1,a1,t4 + 3826: 40d588bb subw a7,a1,a3 l = (stbsp__uint32)(s - (num + 64)); - 383e: 415787b3 sub a5,a5,s5 - 3842: b99d j 34b8 + 382a: 415787b3 sub a5,a5,s5 + 382e: b99d j 34a4 fl |= STBSP__NEGATIVE; - 3844: 080e6e13 ori t3,t3,128 + 3830: 080e6e13 ori t3,t3,128 tail[0] = 0; - 3848: 06010823 sb zero,112(sp) + 3834: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 384c: b539 j 365a + 3838: b539 j 3646 tail[0] = (char)n; - 384e: 4799 li a5,6 + 383a: 4799 li a5,6 tail[n] = '0' + dp % 10; - 3850: 06b10b23 sb a1,118(sp) + 383c: 06b10b23 sb a1,118(sp) tail[0] = (char)n; - 3854: 06f10823 sb a5,112(sp) + 3840: 06f10823 sb a5,112(sp) tail[n] = '0' + dp % 10; - 3858: 4819 li a6,6 - 385a: 4f99 li t6,6 + 3844: 4819 li a6,6 + 3846: 4f99 li t6,6 n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 385c: 4599 li a1,6 + 3848: 4599 li a1,6 dp /= 10; - 385e: 4f29 li t5,10 + 384a: 4f29 li t5,10 if (n <= 3) - 3860: 428d li t0,3 - 3862: 87b2 mv a5,a2 + 384c: 428d li t0,3 + 384e: 87b2 mv a5,a2 dp /= 10; - 3864: 03e7c7bb divw a5,a5,t5 + 3850: 03e7c7bb divw a5,a5,t5 --n; - 3868: 35fd addiw a1,a1,-1 + 3854: 35fd addiw a1,a1,-1 tail[n] = '0' + dp % 10; - 386a: 02059613 slli a2,a1,0x20 - 386e: 9201 srli a2,a2,0x20 - 3870: 06010e93 addi t4,sp,96 - 3874: 22060613 addi a2,a2,544 - 3878: 9676 add a2,a2,t4 - 387a: 03e7eebb remw t4,a5,t5 - 387e: 030e8e9b addiw t4,t4,48 - 3882: dfd60823 sb t4,-528(a2) + 3856: 02059613 slli a2,a1,0x20 + 385a: 9201 srli a2,a2,0x20 + 385c: 06010e93 addi t4,sp,96 + 3860: 22060613 addi a2,a2,544 + 3864: 9676 add a2,a2,t4 + 3866: 03e7eebb remw t4,a5,t5 + 386a: 030e8e9b addiw t4,t4,48 + 386e: dfd60823 sb t4,-528(a2) if (n <= 3) - 3886: fc559fe3 bne a1,t0,3864 - 388a: e6aff06f j 2ef4 + 3872: fc559fe3 bne a1,t0,3850 + 3876: e6aff06f j 2ee0 *s++ = h[(n64 >> 60) & 15]; - 388e: 93f1 srli a5,a5,0x3c - 3890: 97ae add a5,a5,a1 - 3892: 0007c303 lbu t1,0(a5) + 387a: 93f1 srli a5,a5,0x3c + 387c: 97ae add a5,a5,a1 + 387e: 0007c303 lbu t1,0(a5) lead[1 + lead[0]] = '0'; - 3896: 1088 addi a0,sp,96 - 3898: 22080793 addi a5,a6,544 - 389c: 97aa add a5,a5,a0 - 389e: 03000513 li a0,48 - 38a2: dea78423 sb a0,-536(a5) + 3882: 1088 addi a0,sp,96 + 3884: 22080793 addi a5,a6,544 + 3888: 97aa add a5,a5,a0 + 388a: 03000513 li a0,48 + 388e: dea78423 sb a0,-536(a5) lead[2 + lead[0]] = 'x'; - 38a6: 22068793 addi a5,a3,544 - 38aa: 1094 addi a3,sp,96 - 38ac: 96be add a3,a3,a5 + 3892: 22068793 addi a5,a3,544 + 3896: 1094 addi a3,sp,96 + 3898: 96be add a3,a3,a5 *s++ = stbsp__period; - 38ae: 00004517 auipc a0,0x4 - 38b2: 70654503 lbu a0,1798(a0) # 7fb4 + 389a: 00004517 auipc a0,0x4 + 389e: 74a54503 lbu a0,1866(a0) # 7fe4 lead[2 + lead[0]] = 'x'; - 38b6: 07800813 li a6,120 + 38a2: 07800813 li a6,120 sn = s; - 38ba: 0c210793 addi a5,sp,194 + 38a6: 0c210793 addi a5,sp,194 lead[2 + lead[0]] = 'x'; - 38be: df068423 sb a6,-536(a3) + 38aa: df068423 sb a6,-536(a3) *s++ = stbsp__period; - 38c2: 0ca100a3 sb a0,193(sp) + 38ae: 0ca100a3 sb a0,193(sp) lead[0] += 2; - 38c6: 07410423 sb s4,104(sp) + 38b2: 07410423 sb s4,104(sp) *s++ = h[(n64 >> 60) & 15]; - 38ca: 0c610023 sb t1,192(sp) + 38b6: 0c610023 sb t1,192(sp) n64 <<= 4; - 38ce: 0732 slli a4,a4,0xc + 38ba: 0732 slli a4,a4,0xc sn = s; - 38d0: fcbe sd a5,120(sp) + 38bc: fcbe sd a5,120(sp) n = pr; - 38d2: 0008869b sext.w a3,a7 + 38be: 0008869b sext.w a3,a7 while (n--) { - 38d6: 4831 li a6,12 + 38c2: 4831 li a6,12 if (n > 13) - 38d8: 4535 li a0,13 + 38c4: 4535 li a0,13 tz = pr - n; - 38da: 40a688bb subw a7,a3,a0 + 38c6: 40a688bb subw a7,a3,a0 while (n--) { - 38de: 02081313 slli t1,a6,0x20 - 38e2: 02035313 srli t1,t1,0x20 - 38e6: 22030693 addi a3,t1,544 - 38ea: 1088 addi a0,sp,96 - 38ec: 9536 add a0,a0,a3 - 38ee: e4350513 addi a0,a0,-445 + 38ca: 02081313 slli t1,a6,0x20 + 38ce: 02035313 srli t1,t1,0x20 + 38d2: 22030693 addi a3,t1,544 + 38d6: 1088 addi a0,sp,96 + 38d8: 9536 add a0,a0,a3 + 38da: e4350513 addi a0,a0,-445 *s++ = h[(n64 >> 60) & 15]; - 38f2: 03c75693 srli a3,a4,0x3c - 38f6: 96ae add a3,a3,a1 - 38f8: 0006c683 lbu a3,0(a3) - 38fc: 0785 addi a5,a5,1 + 38de: 03c75693 srli a3,a4,0x3c + 38e2: 96ae add a3,a3,a1 + 38e4: 0006c683 lbu a3,0(a3) + 38e8: 0785 addi a5,a5,1 n64 <<= 4; - 38fe: 0712 slli a4,a4,0x4 + 38ea: 0712 slli a4,a4,0x4 *s++ = h[(n64 >> 60) & 15]; - 3900: fed78fa3 sb a3,-1(a5) + 38ec: fed78fa3 sb a3,-1(a5) while (n--) { - 3904: fea797e3 bne a5,a0,38f2 + 38f0: fea797e3 bne a5,a0,38de l = (int)(s - (num + 64)); - 3908: 280d addiw a6,a6,3 - 390a: 0008069b sext.w a3,a6 + 38f4: 280d addiw a6,a6,3 + 38f6: 0008069b sext.w a3,a6 if (pr < (stbsp__int32)l) - 390e: fff6c713 not a4,a3 - 3912: 977d srai a4,a4,0x3f - 3914: 00e87733 and a4,a6,a4 + 38fa: fff6c713 not a4,a3 + 38fe: 977d srai a4,a4,0x3f + 3900: 00e87733 and a4,a6,a4 dp = (int)(s - sn); - 3918: 0013051b addiw a0,t1,1 + 3904: 0013051b addiw a0,t1,1 if (pr < (stbsp__int32)l) - 391c: 0007031b sext.w t1,a4 + 3908: 0007031b sext.w t1,a4 pr -= l; - 3920: 4107073b subw a4,a4,a6 - 3924: d76ff06f j 2e9a + 390c: 4107073b subw a4,a4,a6 + 3910: d76ff06f j 2e86 *--s = stbsp__comma; - 3928: 00004a17 auipc s4,0x4 - 392c: 5c0a0a13 addi s4,s4,1472 # 7ee8 + 3914: 00004a17 auipc s4,0x4 + 3918: 604a0a13 addi s4,s4,1540 # 7f18 if (n64 >= 100000000) { - 3930: 05f5e7b7 lui a5,0x5f5e - 3934: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f552bf> + 391c: 05f5e7b7 lui a5,0x5f5e + 3920: 0ff78793 addi a5,a5,255 # 5f5e0ff <_ZSt4cerr+0x5f5528f> n = (stbsp__uint32)(n64 % 100000000); - 3938: 05f5e637 lui a2,0x5f5e + 3924: 05f5e637 lui a2,0x5f5e *--s = stbsp__comma; - 393c: 0cda4b83 lbu s7,205(s4) + 3928: 0cda4b83 lbu s7,205(s4) if (n64 >= 100000000) { - 3940: e83e sd a5,16(sp) + 392c: e83e sd a5,16(sp) n = (stbsp__uint32)(n64 % 100000000); - 3942: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f552c0> + 392e: 10060793 addi a5,a2,256 # 5f5e100 <_ZSt4cerr+0x5f55290> l = 0; - 3946: d082 sw zero,96(sp) + 3932: d082 sw zero,96(sp) if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 3948: 040e7813 andi a6,t3,64 - 394c: 4701 li a4,0 - 394e: 4281 li t0,0 + 3934: 040e7813 andi a6,t3,64 + 3938: 4701 li a4,0 + 393a: 4281 li t0,0 s = num + STBSP__NUMSZ; - 3950: 28010a93 addi s5,sp,640 + 393c: 28010a93 addi s5,sp,640 n = (stbsp__uint32)(n64 % 100000000); - 3954: ec3e sd a5,24(sp) + 3940: ec3e sd a5,24(sp) if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 3956: 430d li t1,3 + 3942: 430d li t1,3 n /= 10; - 3958: 45a9 li a1,10 + 3944: 45a9 li a1,10 while (n) { - 395a: 4ea5 li t4,9 + 3946: 4ea5 li t4,9 *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 395c: 06400f93 li t6,100 + 3948: 06400f93 li t6,100 if (n64 >= 100000000) { - 3960: 67c2 ld a5,16(sp) + 394c: 67c2 ld a5,16(sp) char *o = s - 8; - 3962: ff8a8513 addi a0,s5,-8 + 394e: ff8a8513 addi a0,s5,-8 if (n64 >= 100000000) { - 3966: 0fe7f763 bgeu a5,t5,3a54 + 3952: 0fe7f763 bgeu a5,t5,3a40 n = (stbsp__uint32)(n64 % 100000000); - 396a: 6662 ld a2,24(sp) - 396c: 02cf77b3 remu a5,t5,a2 + 3956: 6662 ld a2,24(sp) + 3958: 02cf77b3 remu a5,t5,a2 n64 /= 100000000; - 3970: 02cf5f33 divu t5,t5,a2 + 395c: 02cf5f33 divu t5,t5,a2 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 3974: 0e080463 beqz a6,3a5c + 3960: 0e080463 beqz a6,3a48 while (n) { - 3978: cb85 beqz a5,39a8 + 3964: cb85 beqz a5,3994 *--s = stbsp__comma; - 397a: 1afd addi s5,s5,-1 + 3966: 1afd addi s5,s5,-1 if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 397c: 00671763 bne a4,t1,398a + 3968: 00671763 bne a4,t1,3976 --o; - 3980: 017a8023 sb s7,0(s5) - 3984: 157d addi a0,a0,-1 + 396c: 017a8023 sb s7,0(s5) + 3970: 157d addi a0,a0,-1 *--s = stbsp__comma; - 3986: 1afd addi s5,s5,-1 + 3972: 1afd addi s5,s5,-1 l = 0; - 3988: 4701 li a4,0 + 3974: 4701 li a4,0 if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 398a: 2705 addiw a4,a4,1 + 3976: 2705 addiw a4,a4,1 *--s = (char)(n % 10) + '0'; - 398c: 02b7f63b remuw a2,a5,a1 - 3990: 0306061b addiw a2,a2,48 - 3994: 00ca8023 sb a2,0(s5) + 3978: 02b7f63b remuw a2,a5,a1 + 397c: 0306061b addiw a2,a2,48 + 3980: 00ca8023 sb a2,0(s5) n /= 10; - 3998: 02b7d63b divuw a2,a5,a1 + 3984: 02b7d63b divuw a2,a5,a1 while (n) { - 399c: 00fef563 bgeu t4,a5,39a6 + 3988: 00fef563 bgeu t4,a5,3992 *--s = stbsp__comma; - 39a0: 1afd addi s5,s5,-1 - 39a2: 87b2 mv a5,a2 - 39a4: bfe1 j 397c + 398c: 1afd addi s5,s5,-1 + 398e: 87b2 mv a5,a2 + 3990: bfe1 j 3968 while (n) { - 39a6: 4285 li t0,1 + 3992: 4285 li t0,1 if (n64 == 0) { - 39a8: 020f0063 beqz t5,39c8 + 3994: 020f0063 beqz t5,39b4 while (s != o) - 39ac: fb550ae3 beq a0,s5,3960 + 3998: fb550ae3 beq a0,s5,394c *--s = stbsp__comma; - 39b0: 1afd addi s5,s5,-1 + 399c: 1afd addi s5,s5,-1 if ((fl & STBSP__TRIPLET_COMMA) && (l++ == 3)) { - 39b2: 00080663 beqz a6,39be - 39b6: 08670863 beq a4,t1,3a46 - 39ba: 2705 addiw a4,a4,1 - 39bc: 4285 li t0,1 + 399e: 00080663 beqz a6,39aa + 39a2: 08670863 beq a4,t1,3a32 + 39a6: 2705 addiw a4,a4,1 + 39a8: 4285 li t0,1 *--s = '0'; - 39be: 03000793 li a5,48 - 39c2: 00fa8023 sb a5,0(s5) - 39c6: b7dd j 39ac - 39c8: 00028363 beqz t0,39ce - 39cc: d0ba sw a4,96(sp) + 39aa: 03000793 li a5,48 + 39ae: 00fa8023 sb a5,0(s5) + 39b2: b7dd j 3998 + 39b4: 00028363 beqz t0,39ba + 39b8: d0ba sw a4,96(sp) if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) - 39ce: 000ac703 lbu a4,0(s5) - 39d2: 03000793 li a5,48 - 39d6: 34f70b63 beq a4,a5,3d2c + 39ba: 000ac703 lbu a4,0(s5) + 39be: 03000793 li a5,48 + 39c2: 34f70b63 beq a4,a5,3d18 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 39da: 051c addi a5,sp,640 - 39dc: 415786bb subw a3,a5,s5 + 39c6: 051c addi a5,sp,640 + 39c8: 415786bb subw a3,a5,s5 tail[0] = 0; - 39e0: 06010823 sb zero,112(sp) + 39cc: 06010823 sb zero,112(sp) if (fl & STBSP__NEGATIVE) { - 39e4: 080e7713 andi a4,t3,128 - 39e8: 87f2 mv a5,t3 - 39ea: 32070863 beqz a4,3d1a - 39ee: 678d lui a5,0x3 - 39f0: d017879b addiw a5,a5,-767 # 2d01 + 39d0: 080e7713 andi a4,t3,128 + 39d4: 87f2 mv a5,t3 + 39d6: 32070863 beqz a4,3d06 + 39da: 678d lui a5,0x3 + 39dc: d017879b addiw a5,a5,-767 # 2d01 sign[0] = 1; - 39f4: 06f11423 sh a5,104(sp) - 39f8: 4705 li a4,1 - 39fa: 4a05 li s4,1 + 39e0: 06f11423 sh a5,104(sp) + 39e4: 4705 li a4,1 + 39e6: 4a05 li s4,1 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 39fc: d0b6 sw a3,96(sp) + 39e8: d0b6 sw a3,96(sp) if (l == 0) { - 39fe: 30068163 beqz a3,3d00 + 39ea: 30068163 beqz a3,3cec cs = l + (3 << 24); - 3a02: 030002b7 lui t0,0x3000 - 3a06: 00d282bb addw t0,t0,a3 + 39ee: 030002b7 lui t0,0x3000 + 39f2: 00d282bb addw t0,t0,a3 if (pr < (stbsp__int32)l) - 3a0a: 0006861b sext.w a2,a3 + 39f6: 0006861b sext.w a2,a3 if (pr < 0) - 3a0e: fff8c793 not a5,a7 - 3a12: 97fd srai a5,a5,0x3f + 39fa: fff8c793 not a5,a7 + 39fe: 97fd srai a5,a5,0x3f if (pr < (stbsp__int32)l) - 3a14: 00f8f7b3 and a5,a7,a5 - 3a18: 0007859b sext.w a1,a5 - 3a1c: 00c5d363 bge a1,a2,3a22 - 3a20: 87b2 mv a5,a2 + 3a00: 00f8f7b3 and a5,a7,a5 + 3a04: 0007859b sext.w a1,a5 + 3a08: 00c5d363 bge a1,a2,3a0e + 3a0c: 87b2 mv a5,a2 n = pr + lead[0] + tail[0] + tz; - 3a22: 00f7063b addw a2,a4,a5 - 3a26: 8732 mv a4,a2 + 3a0e: 00f7063b addw a2,a4,a5 + 3a12: 8732 mv a4,a2 if (pr < (stbsp__int32)l) - 3a28: 2781 sext.w a5,a5 + 3a14: 2781 sext.w a5,a5 if ((fl & STBSP__LEFTJUST) == 0) { - 3a2a: 001e7513 andi a0,t3,1 + 3a16: 001e7513 andi a0,t3,1 if (fw < (stbsp__int32)n) - 3a2e: 835a mv t1,s6 - 3a30: 00cb5363 bge s6,a2,3a36 - 3a34: 8332 mv t1,a2 + 3a1a: 835a mv t1,s6 + 3a1c: 00cb5363 bge s6,a2,3a22 + 3a20: 8332 mv t1,a2 fw -= n; - 3a36: 40e3033b subw t1,t1,a4 + 3a22: 40e3033b subw t1,t1,a4 scopy: - 3a3a: 4f81 li t6,0 + 3a26: 4f81 li t6,0 pr -= l; - 3a3c: 40d7873b subw a4,a5,a3 + 3a28: 40d7873b subw a4,a5,a3 tz = 0; - 3a40: 4881 li a7,0 + 3a2c: 4881 li a7,0 scopy: - 3a42: 9e2ff06f j 2c24 + 3a2e: 9e2ff06f j 2c10 *--s = stbsp__comma; - 3a46: 87de mv a5,s7 + 3a32: 87de mv a5,s7 --o; - 3a48: 157d addi a0,a0,-1 + 3a34: 157d addi a0,a0,-1 l = 0; - 3a4a: 4701 li a4,0 + 3a36: 4701 li a4,0 --o; - 3a4c: 4285 li t0,1 - 3a4e: 00fa8023 sb a5,0(s5) - 3a52: bfa9 j 39ac + 3a38: 4285 li t0,1 + 3a3a: 00fa8023 sb a5,0(s5) + 3a3e: bfa9 j 3998 n = (stbsp__uint32)n64; - 3a54: 000f079b sext.w a5,t5 + 3a40: 000f079b sext.w a5,t5 n64 = 0; - 3a58: 4f01 li t5,0 - 3a5a: bf29 j 3974 - 3a5c: f046 sd a7,32(sp) + 3a44: 4f01 li t5,0 + 3a46: bf29 j 3960 + 3a48: f046 sd a7,32(sp) *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 3a5e: 03f7f63b remuw a2,a5,t6 + 3a4a: 03f7f63b remuw a2,a5,t6 s -= 2; - 3a62: 1af9 addi s5,s5,-2 + 3a4e: 1af9 addi s5,s5,-2 *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 3a64: 0007889b sext.w a7,a5 - 3a68: 2605 addiw a2,a2,1 - 3a6a: 0016161b slliw a2,a2,0x1 - 3a6e: 1602 slli a2,a2,0x20 - 3a70: 9201 srli a2,a2,0x20 - 3a72: 9652 add a2,a2,s4 - 3a74: 00065603 lhu a2,0(a2) + 3a50: 0007889b sext.w a7,a5 + 3a54: 2605 addiw a2,a2,1 + 3a56: 0016161b slliw a2,a2,0x1 + 3a5a: 1602 slli a2,a2,0x20 + 3a5c: 9201 srli a2,a2,0x20 + 3a5e: 9652 add a2,a2,s4 + 3a60: 00065603 lhu a2,0(a2) n /= 100; - 3a78: 03f7d7bb divuw a5,a5,t6 + 3a64: 03f7d7bb divuw a5,a5,t6 *(stbsp__uint16 *)s = *(stbsp__uint16 *)&stbsp__digitpair.pair[(n % 100) * 2]; - 3a7c: 00ca9023 sh a2,0(s5) + 3a68: 00ca9023 sh a2,0(s5) } while (n); - 3a80: 06300613 li a2,99 - 3a84: fd166de3 bltu a2,a7,3a5e - 3a88: 7882 ld a7,32(sp) + 3a6c: 06300613 li a2,99 + 3a70: fd166de3 bltu a2,a7,3a4a + 3a74: 7882 ld a7,32(sp) if (n64 == 0) { - 3a8a: f20f11e3 bnez t5,39ac - 3a8e: bf2d j 39c8 + 3a76: f20f11e3 bnez t5,3998 + 3a7a: bf2d j 39b4 *(stbsp__uint32 *)bf = 0x20202020; - 3a90: 20202b37 lui s6,0x20202 + 3a7c: 20202b37 lui s6,0x20202 stbsp__cb_buf_clamp(i, fw); - 3a94: 854a mv a0,s2 + 3a80: 854a mv a0,s2 *bf++ = ' '; - 3a96: 02000a93 li s5,32 + 3a82: 02000a93 li s5,32 *(stbsp__uint32 *)bf = 0x20202020; - 3a9a: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201f91e0> + 3a86: 020b0b13 addi s6,s6,32 # 20202020 <_ZSt4cerr+0x201f91b0> stbsp__chk_cb_buf(1); - 3a9e: 1fe00a13 li s4,510 + 3a8a: 1fe00a13 li s4,510 stbsp__cb_buf_clamp(i, fw); - 3aa2: 20000b93 li s7,512 - 3aa6: 891a mv s2,t1 - 3aa8: 0a098063 beqz s3,3b48 - 3aac: 40a40633 sub a2,s0,a0 - 3ab0: 40cb87bb subw a5,s7,a2 - 3ab4: 873e mv a4,a5 - 3ab6: 00f95363 bge s2,a5,3abc - 3aba: 874a mv a4,s2 - 3abc: 0007079b sext.w a5,a4 + 3a8e: 20000b93 li s7,512 + 3a92: 891a mv s2,t1 + 3a94: 0a098063 beqz s3,3b34 + 3a98: 40a40633 sub a2,s0,a0 + 3a9c: 40cb87bb subw a5,s7,a2 + 3aa0: 873e mv a4,a5 + 3aa2: 00f95363 bge s2,a5,3aa8 + 3aa6: 874a mv a4,s2 + 3aa8: 0007079b sext.w a5,a4 fw -= i; - 3ac0: 40e9093b subw s2,s2,a4 + 3aac: 40e9093b subw s2,s2,a4 while (i) { - 3ac4: e799 bnez a5,3ad2 - 3ac6: a281 j 3c06 + 3ab0: e799 bnez a5,3abe + 3ab2: a281 j 3bf2 *bf++ = ' '; - 3ac8: 01540023 sb s5,0(s0) + 3ab4: 01540023 sb s5,0(s0) --i; - 3acc: 37fd addiw a5,a5,-1 + 3ab8: 37fd addiw a5,a5,-1 *bf++ = ' '; - 3ace: 0405 addi s0,s0,1 + 3aba: 0405 addi s0,s0,1 while (i) { - 3ad0: cba1 beqz a5,3b20 + 3abc: cba1 beqz a5,3b0c if ((((stbsp__uintptr)bf) & 3) == 0) - 3ad2: 00347713 andi a4,s0,3 - 3ad6: fb6d bnez a4,3ac8 + 3abe: 00347713 andi a4,s0,3 + 3ac2: fb6d bnez a4,3ab4 while (i >= 4) { - 3ad8: 470d li a4,3 - 3ada: 40f75363 bge a4,a5,3ee0 - 3ade: ffc7869b addiw a3,a5,-4 - 3ae2: 0026d79b srliw a5,a3,0x2 - 3ae6: 0017871b addiw a4,a5,1 - 3aea: 070a slli a4,a4,0x2 - 3aec: 9722 add a4,a4,s0 + 3ac4: 470d li a4,3 + 3ac6: 40f75363 bge a4,a5,3ecc + 3aca: ffc7869b addiw a3,a5,-4 + 3ace: 0026d79b srliw a5,a3,0x2 + 3ad2: 0017871b addiw a4,a5,1 + 3ad6: 070a slli a4,a4,0x2 + 3ad8: 9722 add a4,a4,s0 *(stbsp__uint32 *)bf = 0x20202020; - 3aee: 01642023 sw s6,0(s0) + 3ada: 01642023 sw s6,0(s0) bf += 4; - 3af2: 0411 addi s0,s0,4 + 3ade: 0411 addi s0,s0,4 while (i >= 4) { - 3af4: fee41de3 bne s0,a4,3aee - 3af8: 0027979b slliw a5,a5,0x2 - 3afc: 40f687bb subw a5,a3,a5 + 3ae0: fee41de3 bne s0,a4,3ada + 3ae4: 0027979b slliw a5,a5,0x2 + 3ae8: 40f687bb subw a5,a3,a5 while (i--) - 3b00: fff7869b addiw a3,a5,-1 - 3b04: cf91 beqz a5,3b20 - 3b06: 9fa1 addw a5,a5,s0 + 3aec: fff7869b addiw a3,a5,-1 + 3af0: cf91 beqz a5,3b0c + 3af2: 9fa1 addw a5,a5,s0 *bf++ = ' '; - 3b08: 0705 addi a4,a4,1 + 3af4: 0705 addi a4,a4,1 while (i--) - 3b0a: 0007061b sext.w a2,a4 + 3af6: 0007061b sext.w a2,a4 *bf++ = ' '; - 3b0e: ff570fa3 sb s5,-1(a4) + 3afa: ff570fa3 sb s5,-1(a4) while (i--) - 3b12: fec79be3 bne a5,a2,3b08 - 3b16: 2685 addiw a3,a3,1 - 3b18: 02069793 slli a5,a3,0x20 - 3b1c: 9381 srli a5,a5,0x20 - 3b1e: 943e add s0,s0,a5 + 3afe: fec79be3 bne a5,a2,3af4 + 3b02: 2685 addiw a3,a3,1 + 3b04: 02069793 slli a5,a3,0x20 + 3b08: 9381 srli a5,a5,0x20 + 3b0a: 943e add s0,s0,a5 stbsp__chk_cb_buf(1); - 3b20: 00098f63 beqz s3,3b3e - 3b24: 40a4063b subw a2,s0,a0 - 3b28: 00ca5b63 bge s4,a2,3b3e - 3b2c: 65a2 ld a1,8(sp) - 3b2e: e81e sd t2,16(sp) - 3b30: 00cd0d3b addw s10,s10,a2 - 3b34: 9982 jalr s3 - 3b36: 80050be3 beqz a0,334c - 3b3a: 63c2 ld t2,16(sp) - 3b3c: 842a mv s0,a0 + 3b0c: 00098f63 beqz s3,3b2a + 3b10: 40a4063b subw a2,s0,a0 + 3b14: 00ca5b63 bge s4,a2,3b2a + 3b18: 65a2 ld a1,8(sp) + 3b1a: e81e sd t2,16(sp) + 3b1c: 00cd0d3b addw s10,s10,a2 + 3b20: 9982 jalr s3 + 3b22: 80050be3 beqz a0,3338 + 3b26: 63c2 ld t2,16(sp) + 3b28: 842a mv s0,a0 while (fw) { - 3b3e: f60915e3 bnez s2,3aa8 - 3b42: 892a mv s2,a0 - 3b44: f21fe06f j 2a64 + 3b2a: f60915e3 bnez s2,3a94 + 3b2e: 892a mv s2,a0 + 3b30: f21fe06f j 2a50 stbsp__cb_buf_clamp(i, fw); - 3b48: 87ca mv a5,s2 + 3b34: 87ca mv a5,s2 fw -= i; - 3b4a: 4901 li s2,0 + 3b36: 4901 li s2,0 if ((((stbsp__uintptr)bf) & 3) == 0) - 3b4c: b759 j 3ad2 + 3b38: b759 j 3abe } else if (fl & STBSP__LEADINGPLUS) { - 3b4e: 002e7713 andi a4,t3,2 - 3b52: 94070663 beqz a4,2c9e + 3b3a: 002e7713 andi a4,t3,2 + 3b3e: 94070663 beqz a4,2c8a sign[0] = 1; - 3b56: 670d lui a4,0x3 - 3b58: b0170713 addi a4,a4,-1279 # 2b01 - 3b5c: 06e11423 sh a4,104(sp) - 3b60: 93eff06f j 2c9e + 3b42: 670d lui a4,0x3 + 3b44: b0170713 addi a4,a4,-1279 # 2b01 + 3b48: 06e11423 sh a4,104(sp) + 3b4c: 93eff06f j 2c8a if (((stbsp__uintptr)sn & 3) == 0) - 3b64: 87d6 mv a5,s5 + 3b50: 87d6 mv a5,s5 while (limit >= 4) { - 3b66: 470d li a4,3 - 3b68: 22d77763 bgeu a4,a3,3d96 + 3b52: 470d li a4,3 + 3b54: 22d77763 bgeu a4,a3,3d82 if ((v - 0x01010101) & (~v) & 0x80808080UL) - 3b6c: feff05b7 lui a1,0xfeff0 - 3b70: 80808637 lui a2,0x80808 - 3b74: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe70bf> - 3b78: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff807ff240> + 3b58: feff05b7 lui a1,0xfeff0 + 3b5c: 80808637 lui a2,0x80808 + 3b60: eff5859b addiw a1,a1,-257 # fffffffffefefeff <_ZSt4cerr+0xfffffffffefe708f> + 3b64: 08060613 addi a2,a2,128 # ffffffff80808080 <_ZSt4cerr+0xffffffff807ff210> while (limit >= 4) { - 3b7c: 480d li a6,3 - 3b7e: a029 j 3b88 + 3b68: 480d li a6,3 + 3b6a: a029 j 3b74 limit -= 4; - 3b80: 36f1 addiw a3,a3,-4 + 3b6c: 36f1 addiw a3,a3,-4 sn += 4; - 3b82: 0791 addi a5,a5,4 + 3b6e: 0791 addi a5,a5,4 while (limit >= 4) { - 3b84: 20d87963 bgeu a6,a3,3d96 + 3b70: 20d87963 bgeu a6,a3,3d82 stbsp__uint32 v = *(stbsp__uint32 *)sn; - 3b88: 4398 lw a4,0(a5) + 3b74: 4398 lw a4,0(a5) if ((v - 0x01010101) & (~v) & 0x80808080UL) - 3b8a: 00b7053b addw a0,a4,a1 - 3b8e: fff74713 not a4,a4 - 3b92: 8f69 and a4,a4,a0 - 3b94: 8f71 and a4,a4,a2 - 3b96: 2701 sext.w a4,a4 - 3b98: d765 beqz a4,3b80 - 3b9a: 02069713 slli a4,a3,0x20 - 3b9e: 9301 srli a4,a4,0x20 - 3ba0: 973e add a4,a4,a5 - 3ba2: a021 j 3baa + 3b76: 00b7053b addw a0,a4,a1 + 3b7a: fff74713 not a4,a4 + 3b7e: 8f69 and a4,a4,a0 + 3b80: 8f71 and a4,a4,a2 + 3b82: 2701 sext.w a4,a4 + 3b84: d765 beqz a4,3b6c + 3b86: 02069713 slli a4,a3,0x20 + 3b8a: 9301 srli a4,a4,0x20 + 3b8c: 973e add a4,a4,a5 + 3b8e: a021 j 3b96 ++sn; - 3ba4: 0785 addi a5,a5,1 + 3b90: 0785 addi a5,a5,1 while (limit && *sn) { - 3ba6: 00e78663 beq a5,a4,3bb2 - 3baa: 0007c683 lbu a3,0(a5) - 3bae: fafd bnez a3,3ba4 - 3bb0: 873e mv a4,a5 + 3b92: 00e78663 beq a5,a4,3b9e + 3b96: 0007c683 lbu a3,0(a5) + 3b9a: fafd bnez a3,3b90 + 3b9c: 873e mv a4,a5 return (stbsp__uint32)(sn - s); - 3bb2: 41570733 sub a4,a4,s5 - 3bb6: 0007069b sext.w a3,a4 + 3b9e: 41570733 sub a4,a4,s5 + 3ba2: 0007069b sext.w a3,a4 if (pr < (stbsp__int32)l) - 3bba: fff6c793 not a5,a3 - 3bbe: 97fd srai a5,a5,0x3f - 3bc0: 8f7d and a4,a4,a5 - 3bc2: 0007079b sext.w a5,a4 + 3ba6: fff6c793 not a5,a3 + 3baa: 97fd srai a5,a5,0x3f + 3bac: 8f7d and a4,a4,a5 + 3bae: 0007079b sext.w a5,a4 n = pr + lead[0] + tail[0] + tz; - 3bc6: 863e mv a2,a5 + 3bb2: 863e mv a2,a5 pr -= l; - 3bc8: 9f15 subw a4,a4,a3 + 3bb4: 9f15 subw a4,a4,a3 return (stbsp__uint32)(sn - s); - 3bca: d2eff06f j 30f8 + 3bb6: d2eff06f j 30e4 for (n = 1; n < l; n++) - 3bce: 4605 li a2,1 - 3bd0: aed663e3 bltu a2,a3,36b6 - 3bd4: 0c210613 addi a2,sp,194 - 3bd8: bcf5 j 36d4 + 3bba: 4605 li a2,1 + 3bbc: aed663e3 bltu a2,a3,36a2 + 3bc0: 0c210613 addi a2,sp,194 + 3bc4: bcf5 j 36c0 l = pr + 1; - 3bda: 4685 li a3,1 + 3bc6: 4685 li a3,1 if ((l - 1) > (stbsp__uint32)pr) - 3bdc: 4501 li a0,0 + 3bc8: 4501 li a0,0 *s++ = sn[0]; - 3bde: 0c110613 addi a2,sp,193 - 3be2: bccd j 36d4 - 3be4: 4591 li a1,4 - 3be6: 4f91 li t6,4 + 3bca: 0c110613 addi a2,sp,193 + 3bce: bccd j 36c0 + 3bd0: 4591 li a1,4 + 3bd2: 4f91 li t6,4 n = (dp >= 100) ? 5 : 4; - 3be8: 4e91 li t4,4 - 3bea: be21 j 3702 - 3bec: 4a85 li s5,1 - 3bee: 80000737 lui a4,0x80000 + 3bd4: 4e91 li t4,4 + 3bd6: be21 j 36ee + 3bd8: 4a85 li s5,1 + 3bda: 80000737 lui a4,0x80000 pr = 1; // default is 6 - 3bf2: 4a05 li s4,1 - 3bf4: 920ff06f j 2d14 + 3bde: 4a05 li s4,1 + 3be0: 920ff06f j 2d00 dp = (n64) ? -1022 : 0; - 3bf8: 4601 li a2,0 - 3bfa: c119 beqz a0,3c00 - 3bfc: c0200613 li a2,-1022 + 3be4: 4601 li a2,0 + 3be6: c119 beqz a0,3bec + 3be8: c0200613 li a2,-1022 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 3c00: 872a mv a4,a0 - 3c02: a3aff06f j 2e3c + 3bec: 872a mv a4,a0 + 3bee: a3aff06f j 2e28 stbsp__chk_cb_buf(1); - 3c06: 2601 sext.w a2,a2 - 3c08: 1fe00793 li a5,510 - 3c0c: f2c7c0e3 blt a5,a2,3b2c - 3c10: bd61 j 3aa8 + 3bf2: 2601 sext.w a2,a2 + 3bf4: 1fe00793 li a5,510 + 3bf8: f2c7c0e3 blt a5,a2,3b18 + 3bfc: bd61 j 3a94 tail[0] = (char)n; - 3c12: 4795 li a5,5 + 3bfe: 4795 li a5,5 tail[n] = '0' + dp % 10; - 3c14: 06b10aa3 sb a1,117(sp) + 3c00: 06b10aa3 sb a1,117(sp) tail[0] = (char)n; - 3c18: 06f10823 sb a5,112(sp) + 3c04: 06f10823 sb a5,112(sp) tail[n] = '0' + dp % 10; - 3c1c: 4815 li a6,5 - 3c1e: 4f95 li t6,5 + 3c08: 4815 li a6,5 + 3c0a: 4f95 li t6,5 n = (dp >= 1000) ? 6 : ((dp >= 100) ? 5 : ((dp >= 10) ? 4 : 3)); - 3c20: 4595 li a1,5 - 3c22: b935 j 385e + 3c0c: 4595 li a1,5 + 3c0e: b935 j 384a l = pr + dp; - 3c24: 011786bb addw a3,a5,a7 - 3c28: d0b6 sw a3,96(sp) - 3c2a: b6d5 j 380e + 3c10: 011786bb addw a3,a5,a7 + 3c14: d0b6 sw a3,96(sp) + 3c16: b6d5 j 37fa s = (char *)"null"; - 3c2c: 00002a97 auipc s5,0x2 - 3c30: 54ca8a93 addi s5,s5,1356 # 6178 <_GLOBAL__sub_I__ZSt3cin+0x174> - 3c34: c80ff06f j 30b4 + 3c18: 00002a97 auipc s5,0x2 + 3c1c: 5c8a8a93 addi s5,s5,1480 # 61e0 <_GLOBAL__sub_I__ZSt3cin+0x1f0> + 3c20: c80ff06f j 30a0 } else if (fl & STBSP__LEADINGPLUS) { - 3c38: 002e7793 andi a5,t3,2 - 3c3c: 1c079c63 bnez a5,3e14 + 3c24: 002e7793 andi a5,t3,2 + 3c28: 1c079c63 bnez a5,3e00 sign[0] = 0; - 3c40: 4689 li a3,2 - 3c42: 4a09 li s4,2 - 3c44: 4805 li a6,1 - 3c46: 9e8ff06f j 2e2e + 3c2c: 4689 li a3,2 + 3c2e: 4a09 li s4,2 + 3c30: 4805 li a6,1 + 3c32: 9e8ff06f j 2e1a sign[0] = 1; - 3c4a: 670d lui a4,0x3 - 3c4c: b0170713 addi a4,a4,-1279 # 2b01 - 3c50: 06e11423 sh a4,104(sp) - 3c54: b86ff06f j 2fda + 3c36: 670d lui a4,0x3 + 3c38: b0170713 addi a4,a4,-1279 # 2b01 + 3c3c: 06e11423 sh a4,104(sp) + 3c40: b86ff06f j 2fc6 pr = 0; - 3c58: 4881 li a7,0 - 3c5a: f1ffe06f j 2b78 + 3c44: 4881 li a7,0 + 3c46: f1ffe06f j 2b64 *s++ = '0'; - 3c5e: 03000713 li a4,48 - 3c62: 0ce10023 sb a4,192(sp) + 3c4a: 03000713 li a4,48 + 3c4e: 0ce10023 sb a4,192(sp) if (pr) - 3c66: 1a088c63 beqz a7,3e1e + 3c52: 1a088c63 beqz a7,3e0a *s++ = stbsp__period; - 3c6a: 00004717 auipc a4,0x4 - 3c6e: 34a74703 lbu a4,842(a4) # 7fb4 + 3c56: 00004717 auipc a4,0x4 + 3c5a: 38e74703 lbu a4,910(a4) # 7fe4 n = -dp; - 3c72: 40f007bb negw a5,a5 + 3c5e: 40f007bb negw a5,a5 *s++ = stbsp__period; - 3c76: 0ce100a3 sb a4,193(sp) + 3c62: 0ce100a3 sb a4,193(sp) if ((stbsp__int32)n > pr) - 3c7a: 0007871b sext.w a4,a5 - 3c7e: 00e8d363 bge a7,a4,3c84 - 3c82: 87c6 mv a5,a7 - 3c84: 0007871b sext.w a4,a5 + 3c66: 0007871b sext.w a4,a5 + 3c6a: 00e8d363 bge a7,a4,3c70 + 3c6e: 87c6 mv a5,a7 + 3c70: 0007871b sext.w a4,a5 if ((stbsp__int32)(l + n) > pr) - 3c88: 00d7833b addw t1,a5,a3 - 3c8c: 883a mv a6,a4 + 3c74: 00d7833b addw t1,a5,a3 + 3c78: 883a mv a6,a4 while (i) { - 3c8e: 0c210793 addi a5,sp,194 + 3c7a: 0c210793 addi a5,sp,194 *s++ = '0'; - 3c92: 03000513 li a0,48 + 3c7e: 03000513 li a0,48 while (i) { - 3c96: e711 bnez a4,3ca2 - 3c98: a271 j 3e24 + 3c82: e711 bnez a4,3c8e + 3c84: a271 j 3e10 if ((((stbsp__uintptr)s) & 3) == 0) - 3c9a: 0037f613 andi a2,a5,3 - 3c9e: 18060563 beqz a2,3e28 + 3c86: 0037f613 andi a2,a5,3 + 3c8a: 18060563 beqz a2,3e14 *s++ = '0'; - 3ca2: 85ba mv a1,a4 - 3ca4: 00a78023 sb a0,0(a5) + 3c8e: 85ba mv a1,a4 + 3c90: 00a78023 sb a0,0(a5) --i; - 3ca8: 377d addiw a4,a4,-1 + 3c94: 377d addiw a4,a4,-1 *s++ = '0'; - 3caa: 0785 addi a5,a5,1 + 3c96: 0785 addi a5,a5,1 while (i) { - 3cac: f77d bnez a4,3c9a + 3c98: f77d bnez a4,3c86 if ((stbsp__int32)(l + n) > pr) - 3cae: 0003071b sext.w a4,t1 - 3cb2: 4108863b subw a2,a7,a6 - 3cb6: 00e8d563 bge a7,a4,3cc0 + 3c9a: 0003071b sext.w a4,t1 + 3c9e: 4108863b subw a2,a7,a6 + 3ca2: 00e8d563 bge a7,a4,3cac l = pr - n; - 3cba: 0006069b sext.w a3,a2 - 3cbe: d0b2 sw a2,96(sp) + 3ca6: 0006069b sext.w a3,a2 + 3caa: d0b2 sw a2,96(sp) while (i) { - 3cc0: c68d beqz a3,3cea - 3cc2: 7566 ld a0,120(sp) - 3cc4: 02069813 slli a6,a3,0x20 - 3cc8: 02085813 srli a6,a6,0x20 - 3ccc: 01078eb3 add t4,a5,a6 - 3cd0: 85aa mv a1,a0 - 3cd2: 873e mv a4,a5 + 3cac: c68d beqz a3,3cd6 + 3cae: 7566 ld a0,120(sp) + 3cb0: 02069813 slli a6,a3,0x20 + 3cb4: 02085813 srli a6,a6,0x20 + 3cb8: 01078eb3 add t4,a5,a6 + 3cbc: 85aa mv a1,a0 + 3cbe: 873e mv a4,a5 *s++ = *sn++; - 3cd4: 0005c883 lbu a7,0(a1) - 3cd8: 0705 addi a4,a4,1 + 3cc0: 0005c883 lbu a7,0(a1) + 3cc4: 0705 addi a4,a4,1 while (i) { - 3cda: 0585 addi a1,a1,1 + 3cc6: 0585 addi a1,a1,1 *s++ = *sn++; - 3cdc: ff170fa3 sb a7,-1(a4) + 3cc8: ff170fa3 sb a7,-1(a4) while (i) { - 3ce0: ffd71ae3 bne a4,t4,3cd4 - 3ce4: 9542 add a0,a0,a6 - 3ce6: 97c2 add a5,a5,a6 - 3ce8: fcaa sd a0,120(sp) + 3ccc: ffd71ae3 bne a4,t4,3cc0 + 3cd0: 9542 add a0,a0,a6 + 3cd2: 97c2 add a5,a5,a6 + 3cd4: fcaa sd a0,120(sp) l = (stbsp__uint32)(s - (num + 64)); - 3cea: 0c010a93 addi s5,sp,192 + 3cd6: 0c010a93 addi s5,sp,192 cs = 1 + (3 << 24); // how many tens did we write (for commas below) - 3cee: 030002b7 lui t0,0x3000 + 3cda: 030002b7 lui t0,0x3000 tz = pr - (n + l); - 3cf2: 40d608bb subw a7,a2,a3 + 3cde: 40d608bb subw a7,a2,a3 l = (stbsp__uint32)(s - (num + 64)); - 3cf6: 415787b3 sub a5,a5,s5 + 3ce2: 415787b3 sub a5,a5,s5 cs = 1 + (3 << 24); // how many tens did we write (for commas below) - 3cfa: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff71c1> - 3cfc: fbcff06f j 34b8 + 3ce6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff7191> + 3ce8: fbcff06f j 34a4 *--s = '0'; - 3d00: 03000793 li a5,48 - 3d04: fefa8fa3 sb a5,-1(s5) + 3cec: 03000793 li a5,48 + 3cf0: fefa8fa3 sb a5,-1(s5) l = 1; - 3d08: 030002b7 lui t0,0x3000 - 3d0c: 4785 li a5,1 - 3d0e: d0be sw a5,96(sp) + 3cf4: 030002b7 lui t0,0x3000 + 3cf8: 4785 li a5,1 + 3cfa: d0be sw a5,96(sp) *--s = '0'; - 3d10: 1afd addi s5,s5,-1 + 3cfc: 1afd addi s5,s5,-1 l = 1; - 3d12: 4605 li a2,1 - 3d14: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff71c1> - 3d16: 4685 li a3,1 - 3d18: b9dd j 3a0e + 3cfe: 4605 li a2,1 + 3d00: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff7191> + 3d02: 4685 li a3,1 + 3d04: b9dd j 39fa } else if (fl & STBSP__LEADINGSPACE) { - 3d1a: 004e7713 andi a4,t3,4 - 3d1e: e74d bnez a4,3dc8 + 3d06: 004e7713 andi a4,t3,4 + 3d0a: e74d bnez a4,3db4 } else if (fl & STBSP__LEADINGPLUS) { - 3d20: 8b89 andi a5,a5,2 - 3d22: efd9 bnez a5,3dc0 + 3d0c: 8b89 andi a5,a5,2 + 3d0e: efd9 bnez a5,3dac sign[0] = 0; - 3d24: 06010423 sb zero,104(sp) - 3d28: 4a01 li s4,0 - 3d2a: b9c9 j 39fc + 3d10: 06010423 sb zero,104(sp) + 3d14: 4a01 li s4,0 + 3d16: b9c9 j 39e8 if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) - 3d2c: 051c addi a5,sp,640 - 3d2e: cafa89e3 beq s5,a5,39e0 + 3d18: 051c addi a5,sp,640 + 3d1a: cafa89e3 beq s5,a5,39cc ++s; - 3d32: 0a85 addi s5,s5,1 + 3d1e: 0a85 addi s5,s5,1 l = (stbsp__uint32)((num + STBSP__NUMSZ) - s); - 3d34: 415786bb subw a3,a5,s5 - 3d38: b165 j 39e0 + 3d20: 415786bb subw a3,a5,s5 + 3d24: b165 j 39cc n = dp - n; - 3d3a: 40ce87bb subw a5,t4,a2 + 3d26: 40ce87bb subw a5,t4,a2 if ((fl & STBSP__TRIPLET_COMMA) == 0) { - 3d3e: 12030e63 beqz t1,3e7a + 3d2a: 12030e63 beqz t1,3e66 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3d42: 4511 li a0,4 - 3d44: 03000613 li a2,48 + 3d2e: 4511 li a0,4 + 3d30: 03000613 li a2,48 *s++ = stbsp__comma; - 3d48: 00170693 addi a3,a4,1 + 3d34: 00170693 addi a3,a4,1 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3d4c: 00030563 beqz t1,3d56 - 3d50: 2585 addiw a1,a1,1 - 3d52: 00a58963 beq a1,a0,3d64 - 3d56: 8736 mv a4,a3 + 3d38: 00030563 beqz t1,3d42 + 3d3c: 2585 addiw a1,a1,1 + 3d3e: 00a58963 beq a1,a0,3d50 + 3d42: 8736 mv a4,a3 --n; - 3d58: 37fd addiw a5,a5,-1 - 3d5a: fec70fa3 sb a2,-1(a4) + 3d44: 37fd addiw a5,a5,-1 + 3d46: fec70fa3 sb a2,-1(a4) while (n) { - 3d5e: f7ed bnez a5,3d48 - 3d60: f38ff06f j 3498 - 3d64: fe568fa3 sb t0,-1(a3) + 3d4a: f7ed bnez a5,3d34 + 3d4c: f38ff06f j 3484 + 3d50: fe568fa3 sb t0,-1(a3) *s++ = stbsp__comma; - 3d68: 0709 addi a4,a4,2 + 3d54: 0709 addi a4,a4,2 if ((fl & STBSP__TRIPLET_COMMA) && (++cs == 4)) { - 3d6a: 4585 li a1,1 - 3d6c: b7f5 j 3d58 + 3d56: 4585 li a1,1 + 3d58: b7f5 j 3d44 sign[0] = 0; - 3d6e: 06010423 sb zero,104(sp) - 3d72: f1dfe06f j 2c8e + 3d5a: 06010423 sb zero,104(sp) + 3d5e: f1dfe06f j 2c7a tail[idx + 1] = "_kMGT"[fl >> 24]; - 3d76: 00002697 auipc a3,0x2 - 3d7a: 41268693 addi a3,a3,1042 # 6188 <_GLOBAL__sub_I__ZSt3cin+0x184> - 3d7e: 9736 add a4,a4,a3 - 3d80: 00074683 lbu a3,0(a4) - 3d84: 1088 addi a0,sp,96 - 3d86: 22060713 addi a4,a2,544 - 3d8a: 972a add a4,a4,a0 - 3d8c: ded70823 sb a3,-528(a4) + 3d62: 00002697 auipc a3,0x2 + 3d66: 48e68693 addi a3,a3,1166 # 61f0 <_GLOBAL__sub_I__ZSt3cin+0x200> + 3d6a: 9736 add a4,a4,a3 + 3d6c: 00074683 lbu a3,0(a4) + 3d70: 1088 addi a0,sp,96 + 3d72: 22060713 addi a4,a2,544 + 3d76: 972a add a4,a4,a0 + 3d78: ded70823 sb a3,-528(a4) idx++; - 3d90: 8fb2 mv t6,a2 - 3d92: fb0ff06f j 3542 + 3d7c: 8fb2 mv t6,a2 + 3d7e: fb0ff06f j 352e while (limit && *sn) { - 3d96: e00692e3 bnez a3,3b9a - 3d9a: bd19 j 3bb0 + 3d82: e00692e3 bnez a3,3b86 + 3d86: bd19 j 3b9c pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 3d9c: 0008071b sext.w a4,a6 - 3da0: 86c2 mv a3,a6 - 3da2: 88d2 mv a7,s4 + 3d88: 0008071b sext.w a4,a6 + 3d8c: 86c2 mv a3,a6 + 3d8e: 88d2 mv a7,s4 pr = -dp + ((pr > (stbsp__int32)l) ? (stbsp__int32) l : pr); - 3da4: 863a mv a2,a4 - 3da6: 00e8d363 bge a7,a4,3dac - 3daa: 8646 mv a2,a7 - 3dac: 40f608bb subw a7,a2,a5 - 3db0: 814ff06f j 2dc4 + 3d90: 863a mv a2,a4 + 3d92: 00e8d363 bge a7,a4,3d98 + 3d96: 8646 mv a2,a7 + 3d98: 40f608bb subw a7,a2,a5 + 3d9c: 814ff06f j 2db0 divisor = 1000.0f; - 3db4: 00003797 auipc a5,0x3 - 3db8: b747b787 fld fa5,-1164(a5) # 6928 - 3dbc: dd5fe06f j 2b90 - 3dc0: 678d lui a5,0x3 - 3dc2: b017879b addiw a5,a5,-1279 # 2b01 - 3dc6: b13d j 39f4 - 3dc8: 6789 lui a5,0x2 - 3dca: 2785 addiw a5,a5,1 # 2001 <_vscanf_core.constprop.0+0x675> - 3dcc: b125 j 39f4 + 3da0: 00003797 auipc a5,0x3 + 3da4: bf07b787 fld fa5,-1040(a5) # 6990 + 3da8: dd5fe06f j 2b7c + 3dac: 678d lui a5,0x3 + 3dae: b017879b addiw a5,a5,-1279 # 2b01 + 3db2: b13d j 39e0 + 3db4: 6789 lui a5,0x2 + 3db6: 2785 addiw a5,a5,1 # 2001 <_vscanf_core.constprop.0+0x689> + 3db8: b125 j 39e0 *s++ = stbsp__period; - 3dce: 00004517 auipc a0,0x4 - 3dd2: 1e654503 lbu a0,486(a0) # 7fb4 + 3dba: 00004517 auipc a0,0x4 + 3dbe: 22a54503 lbu a0,554(a0) # 7fe4 sn = s; - 3dd6: 0c210793 addi a5,sp,194 + 3dc2: 0c210793 addi a5,sp,194 n = pr; - 3dda: 0008869b sext.w a3,a7 + 3dc6: 0008869b sext.w a3,a7 *s++ = stbsp__period; - 3dde: 0ca100a3 sb a0,193(sp) + 3dca: 0ca100a3 sb a0,193(sp) sn = s; - 3de2: fcbe sd a5,120(sp) + 3dce: fcbe sd a5,120(sp) if (n > 13) - 3de4: 4535 li a0,13 + 3dd0: 4535 li a0,13 n64 <<= 4; - 3de6: 0712 slli a4,a4,0x4 + 3dd2: 0712 slli a4,a4,0x4 if (n > 13) - 3de8: 8836 mv a6,a3 - 3dea: 00d57363 bgeu a0,a3,3df0 - 3dee: 4835 li a6,13 - 3df0: 0008051b sext.w a0,a6 + 3dd4: 8836 mv a6,a3 + 3dd6: 00d57363 bgeu a0,a3,3ddc + 3dda: 4835 li a6,13 + 3ddc: 0008051b sext.w a0,a6 while (n--) { - 3df4: 387d addiw a6,a6,-1 + 3de0: 387d addiw a6,a6,-1 if (pr > (stbsp__int32)n) - 3df6: af1542e3 blt a0,a7,38da + 3de2: af1542e3 blt a0,a7,38c6 tz = 0; - 3dfa: 4881 li a7,0 - 3dfc: b4cd j 38de + 3de6: 4881 li a7,0 + 3de8: b4cd j 38ca while (n < l) { - 3dfe: 87ba mv a5,a4 - 3e00: bc1d j 3836 + 3dea: 87ba mv a5,a4 + 3dec: bc1d j 3822 tail[0] = (char)n; - 3e02: 478d li a5,3 - 3e04: 06f10823 sb a5,112(sp) + 3dee: 478d li a5,3 + 3df0: 06f10823 sb a5,112(sp) tail[n] = '0' + dp % 10; - 3e08: 06b109a3 sb a1,115(sp) - 3e0c: 480d li a6,3 - 3e0e: 4f8d li t6,3 - 3e10: 8e4ff06f j 2ef4 - 3e14: 678d lui a5,0x3 - 3e16: b017879b addiw a5,a5,-1279 # 2b01 - 3e1a: 80aff06f j 2e24 + 3df4: 06b109a3 sb a1,115(sp) + 3df8: 480d li a6,3 + 3dfa: 4f8d li t6,3 + 3dfc: 8e4ff06f j 2ee0 + 3e00: 678d lui a5,0x3 + 3e02: b017879b addiw a5,a5,-1279 # 2b01 + 3e06: 80aff06f j 2e10 if (pr) - 3e1e: 8336 mv t1,a3 + 3e0a: 8336 mv t1,a3 *s++ = '0'; - 3e20: 0c110793 addi a5,sp,193 + 3e0c: 0c110793 addi a5,sp,193 while (i) { - 3e24: 4801 li a6,0 - 3e26: b561 j 3cae + 3e10: 4801 li a6,0 + 3e12: b561 j 3c9a while (i >= 4) { - 3e28: 460d li a2,3 - 3e2a: 04e65663 bge a2,a4,3e76 - 3e2e: ffb5871b addiw a4,a1,-5 - 3e32: 0027559b srliw a1,a4,0x2 - 3e36: 0015861b addiw a2,a1,1 - 3e3a: 060a slli a2,a2,0x2 + 3e14: 460d li a2,3 + 3e16: 04e65663 bge a2,a4,3e62 + 3e1a: ffb5871b addiw a4,a1,-5 + 3e1e: 0027559b srliw a1,a4,0x2 + 3e22: 0015861b addiw a2,a1,1 + 3e26: 060a slli a2,a2,0x2 *(stbsp__uint32 *)s = 0x30303030; - 3e3c: 30303537 lui a0,0x30303 - 3e40: 963e add a2,a2,a5 - 3e42: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fa1f0> - 3e46: c388 sw a0,0(a5) + 3e28: 30303537 lui a0,0x30303 + 3e2c: 963e add a2,a2,a5 + 3e2e: 03050513 addi a0,a0,48 # 30303030 <_ZSt4cerr+0x302fa1c0> + 3e32: c388 sw a0,0(a5) s += 4; - 3e48: 0791 addi a5,a5,4 + 3e34: 0791 addi a5,a5,4 while (i >= 4) { - 3e4a: fef61ee3 bne a2,a5,3e46 - 3e4e: 0025959b slliw a1,a1,0x2 - 3e52: 9f0d subw a4,a4,a1 + 3e36: fef61ee3 bne a2,a5,3e32 + 3e3a: 0025959b slliw a1,a1,0x2 + 3e3e: 9f0d subw a4,a4,a1 while (i) { - 3e54: e4070de3 beqz a4,3cae + 3e40: e4070de3 beqz a4,3c9a *s++ = '0'; - 3e58: 03000513 li a0,48 + 3e44: 03000513 li a0,48 while (i) { - 3e5c: 00f705bb addw a1,a4,a5 + 3e48: 00f705bb addw a1,a4,a5 *s++ = '0'; - 3e60: 0605 addi a2,a2,1 + 3e4c: 0605 addi a2,a2,1 while (i) { - 3e62: 00060e9b sext.w t4,a2 + 3e4e: 00060e9b sext.w t4,a2 *s++ = '0'; - 3e66: fea60fa3 sb a0,-1(a2) + 3e52: fea60fa3 sb a0,-1(a2) while (i) { - 3e6a: ffd59be3 bne a1,t4,3e60 - 3e6e: 1702 slli a4,a4,0x20 - 3e70: 9301 srli a4,a4,0x20 - 3e72: 97ba add a5,a5,a4 - 3e74: bd2d j 3cae + 3e56: ffd59be3 bne a1,t4,3e4c + 3e5a: 1702 slli a4,a4,0x20 + 3e5c: 9301 srli a4,a4,0x20 + 3e5e: 97ba add a5,a5,a4 + 3e60: bd2d j 3c9a while (i >= 4) { - 3e76: 863e mv a2,a5 - 3e78: b7c5 j 3e58 + 3e62: 863e mv a2,a5 + 3e64: b7c5 j 3e44 if ((((stbsp__uintptr)s) & 3) == 0) - 3e7a: 00377693 andi a3,a4,3 - 3e7e: ce81 beqz a3,3e96 + 3e66: 00377693 andi a3,a4,3 + 3e6a: ce81 beqz a3,3e82 *s++ = '0'; - 3e80: 03000693 li a3,48 - 3e84: 00d70023 sb a3,0(a4) + 3e6c: 03000693 li a3,48 + 3e70: 00d70023 sb a3,0(a4) --n; - 3e88: 37fd addiw a5,a5,-1 + 3e74: 37fd addiw a5,a5,-1 *s++ = '0'; - 3e8a: 0705 addi a4,a4,1 + 3e76: 0705 addi a4,a4,1 while (n) { - 3e8c: e0078663 beqz a5,3498 + 3e78: e0078663 beqz a5,3484 if ((((stbsp__uintptr)s) & 3) == 0) - 3e90: 00377613 andi a2,a4,3 - 3e94: fa65 bnez a2,3e84 + 3e7c: 00377613 andi a2,a4,3 + 3e80: fa65 bnez a2,3e70 while (n >= 4) { - 3e96: 468d li a3,3 - 3e98: eaf6f5e3 bgeu a3,a5,3d42 - 3e9c: ffc7869b addiw a3,a5,-4 - 3ea0: 0026d69b srliw a3,a3,0x2 - 3ea4: 2685 addiw a3,a3,1 - 3ea6: 068a slli a3,a3,0x2 + 3e82: 468d li a3,3 + 3e84: eaf6f5e3 bgeu a3,a5,3d2e + 3e88: ffc7869b addiw a3,a5,-4 + 3e8c: 0026d69b srliw a3,a3,0x2 + 3e90: 2685 addiw a3,a3,1 + 3e92: 068a slli a3,a3,0x2 *(stbsp__uint32 *)s = 0x30303030; - 3ea8: 30303637 lui a2,0x30303 - 3eac: 96ba add a3,a3,a4 - 3eae: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fa1f0> - 3eb2: c310 sw a2,0(a4) + 3e94: 30303637 lui a2,0x30303 + 3e98: 96ba add a3,a3,a4 + 3e9a: 03060613 addi a2,a2,48 # 30303030 <_ZSt4cerr+0x302fa1c0> + 3e9e: c310 sw a2,0(a4) s += 4; - 3eb4: 0711 addi a4,a4,4 + 3ea0: 0711 addi a4,a4,4 while (n >= 4) { - 3eb6: fed71ee3 bne a4,a3,3eb2 - 3eba: 8b8d andi a5,a5,3 + 3ea2: fed71ee3 bne a4,a3,3e9e + 3ea6: 8b8d andi a5,a5,3 while (n) { - 3ebc: e80793e3 bnez a5,3d42 - 3ec0: dd8ff06f j 3498 + 3ea8: e80793e3 bnez a5,3d2e + 3eac: dd8ff06f j 3484 if (((stbsp__uintptr)sn & 3) == 0) - 3ec4: 87d6 mv a5,s5 + 3eb0: 87d6 mv a5,s5 l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 3ec6: 56fd li a3,-1 - 3ec8: b155 j 3b6c + 3eb2: 56fd li a3,-1 + 3eb4: b155 j 3b58 if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 3eca: 5775 li a4,-3 - 3ecc: 00e7ce63 blt a5,a4,3ee8 - 3ed0: f6fa4663 blt s4,a5,363c + 3eb6: 5775 li a4,-3 + 3eb8: 00e7ce63 blt a5,a4,3ed4 + 3ebc: f6fa4663 blt s4,a5,3628 if (dp > 0) { - 3ed4: ecf054e3 blez a5,3d9c - 3ed8: 86c2 mv a3,a6 + 3ec0: ecf054e3 blez a5,3d88 + 3ec4: 86c2 mv a3,a6 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 3eda: 4881 li a7,0 - 3edc: ee9fe06f j 2dc4 + 3ec6: 4881 li a7,0 + 3ec8: ee9fe06f j 2db0 while (i--) - 3ee0: fff7869b addiw a3,a5,-1 - 3ee4: 8722 mv a4,s0 - 3ee6: b105 j 3b06 + 3ecc: fff7869b addiw a3,a5,-1 + 3ed0: 8722 mv a4,s0 + 3ed2: b105 j 3af2 if (pr > (stbsp__int32)l) - 3ee8: 0008071b sext.w a4,a6 + 3ed4: 0008071b sext.w a4,a6 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 3eec: 7ae6 ld s5,120(sp) + 3ed8: 7ae6 ld s5,120(sp) if (pr > (stbsp__int32)l) - 3eee: 86c2 mv a3,a6 - 3ef0: 88d2 mv a7,s4 - 3ef2: f7475d63 bge a4,s4,366c + 3eda: 86c2 mv a3,a6 + 3edc: 88d2 mv a7,s4 + 3ede: f7475d63 bge a4,s4,3658 while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 3ef6: 8542 mv a0,a6 - 3ef8: f56ff06f j 364e + 3ee2: 8542 mv a0,a6 + 3ee4: f56ff06f j 363a -0000000000003efc : +0000000000003ee8 : { - 3efc: 715d addi sp,sp,-80 + 3ee8: 715d addi sp,sp,-80 va_start(va, fmt); - 3efe: 02010313 addi t1,sp,32 + 3eea: 02010313 addi t1,sp,32 { - 3f02: f032 sd a2,32(sp) - 3f04: f436 sd a3,40(sp) - 3f06: f83a sd a4,48(sp) + 3eee: f032 sd a2,32(sp) + 3ef0: f436 sd a3,40(sp) + 3ef2: f83a sd a4,48(sp) result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); - 3f08: 86ae mv a3,a1 - 3f0a: 862a mv a2,a0 - 3f0c: 871a mv a4,t1 - 3f0e: 4581 li a1,0 - 3f10: 4501 li a0,0 + 3ef4: 86ae mv a3,a1 + 3ef6: 862a mv a2,a0 + 3ef8: 871a mv a4,t1 + 3efa: 4581 li a1,0 + 3efc: 4501 li a0,0 { - 3f12: ec06 sd ra,24(sp) - 3f14: fc3e sd a5,56(sp) - 3f16: e0c2 sd a6,64(sp) - 3f18: e4c6 sd a7,72(sp) + 3efe: ec06 sd ra,24(sp) + 3f00: fc3e sd a5,56(sp) + 3f02: e0c2 sd a6,64(sp) + 3f04: e4c6 sd a7,72(sp) va_start(va, fmt); - 3f1a: e41a sd t1,8(sp) + 3f06: e41a sd t1,8(sp) result = STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); - 3f1c: bc6fe0ef jal 22e2 + 3f08: bc6fe0ef jal 22ce } - 3f20: 60e2 ld ra,24(sp) - 3f22: 6161 addi sp,sp,80 - 3f24: 8082 ret + 3f0c: 60e2 ld ra,24(sp) + 3f0e: 6161 addi sp,sp,80 + 3f10: 8082 ret -0000000000003f26 : +0000000000003f12 : { - 3f26: dd010113 addi sp,sp,-560 - 3f2a: 22813023 sd s0,544(sp) - 3f2e: 20913c23 sd s1,536(sp) - 3f32: 22113423 sd ra,552(sp) - 3f36: 84ae mv s1,a1 - 3f38: 842a mv s0,a0 - 3f3a: 88b2 mv a7,a2 - 3f3c: 8736 mv a4,a3 + 3f12: dd010113 addi sp,sp,-560 + 3f16: 22813023 sd s0,544(sp) + 3f1a: 20913c23 sd s1,536(sp) + 3f1e: 22113423 sd ra,552(sp) + 3f22: 84ae mv s1,a1 + 3f24: 842a mv s0,a0 + 3f26: 88b2 mv a7,a2 + 3f28: 8736 mv a4,a3 if ( (count == 0) && !buf ) - 3f3e: e591 bnez a1,3f4a - 3f40: c141 beqz a0,3fc0 + 3f2a: e591 bnez a1,3f36 + 3f2c: c141 beqz a0,3fac c.buf = buf; - 3f42: e02a sd a0,0(sp) + 3f2e: e02a sd a0,0(sp) c.count = count; - 3f44: e402 sd zero,8(sp) + 3f30: e402 sd zero,8(sp) return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can - 3f46: 0810 addi a2,sp,16 - 3f48: a089 j 3f8a + 3f32: 0810 addi a2,sp,16 + 3f34: a089 j 3f76 if (len > c->count) - 3f4a: 0015a593 slti a1,a1,1 - 3f4e: 40b005bb negw a1,a1 - 3f52: 8de5 and a1,a1,s1 + 3f36: 0015a593 slti a1,a1,1 + 3f3a: 40b005bb negw a1,a1 + 3f3e: 8de5 and a1,a1,s1 c.buf = buf; - 3f54: e02a sd a0,0(sp) + 3f40: e02a sd a0,0(sp) c.count = count; - 3f56: c426 sw s1,8(sp) + 3f42: c426 sw s1,8(sp) c.length = 0; - 3f58: c602 sw zero,12(sp) + 3f44: c602 sw zero,12(sp) if (len > c->count) - 3f5a: 2581 sext.w a1,a1 + 3f46: 2581 sext.w a1,a1 if (len) { - 3f5c: 0804d663 bgez s1,3fe8 + 3f48: 0804d663 bgez s1,3fd4 s = buf; - 3f60: 4781 li a5,0 + 3f4c: 4781 li a5,0 if (buf != c->buf) { - 3f62: c911 beqz a0,3f76 + 3f4e: c911 beqz a0,3f62 *d++ = *s++; - 3f64: 0007c803 lbu a6,0(a5) - 3f68: 0785 addi a5,a5,1 - 3f6a: 00f40533 add a0,s0,a5 - 3f6e: ff050fa3 sb a6,-1(a0) + 3f50: 0007c803 lbu a6,0(a5) + 3f54: 0785 addi a5,a5,1 + 3f56: 00f40533 add a0,s0,a5 + 3f5a: ff050fa3 sb a6,-1(a0) } while (s < se); - 3f72: feb7e9e3 bltu a5,a1,3f64 + 3f5e: feb7e9e3 bltu a5,a1,3f50 c->count -= len; - 3f76: 40b486bb subw a3,s1,a1 + 3f62: 40b486bb subw a3,s1,a1 c->buf += len; - 3f7a: 95a2 add a1,a1,s0 - 3f7c: e02e sd a1,0(sp) + 3f66: 95a2 add a1,a1,s0 + 3f68: e02e sd a1,0(sp) c->count -= len; - 3f7e: c436 sw a3,8(sp) + 3f6a: c436 sw a3,8(sp) return (c->count >= STB_SPRINTF_MIN) ? c->buf : c->tmp; // go direct into buffer if you can - 3f80: 1ff00793 li a5,511 - 3f84: fcd7d1e3 bge a5,a3,3f46 - 3f88: 6602 ld a2,0(sp) + 3f6c: 1ff00793 li a5,511 + 3f70: fcd7d1e3 bge a5,a3,3f32 + 3f74: 6602 ld a2,0(sp) STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__clamp_callback, &c, stbsp__clamp_callback(0,&c,0), fmt, va ); - 3f8a: 86c6 mv a3,a7 - 3f8c: 858a mv a1,sp - 3f8e: ffffd517 auipc a0,0xffffd - 3f92: 21650513 addi a0,a0,534 # 11a4 - 3f96: b4cfe0ef jal 22e2 + 3f76: 86c6 mv a3,a7 + 3f78: 858a mv a1,sp + 3f7a: ffffd517 auipc a0,0xffffd + 3f7e: 21650513 addi a0,a0,534 # 1190 + 3f82: b4cfe0ef jal 22ce l = (int)( c.buf - buf ); - 3f9a: 6782 ld a5,0(sp) - 3f9c: 9f81 subw a5,a5,s0 + 3f86: 6782 ld a5,0(sp) + 3f88: 9f81 subw a5,a5,s0 if ( l >= count ) // should never be greater, only equal (or less) than count - 3f9e: 0097c463 blt a5,s1,3fa6 + 3f8a: 0097c463 blt a5,s1,3f92 l = count - 1; - 3fa2: fff4879b addiw a5,s1,-1 + 3f8e: fff4879b addiw a5,s1,-1 buf[l] = 0; - 3fa6: 943e add s0,s0,a5 - 3fa8: 00040023 sb zero,0(s0) -} - 3fac: 22813083 ld ra,552(sp) - 3fb0: 22013403 ld s0,544(sp) - 3fb4: 4532 lw a0,12(sp) - 3fb6: 21813483 ld s1,536(sp) - 3fba: 23010113 addi sp,sp,560 - 3fbe: 8082 ret + 3f92: 943e add s0,s0,a5 + 3f94: 00040023 sb zero,0(s0) +} + 3f98: 22813083 ld ra,552(sp) + 3f9c: 22013403 ld s0,544(sp) + 3fa0: 4532 lw a0,12(sp) + 3fa2: 21813483 ld s1,536(sp) + 3fa6: 23010113 addi sp,sp,560 + 3faa: 8082 ret STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); - 3fc0: 86b2 mv a3,a2 - 3fc2: 858a mv a1,sp - 3fc4: 0810 addi a2,sp,16 - 3fc6: ffffd517 auipc a0,0xffffd - 3fca: 22c50513 addi a0,a0,556 # 11f2 + 3fac: 86b2 mv a3,a2 + 3fae: 858a mv a1,sp + 3fb0: 0810 addi a2,sp,16 + 3fb2: ffffd517 auipc a0,0xffffd + 3fb6: 22c50513 addi a0,a0,556 # 11de c.length = 0; - 3fce: c602 sw zero,12(sp) + 3fba: c602 sw zero,12(sp) STB_SPRINTF_DECORATE( vsprintfcb )( stbsp__count_clamp_callback, &c, c.tmp, fmt, va ); - 3fd0: b12fe0ef jal 22e2 -} - 3fd4: 22813083 ld ra,552(sp) - 3fd8: 22013403 ld s0,544(sp) - 3fdc: 4532 lw a0,12(sp) - 3fde: 21813483 ld s1,536(sp) - 3fe2: 23010113 addi sp,sp,560 - 3fe6: 8082 ret - 3fe8: 86a6 mv a3,s1 - 3fea: bf59 j 3f80 - -0000000000003fec : + 3fbc: b12fe0ef jal 22ce +} + 3fc0: 22813083 ld ra,552(sp) + 3fc4: 22013403 ld s0,544(sp) + 3fc8: 4532 lw a0,12(sp) + 3fca: 21813483 ld s1,536(sp) + 3fce: 23010113 addi sp,sp,560 + 3fd2: 8082 ret + 3fd4: 86a6 mv a3,s1 + 3fd6: bf59 j 3f6c + +0000000000003fd8 : { - 3fec: 715d addi sp,sp,-80 + 3fd8: 715d addi sp,sp,-80 va_start(va, fmt); - 3fee: 02810313 addi t1,sp,40 + 3fda: 02810313 addi t1,sp,40 { - 3ff2: f436 sd a3,40(sp) + 3fde: f436 sd a3,40(sp) result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); - 3ff4: 869a mv a3,t1 + 3fe0: 869a mv a3,t1 { - 3ff6: ec06 sd ra,24(sp) - 3ff8: f83a sd a4,48(sp) - 3ffa: fc3e sd a5,56(sp) - 3ffc: e0c2 sd a6,64(sp) - 3ffe: e4c6 sd a7,72(sp) + 3fe2: ec06 sd ra,24(sp) + 3fe4: f83a sd a4,48(sp) + 3fe6: fc3e sd a5,56(sp) + 3fe8: e0c2 sd a6,64(sp) + 3fea: e4c6 sd a7,72(sp) va_start(va, fmt); - 4000: e41a sd t1,8(sp) + 3fec: e41a sd t1,8(sp) result = STB_SPRINTF_DECORATE(vsnprintf)(buf, count, fmt, va); - 4002: f25ff0ef jal 3f26 + 3fee: f25ff0ef jal 3f12 } - 4006: 60e2 ld ra,24(sp) - 4008: 6161 addi sp,sp,80 - 400a: 8082 ret + 3ff2: 60e2 ld ra,24(sp) + 3ff4: 6161 addi sp,sp,80 + 3ff6: 8082 ret -000000000000400c : +0000000000003ff8 : { - 400c: 86ae mv a3,a1 - 400e: 8732 mv a4,a2 + 3ff8: 86ae mv a3,a1 + 3ffa: 8732 mv a4,a2 return STB_SPRINTF_DECORATE(vsprintfcb)(0, 0, buf, fmt, va); - 4010: 4581 li a1,0 - 4012: 862a mv a2,a0 - 4014: 4501 li a0,0 - 4016: accfe06f j 22e2 + 3ffc: 4581 li a1,0 + 3ffe: 862a mv a2,a0 + 4000: 4501 li a0,0 + 4002: accfe06f j 22ce -000000000000401a : +0000000000004006 : { - 401a: 7119 addi sp,sp,-128 + 4006: 7119 addi sp,sp,-128 va_start(ap, format); - 401c: 05010313 addi t1,sp,80 + 4008: 05010313 addi t1,sp,80 { - 4020: e0a2 sd s0,64(sp) - 4022: fc26 sd s1,56(sp) - 4024: 842a mv s0,a0 - 4026: e8b2 sd a2,80(sp) + 400c: e0a2 sd s0,64(sp) + 400e: fc26 sd s1,56(sp) + 4010: 842a mv s0,a0 + 4012: e8b2 sd a2,80(sp) _vprintf_core(&ctx, format, ap); - 4028: 0808 addi a0,sp,16 + 4014: 0808 addi a0,sp,16 ctx.limit = size; - 402a: 54fd li s1,-1 + 4016: 54fd li s1,-1 _vprintf_core(&ctx, format, ap); - 402c: 861a mv a2,t1 + 4018: 861a mv a2,t1 { - 402e: e486 sd ra,72(sp) - 4030: ecb6 sd a3,88(sp) - 4032: f0ba sd a4,96(sp) - 4034: f4be sd a5,104(sp) - 4036: f8c2 sd a6,112(sp) - 4038: fcc6 sd a7,120(sp) + 401a: e486 sd ra,72(sp) + 401c: ecb6 sd a3,88(sp) + 401e: f0ba sd a4,96(sp) + 4020: f4be sd a5,104(sp) + 4022: f8c2 sd a6,112(sp) + 4024: fcc6 sd a7,120(sp) va_start(ap, format); - 403a: e41a sd t1,8(sp) + 4026: e41a sd t1,8(sp) ctx.buf = str; - 403c: e822 sd s0,16(sp) + 4028: e822 sd s0,16(sp) ctx.limit = size; - 403e: ec26 sd s1,24(sp) + 402a: ec26 sd s1,24(sp) ctx.written = 0; - 4040: f002 sd zero,32(sp) + 402c: f002 sd zero,32(sp) ctx.stream = NULL; - 4042: f402 sd zero,40(sp) + 402e: f402 sd zero,40(sp) _vprintf_core(&ctx, format, ap); - 4044: 02c000ef jal 4070 <_vprintf_core.constprop.0.isra.0> + 4030: 02c000ef jal 405c <_vprintf_core.constprop.0.isra.0> if (ctx.written < size) - 4048: 7502 ld a0,32(sp) - 404a: 00950b63 beq a0,s1,4060 + 4034: 7502 ld a0,32(sp) + 4036: 00950b63 beq a0,s1,404c str[ctx.written] = '\0'; - 404e: 942a add s0,s0,a0 - 4050: 00040023 sb zero,0(s0) -} - 4054: 60a6 ld ra,72(sp) - 4056: 6406 ld s0,64(sp) - 4058: 74e2 ld s1,56(sp) - 405a: 2501 sext.w a0,a0 - 405c: 6109 addi sp,sp,128 - 405e: 8082 ret + 403a: 942a add s0,s0,a0 + 403c: 00040023 sb zero,0(s0) +} + 4040: 60a6 ld ra,72(sp) + 4042: 6406 ld s0,64(sp) + 4044: 74e2 ld s1,56(sp) + 4046: 2501 sext.w a0,a0 + 4048: 6109 addi sp,sp,128 + 404a: 8082 ret str[size - 1] = '\0'; - 4060: fe040f23 sb zero,-2(s0) + 404c: fe040f23 sb zero,-2(s0) } - 4064: 60a6 ld ra,72(sp) - 4066: 6406 ld s0,64(sp) - 4068: 74e2 ld s1,56(sp) - 406a: 2501 sext.w a0,a0 - 406c: 6109 addi sp,sp,128 - 406e: 8082 ret + 4050: 60a6 ld ra,72(sp) + 4052: 6406 ld s0,64(sp) + 4054: 74e2 ld s1,56(sp) + 4056: 2501 sext.w a0,a0 + 4058: 6109 addi sp,sp,128 + 405a: 8082 ret -0000000000004070 <_vprintf_core.constprop.0.isra.0>: +000000000000405c <_vprintf_core.constprop.0.isra.0>: static int _vprintf_core(_OutContext *ctx, const char *format, va_list ap) - 4070: 7129 addi sp,sp,-320 - 4072: edee sd s11,216(sp) - 4074: fe06 sd ra,312(sp) - 4076: 8dae mv s11,a1 + 405c: 7129 addi sp,sp,-320 + 405e: edee sd s11,216(sp) + 4060: fe06 sd ra,312(sp) + 4062: 8dae mv s11,a1 while (*p) - 4078: 0005c583 lbu a1,0(a1) - 407c: cde9 beqz a1,4156 <_vprintf_core.constprop.0.isra.0+0xe6> - 407e: f626 sd s1,296(sp) - 4080: f24a sd s2,288(sp) - 4082: ee4e sd s3,280(sp) - 4084: e656 sd s5,264(sp) - 4086: f9e2 sd s8,240(sp) - 4088: fa22 sd s0,304(sp) - 408a: ea52 sd s4,272(sp) - 408c: e25a sd s6,256(sp) - 408e: fdde sd s7,248(sp) - 4090: f5e6 sd s9,232(sp) - 4092: f1ea sd s10,224(sp) - 4094: 84aa mv s1,a0 - 4096: 8c32 mv s8,a2 + 4064: 0005c583 lbu a1,0(a1) + 4068: cde9 beqz a1,4142 <_vprintf_core.constprop.0.isra.0+0xe6> + 406a: f626 sd s1,296(sp) + 406c: f24a sd s2,288(sp) + 406e: ee4e sd s3,280(sp) + 4070: e656 sd s5,264(sp) + 4072: f9e2 sd s8,240(sp) + 4074: fa22 sd s0,304(sp) + 4076: ea52 sd s4,272(sp) + 4078: e25a sd s6,256(sp) + 407a: fdde sd s7,248(sp) + 407c: f5e6 sd s9,232(sp) + 407e: f1ea sd s10,224(sp) + 4080: 84aa mv s1,a0 + 4082: 8c32 mv s8,a2 if (*p != '%') - 4098: 02500a93 li s5,37 - 409c: 49c1 li s3,16 - 409e: 00002917 auipc s2,0x2 - 40a2: 3be90913 addi s2,s2,958 # 645c <_GLOBAL__sub_I__ZSt3cin+0x458> - 40a6: a039 j 40b4 <_vprintf_core.constprop.0.isra.0+0x44> + 4084: 02500a93 li s5,37 + 4088: 49c1 li s3,16 + 408a: 00002917 auipc s2,0x2 + 408e: 43a90913 addi s2,s2,1082 # 64c4 <_GLOBAL__sub_I__ZSt3cin+0x4d4> + 4092: a039 j 40a0 <_vprintf_core.constprop.0.isra.0+0x44> _out_char(ctx, spec); - 40a8: 8526 mv a0,s1 - 40aa: 952fe0ef jal 21fc <_out_char> + 4094: 8526 mv a0,s1 + 4096: 952fe0ef jal 21e8 <_out_char> while (*p) - 40ae: 000dc583 lbu a1,0(s11) - 40b2: c5d9 beqz a1,4140 <_vprintf_core.constprop.0.isra.0+0xd0> + 409a: 000dc583 lbu a1,0(s11) + 409e: c5d9 beqz a1,412c <_vprintf_core.constprop.0.isra.0+0xd0> _out_char(ctx, *p++); - 40b4: 0d85 addi s11,s11,1 + 40a0: 0d85 addi s11,s11,1 if (*p != '%') - 40b6: ff5599e3 bne a1,s5,40a8 <_vprintf_core.constprop.0.isra.0+0x38> + 40a2: ff5599e3 bne a1,s5,4094 <_vprintf_core.constprop.0.isra.0+0x38> int flag_left = 0, flag_zero = 0, flag_plus = 0, flag_space = 0, flag_hash = 0; - 40ba: 4501 li a0,0 - 40bc: 4881 li a7,0 - 40be: 4581 li a1,0 - 40c0: 4b01 li s6,0 - 40c2: 4a01 li s4,0 + 40a6: 4501 li a0,0 + 40a8: 4881 li a7,0 + 40aa: 4581 li a1,0 + 40ac: 4b01 li s6,0 + 40ae: 4a01 li s4,0 if (*p == '-') - 40c4: 000dcc83 lbu s9,0(s11) - 40c8: fe0c871b addiw a4,s9,-32 - 40cc: 0ff77713 zext.b a4,a4 - 40d0: 00e9e763 bltu s3,a4,40de <_vprintf_core.constprop.0.isra.0+0x6e> - 40d4: 070a slli a4,a4,0x2 - 40d6: 974a add a4,a4,s2 - 40d8: 4318 lw a4,0(a4) - 40da: 974a add a4,a4,s2 - 40dc: 8702 jr a4 + 40b0: 000dcc83 lbu s9,0(s11) + 40b4: fe0c871b addiw a4,s9,-32 + 40b8: 0ff77713 zext.b a4,a4 + 40bc: 00e9e763 bltu s3,a4,40ca <_vprintf_core.constprop.0.isra.0+0x6e> + 40c0: 070a slli a4,a4,0x2 + 40c2: 974a add a4,a4,s2 + 40c4: 4318 lw a4,0(a4) + 40c6: 974a add a4,a4,s2 + 40c8: 8702 jr a4 if (*p == '*') - 40de: 02a00793 li a5,42 - 40e2: 16fc9c63 bne s9,a5,425a <_vprintf_core.constprop.0.isra.0+0x1ea> + 40ca: 02a00793 li a5,42 + 40ce: 16fc9c63 bne s9,a5,4246 <_vprintf_core.constprop.0.isra.0+0x1ea> width = va_arg(ap, int); - 40e6: 000c2403 lw s0,0(s8) - 40ea: 0c21 addi s8,s8,8 + 40d2: 000c2403 lw s0,0(s8) + 40d6: 0c21 addi s8,s8,8 if (width < 0) - 40ec: 00045563 bgez s0,40f6 <_vprintf_core.constprop.0.isra.0+0x86> + 40d8: 00045563 bgez s0,40e2 <_vprintf_core.constprop.0.isra.0+0x86> width = -width; - 40f0: 4080043b negw s0,s0 + 40dc: 4080043b negw s0,s0 flag_left = 1; - 40f4: 4a05 li s4,1 + 40e0: 4a05 li s4,1 while (*p >= '0' && *p <= '9') - 40f6: 001dcc83 lbu s9,1(s11) + 40e2: 001dcc83 lbu s9,1(s11) p++; - 40fa: 0d85 addi s11,s11,1 + 40e6: 0d85 addi s11,s11,1 if (*p == '.') - 40fc: 02e00793 li a5,46 + 40e8: 02e00793 li a5,46 int precision = -1; - 4100: 5bfd li s7,-1 + 40ec: 5bfd li s7,-1 if (*p == '.') - 4102: 18fc8a63 beq s9,a5,4296 <_vprintf_core.constprop.0.isra.0+0x226> + 40ee: 18fc8a63 beq s9,a5,4282 <_vprintf_core.constprop.0.isra.0+0x226> if (*p == 'l') - 4106: 06c00693 li a3,108 - 410a: 8666 mv a2,s9 - 410c: 1adc8663 beq s9,a3,42b8 <_vprintf_core.constprop.0.isra.0+0x248> + 40f2: 06c00693 li a3,108 + 40f6: 8666 mv a2,s9 + 40f8: 1adc8663 beq s9,a3,42a4 <_vprintf_core.constprop.0.isra.0+0x248> else if (*p == 'z') - 4110: 07a00693 li a3,122 + 40fc: 07a00693 li a3,122 p++; - 4114: 0d85 addi s11,s11,1 + 4100: 0d85 addi s11,s11,1 else if (*p == 'z') - 4116: 24dc8163 beq s9,a3,4358 <_vprintf_core.constprop.0.isra.0+0x2e8> + 4102: 24dc8163 beq s9,a3,4344 <_vprintf_core.constprop.0.isra.0+0x2e8> if (!spec) - 411a: 06400693 li a3,100 - 411e: 4adc8163 beq s9,a3,45c0 <_vprintf_core.constprop.0.isra.0+0x550> - 4122: 06400693 li a3,100 + 4106: 06400693 li a3,100 + 410a: 4adc8163 beq s9,a3,45ac <_vprintf_core.constprop.0.isra.0+0x550> + 410e: 06400693 li a3,100 int len_mod = 0; - 4126: 4e81 li t4,0 - 4128: 1b96e663 bltu a3,s9,42d4 <_vprintf_core.constprop.0.isra.0+0x264> - 412c: 04700693 li a3,71 - 4130: 2796e463 bltu a3,s9,4398 <_vprintf_core.constprop.0.isra.0+0x328> - 4134: 04400693 li a3,68 - 4138: 0596e363 bltu a3,s9,417e <_vprintf_core.constprop.0.isra.0+0x10e> - 413c: 240c9363 bnez s9,4382 <_vprintf_core.constprop.0.isra.0+0x312> - 4140: 7452 ld s0,304(sp) - 4142: 74b2 ld s1,296(sp) - 4144: 7912 ld s2,288(sp) - 4146: 69f2 ld s3,280(sp) - 4148: 6a52 ld s4,272(sp) - 414a: 6ab2 ld s5,264(sp) - 414c: 6b12 ld s6,256(sp) - 414e: 7bee ld s7,248(sp) - 4150: 7c4e ld s8,240(sp) - 4152: 7cae ld s9,232(sp) - 4154: 7d0e ld s10,224(sp) -} - 4156: 70f2 ld ra,312(sp) - 4158: 6dee ld s11,216(sp) - 415a: 6131 addi sp,sp,320 - 415c: 8082 ret + 4112: 4e81 li t4,0 + 4114: 1b96e663 bltu a3,s9,42c0 <_vprintf_core.constprop.0.isra.0+0x264> + 4118: 04700693 li a3,71 + 411c: 2796e463 bltu a3,s9,4384 <_vprintf_core.constprop.0.isra.0+0x328> + 4120: 04400693 li a3,68 + 4124: 0596e363 bltu a3,s9,416a <_vprintf_core.constprop.0.isra.0+0x10e> + 4128: 240c9363 bnez s9,436e <_vprintf_core.constprop.0.isra.0+0x312> + 412c: 7452 ld s0,304(sp) + 412e: 74b2 ld s1,296(sp) + 4130: 7912 ld s2,288(sp) + 4132: 69f2 ld s3,280(sp) + 4134: 6a52 ld s4,272(sp) + 4136: 6ab2 ld s5,264(sp) + 4138: 6b12 ld s6,256(sp) + 413a: 7bee ld s7,248(sp) + 413c: 7c4e ld s8,240(sp) + 413e: 7cae ld s9,232(sp) + 4140: 7d0e ld s10,224(sp) +} + 4142: 70f2 ld ra,312(sp) + 4144: 6dee ld s11,216(sp) + 4146: 6131 addi sp,sp,320 + 4148: 8082 ret if (*p == '-') - 415e: 4585 li a1,1 + 414a: 4585 li a1,1 p++; - 4160: 0d85 addi s11,s11,1 + 414c: 0d85 addi s11,s11,1 if (*p == '-') - 4162: b78d j 40c4 <_vprintf_core.constprop.0.isra.0+0x54> - 4164: 4505 li a0,1 + 414e: b78d j 40b0 <_vprintf_core.constprop.0.isra.0+0x54> + 4150: 4505 li a0,1 p++; - 4166: 0d85 addi s11,s11,1 + 4152: 0d85 addi s11,s11,1 while (1) - 4168: bfb1 j 40c4 <_vprintf_core.constprop.0.isra.0+0x54> + 4154: bfb1 j 40b0 <_vprintf_core.constprop.0.isra.0+0x54> if (*p == '-') - 416a: 4885 li a7,1 + 4156: 4885 li a7,1 p++; - 416c: 0d85 addi s11,s11,1 + 4158: 0d85 addi s11,s11,1 while (1) - 416e: bf99 j 40c4 <_vprintf_core.constprop.0.isra.0+0x54> + 415a: bf99 j 40b0 <_vprintf_core.constprop.0.isra.0+0x54> if (*p == '-') - 4170: 4b05 li s6,1 + 415c: 4b05 li s6,1 p++; - 4172: 0d85 addi s11,s11,1 + 415e: 0d85 addi s11,s11,1 while (1) - 4174: bf81 j 40c4 <_vprintf_core.constprop.0.isra.0+0x54> + 4160: bf81 j 40b0 <_vprintf_core.constprop.0.isra.0+0x54> if (*p == '-') - 4176: 4a05 li s4,1 + 4162: 4a05 li s4,1 p++; - 4178: 0d85 addi s11,s11,1 + 4164: 0d85 addi s11,s11,1 while (1) - 417a: b7a9 j 40c4 <_vprintf_core.constprop.0.isra.0+0x54> + 4166: b7a9 j 40b0 <_vprintf_core.constprop.0.isra.0+0x54> char spec = *p++; - 417c: 8dbe mv s11,a5 + 4168: 8dbe mv s11,a5 fmt_tmp[f_idx++] = '%'; - 417e: 02500693 li a3,37 - 4182: 02d10823 sb a3,48(sp) - 4186: 4d05 li s10,1 + 416a: 02500693 li a3,37 + 416e: 02d10823 sb a3,48(sp) + 4172: 4d05 li s10,1 if (flag_left) - 4188: 000a0763 beqz s4,4196 <_vprintf_core.constprop.0.isra.0+0x126> + 4174: 000a0763 beqz s4,4182 <_vprintf_core.constprop.0.isra.0+0x126> fmt_tmp[f_idx++] = '-'; - 418c: 02d00693 li a3,45 - 4190: 02d108a3 sb a3,49(sp) - 4194: 4d09 li s10,2 + 4178: 02d00693 li a3,45 + 417c: 02d108a3 sb a3,49(sp) + 4180: 4d09 li s10,2 if (flag_zero) - 4196: 000b0c63 beqz s6,41ae <_vprintf_core.constprop.0.isra.0+0x13e> + 4182: 000b0c63 beqz s6,419a <_vprintf_core.constprop.0.isra.0+0x13e> fmt_tmp[f_idx++] = '0'; - 419a: 0c0d0793 addi a5,s10,192 - 419e: 0818 addi a4,sp,16 - 41a0: 00e786b3 add a3,a5,a4 - 41a4: 03000613 li a2,48 - 41a8: f6c68023 sb a2,-160(a3) - 41ac: 2d05 addiw s10,s10,1 + 4186: 0c0d0793 addi a5,s10,192 + 418a: 0818 addi a4,sp,16 + 418c: 00e786b3 add a3,a5,a4 + 4190: 03000613 li a2,48 + 4194: f6c68023 sb a2,-160(a3) + 4198: 2d05 addiw s10,s10,1 if (flag_plus) - 41ae: c999 beqz a1,41c4 <_vprintf_core.constprop.0.isra.0+0x154> + 419a: c999 beqz a1,41b0 <_vprintf_core.constprop.0.isra.0+0x154> fmt_tmp[f_idx++] = '+'; - 41b0: 0c0d0793 addi a5,s10,192 - 41b4: 0818 addi a4,sp,16 - 41b6: 00e786b3 add a3,a5,a4 - 41ba: 02b00613 li a2,43 - 41be: f6c68023 sb a2,-160(a3) - 41c2: 2d05 addiw s10,s10,1 + 419c: 0c0d0793 addi a5,s10,192 + 41a0: 0818 addi a4,sp,16 + 41a2: 00e786b3 add a3,a5,a4 + 41a6: 02b00613 li a2,43 + 41aa: f6c68023 sb a2,-160(a3) + 41ae: 2d05 addiw s10,s10,1 if (flag_space) - 41c4: 00088c63 beqz a7,41dc <_vprintf_core.constprop.0.isra.0+0x16c> + 41b0: 00088c63 beqz a7,41c8 <_vprintf_core.constprop.0.isra.0+0x16c> fmt_tmp[f_idx++] = ' '; - 41c8: 0c0d0793 addi a5,s10,192 - 41cc: 0818 addi a4,sp,16 - 41ce: 00e786b3 add a3,a5,a4 - 41d2: 02000613 li a2,32 - 41d6: f6c68023 sb a2,-160(a3) - 41da: 2d05 addiw s10,s10,1 + 41b4: 0c0d0793 addi a5,s10,192 + 41b8: 0818 addi a4,sp,16 + 41ba: 00e786b3 add a3,a5,a4 + 41be: 02000613 li a2,32 + 41c2: f6c68023 sb a2,-160(a3) + 41c6: 2d05 addiw s10,s10,1 if (flag_hash) - 41dc: c919 beqz a0,41f2 <_vprintf_core.constprop.0.isra.0+0x182> + 41c8: c919 beqz a0,41de <_vprintf_core.constprop.0.isra.0+0x182> fmt_tmp[f_idx++] = '#'; - 41de: 0c0d0793 addi a5,s10,192 - 41e2: 0818 addi a4,sp,16 - 41e4: 00e786b3 add a3,a5,a4 - 41e8: 02300613 li a2,35 - 41ec: f6c68023 sb a2,-160(a3) - 41f0: 2d05 addiw s10,s10,1 + 41ca: 0c0d0793 addi a5,s10,192 + 41ce: 0818 addi a4,sp,16 + 41d0: 00e786b3 add a3,a5,a4 + 41d4: 02300613 li a2,35 + 41d8: f6c68023 sb a2,-160(a3) + 41dc: 2d05 addiw s10,s10,1 if (width > 0) - 41f2: 03010a13 addi s4,sp,48 - 41f6: 28804563 bgtz s0,4480 <_vprintf_core.constprop.0.isra.0+0x410> + 41de: 03010a13 addi s4,sp,48 + 41e2: 28804563 bgtz s0,446c <_vprintf_core.constprop.0.isra.0+0x410> if (precision >= 0) - 41fa: 260bd763 bgez s7,4468 <_vprintf_core.constprop.0.isra.0+0x3f8> + 41e6: 260bd763 bgez s7,4454 <_vprintf_core.constprop.0.isra.0+0x3f8> fmt_tmp[f_idx++] = spec; - 41fe: 0c0d0793 addi a5,s10,192 - 4202: 0818 addi a4,sp,16 - 4204: 00e78633 add a2,a5,a4 + 41ea: 0c0d0793 addi a5,s10,192 + 41ee: 0818 addi a4,sp,16 + 41f0: 00e78633 add a2,a5,a4 stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); - 4208: 000c3683 ld a3,0(s8) + 41f4: 000c3683 ld a3,0(s8) fmt_tmp[f_idx] = '\0'; - 420c: 001d071b addiw a4,s10,1 - 4210: 0c070793 addi a5,a4,192 - 4214: 0818 addi a4,sp,16 + 41f8: 001d071b addiw a4,s10,1 + 41fc: 0c070793 addi a5,a4,192 + 4200: 0818 addi a4,sp,16 fmt_tmp[f_idx++] = spec; - 4216: f7960023 sb s9,-160(a2) + 4202: f7960023 sb s9,-160(a2) fmt_tmp[f_idx] = '\0'; - 421a: 973e add a4,a4,a5 + 4206: 973e add a4,a4,a5 stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); - 421c: 08000593 li a1,128 - 4220: 8652 mv a2,s4 - 4222: 0888 addi a0,sp,80 + 4208: 08000593 li a1,128 + 420c: 8652 mv a2,s4 + 420e: 0888 addi a0,sp,80 fmt_tmp[f_idx] = '\0'; - 4224: f6070023 sb zero,-160(a4) + 4210: f6070023 sb zero,-160(a4) stbsp_snprintf(f_buf, sizeof(f_buf), fmt_tmp, f_val); - 4228: dc5ff0ef jal 3fec + 4214: dc5ff0ef jal 3fd8 for (int i = 0; f_buf[i] != '\0'; i++) - 422c: 05014583 lbu a1,80(sp) + 4218: 05014583 lbu a1,80(sp) double f_val = va_arg(ap, double); - 4230: 0c21 addi s8,s8,8 + 421c: 0c21 addi s8,s8,8 for (int i = 0; f_buf[i] != '\0'; i++) - 4232: 05110413 addi s0,sp,81 - 4236: e6058ce3 beqz a1,40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 421e: 05110413 addi s0,sp,81 + 4222: e6058ce3 beqz a1,409a <_vprintf_core.constprop.0.isra.0+0x3e> _out_char(ctx, f_buf[i]); - 423a: 8526 mv a0,s1 - 423c: fc1fd0ef jal 21fc <_out_char> + 4226: 8526 mv a0,s1 + 4228: fc1fd0ef jal 21e8 <_out_char> for (int i = 0; f_buf[i] != '\0'; i++) - 4240: 00044583 lbu a1,0(s0) - 4244: 0405 addi s0,s0,1 - 4246: e60584e3 beqz a1,40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 422c: 00044583 lbu a1,0(s0) + 4230: 0405 addi s0,s0,1 + 4232: e60584e3 beqz a1,409a <_vprintf_core.constprop.0.isra.0+0x3e> _out_char(ctx, f_buf[i]); - 424a: 8526 mv a0,s1 - 424c: fb1fd0ef jal 21fc <_out_char> + 4236: 8526 mv a0,s1 + 4238: fb1fd0ef jal 21e8 <_out_char> for (int i = 0; f_buf[i] != '\0'; i++) - 4250: 00044583 lbu a1,0(s0) - 4254: 0405 addi s0,s0,1 - 4256: f1f5 bnez a1,423a <_vprintf_core.constprop.0.isra.0+0x1ca> - 4258: bd99 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 423c: 00044583 lbu a1,0(s0) + 4240: 0405 addi s0,s0,1 + 4242: f1f5 bnez a1,4226 <_vprintf_core.constprop.0.isra.0+0x1ca> + 4244: bd99 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> while (*p >= '0' && *p <= '9') - 425a: fd0c869b addiw a3,s9,-48 - 425e: 0ff6f313 zext.b t1,a3 - 4262: 4725 li a4,9 + 4246: fd0c869b addiw a3,s9,-48 + 424a: 0ff6f313 zext.b t1,a3 + 424e: 4725 li a4,9 int width = 0; - 4264: 4401 li s0,0 + 4250: 4401 li s0,0 while (*p >= '0' && *p <= '9') - 4266: 4625 li a2,9 - 4268: e8676ae3 bltu a4,t1,40fc <_vprintf_core.constprop.0.isra.0+0x8c> - 426c: 001dcc83 lbu s9,1(s11) + 4252: 4625 li a2,9 + 4254: e8676ae3 bltu a4,t1,40e8 <_vprintf_core.constprop.0.isra.0+0x8c> + 4258: 001dcc83 lbu s9,1(s11) width = width * 10 + (*p - '0'); - 4270: 0024171b slliw a4,s0,0x2 - 4274: 9f21 addw a4,a4,s0 - 4276: 0017171b slliw a4,a4,0x1 - 427a: 00e6843b addw s0,a3,a4 + 425c: 0024171b slliw a4,s0,0x2 + 4260: 9f21 addw a4,a4,s0 + 4262: 0017171b slliw a4,a4,0x1 + 4266: 00e6843b addw s0,a3,a4 while (*p >= '0' && *p <= '9') - 427e: fd0c869b addiw a3,s9,-48 - 4282: 0ff6f713 zext.b a4,a3 + 426a: fd0c869b addiw a3,s9,-48 + 426e: 0ff6f713 zext.b a4,a3 p++; - 4286: 0d85 addi s11,s11,1 + 4272: 0d85 addi s11,s11,1 while (*p >= '0' && *p <= '9') - 4288: fee672e3 bgeu a2,a4,426c <_vprintf_core.constprop.0.isra.0+0x1fc> + 4274: fee672e3 bgeu a2,a4,4258 <_vprintf_core.constprop.0.isra.0+0x1fc> if (*p == '.') - 428c: 02e00793 li a5,46 + 4278: 02e00793 li a5,46 int precision = -1; - 4290: 5bfd li s7,-1 + 427c: 5bfd li s7,-1 if (*p == '.') - 4292: e6fc9ae3 bne s9,a5,4106 <_vprintf_core.constprop.0.isra.0+0x96> + 427e: e6fc9ae3 bne s9,a5,40f2 <_vprintf_core.constprop.0.isra.0+0x96> if (*p == '*') - 4296: 001dcc83 lbu s9,1(s11) - 429a: 02a00793 li a5,42 - 429e: 16fc9f63 bne s9,a5,441c <_vprintf_core.constprop.0.isra.0+0x3ac> + 4282: 001dcc83 lbu s9,1(s11) + 4286: 02a00793 li a5,42 + 428a: 16fc9f63 bne s9,a5,4408 <_vprintf_core.constprop.0.isra.0+0x3ac> while (*p >= '0' && *p <= '9') - 42a2: 002dcc83 lbu s9,2(s11) + 428e: 002dcc83 lbu s9,2(s11) if (*p == 'l') - 42a6: 06c00693 li a3,108 + 4292: 06c00693 li a3,108 precision = va_arg(ap, int); - 42aa: 000c2b83 lw s7,0(s8) + 4296: 000c2b83 lw s7,0(s8) p++; - 42ae: 0d89 addi s11,s11,2 + 429a: 0d89 addi s11,s11,2 precision = va_arg(ap, int); - 42b0: 0c21 addi s8,s8,8 + 429c: 0c21 addi s8,s8,8 if (*p == 'l') - 42b2: 8666 mv a2,s9 - 42b4: e4dc9ee3 bne s9,a3,4110 <_vprintf_core.constprop.0.isra.0+0xa0> + 429e: 8666 mv a2,s9 + 42a0: e4dc9ee3 bne s9,a3,40fc <_vprintf_core.constprop.0.isra.0+0xa0> if (*p == 'l') - 42b8: 001dcc83 lbu s9,1(s11) - 42bc: 08cc8d63 beq s9,a2,4356 <_vprintf_core.constprop.0.isra.0+0x2e6> + 42a4: 001dcc83 lbu s9,1(s11) + 42a8: 08cc8d63 beq s9,a2,4342 <_vprintf_core.constprop.0.isra.0+0x2e6> char spec = *p++; - 42c0: 06400693 li a3,100 - 42c4: 0d89 addi s11,s11,2 + 42ac: 06400693 li a3,100 + 42b0: 0d89 addi s11,s11,2 if (!spec) - 42c6: 4cdc8c63 beq s9,a3,479e <_vprintf_core.constprop.0.isra.0+0x72e> - 42ca: 06400693 li a3,100 + 42b2: 4cdc8c63 beq s9,a3,478a <_vprintf_core.constprop.0.isra.0+0x72e> + 42b6: 06400693 li a3,100 len_mod = 1; - 42ce: 4e85 li t4,1 - 42d0: e596fee3 bgeu a3,s9,412c <_vprintf_core.constprop.0.isra.0+0xbc> - 42d4: f9bc869b addiw a3,s9,-101 - 42d8: 0ff6f693 zext.b a3,a3 - 42dc: 464d li a2,19 - 42de: 12d66863 bltu a2,a3,440e <_vprintf_core.constprop.0.isra.0+0x39e> - 42e2: 4e05 li t3,1 - 42e4: 00091637 lui a2,0x91 - 42e8: 00de1333 sll t1,t3,a3 - 42ec: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x879d0> - 42f0: 00c37633 and a2,t1,a2 - 42f4: 1a061463 bnez a2,449c <_vprintf_core.constprop.0.isra.0+0x42c> - 42f8: 00737313 andi t1,t1,7 - 42fc: e80311e3 bnez t1,417e <_vprintf_core.constprop.0.isra.0+0x10e> - 4300: 4639 li a2,14 - 4302: 10c69663 bne a3,a2,440e <_vprintf_core.constprop.0.isra.0+0x39e> + 42ba: 4e85 li t4,1 + 42bc: e596fee3 bgeu a3,s9,4118 <_vprintf_core.constprop.0.isra.0+0xbc> + 42c0: f9bc869b addiw a3,s9,-101 + 42c4: 0ff6f693 zext.b a3,a3 + 42c8: 464d li a2,19 + 42ca: 12d66863 bltu a2,a3,43fa <_vprintf_core.constprop.0.isra.0+0x39e> + 42ce: 4e05 li t3,1 + 42d0: 00091637 lui a2,0x91 + 42d4: 00de1333 sll t1,t3,a3 + 42d8: 81060613 addi a2,a2,-2032 # 90810 <_ZSt4cerr+0x879a0> + 42dc: 00c37633 and a2,t1,a2 + 42e0: 1a061463 bnez a2,4488 <_vprintf_core.constprop.0.isra.0+0x42c> + 42e4: 00737313 andi t1,t1,7 + 42e8: e80311e3 bnez t1,416a <_vprintf_core.constprop.0.isra.0+0x10e> + 42ec: 4639 li a2,14 + 42ee: 10c69663 bne a3,a2,43fa <_vprintf_core.constprop.0.isra.0+0x39e> const char *s = va_arg(ap, char *); - 4306: 000c3c83 ld s9,0(s8) + 42f2: 000c3c83 ld s9,0(s8) if (!s) - 430a: 420c8863 beqz s9,473a <_vprintf_core.constprop.0.isra.0+0x6ca> + 42f6: 420c8863 beqz s9,4726 <_vprintf_core.constprop.0.isra.0+0x6ca> while (*tmp && (precision < 0 || len < precision)) - 430e: 000cc683 lbu a3,0(s9) - 4312: 38068863 beqz a3,46a2 <_vprintf_core.constprop.0.isra.0+0x632> + 42fa: 000cc683 lbu a3,0(s9) + 42fe: 38068863 beqz a3,468e <_vprintf_core.constprop.0.isra.0+0x632> const char *tmp = s; - 4316: 8666 mv a2,s9 + 4302: 8666 mv a2,s9 int len = 0; - 4318: 4681 li a3,0 + 4304: 4681 li a3,0 while (*tmp && (precision < 0 || len < precision)) - 431a: 00db8863 beq s7,a3,432a <_vprintf_core.constprop.0.isra.0+0x2ba> - 431e: 00164583 lbu a1,1(a2) + 4306: 00db8863 beq s7,a3,4316 <_vprintf_core.constprop.0.isra.0+0x2ba> + 430a: 00164583 lbu a1,1(a2) len++; - 4322: 2685 addiw a3,a3,1 + 430e: 2685 addiw a3,a3,1 tmp++; - 4324: 0605 addi a2,a2,1 + 4310: 0605 addi a2,a2,1 while (*tmp && (precision < 0 || len < precision)) - 4326: f9f5 bnez a1,431a <_vprintf_core.constprop.0.isra.0+0x2aa> - 4328: 8bb6 mv s7,a3 + 4312: f9f5 bnez a1,4306 <_vprintf_core.constprop.0.isra.0+0x2aa> + 4314: 8bb6 mv s7,a3 int padding = (width > len) ? width - len : 0; - 432a: 268bc563 blt s7,s0,4594 <_vprintf_core.constprop.0.isra.0+0x524> + 4316: 268bc563 blt s7,s0,4580 <_vprintf_core.constprop.0.isra.0+0x524> for (int i = 0; i < len; i++) - 432e: 4401 li s0,0 - 4330: 020b8163 beqz s7,4352 <_vprintf_core.constprop.0.isra.0+0x2e2> - 4334: 4d01 li s10,0 + 431a: 4401 li s0,0 + 431c: 020b8163 beqz s7,433e <_vprintf_core.constprop.0.isra.0+0x2e2> + 4320: 4d01 li s10,0 _out_char(ctx, s[i]); - 4336: 01ac86b3 add a3,s9,s10 - 433a: 0006c583 lbu a1,0(a3) - 433e: 8526 mv a0,s1 + 4322: 01ac86b3 add a3,s9,s10 + 4326: 0006c583 lbu a1,0(a3) + 432a: 8526 mv a0,s1 for (int i = 0; i < len; i++) - 4340: 0d05 addi s10,s10,1 + 432c: 0d05 addi s10,s10,1 _out_char(ctx, s[i]); - 4342: ebbfd0ef jal 21fc <_out_char> + 432e: ebbfd0ef jal 21e8 <_out_char> for (int i = 0; i < len; i++) - 4346: 000d069b sext.w a3,s10 - 434a: ff76c6e3 blt a3,s7,4336 <_vprintf_core.constprop.0.isra.0+0x2c6> + 4332: 000d069b sext.w a3,s10 + 4336: ff76c6e3 blt a3,s7,4322 <_vprintf_core.constprop.0.isra.0+0x2c6> if (flag_left) - 434e: 260a1463 bnez s4,45b6 <_vprintf_core.constprop.0.isra.0+0x546> + 433a: 260a1463 bnez s4,45a2 <_vprintf_core.constprop.0.isra.0+0x546> const char *s = va_arg(ap, char *); - 4352: 0c21 addi s8,s8,8 - 4354: bba9 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 433e: 0c21 addi s8,s8,8 + 4340: bba9 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> p++; - 4356: 0d89 addi s11,s11,2 + 4342: 0d89 addi s11,s11,2 char spec = *p++; - 4358: 000dcc83 lbu s9,0(s11) - 435c: 06400693 li a3,100 - 4360: 001d8793 addi a5,s11,1 + 4344: 000dcc83 lbu s9,0(s11) + 4348: 06400693 li a3,100 + 434c: 001d8793 addi a5,s11,1 if (!spec) - 4364: 3edc8063 beq s9,a3,4744 <_vprintf_core.constprop.0.isra.0+0x6d4> - 4368: 0796ea63 bltu a3,s9,43dc <_vprintf_core.constprop.0.isra.0+0x36c> - 436c: 04700693 li a3,71 - 4370: 0f96e263 bltu a3,s9,4454 <_vprintf_core.constprop.0.isra.0+0x3e4> - 4374: 04400693 li a3,68 - 4378: e196e2e3 bltu a3,s9,417c <_vprintf_core.constprop.0.isra.0+0x10c> - 437c: dc0c82e3 beqz s9,4140 <_vprintf_core.constprop.0.isra.0+0xd0> + 4350: 3edc8063 beq s9,a3,4730 <_vprintf_core.constprop.0.isra.0+0x6d4> + 4354: 0796ea63 bltu a3,s9,43c8 <_vprintf_core.constprop.0.isra.0+0x36c> + 4358: 04700693 li a3,71 + 435c: 0f96e263 bltu a3,s9,4440 <_vprintf_core.constprop.0.isra.0+0x3e4> + 4360: 04400693 li a3,68 + 4364: e196e2e3 bltu a3,s9,4168 <_vprintf_core.constprop.0.isra.0+0x10c> + 4368: dc0c82e3 beqz s9,412c <_vprintf_core.constprop.0.isra.0+0xd0> char spec = *p++; - 4380: 8dbe mv s11,a5 + 436c: 8dbe mv s11,a5 _out_char(ctx, '%'); - 4382: 02500593 li a1,37 - 4386: 8526 mv a0,s1 - 4388: e75fd0ef jal 21fc <_out_char> + 436e: 02500593 li a1,37 + 4372: 8526 mv a0,s1 + 4374: e75fd0ef jal 21e8 <_out_char> if (spec != '%') - 438c: 02500713 li a4,37 - 4390: d0ec8fe3 beq s9,a4,40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 4378: 02500713 li a4,37 + 437c: d0ec8fe3 beq s9,a4,409a <_vprintf_core.constprop.0.isra.0+0x3e> _out_char(ctx, spec); - 4394: 85e6 mv a1,s9 - 4396: bb09 j 40a8 <_vprintf_core.constprop.0.isra.0+0x38> - 4398: 05800693 li a3,88 - 439c: 2edc8263 beq s9,a3,4680 <_vprintf_core.constprop.0.isra.0+0x610> - 43a0: 06300713 li a4,99 - 43a4: 06ec9563 bne s9,a4,440e <_vprintf_core.constprop.0.isra.0+0x39e> + 4380: 85e6 mv a1,s9 + 4382: bb09 j 4094 <_vprintf_core.constprop.0.isra.0+0x38> + 4384: 05800693 li a3,88 + 4388: 2edc8263 beq s9,a3,466c <_vprintf_core.constprop.0.isra.0+0x610> + 438c: 06300713 li a4,99 + 4390: 06ec9563 bne s9,a4,43fa <_vprintf_core.constprop.0.isra.0+0x39e> char c = (char)va_arg(ap, int); - 43a8: 000c4c83 lbu s9,0(s8) + 4394: 000c4c83 lbu s9,0(s8) int padding = (width > 1) ? width - 1 : 0; - 43ac: 8722 mv a4,s0 - 43ae: 00804363 bgtz s0,43b4 <_vprintf_core.constprop.0.isra.0+0x344> - 43b2: 4705 li a4,1 - 43b4: fff7041b addiw s0,a4,-1 + 4398: 8722 mv a4,s0 + 439a: 00804363 bgtz s0,43a0 <_vprintf_core.constprop.0.isra.0+0x344> + 439e: 4705 li a4,1 + 43a0: fff7041b addiw s0,a4,-1 if (!flag_left) - 43b8: 3c0a0463 beqz s4,4780 <_vprintf_core.constprop.0.isra.0+0x710> + 43a4: 3c0a0463 beqz s4,476c <_vprintf_core.constprop.0.isra.0+0x710> _out_char(ctx, c); - 43bc: 85e6 mv a1,s9 - 43be: 8526 mv a0,s1 - 43c0: e3dfd0ef jal 21fc <_out_char> + 43a8: 85e6 mv a1,s9 + 43aa: 8526 mv a0,s1 + 43ac: e3dfd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 43c4: 4a01 li s4,0 - 43c6: d451 beqz s0,4352 <_vprintf_core.constprop.0.isra.0+0x2e2> + 43b0: 4a01 li s4,0 + 43b2: d451 beqz s0,433e <_vprintf_core.constprop.0.isra.0+0x2e2> _out_char(ctx, ' '); - 43c8: 02000593 li a1,32 - 43cc: 8526 mv a0,s1 + 43b4: 02000593 li a1,32 + 43b8: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 43ce: 2a05 addiw s4,s4,1 + 43ba: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 43d0: e2dfd0ef jal 21fc <_out_char> + 43bc: e2dfd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 43d4: ff441ae3 bne s0,s4,43c8 <_vprintf_core.constprop.0.isra.0+0x358> + 43c0: ff441ae3 bne s0,s4,43b4 <_vprintf_core.constprop.0.isra.0+0x358> const char *s = va_arg(ap, char *); - 43d8: 0c21 addi s8,s8,8 - 43da: b9d1 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> - 43dc: f9bc861b addiw a2,s9,-101 - 43e0: 0ff67613 zext.b a2,a2 - 43e4: 46cd li a3,19 - 43e6: 40c6e963 bltu a3,a2,47f8 <_vprintf_core.constprop.0.isra.0+0x788> - 43ea: 00091337 lui t1,0x91 - 43ee: 4685 li a3,1 - 43f0: 00c696b3 sll a3,a3,a2 - 43f4: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x879d0> - 43f8: 0066f333 and t1,a3,t1 - 43fc: 34031c63 bnez t1,4754 <_vprintf_core.constprop.0.isra.0+0x6e4> - 4400: 8a9d andi a3,a3,7 - 4402: d6069de3 bnez a3,417c <_vprintf_core.constprop.0.isra.0+0x10c> - 4406: 46b9 li a3,14 + 43c4: 0c21 addi s8,s8,8 + 43c6: b9d1 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> + 43c8: f9bc861b addiw a2,s9,-101 + 43cc: 0ff67613 zext.b a2,a2 + 43d0: 46cd li a3,19 + 43d2: 40c6e963 bltu a3,a2,47e4 <_vprintf_core.constprop.0.isra.0+0x788> + 43d6: 00091337 lui t1,0x91 + 43da: 4685 li a3,1 + 43dc: 00c696b3 sll a3,a3,a2 + 43e0: 81030313 addi t1,t1,-2032 # 90810 <_ZSt4cerr+0x879a0> + 43e4: 0066f333 and t1,a3,t1 + 43e8: 34031c63 bnez t1,4740 <_vprintf_core.constprop.0.isra.0+0x6e4> + 43ec: 8a9d andi a3,a3,7 + 43ee: d6069de3 bnez a3,4168 <_vprintf_core.constprop.0.isra.0+0x10c> + 43f2: 46b9 li a3,14 char spec = *p++; - 4408: 8dbe mv s11,a5 - 440a: eed60ee3 beq a2,a3,4306 <_vprintf_core.constprop.0.isra.0+0x296> + 43f4: 8dbe mv s11,a5 + 43f6: eed60ee3 beq a2,a3,42f2 <_vprintf_core.constprop.0.isra.0+0x296> _out_char(ctx, '%'); - 440e: 02500593 li a1,37 - 4412: 8526 mv a0,s1 - 4414: de9fd0ef jal 21fc <_out_char> + 43fa: 02500593 li a1,37 + 43fe: 8526 mv a0,s1 + 4400: de9fd0ef jal 21e8 <_out_char> _out_char(ctx, spec); - 4418: 85e6 mv a1,s9 - 441a: b179 j 40a8 <_vprintf_core.constprop.0.isra.0+0x38> + 4404: 85e6 mv a1,s9 + 4406: b179 j 4094 <_vprintf_core.constprop.0.isra.0+0x38> while (*p >= '0' && *p <= '9') - 441c: fd0c869b addiw a3,s9,-48 - 4420: 0ff6fe13 zext.b t3,a3 - 4424: 4625 li a2,9 + 4408: fd0c869b addiw a3,s9,-48 + 440c: 0ff6fe13 zext.b t3,a3 + 4410: 4625 li a2,9 p++; - 4426: 0d85 addi s11,s11,1 + 4412: 0d85 addi s11,s11,1 precision = 0; - 4428: 4b81 li s7,0 + 4414: 4b81 li s7,0 while (*p >= '0' && *p <= '9') - 442a: 4325 li t1,9 - 442c: cdc66de3 bltu a2,t3,4106 <_vprintf_core.constprop.0.isra.0+0x96> + 4416: 4325 li t1,9 + 4418: cdc66de3 bltu a2,t3,40f2 <_vprintf_core.constprop.0.isra.0+0x96> precision = precision * 10 + (*p - '0'); - 4430: 002b961b slliw a2,s7,0x2 + 441c: 002b961b slliw a2,s7,0x2 while (*p >= '0' && *p <= '9') - 4434: 001dcc83 lbu s9,1(s11) + 4420: 001dcc83 lbu s9,1(s11) precision = precision * 10 + (*p - '0'); - 4438: 0176073b addw a4,a2,s7 - 443c: 0017171b slliw a4,a4,0x1 - 4440: 00e68bbb addw s7,a3,a4 + 4424: 0176073b addw a4,a2,s7 + 4428: 0017171b slliw a4,a4,0x1 + 442c: 00e68bbb addw s7,a3,a4 while (*p >= '0' && *p <= '9') - 4444: fd0c869b addiw a3,s9,-48 - 4448: 0ff6f613 zext.b a2,a3 + 4430: fd0c869b addiw a3,s9,-48 + 4434: 0ff6f613 zext.b a2,a3 p++; - 444c: 0d85 addi s11,s11,1 + 4438: 0d85 addi s11,s11,1 while (*p >= '0' && *p <= '9') - 444e: fec371e3 bgeu t1,a2,4430 <_vprintf_core.constprop.0.isra.0+0x3c0> - 4452: b955 j 4106 <_vprintf_core.constprop.0.isra.0+0x96> - 4454: 05800693 li a3,88 - 4458: 3cdc8d63 beq s9,a3,4832 <_vprintf_core.constprop.0.isra.0+0x7c2> - 445c: 06300713 li a4,99 + 443a: fec371e3 bgeu t1,a2,441c <_vprintf_core.constprop.0.isra.0+0x3c0> + 443e: b955 j 40f2 <_vprintf_core.constprop.0.isra.0+0x96> + 4440: 05800693 li a3,88 + 4444: 3cdc8d63 beq s9,a3,481e <_vprintf_core.constprop.0.isra.0+0x7c2> + 4448: 06300713 li a4,99 char spec = *p++; - 4460: 8dbe mv s11,a5 - 4462: f4ec83e3 beq s9,a4,43a8 <_vprintf_core.constprop.0.isra.0+0x338> - 4466: b765 j 440e <_vprintf_core.constprop.0.isra.0+0x39e> + 444c: 8dbe mv s11,a5 + 444e: f4ec83e3 beq s9,a4,4394 <_vprintf_core.constprop.0.isra.0+0x338> + 4452: b765 j 43fa <_vprintf_core.constprop.0.isra.0+0x39e> f_idx += sprintf(&fmt_tmp[f_idx], ".%d", precision); - 4468: 01aa0533 add a0,s4,s10 - 446c: 865e mv a2,s7 - 446e: 00002597 auipc a1,0x2 - 4472: d7258593 addi a1,a1,-654 # 61e0 <_GLOBAL__sub_I__ZSt3cin+0x1dc> - 4476: ba5ff0ef jal 401a - 447a: 00ad0d3b addw s10,s10,a0 - 447e: b341 j 41fe <_vprintf_core.constprop.0.isra.0+0x18e> + 4454: 01aa0533 add a0,s4,s10 + 4458: 865e mv a2,s7 + 445a: 00002597 auipc a1,0x2 + 445e: dee58593 addi a1,a1,-530 # 6248 <_GLOBAL__sub_I__ZSt3cin+0x258> + 4462: ba5ff0ef jal 4006 + 4466: 00ad0d3b addw s10,s10,a0 + 446a: b341 j 41ea <_vprintf_core.constprop.0.isra.0+0x18e> f_idx += sprintf(&fmt_tmp[f_idx], "%d", width); - 4480: 01aa0533 add a0,s4,s10 - 4484: 8622 mv a2,s0 - 4486: 00002597 auipc a1,0x2 - 448a: d5258593 addi a1,a1,-686 # 61d8 <_GLOBAL__sub_I__ZSt3cin+0x1d4> - 448e: b8dff0ef jal 401a - 4492: 00ad0d3b addw s10,s10,a0 + 446c: 01aa0533 add a0,s4,s10 + 4470: 8622 mv a2,s0 + 4472: 00002597 auipc a1,0x2 + 4476: dce58593 addi a1,a1,-562 # 6240 <_GLOBAL__sub_I__ZSt3cin+0x250> + 447a: b8dff0ef jal 4006 + 447e: 00ad0d3b addw s10,s10,a0 if (precision >= 0) - 4496: d60bc4e3 bltz s7,41fe <_vprintf_core.constprop.0.isra.0+0x18e> - 449a: b7f9 j 4468 <_vprintf_core.constprop.0.isra.0+0x3f8> + 4482: d60bc4e3 bltz s7,41ea <_vprintf_core.constprop.0.isra.0+0x18e> + 4486: b7f9 j 4454 <_vprintf_core.constprop.0.isra.0+0x3f8> int is_signed = (spec == 'd' || spec == 'i'); - 449c: 06900693 li a3,105 - 44a0: 10dc8e63 beq s9,a3,45bc <_vprintf_core.constprop.0.isra.0+0x54c> + 4488: 06900693 li a3,105 + 448c: 10dc8e63 beq s9,a3,45a8 <_vprintf_core.constprop.0.isra.0+0x54c> val = (uint64)va_arg(ap, void *); - 44a4: 008c0793 addi a5,s8,8 + 4490: 008c0793 addi a5,s8,8 int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 44a8: 07800693 li a3,120 + 4494: 07800693 li a3,120 val = (uint64)va_arg(ap, void *); - 44ac: e43e sd a5,8(sp) + 4498: e43e sd a5,8(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 44ae: 38dc9d63 bne s9,a3,4848 <_vprintf_core.constprop.0.isra.0+0x7d8> + 449a: 38dc9d63 bne s9,a3,4834 <_vprintf_core.constprop.0.isra.0+0x7d8> else if (len_mod == 1) - 44b2: 33ce8963 beq t4,t3,47e4 <_vprintf_core.constprop.0.isra.0+0x774> + 449e: 33ce8963 beq t4,t3,47d0 <_vprintf_core.constprop.0.isra.0+0x774> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 44b6: 000c6e03 lwu t3,0(s8) - 44ba: 85f6 mv a1,t4 - 44bc: e002 sd zero,0(sp) + 44a2: 000c6e03 lwu t3,0(s8) + 44a6: 85f6 mv a1,t4 + 44a8: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 44be: 4341 li t1,16 + 44aa: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 44c0: 00002f97 auipc t6,0x2 - 44c4: ce8f8f93 addi t6,t6,-792 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> + 44ac: 00002f97 auipc t6,0x2 + 44b0: d64f8f93 addi t6,t6,-668 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> if (val == 0) - 44c8: 120e0363 beqz t3,45ee <_vprintf_core.constprop.0.isra.0+0x57e> - 44cc: 01010293 addi t0,sp,16 + 44b4: 120e0363 beqz t3,45da <_vprintf_core.constprop.0.isra.0+0x57e> + 44b8: 01010293 addi t0,sp,16 sign_char = '-'; - 44d0: 8616 mv a2,t0 - 44d2: 86f2 mv a3,t3 + 44bc: 8616 mv a2,t0 + 44be: 86f2 mv a3,t3 buf[i++] = digits[val % base]; - 44d4: 0266f8b3 remu a7,a3,t1 - 44d8: 8f32 mv t5,a2 + 44c0: 0266f8b3 remu a7,a3,t1 + 44c4: 8f32 mv t5,a2 while (val != 0) - 44da: 0605 addi a2,a2,1 - 44dc: 8eb6 mv t4,a3 + 44c6: 0605 addi a2,a2,1 + 44c8: 8eb6 mv t4,a3 buf[i++] = digits[val % base]; - 44de: 98fe add a7,a7,t6 - 44e0: 0008c883 lbu a7,0(a7) + 44ca: 98fe add a7,a7,t6 + 44cc: 0008c883 lbu a7,0(a7) val /= base; - 44e4: 0266d6b3 divu a3,a3,t1 + 44d0: 0266d6b3 divu a3,a3,t1 buf[i++] = digits[val % base]; - 44e8: ff160fa3 sb a7,-1(a2) + 44d4: ff160fa3 sb a7,-1(a2) while (val != 0) - 44ec: fe6ef4e3 bgeu t4,t1,44d4 <_vprintf_core.constprop.0.isra.0+0x464> + 44d8: fe6ef4e3 bgeu t4,t1,44c0 <_vprintf_core.constprop.0.isra.0+0x464> buf[i++] = digits[val % base]; - 44f0: 405f0f3b subw t5,t5,t0 - 44f4: 2f05 addiw t5,t5,1 + 44dc: 405f0f3b subw t5,t5,t0 + 44e0: 2f05 addiw t5,t5,1 if (precision >= 0) - 44f6: 100bc363 bltz s7,45fc <_vprintf_core.constprop.0.isra.0+0x58c> + 44e2: 100bc363 bltz s7,45e8 <_vprintf_core.constprop.0.isra.0+0x58c> int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; - 44fa: 1d7f4d63 blt t5,s7,46d4 <_vprintf_core.constprop.0.isra.0+0x664> + 44e6: 1d7f4d63 blt t5,s7,46c0 <_vprintf_core.constprop.0.isra.0+0x664> if (precision == 0 && val == 0) - 44fe: 340b9163 bnez s7,4840 <_vprintf_core.constprop.0.isra.0+0x7d0> - 4502: 200e0763 beqz t3,4710 <_vprintf_core.constprop.0.isra.0+0x6a0> + 44ea: 340b9163 bnez s7,482c <_vprintf_core.constprop.0.isra.0+0x7d0> + 44ee: 200e0763 beqz t3,46fc <_vprintf_core.constprop.0.isra.0+0x6a0> for (int i = digit_len - 1; i >= 0; i--) - 4506: ffff0c1b addiw s8,t5,-1 + 44f2: ffff0c1b addiw s8,t5,-1 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 450a: 07000693 li a3,112 + 44f6: 07000693 li a3,112 for (int i = digit_len - 1; i >= 0; i--) - 450e: 8662 mv a2,s8 + 44fa: 8662 mv a2,s8 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 4510: 28dc8e63 beq s9,a3,47ac <_vprintf_core.constprop.0.isra.0+0x73c> - 4514: 2a051663 bnez a0,47c0 <_vprintf_core.constprop.0.isra.0+0x750> + 44fc: 28dc8e63 beq s9,a3,4798 <_vprintf_core.constprop.0.isra.0+0x73c> + 4500: 2a051663 bnez a0,47ac <_vprintf_core.constprop.0.isra.0+0x750> int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 4518: 00bf05bb addw a1,t5,a1 - 451c: 8d52 mv s10,s4 - 451e: 4b01 li s6,0 + 4504: 00bf05bb addw a1,t5,a1 + 4508: 8d52 mv s10,s4 + 450a: 4b01 li s6,0 char *prefix_str = NULL; - 4520: 4c81 li s9,0 + 450c: 4c81 li s9,0 int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 4522: 1085d263 bge a1,s0,4626 <_vprintf_core.constprop.0.isra.0+0x5b6> - 4526: 9c0d subw s0,s0,a1 + 450e: 1085d263 bge a1,s0,4612 <_vprintf_core.constprop.0.isra.0+0x5b6> + 4512: 9c0d subw s0,s0,a1 if (!flag_left && !flag_zero) - 4528: 100d0a63 beqz s10,463c <_vprintf_core.constprop.0.isra.0+0x5cc> + 4514: 100d0a63 beqz s10,4628 <_vprintf_core.constprop.0.isra.0+0x5cc> if (sign_char) - 452c: 6782 ld a5,0(sp) - 452e: 10079263 bnez a5,4632 <_vprintf_core.constprop.0.isra.0+0x5c2> + 4518: 6782 ld a5,0(sp) + 451a: 10079263 bnez a5,461e <_vprintf_core.constprop.0.isra.0+0x5c2> if (prefix_str) - 4532: 000c8c63 beqz s9,454a <_vprintf_core.constprop.0.isra.0+0x4da> + 451e: 000c8c63 beqz s9,4536 <_vprintf_core.constprop.0.isra.0+0x4da> _out_char(ctx, prefix_str[0]); - 4536: 000cc583 lbu a1,0(s9) - 453a: 8526 mv a0,s1 - 453c: cc1fd0ef jal 21fc <_out_char> + 4522: 000cc583 lbu a1,0(s9) + 4526: 8526 mv a0,s1 + 4528: cc1fd0ef jal 21e8 <_out_char> _out_char(ctx, prefix_str[1]); - 4540: 001cc583 lbu a1,1(s9) - 4544: 8526 mv a0,s1 - 4546: cb7fd0ef jal 21fc <_out_char> + 452c: 001cc583 lbu a1,1(s9) + 4530: 8526 mv a0,s1 + 4532: cb7fd0ef jal 21e8 <_out_char> int total_zeros = prec_zeros + ((flag_zero && !flag_left) ? padding : 0); - 454a: 180b0263 beqz s6,46ce <_vprintf_core.constprop.0.isra.0+0x65e> - 454e: 100a1863 bnez s4,465e <_vprintf_core.constprop.0.isra.0+0x5ee> - 4552: 008b8bbb addw s7,s7,s0 + 4536: 180b0263 beqz s6,46ba <_vprintf_core.constprop.0.isra.0+0x65e> + 453a: 100a1863 bnez s4,464a <_vprintf_core.constprop.0.isra.0+0x5ee> + 453e: 008b8bbb addw s7,s7,s0 for (int i = 0; i < total_zeros; i++) - 4556: 2a0b8363 beqz s7,47fc <_vprintf_core.constprop.0.isra.0+0x78c> - 455a: 4c81 li s9,0 + 4542: 2a0b8363 beqz s7,47e8 <_vprintf_core.constprop.0.isra.0+0x78c> + 4546: 4c81 li s9,0 _out_char(ctx, '0'); - 455c: 03000593 li a1,48 - 4560: 8526 mv a0,s1 + 4548: 03000593 li a1,48 + 454c: 8526 mv a0,s1 for (int i = 0; i < total_zeros; i++) - 4562: 2c85 addiw s9,s9,1 + 454e: 2c85 addiw s9,s9,1 _out_char(ctx, '0'); - 4564: c99fd0ef jal 21fc <_out_char> + 4550: c99fd0ef jal 21e8 <_out_char> for (int i = 0; i < total_zeros; i++) - 4568: ff7c9ae3 bne s9,s7,455c <_vprintf_core.constprop.0.isra.0+0x4ec> + 4554: ff7c9ae3 bne s9,s7,4548 <_vprintf_core.constprop.0.isra.0+0x4ec> for (int i = digit_len - 1; i >= 0; i--) - 456c: 57fd li a5,-1 - 456e: 00fc0f63 beq s8,a5,458c <_vprintf_core.constprop.0.isra.0+0x51c> - 4572: 01010c93 addi s9,sp,16 - 4576: 9ce2 add s9,s9,s8 - 4578: 00f10c13 addi s8,sp,15 + 4558: 57fd li a5,-1 + 455a: 00fc0f63 beq s8,a5,4578 <_vprintf_core.constprop.0.isra.0+0x51c> + 455e: 01010c93 addi s9,sp,16 + 4562: 9ce2 add s9,s9,s8 + 4564: 00f10c13 addi s8,sp,15 _out_char(ctx, num_buf[i]); - 457c: 000cc583 lbu a1,0(s9) - 4580: 8526 mv a0,s1 + 4568: 000cc583 lbu a1,0(s9) + 456c: 8526 mv a0,s1 for (int i = digit_len - 1; i >= 0; i--) - 4582: 1cfd addi s9,s9,-1 + 456e: 1cfd addi s9,s9,-1 _out_char(ctx, num_buf[i]); - 4584: c79fd0ef jal 21fc <_out_char> + 4570: c79fd0ef jal 21e8 <_out_char> for (int i = digit_len - 1; i >= 0; i--) - 4588: ff9c1ae3 bne s8,s9,457c <_vprintf_core.constprop.0.isra.0+0x50c> + 4574: ff9c1ae3 bne s8,s9,4568 <_vprintf_core.constprop.0.isra.0+0x50c> if (flag_left) - 458c: 0c0a1e63 bnez s4,4668 <_vprintf_core.constprop.0.isra.0+0x5f8> + 4578: 0c0a1e63 bnez s4,4654 <_vprintf_core.constprop.0.isra.0+0x5f8> char spec = *p++; - 4590: 6c22 ld s8,8(sp) - 4592: be31 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 457c: 6c22 ld s8,8(sp) + 457e: be31 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> int padding = (width > len) ? width - len : 0; - 4594: 4174043b subw s0,s0,s7 + 4580: 4174043b subw s0,s0,s7 if (!flag_left) - 4598: 100a0a63 beqz s4,46ac <_vprintf_core.constprop.0.isra.0+0x63c> + 4584: 100a0a63 beqz s4,4698 <_vprintf_core.constprop.0.isra.0+0x63c> for (int i = 0; i < len; i++) - 459c: d80b9ce3 bnez s7,4334 <_vprintf_core.constprop.0.isra.0+0x2c4> + 4588: d80b9ce3 bnez s7,4320 <_vprintf_core.constprop.0.isra.0+0x2c4> for (int i = 0; i < padding; i++) - 45a0: 4a01 li s4,0 + 458c: 4a01 li s4,0 _out_char(ctx, ' '); - 45a2: 02000593 li a1,32 - 45a6: 8526 mv a0,s1 + 458e: 02000593 li a1,32 + 4592: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 45a8: 2a05 addiw s4,s4,1 + 4594: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 45aa: c53fd0ef jal 21fc <_out_char> + 4596: c53fd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 45ae: ff441ae3 bne s0,s4,45a2 <_vprintf_core.constprop.0.isra.0+0x532> + 459a: ff441ae3 bne s0,s4,458e <_vprintf_core.constprop.0.isra.0+0x532> const char *s = va_arg(ap, char *); - 45b2: 0c21 addi s8,s8,8 - 45b4: bced j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 459e: 0c21 addi s8,s8,8 + 45a0: bced j 409a <_vprintf_core.constprop.0.isra.0+0x3e> for (int i = 0; i < padding; i++) - 45b6: f46d bnez s0,45a0 <_vprintf_core.constprop.0.isra.0+0x530> + 45a2: f46d bnez s0,458c <_vprintf_core.constprop.0.isra.0+0x530> const char *s = va_arg(ap, char *); - 45b8: 0c21 addi s8,s8,8 - 45ba: bcd5 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 45a4: 0c21 addi s8,s8,8 + 45a6: bcd5 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> else if (len_mod == 1) - 45bc: 1fce8163 beq t4,t3,479e <_vprintf_core.constprop.0.isra.0+0x72e> + 45a8: 1fce8163 beq t4,t3,478a <_vprintf_core.constprop.0.isra.0+0x72e> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 45c0: 000c2e03 lw t3,0(s8) - 45c4: 008c0793 addi a5,s8,8 - 45c8: e43e sd a5,8(sp) + 45ac: 000c2e03 lw t3,0(s8) + 45b0: 008c0793 addi a5,s8,8 + 45b4: e43e sd a5,8(sp) int64 sval = (int64)val; - 45ca: 86f2 mv a3,t3 + 45b6: 86f2 mv a3,t3 if (sval < 0) - 45cc: 1406cb63 bltz a3,4722 <_vprintf_core.constprop.0.isra.0+0x6b2> + 45b8: 1406cb63 bltz a3,470e <_vprintf_core.constprop.0.isra.0+0x6b2> sign_char = '+'; - 45d0: 02b00793 li a5,43 - 45d4: e03e sd a5,0(sp) + 45bc: 02b00793 li a5,43 + 45c0: e03e sd a5,0(sp) else if (flag_plus) - 45d6: e589 bnez a1,45e0 <_vprintf_core.constprop.0.isra.0+0x570> + 45c2: e589 bnez a1,45cc <_vprintf_core.constprop.0.isra.0+0x570> else if (flag_space) - 45d8: 00589793 slli a5,a7,0x5 - 45dc: e03e sd a5,0(sp) - 45de: 85c6 mv a1,a7 + 45c4: 00589793 slli a5,a7,0x5 + 45c8: e03e sd a5,0(sp) + 45ca: 85c6 mv a1,a7 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 45e0: 4329 li t1,10 - 45e2: 00002f97 auipc t6,0x2 - 45e6: bc6f8f93 addi t6,t6,-1082 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> + 45cc: 4329 li t1,10 + 45ce: 00002f97 auipc t6,0x2 + 45d2: c42f8f93 addi t6,t6,-958 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> if (val == 0) - 45ea: ee0e11e3 bnez t3,44cc <_vprintf_core.constprop.0.isra.0+0x45c> + 45d6: ee0e11e3 bnez t3,44b8 <_vprintf_core.constprop.0.isra.0+0x45c> buf[i++] = '0'; - 45ee: 03000693 li a3,48 - 45f2: 00d10823 sb a3,16(sp) + 45da: 03000693 li a3,48 + 45de: 00d10823 sb a3,16(sp) return i; - 45f6: 4f05 li t5,1 + 45e2: 4f05 li t5,1 if (precision >= 0) - 45f8: f00bd1e3 bgez s7,44fa <_vprintf_core.constprop.0.isra.0+0x48a> + 45e4: f00bd1e3 bgez s7,44e6 <_vprintf_core.constprop.0.isra.0+0x48a> for (int i = digit_len - 1; i >= 0; i--) - 45fc: ffff0c1b addiw s8,t5,-1 + 45e8: ffff0c1b addiw s8,t5,-1 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 4600: 07000893 li a7,112 + 45ec: 07000893 li a7,112 if (!flag_left && !flag_zero) - 4604: 016a6d33 or s10,s4,s6 + 45f0: 016a6d33 or s10,s4,s6 int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; - 4608: 4b81 li s7,0 + 45f4: 4b81 li s7,0 for (int i = digit_len - 1; i >= 0; i--) - 460a: 8662 mv a2,s8 + 45f6: 8662 mv a2,s8 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 460c: 0d1c9f63 bne s9,a7,46ea <_vprintf_core.constprop.0.isra.0+0x67a> + 45f8: 0d1c9f63 bne s9,a7,46d6 <_vprintf_core.constprop.0.isra.0+0x67a> prefix_str = (spec == 'X') ? "0X" : "0x"; - 4610: 00002c97 auipc s9,0x2 - 4614: bb0c8c93 addi s9,s9,-1104 # 61c0 <_GLOBAL__sub_I__ZSt3cin+0x1bc> + 45fc: 00002c97 auipc s9,0x2 + 4600: c2cc8c93 addi s9,s9,-980 # 6228 <_GLOBAL__sub_I__ZSt3cin+0x238> prefix_len += 2; - 4618: 2589 addiw a1,a1,2 + 4604: 2589 addiw a1,a1,2 int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 461a: 017585bb addw a1,a1,s7 - 461e: 01e585bb addw a1,a1,t5 - 4622: f085c2e3 blt a1,s0,4526 <_vprintf_core.constprop.0.isra.0+0x4b6> + 4606: 017585bb addw a1,a1,s7 + 460a: 01e585bb addw a1,a1,t5 + 460e: f085c2e3 blt a1,s0,4512 <_vprintf_core.constprop.0.isra.0+0x4b6> if (!flag_left && !flag_zero) - 4626: 080d0f63 beqz s10,46c4 <_vprintf_core.constprop.0.isra.0+0x654> + 4612: 080d0f63 beqz s10,46b0 <_vprintf_core.constprop.0.isra.0+0x654> if (sign_char) - 462a: 6782 ld a5,0(sp) + 4616: 6782 ld a5,0(sp) int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 462c: 4401 li s0,0 + 4618: 4401 li s0,0 if (sign_char) - 462e: f00782e3 beqz a5,4532 <_vprintf_core.constprop.0.isra.0+0x4c2> + 461a: f00782e3 beqz a5,451e <_vprintf_core.constprop.0.isra.0+0x4c2> _out_char(ctx, sign_char); - 4632: 6582 ld a1,0(sp) - 4634: 8526 mv a0,s1 - 4636: bc7fd0ef jal 21fc <_out_char> - 463a: bde5 j 4532 <_vprintf_core.constprop.0.isra.0+0x4c2> + 461e: 6582 ld a1,0(sp) + 4620: 8526 mv a0,s1 + 4622: bc7fd0ef jal 21e8 <_out_char> + 4626: bde5 j 451e <_vprintf_core.constprop.0.isra.0+0x4c2> _out_char(ctx, ' '); - 463c: 02000593 li a1,32 - 4640: 8526 mv a0,s1 + 4628: 02000593 li a1,32 + 462c: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 4642: 2d05 addiw s10,s10,1 + 462e: 2d05 addiw s10,s10,1 _out_char(ctx, ' '); - 4644: bb9fd0ef jal 21fc <_out_char> + 4630: bb9fd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 4648: efa402e3 beq s0,s10,452c <_vprintf_core.constprop.0.isra.0+0x4bc> + 4634: efa402e3 beq s0,s10,4518 <_vprintf_core.constprop.0.isra.0+0x4bc> _out_char(ctx, ' '); - 464c: 02000593 li a1,32 - 4650: 8526 mv a0,s1 + 4638: 02000593 li a1,32 + 463c: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 4652: 2d05 addiw s10,s10,1 + 463e: 2d05 addiw s10,s10,1 _out_char(ctx, ' '); - 4654: ba9fd0ef jal 21fc <_out_char> + 4640: ba9fd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 4658: ffa412e3 bne s0,s10,463c <_vprintf_core.constprop.0.isra.0+0x5cc> - 465c: bdc1 j 452c <_vprintf_core.constprop.0.isra.0+0x4bc> + 4644: ffa412e3 bne s0,s10,4628 <_vprintf_core.constprop.0.isra.0+0x5cc> + 4648: bdc1 j 4518 <_vprintf_core.constprop.0.isra.0+0x4bc> for (int i = 0; i < total_zeros; i++) - 465e: ee0b9ee3 bnez s7,455a <_vprintf_core.constprop.0.isra.0+0x4ea> + 464a: ee0b9ee3 bnez s7,4546 <_vprintf_core.constprop.0.isra.0+0x4ea> for (int i = digit_len - 1; i >= 0; i--) - 4662: 577d li a4,-1 - 4664: f0ec17e3 bne s8,a4,4572 <_vprintf_core.constprop.0.isra.0+0x502> + 464e: 577d li a4,-1 + 4650: f0ec17e3 bne s8,a4,455e <_vprintf_core.constprop.0.isra.0+0x502> for (int i = 0; i < padding; i++) - 4668: d405 beqz s0,4590 <_vprintf_core.constprop.0.isra.0+0x520> - 466a: 4a01 li s4,0 + 4654: d405 beqz s0,457c <_vprintf_core.constprop.0.isra.0+0x520> + 4656: 4a01 li s4,0 _out_char(ctx, ' '); - 466c: 02000593 li a1,32 - 4670: 8526 mv a0,s1 + 4658: 02000593 li a1,32 + 465c: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 4672: 2a05 addiw s4,s4,1 + 465e: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 4674: b89fd0ef jal 21fc <_out_char> + 4660: b89fd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 4678: fe8a1ae3 bne s4,s0,466c <_vprintf_core.constprop.0.isra.0+0x5fc> + 4664: fe8a1ae3 bne s4,s0,4658 <_vprintf_core.constprop.0.isra.0+0x5fc> char spec = *p++; - 467c: 6c22 ld s8,8(sp) - 467e: bc05 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 4668: 6c22 ld s8,8(sp) + 466a: bc05 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> val = (uint64)va_arg(ap, void *); - 4680: 008c0793 addi a5,s8,8 - 4684: e43e sd a5,8(sp) + 466c: 008c0793 addi a5,s8,8 + 4670: e43e sd a5,8(sp) else if (len_mod == 1) - 4686: 180e9163 bnez t4,4808 <_vprintf_core.constprop.0.isra.0+0x798> + 4672: 180e9163 bnez t4,47f4 <_vprintf_core.constprop.0.isra.0+0x798> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 468a: 000c6e03 lwu t3,0(s8) + 4676: 000c6e03 lwu t3,0(s8) val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 468e: 4581 li a1,0 - 4690: 05800c93 li s9,88 - 4694: e002 sd zero,0(sp) - 4696: 4341 li t1,16 + 467a: 4581 li a1,0 + 467c: 05800c93 li s9,88 + 4680: e002 sd zero,0(sp) + 4682: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 4698: 00002f97 auipc t6,0x2 - 469c: af8f8f93 addi t6,t6,-1288 # 6190 <_GLOBAL__sub_I__ZSt3cin+0x18c> - 46a0: b525 j 44c8 <_vprintf_core.constprop.0.isra.0+0x458> + 4684: 00002f97 auipc t6,0x2 + 4688: b74f8f93 addi t6,t6,-1164 # 61f8 <_GLOBAL__sub_I__ZSt3cin+0x208> + 468c: b525 j 44b4 <_vprintf_core.constprop.0.isra.0+0x458> int padding = (width > len) ? width - len : 0; - 46a2: ca8058e3 blez s0,4352 <_vprintf_core.constprop.0.isra.0+0x2e2> + 468e: ca8058e3 blez s0,433e <_vprintf_core.constprop.0.isra.0+0x2e2> if (!flag_left) - 46a6: ee0a1de3 bnez s4,45a0 <_vprintf_core.constprop.0.isra.0+0x530> + 4692: ee0a1de3 bnez s4,458c <_vprintf_core.constprop.0.isra.0+0x530> int len = 0; - 46aa: 4b81 li s7,0 + 4696: 4b81 li s7,0 for (int i = 0; i < padding; i++) - 46ac: 4d01 li s10,0 + 4698: 4d01 li s10,0 _out_char(ctx, ' '); - 46ae: 02000593 li a1,32 - 46b2: 8526 mv a0,s1 + 469a: 02000593 li a1,32 + 469e: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 46b4: 2d05 addiw s10,s10,1 + 46a0: 2d05 addiw s10,s10,1 _out_char(ctx, ' '); - 46b6: b47fd0ef jal 21fc <_out_char> + 46a2: b47fd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 46ba: fe8d1ae3 bne s10,s0,46ae <_vprintf_core.constprop.0.isra.0+0x63e> + 46a6: fe8d1ae3 bne s10,s0,469a <_vprintf_core.constprop.0.isra.0+0x63e> for (int i = 0; i < len; i++) - 46be: c60b9be3 bnez s7,4334 <_vprintf_core.constprop.0.isra.0+0x2c4> - 46c2: b941 j 4352 <_vprintf_core.constprop.0.isra.0+0x2e2> + 46aa: c60b9be3 bnez s7,4320 <_vprintf_core.constprop.0.isra.0+0x2c4> + 46ae: b941 j 433e <_vprintf_core.constprop.0.isra.0+0x2e2> if (sign_char) - 46c4: 6782 ld a5,0(sp) - 46c6: 4401 li s0,0 - 46c8: f7ad bnez a5,4632 <_vprintf_core.constprop.0.isra.0+0x5c2> + 46b0: 6782 ld a5,0(sp) + 46b2: 4401 li s0,0 + 46b4: f7ad bnez a5,461e <_vprintf_core.constprop.0.isra.0+0x5c2> if (prefix_str) - 46ca: e60c96e3 bnez s9,4536 <_vprintf_core.constprop.0.isra.0+0x4c6> + 46b6: e60c96e3 bnez s9,4522 <_vprintf_core.constprop.0.isra.0+0x4c6> for (int i = 0; i < total_zeros; i++) - 46ce: e80b96e3 bnez s7,455a <_vprintf_core.constprop.0.isra.0+0x4ea> - 46d2: bd69 j 456c <_vprintf_core.constprop.0.isra.0+0x4fc> + 46ba: e80b96e3 bnez s7,4546 <_vprintf_core.constprop.0.isra.0+0x4ea> + 46be: bd69 j 4558 <_vprintf_core.constprop.0.isra.0+0x4fc> int prec_zeros = (precision > digit_len) ? precision - digit_len : 0; - 46d4: 41eb8bbb subw s7,s7,t5 - 46d8: 8d52 mv s10,s4 - 46da: 4b01 li s6,0 + 46c0: 41eb8bbb subw s7,s7,t5 + 46c4: 8d52 mv s10,s4 + 46c6: 4b01 li s6,0 for (int i = digit_len - 1; i >= 0; i--) - 46dc: ffff0c1b addiw s8,t5,-1 + 46c8: ffff0c1b addiw s8,t5,-1 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 46e0: 07000893 li a7,112 + 46cc: 07000893 li a7,112 for (int i = digit_len - 1; i >= 0; i--) - 46e4: 8662 mv a2,s8 + 46d0: 8662 mv a2,s8 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 46e6: f31c85e3 beq s9,a7,4610 <_vprintf_core.constprop.0.isra.0+0x5a0> - 46ea: cd09 beqz a0,4704 <_vprintf_core.constprop.0.isra.0+0x694> - 46ec: 000e0c63 beqz t3,4704 <_vprintf_core.constprop.0.isra.0+0x694> - 46f0: 07800513 li a0,120 + 46d2: f31c85e3 beq s9,a7,45fc <_vprintf_core.constprop.0.isra.0+0x5a0> + 46d6: cd09 beqz a0,46f0 <_vprintf_core.constprop.0.isra.0+0x694> + 46d8: 000e0c63 beqz t3,46f0 <_vprintf_core.constprop.0.isra.0+0x694> + 46dc: 07800513 li a0,120 for (int i = digit_len - 1; i >= 0; i--) - 46f4: 00060c1b sext.w s8,a2 + 46e0: 00060c1b sext.w s8,a2 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 46f8: f0ac8ce3 beq s9,a0,4610 <_vprintf_core.constprop.0.isra.0+0x5a0> - 46fc: 05800613 li a2,88 - 4700: 12cc8463 beq s9,a2,4828 <_vprintf_core.constprop.0.isra.0+0x7b8> + 46e4: f0ac8ce3 beq s9,a0,45fc <_vprintf_core.constprop.0.isra.0+0x5a0> + 46e8: 05800613 li a2,88 + 46ec: 12cc8463 beq s9,a2,4814 <_vprintf_core.constprop.0.isra.0+0x7b8> int padding = (width > prefix_len + prec_zeros + digit_len) ? width - (prefix_len + prec_zeros + digit_len) : 0; - 4704: 00bb85bb addw a1,s7,a1 - 4708: 01e585bb addw a1,a1,t5 + 46f0: 00bb85bb addw a1,s7,a1 + 46f4: 01e585bb addw a1,a1,t5 char *prefix_str = NULL; - 470c: 4c81 li s9,0 - 470e: bd11 j 4522 <_vprintf_core.constprop.0.isra.0+0x4b2> + 46f8: 4c81 li s9,0 + 46fa: bd11 j 450e <_vprintf_core.constprop.0.isra.0+0x4b2> if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 4710: 07000693 li a3,112 - 4714: 8d52 mv s10,s4 - 4716: 4b01 li s6,0 - 4718: 08dc8d63 beq s9,a3,47b2 <_vprintf_core.constprop.0.isra.0+0x742> - 471c: 5c7d li s8,-1 + 46fc: 07000693 li a3,112 + 4700: 8d52 mv s10,s4 + 4702: 4b01 li s6,0 + 4704: 08dc8d63 beq s9,a3,479e <_vprintf_core.constprop.0.isra.0+0x742> + 4708: 5c7d li s8,-1 char *prefix_str = NULL; - 471e: 4c81 li s9,0 - 4720: b509 j 4522 <_vprintf_core.constprop.0.isra.0+0x4b2> + 470a: 4c81 li s9,0 + 470c: b509 j 450e <_vprintf_core.constprop.0.isra.0+0x4b2> sign_char = '-'; - 4722: 02d00793 li a5,45 + 470e: 02d00793 li a5,45 val = (uint64)(-sval); - 4726: 40d00e33 neg t3,a3 - 472a: 4585 li a1,1 - 472c: 4329 li t1,10 + 4712: 40d00e33 neg t3,a3 + 4716: 4585 li a1,1 + 4718: 4329 li t1,10 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 472e: 00002f97 auipc t6,0x2 - 4732: a7af8f93 addi t6,t6,-1414 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> + 471a: 00002f97 auipc t6,0x2 + 471e: af6f8f93 addi t6,t6,-1290 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> sign_char = '-'; - 4736: e03e sd a5,0(sp) - 4738: bb51 j 44cc <_vprintf_core.constprop.0.isra.0+0x45c> + 4722: e03e sd a5,0(sp) + 4724: bb51 j 44b8 <_vprintf_core.constprop.0.isra.0+0x45c> s = "(null)"; - 473a: 00002c97 auipc s9,0x2 - 473e: a96c8c93 addi s9,s9,-1386 # 61d0 <_GLOBAL__sub_I__ZSt3cin+0x1cc> - 4742: bed1 j 4316 <_vprintf_core.constprop.0.isra.0+0x2a6> + 4726: 00002c97 auipc s9,0x2 + 472a: b12c8c93 addi s9,s9,-1262 # 6238 <_GLOBAL__sub_I__ZSt3cin+0x248> + 472e: bed1 j 4302 <_vprintf_core.constprop.0.isra.0+0x2a6> val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 4744: 000c3683 ld a3,0(s8) - 4748: 008c0713 addi a4,s8,8 - 474c: e43a sd a4,8(sp) - 474e: 8dbe mv s11,a5 - 4750: 8e36 mv t3,a3 + 4730: 000c3683 ld a3,0(s8) + 4734: 008c0713 addi a4,s8,8 + 4738: e43a sd a4,8(sp) + 473a: 8dbe mv s11,a5 + 473c: 8e36 mv t3,a3 if (is_signed) - 4752: bdad j 45cc <_vprintf_core.constprop.0.isra.0+0x55c> + 473e: bdad j 45b8 <_vprintf_core.constprop.0.isra.0+0x55c> int is_signed = (spec == 'd' || spec == 'i'); - 4754: 06900693 li a3,105 - 4758: fedc86e3 beq s9,a3,4744 <_vprintf_core.constprop.0.isra.0+0x6d4> + 4740: 06900693 li a3,105 + 4744: fedc86e3 beq s9,a3,4730 <_vprintf_core.constprop.0.isra.0+0x6d4> val = (uint64)va_arg(ap, void *); - 475c: 008c0713 addi a4,s8,8 + 4748: 008c0713 addi a4,s8,8 int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 4760: 07800693 li a3,120 + 474c: 07800693 li a3,120 val = (uint64)va_arg(ap, void *); - 4764: e43a sd a4,8(sp) + 4750: e43a sd a4,8(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 4766: 06dc9063 bne s9,a3,47c6 <_vprintf_core.constprop.0.isra.0+0x756> + 4752: 06dc9063 bne s9,a3,47b2 <_vprintf_core.constprop.0.isra.0+0x756> val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 476a: 000c3e03 ld t3,0(s8) - 476e: 8dbe mv s11,a5 - 4770: 4581 li a1,0 - 4772: e002 sd zero,0(sp) + 4756: 000c3e03 ld t3,0(s8) + 475a: 8dbe mv s11,a5 + 475c: 4581 li a1,0 + 475e: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 4774: 4341 li t1,16 + 4760: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 4776: 00002f97 auipc t6,0x2 - 477a: a32f8f93 addi t6,t6,-1486 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> - 477e: b3a9 j 44c8 <_vprintf_core.constprop.0.isra.0+0x458> + 4762: 00002f97 auipc t6,0x2 + 4766: aaef8f93 addi t6,t6,-1362 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> + 476a: b3a9 j 44b4 <_vprintf_core.constprop.0.isra.0+0x458> for (int i = 0; i < padding; i++) - 4780: c809 beqz s0,4792 <_vprintf_core.constprop.0.isra.0+0x722> + 476c: c809 beqz s0,477e <_vprintf_core.constprop.0.isra.0+0x722> _out_char(ctx, ' '); - 4782: 02000593 li a1,32 - 4786: 8526 mv a0,s1 + 476e: 02000593 li a1,32 + 4772: 8526 mv a0,s1 for (int i = 0; i < padding; i++) - 4788: 2a05 addiw s4,s4,1 + 4774: 2a05 addiw s4,s4,1 _out_char(ctx, ' '); - 478a: a73fd0ef jal 21fc <_out_char> + 4776: a73fd0ef jal 21e8 <_out_char> for (int i = 0; i < padding; i++) - 478e: ff441ae3 bne s0,s4,4782 <_vprintf_core.constprop.0.isra.0+0x712> + 477a: ff441ae3 bne s0,s4,476e <_vprintf_core.constprop.0.isra.0+0x712> _out_char(ctx, c); - 4792: 85e6 mv a1,s9 - 4794: 8526 mv a0,s1 - 4796: a67fd0ef jal 21fc <_out_char> + 477e: 85e6 mv a1,s9 + 4780: 8526 mv a0,s1 + 4782: a67fd0ef jal 21e8 <_out_char> const char *s = va_arg(ap, char *); - 479a: 0c21 addi s8,s8,8 - 479c: ba09 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 4786: 0c21 addi s8,s8,8 + 4788: ba09 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 479e: 000c3683 ld a3,0(s8) - 47a2: 008c0793 addi a5,s8,8 - 47a6: e43e sd a5,8(sp) - 47a8: 8e36 mv t3,a3 + 478a: 000c3683 ld a3,0(s8) + 478e: 008c0793 addi a5,s8,8 + 4792: e43e sd a5,8(sp) + 4794: 8e36 mv t3,a3 if (is_signed) - 47aa: b50d j 45cc <_vprintf_core.constprop.0.isra.0+0x55c> + 4796: b50d j 45b8 <_vprintf_core.constprop.0.isra.0+0x55c> if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 47ac: 8d52 mv s10,s4 - 47ae: 4b01 li s6,0 - 47b0: b585 j 4610 <_vprintf_core.constprop.0.isra.0+0x5a0> + 4798: 8d52 mv s10,s4 + 479a: 4b01 li s6,0 + 479c: b585 j 45fc <_vprintf_core.constprop.0.isra.0+0x5a0> digit_len = 0; - 47b2: 4f01 li t5,0 + 479e: 4f01 li t5,0 if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 47b4: 5c7d li s8,-1 + 47a0: 5c7d li s8,-1 prefix_str = (spec == 'X') ? "0X" : "0x"; - 47b6: 00002c97 auipc s9,0x2 - 47ba: a0ac8c93 addi s9,s9,-1526 # 61c0 <_GLOBAL__sub_I__ZSt3cin+0x1bc> - 47be: bda9 j 4618 <_vprintf_core.constprop.0.isra.0+0x5a8> + 47a2: 00002c97 auipc s9,0x2 + 47a6: a86c8c93 addi s9,s9,-1402 # 6228 <_GLOBAL__sub_I__ZSt3cin+0x238> + 47aa: bda9 j 4604 <_vprintf_core.constprop.0.isra.0+0x5a8> if (spec == 'p' || (flag_hash && val != 0 && (spec == 'x' || spec == 'X'))) - 47c0: 8d52 mv s10,s4 - 47c2: 4b01 li s6,0 - 47c4: b735 j 46f0 <_vprintf_core.constprop.0.isra.0+0x680> + 47ac: 8d52 mv s10,s4 + 47ae: 4b01 li s6,0 + 47b0: b735 j 46dc <_vprintf_core.constprop.0.isra.0+0x680> int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 47c6: 07000693 li a3,112 - 47ca: 04dc8263 beq s9,a3,480e <_vprintf_core.constprop.0.isra.0+0x79e> + 47b2: 07000693 li a3,112 + 47b6: 04dc8263 beq s9,a3,47fa <_vprintf_core.constprop.0.isra.0+0x79e> val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 47ce: 000c3e03 ld t3,0(s8) - 47d2: 8dbe mv s11,a5 - 47d4: 4581 li a1,0 - 47d6: e002 sd zero,0(sp) + 47ba: 000c3e03 ld t3,0(s8) + 47be: 8dbe mv s11,a5 + 47c0: 4581 li a1,0 + 47c2: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 47d8: 4329 li t1,10 + 47c4: 4329 li t1,10 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 47da: 00002f97 auipc t6,0x2 - 47de: 9cef8f93 addi t6,t6,-1586 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> - 47e2: b1dd j 44c8 <_vprintf_core.constprop.0.isra.0+0x458> + 47c6: 00002f97 auipc t6,0x2 + 47ca: a4af8f93 addi t6,t6,-1462 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> + 47ce: b1dd j 44b4 <_vprintf_core.constprop.0.isra.0+0x458> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 47e4: 000c3e03 ld t3,0(s8) - 47e8: 4581 li a1,0 - 47ea: e002 sd zero,0(sp) + 47d0: 000c3e03 ld t3,0(s8) + 47d4: 4581 li a1,0 + 47d6: e002 sd zero,0(sp) int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 47ec: 4341 li t1,16 + 47d8: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 47ee: 00002f97 auipc t6,0x2 - 47f2: 9baf8f93 addi t6,t6,-1606 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> - 47f6: b9c9 j 44c8 <_vprintf_core.constprop.0.isra.0+0x458> + 47da: 00002f97 auipc t6,0x2 + 47de: a36f8f93 addi t6,t6,-1482 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> + 47e2: b9c9 j 44b4 <_vprintf_core.constprop.0.isra.0+0x458> char spec = *p++; - 47f8: 8dbe mv s11,a5 - 47fa: b911 j 440e <_vprintf_core.constprop.0.isra.0+0x39e> + 47e4: 8dbe mv s11,a5 + 47e6: b911 j 43fa <_vprintf_core.constprop.0.isra.0+0x39e> for (int i = digit_len - 1; i >= 0; i--) - 47fc: 577d li a4,-1 - 47fe: 4401 li s0,0 - 4800: d6ec19e3 bne s8,a4,4572 <_vprintf_core.constprop.0.isra.0+0x502> + 47e8: 577d li a4,-1 + 47ea: 4401 li s0,0 + 47ec: d6ec19e3 bne s8,a4,455e <_vprintf_core.constprop.0.isra.0+0x502> char spec = *p++; - 4804: 6c22 ld s8,8(sp) - 4806: b065 j 40ae <_vprintf_core.constprop.0.isra.0+0x3e> + 47f0: 6c22 ld s8,8(sp) + 47f2: b065 j 409a <_vprintf_core.constprop.0.isra.0+0x3e> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 4808: 000c3e03 ld t3,0(s8) + 47f4: 000c3e03 ld t3,0(s8) const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 480c: b549 j 468e <_vprintf_core.constprop.0.isra.0+0x61e> + 47f8: b549 j 467a <_vprintf_core.constprop.0.isra.0+0x61e> int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 480e: 8dbe mv s11,a5 + 47fa: 8dbe mv s11,a5 val = (uint64)va_arg(ap, void *); - 4810: 000c3e03 ld t3,0(s8) - 4814: 4581 li a1,0 - 4816: 07000c93 li s9,112 - 481a: e002 sd zero,0(sp) - 481c: 4341 li t1,16 + 47fc: 000c3e03 ld t3,0(s8) + 4800: 4581 li a1,0 + 4802: 07000c93 li s9,112 + 4806: e002 sd zero,0(sp) + 4808: 4341 li t1,16 const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 481e: 00002f97 auipc t6,0x2 - 4822: 98af8f93 addi t6,t6,-1654 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> - 4826: b14d j 44c8 <_vprintf_core.constprop.0.isra.0+0x458> + 480a: 00002f97 auipc t6,0x2 + 480e: a06f8f93 addi t6,t6,-1530 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> + 4812: b14d j 44b4 <_vprintf_core.constprop.0.isra.0+0x458> prefix_str = (spec == 'X') ? "0X" : "0x"; - 4828: 00002c97 auipc s9,0x2 - 482c: 9a0c8c93 addi s9,s9,-1632 # 61c8 <_GLOBAL__sub_I__ZSt3cin+0x1c4> - 4830: b3e5 j 4618 <_vprintf_core.constprop.0.isra.0+0x5a8> + 4814: 00002c97 auipc s9,0x2 + 4818: a1cc8c93 addi s9,s9,-1508 # 6230 <_GLOBAL__sub_I__ZSt3cin+0x240> + 481c: b3e5 j 4604 <_vprintf_core.constprop.0.isra.0+0x5a8> val = (uint64)va_arg(ap, void *); - 4832: 008c0713 addi a4,s8,8 + 481e: 008c0713 addi a4,s8,8 val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 4836: 000c3e03 ld t3,0(s8) + 4822: 000c3e03 ld t3,0(s8) val = (uint64)va_arg(ap, void *); - 483a: e43a sd a4,8(sp) + 4826: e43a sd a4,8(sp) val = is_signed ? (uint64)va_arg(ap, int64) : va_arg(ap, uint64); - 483c: 8dbe mv s11,a5 - 483e: bd81 j 468e <_vprintf_core.constprop.0.isra.0+0x61e> - 4840: 8d52 mv s10,s4 - 4842: 4b01 li s6,0 - 4844: 4b81 li s7,0 - 4846: bd59 j 46dc <_vprintf_core.constprop.0.isra.0+0x66c> + 4828: 8dbe mv s11,a5 + 482a: bd81 j 467a <_vprintf_core.constprop.0.isra.0+0x61e> + 482c: 8d52 mv s10,s4 + 482e: 4b01 li s6,0 + 4830: 4b81 li s7,0 + 4832: bd59 j 46c8 <_vprintf_core.constprop.0.isra.0+0x66c> int base = (spec == 'x' || spec == 'X' || spec == 'p') ? 16 : 10; - 4848: 07000693 li a3,112 - 484c: fcdc82e3 beq s9,a3,4810 <_vprintf_core.constprop.0.isra.0+0x7a0> + 4834: 07000693 li a3,112 + 4838: fcdc82e3 beq s9,a3,47fc <_vprintf_core.constprop.0.isra.0+0x7a0> else if (len_mod == 1) - 4850: 01ce8c63 beq t4,t3,4868 <_vprintf_core.constprop.0.isra.0+0x7f8> + 483c: 01ce8c63 beq t4,t3,4854 <_vprintf_core.constprop.0.isra.0+0x7f8> val = is_signed ? (uint64)((int64)va_arg(ap, int)) : (uint64)va_arg(ap, uint32); - 4854: 000c6e03 lwu t3,0(s8) + 4840: 000c6e03 lwu t3,0(s8) const char *digits = uppercase ? "0123456789ABCDEF" : "0123456789abcdef"; - 4858: 4581 li a1,0 - 485a: e002 sd zero,0(sp) - 485c: 4329 li t1,10 - 485e: 00002f97 auipc t6,0x2 - 4862: 94af8f93 addi t6,t6,-1718 # 61a8 <_GLOBAL__sub_I__ZSt3cin+0x1a4> - 4866: b18d j 44c8 <_vprintf_core.constprop.0.isra.0+0x458> + 4844: 4581 li a1,0 + 4846: e002 sd zero,0(sp) + 4848: 4329 li t1,10 + 484a: 00002f97 auipc t6,0x2 + 484e: 9c6f8f93 addi t6,t6,-1594 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x220> + 4852: b18d j 44b4 <_vprintf_core.constprop.0.isra.0+0x458> val = is_signed ? (uint64)va_arg(ap, long) : (uint64)va_arg(ap, unsigned long); - 4868: 000c3e03 ld t3,0(s8) + 4854: 000c3e03 ld t3,0(s8) if (is_signed) - 486c: b7f5 j 4858 <_vprintf_core.constprop.0.isra.0+0x7e8> + 4858: b7f5 j 4844 <_vprintf_core.constprop.0.isra.0+0x7e8> -000000000000486e : +000000000000485a : { - 486e: 7139 addi sp,sp,-64 - 4870: f822 sd s0,48(sp) - 4872: f426 sd s1,40(sp) - 4874: 842e mv s0,a1 - 4876: 84aa mv s1,a0 - 4878: 85b2 mv a1,a2 + 485a: 7139 addi sp,sp,-64 + 485c: f822 sd s0,48(sp) + 485e: f426 sd s1,40(sp) + 4860: 842e mv s0,a1 + 4862: 84aa mv s1,a0 + 4864: 85b2 mv a1,a2 _vprintf_core(&ctx, format, ap); - 487a: 850a mv a0,sp - 487c: 8636 mv a2,a3 + 4866: 850a mv a0,sp + 4868: 8636 mv a2,a3 { - 487e: fc06 sd ra,56(sp) + 486a: fc06 sd ra,56(sp) ctx.buf = str; - 4880: e026 sd s1,0(sp) + 486c: e026 sd s1,0(sp) ctx.limit = size; - 4882: e422 sd s0,8(sp) + 486e: e422 sd s0,8(sp) ctx.written = 0; - 4884: e802 sd zero,16(sp) + 4870: e802 sd zero,16(sp) ctx.stream = NULL; - 4886: ec02 sd zero,24(sp) + 4872: ec02 sd zero,24(sp) _vprintf_core(&ctx, format, ap); - 4888: fe8ff0ef jal 4070 <_vprintf_core.constprop.0.isra.0> + 4874: fe8ff0ef jal 405c <_vprintf_core.constprop.0.isra.0> if (ctx.written < size) - 488c: 6542 ld a0,16(sp) + 4878: 6542 ld a0,16(sp) if (size > 0) - 488e: c411 beqz s0,489a + 487a: c411 beqz s0,4886 if (ctx.written < size) - 4890: 00857b63 bgeu a0,s0,48a6 + 487c: 00857b63 bgeu a0,s0,4892 str[ctx.written] = '\0'; - 4894: 94aa add s1,s1,a0 - 4896: 00048023 sb zero,0(s1) -} - 489a: 70e2 ld ra,56(sp) - 489c: 7442 ld s0,48(sp) - 489e: 74a2 ld s1,40(sp) - 48a0: 2501 sext.w a0,a0 - 48a2: 6121 addi sp,sp,64 - 48a4: 8082 ret + 4880: 94aa add s1,s1,a0 + 4882: 00048023 sb zero,0(s1) +} + 4886: 70e2 ld ra,56(sp) + 4888: 7442 ld s0,48(sp) + 488a: 74a2 ld s1,40(sp) + 488c: 2501 sext.w a0,a0 + 488e: 6121 addi sp,sp,64 + 4890: 8082 ret str[size - 1] = '\0'; - 48a6: 94a2 add s1,s1,s0 - 48a8: fe048fa3 sb zero,-1(s1) + 4892: 94a2 add s1,s1,s0 + 4894: fe048fa3 sb zero,-1(s1) } - 48ac: 70e2 ld ra,56(sp) - 48ae: 7442 ld s0,48(sp) - 48b0: 74a2 ld s1,40(sp) - 48b2: 2501 sext.w a0,a0 - 48b4: 6121 addi sp,sp,64 - 48b6: 8082 ret + 4898: 70e2 ld ra,56(sp) + 489a: 7442 ld s0,48(sp) + 489c: 74a2 ld s1,40(sp) + 489e: 2501 sext.w a0,a0 + 48a0: 6121 addi sp,sp,64 + 48a2: 8082 ret -00000000000048b8 : +00000000000048a4 : { - 48b8: 7119 addi sp,sp,-128 - 48ba: e0a2 sd s0,64(sp) - 48bc: fc26 sd s1,56(sp) - 48be: 842e mv s0,a1 - 48c0: 84aa mv s1,a0 - 48c2: 85b2 mv a1,a2 + 48a4: 7119 addi sp,sp,-128 + 48a6: e0a2 sd s0,64(sp) + 48a8: fc26 sd s1,56(sp) + 48aa: 842e mv s0,a1 + 48ac: 84aa mv s1,a0 + 48ae: 85b2 mv a1,a2 _vprintf_core(&ctx, format, ap); - 48c4: 0808 addi a0,sp,16 + 48b0: 0808 addi a0,sp,16 va_start(ap, format); - 48c6: 08b0 addi a2,sp,88 + 48b2: 08b0 addi a2,sp,88 { - 48c8: e486 sd ra,72(sp) - 48ca: ecb6 sd a3,88(sp) - 48cc: f0ba sd a4,96(sp) - 48ce: f4be sd a5,104(sp) - 48d0: f8c2 sd a6,112(sp) - 48d2: fcc6 sd a7,120(sp) + 48b4: e486 sd ra,72(sp) + 48b6: ecb6 sd a3,88(sp) + 48b8: f0ba sd a4,96(sp) + 48ba: f4be sd a5,104(sp) + 48bc: f8c2 sd a6,112(sp) + 48be: fcc6 sd a7,120(sp) va_start(ap, format); - 48d4: e432 sd a2,8(sp) + 48c0: e432 sd a2,8(sp) ctx.buf = str; - 48d6: e826 sd s1,16(sp) + 48c2: e826 sd s1,16(sp) ctx.limit = size; - 48d8: ec22 sd s0,24(sp) + 48c4: ec22 sd s0,24(sp) ctx.written = 0; - 48da: f002 sd zero,32(sp) + 48c6: f002 sd zero,32(sp) ctx.stream = NULL; - 48dc: f402 sd zero,40(sp) + 48c8: f402 sd zero,40(sp) _vprintf_core(&ctx, format, ap); - 48de: f92ff0ef jal 4070 <_vprintf_core.constprop.0.isra.0> + 48ca: f92ff0ef jal 405c <_vprintf_core.constprop.0.isra.0> if (ctx.written < size) - 48e2: 7502 ld a0,32(sp) + 48ce: 7502 ld a0,32(sp) if (size > 0) - 48e4: c411 beqz s0,48f0 + 48d0: c411 beqz s0,48dc if (ctx.written < size) - 48e6: 00857b63 bgeu a0,s0,48fc + 48d2: 00857b63 bgeu a0,s0,48e8 str[ctx.written] = '\0'; - 48ea: 94aa add s1,s1,a0 - 48ec: 00048023 sb zero,0(s1) -} - 48f0: 60a6 ld ra,72(sp) - 48f2: 6406 ld s0,64(sp) - 48f4: 74e2 ld s1,56(sp) - 48f6: 2501 sext.w a0,a0 - 48f8: 6109 addi sp,sp,128 - 48fa: 8082 ret + 48d6: 94aa add s1,s1,a0 + 48d8: 00048023 sb zero,0(s1) +} + 48dc: 60a6 ld ra,72(sp) + 48de: 6406 ld s0,64(sp) + 48e0: 74e2 ld s1,56(sp) + 48e2: 2501 sext.w a0,a0 + 48e4: 6109 addi sp,sp,128 + 48e6: 8082 ret str[size - 1] = '\0'; - 48fc: 94a2 add s1,s1,s0 - 48fe: fe048fa3 sb zero,-1(s1) + 48e8: 94a2 add s1,s1,s0 + 48ea: fe048fa3 sb zero,-1(s1) } - 4902: 60a6 ld ra,72(sp) - 4904: 6406 ld s0,64(sp) - 4906: 74e2 ld s1,56(sp) - 4908: 2501 sext.w a0,a0 - 490a: 6109 addi sp,sp,128 - 490c: 8082 ret + 48ee: 60a6 ld ra,72(sp) + 48f0: 6406 ld s0,64(sp) + 48f2: 74e2 ld s1,56(sp) + 48f4: 2501 sext.w a0,a0 + 48f6: 6109 addi sp,sp,128 + 48f8: 8082 ret -000000000000490e : +00000000000048fa : { - 490e: 7119 addi sp,sp,-128 + 48fa: 7119 addi sp,sp,-128 va_start(ap, format); - 4910: 04810313 addi t1,sp,72 + 48fc: 04810313 addi t1,sp,72 { - 4914: e4ae sd a1,72(sp) - 4916: e8b2 sd a2,80(sp) - 4918: f4be sd a5,104(sp) + 4900: e4ae sd a1,72(sp) + 4902: e8b2 sd a2,80(sp) + 4904: f4be sd a5,104(sp) _vprintf_core(&ctx, format, ap); - 491a: 85aa mv a1,a0 + 4906: 85aa mv a1,a0 ctx.stream = stdout; - 491c: 00004797 auipc a5,0x4 - 4920: 32c7b783 ld a5,812(a5) # 8c48 + 4908: 00004797 auipc a5,0x4 + 490c: 3707b783 ld a5,880(a5) # 8c78 _vprintf_core(&ctx, format, ap); - 4924: 0808 addi a0,sp,16 - 4926: 861a mv a2,t1 + 4910: 0808 addi a0,sp,16 + 4912: 861a mv a2,t1 { - 4928: fc06 sd ra,56(sp) - 492a: ecb6 sd a3,88(sp) - 492c: f0ba sd a4,96(sp) - 492e: f8c2 sd a6,112(sp) - 4930: fcc6 sd a7,120(sp) + 4914: fc06 sd ra,56(sp) + 4916: ecb6 sd a3,88(sp) + 4918: f0ba sd a4,96(sp) + 491a: f8c2 sd a6,112(sp) + 491c: fcc6 sd a7,120(sp) va_start(ap, format); - 4932: e41a sd t1,8(sp) + 491e: e41a sd t1,8(sp) ctx.buf = NULL; - 4934: e802 sd zero,16(sp) + 4920: e802 sd zero,16(sp) ctx.limit = 0; - 4936: ec02 sd zero,24(sp) + 4922: ec02 sd zero,24(sp) ctx.written = 0; - 4938: f002 sd zero,32(sp) + 4924: f002 sd zero,32(sp) ctx.stream = stdout; - 493a: f43e sd a5,40(sp) + 4926: f43e sd a5,40(sp) _vprintf_core(&ctx, format, ap); - 493c: f34ff0ef jal 4070 <_vprintf_core.constprop.0.isra.0> + 4928: f34ff0ef jal 405c <_vprintf_core.constprop.0.isra.0> } - 4940: 70e2 ld ra,56(sp) - 4942: 5502 lw a0,32(sp) - 4944: 6109 addi sp,sp,128 - 4946: 8082 ret + 492c: 70e2 ld ra,56(sp) + 492e: 5502 lw a0,32(sp) + 4930: 6109 addi sp,sp,128 + 4932: 8082 ret -0000000000004948 : +0000000000004934 : { - 4948: 7159 addi sp,sp,-112 + 4934: 7159 addi sp,sp,-112 va_start(ap, format); - 494a: 04010e13 addi t3,sp,64 + 4936: 04010e13 addi t3,sp,64 { - 494e: 8eaa mv t4,a0 + 493a: 8eaa mv t4,a0 ctx.fd = -1; - 4950: 537d li t1,-1 + 493c: 537d li t1,-1 { - 4952: e0b2 sd a2,64(sp) + 493e: e0b2 sd a2,64(sp) int ret = _vscanf_core(&ctx, format, ap); - 4954: 0808 addi a0,sp,16 - 4956: 8672 mv a2,t3 + 4940: 0808 addi a0,sp,16 + 4942: 8672 mv a2,t3 { - 4958: fc06 sd ra,56(sp) - 495a: e4b6 sd a3,72(sp) - 495c: e8ba sd a4,80(sp) - 495e: ecbe sd a5,88(sp) - 4960: f0c2 sd a6,96(sp) - 4962: f4c6 sd a7,104(sp) + 4944: fc06 sd ra,56(sp) + 4946: e4b6 sd a3,72(sp) + 4948: e8ba sd a4,80(sp) + 494a: ecbe sd a5,88(sp) + 494c: f0c2 sd a6,96(sp) + 494e: f4c6 sd a7,104(sp) va_start(ap, format); - 4964: e472 sd t3,8(sp) + 4950: e472 sd t3,8(sp) ctx.buf = str; - 4966: e876 sd t4,16(sp) + 4952: e876 sd t4,16(sp) ctx.fd = -1; - 4968: cc1a sw t1,24(sp) + 4954: cc1a sw t1,24(sp) ctx.pos = 0; - 496a: f002 sd zero,32(sp) + 4956: f002 sd zero,32(sp) ctx.ungotten = -1; - 496c: d41a sw t1,40(sp) + 4958: d41a sw t1,40(sp) int ret = _vscanf_core(&ctx, format, ap); - 496e: 81efd0ef jal 198c <_vscanf_core.constprop.0> + 495a: 81efd0ef jal 1978 <_vscanf_core.constprop.0> } - 4972: 70e2 ld ra,56(sp) - 4974: 6165 addi sp,sp,112 - 4976: 8082 ret + 495e: 70e2 ld ra,56(sp) + 4960: 6165 addi sp,sp,112 + 4962: 8082 ret -0000000000004978 : +0000000000004964 : { - 4978: 7119 addi sp,sp,-128 + 4964: 7119 addi sp,sp,-128 va_start(ap, format); - 497a: 04810313 addi t1,sp,72 + 4966: 04810313 addi t1,sp,72 { - 497e: e4ae sd a1,72(sp) - 4980: e8b2 sd a2,80(sp) - 4982: f4be sd a5,104(sp) + 496a: e4ae sd a1,72(sp) + 496c: e8b2 sd a2,80(sp) + 496e: f4be sd a5,104(sp) int ret = _vscanf_core(&ctx, format, ap); - 4984: 85aa mv a1,a0 + 4970: 85aa mv a1,a0 ctx.ungotten = -1; - 4986: 57fd li a5,-1 + 4972: 57fd li a5,-1 int ret = _vscanf_core(&ctx, format, ap); - 4988: 0808 addi a0,sp,16 - 498a: 861a mv a2,t1 + 4974: 0808 addi a0,sp,16 + 4976: 861a mv a2,t1 { - 498c: fc06 sd ra,56(sp) - 498e: ecb6 sd a3,88(sp) - 4990: f0ba sd a4,96(sp) - 4992: f8c2 sd a6,112(sp) - 4994: fcc6 sd a7,120(sp) + 4978: fc06 sd ra,56(sp) + 497a: ecb6 sd a3,88(sp) + 497c: f0ba sd a4,96(sp) + 497e: f8c2 sd a6,112(sp) + 4980: fcc6 sd a7,120(sp) va_start(ap, format); - 4996: e41a sd t1,8(sp) + 4982: e41a sd t1,8(sp) ctx.buf = NULL; - 4998: e802 sd zero,16(sp) + 4984: e802 sd zero,16(sp) ctx.fd = STDIN_FD; - 499a: cc02 sw zero,24(sp) + 4986: cc02 sw zero,24(sp) ctx.pos = 0; - 499c: f002 sd zero,32(sp) + 4988: f002 sd zero,32(sp) ctx.ungotten = -1; - 499e: d43e sw a5,40(sp) + 498a: d43e sw a5,40(sp) int ret = _vscanf_core(&ctx, format, ap); - 49a0: fedfc0ef jal 198c <_vscanf_core.constprop.0> + 498c: fedfc0ef jal 1978 <_vscanf_core.constprop.0> } - 49a4: 70e2 ld ra,56(sp) - 49a6: 6109 addi sp,sp,128 - 49a8: 8082 ret + 4990: 70e2 ld ra,56(sp) + 4992: 6109 addi sp,sp,128 + 4994: 8082 ret -00000000000049aa : +0000000000004996 : { - 49aa: 1101 addi sp,sp,-32 - 49ac: e426 sd s1,8(sp) - 49ae: 84ae mv s1,a1 - 49b0: e04a sd s2,0(sp) + 4996: 1101 addi sp,sp,-32 + 4998: e426 sd s1,8(sp) + 499a: 84ae mv s1,a1 + 499c: e04a sd s2,0(sp) if (strcmp(mode, "r") == 0) - 49b2: 00002597 auipc a1,0x2 - 49b6: 83658593 addi a1,a1,-1994 # 61e8 <_GLOBAL__sub_I__ZSt3cin+0x1e4> + 499e: 00002597 auipc a1,0x2 + 49a2: 8b258593 addi a1,a1,-1870 # 6250 <_GLOBAL__sub_I__ZSt3cin+0x260> { - 49ba: 892a mv s2,a0 + 49a6: 892a mv s2,a0 if (strcmp(mode, "r") == 0) - 49bc: 8526 mv a0,s1 + 49a8: 8526 mv a0,s1 { - 49be: e822 sd s0,16(sp) - 49c0: ec06 sd ra,24(sp) + 49aa: e822 sd s0,16(sp) + 49ac: ec06 sd ra,24(sp) if (strcmp(mode, "r") == 0) - 49c2: 298010ef jal 5c5a - 49c6: 842a mv s0,a0 - 49c8: c919 beqz a0,49de + 49ae: 298010ef jal 5c46 + 49b2: 842a mv s0,a0 + 49b4: c919 beqz a0,49ca else if (strcmp(mode, "w") == 0) - 49ca: 00002597 auipc a1,0x2 - 49ce: 82658593 addi a1,a1,-2010 # 61f0 <_GLOBAL__sub_I__ZSt3cin+0x1ec> - 49d2: 8526 mv a0,s1 - 49d4: 286010ef jal 5c5a + 49b6: 00002597 auipc a1,0x2 + 49ba: 8a258593 addi a1,a1,-1886 # 6258 <_GLOBAL__sub_I__ZSt3cin+0x268> + 49be: 8526 mv a0,s1 + 49c0: 286010ef jal 5c46 flags = O_WRONLY | O_CREAT | O_TRUNC; - 49d8: 24100413 li s0,577 + 49c4: 24100413 li s0,577 else if (strcmp(mode, "w") == 0) - 49dc: ed39 bnez a0,4a3a + 49c8: ed39 bnez a0,4a26 int64 fd = open(filename, flags); - 49de: 85a2 mv a1,s0 - 49e0: 854a mv a0,s2 - 49e2: f4afc0ef jal 112c - 49e6: 84aa mv s1,a0 + 49ca: 85a2 mv a1,s0 + 49cc: 854a mv a0,s2 + 49ce: f42fc0ef jal 1110 + 49d2: 84aa mv s1,a0 if (fd < 0) - 49e8: 06054c63 bltz a0,4a60 + 49d4: 06054c63 bltz a0,4a4c FILE *f = (FILE *)malloc(sizeof(FILE)); - 49ec: 42000513 li a0,1056 - 49f0: 2f3000ef jal 54e2 - 49f4: 892a mv s2,a0 + 49d8: 42000513 li a0,1056 + 49dc: 2f3000ef jal 54ce + 49e0: 892a mv s2,a0 if (!f) - 49f6: c53d beqz a0,4a64 + 49e2: c53d beqz a0,4a50 memset(f, 0, sizeof(FILE)); - 49f8: 42000613 li a2,1056 - 49fc: 4581 li a1,0 - 49fe: 0ee010ef jal 5aec + 49e4: 42000613 li a2,1056 + 49e8: 4581 li a1,0 + 49ea: 0ee010ef jal 5ad8 if (fd == 1) - 4a02: 4785 li a5,1 + 49ee: 4785 li a5,1 f->fd = (int)fd; - 4a04: 00992023 sw s1,0(s2) + 49f0: 00992023 sw s1,0(s2) f->flags = flags; - 4a08: 00892223 sw s0,4(s2) + 49f4: 00892223 sw s0,4(s2) if (fd == 1) - 4a0c: 00f48e63 beq s1,a5,4a28 + 49f8: 00f48e63 beq s1,a5,4a14 else if (fd == 2) - 4a10: 4789 li a5,2 - 4a12: 00f48b63 beq s1,a5,4a28 + 49fc: 4789 li a5,2 + 49fe: 00f48b63 beq s1,a5,4a14 f->buf_mode = 0; - 4a16: 40092e23 sw zero,1052(s2) -} - 4a1a: 60e2 ld ra,24(sp) - 4a1c: 6442 ld s0,16(sp) - 4a1e: 64a2 ld s1,8(sp) - 4a20: 854a mv a0,s2 - 4a22: 6902 ld s2,0(sp) - 4a24: 6105 addi sp,sp,32 - 4a26: 8082 ret - 4a28: 60e2 ld ra,24(sp) - 4a2a: 6442 ld s0,16(sp) + 4a02: 40092e23 sw zero,1052(s2) +} + 4a06: 60e2 ld ra,24(sp) + 4a08: 6442 ld s0,16(sp) + 4a0a: 64a2 ld s1,8(sp) + 4a0c: 854a mv a0,s2 + 4a0e: 6902 ld s2,0(sp) + 4a10: 6105 addi sp,sp,32 + 4a12: 8082 ret + 4a14: 60e2 ld ra,24(sp) + 4a16: 6442 ld s0,16(sp) f->buf_mode = 2; - 4a2c: 40992e23 sw s1,1052(s2) + 4a18: 40992e23 sw s1,1052(s2) } - 4a30: 854a mv a0,s2 - 4a32: 64a2 ld s1,8(sp) - 4a34: 6902 ld s2,0(sp) - 4a36: 6105 addi sp,sp,32 - 4a38: 8082 ret + 4a1c: 854a mv a0,s2 + 4a1e: 64a2 ld s1,8(sp) + 4a20: 6902 ld s2,0(sp) + 4a22: 6105 addi sp,sp,32 + 4a24: 8082 ret else if (strcmp(mode, "a") == 0) - 4a3a: 00001597 auipc a1,0x1 - 4a3e: 7be58593 addi a1,a1,1982 # 61f8 <_GLOBAL__sub_I__ZSt3cin+0x1f4> - 4a42: 8526 mv a0,s1 - 4a44: 216010ef jal 5c5a + 4a26: 00002597 auipc a1,0x2 + 4a2a: 83a58593 addi a1,a1,-1990 # 6260 <_GLOBAL__sub_I__ZSt3cin+0x270> + 4a2e: 8526 mv a0,s1 + 4a30: 216010ef jal 5c46 flags = O_WRONLY | O_CREAT | O_APPEND; - 4a48: 44100413 li s0,1089 + 4a34: 44100413 li s0,1089 else if (strcmp(mode, "a") == 0) - 4a4c: d949 beqz a0,49de + 4a38: d949 beqz a0,49ca else if (strcmp(mode, "r+") == 0) - 4a4e: 00001597 auipc a1,0x1 - 4a52: 7b258593 addi a1,a1,1970 # 6200 <_GLOBAL__sub_I__ZSt3cin+0x1fc> - 4a56: 8526 mv a0,s1 - 4a58: 202010ef jal 5c5a + 4a3a: 00002597 auipc a1,0x2 + 4a3e: 82e58593 addi a1,a1,-2002 # 6268 <_GLOBAL__sub_I__ZSt3cin+0x278> + 4a42: 8526 mv a0,s1 + 4a44: 202010ef jal 5c46 flags = O_RDWR; - 4a5c: 4409 li s0,2 + 4a48: 4409 li s0,2 else if (strcmp(mode, "r+") == 0) - 4a5e: d141 beqz a0,49de + 4a4a: d141 beqz a0,49ca return NULL; - 4a60: 4901 li s2,0 - 4a62: bf65 j 4a1a + 4a4c: 4901 li s2,0 + 4a4e: bf65 j 4a06 close(fd); - 4a64: 8526 mv a0,s1 - 4a66: eaefc0ef jal 1114 + 4a50: 8526 mv a0,s1 + 4a52: ea6fc0ef jal 10f8 return NULL; - 4a6a: 4901 li s2,0 - 4a6c: b77d j 4a1a + 4a56: 4901 li s2,0 + 4a58: b77d j 4a06 -0000000000004a6e : +0000000000004a5a : if (!stream) - 4a6e: cd29 beqz a0,4ac8 + 4a5a: cd29 beqz a0,4ab4 if (stream->buf_write_pos > 0) - 4a70: 41052603 lw a2,1040(a0) + 4a5c: 41052603 lw a2,1040(a0) { - 4a74: 1141 addi sp,sp,-16 - 4a76: e022 sd s0,0(sp) - 4a78: e406 sd ra,8(sp) - 4a7a: 842a mv s0,a0 + 4a60: 1141 addi sp,sp,-16 + 4a62: e022 sd s0,0(sp) + 4a64: e406 sd ra,8(sp) + 4a66: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 4a7c: 02c04a63 bgtz a2,4ab0 + 4a68: 02c04a63 bgtz a2,4a9c if (stream != stdin && stream != stdout && stream != stderr) - 4a80: 00004797 auipc a5,0x4 - 4a84: 1c878793 addi a5,a5,456 # 8c48 - 4a88: 6798 ld a4,8(a5) - 4a8a: 00870e63 beq a4,s0,4aa6 - 4a8e: 6398 ld a4,0(a5) - 4a90: 00870b63 beq a4,s0,4aa6 - 4a94: 6b9c ld a5,16(a5) - 4a96: 00878863 beq a5,s0,4aa6 + 4a6c: 00004797 auipc a5,0x4 + 4a70: 20c78793 addi a5,a5,524 # 8c78 + 4a74: 6798 ld a4,8(a5) + 4a76: 00870e63 beq a4,s0,4a92 + 4a7a: 6398 ld a4,0(a5) + 4a7c: 00870b63 beq a4,s0,4a92 + 4a80: 6b9c ld a5,16(a5) + 4a82: 00878863 beq a5,s0,4a92 close(stream->fd); - 4a9a: 4008 lw a0,0(s0) - 4a9c: e78fc0ef jal 1114 + 4a86: 4008 lw a0,0(s0) + 4a88: e70fc0ef jal 10f8 free(stream); - 4aa0: 8522 mv a0,s0 - 4aa2: 1cb000ef jal 546c + 4a8c: 8522 mv a0,s0 + 4a8e: 1cb000ef jal 5458 } - 4aa6: 60a2 ld ra,8(sp) - 4aa8: 6402 ld s0,0(sp) + 4a92: 60a2 ld ra,8(sp) + 4a94: 6402 ld s0,0(sp) return 0; - 4aaa: 4501 li a0,0 + 4a96: 4501 li a0,0 } - 4aac: 0141 addi sp,sp,16 - 4aae: 8082 ret + 4a98: 0141 addi sp,sp,16 + 4a9a: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4ab0: 4108 lw a0,0(a0) - 4ab2: 01040593 addi a1,s0,16 - 4ab6: e56fc0ef jal 110c + 4a9c: 4108 lw a0,0(a0) + 4a9e: 01040593 addi a1,s0,16 + 4aa2: e4efc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4aba: 41042783 lw a5,1040(s0) - 4abe: 00f54763 blt a0,a5,4acc + 4aa6: 41042783 lw a5,1040(s0) + 4aaa: 00f54763 blt a0,a5,4ab8 stream->buf_write_pos = 0; - 4ac2: 40042823 sw zero,1040(s0) - 4ac6: bf6d j 4a80 + 4aae: 40042823 sw zero,1040(s0) + 4ab2: bf6d j 4a6c return -1; - 4ac8: 557d li a0,-1 + 4ab4: 557d li a0,-1 } - 4aca: 8082 ret + 4ab6: 8082 ret stream->error = 1; - 4acc: 4785 li a5,1 - 4ace: c41c sw a5,8(s0) + 4ab8: 4785 li a5,1 + 4aba: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4ad0: 40042823 sw zero,1040(s0) + 4abc: 40042823 sw zero,1040(s0) return EOF; - 4ad4: b775 j 4a80 + 4ac0: b775 j 4a6c -0000000000004ad6 : +0000000000004ac2 : if (!stream) - 4ad6: c121 beqz a0,4b16 + 4ac2: c121 beqz a0,4b02 if (stream->buf_write_pos > 0) - 4ad8: 41052603 lw a2,1040(a0) + 4ac4: 41052603 lw a2,1040(a0) { - 4adc: 1141 addi sp,sp,-16 - 4ade: e022 sd s0,0(sp) - 4ae0: e406 sd ra,8(sp) - 4ae2: 842a mv s0,a0 + 4ac8: 1141 addi sp,sp,-16 + 4aca: e022 sd s0,0(sp) + 4acc: e406 sd ra,8(sp) + 4ace: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 4ae4: 00c04763 bgtz a2,4af2 + 4ad0: 00c04763 bgtz a2,4ade return 0; - 4ae8: 4501 li a0,0 + 4ad4: 4501 li a0,0 } - 4aea: 60a2 ld ra,8(sp) - 4aec: 6402 ld s0,0(sp) - 4aee: 0141 addi sp,sp,16 - 4af0: 8082 ret + 4ad6: 60a2 ld ra,8(sp) + 4ad8: 6402 ld s0,0(sp) + 4ada: 0141 addi sp,sp,16 + 4adc: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4af2: 4108 lw a0,0(a0) - 4af4: 01040593 addi a1,s0,16 - 4af8: e14fc0ef jal 110c + 4ade: 4108 lw a0,0(a0) + 4ae0: 01040593 addi a1,s0,16 + 4ae4: e0cfc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4afc: 41042783 lw a5,1040(s0) - 4b00: 00f54563 blt a0,a5,4b0a + 4ae8: 41042783 lw a5,1040(s0) + 4aec: 00f54563 blt a0,a5,4af6 stream->buf_write_pos = 0; - 4b04: 40042823 sw zero,1040(s0) - 4b08: b7c5 j 4ae8 + 4af0: 40042823 sw zero,1040(s0) + 4af4: b7c5 j 4ad4 stream->error = 1; - 4b0a: 4785 li a5,1 - 4b0c: c41c sw a5,8(s0) + 4af6: 4785 li a5,1 + 4af8: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4b0e: 40042823 sw zero,1040(s0) + 4afa: 40042823 sw zero,1040(s0) return EOF; - 4b12: 557d li a0,-1 - 4b14: bfd9 j 4aea - 4b16: 557d li a0,-1 + 4afe: 557d li a0,-1 + 4b00: bfd9 j 4ad6 + 4b02: 557d li a0,-1 } - 4b18: 8082 ret + 4b04: 8082 ret -0000000000004b1a : +0000000000004b06 : { - 4b1a: 7159 addi sp,sp,-112 - 4b1c: fc06 sd ra,56(sp) - 4b1e: e0b2 sd a2,64(sp) - 4b20: e4b6 sd a3,72(sp) - 4b22: e8ba sd a4,80(sp) - 4b24: ecbe sd a5,88(sp) - 4b26: f0c2 sd a6,96(sp) - 4b28: f4c6 sd a7,104(sp) + 4b06: 7159 addi sp,sp,-112 + 4b08: fc06 sd ra,56(sp) + 4b0a: e0b2 sd a2,64(sp) + 4b0c: e4b6 sd a3,72(sp) + 4b0e: e8ba sd a4,80(sp) + 4b10: ecbe sd a5,88(sp) + 4b12: f0c2 sd a6,96(sp) + 4b14: f4c6 sd a7,104(sp) if (!stream) - 4b2a: cd19 beqz a0,4b48 + 4b16: cd19 beqz a0,4b34 va_start(ap, format); - 4b2c: 832a mv t1,a0 - 4b2e: 0090 addi a2,sp,64 + 4b18: 832a mv t1,a0 + 4b1a: 0090 addi a2,sp,64 _vprintf_core(&ctx, format, ap); - 4b30: 0808 addi a0,sp,16 + 4b1c: 0808 addi a0,sp,16 va_start(ap, format); - 4b32: e432 sd a2,8(sp) + 4b1e: e432 sd a2,8(sp) ctx.buf = NULL; - 4b34: e802 sd zero,16(sp) + 4b20: e802 sd zero,16(sp) ctx.limit = 0; - 4b36: ec02 sd zero,24(sp) + 4b22: ec02 sd zero,24(sp) ctx.written = 0; - 4b38: f002 sd zero,32(sp) + 4b24: f002 sd zero,32(sp) ctx.stream = stream; - 4b3a: f41a sd t1,40(sp) + 4b26: f41a sd t1,40(sp) _vprintf_core(&ctx, format, ap); - 4b3c: d34ff0ef jal 4070 <_vprintf_core.constprop.0.isra.0> + 4b28: d34ff0ef jal 405c <_vprintf_core.constprop.0.isra.0> return (int)ctx.written; - 4b40: 5502 lw a0,32(sp) + 4b2c: 5502 lw a0,32(sp) } - 4b42: 70e2 ld ra,56(sp) - 4b44: 6165 addi sp,sp,112 - 4b46: 8082 ret + 4b2e: 70e2 ld ra,56(sp) + 4b30: 6165 addi sp,sp,112 + 4b32: 8082 ret return -1; - 4b48: 557d li a0,-1 - 4b4a: bfe5 j 4b42 + 4b34: 557d li a0,-1 + 4b36: bfe5 j 4b2e -0000000000004b4c : +0000000000004b38 : { - 4b4c: 7159 addi sp,sp,-112 - 4b4e: fc06 sd ra,56(sp) - 4b50: e0b2 sd a2,64(sp) - 4b52: e4b6 sd a3,72(sp) - 4b54: e8ba sd a4,80(sp) - 4b56: ecbe sd a5,88(sp) - 4b58: f0c2 sd a6,96(sp) - 4b5a: f4c6 sd a7,104(sp) + 4b38: 7159 addi sp,sp,-112 + 4b3a: fc06 sd ra,56(sp) + 4b3c: e0b2 sd a2,64(sp) + 4b3e: e4b6 sd a3,72(sp) + 4b40: e8ba sd a4,80(sp) + 4b42: ecbe sd a5,88(sp) + 4b44: f0c2 sd a6,96(sp) + 4b46: f4c6 sd a7,104(sp) if (!stream) - 4b5c: cd19 beqz a0,4b7a + 4b48: cd19 beqz a0,4b66 ctx.fd = stream->fd; - 4b5e: 411c lw a5,0(a0) + 4b4a: 411c lw a5,0(a0) va_start(ap, format); - 4b60: 0090 addi a2,sp,64 + 4b4c: 0090 addi a2,sp,64 int ret = _vscanf_core(&ctx, format, ap); - 4b62: 0808 addi a0,sp,16 + 4b4e: 0808 addi a0,sp,16 ctx.fd = stream->fd; - 4b64: cc3e sw a5,24(sp) + 4b50: cc3e sw a5,24(sp) ctx.ungotten = -1; - 4b66: 57fd li a5,-1 + 4b52: 57fd li a5,-1 va_start(ap, format); - 4b68: e432 sd a2,8(sp) + 4b54: e432 sd a2,8(sp) ctx.buf = NULL; - 4b6a: e802 sd zero,16(sp) + 4b56: e802 sd zero,16(sp) ctx.pos = 0; - 4b6c: f002 sd zero,32(sp) + 4b58: f002 sd zero,32(sp) ctx.ungotten = -1; - 4b6e: d43e sw a5,40(sp) + 4b5a: d43e sw a5,40(sp) int ret = _vscanf_core(&ctx, format, ap); - 4b70: e1dfc0ef jal 198c <_vscanf_core.constprop.0> + 4b5c: e1dfc0ef jal 1978 <_vscanf_core.constprop.0> } - 4b74: 70e2 ld ra,56(sp) - 4b76: 6165 addi sp,sp,112 - 4b78: 8082 ret + 4b60: 70e2 ld ra,56(sp) + 4b62: 6165 addi sp,sp,112 + 4b64: 8082 ret return -1; - 4b7a: 557d li a0,-1 - 4b7c: bfe5 j 4b74 + 4b66: 557d li a0,-1 + 4b68: bfe5 j 4b60 -0000000000004b7e : +0000000000004b6a : if (!stream) - 4b7e: c1e1 beqz a1,4c3e + 4b6a: c1e1 beqz a1,4c2a { - 4b80: 7179 addi sp,sp,-48 - 4b82: e84a sd s2,16(sp) + 4b6c: 7179 addi sp,sp,-48 + 4b6e: e84a sd s2,16(sp) if (stream->buf_mode == 2) - 4b84: 41c5a903 lw s2,1052(a1) + 4b70: 41c5a903 lw s2,1052(a1) { - 4b88: f022 sd s0,32(sp) - 4b8a: ec26 sd s1,24(sp) - 4b8c: f406 sd ra,40(sp) + 4b74: f022 sd s0,32(sp) + 4b76: ec26 sd s1,24(sp) + 4b78: f406 sd ra,40(sp) if (stream->buf_mode == 2) - 4b8e: 4789 li a5,2 - 4b90: 842e mv s0,a1 - 4b92: 84aa mv s1,a0 + 4b7a: 4789 li a5,2 + 4b7c: 842e mv s0,a1 + 4b7e: 84aa mv s1,a0 char ch = (char)c; - 4b94: 0ff57713 zext.b a4,a0 + 4b80: 0ff57713 zext.b a4,a0 if (stream->buf_mode == 2) - 4b98: 02f90963 beq s2,a5,4bca + 4b84: 02f90963 beq s2,a5,4bb6 stream->buffer[stream->buf_write_pos++] = (char)c; - 4b9c: 4105a783 lw a5,1040(a1) + 4b88: 4105a783 lw a5,1040(a1) if (stream->buf_write_pos >= BUFSIZ) - 4ba0: 3ff00693 li a3,1023 + 4b8c: 3ff00693 li a3,1023 stream->buffer[stream->buf_write_pos++] = (char)c; - 4ba4: 0017861b addiw a2,a5,1 - 4ba8: 40c5a823 sw a2,1040(a1) - 4bac: 97ae add a5,a5,a1 - 4bae: 00e78823 sb a4,16(a5) + 4b90: 0017861b addiw a2,a5,1 + 4b94: 40c5a823 sw a2,1040(a1) + 4b98: 97ae add a5,a5,a1 + 4b9a: 00e78823 sb a4,16(a5) if (stream->buf_write_pos >= BUFSIZ) - 4bb2: 06c6c463 blt a3,a2,4c1a + 4b9e: 06c6c463 blt a3,a2,4c06 else if (stream->buf_mode == 1 && c == '\n') - 4bb6: 4785 li a5,1 - 4bb8: 02f90e63 beq s2,a5,4bf4 + 4ba2: 4785 li a5,1 + 4ba4: 02f90e63 beq s2,a5,4be0 return c; - 4bbc: 8526 mv a0,s1 -} - 4bbe: 70a2 ld ra,40(sp) - 4bc0: 7402 ld s0,32(sp) - 4bc2: 64e2 ld s1,24(sp) - 4bc4: 6942 ld s2,16(sp) - 4bc6: 6145 addi sp,sp,48 - 4bc8: 8082 ret + 4ba8: 8526 mv a0,s1 +} + 4baa: 70a2 ld ra,40(sp) + 4bac: 7402 ld s0,32(sp) + 4bae: 64e2 ld s1,24(sp) + 4bb0: 6942 ld s2,16(sp) + 4bb2: 6145 addi sp,sp,48 + 4bb4: 8082 ret if (write(stream->fd, &ch, 1) != 1) - 4bca: 4188 lw a0,0(a1) - 4bcc: 4605 li a2,1 - 4bce: 00f10593 addi a1,sp,15 + 4bb6: 4188 lw a0,0(a1) + 4bb8: 4605 li a2,1 + 4bba: 00f10593 addi a1,sp,15 char ch = (char)c; - 4bd2: 00e107a3 sb a4,15(sp) + 4bbe: 00e107a3 sb a4,15(sp) if (write(stream->fd, &ch, 1) != 1) - 4bd6: d36fc0ef jal 110c - 4bda: 872a mv a4,a0 - 4bdc: 4785 li a5,1 + 4bc2: d2efc0ef jal 10f0 + 4bc6: 872a mv a4,a0 + 4bc8: 4785 li a5,1 return c; - 4bde: 8526 mv a0,s1 + 4bca: 8526 mv a0,s1 if (write(stream->fd, &ch, 1) != 1) - 4be0: fcf70fe3 beq a4,a5,4bbe + 4bcc: fcf70fe3 beq a4,a5,4baa } - 4be4: 70a2 ld ra,40(sp) + 4bd0: 70a2 ld ra,40(sp) stream->error = 1; - 4be6: c41c sw a5,8(s0) + 4bd2: c41c sw a5,8(s0) } - 4be8: 7402 ld s0,32(sp) - 4bea: 64e2 ld s1,24(sp) - 4bec: 6942 ld s2,16(sp) + 4bd4: 7402 ld s0,32(sp) + 4bd6: 64e2 ld s1,24(sp) + 4bd8: 6942 ld s2,16(sp) return EOF; - 4bee: 557d li a0,-1 + 4bda: 557d li a0,-1 } - 4bf0: 6145 addi sp,sp,48 - 4bf2: 8082 ret + 4bdc: 6145 addi sp,sp,48 + 4bde: 8082 ret else if (stream->buf_mode == 1 && c == '\n') - 4bf4: 47a9 li a5,10 - 4bf6: fcf513e3 bne a0,a5,4bbc + 4be0: 47a9 li a5,10 + 4be2: fcf513e3 bne a0,a5,4ba8 if (stream->buf_write_pos > 0) - 4bfa: fcc051e3 blez a2,4bbc + 4be6: fcc051e3 blez a2,4ba8 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4bfe: 4188 lw a0,0(a1) - 4c00: 05c1 addi a1,a1,16 - 4c02: d0afc0ef jal 110c + 4bea: 4188 lw a0,0(a1) + 4bec: 05c1 addi a1,a1,16 + 4bee: d02fc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4c06: 41042783 lw a5,1040(s0) - 4c0a: 02f55063 bge a0,a5,4c2a + 4bf2: 41042783 lw a5,1040(s0) + 4bf6: 02f55063 bge a0,a5,4c16 stream->error = 1; - 4c0e: 01242423 sw s2,8(s0) + 4bfa: 01242423 sw s2,8(s0) stream->buf_write_pos = 0; - 4c12: 40042823 sw zero,1040(s0) + 4bfe: 40042823 sw zero,1040(s0) return c; - 4c16: 8526 mv a0,s1 - 4c18: b75d j 4bbe + 4c02: 8526 mv a0,s1 + 4c04: b75d j 4baa int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4c1a: 4188 lw a0,0(a1) - 4c1c: 05c1 addi a1,a1,16 - 4c1e: ceefc0ef jal 110c + 4c06: 4188 lw a0,0(a1) + 4c08: 05c1 addi a1,a1,16 + 4c0a: ce6fc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4c22: 41042783 lw a5,1040(s0) - 4c26: 00f54663 blt a0,a5,4c32 + 4c0e: 41042783 lw a5,1040(s0) + 4c12: 00f54663 blt a0,a5,4c1e stream->buf_write_pos = 0; - 4c2a: 40042823 sw zero,1040(s0) + 4c16: 40042823 sw zero,1040(s0) return c; - 4c2e: 8526 mv a0,s1 - 4c30: b779 j 4bbe + 4c1a: 8526 mv a0,s1 + 4c1c: b779 j 4baa stream->error = 1; - 4c32: 4785 li a5,1 - 4c34: c41c sw a5,8(s0) + 4c1e: 4785 li a5,1 + 4c20: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4c36: 40042823 sw zero,1040(s0) + 4c22: 40042823 sw zero,1040(s0) return c; - 4c3a: 8526 mv a0,s1 - 4c3c: b749 j 4bbe + 4c26: 8526 mv a0,s1 + 4c28: b749 j 4baa return EOF; - 4c3e: 557d li a0,-1 + 4c2a: 557d li a0,-1 } - 4c40: 8082 ret + 4c2c: 8082 ret -0000000000004c42 : +0000000000004c2e : if (!stream) - 4c42: c1ed beqz a1,4d24 + 4c2e: c1ed beqz a1,4d10 { - 4c44: 711d addi sp,sp,-96 - 4c46: e4a6 sd s1,72(sp) - 4c48: ec86 sd ra,88(sp) + 4c30: 711d addi sp,sp,-96 + 4c32: e4a6 sd s1,72(sp) + 4c34: ec86 sd ra,88(sp) while (*s) - 4c4a: 00054703 lbu a4,0(a0) - 4c4e: 84aa mv s1,a0 - 4c50: cf25 beqz a4,4cc8 - 4c52: e8a2 sd s0,80(sp) - 4c54: e0ca sd s2,64(sp) - 4c56: fc4e sd s3,56(sp) - 4c58: f852 sd s4,48(sp) - 4c5a: f456 sd s5,40(sp) - 4c5c: f05a sd s6,32(sp) - 4c5e: ec5e sd s7,24(sp) - 4c60: 842e mv s0,a1 + 4c36: 00054703 lbu a4,0(a0) + 4c3a: 84aa mv s1,a0 + 4c3c: cf25 beqz a4,4cb4 + 4c3e: e8a2 sd s0,80(sp) + 4c40: e0ca sd s2,64(sp) + 4c42: fc4e sd s3,56(sp) + 4c44: f852 sd s4,48(sp) + 4c46: f456 sd s5,40(sp) + 4c48: f05a sd s6,32(sp) + 4c4a: ec5e sd s7,24(sp) + 4c4c: 842e mv s0,a1 if (stream->buf_mode == 2) - 4c62: 4909 li s2,2 + 4c4e: 4909 li s2,2 if (stream->buf_write_pos >= BUFSIZ) - 4c64: 3ff00b13 li s6,1023 + 4c50: 3ff00b13 li s6,1023 else if (stream->buf_mode == 1 && c == '\n') - 4c68: 4985 li s3,1 - 4c6a: 4a29 li s4,10 + 4c54: 4985 li s3,1 + 4c56: 4a29 li s4,10 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4c6c: 01058a93 addi s5,a1,16 + 4c58: 01058a93 addi s5,a1,16 if (write(stream->fd, &ch, 1) != 1) - 4c70: 00f10b93 addi s7,sp,15 - 4c74: a031 j 4c80 + 4c5c: 00f10b93 addi s7,sp,15 + 4c60: a031 j 4c6c else if (stream->buf_mode == 1 && c == '\n') - 4c76: 09368563 beq a3,s3,4d00 + 4c62: 09368563 beq a3,s3,4cec while (*s) - 4c7a: 0004c703 lbu a4,0(s1) - 4c7e: cf15 beqz a4,4cba + 4c66: 0004c703 lbu a4,0(s1) + 4c6a: cf15 beqz a4,4ca6 if (stream->buf_mode == 2) - 4c80: 41c42683 lw a3,1052(s0) + 4c6c: 41c42683 lw a3,1052(s0) if (fputc(*s++, stream) == EOF) - 4c84: 0485 addi s1,s1,1 + 4c70: 0485 addi s1,s1,1 if (stream->buf_mode == 2) - 4c86: 05268663 beq a3,s2,4cd2 + 4c72: 05268663 beq a3,s2,4cbe stream->buffer[stream->buf_write_pos++] = (char)c; - 4c8a: 41042783 lw a5,1040(s0) - 4c8e: 0017861b addiw a2,a5,1 - 4c92: 40c42823 sw a2,1040(s0) - 4c96: 97a2 add a5,a5,s0 - 4c98: 00e78823 sb a4,16(a5) + 4c76: 41042783 lw a5,1040(s0) + 4c7a: 0017861b addiw a2,a5,1 + 4c7e: 40c42823 sw a2,1040(s0) + 4c82: 97a2 add a5,a5,s0 + 4c84: 00e78823 sb a4,16(a5) if (stream->buf_write_pos >= BUFSIZ) - 4c9c: fccb5de3 bge s6,a2,4c76 + 4c88: fccb5de3 bge s6,a2,4c62 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4ca0: 4008 lw a0,0(s0) - 4ca2: 85d6 mv a1,s5 - 4ca4: c68fc0ef jal 110c + 4c8c: 4008 lw a0,0(s0) + 4c8e: 85d6 mv a1,s5 + 4c90: c60fc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4ca8: 41042783 lw a5,1040(s0) - 4cac: 06f54763 blt a0,a5,4d1a + 4c94: 41042783 lw a5,1040(s0) + 4c98: 06f54763 blt a0,a5,4d06 stream->buf_write_pos = 0; - 4cb0: 40042823 sw zero,1040(s0) + 4c9c: 40042823 sw zero,1040(s0) while (*s) - 4cb4: 0004c703 lbu a4,0(s1) - 4cb8: f761 bnez a4,4c80 - 4cba: 6446 ld s0,80(sp) - 4cbc: 6906 ld s2,64(sp) - 4cbe: 79e2 ld s3,56(sp) - 4cc0: 7a42 ld s4,48(sp) - 4cc2: 7aa2 ld s5,40(sp) - 4cc4: 7b02 ld s6,32(sp) - 4cc6: 6be2 ld s7,24(sp) -} - 4cc8: 60e6 ld ra,88(sp) - 4cca: 64a6 ld s1,72(sp) + 4ca0: 0004c703 lbu a4,0(s1) + 4ca4: f761 bnez a4,4c6c + 4ca6: 6446 ld s0,80(sp) + 4ca8: 6906 ld s2,64(sp) + 4caa: 79e2 ld s3,56(sp) + 4cac: 7a42 ld s4,48(sp) + 4cae: 7aa2 ld s5,40(sp) + 4cb0: 7b02 ld s6,32(sp) + 4cb2: 6be2 ld s7,24(sp) +} + 4cb4: 60e6 ld ra,88(sp) + 4cb6: 64a6 ld s1,72(sp) return 0; - 4ccc: 4501 li a0,0 + 4cb8: 4501 li a0,0 } - 4cce: 6125 addi sp,sp,96 - 4cd0: 8082 ret + 4cba: 6125 addi sp,sp,96 + 4cbc: 8082 ret if (write(stream->fd, &ch, 1) != 1) - 4cd2: 4008 lw a0,0(s0) - 4cd4: 4605 li a2,1 - 4cd6: 85de mv a1,s7 + 4cbe: 4008 lw a0,0(s0) + 4cc0: 4605 li a2,1 + 4cc2: 85de mv a1,s7 char ch = (char)c; - 4cd8: 00e107a3 sb a4,15(sp) + 4cc4: 00e107a3 sb a4,15(sp) if (write(stream->fd, &ch, 1) != 1) - 4cdc: c30fc0ef jal 110c - 4ce0: f9350de3 beq a0,s3,4c7a + 4cc8: c28fc0ef jal 10f0 + 4ccc: f9350de3 beq a0,s3,4c66 stream->error = 1; - 4ce4: 01342423 sw s3,8(s0) -} - 4ce8: 60e6 ld ra,88(sp) - 4cea: 6446 ld s0,80(sp) - 4cec: 6906 ld s2,64(sp) - 4cee: 79e2 ld s3,56(sp) - 4cf0: 7a42 ld s4,48(sp) - 4cf2: 7aa2 ld s5,40(sp) - 4cf4: 7b02 ld s6,32(sp) - 4cf6: 6be2 ld s7,24(sp) - 4cf8: 64a6 ld s1,72(sp) + 4cd0: 01342423 sw s3,8(s0) +} + 4cd4: 60e6 ld ra,88(sp) + 4cd6: 6446 ld s0,80(sp) + 4cd8: 6906 ld s2,64(sp) + 4cda: 79e2 ld s3,56(sp) + 4cdc: 7a42 ld s4,48(sp) + 4cde: 7aa2 ld s5,40(sp) + 4ce0: 7b02 ld s6,32(sp) + 4ce2: 6be2 ld s7,24(sp) + 4ce4: 64a6 ld s1,72(sp) return -1; - 4cfa: 557d li a0,-1 + 4ce6: 557d li a0,-1 } - 4cfc: 6125 addi sp,sp,96 - 4cfe: 8082 ret + 4ce8: 6125 addi sp,sp,96 + 4cea: 8082 ret else if (stream->buf_mode == 1 && c == '\n') - 4d00: f7471de3 bne a4,s4,4c7a + 4cec: f7471de3 bne a4,s4,4c66 if (stream->buf_write_pos > 0) - 4d04: f6c05be3 blez a2,4c7a + 4cf0: f6c05be3 blez a2,4c66 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4d08: 4008 lw a0,0(s0) - 4d0a: 01040593 addi a1,s0,16 - 4d0e: bfefc0ef jal 110c + 4cf4: 4008 lw a0,0(s0) + 4cf6: 01040593 addi a1,s0,16 + 4cfa: bf6fc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4d12: 41042783 lw a5,1040(s0) - 4d16: f8f55de3 bge a0,a5,4cb0 + 4cfe: 41042783 lw a5,1040(s0) + 4d02: f8f55de3 bge a0,a5,4c9c stream->error = 1; - 4d1a: 4785 li a5,1 - 4d1c: c41c sw a5,8(s0) + 4d06: 4785 li a5,1 + 4d08: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4d1e: 40042823 sw zero,1040(s0) + 4d0a: 40042823 sw zero,1040(s0) return EOF; - 4d22: bfa1 j 4c7a + 4d0e: bfa1 j 4c66 return -1; - 4d24: 557d li a0,-1 + 4d10: 557d li a0,-1 } - 4d26: 8082 ret + 4d12: 8082 ret -0000000000004d28 : +0000000000004d14 : if (!stream) - 4d28: c949 beqz a0,4dba + 4d14: c949 beqz a0,4da6 if (stream->buf_write_pos > 0) - 4d2a: 41052603 lw a2,1040(a0) + 4d16: 41052603 lw a2,1040(a0) { - 4d2e: 1141 addi sp,sp,-16 - 4d30: e022 sd s0,0(sp) - 4d32: e406 sd ra,8(sp) - 4d34: 842a mv s0,a0 + 4d1a: 1141 addi sp,sp,-16 + 4d1c: e022 sd s0,0(sp) + 4d1e: e406 sd ra,8(sp) + 4d20: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 4d36: 04c04863 bgtz a2,4d86 + 4d22: 04c04863 bgtz a2,4d72 if (stream->buf_read_pos < stream->buf_read_cnt) - 4d3a: 41442783 lw a5,1044(s0) - 4d3e: 41842703 lw a4,1048(s0) - 4d42: 00e7dd63 bge a5,a4,4d5c + 4d26: 41442783 lw a5,1044(s0) + 4d2a: 41842703 lw a4,1048(s0) + 4d2e: 00e7dd63 bge a5,a4,4d48 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4d46: 0017871b addiw a4,a5,1 - 4d4a: 40e42a23 sw a4,1044(s0) - 4d4e: 943e add s0,s0,a5 - 4d50: 01044503 lbu a0,16(s0) -} - 4d54: 60a2 ld ra,8(sp) - 4d56: 6402 ld s0,0(sp) - 4d58: 0141 addi sp,sp,16 - 4d5a: 8082 ret + 4d32: 0017871b addiw a4,a5,1 + 4d36: 40e42a23 sw a4,1044(s0) + 4d3a: 943e add s0,s0,a5 + 4d3c: 01044503 lbu a0,16(s0) +} + 4d40: 60a2 ld ra,8(sp) + 4d42: 6402 ld s0,0(sp) + 4d44: 0141 addi sp,sp,16 + 4d46: 8082 ret int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 4d5c: 4008 lw a0,0(s0) - 4d5e: 40000613 li a2,1024 - 4d62: 01040593 addi a1,s0,16 - 4d66: b9efc0ef jal 1104 - 4d6a: 87aa mv a5,a0 + 4d48: 4008 lw a0,0(s0) + 4d4a: 40000613 li a2,1024 + 4d4e: 01040593 addi a1,s0,16 + 4d52: b96fc0ef jal 10e8 + 4d56: 87aa mv a5,a0 if (ret <= 0) - 4d6c: 02a05e63 blez a0,4da8 + 4d58: 02a05e63 blez a0,4d94 stream->buf_read_cnt = (int)ret; - 4d70: 40f42c23 sw a5,1048(s0) + 4d5c: 40f42c23 sw a5,1048(s0) return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4d74: 4785 li a5,1 - 4d76: 01044503 lbu a0,16(s0) + 4d60: 4785 li a5,1 + 4d62: 01044503 lbu a0,16(s0) } - 4d7a: 60a2 ld ra,8(sp) + 4d66: 60a2 ld ra,8(sp) return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4d7c: 40f42a23 sw a5,1044(s0) + 4d68: 40f42a23 sw a5,1044(s0) } - 4d80: 6402 ld s0,0(sp) - 4d82: 0141 addi sp,sp,16 - 4d84: 8082 ret + 4d6c: 6402 ld s0,0(sp) + 4d6e: 0141 addi sp,sp,16 + 4d70: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4d86: 4108 lw a0,0(a0) - 4d88: 01040593 addi a1,s0,16 - 4d8c: b80fc0ef jal 110c + 4d72: 4108 lw a0,0(a0) + 4d74: 01040593 addi a1,s0,16 + 4d78: b78fc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4d90: 41042783 lw a5,1040(s0) - 4d94: 00f54563 blt a0,a5,4d9e + 4d7c: 41042783 lw a5,1040(s0) + 4d80: 00f54563 blt a0,a5,4d8a stream->buf_write_pos = 0; - 4d98: 40042823 sw zero,1040(s0) - 4d9c: bf79 j 4d3a + 4d84: 40042823 sw zero,1040(s0) + 4d88: bf79 j 4d26 stream->error = 1; - 4d9e: 4785 li a5,1 - 4da0: c41c sw a5,8(s0) + 4d8a: 4785 li a5,1 + 4d8c: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4da2: 40042823 sw zero,1040(s0) + 4d8e: 40042823 sw zero,1040(s0) return EOF; - 4da6: bf51 j 4d3a + 4d92: bf51 j 4d26 if (ret == 0) - 4da8: e509 bnez a0,4db2 + 4d94: e509 bnez a0,4d9e stream->eof = 1; - 4daa: 4785 li a5,1 - 4dac: c45c sw a5,12(s0) + 4d96: 4785 li a5,1 + 4d98: c45c sw a5,12(s0) return EOF; - 4dae: 557d li a0,-1 - 4db0: b755 j 4d54 + 4d9a: 557d li a0,-1 + 4d9c: b755 j 4d40 stream->error = 1; - 4db2: 4785 li a5,1 - 4db4: c41c sw a5,8(s0) + 4d9e: 4785 li a5,1 + 4da0: c41c sw a5,8(s0) return EOF; - 4db6: 557d li a0,-1 - 4db8: bf71 j 4d54 - 4dba: 557d li a0,-1 + 4da2: 557d li a0,-1 + 4da4: bf71 j 4d40 + 4da6: 557d li a0,-1 } - 4dbc: 8082 ret + 4da8: 8082 ret -0000000000004dbe : +0000000000004daa : if (!stream || n <= 0) - 4dbe: ce5d beqz a2,4e7c - 4dc0: 0ab05e63 blez a1,4e7c + 4daa: ce5d beqz a2,4e68 + 4dac: 0ab05e63 blez a1,4e68 { - 4dc4: 715d addi sp,sp,-80 - 4dc6: e0a2 sd s0,64(sp) - 4dc8: fc26 sd s1,56(sp) - 4dca: f84a sd s2,48(sp) - 4dcc: f44e sd s3,40(sp) - 4dce: f052 sd s4,32(sp) - 4dd0: ec56 sd s5,24(sp) - 4dd2: e85a sd s6,16(sp) - 4dd4: e45e sd s7,8(sp) - 4dd6: e486 sd ra,72(sp) - 4dd8: 8432 mv s0,a2 - 4dda: 8aaa mv s5,a0 - 4ddc: 892a mv s2,a0 - 4dde: fff58b9b addiw s7,a1,-1 + 4db0: 715d addi sp,sp,-80 + 4db2: e0a2 sd s0,64(sp) + 4db4: fc26 sd s1,56(sp) + 4db6: f84a sd s2,48(sp) + 4db8: f44e sd s3,40(sp) + 4dba: f052 sd s4,32(sp) + 4dbc: ec56 sd s5,24(sp) + 4dbe: e85a sd s6,16(sp) + 4dc0: e45e sd s7,8(sp) + 4dc2: e486 sd ra,72(sp) + 4dc4: 8432 mv s0,a2 + 4dc6: 8aaa mv s5,a0 + 4dc8: 892a mv s2,a0 + 4dca: fff58b9b addiw s7,a1,-1 int i = 0, c; - 4de2: 4481 li s1,0 + 4dce: 4481 li s1,0 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4de4: 01060993 addi s3,a2,16 + 4dd0: 01060993 addi s3,a2,16 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4de8: 4b05 li s6,1 + 4dd4: 4b05 li s6,1 if (c == '\n') - 4dea: 4a29 li s4,10 + 4dd6: 4a29 li s4,10 while (i < n - 1) - 4dec: 05748163 beq s1,s7,4e2e + 4dd8: 05748163 beq s1,s7,4e1a if (stream->buf_write_pos > 0) - 4df0: 41042603 lw a2,1040(s0) + 4ddc: 41042603 lw a2,1040(s0) int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4df4: 85ce mv a1,s3 + 4de0: 85ce mv a1,s3 if (stream->buf_write_pos > 0) - 4df6: 06c04963 bgtz a2,4e68 + 4de2: 06c04963 bgtz a2,4e54 if (stream->buf_read_pos < stream->buf_read_cnt) - 4dfa: 41442783 lw a5,1044(s0) - 4dfe: 41842703 lw a4,1048(s0) + 4de6: 41442783 lw a5,1044(s0) + 4dea: 41842703 lw a4,1048(s0) int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 4e02: 40000613 li a2,1024 + 4dee: 40000613 li a2,1024 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4e06: 0017851b addiw a0,a5,1 - 4e0a: 00f406b3 add a3,s0,a5 + 4df2: 0017851b addiw a0,a5,1 + 4df6: 00f406b3 add a3,s0,a5 int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 4e0e: 85ce mv a1,s3 + 4dfa: 85ce mv a1,s3 if (stream->buf_read_pos < stream->buf_read_cnt) - 4e10: 02e7de63 bge a5,a4,4e4c + 4dfc: 02e7de63 bge a5,a4,4e38 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4e14: 40a42a23 sw a0,1044(s0) - 4e18: 0106c783 lbu a5,16(a3) - 4e1c: 0007871b sext.w a4,a5 + 4e00: 40a42a23 sw a0,1044(s0) + 4e04: 0106c783 lbu a5,16(a3) + 4e08: 0007871b sext.w a4,a5 str[i++] = (char)c; - 4e20: 00f90023 sb a5,0(s2) - 4e24: 2485 addiw s1,s1,1 + 4e0c: 00f90023 sb a5,0(s2) + 4e10: 2485 addiw s1,s1,1 if (c == '\n') - 4e26: 0905 addi s2,s2,1 - 4e28: fd4712e3 bne a4,s4,4dec + 4e12: 0905 addi s2,s2,1 + 4e14: fd4712e3 bne a4,s4,4dd8 str[i++] = (char)c; - 4e2c: 8ba6 mv s7,s1 + 4e18: 8ba6 mv s7,s1 str[i] = '\0'; - 4e2e: 9bd6 add s7,s7,s5 - 4e30: 000b8023 sb zero,0(s7) + 4e1a: 9bd6 add s7,s7,s5 + 4e1c: 000b8023 sb zero,0(s7) return str; - 4e34: 8556 mv a0,s5 -} - 4e36: 60a6 ld ra,72(sp) - 4e38: 6406 ld s0,64(sp) - 4e3a: 74e2 ld s1,56(sp) - 4e3c: 7942 ld s2,48(sp) - 4e3e: 79a2 ld s3,40(sp) - 4e40: 7a02 ld s4,32(sp) - 4e42: 6ae2 ld s5,24(sp) - 4e44: 6b42 ld s6,16(sp) - 4e46: 6ba2 ld s7,8(sp) - 4e48: 6161 addi sp,sp,80 - 4e4a: 8082 ret + 4e20: 8556 mv a0,s5 +} + 4e22: 60a6 ld ra,72(sp) + 4e24: 6406 ld s0,64(sp) + 4e26: 74e2 ld s1,56(sp) + 4e28: 7942 ld s2,48(sp) + 4e2a: 79a2 ld s3,40(sp) + 4e2c: 7a02 ld s4,32(sp) + 4e2e: 6ae2 ld s5,24(sp) + 4e30: 6b42 ld s6,16(sp) + 4e32: 6ba2 ld s7,8(sp) + 4e34: 6161 addi sp,sp,80 + 4e36: 8082 ret int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 4e4c: 4008 lw a0,0(s0) - 4e4e: ab6fc0ef jal 1104 + 4e38: 4008 lw a0,0(s0) + 4e3a: aaefc0ef jal 10e8 if (ret <= 0) - 4e52: 02a05c63 blez a0,4e8a + 4e3e: 02a05c63 blez a0,4e76 return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4e56: 01044783 lbu a5,16(s0) + 4e42: 01044783 lbu a5,16(s0) stream->buf_read_cnt = (int)ret; - 4e5a: 40a42c23 sw a0,1048(s0) + 4e46: 40a42c23 sw a0,1048(s0) return (unsigned char)stream->buffer[stream->buf_read_pos++]; - 4e5e: 41642a23 sw s6,1044(s0) - 4e62: 0007871b sext.w a4,a5 + 4e4a: 41642a23 sw s6,1044(s0) + 4e4e: 0007871b sext.w a4,a5 if (c == -1) - 4e66: bf6d j 4e20 + 4e52: bf6d j 4e0c int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4e68: 4008 lw a0,0(s0) - 4e6a: aa2fc0ef jal 110c + 4e54: 4008 lw a0,0(s0) + 4e56: a9afc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4e6e: 41042783 lw a5,1040(s0) - 4e72: 00f54763 blt a0,a5,4e80 + 4e5a: 41042783 lw a5,1040(s0) + 4e5e: 00f54763 blt a0,a5,4e6c stream->buf_write_pos = 0; - 4e76: 40042823 sw zero,1040(s0) - 4e7a: b741 j 4dfa + 4e62: 40042823 sw zero,1040(s0) + 4e66: b741 j 4de6 return NULL; - 4e7c: 4501 li a0,0 + 4e68: 4501 li a0,0 } - 4e7e: 8082 ret + 4e6a: 8082 ret stream->error = 1; - 4e80: 4785 li a5,1 - 4e82: c41c sw a5,8(s0) + 4e6c: 4785 li a5,1 + 4e6e: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4e84: 40042823 sw zero,1040(s0) + 4e70: 40042823 sw zero,1040(s0) return EOF; - 4e88: bf8d j 4dfa + 4e74: bf8d j 4de6 stream->eof = 1; - 4e8a: 4785 li a5,1 + 4e76: 4785 li a5,1 if (ret == 0) - 4e8c: e509 bnez a0,4e96 + 4e78: e509 bnez a0,4e82 stream->eof = 1; - 4e8e: c45c sw a5,12(s0) + 4e7a: c45c sw a5,12(s0) if (i == 0) - 4e90: fcd1 bnez s1,4e2c + 4e7c: fcd1 bnez s1,4e18 return NULL; - 4e92: 4501 li a0,0 - 4e94: b74d j 4e36 + 4e7e: 4501 li a0,0 + 4e80: b74d j 4e22 stream->error = 1; - 4e96: c41c sw a5,8(s0) + 4e82: c41c sw a5,8(s0) if (c == -1) - 4e98: bfe5 j 4e90 + 4e84: bfe5 j 4e7c -0000000000004e9a : +0000000000004e86 : { - 4e9a: 715d addi sp,sp,-80 - 4e9c: e486 sd ra,72(sp) - 4e9e: f44e sd s3,40(sp) + 4e86: 715d addi sp,sp,-80 + 4e88: e486 sd ra,72(sp) + 4e8a: f44e sd s3,40(sp) if (!stream || size == 0 || nmemb == 0) - 4ea0: 0e068963 beqz a3,4f92 - 4ea4: ec56 sd s5,24(sp) + 4e8c: 0e068963 beqz a3,4f7e + 4e90: ec56 sd s5,24(sp) return 0; - 4ea6: 4981 li s3,0 - 4ea8: 8aae mv s5,a1 + 4e92: 4981 li s3,0 + 4e94: 8aae mv s5,a1 if (!stream || size == 0 || nmemb == 0) - 4eaa: c9bd beqz a1,4f20 - 4eac: ca35 beqz a2,4f20 + 4e96: c9bd beqz a1,4f0c + 4e98: ca35 beqz a2,4f0c if (stream->buf_write_pos > 0) - 4eae: 4106a783 lw a5,1040(a3) - 4eb2: e0a2 sd s0,64(sp) - 4eb4: f052 sd s4,32(sp) + 4e9a: 4106a783 lw a5,1040(a3) + 4e9e: e0a2 sd s0,64(sp) + 4ea0: f052 sd s4,32(sp) uint64 total_bytes = size * nmemb; - 4eb6: 02c589b3 mul s3,a1,a2 - 4eba: 8436 mv s0,a3 - 4ebc: 8a2a mv s4,a0 + 4ea2: 02c589b3 mul s3,a1,a2 + 4ea6: 8436 mv s0,a3 + 4ea8: 8a2a mv s4,a0 if (stream->buf_write_pos > 0) - 4ebe: 0af04d63 bgtz a5,4f78 + 4eaa: 0af04d63 bgtz a5,4f64 while (bytes_read < total_bytes) - 4ec2: 04098d63 beqz s3,4f1c - 4ec6: fc26 sd s1,56(sp) - 4ec8: e85a sd s6,16(sp) - 4eca: e45e sd s7,8(sp) - 4ecc: f84a sd s2,48(sp) - 4ece: 4481 li s1,0 + 4eae: 04098d63 beqz s3,4f08 + 4eb2: fc26 sd s1,56(sp) + 4eb4: e85a sd s6,16(sp) + 4eb6: e45e sd s7,8(sp) + 4eb8: f84a sd s2,48(sp) + 4eba: 4481 li s1,0 if (remaining >= BUFSIZ) - 4ed0: 3ff00b13 li s6,1023 + 4ebc: 3ff00b13 li s6,1023 int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 4ed4: 01040b93 addi s7,s0,16 + 4ec0: 01040b93 addi s7,s0,16 if (stream->buf_read_pos < stream->buf_read_cnt) - 4ed8: 41442703 lw a4,1044(s0) - 4edc: 41842783 lw a5,1048(s0) + 4ec4: 41442703 lw a4,1044(s0) + 4ec8: 41842783 lw a5,1048(s0) uint64 remaining = total_bytes - bytes_read; - 4ee0: 40998633 sub a2,s3,s1 + 4ecc: 40998633 sub a2,s3,s1 if (stream->buf_read_pos < stream->buf_read_cnt) - 4ee4: 06f74463 blt a4,a5,4f4c + 4ed0: 06f74463 blt a4,a5,4f38 int64 ret = read(stream->fd, dst + bytes_read, remaining); - 4ee8: 4008 lw a0,0(s0) - 4eea: 009a05b3 add a1,s4,s1 + 4ed4: 4008 lw a0,0(s0) + 4ed6: 009a05b3 add a1,s4,s1 if (remaining >= BUFSIZ) - 4eee: 02cb7f63 bgeu s6,a2,4f2c + 4eda: 02cb7f63 bgeu s6,a2,4f18 int64 ret = read(stream->fd, dst + bytes_read, remaining); - 4ef2: a12fc0ef jal 1104 + 4ede: a0afc0ef jal 10e8 if (ret <= 0) - 4ef6: 0aa05463 blez a0,4f9e + 4ee2: 0aa05463 blez a0,4f8a bytes_read += ret; - 4efa: 94aa add s1,s1,a0 + 4ee6: 94aa add s1,s1,a0 while (bytes_read < total_bytes) - 4efc: fd34eee3 bltu s1,s3,4ed8 + 4ee8: fd34eee3 bltu s1,s3,4ec4 return bytes_read / size; - 4f00: 0354d9b3 divu s3,s1,s5 - 4f04: 6406 ld s0,64(sp) + 4eec: 0354d9b3 divu s3,s1,s5 + 4ef0: 6406 ld s0,64(sp) } - 4f06: 60a6 ld ra,72(sp) + 4ef2: 60a6 ld ra,72(sp) return bytes_read / size; - 4f08: 74e2 ld s1,56(sp) - 4f0a: 7942 ld s2,48(sp) - 4f0c: 7a02 ld s4,32(sp) + 4ef4: 74e2 ld s1,56(sp) + 4ef6: 7942 ld s2,48(sp) + 4ef8: 7a02 ld s4,32(sp) + 4efa: 6ae2 ld s5,24(sp) + 4efc: 6b42 ld s6,16(sp) + 4efe: 6ba2 ld s7,8(sp) +} + 4f00: 854e mv a0,s3 + 4f02: 79a2 ld s3,40(sp) + 4f04: 6161 addi sp,sp,80 + 4f06: 8082 ret + 4f08: 6406 ld s0,64(sp) + 4f0a: 7a02 ld s4,32(sp) + 4f0c: 60a6 ld ra,72(sp) 4f0e: 6ae2 ld s5,24(sp) - 4f10: 6b42 ld s6,16(sp) - 4f12: 6ba2 ld s7,8(sp) -} - 4f14: 854e mv a0,s3 - 4f16: 79a2 ld s3,40(sp) - 4f18: 6161 addi sp,sp,80 - 4f1a: 8082 ret - 4f1c: 6406 ld s0,64(sp) - 4f1e: 7a02 ld s4,32(sp) - 4f20: 60a6 ld ra,72(sp) - 4f22: 6ae2 ld s5,24(sp) - 4f24: 854e mv a0,s3 - 4f26: 79a2 ld s3,40(sp) - 4f28: 6161 addi sp,sp,80 - 4f2a: 8082 ret + 4f10: 854e mv a0,s3 + 4f12: 79a2 ld s3,40(sp) + 4f14: 6161 addi sp,sp,80 + 4f16: 8082 ret stream->buf_read_pos = 0; - 4f2c: 40042a23 sw zero,1044(s0) + 4f18: 40042a23 sw zero,1044(s0) stream->buf_read_cnt = 0; - 4f30: 40042c23 sw zero,1048(s0) + 4f1c: 40042c23 sw zero,1048(s0) int64 ret = read(stream->fd, stream->buffer, BUFSIZ); - 4f34: 40000613 li a2,1024 - 4f38: 85de mv a1,s7 - 4f3a: 9cafc0ef jal 1104 + 4f20: 40000613 li a2,1024 + 4f24: 85de mv a1,s7 + 4f26: 9c2fc0ef jal 10e8 if (ret <= 0) - 4f3e: 06a05063 blez a0,4f9e + 4f2a: 06a05063 blez a0,4f8a stream->buf_read_cnt = (int)ret; - 4f42: 40a42c23 sw a0,1048(s0) + 4f2e: 40a42c23 sw a0,1048(s0) while (bytes_read < total_bytes) - 4f46: f934e9e3 bltu s1,s3,4ed8 - 4f4a: bf5d j 4f00 + 4f32: f934e9e3 bltu s1,s3,4ec4 + 4f36: bf5d j 4eec uint64 available = stream->buf_read_cnt - stream->buf_read_pos; - 4f4c: 40e7893b subw s2,a5,a4 + 4f38: 40e7893b subw s2,a5,a4 memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); - 4f50: 00eb85b3 add a1,s7,a4 - 4f54: 009a0533 add a0,s4,s1 + 4f3c: 00eb85b3 add a1,s7,a4 + 4f40: 009a0533 add a0,s4,s1 uint64 to_copy = (available < remaining) ? available : remaining; - 4f58: 01267363 bgeu a2,s2,4f5e - 4f5c: 8932 mv s2,a2 + 4f44: 01267363 bgeu a2,s2,4f4a + 4f48: 8932 mv s2,a2 memcpy(dst + bytes_read, stream->buffer + stream->buf_read_pos, to_copy); - 4f5e: 864a mv a2,s2 - 4f60: 3e1000ef jal 5b40 + 4f4a: 864a mv a2,s2 + 4f4c: 3e1000ef jal 5b2c stream->buf_read_pos += to_copy; - 4f64: 41442783 lw a5,1044(s0) + 4f50: 41442783 lw a5,1044(s0) bytes_read += to_copy; - 4f68: 94ca add s1,s1,s2 + 4f54: 94ca add s1,s1,s2 stream->buf_read_pos += to_copy; - 4f6a: 012787bb addw a5,a5,s2 - 4f6e: 40f42a23 sw a5,1044(s0) + 4f56: 012787bb addw a5,a5,s2 + 4f5a: 40f42a23 sw a5,1044(s0) while (bytes_read < total_bytes) - 4f72: f734e3e3 bltu s1,s3,4ed8 - 4f76: b769 j 4f00 + 4f5e: f734e3e3 bltu s1,s3,4ec4 + 4f62: b769 j 4eec int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4f78: 4288 lw a0,0(a3) - 4f7a: 863e mv a2,a5 - 4f7c: 01068593 addi a1,a3,16 - 4f80: 98cfc0ef jal 110c + 4f64: 4288 lw a0,0(a3) + 4f66: 863e mv a2,a5 + 4f68: 01068593 addi a1,a3,16 + 4f6c: 984fc0ef jal 10f0 if (ret < stream->buf_write_pos) - 4f84: 41042783 lw a5,1040(s0) - 4f88: 02f54163 blt a0,a5,4faa + 4f70: 41042783 lw a5,1040(s0) + 4f74: 02f54163 blt a0,a5,4f96 stream->buf_write_pos = 0; - 4f8c: 40042823 sw zero,1040(s0) - 4f90: bf0d j 4ec2 + 4f78: 40042823 sw zero,1040(s0) + 4f7c: bf0d j 4eae } - 4f92: 60a6 ld ra,72(sp) + 4f7e: 60a6 ld ra,72(sp) return 0; - 4f94: 4981 li s3,0 + 4f80: 4981 li s3,0 } - 4f96: 854e mv a0,s3 - 4f98: 79a2 ld s3,40(sp) - 4f9a: 6161 addi sp,sp,80 - 4f9c: 8082 ret + 4f82: 854e mv a0,s3 + 4f84: 79a2 ld s3,40(sp) + 4f86: 6161 addi sp,sp,80 + 4f88: 8082 ret stream->eof = 1; - 4f9e: 4785 li a5,1 + 4f8a: 4785 li a5,1 if (ret == 0) - 4fa0: e119 bnez a0,4fa6 + 4f8c: e119 bnez a0,4f92 stream->eof = 1; - 4fa2: c45c sw a5,12(s0) - 4fa4: bfb1 j 4f00 + 4f8e: c45c sw a5,12(s0) + 4f90: bfb1 j 4eec stream->error = 1; - 4fa6: c41c sw a5,8(s0) + 4f92: c41c sw a5,8(s0) return bytes_read / size; - 4fa8: bfa1 j 4f00 + 4f94: bfa1 j 4eec stream->error = 1; - 4faa: 4785 li a5,1 - 4fac: c41c sw a5,8(s0) + 4f96: 4785 li a5,1 + 4f98: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 4fae: 40042823 sw zero,1040(s0) + 4f9a: 40042823 sw zero,1040(s0) return EOF; - 4fb2: bf01 j 4ec2 + 4f9e: bf01 j 4eae -0000000000004fb4 : +0000000000004fa0 : { - 4fb4: 711d addi sp,sp,-96 - 4fb6: ec86 sd ra,88(sp) - 4fb8: e0ca sd s2,64(sp) + 4fa0: 711d addi sp,sp,-96 + 4fa2: ec86 sd ra,88(sp) + 4fa4: e0ca sd s2,64(sp) if (!stream || !ptr || size == 0 || nmemb == 0) - 4fba: 10068063 beqz a3,50ba - 4fbe: f456 sd s5,40(sp) - 4fc0: 8aaa mv s5,a0 - 4fc2: 10050263 beqz a0,50c6 - 4fc6: f05a sd s6,32(sp) + 4fa6: 10068063 beqz a3,50a6 + 4faa: f456 sd s5,40(sp) + 4fac: 8aaa mv s5,a0 + 4fae: 10050263 beqz a0,50b2 + 4fb2: f05a sd s6,32(sp) return 0; - 4fc8: 4901 li s2,0 - 4fca: 8b2e mv s6,a1 + 4fb4: 4901 li s2,0 + 4fb6: 8b2e mv s6,a1 if (!stream || !ptr || size == 0 || nmemb == 0) - 4fcc: c1d9 beqz a1,5052 - 4fce: c251 beqz a2,5052 + 4fb8: c1d9 beqz a1,503e + 4fba: c251 beqz a2,503e if (stream->buf_mode == 2) - 4fd0: 41c6a703 lw a4,1052(a3) - 4fd4: e8a2 sd s0,80(sp) - 4fd6: 4789 li a5,2 + 4fbc: 41c6a703 lw a4,1052(a3) + 4fc0: e8a2 sd s0,80(sp) + 4fc2: 4789 li a5,2 uint64 total_bytes = size * nmemb; - 4fd8: 02c58933 mul s2,a1,a2 + 4fc4: 02c58933 mul s2,a1,a2 if (stream->buf_mode == 2) - 4fdc: 8436 mv s0,a3 - 4fde: 0ef70b63 beq a4,a5,50d4 - 4fe2: fc4e sd s3,56(sp) - 4fe4: ec5e sd s7,24(sp) - 4fe6: e862 sd s8,16(sp) + 4fc8: 8436 mv s0,a3 + 4fca: 0ef70b63 beq a4,a5,50c0 + 4fce: fc4e sd s3,56(sp) + 4fd0: ec5e sd s7,24(sp) + 4fd2: e862 sd s8,16(sp) uint64 bytes_written = 0; - 4fe8: 4981 li s3,0 - 4fea: 01068b93 addi s7,a3,16 + 4fd4: 4981 li s3,0 + 4fd6: 01068b93 addi s7,a3,16 uint64 space_left = BUFSIZ - stream->buf_write_pos; - 4fee: 40000c13 li s8,1024 + 4fda: 40000c13 li s8,1024 while (bytes_written < total_bytes) - 4ff2: 12090263 beqz s2,5116 - 4ff6: e4a6 sd s1,72(sp) - 4ff8: f852 sd s4,48(sp) - 4ffa: e466 sd s9,8(sp) + 4fde: 12090263 beqz s2,5102 + 4fe2: e4a6 sd s1,72(sp) + 4fe4: f852 sd s4,48(sp) + 4fe6: e466 sd s9,8(sp) uint64 space_left = BUFSIZ - stream->buf_write_pos; - 4ffc: 41042783 lw a5,1040(s0) + 4fe8: 41042783 lw a5,1040(s0) uint64 remaining = total_bytes - bytes_written; - 5000: 41390cb3 sub s9,s2,s3 + 4fec: 41390cb3 sub s9,s2,s3 memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); - 5004: 013a85b3 add a1,s5,s3 + 4ff0: 013a85b3 add a1,s5,s3 uint64 space_left = BUFSIZ - stream->buf_write_pos; - 5008: 40fc0a3b subw s4,s8,a5 + 4ff4: 40fc0a3b subw s4,s8,a5 memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); - 500c: 00fb8533 add a0,s7,a5 - 5010: 8652 mv a2,s4 + 4ff8: 00fb8533 add a0,s7,a5 + 4ffc: 8652 mv a2,s4 if (remaining <= space_left) - 5012: 059a6763 bltu s4,s9,5060 + 4ffe: 059a6763 bltu s4,s9,504c memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); - 5016: 8666 mv a2,s9 - 5018: 329000ef jal 5b40 + 5002: 8666 mv a2,s9 + 5004: 329000ef jal 5b2c stream->buf_write_pos += remaining; - 501c: 41042783 lw a5,1040(s0) + 5008: 41042783 lw a5,1040(s0) if (stream->buf_write_pos == BUFSIZ) - 5020: 40000713 li a4,1024 + 500c: 40000713 li a4,1024 stream->buf_write_pos += remaining; - 5024: 019786bb addw a3,a5,s9 - 5028: 40d42823 sw a3,1040(s0) + 5010: 019786bb addw a3,a5,s9 + 5014: 40d42823 sw a3,1040(s0) if (stream->buf_write_pos == BUFSIZ) - 502c: 06e68a63 beq a3,a4,50a0 + 5018: 06e68a63 beq a3,a4,508c return bytes_written / size; - 5030: 03695933 divu s2,s2,s6 - 5034: 6446 ld s0,80(sp) - 5036: 64a6 ld s1,72(sp) - 5038: 79e2 ld s3,56(sp) - 503a: 7a42 ld s4,48(sp) - 503c: 7aa2 ld s5,40(sp) - 503e: 7b02 ld s6,32(sp) - 5040: 6be2 ld s7,24(sp) - 5042: 6c42 ld s8,16(sp) - 5044: 6ca2 ld s9,8(sp) -} - 5046: 60e6 ld ra,88(sp) - 5048: 854a mv a0,s2 - 504a: 6906 ld s2,64(sp) - 504c: 6125 addi sp,sp,96 - 504e: 8082 ret - 5050: 6446 ld s0,80(sp) - 5052: 60e6 ld ra,88(sp) - 5054: 7aa2 ld s5,40(sp) - 5056: 7b02 ld s6,32(sp) - 5058: 854a mv a0,s2 - 505a: 6906 ld s2,64(sp) - 505c: 6125 addi sp,sp,96 - 505e: 8082 ret + 501c: 03695933 divu s2,s2,s6 + 5020: 6446 ld s0,80(sp) + 5022: 64a6 ld s1,72(sp) + 5024: 79e2 ld s3,56(sp) + 5026: 7a42 ld s4,48(sp) + 5028: 7aa2 ld s5,40(sp) + 502a: 7b02 ld s6,32(sp) + 502c: 6be2 ld s7,24(sp) + 502e: 6c42 ld s8,16(sp) + 5030: 6ca2 ld s9,8(sp) +} + 5032: 60e6 ld ra,88(sp) + 5034: 854a mv a0,s2 + 5036: 6906 ld s2,64(sp) + 5038: 6125 addi sp,sp,96 + 503a: 8082 ret + 503c: 6446 ld s0,80(sp) + 503e: 60e6 ld ra,88(sp) + 5040: 7aa2 ld s5,40(sp) + 5042: 7b02 ld s6,32(sp) + 5044: 854a mv a0,s2 + 5046: 6906 ld s2,64(sp) + 5048: 6125 addi sp,sp,96 + 504a: 8082 ret memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, space_left); - 5060: 2e1000ef jal 5b40 + 504c: 2e1000ef jal 5b2c stream->buf_write_pos += space_left; - 5064: 41042783 lw a5,1040(s0) + 5050: 41042783 lw a5,1040(s0) int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 5068: 85de mv a1,s7 + 5054: 85de mv a1,s7 bytes_written += space_left; - 506a: 99d2 add s3,s3,s4 + 5056: 99d2 add s3,s3,s4 stream->buf_write_pos += space_left; - 506c: 00fa04bb addw s1,s4,a5 + 5058: 00fa04bb addw s1,s4,a5 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 5070: 02049613 slli a2,s1,0x20 + 505c: 02049613 slli a2,s1,0x20 stream->buf_write_pos += space_left; - 5074: 40942823 sw s1,1040(s0) + 5060: 40942823 sw s1,1040(s0) int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 5078: 9201 srli a2,a2,0x20 + 5064: 9201 srli a2,a2,0x20 if (stream->buf_write_pos > 0) - 507a: 00904763 bgtz s1,5088 + 5066: 00904763 bgtz s1,5074 while (bytes_written < total_bytes) - 507e: f729efe3 bltu s3,s2,4ffc + 506a: f729efe3 bltu s3,s2,4fe8 return bytes_written / size; - 5082: 0369d933 divu s2,s3,s6 - 5086: b77d j 5034 + 506e: 0369d933 divu s2,s3,s6 + 5072: b77d j 5020 int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 5088: 4008 lw a0,0(s0) - 508a: 882fc0ef jal 110c + 5074: 4008 lw a0,0(s0) + 5076: 87afc0ef jal 10f0 if (ret < stream->buf_write_pos) - 508e: 41042783 lw a5,1040(s0) - 5092: 08f54963 blt a0,a5,5124 + 507a: 41042783 lw a5,1040(s0) + 507e: 08f54963 blt a0,a5,5110 stream->buf_write_pos = 0; - 5096: 40042823 sw zero,1040(s0) + 5082: 40042823 sw zero,1040(s0) while (bytes_written < total_bytes) - 509a: f729e1e3 bltu s3,s2,4ffc - 509e: b7d5 j 5082 + 5086: f729e1e3 bltu s3,s2,4fe8 + 508a: b7d5 j 506e int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 50a0: 4008 lw a0,0(s0) - 50a2: 40000613 li a2,1024 - 50a6: 85de mv a1,s7 - 50a8: 864fc0ef jal 110c + 508c: 4008 lw a0,0(s0) + 508e: 40000613 li a2,1024 + 5092: 85de mv a1,s7 + 5094: 85cfc0ef jal 10f0 if (ret < stream->buf_write_pos) - 50ac: 41042783 lw a5,1040(s0) - 50b0: 08f54163 blt a0,a5,5132 + 5098: 41042783 lw a5,1040(s0) + 509c: 08f54163 blt a0,a5,511e stream->buf_write_pos = 0; - 50b4: 40042823 sw zero,1040(s0) - 50b8: bfa5 j 5030 + 50a0: 40042823 sw zero,1040(s0) + 50a4: bfa5 j 501c } - 50ba: 60e6 ld ra,88(sp) + 50a6: 60e6 ld ra,88(sp) return 0; - 50bc: 4901 li s2,0 + 50a8: 4901 li s2,0 } - 50be: 854a mv a0,s2 - 50c0: 6906 ld s2,64(sp) - 50c2: 6125 addi sp,sp,96 - 50c4: 8082 ret - 50c6: 60e6 ld ra,88(sp) + 50aa: 854a mv a0,s2 + 50ac: 6906 ld s2,64(sp) + 50ae: 6125 addi sp,sp,96 + 50b0: 8082 ret + 50b2: 60e6 ld ra,88(sp) return 0; - 50c8: 4901 li s2,0 - 50ca: 7aa2 ld s5,40(sp) + 50b4: 4901 li s2,0 + 50b6: 7aa2 ld s5,40(sp) } - 50cc: 854a mv a0,s2 - 50ce: 6906 ld s2,64(sp) - 50d0: 6125 addi sp,sp,96 - 50d2: 8082 ret + 50b8: 854a mv a0,s2 + 50ba: 6906 ld s2,64(sp) + 50bc: 6125 addi sp,sp,96 + 50be: 8082 ret while (bytes_written < total_bytes) - 50d4: f6090ee3 beqz s2,5050 - 50d8: e4a6 sd s1,72(sp) + 50c0: f6090ee3 beqz s2,503c + 50c4: e4a6 sd s1,72(sp) uint64 bytes_written = 0; - 50da: 4481 li s1,0 - 50dc: a021 j 50e4 + 50c6: 4481 li s1,0 + 50c8: a021 j 50d0 bytes_written += ret; - 50de: 94aa add s1,s1,a0 + 50ca: 94aa add s1,s1,a0 while (bytes_written < total_bytes) - 50e0: 0324f463 bgeu s1,s2,5108 + 50cc: 0324f463 bgeu s1,s2,50f4 int64 ret = write(stream->fd, src + bytes_written, total_bytes - bytes_written); - 50e4: 4008 lw a0,0(s0) - 50e6: 40990633 sub a2,s2,s1 - 50ea: 009a85b3 add a1,s5,s1 - 50ee: 81efc0ef jal 110c + 50d0: 4008 lw a0,0(s0) + 50d2: 40990633 sub a2,s2,s1 + 50d6: 009a85b3 add a1,s5,s1 + 50da: 816fc0ef jal 10f0 if (ret <= 0) - 50f2: fea046e3 bgtz a0,50de + 50de: fea046e3 bgtz a0,50ca stream->error = 1; - 50f6: 4785 li a5,1 + 50e2: 4785 li a5,1 return bytes_written / size; - 50f8: 0364d933 divu s2,s1,s6 + 50e4: 0364d933 divu s2,s1,s6 stream->error = 1; - 50fc: c41c sw a5,8(s0) + 50e8: c41c sw a5,8(s0) break; - 50fe: 64a6 ld s1,72(sp) - 5100: 6446 ld s0,80(sp) - 5102: 7aa2 ld s5,40(sp) - 5104: 7b02 ld s6,32(sp) - 5106: b781 j 5046 + 50ea: 64a6 ld s1,72(sp) + 50ec: 6446 ld s0,80(sp) + 50ee: 7aa2 ld s5,40(sp) + 50f0: 7b02 ld s6,32(sp) + 50f2: b781 j 5032 return bytes_written / size; - 5108: 0364d933 divu s2,s1,s6 - 510c: 6446 ld s0,80(sp) - 510e: 64a6 ld s1,72(sp) - 5110: 7aa2 ld s5,40(sp) - 5112: 7b02 ld s6,32(sp) - 5114: bf0d j 5046 - 5116: 6446 ld s0,80(sp) - 5118: 79e2 ld s3,56(sp) - 511a: 7aa2 ld s5,40(sp) - 511c: 7b02 ld s6,32(sp) - 511e: 6be2 ld s7,24(sp) - 5120: 6c42 ld s8,16(sp) - 5122: b715 j 5046 + 50f4: 0364d933 divu s2,s1,s6 + 50f8: 6446 ld s0,80(sp) + 50fa: 64a6 ld s1,72(sp) + 50fc: 7aa2 ld s5,40(sp) + 50fe: 7b02 ld s6,32(sp) + 5100: bf0d j 5032 + 5102: 6446 ld s0,80(sp) + 5104: 79e2 ld s3,56(sp) + 5106: 7aa2 ld s5,40(sp) + 5108: 7b02 ld s6,32(sp) + 510a: 6be2 ld s7,24(sp) + 510c: 6c42 ld s8,16(sp) + 510e: b715 j 5032 stream->error = 1; - 5124: 4785 li a5,1 - 5126: c41c sw a5,8(s0) + 5110: 4785 li a5,1 + 5112: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 5128: 40042823 sw zero,1040(s0) + 5114: 40042823 sw zero,1040(s0) while (bytes_written < total_bytes) - 512c: ed29e8e3 bltu s3,s2,4ffc - 5130: bf89 j 5082 + 5118: ed29e8e3 bltu s3,s2,4fe8 + 511c: bf89 j 506e stream->error = 1; - 5132: 4785 li a5,1 - 5134: c41c sw a5,8(s0) + 511e: 4785 li a5,1 + 5120: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 5136: 40042823 sw zero,1040(s0) + 5122: 40042823 sw zero,1040(s0) return EOF; - 513a: bddd j 5030 + 5126: bddd j 501c -000000000000513c : +0000000000005128 : if (!stream) - 513c: c925 beqz a0,51ac + 5128: c925 beqz a0,5198 { - 513e: 1101 addi sp,sp,-32 - 5140: e04a sd s2,0(sp) - 5142: 8932 mv s2,a2 + 512a: 1101 addi sp,sp,-32 + 512c: e04a sd s2,0(sp) + 512e: 8932 mv s2,a2 if (stream->buf_write_pos > 0) - 5144: 41052603 lw a2,1040(a0) + 5130: 41052603 lw a2,1040(a0) { - 5148: e822 sd s0,16(sp) - 514a: e426 sd s1,8(sp) - 514c: ec06 sd ra,24(sp) - 514e: 842a mv s0,a0 - 5150: 84ae mv s1,a1 + 5134: e822 sd s0,16(sp) + 5136: e426 sd s1,8(sp) + 5138: ec06 sd ra,24(sp) + 513a: 842a mv s0,a0 + 513c: 84ae mv s1,a1 if (stream->buf_write_pos > 0) - 5152: 02c04863 bgtz a2,5182 + 513e: 02c04863 bgtz a2,516e if (lseek(stream->fd, offset, whence) < 0) - 5156: 4008 lw a0,0(s0) + 5142: 4008 lw a0,0(s0) stream->buf_read_pos = 0; - 5158: 40042a23 sw zero,1044(s0) + 5144: 40042a23 sw zero,1044(s0) stream->buf_read_cnt = 0; - 515c: 40042c23 sw zero,1048(s0) + 5148: 40042c23 sw zero,1048(s0) stream->eof = 0; - 5160: 00042623 sw zero,12(s0) + 514c: 00042623 sw zero,12(s0) if (lseek(stream->fd, offset, whence) < 0) - 5164: 864a mv a2,s2 - 5166: 0004859b sext.w a1,s1 - 516a: 832fc0ef jal 119c - 516e: 87aa mv a5,a0 + 5150: 864a mv a2,s2 + 5152: 0004859b sext.w a1,s1 + 5156: 82afc0ef jal 1180 + 515a: 87aa mv a5,a0 return 0; - 5170: 4501 li a0,0 + 515c: 4501 li a0,0 if (lseek(stream->fd, offset, whence) < 0) - 5172: 0207c463 bltz a5,519a -} - 5176: 60e2 ld ra,24(sp) - 5178: 6442 ld s0,16(sp) - 517a: 64a2 ld s1,8(sp) - 517c: 6902 ld s2,0(sp) - 517e: 6105 addi sp,sp,32 - 5180: 8082 ret + 515e: 0207c463 bltz a5,5186 +} + 5162: 60e2 ld ra,24(sp) + 5164: 6442 ld s0,16(sp) + 5166: 64a2 ld s1,8(sp) + 5168: 6902 ld s2,0(sp) + 516a: 6105 addi sp,sp,32 + 516c: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 5182: 4108 lw a0,0(a0) - 5184: 01040593 addi a1,s0,16 - 5188: f85fb0ef jal 110c + 516e: 4108 lw a0,0(a0) + 5170: 01040593 addi a1,s0,16 + 5174: f7dfb0ef jal 10f0 if (ret < stream->buf_write_pos) - 518c: 41042783 lw a5,1040(s0) - 5190: 00f54963 blt a0,a5,51a2 + 5178: 41042783 lw a5,1040(s0) + 517c: 00f54963 blt a0,a5,518e stream->buf_write_pos = 0; - 5194: 40042823 sw zero,1040(s0) - 5198: bf7d j 5156 + 5180: 40042823 sw zero,1040(s0) + 5184: bf7d j 5142 stream->error = 1; - 519a: 4785 li a5,1 - 519c: c41c sw a5,8(s0) + 5186: 4785 li a5,1 + 5188: c41c sw a5,8(s0) return -1; - 519e: 557d li a0,-1 - 51a0: bfd9 j 5176 + 518a: 557d li a0,-1 + 518c: bfd9 j 5162 stream->error = 1; - 51a2: 4785 li a5,1 - 51a4: c41c sw a5,8(s0) + 518e: 4785 li a5,1 + 5190: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 51a6: 40042823 sw zero,1040(s0) + 5192: 40042823 sw zero,1040(s0) return EOF; - 51aa: b775 j 5156 + 5196: b775 j 5142 return -1; - 51ac: 557d li a0,-1 + 5198: 557d li a0,-1 } - 51ae: 8082 ret + 519a: 8082 ret -00000000000051b0 : +000000000000519c : if (!stream) - 51b0: c505 beqz a0,51d8 + 519c: c505 beqz a0,51c4 { - 51b2: 1141 addi sp,sp,-16 - 51b4: e022 sd s0,0(sp) - 51b6: 842a mv s0,a0 + 519e: 1141 addi sp,sp,-16 + 51a0: e022 sd s0,0(sp) + 51a2: 842a mv s0,a0 int64 ret = lseek(stream->fd, 0, SEEK_CUR); - 51b8: 4108 lw a0,0(a0) - 51ba: 4605 li a2,1 - 51bc: 4581 li a1,0 + 51a4: 4108 lw a0,0(a0) + 51a6: 4605 li a2,1 + 51a8: 4581 li a1,0 { - 51be: e406 sd ra,8(sp) + 51aa: e406 sd ra,8(sp) int64 ret = lseek(stream->fd, 0, SEEK_CUR); - 51c0: fddfb0ef jal 119c + 51ac: fd5fb0ef jal 1180 if (ret < 0) - 51c4: 00054663 bltz a0,51d0 + 51b0: 00054663 bltz a0,51bc } - 51c8: 60a2 ld ra,8(sp) - 51ca: 6402 ld s0,0(sp) - 51cc: 0141 addi sp,sp,16 - 51ce: 8082 ret + 51b4: 60a2 ld ra,8(sp) + 51b6: 6402 ld s0,0(sp) + 51b8: 0141 addi sp,sp,16 + 51ba: 8082 ret stream->error = 1; - 51d0: 4785 li a5,1 - 51d2: c41c sw a5,8(s0) + 51bc: 4785 li a5,1 + 51be: c41c sw a5,8(s0) return -1L; - 51d4: 557d li a0,-1 - 51d6: bfcd j 51c8 - 51d8: 557d li a0,-1 + 51c0: 557d li a0,-1 + 51c2: bfcd j 51b4 + 51c4: 557d li a0,-1 } - 51da: 8082 ret + 51c6: 8082 ret -00000000000051dc : +00000000000051c8 : if (stream) - 51dc: c915 beqz a0,5210 + 51c8: c915 beqz a0,51fc if (stream->buf_write_pos > 0) - 51de: 41052603 lw a2,1040(a0) + 51ca: 41052603 lw a2,1040(a0) { - 51e2: 1141 addi sp,sp,-16 - 51e4: e022 sd s0,0(sp) - 51e6: e406 sd ra,8(sp) - 51e8: 842a mv s0,a0 + 51ce: 1141 addi sp,sp,-16 + 51d0: e022 sd s0,0(sp) + 51d2: e406 sd ra,8(sp) + 51d4: 842a mv s0,a0 if (stream->buf_write_pos > 0) - 51ea: 02c04463 bgtz a2,5212 + 51d6: 02c04463 bgtz a2,51fe if (lseek(stream->fd, offset, whence) < 0) - 51ee: 4008 lw a0,0(s0) + 51da: 4008 lw a0,0(s0) stream->buf_read_pos = 0; - 51f0: 40042a23 sw zero,1044(s0) + 51dc: 40042a23 sw zero,1044(s0) stream->buf_read_cnt = 0; - 51f4: 40042c23 sw zero,1048(s0) + 51e0: 40042c23 sw zero,1048(s0) stream->eof = 0; - 51f8: 00042623 sw zero,12(s0) + 51e4: 00042623 sw zero,12(s0) if (lseek(stream->fd, offset, whence) < 0) - 51fc: 4601 li a2,0 - 51fe: 4581 li a1,0 - 5200: f9dfb0ef jal 119c + 51e8: 4601 li a2,0 + 51ea: 4581 li a1,0 + 51ec: f95fb0ef jal 1180 } - 5204: 60a2 ld ra,8(sp) + 51f0: 60a2 ld ra,8(sp) stream->error = 0; - 5206: 00042423 sw zero,8(s0) + 51f2: 00042423 sw zero,8(s0) } - 520a: 6402 ld s0,0(sp) - 520c: 0141 addi sp,sp,16 - 520e: 8082 ret - 5210: 8082 ret + 51f6: 6402 ld s0,0(sp) + 51f8: 0141 addi sp,sp,16 + 51fa: 8082 ret + 51fc: 8082 ret int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 5212: 4108 lw a0,0(a0) - 5214: 01040593 addi a1,s0,16 - 5218: ef5fb0ef jal 110c + 51fe: 4108 lw a0,0(a0) + 5200: 01040593 addi a1,s0,16 + 5204: eedfb0ef jal 10f0 if (ret < stream->buf_write_pos) - 521c: 41042783 lw a5,1040(s0) - 5220: 00f54563 blt a0,a5,522a + 5208: 41042783 lw a5,1040(s0) + 520c: 00f54563 blt a0,a5,5216 stream->buf_write_pos = 0; - 5224: 40042823 sw zero,1040(s0) - 5228: b7d9 j 51ee + 5210: 40042823 sw zero,1040(s0) + 5214: b7d9 j 51da stream->error = 1; - 522a: 4785 li a5,1 - 522c: c41c sw a5,8(s0) + 5216: 4785 li a5,1 + 5218: c41c sw a5,8(s0) stream->buf_write_pos = 0; - 522e: 40042823 sw zero,1040(s0) + 521a: 40042823 sw zero,1040(s0) return EOF; - 5232: bf75 j 51ee + 521e: bf75 j 51da -0000000000005234 : +0000000000005220 : return (stream) ? stream->eof : 1; - 5234: c119 beqz a0,523a - 5236: 4548 lw a0,12(a0) - 5238: 8082 ret - 523a: 4505 li a0,1 + 5220: c119 beqz a0,5226 + 5222: 4548 lw a0,12(a0) + 5224: 8082 ret + 5226: 4505 li a0,1 } - 523c: 8082 ret + 5228: 8082 ret -000000000000523e : +000000000000522a : return (stream) ? stream->error : 1; - 523e: c119 beqz a0,5244 - 5240: 4508 lw a0,8(a0) - 5242: 8082 ret - 5244: 4505 li a0,1 + 522a: c119 beqz a0,5230 + 522c: 4508 lw a0,8(a0) + 522e: 8082 ret + 5230: 4505 li a0,1 } - 5246: 8082 ret + 5232: 8082 ret -0000000000005248 : +0000000000005234 : if (stream) - 5248: c509 beqz a0,5252 + 5234: c509 beqz a0,523e stream->error = 0; - 524a: 00052423 sw zero,8(a0) + 5236: 00052423 sw zero,8(a0) stream->eof = 0; - 524e: 00052623 sw zero,12(a0) + 523a: 00052623 sw zero,12(a0) } - 5252: 8082 ret + 523e: 8082 ret -0000000000005254 : +0000000000005240 : if (!stream || c == EOF) - 5254: c19d beqz a1,527a - 5256: 57fd li a5,-1 - 5258: 02f50163 beq a0,a5,527a + 5240: c19d beqz a1,5266 + 5242: 57fd li a5,-1 + 5244: 02f50163 beq a0,a5,5266 if (stream->buf_read_pos > 0) - 525c: 4145a783 lw a5,1044(a1) - 5260: 00f05d63 blez a5,527a + 5248: 4145a783 lw a5,1044(a1) + 524c: 00f05d63 blez a5,5266 stream->buf_read_pos--; - 5264: fff7871b addiw a4,a5,-1 - 5268: 40e5aa23 sw a4,1044(a1) + 5250: fff7871b addiw a4,a5,-1 + 5254: 40e5aa23 sw a4,1044(a1) stream->buffer[stream->buf_read_pos] = (char)c; - 526c: 00e587b3 add a5,a1,a4 - 5270: 00a78823 sb a0,16(a5) + 5258: 00e587b3 add a5,a1,a4 + 525c: 00a78823 sb a0,16(a5) stream->eof = 0; - 5274: 0005a623 sw zero,12(a1) + 5260: 0005a623 sw zero,12(a1) return c; - 5278: 8082 ret + 5264: 8082 ret return EOF; - 527a: 557d li a0,-1 - 527c: 8082 ret + 5266: 557d li a0,-1 + 5268: 8082 ret -000000000000527e : +000000000000526a : return new_ptr; } /* String Conversion*/ unsigned long long strtoull(const char *nptr, char **endptr, int base) - 527e: 1141 addi sp,sp,-16 - 5280: e422 sd s0,8(sp) - 5282: 8eaa mv t4,a0 + 526a: 1141 addi sp,sp,-16 + 526c: e422 sd s0,8(sp) + 526e: 8eaa mv t4,a0 { const char *s = nptr; - 5284: 88aa mv a7,a0 + 5270: 88aa mv a7,a0 static inline int isdigit(int c) { return c >= '0' && c <= '9'; } static inline int islower(int c) { return c >= 'a' && c <= 'z'; } static inline int isupper(int c) { return c >= 'A' && c <= 'Z'; } static inline int isalpha(int c) { return islower(c) || isupper(c); } static inline int isalnum(int c) { return isalpha(c) || isdigit(c); } static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } - 5286: 02000313 li t1,32 - 528a: 4e11 li t3,4 + 5272: 02000313 li t1,32 + 5276: 4e11 li t3,4 return 0; } do { c = *s++; - 528c: 0008c783 lbu a5,0(a7) - 5290: 00188813 addi a6,a7,1 - 5294: ff77871b addiw a4,a5,-9 - 5298: 0ff77693 zext.b a3,a4 - 529c: 0007871b sext.w a4,a5 - 52a0: 04678363 beq a5,t1,52e6 - 52a4: 04de7163 bgeu t3,a3,52e6 + 5278: 0008c783 lbu a5,0(a7) + 527c: 00188813 addi a6,a7,1 + 5280: ff77871b addiw a4,a5,-9 + 5284: 0ff77693 zext.b a3,a4 + 5288: 0007871b sext.w a4,a5 + 528c: 04678363 beq a5,t1,52d2 + 5290: 04de7163 bgeu t3,a3,52d2 } while (isspace(c)); if (c == '-') - 52a8: 02d00793 li a5,45 - 52ac: 0ef70863 beq a4,a5,539c + 5294: 02d00793 li a5,45 + 5298: 0ef70863 beq a4,a5,5388 { neg = 1; c = *s++; } else if (c == '+') - 52b0: 02b00793 li a5,43 + 529c: 02b00793 li a5,43 int neg = 0, any, cutlim; - 52b4: 4381 li t2,0 + 52a0: 4381 li t2,0 else if (c == '+') - 52b6: 08f70c63 beq a4,a5,534e + 52a2: 08f70c63 beq a4,a5,533a { c = *s++; } if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 52ba: ea05 bnez a2,52ea - 52bc: 03000793 li a5,48 - 52c0: 0ef70463 beq a4,a5,53a8 - 52c4: 00ccd8b7 lui a7,0xccd - 52c8: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc3e8d> - 52cc: 08b2 slli a7,a7,0xc - 52ce: ccd88893 addi a7,a7,-819 - 52d2: 08b2 slli a7,a7,0xc - 52d4: ccd88893 addi a7,a7,-819 - 52d8: 08b6 slli a7,a7,0xd - 52da: 4415 li s0,5 - 52dc: 99988893 addi a7,a7,-1639 - 52e0: 42a9 li t0,10 + 52a6: ea05 bnez a2,52d6 + 52a8: 03000793 li a5,48 + 52ac: 0ef70463 beq a4,a5,5394 + 52b0: 00ccd8b7 lui a7,0xccd + 52b4: ccd88893 addi a7,a7,-819 # cccccd <_ZSt4cerr+0xcc3e5d> + 52b8: 08b2 slli a7,a7,0xc + 52ba: ccd88893 addi a7,a7,-819 + 52be: 08b2 slli a7,a7,0xc + 52c0: ccd88893 addi a7,a7,-819 + 52c4: 08b6 slli a7,a7,0xd + 52c6: 4415 li s0,5 + 52c8: 99988893 addi a7,a7,-1639 + 52cc: 42a9 li t0,10 c = s[1]; s += 2; base = 16; } if (base == 0) base = (c == '0' ? 8 : 10); - 52e2: 4629 li a2,10 - 52e4: a829 j 52fe + 52ce: 4629 li a2,10 + 52d0: a829 j 52ea unsigned long long strtoull(const char *nptr, char **endptr, int base) - 52e6: 88c2 mv a7,a6 - 52e8: b755 j 528c + 52d2: 88c2 mv a7,a6 + 52d4: b755 j 5278 if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 52ea: 47c1 li a5,16 - 52ec: 0cf60d63 beq a2,a5,53c6 + 52d6: 47c1 li a5,16 + 52d8: 0cf60d63 beq a2,a5,53b2 cutoff = ULLONG_MAX / (unsigned long long)base; - 52f0: 58fd li a7,-1 + 52dc: 58fd li a7,-1 cutlim = ULLONG_MAX % (unsigned long long)base; - 52f2: 02c8f433 remu s0,a7,a2 + 52de: 02c8f433 remu s0,a7,a2 cutoff = ULLONG_MAX / (unsigned long long)base; - 52f6: 82b2 mv t0,a2 - 52f8: 02c8d8b3 divu a7,a7,a2 + 52e2: 82b2 mv t0,a2 + 52e4: 02c8d8b3 divu a7,a7,a2 cutlim = ULLONG_MAX % (unsigned long long)base; - 52fc: 2401 sext.w s0,s0 + 52e8: 2401 sext.w s0,s0 for (acc = 0, any = 0;; c = *s++) - 52fe: 4301 li t1,0 - 5300: 4501 li a0,0 + 52ea: 4301 li t1,0 + 52ec: 4501 li a0,0 { if (isdigit(c)) - 5302: 4e25 li t3,9 + 52ee: 4e25 li t3,9 static inline int isalpha(int c) { return islower(c) || isupper(c); } - 5304: 4fe5 li t6,25 + 52f0: 4fe5 li t6,25 break; if (c >= base) break; if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 5306: 5f7d li t5,-1 + 52f2: 5f7d li t5,-1 if (isdigit(c)) - 5308: fd07079b addiw a5,a4,-48 + 52f4: fd07079b addiw a5,a4,-48 static inline int isdigit(int c) { return c >= '0' && c <= '9'; } - 530c: 0007069b sext.w a3,a4 - 5310: 00fe7e63 bgeu t3,a5,532c + 52f8: 0007069b sext.w a3,a4 + 52fc: 00fe7e63 bgeu t3,a5,5318 static inline int isalpha(int c) { return islower(c) || isupper(c); } - 5314: f9f6879b addiw a5,a3,-97 - 5318: 04fff063 bgeu t6,a5,5358 - 531c: fbf6869b addiw a3,a3,-65 - 5320: 04dfe163 bltu t6,a3,5362 + 5300: f9f6879b addiw a5,a3,-97 + 5304: 04fff063 bgeu t6,a5,5344 + 5308: fbf6869b addiw a3,a3,-65 + 530c: 04dfe163 bltu t6,a3,534e c -= isupper(c) ? 'A' - 10 : 'a' - 10; - 5324: 03700793 li a5,55 - 5328: 40f707bb subw a5,a4,a5 + 5310: 03700793 li a5,55 + 5314: 40f707bb subw a5,a4,a5 if (c >= base) - 532c: 02c7db63 bge a5,a2,5362 + 5318: 02c7db63 bge a5,a2,534e if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 5330: 01e30b63 beq t1,t5,5346 + 531c: 01e30b63 beq t1,t5,5332 any = -1; - 5334: 537d li t1,-1 + 5320: 537d li t1,-1 if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 5336: 00a8e863 bltu a7,a0,5346 - 533a: 05150e63 beq a0,a7,5396 + 5322: 00a8e863 bltu a7,a0,5332 + 5326: 05150e63 beq a0,a7,5382 else { any = 1; - 533e: 4305 li t1,1 + 532a: 4305 li t1,1 acc *= base; - 5340: 02550533 mul a0,a0,t0 + 532c: 02550533 mul a0,a0,t0 acc += c; - 5344: 953e add a0,a0,a5 + 5330: 953e add a0,a0,a5 for (acc = 0, any = 0;; c = *s++) - 5346: 0805 addi a6,a6,1 - 5348: fff84703 lbu a4,-1(a6) + 5332: 0805 addi a6,a6,1 + 5334: fff84703 lbu a4,-1(a6) if (isdigit(c)) - 534c: bf75 j 5308 + 5338: bf75 j 52f4 c = *s++; - 534e: 00084703 lbu a4,0(a6) - 5352: 00288813 addi a6,a7,2 - 5356: b795 j 52ba + 533a: 00084703 lbu a4,0(a6) + 533e: 00288813 addi a6,a7,2 + 5342: b795 j 52a6 c -= isupper(c) ? 'A' - 10 : 'a' - 10; - 5358: 05700793 li a5,87 - 535c: 40f707bb subw a5,a4,a5 - 5360: b7f1 j 532c + 5344: 05700793 li a5,87 + 5348: 40f707bb subw a5,a4,a5 + 534c: b7f1 j 5318 } } if (any < 0) - 5362: 57fd li a5,-1 - 5364: 00f30e63 beq t1,a5,5380 + 534e: 57fd li a5,-1 + 5350: 00f30e63 beq t1,a5,536c { acc = ULLONG_MAX; errno = ERANGE; } else if (neg) - 5368: 00038463 beqz t2,5370 + 5354: 00038463 beqz t2,535c acc = -acc; - 536c: 40a00533 neg a0,a0 + 5358: 40a00533 neg a0,a0 if (endptr != 0) - 5370: c589 beqz a1,537a + 535c: c589 beqz a1,5366 *endptr = (char *)(any ? s - 1 : nptr); - 5372: 00031f63 bnez t1,5390 - 5376: 01d5b023 sd t4,0(a1) + 535e: 00031f63 bnez t1,537c + 5362: 01d5b023 sd t4,0(a1) return acc; } - 537a: 6422 ld s0,8(sp) - 537c: 0141 addi sp,sp,16 - 537e: 8082 ret + 5366: 6422 ld s0,8(sp) + 5368: 0141 addi sp,sp,16 + 536a: 8082 ret errno = ERANGE; - 5380: 02200793 li a5,34 - 5384: 00004717 auipc a4,0x4 - 5388: 98f72223 sw a5,-1660(a4) # 8d08 + 536c: 02200793 li a5,34 + 5370: 00004717 auipc a4,0x4 + 5374: 9cf72423 sw a5,-1592(a4) # 8d38 acc = ULLONG_MAX; - 538c: 557d li a0,-1 + 5378: 557d li a0,-1 if (endptr != 0) - 538e: d5f5 beqz a1,537a + 537a: d5f5 beqz a1,5366 *endptr = (char *)(any ? s - 1 : nptr); - 5390: fff80e93 addi t4,a6,-1 - 5394: b7cd j 5376 + 537c: fff80e93 addi t4,a6,-1 + 5380: b7cd j 5362 if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 5396: faf448e3 blt s0,a5,5346 - 539a: b755 j 533e + 5382: faf448e3 blt s0,a5,5332 + 5386: b755 j 532a c = *s++; - 539c: 00084703 lbu a4,0(a6) + 5388: 00084703 lbu a4,0(a6) neg = 1; - 53a0: 4385 li t2,1 + 538c: 4385 li t2,1 c = *s++; - 53a2: 00288813 addi a6,a7,2 - 53a6: bf11 j 52ba + 538e: 00288813 addi a6,a7,2 + 5392: bf11 j 52a6 if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 53a8: 00084783 lbu a5,0(a6) - 53ac: 05800693 li a3,88 - 53b0: 0df7f793 andi a5,a5,223 - 53b4: 02d78b63 beq a5,a3,53ea - 53b8: 58fd li a7,-1 - 53ba: 441d li s0,7 - 53bc: 0038d893 srli a7,a7,0x3 - 53c0: 42a1 li t0,8 + 5394: 00084783 lbu a5,0(a6) + 5398: 05800693 li a3,88 + 539c: 0df7f793 andi a5,a5,223 + 53a0: 02d78b63 beq a5,a3,53d6 + 53a4: 58fd li a7,-1 + 53a6: 441d li s0,7 + 53a8: 0038d893 srli a7,a7,0x3 + 53ac: 42a1 li t0,8 base = (c == '0' ? 8 : 10); - 53c2: 4621 li a2,8 - 53c4: bf2d j 52fe + 53ae: 4621 li a2,8 + 53b0: bf2d j 52ea if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 53c6: 03000793 li a5,48 - 53ca: 00f70863 beq a4,a5,53da - 53ce: 58fd li a7,-1 - 53d0: 443d li s0,15 - 53d2: 0048d893 srli a7,a7,0x4 - 53d6: 42c1 li t0,16 - 53d8: b71d j 52fe - 53da: 00084783 lbu a5,0(a6) - 53de: 05800693 li a3,88 - 53e2: 0df7f793 andi a5,a5,223 - 53e6: fed794e3 bne a5,a3,53ce + 53b2: 03000793 li a5,48 + 53b6: 00f70863 beq a4,a5,53c6 + 53ba: 58fd li a7,-1 + 53bc: 443d li s0,15 + 53be: 0048d893 srli a7,a7,0x4 + 53c2: 42c1 li t0,16 + 53c4: b71d j 52ea + 53c6: 00084783 lbu a5,0(a6) + 53ca: 05800693 li a3,88 + 53ce: 0df7f793 andi a5,a5,223 + 53d2: fed794e3 bne a5,a3,53ba s += 2; - 53ea: 58fd li a7,-1 + 53d6: 58fd li a7,-1 c = s[1]; - 53ec: 00184703 lbu a4,1(a6) + 53d8: 00184703 lbu a4,1(a6) s += 2; - 53f0: 443d li s0,15 - 53f2: 0809 addi a6,a6,2 - 53f4: 0048d893 srli a7,a7,0x4 - 53f8: 42c1 li t0,16 + 53dc: 443d li s0,15 + 53de: 0809 addi a6,a6,2 + 53e0: 0048d893 srli a7,a7,0x4 + 53e4: 42c1 li t0,16 base = 16; - 53fa: 4641 li a2,16 - 53fc: b709 j 52fe + 53e6: 4641 li a2,16 + 53e8: b709 j 52ea -00000000000053fe : +00000000000053ea : if (__atexit_func_count >= ATEXIT_MAX) - 53fe: 00004717 auipc a4,0x4 - 5402: 90a70713 addi a4,a4,-1782 # 8d08 - 5406: 435c lw a5,4(a4) - 5408: 46fd li a3,31 - 540a: 00f6ca63 blt a3,a5,541e + 53ea: 00004717 auipc a4,0x4 + 53ee: 94e70713 addi a4,a4,-1714 # 8d38 + 53f2: 435c lw a5,4(a4) + 53f4: 46fd li a3,31 + 53f6: 00f6ca63 blt a3,a5,540a __atexit_funcs[__atexit_func_count++] = function; - 540e: 00379693 slli a3,a5,0x3 - 5412: 96ba add a3,a3,a4 - 5414: 2785 addiw a5,a5,1 - 5416: e688 sd a0,8(a3) - 5418: c35c sw a5,4(a4) + 53fa: 00379693 slli a3,a5,0x3 + 53fe: 96ba add a3,a3,a4 + 5400: 2785 addiw a5,a5,1 + 5402: e688 sd a0,8(a3) + 5404: c35c sw a5,4(a4) return 0; - 541a: 4501 li a0,0 - 541c: 8082 ret + 5406: 4501 li a0,0 + 5408: 8082 ret return -1; - 541e: 557d li a0,-1 + 540a: 557d li a0,-1 } - 5420: 8082 ret + 540c: 8082 ret -0000000000005422 : +000000000000540e : { - 5422: 1101 addi sp,sp,-32 - 5424: e822 sd s0,16(sp) + 540e: 1101 addi sp,sp,-32 + 5410: e822 sd s0,16(sp) while (__atexit_func_count > 0) - 5426: 00004417 auipc s0,0x4 - 542a: 8e240413 addi s0,s0,-1822 # 8d08 - 542e: 405c lw a5,4(s0) + 5412: 00004417 auipc s0,0x4 + 5416: 92640413 addi s0,s0,-1754 # 8d38 + 541a: 405c lw a5,4(s0) { - 5430: e426 sd s1,8(sp) - 5432: ec06 sd ra,24(sp) - 5434: 84aa mv s1,a0 + 541c: e426 sd s1,8(sp) + 541e: ec06 sd ra,24(sp) + 5420: 84aa mv s1,a0 while (__atexit_func_count > 0) - 5436: 00f05d63 blez a5,5450 + 5422: 00f05d63 blez a5,543c (__atexit_funcs[--__atexit_func_count])(); - 543a: fff7871b addiw a4,a5,-1 - 543e: 87ba mv a5,a4 - 5440: 070e slli a4,a4,0x3 - 5442: 9722 add a4,a4,s0 - 5444: 6718 ld a4,8(a4) - 5446: c05c sw a5,4(s0) - 5448: 9702 jalr a4 + 5426: fff7871b addiw a4,a5,-1 + 542a: 87ba mv a5,a4 + 542c: 070e slli a4,a4,0x3 + 542e: 9722 add a4,a4,s0 + 5430: 6718 ld a4,8(a4) + 5432: c05c sw a5,4(s0) + 5434: 9702 jalr a4 while (__atexit_func_count > 0) - 544a: 405c lw a5,4(s0) - 544c: fef047e3 bgtz a5,543a + 5436: 405c lw a5,4(s0) + 5438: fef047e3 bgtz a5,5426 sys_exit(status); - 5450: 8526 mv a0,s1 - 5452: c93fb0ef jal 10e4 + 543c: 8526 mv a0,s1 + 543e: c8bfb0ef jal 10c8 while (1) - 5456: a001 j 5456 + 5442: a001 j 5442 -0000000000005458 : +0000000000005444 : { - 5458: 1141 addi sp,sp,-16 + 5444: 1141 addi sp,sp,-16 exit(127); - 545a: 07f00513 li a0,127 + 5446: 07f00513 li a0,127 { - 545e: e406 sd ra,8(sp) + 544a: e406 sd ra,8(sp) exit(127); - 5460: fc3ff0ef jal 5422 + 544c: fc3ff0ef jal 540e -0000000000005464 : +0000000000005450 : } - 5464: 4501 li a0,0 - 5466: 8082 ret + 5450: 4501 li a0,0 + 5452: 8082 ret -0000000000005468 : +0000000000005454 : } - 5468: 557d li a0,-1 - 546a: 8082 ret + 5454: 557d li a0,-1 + 5456: 8082 ret -000000000000546c : +0000000000005458 : if (!ptr) - 546c: c121 beqz a0,54ac + 5458: c121 beqz a0,5498 for (p = freep; !(bp > p && bp < p->next); p = p->next) - 546e: 00004617 auipc a2,0x4 - 5472: 89a60613 addi a2,a2,-1894 # 8d08 - 5476: 10863783 ld a5,264(a2) + 545a: 00004617 auipc a2,0x4 + 545e: 8de60613 addi a2,a2,-1826 # 8d38 + 5462: 10863783 ld a5,264(a2) bp = (header_t *)ptr - 1; - 547a: ff050693 addi a3,a0,-16 + 5466: ff050693 addi a3,a0,-16 if (p >= p->next && (bp > p || bp < p->next)) - 547e: 6798 ld a4,8(a5) + 546a: 6798 ld a4,8(a5) for (p = freep; !(bp > p && bp < p->next); p = p->next) - 5480: 02d7f763 bgeu a5,a3,54ae - 5484: 00e6e463 bltu a3,a4,548c + 546c: 02d7f763 bgeu a5,a3,549a + 5470: 00e6e463 bltu a3,a4,5478 if (p >= p->next && (bp > p || bp < p->next)) - 5488: 02e7e763 bltu a5,a4,54b6 + 5474: 02e7e763 bltu a5,a4,54a2 if ((char *)bp + bp->size == (char *)p->next) - 548c: ff053583 ld a1,-16(a0) - 5490: 00b68833 add a6,a3,a1 - 5494: 03070363 beq a4,a6,54ba + 5478: ff053583 ld a1,-16(a0) + 547c: 00b68833 add a6,a3,a1 + 5480: 03070363 beq a4,a6,54a6 if ((char *)p + p->size == (char *)bp) - 5498: 638c ld a1,0(a5) - 549a: fee53c23 sd a4,-8(a0) - 549e: 00b78833 add a6,a5,a1 - 54a2: 03068963 beq a3,a6,54d4 - 54a6: e794 sd a3,8(a5) + 5484: 638c ld a1,0(a5) + 5486: fee53c23 sd a4,-8(a0) + 548a: 00b78833 add a6,a5,a1 + 548e: 03068963 beq a3,a6,54c0 + 5492: e794 sd a3,8(a5) freep = p; - 54a8: 10f63423 sd a5,264(a2) + 5494: 10f63423 sd a5,264(a2) } - 54ac: 8082 ret + 5498: 8082 ret if (p >= p->next && (bp > p || bp < p->next)) - 54ae: 00e7e463 bltu a5,a4,54b6 - 54b2: fce6ede3 bltu a3,a4,548c + 549a: 00e7e463 bltu a5,a4,54a2 + 549e: fce6ede3 bltu a3,a4,5478 { - 54b6: 87ba mv a5,a4 - 54b8: b7d9 j 547e + 54a2: 87ba mv a5,a4 + 54a4: b7d9 j 546a bp->size += p->next->size; - 54ba: 00073803 ld a6,0(a4) + 54a6: 00073803 ld a6,0(a4) bp->next = p->next->next; - 54be: 6718 ld a4,8(a4) + 54aa: 6718 ld a4,8(a4) bp->size += p->next->size; - 54c0: 95c2 add a1,a1,a6 - 54c2: feb53823 sd a1,-16(a0) + 54ac: 95c2 add a1,a1,a6 + 54ae: feb53823 sd a1,-16(a0) if ((char *)p + p->size == (char *)bp) - 54c6: 638c ld a1,0(a5) - 54c8: fee53c23 sd a4,-8(a0) - 54cc: 00b78833 add a6,a5,a1 - 54d0: fd069be3 bne a3,a6,54a6 + 54b2: 638c ld a1,0(a5) + 54b4: fee53c23 sd a4,-8(a0) + 54b8: 00b78833 add a6,a5,a1 + 54bc: fd069be3 bne a3,a6,5492 p->size += bp->size; - 54d4: ff053503 ld a0,-16(a0) + 54c0: ff053503 ld a0,-16(a0) p->next = bp->next; - 54d8: 86ba mv a3,a4 + 54c4: 86ba mv a3,a4 p->size += bp->size; - 54da: 00b50733 add a4,a0,a1 - 54de: e398 sd a4,0(a5) + 54c6: 00b50733 add a4,a0,a1 + 54ca: e398 sd a4,0(a5) p->next = bp->next; - 54e0: b7d9 j 54a6 + 54cc: b7d9 j 5492 -00000000000054e2 : +00000000000054ce : if (size == 0) - 54e2: c169 beqz a0,55a4 + 54ce: c169 beqz a0,5590 { - 54e4: 7179 addi sp,sp,-48 - 54e6: ec26 sd s1,24(sp) + 54d0: 7179 addi sp,sp,-48 + 54d2: ec26 sd s1,24(sp) if ((prevp = freep) == NULL) - 54e8: 00004497 auipc s1,0x4 - 54ec: 82048493 addi s1,s1,-2016 # 8d08 - 54f0: 1084b783 ld a5,264(s1) + 54d4: 00004497 auipc s1,0x4 + 54d8: 86448493 addi s1,s1,-1948 # 8d38 + 54dc: 1084b783 ld a5,264(s1) { - 54f4: f022 sd s0,32(sp) + 54e0: f022 sd s0,32(sp) size = ALIGN(size + sizeof(header_t)); - 54f6: 057d addi a0,a0,31 + 54e2: 057d addi a0,a0,31 { - 54f8: f406 sd ra,40(sp) + 54e4: f406 sd ra,40(sp) size = ALIGN(size + sizeof(header_t)); - 54fa: ff057413 andi s0,a0,-16 + 54e6: ff057413 andi s0,a0,-16 if ((prevp = freep) == NULL) - 54fe: c3d1 beqz a5,5582 + 54ea: c3d1 beqz a5,556e for (p = prevp->next;; prevp = p, p = p->next) - 5500: 6788 ld a0,8(a5) + 54ec: 6788 ld a0,8(a5) if (p->size >= size) - 5502: 6118 ld a4,0(a0) - 5504: 06877163 bgeu a4,s0,5566 - 5508: e44e sd s3,8(sp) - 550a: e052 sd s4,0(sp) - 550c: e84a sd s2,16(sp) + 54ee: 6118 ld a4,0(a0) + 54f0: 06877163 bgeu a4,s0,5552 + 54f4: e44e sd s3,8(sp) + 54f6: e052 sd s4,0(sp) + 54f8: e84a sd s2,16(sp) if (nu < 4096) - 550e: 6a05 lui s4,0x1 + 54fa: 6a05 lui s4,0x1 if (cp == (void *)-1) - 5510: 59fd li s3,-1 - 5512: a029 j 551c + 54fc: 59fd li s3,-1 + 54fe: a029 j 5508 for (p = prevp->next;; prevp = p, p = p->next) - 5514: 6788 ld a0,8(a5) + 5500: 6788 ld a0,8(a5) if (p->size >= size) - 5516: 6118 ld a4,0(a0) - 5518: 04877463 bgeu a4,s0,5560 + 5502: 6118 ld a4,0(a0) + 5504: 04877463 bgeu a4,s0,554c if (p == freep) - 551c: 1084b703 ld a4,264(s1) - 5520: 87aa mv a5,a0 - 5522: fee519e3 bne a0,a4,5514 + 5508: 1084b703 ld a4,264(s1) + 550c: 87aa mv a5,a0 + 550e: fee519e3 bne a0,a4,5500 if (nu < 4096) - 5526: 8922 mv s2,s0 - 5528: 01447363 bgeu s0,s4,552e - 552c: 6905 lui s2,0x1 + 5512: 8922 mv s2,s0 + 5514: 01447363 bgeu s0,s4,551a + 5518: 6905 lui s2,0x1 cp = (char *)sbrk(nu); - 552e: 854a mv a0,s2 - 5530: c45fb0ef jal 1174 - 5534: 87aa mv a5,a0 + 551a: 854a mv a0,s2 + 551c: c3dfb0ef jal 1158 + 5520: 87aa mv a5,a0 free((void *)(up + 1)); - 5536: 0541 addi a0,a0,16 + 5522: 0541 addi a0,a0,16 if (cp == (void *)-1) - 5538: 01378963 beq a5,s3,554a + 5524: 01378963 beq a5,s3,5536 up->size = nu; - 553c: 0127b023 sd s2,0(a5) + 5528: 0127b023 sd s2,0(a5) free((void *)(up + 1)); - 5540: f2dff0ef jal 546c + 552c: f2dff0ef jal 5458 return freep; - 5544: 1084b783 ld a5,264(s1) + 5530: 1084b783 ld a5,264(s1) if ((p = morecore(size)) == NULL) - 5548: f7f1 bnez a5,5514 + 5534: f7f1 bnez a5,5500 } - 554a: 70a2 ld ra,40(sp) - 554c: 7402 ld s0,32(sp) + 5536: 70a2 ld ra,40(sp) + 5538: 7402 ld s0,32(sp) errno = ENOMEM; - 554e: 47b1 li a5,12 - 5550: c09c sw a5,0(s1) + 553a: 47b1 li a5,12 + 553c: c09c sw a5,0(s1) return NULL; - 5552: 6942 ld s2,16(sp) - 5554: 69a2 ld s3,8(sp) - 5556: 6a02 ld s4,0(sp) + 553e: 6942 ld s2,16(sp) + 5540: 69a2 ld s3,8(sp) + 5542: 6a02 ld s4,0(sp) } - 5558: 64e2 ld s1,24(sp) + 5544: 64e2 ld s1,24(sp) return NULL; - 555a: 4501 li a0,0 + 5546: 4501 li a0,0 } - 555c: 6145 addi sp,sp,48 - 555e: 8082 ret - 5560: 6942 ld s2,16(sp) - 5562: 69a2 ld s3,8(sp) - 5564: 6a02 ld s4,0(sp) + 5548: 6145 addi sp,sp,48 + 554a: 8082 ret + 554c: 6942 ld s2,16(sp) + 554e: 69a2 ld s3,8(sp) + 5550: 6a02 ld s4,0(sp) if (p->size == size) - 5566: 02e40c63 beq s0,a4,559e + 5552: 02e40c63 beq s0,a4,558a p->size -= size; - 556a: 8f01 sub a4,a4,s0 - 556c: e118 sd a4,0(a0) + 5556: 8f01 sub a4,a4,s0 + 5558: e118 sd a4,0(a0) p = (header_t *)((char *)p + p->size); - 556e: 953a add a0,a0,a4 + 555a: 953a add a0,a0,a4 p->size = size; - 5570: e100 sd s0,0(a0) + 555c: e100 sd s0,0(a0) } - 5572: 70a2 ld ra,40(sp) - 5574: 7402 ld s0,32(sp) + 555e: 70a2 ld ra,40(sp) + 5560: 7402 ld s0,32(sp) freep = prevp; - 5576: 10f4b423 sd a5,264(s1) + 5562: 10f4b423 sd a5,264(s1) return (void *)(p + 1); - 557a: 0541 addi a0,a0,16 + 5566: 0541 addi a0,a0,16 } - 557c: 64e2 ld s1,24(sp) - 557e: 6145 addi sp,sp,48 - 5580: 8082 ret + 5568: 64e2 ld s1,24(sp) + 556a: 6145 addi sp,sp,48 + 556c: 8082 ret base.next = freep = prevp = &base; - 5582: 00004517 auipc a0,0x4 - 5586: 89650513 addi a0,a0,-1898 # 8e18 - 558a: 10a4b423 sd a0,264(s1) - 558e: 10a4bc23 sd a0,280(s1) + 556e: 00004517 auipc a0,0x4 + 5572: 8da50513 addi a0,a0,-1830 # 8e48 + 5576: 10a4b423 sd a0,264(s1) + 557a: 10a4bc23 sd a0,280(s1) base.size = 0; - 5592: 00004797 auipc a5,0x4 - 5596: 8807b323 sd zero,-1914(a5) # 8e18 + 557e: 00004797 auipc a5,0x4 + 5582: 8c07b523 sd zero,-1846(a5) # 8e48 if (p->size >= size) - 559a: f43d bnez s0,5508 + 5586: f43d bnez s0,54f4 base.next = freep = prevp = &base; - 559c: 87aa mv a5,a0 + 5588: 87aa mv a5,a0 prevp->next = p->next; - 559e: 6518 ld a4,8(a0) - 55a0: e798 sd a4,8(a5) - 55a2: bfc1 j 5572 + 558a: 6518 ld a4,8(a0) + 558c: e798 sd a4,8(a5) + 558e: bfc1 j 555e return NULL; - 55a4: 4501 li a0,0 + 5590: 4501 li a0,0 } - 55a6: 8082 ret + 5592: 8082 ret -00000000000055a8 : +0000000000005594 : if (__builtin_mul_overflow(nmemb, size, &total)) - 55a8: 02b537b3 mulhu a5,a0,a1 + 5594: 02b537b3 mulhu a5,a0,a1 { - 55ac: 1101 addi sp,sp,-32 - 55ae: e822 sd s0,16(sp) - 55b0: ec06 sd ra,24(sp) - 55b2: e426 sd s1,8(sp) + 5598: 1101 addi sp,sp,-32 + 559a: e822 sd s0,16(sp) + 559c: ec06 sd ra,24(sp) + 559e: e426 sd s1,8(sp) if (__builtin_mul_overflow(nmemb, size, &total)) - 55b4: 02b50433 mul s0,a0,a1 - 55b8: e385 bnez a5,55d8 + 55a0: 02b50433 mul s0,a0,a1 + 55a4: e385 bnez a5,55c4 void *p = malloc(total); - 55ba: 8522 mv a0,s0 - 55bc: f27ff0ef jal 54e2 - 55c0: 84aa mv s1,a0 + 55a6: 8522 mv a0,s0 + 55a8: f27ff0ef jal 54ce + 55ac: 84aa mv s1,a0 if (p) - 55c2: c509 beqz a0,55cc + 55ae: c509 beqz a0,55b8 memset(p, 0, total); - 55c4: 8622 mv a2,s0 - 55c6: 4581 li a1,0 - 55c8: 524000ef jal 5aec -} - 55cc: 60e2 ld ra,24(sp) - 55ce: 6442 ld s0,16(sp) - 55d0: 8526 mv a0,s1 - 55d2: 64a2 ld s1,8(sp) - 55d4: 6105 addi sp,sp,32 - 55d6: 8082 ret - 55d8: 60e2 ld ra,24(sp) - 55da: 6442 ld s0,16(sp) + 55b0: 8622 mv a2,s0 + 55b2: 4581 li a1,0 + 55b4: 524000ef jal 5ad8 +} + 55b8: 60e2 ld ra,24(sp) + 55ba: 6442 ld s0,16(sp) + 55bc: 8526 mv a0,s1 + 55be: 64a2 ld s1,8(sp) + 55c0: 6105 addi sp,sp,32 + 55c2: 8082 ret + 55c4: 60e2 ld ra,24(sp) + 55c6: 6442 ld s0,16(sp) errno = ENOMEM; - 55dc: 47b1 li a5,12 + 55c8: 47b1 li a5,12 return NULL; - 55de: 4481 li s1,0 + 55ca: 4481 li s1,0 errno = ENOMEM; - 55e0: 00003717 auipc a4,0x3 - 55e4: 72f72423 sw a5,1832(a4) # 8d08 + 55cc: 00003717 auipc a4,0x3 + 55d0: 76f72623 sw a5,1900(a4) # 8d38 } - 55e8: 8526 mv a0,s1 - 55ea: 64a2 ld s1,8(sp) - 55ec: 6105 addi sp,sp,32 - 55ee: 8082 ret + 55d4: 8526 mv a0,s1 + 55d6: 64a2 ld s1,8(sp) + 55d8: 6105 addi sp,sp,32 + 55da: 8082 ret -00000000000055f0 : +00000000000055dc : if (!ptr) - 55f0: c929 beqz a0,5642 + 55dc: c929 beqz a0,562e { - 55f2: 1101 addi sp,sp,-32 - 55f4: ec06 sd ra,24(sp) - 55f6: e426 sd s1,8(sp) + 55de: 1101 addi sp,sp,-32 + 55e0: ec06 sd ra,24(sp) + 55e2: e426 sd s1,8(sp) if (size == 0) - 55f8: c5b9 beqz a1,5646 + 55e4: c5b9 beqz a1,5632 if (bp->size >= new_size) - 55fa: ff053703 ld a4,-16(a0) + 55e6: ff053703 ld a4,-16(a0) size_t new_size = ALIGN(size + sizeof(header_t)); - 55fe: 01f58793 addi a5,a1,31 - 5602: e822 sd s0,16(sp) - 5604: 9bc1 andi a5,a5,-16 - 5606: 842a mv s0,a0 + 55ea: 01f58793 addi a5,a1,31 + 55ee: e822 sd s0,16(sp) + 55f0: 9bc1 andi a5,a5,-16 + 55f2: 842a mv s0,a0 return ptr; - 5608: 84aa mv s1,a0 + 55f4: 84aa mv s1,a0 if (bp->size >= new_size) - 560a: 00f76863 bltu a4,a5,561a - 560e: 6442 ld s0,16(sp) -} - 5610: 60e2 ld ra,24(sp) - 5612: 8526 mv a0,s1 - 5614: 64a2 ld s1,8(sp) - 5616: 6105 addi sp,sp,32 - 5618: 8082 ret + 55f6: 00f76863 bltu a4,a5,5606 + 55fa: 6442 ld s0,16(sp) +} + 55fc: 60e2 ld ra,24(sp) + 55fe: 8526 mv a0,s1 + 5600: 64a2 ld s1,8(sp) + 5602: 6105 addi sp,sp,32 + 5604: 8082 ret void *new_ptr = malloc(size); - 561a: 852e mv a0,a1 - 561c: ec7ff0ef jal 54e2 - 5620: 84aa mv s1,a0 + 5606: 852e mv a0,a1 + 5608: ec7ff0ef jal 54ce + 560c: 84aa mv s1,a0 if (!new_ptr) - 5622: d575 beqz a0,560e + 560e: d575 beqz a0,55fa memcpy(new_ptr, ptr, bp->size - sizeof(header_t)); - 5624: ff043603 ld a2,-16(s0) - 5628: 85a2 mv a1,s0 - 562a: 1641 addi a2,a2,-16 - 562c: 514000ef jal 5b40 + 5610: ff043603 ld a2,-16(s0) + 5614: 85a2 mv a1,s0 + 5616: 1641 addi a2,a2,-16 + 5618: 514000ef jal 5b2c free(ptr); - 5630: 8522 mv a0,s0 - 5632: e3bff0ef jal 546c + 561c: 8522 mv a0,s0 + 561e: e3bff0ef jal 5458 } - 5636: 60e2 ld ra,24(sp) + 5622: 60e2 ld ra,24(sp) free(ptr); - 5638: 6442 ld s0,16(sp) + 5624: 6442 ld s0,16(sp) } - 563a: 8526 mv a0,s1 - 563c: 64a2 ld s1,8(sp) - 563e: 6105 addi sp,sp,32 - 5640: 8082 ret + 5626: 8526 mv a0,s1 + 5628: 64a2 ld s1,8(sp) + 562a: 6105 addi sp,sp,32 + 562c: 8082 ret return malloc(size); - 5642: 852e mv a0,a1 - 5644: bd79 j 54e2 + 562e: 852e mv a0,a1 + 5630: bd79 j 54ce free(ptr); - 5646: e27ff0ef jal 546c + 5632: e27ff0ef jal 5458 return NULL; - 564a: 4481 li s1,0 - 564c: b7d1 j 5610 + 5636: 4481 li s1,0 + 5638: b7d1 j 55fc -000000000000564e : +000000000000563a : if (base < 0 || base == 1 || base > 36) - 564e: 02400813 li a6,36 + 563a: 02400813 li a6,36 { - 5652: 86aa mv a3,a0 - 5654: 872e mv a4,a1 + 563e: 86aa mv a3,a0 + 5640: 872e mv a4,a1 if (base < 0 || base == 1 || base > 36) - 5656: 00c86663 bltu a6,a2,5662 - 565a: 4805 li a6,1 - 565c: 01060363 beq a2,a6,5662 - 5660: b939 j 527e + 5642: 00c86663 bltu a6,a2,564e + 5646: 4805 li a6,1 + 5648: 01060363 beq a2,a6,564e + 564c: b939 j 526a if (endptr) - 5662: c311 beqz a4,5666 + 564e: c311 beqz a4,5652 *endptr = (char *)nptr; - 5664: e314 sd a3,0(a4) + 5650: e314 sd a3,0(a4) errno = 0; /* EINVAL */ - 5666: 00003797 auipc a5,0x3 - 566a: 6a07a123 sw zero,1698(a5) # 8d08 + 5652: 00003797 auipc a5,0x3 + 5656: 6e07a323 sw zero,1766(a5) # 8d38 } - 566e: 4501 li a0,0 - 5670: 8082 ret + 565a: 4501 li a0,0 + 565c: 8082 ret -0000000000005672 : +000000000000565e : long long strtoll(const char *nptr, char **endptr, int base) { - 5672: 1141 addi sp,sp,-16 - 5674: e406 sd ra,8(sp) - 5676: e022 sd s0,0(sp) + 565e: 1141 addi sp,sp,-16 + 5660: e406 sd ra,8(sp) + 5662: e022 sd s0,0(sp) const char *s = nptr; - 5678: 86aa mv a3,a0 + 5664: 86aa mv a3,a0 static inline int isspace(int c) { return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; } - 567a: 02000813 li a6,32 - 567e: 4891 li a7,4 + 5666: 02000813 li a6,32 + 566a: 4891 li a7,4 unsigned long long acc; int c, neg = 0; do { c = *s++; - 5680: 0006c783 lbu a5,0(a3) - 5684: 0685 addi a3,a3,1 - 5686: ff77871b addiw a4,a5,-9 - 568a: 0ff77713 zext.b a4,a4 - 568e: 0007841b sext.w s0,a5 - 5692: ff0787e3 beq a5,a6,5680 - 5696: fee8f5e3 bgeu a7,a4,5680 + 566c: 0006c783 lbu a5,0(a3) + 5670: 0685 addi a3,a3,1 + 5672: ff77871b addiw a4,a5,-9 + 5676: 0ff77713 zext.b a4,a4 + 567a: 0007841b sext.w s0,a5 + 567e: ff0787e3 beq a5,a6,566c + 5682: fee8f5e3 bgeu a7,a4,566c if (base < 0 || base == 1 || base > 36) - 569a: 02400793 li a5,36 - 569e: 02c7ec63 bltu a5,a2,56d6 - 56a2: 4785 li a5,1 - 56a4: 02f60963 beq a2,a5,56d6 - 56a8: bd7ff0ef jal 527e + 5686: 02400793 li a5,36 + 568a: 02c7ec63 bltu a5,a2,56c2 + 568e: 4785 li a5,1 + 5690: 02f60963 beq a2,a5,56c2 + 5694: bd7ff0ef jal 526a if (c == '-') neg = 1; acc = strtoull(nptr, endptr, base); if (errno == ERANGE && acc == ULLONG_MAX) - 56ac: 00003797 auipc a5,0x3 - 56b0: 65c78793 addi a5,a5,1628 # 8d08 - 56b4: 4394 lw a3,0(a5) - 56b6: 02200713 li a4,34 - 56ba: 04e68363 beq a3,a4,5700 + 5698: 00003797 auipc a5,0x3 + 569c: 6a078793 addi a5,a5,1696 # 8d38 + 56a0: 4394 lw a3,0(a5) + 56a2: 02200713 li a4,34 + 56a6: 04e68363 beq a3,a4,56ec return neg ? LLONG_MIN : LLONG_MAX; if (!neg && acc > (unsigned long long)LLONG_MAX) - 56be: 02d00713 li a4,45 - 56c2: 02e40563 beq s0,a4,56ec - 56c6: 00055f63 bgez a0,56e4 + 56aa: 02d00713 li a4,45 + 56ae: 02e40563 beq s0,a4,56d8 + 56b2: 00055f63 bgez a0,56d0 { errno = ERANGE; - 56ca: 02200713 li a4,34 - 56ce: c398 sw a4,0(a5) + 56b6: 02200713 li a4,34 + 56ba: c398 sw a4,0(a5) return neg ? LLONG_MIN : LLONG_MAX; - 56d0: 557d li a0,-1 - 56d2: 8105 srli a0,a0,0x1 - 56d4: a801 j 56e4 + 56bc: 557d li a0,-1 + 56be: 8105 srli a0,a0,0x1 + 56c0: a801 j 56d0 if (endptr) - 56d6: c191 beqz a1,56da + 56c2: c191 beqz a1,56c6 *endptr = (char *)nptr; - 56d8: e188 sd a0,0(a1) + 56c4: e188 sd a0,0(a1) errno = 0; /* EINVAL */ - 56da: 00003797 auipc a5,0x3 - 56de: 6207a723 sw zero,1582(a5) # 8d08 + 56c6: 00003797 auipc a5,0x3 + 56ca: 6607a923 sw zero,1650(a5) # 8d38 { errno = ERANGE; return LLONG_MIN; } return neg ? -(long long)acc : (long long)acc; - 56e2: 4501 li a0,0 + 56ce: 4501 li a0,0 } - 56e4: 60a2 ld ra,8(sp) - 56e6: 6402 ld s0,0(sp) - 56e8: 0141 addi sp,sp,16 - 56ea: 8082 ret + 56d0: 60a2 ld ra,8(sp) + 56d2: 6402 ld s0,0(sp) + 56d4: 0141 addi sp,sp,16 + 56d6: 8082 ret if (neg && acc > (unsigned long long)LLONG_MAX + 1) - 56ec: 577d li a4,-1 - 56ee: 177e slli a4,a4,0x3f - 56f0: 02a76263 bltu a4,a0,5714 + 56d8: 577d li a4,-1 + 56da: 177e slli a4,a4,0x3f + 56dc: 02a76263 bltu a4,a0,5700 } - 56f4: 60a2 ld ra,8(sp) - 56f6: 6402 ld s0,0(sp) + 56e0: 60a2 ld ra,8(sp) + 56e2: 6402 ld s0,0(sp) return neg ? -(long long)acc : (long long)acc; - 56f8: 40a00533 neg a0,a0 + 56e4: 40a00533 neg a0,a0 } - 56fc: 0141 addi sp,sp,16 - 56fe: 8082 ret + 56e8: 0141 addi sp,sp,16 + 56ea: 8082 ret if (errno == ERANGE && acc == ULLONG_MAX) - 5700: 577d li a4,-1 - 5702: fae51ee3 bne a0,a4,56be + 56ec: 577d li a4,-1 + 56ee: fae51ee3 bne a0,a4,56aa return neg ? LLONG_MIN : LLONG_MAX; - 5706: 02d00793 li a5,45 - 570a: fcf413e3 bne s0,a5,56d0 + 56f2: 02d00793 li a5,45 + 56f6: fcf413e3 bne s0,a5,56bc return LLONG_MIN; - 570e: 557d li a0,-1 - 5710: 157e slli a0,a0,0x3f - 5712: bfc9 j 56e4 + 56fa: 557d li a0,-1 + 56fc: 157e slli a0,a0,0x3f + 56fe: bfc9 j 56d0 errno = ERANGE; - 5714: 02200713 li a4,34 - 5718: c398 sw a4,0(a5) + 5700: 02200713 li a4,34 + 5704: c398 sw a4,0(a5) return LLONG_MIN; - 571a: bfd5 j 570e + 5706: bfd5 j 56fa -000000000000571c : +0000000000005708 : if (base < 0 || base == 1 || base > 36) - 571c: 02400813 li a6,36 + 5708: 02400813 li a6,36 unsigned long strtoul(const char *nptr, char **endptr, int base) { - 5720: 86aa mv a3,a0 - 5722: 872e mv a4,a1 + 570c: 86aa mv a3,a0 + 570e: 872e mv a4,a1 if (base < 0 || base == 1 || base > 36) - 5724: 00c86663 bltu a6,a2,5730 - 5728: 4805 li a6,1 - 572a: 01060363 beq a2,a6,5730 - 572e: be81 j 527e + 5710: 00c86663 bltu a6,a2,571c + 5714: 4805 li a6,1 + 5716: 01060363 beq a2,a6,571c + 571a: be81 j 526a if (endptr) - 5730: c311 beqz a4,5734 + 571c: c311 beqz a4,5720 *endptr = (char *)nptr; - 5732: e314 sd a3,0(a4) + 571e: e314 sd a3,0(a4) errno = 0; /* EINVAL */ - 5734: 00003797 auipc a5,0x3 - 5738: 5c07aa23 sw zero,1492(a5) # 8d08 + 5720: 00003797 auipc a5,0x3 + 5724: 6007ac23 sw zero,1560(a5) # 8d38 { errno = ERANGE; return ULONG_MAX; } return (unsigned long)ret; } - 573c: 4501 li a0,0 - 573e: 8082 ret + 5728: 4501 li a0,0 + 572a: 8082 ret -0000000000005740 : +000000000000572c : long strtol(const char *nptr, char **endptr, int base) { long long ret = strtoll(nptr, endptr, base); - 5740: bf0d j 5672 + 572c: bf0d j 565e -0000000000005742 : +000000000000572e : return LONG_MIN; } return (long)ret; } int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } - 5742: 1141 addi sp,sp,-16 + 572e: 1141 addi sp,sp,-16 long long ret = strtoll(nptr, endptr, base); - 5744: 4629 li a2,10 - 5746: 4581 li a1,0 + 5730: 4629 li a2,10 + 5732: 4581 li a1,0 int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } - 5748: e406 sd ra,8(sp) + 5734: e406 sd ra,8(sp) long long ret = strtoll(nptr, endptr, base); - 574a: f29ff0ef jal 5672 + 5736: f29ff0ef jal 565e int atoi(const char *nptr) { return (int)strtol(nptr, NULL, 10); } - 574e: 60a2 ld ra,8(sp) - 5750: 2501 sext.w a0,a0 - 5752: 0141 addi sp,sp,16 - 5754: 8082 ret + 573a: 60a2 ld ra,8(sp) + 573c: 2501 sext.w a0,a0 + 573e: 0141 addi sp,sp,16 + 5740: 8082 ret -0000000000005756 : +0000000000005742 : long long ret = strtoll(nptr, endptr, base); - 5756: 4629 li a2,10 - 5758: 4581 li a1,0 - 575a: bf21 j 5672 + 5742: 4629 li a2,10 + 5744: 4581 li a1,0 + 5746: bf21 j 565e -000000000000575c : +0000000000005748 : long atol(const char *nptr) { return strtol(nptr, NULL, 10); } long long atoll(const char *nptr) { return strtoll(nptr, NULL, 10); } - 575c: 4629 li a2,10 - 575e: 4581 li a1,0 - 5760: bf09 j 5672 + 5748: 4629 li a2,10 + 574a: 4581 li a1,0 + 574c: bf09 j 565e -0000000000005762 : - 5762: 02000693 li a3,32 - 5766: 4611 li a2,4 +000000000000574e : + 574e: 02000693 li a3,32 + 5752: 4611 li a2,4 { double val = 0.0; int sign = 1; const char *s = nptr; while (isspace(*s)) - 5768: 00054783 lbu a5,0(a0) - 576c: ff77871b addiw a4,a5,-9 - 5770: 0ff77713 zext.b a4,a4 - 5774: 06d78263 beq a5,a3,57d8 - 5778: 06e67063 bgeu a2,a4,57d8 + 5754: 00054783 lbu a5,0(a0) + 5758: ff77871b addiw a4,a5,-9 + 575c: 0ff77713 zext.b a4,a4 + 5760: 06d78263 beq a5,a3,57c4 + 5764: 06e67063 bgeu a2,a4,57c4 s++; if (*s == '-') - 577c: 02d00713 li a4,45 - 5780: 08e78e63 beq a5,a4,581c + 5768: 02d00713 li a4,45 + 576c: 08e78e63 beq a5,a4,5808 { sign = -1; s++; } else if (*s == '+') - 5784: 02b00713 li a4,43 - 5788: 0ae78263 beq a5,a4,582c - 578c: 00001717 auipc a4,0x1 - 5790: 18473507 fld fa0,388(a4) # 6910 + 5770: 02b00713 li a4,43 + 5774: 0ae78263 beq a5,a4,5818 + 5778: 00001717 auipc a4,0x1 + 577c: 20073507 fld fa0,512(a4) # 6978 static inline int isdigit(int c) { return c >= '0' && c <= '9'; } - 5794: fd07861b addiw a2,a5,-48 + 5780: fd07861b addiw a2,a5,-48 s++; while (isdigit(*s)) - 5798: 46a5 li a3,9 - 579a: f20007d3 fmv.d.x fa5,zero - 579e: 8732 mv a4,a2 - 57a0: 02c6e363 bltu a3,a2,57c6 - 57a4: 00001797 auipc a5,0x1 - 57a8: 1747b687 fld fa3,372(a5) # 6918 - 57ac: 4625 li a2,9 - 57ae: 00154783 lbu a5,1(a0) + 5784: 46a5 li a3,9 + 5786: f20007d3 fmv.d.x fa5,zero + 578a: 8732 mv a4,a2 + 578c: 02c6e363 bltu a3,a2,57b2 + 5790: 00001797 auipc a5,0x1 + 5794: 1f07b687 fld fa3,496(a5) # 6980 + 5798: 4625 li a2,9 + 579a: 00154783 lbu a5,1(a0) { val = val * 10.0 + (*s - '0'); - 57b2: d2070753 fcvt.d.w fa4,a4 + 579e: d2070753 fcvt.d.w fa4,a4 s++; - 57b6: 0505 addi a0,a0,1 - 57b8: fd07869b addiw a3,a5,-48 + 57a2: 0505 addi a0,a0,1 + 57a4: fd07869b addiw a3,a5,-48 val = val * 10.0 + (*s - '0'); - 57bc: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 - 57c0: 8736 mv a4,a3 + 57a8: 72d7f7c3 fmadd.d fa5,fa5,fa3,fa4 + 57ac: 8736 mv a4,a3 while (isdigit(*s)) - 57c2: fed676e3 bgeu a2,a3,57ae + 57ae: fed676e3 bgeu a2,a3,579a } if (*s == '.') - 57c6: 02e00713 li a4,46 - 57ca: 00e78963 beq a5,a4,57dc + 57b2: 02e00713 li a4,46 + 57b6: 00e78963 beq a5,a4,57c8 val += (*s - '0') * factor; s++; } } if (endptr) - 57ce: c191 beqz a1,57d2 + 57ba: c191 beqz a1,57be *endptr = (char *)s; - 57d0: e188 sd a0,0(a1) + 57bc: e188 sd a0,0(a1) return val * sign; } - 57d2: 12a7f553 fmul.d fa0,fa5,fa0 - 57d6: 8082 ret + 57be: 12a7f553 fmul.d fa0,fa5,fa0 + 57c2: 8082 ret s++; - 57d8: 0505 addi a0,a0,1 - 57da: b779 j 5768 + 57c4: 0505 addi a0,a0,1 + 57c6: b779 j 5754 while (isdigit(*s)) - 57dc: 00154703 lbu a4,1(a0) - 57e0: 46a5 li a3,9 + 57c8: 00154703 lbu a4,1(a0) + 57cc: 46a5 li a3,9 s++; - 57e2: 0505 addi a0,a0,1 - 57e4: fd07071b addiw a4,a4,-48 - 57e8: 87ba mv a5,a4 + 57ce: 0505 addi a0,a0,1 + 57d0: fd07071b addiw a4,a4,-48 + 57d4: 87ba mv a5,a4 while (isdigit(*s)) - 57ea: fee6e2e3 bltu a3,a4,57ce + 57d6: fee6e2e3 bltu a3,a4,57ba double factor = 1.0; - 57ee: 00001717 auipc a4,0x1 - 57f2: 12273707 fld fa4,290(a4) # 6910 - 57f6: 00001717 auipc a4,0x1 - 57fa: 13a73607 fld fa2,314(a4) # 6930 + 57da: 00001717 auipc a4,0x1 + 57de: 19e73707 fld fa4,414(a4) # 6978 + 57e2: 00001717 auipc a4,0x1 + 57e6: 1b673607 fld fa2,438(a4) # 6998 factor *= 0.1; - 57fe: 12c77753 fmul.d fa4,fa4,fa2 + 57ea: 12c77753 fmul.d fa4,fa4,fa2 while (isdigit(*s)) - 5802: 00154703 lbu a4,1(a0) + 57ee: 00154703 lbu a4,1(a0) val += (*s - '0') * factor; - 5806: d20786d3 fcvt.d.w fa3,a5 + 57f2: d20786d3 fcvt.d.w fa3,a5 s++; - 580a: 0505 addi a0,a0,1 - 580c: fd07071b addiw a4,a4,-48 - 5810: 87ba mv a5,a4 + 57f6: 0505 addi a0,a0,1 + 57f8: fd07071b addiw a4,a4,-48 + 57fc: 87ba mv a5,a4 val += (*s - '0') * factor; - 5812: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 + 57fe: 7ae6f7c3 fmadd.d fa5,fa3,fa4,fa5 while (isdigit(*s)) - 5816: fee6f4e3 bgeu a3,a4,57fe - 581a: bf55 j 57ce + 5802: fee6f4e3 bgeu a3,a4,57ea + 5806: bf55 j 57ba while (isdigit(*s)) - 581c: 00154783 lbu a5,1(a0) - 5820: 00001717 auipc a4,0x1 - 5824: 0e873507 fld fa0,232(a4) # 6908 + 5808: 00154783 lbu a5,1(a0) + 580c: 00001717 auipc a4,0x1 + 5810: 16473507 fld fa0,356(a4) # 6970 s++; - 5828: 0505 addi a0,a0,1 - 582a: b7ad j 5794 + 5814: 0505 addi a0,a0,1 + 5816: b7ad j 5780 while (isdigit(*s)) - 582c: 00154783 lbu a5,1(a0) - 5830: 00001717 auipc a4,0x1 - 5834: 0e073507 fld fa0,224(a4) # 6910 + 5818: 00154783 lbu a5,1(a0) + 581c: 00001717 auipc a4,0x1 + 5820: 15c73507 fld fa0,348(a4) # 6978 s++; - 5838: 0505 addi a0,a0,1 - 583a: bfa9 j 5794 + 5824: 0505 addi a0,a0,1 + 5826: bfa9 j 5780 -000000000000583c : +0000000000005828 : double atof(const char *nptr) { return strtod(nptr, NULL); } - 583c: 4581 li a1,0 - 583e: b715 j 5762 + 5828: 4581 li a1,0 + 582a: b715 j 574e -0000000000005840 : +000000000000582c : float strtof(const char *nptr, char **endptr) { return (float)strtod(nptr, endptr); } - 5840: 1141 addi sp,sp,-16 - 5842: e406 sd ra,8(sp) - 5844: f1fff0ef jal 5762 - 5848: 60a2 ld ra,8(sp) - 584a: 40157553 fcvt.s.d fa0,fa0 - 584e: 0141 addi sp,sp,16 - 5850: 8082 ret - -0000000000005852 : + 582c: 1141 addi sp,sp,-16 + 582e: e406 sd ra,8(sp) + 5830: f1fff0ef jal 574e + 5834: 60a2 ld ra,8(sp) + 5836: 40157553 fcvt.s.d fa0,fa0 + 583a: 0141 addi sp,sp,16 + 583c: 8082 ret + +000000000000583e : } } void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { if (nmemb < 2 || size == 0) - 5852: 4785 li a5,1 - 5854: 0cb7fd63 bgeu a5,a1,592e + 583e: 4785 li a5,1 + 5840: 0cb7fd63 bgeu a5,a1,591a { - 5858: 715d addi sp,sp,-80 - 585a: f44e sd s3,40(sp) - 585c: e486 sd ra,72(sp) - 585e: 89b2 mv s3,a2 + 5844: 715d addi sp,sp,-80 + 5846: f44e sd s3,40(sp) + 5848: e486 sd ra,72(sp) + 584a: 89b2 mv s3,a2 if (nmemb < 2 || size == 0) - 5860: c279 beqz a2,5926 - 5862: e85a sd s6,16(sp) - 5864: 8b2e mv s6,a1 + 584c: c279 beqz a2,5912 + 584e: e85a sd s6,16(sp) + 5850: 8b2e mv s6,a1 return; char *base_ptr = (char *)base; char *pivot = base_ptr + (nmemb - 1) * size; - 5866: 1b7d addi s6,s6,-1 - 5868: fc26 sd s1,56(sp) - 586a: 033b04b3 mul s1,s6,s3 - 586e: ec56 sd s5,24(sp) - 5870: 8aaa mv s5,a0 - 5872: f052 sd s4,32(sp) - 5874: e45e sd s7,8(sp) - 5876: e0a2 sd s0,64(sp) - 5878: f84a sd s2,48(sp) - 587a: 8a36 mv s4,a3 + 5852: 1b7d addi s6,s6,-1 + 5854: fc26 sd s1,56(sp) + 5856: 033b04b3 mul s1,s6,s3 + 585a: ec56 sd s5,24(sp) + 585c: 8aaa mv s5,a0 + 585e: f052 sd s4,32(sp) + 5860: e45e sd s7,8(sp) + 5862: e0a2 sd s0,64(sp) + 5864: f84a sd s2,48(sp) + 5866: 8a36 mv s4,a3 if (nmemb < 2 || size == 0) - 587c: 4b85 li s7,1 + 5868: 4b85 li s7,1 char *pivot = base_ptr + (nmemb - 1) * size; - 587e: 94d6 add s1,s1,s5 + 586a: 94d6 add s1,s1,s5 char *i = base_ptr; char *j = base_ptr; /* Partition */ for (; j < pivot; j += size) - 5880: 069af763 bgeu s5,s1,58ee + 586c: 069af763 bgeu s5,s1,58da char *j = base_ptr; - 5884: 8956 mv s2,s5 + 5870: 8956 mv s2,s5 char *i = base_ptr; - 5886: 8456 mv s0,s5 - 5888: a021 j 5890 + 5872: 8456 mv s0,s5 + 5874: a021 j 587c for (; j < pivot; j += size) - 588a: 994e add s2,s2,s3 - 588c: 00997f63 bgeu s2,s1,58aa + 5876: 994e add s2,s2,s3 + 5878: 00997f63 bgeu s2,s1,5896 { if (compar(j, pivot) < 0) - 5890: 85a6 mv a1,s1 - 5892: 854a mv a0,s2 - 5894: 9a02 jalr s4 - 5896: fe055ae3 bgez a0,588a + 587c: 85a6 mv a1,s1 + 587e: 854a mv a0,s2 + 5880: 9a02 jalr s4 + 5882: fe055ae3 bgez a0,5876 { if (i != j) - 589a: 05241d63 bne s0,s2,58f4 - 589e: 01390633 add a2,s2,s3 + 5886: 05241d63 bne s0,s2,58e0 + 588a: 01390633 add a2,s2,s3 swap_bytes(i, j, size); i += size; - 58a2: 8432 mv s0,a2 + 588e: 8432 mv s0,a2 for (; j < pivot; j += size) - 58a4: 994e add s2,s2,s3 - 58a6: fe9965e3 bltu s2,s1,5890 + 5890: 994e add s2,s2,s3 + 5892: fe9965e3 bltu s2,s1,587c } } swap_bytes(i, pivot, size); /* Recurse */ size_t left_count = (i - base_ptr) / size; - 58aa: 415405b3 sub a1,s0,s5 - 58ae: 0335d5b3 divu a1,a1,s3 + 5896: 415405b3 sub a1,s0,s5 + 589a: 0335d5b3 divu a1,a1,s3 qsort(base, left_count, size, compar); qsort(i + size, nmemb - left_count - 1, size, compar); - 58b2: 40bb0b33 sub s6,s6,a1 + 589e: 40bb0b33 sub s6,s6,a1 while (size--) - 58b6: 013406b3 add a3,s0,s3 + 58a2: 013406b3 add a3,s0,s3 *a++ = *b; - 58ba: 0004c703 lbu a4,0(s1) + 58a6: 0004c703 lbu a4,0(s1) temp = *a; - 58be: 00044783 lbu a5,0(s0) + 58aa: 00044783 lbu a5,0(s0) *b++ = temp; - 58c2: 0485 addi s1,s1,1 + 58ae: 0485 addi s1,s1,1 *a++ = *b; - 58c4: 0405 addi s0,s0,1 - 58c6: fee40fa3 sb a4,-1(s0) + 58b0: 0405 addi s0,s0,1 + 58b2: fee40fa3 sb a4,-1(s0) *b++ = temp; - 58ca: fef48fa3 sb a5,-1(s1) + 58b6: fef48fa3 sb a5,-1(s1) while (size--) - 58ce: fed416e3 bne s0,a3,58ba + 58ba: fed416e3 bne s0,a3,58a6 qsort(base, left_count, size, compar); - 58d2: 86d2 mv a3,s4 - 58d4: 864e mv a2,s3 - 58d6: 8556 mv a0,s5 - 58d8: f7bff0ef jal 5852 + 58be: 86d2 mv a3,s4 + 58c0: 864e mv a2,s3 + 58c2: 8556 mv a0,s5 + 58c4: f7bff0ef jal 583e if (nmemb < 2 || size == 0) - 58dc: 036bfe63 bgeu s7,s6,5918 + 58c8: 036bfe63 bgeu s7,s6,5904 char *pivot = base_ptr + (nmemb - 1) * size; - 58e0: 1b7d addi s6,s6,-1 - 58e2: 033b04b3 mul s1,s6,s3 - 58e6: 8aa2 mv s5,s0 - 58e8: 94d6 add s1,s1,s5 + 58cc: 1b7d addi s6,s6,-1 + 58ce: 033b04b3 mul s1,s6,s3 + 58d2: 8aa2 mv s5,s0 + 58d4: 94d6 add s1,s1,s5 for (; j < pivot; j += size) - 58ea: f89aede3 bltu s5,s1,5884 + 58d6: f89aede3 bltu s5,s1,5870 char *i = base_ptr; - 58ee: 8456 mv s0,s5 + 58da: 8456 mv s0,s5 for (; j < pivot; j += size) - 58f0: 4581 li a1,0 - 58f2: b7d1 j 58b6 - 58f4: 01340633 add a2,s0,s3 + 58dc: 4581 li a1,0 + 58de: b7d1 j 58a2 + 58e0: 01340633 add a2,s0,s3 if (i != j) - 58f8: 874a mv a4,s2 - 58fa: 87a2 mv a5,s0 + 58e4: 874a mv a4,s2 + 58e6: 87a2 mv a5,s0 *a++ = *b; - 58fc: 00074683 lbu a3,0(a4) + 58e8: 00074683 lbu a3,0(a4) temp = *a; - 5900: 0007c803 lbu a6,0(a5) + 58ec: 0007c803 lbu a6,0(a5) *b++ = temp; - 5904: 0705 addi a4,a4,1 + 58f0: 0705 addi a4,a4,1 *a++ = *b; - 5906: 0785 addi a5,a5,1 - 5908: fed78fa3 sb a3,-1(a5) + 58f2: 0785 addi a5,a5,1 + 58f4: fed78fa3 sb a3,-1(a5) *b++ = temp; - 590c: ff070fa3 sb a6,-1(a4) + 58f8: ff070fa3 sb a6,-1(a4) while (size--) - 5910: fec796e3 bne a5,a2,58fc + 58fc: fec796e3 bne a5,a2,58e8 i += size; - 5914: 8432 mv s0,a2 - 5916: b779 j 58a4 - 5918: 6406 ld s0,64(sp) - 591a: 74e2 ld s1,56(sp) - 591c: 7942 ld s2,48(sp) - 591e: 7a02 ld s4,32(sp) - 5920: 6ae2 ld s5,24(sp) - 5922: 6b42 ld s6,16(sp) - 5924: 6ba2 ld s7,8(sp) -} - 5926: 60a6 ld ra,72(sp) - 5928: 79a2 ld s3,40(sp) - 592a: 6161 addi sp,sp,80 - 592c: 8082 ret - 592e: 8082 ret - -0000000000005930 : + 5900: 8432 mv s0,a2 + 5902: b779 j 5890 + 5904: 6406 ld s0,64(sp) + 5906: 74e2 ld s1,56(sp) + 5908: 7942 ld s2,48(sp) + 590a: 7a02 ld s4,32(sp) + 590c: 6ae2 ld s5,24(sp) + 590e: 6b42 ld s6,16(sp) + 5910: 6ba2 ld s7,8(sp) +} + 5912: 60a6 ld ra,72(sp) + 5914: 79a2 ld s3,40(sp) + 5916: 6161 addi sp,sp,80 + 5918: 8082 ret + 591a: 8082 ret + +000000000000591c : void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { - 5930: 715d addi sp,sp,-80 - 5932: e486 sd ra,72(sp) - 5934: fc26 sd s1,56(sp) + 591c: 715d addi sp,sp,-80 + 591e: e486 sd ra,72(sp) + 5920: fc26 sd s1,56(sp) size_t l = 0, u = nmemb; while (l < u) - 5936: c629 beqz a2,5980 - 5938: f84a sd s2,48(sp) - 593a: f44e sd s3,40(sp) - 593c: f052 sd s4,32(sp) - 593e: ec56 sd s5,24(sp) - 5940: e85a sd s6,16(sp) - 5942: e45e sd s7,8(sp) - 5944: e0a2 sd s0,64(sp) - 5946: 8932 mv s2,a2 - 5948: 8a2a mv s4,a0 - 594a: 8aae mv s5,a1 - 594c: 8b36 mv s6,a3 - 594e: 8bba mv s7,a4 + 5922: c629 beqz a2,596c + 5924: f84a sd s2,48(sp) + 5926: f44e sd s3,40(sp) + 5928: f052 sd s4,32(sp) + 592a: ec56 sd s5,24(sp) + 592c: e85a sd s6,16(sp) + 592e: e45e sd s7,8(sp) + 5930: e0a2 sd s0,64(sp) + 5932: 8932 mv s2,a2 + 5934: 8a2a mv s4,a0 + 5936: 8aae mv s5,a1 + 5938: 8b36 mv s6,a3 + 593a: 8bba mv s7,a4 size_t l = 0, u = nmemb; - 5950: 4981 li s3,0 + 593c: 4981 li s3,0 { size_t idx = (l + u) / 2; - 5952: 01298433 add s0,s3,s2 - 5956: 8005 srli s0,s0,0x1 + 593e: 01298433 add s0,s3,s2 + 5942: 8005 srli s0,s0,0x1 const void *p = (void *)((const char *)base + (idx * size)); - 5958: 036404b3 mul s1,s0,s6 + 5944: 036404b3 mul s1,s0,s6 int cmp = compar(key, p); - 595c: 8552 mv a0,s4 + 5948: 8552 mv a0,s4 const void *p = (void *)((const char *)base + (idx * size)); - 595e: 94d6 add s1,s1,s5 + 594a: 94d6 add s1,s1,s5 int cmp = compar(key, p); - 5960: 85a6 mv a1,s1 - 5962: 9b82 jalr s7 + 594c: 85a6 mv a1,s1 + 594e: 9b82 jalr s7 if (cmp < 0) - 5964: 02054463 bltz a0,598c + 5950: 02054463 bltz a0,5978 u = idx; else if (cmp > 0) - 5968: c515 beqz a0,5994 + 5954: c515 beqz a0,5980 l = idx + 1; - 596a: 00140993 addi s3,s0,1 + 5956: 00140993 addi s3,s0,1 while (l < u) - 596e: ff29e2e3 bltu s3,s2,5952 - 5972: 6406 ld s0,64(sp) - 5974: 7942 ld s2,48(sp) - 5976: 79a2 ld s3,40(sp) - 5978: 7a02 ld s4,32(sp) - 597a: 6ae2 ld s5,24(sp) - 597c: 6b42 ld s6,16(sp) - 597e: 6ba2 ld s7,8(sp) + 595a: ff29e2e3 bltu s3,s2,593e + 595e: 6406 ld s0,64(sp) + 5960: 7942 ld s2,48(sp) + 5962: 79a2 ld s3,40(sp) + 5964: 7a02 ld s4,32(sp) + 5966: 6ae2 ld s5,24(sp) + 5968: 6b42 ld s6,16(sp) + 596a: 6ba2 ld s7,8(sp) else return (void *)p; } return NULL; } - 5980: 60a6 ld ra,72(sp) + 596c: 60a6 ld ra,72(sp) return NULL; - 5982: 4481 li s1,0 + 596e: 4481 li s1,0 } - 5984: 8526 mv a0,s1 - 5986: 74e2 ld s1,56(sp) - 5988: 6161 addi sp,sp,80 - 598a: 8082 ret + 5970: 8526 mv a0,s1 + 5972: 74e2 ld s1,56(sp) + 5974: 6161 addi sp,sp,80 + 5976: 8082 ret u = idx; - 598c: 8922 mv s2,s0 + 5978: 8922 mv s2,s0 while (l < u) - 598e: fd29e2e3 bltu s3,s2,5952 - 5992: b7c5 j 5972 - 5994: 6406 ld s0,64(sp) -} - 5996: 60a6 ld ra,72(sp) - 5998: 7942 ld s2,48(sp) - 599a: 79a2 ld s3,40(sp) - 599c: 7a02 ld s4,32(sp) - 599e: 6ae2 ld s5,24(sp) - 59a0: 6b42 ld s6,16(sp) - 59a2: 6ba2 ld s7,8(sp) - 59a4: 8526 mv a0,s1 - 59a6: 74e2 ld s1,56(sp) - 59a8: 6161 addi sp,sp,80 - 59aa: 8082 ret - -00000000000059ac : + 597a: fd29e2e3 bltu s3,s2,593e + 597e: b7c5 j 595e + 5980: 6406 ld s0,64(sp) +} + 5982: 60a6 ld ra,72(sp) + 5984: 7942 ld s2,48(sp) + 5986: 79a2 ld s3,40(sp) + 5988: 7a02 ld s4,32(sp) + 598a: 6ae2 ld s5,24(sp) + 598c: 6b42 ld s6,16(sp) + 598e: 6ba2 ld s7,8(sp) + 5990: 8526 mv a0,s1 + 5992: 74e2 ld s1,56(sp) + 5994: 6161 addi sp,sp,80 + 5996: 8082 ret + +0000000000005998 : /* Math & Mics */ int abs(int j) { return (j < 0) ? -j : j; } - 59ac: 41f5579b sraiw a5,a0,0x1f - 59b0: 8d3d xor a0,a0,a5 - 59b2: 9d1d subw a0,a0,a5 - 59b4: 8082 ret + 5998: 41f5579b sraiw a5,a0,0x1f + 599c: 8d3d xor a0,a0,a5 + 599e: 9d1d subw a0,a0,a5 + 59a0: 8082 ret -00000000000059b6 : +00000000000059a2 : long labs(long j) { return (j < 0) ? -j : j; } - 59b6: 43f55793 srai a5,a0,0x3f - 59ba: 8d3d xor a0,a0,a5 - 59bc: 8d1d sub a0,a0,a5 - 59be: 8082 ret + 59a2: 43f55793 srai a5,a0,0x3f + 59a6: 8d3d xor a0,a0,a5 + 59a8: 8d1d sub a0,a0,a5 + 59aa: 8082 ret -00000000000059c0 : +00000000000059ac : long long llabs(long long j) { return (j < 0) ? -j : j; } - 59c0: 43f55793 srai a5,a0,0x3f - 59c4: 8d3d xor a0,a0,a5 - 59c6: 8d1d sub a0,a0,a5 - 59c8: 8082 ret + 59ac: 43f55793 srai a5,a0,0x3f + 59b0: 8d3d xor a0,a0,a5 + 59b2: 8d1d sub a0,a0,a5 + 59b4: 8082 ret -00000000000059ca
: +00000000000059b6
: div_t div(int numer, int denom) { div_t res = {numer / denom, numer % denom}; - 59ca: 02b547bb divw a5,a0,a1 + 59b6: 02b547bb divw a5,a0,a1 { - 59ce: 1141 addi sp,sp,-16 + 59ba: 1141 addi sp,sp,-16 return res; } - 59d0: 0141 addi sp,sp,16 + 59bc: 0141 addi sp,sp,16 div_t res = {numer / denom, numer % denom}; - 59d2: 02b5653b remw a0,a0,a1 + 59be: 02b5653b remw a0,a0,a1 return res; - 59d6: 1782 slli a5,a5,0x20 - 59d8: 9381 srli a5,a5,0x20 - 59da: 1502 slli a0,a0,0x20 + 59c2: 1782 slli a5,a5,0x20 + 59c4: 9381 srli a5,a5,0x20 + 59c6: 1502 slli a0,a0,0x20 } - 59dc: 8d5d or a0,a0,a5 - 59de: 8082 ret + 59c8: 8d5d or a0,a0,a5 + 59ca: 8082 ret -00000000000059e0 : +00000000000059cc : ldiv_t ldiv(long numer, long denom) { - 59e0: 1141 addi sp,sp,-16 - 59e2: 87aa mv a5,a0 + 59cc: 1141 addi sp,sp,-16 + 59ce: 87aa mv a5,a0 ldiv_t res = {numer / denom, numer % denom}; return res; } - 59e4: 02b54533 div a0,a0,a1 - 59e8: 0141 addi sp,sp,16 - 59ea: 02b7e5b3 rem a1,a5,a1 - 59ee: 8082 ret + 59d0: 02b54533 div a0,a0,a1 + 59d4: 0141 addi sp,sp,16 + 59d6: 02b7e5b3 rem a1,a5,a1 + 59da: 8082 ret -00000000000059f0 : +00000000000059dc : lldiv_t lldiv(long long numer, long long denom) { - 59f0: 1141 addi sp,sp,-16 - 59f2: 87aa mv a5,a0 + 59dc: 1141 addi sp,sp,-16 + 59de: 87aa mv a5,a0 lldiv_t res = {numer / denom, numer % denom}; return res; } - 59f4: 02b54533 div a0,a0,a1 - 59f8: 0141 addi sp,sp,16 - 59fa: 02b7e5b3 rem a1,a5,a1 - 59fe: 8082 ret + 59e0: 02b54533 div a0,a0,a1 + 59e4: 0141 addi sp,sp,16 + 59e6: 02b7e5b3 rem a1,a5,a1 + 59ea: 8082 ret -0000000000005a00 : +00000000000059ec : static unsigned long next = 1; int rand(void) { next = next * 1103515245 + 12345; - 5a00: 00003697 auipc a3,0x3 - 5a04: 26068693 addi a3,a3,608 # 8c60 - 5a08: 629c ld a5,0(a3) - 5a0a: 41c65737 lui a4,0x41c65 - 5a0e: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5c02d> - 5a12: 02e787b3 mul a5,a5,a4 - 5a16: 670d lui a4,0x3 - 5a18: 03970713 addi a4,a4,57 # 3039 - 5a1c: 97ba add a5,a5,a4 + 59ec: 00003697 auipc a3,0x3 + 59f0: 2a468693 addi a3,a3,676 # 8c90 + 59f4: 629c ld a5,0(a3) + 59f6: 41c65737 lui a4,0x41c65 + 59fa: e6d70713 addi a4,a4,-403 # 41c64e6d <_ZSt4cerr+0x41c5bffd> + 59fe: 02e787b3 mul a5,a5,a4 + 5a02: 670d lui a4,0x3 + 5a04: 03970713 addi a4,a4,57 # 3039 + 5a08: 97ba add a5,a5,a4 return (unsigned int)(next / 65536) % 32768; - 5a1e: 02179513 slli a0,a5,0x21 + 5a0a: 02179513 slli a0,a5,0x21 next = next * 1103515245 + 12345; - 5a22: e29c sd a5,0(a3) + 5a0e: e29c sd a5,0(a3) } - 5a24: 9145 srli a0,a0,0x31 - 5a26: 8082 ret + 5a10: 9145 srli a0,a0,0x31 + 5a12: 8082 ret -0000000000005a28 : +0000000000005a14 : void srand(unsigned int seed) { next = seed; } - 5a28: 1502 slli a0,a0,0x20 - 5a2a: 9101 srli a0,a0,0x20 - 5a2c: 00003797 auipc a5,0x3 - 5a30: 22a7ba23 sd a0,564(a5) # 8c60 - 5a34: 8082 ret + 5a14: 1502 slli a0,a0,0x20 + 5a16: 9101 srli a0,a0,0x20 + 5a18: 00003797 auipc a5,0x3 + 5a1c: 26a7bc23 sd a0,632(a5) # 8c90 + 5a20: 8082 ret -0000000000005a36 : +0000000000005a22 : /* Stub */ int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } - 5a36: c901 beqz a0,5a46 - 5a38: 00054783 lbu a5,0(a0) - 5a3c: 4501 li a0,0 - 5a3e: c789 beqz a5,5a48 - 5a40: 00b03533 snez a0,a1 - 5a44: 8082 ret - 5a46: 4501 li a0,0 - 5a48: 8082 ret - -0000000000005a4a : + 5a22: c901 beqz a0,5a32 + 5a24: 00054783 lbu a5,0(a0) + 5a28: 4501 li a0,0 + 5a2a: c789 beqz a5,5a34 + 5a2c: 00b03533 snez a0,a1 + 5a30: 8082 ret + 5a32: 4501 li a0,0 + 5a34: 8082 ret + +0000000000005a36 : int mbtowc(wchar_t *pwc, const char *s, size_t n) { - 5a4a: 87aa mv a5,a0 + 5a36: 87aa mv a5,a0 if (!s) - 5a4c: cd81 beqz a1,5a64 + 5a38: cd81 beqz a1,5a50 return 0; if (n == 0) return -1; - 5a4e: 557d li a0,-1 + 5a3a: 557d li a0,-1 if (n == 0) - 5a50: ca19 beqz a2,5a66 + 5a3c: ca19 beqz a2,5a52 if (pwc) - 5a52: c781 beqz a5,5a5a + 5a3e: c781 beqz a5,5a46 *pwc = (wchar_t)*s; - 5a54: 0005c703 lbu a4,0(a1) - 5a58: c398 sw a4,0(a5) + 5a40: 0005c703 lbu a4,0(a1) + 5a44: c398 sw a4,0(a5) return (*s != 0); - 5a5a: 0005c503 lbu a0,0(a1) - 5a5e: 00a03533 snez a0,a0 - 5a62: 8082 ret + 5a46: 0005c503 lbu a0,0(a1) + 5a4a: 00a03533 snez a0,a0 + 5a4e: 8082 ret return 0; - 5a64: 4501 li a0,0 + 5a50: 4501 li a0,0 } - 5a66: 8082 ret + 5a52: 8082 ret -0000000000005a68 : +0000000000005a54 : int wctomb(char *s, wchar_t wchar) { if (!s) - 5a68: c509 beqz a0,5a72 + 5a54: c509 beqz a0,5a5e return 0; *s = (char)wchar; - 5a6a: 00b50023 sb a1,0(a0) + 5a56: 00b50023 sb a1,0(a0) return 1; - 5a6e: 4505 li a0,1 - 5a70: 8082 ret + 5a5a: 4505 li a0,1 + 5a5c: 8082 ret return 0; - 5a72: 4501 li a0,0 + 5a5e: 4501 li a0,0 } - 5a74: 8082 ret + 5a60: 8082 ret -0000000000005a76 : +0000000000005a62 : size_t mbstowcs(wchar_t *dest, const char *src, size_t n) { size_t i = 0; while (src[i] && i < n) - 5a76: 0005c703 lbu a4,0(a1) - 5a7a: cb0d beqz a4,5aac - 5a7c: ca15 beqz a2,5ab0 - 5a7e: 86aa mv a3,a0 + 5a62: 0005c703 lbu a4,0(a1) + 5a66: cb0d beqz a4,5a98 + 5a68: ca15 beqz a2,5a9c + 5a6a: 86aa mv a3,a0 size_t i = 0; - 5a80: 4781 li a5,0 - 5a82: a019 j 5a88 + 5a6c: 4781 li a5,0 + 5a6e: a019 j 5a74 while (src[i] && i < n) - 5a84: 02f60263 beq a2,a5,5aa8 + 5a70: 02f60263 beq a2,a5,5a94 { dest[i] = (wchar_t)src[i]; i++; - 5a88: 0785 addi a5,a5,1 + 5a74: 0785 addi a5,a5,1 dest[i] = (wchar_t)src[i]; - 5a8a: c298 sw a4,0(a3) + 5a76: c298 sw a4,0(a3) while (src[i] && i < n) - 5a8c: 00f58733 add a4,a1,a5 - 5a90: 00074703 lbu a4,0(a4) - 5a94: 0691 addi a3,a3,4 - 5a96: f77d bnez a4,5a84 + 5a78: 00f58733 add a4,a1,a5 + 5a7c: 00074703 lbu a4,0(a4) + 5a80: 0691 addi a3,a3,4 + 5a82: f77d bnez a4,5a70 } if (i < n) - 5a98: 00c7f763 bgeu a5,a2,5aa6 + 5a84: 00c7f763 bgeu a5,a2,5a92 dest[i] = 0; - 5a9c: 00279713 slli a4,a5,0x2 - 5aa0: 953a add a0,a0,a4 - 5aa2: 00052023 sw zero,0(a0) + 5a88: 00279713 slli a4,a5,0x2 + 5a8c: 953a add a0,a0,a4 + 5a8e: 00052023 sw zero,0(a0) size_t i = 0; - 5aa6: 863e mv a2,a5 - 5aa8: 8532 mv a0,a2 - 5aaa: 8082 ret - 5aac: 4781 li a5,0 - 5aae: b7ed j 5a98 - 5ab0: 4501 li a0,0 + 5a92: 863e mv a2,a5 + 5a94: 8532 mv a0,a2 + 5a96: 8082 ret + 5a98: 4781 li a5,0 + 5a9a: b7ed j 5a84 + 5a9c: 4501 li a0,0 return i; } - 5ab2: 8082 ret + 5a9e: 8082 ret -0000000000005ab4 : +0000000000005aa0 : size_t wcstombs(char *dest, const wchar_t *src, size_t n) { size_t i = 0; while (src[i] && i < n) - 5ab4: 4198 lw a4,0(a1) - 5ab6: c71d beqz a4,5ae4 - 5ab8: ca05 beqz a2,5ae8 - 5aba: 0591 addi a1,a1,4 + 5aa0: 4198 lw a4,0(a1) + 5aa2: c71d beqz a4,5ad0 + 5aa4: ca05 beqz a2,5ad4 + 5aa6: 0591 addi a1,a1,4 size_t i = 0; - 5abc: 4781 li a5,0 - 5abe: a019 j 5ac4 + 5aa8: 4781 li a5,0 + 5aaa: a019 j 5ab0 while (src[i] && i < n) - 5ac0: 02f60063 beq a2,a5,5ae0 + 5aac: 02f60063 beq a2,a5,5acc { dest[i] = (char)src[i]; - 5ac4: 00f506b3 add a3,a0,a5 - 5ac8: 00e68023 sb a4,0(a3) + 5ab0: 00f506b3 add a3,a0,a5 + 5ab4: 00e68023 sb a4,0(a3) while (src[i] && i < n) - 5acc: 4198 lw a4,0(a1) + 5ab8: 4198 lw a4,0(a1) i++; - 5ace: 0785 addi a5,a5,1 + 5aba: 0785 addi a5,a5,1 while (src[i] && i < n) - 5ad0: 0591 addi a1,a1,4 - 5ad2: f77d bnez a4,5ac0 + 5abc: 0591 addi a1,a1,4 + 5abe: f77d bnez a4,5aac } if (i < n) - 5ad4: 00c7f563 bgeu a5,a2,5ade + 5ac0: 00c7f563 bgeu a5,a2,5aca dest[i] = 0; - 5ad8: 953e add a0,a0,a5 - 5ada: 00050023 sb zero,0(a0) + 5ac4: 953e add a0,a0,a5 + 5ac6: 00050023 sb zero,0(a0) size_t i = 0; - 5ade: 863e mv a2,a5 - 5ae0: 8532 mv a0,a2 - 5ae2: 8082 ret - 5ae4: 4781 li a5,0 - 5ae6: b7fd j 5ad4 - 5ae8: 4501 li a0,0 + 5aca: 863e mv a2,a5 + 5acc: 8532 mv a0,a2 + 5ace: 8082 ret + 5ad0: 4781 li a5,0 + 5ad2: b7fd j 5ac0 + 5ad4: 4501 li a0,0 return i; - 5aea: 8082 ret + 5ad6: 8082 ret -0000000000005aec : +0000000000005ad8 : void *memset(void *dst, int c, size_t n) { char *cdst = (char *)dst; for (size_t i = 0; i < n; i++) cdst[i] = (char)c; - 5aec: 0ff5f593 zext.b a1,a1 - 5af0: 87aa mv a5,a0 - 5af2: 00a60733 add a4,a2,a0 + 5ad8: 0ff5f593 zext.b a1,a1 + 5adc: 87aa mv a5,a0 + 5ade: 00a60733 add a4,a2,a0 for (size_t i = 0; i < n; i++) - 5af6: c611 beqz a2,5b02 + 5ae2: c611 beqz a2,5aee cdst[i] = (char)c; - 5af8: 00b78023 sb a1,0(a5) + 5ae4: 00b78023 sb a1,0(a5) for (size_t i = 0; i < n; i++) - 5afc: 0785 addi a5,a5,1 - 5afe: fee79de3 bne a5,a4,5af8 + 5ae8: 0785 addi a5,a5,1 + 5aea: fee79de3 bne a5,a4,5ae4 return dst; } - 5b02: 8082 ret + 5aee: 8082 ret -0000000000005b04 : +0000000000005af0 : void *memmove(void *vdst, const void *vsrc, size_t n) { char *dst = (char *)vdst; const char *src = (const char *)vsrc; if (dst == src) - 5b04: 02b50d63 beq a0,a1,5b3e + 5af0: 02b50d63 beq a0,a1,5b2a return vdst; if (src > dst) - 5b08: 00b57e63 bgeu a0,a1,5b24 + 5af4: 00b57e63 bgeu a0,a1,5b10 { while (n--) - 5b0c: ca0d beqz a2,5b3e - 5b0e: 962a add a2,a2,a0 + 5af8: ca0d beqz a2,5b2a + 5afa: 962a add a2,a2,a0 char *dst = (char *)vdst; - 5b10: 87aa mv a5,a0 + 5afc: 87aa mv a5,a0 *dst++ = *src++; - 5b12: 0005c703 lbu a4,0(a1) - 5b16: 0785 addi a5,a5,1 - 5b18: 0585 addi a1,a1,1 - 5b1a: fee78fa3 sb a4,-1(a5) + 5afe: 0005c703 lbu a4,0(a1) + 5b02: 0785 addi a5,a5,1 + 5b04: 0585 addi a1,a1,1 + 5b06: fee78fa3 sb a4,-1(a5) while (n--) - 5b1e: fec79ae3 bne a5,a2,5b12 - 5b22: 8082 ret + 5b0a: fec79ae3 bne a5,a2,5afe + 5b0e: 8082 ret } else { dst += n; - 5b24: 00c50733 add a4,a0,a2 + 5b10: 00c50733 add a4,a0,a2 src += n; - 5b28: 00c587b3 add a5,a1,a2 + 5b14: 00c587b3 add a5,a1,a2 while (n-- > 0) - 5b2c: ca09 beqz a2,5b3e + 5b18: ca09 beqz a2,5b2a *--dst = *--src; - 5b2e: fff7c683 lbu a3,-1(a5) - 5b32: 17fd addi a5,a5,-1 - 5b34: 177d addi a4,a4,-1 - 5b36: 00d70023 sb a3,0(a4) + 5b1a: fff7c683 lbu a3,-1(a5) + 5b1e: 17fd addi a5,a5,-1 + 5b20: 177d addi a4,a4,-1 + 5b22: 00d70023 sb a3,0(a4) while (n-- > 0) - 5b3a: fef59ae3 bne a1,a5,5b2e + 5b26: fef59ae3 bne a1,a5,5b1a } return vdst; } - 5b3e: 8082 ret + 5b2a: 8082 ret -0000000000005b40 : +0000000000005b2c : void *memcpy(void *vdst, const void *vsrc, size_t n) { return memmove(vdst, vsrc, n); - 5b40: b7d1 j 5b04 + 5b2c: b7d1 j 5af0 -0000000000005b42 : +0000000000005b2e : int memcmp(const void *s1, const void *s2, size_t n) { const unsigned char *p1 = (const unsigned char *)s1; const unsigned char *p2 = (const unsigned char *)s2; while (n--) - 5b42: c205 beqz a2,5b62 - 5b44: 962a add a2,a2,a0 - 5b46: a019 j 5b4c - 5b48: 00c50d63 beq a0,a2,5b62 + 5b2e: c205 beqz a2,5b4e + 5b30: 962a add a2,a2,a0 + 5b32: a019 j 5b38 + 5b34: 00c50d63 beq a0,a2,5b4e { if (*p1 != *p2) - 5b4c: 00054783 lbu a5,0(a0) - 5b50: 0005c703 lbu a4,0(a1) + 5b38: 00054783 lbu a5,0(a0) + 5b3c: 0005c703 lbu a4,0(a1) return *p1 - *p2; p1++; - 5b54: 0505 addi a0,a0,1 + 5b40: 0505 addi a0,a0,1 p2++; - 5b56: 0585 addi a1,a1,1 + 5b42: 0585 addi a1,a1,1 if (*p1 != *p2) - 5b58: fee788e3 beq a5,a4,5b48 + 5b44: fee788e3 beq a5,a4,5b34 return *p1 - *p2; - 5b5c: 40e7853b subw a0,a5,a4 - 5b60: 8082 ret + 5b48: 40e7853b subw a0,a5,a4 + 5b4c: 8082 ret } return 0; - 5b62: 4501 li a0,0 + 5b4e: 4501 li a0,0 } - 5b64: 8082 ret + 5b50: 8082 ret -0000000000005b66 : +0000000000005b52 : void *memchr(const void *s, int c, size_t n) { const unsigned char *p = (const unsigned char *)s; while (n--) - 5b66: ce09 beqz a2,5b80 + 5b52: ce09 beqz a2,5b6c { if (*p == (unsigned char)c) - 5b68: 0ff5f593 zext.b a1,a1 - 5b6c: 962a add a2,a2,a0 - 5b6e: a021 j 5b76 + 5b54: 0ff5f593 zext.b a1,a1 + 5b58: 962a add a2,a2,a0 + 5b5a: a021 j 5b62 return (void *)p; p++; - 5b70: 0505 addi a0,a0,1 + 5b5c: 0505 addi a0,a0,1 while (n--) - 5b72: 00a60763 beq a2,a0,5b80 + 5b5e: 00a60763 beq a2,a0,5b6c if (*p == (unsigned char)c) - 5b76: 00054783 lbu a5,0(a0) - 5b7a: feb79be3 bne a5,a1,5b70 + 5b62: 00054783 lbu a5,0(a0) + 5b66: feb79be3 bne a5,a1,5b5c } return NULL; } - 5b7e: 8082 ret + 5b6a: 8082 ret return NULL; - 5b80: 4501 li a0,0 + 5b6c: 4501 li a0,0 } - 5b82: 8082 ret + 5b6e: 8082 ret -0000000000005b84 : +0000000000005b70 : /* String Manipulation Functions */ size_t strlen(const char *s) { const char *p = s; while (*p) - 5b84: 00054783 lbu a5,0(a0) - 5b88: cb89 beqz a5,5b9a + 5b70: 00054783 lbu a5,0(a0) + 5b74: cb89 beqz a5,5b86 const char *p = s; - 5b8a: 87aa mv a5,a0 + 5b76: 87aa mv a5,a0 while (*p) - 5b8c: 0017c703 lbu a4,1(a5) + 5b78: 0017c703 lbu a4,1(a5) p++; - 5b90: 0785 addi a5,a5,1 + 5b7c: 0785 addi a5,a5,1 while (*p) - 5b92: ff6d bnez a4,5b8c + 5b7e: ff6d bnez a4,5b78 return (size_t)(p - s); - 5b94: 40a78533 sub a0,a5,a0 - 5b98: 8082 ret + 5b80: 40a78533 sub a0,a5,a0 + 5b84: 8082 ret while (*p) - 5b9a: 4501 li a0,0 + 5b86: 4501 li a0,0 } - 5b9c: 8082 ret + 5b88: 8082 ret -0000000000005b9e : +0000000000005b8a : char *strcpy(char *dst, const char *src) { char *os = dst; while ((*dst++ = *src++) != 0) - 5b9e: 87aa mv a5,a0 - 5ba0: 0005c703 lbu a4,0(a1) - 5ba4: 0785 addi a5,a5,1 - 5ba6: 0585 addi a1,a1,1 - 5ba8: fee78fa3 sb a4,-1(a5) - 5bac: fb75 bnez a4,5ba0 + 5b8a: 87aa mv a5,a0 + 5b8c: 0005c703 lbu a4,0(a1) + 5b90: 0785 addi a5,a5,1 + 5b92: 0585 addi a1,a1,1 + 5b94: fee78fa3 sb a4,-1(a5) + 5b98: fb75 bnez a4,5b8c ; return os; } - 5bae: 8082 ret + 5b9a: 8082 ret -0000000000005bb0 : +0000000000005b9c : char *strncpy(char *dst, const char *src, size_t n) { char *os = dst; size_t i; for (i = 0; i < n && src[i] != '\0'; i++) - 5bb0: 4781 li a5,0 - 5bb2: e619 bnez a2,5bc0 - 5bb4: 8082 ret + 5b9c: 4781 li a5,0 + 5b9e: e619 bnez a2,5bac + 5ba0: 8082 ret dst[i] = src[i]; - 5bb6: 00e68023 sb a4,0(a3) + 5ba2: 00e68023 sb a4,0(a3) for (i = 0; i < n && src[i] != '\0'; i++) - 5bba: 0785 addi a5,a5,1 - 5bbc: 02f60263 beq a2,a5,5be0 - 5bc0: 00f58733 add a4,a1,a5 - 5bc4: 00074703 lbu a4,0(a4) + 5ba6: 0785 addi a5,a5,1 + 5ba8: 02f60263 beq a2,a5,5bcc + 5bac: 00f58733 add a4,a1,a5 + 5bb0: 00074703 lbu a4,0(a4) dst[i] = src[i]; - 5bc8: 00f506b3 add a3,a0,a5 + 5bb4: 00f506b3 add a3,a0,a5 for (i = 0; i < n && src[i] != '\0'; i++) - 5bcc: f76d bnez a4,5bb6 + 5bb8: f76d bnez a4,5ba2 for (; i < n; i++) - 5bce: 00c7f963 bgeu a5,a2,5be0 - 5bd2: 87b6 mv a5,a3 - 5bd4: 962a add a2,a2,a0 + 5bba: 00c7f963 bgeu a5,a2,5bcc + 5bbe: 87b6 mv a5,a3 + 5bc0: 962a add a2,a2,a0 dst[i] = '\0'; - 5bd6: 00078023 sb zero,0(a5) + 5bc2: 00078023 sb zero,0(a5) for (; i < n; i++) - 5bda: 0785 addi a5,a5,1 - 5bdc: fec79de3 bne a5,a2,5bd6 + 5bc6: 0785 addi a5,a5,1 + 5bc8: fec79de3 bne a5,a2,5bc2 return os; } - 5be0: 8082 ret + 5bcc: 8082 ret -0000000000005be2 : +0000000000005bce : char *strcat(char *dst, const char *src) { char *os = dst; while (*dst) - 5be2: 00054783 lbu a5,0(a0) - 5be6: cf91 beqz a5,5c02 - 5be8: 87aa mv a5,a0 - 5bea: 0017c703 lbu a4,1(a5) + 5bce: 00054783 lbu a5,0(a0) + 5bd2: cf91 beqz a5,5bee + 5bd4: 87aa mv a5,a0 + 5bd6: 0017c703 lbu a4,1(a5) dst++; - 5bee: 0785 addi a5,a5,1 + 5bda: 0785 addi a5,a5,1 while (*dst) - 5bf0: ff6d bnez a4,5bea + 5bdc: ff6d bnez a4,5bd6 while ((*dst++ = *src++) != 0) - 5bf2: 0005c703 lbu a4,0(a1) - 5bf6: 0785 addi a5,a5,1 - 5bf8: 0585 addi a1,a1,1 - 5bfa: fee78fa3 sb a4,-1(a5) - 5bfe: fb75 bnez a4,5bf2 + 5bde: 0005c703 lbu a4,0(a1) + 5be2: 0785 addi a5,a5,1 + 5be4: 0585 addi a1,a1,1 + 5be6: fee78fa3 sb a4,-1(a5) + 5bea: fb75 bnez a4,5bde ; return os; } - 5c00: 8082 ret + 5bec: 8082 ret while ((*dst++ = *src++) != 0) - 5c02: 0005c703 lbu a4,0(a1) + 5bee: 0005c703 lbu a4,0(a1) while (*dst) - 5c06: 87aa mv a5,a0 + 5bf2: 87aa mv a5,a0 while ((*dst++ = *src++) != 0) - 5c08: 0785 addi a5,a5,1 - 5c0a: fee78fa3 sb a4,-1(a5) - 5c0e: 0585 addi a1,a1,1 - 5c10: f36d bnez a4,5bf2 - 5c12: 8082 ret + 5bf4: 0785 addi a5,a5,1 + 5bf6: fee78fa3 sb a4,-1(a5) + 5bfa: 0585 addi a1,a1,1 + 5bfc: f36d bnez a4,5bde + 5bfe: 8082 ret -0000000000005c14 : +0000000000005c00 : while (*p) - 5c14: 00054783 lbu a5,0(a0) + 5c00: 00054783 lbu a5,0(a0) const char *p = s; - 5c18: 872a mv a4,a0 + 5c04: 872a mv a4,a0 while (*p) - 5c1a: c789 beqz a5,5c24 - 5c1c: 00174783 lbu a5,1(a4) + 5c06: c789 beqz a5,5c10 + 5c08: 00174783 lbu a5,1(a4) p++; - 5c20: 0705 addi a4,a4,1 + 5c0c: 0705 addi a4,a4,1 while (*p) - 5c22: ffed bnez a5,5c1c + 5c0e: ffed bnez a5,5c08 size_t dest_len = strlen(dst); size_t i; dst += dest_len; for (i = 0; i < n && src[i] != '\0'; i++) - 5c24: 86ba mv a3,a4 - 5c26: 4781 li a5,0 - 5c28: 88ba mv a7,a4 - 5c2a: ea01 bnez a2,5c3a - 5c2c: a839 j 5c4a + 5c10: 86ba mv a3,a4 + 5c12: 4781 li a5,0 + 5c14: 88ba mv a7,a4 + 5c16: ea01 bnez a2,5c26 + 5c18: a839 j 5c36 dst[i] = src[i]; - 5c2e: 01068023 sb a6,0(a3) + 5c1a: 01068023 sb a6,0(a3) for (i = 0; i < n && src[i] != '\0'; i++) - 5c32: 00188693 addi a3,a7,1 - 5c36: 00f60d63 beq a2,a5,5c50 - 5c3a: 00f58833 add a6,a1,a5 - 5c3e: 00084803 lbu a6,0(a6) - 5c42: 0785 addi a5,a5,1 + 5c1e: 00188693 addi a3,a7,1 + 5c22: 00f60d63 beq a2,a5,5c3c + 5c26: 00f58833 add a6,a1,a5 + 5c2a: 00084803 lbu a6,0(a6) + 5c2e: 0785 addi a5,a5,1 dst[i] = src[i]; - 5c44: 88b6 mv a7,a3 + 5c30: 88b6 mv a7,a3 for (i = 0; i < n && src[i] != '\0'; i++) - 5c46: fe0814e3 bnez a6,5c2e + 5c32: fe0814e3 bnez a6,5c1a dst[i] = '\0'; - 5c4a: 00088023 sb zero,0(a7) + 5c36: 00088023 sb zero,0(a7) return os; } - 5c4e: 8082 ret + 5c3a: 8082 ret dst[i] = '\0'; - 5c50: 00c708b3 add a7,a4,a2 - 5c54: 00088023 sb zero,0(a7) + 5c3c: 00c708b3 add a7,a4,a2 + 5c40: 00088023 sb zero,0(a7) } - 5c58: 8082 ret + 5c44: 8082 ret -0000000000005c5a : +0000000000005c46 : int strcmp(const char *p, const char *q) { while (*p && *p == *q) - 5c5a: 00054783 lbu a5,0(a0) - 5c5e: e791 bnez a5,5c6a - 5c60: a02d j 5c8a - 5c62: 00054783 lbu a5,0(a0) - 5c66: cf89 beqz a5,5c80 - 5c68: 85b6 mv a1,a3 - 5c6a: 0005c703 lbu a4,0(a1) + 5c46: 00054783 lbu a5,0(a0) + 5c4a: e791 bnez a5,5c56 + 5c4c: a02d j 5c76 + 5c4e: 00054783 lbu a5,0(a0) + 5c52: cf89 beqz a5,5c6c + 5c54: 85b6 mv a1,a3 + 5c56: 0005c703 lbu a4,0(a1) { p++; - 5c6e: 0505 addi a0,a0,1 + 5c5a: 0505 addi a0,a0,1 q++; - 5c70: 00158693 addi a3,a1,1 + 5c5c: 00158693 addi a3,a1,1 while (*p && *p == *q) - 5c74: fef707e3 beq a4,a5,5c62 + 5c60: fef707e3 beq a4,a5,5c4e } return (int)((unsigned char)*p - (unsigned char)*q); - 5c78: 0007851b sext.w a0,a5 + 5c64: 0007851b sext.w a0,a5 } - 5c7c: 9d19 subw a0,a0,a4 - 5c7e: 8082 ret + 5c68: 9d19 subw a0,a0,a4 + 5c6a: 8082 ret return (int)((unsigned char)*p - (unsigned char)*q); - 5c80: 0015c703 lbu a4,1(a1) - 5c84: 4501 li a0,0 + 5c6c: 0015c703 lbu a4,1(a1) + 5c70: 4501 li a0,0 } - 5c86: 9d19 subw a0,a0,a4 - 5c88: 8082 ret + 5c72: 9d19 subw a0,a0,a4 + 5c74: 8082 ret return (int)((unsigned char)*p - (unsigned char)*q); - 5c8a: 0005c703 lbu a4,0(a1) - 5c8e: 4501 li a0,0 - 5c90: b7f5 j 5c7c + 5c76: 0005c703 lbu a4,0(a1) + 5c7a: 4501 li a0,0 + 5c7c: b7f5 j 5c68 -0000000000005c92 : +0000000000005c7e : int strncmp(const char *s1, const char *s2, size_t n) { if (n == 0) - 5c92: ca0d beqz a2,5cc4 + 5c7e: ca0d beqz a2,5cb0 return 0; while (n-- > 0 && *s1 && *s1 == *s2) - 5c94: 00054783 lbu a5,0(a0) - 5c98: 167d addi a2,a2,-1 - 5c9a: 00c506b3 add a3,a0,a2 - 5c9e: eb89 bnez a5,5cb0 - 5ca0: a80d j 5cd2 + 5c80: 00054783 lbu a5,0(a0) + 5c84: 167d addi a2,a2,-1 + 5c86: 00c506b3 add a3,a0,a2 + 5c8a: eb89 bnez a5,5c9c + 5c8c: a80d j 5cbe { if (n == 0 || *s1 == '\0') - 5ca2: 00d50d63 beq a0,a3,5cbc + 5c8e: 00d50d63 beq a0,a3,5ca8 while (n-- > 0 && *s1 && *s1 == *s2) - 5ca6: 00154783 lbu a5,1(a0) + 5c92: 00154783 lbu a5,1(a0) break; s1++; - 5caa: 0505 addi a0,a0,1 + 5c96: 0505 addi a0,a0,1 while (n-- > 0 && *s1 && *s1 == *s2) - 5cac: cf91 beqz a5,5cc8 - 5cae: 85b2 mv a1,a2 - 5cb0: 0005c703 lbu a4,0(a1) + 5c98: cf91 beqz a5,5cb4 + 5c9a: 85b2 mv a1,a2 + 5c9c: 0005c703 lbu a4,0(a1) s2++; - 5cb4: 00158613 addi a2,a1,1 + 5ca0: 00158613 addi a2,a1,1 while (n-- > 0 && *s1 && *s1 == *s2) - 5cb8: fef705e3 beq a4,a5,5ca2 + 5ca4: fef705e3 beq a4,a5,5c8e } return (int)((unsigned char)*s1 - (unsigned char)*s2); - 5cbc: 0007851b sext.w a0,a5 - 5cc0: 9d19 subw a0,a0,a4 - 5cc2: 8082 ret + 5ca8: 0007851b sext.w a0,a5 + 5cac: 9d19 subw a0,a0,a4 + 5cae: 8082 ret return 0; - 5cc4: 4501 li a0,0 + 5cb0: 4501 li a0,0 } - 5cc6: 8082 ret + 5cb2: 8082 ret return (int)((unsigned char)*s1 - (unsigned char)*s2); - 5cc8: 0015c703 lbu a4,1(a1) - 5ccc: 4501 li a0,0 - 5cce: 9d19 subw a0,a0,a4 - 5cd0: 8082 ret - 5cd2: 0005c703 lbu a4,0(a1) - 5cd6: 4501 li a0,0 - 5cd8: b7e5 j 5cc0 + 5cb4: 0015c703 lbu a4,1(a1) + 5cb8: 4501 li a0,0 + 5cba: 9d19 subw a0,a0,a4 + 5cbc: 8082 ret + 5cbe: 0005c703 lbu a4,0(a1) + 5cc2: 4501 li a0,0 + 5cc4: b7e5 j 5cac -0000000000005cda : +0000000000005cc6 : char *strchr(const char *s, int c) { while (*s != (char)c) - 5cda: 0ff5f593 zext.b a1,a1 - 5cde: a019 j 5ce4 + 5cc6: 0ff5f593 zext.b a1,a1 + 5cca: a019 j 5cd0 { if (!*s++) - 5ce0: 0505 addi a0,a0,1 - 5ce2: c791 beqz a5,5cee + 5ccc: 0505 addi a0,a0,1 + 5cce: c791 beqz a5,5cda while (*s != (char)c) - 5ce4: 00054783 lbu a5,0(a0) - 5ce8: feb79ce3 bne a5,a1,5ce0 - 5cec: 8082 ret + 5cd0: 00054783 lbu a5,0(a0) + 5cd4: feb79ce3 bne a5,a1,5ccc + 5cd8: 8082 ret return NULL; - 5cee: 4501 li a0,0 + 5cda: 4501 li a0,0 } return (char *)s; } - 5cf0: 8082 ret + 5cdc: 8082 ret -0000000000005cf2 : +0000000000005cde : char *strrchr(const char *s, int c) { - 5cf2: 87aa mv a5,a0 + 5cde: 87aa mv a5,a0 const char *last = NULL; do { if (*s == (char)c) - 5cf4: 0ff5f593 zext.b a1,a1 + 5ce0: 0ff5f593 zext.b a1,a1 const char *last = NULL; - 5cf8: 4501 li a0,0 + 5ce4: 4501 li a0,0 if (*s == (char)c) - 5cfa: 0007c703 lbu a4,0(a5) - 5cfe: 00e59363 bne a1,a4,5d04 + 5ce6: 0007c703 lbu a4,0(a5) + 5cea: 00e59363 bne a1,a4,5cf0 last = s; - 5d02: 853e mv a0,a5 + 5cee: 853e mv a0,a5 } while (*s++); - 5d04: 0785 addi a5,a5,1 - 5d06: fb75 bnez a4,5cfa + 5cf0: 0785 addi a5,a5,1 + 5cf2: fb75 bnez a4,5ce6 return (char *)last; } - 5d08: 8082 ret + 5cf4: 8082 ret -0000000000005d0a : +0000000000005cf6 : while (*p) - 5d0a: 0005c883 lbu a7,0(a1) - 5d0e: 04088a63 beqz a7,5d62 + 5cf6: 0005c883 lbu a7,0(a1) + 5cfa: 04088a63 beqz a7,5d4e const char *p = s; - 5d12: 87ae mv a5,a1 + 5cfe: 87ae mv a5,a1 while (*p) - 5d14: 0017c703 lbu a4,1(a5) + 5d00: 0017c703 lbu a4,1(a5) p++; - 5d18: 0785 addi a5,a5,1 + 5d04: 0785 addi a5,a5,1 while (*p) - 5d1a: ff6d bnez a4,5d14 + 5d06: ff6d bnez a4,5d00 return (size_t)(p - s); - 5d1c: 40b78833 sub a6,a5,a1 + 5d08: 40b78833 sub a6,a5,a1 char *strstr(const char *haystack, const char *needle) { size_t n_len = strlen(needle); if (n_len == 0) - 5d20: 04b78163 beq a5,a1,5d62 + 5d0c: 04b78163 beq a5,a1,5d4e return (char *)haystack; for (; *haystack; haystack++) - 5d24: 00054783 lbu a5,0(a0) - 5d28: cf85 beqz a5,5d60 - 5d2a: 187d addi a6,a6,-1 - 5d2c: 982a add a6,a6,a0 + 5d10: 00054783 lbu a5,0(a0) + 5d14: cf85 beqz a5,5d4c + 5d16: 187d addi a6,a6,-1 + 5d18: 982a add a6,a6,a0 { if (*haystack != *needle) - 5d2e: 02f89463 bne a7,a5,5d56 + 5d1a: 02f89463 bne a7,a5,5d42 while (n-- > 0 && *s1 && *s1 == *s2) - 5d32: 00054703 lbu a4,0(a0) - 5d36: 8646 mv a2,a7 - 5d38: 86ae mv a3,a1 - 5d3a: 87aa mv a5,a0 - 5d3c: eb11 bnez a4,5d50 - 5d3e: a821 j 5d56 + 5d1e: 00054703 lbu a4,0(a0) + 5d22: 8646 mv a2,a7 + 5d24: 86ae mv a3,a1 + 5d26: 87aa mv a5,a0 + 5d28: eb11 bnez a4,5d3c + 5d2a: a821 j 5d42 if (n == 0 || *s1 == '\0') - 5d40: 03078163 beq a5,a6,5d62 + 5d2c: 03078163 beq a5,a6,5d4e while (n-- > 0 && *s1 && *s1 == *s2) - 5d44: 0017c703 lbu a4,1(a5) + 5d30: 0017c703 lbu a4,1(a5) return (int)((unsigned char)*s1 - (unsigned char)*s2); - 5d48: 0006c603 lbu a2,0(a3) + 5d34: 0006c603 lbu a2,0(a3) s1++; - 5d4c: 0785 addi a5,a5,1 + 5d38: 0785 addi a5,a5,1 while (n-- > 0 && *s1 && *s1 == *s2) - 5d4e: cb19 beqz a4,5d64 + 5d3a: cb19 beqz a4,5d50 s2++; - 5d50: 0685 addi a3,a3,1 + 5d3c: 0685 addi a3,a3,1 while (n-- > 0 && *s1 && *s1 == *s2) - 5d52: fee607e3 beq a2,a4,5d40 + 5d3e: fee607e3 beq a2,a4,5d2c for (; *haystack; haystack++) - 5d56: 00154783 lbu a5,1(a0) - 5d5a: 0805 addi a6,a6,1 - 5d5c: 0505 addi a0,a0,1 - 5d5e: fbe1 bnez a5,5d2e + 5d42: 00154783 lbu a5,1(a0) + 5d46: 0805 addi a6,a6,1 + 5d48: 0505 addi a0,a0,1 + 5d4a: fbe1 bnez a5,5d1a continue; if (strncmp(haystack, needle, n_len) == 0) return (char *)haystack; } return NULL; - 5d60: 4501 li a0,0 + 5d4c: 4501 li a0,0 } - 5d62: 8082 ret + 5d4e: 8082 ret if (strncmp(haystack, needle, n_len) == 0) - 5d64: de7d beqz a2,5d62 + 5d50: de7d beqz a2,5d4e for (; *haystack; haystack++) - 5d66: 00154783 lbu a5,1(a0) - 5d6a: 0805 addi a6,a6,1 - 5d6c: 0505 addi a0,a0,1 - 5d6e: f3e1 bnez a5,5d2e - 5d70: bfc5 j 5d60 + 5d52: 00154783 lbu a5,1(a0) + 5d56: 0805 addi a6,a6,1 + 5d58: 0505 addi a0,a0,1 + 5d5a: f3e1 bnez a5,5d1a + 5d5c: bfc5 j 5d4c -0000000000005d72 : +0000000000005d5e : char *strdup(const char *s) { - 5d72: 1101 addi sp,sp,-32 - 5d74: e426 sd s1,8(sp) - 5d76: ec06 sd ra,24(sp) - 5d78: e822 sd s0,16(sp) + 5d5e: 1101 addi sp,sp,-32 + 5d60: e426 sd s1,8(sp) + 5d62: ec06 sd ra,24(sp) + 5d64: e822 sd s0,16(sp) while (*p) - 5d7a: 00054783 lbu a5,0(a0) + 5d66: 00054783 lbu a5,0(a0) { - 5d7e: 84aa mv s1,a0 + 5d6a: 84aa mv s1,a0 while (*p) - 5d80: cb8d beqz a5,5db2 + 5d6c: cb8d beqz a5,5d9e const char *p = s; - 5d82: 862a mv a2,a0 + 5d6e: 862a mv a2,a0 while (*p) - 5d84: 00164783 lbu a5,1(a2) + 5d70: 00164783 lbu a5,1(a2) p++; - 5d88: 0605 addi a2,a2,1 + 5d74: 0605 addi a2,a2,1 while (*p) - 5d8a: ffed bnez a5,5d84 + 5d76: ffed bnez a5,5d70 return (size_t)(p - s); - 5d8c: 8e05 sub a2,a2,s1 + 5d78: 8e05 sub a2,a2,s1 size_t len = strlen(s) + 1; - 5d8e: 00160413 addi s0,a2,1 + 5d7a: 00160413 addi s0,a2,1 char *new_str = (char *)malloc(len); - 5d92: 8522 mv a0,s0 - 5d94: f4eff0ef jal 54e2 + 5d7e: 8522 mv a0,s0 + 5d80: f4eff0ef jal 54ce if (new_str == NULL) - 5d98: c901 beqz a0,5da8 + 5d84: c901 beqz a0,5d94 return memmove(vdst, vsrc, n); - 5d9a: 8622 mv a2,s0 + 5d86: 8622 mv a2,s0 return NULL; return (char *)memcpy(new_str, s, len); } - 5d9c: 6442 ld s0,16(sp) - 5d9e: 60e2 ld ra,24(sp) + 5d88: 6442 ld s0,16(sp) + 5d8a: 60e2 ld ra,24(sp) return memmove(vdst, vsrc, n); - 5da0: 85a6 mv a1,s1 + 5d8c: 85a6 mv a1,s1 } - 5da2: 64a2 ld s1,8(sp) - 5da4: 6105 addi sp,sp,32 + 5d8e: 64a2 ld s1,8(sp) + 5d90: 6105 addi sp,sp,32 return memmove(vdst, vsrc, n); - 5da6: bbb9 j 5b04 + 5d92: bbb9 j 5af0 } - 5da8: 60e2 ld ra,24(sp) - 5daa: 6442 ld s0,16(sp) - 5dac: 64a2 ld s1,8(sp) - 5dae: 6105 addi sp,sp,32 - 5db0: 8082 ret + 5d94: 60e2 ld ra,24(sp) + 5d96: 6442 ld s0,16(sp) + 5d98: 64a2 ld s1,8(sp) + 5d9a: 6105 addi sp,sp,32 + 5d9c: 8082 ret while (*p) - 5db2: 4405 li s0,1 - 5db4: bff9 j 5d92 + 5d9e: 4405 li s0,1 + 5da0: bff9 j 5d7e -0000000000005db6 : - 5db6: 0005c783 lbu a5,0(a1) +0000000000005da2 : + 5da2: 0005c783 lbu a5,0(a1) size_t strlcpy(char *dst, const char *src, size_t size) { - 5dba: 1101 addi sp,sp,-32 - 5dbc: ec06 sd ra,24(sp) - 5dbe: e822 sd s0,16(sp) - 5dc0: 86b2 mv a3,a2 + 5da6: 1101 addi sp,sp,-32 + 5da8: ec06 sd ra,24(sp) + 5daa: e822 sd s0,16(sp) + 5dac: 86b2 mv a3,a2 while (*p) - 5dc2: cf8d beqz a5,5dfc + 5dae: cf8d beqz a5,5de8 const char *p = s; - 5dc4: 87ae mv a5,a1 + 5db0: 87ae mv a5,a1 while (*p) - 5dc6: 0017c703 lbu a4,1(a5) + 5db2: 0017c703 lbu a4,1(a5) p++; - 5dca: 0785 addi a5,a5,1 + 5db6: 0785 addi a5,a5,1 while (*p) - 5dcc: ff6d bnez a4,5dc6 + 5db8: ff6d bnez a4,5db2 return (size_t)(p - s); - 5dce: 40b78433 sub s0,a5,a1 + 5dba: 40b78433 sub s0,a5,a1 size_t src_len = strlen(src); if (size > 0) - 5dd2: c285 beqz a3,5df2 - 5dd4: e426 sd s1,8(sp) + 5dbe: c285 beqz a3,5dde + 5dc0: e426 sd s1,8(sp) { size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 5dd6: fff68613 addi a2,a3,-1 + 5dc2: fff68613 addi a2,a3,-1 memcpy(dst, src, copy_len); dst[copy_len] = '\0'; - 5dda: 00c504b3 add s1,a0,a2 + 5dc6: 00c504b3 add s1,a0,a2 size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 5dde: 00d47563 bgeu s0,a3,5de8 + 5dca: 00d47563 bgeu s0,a3,5dd4 dst[copy_len] = '\0'; - 5de2: 008504b3 add s1,a0,s0 + 5dce: 008504b3 add s1,a0,s0 size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 5de6: 8622 mv a2,s0 + 5dd2: 8622 mv a2,s0 return memmove(vdst, vsrc, n); - 5de8: d1dff0ef jal 5b04 + 5dd4: d1dff0ef jal 5af0 dst[copy_len] = '\0'; - 5dec: 00048023 sb zero,0(s1) + 5dd8: 00048023 sb zero,0(s1) } return src_len; - 5df0: 64a2 ld s1,8(sp) + 5ddc: 64a2 ld s1,8(sp) } - 5df2: 60e2 ld ra,24(sp) - 5df4: 8522 mv a0,s0 - 5df6: 6442 ld s0,16(sp) - 5df8: 6105 addi sp,sp,32 - 5dfa: 8082 ret + 5dde: 60e2 ld ra,24(sp) + 5de0: 8522 mv a0,s0 + 5de2: 6442 ld s0,16(sp) + 5de4: 6105 addi sp,sp,32 + 5de6: 8082 ret if (size > 0) - 5dfc: e219 bnez a2,5e02 + 5de8: e219 bnez a2,5dee return (size_t)(p - s); - 5dfe: 4401 li s0,0 - 5e00: bfcd j 5df2 - 5e02: e426 sd s1,8(sp) - 5e04: 4401 li s0,0 + 5dea: 4401 li s0,0 + 5dec: bfcd j 5dde + 5dee: e426 sd s1,8(sp) + 5df0: 4401 li s0,0 if (size > 0) - 5e06: 84aa mv s1,a0 + 5df2: 84aa mv s1,a0 size_t copy_len = (src_len >= size) ? size - 1 : src_len; - 5e08: 4601 li a2,0 - 5e0a: bff9 j 5de8 + 5df4: 4601 li a2,0 + 5df6: bff9 j 5dd4 -0000000000005e0c : +0000000000005df8 : while (*p) - 5e0c: 0005c783 lbu a5,0(a1) + 5df8: 0005c783 lbu a5,0(a1) size_t strlcat(char *dst, const char *src, size_t size) { - 5e10: 7179 addi sp,sp,-48 - 5e12: e84a sd s2,16(sp) - 5e14: f406 sd ra,40(sp) - 5e16: f022 sd s0,32(sp) - 5e18: ec26 sd s1,24(sp) - 5e1a: 892a mv s2,a0 + 5dfc: 7179 addi sp,sp,-48 + 5dfe: e84a sd s2,16(sp) + 5e00: f406 sd ra,40(sp) + 5e02: f022 sd s0,32(sp) + 5e04: ec26 sd s1,24(sp) + 5e06: 892a mv s2,a0 while (*p) - 5e1c: c7b5 beqz a5,5e88 + 5e08: c7b5 beqz a5,5e74 const char *p = s; - 5e1e: 87ae mv a5,a1 + 5e0a: 87ae mv a5,a1 while (*p) - 5e20: 0017c703 lbu a4,1(a5) + 5e0c: 0017c703 lbu a4,1(a5) p++; - 5e24: 0785 addi a5,a5,1 + 5e10: 0785 addi a5,a5,1 while (*p) - 5e26: ff6d bnez a4,5e20 + 5e12: ff6d bnez a4,5e0c return (size_t)(p - s); - 5e28: 40b784b3 sub s1,a5,a1 + 5e14: 40b784b3 sub s1,a5,a1 size_t dst_len = 0; - 5e2c: 4401 li s0,0 + 5e18: 4401 li s0,0 size_t src_len = strlen(src); while (dst_len < size && dst[dst_len] != '\0') - 5e2e: e609 bnez a2,5e38 - 5e30: a0a1 j 5e78 + 5e1a: e609 bnez a2,5e24 + 5e1c: a0a1 j 5e64 dst_len++; - 5e32: 0405 addi s0,s0,1 + 5e1e: 0405 addi s0,s0,1 while (dst_len < size && dst[dst_len] != '\0') - 5e34: 04860263 beq a2,s0,5e78 - 5e38: 00890533 add a0,s2,s0 - 5e3c: 00054783 lbu a5,0(a0) - 5e40: fbed bnez a5,5e32 + 5e20: 04860263 beq a2,s0,5e64 + 5e24: 00890533 add a0,s2,s0 + 5e28: 00054783 lbu a5,0(a0) + 5e2c: fbed bnez a5,5e1e if (dst_len == size) - 5e42: 02860b63 beq a2,s0,5e78 - 5e46: e44e sd s3,8(sp) + 5e2e: 02860b63 beq a2,s0,5e64 + 5e32: e44e sd s3,8(sp) return size + src_len; size_t space_left = size - dst_len; - 5e48: 408607b3 sub a5,a2,s0 + 5e34: 408607b3 sub a5,a2,s0 size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; - 5e4c: 89a6 mv s3,s1 - 5e4e: 02f4f263 bgeu s1,a5,5e72 + 5e38: 89a6 mv s3,s1 + 5e3a: 02f4f263 bgeu s1,a5,5e5e memcpy(dst + dst_len, src, copy_len); dst[dst_len + copy_len] = '\0'; - 5e52: 994e add s2,s2,s3 - 5e54: 9922 add s2,s2,s0 + 5e3e: 994e add s2,s2,s3 + 5e40: 9922 add s2,s2,s0 return memmove(vdst, vsrc, n); - 5e56: 864e mv a2,s3 - 5e58: cadff0ef jal 5b04 + 5e42: 864e mv a2,s3 + 5e44: cadff0ef jal 5af0 dst[dst_len + copy_len] = '\0'; - 5e5c: 00090023 sb zero,0(s2) # 1000 + 5e48: 00090023 sb zero,0(s2) # 1000 return dst_len + src_len; - 5e60: 00940533 add a0,s0,s1 + 5e4c: 00940533 add a0,s0,s1 } - 5e64: 70a2 ld ra,40(sp) - 5e66: 7402 ld s0,32(sp) + 5e50: 70a2 ld ra,40(sp) + 5e52: 7402 ld s0,32(sp) return dst_len + src_len; - 5e68: 69a2 ld s3,8(sp) + 5e54: 69a2 ld s3,8(sp) } - 5e6a: 64e2 ld s1,24(sp) - 5e6c: 6942 ld s2,16(sp) - 5e6e: 6145 addi sp,sp,48 - 5e70: 8082 ret + 5e56: 64e2 ld s1,24(sp) + 5e58: 6942 ld s2,16(sp) + 5e5a: 6145 addi sp,sp,48 + 5e5c: 8082 ret size_t copy_len = (src_len >= space_left) ? space_left - 1 : src_len; - 5e72: fff78993 addi s3,a5,-1 - 5e76: bff1 j 5e52 + 5e5e: fff78993 addi s3,a5,-1 + 5e62: bff1 j 5e3e } - 5e78: 70a2 ld ra,40(sp) - 5e7a: 7402 ld s0,32(sp) - 5e7c: 6942 ld s2,16(sp) + 5e64: 70a2 ld ra,40(sp) + 5e66: 7402 ld s0,32(sp) + 5e68: 6942 ld s2,16(sp) return size + src_len; - 5e7e: 00960533 add a0,a2,s1 + 5e6a: 00960533 add a0,a2,s1 } - 5e82: 64e2 ld s1,24(sp) - 5e84: 6145 addi sp,sp,48 - 5e86: 8082 ret + 5e6e: 64e2 ld s1,24(sp) + 5e70: 6145 addi sp,sp,48 + 5e72: 8082 ret while (*p) - 5e88: 4481 li s1,0 - 5e8a: b74d j 5e2c + 5e74: 4481 li s1,0 + 5e76: b74d j 5e18 -0000000000005e8c : +0000000000005e78 : size_t strspn(const char *s, const char *accept) { const char *p = s; const char *a; while (*p) - 5e8c: 00054683 lbu a3,0(a0) - 5e90: c695 beqz a3,5ebc + 5e78: 00054683 lbu a3,0(a0) + 5e7c: c695 beqz a3,5ea8 { for (a = accept; *a; a++) - 5e92: 0005c803 lbu a6,0(a1) - 5e96: 862a mv a2,a0 - 5e98: 00080f63 beqz a6,5eb6 - 5e9c: 87ae mv a5,a1 - 5e9e: 8742 mv a4,a6 - 5ea0: a021 j 5ea8 - 5ea2: 0007c703 lbu a4,0(a5) - 5ea6: cb01 beqz a4,5eb6 - 5ea8: 0785 addi a5,a5,1 + 5e7e: 0005c803 lbu a6,0(a1) + 5e82: 862a mv a2,a0 + 5e84: 00080f63 beqz a6,5ea2 + 5e88: 87ae mv a5,a1 + 5e8a: 8742 mv a4,a6 + 5e8c: a021 j 5e94 + 5e8e: 0007c703 lbu a4,0(a5) + 5e92: cb01 beqz a4,5ea2 + 5e94: 0785 addi a5,a5,1 { if (*p == *a) - 5eaa: fee69ce3 bne a3,a4,5ea2 + 5e96: fee69ce3 bne a3,a4,5e8e while (*p) - 5eae: 00164683 lbu a3,1(a2) + 5e9a: 00164683 lbu a3,1(a2) break; } if (*a == '\0') return (size_t)(p - s); p++; - 5eb2: 0605 addi a2,a2,1 + 5e9e: 0605 addi a2,a2,1 while (*p) - 5eb4: f6e5 bnez a3,5e9c + 5ea0: f6e5 bnez a3,5e88 } return (size_t)(p - s); - 5eb6: 40a60533 sub a0,a2,a0 - 5eba: 8082 ret + 5ea2: 40a60533 sub a0,a2,a0 + 5ea6: 8082 ret while (*p) - 5ebc: 4501 li a0,0 + 5ea8: 4501 li a0,0 } - 5ebe: 8082 ret + 5eaa: 8082 ret -0000000000005ec0 : +0000000000005eac : size_t strcspn(const char *s, const char *reject) { const char *p = s; const char *r; while (*p) - 5ec0: 00054683 lbu a3,0(a0) - 5ec4: ce85 beqz a3,5efc + 5eac: 00054683 lbu a3,0(a0) + 5eb0: ce85 beqz a3,5ee8 { for (r = reject; *r; r++) - 5ec6: 0005c803 lbu a6,0(a1) + 5eb2: 0005c803 lbu a6,0(a1) const char *p = s; - 5eca: 862a mv a2,a0 + 5eb6: 862a mv a2,a0 for (r = reject; *r; r++) - 5ecc: 02080363 beqz a6,5ef2 - 5ed0: 87ae mv a5,a1 - 5ed2: 8742 mv a4,a6 - 5ed4: a021 j 5edc - 5ed6: 0007c703 lbu a4,0(a5) - 5eda: c719 beqz a4,5ee8 - 5edc: 0785 addi a5,a5,1 + 5eb8: 02080363 beqz a6,5ede + 5ebc: 87ae mv a5,a1 + 5ebe: 8742 mv a4,a6 + 5ec0: a021 j 5ec8 + 5ec2: 0007c703 lbu a4,0(a5) + 5ec6: c719 beqz a4,5ed4 + 5ec8: 0785 addi a5,a5,1 { if (*p == *r) - 5ede: fed71ce3 bne a4,a3,5ed6 + 5eca: fed71ce3 bne a4,a3,5ec2 return (size_t)(p - s); } p++; } return (size_t)(p - s); - 5ee2: 40a60533 sub a0,a2,a0 - 5ee6: 8082 ret + 5ece: 40a60533 sub a0,a2,a0 + 5ed2: 8082 ret while (*p) - 5ee8: 00164683 lbu a3,1(a2) + 5ed4: 00164683 lbu a3,1(a2) p++; - 5eec: 0605 addi a2,a2,1 + 5ed8: 0605 addi a2,a2,1 while (*p) - 5eee: f2ed bnez a3,5ed0 - 5ef0: bfcd j 5ee2 - 5ef2: 00164683 lbu a3,1(a2) + 5eda: f2ed bnez a3,5ebc + 5edc: bfcd j 5ece + 5ede: 00164683 lbu a3,1(a2) p++; - 5ef6: 0605 addi a2,a2,1 + 5ee2: 0605 addi a2,a2,1 while (*p) - 5ef8: feed bnez a3,5ef2 - 5efa: b7e5 j 5ee2 - 5efc: 4501 li a0,0 + 5ee4: feed bnez a3,5ede + 5ee6: b7e5 j 5ece + 5ee8: 4501 li a0,0 } - 5efe: 8082 ret + 5eea: 8082 ret -0000000000005f00 : +0000000000005eec : char *strpbrk(const char *s, const char *accept) { const char *a; while (*s) - 5f00: 00054683 lbu a3,0(a0) - 5f04: c295 beqz a3,5f28 + 5eec: 00054683 lbu a3,0(a0) + 5ef0: c295 beqz a3,5f14 { for (a = accept; *a; a++) - 5f06: 0005c603 lbu a2,0(a1) - 5f0a: c20d beqz a2,5f2c - 5f0c: 87ae mv a5,a1 - 5f0e: 8732 mv a4,a2 - 5f10: a021 j 5f18 - 5f12: 0007c703 lbu a4,0(a5) - 5f16: c709 beqz a4,5f20 - 5f18: 0785 addi a5,a5,1 + 5ef2: 0005c603 lbu a2,0(a1) + 5ef6: c20d beqz a2,5f18 + 5ef8: 87ae mv a5,a1 + 5efa: 8732 mv a4,a2 + 5efc: a021 j 5f04 + 5efe: 0007c703 lbu a4,0(a5) + 5f02: c709 beqz a4,5f0c + 5f04: 0785 addi a5,a5,1 { if (*s == *a) - 5f1a: fed71ce3 bne a4,a3,5f12 + 5f06: fed71ce3 bne a4,a3,5efe return (char *)s; } s++; } return NULL; } - 5f1e: 8082 ret + 5f0a: 8082 ret while (*s) - 5f20: 00154683 lbu a3,1(a0) + 5f0c: 00154683 lbu a3,1(a0) s++; - 5f24: 0505 addi a0,a0,1 + 5f10: 0505 addi a0,a0,1 while (*s) - 5f26: f2fd bnez a3,5f0c + 5f12: f2fd bnez a3,5ef8 return NULL; - 5f28: 4501 li a0,0 + 5f14: 4501 li a0,0 } - 5f2a: 8082 ret + 5f16: 8082 ret while (*s) - 5f2c: 00154683 lbu a3,1(a0) + 5f18: 00154683 lbu a3,1(a0) s++; - 5f30: 0505 addi a0,a0,1 + 5f1c: 0505 addi a0,a0,1 while (*s) - 5f32: feed bnez a3,5f2c - 5f34: bfd5 j 5f28 + 5f1e: feed bnez a3,5f18 + 5f20: bfd5 j 5f14 -0000000000005f36 : +0000000000005f22 : char *strtok(char *str, const char *delim) { static char *olds; char *token; if (str == NULL) - 5f36: 00003897 auipc a7,0x3 - 5f3a: ef288893 addi a7,a7,-270 # 8e28 - 5f3e: cd25 beqz a0,5fb6 + 5f22: 00003897 auipc a7,0x3 + 5f26: f3688893 addi a7,a7,-202 # 8e58 + 5f2a: cd25 beqz a0,5fa2 while (*p) - 5f40: 00054683 lbu a3,0(a0) - 5f44: c295 beqz a3,5f68 + 5f2c: 00054683 lbu a3,0(a0) + 5f30: c295 beqz a3,5f54 for (a = accept; *a; a++) - 5f46: 0005c803 lbu a6,0(a1) - 5f4a: 02080463 beqz a6,5f72 - 5f4e: 87ae mv a5,a1 - 5f50: 8742 mv a4,a6 - 5f52: a021 j 5f5a - 5f54: 0007c703 lbu a4,0(a5) - 5f58: cf09 beqz a4,5f72 - 5f5a: 0785 addi a5,a5,1 + 5f32: 0005c803 lbu a6,0(a1) + 5f36: 02080463 beqz a6,5f5e + 5f3a: 87ae mv a5,a1 + 5f3c: 8742 mv a4,a6 + 5f3e: a021 j 5f46 + 5f40: 0007c703 lbu a4,0(a5) + 5f44: cf09 beqz a4,5f5e + 5f46: 0785 addi a5,a5,1 if (*p == *a) - 5f5c: fee69ce3 bne a3,a4,5f54 + 5f48: fee69ce3 bne a3,a4,5f40 while (*p) - 5f60: 00154683 lbu a3,1(a0) + 5f4c: 00154683 lbu a3,1(a0) p++; - 5f64: 0505 addi a0,a0,1 + 5f50: 0505 addi a0,a0,1 while (*p) - 5f66: f6e5 bnez a3,5f4e - 5f68: 87aa mv a5,a0 + 5f52: f6e5 bnez a3,5f3a + 5f54: 87aa mv a5,a0 str = olds; str += strspn(str, delim); if (*str == '\0') { olds = str; - 5f6a: 00f8b023 sd a5,0(a7) + 5f56: 00f8b023 sd a5,0(a7) return NULL; - 5f6e: 4501 li a0,0 + 5f5a: 4501 li a0,0 *str = '\0'; olds = str + 1; } return token; } - 5f70: 8082 ret + 5f5c: 8082 ret if (*str == '\0') - 5f72: 00054603 lbu a2,0(a0) - 5f76: da6d beqz a2,5f68 - 5f78: 86aa mv a3,a0 + 5f5e: 00054603 lbu a2,0(a0) + 5f62: da6d beqz a2,5f54 + 5f64: 86aa mv a3,a0 for (a = accept; *a; a++) - 5f7a: 04080163 beqz a6,5fbc - 5f7e: 8742 mv a4,a6 - 5f80: 87ae mv a5,a1 - 5f82: a021 j 5f8a - 5f84: 0007c703 lbu a4,0(a5) - 5f88: cb19 beqz a4,5f9e - 5f8a: 0785 addi a5,a5,1 + 5f66: 04080163 beqz a6,5fa8 + 5f6a: 8742 mv a4,a6 + 5f6c: 87ae mv a5,a1 + 5f6e: a021 j 5f76 + 5f70: 0007c703 lbu a4,0(a5) + 5f74: cb19 beqz a4,5f8a + 5f76: 0785 addi a5,a5,1 if (*s == *a) - 5f8c: fee61ce3 bne a2,a4,5f84 + 5f78: fee61ce3 bne a2,a4,5f70 olds = str + 1; - 5f90: 00168793 addi a5,a3,1 + 5f7c: 00168793 addi a5,a3,1 *str = '\0'; - 5f94: 00068023 sb zero,0(a3) + 5f80: 00068023 sb zero,0(a3) olds = str; - 5f98: 00f8b023 sd a5,0(a7) + 5f84: 00f8b023 sd a5,0(a7) } - 5f9c: 8082 ret + 5f88: 8082 ret while (*s) - 5f9e: 0016c603 lbu a2,1(a3) + 5f8a: 0016c603 lbu a2,1(a3) s++; - 5fa2: 0685 addi a3,a3,1 + 5f8e: 0685 addi a3,a3,1 while (*s) - 5fa4: fe69 bnez a2,5f7e - 5fa6: 87aa mv a5,a0 + 5f90: fe69 bnez a2,5f6a + 5f92: 87aa mv a5,a0 while (*s != (char)c) - 5fa8: 0017c703 lbu a4,1(a5) + 5f94: 0017c703 lbu a4,1(a5) if (!*s++) - 5fac: 0785 addi a5,a5,1 + 5f98: 0785 addi a5,a5,1 while (*s != (char)c) - 5fae: ff6d bnez a4,5fa8 + 5f9a: ff6d bnez a4,5f94 olds = str; - 5fb0: 00f8b023 sd a5,0(a7) + 5f9c: 00f8b023 sd a5,0(a7) } - 5fb4: 8082 ret + 5fa0: 8082 ret str = olds; - 5fb6: 0008b503 ld a0,0(a7) - 5fba: b759 j 5f40 + 5fa2: 0008b503 ld a0,0(a7) + 5fa6: b759 j 5f2c while (*s) - 5fbc: 0016c603 lbu a2,1(a3) + 5fa8: 0016c603 lbu a2,1(a3) s++; - 5fc0: 0685 addi a3,a3,1 + 5fac: 0685 addi a3,a3,1 while (*s) - 5fc2: fe6d bnez a2,5fbc - 5fc4: b7cd j 5fa6 + 5fae: fe6d bnez a2,5fa8 + 5fb0: b7cd j 5f92 -0000000000005fc6 : +0000000000005fb2 : char *strerror(int errnum) { - 5fc6: 87aa mv a5,a0 + 5fb2: 87aa mv a5,a0 switch (errnum) - 5fc8: cd09 beqz a0,5fe2 - 5fca: 4731 li a4,12 - 5fcc: 00000517 auipc a0,0x0 - 5fd0: 24450513 addi a0,a0,580 # 6210 <_GLOBAL__sub_I__ZSt3cin+0x20c> - 5fd4: 00e78b63 beq a5,a4,5fea + 5fb4: cd09 beqz a0,5fce + 5fb6: 4731 li a4,12 + 5fb8: 00000517 auipc a0,0x0 + 5fbc: 2c050513 addi a0,a0,704 # 6278 <_GLOBAL__sub_I__ZSt3cin+0x288> + 5fc0: 00e78b63 beq a5,a4,5fd6 return "Success"; // case EINVAL: return "Invalid argument"; case ENOMEM: return "Out of memory"; default: return "Unknown error"; - 5fd8: 00000517 auipc a0,0x0 - 5fdc: 24850513 addi a0,a0,584 # 6220 <_GLOBAL__sub_I__ZSt3cin+0x21c> - 5fe0: 8082 ret + 5fc4: 00000517 auipc a0,0x0 + 5fc8: 2c450513 addi a0,a0,708 # 6288 <_GLOBAL__sub_I__ZSt3cin+0x298> + 5fcc: 8082 ret return "Success"; - 5fe2: 00000517 auipc a0,0x0 - 5fe6: 22650513 addi a0,a0,550 # 6208 <_GLOBAL__sub_I__ZSt3cin+0x204> + 5fce: 00000517 auipc a0,0x0 + 5fd2: 2a250513 addi a0,a0,674 # 6270 <_GLOBAL__sub_I__ZSt3cin+0x280> } - 5fea: 8082 ret + 5fd6: 8082 ret -0000000000005fec <_Znwm>: +0000000000005fd8 <_Znwm>: #include "ulib/stdlib.h" void *operator new(unsigned long n) { return malloc(n); - 5fec: cf6ff06f j 54e2 + 5fd8: cf6ff06f j 54ce -0000000000005ff0 <_Znam>: +0000000000005fdc <_Znam>: } void *operator new[](unsigned long n) - 5ff0: cf2ff06f j 54e2 + 5fdc: cf2ff06f j 54ce -0000000000005ff4 <_ZdlPv>: +0000000000005fe0 <_ZdlPv>: return malloc(n); } void operator delete(void *p) { free(p); - 5ff4: c78ff06f j 546c + 5fe0: c78ff06f j 5458 -0000000000005ff8 <_ZdaPv>: +0000000000005fe4 <_ZdaPv>: } void operator delete[](void *p) - 5ff8: c74ff06f j 546c + 5fe4: c74ff06f j 5458 -0000000000005ffc <_ZdlPvm>: +0000000000005fe8 <_ZdlPvm>: free(p); } void operator delete(void *p, unsigned long) { free(p); - 5ffc: c70ff06f j 546c + 5fe8: c70ff06f j 5458 -0000000000006000 <_ZdaPvm>: +0000000000005fec <_ZdaPvm>: } void operator delete[](void *p, unsigned long) - 6000: c6cff06f j 546c + 5fec: c6cff06f j 5458 -0000000000006004 <_GLOBAL__sub_I__ZSt3cin>: +0000000000005ff0 <_GLOBAL__sub_I__ZSt3cin>: #include "ulib/iostream" namespace std { istream cin(stdin); - 6004: 00003797 auipc a5,0x3 - 6008: c747b783 ld a5,-908(a5) # 8c78 <_GLOBAL_OFFSET_TABLE_+0x10> - 600c: 6390 ld a2,0(a5) + 5ff0: 00003797 auipc a5,0x3 + 5ff4: cb87b783 ld a5,-840(a5) # 8ca8 <_GLOBAL_OFFSET_TABLE_+0x10> + 5ff8: 6390 ld a2,0(a5) ostream cout(stdout); - 600e: 00003797 auipc a5,0x3 - 6012: c627b783 ld a5,-926(a5) # 8c70 <_GLOBAL_OFFSET_TABLE_+0x8> - 6016: 6394 ld a3,0(a5) + 5ffa: 00003797 auipc a5,0x3 + 5ffe: ca67b783 ld a5,-858(a5) # 8ca0 <_GLOBAL_OFFSET_TABLE_+0x8> + 6002: 6394 ld a3,0(a5) ostream cerr(stderr); - 6018: 00003797 auipc a5,0x3 - 601c: c687b783 ld a5,-920(a5) # 8c80 <_GLOBAL_OFFSET_TABLE_+0x18> - 6020: 6398 ld a4,0(a5) + 6004: 00003797 auipc a5,0x3 + 6008: cac7b783 ld a5,-852(a5) # 8cb0 <_GLOBAL_OFFSET_TABLE_+0x18> + 600c: 6398 ld a4,0(a5) class istream{ private: FILE* _stream; public: istream(FILE *f) : _stream(f) {} - 6022: 00003797 auipc a5,0x3 - 6026: e0e78793 addi a5,a5,-498 # 8e30 <_ZSt3cin> - 602a: e390 sd a2,0(a5) + 600e: 00003797 auipc a5,0x3 + 6012: e5278793 addi a5,a5,-430 # 8e60 <_ZSt3cin> + 6016: e390 sd a2,0(a5) ostream(FILE* f) : _stream(f) {} - 602c: e794 sd a3,8(a5) - 602e: eb98 sd a4,16(a5) + 6018: e794 sd a3,8(a5) + 601a: eb98 sd a4,16(a5) } // namespace std - 6030: 8082 ret + 601c: 8082 ret diff --git a/build/user/sh.o b/build/user/sh.o index 5f4f77b..edfee62 100644 Binary files a/build/user/sh.o and b/build/user/sh.o differ diff --git a/build/user/sh.sym b/build/user/sh.sym new file mode 100644 index 0000000..f7cf8bd --- /dev/null +++ b/build/user/sh.sym @@ -0,0 +1,223 @@ +0000000000000000 .text +0000000000006020 .rodata +00000000000069a0 .eh_frame +0000000000007e38 .data +0000000000008c98 .got +0000000000008cb8 .got.plt +0000000000008cc8 .init_array +0000000000008cd0 .bss +0000000000000000 .debug_info +0000000000000000 .debug_abbrev +0000000000000000 .debug_loclists +0000000000000000 .debug_aranges +0000000000000000 .debug_rnglists +0000000000000000 .debug_line +0000000000000000 .debug_str +0000000000000000 .debug_line_str +0000000000000000 .comment +0000000000000000 .riscv.attributes +0000000000000000 sh.cc +0000000000008cd0 _ZZ4mainE3buf +0000000000000000 entry.o +0000000000000000 usys.o +0000000000000000 stdio.c +0000000000001190 stbsp__clamp_callback +00000000000011de stbsp__count_clamp_callback +00000000000011ea stbsp__real_to_str +00000000000018be _in_char.part.0 +0000000000001904 _skip_space +0000000000001978 _vscanf_core.constprop.0 +00000000000021e8 _out_char +000000000000405c _vprintf_core.constprop.0.isra.0 +0000000000007f18 stbsp__digitpair +0000000000007fe4 stbsp__period +0000000000007fe5 stbsp__comma +0000000000007fe8 hexu.1 +0000000000008000 hex.0 +0000000000008018 _stderr +0000000000008438 _stdout +0000000000008858 _stdin +0000000000006508 stbsp__bot +00000000000065c0 stbsp__negbot +0000000000006670 stbsp__negboterr +0000000000006720 stbsp__negtop +0000000000006788 stbsp__negtoperr +00000000000067f0 stbsp__top +0000000000006858 stbsp__toperr +00000000000068c0 stbsp__powten +0000000000000000 stdlib.c +000000000000526a strtoull.part.0 +0000000000008c90 next +0000000000008d3c __atexit_func_count +0000000000008d40 __atexit_funcs +0000000000008e40 freep +0000000000008e48 base +0000000000000000 string.c +0000000000008e58 olds.0 +0000000000000000 cxx.cc +0000000000000000 iostream.cpp +0000000000005ff0 _GLOBAL__sub_I__ZSt3cin +0000000000008c98 _GLOBAL_OFFSET_TABLE_ +0000000000000324 _ZN11PipeCommand3runEv +0000000000005b8a strcpy +00000000000048fa printf +0000000000008c78 stdout +0000000000006964 STDOUT_FD +0000000000005240 ungetc +0000000000005fb2 strerror +0000000000005af0 memmove +00000000000048a4 snprintf +0000000000001118 mknod +0000000000005742 atol +0000000000005450 getenv +0000000000005fd8 _Znwm +0000000000000222 _ZN11PipeCommandD0Ev +0000000000008d38 errno +00000000000059a2 labs +000000000000591c bsearch +0000000000001150 getpid +000000000000583e qsort +0000000000004b38 fscanf +0000000000004daa fgets +0000000000008e70 _ZSt4cerr +0000000000005b2c memcpy +000000000000018c _ZN11ExecCommand3runEv +0000000000000256 _ZN11ListCommandD0Ev +0000000000005454 system +0000000000005220 feof +00000000000054ce malloc +0000000000001160 sleep +000000000000005c _Z6getcmdPci +000000000000485a vsnprintf +000000000000565e strtoll +0000000000005708 strtoul +0000000000005a54 wctomb +0000000000000754 _ZN6Parser10parse_pipeEPPcS0_ +0000000000005aa0 wcstombs +00000000000001c4 _ZN11ExecCommandD0Ev +0000000000004ac2 fflush +0000000000005a62 mbstowcs +0000000000001180 lseek +0000000000005fe0 _ZdlPv +0000000000005444 abort +000000000000572c strtol +00000000000010e0 pipe +0000000000007f10 SYMBOLS +0000000000005a22 mblen +0000000000005cde strrchr +0000000000007e90 _ZTV11PipeCommand +0000000000005594 calloc +000000000000574e strtod +0000000000001178 disk_test +00000000000010f0 write +0000000000005828 atof +0000000000001128 fstat +0000000000004b06 fprintf +0000000000001100 kill +00000000000000c0 _ZN11PipeCommandD2Ev +0000000000005bce strcat +0000000000000142 _ZN12RedirCommand3runEv +0000000000000b84 _ZN6Parser10parse_lineEPPcS0_ +0000000000001140 chdir +0000000000005128 fseek +0000000000003ff8 stbsp_vsprintf +0000000000001108 exec +0000000000005b52 memchr +0000000000008c80 stdin +00000000000010d8 wait +0000000000003f12 stbsp_vsnprintf +00000000000010be _start +000000000000522a ferror +0000000000005cf6 strstr +00000000000059ec rand +00000000000010e8 read +0000000000005da2 strlcpy +00000000000001cc _ZN12RedirCommandD0Ev +0000000000005c7e strncmp +00000000000022bc stbsp_set_separators +0000000000005fe8 _ZdlPvm +0000000000005b9c strncpy +0000000000001120 unlink +00000000000055dc realloc +0000000000000128 _ZN11BackCommandD1Ev +0000000000005f22 strtok +0000000000005b2e memcmp +00000000000010d0 fork +0000000000004934 sscanf +0000000000005c00 strncat +0000000000004e86 fread +0000000000001158 sbrk +00000000000000f4 _ZN11ListCommandD1Ev +0000000000005d5e strdup +0000000000007e40 _ZTV11ExecCommand +0000000000001168 uptime +000000000000563a strtoull +0000000000003ee8 stbsp_sprintf +0000000000004996 fopen +0000000000005ad8 memset +0000000000000e62 main +000000000000519c ftell +0000000000005a14 srand +0000000000005df8 strlcat +0000000000005234 clearerr +0000000000005fe4 _ZdaPv +0000000000004a5a fclose +00000000000000a8 _ZN12RedirCommandD2Ev +000000000000001c _Z13fork_or_panicv +0000000000001170 putc +0000000000005c46 strcmp +0000000000001188 shutdown +0000000000001148 dup +0000000000000128 _ZN11BackCommandD2Ev +00000000000001f8 _ZN11BackCommandD0Ev +0000000000004d14 fgetc +0000000000004006 sprintf +000000000000582c strtof +00000000000053ea atexit +0000000000005eac strcspn +00000000000000c0 _ZN11PipeCommandD1Ev +0000000000003fd8 stbsp_snprintf +00000000000000f4 _ZN11ListCommandD2Ev +0000000000008e60 _ZSt3cin +0000000000004964 scanf +0000000000008c88 stderr +00000000000002d8 _ZN11ListCommand3runEv +0000000000000140 _ZN11ExecCommandD1Ev +00000000000059cc ldiv +0000000000007e68 _ZTV12RedirCommand +0000000000004b6a fputc +0000000000005fdc _Znam +00000000000059dc lldiv +0000000000004fa0 fwrite +0000000000000140 _ZN11ExecCommandD2Ev +00000000000051c8 rewind +0000000000007f08 WHITESPACE +000000000000041a _ZN6Parser12parse_redirsEP7CommandPPcS2_ +0000000000007eb8 _ZTV11ListCommand +0000000000008e68 _ZSt4cout +0000000000001130 link +000000000000540e exit +00000000000010c8 sys_exit +00000000000059ac llabs +0000000000000000 _Z5panicPKc +000000000000572e atoi +0000000000006960 STDERR_FD +0000000000007ee0 _ZTV11BackCommand +0000000000005e78 strspn +000000000000028a _ZN11BackCommand3runEv +0000000000005b70 strlen +00000000000022ce stbsp_vsprintfcb +0000000000001110 open +0000000000006968 STDIN_FD +0000000000005748 atoll +00000000000059b6 div +0000000000005998 abs +0000000000005cc6 strchr +0000000000004c2e fputs +0000000000005fec _ZdaPvm +0000000000001138 mkdir +00000000000000a8 _ZN12RedirCommandD1Ev +00000000000010f8 close +0000000000005a36 mbtowc +0000000000005eec strpbrk +0000000000005458 free diff --git a/build/user/usys.o b/build/user/usys.o index 73af575..42b9e3a 100644 Binary files a/build/user/usys.o and b/build/user/usys.o differ -- cgit v1.2.3