diff --git a/driver/tests/tex_demo/common.h b/driver/tests/tex_demo/common.h index 8a6e5199..c6129fe3 100644 --- a/driver/tests/tex_demo/common.h +++ b/driver/tests/tex_demo/common.h @@ -5,17 +5,18 @@ struct kernel_arg_t { uint32_t num_tasks; - uint32_t format; - uint32_t filter; - uint32_t wrap; - uint32_t src_logWidth; - uint32_t src_logHeight; - uint32_t src_stride; - uint32_t src_pitch; - uint8_t src_ptr; + uint8_t format; + uint8_t filter; + uint8_t wrap; + uint8_t use_sw; + uint8_t src_logWidth; + uint8_t src_logHeight; + uint8_t src_stride; + uint8_t src_pitch; + uint32_t src_ptr; uint32_t dst_width; uint32_t dst_height; - uint32_t dst_stride; + uint8_t dst_stride; uint32_t dst_pitch; uint32_t dst_ptr; }; diff --git a/driver/tests/tex_demo/kernel.bin b/driver/tests/tex_demo/kernel.bin index 8ca13e3c..293efc26 100755 Binary files a/driver/tests/tex_demo/kernel.bin and b/driver/tests/tex_demo/kernel.bin differ diff --git a/driver/tests/tex_demo/kernel.c b/driver/tests/tex_demo/kernel.c index 39ae83a7..76dd029f 100644 --- a/driver/tests/tex_demo/kernel.c +++ b/driver/tests/tex_demo/kernel.c @@ -3,9 +3,7 @@ #include "common.h" #include "texsw.h" -uint32_t ilog2 (uint32_t value) { - return (uint32_t)(sizeof(uint32_t) * 8UL) - (uint32_t)__builtin_clzl((value << 1) - 1UL) - 1; -} +#define ENABLE_SW struct tile_arg_t { struct kernel_arg_t* state; @@ -30,8 +28,15 @@ void kernel_body(int task_id, void* arg) { for (uint32_t x = 0; x < _arg->tile_width; ++x) { int32_t u = (int32_t)(fu * (1<<20)); int32_t v = (int32_t)(fv * (1<<20)); - //dst_row[x] = tex_sw(state, 0, u, v, 0x0); + #ifdef ENABLE_SW + if (state->use_sw) { + dst_row[x] = tex_sw(state, 0, u, v, 0x0); + } else { + #endif dst_row[x] = vx_tex(0, u, v, 0x0); + #ifdef ENABLE_SW + } + #endif fu += _arg->deltaX; } dst_ptr += state->dst_pitch; diff --git a/driver/tests/tex_demo/kernel.dump b/driver/tests/tex_demo/kernel.dump index 99e62c46..bee26217 100644 --- a/driver/tests/tex_demo/kernel.dump +++ b/driver/tests/tex_demo/kernel.dump @@ -6,68 +6,68 @@ Disassembly of section .init: 80000000 <_start>: 80000000: 00000597 auipc a1,0x0 -80000004: 1bc58593 addi a1,a1,444 # 800001bc +80000004: 6cc58593 addi a1,a1,1740 # 800006cc 80000008: fc102573 csrr a0,0xfc1 8000000c: 00b5106b 0xb5106b -80000010: 1ac000ef jal ra,800001bc +80000010: 6bc000ef jal ra,800006cc 80000014: 00100513 li a0,1 80000018: 0005006b 0x5006b -8000001c: 00002517 auipc a0,0x2 -80000020: bf850513 addi a0,a0,-1032 # 80001c14 -80000024: 00002617 auipc a2,0x2 -80000028: c7060613 addi a2,a2,-912 # 80001c94 <__BSS_END__> +8000001c: 00001517 auipc a0,0x1 +80000020: 42050513 addi a0,a0,1056 # 8000143c +80000024: 00001617 auipc a2,0x1 +80000028: 49860613 addi a2,a2,1176 # 800014bc <__BSS_END__> 8000002c: 40a60633 sub a2,a2,a0 80000030: 00000593 li a1,0 -80000034: 50c000ef jal ra,80000540 -80000038: 00000517 auipc a0,0x0 -8000003c: 41050513 addi a0,a0,1040 # 80000448 <__libc_fini_array> -80000040: 3c0000ef jal ra,80000400 -80000044: 460000ef jal ra,800004a4 <__libc_init_array> +80000034: 21d000ef jal ra,80000a50 +80000038: 00001517 auipc a0,0x1 +8000003c: 92050513 addi a0,a0,-1760 # 80000958 <__libc_fini_array> +80000040: 0d1000ef jal ra,80000910 +80000044: 171000ef jal ra,800009b4 <__libc_init_array> 80000048: 008000ef jal ra,80000050
-8000004c: 3c80006f j 80000414 +8000004c: 0d90006f j 80000924 Disassembly of section .text: 80000050
: 80000050: fd010113 addi sp,sp,-48 -80000054: 02112623 sw ra,44(sp) -80000058: 7ffff7b7 lui a5,0x7ffff -8000005c: 0207c703 lbu a4,32(a5) # 7ffff020 <__stack_size+0x7fffec20> +80000054: 7ffff7b7 lui a5,0x7ffff +80000058: 02112623 sw ra,44(sp) +8000005c: 00c7a703 lw a4,12(a5) # 7ffff00c <__stack_size+0x7fffec0c> 80000060: fd071073 csrw 0xfd0,a4 80000064: fd405073 csrwi 0xfd4,0 -80000068: 0107a703 lw a4,16(a5) +80000068: 0087c703 lbu a4,8(a5) 8000006c: fd571073 csrw 0xfd5,a4 -80000070: 0147a703 lw a4,20(a5) +80000070: 0097c703 lbu a4,9(a5) 80000074: fd671073 csrw 0xfd6,a4 -80000078: 0047a703 lw a4,4(a5) +80000078: 0047c703 lbu a4,4(a5) 8000007c: fd171073 csrw 0xfd1,a4 -80000080: 00c7a683 lw a3,12(a5) +80000080: 0067c683 lbu a3,6(a5) 80000084: 00269713 slli a4,a3,0x2 80000088: 00d76733 or a4,a4,a3 8000008c: fd271073 csrw 0xfd2,a4 -80000090: 0087a703 lw a4,8(a5) +80000090: 0057c703 lbu a4,5(a5) 80000094: fd371073 csrw 0xfd3,a4 -80000098: 0247a703 lw a4,36(a5) -8000009c: 800026b7 lui a3,0x80002 -800000a0: c0c6a787 flw fa5,-1012(a3) # 80001c0c <__stack_top+0x81001c0c> +80000098: 0107a703 lw a4,16(a5) +8000009c: 800016b7 lui a3,0x80001 +800000a0: 4346a707 flw fa4,1076(a3) # 80001434 <__stack_top+0x81001434> 800000a4: 00e12823 sw a4,16(sp) 800000a8: 0007a503 lw a0,0(a5) -800000ac: 0287a683 lw a3,40(a5) -800000b0: d0177753 fcvt.s.wu fa4,a4 +800000ac: 0147a683 lw a3,20(a5) +800000b0: d01777d3 fcvt.s.wu fa5,a4 800000b4: 800005b7 lui a1,0x80000 800000b8: 00a68733 add a4,a3,a0 800000bc: fff70713 addi a4,a4,-1 800000c0: 02a75733 divu a4,a4,a0 800000c4: d016f6d3 fcvt.s.wu fa3,a3 -800000c8: 18e7f753 fdiv.s fa4,fa5,fa4 +800000c8: 18f777d3 fdiv.s fa5,fa4,fa5 800000cc: 00c10613 addi a2,sp,12 800000d0: 11058593 addi a1,a1,272 # 80000110 <__stack_top+0x81000110> 800000d4: 00f12623 sw a5,12(sp) -800000d8: 18d7f7d3 fdiv.s fa5,fa5,fa3 -800000dc: 00e12c27 fsw fa4,24(sp) +800000d8: 18d77753 fdiv.s fa4,fa4,fa3 +800000dc: 00f12c27 fsw fa5,24(sp) 800000e0: 00e12a23 sw a4,20(sp) -800000e4: 00f12e27 fsw fa5,28(sp) -800000e8: 1d0000ef jal ra,800002b8 +800000e4: 00e12e27 fsw fa4,28(sp) +800000e8: 6e0000ef jal ra,800007c8 800000ec: 02c12083 lw ra,44(sp) 800000f0: 03010113 addi sp,sp,48 800000f4: 00008067 ret @@ -75,518 +75,842 @@ Disassembly of section .text: 800000f8 : 800000f8: 00000793 li a5,0 800000fc: 00078863 beqz a5,8000010c -80000100: 80000537 lui a0,0x80000 -80000104: 44850513 addi a0,a0,1096 # 80000448 <__stack_top+0x81000448> -80000108: 2f80006f j 80000400 +80000100: 80001537 lui a0,0x80001 +80000104: 95850513 addi a0,a0,-1704 # 80000958 <__stack_top+0x81000958> +80000108: 0090006f j 80000910 8000010c: 00008067 ret 80000110 : 80000110: 0085a703 lw a4,8(a1) -80000114: 0005a303 lw t1,0(a1) -80000118: 0105a007 flw ft0,16(a1) +80000114: 0005a803 lw a6,0(a1) +80000118: 0105a507 flw fa0,16(a1) 8000011c: 02e507b3 mul a5,a0,a4 -80000120: 03032803 lw a6,48(t1) -80000124: 03432683 lw a3,52(t1) -80000128: 03078833 mul a6,a5,a6 -8000012c: d017f5d3 fcvt.s.wu fa1,a5 -80000130: 1005f5d3 fmul.s fa1,fa1,ft0 -80000134: 00d80833 add a6,a6,a3 -80000138: 06070c63 beqz a4,800001b0 -8000013c: 00c5a607 flw fa2,12(a1) -80000140: f0000553 fmv.w.x fa0,zero -80000144: 80002737 lui a4,0x80002 -80000148: 0045a783 lw a5,4(a1) -8000014c: 10a67553 fmul.s fa0,fa2,fa0 -80000150: c0872687 flw fa3,-1016(a4) # 80001c08 <__stack_top+0x81001c08> -80000154: 00000893 li a7,0 -80000158: 00000513 li a0,0 -8000015c: 04078a63 beqz a5,800001b0 -80000160: 10d5f753 fmul.s fa4,fa1,fa3 -80000164: 20a507d3 fmv.s fa5,fa0 -80000168: 00080693 mv a3,a6 -8000016c: 00000713 li a4,0 -80000170: c0071653 fcvt.w.s a2,fa4,rtz -80000174: 10d7f753 fmul.s fa4,fa5,fa3 -80000178: c00717d3 fcvt.w.s a5,fa4,rtz -8000017c: 50c7d7eb 0x50c7d7eb -80000180: 00f6a023 sw a5,0(a3) -80000184: 0045a783 lw a5,4(a1) -80000188: 00170713 addi a4,a4,1 -8000018c: 00c7f7d3 fadd.s fa5,fa5,fa2 -80000190: 00468693 addi a3,a3,4 -80000194: fef760e3 bltu a4,a5,80000174 -80000198: 03032683 lw a3,48(t1) -8000019c: 0085a703 lw a4,8(a1) -800001a0: 00188893 addi a7,a7,1 -800001a4: 0005f5d3 fadd.s fa1,fa1,ft0 -800001a8: 00d80833 add a6,a6,a3 -800001ac: fae8e8e3 bltu a7,a4,8000015c -800001b0: 00008067 ret +80000120: 01c82683 lw a3,28(a6) +80000124: 02082603 lw a2,32(a6) +80000128: fb010113 addi sp,sp,-80 +8000012c: 04812623 sw s0,76(sp) +80000130: 04912423 sw s1,72(sp) +80000134: 05212223 sw s2,68(sp) +80000138: 05312023 sw s3,64(sp) +8000013c: 03412e23 sw s4,60(sp) +80000140: 03512c23 sw s5,56(sp) +80000144: 02f68533 mul a0,a3,a5 +80000148: d017f5d3 fcvt.s.wu fa1,a5 +8000014c: 03612a23 sw s6,52(sp) +80000150: 03712823 sw s7,48(sp) +80000154: 03812623 sw s8,44(sp) +80000158: 03912423 sw s9,40(sp) +8000015c: 03a12223 sw s10,36(sp) +80000160: 03b12023 sw s11,32(sp) +80000164: 10a5f5d3 fmul.s fa1,fa1,fa0 +80000168: 00c507b3 add a5,a0,a2 +8000016c: 00f12623 sw a5,12(sp) +80000170: 28070063 beqz a4,800003f0 +80000174: 07e10637 lui a2,0x7e10 +80000178: 81f60613 addi a2,a2,-2017 # 7e0f81f <__stack_size+0x7e0f41f> +8000017c: 00c5a687 flw fa3,12(a1) +80000180: f0000053 fmv.w.x ft0,zero +80000184: 800017b7 lui a5,0x80001 +80000188: 00c12a23 sw a2,20(sp) +8000018c: 00010637 lui a2,0x10 +80000190: 4307a087 flw ft1,1072(a5) # 80001430 <__stack_top+0x81001430> +80000194: fff60613 addi a2,a2,-1 # ffff <__stack_size+0xfbff> +80000198: 00c12823 sw a2,16(sp) +8000019c: 1006f053 fmul.s ft0,fa3,ft0 +800001a0: 0f0f1637 lui a2,0xf0f1 +800001a4: f0f60613 addi a2,a2,-241 # f0f0f0f <__stack_size+0xf0f0b0f> +800001a8: 00c12c23 sw a2,24(sp) +800001ac: 0045a783 lw a5,4(a1) +800001b0: ff010637 lui a2,0xff010 +800001b4: 20108653 fmv.s fa2,ft1 +800001b8: 001003b7 lui t2,0x100 +800001bc: 00ff0fb7 lui t6,0xff0 +800001c0: f0060613 addi a2,a2,-256 # ff00ff00 <__stack_top+0xff00> +800001c4: 00000d93 li s11,0 +800001c8: 00080ab7 lui s5,0x80 +800001cc: 0fff8f93 addi t6,t6,255 # ff00ff <__stack_size+0xfefcff> +800001d0: 00c12e23 sw a2,28(sp) +800001d4: fff38d13 addi s10,t2,-1 # fffff <__stack_size+0xffbff> +800001d8: 20078063 beqz a5,800003d8 +800001dc: 1015f7d3 fmul.s fa5,fa1,ft1 +800001e0: 20000753 fmv.s fa4,ft0 +800001e4: 00c12883 lw a7,12(sp) +800001e8: 00000513 li a0,0 +800001ec: 01400a13 li s4,20 +800001f0: c0079ed3 fcvt.w.s t4,fa5,rtz +800001f4: 00100c13 li s8,1 +800001f8: 00400413 li s0,4 +800001fc: 00500b13 li s6,5 +80000200: 00300c93 li s9,3 +80000204: 0200006f j 80000224 +80000208: 71d7d7eb 0x71d7d7eb +8000020c: 00f8a023 sw a5,0(a7) +80000210: 0045a783 lw a5,4(a1) +80000214: 00150513 addi a0,a0,1 +80000218: 00d77753 fadd.s fa4,fa4,fa3 +8000021c: 00488893 addi a7,a7,4 +80000220: 1af57863 bgeu a0,a5,800003d0 +80000224: 10c777d3 fmul.s fa5,fa4,fa2 +80000228: 00784703 lbu a4,7(a6) +8000022c: c00797d3 fcvt.w.s a5,fa5,rtz +80000230: fc070ce3 beqz a4,80000208 +80000234: 00884f03 lbu t5,8(a6) +80000238: 00984e03 lbu t3,9(a6) +8000023c: 00684683 lbu a3,6(a6) +80000240: 41ead933 sra s2,s5,t5 +80000244: 41cad733 sra a4,s5,t3 +80000248: 00484303 lbu t1,4(a6) +8000024c: 00584b83 lbu s7,5(a6) +80000250: 00c82283 lw t0,12(a6) +80000254: 41278633 sub a2,a5,s2 +80000258: 41ea04b3 sub s1,s4,t5 +8000025c: 41ca0e33 sub t3,s4,t3 +80000260: 40ee89b3 sub s3,t4,a4 +80000264: 2f868e63 beq a3,s8,80000560 +80000268: fff64693 not a3,a2 +8000026c: 41f6d693 srai a3,a3,0x1f +80000270: 00d67633 and a2,a2,a3 +80000274: 00764463 blt a2,t2,8000027c +80000278: fff38613 addi a2,t2,-1 +8000027c: fff9c693 not a3,s3 +80000280: 41f6d693 srai a3,a3,0x1f +80000284: 00d9f6b3 and a3,s3,a3 +80000288: 40965633 sra a2,a2,s1 +8000028c: 0076c463 blt a3,t2,80000294 +80000290: fff38693 addi a3,t2,-1 +80000294: 41c6d6b3 sra a3,a3,t3 +80000298: 2e0b8863 beqz s7,80000588 +8000029c: 012787b3 add a5,a5,s2 +800002a0: fff7c913 not s2,a5 +800002a4: 41f95913 srai s2,s2,0x1f +800002a8: 0127f7b3 and a5,a5,s2 +800002ac: 0077c463 blt a5,t2,800002b4 +800002b0: fff38793 addi a5,t2,-1 +800002b4: 00ee8733 add a4,t4,a4 +800002b8: fff74913 not s2,a4 +800002bc: 41f95913 srai s2,s2,0x1f +800002c0: 01277733 and a4,a4,s2 +800002c4: 00774463 blt a4,t2,800002cc +800002c8: fff38713 addi a4,t2,-1 +800002cc: 41c75733 sra a4,a4,t3 +800002d0: 4097d7b3 sra a5,a5,s1 +800002d4: 01e69e33 sll t3,a3,t5 +800002d8: 01e71f33 sll t5,a4,t5 +800002dc: 00ce09b3 add s3,t3,a2 +800002e0: 00cf0bb3 add s7,t5,a2 +800002e4: 01c78e33 add t3,a5,t3 +800002e8: 01e787b3 add a5,a5,t5 +800002ec: 00299993 slli s3,s3,0x2 +800002f0: 002e1e13 slli t3,t3,0x2 +800002f4: 002b9b93 slli s7,s7,0x2 +800002f8: 00279793 slli a5,a5,0x2 +800002fc: 01c28e33 add t3,t0,t3 +80000300: 01728bb3 add s7,t0,s7 +80000304: 00f287b3 add a5,t0,a5 +80000308: 013289b3 add s3,t0,s3 +8000030c: 000e2703 lw a4,0(t3) +80000310: 0009a283 lw t0,0(s3) +80000314: 000bae03 lw t3,0(s7) +80000318: 0007a783 lw a5,0(a5) +8000031c: 0ff67613 andi a2,a2,255 +80000320: 0ff6f693 andi a3,a3,255 +80000324: 2e830863 beq t1,s0,80000614 +80000328: 1e646263 bltu s0,t1,8000050c +8000032c: 11931c63 bne t1,s9,80000444 +80000330: 00829f13 slli t5,t0,0x8 +80000334: 00871493 slli s1,a4,0x8 +80000338: 008e1913 slli s2,t3,0x8 +8000033c: 00879993 slli s3,a5,0x8 +80000340: 005f62b3 or t0,t5,t0 +80000344: 00e4e733 or a4,s1,a4 +80000348: 01c96e33 or t3,s2,t3 +8000034c: 00f9e7b3 or a5,s3,a5 +80000350: 01f2f2b3 and t0,t0,t6 +80000354: 01fe7e33 and t3,t3,t6 +80000358: 01f77733 and a4,a4,t6 +8000035c: 01f7f7b3 and a5,a5,t6 +80000360: 40570733 sub a4,a4,t0 +80000364: 41c787b3 sub a5,a5,t3 +80000368: 02c70f33 mul t5,a4,a2 +8000036c: 00000713 li a4,0 +80000370: 02c787b3 mul a5,a5,a2 +80000374: 408f5f13 srai t5,t5,0x8 +80000378: 005f0f33 add t5,t5,t0 +8000037c: 01ff7f33 and t5,t5,t6 +80000380: 4087d793 srai a5,a5,0x8 +80000384: 01c787b3 add a5,a5,t3 +80000388: 01f7f2b3 and t0,a5,t6 +8000038c: 41e282b3 sub t0,t0,t5 +80000390: 02d286b3 mul a3,t0,a3 +80000394: 4086d293 srai t0,a3,0x8 +80000398: 01e28f33 add t5,t0,t5 +8000039c: 01ff72b3 and t0,t5,t6 +800003a0: 00200793 li a5,2 +800003a4: 0867f263 bgeu a5,t1,80000428 +800003a8: 4082d793 srai a5,t0,0x8 +800003ac: 0057e2b3 or t0,a5,t0 +800003b0: 01012783 lw a5,16(sp) +800003b4: 00f2f2b3 and t0,t0,a5 +800003b8: 0058a023 sw t0,0(a7) +800003bc: 0045a783 lw a5,4(a1) +800003c0: 00150513 addi a0,a0,1 +800003c4: 00d77753 fadd.s fa4,fa4,fa3 +800003c8: 00488893 addi a7,a7,4 +800003cc: e4f56ce3 bltu a0,a5,80000224 +800003d0: 01c82683 lw a3,28(a6) +800003d4: 0085a703 lw a4,8(a1) +800003d8: 00c12603 lw a2,12(sp) +800003dc: 001d8d93 addi s11,s11,1 +800003e0: 00a5f5d3 fadd.s fa1,fa1,fa0 +800003e4: 00d60633 add a2,a2,a3 +800003e8: 00c12623 sw a2,12(sp) +800003ec: deede6e3 bltu s11,a4,800001d8 +800003f0: 04c12403 lw s0,76(sp) +800003f4: 04812483 lw s1,72(sp) +800003f8: 04412903 lw s2,68(sp) +800003fc: 04012983 lw s3,64(sp) +80000400: 03c12a03 lw s4,60(sp) +80000404: 03812a83 lw s5,56(sp) +80000408: 03412b03 lw s6,52(sp) +8000040c: 03012b83 lw s7,48(sp) +80000410: 02c12c03 lw s8,44(sp) +80000414: 02812c83 lw s9,40(sp) +80000418: 02412d03 lw s10,36(sp) +8000041c: 02012d83 lw s11,32(sp) +80000420: 05010113 addi sp,sp,80 +80000424: 00008067 ret +80000428: f80318e3 bnez t1,800003b8 +8000042c: 01c12783 lw a5,28(sp) +80000430: 00871713 slli a4,a4,0x8 +80000434: 00f77733 and a4,a4,a5 +80000438: 00e2e2b3 or t0,t0,a4 +8000043c: 0058a023 sw t0,0(a7) +80000440: f7dff06f j 800003bc +80000444: 18031663 bnez t1,800005d0 +80000448: 4082df13 srai t5,t0,0x8 +8000044c: 40875913 srai s2,a4,0x8 +80000450: 408e5493 srai s1,t3,0x8 +80000454: 4087d993 srai s3,a5,0x8 +80000458: 01ff7f33 and t5,t5,t6 +8000045c: 01f97933 and s2,s2,t6 +80000460: 01f4f4b3 and s1,s1,t6 +80000464: 41e90933 sub s2,s2,t5 +80000468: 01f9f9b3 and s3,s3,t6 +8000046c: 409989b3 sub s3,s3,s1 +80000470: 02c90933 mul s2,s2,a2 +80000474: 01f2f2b3 and t0,t0,t6 +80000478: 01f77733 and a4,a4,t6 +8000047c: 40570bb3 sub s7,a4,t0 +80000480: 01fe7e33 and t3,t3,t6 +80000484: 01f7f7b3 and a5,a5,t6 +80000488: 02c989b3 mul s3,s3,a2 +8000048c: 40895713 srai a4,s2,0x8 +80000490: 01e70f33 add t5,a4,t5 +80000494: 01ff7f33 and t5,t5,t6 +80000498: 4089d713 srai a4,s3,0x8 +8000049c: 00970733 add a4,a4,s1 +800004a0: 01f77733 and a4,a4,t6 +800004a4: 41e70733 sub a4,a4,t5 +800004a8: 02cb8bb3 mul s7,s7,a2 +800004ac: 02d704b3 mul s1,a4,a3 +800004b0: 408bd713 srai a4,s7,0x8 +800004b4: 005702b3 add t0,a4,t0 +800004b8: 01f2f2b3 and t0,t0,t6 +800004bc: 4084d713 srai a4,s1,0x8 +800004c0: 01e70733 add a4,a4,t5 +800004c4: 41c787b3 sub a5,a5,t3 +800004c8: 02c787b3 mul a5,a5,a2 +800004cc: 4087d793 srai a5,a5,0x8 +800004d0: 01c787b3 add a5,a5,t3 +800004d4: 01f7f7b3 and a5,a5,t6 +800004d8: 405787b3 sub a5,a5,t0 +800004dc: 02d786b3 mul a3,a5,a3 +800004e0: 4086d693 srai a3,a3,0x8 +800004e4: 005682b3 add t0,a3,t0 +800004e8: 01f2f2b3 and t0,t0,t6 +800004ec: ea647ae3 bgeu s0,t1,800003a0 +800004f0: f3631ee3 bne t1,s6,8000042c +800004f4: 40c2d793 srai a5,t0,0xc +800004f8: 0057e2b3 or t0,a5,t0 +800004fc: 01012783 lw a5,16(sp) +80000500: 00f2f2b3 and t0,t0,a5 +80000504: 0058a023 sw t0,0(a7) +80000508: eb5ff06f j 800003bc +8000050c: f3631ee3 bne t1,s6,80000448 +80000510: 01812903 lw s2,24(sp) +80000514: 00c29f13 slli t5,t0,0xc +80000518: 00c71493 slli s1,a4,0xc +8000051c: 005f62b3 or t0,t5,t0 +80000520: 00e4e733 or a4,s1,a4 +80000524: 0122f2b3 and t0,t0,s2 +80000528: 01277733 and a4,a4,s2 +8000052c: 40570f33 sub t5,a4,t0 +80000530: 02cf04b3 mul s1,t5,a2 +80000534: 00c79f13 slli t5,a5,0xc +80000538: 00ce1713 slli a4,t3,0xc +8000053c: 00ff67b3 or a5,t5,a5 +80000540: 01c76e33 or t3,a4,t3 +80000544: 012e7e33 and t3,t3,s2 +80000548: 0127f7b3 and a5,a5,s2 +8000054c: 00000713 li a4,0 +80000550: 4084df13 srai t5,s1,0x8 +80000554: 005f02b3 add t0,t5,t0 +80000558: 01f2f2b3 and t0,t0,t6 +8000055c: f69ff06f j 800004c4 +80000560: 01a67633 and a2,a2,s10 +80000564: 01a9f6b3 and a3,s3,s10 +80000568: 40965633 sra a2,a2,s1 +8000056c: 41c6d6b3 sra a3,a3,t3 +80000570: 000b8c63 beqz s7,80000588 +80000574: 012787b3 add a5,a5,s2 +80000578: 00ee8733 add a4,t4,a4 +8000057c: 01a7f7b3 and a5,a5,s10 +80000580: 01a77733 and a4,a4,s10 +80000584: d49ff06f j 800002cc +80000588: 01e696b3 sll a3,a3,t5 +8000058c: 00c686b3 add a3,a3,a2 +80000590: 00269693 slli a3,a3,0x2 +80000594: 00d286b3 add a3,t0,a3 +80000598: 0006a283 lw t0,0(a3) +8000059c: 10830063 beq t1,s0,8000069c +800005a0: 00646c63 bltu s0,t1,800005b8 +800005a4: e1931ae3 bne t1,s9,800003b8 +800005a8: 00829793 slli a5,t0,0x8 +800005ac: 0057e2b3 or t0,a5,t0 +800005b0: 01f2f2b3 and t0,t0,t6 +800005b4: df5ff06f j 800003a8 +800005b8: e16310e3 bne t1,s6,800003b8 +800005bc: 00c29793 slli a5,t0,0xc +800005c0: 0057e2b3 or t0,a5,t0 +800005c4: 01812783 lw a5,24(sp) +800005c8: 00f2f2b3 and t0,t0,a5 +800005cc: f29ff06f j 800004f4 +800005d0: 40570733 sub a4,a4,t0 +800005d4: 41c787b3 sub a5,a5,t3 +800005d8: 02c70f33 mul t5,a4,a2 +800005dc: 00000713 li a4,0 +800005e0: 02c78633 mul a2,a5,a2 +800005e4: 408f5f13 srai t5,t5,0x8 +800005e8: 005f0f33 add t5,t5,t0 +800005ec: 01ff7f33 and t5,t5,t6 +800005f0: 40865613 srai a2,a2,0x8 +800005f4: 01c60633 add a2,a2,t3 +800005f8: 01f672b3 and t0,a2,t6 +800005fc: 41e282b3 sub t0,t0,t5 +80000600: 02d286b3 mul a3,t0,a3 +80000604: 4086d293 srai t0,a3,0x8 +80000608: 01e28f33 add t5,t0,t5 +8000060c: 01ff72b3 and t0,t5,t6 +80000610: eddff06f j 800004ec +80000614: 01029313 slli t1,t0,0x10 +80000618: 005362b3 or t0,t1,t0 +8000061c: 01412303 lw t1,20(sp) +80000620: 01071f13 slli t5,a4,0x10 +80000624: 010e1493 slli s1,t3,0x10 +80000628: 01079913 slli s2,a5,0x10 +8000062c: 00ef6733 or a4,t5,a4 +80000630: 01c4ee33 or t3,s1,t3 +80000634: 00f967b3 or a5,s2,a5 +80000638: 0062f2b3 and t0,t0,t1 +8000063c: 006e7e33 and t3,t3,t1 +80000640: 00677733 and a4,a4,t1 +80000644: 0067f7b3 and a5,a5,t1 +80000648: 40570733 sub a4,a4,t0 +8000064c: 41c787b3 sub a5,a5,t3 +80000650: 02c70733 mul a4,a4,a2 +80000654: 02c787b3 mul a5,a5,a2 +80000658: 40875713 srai a4,a4,0x8 +8000065c: 005702b3 add t0,a4,t0 +80000660: 01f2f2b3 and t0,t0,t6 +80000664: 4087d793 srai a5,a5,0x8 +80000668: 01c787b3 add a5,a5,t3 +8000066c: 01f7f7b3 and a5,a5,t6 +80000670: 405787b3 sub a5,a5,t0 +80000674: 02d786b3 mul a3,a5,a3 +80000678: 4086d693 srai a3,a3,0x8 +8000067c: 005682b3 add t0,a3,t0 +80000680: 01f2f2b3 and t0,t0,t6 +80000684: 4102d793 srai a5,t0,0x10 +80000688: 0057e2b3 or t0,a5,t0 +8000068c: 01012783 lw a5,16(sp) +80000690: 00f2f2b3 and t0,t0,a5 +80000694: 0058a023 sw t0,0(a7) +80000698: d25ff06f j 800003bc +8000069c: 01029793 slli a5,t0,0x10 +800006a0: 0057e2b3 or t0,a5,t0 +800006a4: 01412783 lw a5,20(sp) +800006a8: 00f2f2b3 and t0,t0,a5 +800006ac: 4102d793 srai a5,t0,0x10 +800006b0: 0057e2b3 or t0,a5,t0 +800006b4: 01012783 lw a5,16(sp) +800006b8: 00f2f2b3 and t0,t0,a5 +800006bc: 0058a023 sw t0,0(a7) +800006c0: cfdff06f j 800003bc -800001b4 <_exit>: -800001b4: 00000513 li a0,0 -800001b8: 0005006b 0x5006b +800006c4 <_exit>: +800006c4: 00000513 li a0,0 +800006c8: 0005006b 0x5006b -800001bc : -800001bc: fc002573 csrr a0,0xfc0 -800001c0: 0005006b 0x5006b -800001c4: 00002197 auipc gp,0x2 -800001c8: e1c18193 addi gp,gp,-484 # 80001fe0 <__global_pointer> -800001cc: 7f000117 auipc sp,0x7f000 -800001d0: e3410113 addi sp,sp,-460 # ff000000 <__stack_top> -800001d4: 40000593 li a1,1024 -800001d8: cc102673 csrr a2,0xcc1 -800001dc: 02c585b3 mul a1,a1,a2 -800001e0: 40b10133 sub sp,sp,a1 -800001e4: cc3026f3 csrr a3,0xcc3 -800001e8: 00068663 beqz a3,800001f4 -800001ec: 00000513 li a0,0 -800001f0: 0005006b 0x5006b +800006cc : +800006cc: fc002573 csrr a0,0xfc0 +800006d0: 0005006b 0x5006b +800006d4: 00001197 auipc gp,0x1 +800006d8: 13418193 addi gp,gp,308 # 80001808 <__global_pointer> +800006dc: 7f000117 auipc sp,0x7f000 +800006e0: 92410113 addi sp,sp,-1756 # ff000000 <__stack_top> +800006e4: 40000593 li a1,1024 +800006e8: cc102673 csrr a2,0xcc1 +800006ec: 02c585b3 mul a1,a1,a2 +800006f0: 40b10133 sub sp,sp,a1 +800006f4: cc3026f3 csrr a3,0xcc3 +800006f8: 00068663 beqz a3,80000704 +800006fc: 00000513 li a0,0 +80000700: 0005006b 0x5006b -800001f4 : -800001f4: 00008067 ret +80000704 : +80000704: 00008067 ret -800001f8 : -800001f8: fe010113 addi sp,sp,-32 -800001fc: 00112e23 sw ra,28(sp) -80000200: 00812c23 sw s0,24(sp) -80000204: 00912a23 sw s1,20(sp) -80000208: 01212823 sw s2,16(sp) -8000020c: 01312623 sw s3,12(sp) -80000210: fc0027f3 csrr a5,0xfc0 -80000214: 0007806b 0x7806b -80000218: cc5026f3 csrr a3,0xcc5 -8000021c: cc3029f3 csrr s3,0xcc3 -80000220: cc002773 csrr a4,0xcc0 -80000224: fc002673 csrr a2,0xfc0 -80000228: 800027b7 lui a5,0x80002 -8000022c: 00269693 slli a3,a3,0x2 -80000230: c1478793 addi a5,a5,-1004 # 80001c14 <__stack_top+0x81001c14> -80000234: 00d787b3 add a5,a5,a3 -80000238: 0007a483 lw s1,0(a5) -8000023c: 0104a403 lw s0,16(s1) -80000240: 00c4a683 lw a3,12(s1) -80000244: 0089a933 slt s2,s3,s0 -80000248: 00040793 mv a5,s0 -8000024c: 00d90933 add s2,s2,a3 -80000250: 03368433 mul s0,a3,s3 -80000254: 00f9d463 bge s3,a5,8000025c -80000258: 00098793 mv a5,s3 -8000025c: 00f40433 add s0,s0,a5 -80000260: 0084a683 lw a3,8(s1) -80000264: 02c40433 mul s0,s0,a2 -80000268: 02e907b3 mul a5,s2,a4 -8000026c: 00d40433 add s0,s0,a3 -80000270: 00f40433 add s0,s0,a5 -80000274: 00890933 add s2,s2,s0 -80000278: 01245e63 bge s0,s2,80000294 -8000027c: 0004a783 lw a5,0(s1) -80000280: 0044a583 lw a1,4(s1) -80000284: 00040513 mv a0,s0 -80000288: 00140413 addi s0,s0,1 -8000028c: 000780e7 jalr a5 -80000290: fe8916e3 bne s2,s0,8000027c -80000294: 0019b993 seqz s3,s3 -80000298: 0009806b 0x9806b -8000029c: 01c12083 lw ra,28(sp) -800002a0: 01812403 lw s0,24(sp) -800002a4: 01412483 lw s1,20(sp) -800002a8: 01012903 lw s2,16(sp) -800002ac: 00c12983 lw s3,12(sp) -800002b0: 02010113 addi sp,sp,32 -800002b4: 00008067 ret +80000708 : +80000708: fe010113 addi sp,sp,-32 +8000070c: 00112e23 sw ra,28(sp) +80000710: 00812c23 sw s0,24(sp) +80000714: 00912a23 sw s1,20(sp) +80000718: 01212823 sw s2,16(sp) +8000071c: 01312623 sw s3,12(sp) +80000720: fc0027f3 csrr a5,0xfc0 +80000724: 0007806b 0x7806b +80000728: cc5026f3 csrr a3,0xcc5 +8000072c: cc3029f3 csrr s3,0xcc3 +80000730: cc002773 csrr a4,0xcc0 +80000734: fc002673 csrr a2,0xfc0 +80000738: 800017b7 lui a5,0x80001 +8000073c: 00269693 slli a3,a3,0x2 +80000740: 43c78793 addi a5,a5,1084 # 8000143c <__stack_top+0x8100143c> +80000744: 00d787b3 add a5,a5,a3 +80000748: 0007a483 lw s1,0(a5) +8000074c: 0104a403 lw s0,16(s1) +80000750: 00c4a683 lw a3,12(s1) +80000754: 0089a933 slt s2,s3,s0 +80000758: 00040793 mv a5,s0 +8000075c: 00d90933 add s2,s2,a3 +80000760: 03368433 mul s0,a3,s3 +80000764: 00f9d463 bge s3,a5,8000076c +80000768: 00098793 mv a5,s3 +8000076c: 00f40433 add s0,s0,a5 +80000770: 0084a683 lw a3,8(s1) +80000774: 02c40433 mul s0,s0,a2 +80000778: 02e907b3 mul a5,s2,a4 +8000077c: 00d40433 add s0,s0,a3 +80000780: 00f40433 add s0,s0,a5 +80000784: 00890933 add s2,s2,s0 +80000788: 01245e63 bge s0,s2,800007a4 +8000078c: 0004a783 lw a5,0(s1) +80000790: 0044a583 lw a1,4(s1) +80000794: 00040513 mv a0,s0 +80000798: 00140413 addi s0,s0,1 +8000079c: 000780e7 jalr a5 +800007a0: fe8916e3 bne s2,s0,8000078c +800007a4: 0019b993 seqz s3,s3 +800007a8: 0009806b 0x9806b +800007ac: 01c12083 lw ra,28(sp) +800007b0: 01812403 lw s0,24(sp) +800007b4: 01412483 lw s1,20(sp) +800007b8: 01012903 lw s2,16(sp) +800007bc: 00c12983 lw s3,12(sp) +800007c0: 02010113 addi sp,sp,32 +800007c4: 00008067 ret -800002b8 : -800002b8: fc010113 addi sp,sp,-64 -800002bc: 02112e23 sw ra,60(sp) -800002c0: 02812c23 sw s0,56(sp) -800002c4: 02912a23 sw s1,52(sp) -800002c8: 03212823 sw s2,48(sp) -800002cc: 03312623 sw s3,44(sp) -800002d0: fc2026f3 csrr a3,0xfc2 -800002d4: fc102873 csrr a6,0xfc1 -800002d8: fc002473 csrr s0,0xfc0 -800002dc: cc5027f3 csrr a5,0xcc5 -800002e0: 01f00713 li a4,31 -800002e4: 0cf74463 blt a4,a5,800003ac -800002e8: 030408b3 mul a7,s0,a6 -800002ec: 00100713 li a4,1 -800002f0: 00a8d463 bge a7,a0,800002f8 -800002f4: 03154733 div a4,a0,a7 -800002f8: 0ce6c863 blt a3,a4,800003c8 -800002fc: 0ae7d863 bge a5,a4,800003ac -80000300: fff68693 addi a3,a3,-1 -80000304: 02e54333 div t1,a0,a4 -80000308: 00030893 mv a7,t1 -8000030c: 00f69663 bne a3,a5,80000318 -80000310: 02e56533 rem a0,a0,a4 -80000314: 006508b3 add a7,a0,t1 -80000318: 0288c4b3 div s1,a7,s0 -8000031c: 0288e933 rem s2,a7,s0 -80000320: 0b04ca63 blt s1,a6,800003d4 -80000324: 00100693 li a3,1 -80000328: 0304c733 div a4,s1,a6 -8000032c: 00070663 beqz a4,80000338 -80000330: 00070693 mv a3,a4 -80000334: 0304e733 rem a4,s1,a6 -80000338: 800029b7 lui s3,0x80002 -8000033c: c1498993 addi s3,s3,-1004 # 80001c14 <__stack_top+0x81001c14> -80000340: 00e12e23 sw a4,28(sp) -80000344: 00c10713 addi a4,sp,12 -80000348: 00b12623 sw a1,12(sp) -8000034c: 00c12823 sw a2,16(sp) -80000350: 00d12c23 sw a3,24(sp) -80000354: 02f30333 mul t1,t1,a5 -80000358: 00279793 slli a5,a5,0x2 -8000035c: 00f987b3 add a5,s3,a5 -80000360: 00e7a023 sw a4,0(a5) -80000364: 00612a23 sw t1,20(sp) -80000368: 06904c63 bgtz s1,800003e0 -8000036c: 04090063 beqz s2,800003ac -80000370: 02848433 mul s0,s1,s0 -80000374: 00812a23 sw s0,20(sp) -80000378: 0009006b 0x9006b -8000037c: cc5027f3 csrr a5,0xcc5 -80000380: cc202573 csrr a0,0xcc2 -80000384: 00279793 slli a5,a5,0x2 -80000388: 00f989b3 add s3,s3,a5 -8000038c: 0009a783 lw a5,0(s3) -80000390: 0087a683 lw a3,8(a5) -80000394: 0007a703 lw a4,0(a5) -80000398: 0047a583 lw a1,4(a5) -8000039c: 00d50533 add a0,a0,a3 -800003a0: 000700e7 jalr a4 -800003a4: 00100793 li a5,1 -800003a8: 0007806b 0x7806b -800003ac: 03c12083 lw ra,60(sp) -800003b0: 03812403 lw s0,56(sp) -800003b4: 03412483 lw s1,52(sp) -800003b8: 03012903 lw s2,48(sp) -800003bc: 02c12983 lw s3,44(sp) -800003c0: 04010113 addi sp,sp,64 -800003c4: 00008067 ret -800003c8: 00068713 mv a4,a3 -800003cc: f2e7cae3 blt a5,a4,80000300 -800003d0: fddff06f j 800003ac -800003d4: 00000713 li a4,0 -800003d8: 00100693 li a3,1 -800003dc: f5dff06f j 80000338 -800003e0: 00048713 mv a4,s1 -800003e4: 00985463 bge a6,s1,800003ec -800003e8: 00080713 mv a4,a6 -800003ec: 800007b7 lui a5,0x80000 -800003f0: 1f878793 addi a5,a5,504 # 800001f8 <__stack_top+0x810001f8> -800003f4: 00f7106b 0xf7106b -800003f8: e01ff0ef jal ra,800001f8 -800003fc: f71ff06f j 8000036c +800007c8 : +800007c8: fc010113 addi sp,sp,-64 +800007cc: 02112e23 sw ra,60(sp) +800007d0: 02812c23 sw s0,56(sp) +800007d4: 02912a23 sw s1,52(sp) +800007d8: 03212823 sw s2,48(sp) +800007dc: 03312623 sw s3,44(sp) +800007e0: fc2026f3 csrr a3,0xfc2 +800007e4: fc102873 csrr a6,0xfc1 +800007e8: fc002473 csrr s0,0xfc0 +800007ec: cc5027f3 csrr a5,0xcc5 +800007f0: 01f00713 li a4,31 +800007f4: 0cf74463 blt a4,a5,800008bc +800007f8: 030408b3 mul a7,s0,a6 +800007fc: 00100713 li a4,1 +80000800: 00a8d463 bge a7,a0,80000808 +80000804: 03154733 div a4,a0,a7 +80000808: 0ce6c863 blt a3,a4,800008d8 +8000080c: 0ae7d863 bge a5,a4,800008bc +80000810: fff68693 addi a3,a3,-1 +80000814: 02e54333 div t1,a0,a4 +80000818: 00030893 mv a7,t1 +8000081c: 00f69663 bne a3,a5,80000828 +80000820: 02e56533 rem a0,a0,a4 +80000824: 006508b3 add a7,a0,t1 +80000828: 0288c4b3 div s1,a7,s0 +8000082c: 0288e933 rem s2,a7,s0 +80000830: 0b04ca63 blt s1,a6,800008e4 +80000834: 00100693 li a3,1 +80000838: 0304c733 div a4,s1,a6 +8000083c: 00070663 beqz a4,80000848 +80000840: 00070693 mv a3,a4 +80000844: 0304e733 rem a4,s1,a6 +80000848: 800019b7 lui s3,0x80001 +8000084c: 43c98993 addi s3,s3,1084 # 8000143c <__stack_top+0x8100143c> +80000850: 00e12e23 sw a4,28(sp) +80000854: 00c10713 addi a4,sp,12 +80000858: 00b12623 sw a1,12(sp) +8000085c: 00c12823 sw a2,16(sp) +80000860: 00d12c23 sw a3,24(sp) +80000864: 02f30333 mul t1,t1,a5 +80000868: 00279793 slli a5,a5,0x2 +8000086c: 00f987b3 add a5,s3,a5 +80000870: 00e7a023 sw a4,0(a5) +80000874: 00612a23 sw t1,20(sp) +80000878: 06904c63 bgtz s1,800008f0 +8000087c: 04090063 beqz s2,800008bc +80000880: 02848433 mul s0,s1,s0 +80000884: 00812a23 sw s0,20(sp) +80000888: 0009006b 0x9006b +8000088c: cc5027f3 csrr a5,0xcc5 +80000890: cc202573 csrr a0,0xcc2 +80000894: 00279793 slli a5,a5,0x2 +80000898: 00f989b3 add s3,s3,a5 +8000089c: 0009a783 lw a5,0(s3) +800008a0: 0087a683 lw a3,8(a5) +800008a4: 0007a703 lw a4,0(a5) +800008a8: 0047a583 lw a1,4(a5) +800008ac: 00d50533 add a0,a0,a3 +800008b0: 000700e7 jalr a4 +800008b4: 00100793 li a5,1 +800008b8: 0007806b 0x7806b +800008bc: 03c12083 lw ra,60(sp) +800008c0: 03812403 lw s0,56(sp) +800008c4: 03412483 lw s1,52(sp) +800008c8: 03012903 lw s2,48(sp) +800008cc: 02c12983 lw s3,44(sp) +800008d0: 04010113 addi sp,sp,64 +800008d4: 00008067 ret +800008d8: 00068713 mv a4,a3 +800008dc: f2e7cae3 blt a5,a4,80000810 +800008e0: fddff06f j 800008bc +800008e4: 00000713 li a4,0 +800008e8: 00100693 li a3,1 +800008ec: f5dff06f j 80000848 +800008f0: 00048713 mv a4,s1 +800008f4: 00985463 bge a6,s1,800008fc +800008f8: 00080713 mv a4,a6 +800008fc: 800007b7 lui a5,0x80000 +80000900: 70878793 addi a5,a5,1800 # 80000708 <__stack_top+0x81000708> +80000904: 00f7106b 0xf7106b +80000908: e01ff0ef jal ra,80000708 +8000090c: f71ff06f j 8000087c -80000400 : -80000400: 00050593 mv a1,a0 -80000404: 00000693 li a3,0 -80000408: 00000613 li a2,0 -8000040c: 00000513 li a0,0 -80000410: 20c0006f j 8000061c <__register_exitproc> +80000910 : +80000910: 00050593 mv a1,a0 +80000914: 00000693 li a3,0 +80000918: 00000613 li a2,0 +8000091c: 00000513 li a0,0 +80000920: 20c0006f j 80000b2c <__register_exitproc> -80000414 : -80000414: ff010113 addi sp,sp,-16 -80000418: 00000593 li a1,0 -8000041c: 00812423 sw s0,8(sp) -80000420: 00112623 sw ra,12(sp) -80000424: 00050413 mv s0,a0 -80000428: 290000ef jal ra,800006b8 <__call_exitprocs> -8000042c: 800027b7 lui a5,0x80002 -80000430: c107a503 lw a0,-1008(a5) # 80001c10 <__stack_top+0x81001c10> -80000434: 03c52783 lw a5,60(a0) -80000438: 00078463 beqz a5,80000440 -8000043c: 000780e7 jalr a5 -80000440: 00040513 mv a0,s0 -80000444: d71ff0ef jal ra,800001b4 <_exit> +80000924 : +80000924: ff010113 addi sp,sp,-16 +80000928: 00000593 li a1,0 +8000092c: 00812423 sw s0,8(sp) +80000930: 00112623 sw ra,12(sp) +80000934: 00050413 mv s0,a0 +80000938: 290000ef jal ra,80000bc8 <__call_exitprocs> +8000093c: 800017b7 lui a5,0x80001 +80000940: 4387a503 lw a0,1080(a5) # 80001438 <__stack_top+0x81001438> +80000944: 03c52783 lw a5,60(a0) +80000948: 00078463 beqz a5,80000950 +8000094c: 000780e7 jalr a5 +80000950: 00040513 mv a0,s0 +80000954: d71ff0ef jal ra,800006c4 <_exit> -80000448 <__libc_fini_array>: -80000448: ff010113 addi sp,sp,-16 -8000044c: 00812423 sw s0,8(sp) -80000450: 800017b7 lui a5,0x80001 -80000454: 80001437 lui s0,0x80001 -80000458: 7e040413 addi s0,s0,2016 # 800017e0 <__stack_top+0x810017e0> -8000045c: 7e078793 addi a5,a5,2016 # 800017e0 <__stack_top+0x810017e0> -80000460: 408787b3 sub a5,a5,s0 -80000464: 00912223 sw s1,4(sp) -80000468: 00112623 sw ra,12(sp) -8000046c: 4027d493 srai s1,a5,0x2 -80000470: 02048063 beqz s1,80000490 <__libc_fini_array+0x48> -80000474: ffc78793 addi a5,a5,-4 -80000478: 00878433 add s0,a5,s0 -8000047c: 00042783 lw a5,0(s0) -80000480: fff48493 addi s1,s1,-1 -80000484: ffc40413 addi s0,s0,-4 -80000488: 000780e7 jalr a5 -8000048c: fe0498e3 bnez s1,8000047c <__libc_fini_array+0x34> -80000490: 00c12083 lw ra,12(sp) -80000494: 00812403 lw s0,8(sp) -80000498: 00412483 lw s1,4(sp) -8000049c: 01010113 addi sp,sp,16 -800004a0: 00008067 ret +80000958 <__libc_fini_array>: +80000958: ff010113 addi sp,sp,-16 +8000095c: 00812423 sw s0,8(sp) +80000960: 800017b7 lui a5,0x80001 +80000964: 80001437 lui s0,0x80001 +80000968: 00440413 addi s0,s0,4 # 80001004 <__stack_top+0x81001004> +8000096c: 00478793 addi a5,a5,4 # 80001004 <__stack_top+0x81001004> +80000970: 408787b3 sub a5,a5,s0 +80000974: 00912223 sw s1,4(sp) +80000978: 00112623 sw ra,12(sp) +8000097c: 4027d493 srai s1,a5,0x2 +80000980: 02048063 beqz s1,800009a0 <__libc_fini_array+0x48> +80000984: ffc78793 addi a5,a5,-4 +80000988: 00878433 add s0,a5,s0 +8000098c: 00042783 lw a5,0(s0) +80000990: fff48493 addi s1,s1,-1 +80000994: ffc40413 addi s0,s0,-4 +80000998: 000780e7 jalr a5 +8000099c: fe0498e3 bnez s1,8000098c <__libc_fini_array+0x34> +800009a0: 00c12083 lw ra,12(sp) +800009a4: 00812403 lw s0,8(sp) +800009a8: 00412483 lw s1,4(sp) +800009ac: 01010113 addi sp,sp,16 +800009b0: 00008067 ret -800004a4 <__libc_init_array>: -800004a4: ff010113 addi sp,sp,-16 -800004a8: 00812423 sw s0,8(sp) -800004ac: 01212023 sw s2,0(sp) -800004b0: 80001437 lui s0,0x80001 -800004b4: 80001937 lui s2,0x80001 -800004b8: 7dc40793 addi a5,s0,2012 # 800017dc <__stack_top+0x810017dc> -800004bc: 7dc90913 addi s2,s2,2012 # 800017dc <__stack_top+0x810017dc> -800004c0: 40f90933 sub s2,s2,a5 -800004c4: 00112623 sw ra,12(sp) -800004c8: 00912223 sw s1,4(sp) -800004cc: 40295913 srai s2,s2,0x2 -800004d0: 02090063 beqz s2,800004f0 <__libc_init_array+0x4c> -800004d4: 7dc40413 addi s0,s0,2012 -800004d8: 00000493 li s1,0 -800004dc: 00042783 lw a5,0(s0) -800004e0: 00148493 addi s1,s1,1 -800004e4: 00440413 addi s0,s0,4 -800004e8: 000780e7 jalr a5 -800004ec: fe9918e3 bne s2,s1,800004dc <__libc_init_array+0x38> -800004f0: 80001437 lui s0,0x80001 -800004f4: 80001937 lui s2,0x80001 -800004f8: 7dc40793 addi a5,s0,2012 # 800017dc <__stack_top+0x810017dc> -800004fc: 7e090913 addi s2,s2,2016 # 800017e0 <__stack_top+0x810017e0> -80000500: 40f90933 sub s2,s2,a5 -80000504: 40295913 srai s2,s2,0x2 -80000508: 02090063 beqz s2,80000528 <__libc_init_array+0x84> -8000050c: 7dc40413 addi s0,s0,2012 -80000510: 00000493 li s1,0 -80000514: 00042783 lw a5,0(s0) -80000518: 00148493 addi s1,s1,1 -8000051c: 00440413 addi s0,s0,4 -80000520: 000780e7 jalr a5 -80000524: fe9918e3 bne s2,s1,80000514 <__libc_init_array+0x70> -80000528: 00c12083 lw ra,12(sp) -8000052c: 00812403 lw s0,8(sp) -80000530: 00412483 lw s1,4(sp) -80000534: 00012903 lw s2,0(sp) -80000538: 01010113 addi sp,sp,16 -8000053c: 00008067 ret +800009b4 <__libc_init_array>: +800009b4: ff010113 addi sp,sp,-16 +800009b8: 00812423 sw s0,8(sp) +800009bc: 01212023 sw s2,0(sp) +800009c0: 80001437 lui s0,0x80001 +800009c4: 80001937 lui s2,0x80001 +800009c8: 00040793 mv a5,s0 +800009cc: 00090913 mv s2,s2 +800009d0: 40f90933 sub s2,s2,a5 +800009d4: 00112623 sw ra,12(sp) +800009d8: 00912223 sw s1,4(sp) +800009dc: 40295913 srai s2,s2,0x2 +800009e0: 02090063 beqz s2,80000a00 <__libc_init_array+0x4c> +800009e4: 00040413 mv s0,s0 +800009e8: 00000493 li s1,0 +800009ec: 00042783 lw a5,0(s0) # 80001000 <__stack_top+0x81001000> +800009f0: 00148493 addi s1,s1,1 +800009f4: 00440413 addi s0,s0,4 +800009f8: 000780e7 jalr a5 +800009fc: fe9918e3 bne s2,s1,800009ec <__libc_init_array+0x38> +80000a00: 80001437 lui s0,0x80001 +80000a04: 80001937 lui s2,0x80001 +80000a08: 00040793 mv a5,s0 +80000a0c: 00490913 addi s2,s2,4 # 80001004 <__stack_top+0x81001004> +80000a10: 40f90933 sub s2,s2,a5 +80000a14: 40295913 srai s2,s2,0x2 +80000a18: 02090063 beqz s2,80000a38 <__libc_init_array+0x84> +80000a1c: 00040413 mv s0,s0 +80000a20: 00000493 li s1,0 +80000a24: 00042783 lw a5,0(s0) # 80001000 <__stack_top+0x81001000> +80000a28: 00148493 addi s1,s1,1 +80000a2c: 00440413 addi s0,s0,4 +80000a30: 000780e7 jalr a5 +80000a34: fe9918e3 bne s2,s1,80000a24 <__libc_init_array+0x70> +80000a38: 00c12083 lw ra,12(sp) +80000a3c: 00812403 lw s0,8(sp) +80000a40: 00412483 lw s1,4(sp) +80000a44: 00012903 lw s2,0(sp) +80000a48: 01010113 addi sp,sp,16 +80000a4c: 00008067 ret -80000540 : -80000540: 00f00313 li t1,15 -80000544: 00050713 mv a4,a0 -80000548: 02c37e63 bgeu t1,a2,80000584 -8000054c: 00f77793 andi a5,a4,15 -80000550: 0a079063 bnez a5,800005f0 -80000554: 08059263 bnez a1,800005d8 -80000558: ff067693 andi a3,a2,-16 -8000055c: 00f67613 andi a2,a2,15 -80000560: 00e686b3 add a3,a3,a4 -80000564: 00b72023 sw a1,0(a4) -80000568: 00b72223 sw a1,4(a4) -8000056c: 00b72423 sw a1,8(a4) -80000570: 00b72623 sw a1,12(a4) -80000574: 01070713 addi a4,a4,16 -80000578: fed766e3 bltu a4,a3,80000564 -8000057c: 00061463 bnez a2,80000584 -80000580: 00008067 ret -80000584: 40c306b3 sub a3,t1,a2 -80000588: 00269693 slli a3,a3,0x2 -8000058c: 00000297 auipc t0,0x0 -80000590: 005686b3 add a3,a3,t0 -80000594: 00c68067 jr 12(a3) -80000598: 00b70723 sb a1,14(a4) -8000059c: 00b706a3 sb a1,13(a4) -800005a0: 00b70623 sb a1,12(a4) -800005a4: 00b705a3 sb a1,11(a4) -800005a8: 00b70523 sb a1,10(a4) -800005ac: 00b704a3 sb a1,9(a4) -800005b0: 00b70423 sb a1,8(a4) -800005b4: 00b703a3 sb a1,7(a4) -800005b8: 00b70323 sb a1,6(a4) -800005bc: 00b702a3 sb a1,5(a4) -800005c0: 00b70223 sb a1,4(a4) -800005c4: 00b701a3 sb a1,3(a4) -800005c8: 00b70123 sb a1,2(a4) -800005cc: 00b700a3 sb a1,1(a4) -800005d0: 00b70023 sb a1,0(a4) -800005d4: 00008067 ret -800005d8: 0ff5f593 andi a1,a1,255 -800005dc: 00859693 slli a3,a1,0x8 -800005e0: 00d5e5b3 or a1,a1,a3 -800005e4: 01059693 slli a3,a1,0x10 -800005e8: 00d5e5b3 or a1,a1,a3 -800005ec: f6dff06f j 80000558 -800005f0: 00279693 slli a3,a5,0x2 -800005f4: 00000297 auipc t0,0x0 -800005f8: 005686b3 add a3,a3,t0 -800005fc: 00008293 mv t0,ra -80000600: fa0680e7 jalr -96(a3) -80000604: 00028093 mv ra,t0 -80000608: ff078793 addi a5,a5,-16 -8000060c: 40f70733 sub a4,a4,a5 -80000610: 00f60633 add a2,a2,a5 -80000614: f6c378e3 bgeu t1,a2,80000584 -80000618: f3dff06f j 80000554 +80000a50 : +80000a50: 00f00313 li t1,15 +80000a54: 00050713 mv a4,a0 +80000a58: 02c37e63 bgeu t1,a2,80000a94 +80000a5c: 00f77793 andi a5,a4,15 +80000a60: 0a079063 bnez a5,80000b00 +80000a64: 08059263 bnez a1,80000ae8 +80000a68: ff067693 andi a3,a2,-16 +80000a6c: 00f67613 andi a2,a2,15 +80000a70: 00e686b3 add a3,a3,a4 +80000a74: 00b72023 sw a1,0(a4) +80000a78: 00b72223 sw a1,4(a4) +80000a7c: 00b72423 sw a1,8(a4) +80000a80: 00b72623 sw a1,12(a4) +80000a84: 01070713 addi a4,a4,16 +80000a88: fed766e3 bltu a4,a3,80000a74 +80000a8c: 00061463 bnez a2,80000a94 +80000a90: 00008067 ret +80000a94: 40c306b3 sub a3,t1,a2 +80000a98: 00269693 slli a3,a3,0x2 +80000a9c: 00000297 auipc t0,0x0 +80000aa0: 005686b3 add a3,a3,t0 +80000aa4: 00c68067 jr 12(a3) +80000aa8: 00b70723 sb a1,14(a4) +80000aac: 00b706a3 sb a1,13(a4) +80000ab0: 00b70623 sb a1,12(a4) +80000ab4: 00b705a3 sb a1,11(a4) +80000ab8: 00b70523 sb a1,10(a4) +80000abc: 00b704a3 sb a1,9(a4) +80000ac0: 00b70423 sb a1,8(a4) +80000ac4: 00b703a3 sb a1,7(a4) +80000ac8: 00b70323 sb a1,6(a4) +80000acc: 00b702a3 sb a1,5(a4) +80000ad0: 00b70223 sb a1,4(a4) +80000ad4: 00b701a3 sb a1,3(a4) +80000ad8: 00b70123 sb a1,2(a4) +80000adc: 00b700a3 sb a1,1(a4) +80000ae0: 00b70023 sb a1,0(a4) +80000ae4: 00008067 ret +80000ae8: 0ff5f593 andi a1,a1,255 +80000aec: 00859693 slli a3,a1,0x8 +80000af0: 00d5e5b3 or a1,a1,a3 +80000af4: 01059693 slli a3,a1,0x10 +80000af8: 00d5e5b3 or a1,a1,a3 +80000afc: f6dff06f j 80000a68 +80000b00: 00279693 slli a3,a5,0x2 +80000b04: 00000297 auipc t0,0x0 +80000b08: 005686b3 add a3,a3,t0 +80000b0c: 00008293 mv t0,ra +80000b10: fa0680e7 jalr -96(a3) +80000b14: 00028093 mv ra,t0 +80000b18: ff078793 addi a5,a5,-16 +80000b1c: 40f70733 sub a4,a4,a5 +80000b20: 00f60633 add a2,a2,a5 +80000b24: f6c378e3 bgeu t1,a2,80000a94 +80000b28: f3dff06f j 80000a64 -8000061c <__register_exitproc>: -8000061c: 800027b7 lui a5,0x80002 -80000620: c107a703 lw a4,-1008(a5) # 80001c10 <__stack_top+0x81001c10> -80000624: 14872783 lw a5,328(a4) -80000628: 04078c63 beqz a5,80000680 <__register_exitproc+0x64> -8000062c: 0047a703 lw a4,4(a5) -80000630: 01f00813 li a6,31 -80000634: 06e84e63 blt a6,a4,800006b0 <__register_exitproc+0x94> -80000638: 00271813 slli a6,a4,0x2 -8000063c: 02050663 beqz a0,80000668 <__register_exitproc+0x4c> -80000640: 01078333 add t1,a5,a6 -80000644: 08c32423 sw a2,136(t1) -80000648: 1887a883 lw a7,392(a5) -8000064c: 00100613 li a2,1 -80000650: 00e61633 sll a2,a2,a4 -80000654: 00c8e8b3 or a7,a7,a2 -80000658: 1917a423 sw a7,392(a5) -8000065c: 10d32423 sw a3,264(t1) -80000660: 00200693 li a3,2 -80000664: 02d50463 beq a0,a3,8000068c <__register_exitproc+0x70> -80000668: 00170713 addi a4,a4,1 -8000066c: 00e7a223 sw a4,4(a5) -80000670: 010787b3 add a5,a5,a6 -80000674: 00b7a423 sw a1,8(a5) -80000678: 00000513 li a0,0 -8000067c: 00008067 ret -80000680: 14c70793 addi a5,a4,332 -80000684: 14f72423 sw a5,328(a4) -80000688: fa5ff06f j 8000062c <__register_exitproc+0x10> -8000068c: 18c7a683 lw a3,396(a5) -80000690: 00170713 addi a4,a4,1 -80000694: 00e7a223 sw a4,4(a5) -80000698: 00c6e633 or a2,a3,a2 -8000069c: 18c7a623 sw a2,396(a5) -800006a0: 010787b3 add a5,a5,a6 -800006a4: 00b7a423 sw a1,8(a5) -800006a8: 00000513 li a0,0 -800006ac: 00008067 ret -800006b0: fff00513 li a0,-1 -800006b4: 00008067 ret +80000b2c <__register_exitproc>: +80000b2c: 800017b7 lui a5,0x80001 +80000b30: 4387a703 lw a4,1080(a5) # 80001438 <__stack_top+0x81001438> +80000b34: 14872783 lw a5,328(a4) +80000b38: 04078c63 beqz a5,80000b90 <__register_exitproc+0x64> +80000b3c: 0047a703 lw a4,4(a5) +80000b40: 01f00813 li a6,31 +80000b44: 06e84e63 blt a6,a4,80000bc0 <__register_exitproc+0x94> +80000b48: 00271813 slli a6,a4,0x2 +80000b4c: 02050663 beqz a0,80000b78 <__register_exitproc+0x4c> +80000b50: 01078333 add t1,a5,a6 +80000b54: 08c32423 sw a2,136(t1) +80000b58: 1887a883 lw a7,392(a5) +80000b5c: 00100613 li a2,1 +80000b60: 00e61633 sll a2,a2,a4 +80000b64: 00c8e8b3 or a7,a7,a2 +80000b68: 1917a423 sw a7,392(a5) +80000b6c: 10d32423 sw a3,264(t1) +80000b70: 00200693 li a3,2 +80000b74: 02d50463 beq a0,a3,80000b9c <__register_exitproc+0x70> +80000b78: 00170713 addi a4,a4,1 +80000b7c: 00e7a223 sw a4,4(a5) +80000b80: 010787b3 add a5,a5,a6 +80000b84: 00b7a423 sw a1,8(a5) +80000b88: 00000513 li a0,0 +80000b8c: 00008067 ret +80000b90: 14c70793 addi a5,a4,332 +80000b94: 14f72423 sw a5,328(a4) +80000b98: fa5ff06f j 80000b3c <__register_exitproc+0x10> +80000b9c: 18c7a683 lw a3,396(a5) +80000ba0: 00170713 addi a4,a4,1 +80000ba4: 00e7a223 sw a4,4(a5) +80000ba8: 00c6e633 or a2,a3,a2 +80000bac: 18c7a623 sw a2,396(a5) +80000bb0: 010787b3 add a5,a5,a6 +80000bb4: 00b7a423 sw a1,8(a5) +80000bb8: 00000513 li a0,0 +80000bbc: 00008067 ret +80000bc0: fff00513 li a0,-1 +80000bc4: 00008067 ret -800006b8 <__call_exitprocs>: -800006b8: fd010113 addi sp,sp,-48 -800006bc: 800027b7 lui a5,0x80002 -800006c0: 01412c23 sw s4,24(sp) -800006c4: c107aa03 lw s4,-1008(a5) # 80001c10 <__stack_top+0x81001c10> -800006c8: 03212023 sw s2,32(sp) -800006cc: 02112623 sw ra,44(sp) -800006d0: 148a2903 lw s2,328(s4) -800006d4: 02812423 sw s0,40(sp) -800006d8: 02912223 sw s1,36(sp) -800006dc: 01312e23 sw s3,28(sp) -800006e0: 01512a23 sw s5,20(sp) -800006e4: 01612823 sw s6,16(sp) -800006e8: 01712623 sw s7,12(sp) -800006ec: 01812423 sw s8,8(sp) -800006f0: 04090063 beqz s2,80000730 <__call_exitprocs+0x78> -800006f4: 00050b13 mv s6,a0 -800006f8: 00058b93 mv s7,a1 -800006fc: 00100a93 li s5,1 -80000700: fff00993 li s3,-1 -80000704: 00492483 lw s1,4(s2) -80000708: fff48413 addi s0,s1,-1 -8000070c: 02044263 bltz s0,80000730 <__call_exitprocs+0x78> -80000710: 00249493 slli s1,s1,0x2 -80000714: 009904b3 add s1,s2,s1 -80000718: 040b8463 beqz s7,80000760 <__call_exitprocs+0xa8> -8000071c: 1044a783 lw a5,260(s1) -80000720: 05778063 beq a5,s7,80000760 <__call_exitprocs+0xa8> -80000724: fff40413 addi s0,s0,-1 -80000728: ffc48493 addi s1,s1,-4 -8000072c: ff3416e3 bne s0,s3,80000718 <__call_exitprocs+0x60> -80000730: 02c12083 lw ra,44(sp) -80000734: 02812403 lw s0,40(sp) -80000738: 02412483 lw s1,36(sp) -8000073c: 02012903 lw s2,32(sp) -80000740: 01c12983 lw s3,28(sp) -80000744: 01812a03 lw s4,24(sp) -80000748: 01412a83 lw s5,20(sp) -8000074c: 01012b03 lw s6,16(sp) -80000750: 00c12b83 lw s7,12(sp) -80000754: 00812c03 lw s8,8(sp) -80000758: 03010113 addi sp,sp,48 -8000075c: 00008067 ret -80000760: 00492783 lw a5,4(s2) -80000764: 0044a683 lw a3,4(s1) -80000768: fff78793 addi a5,a5,-1 -8000076c: 04878e63 beq a5,s0,800007c8 <__call_exitprocs+0x110> -80000770: 0004a223 sw zero,4(s1) -80000774: fa0688e3 beqz a3,80000724 <__call_exitprocs+0x6c> -80000778: 18892783 lw a5,392(s2) -8000077c: 008a9733 sll a4,s5,s0 -80000780: 00492c03 lw s8,4(s2) -80000784: 00f777b3 and a5,a4,a5 -80000788: 02079263 bnez a5,800007ac <__call_exitprocs+0xf4> -8000078c: 000680e7 jalr a3 -80000790: 00492703 lw a4,4(s2) -80000794: 148a2783 lw a5,328(s4) -80000798: 01871463 bne a4,s8,800007a0 <__call_exitprocs+0xe8> -8000079c: f92784e3 beq a5,s2,80000724 <__call_exitprocs+0x6c> -800007a0: f80788e3 beqz a5,80000730 <__call_exitprocs+0x78> -800007a4: 00078913 mv s2,a5 -800007a8: f5dff06f j 80000704 <__call_exitprocs+0x4c> -800007ac: 18c92783 lw a5,396(s2) -800007b0: 0844a583 lw a1,132(s1) -800007b4: 00f77733 and a4,a4,a5 -800007b8: 00071c63 bnez a4,800007d0 <__call_exitprocs+0x118> -800007bc: 000b0513 mv a0,s6 -800007c0: 000680e7 jalr a3 -800007c4: fcdff06f j 80000790 <__call_exitprocs+0xd8> -800007c8: 00892223 sw s0,4(s2) -800007cc: fa9ff06f j 80000774 <__call_exitprocs+0xbc> -800007d0: 00058513 mv a0,a1 -800007d4: 000680e7 jalr a3 -800007d8: fb9ff06f j 80000790 <__call_exitprocs+0xd8> +80000bc8 <__call_exitprocs>: +80000bc8: fd010113 addi sp,sp,-48 +80000bcc: 800017b7 lui a5,0x80001 +80000bd0: 01412c23 sw s4,24(sp) +80000bd4: 4387aa03 lw s4,1080(a5) # 80001438 <__stack_top+0x81001438> +80000bd8: 03212023 sw s2,32(sp) +80000bdc: 02112623 sw ra,44(sp) +80000be0: 148a2903 lw s2,328(s4) +80000be4: 02812423 sw s0,40(sp) +80000be8: 02912223 sw s1,36(sp) +80000bec: 01312e23 sw s3,28(sp) +80000bf0: 01512a23 sw s5,20(sp) +80000bf4: 01612823 sw s6,16(sp) +80000bf8: 01712623 sw s7,12(sp) +80000bfc: 01812423 sw s8,8(sp) +80000c00: 04090063 beqz s2,80000c40 <__call_exitprocs+0x78> +80000c04: 00050b13 mv s6,a0 +80000c08: 00058b93 mv s7,a1 +80000c0c: 00100a93 li s5,1 +80000c10: fff00993 li s3,-1 +80000c14: 00492483 lw s1,4(s2) +80000c18: fff48413 addi s0,s1,-1 +80000c1c: 02044263 bltz s0,80000c40 <__call_exitprocs+0x78> +80000c20: 00249493 slli s1,s1,0x2 +80000c24: 009904b3 add s1,s2,s1 +80000c28: 040b8463 beqz s7,80000c70 <__call_exitprocs+0xa8> +80000c2c: 1044a783 lw a5,260(s1) +80000c30: 05778063 beq a5,s7,80000c70 <__call_exitprocs+0xa8> +80000c34: fff40413 addi s0,s0,-1 +80000c38: ffc48493 addi s1,s1,-4 +80000c3c: ff3416e3 bne s0,s3,80000c28 <__call_exitprocs+0x60> +80000c40: 02c12083 lw ra,44(sp) +80000c44: 02812403 lw s0,40(sp) +80000c48: 02412483 lw s1,36(sp) +80000c4c: 02012903 lw s2,32(sp) +80000c50: 01c12983 lw s3,28(sp) +80000c54: 01812a03 lw s4,24(sp) +80000c58: 01412a83 lw s5,20(sp) +80000c5c: 01012b03 lw s6,16(sp) +80000c60: 00c12b83 lw s7,12(sp) +80000c64: 00812c03 lw s8,8(sp) +80000c68: 03010113 addi sp,sp,48 +80000c6c: 00008067 ret +80000c70: 00492783 lw a5,4(s2) +80000c74: 0044a683 lw a3,4(s1) +80000c78: fff78793 addi a5,a5,-1 +80000c7c: 04878e63 beq a5,s0,80000cd8 <__call_exitprocs+0x110> +80000c80: 0004a223 sw zero,4(s1) +80000c84: fa0688e3 beqz a3,80000c34 <__call_exitprocs+0x6c> +80000c88: 18892783 lw a5,392(s2) +80000c8c: 008a9733 sll a4,s5,s0 +80000c90: 00492c03 lw s8,4(s2) +80000c94: 00f777b3 and a5,a4,a5 +80000c98: 02079263 bnez a5,80000cbc <__call_exitprocs+0xf4> +80000c9c: 000680e7 jalr a3 +80000ca0: 00492703 lw a4,4(s2) +80000ca4: 148a2783 lw a5,328(s4) +80000ca8: 01871463 bne a4,s8,80000cb0 <__call_exitprocs+0xe8> +80000cac: f8f904e3 beq s2,a5,80000c34 <__call_exitprocs+0x6c> +80000cb0: f80788e3 beqz a5,80000c40 <__call_exitprocs+0x78> +80000cb4: 00078913 mv s2,a5 +80000cb8: f5dff06f j 80000c14 <__call_exitprocs+0x4c> +80000cbc: 18c92783 lw a5,396(s2) +80000cc0: 0844a583 lw a1,132(s1) +80000cc4: 00f77733 and a4,a4,a5 +80000cc8: 00071c63 bnez a4,80000ce0 <__call_exitprocs+0x118> +80000ccc: 000b0513 mv a0,s6 +80000cd0: 000680e7 jalr a3 +80000cd4: fcdff06f j 80000ca0 <__call_exitprocs+0xd8> +80000cd8: 00892223 sw s0,4(s2) +80000cdc: fa9ff06f j 80000c84 <__call_exitprocs+0xbc> +80000ce0: 00058513 mv a0,a1 +80000ce4: 000680e7 jalr a3 +80000ce8: fb9ff06f j 80000ca0 <__call_exitprocs+0xd8> Disassembly of section .init_array: -800017dc <__init_array_start>: -800017dc: 00f8 addi a4,sp,76 -800017de: 8000 0x8000 +80001000 <__init_array_start>: +80001000: 00f8 addi a4,sp,76 +80001002: 8000 0x8000 Disassembly of section .data: -800017e0 : -800017e0: 0000 unimp -800017e2: 0000 unimp -800017e4: 1acc addi a1,sp,372 -800017e6: 8000 0x8000 -800017e8: 1b34 addi a3,sp,440 -800017ea: 8000 0x8000 -800017ec: 1b9c addi a5,sp,496 -800017ee: 8000 0x8000 +80001008 : +80001008: 0000 unimp +8000100a: 0000 unimp +8000100c: 12f4 addi a3,sp,364 +8000100e: 8000 0x8000 +80001010: 135c addi a5,sp,420 +80001012: 8000 0x8000 +80001014: 13c4 addi s1,sp,484 +80001016: 8000 0x8000 ... -80001888: 0001 nop -8000188a: 0000 unimp -8000188c: 0000 unimp -8000188e: 0000 unimp -80001890: 330e fld ft6,224(sp) -80001892: abcd j 80001e84 <__BSS_END__+0x1f0> -80001894: 1234 addi a3,sp,296 -80001896: e66d bnez a2,80001980 -80001898: deec sw a1,124(a3) -8000189a: 0005 c.nop 1 -8000189c: 0000000b 0xb +800010b0: 0001 nop +800010b2: 0000 unimp +800010b4: 0000 unimp +800010b6: 0000 unimp +800010b8: 330e fld ft6,224(sp) +800010ba: abcd j 800016ac <__BSS_END__+0x1f0> +800010bc: 1234 addi a3,sp,296 +800010be: e66d bnez a2,800011a8 +800010c0: deec sw a1,124(a3) +800010c2: 0005 c.nop 1 +800010c4: 0000000b 0xb ... Disassembly of section .sdata: -80001c08 <__SDATA_BEGIN__>: -80001c08: 0000 unimp -80001c0a: 4980 lw s0,16(a1) -80001c0c: 0000 unimp -80001c0e: 3f80 fld fs0,56(a5) +80001430 <__SDATA_BEGIN__>: +80001430: 0000 unimp +80001432: 4980 lw s0,16(a1) +80001434: 0000 unimp +80001436: 3f80 fld fs0,56(a5) -80001c10 <_global_impure_ptr>: -80001c10: 17e0 addi s0,sp,1004 -80001c12: 8000 0x8000 +80001438 <_global_impure_ptr>: +80001438: 1008 addi a0,sp,32 +8000143a: 8000 0x8000 Disassembly of section .bss: -80001c14 : +8000143c : ... Disassembly of section .comment: @@ -595,27 +919,21 @@ Disassembly of section .comment: 0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm 4: 2820 fld fs0,80(s0) 6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm - a: 3120 fld fs0,96(a0) - c: 2e30 fld fa2,88(a2) - e: 2e32 fld ft8,264(sp) - 10: 0030 addi a2,sp,8 - 12: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm - 16: 2820 fld fs0,80(s0) - 18: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm - 1c: 3920 fld fs0,112(a0) - 1e: 322e fld ft4,232(sp) - 20: 302e fld ft0,232(sp) + a: 3920 fld fs0,112(a0) + c: 322e fld ft4,232(sp) + e: 302e fld ft0,232(sp) ... Disassembly of section .riscv.attributes: 00000000 <.riscv.attributes>: - 0: 2941 jal 490 <__stack_size+0x90> + 0: 2541 jal 680 <__stack_size+0x280> 2: 0000 unimp 4: 7200 flw fs0,32(a2) 6: 7369 lui t1,0xffffa 8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14> - c: 001f 0000 1004 0x10040000001f + c: 0000001b 0x1b + 10: 1004 addi s1,sp,32 12: 7205 lui tp,0xfffe1 14: 3376 fld ft6,376(sp) 16: 6932 flw fs2,12(sp) @@ -624,5 +942,3 @@ Disassembly of section .riscv.attributes: 1c: 326d jal fffff9c6 <__stack_top+0xfff9c6> 1e: 3070 fld fa2,224(s0) 20: 665f 7032 0030 0x307032665f - 26: 0108 addi a0,sp,128 - 28: 0b0a slli s6,s6,0x2 diff --git a/driver/tests/tex_demo/kernel.elf b/driver/tests/tex_demo/kernel.elf index 34e14f5a..7d525410 100755 Binary files a/driver/tests/tex_demo/kernel.elf and b/driver/tests/tex_demo/kernel.elf differ diff --git a/driver/tests/tex_demo/main.cpp b/driver/tests/tex_demo/main.cpp index 1f3056cf..0e85374d 100644 --- a/driver/tests/tex_demo/main.cpp +++ b/driver/tests/tex_demo/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include "common.h" @@ -27,6 +28,7 @@ int wrap = 0; int filter = 0; float scale = 1.0f; int format = 0; +bool use_sw = false; ePixelFormat eformat = FORMAT_A8R8G8B8; vx_device_h device = nullptr; @@ -34,7 +36,7 @@ vx_buffer_h buffer = nullptr; static void show_usage() { std::cout << "Vortex Texture Test." << std::endl; - std::cout << "Usage: [-k: kernel] [-i image] [-o image] [-s scale] [-w wrap] [-f format] [-g filter] [-h: help]" << std::endl; + std::cout << "Usage: [-k: kernel] [-i image] [-o image] [-s scale] [-w wrap] [-f format] [-g filter] [-z no_hw] [-h: help]" << std::endl; } static void parse_args(int argc, char **argv) { @@ -53,6 +55,9 @@ static void parse_args(int argc, char **argv) { case 'w': wrap = std::atoi(optarg); break; + case 'z': + use_sw = std::atoi(optarg); + break; case 'f': { format = std::atoi(optarg); switch (format) { @@ -124,7 +129,7 @@ int run_test(const kernel_arg_t& kernel_arg, // save output image std::cout << "save output image" << std::endl; - //dump_image(dst_pixels, width, height, bpp); + dump_image(dst_pixels, width, height, bpp); RT_CHECK(SaveTGA(output_file, dst_pixels, width, height, bpp)); return 0; @@ -201,9 +206,10 @@ int main(int argc, char *argv[]) { kernel_arg.format = format; kernel_arg.filter = filter; kernel_arg.wrap = wrap; + kernel_arg.use_sw = use_sw; - kernel_arg.src_logWidth = ilog2(src_width); - kernel_arg.src_logHeight = ilog2(src_height); + kernel_arg.src_logWidth = (uint32_t)std::log2(src_width); + kernel_arg.src_logHeight = (uint32_t)std::log2(src_height); kernel_arg.src_stride = src_bpp; kernel_arg.src_pitch = src_bpp * src_width; kernel_arg.src_ptr = src_addr;