diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-01-04 14:05:49 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-01-04 14:05:49 +0800 |
| commit | d3cf3f08d1343d6b265516d5a79ce2d197b59d26 (patch) | |
| tree | a4bbae6cff94fa69eea30db865267b211eb4c86b /build/user/initcode.asm | |
| parent | 210025560c80b48af4875af199f183ad709e3bf0 (diff) | |
| download | lume-d3cf3f08d1343d6b265516d5a79ce2d197b59d26.tar.gz lume-d3cf3f08d1343d6b265516d5a79ce2d197b59d26.tar.xz | |
feat(file-system): implement read and write FAT32 File System and basic shell
Diffstat (limited to 'build/user/initcode.asm')
| -rw-r--r-- | build/user/initcode.asm | 14216 |
1 files changed, 7112 insertions, 7104 deletions
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 <main>: -#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> + printf(ANSI_BLUE"\n[Init] Starting Lume OS Shell..."ANSI_RESET); + 22: 0d9030ef jal 38fa <printf> + printf("\n"); + 26: 00005517 auipc a0,0x5 + 2a: 03250513 addi a0,a0,50 # 5058 <_GLOBAL__sub_I__ZSt3cin+0x68> + 2e: 0cd030ef jal 38fa <printf> + 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 <fork> - 44: 842a mv s0,a0 + 4c: 084000ef jal d0 <fork> + 50: 842a mv s0,a0 if (pid < 0) - 46: 02054363 bltz a0,6c <main+0x6c> + 52: 02054363 bltz a0,78 <main+0x78> if (pid == 0) - 4a: e501 bnez a0,52 <main+0x52> - 4c: a81d j 82 <main+0x82> + 56: e501 bnez a0,5e <main+0x5e> + 58: a81d j 8e <main+0x8e> if (wpid < 0) - 4e: 02054663 bltz a0,7a <main+0x7a> + 5a: 02054663 bltz a0,86 <main+0x86> wpid = wait((uint64)&status); - 52: 8526 mv a0,s1 - 54: 07c000ef jal d0 <wait> + 5e: 8526 mv a0,s1 + 60: 078000ef jal d8 <wait> if (wpid == pid) - 58: fea41be3 bne s0,a0,4e <main+0x4e> + 64: fea41be3 bne s0,a0,5a <main+0x5a> printf("Shell Exit"); - 5c: 854a mv a0,s2 - 5e: 08d030ef jal 38ea <printf> + 68: 854a mv a0,s2 + 6a: 091030ef jal 38fa <printf> int pid = fork(); - 62: 066000ef jal c8 <fork> - 66: 842a mv s0,a0 + 6e: 062000ef jal d0 <fork> + 72: 842a mv s0,a0 if (pid < 0) - 68: fe0551e3 bgez a0,4a <main+0x4a> + 74: fe0551e3 bgez a0,56 <main+0x56> printf("[Init] fork failed!\n"); - 6c: 8552 mv a0,s4 - 6e: 07d030ef jal 38ea <printf> + 78: 8552 mv a0,s4 + 7a: 081030ef jal 38fa <printf> exit(1); - 72: 4505 li a0,1 - 74: 38a040ef jal 43fe <exit> + 7e: 4505 li a0,1 + 80: 38e040ef jal 440e <exit> if (pid == 0) - 78: bfe9 j 52 <main+0x52> + 84: bfe9 j 5e <main+0x5e> printf("[Init] wait error or no child\n"); - 7a: 854e mv a0,s3 - 7c: 06f030ef jal 38ea <printf> + 86: 854e mv a0,s3 + 88: 073030ef jal 38fa <printf> break; } } } } - 80: b7c1 j 40 <main+0x40> + 8c: b7c1 j 4c <main+0x4c> 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 <exec> + 9c: 06c000ef jal 108 <exec> 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 <printf> + a0: 00005517 auipc a0,0x5 + a4: fd850513 addi a0,a0,-40 # 5078 <_GLOBAL__sub_I__ZSt3cin+0x88> + a8: 053030ef jal 38fa <printf> 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 <main> + be: f43ff0ef jal 0 <main> call exit - ba: 344040ef jal 43fe <exit> + c2: 34c040ef jal 440e <exit> - be: a001 j be <_start+0xc> + c6: a001 j c6 <_start+0x8> -00000000000000c0 <sys_exit>: +00000000000000c8 <sys_exit>: name: \ li a7, SYS_ ## sysname; \ ecall; \ ret SYSCALL_NAME(sys_exit, exit) - c0: 488d li a7,3 - c2: 00000073 ecall - c6: 8082 ret - -00000000000000c8 <fork>: - -SYSCALL(fork) - c8: 4889 li a7,2 + c8: 488d li a7,3 ca: 00000073 ecall ce: 8082 ret -00000000000000d0 <wait>: -SYSCALL(wait) - d0: 4891 li a7,4 +00000000000000d0 <fork>: + +SYSCALL(fork) + d0: 4889 li a7,2 d2: 00000073 ecall d6: 8082 ret -00000000000000d8 <pipe>: -SYSCALL(pipe) - d8: 4895 li a7,5 +00000000000000d8 <wait>: +SYSCALL(wait) + d8: 4891 li a7,4 da: 00000073 ecall de: 8082 ret -00000000000000e0 <read>: -SYSCALL(read) - e0: 4899 li a7,6 +00000000000000e0 <pipe>: +SYSCALL(pipe) + e0: 4895 li a7,5 e2: 00000073 ecall e6: 8082 ret -00000000000000e8 <write>: -SYSCALL(write) - e8: 48c5 li a7,17 +00000000000000e8 <read>: +SYSCALL(read) + e8: 4899 li a7,6 ea: 00000073 ecall ee: 8082 ret -00000000000000f0 <close>: -SYSCALL(close) - f0: 48d9 li a7,22 +00000000000000f0 <write>: +SYSCALL(write) + f0: 48c5 li a7,17 f2: 00000073 ecall f6: 8082 ret -00000000000000f8 <kill>: -SYSCALL(kill) - f8: 489d li a7,7 +00000000000000f8 <close>: +SYSCALL(close) + f8: 48d9 li a7,22 fa: 00000073 ecall fe: 8082 ret -0000000000000100 <exec>: -SYSCALL(exec) - 100: 48a1 li a7,8 +0000000000000100 <kill>: +SYSCALL(kill) + 100: 489d li a7,7 102: 00000073 ecall 106: 8082 ret -0000000000000108 <open>: -SYSCALL(open) - 108: 48c1 li a7,16 +0000000000000108 <exec>: +SYSCALL(exec) + 108: 48a1 li a7,8 10a: 00000073 ecall 10e: 8082 ret -0000000000000110 <mknod>: -SYSCALL(mknod) - 110: 48c9 li a7,18 +0000000000000110 <open>: +SYSCALL(open) + 110: 48c1 li a7,16 112: 00000073 ecall 116: 8082 ret -0000000000000118 <unlink>: -SYSCALL(unlink) - 118: 48cd li a7,19 +0000000000000118 <mknod>: +SYSCALL(mknod) + 118: 48c9 li a7,18 11a: 00000073 ecall 11e: 8082 ret -0000000000000120 <fstat>: -SYSCALL(fstat) - 120: 48a5 li a7,9 +0000000000000120 <unlink>: +SYSCALL(unlink) + 120: 48cd li a7,19 122: 00000073 ecall 126: 8082 ret -0000000000000128 <link>: -SYSCALL(link) - 128: 48d1 li a7,20 +0000000000000128 <fstat>: +SYSCALL(fstat) + 128: 48a5 li a7,9 12a: 00000073 ecall 12e: 8082 ret -0000000000000130 <mkdir>: -SYSCALL(mkdir) - 130: 48d5 li a7,21 +0000000000000130 <link>: +SYSCALL(link) + 130: 48d1 li a7,20 132: 00000073 ecall 136: 8082 ret -0000000000000138 <chdir>: -SYSCALL(chdir) - 138: 48a9 li a7,10 +0000000000000138 <mkdir>: +SYSCALL(mkdir) + 138: 48d5 li a7,21 13a: 00000073 ecall 13e: 8082 ret -0000000000000140 <dup>: -SYSCALL(dup) - 140: 48ad li a7,11 +0000000000000140 <chdir>: +SYSCALL(chdir) + 140: 48a9 li a7,10 142: 00000073 ecall 146: 8082 ret -0000000000000148 <getpid>: -SYSCALL(getpid) - 148: 48b1 li a7,12 +0000000000000148 <dup>: +SYSCALL(dup) + 148: 48ad li a7,11 14a: 00000073 ecall 14e: 8082 ret -0000000000000150 <sbrk>: -SYSCALL(sbrk) - 150: 48b5 li a7,13 +0000000000000150 <getpid>: +SYSCALL(getpid) + 150: 48b1 li a7,12 152: 00000073 ecall 156: 8082 ret -0000000000000158 <sleep>: -SYSCALL(sleep) - 158: 48b9 li a7,14 +0000000000000158 <sbrk>: +SYSCALL(sbrk) + 158: 48b5 li a7,13 15a: 00000073 ecall 15e: 8082 ret -0000000000000160 <uptime>: -SYSCALL(uptime) - 160: 48bd li a7,15 +0000000000000160 <sleep>: +SYSCALL(sleep) + 160: 48b9 li a7,14 162: 00000073 ecall 166: 8082 ret -0000000000000168 <putc>: -SYSCALL(putc) - 168: 4885 li a7,1 +0000000000000168 <uptime>: +SYSCALL(uptime) + 168: 48bd li a7,15 16a: 00000073 ecall 16e: 8082 ret -0000000000000170 <disk_test>: -SYSCALL(disk_test) - 170: 48dd li a7,23 +0000000000000170 <putc>: +SYSCALL(putc) + 170: 4885 li a7,1 172: 00000073 ecall 176: 8082 ret -0000000000000178 <lseek>: - 178: 48e1 li a7,24 +0000000000000178 <disk_test>: +SYSCALL(disk_test) + 178: 48dd li a7,23 17a: 00000073 ecall 17e: 8082 ret -0000000000000180 <stbsp__clamp_callback>: - 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 <stbsp__clamp_callback+0x14> - 190: 0006069b sext.w a3,a2 - 194: c685 beqz a3,1bc <stbsp__clamp_callback+0x3c> - 196: 619c ld a5,0(a1) - 198: 00a78e63 beq a5,a0,1b4 <stbsp__clamp_callback+0x34> - 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 <stbsp__clamp_callback+0x20> - 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 <stbsp__clamp_callback+0x48> - 1c4: 6188 ld a0,0(a1) - 1c6: 8082 ret - 1c8: 01058513 addi a0,a1,16 - 1cc: 8082 ret - -00000000000001ce <stbsp__count_clamp_callback>: - 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 <stbsp__real_to_str>: - 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 <stbsp__real_to_str+0x22> - 1f4: 22a517d3 fneg.d fa5,fa0 - 1f8: e20788d3 fmv.x.d a7,fa5 - 1fc: 7ff00e13 li t3,2047 - 200: 35c80663 beq a6,t3,54c <stbsp__real_to_str+0x372> - 204: 1101 addi sp,sp,-32 - 206: 14080363 beqz a6,34c <stbsp__real_to_str+0x172> - 20a: c018081b addiw a6,a6,-1023 - 20e: ec22 sd s0,24(sp) - 210: 02081313 slli t1,a6,0x20 - 214: 66034d63 bltz t1,88e <stbsp__real_to_str+0x6b4> - 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 <stbsp__real_to_str+0x1b8> - 234: 00005317 auipc t1,0x5 - 238: 1a430313 addi t1,t1,420 # 53d8 <stbsp__bot> - 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 <stbsp__real_to_str+0x282> - 2e0: 2385 addiw t2,t2,1 - 2e2: 300e4363 bltz t3,5e8 <stbsp__real_to_str+0x40e> - 2e6: 00e3833b addw t1,t2,a4 - 2ea: 475d li a4,23 - 2ec: 30677663 bgeu a4,t1,5f8 <stbsp__real_to_str+0x41e> - 2f0: 577d li a4,-1 - 2f2: 9301 srli a4,a4,0x20 - 2f4: 43f75863 bge a4,t6,724 <stbsp__real_to_str+0x54a> - 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 <stbsp__real_to_str+0x13a> - 308: 030747b3 div a5,a4,a6 - 30c: 4e05 li t3,1 - 30e: 40674c63 blt a4,t1,726 <stbsp__real_to_str+0x54c> - 312: 873e mv a4,a5 - 314: 030768b3 rem a7,a4,a6 - 318: fe0888e3 beqz a7,308 <stbsp__real_to_str+0x12e> - 31c: 400e0163 beqz t3,71e <stbsp__real_to_str+0x544> - 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 <stbsp__real_to_str+0x2a8> - 336: 000f871b sext.w a4,t6 - 33a: 20070463 beqz a4,542 <stbsp__real_to_str+0x368> - 33e: 4f01 li t5,0 - 340: 4f81 li t6,0 - 342: 00006e97 auipc t4,0x6 - 346: 62ee8e93 addi t4,t4,1582 # 6970 <stbsp__digitpair> - 34a: aaa9 j 4a4 <stbsp__real_to_str+0x2ca> - 34c: 0306 slli t1,t1,0x1 - 34e: 3e030e63 beqz t1,74a <stbsp__real_to_str+0x570> - 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 <stbsp__real_to_str+0x6a2> - 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 <stbsp__real_to_str+0x186> - 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 <stbsp__real_to_str+0x3fc> - 3b4: 5e25 li t3,-23 - 3b6: 026e0e3b mulw t3,t3,t1 - 3ba: 01de0ebb addw t4,t3,t4 - 3be: 22084f63 bltz a6,5fc <stbsp__real_to_str+0x422> - 3c2: f2000753 fmv.d.x fa4,zero - 3c6: 00005e17 auipc t3,0x5 - 3ca: 012e0e13 addi t3,t3,18 # 53d8 <stbsp__bot> - 3ce: 380e9e63 bnez t4,76a <stbsp__real_to_str+0x590> - 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 <stbsp__real_to_str+0xb2> - 45c: 00e3833b addw t1,t2,a4 - 460: 2a0e4663 bltz t3,70c <stbsp__real_to_str+0x532> - 464: 475d li a4,23 - 466: 10677663 bgeu a4,t1,572 <stbsp__real_to_str+0x398> - 46a: e80f93e3 bnez t6,2f0 <stbsp__real_to_str+0x116> - 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 <stbsp__real_to_str+0x15c> - 482: 4f01 li t5,0 - 484: 00006e97 auipc t4,0x6 - 488: 4ece8e93 addi t4,t4,1260 # 6970 <stbsp__digitpair> - 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 <stbsp__real_to_str+0x36e> - 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 <stbsp__real_to_str+0x2d4> - 4d4: 008f0f3b addw t5,t5,s0 - 4d8: 410f0f3b subw t5,t5,a6 - 4dc: 020f8f63 beqz t6,51a <stbsp__real_to_str+0x340> - 4e0: 87c2 mv a5,a6 - 4e2: 03000713 li a4,48 - 4e6: 04c80c63 beq a6,a2,53e <stbsp__real_to_str+0x364> - 4ea: 17fd addi a5,a5,-1 - 4ec: 00e78023 sb a4,0(a5) - 4f0: fec79de3 bne a5,a2,4ea <stbsp__real_to_str+0x310> - 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 <stbsp__real_to_str+0x2b2> - 512: 000f871b sext.w a4,t6 - 516: 4f81 li t6,0 - 518: b771 j 4a4 <stbsp__real_to_str+0x2ca> - 51a: 020f0563 beqz t5,544 <stbsp__real_to_str+0x36a> - 51e: 00084703 lbu a4,0(a6) - 522: 03000793 li a5,48 - 526: 22f70f63 beq a4,a5,764 <stbsp__real_to_str+0x58a> - 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 <stbsp__real_to_str+0x328> - 542: 8822 mv a6,s0 - 544: 4f01 li t5,0 - 546: b7dd j 52c <stbsp__real_to_str+0x352> - 548: 8822 mv a6,s0 - 54a: bf59 j 4e0 <stbsp__real_to_str+0x306> - 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 <stbsp__real_to_str+0x388> - 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 <stbsp__real_to_str+0x41e> - 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 <stbsp__powten> - 590: 9746 add a4,a4,a7 - 592: 4e51 li t3,20 - 594: a021 j 59c <stbsp__real_to_str+0x3c2> - 596: 2805 addiw a6,a6,1 - 598: edc809e3 beq a6,t3,46a <stbsp__real_to_str+0x290> - 59c: 00073883 ld a7,0(a4) - 5a0: 0721 addi a4,a4,8 - 5a2: ff1ffae3 bgeu t6,a7,596 <stbsp__real_to_str+0x3bc> - 5a6: ed0372e3 bgeu t1,a6,46a <stbsp__real_to_str+0x290> - 5aa: 4068083b subw a6,a6,t1 - 5ae: 475d li a4,23 - 5b0: eb076de3 bltu a4,a6,46a <stbsp__real_to_str+0x290> - 5b4: 080e slli a6,a6,0x3 - 5b6: 00005717 auipc a4,0x5 - 5ba: e2270713 addi a4,a4,-478 # 53d8 <stbsp__bot> - 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 <stbsp__real_to_str+0x3f6> - 5ce: 2385 addiw t2,t2,1 - 5d0: 03075fb3 divu t6,a4,a6 - 5d4: bd59 j 46a <stbsp__real_to_str+0x290> - 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 <stbsp__real_to_str+0x1e8> - 5e6: a819 j 5fc <stbsp__real_to_str+0x422> - 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 <stbsp__real_to_str+0x116> - 5f8: 4829 li a6,10 - 5fa: b759 j 580 <stbsp__real_to_str+0x3a6> - 5fc: 260e8663 beqz t4,868 <stbsp__real_to_str+0x68e> - 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 <stbsp__bot> - 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 <stbsp__real_to_str+0xb2> - 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 <stbsp__bot> - 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 <stbsp__real_to_str+0xb2> - 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 <stbsp__real_to_str+0x290> - 71c: bd99 j 572 <stbsp__real_to_str+0x398> - 71e: 87fe mv a5,t6 - 720: 8fbe mv t6,a5 - 722: b101 j 322 <stbsp__real_to_str+0x148> - 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 <stbsp__real_to_str+0x566> - 732: 3e800813 li a6,1000 - 736: 0307d7bb divuw a5,a5,a6 - 73a: 0307f73b remuw a4,a5,a6 - 73e: df65 beqz a4,736 <stbsp__real_to_str+0x55c> - 740: 02079f93 slli t6,a5,0x20 - 744: 020fdf93 srli t6,t6,0x20 - 748: b31d j 46e <stbsp__real_to_str+0x294> - 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 <stbsp__real_to_str+0x352> - 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 <stbsp__real_to_str+0x69e> - 776: 0009049b sext.w s1,s2 - 77a: 00005e17 auipc t3,0x5 - 77e: c5ee0e13 addi t3,t3,-930 # 53d8 <stbsp__bot> - 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 <stbsp__real_to_str+0x698> - 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 <stbsp__real_to_str+0x1f8> - 868: f20886d3 fmv.d.x fa3,a7 - 86c: f2000753 fmv.d.x fa4,zero - 870: b539 j 67e <stbsp__real_to_str+0x4a4> - 872: 64c2 ld s1,16(sp) - 874: 6922 ld s2,8(sp) - 876: beb1 j 3d2 <stbsp__real_to_str+0x1f8> - 878: 4959 li s2,22 - 87a: bdf5 j 776 <stbsp__real_to_str+0x59c> - 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 <stbsp__real_to_str+0x594> - 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 <stbsp__real_to_str+0x54> - -00000000000008ae <_in_char.part.0>: +0000000000000180 <lseek>: +SYSCALL(lseek) + 180: 48e1 li a7,24 + 182: 00000073 ecall + 186: 8082 ret + +0000000000000188 <shutdown>: + 188: 48e5 li a7,25 + 18a: 00000073 ecall + 18e: 8082 ret + +0000000000000190 <stbsp__clamp_callback>: + 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 <stbsp__clamp_callback+0x14> + 1a0: 0006069b sext.w a3,a2 + 1a4: c685 beqz a3,1cc <stbsp__clamp_callback+0x3c> + 1a6: 619c ld a5,0(a1) + 1a8: 00a78e63 beq a5,a0,1c4 <stbsp__clamp_callback+0x34> + 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 <stbsp__clamp_callback+0x20> + 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 <stbsp__clamp_callback+0x48> + 1d4: 6188 ld a0,0(a1) + 1d6: 8082 ret + 1d8: 01058513 addi a0,a1,16 + 1dc: 8082 ret + +00000000000001de <stbsp__count_clamp_callback>: + 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 <stbsp__real_to_str>: + 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 <stbsp__real_to_str+0x22> + 204: 22a517d3 fneg.d fa5,fa0 + 208: e20788d3 fmv.x.d a7,fa5 + 20c: 7ff00e13 li t3,2047 + 210: 35c80663 beq a6,t3,55c <stbsp__real_to_str+0x372> + 214: 1101 addi sp,sp,-32 + 216: 14080363 beqz a6,35c <stbsp__real_to_str+0x172> + 21a: c018081b addiw a6,a6,-1023 + 21e: ec22 sd s0,24(sp) + 220: 02081313 slli t1,a6,0x20 + 224: 66034d63 bltz t1,89e <stbsp__real_to_str+0x6b4> + 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 <stbsp__real_to_str+0x1b8> + 244: 00005317 auipc t1,0x5 + 248: 1b430313 addi t1,t1,436 # 53f8 <stbsp__bot> + 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 <stbsp__real_to_str+0x282> + 2f0: 2385 addiw t2,t2,1 + 2f2: 300e4363 bltz t3,5f8 <stbsp__real_to_str+0x40e> + 2f6: 00e3833b addw t1,t2,a4 + 2fa: 475d li a4,23 + 2fc: 30677663 bgeu a4,t1,608 <stbsp__real_to_str+0x41e> + 300: 577d li a4,-1 + 302: 9301 srli a4,a4,0x20 + 304: 43f75863 bge a4,t6,734 <stbsp__real_to_str+0x54a> + 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 <stbsp__real_to_str+0x13a> + 318: 030747b3 div a5,a4,a6 + 31c: 4e05 li t3,1 + 31e: 40674c63 blt a4,t1,736 <stbsp__real_to_str+0x54c> + 322: 873e mv a4,a5 + 324: 030768b3 rem a7,a4,a6 + 328: fe0888e3 beqz a7,318 <stbsp__real_to_str+0x12e> + 32c: 400e0163 beqz t3,72e <stbsp__real_to_str+0x544> + 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 <stbsp__real_to_str+0x2a8> + 346: 000f871b sext.w a4,t6 + 34a: 20070463 beqz a4,552 <stbsp__real_to_str+0x368> + 34e: 4f01 li t5,0 + 350: 4f81 li t6,0 + 352: 00006e97 auipc t4,0x6 + 356: 63ee8e93 addi t4,t4,1598 # 6990 <stbsp__digitpair> + 35a: aaa9 j 4b4 <stbsp__real_to_str+0x2ca> + 35c: 0306 slli t1,t1,0x1 + 35e: 3e030e63 beqz t1,75a <stbsp__real_to_str+0x570> + 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 <stbsp__real_to_str+0x6a2> + 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 <stbsp__real_to_str+0x186> + 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 <stbsp__real_to_str+0x3fc> + 3c4: 5e25 li t3,-23 + 3c6: 026e0e3b mulw t3,t3,t1 + 3ca: 01de0ebb addw t4,t3,t4 + 3ce: 22084f63 bltz a6,60c <stbsp__real_to_str+0x422> + 3d2: f2000753 fmv.d.x fa4,zero + 3d6: 00005e17 auipc t3,0x5 + 3da: 022e0e13 addi t3,t3,34 # 53f8 <stbsp__bot> + 3de: 380e9e63 bnez t4,77a <stbsp__real_to_str+0x590> + 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 <stbsp__real_to_str+0xb2> + 46c: 00e3833b addw t1,t2,a4 + 470: 2a0e4663 bltz t3,71c <stbsp__real_to_str+0x532> + 474: 475d li a4,23 + 476: 10677663 bgeu a4,t1,582 <stbsp__real_to_str+0x398> + 47a: e80f93e3 bnez t6,300 <stbsp__real_to_str+0x116> + 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 <stbsp__real_to_str+0x15c> + 492: 4f01 li t5,0 + 494: 00006e97 auipc t4,0x6 + 498: 4fce8e93 addi t4,t4,1276 # 6990 <stbsp__digitpair> + 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 <stbsp__real_to_str+0x36e> + 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 <stbsp__real_to_str+0x2d4> + 4e4: 008f0f3b addw t5,t5,s0 + 4e8: 410f0f3b subw t5,t5,a6 + 4ec: 020f8f63 beqz t6,52a <stbsp__real_to_str+0x340> + 4f0: 87c2 mv a5,a6 + 4f2: 03000713 li a4,48 + 4f6: 04c80c63 beq a6,a2,54e <stbsp__real_to_str+0x364> + 4fa: 17fd addi a5,a5,-1 + 4fc: 00e78023 sb a4,0(a5) + 500: fec79de3 bne a5,a2,4fa <stbsp__real_to_str+0x310> + 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 <stbsp__real_to_str+0x2b2> + 522: 000f871b sext.w a4,t6 + 526: 4f81 li t6,0 + 528: b771 j 4b4 <stbsp__real_to_str+0x2ca> + 52a: 020f0563 beqz t5,554 <stbsp__real_to_str+0x36a> + 52e: 00084703 lbu a4,0(a6) + 532: 03000793 li a5,48 + 536: 22f70f63 beq a4,a5,774 <stbsp__real_to_str+0x58a> + 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 <stbsp__real_to_str+0x328> + 552: 8822 mv a6,s0 + 554: 4f01 li t5,0 + 556: b7dd j 53c <stbsp__real_to_str+0x352> + 558: 8822 mv a6,s0 + 55a: bf59 j 4f0 <stbsp__real_to_str+0x306> + 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 <stbsp__real_to_str+0x388> + 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 <stbsp__real_to_str+0x41e> + 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 <stbsp__powten> + 5a0: 9746 add a4,a4,a7 + 5a2: 4e51 li t3,20 + 5a4: a021 j 5ac <stbsp__real_to_str+0x3c2> + 5a6: 2805 addiw a6,a6,1 + 5a8: edc809e3 beq a6,t3,47a <stbsp__real_to_str+0x290> + 5ac: 00073883 ld a7,0(a4) + 5b0: 0721 addi a4,a4,8 + 5b2: ff1ffae3 bgeu t6,a7,5a6 <stbsp__real_to_str+0x3bc> + 5b6: ed0372e3 bgeu t1,a6,47a <stbsp__real_to_str+0x290> + 5ba: 4068083b subw a6,a6,t1 + 5be: 475d li a4,23 + 5c0: eb076de3 bltu a4,a6,47a <stbsp__real_to_str+0x290> + 5c4: 080e slli a6,a6,0x3 + 5c6: 00005717 auipc a4,0x5 + 5ca: e3270713 addi a4,a4,-462 # 53f8 <stbsp__bot> + 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 <stbsp__real_to_str+0x3f6> + 5de: 2385 addiw t2,t2,1 + 5e0: 03075fb3 divu t6,a4,a6 + 5e4: bd59 j 47a <stbsp__real_to_str+0x290> + 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 <stbsp__real_to_str+0x1e8> + 5f6: a819 j 60c <stbsp__real_to_str+0x422> + 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 <stbsp__real_to_str+0x116> + 608: 4829 li a6,10 + 60a: b759 j 590 <stbsp__real_to_str+0x3a6> + 60c: 260e8663 beqz t4,878 <stbsp__real_to_str+0x68e> + 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 <stbsp__bot> + 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 <stbsp__real_to_str+0xb2> + 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 <stbsp__bot> + 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 <stbsp__real_to_str+0xb2> + 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 <stbsp__real_to_str+0x290> + 72c: bd99 j 582 <stbsp__real_to_str+0x398> + 72e: 87fe mv a5,t6 + 730: 8fbe mv t6,a5 + 732: b101 j 332 <stbsp__real_to_str+0x148> + 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 <stbsp__real_to_str+0x566> + 742: 3e800813 li a6,1000 + 746: 0307d7bb divuw a5,a5,a6 + 74a: 0307f73b remuw a4,a5,a6 + 74e: df65 beqz a4,746 <stbsp__real_to_str+0x55c> + 750: 02079f93 slli t6,a5,0x20 + 754: 020fdf93 srli t6,t6,0x20 + 758: b31d j 47e <stbsp__real_to_str+0x294> + 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 <stbsp__real_to_str+0x352> + 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 <stbsp__real_to_str+0x69e> + 786: 0009049b sext.w s1,s2 + 78a: 00005e17 auipc t3,0x5 + 78e: c6ee0e13 addi t3,t3,-914 # 53f8 <stbsp__bot> + 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 <stbsp__real_to_str+0x698> + 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 <stbsp__real_to_str+0x1f8> + 878: f20886d3 fmv.d.x fa3,a7 + 87c: f2000753 fmv.d.x fa4,zero + 880: b539 j 68e <stbsp__real_to_str+0x4a4> + 882: 64c2 ld s1,16(sp) + 884: 6922 ld s2,8(sp) + 886: beb1 j 3e2 <stbsp__real_to_str+0x1f8> + 888: 4959 li s2,22 + 88a: bdf5 j 786 <stbsp__real_to_str+0x59c> + 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 <stbsp__real_to_str+0x594> + 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 <stbsp__real_to_str+0x54> + +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 <read> - 8dc: 4785 li a5,1 - 8de: 00f51963 bne a0,a5,8f0 <_in_char.part.0+0x42> + 8e8: 801ff0ef jal e8 <read> + 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 <read> - 95c: 4785 li a5,1 - 95e: fef513e3 bne a0,a5,944 <_skip_space+0x50> + 968: f80ff0ef jal e8 <read> + 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 <STDIN_FD+0x10> - 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 <STDIN_FD+0x10> + 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 <STDIN_FD+0x18> - 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 <STDIN_FD+0x18> + 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 <strtoll> + fc4: 4581 li a1,0 + fc6: 1008 addi a0,sp,32 + fc8: 696030ef jal 465e <strtoll> *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 <STDIN_FD+0x10> - 109e: 00004717 auipc a4,0x4 - 10a2: 7b273707 fld fa4,1970(a4) # 5850 <STDIN_FD+0x18> + 10a6: 00004717 auipc a4,0x4 + 10aa: 7c273687 fld fa3,1986(a4) # 5868 <STDIN_FD+0x10> + 10ae: 00004717 auipc a4,0x4 + 10b2: 7c273707 fld fa4,1986(a4) # 5870 <STDIN_FD+0x18> 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 <STDIN_FD+0x10> + 10ce: 00004797 auipc a5,0x4 + 10d2: 79a7b687 fld fa3,1946(a5) # 5868 <STDIN_FD+0x10> 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 <STDIN_FD+0x8> - 10d4: 02114603 lbu a2,33(sp) + 10dc: 00004797 auipc a5,0x4 + 10e0: 7847b587 fld fa1,1924(a5) # 5860 <STDIN_FD+0x8> + 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 <STDIN_FD+0x18> - 10fa: 22e70653 fmv.d fa2,fa4 + 1102: 00004717 auipc a4,0x4 + 1106: 76e73707 fld fa4,1902(a4) # 5870 <STDIN_FD+0x18> + 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 <STDIN_FD+0x10> - 113e: 02114603 lbu a2,33(sp) + 1146: 00004797 auipc a5,0x4 + 114a: 7227b587 fld fa1,1826(a5) # 5868 <STDIN_FD+0x10> + 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 <STDIN_FD+0x10> + 1170: 00004797 auipc a5,0x4 + 1174: 6f87b687 fld fa3,1784(a5) # 5868 <STDIN_FD+0x10> 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 <STDIN_FD+0x10> - 11c2: bdc5 j 10b2 <_vscanf_core.constprop.0+0x74a> + 11ca: 00004797 auipc a5,0x4 + 11ce: 69e7b687 fld fa3,1694(a5) # 5868 <STDIN_FD+0x10> + 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 <write> - 125a: 4785 li a5,1 - 125c: faf50ce3 beq a0,a5,1214 <_out_char+0x3c> + 1266: e8bfe0ef jal f0 <write> + 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 <write> + 127e: 4088 lw a0,0(s1) + 1280: 01048593 addi a1,s1,16 + 1284: e6dfe0ef jal f0 <write> 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 <write> + 129a: 4088 lw a0,0(s1) + 129c: 01048593 addi a1,s1,16 + 12a0: e51fe0ef jal f0 <write> 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 <stbsp_set_separators>: +00000000000012bc <stbsp_set_separators>: "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 <stbsp__digitpair> - 12b4: 0cb78623 sb a1,204(a5) + 12bc: 00005797 auipc a5,0x5 + 12c0: 6d478793 addi a5,a5,1748 # 6990 <stbsp__digitpair> + 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 <stbsp_vsprintfcb>: +00000000000012ce <stbsp_vsprintfcb>: 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 <stbsp_vsprintfcb+0xac> + 132c: 0034f793 andi a5,s1,3 + 1330: c7a9 beqz a5,137a <stbsp_vsprintfcb+0xac> if (f[0] == '%') - 1322: 0004c783 lbu a5,0(s1) - 1326: 02500713 li a4,37 - 132a: 0ee78263 beq a5,a4,140e <stbsp_vsprintfcb+0x150> + 1332: 0004c783 lbu a5,0(s1) + 1336: 02500713 li a4,37 + 133a: 0ee78263 beq a5,a4,141e <stbsp_vsprintfcb+0x150> if (f[0] == 0) - 132e: cbd9 beqz a5,13c4 <stbsp_vsprintfcb+0x106> + 133e: cbd9 beqz a5,13d4 <stbsp_vsprintfcb+0x106> stbsp__chk_cb_buf(1); - 1330: 02098663 beqz s3,135c <stbsp_vsprintfcb+0x9e> - 1334: 4124063b subw a2,s0,s2 - 1338: 1fe00713 li a4,510 - 133c: 02c75063 bge a4,a2,135c <stbsp_vsprintfcb+0x9e> - 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 <stbsp_vsprintfcb+0x96> - 1350: 0200106f j 2370 <stbsp_vsprintfcb+0x10b2> + 1340: 02098663 beqz s3,136c <stbsp_vsprintfcb+0x9e> + 1344: 4124063b subw a2,s0,s2 + 1348: 1fe00713 li a4,510 + 134c: 02c75063 bge a4,a2,136c <stbsp_vsprintfcb+0x9e> + 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 <stbsp_vsprintfcb+0x96> + 1360: 0200106f j 2380 <stbsp_vsprintfcb+0x10b2> *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 <stbsp_vsprintfcb+0x64> + 1378: ffcd bnez a5,1332 <stbsp_vsprintfcb+0x64> 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 <stbsp_vsprintfcb+0x64> + 1388: 01b7073b addw a4,a4,s11 + 138c: 8f7d and a4,a4,a5 + 138e: 2701 sext.w a4,a4 + 1390: f34d bnez a4,1332 <stbsp_vsprintfcb+0x64> if ((STB_SPRINTF_MIN - (int)(bf - buf)) < 4) - 1382: 460d li a2,3 - 1384: a805 j 13b4 <stbsp_vsprintfcb+0xf6> + 1392: 460d li a2,3 + 1394: a805 j 13c4 <stbsp_vsprintfcb+0xf6> if (callback) - 1386: 00098863 beqz s3,1396 <stbsp_vsprintfcb+0xd8> + 1396: 00098863 beqz s3,13a6 <stbsp_vsprintfcb+0xd8> 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 <stbsp_vsprintfcb+0x64> + 139a: 412407b3 sub a5,s0,s2 + 139e: 40fc07bb subw a5,s8,a5 + 13a2: f8f658e3 bge a2,a5,1332 <stbsp_vsprintfcb+0x64> 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 <stbsp_vsprintfcb+0x64> + 13ba: 01b7073b addw a4,a4,s11 + 13be: 8f7d and a4,a4,a5 + 13c0: 2701 sext.w a4,a4 + 13c2: fb25 bnez a4,1332 <stbsp_vsprintfcb+0x64> 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 <stbsp_vsprintfcb+0xc8> + 13c4: 01b6873b addw a4,a3,s11 + 13c8: 8ff9 and a5,a5,a4 + 13ca: 2781 sext.w a5,a5 + 13cc: d7e9 beqz a5,1396 <stbsp_vsprintfcb+0xc8> if (f[0] == 0) - 13be: 0004c783 lbu a5,0(s1) - 13c2: f7bd bnez a5,1330 <stbsp_vsprintfcb+0x72> + 13ce: 0004c783 lbu a5,0(s1) + 13d2: f7bd bnez a5,1340 <stbsp_vsprintfcb+0x72> 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 <stbsp_vsprintfcb+0x816> + 13da: 70098563 beqz s3,1ae4 <stbsp_vsprintfcb+0x816> stbsp__flush_cb(); - 13ce: 00905663 blez s1,13da <stbsp_vsprintfcb+0x11c> - 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 <stbsp_vsprintfcb+0x11c> + 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 <stbsp_vsprintfcb+0x196> - 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 <stbsp_vsprintfcb+0x196> + 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 <stbsp_vsprintfcb+0x25c> + 1464: 02a00713 li a4,42 + 1468: 0ce79163 bne a5,a4,152a <stbsp_vsprintfcb+0x25c> 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 <stbsp_vsprintfcb+0x29c> + 147e: 0ee78663 beq a5,a4,156a <stbsp_vsprintfcb+0x29c> switch (f[0]) { - 1472: 04900713 li a4,73 - 1476: 10e78263 beq a5,a4,157a <stbsp_vsprintfcb+0x2bc> - 147a: f987871b addiw a4,a5,-104 - 147e: 0ff77713 zext.b a4,a4 - 1482: 46c9 li a3,18 - 1484: 02e6e063 bltu a3,a4,14a4 <stbsp_vsprintfcb+0x1e6> - 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 <stbsp_vsprintfcb+0x2bc> + 148a: f987871b addiw a4,a5,-104 + 148e: 0ff77713 zext.b a4,a4 + 1492: 46c9 li a3,18 + 1494: 02e6e063 bltu a3,a4,14b4 <stbsp_vsprintfcb+0x1e6> + 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 <stbsp_vsprintfcb+0x2e6> - 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 <stbsp_vsprintfcb+0x2e6> + 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 <stbsp_vsprintfcb+0x16e> + 14da: 0685 addi a3,a3,1 + 14dc: b785 j 143c <stbsp_vsprintfcb+0x16e> 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 <stbsp_vsprintfcb+0x16e> + 14e2: 0685 addi a3,a3,1 + 14e4: bfa1 j 143c <stbsp_vsprintfcb+0x16e> 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 <stbsp_vsprintfcb+0x16e> + 14ea: 0685 addi a3,a3,1 + 14ec: bf81 j 143c <stbsp_vsprintfcb+0x16e> 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 <stbsp_vsprintfcb+0x16e> + 14f2: 0685 addi a3,a3,1 + 14f4: b7a1 j 143c <stbsp_vsprintfcb+0x16e> if (fl & STBSP__METRIC_SUFFIX) { - 14e6: 100e7793 andi a5,t3,256 - 14ea: 8772 mv a4,t3 - 14ec: 56078363 beqz a5,1a52 <stbsp_vsprintfcb+0x794> + 14f6: 100e7793 andi a5,t3,256 + 14fa: 8772 mv a4,t3 + 14fc: 56078363 beqz a5,1a62 <stbsp_vsprintfcb+0x794> if (fl & STBSP__METRIC_1024) { - 14f0: 6785 lui a5,0x1 - 14f2: 034e1513 slli a0,t3,0x34 - 14f6: 80078793 addi a5,a5,-2048 # 800 <stbsp__real_to_str+0x626> - 14fa: 5c055863 bgez a0,1aca <stbsp_vsprintfcb+0x80c> + 1500: 6785 lui a5,0x1 + 1502: 034e1513 slli a0,t3,0x34 + 1506: 80078793 addi a5,a5,-2048 # 800 <stbsp__real_to_str+0x616> + 150a: 5c055863 bgez a0,1ada <stbsp_vsprintfcb+0x80c> 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 <stbsp_vsprintfcb+0x16e> + 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 <stbsp_vsprintfcb+0x16e> 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 <stbsp_vsprintfcb+0x16e> + 151e: 0685 addi a3,a3,1 + 1520: bf31 j 143c <stbsp_vsprintfcb+0x16e> 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 <stbsp_vsprintfcb+0x16e> + 1526: 0685 addi a3,a3,1 + 1528: bf11 j 143c <stbsp_vsprintfcb+0x16e> 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 <stbsp_vsprintfcb+0x1aa> + 1536: 46a5 li a3,9 + 1538: f4e660e3 bltu a2,a4,1478 <stbsp_vsprintfcb+0x1aa> 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 <stbsp_vsprintfcb+0x26e> + 1554: fd07871b addiw a4,a5,-48 + 1558: 0ff77713 zext.b a4,a4 + 155c: fee6f0e3 bgeu a3,a4,153c <stbsp_vsprintfcb+0x26e> 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 <stbsp_vsprintfcb+0x1b4> + 1566: f0e79ee3 bne a5,a4,1482 <stbsp_vsprintfcb+0x1b4> if (f[0] == '*') { - 155a: 0014c783 lbu a5,1(s1) - 155e: 02a00713 li a4,42 - 1562: 52e79763 bne a5,a4,1a90 <stbsp_vsprintfcb+0x7d2> + 156a: 0014c783 lbu a5,1(s1) + 156e: 02a00713 li a4,42 + 1572: 52e79763 bne a5,a4,1aa0 <stbsp_vsprintfcb+0x7d2> 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 <stbsp_vsprintfcb+0x1bc> + 1586: f0e792e3 bne a5,a4,148a <stbsp_vsprintfcb+0x1bc> if ((f[1] == '6') && (f[2] == '4')) { - 157a: 0014c783 lbu a5,1(s1) - 157e: 03600713 li a4,54 - 1582: 00e79463 bne a5,a4,158a <stbsp_vsprintfcb+0x2cc> - 1586: 1e60106f j 276c <stbsp_vsprintfcb+0x14ae> + 158a: 0014c783 lbu a5,1(s1) + 158e: 03600713 li a4,54 + 1592: 00e79463 bne a5,a4,159a <stbsp_vsprintfcb+0x2cc> + 1596: 1e60106f j 277c <stbsp_vsprintfcb+0x14ae> } else if ((f[1] == '3') && (f[2] == '2')) { - 158a: 03300713 li a4,51 - 158e: 6ae796e3 bne a5,a4,243a <stbsp_vsprintfcb+0x117c> - 1592: 0024c683 lbu a3,2(s1) - 1596: 03200713 li a4,50 - 159a: 00e69463 bne a3,a4,15a2 <stbsp_vsprintfcb+0x2e4> - 159e: 0ae0106f j 264c <stbsp_vsprintfcb+0x138e> + 159a: 03300713 li a4,51 + 159e: 6ae796e3 bne a5,a4,244a <stbsp_vsprintfcb+0x117c> + 15a2: 0024c683 lbu a3,2(s1) + 15a6: 03200713 li a4,50 + 15aa: 00e69463 bne a3,a4,15b2 <stbsp_vsprintfcb+0x2e4> + 15ae: 0ae0106f j 265c <stbsp_vsprintfcb+0x138e> ++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 <stbsp_vsprintfcb+0xf2e> + 15dc: 010e7793 andi a5,t3,16 + 15e0: 40078ee3 beqz a5,21fc <stbsp_vsprintfcb+0xf2e> pr = (fw > pr) ? fw : pr; - 15d4: 87ba mv a5,a4 - 15d6: 00675363 bge a4,t1,15dc <stbsp_vsprintfcb+0x31e> - 15da: 879a mv a5,t1 - 15dc: 0007871b sext.w a4,a5 + 15e4: 87ba mv a5,a4 + 15e6: 00675363 bge a4,t1,15ec <stbsp_vsprintfcb+0x31e> + 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 <stbsp_vsprintfcb+0x94e> + 15f2: 62070563 beqz a4,1c1c <stbsp_vsprintfcb+0x94e> 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 <stbsp_vsprintfcb+0x3de> + 15fc: 0a0a0863 beqz s4,16ac <stbsp_vsprintfcb+0x3de> 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 <stbsp_vsprintfcb+0xe44> - 1622: 40a7863b subw a2,a5,a0 - 1626: 40cb083b subw a6,s6,a2 - 162a: 85c2 mv a1,a6 - 162c: 01075363 bge a4,a6,1632 <stbsp_vsprintfcb+0x374> - 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 <stbsp_vsprintfcb+0xe44> + 1632: 40a7863b subw a2,a5,a0 + 1636: 40cb083b subw a6,s6,a2 + 163a: 85c2 mv a1,a6 + 163c: 01075363 bge a4,a6,1642 <stbsp_vsprintfcb+0x374> + 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 <stbsp_vsprintfcb+0x3a8> - 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 <stbsp_vsprintfcb+0x3a8> + 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 <stbsp_vsprintfcb+0x38e> - 165c: 982e add a6,a6,a1 - 165e: fcc2 sd a6,120(sp) + 1668: fec79ae3 bne a5,a2,165c <stbsp_vsprintfcb+0x38e> + 166c: 982e add a6,a6,a1 + 166e: fcc2 sd a6,120(sp) stbsp__chk_cb_buf(1); - 1660: c899 beqz s1,1676 <stbsp_vsprintfcb+0x3b8> - 1662: 40a7863b subw a2,a5,a0 - 1666: 00cbd863 bge s7,a2,1676 <stbsp_vsprintfcb+0x3b8> - 166a: 65a2 ld a1,8(sp) - 166c: 9c31 addw s0,s0,a2 - 166e: 9482 jalr s1 - 1670: 34050ee3 beqz a0,21cc <stbsp_vsprintfcb+0xf0e> - 1674: 87aa mv a5,a0 + 1670: c899 beqz s1,1686 <stbsp_vsprintfcb+0x3b8> + 1672: 40a7863b subw a2,a5,a0 + 1676: 00cbd863 bge s7,a2,1686 <stbsp_vsprintfcb+0x3b8> + 167a: 65a2 ld a1,8(sp) + 167c: 9c31 addw s0,s0,a2 + 167e: 9482 jalr s1 + 1680: 34050ee3 beqz a0,21dc <stbsp_vsprintfcb+0xf0e> + 1684: 87aa mv a5,a0 while (lead[0]) { - 1676: 06814683 lbu a3,104(sp) - 167a: f2c5 bnez a3,161a <stbsp_vsprintfcb+0x35c> - 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 <stbsp_vsprintfcb+0x35c> + 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 <stbsp_vsprintfcb+0x408> + 16b8: 4a01 li s4,0 + 16ba: 000b0e63 beqz s6,16d6 <stbsp_vsprintfcb+0x408> 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 <stbsp_vsprintfcb+0x4d6> + 16d6: 0ce05763 blez a4,17a4 <stbsp_vsprintfcb+0x4d6> *(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 <stbsp__digitpair> - 16ee: 8de6 mv s11,s9 + 16f6: 00005f17 auipc t5,0x5 + 16fa: 29af0f13 addi t5,t5,666 # 6990 <stbsp__digitpair> + 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 <stbsp_vsprintfcb+0xea4> - 170a: 40a407b3 sub a5,s0,a0 - 170e: 40fc063b subw a2,s8,a5 - 1712: 87b2 mv a5,a2 - 1714: 00c9d363 bge s3,a2,171a <stbsp_vsprintfcb+0x45c> - 1718: 87ce mv a5,s3 - 171a: 0007859b sext.w a1,a5 + 1716: 240b0ee3 beqz s6,2172 <stbsp_vsprintfcb+0xea4> + 171a: 40a407b3 sub a5,s0,a0 + 171e: 40fc063b subw a2,s8,a5 + 1722: 87b2 mv a5,a2 + 1724: 00c9d363 bge s3,a2,172a <stbsp_vsprintfcb+0x45c> + 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 <stbsp_vsprintfcb+0x79c> + 1732: 32048c63 beqz s1,1a6a <stbsp_vsprintfcb+0x79c> while (i) { - 1726: 34058a63 beqz a1,1a7a <stbsp_vsprintfcb+0x7bc> - 172a: 1582 slli a1,a1,0x20 + 1736: 34058a63 beqz a1,1a8a <stbsp_vsprintfcb+0x7bc> + 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 <stbsp_vsprintfcb+0x480> - 1738: 1d4901e3 beq s2,s4,20fa <stbsp_vsprintfcb+0xe3c> - 173c: 2a05 addiw s4,s4,1 + 1746: c481 beqz s1,174e <stbsp_vsprintfcb+0x480> + 1748: 1d4901e3 beq s2,s4,210a <stbsp_vsprintfcb+0xe3c> + 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 <stbsp_vsprintfcb+0x476> + 1756: fe8597e3 bne a1,s0,1744 <stbsp_vsprintfcb+0x476> stbsp__chk_cb_buf(1); - 174a: 320b0b63 beqz s6,1a80 <stbsp_vsprintfcb+0x7c2> - 174e: 40a5863b subw a2,a1,a0 - 1752: 32c2d763 bge t0,a2,1a80 <stbsp_vsprintfcb+0x7c2> - 1756: 65a2 ld a1,8(sp) - 1758: 01560abb addw s5,a2,s5 - 175c: 9b02 jalr s6 - 175e: 3a050ce3 beqz a0,2316 <stbsp_vsprintfcb+0x1058> - 1762: 842a mv s0,a0 - 1764: 1fe00293 li t0,510 - 1768: 00005f17 auipc t5,0x5 - 176c: 208f0f13 addi t5,t5,520 # 6970 <stbsp__digitpair> - 1770: 03000e93 li t4,48 + 175a: 320b0b63 beqz s6,1a90 <stbsp_vsprintfcb+0x7c2> + 175e: 40a5863b subw a2,a1,a0 + 1762: 32c2d763 bge t0,a2,1a90 <stbsp_vsprintfcb+0x7c2> + 1766: 65a2 ld a1,8(sp) + 1768: 01560abb addw s5,a2,s5 + 176c: 9b02 jalr s6 + 176e: 3a050ce3 beqz a0,2326 <stbsp_vsprintfcb+0x1058> + 1772: 842a mv s0,a0 + 1774: 1fe00293 li t0,510 + 1778: 00005f17 auipc t5,0x5 + 177c: 218f0f13 addi t5,t5,536 # 6990 <stbsp__digitpair> + 1780: 03000e93 li t4,48 while (pr > 0) { - 1774: f93049e3 bgtz s3,1706 <stbsp_vsprintfcb+0x448> + 1784: f93049e3 bgtz s3,1716 <stbsp_vsprintfcb+0x448> 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 <stbsp_vsprintfcb+0x580> + 17aa: 0a0a0263 beqz s4,184e <stbsp_vsprintfcb+0x580> 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 <stbsp_vsprintfcb+0xe4c> - 17ca: 40a7863b subw a2,a5,a0 - 17ce: 40cb083b subw a6,s6,a2 - 17d2: 85c2 mv a1,a6 - 17d4: 01075363 bge a4,a6,17da <stbsp_vsprintfcb+0x51c> - 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 <stbsp_vsprintfcb+0xe4c> + 17da: 40a7863b subw a2,a5,a0 + 17de: 40cb083b subw a6,s6,a2 + 17e2: 85c2 mv a1,a6 + 17e4: 01075363 bge a4,a6,17ea <stbsp_vsprintfcb+0x51c> + 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 <stbsp_vsprintfcb+0x550> - 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 <stbsp_vsprintfcb+0x550> + 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 <stbsp_vsprintfcb+0x536> - 1804: 982e add a6,a6,a1 - 1806: fcc2 sd a6,120(sp) + 1810: fec79ae3 bne a5,a2,1804 <stbsp_vsprintfcb+0x536> + 1814: 982e add a6,a6,a1 + 1816: fcc2 sd a6,120(sp) stbsp__chk_cb_buf(1); - 1808: c899 beqz s1,181e <stbsp_vsprintfcb+0x560> - 180a: 40a7863b subw a2,a5,a0 - 180e: 00cbd863 bge s7,a2,181e <stbsp_vsprintfcb+0x560> - 1812: 65a2 ld a1,8(sp) - 1814: 9c31 addw s0,s0,a2 - 1816: 9482 jalr s1 - 1818: 1a050ae3 beqz a0,21cc <stbsp_vsprintfcb+0xf0e> - 181c: 87aa mv a5,a0 + 1818: c899 beqz s1,182e <stbsp_vsprintfcb+0x560> + 181a: 40a7863b subw a2,a5,a0 + 181e: 00cbd863 bge s7,a2,182e <stbsp_vsprintfcb+0x560> + 1822: 65a2 ld a1,8(sp) + 1824: 9c31 addw s0,s0,a2 + 1826: 9482 jalr s1 + 1828: 1a050ae3 beqz a0,21dc <stbsp_vsprintfcb+0xf0e> + 182c: 87aa mv a5,a0 while (lead[0]) { - 181e: 06814683 lbu a3,104(sp) - 1822: f2c5 bnez a3,17c2 <stbsp_vsprintfcb+0x504> - 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 <stbsp_vsprintfcb+0x504> + 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 <stbsp_vsprintfcb+0x64e> + 184e: c6f9 beqz a3,191c <stbsp_vsprintfcb+0x64e> 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 <stbsp_vsprintfcb+0xeae> - 186c: 40a78633 sub a2,a5,a0 - 1870: 40cb05bb subw a1,s6,a2 - 1874: 862e mv a2,a1 - 1876: 00b75363 bge a4,a1,187c <stbsp_vsprintfcb+0x5be> - 187a: 863a mv a2,a4 - 187c: 0006071b sext.w a4,a2 + 1874: 0004071b sext.w a4,s0 + 1878: 100982e3 beqz s3,217c <stbsp_vsprintfcb+0xeae> + 187c: 40a78633 sub a2,a5,a0 + 1880: 40cb05bb subw a1,s6,a2 + 1884: 862e mv a2,a1 + 1886: 00b75363 bge a4,a1,188c <stbsp_vsprintfcb+0x5be> + 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 <stbsp_vsprintfcb+0xf04> - 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 <stbsp_vsprintfcb+0x5dc> - 18aa: 002e9e9b slliw t4,t4,0x2 - 18ae: 41df073b subw a4,t5,t4 + 1892: 14ea50e3 bge s4,a4,21d2 <stbsp_vsprintfcb+0xf04> + 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 <stbsp_vsprintfcb+0x5dc> + 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 <stbsp_vsprintfcb+0x61c> - 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 <stbsp_vsprintfcb+0x61c> + 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 <stbsp_vsprintfcb+0x600> - 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 <stbsp_vsprintfcb+0x600> + 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 <stbsp_vsprintfcb+0x7ca> - 18de: 40a5863b subw a2,a1,a0 - 18e2: 1acbd363 bge s7,a2,1a88 <stbsp_vsprintfcb+0x7ca> - 18e6: 65a2 ld a1,8(sp) - 18e8: 0126093b addw s2,a2,s2 - 18ec: 9982 jalr s3 - 18ee: 20050be3 beqz a0,2304 <stbsp_vsprintfcb+0x1046> - 18f2: 87aa mv a5,a0 + 18ea: 1a098763 beqz s3,1a98 <stbsp_vsprintfcb+0x7ca> + 18ee: 40a5863b subw a2,a1,a0 + 18f2: 1acbd363 bge s7,a2,1a98 <stbsp_vsprintfcb+0x7ca> + 18f6: 65a2 ld a1,8(sp) + 18f8: 0126093b addw s2,a2,s2 + 18fc: 9982 jalr s3 + 18fe: 20050be3 beqz a0,2314 <stbsp_vsprintfcb+0x1046> + 1902: 87aa mv a5,a0 while (n) { - 18f4: f825 bnez s0,1864 <stbsp_vsprintfcb+0x5a6> - 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 <stbsp_vsprintfcb+0x5a6> + 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 <stbsp_vsprintfcb+0x6de> + 191c: 08088863 beqz a7,19ac <stbsp_vsprintfcb+0x6de> *(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 <stbsp_vsprintfcb+0xeba> - 192a: 41240633 sub a2,s0,s2 - 192e: 40cb87bb subw a5,s7,a2 - 1932: 873e mv a4,a5 - 1934: 00f8d363 bge a7,a5,193a <stbsp_vsprintfcb+0x67c> - 1938: 8746 mv a4,a7 - 193a: 0007079b sext.w a5,a4 + 1932: 20000b93 li s7,512 + 1936: 040989e3 beqz s3,2188 <stbsp_vsprintfcb+0xeba> + 193a: 41240633 sub a2,s0,s2 + 193e: 40cb87bb subw a5,s7,a2 + 1942: 873e mv a4,a5 + 1944: 00f8d363 bge a7,a5,194a <stbsp_vsprintfcb+0x67c> + 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 <stbsp_vsprintfcb+0xf20> + 1952: 08078ee3 beqz a5,21ee <stbsp_vsprintfcb+0xf20> if ((((stbsp__uintptr)bf) & 3) == 0) - 1946: 00347713 andi a4,s0,3 - 194a: e719 bnez a4,1958 <stbsp_vsprintfcb+0x69a> - 194c: 0390006f j 2184 <stbsp_vsprintfcb+0xec6> - 1950: 00347713 andi a4,s0,3 - 1954: 7a070f63 beqz a4,2112 <stbsp_vsprintfcb+0xe54> + 1956: 00347713 andi a4,s0,3 + 195a: e719 bnez a4,1968 <stbsp_vsprintfcb+0x69a> + 195c: 0390006f j 2194 <stbsp_vsprintfcb+0xec6> + 1960: 00347713 andi a4,s0,3 + 1964: 7a070f63 beqz a4,2122 <stbsp_vsprintfcb+0xe54> *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 <stbsp_vsprintfcb+0x692> + 1970: fbe5 bnez a5,1960 <stbsp_vsprintfcb+0x692> stbsp__chk_cb_buf(1); - 1962: 02098b63 beqz s3,1998 <stbsp_vsprintfcb+0x6da> - 1966: 4124063b subw a2,s0,s2 - 196a: 02c6d763 bge a3,a2,1998 <stbsp_vsprintfcb+0x6da> - 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 <stbsp_vsprintfcb+0x106a> - 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 <stbsp_vsprintfcb+0x6da> + 1976: 4124063b subw a2,s0,s2 + 197a: 02c6d763 bge a3,a2,19a8 <stbsp_vsprintfcb+0x6da> + 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 <stbsp_vsprintfcb+0x106a> + 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 <stbsp_vsprintfcb+0x668> + 19a8: f80897e3 bnez a7,1936 <stbsp_vsprintfcb+0x668> 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 <stbsp_vsprintfcb+0x772> + 19b2: 080f8763 beqz t6,1a40 <stbsp_vsprintfcb+0x772> 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 <stbsp_vsprintfcb+0xed0> - 19c2: 40a4063b subw a2,s0,a0 - 19c6: 40ca06bb subw a3,s4,a2 - 19ca: 8736 mv a4,a3 - 19cc: 00d7d363 bge a5,a3,19d2 <stbsp_vsprintfcb+0x714> - 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 <stbsp_vsprintfcb+0xed0> + 19d2: 40a4063b subw a2,s0,a0 + 19d6: 40ca06bb subw a3,s4,a2 + 19da: 8736 mv a4,a3 + 19dc: 00d7d363 bge a5,a3,19e2 <stbsp_vsprintfcb+0x714> + 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 <stbsp_vsprintfcb+0x74c> - 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 <stbsp_vsprintfcb+0x74c> + 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 <stbsp_vsprintfcb+0x730> - 19fe: 95b2 add a1,a1,a2 - 1a00: fcae sd a1,120(sp) + 1a0a: fed41ae3 bne s0,a3,19fe <stbsp_vsprintfcb+0x730> + 1a0e: 95b2 add a1,a1,a2 + 1a10: fcae sd a1,120(sp) stbsp__chk_cb_buf(1); - 1a02: 000d0d63 beqz s10,1a1c <stbsp_vsprintfcb+0x75e> - 1a06: 40a4063b subw a2,s0,a0 - 1a0a: 00cad963 bge s5,a2,1a1c <stbsp_vsprintfcb+0x75e> - 1a0e: 65a2 ld a1,8(sp) - 1a10: 00cb0b3b addw s6,s6,a2 - 1a14: 9d02 jalr s10 - 1a16: 200509e3 beqz a0,2428 <stbsp_vsprintfcb+0x116a> - 1a1a: 842a mv s0,a0 + 1a12: 000d0d63 beqz s10,1a2c <stbsp_vsprintfcb+0x75e> + 1a16: 40a4063b subw a2,s0,a0 + 1a1a: 00cad963 bge s5,a2,1a2c <stbsp_vsprintfcb+0x75e> + 1a1e: 65a2 ld a1,8(sp) + 1a20: 00cb0b3b addw s6,s6,a2 + 1a24: 9d02 jalr s10 + 1a26: 200509e3 beqz a0,2438 <stbsp_vsprintfcb+0x116a> + 1a2a: 842a mv s0,a0 while (tail[0]) { - 1a1c: 07014f83 lbu t6,112(sp) - 1a20: f80f9de3 bnez t6,19ba <stbsp_vsprintfcb+0x6fc> - 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 <stbsp_vsprintfcb+0x6fc> + 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 <stbsp_vsprintfcb+0x782> + 1a40: 001e7e13 andi t3,t3,1 + 1a44: 000e0663 beqz t3,1a50 <stbsp_vsprintfcb+0x782> if (fw > 0) { - 1a38: 00605463 blez t1,1a40 <stbsp_vsprintfcb+0x782> - 1a3c: 0300106f j 2a6c <stbsp_vsprintfcb+0x17ae> + 1a48: 00605463 blez t1,1a50 <stbsp_vsprintfcb+0x782> + 1a4c: 0300106f j 2a7c <stbsp_vsprintfcb+0x17ae> 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 <stbsp_vsprintfcb+0x5e> + 1a60: b0f1 j 132c <stbsp_vsprintfcb+0x5e> 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 <stbsp_vsprintfcb+0x16e> + 1a66: 0685 addi a3,a3,1 + 1a68: bad1 j 143c <stbsp_vsprintfcb+0x16e> while (i) { - 1a5a: 0e0580e3 beqz a1,233a <stbsp_vsprintfcb+0x107c> + 1a6a: 0e0580e3 beqz a1,234a <stbsp_vsprintfcb+0x107c> if ((((stbsp__uintptr)bf) & 3) == 0) - 1a5e: 00347793 andi a5,s0,3 - 1a62: e799 bnez a5,1a70 <stbsp_vsprintfcb+0x7b2> - 1a64: 0dd0006f j 2340 <stbsp_vsprintfcb+0x1082> - 1a68: 00347793 andi a5,s0,3 - 1a6c: 72078463 beqz a5,2194 <stbsp_vsprintfcb+0xed6> + 1a6e: 00347793 andi a5,s0,3 + 1a72: e799 bnez a5,1a80 <stbsp_vsprintfcb+0x7b2> + 1a74: 0dd0006f j 2350 <stbsp_vsprintfcb+0x1082> + 1a78: 00347793 andi a5,s0,3 + 1a7c: 72078463 beqz a5,21a4 <stbsp_vsprintfcb+0xed6> *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 <stbsp_vsprintfcb+0x7aa> + 1a88: f9e5 bnez a1,1a78 <stbsp_vsprintfcb+0x7aa> while (i) { - 1a7a: 85a2 mv a1,s0 + 1a8a: 85a2 mv a1,s0 stbsp__chk_cb_buf(1); - 1a7c: cc0b19e3 bnez s6,174e <stbsp_vsprintfcb+0x490> - 1a80: 842e mv s0,a1 + 1a8c: cc0b19e3 bnez s6,175e <stbsp_vsprintfcb+0x490> + 1a90: 842e mv s0,a1 while (pr > 0) { - 1a82: c93042e3 bgtz s3,1706 <stbsp_vsprintfcb+0x448> - 1a86: b9cd j 1778 <stbsp_vsprintfcb+0x4ba> + 1a92: c93042e3 bgtz s3,1716 <stbsp_vsprintfcb+0x448> + 1a96: b9cd j 1788 <stbsp_vsprintfcb+0x4ba> while (i) { - 1a88: 87ae mv a5,a1 + 1a98: 87ae mv a5,a1 while (n) { - 1a8a: dc041de3 bnez s0,1864 <stbsp_vsprintfcb+0x5a6> - 1a8e: b5a5 j 18f6 <stbsp_vsprintfcb+0x638> + 1a9a: dc041de3 bnez s0,1874 <stbsp_vsprintfcb+0x5a6> + 1a9e: b5a5 j 1906 <stbsp_vsprintfcb+0x638> 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 <stbsp_vsprintfcb+0x1b4> + 1aae: 46a5 li a3,9 + 1ab0: 9ce669e3 bltu a2,a4,1482 <stbsp_vsprintfcb+0x1b4> 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 <stbsp_vsprintfcb+0x7e6> - 1ac8: b26d j 1472 <stbsp_vsprintfcb+0x1b4> + 1acc: fd07871b addiw a4,a5,-48 + 1ad0: 0ff77713 zext.b a4,a4 + 1ad4: fee6f0e3 bgeu a3,a4,1ab4 <stbsp_vsprintfcb+0x7e6> + 1ad8: b26d j 1482 <stbsp_vsprintfcb+0x1b4> 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 <stbsp_vsprintfcb+0x16e> + 1ada: 8f5d or a4,a4,a5 + 1adc: 00070e1b sext.w t3,a4 + 1ae0: 0685 addi a3,a3,1 + 1ae2: baa9 j 143c <stbsp_vsprintfcb+0x16e> *bf = 0; - 1ad4: 00040023 sb zero,0(s0) - 1ad8: b209 j 13da <stbsp_vsprintfcb+0x11c> + 1ae4: 00040023 sb zero,0(s0) + 1ae8: b209 j 13ea <stbsp_vsprintfcb+0x11c> 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 <stbsp_vsprintfcb+0x840> + 1af6: 00e78c63 beq a5,a4,1b0e <stbsp_vsprintfcb+0x840> ++f; - 1aea: 0485 addi s1,s1,1 - 1aec: ba65 j 14a4 <stbsp_vsprintfcb+0x1e6> + 1afa: 0485 addi s1,s1,1 + 1afc: ba65 j 14b4 <stbsp_vsprintfcb+0x1e6> 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 <stbsp_vsprintfcb+0x82c> + 1b0a: fee798e3 bne a5,a4,1afa <stbsp_vsprintfcb+0x82c> 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 <stbsp_vsprintfcb+0x1e6> + 1b12: 0489 addi s1,s1,2 + 1b14: b245 j 14b4 <stbsp_vsprintfcb+0x1e6> 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 <stbsp_vsprintfcb+0x12b0> + 1b1c: 020e7693 andi a3,t3,32 + 1b20: 8772 mv a4,t3 + 1b22: 24069ee3 bnez a3,257e <stbsp_vsprintfcb+0x12b0> 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 <stbsp_vsprintfcb+0x87c> - 1b2a: 0006d863 bgez a3,1b3a <stbsp_vsprintfcb+0x87c> + 1b36: 00c78a63 beq a5,a2,1b4a <stbsp_vsprintfcb+0x87c> + 1b3a: 0006d863 bgez a3,1b4a <stbsp_vsprintfcb+0x87c> 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 <stbsp_vsprintfcb+0x1646> + 1b4a: 100e7693 andi a3,t3,256 + 1b4e: 5c0683e3 beqz a3,2914 <stbsp_vsprintfcb+0x1646> if (n64 < 1024) - 1b42: 3ff00793 li a5,1023 - 1b46: 01e7e463 bltu a5,t5,1b4e <stbsp_vsprintfcb+0x890> - 1b4a: 0ea0106f j 2c34 <stbsp_vsprintfcb+0x1976> + 1b52: 3ff00793 li a5,1023 + 1b56: 01e7e463 bltu a5,t5,1b5e <stbsp_vsprintfcb+0x890> + 1b5a: 0ea0106f j 2c44 <stbsp_vsprintfcb+0x1976> else if (pr == -1) - 1b4e: 57fd li a5,-1 - 1b50: 30f887e3 beq a7,a5,265e <stbsp_vsprintfcb+0x13a0> + 1b5e: 57fd li a5,-1 + 1b60: 30f887e3 beq a7,a5,266e <stbsp_vsprintfcb+0x13a0> 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 <stbsp_vsprintfcb+0x8a6> - 1b60: 2300106f j 2d90 <stbsp_vsprintfcb+0x1ad2> + 1b68: 034e1793 slli a5,t3,0x34 + 1b6c: 0007c463 bltz a5,1b74 <stbsp_vsprintfcb+0x8a6> + 1b70: 2300106f j 2da0 <stbsp_vsprintfcb+0x1ad2> divisor = 1024.0; - 1b64: 00004797 auipc a5,0x4 - 1b68: cf47b787 fld fa5,-780(a5) # 5858 <STDIN_FD+0x20> + 1b74: 00004797 auipc a5,0x4 + 1b78: d047b787 fld fa5,-764(a5) # 5878 <STDIN_FD+0x20> 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 <stbsp_vsprintfcb+0x8c8> - 1b7e: a2a717d3 flt.d a5,fa4,fa0 - 1b82: 3e079863 bnez a5,1f72 <stbsp_vsprintfcb+0xcb4> + 1b88: a2f517d3 flt.d a5,fa0,fa5 + 1b8c: c789 beqz a5,1b96 <stbsp_vsprintfcb+0x8c8> + 1b8e: a2a717d3 flt.d a5,fa4,fa0 + 1b92: 3e079863 bnez a5,1f82 <stbsp_vsprintfcb+0xcb4> 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 <stbsp_vsprintfcb+0x8ba> - 1b92: a6c5 j 1f72 <stbsp_vsprintfcb+0xcb4> + 1b9e: feee65e3 bltu t3,a4,1b88 <stbsp_vsprintfcb+0x8ba> + 1ba2: a6c5 j 1f82 <stbsp_vsprintfcb+0xcb4> 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 <hex.0> - 1ba4: 00d79663 bne a5,a3,1bb0 <stbsp_vsprintfcb+0x8f2> - 1ba8: 00005817 auipc a6,0x5 - 1bac: e9880813 addi a6,a6,-360 # 6a40 <hexu.1> + 1bac: 00005817 auipc a6,0x5 + 1bb0: ecc80813 addi a6,a6,-308 # 6a78 <hex.0> + 1bb4: 00d79663 bne a5,a3,1bc0 <stbsp_vsprintfcb+0x8f2> + 1bb8: 00005817 auipc a6,0x5 + 1bbc: ea880813 addi a6,a6,-344 # 6a60 <hexu.1> 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 <stbsp_vsprintfcb+0x10a0> + 1bc6: 008e7793 andi a5,t3,8 + 1bca: 7a079263 bnez a5,236e <stbsp_vsprintfcb+0x10a0> 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 <stbsp_vsprintfcb+0x1040> + 1bd8: 72070b63 beqz a4,230e <stbsp_vsprintfcb+0x1040> 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 <stbsp_vsprintfcb+0x14a4> + 1bea: 380694e3 bnez a3,2772 <stbsp_vsprintfcb+0x14a4> lead[0] = 0; - 1bde: 06010423 sb zero,104(sp) + 1bee: 06010423 sb zero,104(sp) if (pr == 0) { - 1be2: 78089a63 bnez a7,2376 <stbsp_vsprintfcb+0x10b8> + 1bf2: 78089a63 bnez a7,2386 <stbsp_vsprintfcb+0x10b8> 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 <stbsp_vsprintfcb+0x30e> + 1c10: 9c0506e3 beqz a0,15dc <stbsp_vsprintfcb+0x30e> if (fw + pr) { - 1c04: 00e307bb addw a5,t1,a4 - 1c08: 9c079fe3 bnez a5,15e6 <stbsp_vsprintfcb+0x328> - 1c0c: 06910793 addi a5,sp,105 - 1c10: b661 j 1798 <stbsp_vsprintfcb+0x4da> + 1c14: 00e307bb addw a5,t1,a4 + 1c18: 9c079fe3 bnez a5,15f6 <stbsp_vsprintfcb+0x328> + 1c1c: 06910793 addi a5,sp,105 + 1c20: b661 j 17a8 <stbsp_vsprintfcb+0x4da> h = (f[0] == 'E') ? hexu : hex; - 1c12: 04500713 li a4,69 - 1c16: 00005317 auipc t1,0x5 - 1c1a: e4230313 addi t1,t1,-446 # 6a58 <hex.0> - 1c1e: 1ce78ae3 beq a5,a4,25f2 <stbsp_vsprintfcb+0x1334> + 1c22: 04500713 li a4,69 + 1c26: 00005317 auipc t1,0x5 + 1c2a: e5230313 addi t1,t1,-430 # 6a78 <hex.0> + 1c2e: 1ce78ae3 beq a5,a4,2602 <stbsp_vsprintfcb+0x1334> 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 <stbsp_vsprintfcb+0x1328> + 1c3e: 1af88ce3 beq a7,a5,25f6 <stbsp_vsprintfcb+0x1328> 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 <stbsp__real_to_str> - 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 <stbsp__real_to_str> + 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 <stbsp_vsprintfcb+0x1562> + 1c6e: 3c0511e3 bnez a0,2830 <stbsp_vsprintfcb+0x1562> 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 <stbsp_vsprintfcb+0x186c> + 1c7a: 004e7713 andi a4,t3,4 + 1c7e: 6a070ee3 beqz a4,2b3a <stbsp_vsprintfcb+0x186c> sign[0] = 1; - 1c72: 6709 lui a4,0x2 - 1c74: 0705 addi a4,a4,1 # 2001 <stbsp_vsprintfcb+0xd43> - 1c76: 06e11423 sh a4,104(sp) + 1c82: 6709 lui a4,0x2 + 1c84: 0705 addi a4,a4,1 # 2001 <stbsp_vsprintfcb+0xd33> + 1c86: 06e11423 sh a4,104(sp) if (dp == STBSP__SPECIAL) { - 1c7a: 671d lui a4,0x7 - 1c7c: 1ee794e3 bne a5,a4,2664 <stbsp_vsprintfcb+0x13a6> + 1c8a: 671d lui a4,0x7 + 1c8c: 1ee794e3 bne a5,a4,2674 <stbsp_vsprintfcb+0x13a6> 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 <stbsp_vsprintfcb+0x9ee> - 1caa: 8332 mv t1,a2 + 1cb4: 835a mv t1,s6 + 1cb6: 00cb5363 bge s6,a2,1cbc <stbsp_vsprintfcb+0x9ee> + 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 <stbsp_vsprintfcb+0x942> + 1cc8: b7a1 j 1c10 <stbsp_vsprintfcb+0x942> h = (f[0] == 'G') ? hexu : hex; - 1cba: 04700713 li a4,71 - 1cbe: 00005317 auipc t1,0x5 - 1cc2: d9a30313 addi t1,t1,-614 # 6a58 <hex.0> - 1cc6: 14e783e3 beq a5,a4,260c <stbsp_vsprintfcb+0x134e> + 1cca: 04700713 li a4,71 + 1cce: 00005317 auipc t1,0x5 + 1cd2: daa30313 addi t1,t1,-598 # 6a78 <hex.0> + 1cd6: 14e783e3 beq a5,a4,261c <stbsp_vsprintfcb+0x134e> 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 <stbsp_vsprintfcb+0x1340> + 1ce6: 12f884e3 beq a7,a5,260e <stbsp_vsprintfcb+0x1340> else if (pr == 0) - 1cda: 6e0887e3 beqz a7,2bc8 <stbsp_vsprintfcb+0x190a> + 1cea: 6e0887e3 beqz a7,2bd8 <stbsp_vsprintfcb+0x190a> 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 <stbsp__real_to_str> - 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 <stbsp_vsprintfcb+0xa56> + 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 <stbsp__real_to_str> + 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 <stbsp_vsprintfcb+0xa56> 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 <stbsp_vsprintfcb+0xa60> + 1d24: 5806 lw a6,96(sp) + 1d26: 010af463 bgeu s5,a6,1d2e <stbsp_vsprintfcb+0xa60> 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 <stbsp_vsprintfcb+0xa6c> - 1d26: 1800106f j 2ea6 <stbsp_vsprintfcb+0x1be8> - 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 <stbsp_vsprintfcb+0xaa2> + 1d32: 01076463 bltu a4,a6,1d3a <stbsp_vsprintfcb+0xa6c> + 1d36: 1800106f j 2eb6 <stbsp_vsprintfcb+0x1be8> + 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 <stbsp_vsprintfcb+0xaa2> --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 <stbsp_vsprintfcb+0x1494> - 1d56: 177d addi a4,a4,-1 # 6fff <_stdout+0x16f> - 1d58: 4f05 li t5,1 - 1d5a: 1e088ce3 beqz a7,2752 <stbsp_vsprintfcb+0x1494> + 1d62: 211e80e3 beq t4,a7,2762 <stbsp_vsprintfcb+0x1494> + 1d66: 177d addi a4,a4,-1 # 6fff <_stdout+0x14f> + 1d68: 4f05 li t5,1 + 1d6a: 1e088ce3 beqz a7,2762 <stbsp_vsprintfcb+0x1494> --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 <stbsp_vsprintfcb+0xa92> - 1d76: 6842 ld a6,16(sp) - 1d78: fc2e sd a1,56(sp) - 1d7a: 86c2 mv a3,a6 - 1d7c: 000f0463 beqz t5,1d84 <stbsp_vsprintfcb+0xac6> - 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 <stbsp_vsprintfcb+0xa92> + 1d86: 6842 ld a6,16(sp) + 1d88: fc2e sd a1,56(sp) + 1d8a: 86c2 mv a3,a6 + 1d8c: 000f0463 beqz t5,1d94 <stbsp_vsprintfcb+0xac6> + 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 <stbsp_vsprintfcb+0x1364> - 1d8a: 08fa4be3 blt s4,a5,2620 <stbsp_vsprintfcb+0x1362> + 1d94: 5775 li a4,-3 + 1d96: 08e7cee3 blt a5,a4,2632 <stbsp_vsprintfcb+0x1364> + 1d9a: 08fa4be3 blt s4,a5,2630 <stbsp_vsprintfcb+0x1362> 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 <stbsp_vsprintfcb+0x1ac2> + 1da2: 7ef057e3 blez a5,2d90 <stbsp_vsprintfcb+0x1ac2> pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 1d96: 4881 li a7,0 - 1d98: 00e7d463 bge a5,a4,1da0 <stbsp_vsprintfcb+0xae2> - 1d9c: 40f508bb subw a7,a0,a5 + 1da6: 4881 li a7,0 + 1da8: 00e7d463 bge a5,a4,1db0 <stbsp_vsprintfcb+0xae2> + 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 <stbsp_vsprintfcb+0xcee> + 1db4: 20029463 bnez t0,1fbc <stbsp_vsprintfcb+0xcee> } else if (fl & STBSP__LEADINGSPACE) { - 1da8: 004e7713 andi a4,t3,4 - 1dac: 000715e3 bnez a4,25b6 <stbsp_vsprintfcb+0x12f8> + 1db8: 004e7713 andi a4,t3,4 + 1dbc: 000715e3 bnez a4,25c6 <stbsp_vsprintfcb+0x12f8> } else if (fl & STBSP__LEADINGPLUS) { - 1db0: 002e7713 andi a4,t3,2 - 1db4: 660719e3 bnez a4,2c26 <stbsp_vsprintfcb+0x1968> + 1dc0: 002e7713 andi a4,t3,2 + 1dc4: 660719e3 bnez a4,2c36 <stbsp_vsprintfcb+0x1968> sign[0] = 0; - 1db8: 06010423 sb zero,104(sp) - 1dbc: aaed j 1fb6 <stbsp_vsprintfcb+0xcf8> + 1dc8: 06010423 sb zero,104(sp) + 1dcc: aaed j 1fc6 <stbsp_vsprintfcb+0xcf8> h = (f[0] == 'A') ? hexu : hex; - 1dbe: 04100713 li a4,65 - 1dc2: 00005597 auipc a1,0x5 - 1dc6: c9658593 addi a1,a1,-874 # 6a58 <hex.0> - 1dca: 00e783e3 beq a5,a4,25d0 <stbsp_vsprintfcb+0x1312> + 1dce: 04100713 li a4,65 + 1dd2: 00005597 auipc a1,0x5 + 1dd6: ca658593 addi a1,a1,-858 # 6a78 <hex.0> + 1dda: 00e783e3 beq a5,a4,25e0 <stbsp_vsprintfcb+0x1312> 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 <stbsp_vsprintfcb+0x130e> + 1dea: 7ee88963 beq a7,a4,25dc <stbsp_vsprintfcb+0x130e> 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 <stbsp_vsprintfcb+0x12e2> + 1e00: 7a07c863 bltz a5,25b0 <stbsp_vsprintfcb+0x12e2> } else if (fl & STBSP__LEADINGSPACE) { - 1df4: 004e7793 andi a5,t3,4 - 1df8: 60078ee3 beqz a5,2c14 <stbsp_vsprintfcb+0x1956> - 1dfc: 6789 lui a5,0x2 - 1dfe: 2785 addiw a5,a5,1 # 2001 <stbsp_vsprintfcb+0xd43> + 1e04: 004e7793 andi a5,t3,4 + 1e08: 60078ee3 beqz a5,2c24 <stbsp_vsprintfcb+0x1956> + 1e0c: 6789 lui a5,0x2 + 1e0e: 2785 addiw a5,a5,1 # 2001 <stbsp_vsprintfcb+0xd33> 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 <stbsp_vsprintfcb+0x1916> + 1e24: 5cf600e3 beq a2,a5,2be4 <stbsp_vsprintfcb+0x1916> 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 <stbsp_vsprintfcb+0x15ac> + 1e2e: 251546e3 blt a0,a7,287a <stbsp_vsprintfcb+0x15ac> 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 <stbsp_vsprintfcb+0x1aec> + 1e74: 740893e3 bnez a7,2dba <stbsp_vsprintfcb+0x1aec> 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 <stbsp_vsprintfcb+0xbd0> + 1e92: 00065663 bgez a2,1e9e <stbsp_vsprintfcb+0xbd0> 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 <stbsp_vsprintfcb+0x156c> - 1ea8: 06300e93 li t4,99 - 1eac: 54cec1e3 blt t4,a2,2bee <stbsp_vsprintfcb+0x1930> - 1eb0: 4ea5 li t4,9 - 1eb2: 72ced6e3 bge t4,a2,2dde <stbsp_vsprintfcb+0x1b20> + 1eb4: 18cec3e3 blt t4,a2,283a <stbsp_vsprintfcb+0x156c> + 1eb8: 06300e93 li t4,99 + 1ebc: 54cec1e3 blt t4,a2,2bfe <stbsp_vsprintfcb+0x1930> + 1ec0: 4ea5 li t4,9 + 1ec2: 72ced6e3 bge t4,a2,2dee <stbsp_vsprintfcb+0x1b20> 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 <stbsp_vsprintfcb+0xc30> - 1eec: 8332 mv t1,a2 + 1ef6: 835a mv t1,s6 + 1ef8: 00cb5363 bge s6,a2,1efe <stbsp_vsprintfcb+0xc30> + 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 <stbsp_vsprintfcb+0x942> + 1f0c: b311 j 1c10 <stbsp_vsprintfcb+0x942> h = (f[0] == 'B') ? hexu : hex; - 1efe: 04200713 li a4,66 - 1f02: 00005817 auipc a6,0x5 - 1f06: b5680813 addi a6,a6,-1194 # 6a58 <hex.0> - 1f0a: 6ce78963 beq a5,a4,25dc <stbsp_vsprintfcb+0x131e> + 1f0e: 04200713 li a4,66 + 1f12: 00005817 auipc a6,0x5 + 1f16: b6680813 addi a6,a6,-1178 # 6a78 <hex.0> + 1f1a: 6ce78963 beq a5,a4,25ec <stbsp_vsprintfcb+0x131e> if (fl & STBSP__LEADING_0X) { - 1f0e: 008e7793 andi a5,t3,8 - 1f12: 66079e63 bnez a5,258e <stbsp_vsprintfcb+0x12d0> + 1f1e: 008e7793 andi a5,t3,8 + 1f22: 66079e63 bnez a5,259e <stbsp_vsprintfcb+0x12d0> 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 <stbsp_vsprintfcb+0x904> + 1f34: b979 j 1bd2 <stbsp_vsprintfcb+0x904> *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 <stbsp_vsprintfcb+0x130a> + 1f56: 835a mv t1,s6 + 1f58: 69605063 blez s6,25d8 <stbsp_vsprintfcb+0x130a> 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 <stbsp_vsprintfcb+0x942> + 1f6e: b14d j 1c10 <stbsp_vsprintfcb+0x942> 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 <stbsp_vsprintfcb+0x89a> + 1f7e: be0795e3 bnez a5,1b68 <stbsp_vsprintfcb+0x89a> 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 <stbsp_vsprintfcb+0xcc2> - 1f7c: 4719 li a4,6 + 1f88: 00f89463 bne a7,a5,1f90 <stbsp_vsprintfcb+0xcc2> + 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 <stbsp__real_to_str> - 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 <stbsp__real_to_str> + 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 <stbsp_vsprintfcb+0xae2> + 1fb0: e00500e3 beqz a0,1db0 <stbsp_vsprintfcb+0xae2> 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 <stbsp_vsprintfcb+0x1a43> - 1fb2: 06e11423 sh a4,104(sp) + 1fbc: 670d lui a4,0x3 + 1fbe: d0170713 addi a4,a4,-767 # 2d01 <stbsp_vsprintfcb+0x1a33> + 1fc2: 06e11423 sh a4,104(sp) if (dp == STBSP__SPECIAL) { - 1fb6: 671d lui a4,0x7 - 1fb8: 7ce78963 beq a5,a4,278a <stbsp_vsprintfcb+0x14cc> + 1fc6: 671d lui a4,0x7 + 1fc8: 7ce78963 beq a5,a4,279a <stbsp_vsprintfcb+0x14cc> if (dp <= 0) { - 1fbc: 46f05fe3 blez a5,2c3a <stbsp_vsprintfcb+0x197c> + 1fcc: 46f05fe3 blez a5,2c4a <stbsp_vsprintfcb+0x197c> 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 <stbsp_vsprintfcb+0xd1e> - 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 <stbsp_vsprintfcb+0xd1e> + 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 <stbsp__digitpair> + 1fec: 00005a17 auipc s4,0x5 + 1ff0: 9a4a0a13 addi s4,s4,-1628 # 6990 <stbsp__digitpair> 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 <stbsp_vsprintfcb+0x1186> + 1ffe: 44defb63 bgeu t4,a3,2454 <stbsp_vsprintfcb+0x1186> 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 <stbsp_vsprintfcb+0xd5e> - 1ffa: 8642 mv a2,a6 - 1ffc: 883a mv a6,a4 - 1ffe: 8732 mv a4,a2 + 2006: 4b91 li s7,4 + 2008: a015 j 202c <stbsp_vsprintfcb+0xd5e> + 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 <stbsp_vsprintfcb+0x1504> + 2028: 7bd57563 bgeu a0,t4,27d2 <stbsp_vsprintfcb+0x1504> *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 <stbsp_vsprintfcb+0xd3c> - 2024: 2585 addiw a1,a1,1 - 2026: fd759ae3 bne a1,s7,1ffa <stbsp_vsprintfcb+0xd3c> + 2030: fc030de3 beqz t1,200a <stbsp_vsprintfcb+0xd3c> + 2034: 2585 addiw a1,a1,1 + 2036: fd759ae3 bne a1,s7,200a <stbsp_vsprintfcb+0xd3c> *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 <stbsp_vsprintfcb+0xd42> + 2040: 4585 li a1,1 + 2042: b7f9 j 2010 <stbsp_vsprintfcb+0xd42> *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 <stbsp_vsprintfcb+0x782> + 2058: bae5 j 1a50 <stbsp_vsprintfcb+0x782> if (fl & STBSP__LEADING_0X) { - 204a: 008e7793 andi a5,t3,8 - 204e: 50079b63 bnez a5,2564 <stbsp_vsprintfcb+0x12a6> + 205a: 008e7793 andi a5,t3,8 + 205e: 50079b63 bnez a5,2574 <stbsp_vsprintfcb+0x12a6> 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 <hexu.1> + 2070: 00005817 auipc a6,0x5 + 2074: 9f080813 addi a6,a6,-1552 # 6a60 <hexu.1> goto radixnum; - 2068: bea9 j 1bc2 <stbsp_vsprintfcb+0x904> + 2078: bea9 j 1bd2 <stbsp_vsprintfcb+0x904> 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 <hex.0> - 2080: be05 j 1bb0 <stbsp_vsprintfcb+0x8f2> + 2088: 00005817 auipc a6,0x5 + 208c: 9f080813 addi a6,a6,-1552 # 6a78 <hex.0> + 2090: be05 j 1bc0 <stbsp_vsprintfcb+0x8f2> 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 <stbsp_vsprintfcb+0x194a> + 209c: 360a8ee3 beqz s5,2c18 <stbsp_vsprintfcb+0x194a> 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 <stbsp_vsprintfcb+0x1302> - 2098: 0008869b sext.w a3,a7 + 20a4: 5208c663 bltz a7,25d0 <stbsp_vsprintfcb+0x1302> + 20a8: 0008869b sext.w a3,a7 if (((stbsp__uintptr)sn & 3) == 0) - 209c: 2a0782e3 beqz a5,2b40 <stbsp_vsprintfcb+0x1882> + 20ac: 2a0782e3 beqz a5,2b50 <stbsp_vsprintfcb+0x1882> if (!limit || *sn == 0) - 20a0: 5a068b63 beqz a3,2656 <stbsp_vsprintfcb+0x1398> + 20b0: 5a068b63 beqz a3,2666 <stbsp_vsprintfcb+0x1398> if (((stbsp__uintptr)sn & 3) == 0) - 20a4: 87d6 mv a5,s5 - 20a6: a801 j 20b6 <stbsp_vsprintfcb+0xdf8> + 20b4: 87d6 mv a5,s5 + 20b6: a801 j 20c6 <stbsp_vsprintfcb+0xdf8> ++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 <stbsp_vsprintfcb+0x1884> + 20c0: 280709e3 beqz a4,2b52 <stbsp_vsprintfcb+0x1884> if (!limit || *sn == 0) - 20b4: c681 beqz a3,20bc <stbsp_vsprintfcb+0xdfe> - 20b6: 0007c703 lbu a4,0(a5) - 20ba: f77d bnez a4,20a8 <stbsp_vsprintfcb+0xdea> + 20c4: c681 beqz a3,20cc <stbsp_vsprintfcb+0xdfe> + 20c6: 0007c703 lbu a4,0(a5) + 20ca: f77d bnez a4,20b8 <stbsp_vsprintfcb+0xdea> 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 <stbsp_vsprintfcb+0xe2e> - 20ea: 833e mv t1,a5 + 20f4: 835a mv t1,s6 + 20f6: 00fb5363 bge s6,a5,20fc <stbsp_vsprintfcb+0xe2e> + 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 <stbsp_vsprintfcb+0x942> + 2108: b621 j 1c10 <stbsp_vsprintfcb+0x942> *bf++ = stbsp__comma; - 20fa: 87b2 mv a5,a2 + 210a: 87b2 mv a5,a2 cs = 0; - 20fc: 4a01 li s4,0 - 20fe: e44ff06f j 1742 <stbsp_vsprintfcb+0x484> + 210c: 4a01 li s4,0 + 210e: e44ff06f j 1752 <stbsp_vsprintfcb+0x484> lead[0] -= (char)i; - 2102: 06010423 sb zero,104(sp) + 2112: 06010423 sb zero,104(sp) while (i) { - 2106: d38ff06f j 163e <stbsp_vsprintfcb+0x380> + 2116: d38ff06f j 164e <stbsp_vsprintfcb+0x380> lead[0] -= (char)i; - 210a: 06010423 sb zero,104(sp) + 211a: 06010423 sb zero,104(sp) while (i) { - 210e: ed8ff06f j 17e6 <stbsp_vsprintfcb+0x528> + 211e: ed8ff06f j 17f6 <stbsp_vsprintfcb+0x528> while (i >= 4) { - 2112: 06fadc63 bge s5,a5,218a <stbsp_vsprintfcb+0xecc> + 2122: 06fadc63 bge s5,a5,219a <stbsp_vsprintfcb+0xecc> 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 <stbsp_vsprintfcb+0xe62> - 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 <stbsp_vsprintfcb+0xe62> + 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 <stbsp_vsprintfcb+0x6a4> - 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 <stbsp_vsprintfcb+0x6a4> + 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 <stbsp_vsprintfcb+0xe96> - 215e: 805ff06f j 1962 <stbsp_vsprintfcb+0x6a4> + 216a: fe871de3 bne a4,s0,2164 <stbsp_vsprintfcb+0xe96> + 216e: 805ff06f j 1972 <stbsp_vsprintfcb+0x6a4> 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 <stbsp_vsprintfcb+0x46c> - 216a: b8d5 j 1a5e <stbsp_vsprintfcb+0x7a0> + 2174: 4981 li s3,0 + 2176: dc049263 bnez s1,173a <stbsp_vsprintfcb+0x46c> + 217a: b8d5 j 1a6e <stbsp_vsprintfcb+0x7a0> STBSP__UNALIGNED(while (i >= 4) { - 216c: 4401 li s0,0 - 216e: 85be mv a1,a5 - 2170: f0ea4b63 blt s4,a4,1886 <stbsp_vsprintfcb+0x5c8> - 2174: f42ff06f j 18b6 <stbsp_vsprintfcb+0x5f8> + 217c: 4401 li s0,0 + 217e: 85be mv a1,a5 + 2180: f0ea4b63 blt s4,a4,1896 <stbsp_vsprintfcb+0x5c8> + 2184: f42ff06f j 18c6 <stbsp_vsprintfcb+0x5f8> 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 <stbsp_vsprintfcb+0x69a> + 2190: fc071c63 bnez a4,1968 <stbsp_vsprintfcb+0x69a> while (i >= 4) { - 2184: 470d li a4,3 - 2186: f8f748e3 blt a4,a5,2116 <stbsp_vsprintfcb+0xe58> - 218a: 8722 mv a4,s0 - 218c: b7c1 j 214c <stbsp_vsprintfcb+0xe8e> + 2194: 470d li a4,3 + 2196: f8f748e3 blt a4,a5,2126 <stbsp_vsprintfcb+0xe58> + 219a: 8722 mv a4,s0 + 219c: b7c1 j 215c <stbsp_vsprintfcb+0xe8e> tail[0] -= (char)i; - 218e: 06010823 sb zero,112(sp) + 219e: 06010823 sb zero,112(sp) while (i) { - 2192: b0b9 j 19e0 <stbsp_vsprintfcb+0x722> + 21a2: b0b9 j 19f0 <stbsp_vsprintfcb+0x722> while (i >= 4) { - 2194: 478d li a5,3 - 2196: 8622 mv a2,s0 - 2198: d8b7d963 bge a5,a1,172a <stbsp_vsprintfcb+0x46c> - 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 <stbsp_vsprintfcb+0x46c> + 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 <stbsp_vsprintfcb+0xeee> - 21b6: 0027979b slliw a5,a5,0x2 - 21ba: 40f385bb subw a1,t2,a5 - 21be: d68ff06f j 1726 <stbsp_vsprintfcb+0x468> + 21c2: fe861de3 bne a2,s0,21bc <stbsp_vsprintfcb+0xeee> + 21c6: 0027979b slliw a5,a5,0x2 + 21ca: 40f385bb subw a1,t2,a5 + 21ce: d68ff06f j 1736 <stbsp_vsprintfcb+0x468> while (i) { - 21c2: 85be mv a1,a5 - 21c4: ee071963 bnez a4,18b6 <stbsp_vsprintfcb+0x5f8> - 21c8: f16ff06f j 18de <stbsp_vsprintfcb+0x620> - 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 <stbsp_vsprintfcb+0x120> + 21d2: 85be mv a1,a5 + 21d4: ee071963 bnez a4,18c6 <stbsp_vsprintfcb+0x5f8> + 21d8: f16ff06f j 18ee <stbsp_vsprintfcb+0x620> + 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_vsprintfcb+0x120> stbsp__chk_cb_buf(1); - 21de: 2601 sext.w a2,a2 - 21e0: 1fe00793 li a5,510 - 21e4: f8c7c563 blt a5,a2,196e <stbsp_vsprintfcb+0x6b0> - 21e8: f3eff06f j 1926 <stbsp_vsprintfcb+0x668> + 21ee: 2601 sext.w a2,a2 + 21f0: 1fe00793 li a5,510 + 21f4: f8c7c563 blt a5,a2,197e <stbsp_vsprintfcb+0x6b0> + 21f8: f3eff06f j 1936 <stbsp_vsprintfcb+0x668> 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 <stbsp_vsprintfcb+0x94e> + 2206: a0078be3 beqz a5,1c1c <stbsp_vsprintfcb+0x94e> while (fw > 0) { - 21fa: be605663 blez t1,15e6 <stbsp_vsprintfcb+0x328> + 220a: be605663 blez t1,15f6 <stbsp_vsprintfcb+0x328> *(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 <stbsp_vsprintfcb+0x103a> - 223c: 40a78633 sub a2,a5,a0 - 2240: 40ce873b subw a4,t4,a2 - 2244: 86ba mv a3,a4 - 2246: 00e45363 bge s0,a4,224c <stbsp_vsprintfcb+0xf8e> - 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 <stbsp_vsprintfcb+0x103a> + 224c: 40a78633 sub a2,a5,a0 + 2250: 40ce873b subw a4,t4,a2 + 2254: 86ba mv a3,a4 + 2256: 00e45363 bge s0,a4,225c <stbsp_vsprintfcb+0xf8e> + 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 <stbsp_vsprintfcb+0xfa2> - 2254: a095 j 22b8 <stbsp_vsprintfcb+0xffa> + 2262: e719 bnez a4,2270 <stbsp_vsprintfcb+0xfa2> + 2264: a095 j 22c8 <stbsp_vsprintfcb+0xffa> *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 <stbsp_vsprintfcb+0xff2> + 226e: cb29 beqz a4,22c0 <stbsp_vsprintfcb+0xff2> if ((((stbsp__uintptr)bf) & 3) == 0) - 2260: 0037f693 andi a3,a5,3 - 2264: faed bnez a3,2256 <stbsp_vsprintfcb+0xf98> + 2270: 0037f693 andi a3,a5,3 + 2274: faed bnez a3,2266 <stbsp_vsprintfcb+0xf98> 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 <stbsp_vsprintfcb+0xfe0> + 2276: 86be mv a3,a5 + 2278: 00070f9b sext.w t6,a4 + 227c: 00f705bb addw a1,a4,a5 + 2280: 02ebd763 bge s7,a4,22ae <stbsp_vsprintfcb+0xfe0> *(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 <stbsp_vsprintfcb+0xfb6> - 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 <stbsp_vsprintfcb+0xfb6> + 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 <stbsp_vsprintfcb+0xff2> - 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 <stbsp_vsprintfcb+0xff2> + 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 <stbsp_vsprintfcb+0xfe8> + 22bc: fef69de3 bne a3,a5,22b6 <stbsp_vsprintfcb+0xfe8> stbsp__chk_cb_buf(1); - 22b0: 40a78633 sub a2,a5,a0 - 22b4: 00090e63 beqz s2,22d0 <stbsp_vsprintfcb+0x1012> - 22b8: 2601 sext.w a2,a2 - 22ba: 00cf5b63 bge t5,a2,22d0 <stbsp_vsprintfcb+0x1012> - 22be: 85ce mv a1,s3 - 22c0: 9cb1 addw s1,s1,a2 - 22c2: 9902 jalr s2 - 22c4: c541 beqz a0,234c <stbsp_vsprintfcb+0x108e> - 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 <stbsp_vsprintfcb+0x1012> + 22c8: 2601 sext.w a2,a2 + 22ca: 00cf5b63 bge t5,a2,22e0 <stbsp_vsprintfcb+0x1012> + 22ce: 85ce mv a1,s3 + 22d0: 9cb1 addw s1,s1,a2 + 22d2: 9902 jalr s2 + 22d4: c541 beqz a0,235c <stbsp_vsprintfcb+0x108e> + 22d6: 87aa mv a5,a0 + 22d8: 20000e93 li t4,512 + 22dc: 1fe00f13 li t5,510 while (fw > 0) { - 22d0: f68044e3 bgtz s0,2238 <stbsp_vsprintfcb+0xf7a> - 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 <stbsp_vsprintfcb+0x328> + 22e0: f68044e3 bgtz s0,2248 <stbsp_vsprintfcb+0xf7a> + 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_vsprintfcb+0x328> 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 <stbsp_vsprintfcb+0xfa2> + 230c: b795 j 2270 <stbsp_vsprintfcb+0xfa2> n64 = va_arg(va, stbsp__uint32); - 22fe: 000be683 lwu a3,0(s7) - 2302: b0f9 j 1bd0 <stbsp_vsprintfcb+0x912> - 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 <stbsp_vsprintfcb+0x120> - 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 <stbsp_vsprintfcb+0x120> + 230e: 000be683 lwu a3,0(s7) + 2312: b0f9 j 1be0 <stbsp_vsprintfcb+0x912> + 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 <stbsp_vsprintfcb+0x120> + 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 <stbsp_vsprintfcb+0x120> + 2334: 8baff06f j 13ee <stbsp_vsprintfcb+0x120> + 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 <stbsp_vsprintfcb+0x120> while (i) { - 233a: 85a2 mv a1,s0 - 233c: c12ff06f j 174e <stbsp_vsprintfcb+0x490> + 234a: 85a2 mv a1,s0 + 234c: c12ff06f j 175e <stbsp_vsprintfcb+0x490> while (i >= 4) { - 2340: 478d li a5,3 - 2342: 8622 mv a2,s0 - 2344: e4b7cce3 blt a5,a1,219c <stbsp_vsprintfcb+0xede> - 2348: be2ff06f j 172a <stbsp_vsprintfcb+0x46c> - 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 <stbsp_vsprintfcb+0x120> + 2350: 478d li a5,3 + 2352: 8622 mv a2,s0 + 2354: e4b7cce3 blt a5,a1,21ac <stbsp_vsprintfcb+0xede> + 2358: be2ff06f j 173a <stbsp_vsprintfcb+0x46c> + 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 <stbsp_vsprintfcb+0x120> 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 <sprintf+0xc> - 2366: 06f11423 sh a5,104(sp) + 2372: 678d lui a5,0x3 + 2374: 0789 addi a5,a5,2 # 3002 <stbsp_vsprintf+0xa> + 2376: 06f11423 sh a5,104(sp) lead[2] = h[16]; - 236a: 06d10523 sb a3,106(sp) - 236e: b891 j 1bc2 <stbsp_vsprintfcb+0x904> - 2370: 8cea mv s9,s10 - 2372: 86cff06f j 13de <stbsp_vsprintfcb+0x120> - 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 <stbsp_vsprintfcb+0x904> + 2380: 8cea mv s9,s10 + 2382: 86cff06f j 13ee <stbsp_vsprintfcb+0x120> + 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 <stbsp__comma> - 2384: 0510 addi a2,sp,640 - 2386: 0085d71b srliw a4,a1,0x8 + 238c: 00004f17 auipc t5,0x4 + 2390: 6d1f4f03 lbu t5,1745(t5) # 6a5d <stbsp__comma> + 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 <stbsp_vsprintfcb+0x10fc> - 23b0: 051c addi a5,sp,640 - 23b2: 415787bb subw a5,a5,s5 - 23b6: 0317dd63 bge a5,a7,23f0 <stbsp_vsprintfcb+0x1132> + 23be: e691 bnez a3,23ca <stbsp_vsprintfcb+0x10fc> + 23c0: 051c addi a5,sp,640 + 23c2: 415787bb subw a5,a5,s5 + 23c6: 0317dd63 bge a5,a7,2400 <stbsp_vsprintfcb+0x1132> if (fl & STBSP__TRIPLET_COMMA) { - 23ba: 020e8963 beqz t4,23ec <stbsp_vsprintfcb+0x112e> + 23ca: 020e8963 beqz t4,23fc <stbsp_vsprintfcb+0x112e> ++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 <stbsp_vsprintfcb+0x112e> + 23e2: 0087d71b srliw a4,a5,0x8 + 23e6: 00029b63 bnez t0,23fc <stbsp_vsprintfcb+0x112e> 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 <stbsp_vsprintfcb+0x10d2> + 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 <stbsp_vsprintfcb+0x10d2> 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 <stbsp_vsprintfcb+0x115c> - 2418: 8332 mv t1,a2 + 2422: 835a mv t1,s6 + 2424: 00cb5363 bge s6,a2,242a <stbsp_vsprintfcb+0x115c> + 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 <stbsp_vsprintfcb+0x942> - 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 <stbsp_vsprintfcb+0x120> + 2434: fdcff06f j 1c10 <stbsp_vsprintfcb+0x942> + 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 <stbsp_vsprintfcb+0x120> 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 <stbsp_vsprintfcb+0x1e6> + 244e: 0485 addi s1,s1,1 + 2450: 864ff06f j 14b4 <stbsp_vsprintfcb+0x1e6> 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 <stbsp_vsprintfcb+0x119a> - 2452: 2585 addiw a1,a1,1 - 2454: 10a58363 beq a1,a0,255a <stbsp_vsprintfcb+0x129c> - 2458: 873e mv a4,a5 + 245e: 00030563 beqz t1,2468 <stbsp_vsprintfcb+0x119a> + 2462: 2585 addiw a1,a1,1 + 2464: 10a58363 beq a1,a0,256a <stbsp_vsprintfcb+0x129c> + 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 <stbsp_vsprintfcb+0x118c> + 247c: fcd66fe3 bltu a2,a3,245a <stbsp_vsprintfcb+0x118c> if (n < (stbsp__uint32)dp) { - 2470: 0bd663e3 bltu a2,t4,2d16 <stbsp_vsprintfcb+0x1a58> + 2480: 0bd663e3 bltu a2,t4,2d26 <stbsp_vsprintfcb+0x1a58> 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 <stbsp_vsprintfcb+0x11d6> + 2490: 00088a63 beqz a7,24a4 <stbsp_vsprintfcb+0x11d6> *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 <stbsp_vsprintfcb+0x149e> + 24a4: 100e7713 andi a4,t3,256 + 24a8: 86f2 mv a3,t3 + 24aa: 2c070163 beqz a4,276c <stbsp_vsprintfcb+0x149e> 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 <stbsp_vsprintfcb+0x1264> + 24d2: c225 beqz a2,2532 <stbsp_vsprintfcb+0x1264> 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 <stbsp_vsprintfcb+0x1a94> + 24e6: 06055ee3 bgez a0,2d62 <stbsp_vsprintfcb+0x1a94> 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 <stbsp_vsprintfcb+0x542> - 24ee: 8f75 and a4,a4,a3 + 24f8: 6709 lui a4,0x2 + 24fa: 80070713 addi a4,a4,-2048 # 1800 <stbsp_vsprintfcb+0x532> + 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 <stbsp_vsprintfcb+0x1aae> + 250e: 8007071b addiw a4,a4,-2048 + 2512: 060715e3 bnez a4,2d7c <stbsp_vsprintfcb+0x1aae> 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 <stbsp_vsprintfcb+0x1290> - 254c: 8332 mv t1,a2 + 2556: 835a mv t1,s6 + 2558: 00cb5363 bge s6,a2,255e <stbsp_vsprintfcb+0x1290> + 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 <stbsp_vsprintfcb+0x942> + 2566: eaaff06f j 1c10 <stbsp_vsprintfcb+0x942> *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 <stbsp_vsprintfcb+0x119c> + 2570: 4585 li a1,1 + 2572: bde5 j 246a <stbsp_vsprintfcb+0x119c> lead[0] = 1; - 2564: 678d lui a5,0x3 - 2566: 0785 addi a5,a5,1 # 3001 <sprintf+0xb> - 2568: 06f11423 sh a5,104(sp) - 256c: b4ed j 2056 <stbsp_vsprintfcb+0xd98> + 2574: 678d lui a5,0x3 + 2576: 0785 addi a5,a5,1 # 3001 <stbsp_vsprintf+0x9> + 2578: 06f11423 sh a5,104(sp) + 257c: b4ed j 2066 <stbsp_vsprintfcb+0xd98> 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 <stbsp_vsprintfcb+0x87c> - 257a: dc0f5063 bgez t5,1b3a <stbsp_vsprintfcb+0x87c> + 2586: dcd78263 beq a5,a3,1b4a <stbsp_vsprintfcb+0x87c> + 258a: dc0f5063 bgez t5,1b4a <stbsp_vsprintfcb+0x87c> 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 <stbsp_vsprintfcb+0x87c> + 2596: 00070e1b sext.w t3,a4 + 259a: db0ff06f j 1b4a <stbsp_vsprintfcb+0x87c> 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 <sprintf+0xc> - 2596: 06f11423 sh a5,104(sp) + 25a2: 678d lui a5,0x3 + 25a4: 0789 addi a5,a5,2 # 3002 <stbsp_vsprintf+0xa> + 25a6: 06f11423 sh a5,104(sp) lead[2] = h[0xb]; - 259a: 06e10523 sb a4,106(sp) - 259e: bab5 j 1f1a <stbsp_vsprintfcb+0xc5c> + 25aa: 06e10523 sb a4,106(sp) + 25ae: bab5 j 1f2a <stbsp_vsprintfcb+0xc5c> sign[0] = 1; - 25a0: 678d lui a5,0x3 - 25a2: d0178793 addi a5,a5,-767 # 2d01 <stbsp_vsprintfcb+0x1a43> + 25b0: 678d lui a5,0x3 + 25b2: d0178793 addi a5,a5,-767 # 2d01 <stbsp_vsprintfcb+0x1a33> 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 <stbsp_vsprintfcb+0xb4c> + 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 <stbsp_vsprintfcb+0xb4c> sign[0] = 1; - 25b6: 6709 lui a4,0x2 - 25b8: 0705 addi a4,a4,1 # 2001 <stbsp_vsprintfcb+0xd43> - 25ba: 06e11423 sh a4,104(sp) - 25be: bae5 j 1fb6 <stbsp_vsprintfcb+0xcf8> + 25c6: 6709 lui a4,0x2 + 25c8: 0705 addi a4,a4,1 # 2001 <stbsp_vsprintfcb+0xd33> + 25ca: 06e11423 sh a4,104(sp) + 25ce: bae5 j 1fc6 <stbsp_vsprintfcb+0xcf8> if (((stbsp__uintptr)sn & 3) == 0) - 25c0: 0e0780e3 beqz a5,2ea0 <stbsp_vsprintfcb+0x1be2> + 25d0: 0e0780e3 beqz a5,2eb0 <stbsp_vsprintfcb+0x1be2> l = stbsp__strlen_limited(s, (pr >= 0) ? pr : ~0u); - 25c4: 56fd li a3,-1 - 25c6: bcf9 j 20a4 <stbsp_vsprintfcb+0xde6> + 25d4: 56fd li a3,-1 + 25d6: bcf9 j 20b4 <stbsp_vsprintfcb+0xde6> if (fw < (stbsp__int32)n) - 25c8: 4305 li t1,1 - 25ca: b249 j 1f4c <stbsp_vsprintfcb+0xc8e> + 25d8: 4305 li t1,1 + 25da: b249 j 1f5c <stbsp_vsprintfcb+0xc8e> pr = 6; // default is 6 - 25cc: 4899 li a7,6 - 25ce: b801 j 1dde <stbsp_vsprintfcb+0xb20> + 25dc: 4899 li a7,6 + 25de: b801 j 1dee <stbsp_vsprintfcb+0xb20> h = (f[0] == 'A') ? hexu : hex; - 25d0: 00004597 auipc a1,0x4 - 25d4: 47058593 addi a1,a1,1136 # 6a40 <hexu.1> - 25d8: ff6ff06f j 1dce <stbsp_vsprintfcb+0xb10> + 25e0: 00004597 auipc a1,0x4 + 25e4: 48058593 addi a1,a1,1152 # 6a60 <hexu.1> + 25e8: ff6ff06f j 1dde <stbsp_vsprintfcb+0xb10> h = (f[0] == 'B') ? hexu : hex; - 25dc: 00004817 auipc a6,0x4 - 25e0: 46480813 addi a6,a6,1124 # 6a40 <hexu.1> - 25e4: b22d j 1f0e <stbsp_vsprintfcb+0xc50> - 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 <hexu.1> + 25f4: b22d j 1f1e <stbsp_vsprintfcb+0xc50> + 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 <stbsp_vsprintfcb+0x97e> + 25fc: 4899 li a7,6 + 25fe: e4eff06f j 1c4c <stbsp_vsprintfcb+0x97e> h = (f[0] == 'E') ? hexu : hex; - 25f2: 00004317 auipc t1,0x4 - 25f6: 44e30313 addi t1,t1,1102 # 6a40 <hexu.1> - 25fa: e28ff06f j 1c22 <stbsp_vsprintfcb+0x964> - 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 <hexu.1> + 260a: e28ff06f j 1c32 <stbsp_vsprintfcb+0x964> + 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 <stbsp_vsprintfcb+0xa32> + 2616: 4a19 li s4,6 + 2618: ee8ff06f j 1d00 <stbsp_vsprintfcb+0xa32> h = (f[0] == 'G') ? hexu : hex; - 260c: 00004317 auipc t1,0x4 - 2610: 43430313 addi t1,t1,1076 # 6a40 <hexu.1> - 2614: eb6ff06f j 1cca <stbsp_vsprintfcb+0xa0c> - 2618: 7be6 ld s7,120(sp) + 261c: 00004317 auipc t1,0x4 + 2620: 44430313 addi t1,t1,1092 # 6a60 <hexu.1> + 2624: eb6ff06f j 1cda <stbsp_vsprintfcb+0xa0c> + 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 <stbsp_vsprintfcb+0x1386> + 2632: 0005071b sext.w a4,a0 + 2636: 01175f63 bge a4,a7,2654 <stbsp_vsprintfcb+0x1386> 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 <stbsp_vsprintfcb+0x1a8c> + 2642: 70028c63 beqz t0,2d5a <stbsp_vsprintfcb+0x1a8c> sign[0] = 1; - 2636: 670d lui a4,0x3 - 2638: d0170713 addi a4,a4,-767 # 2d01 <stbsp_vsprintfcb+0x1a43> - 263c: 06e11423 sh a4,104(sp) - 2640: e3aff06f j 1c7a <stbsp_vsprintfcb+0x9bc> + 2646: 670d lui a4,0x3 + 2648: d0170713 addi a4,a4,-767 # 2d01 <stbsp_vsprintfcb+0x1a33> + 264c: 06e11423 sh a4,104(sp) + 2650: e3aff06f j 1c8a <stbsp_vsprintfcb+0x9bc> else if (pr) - 2644: fe0885e3 beqz a7,262e <stbsp_vsprintfcb+0x1370> + 2654: fe0885e3 beqz a7,263e <stbsp_vsprintfcb+0x1370> --pr; // when using %e, there is one digit before the decimal - 2648: 38fd addiw a7,a7,-1 - 264a: b7d5 j 262e <stbsp_vsprintfcb+0x1370> + 2658: 38fd addiw a7,a7,-1 + 265a: b7d5 j 263e <stbsp_vsprintfcb+0x1370> 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 <stbsp_vsprintfcb+0x1e6> + 2660: 048d addi s1,s1,3 + 2662: e53fe06f j 14b4 <stbsp_vsprintfcb+0x1e6> 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 <stbsp_vsprintfcb+0xe16> + 266c: bca5 j 20e4 <stbsp_vsprintfcb+0xe16> pr = 1; - 265e: 4885 li a7,1 - 2660: cf4ff06f j 1b54 <stbsp_vsprintfcb+0x896> + 266e: 4885 li a7,1 + 2670: cf4ff06f j 1b64 <stbsp_vsprintfcb+0x896> *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 <stbsp_vsprintfcb+0x18f8> + 267c: 54088563 beqz a7,2bc6 <stbsp_vsprintfcb+0x18f8> *s++ = stbsp__period; - 2670: 00004617 auipc a2,0x4 - 2674: 3cc64603 lbu a2,972(a2) # 6a3c <stbsp__period> + 2680: 00004617 auipc a2,0x4 + 2684: 3dc64603 lbu a2,988(a2) # 6a5c <stbsp__period> 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 <stbsp_vsprintfcb+0x18ec> + 2690: 0008851b sext.w a0,a7 + 2694: 0007061b sext.w a2,a4 + 2698: 52c57163 bgeu a0,a2,2bba <stbsp_vsprintfcb+0x18ec> 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 <stbsp_vsprintfcb+0x13e2> + 26bc: fec71ae3 bne a4,a2,26b0 <stbsp_vsprintfcb+0x13e2> 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 <stbsp_vsprintfcb+0x140e> + 26d0: 00075663 bgez a4,26dc <stbsp_vsprintfcb+0x140e> 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 <stbsp_vsprintfcb+0x1902> - 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 <stbsp_vsprintfcb+0x1902> + 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 <stbsp_vsprintfcb+0x147c> + 2736: 014f0a63 beq t5,s4,274a <stbsp_vsprintfcb+0x147c> 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 <stbsp_vsprintfcb+0x1264> - 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 <stbsp_vsprintfcb+0x1264> + 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 <stbsp_vsprintfcb+0xac6> + 2766: 8536 mv a0,a3 + 2768: e2cff06f j 1d94 <stbsp_vsprintfcb+0xac6> flt_lead: - 275c: 4581 li a1,0 - 275e: 4f81 li t6,0 - 2760: b3c9 j 2522 <stbsp_vsprintfcb+0x1264> + 276c: 4581 li a1,0 + 276e: 4f81 li t6,0 + 2770: b3c9 j 2532 <stbsp_vsprintfcb+0x1264> n = pr + lead[0] + tail[0] + tz; - 2762: 06814a03 lbu s4,104(sp) - 2766: 000a0f9b sext.w t6,s4 - 276a: b901 j 237a <stbsp_vsprintfcb+0x10bc> + 2772: 06814a03 lbu s4,104(sp) + 2776: 000a0f9b sext.w t6,s4 + 277a: b901 j 238a <stbsp_vsprintfcb+0x10bc> if ((f[1] == '6') && (f[2] == '4')) { - 276c: 0024c683 lbu a3,2(s1) - 2770: 03400713 li a4,52 - 2774: 00e68463 beq a3,a4,277c <stbsp_vsprintfcb+0x14be> - 2778: e2bfe06f j 15a2 <stbsp_vsprintfcb+0x2e4> + 277c: 0024c683 lbu a3,2(s1) + 2780: 03400713 li a4,52 + 2784: 00e68463 beq a3,a4,278c <stbsp_vsprintfcb+0x14be> + 2788: e2bfe06f j 15b2 <stbsp_vsprintfcb+0x2e4> 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 <stbsp_vsprintfcb+0x1e6> + 2794: 048d addi s1,s1,3 + 2796: d1ffe06f j 14b4 <stbsp_vsprintfcb+0x1e6> 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 <stbsp_vsprintfcb+0x14f2> - 27ae: 8332 mv t1,a2 + 27b8: 835a mv t1,s6 + 27ba: 00cb5363 bge s6,a2,27c0 <stbsp_vsprintfcb+0x14f2> + 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 <stbsp_vsprintfcb+0x942> + 27ce: c42ff06f j 1c10 <stbsp_vsprintfcb+0x942> 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 <stbsp_vsprintfcb+0x1942> + 27e2: 42088763 beqz a7,2c10 <stbsp_vsprintfcb+0x1942> *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 <stbsp_vsprintfcb+0x1942> + 27f6: 4065ed63 bltu a1,t1,2c10 <stbsp_vsprintfcb+0x1942> while (n < l) { - 27ea: 5ed57863 bgeu a0,a3,2dda <stbsp_vsprintfcb+0x1b1c> - 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 <stbsp_vsprintfcb+0x1b1c> + 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 <stbsp_vsprintfcb+0x1544> + 281e: fef71ae3 bne a4,a5,2812 <stbsp_vsprintfcb+0x1544> 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 <stbsp_vsprintfcb+0x11d6> + 282a: 415787b3 sub a5,a5,s5 + 282e: b99d j 24a4 <stbsp_vsprintfcb+0x11d6> 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 <stbsp_vsprintfcb+0x1378> + 2838: b539 j 2646 <stbsp_vsprintfcb+0x1378> 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 <stbsp_vsprintfcb+0x1582> - 2866: e6aff06f j 1ed0 <stbsp_vsprintfcb+0xc12> + 2872: fc559fe3 bne a1,t0,2850 <stbsp_vsprintfcb+0x1582> + 2876: e6aff06f j 1ee0 <stbsp_vsprintfcb+0xc12> *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 <stbsp__period> + 289a: 00004517 auipc a0,0x4 + 289e: 1c254503 lbu a0,450(a0) # 6a5c <stbsp__period> 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 <stbsp_vsprintfcb+0x1610> + 28f0: fea797e3 bne a5,a0,28de <stbsp_vsprintfcb+0x1610> 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 <stbsp_vsprintfcb+0xbb8> + 290c: 4107073b subw a4,a4,a6 + 2910: d76ff06f j 1e86 <stbsp_vsprintfcb+0xbb8> *--s = stbsp__comma; - 2904: 00004a17 auipc s4,0x4 - 2908: 06ca0a13 addi s4,s4,108 # 6970 <stbsp__digitpair> + 2914: 00004a17 auipc s4,0x4 + 2918: 07ca0a13 addi s4,s4,124 # 6990 <stbsp__digitpair> 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 <stbsp_vsprintfcb+0x1772> + 2952: 0fe7f763 bgeu a5,t5,2a40 <stbsp_vsprintfcb+0x1772> 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 <stbsp_vsprintfcb+0x177a> + 2960: 0e080463 beqz a6,2a48 <stbsp_vsprintfcb+0x177a> while (n) { - 2954: cb85 beqz a5,2984 <stbsp_vsprintfcb+0x16c6> + 2964: cb85 beqz a5,2994 <stbsp_vsprintfcb+0x16c6> *--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 <stbsp_vsprintfcb+0x16a8> + 2968: 00671763 bne a4,t1,2976 <stbsp_vsprintfcb+0x16a8> --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 <stbsp_vsprintfcb+0x16c4> + 2988: 00fef563 bgeu t4,a5,2992 <stbsp_vsprintfcb+0x16c4> *--s = stbsp__comma; - 297c: 1afd addi s5,s5,-1 - 297e: 87b2 mv a5,a2 - 2980: bfe1 j 2958 <stbsp_vsprintfcb+0x169a> + 298c: 1afd addi s5,s5,-1 + 298e: 87b2 mv a5,a2 + 2990: bfe1 j 2968 <stbsp_vsprintfcb+0x169a> while (n) { - 2982: 4285 li t0,1 + 2992: 4285 li t0,1 if (n64 == 0) { - 2984: 020f0063 beqz t5,29a4 <stbsp_vsprintfcb+0x16e6> + 2994: 020f0063 beqz t5,29b4 <stbsp_vsprintfcb+0x16e6> while (s != o) - 2988: fb550ae3 beq a0,s5,293c <stbsp_vsprintfcb+0x167e> + 2998: fb550ae3 beq a0,s5,294c <stbsp_vsprintfcb+0x167e> *--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 <stbsp_vsprintfcb+0x16dc> - 2992: 08670863 beq a4,t1,2a22 <stbsp_vsprintfcb+0x1764> - 2996: 2705 addiw a4,a4,1 - 2998: 4285 li t0,1 + 299e: 00080663 beqz a6,29aa <stbsp_vsprintfcb+0x16dc> + 29a2: 08670863 beq a4,t1,2a32 <stbsp_vsprintfcb+0x1764> + 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 <stbsp_vsprintfcb+0x16ca> - 29a4: 00028363 beqz t0,29aa <stbsp_vsprintfcb+0x16ec> - 29a8: d0ba sw a4,96(sp) + 29aa: 03000793 li a5,48 + 29ae: 00fa8023 sb a5,0(s5) + 29b2: b7dd j 2998 <stbsp_vsprintfcb+0x16ca> + 29b4: 00028363 beqz t0,29ba <stbsp_vsprintfcb+0x16ec> + 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 <stbsp_vsprintfcb+0x1a4a> + 29ba: 000ac703 lbu a4,0(s5) + 29be: 03000793 li a5,48 + 29c2: 34f70b63 beq a4,a5,2d18 <stbsp_vsprintfcb+0x1a4a> 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 <stbsp_vsprintfcb+0x1a38> - 29ca: 678d lui a5,0x3 - 29cc: d017879b addiw a5,a5,-767 # 2d01 <stbsp_vsprintfcb+0x1a43> + 29d0: 080e7713 andi a4,t3,128 + 29d4: 87f2 mv a5,t3 + 29d6: 32070863 beqz a4,2d06 <stbsp_vsprintfcb+0x1a38> + 29da: 678d lui a5,0x3 + 29dc: d017879b addiw a5,a5,-767 # 2d01 <stbsp_vsprintfcb+0x1a33> 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 <stbsp_vsprintfcb+0x1a1e> + 29ea: 30068163 beqz a3,2cec <stbsp_vsprintfcb+0x1a1e> 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 <stbsp_vsprintfcb+0x1740> - 29fc: 87b2 mv a5,a2 + 2a00: 00f8f7b3 and a5,a7,a5 + 2a04: 0007859b sext.w a1,a5 + 2a08: 00c5d363 bge a1,a2,2a0e <stbsp_vsprintfcb+0x1740> + 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 <stbsp_vsprintfcb+0x1754> - 2a10: 8332 mv t1,a2 + 2a1a: 835a mv t1,s6 + 2a1c: 00cb5363 bge s6,a2,2a22 <stbsp_vsprintfcb+0x1754> + 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 <stbsp_vsprintfcb+0x942> + 2a2e: 9e2ff06f j 1c10 <stbsp_vsprintfcb+0x942> *--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 <stbsp_vsprintfcb+0x16ca> + 2a38: 4285 li t0,1 + 2a3a: 00fa8023 sb a5,0(s5) + 2a3e: bfa9 j 2998 <stbsp_vsprintfcb+0x16ca> 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 <stbsp_vsprintfcb+0x1692> - 2a38: f046 sd a7,32(sp) + 2a44: 4f01 li t5,0 + 2a46: bf29 j 2960 <stbsp_vsprintfcb+0x1692> + 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 <stbsp_vsprintfcb+0x177c> - 2a64: 7882 ld a7,32(sp) + 2a6c: 06300613 li a2,99 + 2a70: fd166de3 bltu a2,a7,2a4a <stbsp_vsprintfcb+0x177c> + 2a74: 7882 ld a7,32(sp) if (n64 == 0) { - 2a66: f20f11e3 bnez t5,2988 <stbsp_vsprintfcb+0x16ca> - 2a6a: bf2d j 29a4 <stbsp_vsprintfcb+0x16e6> + 2a76: f20f11e3 bnez t5,2998 <stbsp_vsprintfcb+0x16ca> + 2a7a: bf2d j 29b4 <stbsp_vsprintfcb+0x16e6> *(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 <stbsp_vsprintfcb+0x1866> - 2a88: 40a40633 sub a2,s0,a0 - 2a8c: 40cb87bb subw a5,s7,a2 - 2a90: 873e mv a4,a5 - 2a92: 00f95363 bge s2,a5,2a98 <stbsp_vsprintfcb+0x17da> - 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 <stbsp_vsprintfcb+0x1866> + 2a98: 40a40633 sub a2,s0,a0 + 2a9c: 40cb87bb subw a5,s7,a2 + 2aa0: 873e mv a4,a5 + 2aa2: 00f95363 bge s2,a5,2aa8 <stbsp_vsprintfcb+0x17da> + 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 <stbsp_vsprintfcb+0x17f0> - 2aa2: a281 j 2be2 <stbsp_vsprintfcb+0x1924> + 2ab0: e799 bnez a5,2abe <stbsp_vsprintfcb+0x17f0> + 2ab2: a281 j 2bf2 <stbsp_vsprintfcb+0x1924> *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 <stbsp_vsprintfcb+0x183e> + 2abc: cba1 beqz a5,2b0c <stbsp_vsprintfcb+0x183e> if ((((stbsp__uintptr)bf) & 3) == 0) - 2aae: 00347713 andi a4,s0,3 - 2ab2: fb6d bnez a4,2aa4 <stbsp_vsprintfcb+0x17e6> + 2abe: 00347713 andi a4,s0,3 + 2ac2: fb6d bnez a4,2ab4 <stbsp_vsprintfcb+0x17e6> while (i >= 4) { - 2ab4: 470d li a4,3 - 2ab6: 40f75363 bge a4,a5,2ebc <stbsp_vsprintfcb+0x1bfe> - 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 <stbsp_vsprintfcb+0x1bfe> + 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 <stbsp_vsprintfcb+0x180c> - 2ad4: 0027979b slliw a5,a5,0x2 - 2ad8: 40f687bb subw a5,a3,a5 + 2ae0: fee41de3 bne s0,a4,2ada <stbsp_vsprintfcb+0x180c> + 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 <stbsp_vsprintfcb+0x183e> - 2ae2: 9fa1 addw a5,a5,s0 + 2aec: fff7869b addiw a3,a5,-1 + 2af0: cf91 beqz a5,2b0c <stbsp_vsprintfcb+0x183e> + 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 <stbsp_vsprintfcb+0x1826> - 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 <stbsp_vsprintfcb+0x1826> + 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 <stbsp_vsprintfcb+0x185c> - 2b00: 40a4063b subw a2,s0,a0 - 2b04: 00ca5b63 bge s4,a2,2b1a <stbsp_vsprintfcb+0x185c> - 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 <stbsp_vsprintfcb+0x106a> - 2b16: 63c2 ld t2,16(sp) - 2b18: 842a mv s0,a0 + 2b0c: 00098f63 beqz s3,2b2a <stbsp_vsprintfcb+0x185c> + 2b10: 40a4063b subw a2,s0,a0 + 2b14: 00ca5b63 bge s4,a2,2b2a <stbsp_vsprintfcb+0x185c> + 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 <stbsp_vsprintfcb+0x106a> + 2b26: 63c2 ld t2,16(sp) + 2b28: 842a mv s0,a0 while (fw) { - 2b1a: f60915e3 bnez s2,2a84 <stbsp_vsprintfcb+0x17c6> - 2b1e: 892a mv s2,a0 - 2b20: f21fe06f j 1a40 <stbsp_vsprintfcb+0x782> + 2b2a: f60915e3 bnez s2,2a94 <stbsp_vsprintfcb+0x17c6> + 2b2e: 892a mv s2,a0 + 2b30: f21fe06f j 1a50 <stbsp_vsprintfcb+0x782> 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 <stbsp_vsprintfcb+0x17f0> + 2b38: b759 j 2abe <stbsp_vsprintfcb+0x17f0> } else if (fl & STBSP__LEADINGPLUS) { - 2b2a: 002e7713 andi a4,t3,2 - 2b2e: 94070663 beqz a4,1c7a <stbsp_vsprintfcb+0x9bc> + 2b3a: 002e7713 andi a4,t3,2 + 2b3e: 94070663 beqz a4,1c8a <stbsp_vsprintfcb+0x9bc> sign[0] = 1; - 2b32: 670d lui a4,0x3 - 2b34: b0170713 addi a4,a4,-1279 # 2b01 <stbsp_vsprintfcb+0x1843> - 2b38: 06e11423 sh a4,104(sp) - 2b3c: 93eff06f j 1c7a <stbsp_vsprintfcb+0x9bc> + 2b42: 670d lui a4,0x3 + 2b44: b0170713 addi a4,a4,-1279 # 2b01 <stbsp_vsprintfcb+0x1833> + 2b48: 06e11423 sh a4,104(sp) + 2b4c: 93eff06f j 1c8a <stbsp_vsprintfcb+0x9bc> 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 <stbsp_vsprintfcb+0x1ab4> + 2b52: 470d li a4,3 + 2b54: 22d77763 bgeu a4,a3,2d82 <stbsp_vsprintfcb+0x1ab4> 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 <stbsp_vsprintfcb+0x18a6> + 2b68: 480d li a6,3 + 2b6a: a029 j 2b74 <stbsp_vsprintfcb+0x18a6> 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 <stbsp_vsprintfcb+0x1ab4> + 2b70: 20d87963 bgeu a6,a3,2d82 <stbsp_vsprintfcb+0x1ab4> 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 <stbsp_vsprintfcb+0x189e> - 2b76: 02069713 slli a4,a3,0x20 - 2b7a: 9301 srli a4,a4,0x20 - 2b7c: 973e add a4,a4,a5 - 2b7e: a021 j 2b86 <stbsp_vsprintfcb+0x18c8> + 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 <stbsp_vsprintfcb+0x189e> + 2b86: 02069713 slli a4,a3,0x20 + 2b8a: 9301 srli a4,a4,0x20 + 2b8c: 973e add a4,a4,a5 + 2b8e: a021 j 2b96 <stbsp_vsprintfcb+0x18c8> ++sn; - 2b80: 0785 addi a5,a5,1 + 2b90: 0785 addi a5,a5,1 while (limit && *sn) { - 2b82: 00e78663 beq a5,a4,2b8e <stbsp_vsprintfcb+0x18d0> - 2b86: 0007c683 lbu a3,0(a5) - 2b8a: fafd bnez a3,2b80 <stbsp_vsprintfcb+0x18c2> - 2b8c: 873e mv a4,a5 + 2b92: 00e78663 beq a5,a4,2b9e <stbsp_vsprintfcb+0x18d0> + 2b96: 0007c683 lbu a3,0(a5) + 2b9a: fafd bnez a3,2b90 <stbsp_vsprintfcb+0x18c2> + 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 <stbsp_vsprintfcb+0xe16> + 2bb6: d2eff06f j 20e4 <stbsp_vsprintfcb+0xe16> for (n = 1; n < l; n++) - 2baa: 4605 li a2,1 - 2bac: aed663e3 bltu a2,a3,2692 <stbsp_vsprintfcb+0x13d4> - 2bb0: 0c210613 addi a2,sp,194 - 2bb4: bcf5 j 26b0 <stbsp_vsprintfcb+0x13f2> + 2bba: 4605 li a2,1 + 2bbc: aed663e3 bltu a2,a3,26a2 <stbsp_vsprintfcb+0x13d4> + 2bc0: 0c210613 addi a2,sp,194 + 2bc4: bcf5 j 26c0 <stbsp_vsprintfcb+0x13f2> 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 <stbsp_vsprintfcb+0x13f2> - 2bc0: 4591 li a1,4 - 2bc2: 4f91 li t6,4 + 2bca: 0c110613 addi a2,sp,193 + 2bce: bccd j 26c0 <stbsp_vsprintfcb+0x13f2> + 2bd0: 4591 li a1,4 + 2bd2: 4f91 li t6,4 n = (dp >= 100) ? 5 : 4; - 2bc4: 4e91 li t4,4 - 2bc6: be21 j 26de <stbsp_vsprintfcb+0x1420> - 2bc8: 4a85 li s5,1 - 2bca: 80000737 lui a4,0x80000 + 2bd4: 4e91 li t4,4 + 2bd6: be21 j 26ee <stbsp_vsprintfcb+0x1420> + 2bd8: 4a85 li s5,1 + 2bda: 80000737 lui a4,0x80000 pr = 1; // default is 6 - 2bce: 4a05 li s4,1 - 2bd0: 920ff06f j 1cf0 <stbsp_vsprintfcb+0xa32> + 2bde: 4a05 li s4,1 + 2be0: 920ff06f j 1d00 <stbsp_vsprintfcb+0xa32> dp = (n64) ? -1022 : 0; - 2bd4: 4601 li a2,0 - 2bd6: c119 beqz a0,2bdc <stbsp_vsprintfcb+0x191e> - 2bd8: c0200613 li a2,-1022 + 2be4: 4601 li a2,0 + 2be6: c119 beqz a0,2bec <stbsp_vsprintfcb+0x191e> + 2be8: c0200613 li a2,-1022 *bits = b & ((((stbsp__uint64)1) << 52) - 1); - 2bdc: 872a mv a4,a0 - 2bde: a3aff06f j 1e18 <stbsp_vsprintfcb+0xb5a> + 2bec: 872a mv a4,a0 + 2bee: a3aff06f j 1e28 <stbsp_vsprintfcb+0xb5a> stbsp__chk_cb_buf(1); - 2be2: 2601 sext.w a2,a2 - 2be4: 1fe00793 li a5,510 - 2be8: f2c7c0e3 blt a5,a2,2b08 <stbsp_vsprintfcb+0x184a> - 2bec: bd61 j 2a84 <stbsp_vsprintfcb+0x17c6> + 2bf2: 2601 sext.w a2,a2 + 2bf4: 1fe00793 li a5,510 + 2bf8: f2c7c0e3 blt a5,a2,2b18 <stbsp_vsprintfcb+0x184a> + 2bfc: bd61 j 2a94 <stbsp_vsprintfcb+0x17c6> 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 <stbsp_vsprintfcb+0x157c> + 2c0c: 4595 li a1,5 + 2c0e: b935 j 284a <stbsp_vsprintfcb+0x157c> l = pr + dp; - 2c00: 011786bb addw a3,a5,a7 - 2c04: d0b6 sw a3,96(sp) - 2c06: b6d5 j 27ea <stbsp_vsprintfcb+0x152c> + 2c10: 011786bb addw a3,a5,a7 + 2c14: d0b6 sw a3,96(sp) + 2c16: b6d5 j 27fa <stbsp_vsprintfcb+0x152c> s = (char *)"null"; - 2c08: 00002a97 auipc s5,0x2 - 2c0c: 4a8a8a93 addi s5,s5,1192 # 50b0 <_GLOBAL__sub_I__ZSt3cin+0xd0> - 2c10: c80ff06f j 2090 <stbsp_vsprintfcb+0xdd2> + 2c18: 00002a97 auipc s5,0x2 + 2c1c: 4b8a8a93 addi s5,s5,1208 # 50d0 <_GLOBAL__sub_I__ZSt3cin+0xe0> + 2c20: c80ff06f j 20a0 <stbsp_vsprintfcb+0xdd2> } else if (fl & STBSP__LEADINGPLUS) { - 2c14: 002e7793 andi a5,t3,2 - 2c18: 1c079c63 bnez a5,2df0 <stbsp_vsprintfcb+0x1b32> + 2c24: 002e7793 andi a5,t3,2 + 2c28: 1c079c63 bnez a5,2e00 <stbsp_vsprintfcb+0x1b32> sign[0] = 0; - 2c1c: 4689 li a3,2 - 2c1e: 4a09 li s4,2 - 2c20: 4805 li a6,1 - 2c22: 9e8ff06f j 1e0a <stbsp_vsprintfcb+0xb4c> + 2c2c: 4689 li a3,2 + 2c2e: 4a09 li s4,2 + 2c30: 4805 li a6,1 + 2c32: 9e8ff06f j 1e1a <stbsp_vsprintfcb+0xb4c> sign[0] = 1; - 2c26: 670d lui a4,0x3 - 2c28: b0170713 addi a4,a4,-1279 # 2b01 <stbsp_vsprintfcb+0x1843> - 2c2c: 06e11423 sh a4,104(sp) - 2c30: b86ff06f j 1fb6 <stbsp_vsprintfcb+0xcf8> + 2c36: 670d lui a4,0x3 + 2c38: b0170713 addi a4,a4,-1279 # 2b01 <stbsp_vsprintfcb+0x1833> + 2c3c: 06e11423 sh a4,104(sp) + 2c40: b86ff06f j 1fc6 <stbsp_vsprintfcb+0xcf8> pr = 0; - 2c34: 4881 li a7,0 - 2c36: f1ffe06f j 1b54 <stbsp_vsprintfcb+0x896> + 2c44: 4881 li a7,0 + 2c46: f1ffe06f j 1b64 <stbsp_vsprintfcb+0x896> *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 <stbsp_vsprintfcb+0x1b3c> + 2c52: 1a088c63 beqz a7,2e0a <stbsp_vsprintfcb+0x1b3c> *s++ = stbsp__period; - 2c46: 00004717 auipc a4,0x4 - 2c4a: df674703 lbu a4,-522(a4) # 6a3c <stbsp__period> + 2c56: 00004717 auipc a4,0x4 + 2c5a: e0674703 lbu a4,-506(a4) # 6a5c <stbsp__period> 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 <stbsp_vsprintfcb+0x19a2> - 2c5e: 87c6 mv a5,a7 - 2c60: 0007871b sext.w a4,a5 + 2c66: 0007871b sext.w a4,a5 + 2c6a: 00e8d363 bge a7,a4,2c70 <stbsp_vsprintfcb+0x19a2> + 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 <stbsp_vsprintfcb+0x19c0> - 2c74: a271 j 2e00 <stbsp_vsprintfcb+0x1b42> + 2c82: e711 bnez a4,2c8e <stbsp_vsprintfcb+0x19c0> + 2c84: a271 j 2e10 <stbsp_vsprintfcb+0x1b42> if ((((stbsp__uintptr)s) & 3) == 0) - 2c76: 0037f613 andi a2,a5,3 - 2c7a: 18060563 beqz a2,2e04 <stbsp_vsprintfcb+0x1b46> + 2c86: 0037f613 andi a2,a5,3 + 2c8a: 18060563 beqz a2,2e14 <stbsp_vsprintfcb+0x1b46> *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 <stbsp_vsprintfcb+0x19b8> + 2c98: f77d bnez a4,2c86 <stbsp_vsprintfcb+0x19b8> if ((stbsp__int32)(l + n) > pr) - 2c8a: 0003071b sext.w a4,t1 - 2c8e: 4108863b subw a2,a7,a6 - 2c92: 00e8d563 bge a7,a4,2c9c <stbsp_vsprintfcb+0x19de> + 2c9a: 0003071b sext.w a4,t1 + 2c9e: 4108863b subw a2,a7,a6 + 2ca2: 00e8d563 bge a7,a4,2cac <stbsp_vsprintfcb+0x19de> 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 <stbsp_vsprintfcb+0x1a08> - 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 <stbsp_vsprintfcb+0x1a08> + 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 <stbsp_vsprintfcb+0x19f2> - 2cc0: 9542 add a0,a0,a6 - 2cc2: 97c2 add a5,a5,a6 - 2cc4: fcaa sd a0,120(sp) + 2ccc: ffd71ae3 bne a4,t4,2cc0 <stbsp_vsprintfcb+0x19f2> + 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 <stbsp_vsprintfcb+0x11d6> + 2ce6: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2ce8: fbcff06f j 24a4 <stbsp_vsprintfcb+0x11d6> *--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 <stbsp_vsprintfcb+0x172c> + 2cfe: 4605 li a2,1 + 2d00: 0285 addi t0,t0,1 # 3000001 <_ZSt4cerr+0x2ff8779> + 2d02: 4685 li a3,1 + 2d04: b9dd j 29fa <stbsp_vsprintfcb+0x172c> } else if (fl & STBSP__LEADINGSPACE) { - 2cf6: 004e7713 andi a4,t3,4 - 2cfa: e74d bnez a4,2da4 <stbsp_vsprintfcb+0x1ae6> + 2d06: 004e7713 andi a4,t3,4 + 2d0a: e74d bnez a4,2db4 <stbsp_vsprintfcb+0x1ae6> } else if (fl & STBSP__LEADINGPLUS) { - 2cfc: 8b89 andi a5,a5,2 - 2cfe: efd9 bnez a5,2d9c <stbsp_vsprintfcb+0x1ade> + 2d0c: 8b89 andi a5,a5,2 + 2d0e: efd9 bnez a5,2dac <stbsp_vsprintfcb+0x1ade> sign[0] = 0; - 2d00: 06010423 sb zero,104(sp) - 2d04: 4a01 li s4,0 - 2d06: b9c9 j 29d8 <stbsp_vsprintfcb+0x171a> + 2d10: 06010423 sb zero,104(sp) + 2d14: 4a01 li s4,0 + 2d16: b9c9 j 29e8 <stbsp_vsprintfcb+0x171a> if ((s[0] == '0') && (s != (num + STBSP__NUMSZ))) - 2d08: 051c addi a5,sp,640 - 2d0a: cafa89e3 beq s5,a5,29bc <stbsp_vsprintfcb+0x16fe> + 2d18: 051c addi a5,sp,640 + 2d1a: cafa89e3 beq s5,a5,29cc <stbsp_vsprintfcb+0x16fe> ++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 <stbsp_vsprintfcb+0x16fe> + 2d20: 415786bb subw a3,a5,s5 + 2d24: b165 j 29cc <stbsp_vsprintfcb+0x16fe> 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 <stbsp_vsprintfcb+0x1b98> + 2d2a: 12030e63 beqz t1,2e66 <stbsp_vsprintfcb+0x1b98> 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 <stbsp_vsprintfcb+0x1a74> - 2d2c: 2585 addiw a1,a1,1 - 2d2e: 00a58963 beq a1,a0,2d40 <stbsp_vsprintfcb+0x1a82> - 2d32: 8736 mv a4,a3 + 2d38: 00030563 beqz t1,2d42 <stbsp_vsprintfcb+0x1a74> + 2d3c: 2585 addiw a1,a1,1 + 2d3e: 00a58963 beq a1,a0,2d50 <stbsp_vsprintfcb+0x1a82> + 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 <stbsp_vsprintfcb+0x1a66> - 2d3c: f38ff06f j 2474 <stbsp_vsprintfcb+0x11b6> - 2d40: fe568fa3 sb t0,-1(a3) + 2d4a: f7ed bnez a5,2d34 <stbsp_vsprintfcb+0x1a66> + 2d4c: f38ff06f j 2484 <stbsp_vsprintfcb+0x11b6> + 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 <stbsp_vsprintfcb+0x1a76> + 2d56: 4585 li a1,1 + 2d58: b7f5 j 2d44 <stbsp_vsprintfcb+0x1a76> sign[0] = 0; - 2d4a: 06010423 sb zero,104(sp) - 2d4e: f1dfe06f j 1c6a <stbsp_vsprintfcb+0x9ac> + 2d5a: 06010423 sb zero,104(sp) + 2d5e: f1dfe06f j 1c7a <stbsp_vsprintfcb+0x9ac> 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 <stbsp_vsprintfcb+0x1260> + 2d7c: 8fb2 mv t6,a2 + 2d7e: fb0ff06f j 252e <stbsp_vsprintfcb+0x1260> while (limit && *sn) { - 2d72: e00692e3 bnez a3,2b76 <stbsp_vsprintfcb+0x18b8> - 2d76: bd19 j 2b8c <stbsp_vsprintfcb+0x18ce> + 2d82: e00692e3 bnez a3,2b86 <stbsp_vsprintfcb+0x18b8> + 2d86: bd19 j 2b9c <stbsp_vsprintfcb+0x18ce> 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 <stbsp_vsprintfcb+0x1aca> - 2d86: 8646 mv a2,a7 - 2d88: 40f608bb subw a7,a2,a5 - 2d8c: 814ff06f j 1da0 <stbsp_vsprintfcb+0xae2> + 2d90: 863a mv a2,a4 + 2d92: 00e8d363 bge a7,a4,2d98 <stbsp_vsprintfcb+0x1aca> + 2d96: 8646 mv a2,a7 + 2d98: 40f608bb subw a7,a2,a5 + 2d9c: 814ff06f j 1db0 <stbsp_vsprintfcb+0xae2> divisor = 1000.0f; - 2d90: 00003797 auipc a5,0x3 - 2d94: ad07b787 fld fa5,-1328(a5) # 5860 <STDIN_FD+0x28> - 2d98: dd5fe06f j 1b6c <stbsp_vsprintfcb+0x8ae> - 2d9c: 678d lui a5,0x3 - 2d9e: b017879b addiw a5,a5,-1279 # 2b01 <stbsp_vsprintfcb+0x1843> - 2da2: b13d j 29d0 <stbsp_vsprintfcb+0x1712> - 2da4: 6789 lui a5,0x2 - 2da6: 2785 addiw a5,a5,1 # 2001 <stbsp_vsprintfcb+0xd43> - 2da8: b125 j 29d0 <stbsp_vsprintfcb+0x1712> + 2da0: 00003797 auipc a5,0x3 + 2da4: ae07b787 fld fa5,-1312(a5) # 5880 <STDIN_FD+0x28> + 2da8: dd5fe06f j 1b7c <stbsp_vsprintfcb+0x8ae> + 2dac: 678d lui a5,0x3 + 2dae: b017879b addiw a5,a5,-1279 # 2b01 <stbsp_vsprintfcb+0x1833> + 2db2: b13d j 29e0 <stbsp_vsprintfcb+0x1712> + 2db4: 6789 lui a5,0x2 + 2db6: 2785 addiw a5,a5,1 # 2001 <stbsp_vsprintfcb+0xd33> + 2db8: b125 j 29e0 <stbsp_vsprintfcb+0x1712> *s++ = stbsp__period; - 2daa: 00004517 auipc a0,0x4 - 2dae: c9254503 lbu a0,-878(a0) # 6a3c <stbsp__period> + 2dba: 00004517 auipc a0,0x4 + 2dbe: ca254503 lbu a0,-862(a0) # 6a5c <stbsp__period> 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 <stbsp_vsprintfcb+0x1b0e> - 2dca: 4835 li a6,13 - 2dcc: 0008051b sext.w a0,a6 + 2dd4: 8836 mv a6,a3 + 2dd6: 00d57363 bgeu a0,a3,2ddc <stbsp_vsprintfcb+0x1b0e> + 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 <stbsp_vsprintfcb+0x15f8> + 2de2: af1542e3 blt a0,a7,28c6 <stbsp_vsprintfcb+0x15f8> tz = 0; - 2dd6: 4881 li a7,0 - 2dd8: b4cd j 28ba <stbsp_vsprintfcb+0x15fc> + 2de6: 4881 li a7,0 + 2de8: b4cd j 28ca <stbsp_vsprintfcb+0x15fc> while (n < l) { - 2dda: 87ba mv a5,a4 - 2ddc: bc1d j 2812 <stbsp_vsprintfcb+0x1554> + 2dea: 87ba mv a5,a4 + 2dec: bc1d j 2822 <stbsp_vsprintfcb+0x1554> 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 <stbsp_vsprintfcb+0xc12> - 2df0: 678d lui a5,0x3 - 2df2: b017879b addiw a5,a5,-1279 # 2b01 <stbsp_vsprintfcb+0x1843> - 2df6: 80aff06f j 1e00 <stbsp_vsprintfcb+0xb42> + 2df4: 06b109a3 sb a1,115(sp) + 2df8: 480d li a6,3 + 2dfa: 4f8d li t6,3 + 2dfc: 8e4ff06f j 1ee0 <stbsp_vsprintfcb+0xc12> + 2e00: 678d lui a5,0x3 + 2e02: b017879b addiw a5,a5,-1279 # 2b01 <stbsp_vsprintfcb+0x1833> + 2e06: 80aff06f j 1e10 <stbsp_vsprintfcb+0xb42> 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 <stbsp_vsprintfcb+0x19cc> + 2e10: 4801 li a6,0 + 2e12: b561 j 2c9a <stbsp_vsprintfcb+0x19cc> while (i >= 4) { - 2e04: 460d li a2,3 - 2e06: 04e65663 bge a2,a4,2e52 <stbsp_vsprintfcb+0x1b94> - 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 <stbsp_vsprintfcb+0x1b94> + 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 <stbsp_vsprintfcb+0x1b64> - 2e2a: 0025959b slliw a1,a1,0x2 - 2e2e: 9f0d subw a4,a4,a1 + 2e36: fef61ee3 bne a2,a5,2e32 <stbsp_vsprintfcb+0x1b64> + 2e3a: 0025959b slliw a1,a1,0x2 + 2e3e: 9f0d subw a4,a4,a1 while (i) { - 2e30: e4070de3 beqz a4,2c8a <stbsp_vsprintfcb+0x19cc> + 2e40: e4070de3 beqz a4,2c9a <stbsp_vsprintfcb+0x19cc> *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 <stbsp_vsprintfcb+0x1b7e> - 2e4a: 1702 slli a4,a4,0x20 - 2e4c: 9301 srli a4,a4,0x20 - 2e4e: 97ba add a5,a5,a4 - 2e50: bd2d j 2c8a <stbsp_vsprintfcb+0x19cc> + 2e56: ffd59be3 bne a1,t4,2e4c <stbsp_vsprintfcb+0x1b7e> + 2e5a: 1702 slli a4,a4,0x20 + 2e5c: 9301 srli a4,a4,0x20 + 2e5e: 97ba add a5,a5,a4 + 2e60: bd2d j 2c9a <stbsp_vsprintfcb+0x19cc> while (i >= 4) { - 2e52: 863e mv a2,a5 - 2e54: b7c5 j 2e34 <stbsp_vsprintfcb+0x1b76> + 2e62: 863e mv a2,a5 + 2e64: b7c5 j 2e44 <stbsp_vsprintfcb+0x1b76> if ((((stbsp__uintptr)s) & 3) == 0) - 2e56: 00377693 andi a3,a4,3 - 2e5a: ce81 beqz a3,2e72 <stbsp_vsprintfcb+0x1bb4> + 2e66: 00377693 andi a3,a4,3 + 2e6a: ce81 beqz a3,2e82 <stbsp_vsprintfcb+0x1bb4> *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 <stbsp_vsprintfcb+0x11b6> + 2e78: e0078663 beqz a5,2484 <stbsp_vsprintfcb+0x11b6> if ((((stbsp__uintptr)s) & 3) == 0) - 2e6c: 00377613 andi a2,a4,3 - 2e70: fa65 bnez a2,2e60 <stbsp_vsprintfcb+0x1ba2> + 2e7c: 00377613 andi a2,a4,3 + 2e80: fa65 bnez a2,2e70 <stbsp_vsprintfcb+0x1ba2> while (n >= 4) { - 2e72: 468d li a3,3 - 2e74: eaf6f5e3 bgeu a3,a5,2d1e <stbsp_vsprintfcb+0x1a60> - 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 <stbsp_vsprintfcb+0x1a60> + 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 <stbsp_vsprintfcb+0x1bd0> - 2e96: 8b8d andi a5,a5,3 + 2ea2: fed71ee3 bne a4,a3,2e9e <stbsp_vsprintfcb+0x1bd0> + 2ea6: 8b8d andi a5,a5,3 while (n) { - 2e98: e80793e3 bnez a5,2d1e <stbsp_vsprintfcb+0x1a60> - 2e9c: dd8ff06f j 2474 <stbsp_vsprintfcb+0x11b6> + 2ea8: e80793e3 bnez a5,2d2e <stbsp_vsprintfcb+0x1a60> + 2eac: dd8ff06f j 2484 <stbsp_vsprintfcb+0x11b6> 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 <stbsp_vsprintfcb+0x188a> + 2eb2: 56fd li a3,-1 + 2eb4: b155 j 2b58 <stbsp_vsprintfcb+0x188a> if ((dp <= -4) || (dp > (stbsp__int32)n)) { - 2ea6: 5775 li a4,-3 - 2ea8: 00e7ce63 blt a5,a4,2ec4 <stbsp_vsprintfcb+0x1c06> - 2eac: f6fa4663 blt s4,a5,2618 <stbsp_vsprintfcb+0x135a> + 2eb6: 5775 li a4,-3 + 2eb8: 00e7ce63 blt a5,a4,2ed4 <stbsp_vsprintfcb+0x1c06> + 2ebc: f6fa4663 blt s4,a5,2628 <stbsp_vsprintfcb+0x135a> if (dp > 0) { - 2eb0: ecf054e3 blez a5,2d78 <stbsp_vsprintfcb+0x1aba> - 2eb4: 86c2 mv a3,a6 + 2ec0: ecf054e3 blez a5,2d88 <stbsp_vsprintfcb+0x1aba> + 2ec4: 86c2 mv a3,a6 pr = (dp < (stbsp__int32)l) ? l - dp : 0; - 2eb6: 4881 li a7,0 - 2eb8: ee9fe06f j 1da0 <stbsp_vsprintfcb+0xae2> + 2ec6: 4881 li a7,0 + 2ec8: ee9fe06f j 1db0 <stbsp_vsprintfcb+0xae2> while (i--) - 2ebc: fff7869b addiw a3,a5,-1 - 2ec0: 8722 mv a4,s0 - 2ec2: b105 j 2ae2 <stbsp_vsprintfcb+0x1824> + 2ecc: fff7869b addiw a3,a5,-1 + 2ed0: 8722 mv a4,s0 + 2ed2: b105 j 2af2 <stbsp_vsprintfcb+0x1824> 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 <stbsp_vsprintfcb+0x138a> + 2eda: 86c2 mv a3,a6 + 2edc: 88d2 mv a7,s4 + 2ede: f7475d63 bge a4,s4,2658 <stbsp_vsprintfcb+0x138a> while ((l > 1) && (pr) && (sn[l - 1] == '0')) { - 2ed2: 8542 mv a0,a6 - 2ed4: f56ff06f j 262a <stbsp_vsprintfcb+0x136c> + 2ee2: 8542 mv a0,a6 + 2ee4: f56ff06f j 263a <stbsp_vsprintfcb+0x136c> -0000000000002ed8 <stbsp_sprintf>: +0000000000002ee8 <stbsp_sprintf>: { - 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 <stbsp_vsprintfcb> + 2f08: bc6fe0ef jal 12ce <stbsp_vsprintfcb> } - 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 <stbsp_vsnprintf>: +0000000000002f12 <stbsp_vsnprintf>: { - 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 <stbsp_vsnprintf+0x24> - 2f1c: c141 beqz a0,2f9c <stbsp_vsnprintf+0x9a> + 2f2a: e591 bnez a1,2f36 <stbsp_vsnprintf+0x24> + 2f2c: c141 beqz a0,2fac <stbsp_vsnprintf+0x9a> 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 <stbsp_vsnprintf+0x64> + 2f32: 0810 addi a2,sp,16 + 2f34: a089 j 2f76 <stbsp_vsnprintf+0x64> 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 <stbsp_vsnprintf+0xc2> + 2f48: 0804d663 bgez s1,2fd4 <stbsp_vsnprintf+0xc2> s = buf; - 2f3c: 4781 li a5,0 + 2f4c: 4781 li a5,0 if (buf != c->buf) { - 2f3e: c911 beqz a0,2f52 <stbsp_vsnprintf+0x50> + 2f4e: c911 beqz a0,2f62 <stbsp_vsnprintf+0x50> *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 <stbsp_vsnprintf+0x3e> + 2f5e: feb7e9e3 bltu a5,a1,2f50 <stbsp_vsnprintf+0x3e> 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 <stbsp_vsnprintf+0x20> - 2f64: 6602 ld a2,0(sp) + 2f6c: 1ff00793 li a5,511 + 2f70: fcd7d1e3 bge a5,a3,2f32 <stbsp_vsnprintf+0x20> + 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 <stbsp__clamp_callback> - 2f72: b4cfe0ef jal 12be <stbsp_vsprintfcb> + 2f76: 86c6 mv a3,a7 + 2f78: 858a mv a1,sp + 2f7a: ffffd517 auipc a0,0xffffd + 2f7e: 21650513 addi a0,a0,534 # 190 <stbsp__clamp_callback> + 2f82: b4cfe0ef jal 12ce <stbsp_vsprintfcb> 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 <stbsp_vsnprintf+0x80> + 2f8a: 0097c463 blt a5,s1,2f92 <stbsp_vsnprintf+0x80> 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 <stbsp__count_clamp_callback> + 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 <stbsp__count_clamp_callback> 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 <stbsp_vsprintfcb> -} - 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 <stbsp_vsnprintf+0x5a> - -0000000000002fc8 <stbsp_snprintf>: + 2fbc: b12fe0ef jal 12ce <stbsp_vsprintfcb> +} + 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 <stbsp_vsnprintf+0x5a> + +0000000000002fd8 <stbsp_snprintf>: { - 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 <stbsp_vsnprintf> + 2fee: f25ff0ef jal 2f12 <stbsp_vsnprintf> } - 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 <stbsp_vsprintf>: +0000000000002ff8 <stbsp_vsprintf>: { - 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 <stbsp_vsprintfcb> + 2ffc: 4581 li a1,0 + 2ffe: 862a mv a2,a0 + 3000: 4501 li a0,0 + 3002: accfe06f j 12ce <stbsp_vsprintfcb> -0000000000002ff6 <sprintf>: +0000000000003006 <sprintf>: { - 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 <sprintf+0x46> + 3034: 7502 ld a0,32(sp) + 3036: 00950b63 beq a0,s1,304c <sprintf+0x46> 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 <stbsp_snprintf> + 3214: dc5ff0ef jal 2fd8 <stbsp_snprintf> 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 <sprintf> - 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 <sprintf> + 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 <sprintf> - 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 <sprintf> + 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 <vsnprintf>: +000000000000385a <vsnprintf>: { - 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 <vsnprintf+0x2c> + 387a: c411 beqz s0,3886 <vsnprintf+0x2c> if (ctx.written < size) - 386c: 00857b63 bgeu a0,s0,3882 <vsnprintf+0x38> + 387c: 00857b63 bgeu a0,s0,3892 <vsnprintf+0x38> 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 <snprintf>: +00000000000038a4 <snprintf>: { - 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 <snprintf+0x38> + 38d0: c411 beqz s0,38dc <snprintf+0x38> if (ctx.written < size) - 38c2: 00857b63 bgeu a0,s0,38d8 <snprintf+0x44> + 38d2: 00857b63 bgeu a0,s0,38e8 <snprintf+0x44> 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 <printf>: +00000000000038fa <printf>: { - 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 <stdout> + 3908: 00004797 auipc a5,0x4 + 390c: de87b783 ld a5,-536(a5) # 76f0 <stdout> _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 <sscanf>: +0000000000003934 <sscanf>: { - 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 <scanf>: +0000000000003964 <scanf>: { - 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 <fopen>: +0000000000003996 <fopen>: { - 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 <strcmp> - 39a2: 842a mv s0,a0 - 39a4: c919 beqz a0,39ba <fopen+0x34> + 39ae: 298010ef jal 4c46 <strcmp> + 39b2: 842a mv s0,a0 + 39b4: c919 beqz a0,39ca <fopen+0x34> 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 <strcmp> + 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 <strcmp> 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 <fopen+0x90> + 39c8: ed39 bnez a0,3a26 <fopen+0x90> int64 fd = open(filename, flags); - 39ba: 85a2 mv a1,s0 - 39bc: 854a mv a0,s2 - 39be: f4afc0ef jal 108 <open> - 39c2: 84aa mv s1,a0 + 39ca: 85a2 mv a1,s0 + 39cc: 854a mv a0,s2 + 39ce: f42fc0ef jal 110 <open> + 39d2: 84aa mv s1,a0 if (fd < 0) - 39c4: 06054c63 bltz a0,3a3c <fopen+0xb6> + 39d4: 06054c63 bltz a0,3a4c <fopen+0xb6> FILE *f = (FILE *)malloc(sizeof(FILE)); - 39c8: 42000513 li a0,1056 - 39cc: 2f3000ef jal 44be <malloc> - 39d0: 892a mv s2,a0 + 39d8: 42000513 li a0,1056 + 39dc: 2f3000ef jal 44ce <malloc> + 39e0: 892a mv s2,a0 if (!f) - 39d2: c53d beqz a0,3a40 <fopen+0xba> + 39e2: c53d beqz a0,3a50 <fopen+0xba> memset(f, 0, sizeof(FILE)); - 39d4: 42000613 li a2,1056 - 39d8: 4581 li a1,0 - 39da: 0ee010ef jal 4ac8 <memset> + 39e4: 42000613 li a2,1056 + 39e8: 4581 li a1,0 + 39ea: 0ee010ef jal 4ad8 <memset> 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 <fopen+0x7e> + 39f8: 00f48e63 beq s1,a5,3a14 <fopen+0x7e> else if (fd == 2) - 39ec: 4789 li a5,2 - 39ee: 00f48b63 beq s1,a5,3a04 <fopen+0x7e> + 39fc: 4789 li a5,2 + 39fe: 00f48b63 beq s1,a5,3a14 <fopen+0x7e> 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 <strcmp> + 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 <strcmp> 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 <fopen+0x34> + 3a38: d949 beqz a0,39ca <fopen+0x34> 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 <strcmp> + 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 <strcmp> flags = O_RDWR; - 3a38: 4409 li s0,2 + 3a48: 4409 li s0,2 else if (strcmp(mode, "r+") == 0) - 3a3a: d141 beqz a0,39ba <fopen+0x34> + 3a4a: d141 beqz a0,39ca <fopen+0x34> return NULL; - 3a3c: 4901 li s2,0 - 3a3e: bf65 j 39f6 <fopen+0x70> + 3a4c: 4901 li s2,0 + 3a4e: bf65 j 3a06 <fopen+0x70> close(fd); - 3a40: 8526 mv a0,s1 - 3a42: eaefc0ef jal f0 <close> + 3a50: 8526 mv a0,s1 + 3a52: ea6fc0ef jal f8 <close> return NULL; - 3a46: 4901 li s2,0 - 3a48: b77d j 39f6 <fopen+0x70> + 3a56: 4901 li s2,0 + 3a58: b77d j 3a06 <fopen+0x70> -0000000000003a4a <fclose>: +0000000000003a5a <fclose>: if (!stream) - 3a4a: cd29 beqz a0,3aa4 <fclose+0x5a> + 3a5a: cd29 beqz a0,3ab4 <fclose+0x5a> 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 <fclose+0x42> + 3a68: 02c04a63 bgtz a2,3a9c <fclose+0x42> if (stream != stdin && stream != stdout && stream != stderr) - 3a5c: 00004797 auipc a5,0x4 - 3a60: c7478793 addi a5,a5,-908 # 76d0 <stdout> - 3a64: 6798 ld a4,8(a5) - 3a66: 00870e63 beq a4,s0,3a82 <fclose+0x38> - 3a6a: 6398 ld a4,0(a5) - 3a6c: 00870b63 beq a4,s0,3a82 <fclose+0x38> - 3a70: 6b9c ld a5,16(a5) - 3a72: 00878863 beq a5,s0,3a82 <fclose+0x38> + 3a6c: 00004797 auipc a5,0x4 + 3a70: c8478793 addi a5,a5,-892 # 76f0 <stdout> + 3a74: 6798 ld a4,8(a5) + 3a76: 00870e63 beq a4,s0,3a92 <fclose+0x38> + 3a7a: 6398 ld a4,0(a5) + 3a7c: 00870b63 beq a4,s0,3a92 <fclose+0x38> + 3a80: 6b9c ld a5,16(a5) + 3a82: 00878863 beq a5,s0,3a92 <fclose+0x38> close(stream->fd); - 3a76: 4008 lw a0,0(s0) - 3a78: e78fc0ef jal f0 <close> + 3a86: 4008 lw a0,0(s0) + 3a88: e70fc0ef jal f8 <close> free(stream); - 3a7c: 8522 mv a0,s0 - 3a7e: 1cb000ef jal 4448 <free> + 3a8c: 8522 mv a0,s0 + 3a8e: 1cb000ef jal 4458 <free> } - 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 <write> + 3a9c: 4108 lw a0,0(a0) + 3a9e: 01040593 addi a1,s0,16 + 3aa2: e4efc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3a96: 41042783 lw a5,1040(s0) - 3a9a: 00f54763 blt a0,a5,3aa8 <fclose+0x5e> + 3aa6: 41042783 lw a5,1040(s0) + 3aaa: 00f54763 blt a0,a5,3ab8 <fclose+0x5e> stream->buf_write_pos = 0; - 3a9e: 40042823 sw zero,1040(s0) - 3aa2: bf6d j 3a5c <fclose+0x12> + 3aae: 40042823 sw zero,1040(s0) + 3ab2: bf6d j 3a6c <fclose+0x12> 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 <fclose+0x12> + 3ac0: b775 j 3a6c <fclose+0x12> -0000000000003ab2 <fflush>: +0000000000003ac2 <fflush>: if (!stream) - 3ab2: c121 beqz a0,3af2 <fflush+0x40> + 3ac2: c121 beqz a0,3b02 <fflush+0x40> 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 <fflush+0x1c> + 3ad0: 00c04763 bgtz a2,3ade <fflush+0x1c> 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 <write> + 3ade: 4108 lw a0,0(a0) + 3ae0: 01040593 addi a1,s0,16 + 3ae4: e0cfc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3ad8: 41042783 lw a5,1040(s0) - 3adc: 00f54563 blt a0,a5,3ae6 <fflush+0x34> + 3ae8: 41042783 lw a5,1040(s0) + 3aec: 00f54563 blt a0,a5,3af6 <fflush+0x34> stream->buf_write_pos = 0; - 3ae0: 40042823 sw zero,1040(s0) - 3ae4: b7c5 j 3ac4 <fflush+0x12> + 3af0: 40042823 sw zero,1040(s0) + 3af4: b7c5 j 3ad4 <fflush+0x12> 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 <fflush+0x14> - 3af2: 557d li a0,-1 + 3afe: 557d li a0,-1 + 3b00: bfd9 j 3ad6 <fflush+0x14> + 3b02: 557d li a0,-1 } - 3af4: 8082 ret + 3b04: 8082 ret -0000000000003af6 <fprintf>: +0000000000003b06 <fprintf>: { - 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 <fprintf+0x2e> + 3b16: cd19 beqz a0,3b34 <fprintf+0x2e> 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 <fprintf+0x28> + 3b34: 557d li a0,-1 + 3b36: bfe5 j 3b2e <fprintf+0x28> -0000000000003b28 <fscanf>: +0000000000003b38 <fscanf>: { - 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 <fscanf+0x2e> + 3b48: cd19 beqz a0,3b66 <fscanf+0x2e> 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 <fscanf+0x28> + 3b66: 557d li a0,-1 + 3b68: bfe5 j 3b60 <fscanf+0x28> -0000000000003b5a <fputc>: +0000000000003b6a <fputc>: if (!stream) - 3b5a: c1e1 beqz a1,3c1a <fputc+0xc0> + 3b6a: c1e1 beqz a1,3c2a <fputc+0xc0> { - 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 <fputc+0x4c> + 3b84: 02f90963 beq s2,a5,3bb6 <fputc+0x4c> 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 <fputc+0x9c> + 3b9e: 06c6c463 blt a3,a2,3c06 <fputc+0x9c> else if (stream->buf_mode == 1 && c == '\n') - 3b92: 4785 li a5,1 - 3b94: 02f90e63 beq s2,a5,3bd0 <fputc+0x76> + 3ba2: 4785 li a5,1 + 3ba4: 02f90e63 beq s2,a5,3be0 <fputc+0x76> 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 <write> - 3bb6: 872a mv a4,a0 - 3bb8: 4785 li a5,1 + 3bc2: d2efc0ef jal f0 <write> + 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 <fputc+0x40> + 3bcc: fcf70fe3 beq a4,a5,3baa <fputc+0x40> } - 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 <fputc+0x3e> + 3be0: 47a9 li a5,10 + 3be2: fcf513e3 bne a0,a5,3ba8 <fputc+0x3e> if (stream->buf_write_pos > 0) - 3bd6: fcc051e3 blez a2,3b98 <fputc+0x3e> + 3be6: fcc051e3 blez a2,3ba8 <fputc+0x3e> 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 <write> + 3bea: 4188 lw a0,0(a1) + 3bec: 05c1 addi a1,a1,16 + 3bee: d02fc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3be2: 41042783 lw a5,1040(s0) - 3be6: 02f55063 bge a0,a5,3c06 <fputc+0xac> + 3bf2: 41042783 lw a5,1040(s0) + 3bf6: 02f55063 bge a0,a5,3c16 <fputc+0xac> 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 <fputc+0x40> + 3c02: 8526 mv a0,s1 + 3c04: b75d j 3baa <fputc+0x40> 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 <write> + 3c06: 4188 lw a0,0(a1) + 3c08: 05c1 addi a1,a1,16 + 3c0a: ce6fc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3bfe: 41042783 lw a5,1040(s0) - 3c02: 00f54663 blt a0,a5,3c0e <fputc+0xb4> + 3c0e: 41042783 lw a5,1040(s0) + 3c12: 00f54663 blt a0,a5,3c1e <fputc+0xb4> 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 <fputc+0x40> + 3c1a: 8526 mv a0,s1 + 3c1c: b779 j 3baa <fputc+0x40> 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 <fputc+0x40> + 3c26: 8526 mv a0,s1 + 3c28: b749 j 3baa <fputc+0x40> return EOF; - 3c1a: 557d li a0,-1 + 3c2a: 557d li a0,-1 } - 3c1c: 8082 ret + 3c2c: 8082 ret -0000000000003c1e <fputs>: +0000000000003c2e <fputs>: if (!stream) - 3c1e: c1ed beqz a1,3d00 <fputs+0xe2> + 3c2e: c1ed beqz a1,3d10 <fputs+0xe2> { - 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 <fputs+0x86> - 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 <fputs+0x86> + 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 <fputs+0x3e> + 3c5c: 00f10b93 addi s7,sp,15 + 3c60: a031 j 3c6c <fputs+0x3e> else if (stream->buf_mode == 1 && c == '\n') - 3c52: 09368563 beq a3,s3,3cdc <fputs+0xbe> + 3c62: 09368563 beq a3,s3,3cec <fputs+0xbe> while (*s) - 3c56: 0004c703 lbu a4,0(s1) - 3c5a: cf15 beqz a4,3c96 <fputs+0x78> + 3c66: 0004c703 lbu a4,0(s1) + 3c6a: cf15 beqz a4,3ca6 <fputs+0x78> 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 <fputs+0x90> + 3c72: 05268663 beq a3,s2,3cbe <fputs+0x90> 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 <fputs+0x34> + 3c88: fccb5de3 bge s6,a2,3c62 <fputs+0x34> 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 <write> + 3c8c: 4008 lw a0,0(s0) + 3c8e: 85d6 mv a1,s5 + 3c90: c60fc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3c84: 41042783 lw a5,1040(s0) - 3c88: 06f54763 blt a0,a5,3cf6 <fputs+0xd8> + 3c94: 41042783 lw a5,1040(s0) + 3c98: 06f54763 blt a0,a5,3d06 <fputs+0xd8> 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 <fputs+0x3e> - 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 <fputs+0x3e> + 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 <write> - 3cbc: f9350de3 beq a0,s3,3c56 <fputs+0x38> + 3cc8: c28fc0ef jal f0 <write> + 3ccc: f9350de3 beq a0,s3,3c66 <fputs+0x38> 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 <fputs+0x38> + 3cec: f7471de3 bne a4,s4,3c66 <fputs+0x38> if (stream->buf_write_pos > 0) - 3ce0: f6c05be3 blez a2,3c56 <fputs+0x38> + 3cf0: f6c05be3 blez a2,3c66 <fputs+0x38> 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 <write> + 3cf4: 4008 lw a0,0(s0) + 3cf6: 01040593 addi a1,s0,16 + 3cfa: bf6fc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3cee: 41042783 lw a5,1040(s0) - 3cf2: f8f55de3 bge a0,a5,3c8c <fputs+0x6e> + 3cfe: 41042783 lw a5,1040(s0) + 3d02: f8f55de3 bge a0,a5,3c9c <fputs+0x6e> 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 <fputs+0x38> + 3d0e: bfa1 j 3c66 <fputs+0x38> return -1; - 3d00: 557d li a0,-1 + 3d10: 557d li a0,-1 } - 3d02: 8082 ret + 3d12: 8082 ret -0000000000003d04 <fgetc>: +0000000000003d14 <fgetc>: if (!stream) - 3d04: c949 beqz a0,3d96 <fgetc+0x92> + 3d14: c949 beqz a0,3da6 <fgetc+0x92> 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 <fgetc+0x5e> + 3d22: 04c04863 bgtz a2,3d72 <fgetc+0x5e> 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 <fgetc+0x34> + 3d26: 41442783 lw a5,1044(s0) + 3d2a: 41842703 lw a4,1048(s0) + 3d2e: 00e7dd63 bge a5,a4,3d48 <fgetc+0x34> 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 <read> - 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 <read> + 3d56: 87aa mv a5,a0 if (ret <= 0) - 3d48: 02a05e63 blez a0,3d84 <fgetc+0x80> + 3d58: 02a05e63 blez a0,3d94 <fgetc+0x80> 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 <write> + 3d72: 4108 lw a0,0(a0) + 3d74: 01040593 addi a1,s0,16 + 3d78: b78fc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3d6c: 41042783 lw a5,1040(s0) - 3d70: 00f54563 blt a0,a5,3d7a <fgetc+0x76> + 3d7c: 41042783 lw a5,1040(s0) + 3d80: 00f54563 blt a0,a5,3d8a <fgetc+0x76> stream->buf_write_pos = 0; - 3d74: 40042823 sw zero,1040(s0) - 3d78: bf79 j 3d16 <fgetc+0x12> + 3d84: 40042823 sw zero,1040(s0) + 3d88: bf79 j 3d26 <fgetc+0x12> 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 <fgetc+0x12> + 3d92: bf51 j 3d26 <fgetc+0x12> if (ret == 0) - 3d84: e509 bnez a0,3d8e <fgetc+0x8a> + 3d94: e509 bnez a0,3d9e <fgetc+0x8a> 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 <fgetc+0x2c> + 3d9a: 557d li a0,-1 + 3d9c: b755 j 3d40 <fgetc+0x2c> 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 <fgetc+0x2c> - 3d96: 557d li a0,-1 + 3da2: 557d li a0,-1 + 3da4: bf71 j 3d40 <fgetc+0x2c> + 3da6: 557d li a0,-1 } - 3d98: 8082 ret + 3da8: 8082 ret -0000000000003d9a <fgets>: +0000000000003daa <fgets>: if (!stream || n <= 0) - 3d9a: ce5d beqz a2,3e58 <fgets+0xbe> - 3d9c: 0ab05e63 blez a1,3e58 <fgets+0xbe> + 3daa: ce5d beqz a2,3e68 <fgets+0xbe> + 3dac: 0ab05e63 blez a1,3e68 <fgets+0xbe> { - 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 <fgets+0x70> + 3dd8: 05748163 beq s1,s7,3e1a <fgets+0x70> 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 <fgets+0xaa> + 3de2: 06c04963 bgtz a2,3e54 <fgets+0xaa> 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 <fgets+0x8e> + 3dfc: 02e7de63 bge a5,a4,3e38 <fgets+0x8e> 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 <fgets+0x2e> + 3e12: 0905 addi s2,s2,1 + 3e14: fd4712e3 bne a4,s4,3dd8 <fgets+0x2e> 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 <read> + 3e38: 4008 lw a0,0(s0) + 3e3a: aaefc0ef jal e8 <read> if (ret <= 0) - 3e2e: 02a05c63 blez a0,3e66 <fgets+0xcc> + 3e3e: 02a05c63 blez a0,3e76 <fgets+0xcc> 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 <fgets+0x62> + 3e52: bf6d j 3e0c <fgets+0x62> int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 3e44: 4008 lw a0,0(s0) - 3e46: aa2fc0ef jal e8 <write> + 3e54: 4008 lw a0,0(s0) + 3e56: a9afc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3e4a: 41042783 lw a5,1040(s0) - 3e4e: 00f54763 blt a0,a5,3e5c <fgets+0xc2> + 3e5a: 41042783 lw a5,1040(s0) + 3e5e: 00f54763 blt a0,a5,3e6c <fgets+0xc2> stream->buf_write_pos = 0; - 3e52: 40042823 sw zero,1040(s0) - 3e56: b741 j 3dd6 <fgets+0x3c> + 3e62: 40042823 sw zero,1040(s0) + 3e66: b741 j 3de6 <fgets+0x3c> 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 <fgets+0x3c> + 3e74: bf8d j 3de6 <fgets+0x3c> stream->eof = 1; - 3e66: 4785 li a5,1 + 3e76: 4785 li a5,1 if (ret == 0) - 3e68: e509 bnez a0,3e72 <fgets+0xd8> + 3e78: e509 bnez a0,3e82 <fgets+0xd8> stream->eof = 1; - 3e6a: c45c sw a5,12(s0) + 3e7a: c45c sw a5,12(s0) if (i == 0) - 3e6c: fcd1 bnez s1,3e08 <fgets+0x6e> + 3e7c: fcd1 bnez s1,3e18 <fgets+0x6e> return NULL; - 3e6e: 4501 li a0,0 - 3e70: b74d j 3e12 <fgets+0x78> + 3e7e: 4501 li a0,0 + 3e80: b74d j 3e22 <fgets+0x78> stream->error = 1; - 3e72: c41c sw a5,8(s0) + 3e82: c41c sw a5,8(s0) if (c == -1) - 3e74: bfe5 j 3e6c <fgets+0xd2> + 3e84: bfe5 j 3e7c <fgets+0xd2> -0000000000003e76 <fread>: +0000000000003e86 <fread>: { - 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 <fread+0xf8> - 3e80: ec56 sd s5,24(sp) + 3e8c: 0e068963 beqz a3,3f7e <fread+0xf8> + 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 <fread+0x86> - 3e88: ca35 beqz a2,3efc <fread+0x86> + 3e96: c9bd beqz a1,3f0c <fread+0x86> + 3e98: ca35 beqz a2,3f0c <fread+0x86> 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 <fread+0xde> + 3eaa: 0af04d63 bgtz a5,3f64 <fread+0xde> while (bytes_read < total_bytes) - 3e9e: 04098d63 beqz s3,3ef8 <fread+0x82> - 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 <fread+0x82> + 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 <fread+0xb2> + 3ed0: 06f74463 blt a4,a5,3f38 <fread+0xb2> 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 <fread+0x92> + 3eda: 02cb7f63 bgeu s6,a2,3f18 <fread+0x92> int64 ret = read(stream->fd, dst + bytes_read, remaining); - 3ece: a12fc0ef jal e0 <read> + 3ede: a0afc0ef jal e8 <read> if (ret <= 0) - 3ed2: 0aa05463 blez a0,3f7a <fread+0x104> + 3ee2: 0aa05463 blez a0,3f8a <fread+0x104> 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 <fread+0x3e> + 3ee8: fd34eee3 bltu s1,s3,3ec4 <fread+0x3e> 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 <read> + 3f20: 40000613 li a2,1024 + 3f24: 85de mv a1,s7 + 3f26: 9c2fc0ef jal e8 <read> if (ret <= 0) - 3f1a: 06a05063 blez a0,3f7a <fread+0x104> + 3f2a: 06a05063 blez a0,3f8a <fread+0x104> 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 <fread+0x3e> - 3f26: bf5d j 3edc <fread+0x66> + 3f32: f934e9e3 bltu s1,s3,3ec4 <fread+0x3e> + 3f36: bf5d j 3eec <fread+0x66> 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 <fread+0xc4> - 3f38: 8932 mv s2,a2 + 3f44: 01267363 bgeu a2,s2,3f4a <fread+0xc4> + 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 <memcpy> + 3f4a: 864a mv a2,s2 + 3f4c: 3e1000ef jal 4b2c <memcpy> 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 <fread+0x3e> - 3f52: b769 j 3edc <fread+0x66> + 3f5e: f734e3e3 bltu s1,s3,3ec4 <fread+0x3e> + 3f62: b769 j 3eec <fread+0x66> 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 <write> + 3f64: 4288 lw a0,0(a3) + 3f66: 863e mv a2,a5 + 3f68: 01068593 addi a1,a3,16 + 3f6c: 984fc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 3f60: 41042783 lw a5,1040(s0) - 3f64: 02f54163 blt a0,a5,3f86 <fread+0x110> + 3f70: 41042783 lw a5,1040(s0) + 3f74: 02f54163 blt a0,a5,3f96 <fread+0x110> stream->buf_write_pos = 0; - 3f68: 40042823 sw zero,1040(s0) - 3f6c: bf0d j 3e9e <fread+0x28> + 3f78: 40042823 sw zero,1040(s0) + 3f7c: bf0d j 3eae <fread+0x28> } - 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 <fread+0x10c> + 3f8c: e119 bnez a0,3f92 <fread+0x10c> stream->eof = 1; - 3f7e: c45c sw a5,12(s0) - 3f80: bfb1 j 3edc <fread+0x66> + 3f8e: c45c sw a5,12(s0) + 3f90: bfb1 j 3eec <fread+0x66> stream->error = 1; - 3f82: c41c sw a5,8(s0) + 3f92: c41c sw a5,8(s0) return bytes_read / size; - 3f84: bfa1 j 3edc <fread+0x66> + 3f94: bfa1 j 3eec <fread+0x66> 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 <fread+0x28> + 3f9e: bf01 j 3eae <fread+0x28> -0000000000003f90 <fwrite>: +0000000000003fa0 <fwrite>: { - 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 <fwrite+0x106> - 3f9a: f456 sd s5,40(sp) - 3f9c: 8aaa mv s5,a0 - 3f9e: 10050263 beqz a0,40a2 <fwrite+0x112> - 3fa2: f05a sd s6,32(sp) + 3fa6: 10068063 beqz a3,40a6 <fwrite+0x106> + 3faa: f456 sd s5,40(sp) + 3fac: 8aaa mv s5,a0 + 3fae: 10050263 beqz a0,40b2 <fwrite+0x112> + 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 <fwrite+0x9e> - 3faa: c251 beqz a2,402e <fwrite+0x9e> + 3fb8: c1d9 beqz a1,403e <fwrite+0x9e> + 3fba: c251 beqz a2,403e <fwrite+0x9e> 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 <fwrite+0x120> - 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 <fwrite+0x120> + 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 <fwrite+0x162> - 3fd2: e4a6 sd s1,72(sp) - 3fd4: f852 sd s4,48(sp) - 3fd6: e466 sd s9,8(sp) + 3fde: 12090263 beqz s2,4102 <fwrite+0x162> + 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 <fwrite+0xac> + 3ffe: 059a6763 bltu s4,s9,404c <fwrite+0xac> memcpy(stream->buffer + stream->buf_write_pos, src + bytes_written, remaining); - 3ff2: 8666 mv a2,s9 - 3ff4: 329000ef jal 4b1c <memcpy> + 4002: 8666 mv a2,s9 + 4004: 329000ef jal 4b2c <memcpy> 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 <fwrite+0xec> + 4018: 06e68a63 beq a3,a4,408c <fwrite+0xec> 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 <memcpy> + 404c: 2e1000ef jal 4b2c <memcpy> 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 <fwrite+0xd4> + 4066: 00904763 bgtz s1,4074 <fwrite+0xd4> while (bytes_written < total_bytes) - 405a: f729efe3 bltu s3,s2,3fd8 <fwrite+0x48> + 406a: f729efe3 bltu s3,s2,3fe8 <fwrite+0x48> return bytes_written / size; - 405e: 0369d933 divu s2,s3,s6 - 4062: b77d j 4010 <fwrite+0x80> + 406e: 0369d933 divu s2,s3,s6 + 4072: b77d j 4020 <fwrite+0x80> int64 ret = write(stream->fd, stream->buffer, stream->buf_write_pos); - 4064: 4008 lw a0,0(s0) - 4066: 882fc0ef jal e8 <write> + 4074: 4008 lw a0,0(s0) + 4076: 87afc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 406a: 41042783 lw a5,1040(s0) - 406e: 08f54963 blt a0,a5,4100 <fwrite+0x170> + 407a: 41042783 lw a5,1040(s0) + 407e: 08f54963 blt a0,a5,4110 <fwrite+0x170> 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 <fwrite+0x48> - 407a: b7d5 j 405e <fwrite+0xce> + 4086: f729e1e3 bltu s3,s2,3fe8 <fwrite+0x48> + 408a: b7d5 j 406e <fwrite+0xce> 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 <write> + 408c: 4008 lw a0,0(s0) + 408e: 40000613 li a2,1024 + 4092: 85de mv a1,s7 + 4094: 85cfc0ef jal f0 <write> if (ret < stream->buf_write_pos) - 4088: 41042783 lw a5,1040(s0) - 408c: 08f54163 blt a0,a5,410e <fwrite+0x17e> + 4098: 41042783 lw a5,1040(s0) + 409c: 08f54163 blt a0,a5,411e <fwrite+0x17e> stream->buf_write_pos = 0; - 4090: 40042823 sw zero,1040(s0) - 4094: bfa5 j 400c <fwrite+0x7c> + 40a0: 40042823 sw zero,1040(s0) + 40a4: bfa5 j 401c <fwrite+0x7c> } - 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 <fwrite+0x9c> - 40b4: e4a6 sd s1,72(sp) + 40c0: f6090ee3 beqz s2,403c <fwrite+0x9c> + 40c4: e4a6 sd s1,72(sp) uint64 bytes_written = 0; - 40b6: 4481 li s1,0 - 40b8: a021 j 40c0 <fwrite+0x130> + 40c6: 4481 li s1,0 + 40c8: a021 j 40d0 <fwrite+0x130> 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 <fwrite+0x154> + 40cc: 0324f463 bgeu s1,s2,40f4 <fwrite+0x154> 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 <write> + 40d0: 4008 lw a0,0(s0) + 40d2: 40990633 sub a2,s2,s1 + 40d6: 009a85b3 add a1,s5,s1 + 40da: 816fc0ef jal f0 <write> if (ret <= 0) - 40ce: fea046e3 bgtz a0,40ba <fwrite+0x12a> + 40de: fea046e3 bgtz a0,40ca <fwrite+0x12a> 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 <fwrite+0x92> - 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 <fwrite+0x92> - 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 <fwrite+0x92> + 40ec: 6446 ld s0,80(sp) + 40ee: 7aa2 ld s5,40(sp) + 40f0: 7b02 ld s6,32(sp) + 40f2: b781 j 4032 <fwrite+0x92> + 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 <fwrite+0x92> + 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 <fwrite+0x92> 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 <fwrite+0x48> - 410c: bf89 j 405e <fwrite+0xce> + 4118: ed29e8e3 bltu s3,s2,3fe8 <fwrite+0x48> + 411c: bf89 j 406e <fwrite+0xce> 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 <fwrite+0x7c> + 4126: bddd j 401c <fwrite+0x7c> -0000000000004118 <fseek>: +0000000000004128 <fseek>: if (!stream) - 4118: c925 beqz a0,4188 <fseek+0x70> + 4128: c925 beqz a0,4198 <fseek+0x70> { - 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 <fseek+0x46> + 413e: 02c04863 bgtz a2,416e <fseek+0x46> 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 <lseek> - 414a: 87aa mv a5,a0 + 4150: 864a mv a2,s2 + 4152: 0004859b sext.w a1,s1 + 4156: 82afc0ef jal 180 <lseek> + 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 <fseek+0x5e> -} - 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 <fseek+0x5e> +} + 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 <write> + 416e: 4108 lw a0,0(a0) + 4170: 01040593 addi a1,s0,16 + 4174: f7dfb0ef jal f0 <write> if (ret < stream->buf_write_pos) - 4168: 41042783 lw a5,1040(s0) - 416c: 00f54963 blt a0,a5,417e <fseek+0x66> + 4178: 41042783 lw a5,1040(s0) + 417c: 00f54963 blt a0,a5,418e <fseek+0x66> stream->buf_write_pos = 0; - 4170: 40042823 sw zero,1040(s0) - 4174: bf7d j 4132 <fseek+0x1a> + 4180: 40042823 sw zero,1040(s0) + 4184: bf7d j 4142 <fseek+0x1a> 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 <fseek+0x3a> + 418a: 557d li a0,-1 + 418c: bfd9 j 4162 <fseek+0x3a> 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 <fseek+0x1a> + 4196: b775 j 4142 <fseek+0x1a> return -1; - 4188: 557d li a0,-1 + 4198: 557d li a0,-1 } - 418a: 8082 ret + 419a: 8082 ret -000000000000418c <ftell>: +000000000000419c <ftell>: if (!stream) - 418c: c505 beqz a0,41b4 <ftell+0x28> + 419c: c505 beqz a0,41c4 <ftell+0x28> { - 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 <lseek> + 41ac: fd5fb0ef jal 180 <lseek> if (ret < 0) - 41a0: 00054663 bltz a0,41ac <ftell+0x20> + 41b0: 00054663 bltz a0,41bc <ftell+0x20> } - 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 <ftell+0x18> - 41b4: 557d li a0,-1 + 41c0: 557d li a0,-1 + 41c2: bfcd j 41b4 <ftell+0x18> + 41c4: 557d li a0,-1 } - 41b6: 8082 ret + 41c6: 8082 ret -00000000000041b8 <rewind>: +00000000000041c8 <rewind>: if (stream) - 41b8: c915 beqz a0,41ec <rewind+0x34> + 41c8: c915 beqz a0,41fc <rewind+0x34> 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 <rewind+0x36> + 41d6: 02c04463 bgtz a2,41fe <rewind+0x36> 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 <lseek> + 41e8: 4601 li a2,0 + 41ea: 4581 li a1,0 + 41ec: f95fb0ef jal 180 <lseek> } - 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 <write> + 41fe: 4108 lw a0,0(a0) + 4200: 01040593 addi a1,s0,16 + 4204: eedfb0ef jal f0 <write> if (ret < stream->buf_write_pos) - 41f8: 41042783 lw a5,1040(s0) - 41fc: 00f54563 blt a0,a5,4206 <rewind+0x4e> + 4208: 41042783 lw a5,1040(s0) + 420c: 00f54563 blt a0,a5,4216 <rewind+0x4e> stream->buf_write_pos = 0; - 4200: 40042823 sw zero,1040(s0) - 4204: b7d9 j 41ca <rewind+0x12> + 4210: 40042823 sw zero,1040(s0) + 4214: b7d9 j 41da <rewind+0x12> 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 <rewind+0x12> + 421e: bf75 j 41da <rewind+0x12> -0000000000004210 <feof>: +0000000000004220 <feof>: return (stream) ? stream->eof : 1; - 4210: c119 beqz a0,4216 <feof+0x6> - 4212: 4548 lw a0,12(a0) - 4214: 8082 ret - 4216: 4505 li a0,1 + 4220: c119 beqz a0,4226 <feof+0x6> + 4222: 4548 lw a0,12(a0) + 4224: 8082 ret + 4226: 4505 li a0,1 } - 4218: 8082 ret + 4228: 8082 ret -000000000000421a <ferror>: +000000000000422a <ferror>: return (stream) ? stream->error : 1; - 421a: c119 beqz a0,4220 <ferror+0x6> - 421c: 4508 lw a0,8(a0) - 421e: 8082 ret - 4220: 4505 li a0,1 + 422a: c119 beqz a0,4230 <ferror+0x6> + 422c: 4508 lw a0,8(a0) + 422e: 8082 ret + 4230: 4505 li a0,1 } - 4222: 8082 ret + 4232: 8082 ret -0000000000004224 <clearerr>: +0000000000004234 <clearerr>: if (stream) - 4224: c509 beqz a0,422e <clearerr+0xa> + 4234: c509 beqz a0,423e <clearerr+0xa> 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 <ungetc>: +0000000000004240 <ungetc>: if (!stream || c == EOF) - 4230: c19d beqz a1,4256 <ungetc+0x26> - 4232: 57fd li a5,-1 - 4234: 02f50163 beq a0,a5,4256 <ungetc+0x26> + 4240: c19d beqz a1,4266 <ungetc+0x26> + 4242: 57fd li a5,-1 + 4244: 02f50163 beq a0,a5,4266 <ungetc+0x26> if (stream->buf_read_pos > 0) - 4238: 4145a783 lw a5,1044(a1) - 423c: 00f05d63 blez a5,4256 <ungetc+0x26> + 4248: 4145a783 lw a5,1044(a1) + 424c: 00f05d63 blez a5,4266 <ungetc+0x26> 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 <strtoull.part.0>: +000000000000426a <strtoull.part.0>: 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 <strtoull.part.0+0x68> - 4280: 04de7163 bgeu t3,a3,42c2 <strtoull.part.0+0x68> + 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 <strtoull.part.0+0x68> + 4290: 04de7163 bgeu t3,a3,42d2 <strtoull.part.0+0x68> } while (isspace(c)); if (c == '-') - 4284: 02d00793 li a5,45 - 4288: 0ef70863 beq a4,a5,4378 <strtoull.part.0+0x11e> + 4294: 02d00793 li a5,45 + 4298: 0ef70863 beq a4,a5,4388 <strtoull.part.0+0x11e> { 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 <strtoull.part.0+0xd0> + 42a2: 08f70c63 beq a4,a5,433a <strtoull.part.0+0xd0> { c = *s++; } if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 4296: ea05 bnez a2,42c6 <strtoull.part.0+0x6c> - 4298: 03000793 li a5,48 - 429c: 0ef70463 beq a4,a5,4384 <strtoull.part.0+0x12a> - 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 <strtoull.part.0+0x6c> + 42a8: 03000793 li a5,48 + 42ac: 0ef70463 beq a4,a5,4394 <strtoull.part.0+0x12a> + 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 <strtoull.part.0+0x80> + 42ce: 4629 li a2,10 + 42d0: a829 j 42ea <strtoull.part.0+0x80> unsigned long long strtoull(const char *nptr, char **endptr, int base) - 42c2: 88c2 mv a7,a6 - 42c4: b755 j 4268 <strtoull.part.0+0xe> + 42d2: 88c2 mv a7,a6 + 42d4: b755 j 4278 <strtoull.part.0+0xe> if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 42c6: 47c1 li a5,16 - 42c8: 0cf60d63 beq a2,a5,43a2 <strtoull.part.0+0x148> + 42d6: 47c1 li a5,16 + 42d8: 0cf60d63 beq a2,a5,43b2 <strtoull.part.0+0x148> 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 <strtoull.part.0+0xae> + 42f8: 0007069b sext.w a3,a4 + 42fc: 00fe7e63 bgeu t3,a5,4318 <strtoull.part.0+0xae> static inline int isalpha(int c) { return islower(c) || isupper(c); } - 42f0: f9f6879b addiw a5,a3,-97 - 42f4: 04fff063 bgeu t6,a5,4334 <strtoull.part.0+0xda> - 42f8: fbf6869b addiw a3,a3,-65 - 42fc: 04dfe163 bltu t6,a3,433e <strtoull.part.0+0xe4> + 4300: f9f6879b addiw a5,a3,-97 + 4304: 04fff063 bgeu t6,a5,4344 <strtoull.part.0+0xda> + 4308: fbf6869b addiw a3,a3,-65 + 430c: 04dfe163 bltu t6,a3,434e <strtoull.part.0+0xe4> 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 <strtoull.part.0+0xe4> + 4318: 02c7db63 bge a5,a2,434e <strtoull.part.0+0xe4> if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 430c: 01e30b63 beq t1,t5,4322 <strtoull.part.0+0xc8> + 431c: 01e30b63 beq t1,t5,4332 <strtoull.part.0+0xc8> 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 <strtoull.part.0+0xc8> - 4316: 05150e63 beq a0,a7,4372 <strtoull.part.0+0x118> + 4322: 00a8e863 bltu a7,a0,4332 <strtoull.part.0+0xc8> + 4326: 05150e63 beq a0,a7,4382 <strtoull.part.0+0x118> 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 <strtoull.part.0+0x8a> + 4338: bf75 j 42f4 <strtoull.part.0+0x8a> c = *s++; - 432a: 00084703 lbu a4,0(a6) - 432e: 00288813 addi a6,a7,2 - 4332: b795 j 4296 <strtoull.part.0+0x3c> + 433a: 00084703 lbu a4,0(a6) + 433e: 00288813 addi a6,a7,2 + 4342: b795 j 42a6 <strtoull.part.0+0x3c> c -= isupper(c) ? 'A' - 10 : 'a' - 10; - 4334: 05700793 li a5,87 - 4338: 40f707bb subw a5,a4,a5 - 433c: b7f1 j 4308 <strtoull.part.0+0xae> + 4344: 05700793 li a5,87 + 4348: 40f707bb subw a5,a4,a5 + 434c: b7f1 j 4318 <strtoull.part.0+0xae> } } if (any < 0) - 433e: 57fd li a5,-1 - 4340: 00f30e63 beq t1,a5,435c <strtoull.part.0+0x102> + 434e: 57fd li a5,-1 + 4350: 00f30e63 beq t1,a5,436c <strtoull.part.0+0x102> { acc = ULLONG_MAX; errno = ERANGE; } else if (neg) - 4344: 00038463 beqz t2,434c <strtoull.part.0+0xf2> + 4354: 00038463 beqz t2,435c <strtoull.part.0+0xf2> acc = -acc; - 4348: 40a00533 neg a0,a0 + 4358: 40a00533 neg a0,a0 if (endptr != 0) - 434c: c589 beqz a1,4356 <strtoull.part.0+0xfc> + 435c: c589 beqz a1,4366 <strtoull.part.0+0xfc> *endptr = (char *)(any ? s - 1 : nptr); - 434e: 00031f63 bnez t1,436c <strtoull.part.0+0x112> - 4352: 01d5b023 sd t4,0(a1) + 435e: 00031f63 bnez t1,437c <strtoull.part.0+0x112> + 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 <errno> + 436c: 02200793 li a5,34 + 4370: 00003717 auipc a4,0x3 + 4374: 3ef72023 sw a5,992(a4) # 7750 <errno> acc = ULLONG_MAX; - 4368: 557d li a0,-1 + 4378: 557d li a0,-1 if (endptr != 0) - 436a: d5f5 beqz a1,4356 <strtoull.part.0+0xfc> + 437a: d5f5 beqz a1,4366 <strtoull.part.0+0xfc> *endptr = (char *)(any ? s - 1 : nptr); - 436c: fff80e93 addi t4,a6,-1 - 4370: b7cd j 4352 <strtoull.part.0+0xf8> + 437c: fff80e93 addi t4,a6,-1 + 4380: b7cd j 4362 <strtoull.part.0+0xf8> if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) - 4372: faf448e3 blt s0,a5,4322 <strtoull.part.0+0xc8> - 4376: b755 j 431a <strtoull.part.0+0xc0> + 4382: faf448e3 blt s0,a5,4332 <strtoull.part.0+0xc8> + 4386: b755 j 432a <strtoull.part.0+0xc0> 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 <strtoull.part.0+0x3c> + 438e: 00288813 addi a6,a7,2 + 4392: bf11 j 42a6 <strtoull.part.0+0x3c> 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 <strtoull.part.0+0x16c> - 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 <strtoull.part.0+0x16c> + 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 <strtoull.part.0+0x80> + 43ae: 4621 li a2,8 + 43b0: bf2d j 42ea <strtoull.part.0+0x80> if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) - 43a2: 03000793 li a5,48 - 43a6: 00f70863 beq a4,a5,43b6 <strtoull.part.0+0x15c> - 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 <strtoull.part.0+0x80> - 43b6: 00084783 lbu a5,0(a6) - 43ba: 05800693 li a3,88 - 43be: 0df7f793 andi a5,a5,223 - 43c2: fed794e3 bne a5,a3,43aa <strtoull.part.0+0x150> + 43b2: 03000793 li a5,48 + 43b6: 00f70863 beq a4,a5,43c6 <strtoull.part.0+0x15c> + 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 <strtoull.part.0+0x80> + 43c6: 00084783 lbu a5,0(a6) + 43ca: 05800693 li a3,88 + 43ce: 0df7f793 andi a5,a5,223 + 43d2: fed794e3 bne a5,a3,43ba <strtoull.part.0+0x150> 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 <strtoull.part.0+0x80> + 43e6: 4641 li a2,16 + 43e8: b709 j 42ea <strtoull.part.0+0x80> -00000000000043da <atexit>: +00000000000043ea <atexit>: if (__atexit_func_count >= ATEXIT_MAX) - 43da: 00003717 auipc a4,0x3 - 43de: 35670713 addi a4,a4,854 # 7730 <errno> - 43e2: 435c lw a5,4(a4) - 43e4: 46fd li a3,31 - 43e6: 00f6ca63 blt a3,a5,43fa <atexit+0x20> + 43ea: 00003717 auipc a4,0x3 + 43ee: 36670713 addi a4,a4,870 # 7750 <errno> + 43f2: 435c lw a5,4(a4) + 43f4: 46fd li a3,31 + 43f6: 00f6ca63 blt a3,a5,440a <atexit+0x20> __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 <exit>: +000000000000440e <exit>: { - 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 <errno> - 440a: 405c lw a5,4(s0) + 4412: 00003417 auipc s0,0x3 + 4416: 33e40413 addi s0,s0,830 # 7750 <errno> + 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 <exit+0x2e> + 4422: 00f05d63 blez a5,443c <exit+0x2e> (__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 <exit+0x18> + 4436: 405c lw a5,4(s0) + 4438: fef047e3 bgtz a5,4426 <exit+0x18> sys_exit(status); - 442c: 8526 mv a0,s1 - 442e: c93fb0ef jal c0 <sys_exit> + 443c: 8526 mv a0,s1 + 443e: c8bfb0ef jal c8 <sys_exit> while (1) - 4432: a001 j 4432 <exit+0x34> + 4442: a001 j 4442 <exit+0x34> -0000000000004434 <abort>: +0000000000004444 <abort>: { - 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 <exit> + 444c: fc3ff0ef jal 440e <exit> -0000000000004440 <getenv>: +0000000000004450 <getenv>: } - 4440: 4501 li a0,0 - 4442: 8082 ret + 4450: 4501 li a0,0 + 4452: 8082 ret -0000000000004444 <system>: +0000000000004454 <system>: } - 4444: 557d li a0,-1 - 4446: 8082 ret + 4454: 557d li a0,-1 + 4456: 8082 ret -0000000000004448 <free>: +0000000000004458 <free>: if (!ptr) - 4448: c121 beqz a0,4488 <free+0x40> + 4458: c121 beqz a0,4498 <free+0x40> for (p = freep; !(bp > p && bp < p->next); p = p->next) - 444a: 00003617 auipc a2,0x3 - 444e: 2e660613 addi a2,a2,742 # 7730 <errno> - 4452: 10863783 ld a5,264(a2) + 445a: 00003617 auipc a2,0x3 + 445e: 2f660613 addi a2,a2,758 # 7750 <errno> + 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 <free+0x42> - 4460: 00e6e463 bltu a3,a4,4468 <free+0x20> + 446c: 02d7f763 bgeu a5,a3,449a <free+0x42> + 4470: 00e6e463 bltu a3,a4,4478 <free+0x20> if (p >= p->next && (bp > p || bp < p->next)) - 4464: 02e7e763 bltu a5,a4,4492 <free+0x4a> + 4474: 02e7e763 bltu a5,a4,44a2 <free+0x4a> 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 <free+0x4e> + 4478: ff053583 ld a1,-16(a0) + 447c: 00b68833 add a6,a3,a1 + 4480: 03070363 beq a4,a6,44a6 <free+0x4e> 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 <free+0x68> - 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 <free+0x68> + 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 <free+0x4a> - 448e: fce6ede3 bltu a3,a4,4468 <free+0x20> + 449a: 00e7e463 bltu a5,a4,44a2 <free+0x4a> + 449e: fce6ede3 bltu a3,a4,4478 <free+0x20> { - 4492: 87ba mv a5,a4 - 4494: b7d9 j 445a <free+0x12> + 44a2: 87ba mv a5,a4 + 44a4: b7d9 j 446a <free+0x12> 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 <free+0x3a> + 44b2: 638c ld a1,0(a5) + 44b4: fee53c23 sd a4,-8(a0) + 44b8: 00b78833 add a6,a5,a1 + 44bc: fd069be3 bne a3,a6,4492 <free+0x3a> 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 <free+0x3a> + 44cc: b7d9 j 4492 <free+0x3a> -00000000000044be <malloc>: +00000000000044ce <malloc>: if (size == 0) - 44be: c169 beqz a0,4580 <malloc+0xc2> + 44ce: c169 beqz a0,4590 <malloc+0xc2> { - 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 <errno> - 44cc: 1084b783 ld a5,264(s1) + 44d4: 00003497 auipc s1,0x3 + 44d8: 27c48493 addi s1,s1,636 # 7750 <errno> + 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 <malloc+0xa0> + 44ea: c3d1 beqz a5,456e <malloc+0xa0> 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 <malloc+0x84> - 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 <malloc+0x84> + 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 <malloc+0x3a> + 44fc: 59fd li s3,-1 + 44fe: a029 j 4508 <malloc+0x3a> 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 <malloc+0x7e> + 4502: 6118 ld a4,0(a0) + 4504: 04877463 bgeu a4,s0,454c <malloc+0x7e> if (p == freep) - 44f8: 1084b703 ld a4,264(s1) - 44fc: 87aa mv a5,a0 - 44fe: fee519e3 bne a0,a4,44f0 <malloc+0x32> + 4508: 1084b703 ld a4,264(s1) + 450c: 87aa mv a5,a0 + 450e: fee519e3 bne a0,a4,4500 <malloc+0x32> if (nu < 4096) - 4502: 8922 mv s2,s0 - 4504: 01447363 bgeu s0,s4,450a <malloc+0x4c> - 4508: 6905 lui s2,0x1 + 4512: 8922 mv s2,s0 + 4514: 01447363 bgeu s0,s4,451a <malloc+0x4c> + 4518: 6905 lui s2,0x1 cp = (char *)sbrk(nu); - 450a: 854a mv a0,s2 - 450c: c45fb0ef jal 150 <sbrk> - 4510: 87aa mv a5,a0 + 451a: 854a mv a0,s2 + 451c: c3dfb0ef jal 158 <sbrk> + 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 <malloc+0x68> + 4524: 01378963 beq a5,s3,4536 <malloc+0x68> up->size = nu; - 4518: 0127b023 sd s2,0(a5) + 4528: 0127b023 sd s2,0(a5) free((void *)(up + 1)); - 451c: f2dff0ef jal 4448 <free> + 452c: f2dff0ef jal 4458 <free> return freep; - 4520: 1084b783 ld a5,264(s1) + 4530: 1084b783 ld a5,264(s1) if ((p = morecore(size)) == NULL) - 4524: f7f1 bnez a5,44f0 <malloc+0x32> + 4534: f7f1 bnez a5,4500 <malloc+0x32> } - 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 <malloc+0xbc> + 4552: 02e40c63 beq s0,a4,458a <malloc+0xbc> 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 <base> - 4566: 10a4b423 sd a0,264(s1) - 456a: 10a4bc23 sd a0,280(s1) + 456e: 00003517 auipc a0,0x3 + 4572: 2f250513 addi a0,a0,754 # 7860 <base> + 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 <base> + 457e: 00003797 auipc a5,0x3 + 4582: 2e07b123 sd zero,738(a5) # 7860 <base> if (p->size >= size) - 4576: f43d bnez s0,44e4 <malloc+0x26> + 4586: f43d bnez s0,44f4 <malloc+0x26> 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 <malloc+0x90> + 458a: 6518 ld a4,8(a0) + 458c: e798 sd a4,8(a5) + 458e: bfc1 j 455e <malloc+0x90> return NULL; - 4580: 4501 li a0,0 + 4590: 4501 li a0,0 } - 4582: 8082 ret + 4592: 8082 ret -0000000000004584 <calloc>: +0000000000004594 <calloc>: 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 <calloc+0x30> + 45a0: 02b50433 mul s0,a0,a1 + 45a4: e385 bnez a5,45c4 <calloc+0x30> void *p = malloc(total); - 4596: 8522 mv a0,s0 - 4598: f27ff0ef jal 44be <malloc> - 459c: 84aa mv s1,a0 + 45a6: 8522 mv a0,s0 + 45a8: f27ff0ef jal 44ce <malloc> + 45ac: 84aa mv s1,a0 if (p) - 459e: c509 beqz a0,45a8 <calloc+0x24> + 45ae: c509 beqz a0,45b8 <calloc+0x24> memset(p, 0, total); - 45a0: 8622 mv a2,s0 - 45a2: 4581 li a1,0 - 45a4: 524000ef jal 4ac8 <memset> -} - 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 <memset> +} + 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 <errno> + 45cc: 00003717 auipc a4,0x3 + 45d0: 18f72223 sw a5,388(a4) # 7750 <errno> } - 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 <realloc>: +00000000000045dc <realloc>: if (!ptr) - 45cc: c929 beqz a0,461e <realloc+0x52> + 45dc: c929 beqz a0,462e <realloc+0x52> { - 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 <realloc+0x56> + 45e4: c5b9 beqz a1,4632 <realloc+0x56> 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 <realloc+0x2a> - 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 <realloc+0x2a> + 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 <malloc> - 45fc: 84aa mv s1,a0 + 4606: 852e mv a0,a1 + 4608: ec7ff0ef jal 44ce <malloc> + 460c: 84aa mv s1,a0 if (!new_ptr) - 45fe: d575 beqz a0,45ea <realloc+0x1e> + 460e: d575 beqz a0,45fa <realloc+0x1e> 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 <memcpy> + 4610: ff043603 ld a2,-16(s0) + 4614: 85a2 mv a1,s0 + 4616: 1641 addi a2,a2,-16 + 4618: 514000ef jal 4b2c <memcpy> free(ptr); - 460c: 8522 mv a0,s0 - 460e: e3bff0ef jal 4448 <free> + 461c: 8522 mv a0,s0 + 461e: e3bff0ef jal 4458 <free> } - 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 <malloc> + 462e: 852e mv a0,a1 + 4630: bd79 j 44ce <malloc> free(ptr); - 4622: e27ff0ef jal 4448 <free> + 4632: e27ff0ef jal 4458 <free> return NULL; - 4626: 4481 li s1,0 - 4628: b7d1 j 45ec <realloc+0x20> + 4636: 4481 li s1,0 + 4638: b7d1 j 45fc <realloc+0x20> -000000000000462a <strtoull>: +000000000000463a <strtoull>: 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 <strtoull+0x14> - 4636: 4805 li a6,1 - 4638: 01060363 beq a2,a6,463e <strtoull+0x14> - 463c: b939 j 425a <strtoull.part.0> + 4642: 00c86663 bltu a6,a2,464e <strtoull+0x14> + 4646: 4805 li a6,1 + 4648: 01060363 beq a2,a6,464e <strtoull+0x14> + 464c: b939 j 426a <strtoull.part.0> if (endptr) - 463e: c311 beqz a4,4642 <strtoull+0x18> + 464e: c311 beqz a4,4652 <strtoull+0x18> *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 <errno> + 4652: 00003797 auipc a5,0x3 + 4656: 0e07af23 sw zero,254(a5) # 7750 <errno> } - 464a: 4501 li a0,0 - 464c: 8082 ret + 465a: 4501 li a0,0 + 465c: 8082 ret -000000000000464e <strtoll>: +000000000000465e <strtoll>: 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 <strtoll+0xe> - 4672: fee8f5e3 bgeu a7,a4,465c <strtoll+0xe> + 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 <strtoll+0xe> + 4682: fee8f5e3 bgeu a7,a4,466c <strtoll+0xe> if (base < 0 || base == 1 || base > 36) - 4676: 02400793 li a5,36 - 467a: 02c7ec63 bltu a5,a2,46b2 <strtoll+0x64> - 467e: 4785 li a5,1 - 4680: 02f60963 beq a2,a5,46b2 <strtoll+0x64> - 4684: bd7ff0ef jal 425a <strtoull.part.0> + 4686: 02400793 li a5,36 + 468a: 02c7ec63 bltu a5,a2,46c2 <strtoll+0x64> + 468e: 4785 li a5,1 + 4690: 02f60963 beq a2,a5,46c2 <strtoll+0x64> + 4694: bd7ff0ef jal 426a <strtoull.part.0> 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 <errno> - 4690: 4394 lw a3,0(a5) - 4692: 02200713 li a4,34 - 4696: 04e68363 beq a3,a4,46dc <strtoll+0x8e> + 4698: 00003797 auipc a5,0x3 + 469c: 0b878793 addi a5,a5,184 # 7750 <errno> + 46a0: 4394 lw a3,0(a5) + 46a2: 02200713 li a4,34 + 46a6: 04e68363 beq a3,a4,46ec <strtoll+0x8e> 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 <strtoll+0x7a> - 46a2: 00055f63 bgez a0,46c0 <strtoll+0x72> + 46aa: 02d00713 li a4,45 + 46ae: 02e40563 beq s0,a4,46d8 <strtoll+0x7a> + 46b2: 00055f63 bgez a0,46d0 <strtoll+0x72> { 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 <strtoll+0x72> + 46bc: 557d li a0,-1 + 46be: 8105 srli a0,a0,0x1 + 46c0: a801 j 46d0 <strtoll+0x72> if (endptr) - 46b2: c191 beqz a1,46b6 <strtoll+0x68> + 46c2: c191 beqz a1,46c6 <strtoll+0x68> *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 <errno> + 46c6: 00003797 auipc a5,0x3 + 46ca: 0807a523 sw zero,138(a5) # 7750 <errno> { 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 <strtoll+0xa2> + 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 <strtoll+0xa2> +} + 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 <strtoll+0x4c> + 46ec: 577d li a4,-1 + 46ee: fae51ee3 bne a0,a4,46aa <strtoll+0x4c> return neg ? LLONG_MIN : LLONG_MAX; - 46e2: 02d00793 li a5,45 - 46e6: fcf413e3 bne s0,a5,46ac <strtoll+0x5e> + 46f2: 02d00793 li a5,45 + 46f6: fcf413e3 bne s0,a5,46bc <strtoll+0x5e> return LLONG_MIN; - 46ea: 557d li a0,-1 - 46ec: 157e slli a0,a0,0x3f - 46ee: bfc9 j 46c0 <strtoll+0x72> + 46fa: 557d li a0,-1 + 46fc: 157e slli a0,a0,0x3f + 46fe: bfc9 j 46d0 <strtoll+0x72> 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 <strtoll+0x9c> + 4706: bfd5 j 46fa <strtoll+0x9c> -00000000000046f8 <strtoul>: +0000000000004708 <strtoul>: 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 <strtoul+0x14> - 4704: 4805 li a6,1 - 4706: 01060363 beq a2,a6,470c <strtoul+0x14> - 470a: be81 j 425a <strtoull.part.0> + 4710: 00c86663 bltu a6,a2,471c <strtoul+0x14> + 4714: 4805 li a6,1 + 4716: 01060363 beq a2,a6,471c <strtoul+0x14> + 471a: be81 j 426a <strtoull.part.0> if (endptr) - 470c: c311 beqz a4,4710 <strtoul+0x18> + 471c: c311 beqz a4,4720 <strtoul+0x18> *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 <errno> + 4720: 00003797 auipc a5,0x3 + 4724: 0207a823 sw zero,48(a5) # 7750 <errno> { 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 <strtol>: +000000000000472c <strtol>: long strtol(const char *nptr, char **endptr, int base) { long long ret = strtoll(nptr, endptr, base); - 471c: bf0d j 464e <strtoll> + 472c: bf0d j 465e <strtoll> -000000000000471e <atoi>: +000000000000472e <atoi>: 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 <strtoll> + 4736: f29ff0ef jal 465e <strtoll> 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 <atol>: +0000000000004742 <atol>: long long ret = strtoll(nptr, endptr, base); - 4732: 4629 li a2,10 - 4734: 4581 li a1,0 - 4736: bf21 j 464e <strtoll> + 4742: 4629 li a2,10 + 4744: 4581 li a1,0 + 4746: bf21 j 465e <strtoll> -0000000000004738 <atoll>: +0000000000004748 <atoll>: 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 <strtoll> + 4748: 4629 li a2,10 + 474a: 4581 li a1,0 + 474c: bf09 j 465e <strtoll> -000000000000473e <strtod>: - 473e: 02000693 li a3,32 - 4742: 4611 li a2,4 +000000000000474e <strtod>: + 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 <strtod+0x76> - 4754: 06e67063 bgeu a2,a4,47b4 <strtod+0x76> + 4754: 00054783 lbu a5,0(a0) + 4758: ff77871b addiw a4,a5,-9 + 475c: 0ff77713 zext.b a4,a4 + 4760: 06d78263 beq a5,a3,47c4 <strtod+0x76> + 4764: 06e67063 bgeu a2,a4,47c4 <strtod+0x76> s++; if (*s == '-') - 4758: 02d00713 li a4,45 - 475c: 08e78e63 beq a5,a4,47f8 <strtod+0xba> + 4768: 02d00713 li a4,45 + 476c: 08e78e63 beq a5,a4,4808 <strtod+0xba> { sign = -1; s++; } else if (*s == '+') - 4760: 02b00713 li a4,43 - 4764: 0ae78263 beq a5,a4,4808 <strtod+0xca> - 4768: 00001717 auipc a4,0x1 - 476c: 0e073507 fld fa0,224(a4) # 5848 <STDIN_FD+0x10> + 4770: 02b00713 li a4,43 + 4774: 0ae78263 beq a5,a4,4818 <strtod+0xca> + 4778: 00001717 auipc a4,0x1 + 477c: 0f073507 fld fa0,240(a4) # 5868 <STDIN_FD+0x10> 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 <strtod+0x64> - 4780: 00001797 auipc a5,0x1 - 4784: 0d07b687 fld fa3,208(a5) # 5850 <STDIN_FD+0x18> - 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 <strtod+0x64> + 4790: 00001797 auipc a5,0x1 + 4794: 0e07b687 fld fa3,224(a5) # 5870 <STDIN_FD+0x18> + 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 <strtod+0x4c> + 47ae: fed676e3 bgeu a2,a3,479a <strtod+0x4c> } if (*s == '.') - 47a2: 02e00713 li a4,46 - 47a6: 00e78963 beq a5,a4,47b8 <strtod+0x7a> + 47b2: 02e00713 li a4,46 + 47b6: 00e78963 beq a5,a4,47c8 <strtod+0x7a> val += (*s - '0') * factor; s++; } } if (endptr) - 47aa: c191 beqz a1,47ae <strtod+0x70> + 47ba: c191 beqz a1,47be <strtod+0x70> *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 <strtod+0x6> + 47c4: 0505 addi a0,a0,1 + 47c6: b779 j 4754 <strtod+0x6> 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 <strtod+0x6c> + 47d6: fee6e2e3 bltu a3,a4,47ba <strtod+0x6c> double factor = 1.0; - 47ca: 00001717 auipc a4,0x1 - 47ce: 07e73707 fld fa4,126(a4) # 5848 <STDIN_FD+0x10> - 47d2: 00001717 auipc a4,0x1 - 47d6: 09673607 fld fa2,150(a4) # 5868 <STDIN_FD+0x30> + 47da: 00001717 auipc a4,0x1 + 47de: 08e73707 fld fa4,142(a4) # 5868 <STDIN_FD+0x10> + 47e2: 00001717 auipc a4,0x1 + 47e6: 0a673607 fld fa2,166(a4) # 5888 <STDIN_FD+0x30> 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 <strtod+0x9c> - 47f6: bf55 j 47aa <strtod+0x6c> - while (isdigit(*s)) - 47f8: 00154783 lbu a5,1(a0) - 47fc: 00001717 auipc a4,0x1 - 4800: 04473507 fld fa0,68(a4) # 5840 <STDIN_FD+0x8> - s++; - 4804: 0505 addi a0,a0,1 - 4806: b7ad j 4770 <strtod+0x32> + 4802: fee6f4e3 bgeu a3,a4,47ea <strtod+0x9c> + 4806: bf55 j 47ba <strtod+0x6c> while (isdigit(*s)) 4808: 00154783 lbu a5,1(a0) 480c: 00001717 auipc a4,0x1 - 4810: 03c73507 fld fa0,60(a4) # 5848 <STDIN_FD+0x10> + 4810: 05473507 fld fa0,84(a4) # 5860 <STDIN_FD+0x8> s++; 4814: 0505 addi a0,a0,1 - 4816: bfa9 j 4770 <strtod+0x32> + 4816: b7ad j 4780 <strtod+0x32> + while (isdigit(*s)) + 4818: 00154783 lbu a5,1(a0) + 481c: 00001717 auipc a4,0x1 + 4820: 04c73507 fld fa0,76(a4) # 5868 <STDIN_FD+0x10> + s++; + 4824: 0505 addi a0,a0,1 + 4826: bfa9 j 4780 <strtod+0x32> -0000000000004818 <atof>: +0000000000004828 <atof>: double atof(const char *nptr) { return strtod(nptr, NULL); } - 4818: 4581 li a1,0 - 481a: b715 j 473e <strtod> + 4828: 4581 li a1,0 + 482a: b715 j 474e <strtod> -000000000000481c <strtof>: +000000000000482c <strtof>: 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 <strtod> - 4824: 60a2 ld ra,8(sp) - 4826: 40157553 fcvt.s.d fa0,fa0 - 482a: 0141 addi sp,sp,16 - 482c: 8082 ret - -000000000000482e <qsort>: + 482c: 1141 addi sp,sp,-16 + 482e: e406 sd ra,8(sp) + 4830: f1fff0ef jal 474e <strtod> + 4834: 60a2 ld ra,8(sp) + 4836: 40157553 fcvt.s.d fa0,fa0 + 483a: 0141 addi sp,sp,16 + 483c: 8082 ret + +000000000000483e <qsort>: } } 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 <qsort+0xdc> + 483e: 4785 li a5,1 + 4840: 0cb7fd63 bgeu a5,a1,491a <qsort+0xdc> { - 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 <qsort+0xd4> - 483e: e85a sd s6,16(sp) - 4840: 8b2e mv s6,a1 + 484c: c279 beqz a2,4912 <qsort+0xd4> + 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 <qsort+0x9c> + 486c: 069af763 bgeu s5,s1,48da <qsort+0x9c> 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 <qsort+0x3e> + 4872: 8456 mv s0,s5 + 4874: a021 j 487c <qsort+0x3e> for (; j < pivot; j += size) - 4866: 994e add s2,s2,s3 - 4868: 00997f63 bgeu s2,s1,4886 <qsort+0x58> + 4876: 994e add s2,s2,s3 + 4878: 00997f63 bgeu s2,s1,4896 <qsort+0x58> { if (compar(j, pivot) < 0) - 486c: 85a6 mv a1,s1 - 486e: 854a mv a0,s2 - 4870: 9a02 jalr s4 - 4872: fe055ae3 bgez a0,4866 <qsort+0x38> + 487c: 85a6 mv a1,s1 + 487e: 854a mv a0,s2 + 4880: 9a02 jalr s4 + 4882: fe055ae3 bgez a0,4876 <qsort+0x38> { if (i != j) - 4876: 05241d63 bne s0,s2,48d0 <qsort+0xa2> - 487a: 01390633 add a2,s2,s3 + 4886: 05241d63 bne s0,s2,48e0 <qsort+0xa2> + 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 <qsort+0x3e> + 4890: 994e add s2,s2,s3 + 4892: fe9965e3 bltu s2,s1,487c <qsort+0x3e> } } 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 <qsort+0x68> + 48ba: fed416e3 bne s0,a3,48a6 <qsort+0x68> 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 <qsort> + 48be: 86d2 mv a3,s4 + 48c0: 864e mv a2,s3 + 48c2: 8556 mv a0,s5 + 48c4: f7bff0ef jal 483e <qsort> if (nmemb < 2 || size == 0) - 48b8: 036bfe63 bgeu s7,s6,48f4 <qsort+0xc6> + 48c8: 036bfe63 bgeu s7,s6,4904 <qsort+0xc6> 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 <qsort+0x32> + 48d6: f89aede3 bltu s5,s1,4870 <qsort+0x32> 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 <qsort+0x64> - 48d0: 01340633 add a2,s0,s3 + 48dc: 4581 li a1,0 + 48de: b7d1 j 48a2 <qsort+0x64> + 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 <qsort+0xaa> + 48fc: fec796e3 bne a5,a2,48e8 <qsort+0xaa> i += size; - 48f0: 8432 mv s0,a2 - 48f2: b779 j 4880 <qsort+0x52> - 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 <bsearch>: + 4900: 8432 mv s0,a2 + 4902: b779 j 4890 <qsort+0x52> + 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 <bsearch>: 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 <bsearch+0x50> - 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 <bsearch+0x50> + 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 <bsearch+0x5c> + 4950: 02054463 bltz a0,4978 <bsearch+0x5c> u = idx; else if (cmp > 0) - 4944: c515 beqz a0,4970 <bsearch+0x64> + 4954: c515 beqz a0,4980 <bsearch+0x64> l = idx + 1; - 4946: 00140993 addi s3,s0,1 + 4956: 00140993 addi s3,s0,1 while (l < u) - 494a: ff29e2e3 bltu s3,s2,492e <bsearch+0x22> - 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 <bsearch+0x22> + 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 <bsearch+0x22> - 496e: b7c5 j 494e <bsearch+0x42> - 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 <abs>: + 497a: fd29e2e3 bltu s3,s2,493e <bsearch+0x22> + 497e: b7c5 j 495e <bsearch+0x42> + 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 <abs>: /* 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 <labs>: +00000000000049a2 <labs>: 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 <llabs>: +00000000000049ac <llabs>: 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 <div>: +00000000000049b6 <div>: 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 <ldiv>: +00000000000049cc <ldiv>: 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 <lldiv>: +00000000000049dc <lldiv>: 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 <rand>: +00000000000049ec <rand>: static unsigned long next = 1; int rand(void) { next = next * 1103515245 + 12345; - 49dc: 00003697 auipc a3,0x3 - 49e0: d0c68693 addi a3,a3,-756 # 76e8 <next> - 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 <sprintf+0x43> - 49f8: 97ba add a5,a5,a4 + 49ec: 00003697 auipc a3,0x3 + 49f0: d1c68693 addi a3,a3,-740 # 7708 <next> + 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 <sprintf+0x33> + 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 <srand>: +0000000000004a14 <srand>: 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 <next> - 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 <next> + 4a20: 8082 ret -0000000000004a12 <mblen>: +0000000000004a22 <mblen>: /* Stub */ int mblen(const char *s, size_t n) { return (s && *s && n) ? 1 : 0; } - 4a12: c901 beqz a0,4a22 <mblen+0x10> - 4a14: 00054783 lbu a5,0(a0) - 4a18: 4501 li a0,0 - 4a1a: c789 beqz a5,4a24 <mblen+0x12> - 4a1c: 00b03533 snez a0,a1 - 4a20: 8082 ret - 4a22: 4501 li a0,0 - 4a24: 8082 ret - -0000000000004a26 <mbtowc>: + 4a22: c901 beqz a0,4a32 <mblen+0x10> + 4a24: 00054783 lbu a5,0(a0) + 4a28: 4501 li a0,0 + 4a2a: c789 beqz a5,4a34 <mblen+0x12> + 4a2c: 00b03533 snez a0,a1 + 4a30: 8082 ret + 4a32: 4501 li a0,0 + 4a34: 8082 ret + +0000000000004a36 <mbtowc>: 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 <mbtowc+0x1a> + 4a38: cd81 beqz a1,4a50 <mbtowc+0x1a> 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 <mbtowc+0x1c> + 4a3c: ca19 beqz a2,4a52 <mbtowc+0x1c> if (pwc) - 4a2e: c781 beqz a5,4a36 <mbtowc+0x10> + 4a3e: c781 beqz a5,4a46 <mbtowc+0x10> *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 <wctomb>: +0000000000004a54 <wctomb>: int wctomb(char *s, wchar_t wchar) { if (!s) - 4a44: c509 beqz a0,4a4e <wctomb+0xa> + 4a54: c509 beqz a0,4a5e <wctomb+0xa> 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 <mbstowcs>: +0000000000004a62 <mbstowcs>: 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 <mbstowcs+0x36> - 4a58: ca15 beqz a2,4a8c <mbstowcs+0x3a> - 4a5a: 86aa mv a3,a0 + 4a62: 0005c703 lbu a4,0(a1) + 4a66: cb0d beqz a4,4a98 <mbstowcs+0x36> + 4a68: ca15 beqz a2,4a9c <mbstowcs+0x3a> + 4a6a: 86aa mv a3,a0 size_t i = 0; - 4a5c: 4781 li a5,0 - 4a5e: a019 j 4a64 <mbstowcs+0x12> + 4a6c: 4781 li a5,0 + 4a6e: a019 j 4a74 <mbstowcs+0x12> while (src[i] && i < n) - 4a60: 02f60263 beq a2,a5,4a84 <mbstowcs+0x32> + 4a70: 02f60263 beq a2,a5,4a94 <mbstowcs+0x32> { 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 <mbstowcs+0xe> + 4a78: 00f58733 add a4,a1,a5 + 4a7c: 00074703 lbu a4,0(a4) + 4a80: 0691 addi a3,a3,4 + 4a82: f77d bnez a4,4a70 <mbstowcs+0xe> } if (i < n) - 4a74: 00c7f763 bgeu a5,a2,4a82 <mbstowcs+0x30> + 4a84: 00c7f763 bgeu a5,a2,4a92 <mbstowcs+0x30> 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 <mbstowcs+0x22> - 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 <mbstowcs+0x22> + 4a9c: 4501 li a0,0 return i; } - 4a8e: 8082 ret + 4a9e: 8082 ret -0000000000004a90 <wcstombs>: +0000000000004aa0 <wcstombs>: 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 <wcstombs+0x30> - 4a94: ca05 beqz a2,4ac4 <wcstombs+0x34> - 4a96: 0591 addi a1,a1,4 + 4aa0: 4198 lw a4,0(a1) + 4aa2: c71d beqz a4,4ad0 <wcstombs+0x30> + 4aa4: ca05 beqz a2,4ad4 <wcstombs+0x34> + 4aa6: 0591 addi a1,a1,4 size_t i = 0; - 4a98: 4781 li a5,0 - 4a9a: a019 j 4aa0 <wcstombs+0x10> + 4aa8: 4781 li a5,0 + 4aaa: a019 j 4ab0 <wcstombs+0x10> while (src[i] && i < n) - 4a9c: 02f60063 beq a2,a5,4abc <wcstombs+0x2c> + 4aac: 02f60063 beq a2,a5,4acc <wcstombs+0x2c> { 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 <wcstombs+0xc> + 4abc: 0591 addi a1,a1,4 + 4abe: f77d bnez a4,4aac <wcstombs+0xc> } if (i < n) - 4ab0: 00c7f563 bgeu a5,a2,4aba <wcstombs+0x2a> + 4ac0: 00c7f563 bgeu a5,a2,4aca <wcstombs+0x2a> 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 <wcstombs+0x20> - 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 <wcstombs+0x20> + 4ad4: 4501 li a0,0 return i; - 4ac6: 8082 ret + 4ad6: 8082 ret -0000000000004ac8 <memset>: +0000000000004ad8 <memset>: 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 <memset+0x16> + 4ae2: c611 beqz a2,4aee <memset+0x16> 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 <memset+0xc> + 4ae8: 0785 addi a5,a5,1 + 4aea: fee79de3 bne a5,a4,4ae4 <memset+0xc> return dst; } - 4ade: 8082 ret + 4aee: 8082 ret -0000000000004ae0 <memmove>: +0000000000004af0 <memmove>: 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 <memmove+0x3a> + 4af0: 02b50d63 beq a0,a1,4b2a <memmove+0x3a> return vdst; if (src > dst) - 4ae4: 00b57e63 bgeu a0,a1,4b00 <memmove+0x20> + 4af4: 00b57e63 bgeu a0,a1,4b10 <memmove+0x20> { while (n--) - 4ae8: ca0d beqz a2,4b1a <memmove+0x3a> - 4aea: 962a add a2,a2,a0 + 4af8: ca0d beqz a2,4b2a <memmove+0x3a> + 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 <memmove+0xe> - 4afe: 8082 ret + 4b0a: fec79ae3 bne a5,a2,4afe <memmove+0xe> + 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 <memmove+0x3a> + 4b18: ca09 beqz a2,4b2a <memmove+0x3a> *--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 <memmove+0x2a> + 4b26: fef59ae3 bne a1,a5,4b1a <memmove+0x2a> } return vdst; } - 4b1a: 8082 ret + 4b2a: 8082 ret -0000000000004b1c <memcpy>: +0000000000004b2c <memcpy>: void *memcpy(void *vdst, const void *vsrc, size_t n) { return memmove(vdst, vsrc, n); - 4b1c: b7d1 j 4ae0 <memmove> + 4b2c: b7d1 j 4af0 <memmove> -0000000000004b1e <memcmp>: +0000000000004b2e <memcmp>: 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 <memcmp+0x20> - 4b20: 962a add a2,a2,a0 - 4b22: a019 j 4b28 <memcmp+0xa> - 4b24: 00c50d63 beq a0,a2,4b3e <memcmp+0x20> + 4b2e: c205 beqz a2,4b4e <memcmp+0x20> + 4b30: 962a add a2,a2,a0 + 4b32: a019 j 4b38 <memcmp+0xa> + 4b34: 00c50d63 beq a0,a2,4b4e <memcmp+0x20> { 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 <memcmp+0x6> + 4b44: fee788e3 beq a5,a4,4b34 <memcmp+0x6> 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 <memchr>: +0000000000004b52 <memchr>: 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 <memchr+0x1a> + 4b52: ce09 beqz a2,4b6c <memchr+0x1a> { if (*p == (unsigned char)c) - 4b44: 0ff5f593 zext.b a1,a1 - 4b48: 962a add a2,a2,a0 - 4b4a: a021 j 4b52 <memchr+0x10> + 4b54: 0ff5f593 zext.b a1,a1 + 4b58: 962a add a2,a2,a0 + 4b5a: a021 j 4b62 <memchr+0x10> return (void *)p; p++; - 4b4c: 0505 addi a0,a0,1 + 4b5c: 0505 addi a0,a0,1 while (n--) - 4b4e: 00a60763 beq a2,a0,4b5c <memchr+0x1a> + 4b5e: 00a60763 beq a2,a0,4b6c <memchr+0x1a> if (*p == (unsigned char)c) - 4b52: 00054783 lbu a5,0(a0) - 4b56: feb79be3 bne a5,a1,4b4c <memchr+0xa> + 4b62: 00054783 lbu a5,0(a0) + 4b66: feb79be3 bne a5,a1,4b5c <memchr+0xa> } 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 <strlen>: +0000000000004b70 <strlen>: /* 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 <strlen+0x16> + 4b70: 00054783 lbu a5,0(a0) + 4b74: cb89 beqz a5,4b86 <strlen+0x16> 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 <strlen+0x8> + 4b7e: ff6d bnez a4,4b78 <strlen+0x8> 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 <strcpy>: +0000000000004b8a <strcpy>: 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 <strcpy+0x2> + 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 <strcpy+0x2> ; return os; } - 4b8a: 8082 ret + 4b9a: 8082 ret -0000000000004b8c <strncpy>: +0000000000004b9c <strncpy>: 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 <strncpy+0x10> - 4b90: 8082 ret + 4b9c: 4781 li a5,0 + 4b9e: e619 bnez a2,4bac <strncpy+0x10> + 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 <strncpy+0x30> - 4b9c: 00f58733 add a4,a1,a5 - 4ba0: 00074703 lbu a4,0(a4) + 4ba6: 0785 addi a5,a5,1 + 4ba8: 02f60263 beq a2,a5,4bcc <strncpy+0x30> + 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 <strncpy+0x6> + 4bb8: f76d bnez a4,4ba2 <strncpy+0x6> for (; i < n; i++) - 4baa: 00c7f963 bgeu a5,a2,4bbc <strncpy+0x30> - 4bae: 87b6 mv a5,a3 - 4bb0: 962a add a2,a2,a0 + 4bba: 00c7f963 bgeu a5,a2,4bcc <strncpy+0x30> + 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 <strncpy+0x26> + 4bc6: 0785 addi a5,a5,1 + 4bc8: fec79de3 bne a5,a2,4bc2 <strncpy+0x26> return os; } - 4bbc: 8082 ret + 4bcc: 8082 ret -0000000000004bbe <strcat>: +0000000000004bce <strcat>: char *strcat(char *dst, const char *src) { char *os = dst; while (*dst) - 4bbe: 00054783 lbu a5,0(a0) - 4bc2: cf91 beqz a5,4bde <strcat+0x20> - 4bc4: 87aa mv a5,a0 - 4bc6: 0017c703 lbu a4,1(a5) + 4bce: 00054783 lbu a5,0(a0) + 4bd2: cf91 beqz a5,4bee <strcat+0x20> + 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 <strcat+0x8> + 4bdc: ff6d bnez a4,4bd6 <strcat+0x8> 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 <strcat+0x10> + 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 <strcat+0x10> ; 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 <strcat+0x10> - 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 <strcat+0x10> + 4bfe: 8082 ret -0000000000004bf0 <strncat>: +0000000000004c00 <strncat>: 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 <strncat+0x10> - 4bf8: 00174783 lbu a5,1(a4) + 4c06: c789 beqz a5,4c10 <strncat+0x10> + 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 <strncat+0x8> + 4c0e: ffed bnez a5,4c08 <strncat+0x8> 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 <strncat+0x26> - 4c08: a839 j 4c26 <strncat+0x36> + 4c10: 86ba mv a3,a4 + 4c12: 4781 li a5,0 + 4c14: 88ba mv a7,a4 + 4c16: ea01 bnez a2,4c26 <strncat+0x26> + 4c18: a839 j 4c36 <strncat+0x36> 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 <strncat+0x3c> - 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 <strncat+0x3c> + 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 <strncat+0x1a> + 4c32: fe0814e3 bnez a6,4c1a <strncat+0x1a> 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 <strcmp>: +0000000000004c46 <strcmp>: int strcmp(const char *p, const char *q) { while (*p && *p == *q) - 4c36: 00054783 lbu a5,0(a0) - 4c3a: e791 bnez a5,4c46 <strcmp+0x10> - 4c3c: a02d j 4c66 <strcmp+0x30> - 4c3e: 00054783 lbu a5,0(a0) - 4c42: cf89 beqz a5,4c5c <strcmp+0x26> - 4c44: 85b6 mv a1,a3 - 4c46: 0005c703 lbu a4,0(a1) + 4c46: 00054783 lbu a5,0(a0) + 4c4a: e791 bnez a5,4c56 <strcmp+0x10> + 4c4c: a02d j 4c76 <strcmp+0x30> + 4c4e: 00054783 lbu a5,0(a0) + 4c52: cf89 beqz a5,4c6c <strcmp+0x26> + 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 <strcmp+0x8> + 4c60: fef707e3 beq a4,a5,4c4e <strcmp+0x8> } 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 <strcmp+0x22> + 4c76: 0005c703 lbu a4,0(a1) + 4c7a: 4501 li a0,0 + 4c7c: b7f5 j 4c68 <strcmp+0x22> -0000000000004c6e <strncmp>: +0000000000004c7e <strncmp>: int strncmp(const char *s1, const char *s2, size_t n) { if (n == 0) - 4c6e: ca0d beqz a2,4ca0 <strncmp+0x32> + 4c7e: ca0d beqz a2,4cb0 <strncmp+0x32> 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 <strncmp+0x1e> - 4c7c: a80d j 4cae <strncmp+0x40> + 4c80: 00054783 lbu a5,0(a0) + 4c84: 167d addi a2,a2,-1 + 4c86: 00c506b3 add a3,a0,a2 + 4c8a: eb89 bnez a5,4c9c <strncmp+0x1e> + 4c8c: a80d j 4cbe <strncmp+0x40> { if (n == 0 || *s1 == '\0') - 4c7e: 00d50d63 beq a0,a3,4c98 <strncmp+0x2a> + 4c8e: 00d50d63 beq a0,a3,4ca8 <strncmp+0x2a> 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 <strncmp+0x36> - 4c8a: 85b2 mv a1,a2 - 4c8c: 0005c703 lbu a4,0(a1) + 4c98: cf91 beqz a5,4cb4 <strncmp+0x36> + 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 <strncmp+0x10> + 4ca4: fef705e3 beq a4,a5,4c8e <strncmp+0x10> } 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 <strncmp+0x2e> + 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 <strncmp+0x2e> -0000000000004cb6 <strchr>: +0000000000004cc6 <strchr>: char *strchr(const char *s, int c) { while (*s != (char)c) - 4cb6: 0ff5f593 zext.b a1,a1 - 4cba: a019 j 4cc0 <strchr+0xa> + 4cc6: 0ff5f593 zext.b a1,a1 + 4cca: a019 j 4cd0 <strchr+0xa> { if (!*s++) - 4cbc: 0505 addi a0,a0,1 - 4cbe: c791 beqz a5,4cca <strchr+0x14> + 4ccc: 0505 addi a0,a0,1 + 4cce: c791 beqz a5,4cda <strchr+0x14> while (*s != (char)c) - 4cc0: 00054783 lbu a5,0(a0) - 4cc4: feb79ce3 bne a5,a1,4cbc <strchr+0x6> - 4cc8: 8082 ret + 4cd0: 00054783 lbu a5,0(a0) + 4cd4: feb79ce3 bne a5,a1,4ccc <strchr+0x6> + 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 <strrchr>: +0000000000004cde <strrchr>: 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 <strrchr+0x12> + 4ce6: 0007c703 lbu a4,0(a5) + 4cea: 00e59363 bne a1,a4,4cf0 <strrchr+0x12> 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 <strrchr+0x8> + 4cf0: 0785 addi a5,a5,1 + 4cf2: fb75 bnez a4,4ce6 <strrchr+0x8> return (char *)last; } - 4ce4: 8082 ret + 4cf4: 8082 ret -0000000000004ce6 <strstr>: +0000000000004cf6 <strstr>: while (*p) - 4ce6: 0005c883 lbu a7,0(a1) - 4cea: 04088a63 beqz a7,4d3e <strstr+0x58> + 4cf6: 0005c883 lbu a7,0(a1) + 4cfa: 04088a63 beqz a7,4d4e <strstr+0x58> 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 <strstr+0xa> + 4d06: ff6d bnez a4,4d00 <strstr+0xa> 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 <strstr+0x58> + 4d0c: 04b78163 beq a5,a1,4d4e <strstr+0x58> return (char *)haystack; for (; *haystack; haystack++) - 4d00: 00054783 lbu a5,0(a0) - 4d04: cf85 beqz a5,4d3c <strstr+0x56> - 4d06: 187d addi a6,a6,-1 - 4d08: 982a add a6,a6,a0 + 4d10: 00054783 lbu a5,0(a0) + 4d14: cf85 beqz a5,4d4c <strstr+0x56> + 4d16: 187d addi a6,a6,-1 + 4d18: 982a add a6,a6,a0 { if (*haystack != *needle) - 4d0a: 02f89463 bne a7,a5,4d32 <strstr+0x4c> + 4d1a: 02f89463 bne a7,a5,4d42 <strstr+0x4c> 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 <strstr+0x46> - 4d1a: a821 j 4d32 <strstr+0x4c> + 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 <strstr+0x46> + 4d2a: a821 j 4d42 <strstr+0x4c> if (n == 0 || *s1 == '\0') - 4d1c: 03078163 beq a5,a6,4d3e <strstr+0x58> + 4d2c: 03078163 beq a5,a6,4d4e <strstr+0x58> 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 <strstr+0x5a> + 4d3a: cb19 beqz a4,4d50 <strstr+0x5a> 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 <strstr+0x36> + 4d3e: fee607e3 beq a2,a4,4d2c <strstr+0x36> 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 <strstr+0x24> + 4d42: 00154783 lbu a5,1(a0) + 4d46: 0805 addi a6,a6,1 + 4d48: 0505 addi a0,a0,1 + 4d4a: fbe1 bnez a5,4d1a <strstr+0x24> 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 <strstr+0x58> + 4d50: de7d beqz a2,4d4e <strstr+0x58> 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 <strstr+0x24> - 4d4c: bfc5 j 4d3c <strstr+0x56> + 4d52: 00154783 lbu a5,1(a0) + 4d56: 0805 addi a6,a6,1 + 4d58: 0505 addi a0,a0,1 + 4d5a: f3e1 bnez a5,4d1a <strstr+0x24> + 4d5c: bfc5 j 4d4c <strstr+0x56> -0000000000004d4e <strdup>: +0000000000004d5e <strdup>: 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 <strdup+0x40> + 4d6c: cb8d beqz a5,4d9e <strdup+0x40> 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 <strdup+0x12> + 4d76: ffed bnez a5,4d70 <strdup+0x12> 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 <malloc> + 4d7e: 8522 mv a0,s0 + 4d80: f4eff0ef jal 44ce <malloc> if (new_str == NULL) - 4d74: c901 beqz a0,4d84 <strdup+0x36> + 4d84: c901 beqz a0,4d94 <strdup+0x36> 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 <memmove> + 4d92: bbb9 j 4af0 <memmove> } - 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 <strdup+0x20> + 4d9e: 4405 li s0,1 + 4da0: bff9 j 4d7e <strdup+0x20> -0000000000004d92 <strlcpy>: - 4d92: 0005c783 lbu a5,0(a1) +0000000000004da2 <strlcpy>: + 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 <strlcpy+0x46> + 4dae: cf8d beqz a5,4de8 <strlcpy+0x46> 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 <strlcpy+0x10> + 4db8: ff6d bnez a4,4db2 <strlcpy+0x10> 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 <strlcpy+0x3c> - 4db0: e426 sd s1,8(sp) + 4dbe: c285 beqz a3,4dde <strlcpy+0x3c> + 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 <strlcpy+0x32> + 4dca: 00d47563 bgeu s0,a3,4dd4 <strlcpy+0x32> 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 <memmove> + 4dd4: d1dff0ef jal 4af0 <memmove> 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 <strlcpy+0x4c> + 4de8: e219 bnez a2,4dee <strlcpy+0x4c> return (size_t)(p - s); - 4dda: 4401 li s0,0 - 4ddc: bfcd j 4dce <strlcpy+0x3c> - 4dde: e426 sd s1,8(sp) - 4de0: 4401 li s0,0 + 4dea: 4401 li s0,0 + 4dec: bfcd j 4dde <strlcpy+0x3c> + 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 <strlcpy+0x32> + 4df4: 4601 li a2,0 + 4df6: bff9 j 4dd4 <strlcpy+0x32> -0000000000004de8 <strlcat>: +0000000000004df8 <strlcat>: 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 <strlcat+0x7c> + 4e08: c7b5 beqz a5,4e74 <strlcat+0x7c> 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 <strlcat+0x14> + 4e12: ff6d bnez a4,4e0c <strlcat+0x14> 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 <strlcat+0x2c> - 4e0c: a0a1 j 4e54 <strlcat+0x6c> + 4e1a: e609 bnez a2,4e24 <strlcat+0x2c> + 4e1c: a0a1 j 4e64 <strlcat+0x6c> 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 <strlcat+0x6c> - 4e14: 00890533 add a0,s2,s0 - 4e18: 00054783 lbu a5,0(a0) - 4e1c: fbed bnez a5,4e0e <strlcat+0x26> + 4e20: 04860263 beq a2,s0,4e64 <strlcat+0x6c> + 4e24: 00890533 add a0,s2,s0 + 4e28: 00054783 lbu a5,0(a0) + 4e2c: fbed bnez a5,4e1e <strlcat+0x26> if (dst_len == size) - 4e1e: 02860b63 beq a2,s0,4e54 <strlcat+0x6c> - 4e22: e44e sd s3,8(sp) + 4e2e: 02860b63 beq a2,s0,4e64 <strlcat+0x6c> + 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 <strlcat+0x66> + 4e38: 89a6 mv s3,s1 + 4e3a: 02f4f263 bgeu s1,a5,4e5e <strlcat+0x66> 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 <memmove> + 4e42: 864e mv a2,s3 + 4e44: cadff0ef jal 4af0 <memmove> 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 <strlcat+0x46> + 4e5e: fff78993 addi s3,a5,-1 + 4e62: bff1 j 4e3e <strlcat+0x46> } - 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 <strlcat+0x20> + 4e74: 4481 li s1,0 + 4e76: b74d j 4e18 <strlcat+0x20> -0000000000004e68 <strspn>: +0000000000004e78 <strspn>: 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 <strspn+0x30> + 4e78: 00054683 lbu a3,0(a0) + 4e7c: c695 beqz a3,4ea8 <strspn+0x30> { for (a = accept; *a; a++) - 4e6e: 0005c803 lbu a6,0(a1) - 4e72: 862a mv a2,a0 - 4e74: 00080f63 beqz a6,4e92 <strspn+0x2a> - 4e78: 87ae mv a5,a1 - 4e7a: 8742 mv a4,a6 - 4e7c: a021 j 4e84 <strspn+0x1c> - 4e7e: 0007c703 lbu a4,0(a5) - 4e82: cb01 beqz a4,4e92 <strspn+0x2a> - 4e84: 0785 addi a5,a5,1 + 4e7e: 0005c803 lbu a6,0(a1) + 4e82: 862a mv a2,a0 + 4e84: 00080f63 beqz a6,4ea2 <strspn+0x2a> + 4e88: 87ae mv a5,a1 + 4e8a: 8742 mv a4,a6 + 4e8c: a021 j 4e94 <strspn+0x1c> + 4e8e: 0007c703 lbu a4,0(a5) + 4e92: cb01 beqz a4,4ea2 <strspn+0x2a> + 4e94: 0785 addi a5,a5,1 { if (*p == *a) - 4e86: fee69ce3 bne a3,a4,4e7e <strspn+0x16> + 4e96: fee69ce3 bne a3,a4,4e8e <strspn+0x16> 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 <strspn+0x10> + 4ea0: f6e5 bnez a3,4e88 <strspn+0x10> } 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 <strcspn>: +0000000000004eac <strcspn>: 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 <strcspn+0x3c> + 4eac: 00054683 lbu a3,0(a0) + 4eb0: ce85 beqz a3,4ee8 <strcspn+0x3c> { 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 <strcspn+0x32> - 4eac: 87ae mv a5,a1 - 4eae: 8742 mv a4,a6 - 4eb0: a021 j 4eb8 <strcspn+0x1c> - 4eb2: 0007c703 lbu a4,0(a5) - 4eb6: c719 beqz a4,4ec4 <strcspn+0x28> - 4eb8: 0785 addi a5,a5,1 + 4eb8: 02080363 beqz a6,4ede <strcspn+0x32> + 4ebc: 87ae mv a5,a1 + 4ebe: 8742 mv a4,a6 + 4ec0: a021 j 4ec8 <strcspn+0x1c> + 4ec2: 0007c703 lbu a4,0(a5) + 4ec6: c719 beqz a4,4ed4 <strcspn+0x28> + 4ec8: 0785 addi a5,a5,1 { if (*p == *r) - 4eba: fed71ce3 bne a4,a3,4eb2 <strcspn+0x16> + 4eca: fed71ce3 bne a4,a3,4ec2 <strcspn+0x16> 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 <strcspn+0x10> - 4ecc: bfcd j 4ebe <strcspn+0x22> - 4ece: 00164683 lbu a3,1(a2) + 4eda: f2ed bnez a3,4ebc <strcspn+0x10> + 4edc: bfcd j 4ece <strcspn+0x22> + 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 <strcspn+0x32> - 4ed6: b7e5 j 4ebe <strcspn+0x22> - 4ed8: 4501 li a0,0 + 4ee4: feed bnez a3,4ede <strcspn+0x32> + 4ee6: b7e5 j 4ece <strcspn+0x22> + 4ee8: 4501 li a0,0 } - 4eda: 8082 ret + 4eea: 8082 ret -0000000000004edc <strpbrk>: +0000000000004eec <strpbrk>: char *strpbrk(const char *s, const char *accept) { const char *a; while (*s) - 4edc: 00054683 lbu a3,0(a0) - 4ee0: c295 beqz a3,4f04 <strpbrk+0x28> + 4eec: 00054683 lbu a3,0(a0) + 4ef0: c295 beqz a3,4f14 <strpbrk+0x28> { for (a = accept; *a; a++) - 4ee2: 0005c603 lbu a2,0(a1) - 4ee6: c20d beqz a2,4f08 <strpbrk+0x2c> - 4ee8: 87ae mv a5,a1 - 4eea: 8732 mv a4,a2 - 4eec: a021 j 4ef4 <strpbrk+0x18> - 4eee: 0007c703 lbu a4,0(a5) - 4ef2: c709 beqz a4,4efc <strpbrk+0x20> - 4ef4: 0785 addi a5,a5,1 + 4ef2: 0005c603 lbu a2,0(a1) + 4ef6: c20d beqz a2,4f18 <strpbrk+0x2c> + 4ef8: 87ae mv a5,a1 + 4efa: 8732 mv a4,a2 + 4efc: a021 j 4f04 <strpbrk+0x18> + 4efe: 0007c703 lbu a4,0(a5) + 4f02: c709 beqz a4,4f0c <strpbrk+0x20> + 4f04: 0785 addi a5,a5,1 { if (*s == *a) - 4ef6: fed71ce3 bne a4,a3,4eee <strpbrk+0x12> + 4f06: fed71ce3 bne a4,a3,4efe <strpbrk+0x12> 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 <strpbrk+0xc> + 4f12: f2fd bnez a3,4ef8 <strpbrk+0xc> 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 <strpbrk+0x2c> - 4f10: bfd5 j 4f04 <strpbrk+0x28> + 4f1e: feed bnez a3,4f18 <strpbrk+0x2c> + 4f20: bfd5 j 4f14 <strpbrk+0x28> -0000000000004f12 <strtok>: +0000000000004f22 <strtok>: 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 <olds.0> - 4f1a: cd25 beqz a0,4f92 <strtok+0x80> + 4f22: 00003897 auipc a7,0x3 + 4f26: 94e88893 addi a7,a7,-1714 # 7870 <olds.0> + 4f2a: cd25 beqz a0,4fa2 <strtok+0x80> while (*p) - 4f1c: 00054683 lbu a3,0(a0) - 4f20: c295 beqz a3,4f44 <strtok+0x32> + 4f2c: 00054683 lbu a3,0(a0) + 4f30: c295 beqz a3,4f54 <strtok+0x32> for (a = accept; *a; a++) - 4f22: 0005c803 lbu a6,0(a1) - 4f26: 02080463 beqz a6,4f4e <strtok+0x3c> - 4f2a: 87ae mv a5,a1 - 4f2c: 8742 mv a4,a6 - 4f2e: a021 j 4f36 <strtok+0x24> - 4f30: 0007c703 lbu a4,0(a5) - 4f34: cf09 beqz a4,4f4e <strtok+0x3c> - 4f36: 0785 addi a5,a5,1 + 4f32: 0005c803 lbu a6,0(a1) + 4f36: 02080463 beqz a6,4f5e <strtok+0x3c> + 4f3a: 87ae mv a5,a1 + 4f3c: 8742 mv a4,a6 + 4f3e: a021 j 4f46 <strtok+0x24> + 4f40: 0007c703 lbu a4,0(a5) + 4f44: cf09 beqz a4,4f5e <strtok+0x3c> + 4f46: 0785 addi a5,a5,1 if (*p == *a) - 4f38: fee69ce3 bne a3,a4,4f30 <strtok+0x1e> + 4f48: fee69ce3 bne a3,a4,4f40 <strtok+0x1e> 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 <strtok+0x18> - 4f44: 87aa mv a5,a0 + 4f52: f6e5 bnez a3,4f3a <strtok+0x18> + 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 <strtok+0x32> - 4f54: 86aa mv a3,a0 + 4f5e: 00054603 lbu a2,0(a0) + 4f62: da6d beqz a2,4f54 <strtok+0x32> + 4f64: 86aa mv a3,a0 for (a = accept; *a; a++) - 4f56: 04080163 beqz a6,4f98 <strtok+0x86> - 4f5a: 8742 mv a4,a6 - 4f5c: 87ae mv a5,a1 - 4f5e: a021 j 4f66 <strtok+0x54> - 4f60: 0007c703 lbu a4,0(a5) - 4f64: cb19 beqz a4,4f7a <strtok+0x68> - 4f66: 0785 addi a5,a5,1 + 4f66: 04080163 beqz a6,4fa8 <strtok+0x86> + 4f6a: 8742 mv a4,a6 + 4f6c: 87ae mv a5,a1 + 4f6e: a021 j 4f76 <strtok+0x54> + 4f70: 0007c703 lbu a4,0(a5) + 4f74: cb19 beqz a4,4f8a <strtok+0x68> + 4f76: 0785 addi a5,a5,1 if (*s == *a) - 4f68: fee61ce3 bne a2,a4,4f60 <strtok+0x4e> + 4f78: fee61ce3 bne a2,a4,4f70 <strtok+0x4e> 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 <strtok+0x48> - 4f82: 87aa mv a5,a0 + 4f90: fe69 bnez a2,4f6a <strtok+0x48> + 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 <strtok+0x72> + 4f9a: ff6d bnez a4,4f94 <strtok+0x72> 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 <strtok+0xa> + 4fa2: 0008b503 ld a0,0(a7) + 4fa6: b759 j 4f2c <strtok+0xa> 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 <strtok+0x86> - 4fa0: b7cd j 4f82 <strtok+0x70> + 4fae: fe6d bnez a2,4fa8 <strtok+0x86> + 4fb0: b7cd j 4f92 <strtok+0x70> -0000000000004fa2 <strerror>: +0000000000004fb2 <strerror>: char *strerror(int errnum) { - 4fa2: 87aa mv a5,a0 + 4fb2: 87aa mv a5,a0 switch (errnum) - 4fa4: cd09 beqz a0,4fbe <strerror+0x1c> - 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 <strerror+0x24> + 4fb4: cd09 beqz a0,4fce <strerror+0x1c> + 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 <strerror+0x24> 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 <malloc> + 4fd8: cf6ff06f j 44ce <malloc> -0000000000004fcc <_Znam>: +0000000000004fdc <_Znam>: } void *operator new[](unsigned long n) - 4fcc: cf2ff06f j 44be <malloc> + 4fdc: cf2ff06f j 44ce <malloc> -0000000000004fd0 <_ZdlPv>: +0000000000004fe0 <_ZdlPv>: return malloc(n); } void operator delete(void *p) { free(p); - 4fd0: c78ff06f j 4448 <free> + 4fe0: c78ff06f j 4458 <free> -0000000000004fd4 <_ZdaPv>: +0000000000004fe4 <_ZdaPv>: } void operator delete[](void *p) - 4fd4: c74ff06f j 4448 <free> + 4fe4: c74ff06f j 4458 <free> -0000000000004fd8 <_ZdlPvm>: +0000000000004fe8 <_ZdlPvm>: free(p); } void operator delete(void *p, unsigned long) { free(p); - 4fd8: c70ff06f j 4448 <free> + 4fe8: c70ff06f j 4458 <free> -0000000000004fdc <_ZdaPvm>: +0000000000004fec <_ZdaPvm>: } void operator delete[](void *p, unsigned long) - 4fdc: c6cff06f j 4448 <free> + 4fec: c6cff06f j 4458 <free> -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 |
