From cae4247343bbef4ebea47222c95cd9c591825d26 Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Tue, 19 Mar 2019 14:19:00 -0400 Subject: [PATCH] Automatic Available Warp/Thread Detection --- TODO | 2 +- src/instruction.cpp | 11 +- src/vortex_software/vortex_test.dump | 2939 ++++++++++--------- src/vortex_software/vortex_test.elf | Bin 15280 -> 15336 bytes src/vortex_software/vortex_test.hex | 681 ++--- src/vortex_software/vx_include/vx_front.c | 52 +- src/vortex_software/vx_include/vx_front.h | 3 - src/vortex_software/vx_main.c | 28 +- src/vortex_software/vx_os/vx_back/vx_back.c | 25 +- src/vortex_software/vx_os/vx_back/vx_back.h | 4 + src/vortex_software/vx_os/vx_back/vx_back.s | 22 + 11 files changed, 1952 insertions(+), 1815 deletions(-) diff --git a/TODO b/TODO index d99c2247..3ca24e06 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,5 @@ -* Automatic warp detection? +* csri bug? * Start on the Verilog Pipeline (Research loading into mem) \ No newline at end of file diff --git a/src/instruction.cpp b/src/instruction.cpp index ebb79b62..e521a79b 100644 --- a/src/instruction.cpp +++ b/src/instruction.cpp @@ -581,23 +581,27 @@ void Instruction::executeOn(Warp &c) { switch (func3) { case 1: + // printf("Case 1\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; } - c.csr[immsrc & 0x00000FFF] = temp; break; case 2: + // printf("Case 2\n"); if (rdest != 0) { + // printf("Reading from CSR: %d = %d\n", (immsrc & 0x00000FFF), c.csr[immsrc & 0x00000FFF]); reg[rdest] = c.csr[immsrc & 0x00000FFF]; } - c.csr[immsrc & 0x00000FFF] = temp | c.csr[immsrc & 0x00000FFF]; + // printf("Writing to CSR --> %d = %d\n", immsrc, (temp | c.csr[immsrc & 0x00000FFF])); + c.csr[immsrc & 0x00000FFF] = temp | c.csr[immsrc & 0x00000FFF]; break; case 3: + // printf("Case 3\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; @@ -606,6 +610,7 @@ void Instruction::executeOn(Warp &c) { break; case 5: + // printf("Case 5\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; @@ -614,6 +619,7 @@ void Instruction::executeOn(Warp &c) { break; case 6: + // printf("Case 6\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; @@ -622,6 +628,7 @@ void Instruction::executeOn(Warp &c) { break; case 7: + // printf("Case 7\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; diff --git a/src/vortex_software/vortex_test.dump b/src/vortex_software/vortex_test.dump index b8a17d1d..70acafbe 100644 --- a/src/vortex_software/vortex_test.dump +++ b/src/vortex_software/vortex_test.dump @@ -5,1256 +5,1330 @@ vortex_test.elf: file format elf32-littleriscv Disassembly of section .text: 80000000 <_start>: -80000000: 7ffff137 lui sp,0x7ffff -80000004: 188000ef jal ra,8000018c -80000008: 0c4010ef jal ra,800010cc
-8000000c: 00000073 ecall +80000000: 00400513 li a0,4 +80000004: 02051073 csrw 0x20,a0 +80000008: 00800513 li a0,8 +8000000c: 02151073 csrw 0x21,a0 +80000010: f1401073 csrw mhartid,zero +80000014: 30101073 csrw misa,zero +80000018: 7ffff137 lui sp,0x7ffff +8000001c: 198000ef jal ra,800001b4 +80000020: 11c010ef jal ra,8000113c
+80000024: 00000073 ecall -80000010 : -80000010: 00068b93 mv s7,a3 -80000014: 00070d13 mv s10,a4 -80000018: 00010f13 mv t5,sp -8000001c: 00050393 mv t2,a0 +80000028 : +80000028: 00068b93 mv s7,a3 +8000002c: 00070d13 mv s10,a4 +80000030: 00010f13 mv t5,sp +80000034: 00050393 mv t2,a0 -80000020 : -80000020: 00100513 li a0,1 +80000038 : +80000038: 00100513 li a0,1 -80000024 : -80000024: 00755c63 bge a0,t2,8000003c +8000003c : +8000003c: 00755c63 bge a0,t2,80000054 -80000028 : -80000028: 80010113 addi sp,sp,-2048 # 7fffe800 -8000002c: 00050313 mv t1,a0 -80000030: 0003506b 0x3506b +80000040 : +80000040: 80010113 addi sp,sp,-2048 # 7fffe800 +80000044: 00050313 mv t1,a0 +80000048: 0003506b 0x3506b -80000034 : -80000034: 00150513 addi a0,a0,1 -80000038: fedff06f j 80000024 +8000004c : +8000004c: 00150513 addi a0,a0,1 +80000050: fedff06f j 8000003c -8000003c : -8000003c: 000f0113 mv sp,t5 -80000040: 00000513 li a0,0 -80000044: 00060f93 mv t6,a2 -80000048: 00038d93 mv s11,t2 -8000004c: 01bfe0eb 0x1bfe0eb -80000050: 00000517 auipc a0,0x0 -80000054: 1a050513 addi a0,a0,416 # 800001f0 -80000058: 0005406b 0x5406b +80000054 : +80000054: 000f0113 mv sp,t5 +80000058: 00000513 li a0,0 +8000005c: 00060f93 mv t6,a2 +80000060: 00038d93 mv s11,t2 +80000064: 01bfe0eb 0x1bfe0eb +80000068: 00000517 auipc a0,0x0 +8000006c: 1b050513 addi a0,a0,432 # 80000218 +80000070: 0005406b 0x5406b -8000005c : -8000005c: 00000317 auipc t1,0x0 -80000060: fb430313 addi t1,t1,-76 # 80000010 -80000064: 0003006b 0x3006b -80000068: 00008067 ret +80000074 : +80000074: 00000317 auipc t1,0x0 +80000078: fb430313 addi t1,t1,-76 # 80000028 +8000007c: 0003006b 0x3006b +80000080: 00008067 ret -8000006c : -8000006c: 01000217 auipc tp,0x1000 -80000070: 25820213 addi tp,tp,600 # 810002c4 -80000074: 00022023 sw zero,0(tp) # 0 -80000078: 00122223 sw ra,4(tp) # 4 -8000007c: 00222423 sw sp,8(tp) # 8 -80000080: 00322623 sw gp,12(tp) # c -80000084: 00422823 sw tp,16(tp) # 10 -80000088: 00522a23 sw t0,20(tp) # 14 -8000008c: 00622c23 sw t1,24(tp) # 18 -80000090: 00722e23 sw t2,28(tp) # 1c -80000094: 02822023 sw s0,32(tp) # 20 -80000098: 02922223 sw s1,36(tp) # 24 -8000009c: 02a22423 sw a0,40(tp) # 28 -800000a0: 02b22623 sw a1,44(tp) # 2c -800000a4: 02c22823 sw a2,48(tp) # 30 -800000a8: 02d22a23 sw a3,52(tp) # 34 -800000ac: 02e22c23 sw a4,56(tp) # 38 -800000b0: 02f22e23 sw a5,60(tp) # 3c -800000b4: 05022023 sw a6,64(tp) # 40 -800000b8: 05122223 sw a7,68(tp) # 44 -800000bc: 05222423 sw s2,72(tp) # 48 -800000c0: 05322623 sw s3,76(tp) # 4c -800000c4: 05422823 sw s4,80(tp) # 50 -800000c8: 05522a23 sw s5,84(tp) # 54 -800000cc: 05622c23 sw s6,88(tp) # 58 -800000d0: 05722e23 sw s7,92(tp) # 5c -800000d4: 07822023 sw s8,96(tp) # 60 -800000d8: 07922223 sw s9,100(tp) # 64 -800000dc: 07a22423 sw s10,104(tp) # 68 -800000e0: 07b22623 sw s11,108(tp) # 6c -800000e4: 07c22823 sw t3,112(tp) # 70 -800000e8: 07d22a23 sw t4,116(tp) # 74 -800000ec: 07e22c23 sw t5,120(tp) # 78 -800000f0: 07f22e23 sw t6,124(tp) # 7c -800000f4: 00100213 li tp,1 -800000f8: 00008067 ret +80000084 : +80000084: 01000217 auipc tp,0x1000 +80000088: 23020213 addi tp,tp,560 # 810002b4 +8000008c: 00022023 sw zero,0(tp) # 0 +80000090: 00122223 sw ra,4(tp) # 4 +80000094: 00222423 sw sp,8(tp) # 8 +80000098: 00322623 sw gp,12(tp) # c +8000009c: 00422823 sw tp,16(tp) # 10 +800000a0: 00522a23 sw t0,20(tp) # 14 +800000a4: 00622c23 sw t1,24(tp) # 18 +800000a8: 00722e23 sw t2,28(tp) # 1c +800000ac: 02822023 sw s0,32(tp) # 20 +800000b0: 02922223 sw s1,36(tp) # 24 +800000b4: 02a22423 sw a0,40(tp) # 28 +800000b8: 02b22623 sw a1,44(tp) # 2c +800000bc: 02c22823 sw a2,48(tp) # 30 +800000c0: 02d22a23 sw a3,52(tp) # 34 +800000c4: 02e22c23 sw a4,56(tp) # 38 +800000c8: 02f22e23 sw a5,60(tp) # 3c +800000cc: 05022023 sw a6,64(tp) # 40 +800000d0: 05122223 sw a7,68(tp) # 44 +800000d4: 05222423 sw s2,72(tp) # 48 +800000d8: 05322623 sw s3,76(tp) # 4c +800000dc: 05422823 sw s4,80(tp) # 50 +800000e0: 05522a23 sw s5,84(tp) # 54 +800000e4: 05622c23 sw s6,88(tp) # 58 +800000e8: 05722e23 sw s7,92(tp) # 5c +800000ec: 07822023 sw s8,96(tp) # 60 +800000f0: 07922223 sw s9,100(tp) # 64 +800000f4: 07a22423 sw s10,104(tp) # 68 +800000f8: 07b22623 sw s11,108(tp) # 6c +800000fc: 07c22823 sw t3,112(tp) # 70 +80000100: 07d22a23 sw t4,116(tp) # 74 +80000104: 07e22c23 sw t5,120(tp) # 78 +80000108: 07f22e23 sw t6,124(tp) # 7c +8000010c: 00100213 li tp,1 +80000110: 00008067 ret -800000fc : -800000fc: 01000217 auipc tp,0x1000 -80000100: 1c820213 addi tp,tp,456 # 810002c4 -80000104: 00022003 lw zero,0(tp) # 0 -80000108: 00422083 lw ra,4(tp) # 4 -8000010c: 00822103 lw sp,8(tp) # 8 -80000110: 00c22183 lw gp,12(tp) # c -80000114: 01022203 lw tp,16(tp) # 10 -80000118: 01422283 lw t0,20(tp) # 14 -8000011c: 01822303 lw t1,24(tp) # 18 -80000120: 01c22383 lw t2,28(tp) # 1c -80000124: 02022403 lw s0,32(tp) # 20 -80000128: 02422483 lw s1,36(tp) # 24 -8000012c: 02822503 lw a0,40(tp) # 28 -80000130: 02c22583 lw a1,44(tp) # 2c -80000134: 03022603 lw a2,48(tp) # 30 -80000138: 03422683 lw a3,52(tp) # 34 -8000013c: 03822703 lw a4,56(tp) # 38 -80000140: 03c22783 lw a5,60(tp) # 3c -80000144: 04022803 lw a6,64(tp) # 40 -80000148: 04422883 lw a7,68(tp) # 44 -8000014c: 04822903 lw s2,72(tp) # 48 -80000150: 04c22983 lw s3,76(tp) # 4c -80000154: 05022a03 lw s4,80(tp) # 50 -80000158: 05422a83 lw s5,84(tp) # 54 -8000015c: 05822b03 lw s6,88(tp) # 58 -80000160: 05c22b83 lw s7,92(tp) # 5c -80000164: 06022c03 lw s8,96(tp) # 60 -80000168: 06422c83 lw s9,100(tp) # 64 -8000016c: 06822d03 lw s10,104(tp) # 68 -80000170: 06c22d83 lw s11,108(tp) # 6c -80000174: 07022e03 lw t3,112(tp) # 70 -80000178: 07422e83 lw t4,116(tp) # 74 -8000017c: 07822f03 lw t5,120(tp) # 78 -80000180: 07c22f83 lw t6,124(tp) # 7c -80000184: 00000213 li tp,0 -80000188: 00008067 ret +80000114 : +80000114: 01000217 auipc tp,0x1000 +80000118: 1a020213 addi tp,tp,416 # 810002b4 +8000011c: 00022003 lw zero,0(tp) # 0 +80000120: 00422083 lw ra,4(tp) # 4 +80000124: 00822103 lw sp,8(tp) # 8 +80000128: 00c22183 lw gp,12(tp) # c +8000012c: 01022203 lw tp,16(tp) # 10 +80000130: 01422283 lw t0,20(tp) # 14 +80000134: 01822303 lw t1,24(tp) # 18 +80000138: 01c22383 lw t2,28(tp) # 1c +8000013c: 02022403 lw s0,32(tp) # 20 +80000140: 02422483 lw s1,36(tp) # 24 +80000144: 02822503 lw a0,40(tp) # 28 +80000148: 02c22583 lw a1,44(tp) # 2c +8000014c: 03022603 lw a2,48(tp) # 30 +80000150: 03422683 lw a3,52(tp) # 34 +80000154: 03822703 lw a4,56(tp) # 38 +80000158: 03c22783 lw a5,60(tp) # 3c +8000015c: 04022803 lw a6,64(tp) # 40 +80000160: 04422883 lw a7,68(tp) # 44 +80000164: 04822903 lw s2,72(tp) # 48 +80000168: 04c22983 lw s3,76(tp) # 4c +8000016c: 05022a03 lw s4,80(tp) # 50 +80000170: 05422a83 lw s5,84(tp) # 54 +80000174: 05822b03 lw s6,88(tp) # 58 +80000178: 05c22b83 lw s7,92(tp) # 5c +8000017c: 06022c03 lw s8,96(tp) # 60 +80000180: 06422c83 lw s9,100(tp) # 64 +80000184: 06822d03 lw s10,104(tp) # 68 +80000188: 06c22d83 lw s11,108(tp) # 6c +8000018c: 07022e03 lw t3,112(tp) # 70 +80000190: 07422e83 lw t4,116(tp) # 74 +80000194: 07822f03 lw t5,120(tp) # 78 +80000198: 07c22f83 lw t6,124(tp) # 7c +8000019c: 00000213 li tp,0 +800001a0: 00008067 ret -8000018c : -8000018c: fe010113 addi sp,sp,-32 -80000190: 00112e23 sw ra,28(sp) -80000194: 00812c23 sw s0,24(sp) -80000198: 02010413 addi s0,sp,32 -8000019c: fe042623 sw zero,-20(s0) -800001a0: 0300006f j 800001d0 -800001a4: fec42703 lw a4,-20(s0) -800001a8: 4c400793 li a5,1220 -800001ac: 02f70733 mul a4,a4,a5 -800001b0: 810007b7 lui a5,0x81000 -800001b4: 34478793 addi a5,a5,836 # 81000344 -800001b8: 00f707b3 add a5,a4,a5 -800001bc: 00078513 mv a0,a5 -800001c0: 424000ef jal ra,800005e4 -800001c4: fec42783 lw a5,-20(s0) -800001c8: 00178793 addi a5,a5,1 -800001cc: fef42623 sw a5,-20(s0) -800001d0: fec42703 lw a4,-20(s0) -800001d4: 00700793 li a5,7 -800001d8: fce7d6e3 bge a5,a4,800001a4 -800001dc: 00000013 nop -800001e0: 01c12083 lw ra,28(sp) -800001e4: 01812403 lw s0,24(sp) -800001e8: 02010113 addi sp,sp,32 -800001ec: 00008067 ret +800001a4 : +800001a4: 02002573 csrr a0,0x20 +800001a8: 00008067 ret -800001f0 : -800001f0: fd010113 addi sp,sp,-48 -800001f4: 02112623 sw ra,44(sp) -800001f8: 02812423 sw s0,40(sp) -800001fc: 03a12223 sw s10,36(sp) -80000200: 03010413 addi s0,sp,48 -80000204: 000d0713 mv a4,s10 -80000208: 4c400793 li a5,1220 -8000020c: 02f70733 mul a4,a4,a5 -80000210: 810007b7 lui a5,0x81000 -80000214: 34478793 addi a5,a5,836 # 81000344 -80000218: 00f707b3 add a5,a4,a5 -8000021c: 00078513 mv a0,a5 -80000220: 4d8000ef jal ra,800006f8 -80000224: 00050793 mv a5,a0 -80000228: 04078463 beqz a5,80000270 -8000022c: 000d0793 mv a5,s10 -80000230: 00078593 mv a1,a5 -80000234: 810007b7 lui a5,0x81000 -80000238: 04078513 addi a0,a5,64 # 81000040 -8000023c: 5ec000ef jal ra,80000828 -80000240: 000d0713 mv a4,s10 -80000244: 810007b7 lui a5,0x81000 -80000248: 00271713 slli a4,a4,0x2 -8000024c: 2a478793 addi a5,a5,676 # 810002a4 -80000250: 00f707b3 add a5,a4,a5 -80000254: 00100713 li a4,1 -80000258: 00e7a023 sw a4,0(a5) -8000025c: 000d0793 mv a5,s10 -80000260: 00079663 bnez a5,8000026c -80000264: e99ff0ef jal ra,800000fc -80000268: 0580006f j 800002c0 -8000026c: 00000073 ecall -80000270: 000d0713 mv a4,s10 -80000274: 4c400793 li a5,1220 -80000278: 02f70733 mul a4,a4,a5 -8000027c: 810007b7 lui a5,0x81000 -80000280: 34478793 addi a5,a5,836 # 81000344 -80000284: 00f707b3 add a5,a4,a5 -80000288: fd840713 addi a4,s0,-40 -8000028c: 00070593 mv a1,a4 -80000290: 00078513 mv a0,a5 -80000294: 3dc000ef jal ra,80000670 -80000298: fe042783 lw a5,-32(s0) -8000029c: 00078113 mv sp,a5 -800002a0: fdc42783 lw a5,-36(s0) -800002a4: fd842583 lw a1,-40(s0) -800002a8: fe442603 lw a2,-28(s0) -800002ac: fe842683 lw a3,-24(s0) -800002b0: fec42703 lw a4,-20(s0) -800002b4: 00078513 mv a0,a5 -800002b8: d59ff0ef jal ra,80000010 -800002bc: 00000073 ecall -800002c0: 02c12083 lw ra,44(sp) -800002c4: 02812403 lw s0,40(sp) -800002c8: 02412d03 lw s10,36(sp) -800002cc: 03010113 addi sp,sp,48 -800002d0: 00008067 ret +800001ac : +800001ac: 02102573 csrr a0,0x21 +800001b0: 00008067 ret -800002d4 : -800002d4: fb010113 addi sp,sp,-80 -800002d8: 04112623 sw ra,76(sp) -800002dc: 04812423 sw s0,72(sp) -800002e0: 05010413 addi s0,sp,80 -800002e4: 00010993 mv s3,sp -800002e8: 00100793 li a5,1 -800002ec: fef42623 sw a5,-20(s0) -800002f0: 0840006f j 80000374 -800002f4: fec42703 lw a4,-20(s0) -800002f8: 4c400793 li a5,1220 -800002fc: 02f70733 mul a4,a4,a5 -80000300: 810007b7 lui a5,0x81000 -80000304: 34478793 addi a5,a5,836 # 81000344 -80000308: 00f707b3 add a5,a4,a5 -8000030c: 00078513 mv a0,a5 -80000310: 3e8000ef jal ra,800006f8 -80000314: 00050793 mv a5,a0 -80000318: 04079863 bnez a5,80000368 -8000031c: fec42703 lw a4,-20(s0) -80000320: 4c400793 li a5,1220 -80000324: 02f70733 mul a4,a4,a5 -80000328: 810007b7 lui a5,0x81000 -8000032c: 34478793 addi a5,a5,836 # 81000344 -80000330: 00f707b3 add a5,a4,a5 -80000334: fd440713 addi a4,s0,-44 -80000338: 00070593 mv a1,a4 -8000033c: 00078513 mv a0,a5 -80000340: 330000ef jal ra,80000670 -80000344: fdc42783 lw a5,-36(s0) -80000348: 00078113 mv sp,a5 -8000034c: fd842783 lw a5,-40(s0) -80000350: fd442583 lw a1,-44(s0) -80000354: fe042603 lw a2,-32(s0) -80000358: fe442683 lw a3,-28(s0) -8000035c: fe842703 lw a4,-24(s0) -80000360: 00078513 mv a0,a5 -80000364: cf9ff0ef jal ra,8000005c -80000368: fec42783 lw a5,-20(s0) -8000036c: 00178793 addi a5,a5,1 -80000370: fef42623 sw a5,-20(s0) -80000374: fec42703 lw a4,-20(s0) -80000378: 00700793 li a5,7 -8000037c: f6e7dce3 bge a5,a4,800002f4 -80000380: 00098113 mv sp,s3 -80000384: ce9ff0ef jal ra,8000006c -80000388: 810007b7 lui a5,0x81000 -8000038c: 04878513 addi a0,a5,72 # 81000048 -80000390: 398000ef jal ra,80000728 -80000394: 00020793 mv a5,tp -80000398: 06078863 beqz a5,80000408 -8000039c: 810007b7 lui a5,0x81000 -800003a0: 34478513 addi a0,a5,836 # 81000344 -800003a4: 354000ef jal ra,800006f8 -800003a8: 00050793 mv a5,a0 -800003ac: 04079e63 bnez a5,80000408 -800003b0: 810007b7 lui a5,0x81000 -800003b4: 05878513 addi a0,a5,88 # 81000058 -800003b8: 370000ef jal ra,80000728 -800003bc: fbc40793 addi a5,s0,-68 -800003c0: 00078593 mv a1,a5 -800003c4: 810007b7 lui a5,0x81000 -800003c8: 34478513 addi a0,a5,836 # 81000344 -800003cc: 2a4000ef jal ra,80000670 -800003d0: fc042783 lw a5,-64(s0) -800003d4: 00078593 mv a1,a5 -800003d8: 810007b7 lui a5,0x81000 -800003dc: 07078513 addi a0,a5,112 # 81000070 -800003e0: 448000ef jal ra,80000828 -800003e4: fc442783 lw a5,-60(s0) -800003e8: 00078113 mv sp,a5 -800003ec: fc042783 lw a5,-64(s0) -800003f0: fbc42583 lw a1,-68(s0) -800003f4: fc842603 lw a2,-56(s0) -800003f8: fcc42683 lw a3,-52(s0) -800003fc: fd042703 lw a4,-48(s0) -80000400: 00078513 mv a0,a5 -80000404: c0dff0ef jal ra,80000010 -80000408: 00000013 nop -8000040c: 04c12083 lw ra,76(sp) -80000410: 04812403 lw s0,72(sp) -80000414: 05010113 addi sp,sp,80 -80000418: 00008067 ret +800001b4 : +800001b4: fe010113 addi sp,sp,-32 +800001b8: 00112e23 sw ra,28(sp) +800001bc: 00812c23 sw s0,24(sp) +800001c0: 02010413 addi s0,sp,32 +800001c4: fe042623 sw zero,-20(s0) +800001c8: 0300006f j 800001f8 +800001cc: fec42703 lw a4,-20(s0) +800001d0: 4c400793 li a5,1220 +800001d4: 02f70733 mul a4,a4,a5 +800001d8: 810007b7 lui a5,0x81000 +800001dc: 33478793 addi a5,a5,820 # 81000334 +800001e0: 00f707b3 add a5,a4,a5 +800001e4: 00078513 mv a0,a5 +800001e8: 414000ef jal ra,800005fc +800001ec: fec42783 lw a5,-20(s0) +800001f0: 00178793 addi a5,a5,1 +800001f4: fef42623 sw a5,-20(s0) +800001f8: fec42703 lw a4,-20(s0) +800001fc: 00700793 li a5,7 +80000200: fce7d6e3 bge a5,a4,800001cc +80000204: 00000013 nop +80000208: 01c12083 lw ra,28(sp) +8000020c: 01812403 lw s0,24(sp) +80000210: 02010113 addi sp,sp,32 +80000214: 00008067 ret -8000041c : -8000041c: fc010113 addi sp,sp,-64 -80000420: 02112e23 sw ra,60(sp) -80000424: 02812c23 sw s0,56(sp) -80000428: 04010413 addi s0,sp,64 -8000042c: fca42623 sw a0,-52(s0) -80000430: fcb42423 sw a1,-56(s0) -80000434: fcc42223 sw a2,-60(s0) -80000438: fcd42023 sw a3,-64(s0) -8000043c: d51ff0ef jal ra,8000018c -80000440: 00010913 mv s2,sp -80000444: fe042623 sw zero,-20(s0) -80000448: fe042423 sw zero,-24(s0) -8000044c: 08c0006f j 800004d8 -80000450: ffff09b7 lui s3,0xffff0 -80000454: 01310133 add sp,sp,s3 -80000458: fe842783 lw a5,-24(s0) -8000045c: fcf42823 sw a5,-48(s0) -80000460: fc842783 lw a5,-56(s0) -80000464: fcf42a23 sw a5,-44(s0) -80000468: 00010793 mv a5,sp -8000046c: fcf42c23 sw a5,-40(s0) -80000470: fc442783 lw a5,-60(s0) -80000474: fcf42e23 sw a5,-36(s0) -80000478: fc042783 lw a5,-64(s0) -8000047c: fef42023 sw a5,-32(s0) -80000480: fec42783 lw a5,-20(s0) -80000484: fef42223 sw a5,-28(s0) -80000488: fec42703 lw a4,-20(s0) -8000048c: 4c400793 li a5,1220 -80000490: 02f70733 mul a4,a4,a5 -80000494: 810007b7 lui a5,0x81000 -80000498: 34478793 addi a5,a5,836 # 81000344 -8000049c: 00f707b3 add a5,a4,a5 -800004a0: fd040713 addi a4,s0,-48 -800004a4: 00070593 mv a1,a4 -800004a8: 00078513 mv a0,a5 -800004ac: 15c000ef jal ra,80000608 -800004b0: fec42783 lw a5,-20(s0) -800004b4: 00178793 addi a5,a5,1 -800004b8: fef42623 sw a5,-20(s0) -800004bc: fec42703 lw a4,-20(s0) -800004c0: 00700793 li a5,7 -800004c4: 00e7d463 bge a5,a4,800004cc -800004c8: fe042623 sw zero,-20(s0) -800004cc: fe842783 lw a5,-24(s0) -800004d0: 00178793 addi a5,a5,1 -800004d4: fef42423 sw a5,-24(s0) -800004d8: fe842703 lw a4,-24(s0) -800004dc: fcc42783 lw a5,-52(s0) -800004e0: f6f768e3 bltu a4,a5,80000450 -800004e4: 00090113 mv sp,s2 -800004e8: dedff0ef jal ra,800002d4 -800004ec: 00000013 nop -800004f0: 03c12083 lw ra,60(sp) -800004f4: 03812403 lw s0,56(sp) -800004f8: 04010113 addi sp,sp,64 -800004fc: 00008067 ret +80000218 : +80000218: fd010113 addi sp,sp,-48 +8000021c: 02112623 sw ra,44(sp) +80000220: 02812423 sw s0,40(sp) +80000224: 03a12223 sw s10,36(sp) +80000228: 03010413 addi s0,sp,48 +8000022c: 000d0713 mv a4,s10 +80000230: 4c400793 li a5,1220 +80000234: 02f70733 mul a4,a4,a5 +80000238: 810007b7 lui a5,0x81000 +8000023c: 33478793 addi a5,a5,820 # 81000334 +80000240: 00f707b3 add a5,a4,a5 +80000244: 00078513 mv a0,a5 +80000248: 4c8000ef jal ra,80000710 +8000024c: 00050793 mv a5,a0 +80000250: 02078a63 beqz a5,80000284 +80000254: 000d0713 mv a4,s10 +80000258: 810007b7 lui a5,0x81000 +8000025c: 00271713 slli a4,a4,0x2 +80000260: 29478793 addi a5,a5,660 # 81000294 +80000264: 00f707b3 add a5,a4,a5 +80000268: 00100713 li a4,1 +8000026c: 00e7a023 sw a4,0(a5) +80000270: 000d0793 mv a5,s10 +80000274: 00079663 bnez a5,80000280 +80000278: e9dff0ef jal ra,80000114 +8000027c: 0580006f j 800002d4 +80000280: 00000073 ecall +80000284: 000d0713 mv a4,s10 +80000288: 4c400793 li a5,1220 +8000028c: 02f70733 mul a4,a4,a5 +80000290: 810007b7 lui a5,0x81000 +80000294: 33478793 addi a5,a5,820 # 81000334 +80000298: 00f707b3 add a5,a4,a5 +8000029c: fd840713 addi a4,s0,-40 +800002a0: 00070593 mv a1,a4 +800002a4: 00078513 mv a0,a5 +800002a8: 3e0000ef jal ra,80000688 +800002ac: fe042783 lw a5,-32(s0) +800002b0: 00078113 mv sp,a5 +800002b4: fdc42783 lw a5,-36(s0) +800002b8: fd842583 lw a1,-40(s0) +800002bc: fe442603 lw a2,-28(s0) +800002c0: fe842683 lw a3,-24(s0) +800002c4: fec42703 lw a4,-20(s0) +800002c8: 00078513 mv a0,a5 +800002cc: d5dff0ef jal ra,80000028 +800002d0: 00000073 ecall +800002d4: 02c12083 lw ra,44(sp) +800002d8: 02812403 lw s0,40(sp) +800002dc: 02412d03 lw s10,36(sp) +800002e0: 03010113 addi sp,sp,48 +800002e4: 00008067 ret -80000500 : -80000500: fd010113 addi sp,sp,-48 -80000504: 02812623 sw s0,44(sp) -80000508: 03010413 addi s0,sp,48 -8000050c: fca42e23 sw a0,-36(s0) -80000510: fe042623 sw zero,-20(s0) -80000514: 0540006f j 80000568 -80000518: fe042623 sw zero,-20(s0) -8000051c: fe042423 sw zero,-24(s0) -80000520: 03c0006f j 8000055c -80000524: 810007b7 lui a5,0x81000 -80000528: fe842703 lw a4,-24(s0) -8000052c: 00271713 slli a4,a4,0x2 -80000530: 2a478793 addi a5,a5,676 # 810002a4 -80000534: 00f707b3 add a5,a4,a5 -80000538: 0007a703 lw a4,0(a5) -8000053c: 00100793 li a5,1 -80000540: 00f71863 bne a4,a5,80000550 -80000544: fec42783 lw a5,-20(s0) -80000548: 00178793 addi a5,a5,1 -8000054c: fef42623 sw a5,-20(s0) -80000550: fe842783 lw a5,-24(s0) -80000554: 00178793 addi a5,a5,1 -80000558: fef42423 sw a5,-24(s0) -8000055c: fe842703 lw a4,-24(s0) -80000560: 00700793 li a5,7 -80000564: fce7d0e3 bge a5,a4,80000524 -80000568: fec42703 lw a4,-20(s0) -8000056c: fdc42783 lw a5,-36(s0) -80000570: faf714e3 bne a4,a5,80000518 -80000574: fe042223 sw zero,-28(s0) -80000578: 0280006f j 800005a0 -8000057c: 810007b7 lui a5,0x81000 -80000580: fe442703 lw a4,-28(s0) -80000584: 00271713 slli a4,a4,0x2 -80000588: 2a478793 addi a5,a5,676 # 810002a4 -8000058c: 00f707b3 add a5,a4,a5 -80000590: 0007a023 sw zero,0(a5) -80000594: fe442783 lw a5,-28(s0) -80000598: 00178793 addi a5,a5,1 -8000059c: fef42223 sw a5,-28(s0) -800005a0: fe442783 lw a5,-28(s0) -800005a4: fdc42703 lw a4,-36(s0) -800005a8: fce7eae3 bltu a5,a4,8000057c -800005ac: 00000013 nop -800005b0: 02c12403 lw s0,44(sp) -800005b4: 03010113 addi sp,sp,48 -800005b8: 00008067 ret +800002e8 : +800002e8: fb010113 addi sp,sp,-80 +800002ec: 04112623 sw ra,76(sp) +800002f0: 04812423 sw s0,72(sp) +800002f4: 05010413 addi s0,sp,80 +800002f8: eadff0ef jal ra,800001a4 +800002fc: fea42423 sw a0,-24(s0) +80000300: 00010993 mv s3,sp +80000304: 00100793 li a5,1 +80000308: fef42623 sw a5,-20(s0) +8000030c: 0840006f j 80000390 +80000310: fec42703 lw a4,-20(s0) +80000314: 4c400793 li a5,1220 +80000318: 02f70733 mul a4,a4,a5 +8000031c: 810007b7 lui a5,0x81000 +80000320: 33478793 addi a5,a5,820 # 81000334 +80000324: 00f707b3 add a5,a4,a5 +80000328: 00078513 mv a0,a5 +8000032c: 3e4000ef jal ra,80000710 +80000330: 00050793 mv a5,a0 +80000334: 04079863 bnez a5,80000384 +80000338: fec42703 lw a4,-20(s0) +8000033c: 4c400793 li a5,1220 +80000340: 02f70733 mul a4,a4,a5 +80000344: 810007b7 lui a5,0x81000 +80000348: 33478793 addi a5,a5,820 # 81000334 +8000034c: 00f707b3 add a5,a4,a5 +80000350: fd040713 addi a4,s0,-48 +80000354: 00070593 mv a1,a4 +80000358: 00078513 mv a0,a5 +8000035c: 32c000ef jal ra,80000688 +80000360: fd842783 lw a5,-40(s0) +80000364: 00078113 mv sp,a5 +80000368: fd442783 lw a5,-44(s0) +8000036c: fd042583 lw a1,-48(s0) +80000370: fdc42603 lw a2,-36(s0) +80000374: fe042683 lw a3,-32(s0) +80000378: fe442703 lw a4,-28(s0) +8000037c: 00078513 mv a0,a5 +80000380: cf5ff0ef jal ra,80000074 +80000384: fec42783 lw a5,-20(s0) +80000388: 00178793 addi a5,a5,1 +8000038c: fef42623 sw a5,-20(s0) +80000390: fec42783 lw a5,-20(s0) +80000394: fe842703 lw a4,-24(s0) +80000398: f6e7ece3 bltu a5,a4,80000310 +8000039c: 00098113 mv sp,s3 +800003a0: ce5ff0ef jal ra,80000084 +800003a4: 00020793 mv a5,tp +800003a8: 04078863 beqz a5,800003f8 +800003ac: 810007b7 lui a5,0x81000 +800003b0: 33478513 addi a0,a5,820 # 81000334 +800003b4: 35c000ef jal ra,80000710 +800003b8: 00050793 mv a5,a0 +800003bc: 02079e63 bnez a5,800003f8 +800003c0: fb840793 addi a5,s0,-72 +800003c4: 00078593 mv a1,a5 +800003c8: 810007b7 lui a5,0x81000 +800003cc: 33478513 addi a0,a5,820 # 81000334 +800003d0: 2b8000ef jal ra,80000688 +800003d4: fc042783 lw a5,-64(s0) +800003d8: 00078113 mv sp,a5 +800003dc: fbc42783 lw a5,-68(s0) +800003e0: fb842583 lw a1,-72(s0) +800003e4: fc442603 lw a2,-60(s0) +800003e8: fc842683 lw a3,-56(s0) +800003ec: fcc42703 lw a4,-52(s0) +800003f0: 00078513 mv a0,a5 +800003f4: c35ff0ef jal ra,80000028 +800003f8: 00000013 nop +800003fc: 04c12083 lw ra,76(sp) +80000400: 04812403 lw s0,72(sp) +80000404: 05010113 addi sp,sp,80 +80000408: 00008067 ret -800005bc : -800005bc: ff010113 addi sp,sp,-16 -800005c0: 00812623 sw s0,12(sp) -800005c4: 01712423 sw s7,8(sp) -800005c8: 01010413 addi s0,sp,16 -800005cc: 000b8793 mv a5,s7 -800005d0: 00078513 mv a0,a5 -800005d4: 00c12403 lw s0,12(sp) -800005d8: 00812b83 lw s7,8(sp) -800005dc: 01010113 addi sp,sp,16 -800005e0: 00008067 ret +8000040c : +8000040c: fb010113 addi sp,sp,-80 +80000410: 04112623 sw ra,76(sp) +80000414: 04812423 sw s0,72(sp) +80000418: 05010413 addi s0,sp,80 +8000041c: faa42e23 sw a0,-68(s0) +80000420: fab42c23 sw a1,-72(s0) +80000424: fac42a23 sw a2,-76(s0) +80000428: fad42823 sw a3,-80(s0) +8000042c: d89ff0ef jal ra,800001b4 +80000430: d75ff0ef jal ra,800001a4 +80000434: fea42223 sw a0,-28(s0) +80000438: fe442583 lw a1,-28(s0) +8000043c: 810007b7 lui a5,0x81000 +80000440: 04078513 addi a0,a5,64 # 81000040 +80000444: 3fc000ef jal ra,80000840 +80000448: 00010913 mv s2,sp +8000044c: fe042623 sw zero,-20(s0) +80000450: fe042423 sw zero,-24(s0) +80000454: 08c0006f j 800004e0 +80000458: ffff09b7 lui s3,0xffff0 +8000045c: 01310133 add sp,sp,s3 +80000460: fe842783 lw a5,-24(s0) +80000464: fcf42623 sw a5,-52(s0) +80000468: fb842783 lw a5,-72(s0) +8000046c: fcf42823 sw a5,-48(s0) +80000470: 00010793 mv a5,sp +80000474: fcf42a23 sw a5,-44(s0) +80000478: fb442783 lw a5,-76(s0) +8000047c: fcf42c23 sw a5,-40(s0) +80000480: fb042783 lw a5,-80(s0) +80000484: fcf42e23 sw a5,-36(s0) +80000488: fec42783 lw a5,-20(s0) +8000048c: fef42023 sw a5,-32(s0) +80000490: fec42703 lw a4,-20(s0) +80000494: 4c400793 li a5,1220 +80000498: 02f70733 mul a4,a4,a5 +8000049c: 810007b7 lui a5,0x81000 +800004a0: 33478793 addi a5,a5,820 # 81000334 +800004a4: 00f707b3 add a5,a4,a5 +800004a8: fcc40713 addi a4,s0,-52 +800004ac: 00070593 mv a1,a4 +800004b0: 00078513 mv a0,a5 +800004b4: 16c000ef jal ra,80000620 +800004b8: fec42783 lw a5,-20(s0) +800004bc: 00178793 addi a5,a5,1 +800004c0: fef42623 sw a5,-20(s0) +800004c4: fec42783 lw a5,-20(s0) +800004c8: fe442703 lw a4,-28(s0) +800004cc: 00e7e463 bltu a5,a4,800004d4 +800004d0: fe042623 sw zero,-20(s0) +800004d4: fe842783 lw a5,-24(s0) +800004d8: 00178793 addi a5,a5,1 +800004dc: fef42423 sw a5,-24(s0) +800004e0: fe842703 lw a4,-24(s0) +800004e4: fbc42783 lw a5,-68(s0) +800004e8: f6f768e3 bltu a4,a5,80000458 +800004ec: 00090113 mv sp,s2 +800004f0: df9ff0ef jal ra,800002e8 +800004f4: 00000013 nop +800004f8: 04c12083 lw ra,76(sp) +800004fc: 04812403 lw s0,72(sp) +80000500: 05010113 addi sp,sp,80 +80000504: 00008067 ret -800005e4 : -800005e4: 00050293 mv t0,a0 -800005e8: 00000313 li t1,0 -800005ec: 00700393 li t2,7 -800005f0: 0062a023 sw t1,0(t0) -800005f4: 0062a223 sw t1,4(t0) -800005f8: 0062a423 sw t1,8(t0) -800005fc: 0072a623 sw t2,12(t0) -80000600: 0062a823 sw t1,16(t0) -80000604: 00008067 ret +80000508 : +80000508: fd010113 addi sp,sp,-48 +8000050c: 02112623 sw ra,44(sp) +80000510: 02812423 sw s0,40(sp) +80000514: 03010413 addi s0,sp,48 +80000518: fca42e23 sw a0,-36(s0) +8000051c: c89ff0ef jal ra,800001a4 +80000520: fea42023 sw a0,-32(s0) +80000524: fe042623 sw zero,-20(s0) +80000528: 0540006f j 8000057c +8000052c: fe042623 sw zero,-20(s0) +80000530: fe042423 sw zero,-24(s0) +80000534: 03c0006f j 80000570 +80000538: 810007b7 lui a5,0x81000 +8000053c: fe842703 lw a4,-24(s0) +80000540: 00271713 slli a4,a4,0x2 +80000544: 29478793 addi a5,a5,660 # 81000294 +80000548: 00f707b3 add a5,a4,a5 +8000054c: 0007a703 lw a4,0(a5) +80000550: 00100793 li a5,1 +80000554: 00f71863 bne a4,a5,80000564 +80000558: fec42783 lw a5,-20(s0) +8000055c: 00178793 addi a5,a5,1 +80000560: fef42623 sw a5,-20(s0) +80000564: fe842783 lw a5,-24(s0) +80000568: 00178793 addi a5,a5,1 +8000056c: fef42423 sw a5,-24(s0) +80000570: fe842783 lw a5,-24(s0) +80000574: fe042703 lw a4,-32(s0) +80000578: fce7e0e3 bltu a5,a4,80000538 +8000057c: fec42703 lw a4,-20(s0) +80000580: fdc42783 lw a5,-36(s0) +80000584: faf714e3 bne a4,a5,8000052c +80000588: fe042223 sw zero,-28(s0) +8000058c: 0280006f j 800005b4 +80000590: 810007b7 lui a5,0x81000 +80000594: fe442703 lw a4,-28(s0) +80000598: 00271713 slli a4,a4,0x2 +8000059c: 29478793 addi a5,a5,660 # 81000294 +800005a0: 00f707b3 add a5,a4,a5 +800005a4: 0007a023 sw zero,0(a5) +800005a8: fe442783 lw a5,-28(s0) +800005ac: 00178793 addi a5,a5,1 +800005b0: fef42223 sw a5,-28(s0) +800005b4: fe442783 lw a5,-28(s0) +800005b8: fe042703 lw a4,-32(s0) +800005bc: fce7eae3 bltu a5,a4,80000590 +800005c0: 00000013 nop +800005c4: 02c12083 lw ra,44(sp) +800005c8: 02812403 lw s0,40(sp) +800005cc: 03010113 addi sp,sp,48 +800005d0: 00008067 ret -80000608 : -80000608: 00050293 mv t0,a0 -8000060c: 0082a303 lw t1,8(t0) -80000610: 00130313 addi t1,t1,1 -80000614: 0062a423 sw t1,8(t0) -80000618: 01428313 addi t1,t0,20 -8000061c: 0042ae83 lw t4,4(t0) -80000620: 005e9393 slli t2,t4,0x5 -80000624: 00730333 add t1,t1,t2 -80000628: 0005ae03 lw t3,0(a1) -8000062c: 01c32023 sw t3,0(t1) -80000630: 0045ae03 lw t3,4(a1) -80000634: 01c32223 sw t3,4(t1) -80000638: 0085ae03 lw t3,8(a1) -8000063c: 01c32423 sw t3,8(t1) -80000640: 00c5ae03 lw t3,12(a1) -80000644: 01c32623 sw t3,12(t1) -80000648: 0105ae03 lw t3,16(a1) -8000064c: 01c32823 sw t3,16(t1) -80000650: 0145ae03 lw t3,20(a1) -80000654: 01c32a23 sw t3,20(t1) -80000658: 001e8e93 addi t4,t4,1 -8000065c: 03200f13 li t5,50 -80000660: 01ee9463 bne t4,t5,80000668 -80000664: 00000e93 li t4,0 +800005d4 : +800005d4: ff010113 addi sp,sp,-16 +800005d8: 00812623 sw s0,12(sp) +800005dc: 01712423 sw s7,8(sp) +800005e0: 01010413 addi s0,sp,16 +800005e4: 000b8793 mv a5,s7 +800005e8: 00078513 mv a0,a5 +800005ec: 00c12403 lw s0,12(sp) +800005f0: 00812b83 lw s7,8(sp) +800005f4: 01010113 addi sp,sp,16 +800005f8: 00008067 ret -80000668 : -80000668: 01d2a223 sw t4,4(t0) -8000066c: 00008067 ret +800005fc : +800005fc: 00050293 mv t0,a0 +80000600: 00000313 li t1,0 +80000604: 00700393 li t2,7 +80000608: 0062a023 sw t1,0(t0) +8000060c: 0062a223 sw t1,4(t0) +80000610: 0062a423 sw t1,8(t0) +80000614: 0072a623 sw t2,12(t0) +80000618: 0062a823 sw t1,16(t0) +8000061c: 00008067 ret -80000670 : -80000670: 00050293 mv t0,a0 -80000674: 0082a303 lw t1,8(t0) -80000678: fff30313 addi t1,t1,-1 -8000067c: 0062a423 sw t1,8(t0) -80000680: 01428313 addi t1,t0,20 -80000684: 0002ae83 lw t4,0(t0) -80000688: 03200f93 li t6,50 -8000068c: 000e8f13 mv t5,t4 -80000690: 001f0f13 addi t5,t5,1 -80000694: 01ff1463 bne t5,t6,8000069c -80000698: 00000f13 li t5,0 +80000620 : +80000620: 00050293 mv t0,a0 +80000624: 0082a303 lw t1,8(t0) +80000628: 00130313 addi t1,t1,1 +8000062c: 0062a423 sw t1,8(t0) +80000630: 01428313 addi t1,t0,20 +80000634: 0042ae83 lw t4,4(t0) +80000638: 005e9393 slli t2,t4,0x5 +8000063c: 00730333 add t1,t1,t2 +80000640: 0005ae03 lw t3,0(a1) +80000644: 01c32023 sw t3,0(t1) +80000648: 0045ae03 lw t3,4(a1) +8000064c: 01c32223 sw t3,4(t1) +80000650: 0085ae03 lw t3,8(a1) +80000654: 01c32423 sw t3,8(t1) +80000658: 00c5ae03 lw t3,12(a1) +8000065c: 01c32623 sw t3,12(t1) +80000660: 0105ae03 lw t3,16(a1) +80000664: 01c32823 sw t3,16(t1) +80000668: 0145ae03 lw t3,20(a1) +8000066c: 01c32a23 sw t3,20(t1) +80000670: 001e8e93 addi t4,t4,1 +80000674: 03200f13 li t5,50 +80000678: 01ee9463 bne t4,t5,80000680 +8000067c: 00000e93 li t4,0 -8000069c : -8000069c: 01e2a023 sw t5,0(t0) -800006a0: 005e9393 slli t2,t4,0x5 -800006a4: 00730333 add t1,t1,t2 -800006a8: 00032e03 lw t3,0(t1) -800006ac: 01c5a023 sw t3,0(a1) -800006b0: 00432e03 lw t3,4(t1) -800006b4: 01c5a223 sw t3,4(a1) -800006b8: 00832e03 lw t3,8(t1) -800006bc: 01c5a423 sw t3,8(a1) -800006c0: 00c32e03 lw t3,12(t1) -800006c4: 01c5a623 sw t3,12(a1) -800006c8: 01032e03 lw t3,16(t1) -800006cc: 01c5a823 sw t3,16(a1) -800006d0: 01432e03 lw t3,20(t1) -800006d4: 01c5aa23 sw t3,20(a1) -800006d8: 00008067 ret +80000680 : +80000680: 01d2a223 sw t4,4(t0) +80000684: 00008067 ret -800006dc : -800006dc: 00050293 mv t0,a0 -800006e0: 0082a303 lw t1,8(t0) -800006e4: 00000513 li a0,0 -800006e8: 03200e13 li t3,50 -800006ec: 006e1463 bne t3,t1,800006f4 -800006f0: 00150513 addi a0,a0,1 +80000688 : +80000688: 00050293 mv t0,a0 +8000068c: 0082a303 lw t1,8(t0) +80000690: fff30313 addi t1,t1,-1 +80000694: 0062a423 sw t1,8(t0) +80000698: 01428313 addi t1,t0,20 +8000069c: 0002ae83 lw t4,0(t0) +800006a0: 03200f93 li t6,50 +800006a4: 000e8f13 mv t5,t4 +800006a8: 001f0f13 addi t5,t5,1 +800006ac: 01ff1463 bne t5,t6,800006b4 +800006b0: 00000f13 li t5,0 -800006f4 : -800006f4: 00008067 ret +800006b4 : +800006b4: 01e2a023 sw t5,0(t0) +800006b8: 005e9393 slli t2,t4,0x5 +800006bc: 00730333 add t1,t1,t2 +800006c0: 00032e03 lw t3,0(t1) +800006c4: 01c5a023 sw t3,0(a1) +800006c8: 00432e03 lw t3,4(t1) +800006cc: 01c5a223 sw t3,4(a1) +800006d0: 00832e03 lw t3,8(t1) +800006d4: 01c5a423 sw t3,8(a1) +800006d8: 00c32e03 lw t3,12(t1) +800006dc: 01c5a623 sw t3,12(a1) +800006e0: 01032e03 lw t3,16(t1) +800006e4: 01c5a823 sw t3,16(a1) +800006e8: 01432e03 lw t3,20(t1) +800006ec: 01c5aa23 sw t3,20(a1) +800006f0: 00008067 ret -800006f8 : -800006f8: 00050293 mv t0,a0 -800006fc: 0082a303 lw t1,8(t0) -80000700: 00000513 li a0,0 -80000704: 00000e13 li t3,0 -80000708: 006e1463 bne t3,t1,80000710 -8000070c: 00150513 addi a0,a0,1 +800006f4 : +800006f4: 00050293 mv t0,a0 +800006f8: 0082a303 lw t1,8(t0) +800006fc: 00000513 li a0,0 +80000700: 03200e13 li t3,50 +80000704: 006e1463 bne t3,t1,8000070c +80000708: 00150513 addi a0,a0,1 -80000710 : -80000710: 00008067 ret +8000070c : +8000070c: 00008067 ret -80000714 : -80000714: 00050293 mv t0,a0 -80000718: 00c2a303 lw t1,12(t0) -8000071c: 0102a383 lw t2,16(t0) -80000720: 0063b533 sltu a0,t2,t1 -80000724: 00008067 ret +80000710 : +80000710: 00050293 mv t0,a0 +80000714: 0082a303 lw t1,8(t0) +80000718: 00000513 li a0,0 +8000071c: 00000e13 li t3,0 +80000720: 006e1463 bne t3,t1,80000728 +80000724: 00150513 addi a0,a0,1 -80000728 : -80000728: ff410113 addi sp,sp,-12 -8000072c: 00112023 sw ra,0(sp) -80000730: 00b12223 sw a1,4(sp) +80000728 : +80000728: 00008067 ret -80000734 : -80000734: 00054583 lbu a1,0(a0) -80000738: 00058863 beqz a1,80000748 -8000073c: 01c000ef jal ra,80000758 -80000740: 00150513 addi a0,a0,1 -80000744: ff1ff06f j 80000734 +8000072c : +8000072c: 00050293 mv t0,a0 +80000730: 00c2a303 lw t1,12(t0) +80000734: 0102a383 lw t2,16(t0) +80000738: 0063b533 sltu a0,t2,t1 +8000073c: 00008067 ret -80000748 : -80000748: 00012083 lw ra,0(sp) -8000074c: 00412583 lw a1,4(sp) -80000750: 00c10113 addi sp,sp,12 -80000754: 00008067 ret +80000740 : +80000740: ff410113 addi sp,sp,-12 +80000744: 00112023 sw ra,0(sp) +80000748: 00b12223 sw a1,4(sp) -80000758 : -80000758: 000108b7 lui a7,0x10 -8000075c: 00b8a023 sw a1,0(a7) # 10000 -80000760: 00008067 ret +8000074c : +8000074c: 00054583 lbu a1,0(a0) +80000750: 00058863 beqz a1,80000760 +80000754: 01c000ef jal ra,80000770 +80000758: 00150513 addi a0,a0,1 +8000075c: ff1ff06f j 8000074c -80000764 : -80000764: fd010113 addi sp,sp,-48 -80000768: 02112623 sw ra,44(sp) -8000076c: 02812423 sw s0,40(sp) -80000770: 03010413 addi s0,sp,48 -80000774: fca42e23 sw a0,-36(s0) -80000778: fdc42703 lw a4,-36(s0) -8000077c: 00f00793 li a5,15 -80000780: 02e7e463 bltu a5,a4,800007a8 -80000784: 810007b7 lui a5,0x81000 -80000788: fdc42703 lw a4,-36(s0) -8000078c: 00271713 slli a4,a4,0x2 -80000790: 1e478793 addi a5,a5,484 # 810001e4 -80000794: 00f707b3 add a5,a4,a5 -80000798: 0007a783 lw a5,0(a5) -8000079c: 00078513 mv a0,a5 -800007a0: f89ff0ef jal ra,80000728 -800007a4: 0740006f j 80000818 -800007a8: 02000793 li a5,32 -800007ac: fef42623 sw a5,-20(s0) -800007b0: fe0405a3 sb zero,-21(s0) -800007b4: fec42783 lw a5,-20(s0) -800007b8: ffc78793 addi a5,a5,-4 -800007bc: fdc42703 lw a4,-36(s0) -800007c0: 00f757b3 srl a5,a4,a5 -800007c4: 00f7f793 andi a5,a5,15 -800007c8: fef42223 sw a5,-28(s0) -800007cc: fe442783 lw a5,-28(s0) -800007d0: 00078663 beqz a5,800007dc -800007d4: 00100793 li a5,1 -800007d8: fef405a3 sb a5,-21(s0) -800007dc: feb44783 lbu a5,-21(s0) -800007e0: 02078263 beqz a5,80000804 -800007e4: 810007b7 lui a5,0x81000 -800007e8: fe442703 lw a4,-28(s0) -800007ec: 00271713 slli a4,a4,0x2 -800007f0: 1e478793 addi a5,a5,484 # 810001e4 -800007f4: 00f707b3 add a5,a4,a5 -800007f8: 0007a783 lw a5,0(a5) -800007fc: 00078513 mv a0,a5 -80000800: f29ff0ef jal ra,80000728 -80000804: fec42783 lw a5,-20(s0) -80000808: ffc78793 addi a5,a5,-4 -8000080c: fef42623 sw a5,-20(s0) -80000810: fec42783 lw a5,-20(s0) -80000814: faf040e3 bgtz a5,800007b4 -80000818: 02c12083 lw ra,44(sp) -8000081c: 02812403 lw s0,40(sp) -80000820: 03010113 addi sp,sp,48 -80000824: 00008067 ret +80000760 : +80000760: 00012083 lw ra,0(sp) +80000764: 00412583 lw a1,4(sp) +80000768: 00c10113 addi sp,sp,12 +8000076c: 00008067 ret -80000828 : -80000828: fe010113 addi sp,sp,-32 -8000082c: 00112e23 sw ra,28(sp) -80000830: 00812c23 sw s0,24(sp) -80000834: 02010413 addi s0,sp,32 -80000838: fea42623 sw a0,-20(s0) -8000083c: feb42423 sw a1,-24(s0) -80000840: fec42503 lw a0,-20(s0) -80000844: ee5ff0ef jal ra,80000728 -80000848: fe842503 lw a0,-24(s0) -8000084c: f19ff0ef jal ra,80000764 -80000850: 810007b7 lui a5,0x81000 -80000854: 0c078513 addi a0,a5,192 # 810000c0 -80000858: ed1ff0ef jal ra,80000728 -8000085c: 00000013 nop -80000860: 01c12083 lw ra,28(sp) -80000864: 01812403 lw s0,24(sp) -80000868: 02010113 addi sp,sp,32 -8000086c: 00008067 ret +80000770 : +80000770: 000108b7 lui a7,0x10 +80000774: 00b8a023 sw a1,0(a7) # 10000 +80000778: 00008067 ret -80000870 : -80000870: fd010113 addi sp,sp,-48 -80000874: 02112623 sw ra,44(sp) -80000878: 02812423 sw s0,40(sp) -8000087c: 03010413 addi s0,sp,48 -80000880: fca42e23 sw a0,-36(s0) -80000884: fcb42c23 sw a1,-40(s0) -80000888: fcc42a23 sw a2,-44(s0) -8000088c: fcd42823 sw a3,-48(s0) -80000890: 810037b7 lui a5,0x81003 -80000894: fdc42703 lw a4,-36(s0) -80000898: 98e7a223 sw a4,-1660(a5) # 81002984 -8000089c: 810037b7 lui a5,0x81003 -800008a0: 98478793 addi a5,a5,-1660 # 81002984 -800008a4: fd842703 lw a4,-40(s0) -800008a8: 00e7a223 sw a4,4(a5) -800008ac: 810037b7 lui a5,0x81003 -800008b0: 98478793 addi a5,a5,-1660 # 81002984 -800008b4: fd442703 lw a4,-44(s0) -800008b8: 00e7a423 sw a4,8(a5) -800008bc: 810037b7 lui a5,0x81003 -800008c0: 98478793 addi a5,a5,-1660 # 81002984 -800008c4: fd042703 lw a4,-48(s0) -800008c8: 00e7a623 sw a4,12(a5) -800008cc: fd042783 lw a5,-48(s0) -800008d0: 0037d793 srli a5,a5,0x3 -800008d4: fef42623 sw a5,-20(s0) -800008d8: fd042783 lw a5,-48(s0) -800008dc: 0077f793 andi a5,a5,7 -800008e0: 00078863 beqz a5,800008f0 -800008e4: fec42783 lw a5,-20(s0) -800008e8: 00178793 addi a5,a5,1 -800008ec: fef42623 sw a5,-20(s0) -800008f0: 810037b7 lui a5,0x81003 -800008f4: 98478793 addi a5,a5,-1660 # 81002984 -800008f8: fec42703 lw a4,-20(s0) -800008fc: 00e7a823 sw a4,16(a5) -80000900: fd042703 lw a4,-48(s0) -80000904: 00700793 li a5,7 -80000908: 02e7f263 bgeu a5,a4,8000092c -8000090c: 810037b7 lui a5,0x81003 -80000910: 98478693 addi a3,a5,-1660 # 81002984 -80000914: 800017b7 lui a5,0x80001 -80000918: 97c78613 addi a2,a5,-1668 # 8000097c -8000091c: 00800593 li a1,8 -80000920: fd042503 lw a0,-48(s0) -80000924: af9ff0ef jal ra,8000041c -80000928: 0200006f j 80000948 -8000092c: 810037b7 lui a5,0x81003 -80000930: 98478693 addi a3,a5,-1660 # 81002984 -80000934: 800017b7 lui a5,0x80001 -80000938: 97c78613 addi a2,a5,-1668 # 8000097c -8000093c: fd042583 lw a1,-48(s0) -80000940: fd042503 lw a0,-48(s0) -80000944: ad9ff0ef jal ra,8000041c -80000948: fd042703 lw a4,-48(s0) -8000094c: 00800793 li a5,8 -80000950: 00e7f863 bgeu a5,a4,80000960 -80000954: 00800513 li a0,8 -80000958: ba9ff0ef jal ra,80000500 -8000095c: 00c0006f j 80000968 -80000960: fd042503 lw a0,-48(s0) -80000964: b9dff0ef jal ra,80000500 -80000968: 00000013 nop -8000096c: 02c12083 lw ra,44(sp) -80000970: 02812403 lw s0,40(sp) -80000974: 03010113 addi sp,sp,48 -80000978: 00008067 ret +8000077c : +8000077c: fd010113 addi sp,sp,-48 +80000780: 02112623 sw ra,44(sp) +80000784: 02812423 sw s0,40(sp) +80000788: 03010413 addi s0,sp,48 +8000078c: fca42e23 sw a0,-36(s0) +80000790: fdc42703 lw a4,-36(s0) +80000794: 00f00793 li a5,15 +80000798: 02e7e463 bltu a5,a4,800007c0 +8000079c: 810007b7 lui a5,0x81000 +800007a0: fdc42703 lw a4,-36(s0) +800007a4: 00271713 slli a4,a4,0x2 +800007a8: 1d478793 addi a5,a5,468 # 810001d4 +800007ac: 00f707b3 add a5,a4,a5 +800007b0: 0007a783 lw a5,0(a5) +800007b4: 00078513 mv a0,a5 +800007b8: f89ff0ef jal ra,80000740 +800007bc: 0740006f j 80000830 +800007c0: 02000793 li a5,32 +800007c4: fef42623 sw a5,-20(s0) +800007c8: fe0405a3 sb zero,-21(s0) +800007cc: fec42783 lw a5,-20(s0) +800007d0: ffc78793 addi a5,a5,-4 +800007d4: fdc42703 lw a4,-36(s0) +800007d8: 00f757b3 srl a5,a4,a5 +800007dc: 00f7f793 andi a5,a5,15 +800007e0: fef42223 sw a5,-28(s0) +800007e4: fe442783 lw a5,-28(s0) +800007e8: 00078663 beqz a5,800007f4 +800007ec: 00100793 li a5,1 +800007f0: fef405a3 sb a5,-21(s0) +800007f4: feb44783 lbu a5,-21(s0) +800007f8: 02078263 beqz a5,8000081c +800007fc: 810007b7 lui a5,0x81000 +80000800: fe442703 lw a4,-28(s0) +80000804: 00271713 slli a4,a4,0x2 +80000808: 1d478793 addi a5,a5,468 # 810001d4 +8000080c: 00f707b3 add a5,a4,a5 +80000810: 0007a783 lw a5,0(a5) +80000814: 00078513 mv a0,a5 +80000818: f29ff0ef jal ra,80000740 +8000081c: fec42783 lw a5,-20(s0) +80000820: ffc78793 addi a5,a5,-4 +80000824: fef42623 sw a5,-20(s0) +80000828: fec42783 lw a5,-20(s0) +8000082c: faf040e3 bgtz a5,800007cc +80000830: 02c12083 lw ra,44(sp) +80000834: 02812403 lw s0,40(sp) +80000838: 03010113 addi sp,sp,48 +8000083c: 00008067 ret -8000097c <_vx_mat_mult>: -8000097c: fa010113 addi sp,sp,-96 -80000980: 04112e23 sw ra,92(sp) -80000984: 04812c23 sw s0,88(sp) -80000988: 06010413 addi s0,sp,96 -8000098c: faa42623 sw a0,-84(s0) -80000990: fab42423 sw a1,-88(s0) -80000994: c29ff0ef jal ra,800005bc -80000998: fca42c23 sw a0,-40(s0) -8000099c: fd842783 lw a5,-40(s0) -800009a0: 0007a783 lw a5,0(a5) -800009a4: fcf42a23 sw a5,-44(s0) -800009a8: fd842783 lw a5,-40(s0) -800009ac: 0047a783 lw a5,4(a5) -800009b0: fcf42823 sw a5,-48(s0) -800009b4: fd842783 lw a5,-40(s0) -800009b8: 0087a783 lw a5,8(a5) -800009bc: fcf42623 sw a5,-52(s0) -800009c0: fd842783 lw a5,-40(s0) -800009c4: 0107a783 lw a5,16(a5) -800009c8: fef42623 sw a5,-20(s0) -800009cc: fec42703 lw a4,-20(s0) -800009d0: fac42783 lw a5,-84(s0) -800009d4: 02f707b3 mul a5,a4,a5 -800009d8: fef42423 sw a5,-24(s0) -800009dc: fec42783 lw a5,-20(s0) -800009e0: 00079a63 bnez a5,800009f4 <_vx_mat_mult+0x78> -800009e4: 00100793 li a5,1 -800009e8: fef42623 sw a5,-20(s0) -800009ec: fac42783 lw a5,-84(s0) -800009f0: fef42423 sw a5,-24(s0) +80000840 : +80000840: fe010113 addi sp,sp,-32 +80000844: 00112e23 sw ra,28(sp) +80000848: 00812c23 sw s0,24(sp) +8000084c: 02010413 addi s0,sp,32 +80000850: fea42623 sw a0,-20(s0) +80000854: feb42423 sw a1,-24(s0) +80000858: fec42503 lw a0,-20(s0) +8000085c: ee5ff0ef jal ra,80000740 +80000860: fe842503 lw a0,-24(s0) +80000864: f19ff0ef jal ra,8000077c +80000868: 810007b7 lui a5,0x81000 +8000086c: 09878513 addi a0,a5,152 # 81000098 +80000870: ed1ff0ef jal ra,80000740 +80000874: 00000013 nop +80000878: 01c12083 lw ra,28(sp) +8000087c: 01812403 lw s0,24(sp) +80000880: 02010113 addi sp,sp,32 +80000884: 00008067 ret + +80000888 : +80000888: fd010113 addi sp,sp,-48 +8000088c: 02112623 sw ra,44(sp) +80000890: 02812423 sw s0,40(sp) +80000894: 03010413 addi s0,sp,48 +80000898: fca42e23 sw a0,-36(s0) +8000089c: fcb42c23 sw a1,-40(s0) +800008a0: fcc42a23 sw a2,-44(s0) +800008a4: fcd42823 sw a3,-48(s0) +800008a8: 810037b7 lui a5,0x81003 +800008ac: fdc42703 lw a4,-36(s0) +800008b0: 96e7aa23 sw a4,-1676(a5) # 81002974 +800008b4: 810037b7 lui a5,0x81003 +800008b8: 97478793 addi a5,a5,-1676 # 81002974 +800008bc: fd842703 lw a4,-40(s0) +800008c0: 00e7a223 sw a4,4(a5) +800008c4: 810037b7 lui a5,0x81003 +800008c8: 97478793 addi a5,a5,-1676 # 81002974 +800008cc: fd442703 lw a4,-44(s0) +800008d0: 00e7a423 sw a4,8(a5) +800008d4: 810037b7 lui a5,0x81003 +800008d8: 97478793 addi a5,a5,-1676 # 81002974 +800008dc: fd042703 lw a4,-48(s0) +800008e0: 00e7a623 sw a4,12(a5) +800008e4: 8c9ff0ef jal ra,800001ac +800008e8: fea42423 sw a0,-24(s0) +800008ec: fd042703 lw a4,-48(s0) +800008f0: fe842783 lw a5,-24(s0) +800008f4: 02f757b3 divu a5,a4,a5 +800008f8: fef42623 sw a5,-20(s0) +800008fc: fd042703 lw a4,-48(s0) +80000900: fe842783 lw a5,-24(s0) +80000904: 02f777b3 remu a5,a4,a5 +80000908: 00078863 beqz a5,80000918 +8000090c: fec42783 lw a5,-20(s0) +80000910: 00178793 addi a5,a5,1 +80000914: fef42623 sw a5,-20(s0) +80000918: fec42583 lw a1,-20(s0) +8000091c: 810007b7 lui a5,0x81000 +80000920: 0dc78513 addi a0,a5,220 # 810000dc +80000924: f1dff0ef jal ra,80000840 +80000928: 810037b7 lui a5,0x81003 +8000092c: 97478793 addi a5,a5,-1676 # 81002974 +80000930: fec42703 lw a4,-20(s0) +80000934: 00e7a823 sw a4,16(a5) +80000938: fd042703 lw a4,-48(s0) +8000093c: fe842783 lw a5,-24(s0) +80000940: 02f76263 bltu a4,a5,80000964 +80000944: 810037b7 lui a5,0x81003 +80000948: 97478693 addi a3,a5,-1676 # 81002974 +8000094c: 800017b7 lui a5,0x80001 +80000950: 9bc78613 addi a2,a5,-1604 # 800009bc +80000954: fe842583 lw a1,-24(s0) +80000958: fd042503 lw a0,-48(s0) +8000095c: ab1ff0ef jal ra,8000040c +80000960: 0200006f j 80000980 +80000964: 810037b7 lui a5,0x81003 +80000968: 97478693 addi a3,a5,-1676 # 81002974 +8000096c: 800017b7 lui a5,0x80001 +80000970: 9bc78613 addi a2,a5,-1604 # 800009bc +80000974: fd042583 lw a1,-48(s0) +80000978: fd042503 lw a0,-48(s0) +8000097c: a91ff0ef jal ra,8000040c +80000980: 825ff0ef jal ra,800001a4 +80000984: fea42223 sw a0,-28(s0) +80000988: fd042703 lw a4,-48(s0) +8000098c: fe442783 lw a5,-28(s0) +80000990: 00e7f863 bgeu a5,a4,800009a0 +80000994: fe442503 lw a0,-28(s0) +80000998: b71ff0ef jal ra,80000508 +8000099c: 00c0006f j 800009a8 +800009a0: fd042503 lw a0,-48(s0) +800009a4: b65ff0ef jal ra,80000508 +800009a8: 00000013 nop +800009ac: 02c12083 lw ra,44(sp) +800009b0: 02812403 lw s0,40(sp) +800009b4: 03010113 addi sp,sp,48 +800009b8: 00008067 ret + +800009bc <_vx_mat_mult>: +800009bc: fa010113 addi sp,sp,-96 +800009c0: 04112e23 sw ra,92(sp) +800009c4: 04812c23 sw s0,88(sp) +800009c8: 06010413 addi s0,sp,96 +800009cc: faa42623 sw a0,-84(s0) +800009d0: fab42423 sw a1,-88(s0) +800009d4: c01ff0ef jal ra,800005d4 +800009d8: fca42c23 sw a0,-40(s0) +800009dc: fd842783 lw a5,-40(s0) +800009e0: 0007a783 lw a5,0(a5) +800009e4: fcf42a23 sw a5,-44(s0) +800009e8: fd842783 lw a5,-40(s0) +800009ec: 0047a783 lw a5,4(a5) +800009f0: fcf42823 sw a5,-48(s0) 800009f4: fd842783 lw a5,-40(s0) -800009f8: 00c7a783 lw a5,12(a5) -800009fc: fcf42423 sw a5,-56(s0) -80000a00: fe042223 sw zero,-28(s0) -80000a04: 1240006f j 80000b28 <_vx_mat_mult+0x1ac> -80000a08: fe042023 sw zero,-32(s0) -80000a0c: fc042e23 sw zero,-36(s0) -80000a10: 0780006f j 80000a88 <_vx_mat_mult+0x10c> -80000a14: fa842703 lw a4,-88(s0) -80000a18: fc842783 lw a5,-56(s0) -80000a1c: 02f707b3 mul a5,a4,a5 -80000a20: fdc42703 lw a4,-36(s0) -80000a24: 00f707b3 add a5,a4,a5 -80000a28: fcf42223 sw a5,-60(s0) -80000a2c: fc842703 lw a4,-56(s0) -80000a30: fdc42783 lw a5,-36(s0) -80000a34: 02f707b3 mul a5,a4,a5 -80000a38: fe842703 lw a4,-24(s0) -80000a3c: 00f707b3 add a5,a4,a5 -80000a40: fcf42023 sw a5,-64(s0) -80000a44: fc442783 lw a5,-60(s0) -80000a48: 00279793 slli a5,a5,0x2 -80000a4c: fd442703 lw a4,-44(s0) -80000a50: 00f707b3 add a5,a4,a5 -80000a54: 0007a703 lw a4,0(a5) -80000a58: fc042783 lw a5,-64(s0) -80000a5c: 00279793 slli a5,a5,0x2 -80000a60: fd042683 lw a3,-48(s0) -80000a64: 00f687b3 add a5,a3,a5 -80000a68: 0007a783 lw a5,0(a5) -80000a6c: 02f707b3 mul a5,a4,a5 -80000a70: fe042703 lw a4,-32(s0) -80000a74: 00f707b3 add a5,a4,a5 -80000a78: fef42023 sw a5,-32(s0) -80000a7c: fdc42783 lw a5,-36(s0) -80000a80: 00178793 addi a5,a5,1 -80000a84: fcf42e23 sw a5,-36(s0) -80000a88: fdc42703 lw a4,-36(s0) -80000a8c: fc842783 lw a5,-56(s0) -80000a90: f8f762e3 bltu a4,a5,80000a14 <_vx_mat_mult+0x98> -80000a94: fa842703 lw a4,-88(s0) -80000a98: fc842783 lw a5,-56(s0) -80000a9c: 02f70733 mul a4,a4,a5 -80000aa0: fe842783 lw a5,-24(s0) -80000aa4: 00f707b3 add a5,a4,a5 -80000aa8: faf42e23 sw a5,-68(s0) -80000aac: fe842703 lw a4,-24(s0) -80000ab0: fc842783 lw a5,-56(s0) -80000ab4: 00f737b3 sltu a5,a4,a5 -80000ab8: 0ff7f793 andi a5,a5,255 -80000abc: faf42c23 sw a5,-72(s0) -80000ac0: fb842783 lw a5,-72(s0) -80000ac4: 0017b793 seqz a5,a5 -80000ac8: faf40ba3 sb a5,-73(s0) -80000acc: fb744783 lbu a5,-73(s0) -80000ad0: 00078f13 mv t5,a5 -80000ad4: 800017b7 lui a5,0x80001 -80000ad8: b1478f93 addi t6,a5,-1260 # 80000b14 -80000adc: 000f206b 0xf206b -80000ae0: 01ff707b 0x1ff707b -80000ae4: fbc42783 lw a5,-68(s0) -80000ae8: 00279793 slli a5,a5,0x2 -80000aec: fcc42703 lw a4,-52(s0) -80000af0: 00f707b3 add a5,a4,a5 -80000af4: fe042703 lw a4,-32(s0) -80000af8: 00e7a023 sw a4,0(a5) -80000afc: fe842783 lw a5,-24(s0) -80000b00: 00178793 addi a5,a5,1 -80000b04: fef42423 sw a5,-24(s0) -80000b08: 800017b7 lui a5,0x80001 -80000b0c: b1878e13 addi t3,a5,-1256 # 80000b18 -80000b10: 000e0067 jr t3 -80000b14: 00000013 nop -80000b18: 0000306b 0x306b -80000b1c: fe442783 lw a5,-28(s0) -80000b20: 00178793 addi a5,a5,1 -80000b24: fef42223 sw a5,-28(s0) -80000b28: fe442783 lw a5,-28(s0) -80000b2c: fec42703 lw a4,-20(s0) -80000b30: ece7ece3 bltu a5,a4,80000a08 <_vx_mat_mult+0x8c> -80000b34: 00000013 nop -80000b38: 05c12083 lw ra,92(sp) -80000b3c: 05812403 lw s0,88(sp) -80000b40: 06010113 addi sp,sp,96 -80000b44: 00008067 ret +800009f8: 0087a783 lw a5,8(a5) +800009fc: fcf42623 sw a5,-52(s0) +80000a00: fd842783 lw a5,-40(s0) +80000a04: 0107a783 lw a5,16(a5) +80000a08: fef42623 sw a5,-20(s0) +80000a0c: fec42703 lw a4,-20(s0) +80000a10: fac42783 lw a5,-84(s0) +80000a14: 02f707b3 mul a5,a4,a5 +80000a18: fef42423 sw a5,-24(s0) +80000a1c: fec42783 lw a5,-20(s0) +80000a20: 00079a63 bnez a5,80000a34 <_vx_mat_mult+0x78> +80000a24: 00100793 li a5,1 +80000a28: fef42623 sw a5,-20(s0) +80000a2c: fac42783 lw a5,-84(s0) +80000a30: fef42423 sw a5,-24(s0) +80000a34: fd842783 lw a5,-40(s0) +80000a38: 00c7a783 lw a5,12(a5) +80000a3c: fcf42423 sw a5,-56(s0) +80000a40: fe042223 sw zero,-28(s0) +80000a44: 1240006f j 80000b68 <_vx_mat_mult+0x1ac> +80000a48: fe042023 sw zero,-32(s0) +80000a4c: fc042e23 sw zero,-36(s0) +80000a50: 0780006f j 80000ac8 <_vx_mat_mult+0x10c> +80000a54: fa842703 lw a4,-88(s0) +80000a58: fc842783 lw a5,-56(s0) +80000a5c: 02f707b3 mul a5,a4,a5 +80000a60: fdc42703 lw a4,-36(s0) +80000a64: 00f707b3 add a5,a4,a5 +80000a68: fcf42223 sw a5,-60(s0) +80000a6c: fc842703 lw a4,-56(s0) +80000a70: fdc42783 lw a5,-36(s0) +80000a74: 02f707b3 mul a5,a4,a5 +80000a78: fe842703 lw a4,-24(s0) +80000a7c: 00f707b3 add a5,a4,a5 +80000a80: fcf42023 sw a5,-64(s0) +80000a84: fc442783 lw a5,-60(s0) +80000a88: 00279793 slli a5,a5,0x2 +80000a8c: fd442703 lw a4,-44(s0) +80000a90: 00f707b3 add a5,a4,a5 +80000a94: 0007a703 lw a4,0(a5) +80000a98: fc042783 lw a5,-64(s0) +80000a9c: 00279793 slli a5,a5,0x2 +80000aa0: fd042683 lw a3,-48(s0) +80000aa4: 00f687b3 add a5,a3,a5 +80000aa8: 0007a783 lw a5,0(a5) +80000aac: 02f707b3 mul a5,a4,a5 +80000ab0: fe042703 lw a4,-32(s0) +80000ab4: 00f707b3 add a5,a4,a5 +80000ab8: fef42023 sw a5,-32(s0) +80000abc: fdc42783 lw a5,-36(s0) +80000ac0: 00178793 addi a5,a5,1 +80000ac4: fcf42e23 sw a5,-36(s0) +80000ac8: fdc42703 lw a4,-36(s0) +80000acc: fc842783 lw a5,-56(s0) +80000ad0: f8f762e3 bltu a4,a5,80000a54 <_vx_mat_mult+0x98> +80000ad4: fa842703 lw a4,-88(s0) +80000ad8: fc842783 lw a5,-56(s0) +80000adc: 02f70733 mul a4,a4,a5 +80000ae0: fe842783 lw a5,-24(s0) +80000ae4: 00f707b3 add a5,a4,a5 +80000ae8: faf42e23 sw a5,-68(s0) +80000aec: fe842703 lw a4,-24(s0) +80000af0: fc842783 lw a5,-56(s0) +80000af4: 00f737b3 sltu a5,a4,a5 +80000af8: 0ff7f793 andi a5,a5,255 +80000afc: faf42c23 sw a5,-72(s0) +80000b00: fb842783 lw a5,-72(s0) +80000b04: 0017b793 seqz a5,a5 +80000b08: faf40ba3 sb a5,-73(s0) +80000b0c: fb744783 lbu a5,-73(s0) +80000b10: 00078f13 mv t5,a5 +80000b14: 800017b7 lui a5,0x80001 +80000b18: b5478f93 addi t6,a5,-1196 # 80000b54 +80000b1c: 000f206b 0xf206b +80000b20: 01ff707b 0x1ff707b +80000b24: fbc42783 lw a5,-68(s0) +80000b28: 00279793 slli a5,a5,0x2 +80000b2c: fcc42703 lw a4,-52(s0) +80000b30: 00f707b3 add a5,a4,a5 +80000b34: fe042703 lw a4,-32(s0) +80000b38: 00e7a023 sw a4,0(a5) +80000b3c: fe842783 lw a5,-24(s0) +80000b40: 00178793 addi a5,a5,1 +80000b44: fef42423 sw a5,-24(s0) +80000b48: 800017b7 lui a5,0x80001 +80000b4c: b5878e13 addi t3,a5,-1192 # 80000b58 +80000b50: 000e0067 jr t3 +80000b54: 00000013 nop +80000b58: 0000306b 0x306b +80000b5c: fe442783 lw a5,-28(s0) +80000b60: 00178793 addi a5,a5,1 +80000b64: fef42223 sw a5,-28(s0) +80000b68: fe442783 lw a5,-28(s0) +80000b6c: fec42703 lw a4,-20(s0) +80000b70: ece7ece3 bltu a5,a4,80000a48 <_vx_mat_mult+0x8c> +80000b74: 00000013 nop +80000b78: 05c12083 lw ra,92(sp) +80000b7c: 05812403 lw s0,88(sp) +80000b80: 06010113 addi sp,sp,96 +80000b84: 00008067 ret -80000b48 : -80000b48: fc010113 addi sp,sp,-64 -80000b4c: 02112e23 sw ra,60(sp) -80000b50: 02812c23 sw s0,56(sp) -80000b54: 04010413 addi s0,sp,64 -80000b58: fca42e23 sw a0,-36(s0) -80000b5c: fcb42c23 sw a1,-40(s0) -80000b60: fcc42a23 sw a2,-44(s0) -80000b64: fcd42823 sw a3,-48(s0) -80000b68: fce42623 sw a4,-52(s0) -80000b6c: 810037b7 lui a5,0x81003 -80000b70: fdc42703 lw a4,-36(s0) -80000b74: 98e7ac23 sw a4,-1640(a5) # 81002998 -80000b78: 810037b7 lui a5,0x81003 -80000b7c: 99878793 addi a5,a5,-1640 # 81002998 -80000b80: fd842703 lw a4,-40(s0) -80000b84: 00e7a223 sw a4,4(a5) -80000b88: 810037b7 lui a5,0x81003 -80000b8c: 99878793 addi a5,a5,-1640 # 81002998 -80000b90: fd442703 lw a4,-44(s0) -80000b94: 00e7a423 sw a4,8(a5) -80000b98: 810037b7 lui a5,0x81003 -80000b9c: 99878793 addi a5,a5,-1640 # 81002998 -80000ba0: fcc42703 lw a4,-52(s0) -80000ba4: 00e7a623 sw a4,12(a5) -80000ba8: 810037b7 lui a5,0x81003 -80000bac: 99878793 addi a5,a5,-1640 # 81002998 -80000bb0: fd042703 lw a4,-48(s0) -80000bb4: 00e7a823 sw a4,16(a5) -80000bb8: fcc42783 lw a5,-52(s0) -80000bbc: 0037d793 srli a5,a5,0x3 -80000bc0: fef42623 sw a5,-20(s0) -80000bc4: fcc42783 lw a5,-52(s0) -80000bc8: 0077f793 andi a5,a5,7 -80000bcc: 00078863 beqz a5,80000bdc -80000bd0: fec42783 lw a5,-20(s0) -80000bd4: 00178793 addi a5,a5,1 -80000bd8: fef42623 sw a5,-20(s0) -80000bdc: 810037b7 lui a5,0x81003 -80000be0: 99878793 addi a5,a5,-1640 # 81002998 -80000be4: fec42703 lw a4,-20(s0) -80000be8: 00e7aa23 sw a4,20(a5) -80000bec: fcc42703 lw a4,-52(s0) -80000bf0: 00700793 li a5,7 -80000bf4: 02e7f263 bgeu a5,a4,80000c18 -80000bf8: 810037b7 lui a5,0x81003 -80000bfc: 99878693 addi a3,a5,-1640 # 81002998 -80000c00: 800017b7 lui a5,0x80001 -80000c04: c6878613 addi a2,a5,-920 # 80000c68 -80000c08: 00800593 li a1,8 -80000c0c: fd042503 lw a0,-48(s0) -80000c10: 80dff0ef jal ra,8000041c -80000c14: 0200006f j 80000c34 -80000c18: 810037b7 lui a5,0x81003 -80000c1c: 99878693 addi a3,a5,-1640 # 81002998 -80000c20: 800017b7 lui a5,0x80001 -80000c24: c6878613 addi a2,a5,-920 # 80000c68 -80000c28: fcc42583 lw a1,-52(s0) -80000c2c: fd042503 lw a0,-48(s0) -80000c30: fecff0ef jal ra,8000041c -80000c34: fd042703 lw a4,-48(s0) -80000c38: 00800793 li a5,8 -80000c3c: 00e7f863 bgeu a5,a4,80000c4c -80000c40: 00800513 li a0,8 -80000c44: 8bdff0ef jal ra,80000500 -80000c48: 00c0006f j 80000c54 -80000c4c: fd042503 lw a0,-48(s0) -80000c50: 8b1ff0ef jal ra,80000500 -80000c54: 00000013 nop -80000c58: 03c12083 lw ra,60(sp) -80000c5c: 03812403 lw s0,56(sp) -80000c60: 04010113 addi sp,sp,64 -80000c64: 00008067 ret +80000b88 : +80000b88: fc010113 addi sp,sp,-64 +80000b8c: 02112e23 sw ra,60(sp) +80000b90: 02812c23 sw s0,56(sp) +80000b94: 04010413 addi s0,sp,64 +80000b98: fca42e23 sw a0,-36(s0) +80000b9c: fcb42c23 sw a1,-40(s0) +80000ba0: fcc42a23 sw a2,-44(s0) +80000ba4: fcd42823 sw a3,-48(s0) +80000ba8: fce42623 sw a4,-52(s0) +80000bac: 810037b7 lui a5,0x81003 +80000bb0: fdc42703 lw a4,-36(s0) +80000bb4: 98e7a423 sw a4,-1656(a5) # 81002988 +80000bb8: 810037b7 lui a5,0x81003 +80000bbc: 98878793 addi a5,a5,-1656 # 81002988 +80000bc0: fd842703 lw a4,-40(s0) +80000bc4: 00e7a223 sw a4,4(a5) +80000bc8: 810037b7 lui a5,0x81003 +80000bcc: 98878793 addi a5,a5,-1656 # 81002988 +80000bd0: fd442703 lw a4,-44(s0) +80000bd4: 00e7a423 sw a4,8(a5) +80000bd8: 810037b7 lui a5,0x81003 +80000bdc: 98878793 addi a5,a5,-1656 # 81002988 +80000be0: fcc42703 lw a4,-52(s0) +80000be4: 00e7a623 sw a4,12(a5) +80000be8: 810037b7 lui a5,0x81003 +80000bec: 98878793 addi a5,a5,-1656 # 81002988 +80000bf0: fd042703 lw a4,-48(s0) +80000bf4: 00e7a823 sw a4,16(a5) +80000bf8: db4ff0ef jal ra,800001ac +80000bfc: fea42423 sw a0,-24(s0) +80000c00: fcc42703 lw a4,-52(s0) +80000c04: fe842783 lw a5,-24(s0) +80000c08: 02f757b3 divu a5,a4,a5 +80000c0c: fef42623 sw a5,-20(s0) +80000c10: fcc42703 lw a4,-52(s0) +80000c14: fe842783 lw a5,-24(s0) +80000c18: 02f777b3 remu a5,a4,a5 +80000c1c: 00078863 beqz a5,80000c2c +80000c20: fec42783 lw a5,-20(s0) +80000c24: 00178793 addi a5,a5,1 +80000c28: fef42623 sw a5,-20(s0) +80000c2c: 810037b7 lui a5,0x81003 +80000c30: 98878793 addi a5,a5,-1656 # 81002988 +80000c34: fec42703 lw a4,-20(s0) +80000c38: 00e7aa23 sw a4,20(a5) +80000c3c: fcc42703 lw a4,-52(s0) +80000c40: fe842783 lw a5,-24(s0) +80000c44: 02f76263 bltu a4,a5,80000c68 +80000c48: 810037b7 lui a5,0x81003 +80000c4c: 98878693 addi a3,a5,-1656 # 81002988 +80000c50: 800017b7 lui a5,0x80001 +80000c54: cc078613 addi a2,a5,-832 # 80000cc0 +80000c58: fe842583 lw a1,-24(s0) +80000c5c: fd042503 lw a0,-48(s0) +80000c60: facff0ef jal ra,8000040c +80000c64: 0200006f j 80000c84 +80000c68: 810037b7 lui a5,0x81003 +80000c6c: 98878693 addi a3,a5,-1656 # 81002988 +80000c70: 800017b7 lui a5,0x80001 +80000c74: cc078613 addi a2,a5,-832 # 80000cc0 +80000c78: fcc42583 lw a1,-52(s0) +80000c7c: fd042503 lw a0,-48(s0) +80000c80: f8cff0ef jal ra,8000040c +80000c84: d20ff0ef jal ra,800001a4 +80000c88: fea42223 sw a0,-28(s0) +80000c8c: fd042703 lw a4,-48(s0) +80000c90: fe442783 lw a5,-28(s0) +80000c94: 00e7f863 bgeu a5,a4,80000ca4 +80000c98: fe442503 lw a0,-28(s0) +80000c9c: 86dff0ef jal ra,80000508 +80000ca0: 00c0006f j 80000cac +80000ca4: fd042503 lw a0,-48(s0) +80000ca8: 861ff0ef jal ra,80000508 +80000cac: 00000013 nop +80000cb0: 03c12083 lw ra,60(sp) +80000cb4: 03812403 lw s0,56(sp) +80000cb8: 04010113 addi sp,sp,64 +80000cbc: 00008067 ret -80000c68 <_vx_mat_add>: -80000c68: fb010113 addi sp,sp,-80 -80000c6c: 04112623 sw ra,76(sp) -80000c70: 04812423 sw s0,72(sp) -80000c74: 05010413 addi s0,sp,80 -80000c78: faa42e23 sw a0,-68(s0) -80000c7c: fab42c23 sw a1,-72(s0) -80000c80: 93dff0ef jal ra,800005bc -80000c84: fea42023 sw a0,-32(s0) -80000c88: fe042783 lw a5,-32(s0) -80000c8c: 0007a783 lw a5,0(a5) -80000c90: fcf42e23 sw a5,-36(s0) -80000c94: fe042783 lw a5,-32(s0) -80000c98: 0047a783 lw a5,4(a5) -80000c9c: fcf42c23 sw a5,-40(s0) -80000ca0: fe042783 lw a5,-32(s0) -80000ca4: 0087a783 lw a5,8(a5) -80000ca8: fcf42a23 sw a5,-44(s0) -80000cac: fe042783 lw a5,-32(s0) -80000cb0: 0147a783 lw a5,20(a5) -80000cb4: fef42623 sw a5,-20(s0) -80000cb8: fec42703 lw a4,-20(s0) -80000cbc: fbc42783 lw a5,-68(s0) -80000cc0: 02f707b3 mul a5,a4,a5 -80000cc4: fef42423 sw a5,-24(s0) -80000cc8: fec42783 lw a5,-20(s0) -80000ccc: 00079a63 bnez a5,80000ce0 <_vx_mat_add+0x78> -80000cd0: 00100793 li a5,1 -80000cd4: fef42623 sw a5,-20(s0) -80000cd8: fbc42783 lw a5,-68(s0) -80000cdc: fef42423 sw a5,-24(s0) +80000cc0 <_vx_mat_add>: +80000cc0: fb010113 addi sp,sp,-80 +80000cc4: 04112623 sw ra,76(sp) +80000cc8: 04812423 sw s0,72(sp) +80000ccc: 05010413 addi s0,sp,80 +80000cd0: faa42e23 sw a0,-68(s0) +80000cd4: fab42c23 sw a1,-72(s0) +80000cd8: 8fdff0ef jal ra,800005d4 +80000cdc: fea42023 sw a0,-32(s0) 80000ce0: fe042783 lw a5,-32(s0) -80000ce4: 00c7a783 lw a5,12(a5) -80000ce8: fcf42823 sw a5,-48(s0) -80000cec: fe042223 sw zero,-28(s0) -80000cf0: 0c00006f j 80000db0 <_vx_mat_add+0x148> -80000cf4: fb842703 lw a4,-72(s0) -80000cf8: fd042783 lw a5,-48(s0) -80000cfc: 02f70733 mul a4,a4,a5 -80000d00: fe842783 lw a5,-24(s0) -80000d04: 00f707b3 add a5,a4,a5 -80000d08: fcf42623 sw a5,-52(s0) -80000d0c: fe842703 lw a4,-24(s0) -80000d10: fd042783 lw a5,-48(s0) -80000d14: 00f737b3 sltu a5,a4,a5 -80000d18: 0ff7f793 andi a5,a5,255 -80000d1c: fcf42423 sw a5,-56(s0) -80000d20: fc842783 lw a5,-56(s0) -80000d24: 0017b793 seqz a5,a5 -80000d28: fcf403a3 sb a5,-57(s0) -80000d2c: fc744783 lbu a5,-57(s0) -80000d30: 00078f13 mv t5,a5 -80000d34: 800017b7 lui a5,0x80001 -80000d38: d9c78f93 addi t6,a5,-612 # 80000d9c -80000d3c: 000f206b 0xf206b -80000d40: 01ff707b 0x1ff707b -80000d44: fcc42783 lw a5,-52(s0) -80000d48: 00279793 slli a5,a5,0x2 -80000d4c: fdc42703 lw a4,-36(s0) -80000d50: 00f707b3 add a5,a4,a5 -80000d54: 0007a683 lw a3,0(a5) -80000d58: fcc42783 lw a5,-52(s0) -80000d5c: 00279793 slli a5,a5,0x2 -80000d60: fd842703 lw a4,-40(s0) -80000d64: 00f707b3 add a5,a4,a5 -80000d68: 0007a703 lw a4,0(a5) -80000d6c: fcc42783 lw a5,-52(s0) -80000d70: 00279793 slli a5,a5,0x2 -80000d74: fd442603 lw a2,-44(s0) -80000d78: 00f607b3 add a5,a2,a5 -80000d7c: 00e68733 add a4,a3,a4 -80000d80: 00e7a023 sw a4,0(a5) -80000d84: fe842783 lw a5,-24(s0) -80000d88: 00178793 addi a5,a5,1 -80000d8c: fef42423 sw a5,-24(s0) -80000d90: 800017b7 lui a5,0x80001 -80000d94: da078e13 addi t3,a5,-608 # 80000da0 -80000d98: 000e0067 jr t3 -80000d9c: 00000013 nop -80000da0: 0000306b 0x306b -80000da4: fe442783 lw a5,-28(s0) -80000da8: 00178793 addi a5,a5,1 -80000dac: fef42223 sw a5,-28(s0) -80000db0: fe442783 lw a5,-28(s0) -80000db4: fec42703 lw a4,-20(s0) -80000db8: f2e7eee3 bltu a5,a4,80000cf4 <_vx_mat_add+0x8c> -80000dbc: 00000013 nop -80000dc0: 04c12083 lw ra,76(sp) -80000dc4: 04812403 lw s0,72(sp) -80000dc8: 05010113 addi sp,sp,80 -80000dcc: 00008067 ret +80000ce4: 0007a783 lw a5,0(a5) +80000ce8: fcf42e23 sw a5,-36(s0) +80000cec: fe042783 lw a5,-32(s0) +80000cf0: 0047a783 lw a5,4(a5) +80000cf4: fcf42c23 sw a5,-40(s0) +80000cf8: fe042783 lw a5,-32(s0) +80000cfc: 0087a783 lw a5,8(a5) +80000d00: fcf42a23 sw a5,-44(s0) +80000d04: fe042783 lw a5,-32(s0) +80000d08: 0147a783 lw a5,20(a5) +80000d0c: fef42623 sw a5,-20(s0) +80000d10: fec42703 lw a4,-20(s0) +80000d14: fbc42783 lw a5,-68(s0) +80000d18: 02f707b3 mul a5,a4,a5 +80000d1c: fef42423 sw a5,-24(s0) +80000d20: fec42783 lw a5,-20(s0) +80000d24: 00079a63 bnez a5,80000d38 <_vx_mat_add+0x78> +80000d28: 00100793 li a5,1 +80000d2c: fef42623 sw a5,-20(s0) +80000d30: fbc42783 lw a5,-68(s0) +80000d34: fef42423 sw a5,-24(s0) +80000d38: fe042783 lw a5,-32(s0) +80000d3c: 00c7a783 lw a5,12(a5) +80000d40: fcf42823 sw a5,-48(s0) +80000d44: fe042223 sw zero,-28(s0) +80000d48: 0c00006f j 80000e08 <_vx_mat_add+0x148> +80000d4c: fb842703 lw a4,-72(s0) +80000d50: fd042783 lw a5,-48(s0) +80000d54: 02f70733 mul a4,a4,a5 +80000d58: fe842783 lw a5,-24(s0) +80000d5c: 00f707b3 add a5,a4,a5 +80000d60: fcf42623 sw a5,-52(s0) +80000d64: fe842703 lw a4,-24(s0) +80000d68: fd042783 lw a5,-48(s0) +80000d6c: 00f737b3 sltu a5,a4,a5 +80000d70: 0ff7f793 andi a5,a5,255 +80000d74: fcf42423 sw a5,-56(s0) +80000d78: fc842783 lw a5,-56(s0) +80000d7c: 0017b793 seqz a5,a5 +80000d80: fcf403a3 sb a5,-57(s0) +80000d84: fc744783 lbu a5,-57(s0) +80000d88: 00078f13 mv t5,a5 +80000d8c: 800017b7 lui a5,0x80001 +80000d90: df478f93 addi t6,a5,-524 # 80000df4 +80000d94: 000f206b 0xf206b +80000d98: 01ff707b 0x1ff707b +80000d9c: fcc42783 lw a5,-52(s0) +80000da0: 00279793 slli a5,a5,0x2 +80000da4: fdc42703 lw a4,-36(s0) +80000da8: 00f707b3 add a5,a4,a5 +80000dac: 0007a683 lw a3,0(a5) +80000db0: fcc42783 lw a5,-52(s0) +80000db4: 00279793 slli a5,a5,0x2 +80000db8: fd842703 lw a4,-40(s0) +80000dbc: 00f707b3 add a5,a4,a5 +80000dc0: 0007a703 lw a4,0(a5) +80000dc4: fcc42783 lw a5,-52(s0) +80000dc8: 00279793 slli a5,a5,0x2 +80000dcc: fd442603 lw a2,-44(s0) +80000dd0: 00f607b3 add a5,a2,a5 +80000dd4: 00e68733 add a4,a3,a4 +80000dd8: 00e7a023 sw a4,0(a5) +80000ddc: fe842783 lw a5,-24(s0) +80000de0: 00178793 addi a5,a5,1 +80000de4: fef42423 sw a5,-24(s0) +80000de8: 800017b7 lui a5,0x80001 +80000dec: df878e13 addi t3,a5,-520 # 80000df8 +80000df0: 000e0067 jr t3 +80000df4: 00000013 nop +80000df8: 0000306b 0x306b +80000dfc: fe442783 lw a5,-28(s0) +80000e00: 00178793 addi a5,a5,1 +80000e04: fef42223 sw a5,-28(s0) +80000e08: fe442783 lw a5,-28(s0) +80000e0c: fec42703 lw a4,-20(s0) +80000e10: f2e7eee3 bltu a5,a4,80000d4c <_vx_mat_add+0x8c> +80000e14: 00000013 nop +80000e18: 04c12083 lw ra,76(sp) +80000e1c: 04812403 lw s0,72(sp) +80000e20: 05010113 addi sp,sp,80 +80000e24: 00008067 ret -80000dd0 : -80000dd0: fc010113 addi sp,sp,-64 -80000dd4: 02112e23 sw ra,60(sp) -80000dd8: 02812c23 sw s0,56(sp) -80000ddc: 04010413 addi s0,sp,64 -80000de0: fca42e23 sw a0,-36(s0) -80000de4: fcb42c23 sw a1,-40(s0) -80000de8: fcc42a23 sw a2,-44(s0) -80000dec: fcd42823 sw a3,-48(s0) -80000df0: fce42623 sw a4,-52(s0) -80000df4: 810037b7 lui a5,0x81003 -80000df8: fdc42703 lw a4,-36(s0) -80000dfc: 98e7ac23 sw a4,-1640(a5) # 81002998 -80000e00: 810037b7 lui a5,0x81003 -80000e04: 99878793 addi a5,a5,-1640 # 81002998 -80000e08: fd842703 lw a4,-40(s0) -80000e0c: 00e7a223 sw a4,4(a5) -80000e10: 810037b7 lui a5,0x81003 -80000e14: 99878793 addi a5,a5,-1640 # 81002998 -80000e18: fd442703 lw a4,-44(s0) -80000e1c: 00e7a423 sw a4,8(a5) -80000e20: 810037b7 lui a5,0x81003 -80000e24: 99878793 addi a5,a5,-1640 # 81002998 -80000e28: fcc42703 lw a4,-52(s0) -80000e2c: 00e7a623 sw a4,12(a5) -80000e30: 810037b7 lui a5,0x81003 -80000e34: 99878793 addi a5,a5,-1640 # 81002998 -80000e38: fd042703 lw a4,-48(s0) -80000e3c: 00e7a823 sw a4,16(a5) -80000e40: fcc42783 lw a5,-52(s0) -80000e44: 0037d793 srli a5,a5,0x3 -80000e48: fef42623 sw a5,-20(s0) -80000e4c: fcc42783 lw a5,-52(s0) -80000e50: 0077f793 andi a5,a5,7 -80000e54: 00078863 beqz a5,80000e64 -80000e58: fec42783 lw a5,-20(s0) -80000e5c: 00178793 addi a5,a5,1 -80000e60: fef42623 sw a5,-20(s0) -80000e64: 810037b7 lui a5,0x81003 -80000e68: 99878793 addi a5,a5,-1640 # 81002998 -80000e6c: fec42703 lw a4,-20(s0) -80000e70: 00e7aa23 sw a4,20(a5) -80000e74: fcc42703 lw a4,-52(s0) -80000e78: 00700793 li a5,7 -80000e7c: 02e7f263 bgeu a5,a4,80000ea0 -80000e80: 810037b7 lui a5,0x81003 -80000e84: 99878693 addi a3,a5,-1640 # 81002998 -80000e88: 800017b7 lui a5,0x80001 -80000e8c: ef078613 addi a2,a5,-272 # 80000ef0 -80000e90: 00800593 li a1,8 -80000e94: fd042503 lw a0,-48(s0) -80000e98: d84ff0ef jal ra,8000041c -80000e9c: 0200006f j 80000ebc -80000ea0: 810037b7 lui a5,0x81003 -80000ea4: 99878693 addi a3,a5,-1640 # 81002998 -80000ea8: 800017b7 lui a5,0x80001 -80000eac: ef078613 addi a2,a5,-272 # 80000ef0 -80000eb0: fcc42583 lw a1,-52(s0) -80000eb4: fd042503 lw a0,-48(s0) -80000eb8: d64ff0ef jal ra,8000041c -80000ebc: fd042703 lw a4,-48(s0) -80000ec0: 00800793 li a5,8 -80000ec4: 00e7f863 bgeu a5,a4,80000ed4 -80000ec8: 00800513 li a0,8 -80000ecc: e34ff0ef jal ra,80000500 -80000ed0: 00c0006f j 80000edc -80000ed4: fd042503 lw a0,-48(s0) -80000ed8: e28ff0ef jal ra,80000500 -80000edc: 00000013 nop -80000ee0: 03c12083 lw ra,60(sp) -80000ee4: 03812403 lw s0,56(sp) -80000ee8: 04010113 addi sp,sp,64 -80000eec: 00008067 ret +80000e28 : +80000e28: fc010113 addi sp,sp,-64 +80000e2c: 02112e23 sw ra,60(sp) +80000e30: 02812c23 sw s0,56(sp) +80000e34: 04010413 addi s0,sp,64 +80000e38: fca42e23 sw a0,-36(s0) +80000e3c: fcb42c23 sw a1,-40(s0) +80000e40: fcc42a23 sw a2,-44(s0) +80000e44: fcd42823 sw a3,-48(s0) +80000e48: fce42623 sw a4,-52(s0) +80000e4c: 810037b7 lui a5,0x81003 +80000e50: fdc42703 lw a4,-36(s0) +80000e54: 98e7a423 sw a4,-1656(a5) # 81002988 +80000e58: 810037b7 lui a5,0x81003 +80000e5c: 98878793 addi a5,a5,-1656 # 81002988 +80000e60: fd842703 lw a4,-40(s0) +80000e64: 00e7a223 sw a4,4(a5) +80000e68: 810037b7 lui a5,0x81003 +80000e6c: 98878793 addi a5,a5,-1656 # 81002988 +80000e70: fd442703 lw a4,-44(s0) +80000e74: 00e7a423 sw a4,8(a5) +80000e78: 810037b7 lui a5,0x81003 +80000e7c: 98878793 addi a5,a5,-1656 # 81002988 +80000e80: fcc42703 lw a4,-52(s0) +80000e84: 00e7a623 sw a4,12(a5) +80000e88: 810037b7 lui a5,0x81003 +80000e8c: 98878793 addi a5,a5,-1656 # 81002988 +80000e90: fd042703 lw a4,-48(s0) +80000e94: 00e7a823 sw a4,16(a5) +80000e98: b14ff0ef jal ra,800001ac +80000e9c: fea42423 sw a0,-24(s0) +80000ea0: fcc42703 lw a4,-52(s0) +80000ea4: fe842783 lw a5,-24(s0) +80000ea8: 02f757b3 divu a5,a4,a5 +80000eac: fef42623 sw a5,-20(s0) +80000eb0: fcc42703 lw a4,-52(s0) +80000eb4: fe842783 lw a5,-24(s0) +80000eb8: 02f777b3 remu a5,a4,a5 +80000ebc: 00078863 beqz a5,80000ecc +80000ec0: fec42783 lw a5,-20(s0) +80000ec4: 00178793 addi a5,a5,1 +80000ec8: fef42623 sw a5,-20(s0) +80000ecc: 810037b7 lui a5,0x81003 +80000ed0: 98878793 addi a5,a5,-1656 # 81002988 +80000ed4: fec42703 lw a4,-20(s0) +80000ed8: 00e7aa23 sw a4,20(a5) +80000edc: fcc42703 lw a4,-52(s0) +80000ee0: fe842783 lw a5,-24(s0) +80000ee4: 02f76263 bltu a4,a5,80000f08 +80000ee8: 810037b7 lui a5,0x81003 +80000eec: 98878693 addi a3,a5,-1656 # 81002988 +80000ef0: 800017b7 lui a5,0x80001 +80000ef4: f6078613 addi a2,a5,-160 # 80000f60 +80000ef8: fe842583 lw a1,-24(s0) +80000efc: fd042503 lw a0,-48(s0) +80000f00: d0cff0ef jal ra,8000040c +80000f04: 0200006f j 80000f24 +80000f08: 810037b7 lui a5,0x81003 +80000f0c: 98878693 addi a3,a5,-1656 # 81002988 +80000f10: 800017b7 lui a5,0x80001 +80000f14: f6078613 addi a2,a5,-160 # 80000f60 +80000f18: fcc42583 lw a1,-52(s0) +80000f1c: fd042503 lw a0,-48(s0) +80000f20: cecff0ef jal ra,8000040c +80000f24: a80ff0ef jal ra,800001a4 +80000f28: fea42223 sw a0,-28(s0) +80000f2c: fd042703 lw a4,-48(s0) +80000f30: fe442783 lw a5,-28(s0) +80000f34: 00e7f863 bgeu a5,a4,80000f44 +80000f38: fe442503 lw a0,-28(s0) +80000f3c: dccff0ef jal ra,80000508 +80000f40: 00c0006f j 80000f4c +80000f44: fd042503 lw a0,-48(s0) +80000f48: dc0ff0ef jal ra,80000508 +80000f4c: 00000013 nop +80000f50: 03c12083 lw ra,60(sp) +80000f54: 03812403 lw s0,56(sp) +80000f58: 04010113 addi sp,sp,64 +80000f5c: 00008067 ret -80000ef0 <_vx_mat_sub>: -80000ef0: fb010113 addi sp,sp,-80 -80000ef4: 04112623 sw ra,76(sp) -80000ef8: 04812423 sw s0,72(sp) -80000efc: 05010413 addi s0,sp,80 -80000f00: faa42e23 sw a0,-68(s0) -80000f04: fab42c23 sw a1,-72(s0) -80000f08: eb4ff0ef jal ra,800005bc -80000f0c: fea42023 sw a0,-32(s0) -80000f10: fe042783 lw a5,-32(s0) -80000f14: 0007a783 lw a5,0(a5) -80000f18: fcf42e23 sw a5,-36(s0) -80000f1c: fe042783 lw a5,-32(s0) -80000f20: 0047a783 lw a5,4(a5) -80000f24: fcf42c23 sw a5,-40(s0) -80000f28: fe042783 lw a5,-32(s0) -80000f2c: 0087a783 lw a5,8(a5) -80000f30: fcf42a23 sw a5,-44(s0) -80000f34: fe042783 lw a5,-32(s0) -80000f38: 0147a783 lw a5,20(a5) -80000f3c: fef42623 sw a5,-20(s0) -80000f40: fec42703 lw a4,-20(s0) -80000f44: fbc42783 lw a5,-68(s0) -80000f48: 02f707b3 mul a5,a4,a5 -80000f4c: fef42423 sw a5,-24(s0) -80000f50: fec42783 lw a5,-20(s0) -80000f54: 00079a63 bnez a5,80000f68 <_vx_mat_sub+0x78> -80000f58: 00100793 li a5,1 -80000f5c: fef42623 sw a5,-20(s0) -80000f60: fbc42783 lw a5,-68(s0) -80000f64: fef42423 sw a5,-24(s0) -80000f68: fe042783 lw a5,-32(s0) -80000f6c: 00c7a783 lw a5,12(a5) -80000f70: fcf42823 sw a5,-48(s0) -80000f74: fe042223 sw zero,-28(s0) -80000f78: 0c00006f j 80001038 <_vx_mat_sub+0x148> -80000f7c: fb842703 lw a4,-72(s0) -80000f80: fd042783 lw a5,-48(s0) -80000f84: 02f70733 mul a4,a4,a5 -80000f88: fe842783 lw a5,-24(s0) -80000f8c: 00f707b3 add a5,a4,a5 -80000f90: fcf42623 sw a5,-52(s0) -80000f94: fe842703 lw a4,-24(s0) -80000f98: fd042783 lw a5,-48(s0) -80000f9c: 00f737b3 sltu a5,a4,a5 -80000fa0: 0ff7f793 andi a5,a5,255 -80000fa4: fcf42423 sw a5,-56(s0) -80000fa8: fc842783 lw a5,-56(s0) -80000fac: 0017b793 seqz a5,a5 -80000fb0: fcf403a3 sb a5,-57(s0) -80000fb4: fc744783 lbu a5,-57(s0) -80000fb8: 00078f13 mv t5,a5 -80000fbc: 800017b7 lui a5,0x80001 -80000fc0: 02478f93 addi t6,a5,36 # 80001024 -80000fc4: 000f206b 0xf206b -80000fc8: 01ff707b 0x1ff707b -80000fcc: fcc42783 lw a5,-52(s0) -80000fd0: 00279793 slli a5,a5,0x2 -80000fd4: fdc42703 lw a4,-36(s0) -80000fd8: 00f707b3 add a5,a4,a5 -80000fdc: 0007a683 lw a3,0(a5) -80000fe0: fcc42783 lw a5,-52(s0) -80000fe4: 00279793 slli a5,a5,0x2 -80000fe8: fd842703 lw a4,-40(s0) -80000fec: 00f707b3 add a5,a4,a5 -80000ff0: 0007a703 lw a4,0(a5) -80000ff4: fcc42783 lw a5,-52(s0) -80000ff8: 00279793 slli a5,a5,0x2 -80000ffc: fd442603 lw a2,-44(s0) -80001000: 00f607b3 add a5,a2,a5 -80001004: 40e68733 sub a4,a3,a4 -80001008: 00e7a023 sw a4,0(a5) -8000100c: fe842783 lw a5,-24(s0) -80001010: 00178793 addi a5,a5,1 -80001014: fef42423 sw a5,-24(s0) -80001018: 800017b7 lui a5,0x80001 -8000101c: 02878e13 addi t3,a5,40 # 80001028 -80001020: 000e0067 jr t3 -80001024: 00000013 nop -80001028: 0000306b 0x306b -8000102c: fe442783 lw a5,-28(s0) -80001030: 00178793 addi a5,a5,1 -80001034: fef42223 sw a5,-28(s0) -80001038: fe442783 lw a5,-28(s0) -8000103c: fec42703 lw a4,-20(s0) -80001040: f2e7eee3 bltu a5,a4,80000f7c <_vx_mat_sub+0x8c> -80001044: 00000013 nop -80001048: 04c12083 lw ra,76(sp) -8000104c: 04812403 lw s0,72(sp) -80001050: 05010113 addi sp,sp,80 -80001054: 00008067 ret +80000f60 <_vx_mat_sub>: +80000f60: fb010113 addi sp,sp,-80 +80000f64: 04112623 sw ra,76(sp) +80000f68: 04812423 sw s0,72(sp) +80000f6c: 05010413 addi s0,sp,80 +80000f70: faa42e23 sw a0,-68(s0) +80000f74: fab42c23 sw a1,-72(s0) +80000f78: e5cff0ef jal ra,800005d4 +80000f7c: fea42023 sw a0,-32(s0) +80000f80: fe042783 lw a5,-32(s0) +80000f84: 0007a783 lw a5,0(a5) +80000f88: fcf42e23 sw a5,-36(s0) +80000f8c: fe042783 lw a5,-32(s0) +80000f90: 0047a783 lw a5,4(a5) +80000f94: fcf42c23 sw a5,-40(s0) +80000f98: fe042783 lw a5,-32(s0) +80000f9c: 0087a783 lw a5,8(a5) +80000fa0: fcf42a23 sw a5,-44(s0) +80000fa4: fe042783 lw a5,-32(s0) +80000fa8: 0147a783 lw a5,20(a5) +80000fac: fef42623 sw a5,-20(s0) +80000fb0: fec42703 lw a4,-20(s0) +80000fb4: fbc42783 lw a5,-68(s0) +80000fb8: 02f707b3 mul a5,a4,a5 +80000fbc: fef42423 sw a5,-24(s0) +80000fc0: fec42783 lw a5,-20(s0) +80000fc4: 00079a63 bnez a5,80000fd8 <_vx_mat_sub+0x78> +80000fc8: 00100793 li a5,1 +80000fcc: fef42623 sw a5,-20(s0) +80000fd0: fbc42783 lw a5,-68(s0) +80000fd4: fef42423 sw a5,-24(s0) +80000fd8: fe042783 lw a5,-32(s0) +80000fdc: 00c7a783 lw a5,12(a5) +80000fe0: fcf42823 sw a5,-48(s0) +80000fe4: fe042223 sw zero,-28(s0) +80000fe8: 0c00006f j 800010a8 <_vx_mat_sub+0x148> +80000fec: fb842703 lw a4,-72(s0) +80000ff0: fd042783 lw a5,-48(s0) +80000ff4: 02f70733 mul a4,a4,a5 +80000ff8: fe842783 lw a5,-24(s0) +80000ffc: 00f707b3 add a5,a4,a5 +80001000: fcf42623 sw a5,-52(s0) +80001004: fe842703 lw a4,-24(s0) +80001008: fd042783 lw a5,-48(s0) +8000100c: 00f737b3 sltu a5,a4,a5 +80001010: 0ff7f793 andi a5,a5,255 +80001014: fcf42423 sw a5,-56(s0) +80001018: fc842783 lw a5,-56(s0) +8000101c: 0017b793 seqz a5,a5 +80001020: fcf403a3 sb a5,-57(s0) +80001024: fc744783 lbu a5,-57(s0) +80001028: 00078f13 mv t5,a5 +8000102c: 800017b7 lui a5,0x80001 +80001030: 09478f93 addi t6,a5,148 # 80001094 +80001034: 000f206b 0xf206b +80001038: 01ff707b 0x1ff707b +8000103c: fcc42783 lw a5,-52(s0) +80001040: 00279793 slli a5,a5,0x2 +80001044: fdc42703 lw a4,-36(s0) +80001048: 00f707b3 add a5,a4,a5 +8000104c: 0007a683 lw a3,0(a5) +80001050: fcc42783 lw a5,-52(s0) +80001054: 00279793 slli a5,a5,0x2 +80001058: fd842703 lw a4,-40(s0) +8000105c: 00f707b3 add a5,a4,a5 +80001060: 0007a703 lw a4,0(a5) +80001064: fcc42783 lw a5,-52(s0) +80001068: 00279793 slli a5,a5,0x2 +8000106c: fd442603 lw a2,-44(s0) +80001070: 00f607b3 add a5,a2,a5 +80001074: 40e68733 sub a4,a3,a4 +80001078: 00e7a023 sw a4,0(a5) +8000107c: fe842783 lw a5,-24(s0) +80001080: 00178793 addi a5,a5,1 +80001084: fef42423 sw a5,-24(s0) +80001088: 800017b7 lui a5,0x80001 +8000108c: 09878e13 addi t3,a5,152 # 80001098 +80001090: 000e0067 jr t3 +80001094: 00000013 nop +80001098: 0000306b 0x306b +8000109c: fe442783 lw a5,-28(s0) +800010a0: 00178793 addi a5,a5,1 +800010a4: fef42223 sw a5,-28(s0) +800010a8: fe442783 lw a5,-28(s0) +800010ac: fec42703 lw a4,-20(s0) +800010b0: f2e7eee3 bltu a5,a4,80000fec <_vx_mat_sub+0x8c> +800010b4: 00000013 nop +800010b8: 04c12083 lw ra,76(sp) +800010bc: 04812403 lw s0,72(sp) +800010c0: 05010113 addi sp,sp,80 +800010c4: 00008067 ret -80001058 : -80001058: fe010113 addi sp,sp,-32 -8000105c: 00812e23 sw s0,28(sp) -80001060: 02010413 addi s0,sp,32 -80001064: fe042623 sw zero,-20(s0) -80001068: 0480006f j 800010b0 -8000106c: 810037b7 lui a5,0x81003 -80001070: fec42703 lw a4,-20(s0) -80001074: 00271713 slli a4,a4,0x2 -80001078: 9b078793 addi a5,a5,-1616 # 810029b0 -8000107c: 00f707b3 add a5,a4,a5 -80001080: 00300713 li a4,3 -80001084: 00e7a023 sw a4,0(a5) -80001088: 810047b7 lui a5,0x81004 -8000108c: fec42703 lw a4,-20(s0) -80001090: 00271713 slli a4,a4,0x2 -80001094: 9b078793 addi a5,a5,-1616 # 810039b0 -80001098: 00f707b3 add a5,a4,a5 -8000109c: 00200713 li a4,2 -800010a0: 00e7a023 sw a4,0(a5) -800010a4: fec42783 lw a5,-20(s0) -800010a8: 00178793 addi a5,a5,1 -800010ac: fef42623 sw a5,-20(s0) -800010b0: fec42703 lw a4,-20(s0) -800010b4: 03f00793 li a5,63 -800010b8: fae7dae3 bge a5,a4,8000106c -800010bc: 00000013 nop -800010c0: 01c12403 lw s0,28(sp) -800010c4: 02010113 addi sp,sp,32 -800010c8: 00008067 ret +800010c8 : +800010c8: fe010113 addi sp,sp,-32 +800010cc: 00812e23 sw s0,28(sp) +800010d0: 02010413 addi s0,sp,32 +800010d4: fe042623 sw zero,-20(s0) +800010d8: 0480006f j 80001120 +800010dc: 810037b7 lui a5,0x81003 +800010e0: fec42703 lw a4,-20(s0) +800010e4: 00271713 slli a4,a4,0x2 +800010e8: 9a078793 addi a5,a5,-1632 # 810029a0 +800010ec: 00f707b3 add a5,a4,a5 +800010f0: 00300713 li a4,3 +800010f4: 00e7a023 sw a4,0(a5) +800010f8: 810047b7 lui a5,0x81004 +800010fc: fec42703 lw a4,-20(s0) +80001100: 00271713 slli a4,a4,0x2 +80001104: 9a078793 addi a5,a5,-1632 # 810039a0 +80001108: 00f707b3 add a5,a4,a5 +8000110c: 00200713 li a4,2 +80001110: 00e7a023 sw a4,0(a5) +80001114: fec42783 lw a5,-20(s0) +80001118: 00178793 addi a5,a5,1 +8000111c: fef42623 sw a5,-20(s0) +80001120: fec42703 lw a4,-20(s0) +80001124: 0ff00793 li a5,255 +80001128: fae7dae3 bge a5,a4,800010dc +8000112c: 00000013 nop +80001130: 01c12403 lw s0,28(sp) +80001134: 02010113 addi sp,sp,32 +80001138: 00008067 ret -800010cc
: -800010cc: fe010113 addi sp,sp,-32 -800010d0: 00112e23 sw ra,28(sp) -800010d4: 00812c23 sw s0,24(sp) -800010d8: 02010413 addi s0,sp,32 -800010dc: f7dff0ef jal ra,80001058 -800010e0: 00800713 li a4,8 -800010e4: 00100693 li a3,1 -800010e8: 810057b7 lui a5,0x81005 -800010ec: 9b078613 addi a2,a5,-1616 # 810049b0 -800010f0: 810047b7 lui a5,0x81004 -800010f4: 9b078593 addi a1,a5,-1616 # 810039b0 -800010f8: 810037b7 lui a5,0x81003 -800010fc: 9b078513 addi a0,a5,-1616 # 810029b0 -80001100: a49ff0ef jal ra,80000b48 -80001104: 810007b7 lui a5,0x81000 -80001108: 14478513 addi a0,a5,324 # 81000144 -8000110c: e1cff0ef jal ra,80000728 -80001110: 810007b7 lui a5,0x81000 -80001114: 16078513 addi a0,a5,352 # 81000160 -80001118: e10ff0ef jal ra,80000728 -8000111c: fe042623 sw zero,-20(s0) -80001120: 0540006f j 80001174 -80001124: fec42783 lw a5,-20(s0) -80001128: 0077f793 andi a5,a5,7 -8000112c: 00079863 bnez a5,8000113c -80001130: 810007b7 lui a5,0x81000 -80001134: 16c78513 addi a0,a5,364 # 8100016c -80001138: df0ff0ef jal ra,80000728 -8000113c: 810057b7 lui a5,0x81005 -80001140: fec42703 lw a4,-20(s0) -80001144: 00271713 slli a4,a4,0x2 -80001148: 9b078793 addi a5,a5,-1616 # 810049b0 -8000114c: 00f707b3 add a5,a4,a5 -80001150: 0007a783 lw a5,0(a5) -80001154: 00078513 mv a0,a5 -80001158: e0cff0ef jal ra,80000764 -8000115c: 810007b7 lui a5,0x81000 -80001160: 17078513 addi a0,a5,368 # 81000170 -80001164: dc4ff0ef jal ra,80000728 -80001168: fec42783 lw a5,-20(s0) -8000116c: 00178793 addi a5,a5,1 -80001170: fef42623 sw a5,-20(s0) -80001174: fec42703 lw a4,-20(s0) -80001178: 00700793 li a5,7 -8000117c: fae7d4e3 bge a5,a4,80001124 -80001180: 810007b7 lui a5,0x81000 -80001184: 17478513 addi a0,a5,372 # 81000174 -80001188: da0ff0ef jal ra,80000728 -8000118c: 00800713 li a4,8 -80001190: 00100693 li a3,1 -80001194: 810057b7 lui a5,0x81005 -80001198: 9b078613 addi a2,a5,-1616 # 810049b0 -8000119c: 810047b7 lui a5,0x81004 -800011a0: 9b078593 addi a1,a5,-1616 # 810039b0 -800011a4: 810037b7 lui a5,0x81003 -800011a8: 9b078513 addi a0,a5,-1616 # 810029b0 -800011ac: c25ff0ef jal ra,80000dd0 -800011b0: 810007b7 lui a5,0x81000 -800011b4: 14478513 addi a0,a5,324 # 81000144 -800011b8: d70ff0ef jal ra,80000728 -800011bc: 810007b7 lui a5,0x81000 -800011c0: 19878513 addi a0,a5,408 # 81000198 -800011c4: d64ff0ef jal ra,80000728 -800011c8: fe042423 sw zero,-24(s0) -800011cc: 0540006f j 80001220 -800011d0: fe842783 lw a5,-24(s0) -800011d4: 0077f793 andi a5,a5,7 -800011d8: 00079863 bnez a5,800011e8 -800011dc: 810007b7 lui a5,0x81000 -800011e0: 16c78513 addi a0,a5,364 # 8100016c -800011e4: d44ff0ef jal ra,80000728 -800011e8: 810057b7 lui a5,0x81005 -800011ec: fe842703 lw a4,-24(s0) -800011f0: 00271713 slli a4,a4,0x2 -800011f4: 9b078793 addi a5,a5,-1616 # 810049b0 -800011f8: 00f707b3 add a5,a4,a5 -800011fc: 0007a783 lw a5,0(a5) -80001200: 00078513 mv a0,a5 -80001204: d60ff0ef jal ra,80000764 -80001208: 810007b7 lui a5,0x81000 -8000120c: 17078513 addi a0,a5,368 # 81000170 -80001210: d18ff0ef jal ra,80000728 -80001214: fe842783 lw a5,-24(s0) -80001218: 00178793 addi a5,a5,1 -8000121c: fef42423 sw a5,-24(s0) -80001220: fe842703 lw a4,-24(s0) -80001224: 00700793 li a5,7 -80001228: fae7d4e3 bge a5,a4,800011d0 -8000122c: 810007b7 lui a5,0x81000 -80001230: 17478513 addi a0,a5,372 # 81000174 -80001234: cf4ff0ef jal ra,80000728 -80001238: 00000793 li a5,0 -8000123c: 00078513 mv a0,a5 -80001240: 01c12083 lw ra,28(sp) -80001244: 01812403 lw s0,24(sp) -80001248: 02010113 addi sp,sp,32 -8000124c: 00008067 ret +8000113c
: +8000113c: fe010113 addi sp,sp,-32 +80001140: 00112e23 sw ra,28(sp) +80001144: 00812c23 sw s0,24(sp) +80001148: 02010413 addi s0,sp,32 +8000114c: f7dff0ef jal ra,800010c8 +80001150: 01000693 li a3,16 +80001154: 810057b7 lui a5,0x81005 +80001158: 9a078613 addi a2,a5,-1632 # 810049a0 +8000115c: 810047b7 lui a5,0x81004 +80001160: 9a078593 addi a1,a5,-1632 # 810039a0 +80001164: 810037b7 lui a5,0x81003 +80001168: 9a078513 addi a0,a5,-1632 # 810029a0 +8000116c: f1cff0ef jal ra,80000888 +80001170: 810007b7 lui a5,0x81000 +80001174: 12878513 addi a0,a5,296 # 81000128 +80001178: dc8ff0ef jal ra,80000740 +8000117c: 810007b7 lui a5,0x81000 +80001180: 14478513 addi a0,a5,324 # 81000144 +80001184: dbcff0ef jal ra,80000740 +80001188: fe042623 sw zero,-20(s0) +8000118c: 0540006f j 800011e0 +80001190: fec42783 lw a5,-20(s0) +80001194: 00f7f793 andi a5,a5,15 +80001198: 00079863 bnez a5,800011a8 +8000119c: 810007b7 lui a5,0x81000 +800011a0: 15078513 addi a0,a5,336 # 81000150 +800011a4: d9cff0ef jal ra,80000740 +800011a8: 810057b7 lui a5,0x81005 +800011ac: fec42703 lw a4,-20(s0) +800011b0: 00271713 slli a4,a4,0x2 +800011b4: 9a078793 addi a5,a5,-1632 # 810049a0 +800011b8: 00f707b3 add a5,a4,a5 +800011bc: 0007a783 lw a5,0(a5) +800011c0: 00078513 mv a0,a5 +800011c4: db8ff0ef jal ra,8000077c +800011c8: 810007b7 lui a5,0x81000 +800011cc: 15478513 addi a0,a5,340 # 81000154 +800011d0: d70ff0ef jal ra,80000740 +800011d4: fec42783 lw a5,-20(s0) +800011d8: 00178793 addi a5,a5,1 +800011dc: fef42623 sw a5,-20(s0) +800011e0: fec42703 lw a4,-20(s0) +800011e4: 0ff00793 li a5,255 +800011e8: fae7d4e3 bge a5,a4,80001190 +800011ec: 810007b7 lui a5,0x81000 +800011f0: 15878513 addi a0,a5,344 # 81000158 +800011f4: d4cff0ef jal ra,80000740 +800011f8: 01000713 li a4,16 +800011fc: 01000693 li a3,16 +80001200: 810057b7 lui a5,0x81005 +80001204: 9a078613 addi a2,a5,-1632 # 810049a0 +80001208: 810047b7 lui a5,0x81004 +8000120c: 9a078593 addi a1,a5,-1632 # 810039a0 +80001210: 810037b7 lui a5,0x81003 +80001214: 9a078513 addi a0,a5,-1632 # 810029a0 +80001218: 971ff0ef jal ra,80000b88 +8000121c: 810007b7 lui a5,0x81000 +80001220: 12878513 addi a0,a5,296 # 81000128 +80001224: d1cff0ef jal ra,80000740 +80001228: 810007b7 lui a5,0x81000 +8000122c: 17c78513 addi a0,a5,380 # 8100017c +80001230: d10ff0ef jal ra,80000740 +80001234: fe042423 sw zero,-24(s0) +80001238: 0540006f j 8000128c +8000123c: fe842783 lw a5,-24(s0) +80001240: 00f7f793 andi a5,a5,15 +80001244: 00079863 bnez a5,80001254 +80001248: 810007b7 lui a5,0x81000 +8000124c: 15078513 addi a0,a5,336 # 81000150 +80001250: cf0ff0ef jal ra,80000740 +80001254: 810057b7 lui a5,0x81005 +80001258: fe842703 lw a4,-24(s0) +8000125c: 00271713 slli a4,a4,0x2 +80001260: 9a078793 addi a5,a5,-1632 # 810049a0 +80001264: 00f707b3 add a5,a4,a5 +80001268: 0007a783 lw a5,0(a5) +8000126c: 00078513 mv a0,a5 +80001270: d0cff0ef jal ra,8000077c +80001274: 810007b7 lui a5,0x81000 +80001278: 15478513 addi a0,a5,340 # 81000154 +8000127c: cc4ff0ef jal ra,80000740 +80001280: fe842783 lw a5,-24(s0) +80001284: 00178793 addi a5,a5,1 +80001288: fef42423 sw a5,-24(s0) +8000128c: fe842703 lw a4,-24(s0) +80001290: 0ff00793 li a5,255 +80001294: fae7d4e3 bge a5,a4,8000123c +80001298: 810007b7 lui a5,0x81000 +8000129c: 15878513 addi a0,a5,344 # 81000158 +800012a0: ca0ff0ef jal ra,80000740 +800012a4: 01000713 li a4,16 +800012a8: 01000693 li a3,16 +800012ac: 810057b7 lui a5,0x81005 +800012b0: 9a078613 addi a2,a5,-1632 # 810049a0 +800012b4: 810047b7 lui a5,0x81004 +800012b8: 9a078593 addi a1,a5,-1632 # 810039a0 +800012bc: 810037b7 lui a5,0x81003 +800012c0: 9a078513 addi a0,a5,-1632 # 810029a0 +800012c4: b65ff0ef jal ra,80000e28 +800012c8: 810007b7 lui a5,0x81000 +800012cc: 12878513 addi a0,a5,296 # 81000128 +800012d0: c70ff0ef jal ra,80000740 +800012d4: 810007b7 lui a5,0x81000 +800012d8: 18878513 addi a0,a5,392 # 81000188 +800012dc: c64ff0ef jal ra,80000740 +800012e0: fe042223 sw zero,-28(s0) +800012e4: 0540006f j 80001338 +800012e8: fe442783 lw a5,-28(s0) +800012ec: 00f7f793 andi a5,a5,15 +800012f0: 00079863 bnez a5,80001300 +800012f4: 810007b7 lui a5,0x81000 +800012f8: 15078513 addi a0,a5,336 # 81000150 +800012fc: c44ff0ef jal ra,80000740 +80001300: 810057b7 lui a5,0x81005 +80001304: fe442703 lw a4,-28(s0) +80001308: 00271713 slli a4,a4,0x2 +8000130c: 9a078793 addi a5,a5,-1632 # 810049a0 +80001310: 00f707b3 add a5,a4,a5 +80001314: 0007a783 lw a5,0(a5) +80001318: 00078513 mv a0,a5 +8000131c: c60ff0ef jal ra,8000077c +80001320: 810007b7 lui a5,0x81000 +80001324: 15478513 addi a0,a5,340 # 81000154 +80001328: c18ff0ef jal ra,80000740 +8000132c: fe442783 lw a5,-28(s0) +80001330: 00178793 addi a5,a5,1 +80001334: fef42223 sw a5,-28(s0) +80001338: fe442703 lw a4,-28(s0) +8000133c: 0ff00793 li a5,255 +80001340: fae7d4e3 bge a5,a4,800012e8 +80001344: 810007b7 lui a5,0x81000 +80001348: 15878513 addi a0,a5,344 # 81000158 +8000134c: bf4ff0ef jal ra,80000740 +80001350: 00000793 li a5,0 +80001354: 00078513 mv a0,a5 +80001358: 01c12083 lw ra,28(sp) +8000135c: 01812403 lw s0,24(sp) +80001360: 02010113 addi sp,sp,32 +80001364: 00008067 ret Disassembly of section .rodata: @@ -1281,356 +1355,351 @@ Disassembly of section .rodata: 8100002a: 0000 unimp 8100002c: 0062 c.slli zero,0x18 8100002e: 0000 unimp -81000030: 00000063 beqz zero,81000030 +81000030: 00000063 beqz zero,81000030 81000034: 0064 addi s1,sp,12 81000036: 0000 unimp 81000038: 0065 c.nop 25 8100003a: 0000 unimp 8100003c: 0066 c.slli zero,0x19 8100003e: 0000 unimp -81000040: 6f44 flw fs1,28(a4) -81000042: 656e flw fa0,216(sp) -81000044: 203a fld ft0,392(sp) -81000046: 0000 unimp -81000048: 65766173 csrrsi sp,0x657,12 -8100004c: 2064 fld fs1,192(s0) -8100004e: 746e6f63 bltu t3,t1,810007ac -81000052: 7865 lui a6,0xffff9 -81000054: 0a74 addi a3,sp,284 +81000040: 754e flw fa0,240(sp) +81000042: 206d jal 810000ec +81000044: 7661 lui a2,0xffff8 +81000046: 6961 lui s2,0x18 +81000048: 616c flw fa1,68(a0) +8100004a: 6c62 flw fs8,24(sp) +8100004c: 2065 jal 810000f4 +8100004e: 70726177 0x70726177 +81000052: 00203a73 csrrc s4,frm,zero 81000056: 0000 unimp -81000058: 6f66 flw ft10,88(sp) -8100005a: 6e75 lui t3,0x1d -8100005c: 2064 fld fs1,192(s0) -8100005e: 656d6f73 csrrsi t5,0x656,26 -81000062: 6874 flw fa3,84(s0) -81000064: 6e69 lui t3,0x1a -81000066: 6f662067 0x6f662067 -8100006a: 2072 fld ft0,280(sp) -8100006c: 000a3077 0xa3077 -81000070: 756e flw fa0,248(sp) -81000072: 5f6d li t5,-5 -81000074: 6874 flw fa3,84(s0) -81000076: 6572 flw fa0,28(sp) -81000078: 6461 lui s0,0x18 -8100007a: 00203a73 csrrc s4,frm,zero +81000058: 0030 addi a2,sp,8 +8100005a: 0000 unimp +8100005c: 0031 c.nop 12 +8100005e: 0000 unimp +81000060: 0032 c.slli zero,0xc +81000062: 0000 unimp +81000064: 00000033 add zero,zero,zero +81000068: 0034 addi a3,sp,8 +8100006a: 0000 unimp +8100006c: 0035 c.nop 13 +8100006e: 0000 unimp +81000070: 0036 c.slli zero,0xd +81000072: 0000 unimp +81000074: 00000037 lui zero,0x0 +81000078: 0038 addi a4,sp,8 +8100007a: 0000 unimp +8100007c: 0039 c.nop 14 8100007e: 0000 unimp -81000080: 0030 addi a2,sp,8 +81000080: 0061 c.nop 24 81000082: 0000 unimp -81000084: 0031 c.nop 12 +81000084: 0062 c.slli zero,0x18 81000086: 0000 unimp -81000088: 0032 c.slli zero,0xc -8100008a: 0000 unimp -8100008c: 00000033 add zero,zero,zero -81000090: 0034 addi a3,sp,8 +81000088: 00000063 beqz zero,81000088 +8100008c: 0064 addi s1,sp,12 +8100008e: 0000 unimp +81000090: 0065 c.nop 25 81000092: 0000 unimp -81000094: 0035 c.nop 13 +81000094: 0066 c.slli zero,0x19 81000096: 0000 unimp -81000098: 0036 c.slli zero,0xd +81000098: 000a c.slli zero,0x2 8100009a: 0000 unimp -8100009c: 00000037 lui zero,0x0 -810000a0: 0038 addi a4,sp,8 +8100009c: 0030 addi a2,sp,8 +8100009e: 0000 unimp +810000a0: 0031 c.nop 12 810000a2: 0000 unimp -810000a4: 0039 c.nop 14 +810000a4: 0032 c.slli zero,0xc 810000a6: 0000 unimp -810000a8: 0061 c.nop 24 -810000aa: 0000 unimp -810000ac: 0062 c.slli zero,0x18 +810000a8: 00000033 add zero,zero,zero +810000ac: 0034 addi a3,sp,8 810000ae: 0000 unimp -810000b0: 00000063 beqz zero,810000b0 -810000b4: 0064 addi s1,sp,12 +810000b0: 0035 c.nop 13 +810000b2: 0000 unimp +810000b4: 0036 c.slli zero,0xd 810000b6: 0000 unimp -810000b8: 0065 c.nop 25 -810000ba: 0000 unimp -810000bc: 0066 c.slli zero,0x19 +810000b8: 00000037 lui zero,0x0 +810000bc: 0038 addi a4,sp,8 810000be: 0000 unimp -810000c0: 000a c.slli zero,0x2 +810000c0: 0039 c.nop 14 810000c2: 0000 unimp -810000c4: 0030 addi a2,sp,8 +810000c4: 0061 c.nop 24 810000c6: 0000 unimp -810000c8: 0031 c.nop 12 +810000c8: 0062 c.slli zero,0x18 810000ca: 0000 unimp -810000cc: 0032 c.slli zero,0xc -810000ce: 0000 unimp -810000d0: 00000033 add zero,zero,zero -810000d4: 0034 addi a3,sp,8 +810000cc: 00000063 beqz zero,810000cc +810000d0: 0064 addi s1,sp,12 +810000d2: 0000 unimp +810000d4: 0065 c.nop 25 810000d6: 0000 unimp -810000d8: 0035 c.nop 13 +810000d8: 0066 c.slli zero,0x19 810000da: 0000 unimp -810000dc: 0036 c.slli zero,0xd -810000de: 0000 unimp -810000e0: 00000037 lui zero,0x0 -810000e4: 0038 addi a4,sp,8 +810000dc: 7366664f fnmadd.d fa2,fa2,fs6,fa4,unknown +810000e0: 7465 lui s0,0xffff9 +810000e2: 203a fld ft0,392(sp) +810000e4: 0000 unimp 810000e6: 0000 unimp -810000e8: 0039 c.nop 14 +810000e8: 0030 addi a2,sp,8 810000ea: 0000 unimp -810000ec: 0061 c.nop 24 +810000ec: 0031 c.nop 12 810000ee: 0000 unimp -810000f0: 0062 c.slli zero,0x18 +810000f0: 0032 c.slli zero,0xc 810000f2: 0000 unimp -810000f4: 00000063 beqz zero,810000f4 -810000f8: 0064 addi s1,sp,12 +810000f4: 00000033 add zero,zero,zero +810000f8: 0034 addi a3,sp,8 810000fa: 0000 unimp -810000fc: 0065 c.nop 25 +810000fc: 0035 c.nop 13 810000fe: 0000 unimp -81000100: 0066 c.slli zero,0x19 +81000100: 0036 c.slli zero,0xd 81000102: 0000 unimp -81000104: 0030 addi a2,sp,8 -81000106: 0000 unimp -81000108: 0031 c.nop 12 +81000104: 00000037 lui zero,0x0 +81000108: 0038 addi a4,sp,8 8100010a: 0000 unimp -8100010c: 0032 c.slli zero,0xc +8100010c: 0039 c.nop 14 8100010e: 0000 unimp -81000110: 00000033 add zero,zero,zero -81000114: 0034 addi a3,sp,8 +81000110: 0061 c.nop 24 +81000112: 0000 unimp +81000114: 0062 c.slli zero,0x18 81000116: 0000 unimp -81000118: 0035 c.nop 13 -8100011a: 0000 unimp -8100011c: 0036 c.slli zero,0xd +81000118: 00000063 beqz zero,81000118 +8100011c: 0064 addi s1,sp,12 8100011e: 0000 unimp -81000120: 00000037 lui zero,0x0 -81000124: 0038 addi a4,sp,8 +81000120: 0065 c.nop 25 +81000122: 0000 unimp +81000124: 0066 c.slli zero,0x19 81000126: 0000 unimp -81000128: 0039 c.nop 14 -8100012a: 0000 unimp -8100012c: 0061 c.nop 24 -8100012e: 0000 unimp -81000130: 0062 c.slli zero,0x18 -81000132: 0000 unimp -81000134: 00000063 beqz zero,81000134 -81000138: 0064 addi s1,sp,12 -8100013a: 0000 unimp -8100013c: 0065 c.nop 25 -8100013e: 0000 unimp -81000140: 0066 c.slli zero,0x19 +81000128: 2d2d jal 81000762 +8100012a: 2d2d jal 81000764 +8100012c: 2d2d jal 81000766 +8100012e: 2d2d jal 81000768 +81000130: 2d2d jal 8100076a +81000132: 2d2d jal 8100076c +81000134: 2d2d jal 8100076e +81000136: 2d2d jal 81000770 +81000138: 2d2d jal 81000772 +8100013a: 2d2d jal 81000774 +8100013c: 2d2d jal 81000776 +8100013e: 2d2d jal 81000778 +81000140: 0a2d addi s4,s4,11 81000142: 0000 unimp -81000144: 2d2d jal 8100077e -81000146: 2d2d jal 81000780 -81000148: 2d2d jal 81000782 -8100014a: 2d2d jal 81000784 -8100014c: 2d2d jal 81000786 -8100014e: 2d2d jal 81000788 -81000150: 2d2d jal 8100078a -81000152: 2d2d jal 8100078c -81000154: 2d2d jal 8100078e -81000156: 2d2d jal 81000790 -81000158: 2d2d jal 81000792 -8100015a: 2d2d jal 81000794 -8100015c: 0a2d addi s4,s4,11 -8100015e: 0000 unimp -81000160: 4946 lw s2,80(sp) -81000162: 414e lw sp,208(sp) -81000164: 204c fld fa1,128(s0) -81000166: 4441 li s0,16 -81000168: 0a44 addi s1,sp,276 -8100016a: 0000 unimp -8100016c: 000a c.slli zero,0x2 -8100016e: 0000 unimp -81000170: 0020 addi s0,sp,8 -81000172: 0000 unimp -81000174: 2d0a fld fs10,128(sp) -81000176: 2d2d jal 810007b0 -81000178: 2d2d jal 810007b2 -8100017a: 2d2d jal 810007b4 -8100017c: 2d2d jal 810007b6 -8100017e: 2d2d jal 810007b8 -81000180: 2d2d jal 810007ba -81000182: 2d2d jal 810007bc -81000184: 2d2d jal 810007be -81000186: 2d2d jal 810007c0 -81000188: 2d2d jal 810007c2 -8100018a: 2d2d jal 810007c4 -8100018c: 2d2d jal 810007c6 -8100018e: 2d2d jal 810007c8 -81000190: 2d2d jal 810007ca -81000192: 2d2d jal 810007cc -81000194: 000a c.slli zero,0x2 -81000196: 0000 unimp -81000198: 4946 lw s2,80(sp) -8100019a: 414e lw sp,208(sp) -8100019c: 204c fld fa1,128(s0) -8100019e: 0a627553 fsub.d fa0,ft4,ft6 +81000144: 4946 lw s2,80(sp) +81000146: 414e lw sp,208(sp) +81000148: 204c fld fa1,128(s0) +8100014a: 414d li sp,19 +8100014c: 0a54 addi a3,sp,276 +8100014e: 0000 unimp +81000150: 000a c.slli zero,0x2 +81000152: 0000 unimp +81000154: 0020 addi s0,sp,8 +81000156: 0000 unimp +81000158: 2d0a fld fs10,128(sp) +8100015a: 2d2d jal 81000794 +8100015c: 2d2d jal 81000796 +8100015e: 2d2d jal 81000798 +81000160: 2d2d jal 8100079a +81000162: 2d2d jal 8100079c +81000164: 2d2d jal 8100079e +81000166: 2d2d jal 810007a0 +81000168: 2d2d jal 810007a2 +8100016a: 2d2d jal 810007a4 +8100016c: 2d2d jal 810007a6 +8100016e: 2d2d jal 810007a8 +81000170: 2d2d jal 810007aa +81000172: 2d2d jal 810007ac +81000174: 2d2d jal 810007ae +81000176: 2d2d jal 810007b0 +81000178: 000a c.slli zero,0x2 +8100017a: 0000 unimp +8100017c: 4946 lw s2,80(sp) +8100017e: 414e lw sp,208(sp) +81000180: 204c fld fa1,128(s0) +81000182: 4441 li s0,16 +81000184: 0a44 addi s1,sp,276 +81000186: 0000 unimp +81000188: 4946 lw s2,80(sp) +8100018a: 414e lw sp,208(sp) +8100018c: 204c fld fa1,128(s0) +8100018e: 0a627553 fsub.d fa0,ft4,ft6 ... Disassembly of section .data: -810001a4 : -810001a4: 0000 unimp +81000194 : +81000194: 0000 unimp +81000196: 8100 0x8100 +81000198: 0004 0x4 +8100019a: 8100 0x8100 +8100019c: 0008 0x8 +8100019e: 8100 0x8100 +810001a0: 000c 0xc +810001a2: 8100 0x8100 +810001a4: 0010 0x10 810001a6: 8100 0x8100 -810001a8: 0004 0x4 +810001a8: 0014 0x14 810001aa: 8100 0x8100 -810001ac: 0008 0x8 +810001ac: 0018 0x18 810001ae: 8100 0x8100 -810001b0: 000c 0xc +810001b0: 001c 0x1c 810001b2: 8100 0x8100 -810001b4: 0010 0x10 +810001b4: 0020 addi s0,sp,8 810001b6: 8100 0x8100 -810001b8: 0014 0x14 +810001b8: 0024 addi s1,sp,8 810001ba: 8100 0x8100 -810001bc: 0018 0x18 +810001bc: 0028 addi a0,sp,8 810001be: 8100 0x8100 -810001c0: 001c 0x1c +810001c0: 002c addi a1,sp,8 810001c2: 8100 0x8100 -810001c4: 0020 addi s0,sp,8 +810001c4: 0030 addi a2,sp,8 810001c6: 8100 0x8100 -810001c8: 0024 addi s1,sp,8 +810001c8: 0034 addi a3,sp,8 810001ca: 8100 0x8100 -810001cc: 0028 addi a0,sp,8 +810001cc: 0038 addi a4,sp,8 810001ce: 8100 0x8100 -810001d0: 002c addi a1,sp,8 +810001d0: 003c addi a5,sp,8 810001d2: 8100 0x8100 -810001d4: 0030 addi a2,sp,8 + +810001d4 : +810001d4: 0058 addi a4,sp,4 810001d6: 8100 0x8100 -810001d8: 0034 addi a3,sp,8 +810001d8: 005c addi a5,sp,4 810001da: 8100 0x8100 -810001dc: 0038 addi a4,sp,8 +810001dc: 0060 addi s0,sp,12 810001de: 8100 0x8100 -810001e0: 003c addi a5,sp,8 +810001e0: 0064 addi s1,sp,12 810001e2: 8100 0x8100 - -810001e4 : -810001e4: 0080 addi s0,sp,64 +810001e4: 0068 addi a0,sp,12 810001e6: 8100 0x8100 -810001e8: 0084 addi s1,sp,64 +810001e8: 006c addi a1,sp,12 810001ea: 8100 0x8100 -810001ec: 0088 addi a0,sp,64 +810001ec: 0070 addi a2,sp,12 810001ee: 8100 0x8100 -810001f0: 008c addi a1,sp,64 +810001f0: 0074 addi a3,sp,12 810001f2: 8100 0x8100 -810001f4: 0090 addi a2,sp,64 +810001f4: 0078 addi a4,sp,12 810001f6: 8100 0x8100 -810001f8: 0094 addi a3,sp,64 +810001f8: 007c addi a5,sp,12 810001fa: 8100 0x8100 -810001fc: 0098 addi a4,sp,64 +810001fc: 0080 addi s0,sp,64 810001fe: 8100 0x8100 -81000200: 009c addi a5,sp,64 +81000200: 0084 addi s1,sp,64 81000202: 8100 0x8100 -81000204: 00a0 addi s0,sp,72 +81000204: 0088 addi a0,sp,64 81000206: 8100 0x8100 -81000208: 00a4 addi s1,sp,72 +81000208: 008c addi a1,sp,64 8100020a: 8100 0x8100 -8100020c: 00a8 addi a0,sp,72 +8100020c: 0090 addi a2,sp,64 8100020e: 8100 0x8100 -81000210: 00ac addi a1,sp,72 +81000210: 0094 addi a3,sp,64 81000212: 8100 0x8100 -81000214: 00b0 addi a2,sp,72 + +81000214 : +81000214: 009c addi a5,sp,64 81000216: 8100 0x8100 -81000218: 00b4 addi a3,sp,72 +81000218: 00a0 addi s0,sp,72 8100021a: 8100 0x8100 -8100021c: 00b8 addi a4,sp,72 +8100021c: 00a4 addi s1,sp,72 8100021e: 8100 0x8100 -81000220: 00bc addi a5,sp,72 +81000220: 00a8 addi a0,sp,72 81000222: 8100 0x8100 - -81000224 : -81000224: 00c4 addi s1,sp,68 +81000224: 00ac addi a1,sp,72 81000226: 8100 0x8100 -81000228: 00c8 addi a0,sp,68 +81000228: 00b0 addi a2,sp,72 8100022a: 8100 0x8100 -8100022c: 00cc addi a1,sp,68 +8100022c: 00b4 addi a3,sp,72 8100022e: 8100 0x8100 -81000230: 00d0 addi a2,sp,68 +81000230: 00b8 addi a4,sp,72 81000232: 8100 0x8100 -81000234: 00d4 addi a3,sp,68 +81000234: 00bc addi a5,sp,72 81000236: 8100 0x8100 -81000238: 00d8 addi a4,sp,68 +81000238: 00c0 addi s0,sp,68 8100023a: 8100 0x8100 -8100023c: 00dc addi a5,sp,68 +8100023c: 00c4 addi s1,sp,68 8100023e: 8100 0x8100 -81000240: 00e0 addi s0,sp,76 +81000240: 00c8 addi a0,sp,68 81000242: 8100 0x8100 -81000244: 00e4 addi s1,sp,76 +81000244: 00cc addi a1,sp,68 81000246: 8100 0x8100 -81000248: 00e8 addi a0,sp,76 +81000248: 00d0 addi a2,sp,68 8100024a: 8100 0x8100 -8100024c: 00ec addi a1,sp,76 +8100024c: 00d4 addi a3,sp,68 8100024e: 8100 0x8100 -81000250: 00f0 addi a2,sp,76 +81000250: 00d8 addi a4,sp,68 81000252: 8100 0x8100 -81000254: 00f4 addi a3,sp,76 -81000256: 8100 0x8100 -81000258: 00f8 addi a4,sp,76 -8100025a: 8100 0x8100 -8100025c: 00fc addi a5,sp,76 -8100025e: 8100 0x8100 -81000260: 0100 addi s0,sp,128 -81000262: 8100 0x8100 -81000264 : -81000264: 0104 addi s1,sp,128 +81000254 : +81000254: 00e8 addi a0,sp,76 +81000256: 8100 0x8100 +81000258: 00ec addi a1,sp,76 +8100025a: 8100 0x8100 +8100025c: 00f0 addi a2,sp,76 +8100025e: 8100 0x8100 +81000260: 00f4 addi a3,sp,76 +81000262: 8100 0x8100 +81000264: 00f8 addi a4,sp,76 81000266: 8100 0x8100 -81000268: 0108 addi a0,sp,128 +81000268: 00fc addi a5,sp,76 8100026a: 8100 0x8100 -8100026c: 010c addi a1,sp,128 +8100026c: 0100 addi s0,sp,128 8100026e: 8100 0x8100 -81000270: 0110 addi a2,sp,128 +81000270: 0104 addi s1,sp,128 81000272: 8100 0x8100 -81000274: 0114 addi a3,sp,128 +81000274: 0108 addi a0,sp,128 81000276: 8100 0x8100 -81000278: 0118 addi a4,sp,128 +81000278: 010c addi a1,sp,128 8100027a: 8100 0x8100 -8100027c: 011c addi a5,sp,128 +8100027c: 0110 addi a2,sp,128 8100027e: 8100 0x8100 -81000280: 0120 addi s0,sp,136 +81000280: 0114 addi a3,sp,128 81000282: 8100 0x8100 -81000284: 0124 addi s1,sp,136 +81000284: 0118 addi a4,sp,128 81000286: 8100 0x8100 -81000288: 0128 addi a0,sp,136 +81000288: 011c addi a5,sp,128 8100028a: 8100 0x8100 -8100028c: 012c addi a1,sp,136 +8100028c: 0120 addi s0,sp,136 8100028e: 8100 0x8100 -81000290: 0130 addi a2,sp,136 +81000290: 0124 addi s1,sp,136 81000292: 8100 0x8100 -81000294: 0134 addi a3,sp,136 -81000296: 8100 0x8100 -81000298: 0138 addi a4,sp,136 -8100029a: 8100 0x8100 -8100029c: 013c addi a5,sp,136 -8100029e: 8100 0x8100 -810002a0: 0140 addi s0,sp,132 -810002a2: 8100 0x8100 Disassembly of section .bss: -810002a4 : +81000294 : ... -810002c0 : -810002c0: 0000 unimp +810002b0 : +810002b0: 0000 unimp ... -810002c4 : +810002b4 : ... -81000344 : +81000334 : ... -81002964 : +81002954 : ... -81002980 : -81002980: 0000 unimp +81002970 : +81002970: 0000 unimp ... -81002984 : +81002974 : ... -81002998 : +81002988 : ... -810029b0 : +810029a0 : ... -810039b0 : +810039a0 : ... -810049b0 : +810049a0 : ... -810059b0 : +810059a0 : ... -810059cc : -810059cc: 0000 unimp +810059bc : +810059bc: 0000 unimp ... Disassembly of section .comment: diff --git a/src/vortex_software/vortex_test.elf b/src/vortex_software/vortex_test.elf index da76494ccca3839390f90e85481b36da46ef7d9e..c496af45779fdb644a0aa06486d0a03bc820654a 100755 GIT binary patch delta 3327 zcmb_fe{2)i9sl0>oFiSR?Kr_9X=; zS_#SL+4<3_8Y?d=5t9m@R<#(mWv&Mc+Pf!s51@ zeH5^oMY~x=T`mT!zFPsSbwkUo{{)kyu1#8_HdbQ&W_8swJ~KH?M0Qh0`WZ6O(<+fe zB*89<3LCQiL=-ETWE(FDcu3^2fX6DbaoeM-n`Y!ivX97=Bwst5E-Pb~Y+F2rR&_g* z&D8s2S+vWmX;!9?-QguRwzZz^DqYh!|BpdZ%>hDcgqiHy-Xt%Iyc@dYY2-+jnPoi* zJ+9Q*A68u9b2ouRo{FF4Y|mbFMK5DYXkZ{%rC_a@YTvxNQ#=Q!>@x{SlKz>K&IQ zZIUBfo01fLOcU~|EHXKgX0WLcQ@(%%CX$c2 zIbS5_Lg)1LfyLW)fxC2S{!!`p&p88O6P34%iToLM7b9vnZoXF&ra@Vi2{&Ei* zUn;M(0p3hxbP5rk%*>Qu6@+Rw;poPF!Ld&qD`rntv6V{cjoo-_IY-chPRf}C zEf4P9hh5DDjcz?L>mb!WdhX|852lFCmP|R{7$jODj*Xa){~BxjBL!=m=Y!vOz>W3B z*x5mf;+gYwzpH!02G@E;XLM$AZHFNIhFz&_!rfZc_w-a^GOuxL@?Kv!Hu}PGEW>>% z^oLKFQZm(fSdU5_3D{;=^yx3g*lsGoeT&_*bS@s~?Q}xj2c zpBJ|cUR+qg3&ihw@e#Z@v$7ZQD+MnsR|;Ol|E_sa3@HbZvgoue|Lm`r6297W0!TVAUaz<)=2c@mJecb%5r@! zv7{&GgmZS8g#Rtpd7>aTelh=i&H?_5ihEgXq3@#XMcI!sfN~J!Fv<|h z^C(BzwT7zWjcy^z)-_hKZH+!Q)wshs_53 zE#NK#Mq=_Aa6j;NcBsj@4xdP&hkyi<=mpf%z>}>Cgb_nq@4NLS@ z;Boe+W@qs9o_kr|2R5>F8CZ5>)SQ{rIfV2{E0}a8#Tv%d_0~;RkUqH@IesY4V<7J*lHkb;WPSrVMZH)k0Kt^ z`+p6%%pmaFz_?U?<9s`T-+`mNfjjcOAR2sz1S#P0FOb>_<$S>RIo7ud$CbdFZKSS8 z%`q2#dSgM*FEOs}!NU0G(GSbT^J)EG1YU2**Y_$K77PjA0Dixi)bqN4_kf#C6mr$( z75^6aO~VZ1z^kxC=k)~FfL#W@Byf~{sl`_`yyv;0t|1m^2^GDt;|EVQb+VfoJ=A_6OMCHohhf*x6`Xt-#n@ZBFw9e%ll5 xVw=MMtl;V2ZC+u5t=r@^pJ{|SY{w?Wysd>O&5mqRDmvPTzQWzmFHBRr{tG*8BxC>p delta 2935 zcmd5;Yiu0V6+W{&>q&xLue~;YWRu-w*1IO4Bx`SE$4*p-EZF5C8~BkBpdr{!?5eR{ zVn_=}JIgvTQV=8@9!8-JN|%R_5src|ARZ1{HI*9SM3@l3!hxjSs-@a(Wf4?n-F|m= z%#3-cf4kP)x!<|xp7VX@&K%EQ_m1s7=$G0KtxyX(N{Kp34_#O7N;-&6AM1UpxUk`$ z|A}QttIW7t3OV4uUaIB+ceUfe8h+UQh~q&odrKbTS4*xeiX2xik!PPm8EUzjzbv_> z!)DQLWW`0DLyF8w5iz{R6^g@K&d|iqJ+K+LB1Amgy2^;8xJi9BO~SwPNkq*a;rmOy z<@un>P>x-SnQmeukCv{Kj__pZ6_0t;LVI3b))}IIw@r~vM^}cZftA!ZRs{^lRf&+STQ)^Oz-S^A)$;^pJyDbT#u*&a6Ty`3 z49U4X!I=pzTVCS{CUrINs;;g~>8gK9&t!cca$DK5-r89m;&gS@tj>x=>Qw?qb#=A4 z%kZ6@69Uzh^Ws`=s8=pI1XmtzHH#+OiZ)UHLj~!a;`hs{!uo}tOJ8{;QJ9&}JVcc6 zpKv+@ai>R;>;|&Jk5k$$UN7H2CXiiPqv7A$% zPvgWP>Z1nZRE_ziz2f9xw@%xNfdajlCQ)?3u=8JOhq1Q5b!5DPv<}bylTWcrBWI1A z!z1xZKhXjQv7W%1x&CrKkVc(fr^$nT*z;yTO_=*<-r$My3Vye$!g1ui4jniwu==wr33Q*!c!xw4?c!$+SmJ#Lc+|T_VxIQC<~aE=KfY|6L-~ZW z%l;pQD;Z08`?>E6S2C9H_Oss?-hROn{^%DFzS`0LcPJm1931iAhVdZA!~CUxDaJ)B ze3FxESJcKlC?6NNX?zR%=YHkzcq<!%i%@t})yADQpNC&l`Vh>5eF^B8?tIV}2c;svwKW+%@hR!k(R$Yk56jUeCcjZ^7= zo5|r*{K@|&yZt?jZ1G3=`EV8DpH&0%WYHVGCA&?i6l~k4@@&zpe~@kQ*?cfT_R%v5 z(O?AGfarB*vspm4ee!sRI#zh>V5Rif+Ln#c{=V)eKhd5Y_jY&rJNx?vyMH~nglK2~ zJ$+sNJ^j182YY(^cKLVq-|gSKb_w;}vwQns&)wZSy7n~rIk#prkF1R%5Z8uRIyXh5 zd}DYWKN7x{^>C#$!X=?kTWxeF*C_Hhd0v)`mX?c5_k0R}xXIUCSk+Hr^QVNf-H!h;LKZ z6$|rf!1lZW@Mu9K37Sz68p3*+fn~ZHc!b}M_+n$XE{t*t*dC?J7G(=|z2zbeb)Ztj z?FB|%G(ZFI0iJS@)`q)S593Q{3|YxdRD$a4gMF);v_aGV35jAfu!yuma|4cvvOgiM z$HZf}Uqr(B1Sf!hX-jwpc&k|=k?>RCtVG&HGeHK}D_b}R{4mzL%=JP?45tbL;`Bv; z%fa|-^CSdD4QcFWmVzK~7ZRpS|9W8EMrboIewrA>{$}75Dku!10@nf8+6ezK21DCr zr1`;2Y}f)kU?YGJBRYkW4VmkL`Ph1k&~vb#F0%G_!ynZa`HXn?0+-nm9sr)U#lL0* zh6fgtcFIif9B|Z0aepw+_yu6X5xivvd;@rqEx<|O9^Tl{Qc$|ez7CG zZflsAG= MAX_THREADS) + if (mat_dim >= num_avail_threads) { - vx_spawnWarps(mat_dim, MAX_THREADS, _vx_mat_mult, (void *) (&mat_mult_args)); + vx_spawnWarps(mat_dim, num_avail_threads, _vx_mat_mult, (void *) (&mat_mult_args)); } else { vx_spawnWarps(mat_dim, mat_dim, _vx_mat_mult, (void *) (&mat_mult_args)); } - if (mat_dim > MAX_WARPS) + unsigned num_avail_warps = vx_available_warps(); + + if (mat_dim > num_avail_warps) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(num_avail_warps); } else { @@ -102,9 +109,12 @@ void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.num_cols = num_cols; mat_r_args.num_rows = num_rows; - unsigned off = (num_cols/MAX_THREADS); - if ((num_cols%MAX_THREADS) != 0) + unsigned num_avail_threads = vx_available_threads(); + + unsigned off = (num_cols/num_avail_threads); + + if ((num_cols%num_avail_threads) != 0) { off += 1; } @@ -112,18 +122,20 @@ void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.offset = off; - if (num_cols >= MAX_THREADS) + if (num_cols >= num_avail_threads) { - vx_spawnWarps(num_rows, MAX_THREADS, _vx_mat_add, (void *) (&mat_r_args)); + vx_spawnWarps(num_rows, num_avail_threads, _vx_mat_add, (void *) (&mat_r_args)); } else { vx_spawnWarps(num_rows, num_cols, _vx_mat_add, (void *) (&mat_r_args)); } - if (num_rows > (MAX_WARPS)) + unsigned num_avail_warps = vx_available_warps(); + + if (num_rows > num_avail_warps) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(num_avail_warps); } else { @@ -182,9 +194,11 @@ void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.num_cols = num_cols; mat_r_args.num_rows = num_rows; - unsigned off = (num_cols/MAX_THREADS); + unsigned num_avail_threads = vx_available_threads(); - if ((num_cols%MAX_THREADS) != 0) + unsigned off = (num_cols/num_avail_threads); + + if ((num_cols%num_avail_threads) != 0) { off += 1; } @@ -192,18 +206,20 @@ void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.offset = off; - if (num_cols >= MAX_THREADS) + if (num_cols >= num_avail_threads) { - vx_spawnWarps(num_rows, MAX_THREADS, _vx_mat_sub, (void *) (&mat_r_args)); + vx_spawnWarps(num_rows, num_avail_threads, _vx_mat_sub, (void *) (&mat_r_args)); } else { vx_spawnWarps(num_rows, num_cols, _vx_mat_sub, (void *) (&mat_r_args)); } - if (num_rows > (MAX_WARPS)) + unsigned num_avail_warps = vx_available_warps(); + + if (num_rows > num_avail_warps) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(num_avail_warps); } else { diff --git a/src/vortex_software/vx_include/vx_front.h b/src/vortex_software/vx_include/vx_front.h index b2f106e6..99bf9640 100644 --- a/src/vortex_software/vx_include/vx_front.h +++ b/src/vortex_software/vx_include/vx_front.h @@ -1,9 +1,6 @@ #include "../vx_os/vx_back/vx_back.h" #include "../vx_os/vx_io/vx_io.h" -#define MAX_WARPS 8 -#define MAX_THREADS 8 - // -------------------------- Matrix Multiplication -------------------------- diff --git a/src/vortex_software/vx_main.c b/src/vortex_software/vx_main.c index 68697347..c9b9dc9f 100644 --- a/src/vortex_software/vx_main.c +++ b/src/vortex_software/vx_main.c @@ -5,10 +5,10 @@ unsigned x[1024] = {0}; unsigned y[1024] = {0}; unsigned z[1024] = {0}; -#define MAT_DIM 8 +#define MAT_DIM 16 -#define NUM_COLS 8 -#define NUM_ROWS 1 +#define NUM_COLS 16 +#define NUM_ROWS 16 void initialize_mats() { @@ -24,18 +24,18 @@ int main() initialize_mats(); - // // matrix multiplication - // vx_sq_mat_mult(x, y, z, MAT_DIM); - // vx_print_str("-------------------------\n"); - // vx_print_str("FINAL MAT\n"); + // matrix multiplication + vx_sq_mat_mult(x, y, z, MAT_DIM); + vx_print_str("-------------------------\n"); + vx_print_str("FINAL MAT\n"); - // for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) - // { - // if ((j % MAT_DIM) == 0) vx_print_str("\n"); - // vx_print_hex(z[j]); - // vx_print_str(" "); - // } - // vx_print_str("\n-------------------------------\n"); + for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) + { + if ((j % MAT_DIM) == 0) vx_print_str("\n"); + vx_print_hex(z[j]); + vx_print_str(" "); + } + vx_print_str("\n-------------------------------\n"); // matrix addition diff --git a/src/vortex_software/vx_os/vx_back/vx_back.c b/src/vortex_software/vx_os/vx_back/vx_back.c index 19374552..b8a8f3c5 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.c +++ b/src/vortex_software/vx_os/vx_back/vx_back.c @@ -5,6 +5,7 @@ void vx_before_main() { + // unsigned num_available_warps = vx_available_warps(); for (int i = 0; i < 8; i++) { queue_initialize(q + i); @@ -20,7 +21,7 @@ void vx_reschedule_warps() if (queue_isEmpty(q+curr_warp)) { - vx_printf("Done: ", curr_warp); + // vx_printf("Done: ", curr_warp); done[curr_warp] = 1; if (curr_warp == 0) { @@ -44,11 +45,11 @@ void vx_reschedule_warps() void vx_schedule_warps() { - + unsigned num_available_warps = vx_available_warps(); asm __volatile__("mv s3, sp"); - for (int curr_warp = 1; curr_warp < 8; ++curr_warp) + for (int curr_warp = 1; curr_warp < num_available_warps; ++curr_warp) { if (!queue_isEmpty(q+curr_warp)) { @@ -64,17 +65,17 @@ void vx_schedule_warps() vx_save_context(); - vx_print_str("saved context\n"); + // vx_print_str("saved context\n"); register unsigned val asm("tp"); if (val) { if (!queue_isEmpty(q)) { - vx_print_str("found something for w0\n"); + // vx_print_str("found something for w0\n"); Job j; queue_dequeue(q,&j); - vx_printf("num_threads: ", j.n_threads); + // vx_printf("num_threads: ", j.n_threads); asm __volatile__("mv sp,%0"::"r" (j.base_sp):); vx_createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); } @@ -83,10 +84,13 @@ void vx_schedule_warps() } - void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) { vx_before_main(); + + unsigned num_available_warps = vx_available_warps(); + vx_printf("Num available warps: ", num_available_warps); + asm __volatile__("addi s2, sp, 0"); int warp = 0; for (unsigned i = 0; i < num_Warps; i++) @@ -105,7 +109,7 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) queue_enqueue(q + warp,&j); ++warp; - if (warp >= 8) warp = 0; + if (warp >= num_available_warps) warp = 0; } asm __volatile__("addi sp, s2, 0"); @@ -117,11 +121,12 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) void vx_wait_for_warps(unsigned num_wait) { // vx_printf("wait for: ", num_wait); + unsigned num_available_warps = vx_available_warps(); unsigned num = 0; while (num != num_wait) { num = 0; - for (int i = 0; i < 8; i++) + for (int i = 0; i < num_available_warps; i++) { if (done[i] == 1) { @@ -131,7 +136,7 @@ void vx_wait_for_warps(unsigned num_wait) } // vx_printf("num found: ", num); - for (int i = 0; i < num_wait; i++) done[i] = 0; + for (int i = 0; i < num_available_warps; i++) done[i] = 0; } diff --git a/src/vortex_software/vx_os/vx_back/vx_back.h b/src/vortex_software/vx_os/vx_back/vx_back.h index d23b19c7..c31b1dea 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.h +++ b/src/vortex_software/vx_os/vx_back/vx_back.h @@ -40,6 +40,10 @@ void vx_load_context(void); #define FUNC void (func)(unsigned, unsigned) +unsigned vx_available_warps(void); +unsigned vx_available_threads(void); + + void vx_createThreads(unsigned, unsigned, unsigned, void *, unsigned); void vx_wspawn(unsigned, unsigned, unsigned, void *, unsigned); void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void *); diff --git a/src/vortex_software/vx_os/vx_back/vx_back.s b/src/vortex_software/vx_os/vx_back/vx_back.s index a735b15e..c918588d 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.s +++ b/src/vortex_software/vx_os/vx_back/vx_back.s @@ -6,6 +6,12 @@ .type _start, @function .global _start _start: + li a0, 4 # Num Warps + csrw 0x20, a0 # Setting the number of available warps + li a0, 8 # Num Threads + csrw 0x21, a0 # Setting the number of available threads + csrw mhartid,zero + csrw misa,zero lui sp, 0x7ffff jal vx_before_main jal main @@ -127,3 +133,19 @@ lw x31, 124(tp) li tp, 0 ret +.type vx_available_warps, @function +.global vx_available_warps +vx_available_warps: +csrr a0, 0x20 +ret + +.type vx_available_threads, @function +.global vx_available_threads +vx_available_threads: +csrr a0, 0x21 +ret + + + + +