From 7b2f96bc6de755a4bb3edaae939b3885c5947c39 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Wed, 31 Mar 2021 05:43:44 -0400 Subject: [PATCH] tex_unit update --- driver/tests/tex_demo/demo | Bin 156296 -> 156296 bytes driver/tests/tex_demo/kernel.bin | Bin 7636 -> 7660 bytes driver/tests/tex_demo/kernel.c | 4 +- driver/tests/tex_demo/kernel.dump | 1220 +++++++++++++++-------------- driver/tests/tex_demo/kernel.elf | Bin 20752 -> 20776 bytes driver/tests/tex_demo/main.cpp | 6 +- hw/dpi/float_dpi.cpp | 60 +- hw/dpi/float_dpi.vh | 6 +- hw/rtl/VX_lsu_unit.v | 14 +- hw/rtl/fp_cores/VX_fpu_dpi.v | 6 +- hw/rtl/tex_unit/VX_tex_memory.v | 12 +- simX/execute.cpp | 10 +- 12 files changed, 687 insertions(+), 651 deletions(-) diff --git a/driver/tests/tex_demo/demo b/driver/tests/tex_demo/demo index b50fd169c8e8f1c0e3f3a284cdcd86865d3f22a3..83d9b666a938b9de5fbc0155ca7fad6ccec19f42 100755 GIT binary patch delta 11573 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 delta 11488 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 diff --git a/driver/tests/tex_demo/kernel.bin b/driver/tests/tex_demo/kernel.bin index 61f6bc261778500d01f2dd3a7611a69cb622a522..9b74addbe52e24c24858ba7e0147544a9e774655 100755 GIT binary patch delta 459 zcmYk2F-RL>6vyB9?)xsBIz+E}r$iCI!NH=7(4(G4 za0=g`a9u3HE*;cEbZ{_G5y2sn;vn>Bp>!&w4jKeSzlcL0JbuIb{U5ydeemz#*eU}M zi^K7mMD%7Vx&u{kxXz+51q_S?fX>(t!;(~&ey7z9M@YX4FkwjQY}S7xsE$Fx&ol%(+RrI;r}7zxDz z`G}=+k--T(3WFjx5IhdWrm~HZq?n}r7+Dc(^cChq@sC<+#uxb!U&Pp(F6!%==BKr5 zhg;3SdkUbxe(Jmf4RuO=al%aTl{K{0wd{lT|2Q~dEu_Bmr}|kU@FGuIOpnONK2|XX XZc`_??`4a1Z7q1wv8>R&c5v?jptpyk|I|D9kFrkj=o#Ag;>5Ak5l&TU-rDv#~uk zW?SYk8L0j}Lqm)>kQQb=>H}2o4#a^#F@}5w2akyXMp6v+#;r>niUmUdGOM;Q2#bmW zRet>sRAD=Dj>5zPGThB-EKJIJ8yS=p4o-Y7=c{y)Nm=b9Q?q&tqq#am1H1b1JIWd# znV3~s7?{u^pK?x&8Re$tJ8(axF83IXh<>bN+NtRug1UR+`8l9I5G$ z%)rSc%+fM*@)}kpF_4mzU?pf$5|jV1{sNi#gKZIz+B}C{L`Wis5g0~L&?Cdp@CArt WWEmPJZ{(b@IYFv}nPq__LjwTVpMs45 diff --git a/driver/tests/tex_demo/kernel.c b/driver/tests/tex_demo/kernel.c index 1c83fcdc..8f0d58db 100644 --- a/driver/tests/tex_demo/kernel.c +++ b/driver/tests/tex_demo/kernel.c @@ -52,8 +52,8 @@ int main() { targ.karg = *arg; targ.tile_width = arg->dst_width; targ.tile_height = (arg->dst_height + arg->num_tasks - 1) / arg->num_tasks; - targ.deltaX = 1.0f / arg->dst_width; - targ.deltaY = 1.0f / arg->dst_height; + targ.deltaX = 1.0f / (((float)arg->src_width) / arg->dst_width); + targ.deltaY = 1.0f / (((float)arg->src_height) / arg->dst_height); vx_spawn_tasks(arg->num_tasks, kernel_body, &targ); } \ No newline at end of file diff --git a/driver/tests/tex_demo/kernel.dump b/driver/tests/tex_demo/kernel.dump index 99a7fd04..65788c09 100644 --- a/driver/tests/tex_demo/kernel.dump +++ b/driver/tests/tex_demo/kernel.dump @@ -6,25 +6,25 @@ Disassembly of section .init: 80000000 <_start>: 80000000: 00000597 auipc a1,0x0 -80000004: 22c58593 addi a1,a1,556 # 8000022c +80000004: 24458593 addi a1,a1,580 # 80000244 80000008: fc102573 csrr a0,0xfc1 8000000c: 00b5106b 0xb5106b -80000010: 21c000ef jal ra,8000022c +80000010: 234000ef jal ra,80000244 80000014: 00100513 li a0,1 80000018: 0005006b 0x5006b 8000001c: 00002517 auipc a0,0x2 -80000020: db850513 addi a0,a0,-584 # 80001dd4 +80000020: dd050513 addi a0,a0,-560 # 80001dec 80000024: 00002617 auipc a2,0x2 -80000028: e3060613 addi a2,a2,-464 # 80001e54 <__BSS_END__> +80000028: e4860613 addi a2,a2,-440 # 80001e6c <__BSS_END__> 8000002c: 40a60633 sub a2,a2,a0 80000030: 00000593 li a1,0 -80000034: 5c8000ef jal ra,800005fc +80000034: 5e0000ef jal ra,80000614 80000038: 00000517 auipc a0,0x0 -8000003c: 4cc50513 addi a0,a0,1228 # 80000504 <__libc_fini_array> -80000040: 47c000ef jal ra,800004bc -80000044: 51c000ef jal ra,80000560 <__libc_init_array> +8000003c: 4e450513 addi a0,a0,1252 # 8000051c <__libc_fini_array> +80000040: 494000ef jal ra,800004d4 +80000044: 534000ef jal ra,80000578 <__libc_init_array> 80000048: 008000ef jal ra,80000050
-8000004c: 4840006f j 800004d0 +8000004c: 49c0006f j 800004e8 Disassembly of section .text: @@ -41,13 +41,13 @@ Disassembly of section .text: 80000074: 01f00493 li s1,31 80000078: 00151513 slli a0,a0,0x1 8000007c: fff50513 addi a0,a0,-1 -80000080: 3f0000ef jal ra,80000470 <__clzsi2> +80000080: 408000ef jal ra,80000488 <__clzsi2> 80000084: 40a48533 sub a0,s1,a0 80000088: fd551073 csrw 0xfd5,a0 8000008c: 00842503 lw a0,8(s0) 80000090: 00151513 slli a0,a0,0x1 80000094: fff50513 addi a0,a0,-1 -80000098: 3d8000ef jal ra,80000470 <__clzsi2> +80000098: 3f0000ef jal ra,80000488 <__clzsi2> 8000009c: 40a484b3 sub s1,s1,a0 800000a0: fd649073 csrw 0xfd6,s1 800000a4: fd105073 csrwi 0xfd1,0 @@ -56,580 +56,580 @@ Disassembly of section .text: 800000b0: 01442503 lw a0,20(s0) 800000b4: 01842583 lw a1,24(s0) 800000b8: 01c42603 lw a2,28(s0) -800000bc: 02442703 lw a4,36(s0) -800000c0: 02842783 lw a5,40(s0) -800000c4: 00042e83 lw t4,0(s0) -800000c8: 00442e03 lw t3,4(s0) -800000cc: 00842303 lw t1,8(s0) -800000d0: 00c42883 lw a7,12(s0) -800000d4: 01042803 lw a6,16(s0) -800000d8: 02042683 lw a3,32(s0) +800000bc: 02042683 lw a3,32(s0) +800000c0: 02442703 lw a4,36(s0) +800000c4: 02842783 lw a5,40(s0) +800000c8: 00042e83 lw t4,0(s0) +800000cc: 00442e03 lw t3,4(s0) +800000d0: 00842303 lw t1,8(s0) +800000d4: 00c42883 lw a7,12(s0) +800000d8: 01042803 lw a6,16(s0) 800000dc: 00b12e23 sw a1,28(sp) 800000e0: 02c12023 sw a2,32(sp) -800000e4: 02e12423 sw a4,40(sp) -800000e8: 01d12223 sw t4,4(sp) -800000ec: 01c12423 sw t3,8(sp) -800000f0: 00612623 sw t1,12(sp) -800000f4: 01112823 sw a7,16(sp) -800000f8: 01012a23 sw a6,20(sp) -800000fc: 00a12c23 sw a0,24(sp) -80000100: 02d12223 sw a3,36(sp) +800000e4: 02d12223 sw a3,36(sp) +800000e8: 02e12423 sw a4,40(sp) +800000ec: 01d12223 sw t4,4(sp) +800000f0: 01c12423 sw t3,8(sp) +800000f4: 00612623 sw t1,12(sp) +800000f8: 01112823 sw a7,16(sp) +800000fc: 01012a23 sw a6,20(sp) +80000100: 00a12c23 sw a0,24(sp) 80000104: 02f12623 sw a5,44(sp) 80000108: 01842783 lw a5,24(s0) 8000010c: 80002737 lui a4,0x80002 -80000110: dcc72707 flw fa4,-564(a4) # 80001dcc <__stack_top+0x81001dcc> +80000110: de472687 flw fa3,-540(a4) # 80001de4 <__stack_top+0x81001de4> 80000114: 02f12823 sw a5,48(sp) -80000118: 00042503 lw a0,0(s0) -8000011c: 01c42703 lw a4,28(s0) -80000120: d017f7d3 fcvt.s.wu fa5,a5 -80000124: 800005b7 lui a1,0x80000 -80000128: 00a707b3 add a5,a4,a0 -8000012c: fff78793 addi a5,a5,-1 -80000130: 02a7d7b3 divu a5,a5,a0 -80000134: d01776d3 fcvt.s.wu fa3,a4 -80000138: 18f777d3 fdiv.s fa5,fa4,fa5 -8000013c: 00410613 addi a2,sp,4 -80000140: 18458593 addi a1,a1,388 # 80000184 <__stack_top+0x81000184> -80000144: 18d77753 fdiv.s fa4,fa4,fa3 -80000148: 02f12c27 fsw fa5,56(sp) -8000014c: 02f12a23 sw a5,52(sp) -80000150: 02e12e27 fsw fa4,60(sp) -80000154: 1d4000ef jal ra,80000328 -80000158: 04c12083 lw ra,76(sp) -8000015c: 04812403 lw s0,72(sp) -80000160: 04412483 lw s1,68(sp) -80000164: 05010113 addi sp,sp,80 -80000168: 00008067 ret - -8000016c : -8000016c: 00000793 li a5,0 -80000170: 00078863 beqz a5,80000180 -80000174: 80000537 lui a0,0x80000 -80000178: 50450513 addi a0,a0,1284 # 80000504 <__stack_top+0x81000504> -8000017c: 3400006f j 800004bc +80000118: 01c42703 lw a4,28(s0) +8000011c: 00042503 lw a0,0(s0) +80000120: d017f5d3 fcvt.s.wu fa1,a5 +80000124: d0177653 fcvt.s.wu fa2,a4 +80000128: 00a706b3 add a3,a4,a0 +8000012c: fff68693 addi a3,a3,-1 +80000130: 02a6d6b3 divu a3,a3,a0 +80000134: 800005b7 lui a1,0x80000 +80000138: 00410613 addi a2,sp,4 +8000013c: 19c58593 addi a1,a1,412 # 8000019c <__stack_top+0x8100019c> +80000140: 02d12a23 sw a3,52(sp) +80000144: 00442783 lw a5,4(s0) +80000148: 00842703 lw a4,8(s0) +8000014c: d017f7d3 fcvt.s.wu fa5,a5 +80000150: d0177753 fcvt.s.wu fa4,a4 +80000154: 18b7f7d3 fdiv.s fa5,fa5,fa1 +80000158: 18c77753 fdiv.s fa4,fa4,fa2 +8000015c: 18f6f7d3 fdiv.s fa5,fa3,fa5 +80000160: 18e6f753 fdiv.s fa4,fa3,fa4 +80000164: 02f12c27 fsw fa5,56(sp) +80000168: 02e12e27 fsw fa4,60(sp) +8000016c: 1d4000ef jal ra,80000340 +80000170: 04c12083 lw ra,76(sp) +80000174: 04812403 lw s0,72(sp) +80000178: 04412483 lw s1,68(sp) +8000017c: 05010113 addi sp,sp,80 80000180: 00008067 ret -80000184 : -80000184: 0305a703 lw a4,48(a1) -80000188: 0245a683 lw a3,36(a1) -8000018c: 0285a603 lw a2,40(a1) -80000190: 02e507b3 mul a5,a0,a4 -80000194: 0345a687 flw fa3,52(a1) -80000198: 0385a507 flw fa0,56(a1) -8000019c: f00007d3 fmv.w.x fa5,zero -800001a0: 10f6f7d3 fmul.s fa5,fa3,fa5 -800001a4: 02f68833 mul a6,a3,a5 -800001a8: d017f5d3 fcvt.s.wu fa1,a5 -800001ac: 10a5f5d3 fmul.s fa1,fa1,fa0 -800001b0: 00c80833 add a6,a6,a2 -800001b4: 06070663 beqz a4,80000220 -800001b8: 800027b7 lui a5,0x80002 -800001bc: dc87a007 flw ft0,-568(a5) # 80001dc8 <__stack_top+0x81001dc8> -800001c0: 02c5a783 lw a5,44(a1) -800001c4: 00000893 li a7,0 -800001c8: 20000653 fmv.s fa2,ft0 -800001cc: 00000513 li a0,0 -800001d0: 04078063 beqz a5,80000210 -800001d4: 1005f753 fmul.s fa4,fa1,ft0 -800001d8: 00080693 mv a3,a6 -800001dc: 00000713 li a4,0 -800001e0: c0071653 fcvt.w.s a2,fa4,rtz -800001e4: 10c7f753 fmul.s fa4,fa5,fa2 -800001e8: c00717d3 fcvt.w.s a5,fa4,rtz -800001ec: 50c7d7eb 0x50c7d7eb -800001f0: 00f6a023 sw a5,0(a3) -800001f4: 02c5a783 lw a5,44(a1) -800001f8: 00170713 addi a4,a4,1 -800001fc: 00d7f7d3 fadd.s fa5,fa5,fa3 -80000200: 00468693 addi a3,a3,4 -80000204: fef760e3 bltu a4,a5,800001e4 -80000208: 0245a683 lw a3,36(a1) -8000020c: 0305a703 lw a4,48(a1) -80000210: 00188893 addi a7,a7,1 -80000214: 00a5f5d3 fadd.s fa1,fa1,fa0 -80000218: 00d80833 add a6,a6,a3 -8000021c: fae8eae3 bltu a7,a4,800001d0 -80000220: 00008067 ret +80000184 : +80000184: 00000793 li a5,0 +80000188: 00078863 beqz a5,80000198 +8000018c: 80000537 lui a0,0x80000 +80000190: 51c50513 addi a0,a0,1308 # 8000051c <__stack_top+0x8100051c> +80000194: 3400006f j 800004d4 +80000198: 00008067 ret -80000224 <_exit>: -80000224: 00000513 li a0,0 -80000228: 0005006b 0x5006b +8000019c : +8000019c: 0305a703 lw a4,48(a1) +800001a0: 0245a683 lw a3,36(a1) +800001a4: 0285a603 lw a2,40(a1) +800001a8: 02e507b3 mul a5,a0,a4 +800001ac: 0345a687 flw fa3,52(a1) +800001b0: 0385a507 flw fa0,56(a1) +800001b4: f00007d3 fmv.w.x fa5,zero +800001b8: 10f6f7d3 fmul.s fa5,fa3,fa5 +800001bc: 02f68833 mul a6,a3,a5 +800001c0: d017f5d3 fcvt.s.wu fa1,a5 +800001c4: 10a5f5d3 fmul.s fa1,fa1,fa0 +800001c8: 00c80833 add a6,a6,a2 +800001cc: 06070663 beqz a4,80000238 +800001d0: 800027b7 lui a5,0x80002 +800001d4: de07a007 flw ft0,-544(a5) # 80001de0 <__stack_top+0x81001de0> +800001d8: 02c5a783 lw a5,44(a1) +800001dc: 00000893 li a7,0 +800001e0: 20000653 fmv.s fa2,ft0 +800001e4: 00000513 li a0,0 +800001e8: 04078063 beqz a5,80000228 +800001ec: 1005f753 fmul.s fa4,fa1,ft0 +800001f0: 00080693 mv a3,a6 +800001f4: 00000713 li a4,0 +800001f8: c0071653 fcvt.w.s a2,fa4,rtz +800001fc: 10c7f753 fmul.s fa4,fa5,fa2 +80000200: c00717d3 fcvt.w.s a5,fa4,rtz +80000204: 50c7d7eb 0x50c7d7eb +80000208: 00f6a023 sw a5,0(a3) +8000020c: 02c5a783 lw a5,44(a1) +80000210: 00170713 addi a4,a4,1 +80000214: 00d7f7d3 fadd.s fa5,fa5,fa3 +80000218: 00468693 addi a3,a3,4 +8000021c: fef760e3 bltu a4,a5,800001fc +80000220: 0245a683 lw a3,36(a1) +80000224: 0305a703 lw a4,48(a1) +80000228: 00188893 addi a7,a7,1 +8000022c: 00a5f5d3 fadd.s fa1,fa1,fa0 +80000230: 00d80833 add a6,a6,a3 +80000234: fae8eae3 bltu a7,a4,800001e8 +80000238: 00008067 ret -8000022c : -8000022c: fc002573 csrr a0,0xfc0 -80000230: 0005006b 0x5006b -80000234: 00002197 auipc gp,0x2 -80000238: f6c18193 addi gp,gp,-148 # 800021a0 <__global_pointer> -8000023c: 7f000117 auipc sp,0x7f000 -80000240: dc410113 addi sp,sp,-572 # ff000000 <__stack_top> -80000244: 40000593 li a1,1024 -80000248: cc102673 csrr a2,0xcc1 -8000024c: 02c585b3 mul a1,a1,a2 -80000250: 40b10133 sub sp,sp,a1 -80000254: cc3026f3 csrr a3,0xcc3 -80000258: 00068663 beqz a3,80000264 -8000025c: 00000513 li a0,0 -80000260: 0005006b 0x5006b +8000023c <_exit>: +8000023c: 00000513 li a0,0 +80000240: 0005006b 0x5006b -80000264 : -80000264: 00008067 ret +80000244 : +80000244: fc002573 csrr a0,0xfc0 +80000248: 0005006b 0x5006b +8000024c: 00002197 auipc gp,0x2 +80000250: f6c18193 addi gp,gp,-148 # 800021b8 <__global_pointer> +80000254: 7f000117 auipc sp,0x7f000 +80000258: dac10113 addi sp,sp,-596 # ff000000 <__stack_top> +8000025c: 40000593 li a1,1024 +80000260: cc102673 csrr a2,0xcc1 +80000264: 02c585b3 mul a1,a1,a2 +80000268: 40b10133 sub sp,sp,a1 +8000026c: cc3026f3 csrr a3,0xcc3 +80000270: 00068663 beqz a3,8000027c +80000274: 00000513 li a0,0 +80000278: 0005006b 0x5006b -80000268 : -80000268: fe010113 addi sp,sp,-32 -8000026c: 00112e23 sw ra,28(sp) -80000270: 00812c23 sw s0,24(sp) -80000274: 00912a23 sw s1,20(sp) -80000278: 01212823 sw s2,16(sp) -8000027c: 01312623 sw s3,12(sp) -80000280: fc0027f3 csrr a5,0xfc0 -80000284: 0007806b 0x7806b -80000288: cc5026f3 csrr a3,0xcc5 -8000028c: cc3029f3 csrr s3,0xcc3 -80000290: cc002773 csrr a4,0xcc0 -80000294: fc002673 csrr a2,0xfc0 -80000298: 800027b7 lui a5,0x80002 -8000029c: 00269693 slli a3,a3,0x2 -800002a0: dd478793 addi a5,a5,-556 # 80001dd4 <__stack_top+0x81001dd4> -800002a4: 00d787b3 add a5,a5,a3 -800002a8: 0007a483 lw s1,0(a5) -800002ac: 0104a403 lw s0,16(s1) -800002b0: 00c4a683 lw a3,12(s1) -800002b4: 0089a933 slt s2,s3,s0 -800002b8: 00040793 mv a5,s0 -800002bc: 00d90933 add s2,s2,a3 -800002c0: 03368433 mul s0,a3,s3 -800002c4: 00f9d463 bge s3,a5,800002cc -800002c8: 00098793 mv a5,s3 -800002cc: 00f40433 add s0,s0,a5 -800002d0: 0084a683 lw a3,8(s1) -800002d4: 02c40433 mul s0,s0,a2 -800002d8: 02e907b3 mul a5,s2,a4 -800002dc: 00d40433 add s0,s0,a3 -800002e0: 00f40433 add s0,s0,a5 -800002e4: 00890933 add s2,s2,s0 -800002e8: 01245e63 bge s0,s2,80000304 -800002ec: 0004a783 lw a5,0(s1) -800002f0: 0044a583 lw a1,4(s1) -800002f4: 00040513 mv a0,s0 -800002f8: 00140413 addi s0,s0,1 -800002fc: 000780e7 jalr a5 -80000300: fe8916e3 bne s2,s0,800002ec -80000304: 0019b993 seqz s3,s3 -80000308: 0009806b 0x9806b -8000030c: 01c12083 lw ra,28(sp) -80000310: 01812403 lw s0,24(sp) -80000314: 01412483 lw s1,20(sp) -80000318: 01012903 lw s2,16(sp) -8000031c: 00c12983 lw s3,12(sp) -80000320: 02010113 addi sp,sp,32 -80000324: 00008067 ret +8000027c : +8000027c: 00008067 ret -80000328 : -80000328: fc010113 addi sp,sp,-64 -8000032c: 02112e23 sw ra,60(sp) -80000330: 02812c23 sw s0,56(sp) -80000334: 02912a23 sw s1,52(sp) -80000338: 03212823 sw s2,48(sp) -8000033c: 03312623 sw s3,44(sp) -80000340: fc2026f3 csrr a3,0xfc2 -80000344: fc102873 csrr a6,0xfc1 -80000348: fc002473 csrr s0,0xfc0 -8000034c: cc5027f3 csrr a5,0xcc5 -80000350: 01f00713 li a4,31 -80000354: 0cf74463 blt a4,a5,8000041c -80000358: 030408b3 mul a7,s0,a6 -8000035c: 00100713 li a4,1 -80000360: 00a8d463 bge a7,a0,80000368 -80000364: 03154733 div a4,a0,a7 -80000368: 0ce6c863 blt a3,a4,80000438 -8000036c: 0ae7d863 bge a5,a4,8000041c -80000370: fff68693 addi a3,a3,-1 -80000374: 02e54333 div t1,a0,a4 -80000378: 00030893 mv a7,t1 -8000037c: 00f69663 bne a3,a5,80000388 -80000380: 02e56533 rem a0,a0,a4 -80000384: 006508b3 add a7,a0,t1 -80000388: 0288c4b3 div s1,a7,s0 -8000038c: 0288e933 rem s2,a7,s0 -80000390: 0b04ca63 blt s1,a6,80000444 -80000394: 00100693 li a3,1 -80000398: 0304c733 div a4,s1,a6 -8000039c: 00070663 beqz a4,800003a8 -800003a0: 00070693 mv a3,a4 -800003a4: 0304e733 rem a4,s1,a6 -800003a8: 800029b7 lui s3,0x80002 -800003ac: dd498993 addi s3,s3,-556 # 80001dd4 <__stack_top+0x81001dd4> -800003b0: 00e12e23 sw a4,28(sp) -800003b4: 00c10713 addi a4,sp,12 -800003b8: 00b12623 sw a1,12(sp) -800003bc: 00c12823 sw a2,16(sp) -800003c0: 00d12c23 sw a3,24(sp) -800003c4: 02f30333 mul t1,t1,a5 -800003c8: 00279793 slli a5,a5,0x2 -800003cc: 00f987b3 add a5,s3,a5 -800003d0: 00e7a023 sw a4,0(a5) -800003d4: 00612a23 sw t1,20(sp) -800003d8: 06904c63 bgtz s1,80000450 -800003dc: 04090063 beqz s2,8000041c -800003e0: 02848433 mul s0,s1,s0 -800003e4: 00812a23 sw s0,20(sp) -800003e8: 0009006b 0x9006b -800003ec: cc5027f3 csrr a5,0xcc5 -800003f0: cc202573 csrr a0,0xcc2 -800003f4: 00279793 slli a5,a5,0x2 -800003f8: 00f989b3 add s3,s3,a5 -800003fc: 0009a783 lw a5,0(s3) -80000400: 0087a683 lw a3,8(a5) -80000404: 0007a703 lw a4,0(a5) -80000408: 0047a583 lw a1,4(a5) -8000040c: 00d50533 add a0,a0,a3 -80000410: 000700e7 jalr a4 -80000414: 00100793 li a5,1 -80000418: 0007806b 0x7806b -8000041c: 03c12083 lw ra,60(sp) -80000420: 03812403 lw s0,56(sp) -80000424: 03412483 lw s1,52(sp) -80000428: 03012903 lw s2,48(sp) -8000042c: 02c12983 lw s3,44(sp) -80000430: 04010113 addi sp,sp,64 -80000434: 00008067 ret -80000438: 00068713 mv a4,a3 -8000043c: f2e7cae3 blt a5,a4,80000370 -80000440: fddff06f j 8000041c -80000444: 00000713 li a4,0 -80000448: 00100693 li a3,1 -8000044c: f5dff06f j 800003a8 -80000450: 00048713 mv a4,s1 -80000454: 00985463 bge a6,s1,8000045c -80000458: 00080713 mv a4,a6 -8000045c: 800007b7 lui a5,0x80000 -80000460: 26878793 addi a5,a5,616 # 80000268 <__stack_top+0x81000268> -80000464: 00f7106b 0xf7106b -80000468: e01ff0ef jal ra,80000268 -8000046c: f71ff06f j 800003dc +80000280 : +80000280: fe010113 addi sp,sp,-32 +80000284: 00112e23 sw ra,28(sp) +80000288: 00812c23 sw s0,24(sp) +8000028c: 00912a23 sw s1,20(sp) +80000290: 01212823 sw s2,16(sp) +80000294: 01312623 sw s3,12(sp) +80000298: fc0027f3 csrr a5,0xfc0 +8000029c: 0007806b 0x7806b +800002a0: cc5026f3 csrr a3,0xcc5 +800002a4: cc3029f3 csrr s3,0xcc3 +800002a8: cc002773 csrr a4,0xcc0 +800002ac: fc002673 csrr a2,0xfc0 +800002b0: 800027b7 lui a5,0x80002 +800002b4: 00269693 slli a3,a3,0x2 +800002b8: dec78793 addi a5,a5,-532 # 80001dec <__stack_top+0x81001dec> +800002bc: 00d787b3 add a5,a5,a3 +800002c0: 0007a483 lw s1,0(a5) +800002c4: 0104a403 lw s0,16(s1) +800002c8: 00c4a683 lw a3,12(s1) +800002cc: 0089a933 slt s2,s3,s0 +800002d0: 00040793 mv a5,s0 +800002d4: 00d90933 add s2,s2,a3 +800002d8: 03368433 mul s0,a3,s3 +800002dc: 00f9d463 bge s3,a5,800002e4 +800002e0: 00098793 mv a5,s3 +800002e4: 00f40433 add s0,s0,a5 +800002e8: 0084a683 lw a3,8(s1) +800002ec: 02c40433 mul s0,s0,a2 +800002f0: 02e907b3 mul a5,s2,a4 +800002f4: 00d40433 add s0,s0,a3 +800002f8: 00f40433 add s0,s0,a5 +800002fc: 00890933 add s2,s2,s0 +80000300: 01245e63 bge s0,s2,8000031c +80000304: 0004a783 lw a5,0(s1) +80000308: 0044a583 lw a1,4(s1) +8000030c: 00040513 mv a0,s0 +80000310: 00140413 addi s0,s0,1 +80000314: 000780e7 jalr a5 +80000318: fe8916e3 bne s2,s0,80000304 +8000031c: 0019b993 seqz s3,s3 +80000320: 0009806b 0x9806b +80000324: 01c12083 lw ra,28(sp) +80000328: 01812403 lw s0,24(sp) +8000032c: 01412483 lw s1,20(sp) +80000330: 01012903 lw s2,16(sp) +80000334: 00c12983 lw s3,12(sp) +80000338: 02010113 addi sp,sp,32 +8000033c: 00008067 ret -80000470 <__clzsi2>: -80000470: 000107b7 lui a5,0x10 -80000474: 02f57a63 bgeu a0,a5,800004a8 <__clzsi2+0x38> -80000478: 0ff00793 li a5,255 -8000047c: 00a7b7b3 sltu a5,a5,a0 -80000480: 00379793 slli a5,a5,0x3 -80000484: 80001737 lui a4,0x80001 -80000488: 02000693 li a3,32 -8000048c: 40f686b3 sub a3,a3,a5 -80000490: 00f55533 srl a0,a0,a5 -80000494: 89870793 addi a5,a4,-1896 # 80000898 <__stack_top+0x81000898> -80000498: 00a78533 add a0,a5,a0 -8000049c: 00054503 lbu a0,0(a0) -800004a0: 40a68533 sub a0,a3,a0 -800004a4: 00008067 ret -800004a8: 01000737 lui a4,0x1000 -800004ac: 01000793 li a5,16 -800004b0: fce56ae3 bltu a0,a4,80000484 <__clzsi2+0x14> -800004b4: 01800793 li a5,24 -800004b8: fcdff06f j 80000484 <__clzsi2+0x14> +80000340 : +80000340: fc010113 addi sp,sp,-64 +80000344: 02112e23 sw ra,60(sp) +80000348: 02812c23 sw s0,56(sp) +8000034c: 02912a23 sw s1,52(sp) +80000350: 03212823 sw s2,48(sp) +80000354: 03312623 sw s3,44(sp) +80000358: fc2026f3 csrr a3,0xfc2 +8000035c: fc102873 csrr a6,0xfc1 +80000360: fc002473 csrr s0,0xfc0 +80000364: cc5027f3 csrr a5,0xcc5 +80000368: 01f00713 li a4,31 +8000036c: 0cf74463 blt a4,a5,80000434 +80000370: 030408b3 mul a7,s0,a6 +80000374: 00100713 li a4,1 +80000378: 00a8d463 bge a7,a0,80000380 +8000037c: 03154733 div a4,a0,a7 +80000380: 0ce6c863 blt a3,a4,80000450 +80000384: 0ae7d863 bge a5,a4,80000434 +80000388: fff68693 addi a3,a3,-1 +8000038c: 02e54333 div t1,a0,a4 +80000390: 00030893 mv a7,t1 +80000394: 00f69663 bne a3,a5,800003a0 +80000398: 02e56533 rem a0,a0,a4 +8000039c: 006508b3 add a7,a0,t1 +800003a0: 0288c4b3 div s1,a7,s0 +800003a4: 0288e933 rem s2,a7,s0 +800003a8: 0b04ca63 blt s1,a6,8000045c +800003ac: 00100693 li a3,1 +800003b0: 0304c733 div a4,s1,a6 +800003b4: 00070663 beqz a4,800003c0 +800003b8: 00070693 mv a3,a4 +800003bc: 0304e733 rem a4,s1,a6 +800003c0: 800029b7 lui s3,0x80002 +800003c4: dec98993 addi s3,s3,-532 # 80001dec <__stack_top+0x81001dec> +800003c8: 00e12e23 sw a4,28(sp) +800003cc: 00c10713 addi a4,sp,12 +800003d0: 00b12623 sw a1,12(sp) +800003d4: 00c12823 sw a2,16(sp) +800003d8: 00d12c23 sw a3,24(sp) +800003dc: 02f30333 mul t1,t1,a5 +800003e0: 00279793 slli a5,a5,0x2 +800003e4: 00f987b3 add a5,s3,a5 +800003e8: 00e7a023 sw a4,0(a5) +800003ec: 00612a23 sw t1,20(sp) +800003f0: 06904c63 bgtz s1,80000468 +800003f4: 04090063 beqz s2,80000434 +800003f8: 02848433 mul s0,s1,s0 +800003fc: 00812a23 sw s0,20(sp) +80000400: 0009006b 0x9006b +80000404: cc5027f3 csrr a5,0xcc5 +80000408: cc202573 csrr a0,0xcc2 +8000040c: 00279793 slli a5,a5,0x2 +80000410: 00f989b3 add s3,s3,a5 +80000414: 0009a783 lw a5,0(s3) +80000418: 0087a683 lw a3,8(a5) +8000041c: 0007a703 lw a4,0(a5) +80000420: 0047a583 lw a1,4(a5) +80000424: 00d50533 add a0,a0,a3 +80000428: 000700e7 jalr a4 +8000042c: 00100793 li a5,1 +80000430: 0007806b 0x7806b +80000434: 03c12083 lw ra,60(sp) +80000438: 03812403 lw s0,56(sp) +8000043c: 03412483 lw s1,52(sp) +80000440: 03012903 lw s2,48(sp) +80000444: 02c12983 lw s3,44(sp) +80000448: 04010113 addi sp,sp,64 +8000044c: 00008067 ret +80000450: 00068713 mv a4,a3 +80000454: f2e7cae3 blt a5,a4,80000388 +80000458: fddff06f j 80000434 +8000045c: 00000713 li a4,0 +80000460: 00100693 li a3,1 +80000464: f5dff06f j 800003c0 +80000468: 00048713 mv a4,s1 +8000046c: 00985463 bge a6,s1,80000474 +80000470: 00080713 mv a4,a6 +80000474: 800007b7 lui a5,0x80000 +80000478: 28078793 addi a5,a5,640 # 80000280 <__stack_top+0x81000280> +8000047c: 00f7106b 0xf7106b +80000480: e01ff0ef jal ra,80000280 +80000484: f71ff06f j 800003f4 -800004bc : -800004bc: 00050593 mv a1,a0 -800004c0: 00000693 li a3,0 -800004c4: 00000613 li a2,0 -800004c8: 00000513 li a0,0 -800004cc: 20c0006f j 800006d8 <__register_exitproc> +80000488 <__clzsi2>: +80000488: 000107b7 lui a5,0x10 +8000048c: 02f57a63 bgeu a0,a5,800004c0 <__clzsi2+0x38> +80000490: 0ff00793 li a5,255 +80000494: 00a7b7b3 sltu a5,a5,a0 +80000498: 00379793 slli a5,a5,0x3 +8000049c: 80001737 lui a4,0x80001 +800004a0: 02000693 li a3,32 +800004a4: 40f686b3 sub a3,a3,a5 +800004a8: 00f55533 srl a0,a0,a5 +800004ac: 8b070793 addi a5,a4,-1872 # 800008b0 <__stack_top+0x810008b0> +800004b0: 00a78533 add a0,a5,a0 +800004b4: 00054503 lbu a0,0(a0) +800004b8: 40a68533 sub a0,a3,a0 +800004bc: 00008067 ret +800004c0: 01000737 lui a4,0x1000 +800004c4: 01000793 li a5,16 +800004c8: fce56ae3 bltu a0,a4,8000049c <__clzsi2+0x14> +800004cc: 01800793 li a5,24 +800004d0: fcdff06f j 8000049c <__clzsi2+0x14> -800004d0 : -800004d0: ff010113 addi sp,sp,-16 -800004d4: 00000593 li a1,0 -800004d8: 00812423 sw s0,8(sp) -800004dc: 00112623 sw ra,12(sp) -800004e0: 00050413 mv s0,a0 -800004e4: 290000ef jal ra,80000774 <__call_exitprocs> -800004e8: 800027b7 lui a5,0x80002 -800004ec: dd07a503 lw a0,-560(a5) # 80001dd0 <__stack_top+0x81001dd0> -800004f0: 03c52783 lw a5,60(a0) -800004f4: 00078463 beqz a5,800004fc -800004f8: 000780e7 jalr a5 -800004fc: 00040513 mv a0,s0 -80000500: d25ff0ef jal ra,80000224 <_exit> +800004d4 : +800004d4: 00050593 mv a1,a0 +800004d8: 00000693 li a3,0 +800004dc: 00000613 li a2,0 +800004e0: 00000513 li a0,0 +800004e4: 20c0006f j 800006f0 <__register_exitproc> -80000504 <__libc_fini_array>: -80000504: ff010113 addi sp,sp,-16 -80000508: 00812423 sw s0,8(sp) -8000050c: 800027b7 lui a5,0x80002 -80000510: 80002437 lui s0,0x80002 -80000514: 99c40413 addi s0,s0,-1636 # 8000199c <__stack_top+0x8100199c> -80000518: 99c78793 addi a5,a5,-1636 # 8000199c <__stack_top+0x8100199c> -8000051c: 408787b3 sub a5,a5,s0 -80000520: 00912223 sw s1,4(sp) -80000524: 00112623 sw ra,12(sp) -80000528: 4027d493 srai s1,a5,0x2 -8000052c: 02048063 beqz s1,8000054c <__libc_fini_array+0x48> -80000530: ffc78793 addi a5,a5,-4 -80000534: 00878433 add s0,a5,s0 -80000538: 00042783 lw a5,0(s0) -8000053c: fff48493 addi s1,s1,-1 -80000540: ffc40413 addi s0,s0,-4 -80000544: 000780e7 jalr a5 -80000548: fe0498e3 bnez s1,80000538 <__libc_fini_array+0x34> -8000054c: 00c12083 lw ra,12(sp) -80000550: 00812403 lw s0,8(sp) -80000554: 00412483 lw s1,4(sp) -80000558: 01010113 addi sp,sp,16 -8000055c: 00008067 ret +800004e8 : +800004e8: ff010113 addi sp,sp,-16 +800004ec: 00000593 li a1,0 +800004f0: 00812423 sw s0,8(sp) +800004f4: 00112623 sw ra,12(sp) +800004f8: 00050413 mv s0,a0 +800004fc: 290000ef jal ra,8000078c <__call_exitprocs> +80000500: 800027b7 lui a5,0x80002 +80000504: de87a503 lw a0,-536(a5) # 80001de8 <__stack_top+0x81001de8> +80000508: 03c52783 lw a5,60(a0) +8000050c: 00078463 beqz a5,80000514 +80000510: 000780e7 jalr a5 +80000514: 00040513 mv a0,s0 +80000518: d25ff0ef jal ra,8000023c <_exit> -80000560 <__libc_init_array>: -80000560: ff010113 addi sp,sp,-16 -80000564: 00812423 sw s0,8(sp) -80000568: 01212023 sw s2,0(sp) -8000056c: 80002437 lui s0,0x80002 -80000570: 80002937 lui s2,0x80002 -80000574: 99840793 addi a5,s0,-1640 # 80001998 <__stack_top+0x81001998> -80000578: 99890913 addi s2,s2,-1640 # 80001998 <__stack_top+0x81001998> -8000057c: 40f90933 sub s2,s2,a5 -80000580: 00112623 sw ra,12(sp) -80000584: 00912223 sw s1,4(sp) -80000588: 40295913 srai s2,s2,0x2 -8000058c: 02090063 beqz s2,800005ac <__libc_init_array+0x4c> -80000590: 99840413 addi s0,s0,-1640 -80000594: 00000493 li s1,0 -80000598: 00042783 lw a5,0(s0) -8000059c: 00148493 addi s1,s1,1 -800005a0: 00440413 addi s0,s0,4 -800005a4: 000780e7 jalr a5 -800005a8: fe9918e3 bne s2,s1,80000598 <__libc_init_array+0x38> -800005ac: 80002437 lui s0,0x80002 -800005b0: 80002937 lui s2,0x80002 -800005b4: 99840793 addi a5,s0,-1640 # 80001998 <__stack_top+0x81001998> -800005b8: 99c90913 addi s2,s2,-1636 # 8000199c <__stack_top+0x8100199c> -800005bc: 40f90933 sub s2,s2,a5 -800005c0: 40295913 srai s2,s2,0x2 -800005c4: 02090063 beqz s2,800005e4 <__libc_init_array+0x84> -800005c8: 99840413 addi s0,s0,-1640 -800005cc: 00000493 li s1,0 -800005d0: 00042783 lw a5,0(s0) -800005d4: 00148493 addi s1,s1,1 -800005d8: 00440413 addi s0,s0,4 -800005dc: 000780e7 jalr a5 -800005e0: fe9918e3 bne s2,s1,800005d0 <__libc_init_array+0x70> -800005e4: 00c12083 lw ra,12(sp) -800005e8: 00812403 lw s0,8(sp) -800005ec: 00412483 lw s1,4(sp) -800005f0: 00012903 lw s2,0(sp) -800005f4: 01010113 addi sp,sp,16 -800005f8: 00008067 ret +8000051c <__libc_fini_array>: +8000051c: ff010113 addi sp,sp,-16 +80000520: 00812423 sw s0,8(sp) +80000524: 800027b7 lui a5,0x80002 +80000528: 80002437 lui s0,0x80002 +8000052c: 9b440413 addi s0,s0,-1612 # 800019b4 <__stack_top+0x810019b4> +80000530: 9b478793 addi a5,a5,-1612 # 800019b4 <__stack_top+0x810019b4> +80000534: 408787b3 sub a5,a5,s0 +80000538: 00912223 sw s1,4(sp) +8000053c: 00112623 sw ra,12(sp) +80000540: 4027d493 srai s1,a5,0x2 +80000544: 02048063 beqz s1,80000564 <__libc_fini_array+0x48> +80000548: ffc78793 addi a5,a5,-4 +8000054c: 00878433 add s0,a5,s0 +80000550: 00042783 lw a5,0(s0) +80000554: fff48493 addi s1,s1,-1 +80000558: ffc40413 addi s0,s0,-4 +8000055c: 000780e7 jalr a5 +80000560: fe0498e3 bnez s1,80000550 <__libc_fini_array+0x34> +80000564: 00c12083 lw ra,12(sp) +80000568: 00812403 lw s0,8(sp) +8000056c: 00412483 lw s1,4(sp) +80000570: 01010113 addi sp,sp,16 +80000574: 00008067 ret -800005fc : -800005fc: 00f00313 li t1,15 -80000600: 00050713 mv a4,a0 -80000604: 02c37e63 bgeu t1,a2,80000640 -80000608: 00f77793 andi a5,a4,15 -8000060c: 0a079063 bnez a5,800006ac -80000610: 08059263 bnez a1,80000694 -80000614: ff067693 andi a3,a2,-16 -80000618: 00f67613 andi a2,a2,15 -8000061c: 00e686b3 add a3,a3,a4 -80000620: 00b72023 sw a1,0(a4) # 1000000 <__stack_size+0xfffc00> -80000624: 00b72223 sw a1,4(a4) -80000628: 00b72423 sw a1,8(a4) -8000062c: 00b72623 sw a1,12(a4) -80000630: 01070713 addi a4,a4,16 -80000634: fed766e3 bltu a4,a3,80000620 -80000638: 00061463 bnez a2,80000640 -8000063c: 00008067 ret -80000640: 40c306b3 sub a3,t1,a2 -80000644: 00269693 slli a3,a3,0x2 -80000648: 00000297 auipc t0,0x0 -8000064c: 005686b3 add a3,a3,t0 -80000650: 00c68067 jr 12(a3) -80000654: 00b70723 sb a1,14(a4) -80000658: 00b706a3 sb a1,13(a4) -8000065c: 00b70623 sb a1,12(a4) -80000660: 00b705a3 sb a1,11(a4) -80000664: 00b70523 sb a1,10(a4) -80000668: 00b704a3 sb a1,9(a4) -8000066c: 00b70423 sb a1,8(a4) -80000670: 00b703a3 sb a1,7(a4) -80000674: 00b70323 sb a1,6(a4) -80000678: 00b702a3 sb a1,5(a4) -8000067c: 00b70223 sb a1,4(a4) -80000680: 00b701a3 sb a1,3(a4) -80000684: 00b70123 sb a1,2(a4) -80000688: 00b700a3 sb a1,1(a4) -8000068c: 00b70023 sb a1,0(a4) -80000690: 00008067 ret -80000694: 0ff5f593 andi a1,a1,255 -80000698: 00859693 slli a3,a1,0x8 -8000069c: 00d5e5b3 or a1,a1,a3 -800006a0: 01059693 slli a3,a1,0x10 -800006a4: 00d5e5b3 or a1,a1,a3 -800006a8: f6dff06f j 80000614 -800006ac: 00279693 slli a3,a5,0x2 -800006b0: 00000297 auipc t0,0x0 -800006b4: 005686b3 add a3,a3,t0 -800006b8: 00008293 mv t0,ra -800006bc: fa0680e7 jalr -96(a3) -800006c0: 00028093 mv ra,t0 -800006c4: ff078793 addi a5,a5,-16 -800006c8: 40f70733 sub a4,a4,a5 -800006cc: 00f60633 add a2,a2,a5 -800006d0: f6c378e3 bgeu t1,a2,80000640 -800006d4: f3dff06f j 80000610 +80000578 <__libc_init_array>: +80000578: ff010113 addi sp,sp,-16 +8000057c: 00812423 sw s0,8(sp) +80000580: 01212023 sw s2,0(sp) +80000584: 80002437 lui s0,0x80002 +80000588: 80002937 lui s2,0x80002 +8000058c: 9b040793 addi a5,s0,-1616 # 800019b0 <__stack_top+0x810019b0> +80000590: 9b090913 addi s2,s2,-1616 # 800019b0 <__stack_top+0x810019b0> +80000594: 40f90933 sub s2,s2,a5 +80000598: 00112623 sw ra,12(sp) +8000059c: 00912223 sw s1,4(sp) +800005a0: 40295913 srai s2,s2,0x2 +800005a4: 02090063 beqz s2,800005c4 <__libc_init_array+0x4c> +800005a8: 9b040413 addi s0,s0,-1616 +800005ac: 00000493 li s1,0 +800005b0: 00042783 lw a5,0(s0) +800005b4: 00148493 addi s1,s1,1 +800005b8: 00440413 addi s0,s0,4 +800005bc: 000780e7 jalr a5 +800005c0: fe9918e3 bne s2,s1,800005b0 <__libc_init_array+0x38> +800005c4: 80002437 lui s0,0x80002 +800005c8: 80002937 lui s2,0x80002 +800005cc: 9b040793 addi a5,s0,-1616 # 800019b0 <__stack_top+0x810019b0> +800005d0: 9b490913 addi s2,s2,-1612 # 800019b4 <__stack_top+0x810019b4> +800005d4: 40f90933 sub s2,s2,a5 +800005d8: 40295913 srai s2,s2,0x2 +800005dc: 02090063 beqz s2,800005fc <__libc_init_array+0x84> +800005e0: 9b040413 addi s0,s0,-1616 +800005e4: 00000493 li s1,0 +800005e8: 00042783 lw a5,0(s0) +800005ec: 00148493 addi s1,s1,1 +800005f0: 00440413 addi s0,s0,4 +800005f4: 000780e7 jalr a5 +800005f8: fe9918e3 bne s2,s1,800005e8 <__libc_init_array+0x70> +800005fc: 00c12083 lw ra,12(sp) +80000600: 00812403 lw s0,8(sp) +80000604: 00412483 lw s1,4(sp) +80000608: 00012903 lw s2,0(sp) +8000060c: 01010113 addi sp,sp,16 +80000610: 00008067 ret -800006d8 <__register_exitproc>: -800006d8: 800027b7 lui a5,0x80002 -800006dc: dd07a703 lw a4,-560(a5) # 80001dd0 <__stack_top+0x81001dd0> -800006e0: 14872783 lw a5,328(a4) -800006e4: 04078c63 beqz a5,8000073c <__register_exitproc+0x64> -800006e8: 0047a703 lw a4,4(a5) -800006ec: 01f00813 li a6,31 -800006f0: 06e84e63 blt a6,a4,8000076c <__register_exitproc+0x94> -800006f4: 00271813 slli a6,a4,0x2 -800006f8: 02050663 beqz a0,80000724 <__register_exitproc+0x4c> -800006fc: 01078333 add t1,a5,a6 -80000700: 08c32423 sw a2,136(t1) -80000704: 1887a883 lw a7,392(a5) -80000708: 00100613 li a2,1 -8000070c: 00e61633 sll a2,a2,a4 -80000710: 00c8e8b3 or a7,a7,a2 -80000714: 1917a423 sw a7,392(a5) -80000718: 10d32423 sw a3,264(t1) -8000071c: 00200693 li a3,2 -80000720: 02d50463 beq a0,a3,80000748 <__register_exitproc+0x70> -80000724: 00170713 addi a4,a4,1 -80000728: 00e7a223 sw a4,4(a5) -8000072c: 010787b3 add a5,a5,a6 -80000730: 00b7a423 sw a1,8(a5) -80000734: 00000513 li a0,0 -80000738: 00008067 ret -8000073c: 14c70793 addi a5,a4,332 -80000740: 14f72423 sw a5,328(a4) -80000744: fa5ff06f j 800006e8 <__register_exitproc+0x10> -80000748: 18c7a683 lw a3,396(a5) -8000074c: 00170713 addi a4,a4,1 -80000750: 00e7a223 sw a4,4(a5) -80000754: 00c6e633 or a2,a3,a2 -80000758: 18c7a623 sw a2,396(a5) -8000075c: 010787b3 add a5,a5,a6 -80000760: 00b7a423 sw a1,8(a5) -80000764: 00000513 li a0,0 -80000768: 00008067 ret -8000076c: fff00513 li a0,-1 -80000770: 00008067 ret +80000614 : +80000614: 00f00313 li t1,15 +80000618: 00050713 mv a4,a0 +8000061c: 02c37e63 bgeu t1,a2,80000658 +80000620: 00f77793 andi a5,a4,15 +80000624: 0a079063 bnez a5,800006c4 +80000628: 08059263 bnez a1,800006ac +8000062c: ff067693 andi a3,a2,-16 +80000630: 00f67613 andi a2,a2,15 +80000634: 00e686b3 add a3,a3,a4 +80000638: 00b72023 sw a1,0(a4) # 1000000 <__stack_size+0xfffc00> +8000063c: 00b72223 sw a1,4(a4) +80000640: 00b72423 sw a1,8(a4) +80000644: 00b72623 sw a1,12(a4) +80000648: 01070713 addi a4,a4,16 +8000064c: fed766e3 bltu a4,a3,80000638 +80000650: 00061463 bnez a2,80000658 +80000654: 00008067 ret +80000658: 40c306b3 sub a3,t1,a2 +8000065c: 00269693 slli a3,a3,0x2 +80000660: 00000297 auipc t0,0x0 +80000664: 005686b3 add a3,a3,t0 +80000668: 00c68067 jr 12(a3) +8000066c: 00b70723 sb a1,14(a4) +80000670: 00b706a3 sb a1,13(a4) +80000674: 00b70623 sb a1,12(a4) +80000678: 00b705a3 sb a1,11(a4) +8000067c: 00b70523 sb a1,10(a4) +80000680: 00b704a3 sb a1,9(a4) +80000684: 00b70423 sb a1,8(a4) +80000688: 00b703a3 sb a1,7(a4) +8000068c: 00b70323 sb a1,6(a4) +80000690: 00b702a3 sb a1,5(a4) +80000694: 00b70223 sb a1,4(a4) +80000698: 00b701a3 sb a1,3(a4) +8000069c: 00b70123 sb a1,2(a4) +800006a0: 00b700a3 sb a1,1(a4) +800006a4: 00b70023 sb a1,0(a4) +800006a8: 00008067 ret +800006ac: 0ff5f593 andi a1,a1,255 +800006b0: 00859693 slli a3,a1,0x8 +800006b4: 00d5e5b3 or a1,a1,a3 +800006b8: 01059693 slli a3,a1,0x10 +800006bc: 00d5e5b3 or a1,a1,a3 +800006c0: f6dff06f j 8000062c +800006c4: 00279693 slli a3,a5,0x2 +800006c8: 00000297 auipc t0,0x0 +800006cc: 005686b3 add a3,a3,t0 +800006d0: 00008293 mv t0,ra +800006d4: fa0680e7 jalr -96(a3) +800006d8: 00028093 mv ra,t0 +800006dc: ff078793 addi a5,a5,-16 +800006e0: 40f70733 sub a4,a4,a5 +800006e4: 00f60633 add a2,a2,a5 +800006e8: f6c378e3 bgeu t1,a2,80000658 +800006ec: f3dff06f j 80000628 -80000774 <__call_exitprocs>: -80000774: fd010113 addi sp,sp,-48 -80000778: 800027b7 lui a5,0x80002 -8000077c: 01412c23 sw s4,24(sp) -80000780: dd07aa03 lw s4,-560(a5) # 80001dd0 <__stack_top+0x81001dd0> -80000784: 03212023 sw s2,32(sp) -80000788: 02112623 sw ra,44(sp) -8000078c: 148a2903 lw s2,328(s4) -80000790: 02812423 sw s0,40(sp) -80000794: 02912223 sw s1,36(sp) -80000798: 01312e23 sw s3,28(sp) -8000079c: 01512a23 sw s5,20(sp) -800007a0: 01612823 sw s6,16(sp) -800007a4: 01712623 sw s7,12(sp) -800007a8: 01812423 sw s8,8(sp) -800007ac: 04090063 beqz s2,800007ec <__call_exitprocs+0x78> -800007b0: 00050b13 mv s6,a0 -800007b4: 00058b93 mv s7,a1 -800007b8: 00100a93 li s5,1 -800007bc: fff00993 li s3,-1 -800007c0: 00492483 lw s1,4(s2) -800007c4: fff48413 addi s0,s1,-1 -800007c8: 02044263 bltz s0,800007ec <__call_exitprocs+0x78> -800007cc: 00249493 slli s1,s1,0x2 -800007d0: 009904b3 add s1,s2,s1 -800007d4: 040b8463 beqz s7,8000081c <__call_exitprocs+0xa8> -800007d8: 1044a783 lw a5,260(s1) -800007dc: 05778063 beq a5,s7,8000081c <__call_exitprocs+0xa8> -800007e0: fff40413 addi s0,s0,-1 -800007e4: ffc48493 addi s1,s1,-4 -800007e8: ff3416e3 bne s0,s3,800007d4 <__call_exitprocs+0x60> -800007ec: 02c12083 lw ra,44(sp) -800007f0: 02812403 lw s0,40(sp) -800007f4: 02412483 lw s1,36(sp) -800007f8: 02012903 lw s2,32(sp) -800007fc: 01c12983 lw s3,28(sp) -80000800: 01812a03 lw s4,24(sp) -80000804: 01412a83 lw s5,20(sp) -80000808: 01012b03 lw s6,16(sp) -8000080c: 00c12b83 lw s7,12(sp) -80000810: 00812c03 lw s8,8(sp) -80000814: 03010113 addi sp,sp,48 -80000818: 00008067 ret -8000081c: 00492783 lw a5,4(s2) -80000820: 0044a683 lw a3,4(s1) -80000824: fff78793 addi a5,a5,-1 -80000828: 04878e63 beq a5,s0,80000884 <__call_exitprocs+0x110> -8000082c: 0004a223 sw zero,4(s1) -80000830: fa0688e3 beqz a3,800007e0 <__call_exitprocs+0x6c> -80000834: 18892783 lw a5,392(s2) -80000838: 008a9733 sll a4,s5,s0 -8000083c: 00492c03 lw s8,4(s2) -80000840: 00f777b3 and a5,a4,a5 -80000844: 02079263 bnez a5,80000868 <__call_exitprocs+0xf4> -80000848: 000680e7 jalr a3 -8000084c: 00492703 lw a4,4(s2) -80000850: 148a2783 lw a5,328(s4) -80000854: 01871463 bne a4,s8,8000085c <__call_exitprocs+0xe8> -80000858: f8f904e3 beq s2,a5,800007e0 <__call_exitprocs+0x6c> -8000085c: f80788e3 beqz a5,800007ec <__call_exitprocs+0x78> -80000860: 00078913 mv s2,a5 -80000864: f5dff06f j 800007c0 <__call_exitprocs+0x4c> -80000868: 18c92783 lw a5,396(s2) -8000086c: 0844a583 lw a1,132(s1) -80000870: 00f77733 and a4,a4,a5 -80000874: 00071c63 bnez a4,8000088c <__call_exitprocs+0x118> -80000878: 000b0513 mv a0,s6 -8000087c: 000680e7 jalr a3 -80000880: fcdff06f j 8000084c <__call_exitprocs+0xd8> -80000884: 00892223 sw s0,4(s2) -80000888: fa9ff06f j 80000830 <__call_exitprocs+0xbc> -8000088c: 00058513 mv a0,a1 -80000890: 000680e7 jalr a3 -80000894: fb9ff06f j 8000084c <__call_exitprocs+0xd8> +800006f0 <__register_exitproc>: +800006f0: 800027b7 lui a5,0x80002 +800006f4: de87a703 lw a4,-536(a5) # 80001de8 <__stack_top+0x81001de8> +800006f8: 14872783 lw a5,328(a4) +800006fc: 04078c63 beqz a5,80000754 <__register_exitproc+0x64> +80000700: 0047a703 lw a4,4(a5) +80000704: 01f00813 li a6,31 +80000708: 06e84e63 blt a6,a4,80000784 <__register_exitproc+0x94> +8000070c: 00271813 slli a6,a4,0x2 +80000710: 02050663 beqz a0,8000073c <__register_exitproc+0x4c> +80000714: 01078333 add t1,a5,a6 +80000718: 08c32423 sw a2,136(t1) +8000071c: 1887a883 lw a7,392(a5) +80000720: 00100613 li a2,1 +80000724: 00e61633 sll a2,a2,a4 +80000728: 00c8e8b3 or a7,a7,a2 +8000072c: 1917a423 sw a7,392(a5) +80000730: 10d32423 sw a3,264(t1) +80000734: 00200693 li a3,2 +80000738: 02d50463 beq a0,a3,80000760 <__register_exitproc+0x70> +8000073c: 00170713 addi a4,a4,1 +80000740: 00e7a223 sw a4,4(a5) +80000744: 010787b3 add a5,a5,a6 +80000748: 00b7a423 sw a1,8(a5) +8000074c: 00000513 li a0,0 +80000750: 00008067 ret +80000754: 14c70793 addi a5,a4,332 +80000758: 14f72423 sw a5,328(a4) +8000075c: fa5ff06f j 80000700 <__register_exitproc+0x10> +80000760: 18c7a683 lw a3,396(a5) +80000764: 00170713 addi a4,a4,1 +80000768: 00e7a223 sw a4,4(a5) +8000076c: 00c6e633 or a2,a3,a2 +80000770: 18c7a623 sw a2,396(a5) +80000774: 010787b3 add a5,a5,a6 +80000778: 00b7a423 sw a1,8(a5) +8000077c: 00000513 li a0,0 +80000780: 00008067 ret +80000784: fff00513 li a0,-1 +80000788: 00008067 ret + +8000078c <__call_exitprocs>: +8000078c: fd010113 addi sp,sp,-48 +80000790: 800027b7 lui a5,0x80002 +80000794: 01412c23 sw s4,24(sp) +80000798: de87aa03 lw s4,-536(a5) # 80001de8 <__stack_top+0x81001de8> +8000079c: 03212023 sw s2,32(sp) +800007a0: 02112623 sw ra,44(sp) +800007a4: 148a2903 lw s2,328(s4) +800007a8: 02812423 sw s0,40(sp) +800007ac: 02912223 sw s1,36(sp) +800007b0: 01312e23 sw s3,28(sp) +800007b4: 01512a23 sw s5,20(sp) +800007b8: 01612823 sw s6,16(sp) +800007bc: 01712623 sw s7,12(sp) +800007c0: 01812423 sw s8,8(sp) +800007c4: 04090063 beqz s2,80000804 <__call_exitprocs+0x78> +800007c8: 00050b13 mv s6,a0 +800007cc: 00058b93 mv s7,a1 +800007d0: 00100a93 li s5,1 +800007d4: fff00993 li s3,-1 +800007d8: 00492483 lw s1,4(s2) +800007dc: fff48413 addi s0,s1,-1 +800007e0: 02044263 bltz s0,80000804 <__call_exitprocs+0x78> +800007e4: 00249493 slli s1,s1,0x2 +800007e8: 009904b3 add s1,s2,s1 +800007ec: 040b8463 beqz s7,80000834 <__call_exitprocs+0xa8> +800007f0: 1044a783 lw a5,260(s1) +800007f4: 05778063 beq a5,s7,80000834 <__call_exitprocs+0xa8> +800007f8: fff40413 addi s0,s0,-1 +800007fc: ffc48493 addi s1,s1,-4 +80000800: ff3416e3 bne s0,s3,800007ec <__call_exitprocs+0x60> +80000804: 02c12083 lw ra,44(sp) +80000808: 02812403 lw s0,40(sp) +8000080c: 02412483 lw s1,36(sp) +80000810: 02012903 lw s2,32(sp) +80000814: 01c12983 lw s3,28(sp) +80000818: 01812a03 lw s4,24(sp) +8000081c: 01412a83 lw s5,20(sp) +80000820: 01012b03 lw s6,16(sp) +80000824: 00c12b83 lw s7,12(sp) +80000828: 00812c03 lw s8,8(sp) +8000082c: 03010113 addi sp,sp,48 +80000830: 00008067 ret +80000834: 00492783 lw a5,4(s2) +80000838: 0044a683 lw a3,4(s1) +8000083c: fff78793 addi a5,a5,-1 +80000840: 04878e63 beq a5,s0,8000089c <__call_exitprocs+0x110> +80000844: 0004a223 sw zero,4(s1) +80000848: fa0688e3 beqz a3,800007f8 <__call_exitprocs+0x6c> +8000084c: 18892783 lw a5,392(s2) +80000850: 008a9733 sll a4,s5,s0 +80000854: 00492c03 lw s8,4(s2) +80000858: 00f777b3 and a5,a4,a5 +8000085c: 02079263 bnez a5,80000880 <__call_exitprocs+0xf4> +80000860: 000680e7 jalr a3 +80000864: 00492703 lw a4,4(s2) +80000868: 148a2783 lw a5,328(s4) +8000086c: 01871463 bne a4,s8,80000874 <__call_exitprocs+0xe8> +80000870: f8f904e3 beq s2,a5,800007f8 <__call_exitprocs+0x6c> +80000874: f80788e3 beqz a5,80000804 <__call_exitprocs+0x78> +80000878: 00078913 mv s2,a5 +8000087c: f5dff06f j 800007d8 <__call_exitprocs+0x4c> +80000880: 18c92783 lw a5,396(s2) +80000884: 0844a583 lw a1,132(s1) +80000888: 00f77733 and a4,a4,a5 +8000088c: 00071c63 bnez a4,800008a4 <__call_exitprocs+0x118> +80000890: 000b0513 mv a0,s6 +80000894: 000680e7 jalr a3 +80000898: fcdff06f j 80000864 <__call_exitprocs+0xd8> +8000089c: 00892223 sw s0,4(s2) +800008a0: fa9ff06f j 80000848 <__call_exitprocs+0xbc> +800008a4: 00058513 mv a0,a1 +800008a8: 000680e7 jalr a3 +800008ac: fb9ff06f j 80000864 <__call_exitprocs+0xd8> Disassembly of section .rodata: -80000898 <__clz_tab>: -80000898: 0100 addi s0,sp,128 -8000089a: 0202 c.slli64 tp -8000089c: 03030303 lb t1,48(t1) -800008a0: 0404 addi s1,sp,512 -800008a2: 0404 addi s1,sp,512 -800008a4: 0404 addi s1,sp,512 -800008a6: 0404 addi s1,sp,512 -800008a8: 0505 addi a0,a0,1 -800008aa: 0505 addi a0,a0,1 -800008ac: 0505 addi a0,a0,1 -800008ae: 0505 addi a0,a0,1 -800008b0: 0505 addi a0,a0,1 -800008b2: 0505 addi a0,a0,1 -800008b4: 0505 addi a0,a0,1 -800008b6: 0505 addi a0,a0,1 -800008b8: 0606 slli a2,a2,0x1 -800008ba: 0606 slli a2,a2,0x1 -800008bc: 0606 slli a2,a2,0x1 -800008be: 0606 slli a2,a2,0x1 -800008c0: 0606 slli a2,a2,0x1 -800008c2: 0606 slli a2,a2,0x1 -800008c4: 0606 slli a2,a2,0x1 -800008c6: 0606 slli a2,a2,0x1 -800008c8: 0606 slli a2,a2,0x1 -800008ca: 0606 slli a2,a2,0x1 -800008cc: 0606 slli a2,a2,0x1 -800008ce: 0606 slli a2,a2,0x1 +800008b0 <__clz_tab>: +800008b0: 0100 addi s0,sp,128 +800008b2: 0202 c.slli64 tp +800008b4: 03030303 lb t1,48(t1) +800008b8: 0404 addi s1,sp,512 +800008ba: 0404 addi s1,sp,512 +800008bc: 0404 addi s1,sp,512 +800008be: 0404 addi s1,sp,512 +800008c0: 0505 addi a0,a0,1 +800008c2: 0505 addi a0,a0,1 +800008c4: 0505 addi a0,a0,1 +800008c6: 0505 addi a0,a0,1 +800008c8: 0505 addi a0,a0,1 +800008ca: 0505 addi a0,a0,1 +800008cc: 0505 addi a0,a0,1 +800008ce: 0505 addi a0,a0,1 800008d0: 0606 slli a2,a2,0x1 800008d2: 0606 slli a2,a2,0x1 800008d4: 0606 slli a2,a2,0x1 800008d6: 0606 slli a2,a2,0x1 -800008d8: 07070707 0x7070707 -800008dc: 07070707 0x7070707 -800008e0: 07070707 0x7070707 -800008e4: 07070707 0x7070707 -800008e8: 07070707 0x7070707 -800008ec: 07070707 0x7070707 +800008d8: 0606 slli a2,a2,0x1 +800008da: 0606 slli a2,a2,0x1 +800008dc: 0606 slli a2,a2,0x1 +800008de: 0606 slli a2,a2,0x1 +800008e0: 0606 slli a2,a2,0x1 +800008e2: 0606 slli a2,a2,0x1 +800008e4: 0606 slli a2,a2,0x1 +800008e6: 0606 slli a2,a2,0x1 +800008e8: 0606 slli a2,a2,0x1 +800008ea: 0606 slli a2,a2,0x1 +800008ec: 0606 slli a2,a2,0x1 +800008ee: 0606 slli a2,a2,0x1 800008f0: 07070707 0x7070707 800008f4: 07070707 0x7070707 800008f8: 07070707 0x7070707 @@ -640,18 +640,12 @@ Disassembly of section .rodata: 8000090c: 07070707 0x7070707 80000910: 07070707 0x7070707 80000914: 07070707 0x7070707 -80000918: 0808 addi a0,sp,16 -8000091a: 0808 addi a0,sp,16 -8000091c: 0808 addi a0,sp,16 -8000091e: 0808 addi a0,sp,16 -80000920: 0808 addi a0,sp,16 -80000922: 0808 addi a0,sp,16 -80000924: 0808 addi a0,sp,16 -80000926: 0808 addi a0,sp,16 -80000928: 0808 addi a0,sp,16 -8000092a: 0808 addi a0,sp,16 -8000092c: 0808 addi a0,sp,16 -8000092e: 0808 addi a0,sp,16 +80000918: 07070707 0x7070707 +8000091c: 07070707 0x7070707 +80000920: 07070707 0x7070707 +80000924: 07070707 0x7070707 +80000928: 07070707 0x7070707 +8000092c: 07070707 0x7070707 80000930: 0808 addi a0,sp,16 80000932: 0808 addi a0,sp,16 80000934: 0808 addi a0,sp,16 @@ -704,53 +698,65 @@ Disassembly of section .rodata: 80000992: 0808 addi a0,sp,16 80000994: 0808 addi a0,sp,16 80000996: 0808 addi a0,sp,16 +80000998: 0808 addi a0,sp,16 +8000099a: 0808 addi a0,sp,16 +8000099c: 0808 addi a0,sp,16 +8000099e: 0808 addi a0,sp,16 +800009a0: 0808 addi a0,sp,16 +800009a2: 0808 addi a0,sp,16 +800009a4: 0808 addi a0,sp,16 +800009a6: 0808 addi a0,sp,16 +800009a8: 0808 addi a0,sp,16 +800009aa: 0808 addi a0,sp,16 +800009ac: 0808 addi a0,sp,16 +800009ae: 0808 addi a0,sp,16 Disassembly of section .init_array: -80001998 <__init_array_start>: -80001998: 016c addi a1,sp,140 -8000199a: 8000 0x8000 +800019b0 <__init_array_start>: +800019b0: 0184 addi s1,sp,192 +800019b2: 8000 0x8000 Disassembly of section .data: -800019a0 : -800019a0: 0000 unimp -800019a2: 0000 unimp -800019a4: 1c8c addi a1,sp,624 -800019a6: 8000 0x8000 -800019a8: 1cf4 addi a3,sp,636 -800019aa: 8000 0x8000 -800019ac: 1d5c addi a5,sp,692 -800019ae: 8000 0x8000 +800019b8 : +800019b8: 0000 unimp +800019ba: 0000 unimp +800019bc: 1ca4 addi s1,sp,632 +800019be: 8000 0x8000 +800019c0: 1d0c addi a1,sp,688 +800019c2: 8000 0x8000 +800019c4: 1d74 addi a3,sp,700 +800019c6: 8000 0x8000 ... -80001a48: 0001 nop -80001a4a: 0000 unimp -80001a4c: 0000 unimp -80001a4e: 0000 unimp -80001a50: 330e fld ft6,224(sp) -80001a52: abcd j 80002044 <__BSS_END__+0x1f0> -80001a54: 1234 addi a3,sp,296 -80001a56: e66d bnez a2,80001b40 -80001a58: deec sw a1,124(a3) -80001a5a: 0005 c.nop 1 -80001a5c: 0000000b 0xb +80001a60: 0001 nop +80001a62: 0000 unimp +80001a64: 0000 unimp +80001a66: 0000 unimp +80001a68: 330e fld ft6,224(sp) +80001a6a: abcd j 8000205c <__BSS_END__+0x1f0> +80001a6c: 1234 addi a3,sp,296 +80001a6e: e66d bnez a2,80001b58 +80001a70: deec sw a1,124(a3) +80001a72: 0005 c.nop 1 +80001a74: 0000000b 0xb ... Disassembly of section .sdata: -80001dc8 <__SDATA_BEGIN__>: -80001dc8: 0000 unimp -80001dca: 4980 lw s0,16(a1) -80001dcc: 0000 unimp -80001dce: 3f80 fld fs0,56(a5) +80001de0 <__SDATA_BEGIN__>: +80001de0: 0000 unimp +80001de2: 4980 lw s0,16(a1) +80001de4: 0000 unimp +80001de6: 3f80 fld fs0,56(a5) -80001dd0 <_global_impure_ptr>: -80001dd0: 19a0 addi s0,sp,248 -80001dd2: 8000 0x8000 +80001de8 <_global_impure_ptr>: +80001de8: 19b8 addi a4,sp,248 +80001dea: 8000 0x8000 Disassembly of section .bss: -80001dd4 : +80001dec : ... Disassembly of section .comment: @@ -794,7 +800,7 @@ Disassembly of section .debug_aranges: a: 0004 0x4 c: 0000 unimp e: 0000 unimp - 10: 0470 addi a2,sp,524 + 10: 0488 addi a0,sp,576 12: 8000 0x8000 14: 004c addi a1,sp,4 ... @@ -820,7 +826,7 @@ Disassembly of section .debug_info: 12: 0004 0x4 14: 5900 lw s0,48(a0) 16: 0006 c.slli zero,0x1 - 18: 7000 flw fs0,32(s0) + 18: 8800 0x8800 1a: 0004 0x4 1c: 4c80 lw s0,24(s1) 1e: 0000 unimp @@ -2068,7 +2074,7 @@ Disassembly of section .debug_info: b80: 02c2 slli t0,t0,0x10 b82: 2501 jal 1182 <__stack_size+0xd82> b84: 0000 unimp - b86: 7000 flw fs0,32(s0) + b86: 8800 0x8800 b88: 0004 0x4 b8a: 4c80 lw s0,24(s1) b8c: 0000 unimp @@ -3313,7 +3319,7 @@ Disassembly of section .debug_info: 1736: b20d j 1058 <__stack_size+0xc58> 1738: 0f02 c.slli64 t5 173a: 0305 addi t1,t1,1 - 173c: 0898 addi a4,sp,80 + 173c: 08b0 addi a2,sp,88 173e: 8000 0x8000 ... @@ -3909,7 +3915,7 @@ Disassembly of section .debug_line: 224: 0500 addi s0,sp,640 226: 0001 nop 228: 0205 addi tp,tp,1 - 22a: 0470 addi a2,sp,524 + 22a: 0488 addi a0,sp,576 22c: 8000 0x8000 22e: 0105c203 lbu tp,16(a1) 232: 0305 addi t1,t1,1 @@ -4189,7 +4195,7 @@ Disassembly of section .debug_frame: 12: 0000 unimp 14: 0000 unimp 16: 0000 unimp - 18: 0470 addi a2,sp,524 + 18: 0488 addi a0,sp,576 1a: 8000 0x8000 1c: 004c addi a1,sp,4 ... diff --git a/driver/tests/tex_demo/kernel.elf b/driver/tests/tex_demo/kernel.elf index 2024bf958360f6f67c632f1b1b6aa04075f1deac..cbed7d43fa2fd096ddec3b4e6448caa85230b540 100755 GIT binary patch delta 1214 zcmZ8gZ)jUp6hHUAWz7 z*qh7Nf`TiDK_L}f>88RyWWJR}7`UQy6o<4_MTZL==-7usTcIlhXZ^j`Mnf;$bMEh) z-}!U@of;QkjEhsvVt%B>XetJY-03F_jYvQh8@*{4FASWm@7>pWIHmo4NSmZZN*lUg zqeEavQ$)Joe=}-At0({HP|u|qNfwC?Mxk~8zAX3|%>G5P=`FgF;heT>tDWvRF_Av3 zJ$qkC3=UeGJ<>aGb z8OsZt?Z%jhll?#w+3#SE92<3dwhk+z#IsGkVwmHJv>0|?O1xPI^~3gyb)x9lk3O#g z{r32`66(`E(VEU;&3ZnC6fY~Df|p+*pNC8TVei4vJZiZPg;dYKz$^Q|5l48kd#A|r zpWR7ev%lvPv~jv8IdE|!nvm@*_|>?y2~Pu8s=NG~oAA;mtm5USIg;7gw}75(ctaGR zJ+M}K)X-xVxYV-VvqsBnF9Y8J-`!mZ{Jdgrv>OQ;4t{VyIGL+9&nDx-VN>I zf1thlfDTE8Y9!H5s2bkj*8^AXL&KL$NZMOfK&8(>tZu+Wz#Symy^$aV{6y8Z9t0k9 zCVK}J@d`hbP5RyHMefTQe)lGd`~g;O#S)*v%01V4p2o`E)dDYPEwR9j&sgFHy0y)NCLw?VAm zoOAEF@3#};XMA;HpeJV3+I}KudI>`#5>WPs?zHUl+fL1GyIy}Fu1)OL`sfMu$8@ho zyTJ~{iF9xGzo7)Qs@`u@e@!xiJRz$i1g(3ouLVDaxgIv!N6A*sXv^l)r;XhwlLxdf zUn}t}>A@hVFD5}*#l2b`_iHtkM-v`tEIv<0-4%YMMLw^;BaK8!9yPOKg-MpryfI=d zC`l#mA;r8VhQ>mJ7rbN@eW!_YW0S?Zr{&NOp~0c9v9PW-6L+_SH+0<%n++vtEaIJk z2HBF~Ujl1nZiMdzj>zT_?x^}&rbdgGtL6xq9_0c3Pnk>b!Rlo)cbxyI-Y9*eToFvD z*YcdZk>{r1mPj_Q`;X@v{o_d^5g?Nj5e0r++a@}>DUuYO#qT3~E1~W$ z{Hs#fMSJ-s6{xiGs)XuW9ja)yE2iQpq_|PhRyV#v9v2thVYm4-fLxA4A=UK{^9QNF z#SXreS|axF>r_;H%eAdPp^USw(QUocy9v=wfj<*poP}=!m$N(k(OLNEEUe-cF5pkn zOV$sgCJWvG`Dit)oNgycO@F7r2TfWr00>HXV&M z$f;e9^$e_?9Ns$Q$f|*M@Ed5iAJ74*P=zGAjI7nu{JFs8erWi;B9hk3NT5;y#F+&ouwf7Znx+H9 zfj^pYtdD`S#anG%ifHAQ_Ndp%Zu72o!|Qay<{qq^j0L`gm2vV-&m_cGoQKKcE0F#CIAey#aJRQn KXL;Zb-0>Egu@y`J diff --git a/driver/tests/tex_demo/main.cpp b/driver/tests/tex_demo/main.cpp index d7c98fe5..aaa048a2 100644 --- a/driver/tests/tex_demo/main.cpp +++ b/driver/tests/tex_demo/main.cpp @@ -124,7 +124,7 @@ int main(int argc, char *argv[]) { RT_CHECK(vx_dev_caps(device, VX_CAPS_MAX_WARPS, &max_warps)); RT_CHECK(vx_dev_caps(device, VX_CAPS_MAX_THREADS, &max_threads)); - uint32_t num_tasks = max_cores * max_warps * max_threads / 4; + uint32_t num_tasks = max_cores * max_warps * max_threads; std::cout << "number of tasks: " << std::dec << num_tasks << std::endl; std::cout << "source buffer: width=" << src_width << ", heigth=" << src_height << ", size=" << src_bufsize << " bytes" << std::endl; @@ -170,8 +170,8 @@ int main(int argc, char *argv[]) { RT_CHECK(vx_copy_to_dev(buffer, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0)); } - // upload source buffer0 - std::cout << "upload source buffer0" << std::endl; + // upload source buffer + std::cout << "upload source buffer" << std::endl; { auto buf_ptr = (int8_t*)vx_host_ptr(buffer); for (uint32_t i = 0; i < src_bufsize; ++i) { diff --git a/hw/dpi/float_dpi.cpp b/hw/dpi/float_dpi.cpp index f7d9a85c..70d49eae 100644 --- a/hw/dpi/float_dpi.cpp +++ b/hw/dpi/float_dpi.cpp @@ -26,9 +26,9 @@ extern "C" { void dpi_utof(int a, int frm, int* result, int* fflags); void dpi_fclss(int a, int* result); - void dpi_fsgnj(int a, int* result); - void dpi_fsgnjn(int a, int* result); - void dpi_fsgnjx(int a, int* result); + void dpi_fsgnj(int a, int b, int* result); + void dpi_fsgnjn(int a, int b, int* result); + void dpi_fsgnjx(int a, int b, int* result); void dpi_flt(int a, int b, int* result, int* fflags); void dpi_fle(int a, int b, int* result, int* fflags); @@ -244,21 +244,53 @@ void dpi_fmax(int a, int b, int* result, int* fflags) { } void dpi_fclss(int a, int* result) { - // TODO - *result = 0; + + int r = 0; // clear all bits + + bool fsign = (a >> 31); + uint32_t expo = (a >> 23) & 0xFF; + uint32_t fraction = a & 0x7FFFFF; + + if ((expo == 0) && (fraction == 0)) { + r = fsign ? (1 << 3) : (1 << 4); // +/- 0 + } else if ((expo == 0) && (fraction != 0)) { + r = fsign ? (1 << 2) : (1 << 5); // +/- subnormal + } else if ((expo == 0xFF) && (fraction == 0)) { + r = fsign ? (1<<0) : (1<<7); // +/- infinity + } else if ((expo == 0xFF ) && (fraction != 0)) { + if (!fsign && (fraction == 0x00400000)) { + r = (1 << 9); // quiet NaN + } else { + r = (1 << 8); // signaling NaN + } + } else { + r = fsign ? (1 << 1) : (1 << 6); // +/- normal + } + + *result = r; } -void dpi_fsgnj(int a, int* result) { - // TODO - *result = 0; +void dpi_fsgnj(int a, int b, int* result) { + + int sign = b & 0x80000000; + int r = sign | (a & 0x7FFFFFFF); + + *result = r; } -void dpi_fsgnjn(int a, int* result) { - // TODO - *result = 0; +void dpi_fsgnjn(int a, int b, int* result) { + + int sign = ~b & 0x80000000; + int r = sign | (a & 0x7FFFFFFF); + + *result = r; } -void dpi_fsgnjx(int a, int* result) { - // TODO - *result = 0; +void dpi_fsgnjx(int a, int b, int* result) { + + int sign1 = a & 0x80000000; + int sign2 = b & 0x80000000; + int r = (sign1 ^ sign2) | (a & 0x7FFFFFFF); + + *result = r; } \ No newline at end of file diff --git a/hw/dpi/float_dpi.vh b/hw/dpi/float_dpi.vh index 62f45432..bba4c891 100644 --- a/hw/dpi/float_dpi.vh +++ b/hw/dpi/float_dpi.vh @@ -18,9 +18,9 @@ import "DPI-C" context function void dpi_itof(input int a, input bit[2:0] frm, o import "DPI-C" context function void dpi_utof(input int a, input bit[2:0] frm, output int result, output bit[4:0] fflags); import "DPI-C" context function void dpi_fclss(input int a, output int result); -import "DPI-C" context function void dpi_fsgnj(input int a, output int result); -import "DPI-C" context function void dpi_fsgnjn(input int a, output int result); -import "DPI-C" context function void dpi_fsgnjx(input int a, output int result); +import "DPI-C" context function void dpi_fsgnj(input int a, input int b, output int result); +import "DPI-C" context function void dpi_fsgnjn(input int a, input int b, output int result); +import "DPI-C" context function void dpi_fsgnjx(input int a, input int b, output int result); import "DPI-C" context function void dpi_flt(input int a, input int b, output int result, output bit[4:0] fflags); import "DPI-C" context function void dpi_fle(input int a, input int b, output int result, output bit[4:0] fflags); diff --git a/hw/rtl/VX_lsu_unit.v b/hw/rtl/VX_lsu_unit.v index f03902de..0bc20cdc 100644 --- a/hw/rtl/VX_lsu_unit.v +++ b/hw/rtl/VX_lsu_unit.v @@ -78,7 +78,7 @@ module VX_lsu_unit #( wire [`NUM_THREADS-1:0] rsp_rem_mask_n; reg [`NUM_THREADS-1:0] req_sent_mask; - wire req_sent_all; + wire sent_all_ready; wire [`LSUQ_ADDR_BITS-1:0] mbuf_waddr, mbuf_raddr; wire mbuf_full; @@ -116,13 +116,13 @@ module VX_lsu_unit #( .full (mbuf_full) ); - assign req_sent_all = (&(dcache_req_if.ready | req_sent_mask | ~req_tmask)) - || (req_is_dup & dcache_req_if.ready[0]); + assign sent_all_ready = (&(dcache_req_if.ready | req_sent_mask | ~req_tmask)) + || (req_is_dup & dcache_req_if.ready[0]); always @(posedge clk) begin - if (reset || req_sent_all) begin + if (reset || sent_all_ready) begin req_sent_mask <= 0; - end else if (!req_sent_all) begin + end else begin req_sent_mask <= req_sent_mask | dcache_req_fire; end end @@ -193,11 +193,11 @@ module VX_lsu_unit #( assign dcache_req_if.tag = {`NUM_THREADS{req_tag}}; `endif - assign ready_in = req_ready_dep && req_sent_all; + assign ready_in = req_ready_dep && sent_all_ready; // send store commit - wire is_store_rsp = req_valid && ~req_wb && req_sent_all; + wire is_store_rsp = req_valid && ~req_wb && sent_all_ready; assign st_commit_if.valid = is_store_rsp; assign st_commit_if.wid = req_wid; diff --git a/hw/rtl/fp_cores/VX_fpu_dpi.v b/hw/rtl/fp_cores/VX_fpu_dpi.v index c18be4ec..10dab769 100644 --- a/hw/rtl/fp_cores/VX_fpu_dpi.v +++ b/hw/rtl/fp_cores/VX_fpu_dpi.v @@ -330,9 +330,9 @@ module VX_fpu_dpi #( dpi_feq (dataa[i], datab[i], result_feq[i], fflags_feq[i]); dpi_fmin (dataa[i], datab[i], result_fmin[i], fflags_fmin[i]); dpi_fmax (dataa[i], datab[i], result_fmax[i], fflags_fmax[i]); - dpi_fsgnj (dataa[i], result_fsgnj[i]); - dpi_fsgnjn (dataa[i], result_fsgnjn[i]); - dpi_fsgnjx (dataa[i], result_fsgnjx[i]); + dpi_fsgnj (dataa[i], datab[i], result_fsgnj[i]); + dpi_fsgnjn (dataa[i], datab[i], result_fsgnjn[i]); + dpi_fsgnjx (dataa[i], datab[i], result_fsgnjx[i]); result_fmv[i] = dataa[i]; end end diff --git a/hw/rtl/tex_unit/VX_tex_memory.v b/hw/rtl/tex_unit/VX_tex_memory.v index 1b5f4fff..1bf041c4 100644 --- a/hw/rtl/tex_unit/VX_tex_memory.v +++ b/hw/rtl/tex_unit/VX_tex_memory.v @@ -99,7 +99,7 @@ module VX_tex_memory #( /////////////////////////////////////////////////////////////////////////// wire req_texel_valid; - wire req_texel_sent, last_texel_sent; + wire sent_all_ready, last_texel_sent; wire req_texel_dup; wire [`NUM_THREADS-1:0][29:0] req_texel_addr; reg [1:0] req_texel_idx; @@ -108,7 +108,7 @@ module VX_tex_memory #( always @(posedge clk) begin if (reset || last_texel_sent) begin req_texel_idx <= 0; - end else if (req_texel_sent) begin + end else if (req_texel_valid && sent_all_ready) begin req_texel_idx <= req_texel_idx + 1; end end @@ -126,7 +126,7 @@ module VX_tex_memory #( assign req_texel_dup = q_dup_reqs[req_texel_idx]; wire is_last_texel = (req_texel_idx == (q_req_filter ? 3 : 0)); - assign last_texel_sent = req_texel_sent && is_last_texel; + assign last_texel_sent = req_texel_valid && sent_all_ready && is_last_texel; // DCache Request @@ -136,11 +136,11 @@ module VX_tex_memory #( assign dcache_req_fire = dcache_req_if.valid & dcache_req_if.ready; - assign req_texel_sent = (&(dcache_req_if.ready | texel_sent_mask | ~q_req_tmask)) - || (req_texel_dup & dcache_req_if.ready[0]); + assign sent_all_ready = (&(dcache_req_if.ready | texel_sent_mask | ~q_req_tmask)) + || (req_texel_dup & dcache_req_if.ready[0]); always @(posedge clk) begin - if (reset || req_texel_sent) begin + if (reset || sent_all_ready) begin texel_sent_mask <= 0; end else begin texel_sent_mask <= texel_sent_mask | dcache_req_fire; diff --git a/simX/execute.cpp b/simX/execute.cpp index 43d07fbd..5b3cb128 100644 --- a/simX/execute.cpp +++ b/simX/execute.cpp @@ -561,20 +561,18 @@ void Warp::execute(const Instr &instr, Pipeline *pipeline) { // FSGNJ.S, FSGNJN.S, FSGNJX.S case 0x10: { - bool fsign1 = rsdata[0] & 0x80000000; + bool fsign1 = (rsdata[0] >> 31); uint32_t fdata1 = rsdata[0] & 0x7FFFFFFF; - bool fsign2 = rsdata[1] & 0x80000000; + bool fsign2 = (rsdata[1] >> 31); switch (func3) { case 0: // FSGNJ.S rddata = (fsign2 << 31) | fdata1; break; case 1: // FSGNJN.S - fsign2 = !fsign2; - rddata = (fsign2 << 31) | fdata1; + rddata = (!fsign2 << 31) | fdata1; break; case 2: { // FSGNJX.S - bool sign = fsign1 ^ fsign2; - rddata = (sign << 31) | fdata1; + rddata = ((fsign1 ^ fsign2) << 31) | fdata1; } break; } } break;