From ee0d8a0f55d476091b35243bb7b492263d497e2a Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Tue, 19 Mar 2019 00:43:03 -0400 Subject: [PATCH] Finished mult, add, and sub --- src/instruction.cpp | 5 +- src/results.txt | 1 - src/vortex_software/vortex_test.dump | 2035 ++++++++++++------- src/vortex_software/vortex_test.elf | Bin 10748 -> 15004 bytes src/vortex_software/vortex_test.hex | 472 +++-- src/vortex_software/vx_include/vx_front.c | 196 +- src/vortex_software/vx_include/vx_front.h | 20 +- src/vortex_software/vx_main.c | 39 +- src/vortex_software/vx_os/vx_back/vx_back.c | 28 +- src/vortex_software/vx_os/vx_back/vx_back.h | 2 +- src/vortex_software/vx_os/vx_io/vx_io.c | 8 + 11 files changed, 1802 insertions(+), 1004 deletions(-) delete mode 100644 src/results.txt diff --git a/src/instruction.cpp b/src/instruction.cpp index ca135ea9..ebb79b62 100644 --- a/src/instruction.cpp +++ b/src/instruction.cpp @@ -634,7 +634,8 @@ void Instruction::executeOn(Warp &c) { { //std::cout << "INTERRUPT ECALL/EBREAK\n"; nextActiveThreads = 0; - c.interrupt(0); + c.spawned = false; + // c.interrupt(0); } break; default: @@ -672,7 +673,7 @@ void Instruction::executeOn(Warp &c) { // //std::cout << "SIZE: " << c.core->w.size() << "\n"; for (unsigned i = 0; i < c.core->w.size(); ++i) { - // //std::cout << "WHATTT\n"; + // std::cout << "SPAWNING WARP\n"; Warp &newWarp(c.core->w[i]); // //std::cout << "STARTING\n"; if (newWarp.spawned == false) { diff --git a/src/results.txt b/src/results.txt deleted file mode 100644 index d44e18fb..00000000 --- a/src/results.txt +++ /dev/null @@ -1 +0,0 @@ -start diff --git a/src/vortex_software/vortex_test.dump b/src/vortex_software/vortex_test.dump index 5e98a3ee..ce279182 100644 --- a/src/vortex_software/vortex_test.dump +++ b/src/vortex_software/vortex_test.dump @@ -7,7 +7,7 @@ Disassembly of section .text: 80000000 <_start>: 80000000: 7ffff137 lui sp,0x7ffff 80000004: 068000ef jal ra,8000006c -80000008: 185000ef jal ra,8000098c
+80000008: 6fd000ef jal ra,80000f04
8000000c: 00000073 ecall 80000010 : @@ -58,10 +58,10 @@ Disassembly of section .text: 80000088: 4c400793 li a5,1220 8000008c: 02f70733 mul a4,a4,a5 80000090: 810007b7 lui a5,0x81000 -80000094: 1f078793 addi a5,a5,496 # 810001f0 +80000094: 21078793 addi a5,a5,528 # 81000210 80000098: 00f707b3 add a5,a4,a5 8000009c: 00078513 mv a0,a5 -800000a0: 33c000ef jal ra,800003dc +800000a0: 37c000ef jal ra,8000041c 800000a4: fec42783 lw a5,-20(s0) 800000a8: 00178793 addi a5,a5,1 800000ac: fef42623 sw a5,-20(s0) @@ -84,656 +84,1101 @@ Disassembly of section .text: 800000e8: 4c400793 li a5,1220 800000ec: 02f70733 mul a4,a4,a5 800000f0: 810007b7 lui a5,0x81000 -800000f4: 1f078793 addi a5,a5,496 # 810001f0 +800000f4: 21078793 addi a5,a5,528 # 81000210 800000f8: 00f707b3 add a5,a4,a5 800000fc: 00078513 mv a0,a5 -80000100: 3f0000ef jal ra,800004f0 +80000100: 430000ef jal ra,80000530 80000104: 00050793 mv a5,a0 -80000108: 02078063 beqz a5,80000128 +80000108: 02078263 beqz a5,8000012c 8000010c: 000d0713 mv a4,s10 80000110: 810007b7 lui a5,0x81000 -80000114: 1e478793 addi a5,a5,484 # 810001e4 -80000118: 00f707b3 add a5,a4,a5 -8000011c: 00100713 li a4,1 -80000120: 00e78023 sb a4,0(a5) -80000124: 00000073 ecall -80000128: 000d0713 mv a4,s10 -8000012c: 4c400793 li a5,1220 -80000130: 02f70733 mul a4,a4,a5 -80000134: 810007b7 lui a5,0x81000 -80000138: 1f078793 addi a5,a5,496 # 810001f0 -8000013c: 00f707b3 add a5,a4,a5 -80000140: fd840713 addi a4,s0,-40 -80000144: 00070593 mv a1,a4 -80000148: 00078513 mv a0,a5 -8000014c: 31c000ef jal ra,80000468 -80000150: fe042783 lw a5,-32(s0) -80000154: 00078113 mv sp,a5 -80000158: fdc42783 lw a5,-36(s0) -8000015c: fd842583 lw a1,-40(s0) -80000160: fe442603 lw a2,-28(s0) -80000164: fe842683 lw a3,-24(s0) -80000168: fec42703 lw a4,-20(s0) -8000016c: 00078513 mv a0,a5 -80000170: ea1ff0ef jal ra,80000010 -80000174: 00000073 ecall -80000178: 00000013 nop -8000017c: 02c12083 lw ra,44(sp) -80000180: 02812403 lw s0,40(sp) -80000184: 02412d03 lw s10,36(sp) -80000188: 03010113 addi sp,sp,48 -8000018c: 00008067 ret +80000114: 00271713 slli a4,a4,0x2 +80000118: 1f078793 addi a5,a5,496 # 810001f0 +8000011c: 00f707b3 add a5,a4,a5 +80000120: 00100713 li a4,1 +80000124: 00e7a023 sw a4,0(a5) +80000128: 00000073 ecall +8000012c: 000d0713 mv a4,s10 +80000130: 4c400793 li a5,1220 +80000134: 02f70733 mul a4,a4,a5 +80000138: 810007b7 lui a5,0x81000 +8000013c: 21078793 addi a5,a5,528 # 81000210 +80000140: 00f707b3 add a5,a4,a5 +80000144: fd840713 addi a4,s0,-40 +80000148: 00070593 mv a1,a4 +8000014c: 00078513 mv a0,a5 +80000150: 358000ef jal ra,800004a8 +80000154: fe042783 lw a5,-32(s0) +80000158: 00078113 mv sp,a5 +8000015c: fdc42783 lw a5,-36(s0) +80000160: fd842583 lw a1,-40(s0) +80000164: fe442603 lw a2,-28(s0) +80000168: fe842683 lw a3,-24(s0) +8000016c: fec42703 lw a4,-20(s0) +80000170: 00078513 mv a0,a5 +80000174: e9dff0ef jal ra,80000010 +80000178: 00000073 ecall +8000017c: 00000013 nop +80000180: 02c12083 lw ra,44(sp) +80000184: 02812403 lw s0,40(sp) +80000188: 02412d03 lw s10,36(sp) +8000018c: 03010113 addi sp,sp,48 +80000190: 00008067 ret -80000190 : -80000190: fd010113 addi sp,sp,-48 -80000194: 02112623 sw ra,44(sp) -80000198: 02812423 sw s0,40(sp) -8000019c: 03010413 addi s0,sp,48 -800001a0: 00010993 mv s3,sp -800001a4: fe042623 sw zero,-20(s0) -800001a8: 0840006f j 8000022c -800001ac: fec42703 lw a4,-20(s0) -800001b0: 4c400793 li a5,1220 -800001b4: 02f70733 mul a4,a4,a5 -800001b8: 810007b7 lui a5,0x81000 -800001bc: 1f078793 addi a5,a5,496 # 810001f0 -800001c0: 00f707b3 add a5,a4,a5 -800001c4: 00078513 mv a0,a5 -800001c8: 328000ef jal ra,800004f0 -800001cc: 00050793 mv a5,a0 -800001d0: 04079863 bnez a5,80000220 -800001d4: fec42703 lw a4,-20(s0) -800001d8: 4c400793 li a5,1220 -800001dc: 02f70733 mul a4,a4,a5 -800001e0: 810007b7 lui a5,0x81000 -800001e4: 1f078793 addi a5,a5,496 # 810001f0 -800001e8: 00f707b3 add a5,a4,a5 -800001ec: fd440713 addi a4,s0,-44 -800001f0: 00070593 mv a1,a4 -800001f4: 00078513 mv a0,a5 -800001f8: 270000ef jal ra,80000468 -800001fc: fdc42783 lw a5,-36(s0) -80000200: 00078113 mv sp,a5 -80000204: fd842783 lw a5,-40(s0) -80000208: fd442583 lw a1,-44(s0) -8000020c: fe042603 lw a2,-32(s0) -80000210: fe442683 lw a3,-28(s0) -80000214: fe842703 lw a4,-24(s0) -80000218: 00078513 mv a0,a5 -8000021c: e41ff0ef jal ra,8000005c -80000220: fec42783 lw a5,-20(s0) -80000224: 00178793 addi a5,a5,1 -80000228: fef42623 sw a5,-20(s0) -8000022c: fec42703 lw a4,-20(s0) -80000230: 00600793 li a5,6 -80000234: f6e7dce3 bge a5,a4,800001ac -80000238: 00098113 mv sp,s3 -8000023c: 00000013 nop -80000240: 02c12083 lw ra,44(sp) -80000244: 02812403 lw s0,40(sp) -80000248: 03010113 addi sp,sp,48 -8000024c: 00008067 ret +80000194 : +80000194: fd010113 addi sp,sp,-48 +80000198: 02112623 sw ra,44(sp) +8000019c: 02812423 sw s0,40(sp) +800001a0: 03010413 addi s0,sp,48 +800001a4: 00010993 mv s3,sp +800001a8: fe042623 sw zero,-20(s0) +800001ac: 0840006f j 80000230 +800001b0: fec42703 lw a4,-20(s0) +800001b4: 4c400793 li a5,1220 +800001b8: 02f70733 mul a4,a4,a5 +800001bc: 810007b7 lui a5,0x81000 +800001c0: 21078793 addi a5,a5,528 # 81000210 +800001c4: 00f707b3 add a5,a4,a5 +800001c8: 00078513 mv a0,a5 +800001cc: 364000ef jal ra,80000530 +800001d0: 00050793 mv a5,a0 +800001d4: 04079863 bnez a5,80000224 +800001d8: fec42703 lw a4,-20(s0) +800001dc: 4c400793 li a5,1220 +800001e0: 02f70733 mul a4,a4,a5 +800001e4: 810007b7 lui a5,0x81000 +800001e8: 21078793 addi a5,a5,528 # 81000210 +800001ec: 00f707b3 add a5,a4,a5 +800001f0: fd440713 addi a4,s0,-44 +800001f4: 00070593 mv a1,a4 +800001f8: 00078513 mv a0,a5 +800001fc: 2ac000ef jal ra,800004a8 +80000200: fdc42783 lw a5,-36(s0) +80000204: 00078113 mv sp,a5 +80000208: fd842783 lw a5,-40(s0) +8000020c: fd442583 lw a1,-44(s0) +80000210: fe042603 lw a2,-32(s0) +80000214: fe442683 lw a3,-28(s0) +80000218: fe842703 lw a4,-24(s0) +8000021c: 00078513 mv a0,a5 +80000220: e3dff0ef jal ra,8000005c +80000224: fec42783 lw a5,-20(s0) +80000228: 00178793 addi a5,a5,1 +8000022c: fef42623 sw a5,-20(s0) +80000230: fec42703 lw a4,-20(s0) +80000234: 00600793 li a5,6 +80000238: f6e7dce3 bge a5,a4,800001b0 +8000023c: 00098113 mv sp,s3 +80000240: 00000013 nop +80000244: 02c12083 lw ra,44(sp) +80000248: 02812403 lw s0,40(sp) +8000024c: 03010113 addi sp,sp,48 +80000250: 00008067 ret -80000250 : -80000250: fc010113 addi sp,sp,-64 -80000254: 02112e23 sw ra,60(sp) -80000258: 02812c23 sw s0,56(sp) -8000025c: 04010413 addi s0,sp,64 -80000260: fca42623 sw a0,-52(s0) -80000264: fcb42423 sw a1,-56(s0) -80000268: fcc42223 sw a2,-60(s0) -8000026c: fcd42023 sw a3,-64(s0) -80000270: 00010913 mv s2,sp -80000274: fe042623 sw zero,-20(s0) -80000278: fe042423 sw zero,-24(s0) -8000027c: 08c0006f j 80000308 -80000280: ffff09b7 lui s3,0xffff0 -80000284: 01310133 add sp,sp,s3 -80000288: fe842783 lw a5,-24(s0) -8000028c: fcf42823 sw a5,-48(s0) -80000290: fc842783 lw a5,-56(s0) -80000294: fcf42a23 sw a5,-44(s0) -80000298: 00010793 mv a5,sp -8000029c: fcf42c23 sw a5,-40(s0) -800002a0: fc442783 lw a5,-60(s0) -800002a4: fcf42e23 sw a5,-36(s0) -800002a8: fc042783 lw a5,-64(s0) -800002ac: fef42023 sw a5,-32(s0) -800002b0: fec42783 lw a5,-20(s0) -800002b4: fef42223 sw a5,-28(s0) -800002b8: fec42703 lw a4,-20(s0) -800002bc: 4c400793 li a5,1220 -800002c0: 02f70733 mul a4,a4,a5 -800002c4: 810007b7 lui a5,0x81000 -800002c8: 1f078793 addi a5,a5,496 # 810001f0 -800002cc: 00f707b3 add a5,a4,a5 -800002d0: fd040713 addi a4,s0,-48 -800002d4: 00070593 mv a1,a4 -800002d8: 00078513 mv a0,a5 -800002dc: 124000ef jal ra,80000400 -800002e0: fec42783 lw a5,-20(s0) -800002e4: 00178793 addi a5,a5,1 -800002e8: fef42623 sw a5,-20(s0) -800002ec: fec42703 lw a4,-20(s0) -800002f0: 00600793 li a5,6 -800002f4: 00e7d463 bge a5,a4,800002fc -800002f8: fe042623 sw zero,-20(s0) -800002fc: fe842783 lw a5,-24(s0) -80000300: 00178793 addi a5,a5,1 -80000304: fef42423 sw a5,-24(s0) -80000308: fe842703 lw a4,-24(s0) -8000030c: fcc42783 lw a5,-52(s0) -80000310: f6f768e3 bltu a4,a5,80000280 -80000314: 00090113 mv sp,s2 -80000318: e79ff0ef jal ra,80000190 -8000031c: 00000013 nop -80000320: 03c12083 lw ra,60(sp) -80000324: 03812403 lw s0,56(sp) -80000328: 04010113 addi sp,sp,64 -8000032c: 00008067 ret +80000254 : +80000254: fc010113 addi sp,sp,-64 +80000258: 02112e23 sw ra,60(sp) +8000025c: 02812c23 sw s0,56(sp) +80000260: 04010413 addi s0,sp,64 +80000264: fca42623 sw a0,-52(s0) +80000268: fcb42423 sw a1,-56(s0) +8000026c: fcc42223 sw a2,-60(s0) +80000270: fcd42023 sw a3,-64(s0) +80000274: df9ff0ef jal ra,8000006c +80000278: 00010913 mv s2,sp +8000027c: fe042623 sw zero,-20(s0) +80000280: fe042423 sw zero,-24(s0) +80000284: 08c0006f j 80000310 +80000288: ffff09b7 lui s3,0xffff0 +8000028c: 01310133 add sp,sp,s3 +80000290: fe842783 lw a5,-24(s0) +80000294: fcf42823 sw a5,-48(s0) +80000298: fc842783 lw a5,-56(s0) +8000029c: fcf42a23 sw a5,-44(s0) +800002a0: 00010793 mv a5,sp +800002a4: fcf42c23 sw a5,-40(s0) +800002a8: fc442783 lw a5,-60(s0) +800002ac: fcf42e23 sw a5,-36(s0) +800002b0: fc042783 lw a5,-64(s0) +800002b4: fef42023 sw a5,-32(s0) +800002b8: fec42783 lw a5,-20(s0) +800002bc: fef42223 sw a5,-28(s0) +800002c0: fec42703 lw a4,-20(s0) +800002c4: 4c400793 li a5,1220 +800002c8: 02f70733 mul a4,a4,a5 +800002cc: 810007b7 lui a5,0x81000 +800002d0: 21078793 addi a5,a5,528 # 81000210 +800002d4: 00f707b3 add a5,a4,a5 +800002d8: fd040713 addi a4,s0,-48 +800002dc: 00070593 mv a1,a4 +800002e0: 00078513 mv a0,a5 +800002e4: 15c000ef jal ra,80000440 +800002e8: fec42783 lw a5,-20(s0) +800002ec: 00178793 addi a5,a5,1 +800002f0: fef42623 sw a5,-20(s0) +800002f4: fec42703 lw a4,-20(s0) +800002f8: 00600793 li a5,6 +800002fc: 00e7d463 bge a5,a4,80000304 +80000300: fe042623 sw zero,-20(s0) +80000304: fe842783 lw a5,-24(s0) +80000308: 00178793 addi a5,a5,1 +8000030c: fef42423 sw a5,-24(s0) +80000310: fe842703 lw a4,-24(s0) +80000314: fcc42783 lw a5,-52(s0) +80000318: f6f768e3 bltu a4,a5,80000288 +8000031c: 00090113 mv sp,s2 +80000320: e75ff0ef jal ra,80000194 +80000324: 00000013 nop +80000328: 03c12083 lw ra,60(sp) +8000032c: 03812403 lw s0,56(sp) +80000330: 04010113 addi sp,sp,64 +80000334: 00008067 ret -80000330 : -80000330: fd010113 addi sp,sp,-48 -80000334: 02812623 sw s0,44(sp) -80000338: 03010413 addi s0,sp,48 -8000033c: fca42e23 sw a0,-36(s0) -80000340: fe0407a3 sb zero,-17(s0) -80000344: 0500006f j 80000394 -80000348: 00100793 li a5,1 -8000034c: fef407a3 sb a5,-17(s0) -80000350: fe042423 sw zero,-24(s0) -80000354: 0340006f j 80000388 -80000358: fef44783 lbu a5,-17(s0) -8000035c: 81000737 lui a4,0x81000 -80000360: 1e470693 addi a3,a4,484 # 810001e4 -80000364: fe842703 lw a4,-24(s0) -80000368: 00e68733 add a4,a3,a4 -8000036c: 00074703 lbu a4,0(a4) -80000370: 00e7f7b3 and a5,a5,a4 -80000374: 00f037b3 snez a5,a5 -80000378: fef407a3 sb a5,-17(s0) -8000037c: fe842783 lw a5,-24(s0) +80000338 : +80000338: fd010113 addi sp,sp,-48 +8000033c: 02812623 sw s0,44(sp) +80000340: 03010413 addi s0,sp,48 +80000344: fca42e23 sw a0,-36(s0) +80000348: fe042623 sw zero,-20(s0) +8000034c: 0540006f j 800003a0 +80000350: fe042623 sw zero,-20(s0) +80000354: fe042423 sw zero,-24(s0) +80000358: 03c0006f j 80000394 +8000035c: 810007b7 lui a5,0x81000 +80000360: fe842703 lw a4,-24(s0) +80000364: 00271713 slli a4,a4,0x2 +80000368: 1f078793 addi a5,a5,496 # 810001f0 +8000036c: 00f707b3 add a5,a4,a5 +80000370: 0007a703 lw a4,0(a5) +80000374: 00100793 li a5,1 +80000378: 00f71863 bne a4,a5,80000388 +8000037c: fec42783 lw a5,-20(s0) 80000380: 00178793 addi a5,a5,1 -80000384: fef42423 sw a5,-24(s0) +80000384: fef42623 sw a5,-20(s0) 80000388: fe842783 lw a5,-24(s0) -8000038c: fdc42703 lw a4,-36(s0) -80000390: fce7e4e3 bltu a5,a4,80000358 -80000394: fef44783 lbu a5,-17(s0) -80000398: 0017c793 xori a5,a5,1 -8000039c: 0ff7f793 andi a5,a5,255 -800003a0: fa0794e3 bnez a5,80000348 -800003a4: 00000013 nop -800003a8: 02c12403 lw s0,44(sp) -800003ac: 03010113 addi sp,sp,48 -800003b0: 00008067 ret +8000038c: 00178793 addi a5,a5,1 +80000390: fef42423 sw a5,-24(s0) +80000394: fe842703 lw a4,-24(s0) +80000398: 00700793 li a5,7 +8000039c: fce7d0e3 bge a5,a4,8000035c +800003a0: fec42703 lw a4,-20(s0) +800003a4: fdc42783 lw a5,-36(s0) +800003a8: faf714e3 bne a4,a5,80000350 +800003ac: fe042223 sw zero,-28(s0) +800003b0: 0280006f j 800003d8 +800003b4: 810007b7 lui a5,0x81000 +800003b8: fe442703 lw a4,-28(s0) +800003bc: 00271713 slli a4,a4,0x2 +800003c0: 1f078793 addi a5,a5,496 # 810001f0 +800003c4: 00f707b3 add a5,a4,a5 +800003c8: 0007a023 sw zero,0(a5) +800003cc: fe442783 lw a5,-28(s0) +800003d0: 00178793 addi a5,a5,1 +800003d4: fef42223 sw a5,-28(s0) +800003d8: fe442783 lw a5,-28(s0) +800003dc: fdc42703 lw a4,-36(s0) +800003e0: fce7eae3 bltu a5,a4,800003b4 +800003e4: 00000013 nop +800003e8: 02c12403 lw s0,44(sp) +800003ec: 03010113 addi sp,sp,48 +800003f0: 00008067 ret -800003b4 : -800003b4: ff010113 addi sp,sp,-16 -800003b8: 00812623 sw s0,12(sp) -800003bc: 01712423 sw s7,8(sp) -800003c0: 01010413 addi s0,sp,16 -800003c4: 000b8793 mv a5,s7 -800003c8: 00078513 mv a0,a5 -800003cc: 00c12403 lw s0,12(sp) -800003d0: 00812b83 lw s7,8(sp) -800003d4: 01010113 addi sp,sp,16 -800003d8: 00008067 ret +800003f4 : +800003f4: ff010113 addi sp,sp,-16 +800003f8: 00812623 sw s0,12(sp) +800003fc: 01712423 sw s7,8(sp) +80000400: 01010413 addi s0,sp,16 +80000404: 000b8793 mv a5,s7 +80000408: 00078513 mv a0,a5 +8000040c: 00c12403 lw s0,12(sp) +80000410: 00812b83 lw s7,8(sp) +80000414: 01010113 addi sp,sp,16 +80000418: 00008067 ret -800003dc : -800003dc: 00050293 mv t0,a0 -800003e0: 00000313 li t1,0 -800003e4: 00700393 li t2,7 -800003e8: 0062a023 sw t1,0(t0) -800003ec: 0062a223 sw t1,4(t0) -800003f0: 0062a423 sw t1,8(t0) -800003f4: 0072a623 sw t2,12(t0) -800003f8: 0062a823 sw t1,16(t0) -800003fc: 00008067 ret +8000041c : +8000041c: 00050293 mv t0,a0 +80000420: 00000313 li t1,0 +80000424: 00700393 li t2,7 +80000428: 0062a023 sw t1,0(t0) +8000042c: 0062a223 sw t1,4(t0) +80000430: 0062a423 sw t1,8(t0) +80000434: 0072a623 sw t2,12(t0) +80000438: 0062a823 sw t1,16(t0) +8000043c: 00008067 ret -80000400 : -80000400: 00050293 mv t0,a0 -80000404: 0082a303 lw t1,8(t0) -80000408: 00130313 addi t1,t1,1 -8000040c: 0062a423 sw t1,8(t0) -80000410: 01428313 addi t1,t0,20 -80000414: 0042ae83 lw t4,4(t0) -80000418: 005e9393 slli t2,t4,0x5 -8000041c: 00730333 add t1,t1,t2 -80000420: 0005ae03 lw t3,0(a1) -80000424: 01c32023 sw t3,0(t1) -80000428: 0045ae03 lw t3,4(a1) -8000042c: 01c32223 sw t3,4(t1) -80000430: 0085ae03 lw t3,8(a1) -80000434: 01c32423 sw t3,8(t1) -80000438: 00c5ae03 lw t3,12(a1) -8000043c: 01c32623 sw t3,12(t1) -80000440: 0105ae03 lw t3,16(a1) -80000444: 01c32823 sw t3,16(t1) -80000448: 0145ae03 lw t3,20(a1) -8000044c: 01c32a23 sw t3,20(t1) -80000450: 001e8e93 addi t4,t4,1 -80000454: 03200f13 li t5,50 -80000458: 01ee9463 bne t4,t5,80000460 -8000045c: 00000e93 li t4,0 +80000440 : +80000440: 00050293 mv t0,a0 +80000444: 0082a303 lw t1,8(t0) +80000448: 00130313 addi t1,t1,1 +8000044c: 0062a423 sw t1,8(t0) +80000450: 01428313 addi t1,t0,20 +80000454: 0042ae83 lw t4,4(t0) +80000458: 005e9393 slli t2,t4,0x5 +8000045c: 00730333 add t1,t1,t2 +80000460: 0005ae03 lw t3,0(a1) +80000464: 01c32023 sw t3,0(t1) +80000468: 0045ae03 lw t3,4(a1) +8000046c: 01c32223 sw t3,4(t1) +80000470: 0085ae03 lw t3,8(a1) +80000474: 01c32423 sw t3,8(t1) +80000478: 00c5ae03 lw t3,12(a1) +8000047c: 01c32623 sw t3,12(t1) +80000480: 0105ae03 lw t3,16(a1) +80000484: 01c32823 sw t3,16(t1) +80000488: 0145ae03 lw t3,20(a1) +8000048c: 01c32a23 sw t3,20(t1) +80000490: 001e8e93 addi t4,t4,1 +80000494: 03200f13 li t5,50 +80000498: 01ee9463 bne t4,t5,800004a0 +8000049c: 00000e93 li t4,0 -80000460 : -80000460: 01d2a223 sw t4,4(t0) -80000464: 00008067 ret +800004a0 : +800004a0: 01d2a223 sw t4,4(t0) +800004a4: 00008067 ret -80000468 : -80000468: 00050293 mv t0,a0 -8000046c: 0082a303 lw t1,8(t0) -80000470: fff30313 addi t1,t1,-1 -80000474: 0062a423 sw t1,8(t0) -80000478: 01428313 addi t1,t0,20 -8000047c: 0002ae83 lw t4,0(t0) -80000480: 03200f93 li t6,50 -80000484: 000e8f13 mv t5,t4 -80000488: 001f0f13 addi t5,t5,1 -8000048c: 01ff1463 bne t5,t6,80000494 -80000490: 00000f13 li t5,0 +800004a8 : +800004a8: 00050293 mv t0,a0 +800004ac: 0082a303 lw t1,8(t0) +800004b0: fff30313 addi t1,t1,-1 +800004b4: 0062a423 sw t1,8(t0) +800004b8: 01428313 addi t1,t0,20 +800004bc: 0002ae83 lw t4,0(t0) +800004c0: 03200f93 li t6,50 +800004c4: 000e8f13 mv t5,t4 +800004c8: 001f0f13 addi t5,t5,1 +800004cc: 01ff1463 bne t5,t6,800004d4 +800004d0: 00000f13 li t5,0 -80000494 : -80000494: 01e2a023 sw t5,0(t0) -80000498: 005e9393 slli t2,t4,0x5 -8000049c: 00730333 add t1,t1,t2 -800004a0: 00032e03 lw t3,0(t1) -800004a4: 01c5a023 sw t3,0(a1) -800004a8: 00432e03 lw t3,4(t1) -800004ac: 01c5a223 sw t3,4(a1) -800004b0: 00832e03 lw t3,8(t1) -800004b4: 01c5a423 sw t3,8(a1) -800004b8: 00c32e03 lw t3,12(t1) -800004bc: 01c5a623 sw t3,12(a1) -800004c0: 01032e03 lw t3,16(t1) -800004c4: 01c5a823 sw t3,16(a1) -800004c8: 01432e03 lw t3,20(t1) -800004cc: 01c5aa23 sw t3,20(a1) -800004d0: 00008067 ret +800004d4 : +800004d4: 01e2a023 sw t5,0(t0) +800004d8: 005e9393 slli t2,t4,0x5 +800004dc: 00730333 add t1,t1,t2 +800004e0: 00032e03 lw t3,0(t1) +800004e4: 01c5a023 sw t3,0(a1) +800004e8: 00432e03 lw t3,4(t1) +800004ec: 01c5a223 sw t3,4(a1) +800004f0: 00832e03 lw t3,8(t1) +800004f4: 01c5a423 sw t3,8(a1) +800004f8: 00c32e03 lw t3,12(t1) +800004fc: 01c5a623 sw t3,12(a1) +80000500: 01032e03 lw t3,16(t1) +80000504: 01c5a823 sw t3,16(a1) +80000508: 01432e03 lw t3,20(t1) +8000050c: 01c5aa23 sw t3,20(a1) +80000510: 00008067 ret -800004d4 : -800004d4: 00050293 mv t0,a0 -800004d8: 0082a303 lw t1,8(t0) -800004dc: 00000513 li a0,0 -800004e0: 03200e13 li t3,50 -800004e4: 006e1463 bne t3,t1,800004ec -800004e8: 00150513 addi a0,a0,1 +80000514 : +80000514: 00050293 mv t0,a0 +80000518: 0082a303 lw t1,8(t0) +8000051c: 00000513 li a0,0 +80000520: 03200e13 li t3,50 +80000524: 006e1463 bne t3,t1,8000052c +80000528: 00150513 addi a0,a0,1 -800004ec : -800004ec: 00008067 ret +8000052c : +8000052c: 00008067 ret -800004f0 : -800004f0: 00050293 mv t0,a0 -800004f4: 0082a303 lw t1,8(t0) -800004f8: 00000513 li a0,0 -800004fc: 00000e13 li t3,0 -80000500: 006e1463 bne t3,t1,80000508 -80000504: 00150513 addi a0,a0,1 +80000530 : +80000530: 00050293 mv t0,a0 +80000534: 0082a303 lw t1,8(t0) +80000538: 00000513 li a0,0 +8000053c: 00000e13 li t3,0 +80000540: 006e1463 bne t3,t1,80000548 +80000544: 00150513 addi a0,a0,1 -80000508 : -80000508: 00008067 ret +80000548 : +80000548: 00008067 ret -8000050c : -8000050c: 00050293 mv t0,a0 -80000510: 00c2a303 lw t1,12(t0) -80000514: 0102a383 lw t2,16(t0) -80000518: 0063b533 sltu a0,t2,t1 -8000051c: 00008067 ret +8000054c : +8000054c: 00050293 mv t0,a0 +80000550: 00c2a303 lw t1,12(t0) +80000554: 0102a383 lw t2,16(t0) +80000558: 0063b533 sltu a0,t2,t1 +8000055c: 00008067 ret -80000520 : -80000520: ff410113 addi sp,sp,-12 -80000524: 00112023 sw ra,0(sp) -80000528: 00b12223 sw a1,4(sp) +80000560 : +80000560: ff410113 addi sp,sp,-12 +80000564: 00112023 sw ra,0(sp) +80000568: 00b12223 sw a1,4(sp) -8000052c : -8000052c: 00054583 lbu a1,0(a0) -80000530: 00058863 beqz a1,80000540 -80000534: 01c000ef jal ra,80000550 -80000538: 00150513 addi a0,a0,1 -8000053c: ff1ff06f j 8000052c +8000056c : +8000056c: 00054583 lbu a1,0(a0) +80000570: 00058863 beqz a1,80000580 +80000574: 01c000ef jal ra,80000590 +80000578: 00150513 addi a0,a0,1 +8000057c: ff1ff06f j 8000056c -80000540 : -80000540: 00012083 lw ra,0(sp) -80000544: 00412583 lw a1,4(sp) -80000548: 00c10113 addi sp,sp,12 -8000054c: 00008067 ret +80000580 : +80000580: 00012083 lw ra,0(sp) +80000584: 00412583 lw a1,4(sp) +80000588: 00c10113 addi sp,sp,12 +8000058c: 00008067 ret -80000550 : -80000550: 000108b7 lui a7,0x10 -80000554: 00b8a023 sw a1,0(a7) # 10000 -80000558: 00008067 ret +80000590 : +80000590: 000108b7 lui a7,0x10 +80000594: 00b8a023 sw a1,0(a7) # 10000 +80000598: 00008067 ret -8000055c : -8000055c: fd010113 addi sp,sp,-48 -80000560: 02112623 sw ra,44(sp) -80000564: 02812423 sw s0,40(sp) -80000568: 03010413 addi s0,sp,48 -8000056c: fca42e23 sw a0,-36(s0) -80000570: fdc42703 lw a4,-36(s0) -80000574: 00f00793 li a5,15 -80000578: 02e7e463 bltu a5,a4,800005a0 -8000057c: 810007b7 lui a5,0x81000 -80000580: fdc42703 lw a4,-36(s0) -80000584: 00271713 slli a4,a4,0x2 -80000588: 12478793 addi a5,a5,292 # 81000124 -8000058c: 00f707b3 add a5,a4,a5 -80000590: 0007a783 lw a5,0(a5) -80000594: 00078513 mv a0,a5 -80000598: f89ff0ef jal ra,80000520 -8000059c: 0740006f j 80000610 -800005a0: 02000793 li a5,32 -800005a4: fef42623 sw a5,-20(s0) -800005a8: fe0405a3 sb zero,-21(s0) -800005ac: fec42783 lw a5,-20(s0) -800005b0: ffc78793 addi a5,a5,-4 -800005b4: fdc42703 lw a4,-36(s0) -800005b8: 00f757b3 srl a5,a4,a5 -800005bc: 00f7f793 andi a5,a5,15 -800005c0: fef42223 sw a5,-28(s0) -800005c4: fe442783 lw a5,-28(s0) -800005c8: 00078663 beqz a5,800005d4 -800005cc: 00100793 li a5,1 -800005d0: fef405a3 sb a5,-21(s0) -800005d4: feb44783 lbu a5,-21(s0) -800005d8: 02078263 beqz a5,800005fc -800005dc: 810007b7 lui a5,0x81000 -800005e0: fe442703 lw a4,-28(s0) -800005e4: 00271713 slli a4,a4,0x2 -800005e8: 12478793 addi a5,a5,292 # 81000124 -800005ec: 00f707b3 add a5,a4,a5 -800005f0: 0007a783 lw a5,0(a5) -800005f4: 00078513 mv a0,a5 -800005f8: f29ff0ef jal ra,80000520 -800005fc: fec42783 lw a5,-20(s0) -80000600: ffc78793 addi a5,a5,-4 -80000604: fef42623 sw a5,-20(s0) -80000608: fec42783 lw a5,-20(s0) -8000060c: faf040e3 bgtz a5,800005ac -80000610: 02c12083 lw ra,44(sp) -80000614: 02812403 lw s0,40(sp) -80000618: 03010113 addi sp,sp,48 -8000061c: 00008067 ret +8000059c : +8000059c: fd010113 addi sp,sp,-48 +800005a0: 02112623 sw ra,44(sp) +800005a4: 02812423 sw s0,40(sp) +800005a8: 03010413 addi s0,sp,48 +800005ac: fca42e23 sw a0,-36(s0) +800005b0: fdc42703 lw a4,-36(s0) +800005b4: 00f00793 li a5,15 +800005b8: 02e7e463 bltu a5,a4,800005e0 +800005bc: 810007b7 lui a5,0x81000 +800005c0: fdc42703 lw a4,-36(s0) +800005c4: 00271713 slli a4,a4,0x2 +800005c8: 13078793 addi a5,a5,304 # 81000130 +800005cc: 00f707b3 add a5,a4,a5 +800005d0: 0007a783 lw a5,0(a5) +800005d4: 00078513 mv a0,a5 +800005d8: f89ff0ef jal ra,80000560 +800005dc: 0740006f j 80000650 +800005e0: 02000793 li a5,32 +800005e4: fef42623 sw a5,-20(s0) +800005e8: fe0405a3 sb zero,-21(s0) +800005ec: fec42783 lw a5,-20(s0) +800005f0: ffc78793 addi a5,a5,-4 +800005f4: fdc42703 lw a4,-36(s0) +800005f8: 00f757b3 srl a5,a4,a5 +800005fc: 00f7f793 andi a5,a5,15 +80000600: fef42223 sw a5,-28(s0) +80000604: fe442783 lw a5,-28(s0) +80000608: 00078663 beqz a5,80000614 +8000060c: 00100793 li a5,1 +80000610: fef405a3 sb a5,-21(s0) +80000614: feb44783 lbu a5,-21(s0) +80000618: 02078263 beqz a5,8000063c +8000061c: 810007b7 lui a5,0x81000 +80000620: fe442703 lw a4,-28(s0) +80000624: 00271713 slli a4,a4,0x2 +80000628: 13078793 addi a5,a5,304 # 81000130 +8000062c: 00f707b3 add a5,a4,a5 +80000630: 0007a783 lw a5,0(a5) +80000634: 00078513 mv a0,a5 +80000638: f29ff0ef jal ra,80000560 +8000063c: fec42783 lw a5,-20(s0) +80000640: ffc78793 addi a5,a5,-4 +80000644: fef42623 sw a5,-20(s0) +80000648: fec42783 lw a5,-20(s0) +8000064c: faf040e3 bgtz a5,800005ec +80000650: 02c12083 lw ra,44(sp) +80000654: 02812403 lw s0,40(sp) +80000658: 03010113 addi sp,sp,48 +8000065c: 00008067 ret -80000620 : -80000620: fd010113 addi sp,sp,-48 -80000624: 02112623 sw ra,44(sp) -80000628: 02812423 sw s0,40(sp) -8000062c: 03010413 addi s0,sp,48 -80000630: fca42e23 sw a0,-36(s0) -80000634: fcb42c23 sw a1,-40(s0) -80000638: fcc42a23 sw a2,-44(s0) -8000063c: fcd42823 sw a3,-48(s0) -80000640: 810037b7 lui a5,0x81003 -80000644: fdc42703 lw a4,-36(s0) -80000648: 80e7ae23 sw a4,-2020(a5) # 8100281c -8000064c: 810037b7 lui a5,0x81003 -80000650: 81c78793 addi a5,a5,-2020 # 8100281c -80000654: fd842703 lw a4,-40(s0) -80000658: 00e7a223 sw a4,4(a5) -8000065c: 810037b7 lui a5,0x81003 -80000660: 81c78793 addi a5,a5,-2020 # 8100281c -80000664: fd442703 lw a4,-44(s0) -80000668: 00e7a423 sw a4,8(a5) -8000066c: 810037b7 lui a5,0x81003 -80000670: 81c78793 addi a5,a5,-2020 # 8100281c -80000674: fd042703 lw a4,-48(s0) -80000678: 00e7a623 sw a4,12(a5) -8000067c: fd042783 lw a5,-48(s0) -80000680: 0037d793 srli a5,a5,0x3 -80000684: fef42623 sw a5,-20(s0) -80000688: fd042783 lw a5,-48(s0) -8000068c: 0077f793 andi a5,a5,7 -80000690: 00078863 beqz a5,800006a0 -80000694: fec42783 lw a5,-20(s0) -80000698: 00178793 addi a5,a5,1 -8000069c: fef42623 sw a5,-20(s0) -800006a0: 810037b7 lui a5,0x81003 -800006a4: 81c78793 addi a5,a5,-2020 # 8100281c -800006a8: fec42703 lw a4,-20(s0) -800006ac: 00e7a823 sw a4,16(a5) -800006b0: 810007b7 lui a5,0x81000 -800006b4: 08078513 addi a0,a5,128 # 81000080 -800006b8: e69ff0ef jal ra,80000520 -800006bc: fec42503 lw a0,-20(s0) -800006c0: e9dff0ef jal ra,8000055c -800006c4: 810007b7 lui a5,0x81000 -800006c8: 08c78513 addi a0,a5,140 # 8100008c -800006cc: e55ff0ef jal ra,80000520 -800006d0: fd042703 lw a4,-48(s0) -800006d4: 00700793 li a5,7 -800006d8: 02e7f263 bgeu a5,a4,800006fc -800006dc: 810037b7 lui a5,0x81003 -800006e0: 81c78693 addi a3,a5,-2020 # 8100281c -800006e4: 800007b7 lui a5,0x80000 -800006e8: 74c78613 addi a2,a5,1868 # 8000074c -800006ec: 00800593 li a1,8 -800006f0: fd042503 lw a0,-48(s0) -800006f4: b5dff0ef jal ra,80000250 -800006f8: 0200006f j 80000718 -800006fc: 810037b7 lui a5,0x81003 -80000700: 81c78693 addi a3,a5,-2020 # 8100281c -80000704: 800007b7 lui a5,0x80000 -80000708: 74c78613 addi a2,a5,1868 # 8000074c -8000070c: fd042583 lw a1,-48(s0) -80000710: fd042503 lw a0,-48(s0) -80000714: b3dff0ef jal ra,80000250 -80000718: fd042703 lw a4,-48(s0) -8000071c: 00700793 li a5,7 -80000720: 00e7f863 bgeu a5,a4,80000730 -80000724: 00800513 li a0,8 -80000728: c09ff0ef jal ra,80000330 -8000072c: 00c0006f j 80000738 -80000730: fd042503 lw a0,-48(s0) -80000734: bfdff0ef jal ra,80000330 -80000738: 00000013 nop -8000073c: 02c12083 lw ra,44(sp) -80000740: 02812403 lw s0,40(sp) -80000744: 03010113 addi sp,sp,48 -80000748: 00008067 ret +80000660 : +80000660: fe010113 addi sp,sp,-32 +80000664: 00112e23 sw ra,28(sp) +80000668: 00812c23 sw s0,24(sp) +8000066c: 02010413 addi s0,sp,32 +80000670: fea42623 sw a0,-20(s0) +80000674: feb42423 sw a1,-24(s0) +80000678: fec42503 lw a0,-20(s0) +8000067c: ee5ff0ef jal ra,80000560 +80000680: fe842503 lw a0,-24(s0) +80000684: f19ff0ef jal ra,8000059c +80000688: 810007b7 lui a5,0x81000 +8000068c: 04078513 addi a0,a5,64 # 81000040 +80000690: ed1ff0ef jal ra,80000560 +80000694: 00000013 nop +80000698: 01c12083 lw ra,28(sp) +8000069c: 01812403 lw s0,24(sp) +800006a0: 02010113 addi sp,sp,32 +800006a4: 00008067 ret -8000074c <_vx_matMult>: -8000074c: fa010113 addi sp,sp,-96 -80000750: 04112e23 sw ra,92(sp) -80000754: 04812c23 sw s0,88(sp) -80000758: 06010413 addi s0,sp,96 -8000075c: faa42623 sw a0,-84(s0) -80000760: fab42423 sw a1,-88(s0) -80000764: c51ff0ef jal ra,800003b4 -80000768: fca42c23 sw a0,-40(s0) -8000076c: fd842783 lw a5,-40(s0) -80000770: 0007a783 lw a5,0(a5) -80000774: fcf42a23 sw a5,-44(s0) -80000778: fd842783 lw a5,-40(s0) -8000077c: 0047a783 lw a5,4(a5) -80000780: fcf42823 sw a5,-48(s0) -80000784: fd842783 lw a5,-40(s0) -80000788: 0087a783 lw a5,8(a5) -8000078c: fcf42623 sw a5,-52(s0) -80000790: fd842783 lw a5,-40(s0) -80000794: 0107a783 lw a5,16(a5) -80000798: fef42623 sw a5,-20(s0) -8000079c: fec42703 lw a4,-20(s0) -800007a0: fac42783 lw a5,-84(s0) -800007a4: 02f707b3 mul a5,a4,a5 -800007a8: fef42423 sw a5,-24(s0) -800007ac: fec42783 lw a5,-20(s0) -800007b0: 00079a63 bnez a5,800007c4 <_vx_matMult+0x78> -800007b4: 00100793 li a5,1 -800007b8: fef42623 sw a5,-20(s0) -800007bc: fac42783 lw a5,-84(s0) -800007c0: fef42423 sw a5,-24(s0) -800007c4: fd842783 lw a5,-40(s0) -800007c8: 00c7a783 lw a5,12(a5) -800007cc: fcf42423 sw a5,-56(s0) -800007d0: fe042223 sw zero,-28(s0) -800007d4: 1240006f j 800008f8 <_vx_matMult+0x1ac> -800007d8: fe042023 sw zero,-32(s0) -800007dc: fc042e23 sw zero,-36(s0) -800007e0: 0780006f j 80000858 <_vx_matMult+0x10c> -800007e4: fa842703 lw a4,-88(s0) -800007e8: fc842783 lw a5,-56(s0) -800007ec: 02f707b3 mul a5,a4,a5 -800007f0: fdc42703 lw a4,-36(s0) -800007f4: 00f707b3 add a5,a4,a5 -800007f8: fcf42223 sw a5,-60(s0) -800007fc: fc842703 lw a4,-56(s0) -80000800: fdc42783 lw a5,-36(s0) -80000804: 02f707b3 mul a5,a4,a5 -80000808: fe842703 lw a4,-24(s0) -8000080c: 00f707b3 add a5,a4,a5 -80000810: fcf42023 sw a5,-64(s0) -80000814: fc442783 lw a5,-60(s0) -80000818: 00279793 slli a5,a5,0x2 -8000081c: fd442703 lw a4,-44(s0) -80000820: 00f707b3 add a5,a4,a5 -80000824: 0007a703 lw a4,0(a5) -80000828: fc042783 lw a5,-64(s0) -8000082c: 00279793 slli a5,a5,0x2 -80000830: fd042683 lw a3,-48(s0) -80000834: 00f687b3 add a5,a3,a5 -80000838: 0007a783 lw a5,0(a5) -8000083c: 02f707b3 mul a5,a4,a5 -80000840: fe042703 lw a4,-32(s0) -80000844: 00f707b3 add a5,a4,a5 -80000848: fef42023 sw a5,-32(s0) -8000084c: fdc42783 lw a5,-36(s0) -80000850: 00178793 addi a5,a5,1 -80000854: fcf42e23 sw a5,-36(s0) +800006a8 : +800006a8: fd010113 addi sp,sp,-48 +800006ac: 02112623 sw ra,44(sp) +800006b0: 02812423 sw s0,40(sp) +800006b4: 03010413 addi s0,sp,48 +800006b8: fca42e23 sw a0,-36(s0) +800006bc: fcb42c23 sw a1,-40(s0) +800006c0: fcc42a23 sw a2,-44(s0) +800006c4: fcd42823 sw a3,-48(s0) +800006c8: 810037b7 lui a5,0x81003 +800006cc: fdc42703 lw a4,-36(s0) +800006d0: 84e7a823 sw a4,-1968(a5) # 81002850 +800006d4: 810037b7 lui a5,0x81003 +800006d8: 85078793 addi a5,a5,-1968 # 81002850 +800006dc: fd842703 lw a4,-40(s0) +800006e0: 00e7a223 sw a4,4(a5) +800006e4: 810037b7 lui a5,0x81003 +800006e8: 85078793 addi a5,a5,-1968 # 81002850 +800006ec: fd442703 lw a4,-44(s0) +800006f0: 00e7a423 sw a4,8(a5) +800006f4: 810037b7 lui a5,0x81003 +800006f8: 85078793 addi a5,a5,-1968 # 81002850 +800006fc: fd042703 lw a4,-48(s0) +80000700: 00e7a623 sw a4,12(a5) +80000704: fd042783 lw a5,-48(s0) +80000708: 0037d793 srli a5,a5,0x3 +8000070c: fef42623 sw a5,-20(s0) +80000710: fd042783 lw a5,-48(s0) +80000714: 0077f793 andi a5,a5,7 +80000718: 00078863 beqz a5,80000728 +8000071c: fec42783 lw a5,-20(s0) +80000720: 00178793 addi a5,a5,1 +80000724: fef42623 sw a5,-20(s0) +80000728: 810037b7 lui a5,0x81003 +8000072c: 85078793 addi a5,a5,-1968 # 81002850 +80000730: fec42703 lw a4,-20(s0) +80000734: 00e7a823 sw a4,16(a5) +80000738: fd042703 lw a4,-48(s0) +8000073c: 00700793 li a5,7 +80000740: 02e7f263 bgeu a5,a4,80000764 +80000744: 810037b7 lui a5,0x81003 +80000748: 85078693 addi a3,a5,-1968 # 81002850 +8000074c: 800007b7 lui a5,0x80000 +80000750: 7b478613 addi a2,a5,1972 # 800007b4 +80000754: 00800593 li a1,8 +80000758: fd042503 lw a0,-48(s0) +8000075c: af9ff0ef jal ra,80000254 +80000760: 0200006f j 80000780 +80000764: 810037b7 lui a5,0x81003 +80000768: 85078693 addi a3,a5,-1968 # 81002850 +8000076c: 800007b7 lui a5,0x80000 +80000770: 7b478613 addi a2,a5,1972 # 800007b4 +80000774: fd042583 lw a1,-48(s0) +80000778: fd042503 lw a0,-48(s0) +8000077c: ad9ff0ef jal ra,80000254 +80000780: fd042703 lw a4,-48(s0) +80000784: 00700793 li a5,7 +80000788: 00e7f863 bgeu a5,a4,80000798 +8000078c: 00600513 li a0,6 +80000790: ba9ff0ef jal ra,80000338 +80000794: 00c0006f j 800007a0 +80000798: fd042503 lw a0,-48(s0) +8000079c: b9dff0ef jal ra,80000338 +800007a0: 00000013 nop +800007a4: 02c12083 lw ra,44(sp) +800007a8: 02812403 lw s0,40(sp) +800007ac: 03010113 addi sp,sp,48 +800007b0: 00008067 ret + +800007b4 <_vx_mat_mult>: +800007b4: fa010113 addi sp,sp,-96 +800007b8: 04112e23 sw ra,92(sp) +800007bc: 04812c23 sw s0,88(sp) +800007c0: 06010413 addi s0,sp,96 +800007c4: faa42623 sw a0,-84(s0) +800007c8: fab42423 sw a1,-88(s0) +800007cc: c29ff0ef jal ra,800003f4 +800007d0: fca42c23 sw a0,-40(s0) +800007d4: fd842783 lw a5,-40(s0) +800007d8: 0007a783 lw a5,0(a5) +800007dc: fcf42a23 sw a5,-44(s0) +800007e0: fd842783 lw a5,-40(s0) +800007e4: 0047a783 lw a5,4(a5) +800007e8: fcf42823 sw a5,-48(s0) +800007ec: fd842783 lw a5,-40(s0) +800007f0: 0087a783 lw a5,8(a5) +800007f4: fcf42623 sw a5,-52(s0) +800007f8: fd842783 lw a5,-40(s0) +800007fc: 0107a783 lw a5,16(a5) +80000800: fef42623 sw a5,-20(s0) +80000804: fec42703 lw a4,-20(s0) +80000808: fac42783 lw a5,-84(s0) +8000080c: 02f707b3 mul a5,a4,a5 +80000810: fef42423 sw a5,-24(s0) +80000814: fec42783 lw a5,-20(s0) +80000818: 00079a63 bnez a5,8000082c <_vx_mat_mult+0x78> +8000081c: 00100793 li a5,1 +80000820: fef42623 sw a5,-20(s0) +80000824: fac42783 lw a5,-84(s0) +80000828: fef42423 sw a5,-24(s0) +8000082c: fd842783 lw a5,-40(s0) +80000830: 00c7a783 lw a5,12(a5) +80000834: fcf42423 sw a5,-56(s0) +80000838: fe042223 sw zero,-28(s0) +8000083c: 1240006f j 80000960 <_vx_mat_mult+0x1ac> +80000840: fe042023 sw zero,-32(s0) +80000844: fc042e23 sw zero,-36(s0) +80000848: 0780006f j 800008c0 <_vx_mat_mult+0x10c> +8000084c: fa842703 lw a4,-88(s0) +80000850: fc842783 lw a5,-56(s0) +80000854: 02f707b3 mul a5,a4,a5 80000858: fdc42703 lw a4,-36(s0) -8000085c: fc842783 lw a5,-56(s0) -80000860: f8f762e3 bltu a4,a5,800007e4 <_vx_matMult+0x98> -80000864: fa842703 lw a4,-88(s0) -80000868: fc842783 lw a5,-56(s0) -8000086c: 02f70733 mul a4,a4,a5 -80000870: fe842783 lw a5,-24(s0) +8000085c: 00f707b3 add a5,a4,a5 +80000860: fcf42223 sw a5,-60(s0) +80000864: fc842703 lw a4,-56(s0) +80000868: fdc42783 lw a5,-36(s0) +8000086c: 02f707b3 mul a5,a4,a5 +80000870: fe842703 lw a4,-24(s0) 80000874: 00f707b3 add a5,a4,a5 -80000878: faf42e23 sw a5,-68(s0) -8000087c: fe842703 lw a4,-24(s0) -80000880: fc842783 lw a5,-56(s0) -80000884: 00f737b3 sltu a5,a4,a5 -80000888: 0ff7f793 andi a5,a5,255 -8000088c: faf42c23 sw a5,-72(s0) -80000890: fb842783 lw a5,-72(s0) -80000894: 0017b793 seqz a5,a5 -80000898: faf40ba3 sb a5,-73(s0) -8000089c: fb744783 lbu a5,-73(s0) -800008a0: 00078f13 mv t5,a5 -800008a4: 800017b7 lui a5,0x80001 -800008a8: 8e478f93 addi t6,a5,-1820 # 800008e4 -800008ac: 000f206b 0xf206b -800008b0: 01ff707b 0x1ff707b -800008b4: fbc42783 lw a5,-68(s0) -800008b8: 00279793 slli a5,a5,0x2 -800008bc: fcc42703 lw a4,-52(s0) -800008c0: 00f707b3 add a5,a4,a5 -800008c4: fe042703 lw a4,-32(s0) -800008c8: 00e7a023 sw a4,0(a5) -800008cc: fe842783 lw a5,-24(s0) -800008d0: 00178793 addi a5,a5,1 -800008d4: fef42423 sw a5,-24(s0) -800008d8: 800017b7 lui a5,0x80001 -800008dc: 8e878e13 addi t3,a5,-1816 # 800008e8 -800008e0: 000e0067 jr t3 -800008e4: 00000013 nop -800008e8: 0000306b 0x306b -800008ec: fe442783 lw a5,-28(s0) -800008f0: 00178793 addi a5,a5,1 -800008f4: fef42223 sw a5,-28(s0) -800008f8: fe442783 lw a5,-28(s0) -800008fc: fec42703 lw a4,-20(s0) -80000900: ece7ece3 bltu a5,a4,800007d8 <_vx_matMult+0x8c> -80000904: 00000013 nop -80000908: 05c12083 lw ra,92(sp) -8000090c: 05812403 lw s0,88(sp) -80000910: 06010113 addi sp,sp,96 -80000914: 00008067 ret +80000878: fcf42023 sw a5,-64(s0) +8000087c: fc442783 lw a5,-60(s0) +80000880: 00279793 slli a5,a5,0x2 +80000884: fd442703 lw a4,-44(s0) +80000888: 00f707b3 add a5,a4,a5 +8000088c: 0007a703 lw a4,0(a5) +80000890: fc042783 lw a5,-64(s0) +80000894: 00279793 slli a5,a5,0x2 +80000898: fd042683 lw a3,-48(s0) +8000089c: 00f687b3 add a5,a3,a5 +800008a0: 0007a783 lw a5,0(a5) +800008a4: 02f707b3 mul a5,a4,a5 +800008a8: fe042703 lw a4,-32(s0) +800008ac: 00f707b3 add a5,a4,a5 +800008b0: fef42023 sw a5,-32(s0) +800008b4: fdc42783 lw a5,-36(s0) +800008b8: 00178793 addi a5,a5,1 +800008bc: fcf42e23 sw a5,-36(s0) +800008c0: fdc42703 lw a4,-36(s0) +800008c4: fc842783 lw a5,-56(s0) +800008c8: f8f762e3 bltu a4,a5,8000084c <_vx_mat_mult+0x98> +800008cc: fa842703 lw a4,-88(s0) +800008d0: fc842783 lw a5,-56(s0) +800008d4: 02f70733 mul a4,a4,a5 +800008d8: fe842783 lw a5,-24(s0) +800008dc: 00f707b3 add a5,a4,a5 +800008e0: faf42e23 sw a5,-68(s0) +800008e4: fe842703 lw a4,-24(s0) +800008e8: fc842783 lw a5,-56(s0) +800008ec: 00f737b3 sltu a5,a4,a5 +800008f0: 0ff7f793 andi a5,a5,255 +800008f4: faf42c23 sw a5,-72(s0) +800008f8: fb842783 lw a5,-72(s0) +800008fc: 0017b793 seqz a5,a5 +80000900: faf40ba3 sb a5,-73(s0) +80000904: fb744783 lbu a5,-73(s0) +80000908: 00078f13 mv t5,a5 +8000090c: 800017b7 lui a5,0x80001 +80000910: 94c78f93 addi t6,a5,-1716 # 8000094c +80000914: 000f206b 0xf206b +80000918: 01ff707b 0x1ff707b +8000091c: fbc42783 lw a5,-68(s0) +80000920: 00279793 slli a5,a5,0x2 +80000924: fcc42703 lw a4,-52(s0) +80000928: 00f707b3 add a5,a4,a5 +8000092c: fe042703 lw a4,-32(s0) +80000930: 00e7a023 sw a4,0(a5) +80000934: fe842783 lw a5,-24(s0) +80000938: 00178793 addi a5,a5,1 +8000093c: fef42423 sw a5,-24(s0) +80000940: 800017b7 lui a5,0x80001 +80000944: 95078e13 addi t3,a5,-1712 # 80000950 +80000948: 000e0067 jr t3 +8000094c: 00000013 nop +80000950: 0000306b 0x306b +80000954: fe442783 lw a5,-28(s0) +80000958: 00178793 addi a5,a5,1 +8000095c: fef42223 sw a5,-28(s0) +80000960: fe442783 lw a5,-28(s0) +80000964: fec42703 lw a4,-20(s0) +80000968: ece7ece3 bltu a5,a4,80000840 <_vx_mat_mult+0x8c> +8000096c: 00000013 nop +80000970: 05c12083 lw ra,92(sp) +80000974: 05812403 lw s0,88(sp) +80000978: 06010113 addi sp,sp,96 +8000097c: 00008067 ret -80000918 : -80000918: fe010113 addi sp,sp,-32 -8000091c: 00812e23 sw s0,28(sp) -80000920: 02010413 addi s0,sp,32 -80000924: fe042623 sw zero,-20(s0) -80000928: 0480006f j 80000970 -8000092c: 810037b7 lui a5,0x81003 -80000930: fec42703 lw a4,-20(s0) -80000934: 00271713 slli a4,a4,0x2 -80000938: 83078793 addi a5,a5,-2000 # 81002830 -8000093c: 00f707b3 add a5,a4,a5 -80000940: 00300713 li a4,3 -80000944: 00e7a023 sw a4,0(a5) -80000948: 810047b7 lui a5,0x81004 -8000094c: fec42703 lw a4,-20(s0) -80000950: 00271713 slli a4,a4,0x2 -80000954: 83078793 addi a5,a5,-2000 # 81003830 -80000958: 00f707b3 add a5,a4,a5 -8000095c: 00200713 li a4,2 -80000960: 00e7a023 sw a4,0(a5) -80000964: fec42783 lw a5,-20(s0) -80000968: 00178793 addi a5,a5,1 -8000096c: fef42623 sw a5,-20(s0) -80000970: fec42703 lw a4,-20(s0) -80000974: 08f00793 li a5,143 -80000978: fae7dae3 bge a5,a4,8000092c -8000097c: 00000013 nop -80000980: 01c12403 lw s0,28(sp) -80000984: 02010113 addi sp,sp,32 -80000988: 00008067 ret +80000980 : +80000980: fc010113 addi sp,sp,-64 +80000984: 02112e23 sw ra,60(sp) +80000988: 02812c23 sw s0,56(sp) +8000098c: 04010413 addi s0,sp,64 +80000990: fca42e23 sw a0,-36(s0) +80000994: fcb42c23 sw a1,-40(s0) +80000998: fcc42a23 sw a2,-44(s0) +8000099c: fcd42823 sw a3,-48(s0) +800009a0: fce42623 sw a4,-52(s0) +800009a4: 810037b7 lui a5,0x81003 +800009a8: fdc42703 lw a4,-36(s0) +800009ac: 86e7a223 sw a4,-1948(a5) # 81002864 +800009b0: 810037b7 lui a5,0x81003 +800009b4: 86478793 addi a5,a5,-1948 # 81002864 +800009b8: fd842703 lw a4,-40(s0) +800009bc: 00e7a223 sw a4,4(a5) +800009c0: 810037b7 lui a5,0x81003 +800009c4: 86478793 addi a5,a5,-1948 # 81002864 +800009c8: fd442703 lw a4,-44(s0) +800009cc: 00e7a423 sw a4,8(a5) +800009d0: 810037b7 lui a5,0x81003 +800009d4: 86478793 addi a5,a5,-1948 # 81002864 +800009d8: fcc42703 lw a4,-52(s0) +800009dc: 00e7a623 sw a4,12(a5) +800009e0: 810037b7 lui a5,0x81003 +800009e4: 86478793 addi a5,a5,-1948 # 81002864 +800009e8: fd042703 lw a4,-48(s0) +800009ec: 00e7a823 sw a4,16(a5) +800009f0: fcc42783 lw a5,-52(s0) +800009f4: 0037d793 srli a5,a5,0x3 +800009f8: fef42623 sw a5,-20(s0) +800009fc: fcc42783 lw a5,-52(s0) +80000a00: 0077f793 andi a5,a5,7 +80000a04: 00078863 beqz a5,80000a14 +80000a08: fec42783 lw a5,-20(s0) +80000a0c: 00178793 addi a5,a5,1 +80000a10: fef42623 sw a5,-20(s0) +80000a14: 810037b7 lui a5,0x81003 +80000a18: 86478793 addi a5,a5,-1948 # 81002864 +80000a1c: fec42703 lw a4,-20(s0) +80000a20: 00e7aa23 sw a4,20(a5) +80000a24: fcc42703 lw a4,-52(s0) +80000a28: 00700793 li a5,7 +80000a2c: 02e7f263 bgeu a5,a4,80000a50 +80000a30: 810037b7 lui a5,0x81003 +80000a34: 86478693 addi a3,a5,-1948 # 81002864 +80000a38: 800017b7 lui a5,0x80001 +80000a3c: aa078613 addi a2,a5,-1376 # 80000aa0 +80000a40: 00800593 li a1,8 +80000a44: fd042503 lw a0,-48(s0) +80000a48: 80dff0ef jal ra,80000254 +80000a4c: 0200006f j 80000a6c +80000a50: 810037b7 lui a5,0x81003 +80000a54: 86478693 addi a3,a5,-1948 # 81002864 +80000a58: 800017b7 lui a5,0x80001 +80000a5c: aa078613 addi a2,a5,-1376 # 80000aa0 +80000a60: fcc42583 lw a1,-52(s0) +80000a64: fd042503 lw a0,-48(s0) +80000a68: fecff0ef jal ra,80000254 +80000a6c: fd042703 lw a4,-48(s0) +80000a70: 00700793 li a5,7 +80000a74: 00e7f863 bgeu a5,a4,80000a84 +80000a78: 00700513 li a0,7 +80000a7c: 8bdff0ef jal ra,80000338 +80000a80: 00c0006f j 80000a8c +80000a84: fd042503 lw a0,-48(s0) +80000a88: 8b1ff0ef jal ra,80000338 +80000a8c: 00000013 nop +80000a90: 03c12083 lw ra,60(sp) +80000a94: 03812403 lw s0,56(sp) +80000a98: 04010113 addi sp,sp,64 +80000a9c: 00008067 ret -8000098c
: -8000098c: fe010113 addi sp,sp,-32 -80000990: 00112e23 sw ra,28(sp) -80000994: 00812c23 sw s0,24(sp) -80000998: 02010413 addi s0,sp,32 -8000099c: f7dff0ef jal ra,80000918 -800009a0: 00c00693 li a3,12 -800009a4: 810057b7 lui a5,0x81005 -800009a8: 83078613 addi a2,a5,-2000 # 81004830 -800009ac: 810047b7 lui a5,0x81004 -800009b0: 83078593 addi a1,a5,-2000 # 81003830 -800009b4: 810037b7 lui a5,0x81003 -800009b8: 83078513 addi a0,a5,-2000 # 81002830 -800009bc: c65ff0ef jal ra,80000620 -800009c0: 810007b7 lui a5,0x81000 -800009c4: 0d078513 addi a0,a5,208 # 810000d0 -800009c8: b59ff0ef jal ra,80000520 -800009cc: 810007b7 lui a5,0x81000 -800009d0: 0ec78513 addi a0,a5,236 # 810000ec -800009d4: b4dff0ef jal ra,80000520 -800009d8: fe042623 sw zero,-20(s0) -800009dc: 0580006f j 80000a34 -800009e0: fec42703 lw a4,-20(s0) -800009e4: 00c00793 li a5,12 -800009e8: 02f767b3 rem a5,a4,a5 -800009ec: 00079863 bnez a5,800009fc -800009f0: 810007b7 lui a5,0x81000 -800009f4: 0f878513 addi a0,a5,248 # 810000f8 -800009f8: b29ff0ef jal ra,80000520 -800009fc: 810057b7 lui a5,0x81005 -80000a00: fec42703 lw a4,-20(s0) -80000a04: 00271713 slli a4,a4,0x2 -80000a08: 83078793 addi a5,a5,-2000 # 81004830 -80000a0c: 00f707b3 add a5,a4,a5 -80000a10: 0007a783 lw a5,0(a5) -80000a14: 00078513 mv a0,a5 -80000a18: b45ff0ef jal ra,8000055c -80000a1c: 810007b7 lui a5,0x81000 -80000a20: 0fc78513 addi a0,a5,252 # 810000fc -80000a24: afdff0ef jal ra,80000520 -80000a28: fec42783 lw a5,-20(s0) -80000a2c: 00178793 addi a5,a5,1 -80000a30: fef42623 sw a5,-20(s0) -80000a34: fec42703 lw a4,-20(s0) -80000a38: 08f00793 li a5,143 -80000a3c: fae7d2e3 bge a5,a4,800009e0 -80000a40: 810007b7 lui a5,0x81000 -80000a44: 10078513 addi a0,a5,256 # 81000100 -80000a48: ad9ff0ef jal ra,80000520 -80000a4c: 00000793 li a5,0 -80000a50: 00078513 mv a0,a5 -80000a54: 01c12083 lw ra,28(sp) -80000a58: 01812403 lw s0,24(sp) -80000a5c: 02010113 addi sp,sp,32 -80000a60: 00008067 ret +80000aa0 <_vx_mat_add>: +80000aa0: fb010113 addi sp,sp,-80 +80000aa4: 04112623 sw ra,76(sp) +80000aa8: 04812423 sw s0,72(sp) +80000aac: 05010413 addi s0,sp,80 +80000ab0: faa42e23 sw a0,-68(s0) +80000ab4: fab42c23 sw a1,-72(s0) +80000ab8: 93dff0ef jal ra,800003f4 +80000abc: fea42023 sw a0,-32(s0) +80000ac0: fe042783 lw a5,-32(s0) +80000ac4: 0007a783 lw a5,0(a5) +80000ac8: fcf42e23 sw a5,-36(s0) +80000acc: fe042783 lw a5,-32(s0) +80000ad0: 0047a783 lw a5,4(a5) +80000ad4: fcf42c23 sw a5,-40(s0) +80000ad8: fe042783 lw a5,-32(s0) +80000adc: 0087a783 lw a5,8(a5) +80000ae0: fcf42a23 sw a5,-44(s0) +80000ae4: fe042783 lw a5,-32(s0) +80000ae8: 0147a783 lw a5,20(a5) +80000aec: fef42623 sw a5,-20(s0) +80000af0: fec42703 lw a4,-20(s0) +80000af4: fbc42783 lw a5,-68(s0) +80000af8: 02f707b3 mul a5,a4,a5 +80000afc: fef42423 sw a5,-24(s0) +80000b00: fec42783 lw a5,-20(s0) +80000b04: 00079a63 bnez a5,80000b18 <_vx_mat_add+0x78> +80000b08: 00100793 li a5,1 +80000b0c: fef42623 sw a5,-20(s0) +80000b10: fbc42783 lw a5,-68(s0) +80000b14: fef42423 sw a5,-24(s0) +80000b18: fe042783 lw a5,-32(s0) +80000b1c: 00c7a783 lw a5,12(a5) +80000b20: fcf42823 sw a5,-48(s0) +80000b24: fe042223 sw zero,-28(s0) +80000b28: 0c00006f j 80000be8 <_vx_mat_add+0x148> +80000b2c: fb842703 lw a4,-72(s0) +80000b30: fd042783 lw a5,-48(s0) +80000b34: 02f70733 mul a4,a4,a5 +80000b38: fe842783 lw a5,-24(s0) +80000b3c: 00f707b3 add a5,a4,a5 +80000b40: fcf42623 sw a5,-52(s0) +80000b44: fe842703 lw a4,-24(s0) +80000b48: fd042783 lw a5,-48(s0) +80000b4c: 00f737b3 sltu a5,a4,a5 +80000b50: 0ff7f793 andi a5,a5,255 +80000b54: fcf42423 sw a5,-56(s0) +80000b58: fc842783 lw a5,-56(s0) +80000b5c: 0017b793 seqz a5,a5 +80000b60: fcf403a3 sb a5,-57(s0) +80000b64: fc744783 lbu a5,-57(s0) +80000b68: 00078f13 mv t5,a5 +80000b6c: 800017b7 lui a5,0x80001 +80000b70: bd478f93 addi t6,a5,-1068 # 80000bd4 +80000b74: 000f206b 0xf206b +80000b78: 01ff707b 0x1ff707b +80000b7c: fcc42783 lw a5,-52(s0) +80000b80: 00279793 slli a5,a5,0x2 +80000b84: fdc42703 lw a4,-36(s0) +80000b88: 00f707b3 add a5,a4,a5 +80000b8c: 0007a683 lw a3,0(a5) +80000b90: fcc42783 lw a5,-52(s0) +80000b94: 00279793 slli a5,a5,0x2 +80000b98: fd842703 lw a4,-40(s0) +80000b9c: 00f707b3 add a5,a4,a5 +80000ba0: 0007a703 lw a4,0(a5) +80000ba4: fcc42783 lw a5,-52(s0) +80000ba8: 00279793 slli a5,a5,0x2 +80000bac: fd442603 lw a2,-44(s0) +80000bb0: 00f607b3 add a5,a2,a5 +80000bb4: 00e68733 add a4,a3,a4 +80000bb8: 00e7a023 sw a4,0(a5) +80000bbc: fe842783 lw a5,-24(s0) +80000bc0: 00178793 addi a5,a5,1 +80000bc4: fef42423 sw a5,-24(s0) +80000bc8: 800017b7 lui a5,0x80001 +80000bcc: bd878e13 addi t3,a5,-1064 # 80000bd8 +80000bd0: 000e0067 jr t3 +80000bd4: 00000013 nop +80000bd8: 0000306b 0x306b +80000bdc: fe442783 lw a5,-28(s0) +80000be0: 00178793 addi a5,a5,1 +80000be4: fef42223 sw a5,-28(s0) +80000be8: fe442783 lw a5,-28(s0) +80000bec: fec42703 lw a4,-20(s0) +80000bf0: f2e7eee3 bltu a5,a4,80000b2c <_vx_mat_add+0x8c> +80000bf4: 00000013 nop +80000bf8: 04c12083 lw ra,76(sp) +80000bfc: 04812403 lw s0,72(sp) +80000c00: 05010113 addi sp,sp,80 +80000c04: 00008067 ret + +80000c08 : +80000c08: fc010113 addi sp,sp,-64 +80000c0c: 02112e23 sw ra,60(sp) +80000c10: 02812c23 sw s0,56(sp) +80000c14: 04010413 addi s0,sp,64 +80000c18: fca42e23 sw a0,-36(s0) +80000c1c: fcb42c23 sw a1,-40(s0) +80000c20: fcc42a23 sw a2,-44(s0) +80000c24: fcd42823 sw a3,-48(s0) +80000c28: fce42623 sw a4,-52(s0) +80000c2c: 810037b7 lui a5,0x81003 +80000c30: fdc42703 lw a4,-36(s0) +80000c34: 86e7a223 sw a4,-1948(a5) # 81002864 +80000c38: 810037b7 lui a5,0x81003 +80000c3c: 86478793 addi a5,a5,-1948 # 81002864 +80000c40: fd842703 lw a4,-40(s0) +80000c44: 00e7a223 sw a4,4(a5) +80000c48: 810037b7 lui a5,0x81003 +80000c4c: 86478793 addi a5,a5,-1948 # 81002864 +80000c50: fd442703 lw a4,-44(s0) +80000c54: 00e7a423 sw a4,8(a5) +80000c58: 810037b7 lui a5,0x81003 +80000c5c: 86478793 addi a5,a5,-1948 # 81002864 +80000c60: fcc42703 lw a4,-52(s0) +80000c64: 00e7a623 sw a4,12(a5) +80000c68: 810037b7 lui a5,0x81003 +80000c6c: 86478793 addi a5,a5,-1948 # 81002864 +80000c70: fd042703 lw a4,-48(s0) +80000c74: 00e7a823 sw a4,16(a5) +80000c78: fcc42783 lw a5,-52(s0) +80000c7c: 0037d793 srli a5,a5,0x3 +80000c80: fef42623 sw a5,-20(s0) +80000c84: fcc42783 lw a5,-52(s0) +80000c88: 0077f793 andi a5,a5,7 +80000c8c: 00078863 beqz a5,80000c9c +80000c90: fec42783 lw a5,-20(s0) +80000c94: 00178793 addi a5,a5,1 +80000c98: fef42623 sw a5,-20(s0) +80000c9c: 810037b7 lui a5,0x81003 +80000ca0: 86478793 addi a5,a5,-1948 # 81002864 +80000ca4: fec42703 lw a4,-20(s0) +80000ca8: 00e7aa23 sw a4,20(a5) +80000cac: fcc42703 lw a4,-52(s0) +80000cb0: 00700793 li a5,7 +80000cb4: 02e7f263 bgeu a5,a4,80000cd8 +80000cb8: 810037b7 lui a5,0x81003 +80000cbc: 86478693 addi a3,a5,-1948 # 81002864 +80000cc0: 800017b7 lui a5,0x80001 +80000cc4: d2878613 addi a2,a5,-728 # 80000d28 +80000cc8: 00800593 li a1,8 +80000ccc: fd042503 lw a0,-48(s0) +80000cd0: d84ff0ef jal ra,80000254 +80000cd4: 0200006f j 80000cf4 +80000cd8: 810037b7 lui a5,0x81003 +80000cdc: 86478693 addi a3,a5,-1948 # 81002864 +80000ce0: 800017b7 lui a5,0x80001 +80000ce4: d2878613 addi a2,a5,-728 # 80000d28 +80000ce8: fcc42583 lw a1,-52(s0) +80000cec: fd042503 lw a0,-48(s0) +80000cf0: d64ff0ef jal ra,80000254 +80000cf4: fd042703 lw a4,-48(s0) +80000cf8: 00700793 li a5,7 +80000cfc: 00e7f863 bgeu a5,a4,80000d0c +80000d00: 00700513 li a0,7 +80000d04: e34ff0ef jal ra,80000338 +80000d08: 00c0006f j 80000d14 +80000d0c: fd042503 lw a0,-48(s0) +80000d10: e28ff0ef jal ra,80000338 +80000d14: 00000013 nop +80000d18: 03c12083 lw ra,60(sp) +80000d1c: 03812403 lw s0,56(sp) +80000d20: 04010113 addi sp,sp,64 +80000d24: 00008067 ret + +80000d28 <_vx_mat_sub>: +80000d28: fb010113 addi sp,sp,-80 +80000d2c: 04112623 sw ra,76(sp) +80000d30: 04812423 sw s0,72(sp) +80000d34: 05010413 addi s0,sp,80 +80000d38: faa42e23 sw a0,-68(s0) +80000d3c: fab42c23 sw a1,-72(s0) +80000d40: eb4ff0ef jal ra,800003f4 +80000d44: fea42023 sw a0,-32(s0) +80000d48: fe042783 lw a5,-32(s0) +80000d4c: 0007a783 lw a5,0(a5) +80000d50: fcf42e23 sw a5,-36(s0) +80000d54: fe042783 lw a5,-32(s0) +80000d58: 0047a783 lw a5,4(a5) +80000d5c: fcf42c23 sw a5,-40(s0) +80000d60: fe042783 lw a5,-32(s0) +80000d64: 0087a783 lw a5,8(a5) +80000d68: fcf42a23 sw a5,-44(s0) +80000d6c: fe042783 lw a5,-32(s0) +80000d70: 0147a783 lw a5,20(a5) +80000d74: fef42623 sw a5,-20(s0) +80000d78: fec42703 lw a4,-20(s0) +80000d7c: fbc42783 lw a5,-68(s0) +80000d80: 02f707b3 mul a5,a4,a5 +80000d84: fef42423 sw a5,-24(s0) +80000d88: fec42783 lw a5,-20(s0) +80000d8c: 00079a63 bnez a5,80000da0 <_vx_mat_sub+0x78> +80000d90: 00100793 li a5,1 +80000d94: fef42623 sw a5,-20(s0) +80000d98: fbc42783 lw a5,-68(s0) +80000d9c: fef42423 sw a5,-24(s0) +80000da0: fe042783 lw a5,-32(s0) +80000da4: 00c7a783 lw a5,12(a5) +80000da8: fcf42823 sw a5,-48(s0) +80000dac: fe042223 sw zero,-28(s0) +80000db0: 0c00006f j 80000e70 <_vx_mat_sub+0x148> +80000db4: fb842703 lw a4,-72(s0) +80000db8: fd042783 lw a5,-48(s0) +80000dbc: 02f70733 mul a4,a4,a5 +80000dc0: fe842783 lw a5,-24(s0) +80000dc4: 00f707b3 add a5,a4,a5 +80000dc8: fcf42623 sw a5,-52(s0) +80000dcc: fe842703 lw a4,-24(s0) +80000dd0: fd042783 lw a5,-48(s0) +80000dd4: 00f737b3 sltu a5,a4,a5 +80000dd8: 0ff7f793 andi a5,a5,255 +80000ddc: fcf42423 sw a5,-56(s0) +80000de0: fc842783 lw a5,-56(s0) +80000de4: 0017b793 seqz a5,a5 +80000de8: fcf403a3 sb a5,-57(s0) +80000dec: fc744783 lbu a5,-57(s0) +80000df0: 00078f13 mv t5,a5 +80000df4: 800017b7 lui a5,0x80001 +80000df8: e5c78f93 addi t6,a5,-420 # 80000e5c +80000dfc: 000f206b 0xf206b +80000e00: 01ff707b 0x1ff707b +80000e04: fcc42783 lw a5,-52(s0) +80000e08: 00279793 slli a5,a5,0x2 +80000e0c: fdc42703 lw a4,-36(s0) +80000e10: 00f707b3 add a5,a4,a5 +80000e14: 0007a683 lw a3,0(a5) +80000e18: fcc42783 lw a5,-52(s0) +80000e1c: 00279793 slli a5,a5,0x2 +80000e20: fd842703 lw a4,-40(s0) +80000e24: 00f707b3 add a5,a4,a5 +80000e28: 0007a703 lw a4,0(a5) +80000e2c: fcc42783 lw a5,-52(s0) +80000e30: 00279793 slli a5,a5,0x2 +80000e34: fd442603 lw a2,-44(s0) +80000e38: 00f607b3 add a5,a2,a5 +80000e3c: 40e68733 sub a4,a3,a4 +80000e40: 00e7a023 sw a4,0(a5) +80000e44: fe842783 lw a5,-24(s0) +80000e48: 00178793 addi a5,a5,1 +80000e4c: fef42423 sw a5,-24(s0) +80000e50: 800017b7 lui a5,0x80001 +80000e54: e6078e13 addi t3,a5,-416 # 80000e60 +80000e58: 000e0067 jr t3 +80000e5c: 00000013 nop +80000e60: 0000306b 0x306b +80000e64: fe442783 lw a5,-28(s0) +80000e68: 00178793 addi a5,a5,1 +80000e6c: fef42223 sw a5,-28(s0) +80000e70: fe442783 lw a5,-28(s0) +80000e74: fec42703 lw a4,-20(s0) +80000e78: f2e7eee3 bltu a5,a4,80000db4 <_vx_mat_sub+0x8c> +80000e7c: 00000013 nop +80000e80: 04c12083 lw ra,76(sp) +80000e84: 04812403 lw s0,72(sp) +80000e88: 05010113 addi sp,sp,80 +80000e8c: 00008067 ret + +80000e90 : +80000e90: fe010113 addi sp,sp,-32 +80000e94: 00812e23 sw s0,28(sp) +80000e98: 02010413 addi s0,sp,32 +80000e9c: fe042623 sw zero,-20(s0) +80000ea0: 0480006f j 80000ee8 +80000ea4: 810037b7 lui a5,0x81003 +80000ea8: fec42703 lw a4,-20(s0) +80000eac: 00271713 slli a4,a4,0x2 +80000eb0: 87c78793 addi a5,a5,-1924 # 8100287c +80000eb4: 00f707b3 add a5,a4,a5 +80000eb8: 00300713 li a4,3 +80000ebc: 00e7a023 sw a4,0(a5) +80000ec0: 810047b7 lui a5,0x81004 +80000ec4: fec42703 lw a4,-20(s0) +80000ec8: 00271713 slli a4,a4,0x2 +80000ecc: 87c78793 addi a5,a5,-1924 # 8100387c +80000ed0: 00f707b3 add a5,a4,a5 +80000ed4: 00200713 li a4,2 +80000ed8: 00e7a023 sw a4,0(a5) +80000edc: fec42783 lw a5,-20(s0) +80000ee0: 00178793 addi a5,a5,1 +80000ee4: fef42623 sw a5,-20(s0) +80000ee8: fec42703 lw a4,-20(s0) +80000eec: 0ff00793 li a5,255 +80000ef0: fae7dae3 bge a5,a4,80000ea4 +80000ef4: 00000013 nop +80000ef8: 01c12403 lw s0,28(sp) +80000efc: 02010113 addi sp,sp,32 +80000f00: 00008067 ret + +80000f04
: +80000f04: fe010113 addi sp,sp,-32 +80000f08: 00112e23 sw ra,28(sp) +80000f0c: 00812c23 sw s0,24(sp) +80000f10: 02010413 addi s0,sp,32 +80000f14: f7dff0ef jal ra,80000e90 +80000f18: 01000693 li a3,16 +80000f1c: 810057b7 lui a5,0x81005 +80000f20: 87c78613 addi a2,a5,-1924 # 8100487c +80000f24: 810047b7 lui a5,0x81004 +80000f28: 87c78593 addi a1,a5,-1924 # 8100387c +80000f2c: 810037b7 lui a5,0x81003 +80000f30: 87c78513 addi a0,a5,-1924 # 8100287c +80000f34: f74ff0ef jal ra,800006a8 +80000f38: 810007b7 lui a5,0x81000 +80000f3c: 0c478513 addi a0,a5,196 # 810000c4 +80000f40: e20ff0ef jal ra,80000560 +80000f44: 810007b7 lui a5,0x81000 +80000f48: 0e078513 addi a0,a5,224 # 810000e0 +80000f4c: e14ff0ef jal ra,80000560 +80000f50: fe042623 sw zero,-20(s0) +80000f54: 0540006f j 80000fa8 +80000f58: fec42783 lw a5,-20(s0) +80000f5c: 00f7f793 andi a5,a5,15 +80000f60: 00079863 bnez a5,80000f70 +80000f64: 810007b7 lui a5,0x81000 +80000f68: 0ec78513 addi a0,a5,236 # 810000ec +80000f6c: df4ff0ef jal ra,80000560 +80000f70: 810057b7 lui a5,0x81005 +80000f74: fec42703 lw a4,-20(s0) +80000f78: 00271713 slli a4,a4,0x2 +80000f7c: 87c78793 addi a5,a5,-1924 # 8100487c +80000f80: 00f707b3 add a5,a4,a5 +80000f84: 0007a783 lw a5,0(a5) +80000f88: 00078513 mv a0,a5 +80000f8c: e10ff0ef jal ra,8000059c +80000f90: 810007b7 lui a5,0x81000 +80000f94: 0f078513 addi a0,a5,240 # 810000f0 +80000f98: dc8ff0ef jal ra,80000560 +80000f9c: fec42783 lw a5,-20(s0) +80000fa0: 00178793 addi a5,a5,1 +80000fa4: fef42623 sw a5,-20(s0) +80000fa8: fec42703 lw a4,-20(s0) +80000fac: 0ff00793 li a5,255 +80000fb0: fae7d4e3 bge a5,a4,80000f58 +80000fb4: 810007b7 lui a5,0x81000 +80000fb8: 0f478513 addi a0,a5,244 # 810000f4 +80000fbc: da4ff0ef jal ra,80000560 +80000fc0: 01000713 li a4,16 +80000fc4: 01000693 li a3,16 +80000fc8: 810057b7 lui a5,0x81005 +80000fcc: 87c78613 addi a2,a5,-1924 # 8100487c +80000fd0: 810047b7 lui a5,0x81004 +80000fd4: 87c78593 addi a1,a5,-1924 # 8100387c +80000fd8: 810037b7 lui a5,0x81003 +80000fdc: 87c78513 addi a0,a5,-1924 # 8100287c +80000fe0: 9a1ff0ef jal ra,80000980 +80000fe4: 810007b7 lui a5,0x81000 +80000fe8: 0c478513 addi a0,a5,196 # 810000c4 +80000fec: d74ff0ef jal ra,80000560 +80000ff0: 810007b7 lui a5,0x81000 +80000ff4: 11878513 addi a0,a5,280 # 81000118 +80000ff8: d68ff0ef jal ra,80000560 +80000ffc: fe042423 sw zero,-24(s0) +80001000: 0540006f j 80001054 +80001004: fe842783 lw a5,-24(s0) +80001008: 00f7f793 andi a5,a5,15 +8000100c: 00079863 bnez a5,8000101c +80001010: 810007b7 lui a5,0x81000 +80001014: 0ec78513 addi a0,a5,236 # 810000ec +80001018: d48ff0ef jal ra,80000560 +8000101c: 810057b7 lui a5,0x81005 +80001020: fe842703 lw a4,-24(s0) +80001024: 00271713 slli a4,a4,0x2 +80001028: 87c78793 addi a5,a5,-1924 # 8100487c +8000102c: 00f707b3 add a5,a4,a5 +80001030: 0007a783 lw a5,0(a5) +80001034: 00078513 mv a0,a5 +80001038: d64ff0ef jal ra,8000059c +8000103c: 810007b7 lui a5,0x81000 +80001040: 0f078513 addi a0,a5,240 # 810000f0 +80001044: d1cff0ef jal ra,80000560 +80001048: fe842783 lw a5,-24(s0) +8000104c: 00178793 addi a5,a5,1 +80001050: fef42423 sw a5,-24(s0) +80001054: fe842703 lw a4,-24(s0) +80001058: 0ff00793 li a5,255 +8000105c: fae7d4e3 bge a5,a4,80001004 +80001060: 810007b7 lui a5,0x81000 +80001064: 0f478513 addi a0,a5,244 # 810000f4 +80001068: cf8ff0ef jal ra,80000560 +8000106c: 01000713 li a4,16 +80001070: 01000693 li a3,16 +80001074: 810057b7 lui a5,0x81005 +80001078: 87c78613 addi a2,a5,-1924 # 8100487c +8000107c: 810047b7 lui a5,0x81004 +80001080: 87c78593 addi a1,a5,-1924 # 8100387c +80001084: 810037b7 lui a5,0x81003 +80001088: 87c78513 addi a0,a5,-1924 # 8100287c +8000108c: b7dff0ef jal ra,80000c08 +80001090: 810007b7 lui a5,0x81000 +80001094: 0c478513 addi a0,a5,196 # 810000c4 +80001098: cc8ff0ef jal ra,80000560 +8000109c: 810007b7 lui a5,0x81000 +800010a0: 12478513 addi a0,a5,292 # 81000124 +800010a4: cbcff0ef jal ra,80000560 +800010a8: fe042223 sw zero,-28(s0) +800010ac: 0540006f j 80001100 +800010b0: fe442783 lw a5,-28(s0) +800010b4: 00f7f793 andi a5,a5,15 +800010b8: 00079863 bnez a5,800010c8 +800010bc: 810007b7 lui a5,0x81000 +800010c0: 0ec78513 addi a0,a5,236 # 810000ec +800010c4: c9cff0ef jal ra,80000560 +800010c8: 810057b7 lui a5,0x81005 +800010cc: fe442703 lw a4,-28(s0) +800010d0: 00271713 slli a4,a4,0x2 +800010d4: 87c78793 addi a5,a5,-1924 # 8100487c +800010d8: 00f707b3 add a5,a4,a5 +800010dc: 0007a783 lw a5,0(a5) +800010e0: 00078513 mv a0,a5 +800010e4: cb8ff0ef jal ra,8000059c +800010e8: 810007b7 lui a5,0x81000 +800010ec: 0f078513 addi a0,a5,240 # 810000f0 +800010f0: c70ff0ef jal ra,80000560 +800010f4: fe442783 lw a5,-28(s0) +800010f8: 00178793 addi a5,a5,1 +800010fc: fef42223 sw a5,-28(s0) +80001100: fe442703 lw a4,-28(s0) +80001104: 0ff00793 li a5,255 +80001108: fae7d4e3 bge a5,a4,800010b0 +8000110c: 810007b7 lui a5,0x81000 +80001110: 0f478513 addi a0,a5,244 # 810000f4 +80001114: c4cff0ef jal ra,80000560 +80001118: 00000793 li a5,0 +8000111c: 00078513 mv a0,a5 +80001120: 01c12083 lw ra,28(sp) +80001124: 01812403 lw s0,24(sp) +80001128: 02010113 addi sp,sp,32 +8000112c: 00008067 ret Disassembly of section .rodata: @@ -760,260 +1205,270 @@ 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: 0030 addi a2,sp,8 +81000040: 000a c.slli zero,0x2 81000042: 0000 unimp -81000044: 0031 c.nop 12 +81000044: 0030 addi a2,sp,8 81000046: 0000 unimp -81000048: 0032 c.slli zero,0xc +81000048: 0031 c.nop 12 8100004a: 0000 unimp -8100004c: 00000033 add zero,zero,zero -81000050: 0034 addi a3,sp,8 -81000052: 0000 unimp -81000054: 0035 c.nop 13 +8100004c: 0032 c.slli zero,0xc +8100004e: 0000 unimp +81000050: 00000033 add zero,zero,zero +81000054: 0034 addi a3,sp,8 81000056: 0000 unimp -81000058: 0036 c.slli zero,0xd +81000058: 0035 c.nop 13 8100005a: 0000 unimp -8100005c: 00000037 lui zero,0x0 -81000060: 0038 addi a4,sp,8 -81000062: 0000 unimp -81000064: 0039 c.nop 14 +8100005c: 0036 c.slli zero,0xd +8100005e: 0000 unimp +81000060: 00000037 lui zero,0x0 +81000064: 0038 addi a4,sp,8 81000066: 0000 unimp -81000068: 0061 c.nop 24 +81000068: 0039 c.nop 14 8100006a: 0000 unimp -8100006c: 0062 c.slli zero,0x18 +8100006c: 0061 c.nop 24 8100006e: 0000 unimp -81000070: 00000063 beqz zero,81000070 -81000074: 0064 addi s1,sp,12 -81000076: 0000 unimp -81000078: 0065 c.nop 25 +81000070: 0062 c.slli zero,0x18 +81000072: 0000 unimp +81000074: 00000063 beqz zero,81000074 +81000078: 0064 addi s1,sp,12 8100007a: 0000 unimp -8100007c: 0066 c.slli zero,0x19 +8100007c: 0065 c.nop 25 8100007e: 0000 unimp -81000080: 7366666f jal a2,810667b6 -81000084: 7465 lui s0,0xffff9 -81000086: 203a fld ft0,392(sp) -81000088: 0000 unimp +81000080: 0066 c.slli zero,0x19 +81000082: 0000 unimp +81000084: 0030 addi a2,sp,8 +81000086: 0000 unimp +81000088: 0031 c.nop 12 8100008a: 0000 unimp -8100008c: 000a c.slli zero,0x2 +8100008c: 0032 c.slli zero,0xc 8100008e: 0000 unimp -81000090: 0030 addi a2,sp,8 -81000092: 0000 unimp -81000094: 0031 c.nop 12 +81000090: 00000033 add zero,zero,zero +81000094: 0034 addi a3,sp,8 81000096: 0000 unimp -81000098: 0032 c.slli zero,0xc +81000098: 0035 c.nop 13 8100009a: 0000 unimp -8100009c: 00000033 add zero,zero,zero -810000a0: 0034 addi a3,sp,8 -810000a2: 0000 unimp -810000a4: 0035 c.nop 13 +8100009c: 0036 c.slli zero,0xd +8100009e: 0000 unimp +810000a0: 00000037 lui zero,0x0 +810000a4: 0038 addi a4,sp,8 810000a6: 0000 unimp -810000a8: 0036 c.slli zero,0xd +810000a8: 0039 c.nop 14 810000aa: 0000 unimp -810000ac: 00000037 lui zero,0x0 -810000b0: 0038 addi a4,sp,8 +810000ac: 0061 c.nop 24 +810000ae: 0000 unimp +810000b0: 0062 c.slli zero,0x18 810000b2: 0000 unimp -810000b4: 0039 c.nop 14 -810000b6: 0000 unimp -810000b8: 0061 c.nop 24 +810000b4: 00000063 beqz zero,810000b4 +810000b8: 0064 addi s1,sp,12 810000ba: 0000 unimp -810000bc: 0062 c.slli zero,0x18 +810000bc: 0065 c.nop 25 810000be: 0000 unimp -810000c0: 00000063 beqz zero,810000c0 -810000c4: 0064 addi s1,sp,12 -810000c6: 0000 unimp -810000c8: 0065 c.nop 25 -810000ca: 0000 unimp -810000cc: 0066 c.slli zero,0x19 -810000ce: 0000 unimp -810000d0: 2d2d jal 8100070a -810000d2: 2d2d jal 8100070c -810000d4: 2d2d jal 8100070e -810000d6: 2d2d jal 81000710 -810000d8: 2d2d jal 81000712 -810000da: 2d2d jal 81000714 -810000dc: 2d2d jal 81000716 -810000de: 2d2d jal 81000718 -810000e0: 2d2d jal 8100071a -810000e2: 2d2d jal 8100071c -810000e4: 2d2d jal 8100071e -810000e6: 2d2d jal 81000720 -810000e8: 0a2d addi s4,s4,11 +810000c0: 0066 c.slli zero,0x19 +810000c2: 0000 unimp +810000c4: 2d2d jal 810006fe +810000c6: 2d2d jal 81000700 +810000c8: 2d2d jal 81000702 +810000ca: 2d2d jal 81000704 +810000cc: 2d2d jal 81000706 +810000ce: 2d2d jal 81000708 +810000d0: 2d2d jal 8100070a +810000d2: 2d2d jal 8100070c +810000d4: 2d2d jal 8100070e +810000d6: 2d2d jal 81000710 +810000d8: 2d2d jal 81000712 +810000da: 2d2d jal 81000714 +810000dc: 0a2d addi s4,s4,11 +810000de: 0000 unimp +810000e0: 4946 lw s2,80(sp) +810000e2: 414e lw sp,208(sp) +810000e4: 204c fld fa1,128(s0) +810000e6: 414d li sp,19 +810000e8: 0a54 addi a3,sp,276 810000ea: 0000 unimp -810000ec: 4946 lw s2,80(sp) -810000ee: 414e lw sp,208(sp) -810000f0: 204c fld fa1,128(s0) -810000f2: 0a5a slli s4,s4,0x16 -810000f4: 0000 unimp -810000f6: 0000 unimp -810000f8: 000a c.slli zero,0x2 -810000fa: 0000 unimp -810000fc: 0020 addi s0,sp,8 -810000fe: 0000 unimp -81000100: 2d0a fld fs10,128(sp) -81000102: 2d2d jal 8100073c -81000104: 2d2d jal 8100073e -81000106: 2d2d jal 81000740 -81000108: 2d2d jal 81000742 -8100010a: 2d2d jal 81000744 -8100010c: 2d2d jal 81000746 -8100010e: 2d2d jal 81000748 -81000110: 2d2d jal 8100074a -81000112: 2d2d jal 8100074c -81000114: 2d2d jal 8100074e -81000116: 2d2d jal 81000750 -81000118: 2d2d jal 81000752 -8100011a: 2d2d jal 81000754 -8100011c: 2d2d jal 81000756 -8100011e: 2d2d jal 81000758 -81000120: 000a c.slli zero,0x2 +810000ec: 000a c.slli zero,0x2 +810000ee: 0000 unimp +810000f0: 0020 addi s0,sp,8 +810000f2: 0000 unimp +810000f4: 2d0a fld fs10,128(sp) +810000f6: 2d2d jal 81000730 +810000f8: 2d2d jal 81000732 +810000fa: 2d2d jal 81000734 +810000fc: 2d2d jal 81000736 +810000fe: 2d2d jal 81000738 +81000100: 2d2d jal 8100073a +81000102: 2d2d jal 8100073c +81000104: 2d2d jal 8100073e +81000106: 2d2d jal 81000740 +81000108: 2d2d jal 81000742 +8100010a: 2d2d jal 81000744 +8100010c: 2d2d jal 81000746 +8100010e: 2d2d jal 81000748 +81000110: 2d2d jal 8100074a +81000112: 2d2d jal 8100074c +81000114: 000a c.slli zero,0x2 +81000116: 0000 unimp +81000118: 4946 lw s2,80(sp) +8100011a: 414e lw sp,208(sp) +8100011c: 204c fld fa1,128(s0) +8100011e: 4441 li s0,16 +81000120: 0a44 addi s1,sp,276 +81000122: 0000 unimp +81000124: 4946 lw s2,80(sp) +81000126: 414e lw sp,208(sp) +81000128: 204c fld fa1,128(s0) +8100012a: 0a627553 fsub.d fa0,ft4,ft6 + ... Disassembly of section .data: -81000124 : -81000124: 0000 unimp -81000126: 8100 0x8100 -81000128: 0004 0x4 -8100012a: 8100 0x8100 -8100012c: 0008 0x8 -8100012e: 8100 0x8100 -81000130: 000c 0xc +81000130 : +81000130: 0000 unimp 81000132: 8100 0x8100 -81000134: 0010 0x10 +81000134: 0004 0x4 81000136: 8100 0x8100 -81000138: 0014 0x14 +81000138: 0008 0x8 8100013a: 8100 0x8100 -8100013c: 0018 0x18 +8100013c: 000c 0xc 8100013e: 8100 0x8100 -81000140: 001c 0x1c +81000140: 0010 0x10 81000142: 8100 0x8100 -81000144: 0020 addi s0,sp,8 +81000144: 0014 0x14 81000146: 8100 0x8100 -81000148: 0024 addi s1,sp,8 +81000148: 0018 0x18 8100014a: 8100 0x8100 -8100014c: 0028 addi a0,sp,8 +8100014c: 001c 0x1c 8100014e: 8100 0x8100 -81000150: 002c addi a1,sp,8 +81000150: 0020 addi s0,sp,8 81000152: 8100 0x8100 -81000154: 0030 addi a2,sp,8 +81000154: 0024 addi s1,sp,8 81000156: 8100 0x8100 -81000158: 0034 addi a3,sp,8 +81000158: 0028 addi a0,sp,8 8100015a: 8100 0x8100 -8100015c: 0038 addi a4,sp,8 +8100015c: 002c addi a1,sp,8 8100015e: 8100 0x8100 -81000160: 003c addi a5,sp,8 +81000160: 0030 addi a2,sp,8 81000162: 8100 0x8100 - -81000164 : -81000164: 0040 addi s0,sp,4 +81000164: 0034 addi a3,sp,8 81000166: 8100 0x8100 -81000168: 0044 addi s1,sp,4 +81000168: 0038 addi a4,sp,8 8100016a: 8100 0x8100 -8100016c: 0048 addi a0,sp,4 +8100016c: 003c addi a5,sp,8 8100016e: 8100 0x8100 -81000170: 004c addi a1,sp,4 -81000172: 8100 0x8100 -81000174: 0050 addi a2,sp,4 -81000176: 8100 0x8100 -81000178: 0054 addi a3,sp,4 -8100017a: 8100 0x8100 -8100017c: 0058 addi a4,sp,4 -8100017e: 8100 0x8100 -81000180: 005c addi a5,sp,4 -81000182: 8100 0x8100 -81000184: 0060 addi s0,sp,12 -81000186: 8100 0x8100 -81000188: 0064 addi s1,sp,12 -8100018a: 8100 0x8100 -8100018c: 0068 addi a0,sp,12 -8100018e: 8100 0x8100 -81000190: 006c addi a1,sp,12 -81000192: 8100 0x8100 -81000194: 0070 addi a2,sp,12 -81000196: 8100 0x8100 -81000198: 0074 addi a3,sp,12 -8100019a: 8100 0x8100 -8100019c: 0078 addi a4,sp,12 -8100019e: 8100 0x8100 -810001a0: 007c addi a5,sp,12 -810001a2: 8100 0x8100 -810001a4 : -810001a4: 0090 addi a2,sp,64 +81000170 : +81000170: 0044 addi s1,sp,4 +81000172: 8100 0x8100 +81000174: 0048 addi a0,sp,4 +81000176: 8100 0x8100 +81000178: 004c addi a1,sp,4 +8100017a: 8100 0x8100 +8100017c: 0050 addi a2,sp,4 +8100017e: 8100 0x8100 +81000180: 0054 addi a3,sp,4 +81000182: 8100 0x8100 +81000184: 0058 addi a4,sp,4 +81000186: 8100 0x8100 +81000188: 005c addi a5,sp,4 +8100018a: 8100 0x8100 +8100018c: 0060 addi s0,sp,12 +8100018e: 8100 0x8100 +81000190: 0064 addi s1,sp,12 +81000192: 8100 0x8100 +81000194: 0068 addi a0,sp,12 +81000196: 8100 0x8100 +81000198: 006c addi a1,sp,12 +8100019a: 8100 0x8100 +8100019c: 0070 addi a2,sp,12 +8100019e: 8100 0x8100 +810001a0: 0074 addi a3,sp,12 +810001a2: 8100 0x8100 +810001a4: 0078 addi a4,sp,12 810001a6: 8100 0x8100 -810001a8: 0094 addi a3,sp,64 +810001a8: 007c addi a5,sp,12 810001aa: 8100 0x8100 -810001ac: 0098 addi a4,sp,64 +810001ac: 0080 addi s0,sp,64 810001ae: 8100 0x8100 -810001b0: 009c addi a5,sp,64 + +810001b0 : +810001b0: 0084 addi s1,sp,64 810001b2: 8100 0x8100 -810001b4: 00a0 addi s0,sp,72 +810001b4: 0088 addi a0,sp,64 810001b6: 8100 0x8100 -810001b8: 00a4 addi s1,sp,72 +810001b8: 008c addi a1,sp,64 810001ba: 8100 0x8100 -810001bc: 00a8 addi a0,sp,72 +810001bc: 0090 addi a2,sp,64 810001be: 8100 0x8100 -810001c0: 00ac addi a1,sp,72 +810001c0: 0094 addi a3,sp,64 810001c2: 8100 0x8100 -810001c4: 00b0 addi a2,sp,72 +810001c4: 0098 addi a4,sp,64 810001c6: 8100 0x8100 -810001c8: 00b4 addi a3,sp,72 +810001c8: 009c addi a5,sp,64 810001ca: 8100 0x8100 -810001cc: 00b8 addi a4,sp,72 +810001cc: 00a0 addi s0,sp,72 810001ce: 8100 0x8100 -810001d0: 00bc addi a5,sp,72 +810001d0: 00a4 addi s1,sp,72 810001d2: 8100 0x8100 -810001d4: 00c0 addi s0,sp,68 +810001d4: 00a8 addi a0,sp,72 810001d6: 8100 0x8100 -810001d8: 00c4 addi s1,sp,68 +810001d8: 00ac addi a1,sp,72 810001da: 8100 0x8100 -810001dc: 00c8 addi a0,sp,68 +810001dc: 00b0 addi a2,sp,72 810001de: 8100 0x8100 -810001e0: 00cc addi a1,sp,68 +810001e0: 00b4 addi a3,sp,72 810001e2: 8100 0x8100 +810001e4: 00b8 addi a4,sp,72 +810001e6: 8100 0x8100 +810001e8: 00bc addi a5,sp,72 +810001ea: 8100 0x8100 +810001ec: 00c0 addi s0,sp,68 +810001ee: 8100 0x8100 Disassembly of section .bss: -810001e4 : +810001f0 : ... -810001ec : -810001ec: 0000 unimp +8100020c : +8100020c: 0000 unimp ... -810001f0 : +81000210 : ... -81002810 : +81002830 : ... -81002818 : -81002818: 0000 unimp +8100284c : +8100284c: 0000 unimp ... -8100281c : +81002850 : ... -81002830 : +81002864 : ... -81003830 : +8100287c : ... -81004830 : +8100387c : ... -81005830 : +8100487c : ... -81005838 : -81005838: 0000 unimp +8100587c : + ... + +81005898 : +81005898: 0000 unimp ... Disassembly of section .comment: diff --git a/src/vortex_software/vortex_test.elf b/src/vortex_software/vortex_test.elf index fdc7078192024f3fd99a79c443b1f99c3a324b2b..0aebc837756bf651b480e82b4a0e2103f3dbfa09 100755 GIT binary patch literal 15004 zcmeHO4Qw366@GiW=XD^&31=GAqUOljj!BJeu!BQIE1O&}NC8KXVuVngyYnSBc6|2T zIX@7IbIw0Vv>54vnj)mQ#03jcN|jWm6|@PMT2)X3C<+xqa>0~S%a0wfVr1W)`@NYx z-`cTD3sohg9qHZ7n|brzn>XLQ*>$oHZQXW@q9~Lp4*Hx-E?SAs${XcKCArB##k7KQ z<@jpRAH{F9d<_wkle^F_=9e==T}+ecc=8^i9PW|xxMdeR0(J!K2-p#@BVb3sj({Bj zI|6nD>JmxtjdkLBYwfv`fiD8*}nJ<9hYB3Vqr!tW#IKPrv%OK25G3ohImHRgA~`){;>) zm6o#YG=46Tbiv=4`;?*gSvPP?0P4Pq@vbZuEV-DC0fh*@1*f}6Bk@vE6Cgfu?CC(N$j%&`|N=Kno%^EGzv~6 zjrAi*!+kb6F?n>%Wv|#9-Gbo=T!l8XKpQaUE+fVcr9sTx-xV zm1due^%*=Y5f5FnuJeke*5E&z5OHOj0$&BJubXuz$D5`vxRez%G1-tX*QjEjRIE|U z?vYrZYLpHp&HZt5ZLUdWEU`W-p44Y_U=e5P%4x>Od|Vg%5Z8h6Hxfw|GLTD+=TFZV z>p50YaYob)o&|c10mhq0>O)+(jk&4uf68;B7M!x;YtAU@BBP)~!Tu=mzDosmAw#k6 z;cVg$g1pAK1Lt2wt+wL~_{ew)GzfY+M8=R$oN1O(j~#-XON_ZD(s$5f$) zNqyc)hWk}TeSRw$>$&cMU9Mk4?74O-MzI)IjE%1<@khUl+~ZdLhd))~s|YsVn)gN8 z`FxIjkair%J#N+2zY25Kkw1SRB1-iJ7!B4JV#X7iF6=O(@ zE5@_0EwshCY!!UTZxcB$6BFTw7$ewRJoXC3jyaTy-}=p*S2Jh0k@MF7hGJWhXC8KP zPE%wKT{jnVD-B$IUh>=&f{#c z{?C9*;B6FGlIL-}dU6K&cyTURl=BC1K2D_7!jUx2)~9M=H|nG3Mc(bvwTa1fpP1)u z*}R^Kg;9c>vT-D76rW8FSMgaJNf|?lZf+xg_u%ZMjHeQm4RXcX zRpNdT?dg5kCy~GB&u3N#^3G6#RGxz~>i-P;!1j9e9;_ki>aBe+?u?RJsHL#3U*mqe zXgr27bNpBHdcH^iV>^*=j{Y9`(40T^yJhn04Dzdn{Hh@qIY!ao3}QNixvv-{gPc24 zj04V}vRzANPDOtouQMZ~@ZKSAjEx!K2luAjOaBuR4?NCevY+*i;`~k_my7%8a>I>$ zSE?nEmvqE?2KJJyhxdZ<2z&vv-LNNk^mnI4zgyE8&iiT6Bh3@~1@_XW>!J*q#xn~;NWpSR%O zJz^K<;q>^&iI2^_bmAUyBFE;K_sGJ#lJ61=u8pD(veu+6*`+sxx! z0NYu4U>&%{nvz+pqrEKFg^slGEMpyV3$R|>E7sksKbyt+STu|E?0BqjBq_0e1~}8? znGslT2iC_P$zpxoBW8RS-?OuLp3{s1fpsTx;0)petdGSF_aOEad5y6ypAFCk*2VJz z_XF$V3~;;FiuGB>)G}C~mHj*iSjV%7#5%1+%x7UQwE$l@OXz1mQuFx2`G^5;0$(cH zwUJ~NU$rk=@FlR0_zL{To@V?b*5XWbTh4^pSL8w81*+)#5O>5K}d$9O6E)z8^+4&S5ws=JW1oALnA1UM|kSaP3lKZu5L(pRaj7o}2Q<-$~5y{^D8J z`p&rE83nmzI-Wzya6R4ydq?}&M!W|#{BWV3n5>(Y&nvYnCnodWH=kWrq5r+idjQUH znxC)yM{uw3J7v!(kB_m=#cSdGC7;>y-ZOROO-%N`D|9S)?}h(o6Emi5$ke^#(nudk(X8ZDq$updq7+J8FhYu>2P!M=+3N9bc* zEb#Tr2%ek8o-F?R0-$3TI|6nD>a_&0XqVA1ndad5wIihjf(*PH~s5C z*MllR{D1y8fo=d*fi{Eq696yB2l9g&K>^S%&?TU+tK;j=zjnC-=We;}j+$-m+iP~9 z&Az(X=jG(hewLH-YCN8K9d~v5cmUrsXrNrsO3-RhKIlr&RUkL008|Vr0by-jh-nw% z*mV=g1G*Ko4YVD!1B6c_y6yw*1T})1K&_y5Pz1CebPyB;b%P!T{RH$F=rHIA=tYK1g9fO@4v?3>_)qvi~j{{!0ibB|fh&;1E4J`b{-pF54lfR^?5 zFW}Ew_&33qIJ4tt!QX1(-v*y4Y%d=HX|;^61s}EW-v*y4EWaK+$GaMx3L<*VqH$ht zdGW&aZUe6gd5w5}yJdbQ`0W_aH^*-V-w6InlfQil{Ri(^sQ(CftNs@(`s*=&N~I|F zj4p@A&EThN{L%YLRNTeYon~>pU zK?JSc0U^*3j)Xe>5$@R+ZujnM<5t+;6lm;h4K(cYhT6l#5p4FhHa`%+{76_xbZ}Fc zp$4Hh(h%Gay1PC$MaLsJSg7Y=#1hG_x%>S}*K?^96PVLu{s5I3lJZVp3~( z>z?+=0eWCwX#*BdSb;Yr79gZ~LFR)fhI1y?edQtzKViKw8fj zxuvtUb$(48N9te=`@GGO1~_NNL`nzRq=iffyp1?erQrj6B3>WrNJ!RAnN|dwMWvx& zqc`HEQu*r(hpE&b+_NXp##!k#|8_SV~%MtlN+?j>UgRnGw8!Bz062*gu$m5oYtcMHRkWUSQrRmK?KafrFo00n$ Dux&J3 delta 1786 zcmZWpYiv_x7=F(=?am+@>jmh>%-Z#Im&ii8jjY>LC^%EOENKD+hKrN1F^GdPwiz@g zJxzCs5fOQps0j%uOVl4|v?KF}(V9%BVKLM20}~TSRw)q7sxEdRTj%q2XRgGrIp;gi zdwJf=_r1N;zp(FuOCG6w$L%g_UrQt&GhtbXB(b~1i^AfGL-6$HCq5{UgN2-Dc{AS` zRa0aiRB4uCwLEIs*ODcn?W~&VsIJO(HJ`>+3iEKFB;%o4NYfM43sRwD)xWn^P07nP z>N1Bqu*hb0g}s{hTivqr0iU(*$quX6@U*pfgW=MY~jJoO2t6BcK9wS0hOYu1Vw$x zjBNyR9(IuCnM;drrD9@nCZ1RjzC7t5PNfQFM$|`kRIGTumF<$Gbn2*Hl9sgcF#LL= zOZFR*9I)}!h8M+Fwb94#TJ!nKjYXS3P3Yr3(Z9(sGFa3;OwcNBTGU2YF)wVa2??`_ zwDvK?NE`>0JDa?GS1FrF&n9o*UzSZm*7mznfqtl`>F8exIYT)#8HQfB4^8&5Stq5; zvv|}f#JkRTkYUJVbJY8JM zCyF*PmpDt*$nxdzl6D1|2Pjj8-BCe2tVVdc#3|)+vgFB7jK&Y5tRXcbjCc?`x`Q$! zDCv8n-n5hV2JDQ~XEu9;-*nj2|iZi52HvHE-K6 zjA0c>A``ue{h`DUYPMCsWFj31OQN6f9?8N#13%2dH-U4xrPgV!GOv0$Fy(%Jqt+>T z_>)>^$Wr-uph93%hTlYP*tR1Pe+DbG75EA0*Bkl<;FV>fKbH;ycn>|!R}Y-cH=4!w ztVAIiQ%J9bqYWh;0AVXFCo6Cp@CAwVn4wo>1V94f@5_qL^gv&@hV(u|9|qow`#ptS z_`ikSl|y=!fiGeI4e?-}(O;87L_woF!eJZ+(?}p@7~B93%B0^h@UOsK(6<}-9&pm= zx$yr7*!%oyg7d(w;GZz;%_sm%7cXI-7lOc*l|T{j@hrj_5S&AWw+sgn*jv9EpaS-2 zh7NItupT%si?12@W)|OJ;3ST~RleN8O|1}k(UJj!;1n=r9C%yZQ#rdk`#J)rIaK#r z&d&DW%cr_{sVc`5xTV1%x3A?h4VuYC7kl9pd{9njA0Xb&ciu l^AOy@aEN*E@Q%h}^Q|(X*ZD}JR=6Km=NZUX7TT3r{{qWf)CB+l diff --git a/src/vortex_software/vortex_test.hex b/src/vortex_software/vortex_test.hex index 5258d0c1..b35ab93b 100644 --- a/src/vortex_software/vortex_test.hex +++ b/src/vortex_software/vortex_test.hex @@ -1,5 +1,5 @@ :0200000480007A -:1000000037F1FF7FEF008006EF005018730000000B +:1000000037F1FF7FEF008006EF00D06F7300000034 :10001000938B0600130D0700130F010093030500D7 :1000200013051000635C75001301018013030500C4 :100030006B500300130515006FF0DFFE13010F0076 @@ -8,195 +8,303 @@ :10006000130343FB6B00030067800000130101FED4 :10007000232E1100232C810013040102232604FEE9 :100080006F0000030327C4FE9307404C3307F702B9 -:10009000B70700819387071FB307F7001385070091 -:1000A000EF00C0338327C4FE938717002326F4FE96 +:10009000B707008193870721B307F700138507008F +:1000A000EF00C0378327C4FE938717002326F4FE92 :1000B0000327C4FE93077000E3D6E7FC130000009B :1000C0008320C10103248101130101026780000024 :1000D000130101FD23261102232481022322A103FF :1000E0001304010313070D009307404C3307F70275 -:1000F000B70700819387071FB307F7001385070031 -:10010000EF00003F930705006380070213070D000F -:10011000B70700819387471EB307F7001307100046 -:100120002380E7007300000013070D009307404C85 -:100130003307F702B70700819387071FB307F7005C -:10014000130784FD9305070013850700EF00C031F6 -:10015000832704FE138107008327C4FD832584FDC4 -:10016000032644FE832684FE0327C4FE138507006E -:10017000EFF01FEA73000000130000008320C102AB -:1001800003248102032D4102130101036780000053 -:10019000130101FD2326110223248102130401030C -:1001A00093090100232604FE6F0040080327C4FEC4 -:1001B0009307404C3307F702B70700819387071F67 -:1001C000B307F70013850700EF008032930705009F -:1001D000639807040327C4FE9307404C3307F702D4 -:1001E000B70700819387071FB307F700130744FD84 -:1001F0009305070013850700EF0000278327C4FD40 -:1002000013810700832784FD832544FD032604FE14 -:10021000832644FE032784FE13850700EFF01FE4C6 -:100220008327C4FE938717002326F4FE0327C4FE0A -:1002300093076000E3DCE7F6138109001300000078 -:100240008320C1020324810213010103678000009F -:10025000130101FC232E1102232C8102130401043B -:100260002326A4FC2324B4FC2322C4FC2320D4FC96 -:1002700013090100232604FE232404FE6F00C00896 -:10028000B709FFFF33013101832784FE2328F4FCE3 -:10029000832784FC232AF4FC93070100232CF4FC1D -:1002A000832744FC232EF4FC832704FC2320F4FE44 -:1002B0008327C4FE2322F4FE0327C4FE9307404C89 -:1002C0003307F702B70700819387071FB307F700CB -:1002D000130704FD9305070013850700EF00401284 -:1002E0008327C4FE938717002326F4FE0327C4FE4A -:1002F0009307600063D4E700232604FE832784FE6F -:10030000938717002324F4FE032784FE8327C4FC6D -:10031000E368F7F613010900EFF09FE71300000010 -:100320008320C103032481031301010467800000BB -:10033000130101FD2326810213040103232EA4FCD3 -:10034000A30704FE6F00000593071000A307F4FE47 -:10035000232404FE6F0040038347F4FE3707008127 -:100360009306471E032784FE3387E60003470700F2 -:10037000B3F7E700B337F000A307F4FE832784FE4A -:10038000938717002324F4FE832784FE0327C4FDEC -:10039000E3E4E7FC8347F4FE93C7170093F7F70FF6 -:1003A000E39407FA130000000324C10213010103C0 -:1003B00067800000130101FF2326810023247101BF -:1003C0001304010193870B00138507000324C10068 -:1003D000832B810013010101678000009302050057 -:1003E000130300009303700023A0620023A26200A5 -:1003F00023A4620023A6720023A862006780000085 -:100400009302050003A382001303130023A46200D8 -:100410001383420183AE420093935E003303730063 -:1004200003AE05002320C30103AE45002322C30110 -:1004300003AE85002324C30103AEC5002326C301F8 -:1004400003AE05012328C30103AE4501232AC301DE -:10045000938E1E00130F20036394EE01930E000091 -:1004600023A2D201678000009302050003A382004B -:100470001303F3FF23A462001383420183AE02003F -:10048000930F2003138F0E00130F1F006314FF013F -:10049000130F000023A0E20193935E003303730067 -:1004A000032E030023A0C501032E430023A2C50190 -:1004B000032E830023A4C501032EC30023A6C50178 -:1004C000032E030123A8C501032E430123AAC5015E -:1004D000678000009302050003A38200130500005B -:1004E000130E200363146E001305150067800000CF -:1004F0009302050003A3820013050000130E000001 -:1005000063146E0013051500678000009302050058 -:1005100003A3C20083A3020133B563006780000018 -:10052000130141FF232011002322B1008345050060 -:1005300063880500EF00C001130515006FF01FFF71 -:1005400083200100832541001301C1006780000062 -:10055000B708010023A0B80067800000130101FD67 -:10056000232611022324810213040103232EA4FC59 -:100570000327C4FD9307F00063E4E702B707008197 -:100580000327C4FD1317270093874712B307F7000B -:1005900083A7070013850700EFF09FF86F0040075F -:1005A000930700022326F4FEA30504FE8327C4FE5E -:1005B0009387C7FF0327C4FDB357F70093F7F700EE -:1005C0002322F4FE832744FE63860700930710006E -:1005D000A305F4FE8347B4FE63820702B7070081D8 -:1005E000032744FE1317270093874712B307F7002A -:1005F00083A7070013850700EFF09FF28327C4FE4F -:100600009387C7FF2326F4FE8327C4FEE340F0FA56 -:100610008320C102032481021301010367800000CB -:10062000130101FD23261102232481021304010377 -:10063000232EA4FC232CB4FC232AC4FC2328D4FCA2 -:10064000B73700810327C4FD23AEE780B7370081A9 -:100650009387C781032784FD23A2E700B737008172 -:100660009387C781032744FD23A4E700B7370081A0 -:100670009387C781032704FD23A6E700832704FD92 -:1006800093D737002326F4FE832704FD93F77700E2 -:10069000638807008327C4FE938717002326F4FE90 -:1006A000B73700819387C7810327C4FE23A8E700DB -:1006B000B707008113850708EFF09FE60325C4FE06 -:1006C000EFF0DFE9B70700811385C708EFF05FE5BA -:1006D000032704FD9307700063F2E702B737008138 -:1006E0009386C781B70700801386C774930580007F -:1006F000032504FDEFF0DFB56F000002B73700817E -:100700009386C781B70700801386C774832504FDCD -:10071000032504FDEFF0DFB3032704FD930770000A -:1007200063F8E70013058000EFF09FC06F00C00082 -:10073000032504FDEFF0DFBF130000008320C1029A -:10074000032481021301010367800000130101FAF1 -:10075000232E1104232C8104130401062326A4FA5A -:100760002324B4FAEFF01FC5232CA4FC832784FDB7 -:1007700083A70700232AF4FC832784FD83A747006F -:100780002328F4FC832784FD83A787002326F4FC19 -:10079000832784FD83A707012326F4FE0327C4FED5 -:1007A0008327C4FAB307F7022324F4FE8327C4FE89 -:1007B000639A0700930710002326F4FE8327C4FAE8 -:1007C0002324F4FE832784FD83A7C7002324F4FC9D -:1007D000232204FE6F004012232004FE232E04FC7B -:1007E0006F008007032784FA832784FCB307F7028E -:1007F0000327C4FDB307F7002322F4FC032784FC7E -:100800008327C4FDB307F702032784FEB307F7006D -:100810002320F4FC832744FC93972700032744FDFF -:10082000B307F70003A70700832704FC939727006B -:10083000832604FDB387F60083A70700B307F702FA -:10084000032704FEB307F7002320F4FE8327C4FD2B -:1008500093871700232EF4FC0327C4FD832784FC11 -:10086000E362F7F8032784FA832784FC3307F7024F -:10087000832784FEB307F700232EF4FA032784FEB0 -:10088000832784FCB337F70093F7F70F232CF4FA90 -:10089000832784FB93B71700A30BF4FA834774FBF9 -:1008A000138F0700B7170080938F478E6B200F00C0 -:1008B0007B70FF018327C4FB939727000327C4FCA9 -:1008C000B307F700032704FE23A0E700832784FE75 -:1008D000938717002324F4FEB7170080138E878EAA -:1008E00067000E00130000006B300000832744FEF9 -:1008F000938717002322F4FE832744FE0327C4FEB8 -:10090000E3ECE7EC130000008320C105032481051C -:100910001301010667800000130101FE232E8100F0 -:1009200013040102232604FE6F008004B737008100 -:100930000327C4FE1317270093870783B307F70025 -:100940001307300023A0E700B74700810327C4FE48 -:100950001317270093870783B307F70013072000B7 -:1009600023A0E7008327C4FE938717002326F4FE05 -:100970000327C4FE9307F008E3DAE7FA1300000048 -:100980000324C1011301010267800000130101FE6D -:10099000232E1100232C810013040102EFF0DFF756 -:1009A0009306C000B757008113860783B7470081BD -:1009B00093850783B737008113850783EFF05FC600 -:1009C000B70700811385070DEFF09FB5B7070081CA -:1009D0001385C70EEFF0DFB4232604FE6F008005F9 -:1009E0000327C4FE9307C000B367F70263980700AC -:1009F000B70700811385870FEFF09FB2B7570081CB -:100A00000327C4FE1317270093870783B307F70054 -:100A100083A7070013850700EFF05FB4B7070081D5 -:100A20001385C70FEFF0DFAF8327C4FE938717004E -:100A30002326F4FE0327C4FE9307F008E3D2E7FA67 -:100A4000B707008113850710EFF09FAD93070000F3 -:100A5000138507008320C1010324810113010102D2 -:040A600067800000AB +:1000F000B707008193870721B307F700138507002F +:10010000EF000043930705006382070213070D0009 +:10011000B7070081131727009387071FB307F7005E +:100120001307100023A0E7007300000013070D0061 +:100130009307404C3307F702B707008193870721E5 +:10014000B307F700130784FD930507001385070025 +:10015000EF008035832704FE138107008327C4FD49 +:10016000832584FD032644FE832684FE0327C4FEE4 +:1001700013850700EFF0DFE97300000013000000B3 +:100180008320C10203248102032D410213010103D4 +:1001900067800000130101FD232611022324810240 +:1001A0001304010393090100232604FE6F00400895 +:1001B0000327C4FE9307404C3307F702B7070081BB +:1001C00093870721B307F70013850700EF00403638 +:1001D00093070500639807040327C4FE9307404C68 +:1001E0003307F702B707008193870721B307F700AA +:1001F000130744FD9305070013850700EF00C02A8D +:100200008327C4FD13810700832784FD832544FDD4 +:10021000032604FE832644FE032784FE138507007D +:10022000EFF0DFE38327C4FE938717002326F4FE55 +:100230000327C4FE93076000E3DCE7F6138109009F +:10024000130000008320C102032481021301010373 +:1002500067800000130101FC232E1102232C810270 +:10026000130401042326A4FC2324B4FC2322C4FC8D +:100270002320D4FCEFF09FDF13090100232604FEA6 +:10028000232404FE6F00C008B709FFFF33013101CA +:10029000832784FE2328F4FC832784FC232AF4FC90 +:1002A00093070100232CF4FC832744FC232EF4FC49 +:1002B000832704FC2320F4FE8327C4FE2322F4FEBC +:1002C0000327C4FE9307404C3307F702B7070081AA +:1002D00093870721B307F700130704FD9305070071 +:1002E00013850700EF00C0158327C4FE938717000E +:1002F0002326F4FE0327C4FE9307600063D4E700BF +:10030000232604FE832784FE938717002324F4FE0C +:10031000032784FE8327C4FCE368F7F61301090072 +:10032000EFF05FE7130000008320C1030324810383 +:100330001301010467800000130101FD23268102DF +:1003400013040103232EA4FC232604FE6F004005A2 +:10035000232604FE232404FE6F00C003B707008198 +:10036000032784FE131727009387071FB307F7009F +:1003700003A70700930710006318F7008327C4FE44 +:10038000938717002326F4FE832784FE93871700A4 +:100390002324F4FE032784FE93077000E3D0E7FCD8 +:1003A0000327C4FE8327C4FDE314F7FA232204FEC7 +:1003B0006F008002B7070081032744FE1317270050 +:1003C0009387071FB307F70023A00700832744FE86 +:1003D000938717002322F4FE832744FE0327C4FDDE +:1003E000E3EAE7FC130000000324C1021301010348 +:1003F00067800000130101FF23268100232471017F +:100400001304010193870B00138507000324C10027 +:10041000832B810013010101678000009302050016 +:10042000130300009303700023A0620023A2620064 +:1004300023A4620023A6720023A862006780000044 +:100440009302050003A382001303130023A4620098 +:100450001383420183AE420093935E003303730023 +:1004600003AE05002320C30103AE45002322C301D0 +:1004700003AE85002324C30103AEC5002326C301B8 +:1004800003AE05012328C30103AE4501232AC3019E +:10049000938E1E00130F20036394EE01930E000051 +:1004A00023A2D201678000009302050003A382000B +:1004B0001303F3FF23A462001383420183AE0200FF +:1004C000930F2003138F0E00130F1F006314FF01FF +:1004D000130F000023A0E20193935E003303730027 +:1004E000032E030023A0C501032E430023A2C50150 +:1004F000032E830023A4C501032EC30023A6C50138 +:10050000032E030123A8C501032E430123AAC5011D +:10051000678000009302050003A38200130500001A +:10052000130E200363146E0013051500678000008E +:100530009302050003A3820013050000130E0000C0 +:1005400063146E0013051500678000009302050018 +:1005500003A3C20083A3020133B5630067800000D8 +:10056000130141FF232011002322B1008345050020 +:1005700063880500EF00C001130515006FF01FFF31 +:1005800083200100832541001301C1006780000022 +:10059000B708010023A0B80067800000130101FD27 +:1005A000232611022324810213040103232EA4FC19 +:1005B0000327C4FD9307F00063E4E702B707008157 +:1005C0000327C4FD1317270093870713B307F7000A +:1005D00083A7070013850700EFF09FF86F0040071F +:1005E000930700022326F4FEA30504FE8327C4FE1E +:1005F0009387C7FF0327C4FDB357F70093F7F700AE +:100600002322F4FE832744FE63860700930710002D +:10061000A305F4FE8347B4FE63820702B707008197 +:10062000032744FE1317270093870713B307F70028 +:1006300083A7070013850700EFF09FF28327C4FE0E +:100640009387C7FF2326F4FE8327C4FEE340F0FA16 +:100650008320C1020324810213010103678000008B +:10066000130101FE232E1100232C8100130401022B +:100670002326A4FE2324B4FE0325C4FEEFF05FEE80 +:10068000032584FEEFF09FF1B7070081138507046F +:10069000EFF01FED130000008320C101032481014E +:1006A0001301010267800000130101FD23261102DE +:1006B0002324810213040103232EA4FC232CB4FC65 +:1006C000232AC4FC2328D4FCB73700810327C4FDA8 +:1006D00023A8E784B737008193870785032784FD24 +:1006E00023A2E700B737008193870785032744FDDE +:1006F00023A4E700B737008193870785032704FD0C +:1007000023A6E700832704FD93D737002326F4FEB2 +:10071000832704FD93F77700638807008327C4FECF +:10072000938717002326F4FEB73700819387078548 +:100730000327C4FE23A8E700032704FD93077000E6 +:1007400063F2E702B737008193860785B707008019 +:100750001386477B93058000032504FDEFF09FAFD0 +:100760006F000002B737008193860785B7070080C6 +:100770001386477B832504FD032504FDEFF09FAD21 +:10078000032704FD9307700063F8E700130560007A +:10079000EFF09FBA6F00C000032504FDEFF0DFB952 +:1007A000130000008320C10203248102130101030E +:1007B00067800000130101FA232E1104232C810409 +:1007C000130401062326A4FA2324B4FAEFF09FC2EF +:1007D000232CA4FC832784FD83A70700232AF4FC91 +:1007E000832784FD83A747002328F4FC832784FD07 +:1007F00083A787002326F4FC832784FD83A70701B2 +:100800002326F4FE0327C4FE8327C4FAB307F702A6 +:100810002324F4FE8327C4FE639A07009307100085 +:100820002326F4FE8327C4FA2324F4FE832784FDC1 +:1008300083A7C7002324F4FC232204FE6F00401288 +:10084000232004FE232E04FC6F008007032784FA74 +:10085000832784FCB307F7020327C4FDB307F7001F +:100860002322F4FC032784FC8327C4FDB307F7028B +:10087000032784FEB307F7002320F4FC832744FCFE +:1008800093972700032744FDB307F70003A707004A +:10089000832704FC93972700832604FDB387F60083 +:1008A00083A70700B307F702032704FEB307F70087 +:1008B0002320F4FE8327C4FD93871700232EF4FC26 +:1008C0000327C4FD832784FCE362F7F8032784FA37 +:1008D000832784FC3307F702832784FEB307F700DE +:1008E000232EF4FA032784FE832784FCB337F70012 +:1008F00093F7F70F232CF4FA832784FB93B71700A1 +:10090000A30BF4FA834774FB138F0700B71700801B +:10091000938FC7946B200F007B70FF018327C4FB6C +:10092000939727000327C4FCB307F700032704FEAF +:1009300023A0E700832784FE938717002324F4FE77 +:10094000B7170080138E079567000E001300000094 +:100950006B300000832744FE938717002322F4FEA8 +:10096000832744FE0327C4FEE3ECE7EC13000000FA +:100970008320C1050324810513010106678000005F +:10098000130101FC232E1102232C81021304010404 +:10099000232EA4FC232CB4FC232AC4FC2328D4FC3F +:1009A0002326E4FCB73700810327C4FD23A2E78692 +:1009B000B737008193874786032784FD23A2E7008A +:1009C000B737008193874786032744FD23A4E700B8 +:1009D000B7370081938747860327C4FC23A6E70027 +:1009E000B737008193874786032704FD23A8E700D4 +:1009F0008327C4FC93D737002326F4FE8327C4FC47 +:100A000093F77700638807008327C4FE9387170056 +:100A10002326F4FEB7370081938747860327C4FE59 +:100A200023AAE7000327C4FC9307700063F2E702E0 +:100A3000B737008193864786B7170080138607AAC9 +:100A400093058000032504FDEFF0DF806F000002B6 +:100A5000B737008193864786B7170080138607AAA9 +:100A60008325C4FC032504FDEFF0CFFE032704FD1E +:100A70009307700063F8E70013057000EFF0DF8B59 +:100A80006F00C000032504FDEFF01F8B1300000072 +:100A90008320C10303248103130101046780000044 +:100AA000130101FB232611042324810413040105EF +:100AB000232EA4FA232CB4FAEFF0DF932320A4FE14 +:100AC000832704FE83A70700232EF4FC832704FE5C +:100AD00083A74700232CF4FC832704FE83A7870009 +:100AE000232AF4FC832704FE83A747012326F4FE70 +:100AF0000327C4FE8327C4FBB307F7022324F4FEB5 +:100B00008327C4FE639A0700930710002326F4FE90 +:100B10008327C4FB2324F4FE832704FE83A7C70096 +:100B20002328F4FC232204FE6F00000C032784FB1F +:100B3000832704FD3307F702832784FEB307F700FA +:100B40002326F4FC032784FE832704FDB337F70034 +:100B500093F7F70F2324F4FC832784FC93B7170043 +:100B6000A303F4FC834774FC138F0700B7170080BE +:100B7000938F47BD6B200F007B70FF018327C4FC60 +:100B8000939727000327C4FDB307F70083A6070048 +:100B90008327C4FC93972700032784FDB307F7003E +:100BA00003A707008327C4FC93972700032644FD6F +:100BB000B307F6003387E60023A0E700832784FE0F +:100BC000938717002324F4FEB7170080138E87BD88 +:100BD00067000E00130000006B300000832744FE06 +:100BE000938717002322F4FE832744FE0327C4FEC5 +:100BF000E3EEE7F2130000008320C1040324810424 +:100C00001301010567800000130101FC232E11026E +:100C1000232C810213040104232EA4FC232CB4FCF6 +:100C2000232AC4FC2328D4FC2326E4FCB737008104 +:100C30000327C4FD23A2E786B73700819387478641 +:100C4000032784FD23A2E700B737008193874786F7 +:100C5000032744FD23A4E700B73700819387478625 +:100C60000327C4FC23A6E700B73700819387478694 +:100C7000032704FD23A8E7008327C4FC93D737008C +:100C80002326F4FE8327C4FC93F7770063880700CC +:100C90008327C4FE938717002326F4FEB73700810D +:100CA000938747860327C4FE23AAE7000327C4FCD3 +:100CB0009307700063F2E702B73700819386478697 +:100CC000B7170080138687D293058000032504FDA3 +:100CD000EFF04FD86F000002B73700819386478648 +:100CE000B7170080138687D28325C4FC032504FD33 +:100CF000EFF04FD6032704FD9307700063F8E70079 +:100D000013057000EFF04FE36F00C000032504FDF2 +:100D1000EFF08FE2130000008320C103032481035E +:100D20001301010467800000130101FB2326110455 +:100D30002324810413040105232EA4FA232CB4FADE +:100D4000EFF04FEB2320A4FE832704FE83A70700C8 +:100D5000232EF4FC832704FE83A74700232CF4FCF6 +:100D6000832704FE83A78700232AF4FC832704FE3D +:100D700083A747012326F4FE0327C4FE8327C4FB71 +:100D8000B307F7022324F4FE8327C4FE639A070007 +:100D9000930710002326F4FE8327C4FB2324F4FECC +:100DA000832704FE83A7C7002328F4FC232204FE24 +:100DB0006F00000C032784FB832704FD3307F70231 +:100DC000832784FEB307F7002326F4FC032784FE61 +:100DD000832704FDB337F70093F7F70F2324F4FCC0 +:100DE000832784FC93B71700A303F4FC834774FCA8 +:100DF000138F0700B7170080938FC7E56B200F0094 +:100E00007B70FF018327C4FC939727000327C4FD51 +:100E1000B307F70083A607008327C4FC9397270036 +:100E2000032784FDB307F70003A707008327C4FC4B +:100E300093972700032644FDB307F6003387E64067 +:100E400023A0E700832784FE938717002324F4FE62 +:100E5000B7170080138E07E667000E00130000002E +:100E60006B300000832744FE938717002322F4FE93 +:100E7000832744FE0327C4FEE3EEE7F213000000DD +:100E80008320C1040324810413010105678000004D +:100E9000130101FE232E810013040102232604FE08 +:100EA0006F008004B73700810327C4FE13172700A3 +:100EB0009387C787B307F7001307300023A0E70025 +:100EC000B74700810327C4FE131727009387C787FE +:100ED000B307F7001307200023A0E7008327C4FE11 +:100EE000938717002326F4FE0327C4FE9307F00F11 +:100EF000E3DAE7FA130000000324C1011301010241 +:100F000067800000130101FE232E1100232C8100B5 +:100F100013040102EFF0DFF793060001B7570081D9 +:100F20001386C787B74700819385C787B737008186 +:100F30001385C787EFF04FF7B70700811385470C7C +:100F4000EFF00FE2B70700811385070EEFF04FE1D6 +:100F5000232604FE6F0040058327C4FE93F7F700A5 +:100F600063980700B70700811385C70EEFF04FDFC6 +:100F7000B75700810327C4FE131727009387C7873D +:100F8000B307F70083A7070013850700EFF00FE111 +:100F9000B70700811385070FEFF08FDC8327C4FEAE +:100FA000938717002326F4FE0327C4FE9307F00F50 +:100FB000E3D4E7FAB70700811385470FEFF04FDA64 +:100FC0001307000193060001B75700811386C787F6 +:100FD000B74700819385C787B73700811385C787D7 +:100FE000EFF01F9AB70700811385470CEFF04FD73A +:100FF000B707008113858711EFF08FD6232404FEF5 +:101000006F004005832784FE93F7F700639807007D +:10101000B70700811385C70EEFF08FD4B757008153 +:10102000032784FE131727009387C787B307F700AA +:1010300083A7070013850700EFF04FD6B70700819D +:101040001385070FEFF0CFD1832784FE9387170016 +:101050002324F4FE032784FE9307F00FE3D4E7FA7A +:10106000B70700811385470FEFF08FCF13070001FB +:1010700093060001B75700811386C787B7470081E1 +:101080009385C787B73700811385C787EFF0DFB730 +:10109000B70700811385470CEFF08FCCB7070081AD +:1010A00013854712EFF0CFCB232204FE6F004005DB +:1010B000832744FE93F7F70063980700B707008182 +:1010C0001385C70EEFF0CFC9B7570081032744FE41 +:1010D000131727009387C787B307F70083A7070075 +:1010E00013850700EFF08FCBB70700811385070F3B +:1010F000EFF00FC7832744FE938717002322F4FEE7 +:10110000032744FE9307F00FE3D4E7FAB707008103 +:101110001385470FEFF0CFC4930700001385070036 +:101120008320C101032481011301010267800000B3 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A :10002000380000003900000061000000620000009C :10003000630000006400000065000000660000002E -:1000400030000000310000003200000033000000EA -:1000500034000000350000003600000037000000CA -:10006000380000003900000061000000620000005C -:1000700063000000640000006500000066000000EE -:100080006F66667365743A20000000000A00000085 -:10009000300000003100000032000000330000009A -:1000A000340000003500000036000000370000007A -:1000B000380000003900000061000000620000000C -:1000C000630000006400000065000000660000009E -:1000D0002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D50 -:1000E0002D2D2D2D2D2D2D2D2D0A000046494E4153 -:1000F0004C205A0A000000000A0000002000000006 -:100100000A2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D42 -:100110002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0F -:020120000A00D3 -:100124000000008104000081080000810C000081AF -:100134001000008114000081180000811C0000815F -:100144002000008124000081280000812C0000810F -:100154003000008134000081380000813C000081BF -:100164004000008144000081480000814C0000816F -:100174005000008154000081580000815C0000811F -:100184006000008164000081680000816C000081CF -:100194007000008174000081780000817C0000817F -:1001A4009000008194000081980000819C000081EF -:1001B400A0000081A4000081A8000081AC0000819F -:1001C400B0000081B4000081B8000081BC0000814F -:1001D400C0000081C4000081C8000081CC000081FF +:100040000A00000030000000310000003200000013 +:1000500033000000340000003500000036000000CE +:100060003700000038000000390000006100000087 +:1000700062000000630000006400000065000000F2 +:100080006600000030000000310000003200000077 +:10009000330000003400000035000000360000008E +:1000A0003700000038000000390000006100000047 +:1000B00062000000630000006400000065000000B2 +:1000C000660000002D2D2D2D2D2D2D2D2D2D2D2DAE +:1000D0002D2D2D2D2D2D2D2D2D2D2D2D2D0A0000CD +:1000E00046494E414C204D41540A00000A00000090 +:1000F000200000000A2D2D2D2D2D2D2D2D2D2D2DE7 +:100100002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1F +:100110002D2D2D2D0A00000046494E414C20414412 +:0F012000440A000046494E414C205375620A00C4 +:100130000000008104000081080000810C000081A3 +:100140001000008114000081180000811C00008153 +:100150002000008124000081280000812C00008103 +:100160003000008134000081380000813C000081B3 +:1001700044000081480000814C0000815000008153 +:1001800054000081580000815C0000816000008103 +:1001900064000081680000816C00008170000081B3 +:1001A00074000081780000817C0000818000008163 +:1001B00084000081880000818C0000819000008113 +:1001C00094000081980000819C000081A0000081C3 +:1001D000A4000081A8000081AC000081B000008173 +:1001E000B4000081B8000081BC000081C000008123 :040000058000000077 :00000001FF diff --git a/src/vortex_software/vx_include/vx_front.c b/src/vortex_software/vx_include/vx_front.c index 34e1d4a4..f6763922 100644 --- a/src/vortex_software/vx_include/vx_front.c +++ b/src/vortex_software/vx_include/vx_front.c @@ -3,15 +3,15 @@ // -------------------------- Matrix Multiplication -------------------------- -static mat_mult_arg_t args; -void _vx_matMult(unsigned, unsigned); +static mat_mult_arg_t mat_mult_args; +void _vx_mat_mult(unsigned, unsigned); void vx_sq_mat_mult(void * x, void * y, void * z, unsigned mat_dim) { - args.x = x; - args.y = y; - args.z = z; - args.mat_dim = mat_dim; + mat_mult_args.x = x; + mat_mult_args.y = y; + mat_mult_args.z = z; + mat_mult_args.mat_dim = mat_dim; unsigned off = (mat_dim/MAX_THREADS); @@ -21,24 +21,20 @@ void vx_sq_mat_mult(void * x, void * y, void * z, unsigned mat_dim) } - args.offset = off; + mat_mult_args.offset = off; - vx_print_str("offset: "); - vx_print_hex(off); - vx_print_str("\n"); - - if (mat_dim >= 8) + if (mat_dim >= MAX_THREADS) { - vx_spawnWarps(mat_dim, MAX_THREADS, _vx_matMult, (void *) (&args)); + vx_spawnWarps(mat_dim, MAX_THREADS, _vx_mat_mult, (void *) (&mat_mult_args)); } else { - vx_spawnWarps(mat_dim, mat_dim, _vx_matMult, (void *) (&args)); + vx_spawnWarps(mat_dim, mat_dim, _vx_mat_mult, (void *) (&mat_mult_args)); } - if (mat_dim > 7) + if (mat_dim > MAX_WARPS) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(MAX_WARPS - 1); } else { @@ -46,7 +42,7 @@ void vx_sq_mat_mult(void * x, void * y, void * z, unsigned mat_dim) } } -void _vx_matMult(unsigned tid, unsigned wid) +void _vx_mat_mult(unsigned tid, unsigned wid) { mat_mult_arg_t * args = (mat_mult_arg_t *) vx_get_arg_struct(); @@ -87,8 +83,172 @@ void _vx_matMult(unsigned tid, unsigned wid) __else __end_if } + return; +} + + +static mat_r_arg_t mat_r_args; +// -------------------------- Matrix Addition -------------------------- +void _vx_mat_add(unsigned, unsigned); +void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_cols) +{ + mat_r_args.x = x; + mat_r_args.y = y; + mat_r_args.z = z; + 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) + { + off += 1; + } + + + mat_r_args.offset = off; + + if (num_cols >= MAX_THREADS) + { + vx_spawnWarps(num_rows, MAX_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)) + { + vx_wait_for_warps(MAX_WARPS); + } + else + { + vx_wait_for_warps(num_rows); + } +} + +void _vx_mat_add(unsigned tid, unsigned wid) +{ + // vx_print_str("*"); + // for (int z = 0; z < ((wid * 1000) + 1000); z++); + + mat_r_arg_t * args = (mat_r_arg_t *) vx_get_arg_struct(); + + unsigned * x_ptr = args->x; + unsigned * y_ptr = args->y; + unsigned * z_ptr = args->z; + + unsigned off = args->offset; + + unsigned i_index = off * tid; + + if (off == 0) + { + off = 1; + i_index = tid; + } + + unsigned num_cols = args->num_cols; + + for (int iter = 0; iter < off; ++iter) + { + int final_i = (wid * num_cols) + i_index; + unsigned cond = i_index < num_cols; + __if(cond) + { + z_ptr[final_i] = x_ptr[final_i] + y_ptr[final_i]; + i_index++; + } + __else + __end_if + } return; -} \ No newline at end of file +} + + + +// -------------------------- Matrix Subtraction -------------------------- +void _vx_mat_sub(unsigned, unsigned); +void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_cols) +{ + mat_r_args.x = x; + mat_r_args.y = y; + mat_r_args.z = z; + 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) + { + off += 1; + } + + + mat_r_args.offset = off; + + if (num_cols >= MAX_THREADS) + { + vx_spawnWarps(num_rows, MAX_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)) + { + vx_wait_for_warps(MAX_WARPS); + } + else + { + vx_wait_for_warps(num_rows); + } +} + +void _vx_mat_sub(unsigned tid, unsigned wid) +{ + // vx_print_str("*"); + // for (int z = 0; z < ((wid * 1000) + 1000); z++); + + mat_r_arg_t * args = (mat_r_arg_t *) vx_get_arg_struct(); + + unsigned * x_ptr = args->x; + unsigned * y_ptr = args->y; + unsigned * z_ptr = args->z; + + unsigned off = args->offset; + + unsigned i_index = off * tid; + + if (off == 0) + { + off = 1; + i_index = tid; + } + + unsigned num_cols = args->num_cols; + + for (int iter = 0; iter < off; ++iter) + { + int final_i = (wid * num_cols) + i_index; + unsigned cond = i_index < num_cols; + __if(cond) + { + z_ptr[final_i] = x_ptr[final_i] - y_ptr[final_i]; + i_index++; + } + __else + __end_if + } + return; + +} + + + + + diff --git a/src/vortex_software/vx_include/vx_front.h b/src/vortex_software/vx_include/vx_front.h index 3f9f749b..6eba7b50 100644 --- a/src/vortex_software/vx_include/vx_front.h +++ b/src/vortex_software/vx_include/vx_front.h @@ -1,7 +1,7 @@ #include "../vx_os/vx_back/vx_back.h" #include "../vx_os/vx_io/vx_io.h" -#define MAX_WARPS 8 +#define MAX_WARPS 7 #define MAX_THREADS 8 @@ -18,3 +18,21 @@ typedef struct } mat_mult_arg_t; void vx_sq_mat_mult(void *, void *, void *, unsigned); + + + +typedef struct +{ + unsigned * x; + unsigned * y; + unsigned * z; + unsigned num_cols; + unsigned num_rows; + unsigned offset; + +} mat_r_arg_t; +// -------------------------- Matrix Addition -------------------------- +void vx_mat_add(void *, void *, void *, unsigned, unsigned); + +// -------------------------- Matrix Subtraction -------------------------- +void vx_mat_sub(void *, void *, void *, unsigned, unsigned); \ No newline at end of file diff --git a/src/vortex_software/vx_main.c b/src/vortex_software/vx_main.c index 931dc17c..619c7f0e 100644 --- a/src/vortex_software/vx_main.c +++ b/src/vortex_software/vx_main.c @@ -7,6 +7,9 @@ unsigned z[1024] = {0}; #define MAT_DIM 16 +#define NUM_COLS 16 +#define NUM_ROWS 16 + void initialize_mats() { for (int i = 0; i < (MAT_DIM * MAT_DIM); i++) @@ -21,10 +24,10 @@ int main() initialize_mats(); + // matrix multiplication vx_sq_mat_mult(x, y, z, MAT_DIM); - vx_print_str("-------------------------\n"); - vx_print_str("FINAL Z\n"); + vx_print_str("FINAL MAT\n"); for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) { @@ -32,7 +35,37 @@ int main() vx_print_hex(z[j]); vx_print_str(" "); } - vx_print_str("\n-------------------------------\n"); + + + + // matrix addition + vx_mat_add(x, y, z, NUM_ROWS, NUM_COLS); + vx_print_str("-------------------------\n"); + vx_print_str("FINAL ADD\n"); + + for (int j = 0; j < (NUM_COLS * NUM_ROWS); j++) + { + if ((j % NUM_COLS) == 0) vx_print_str("\n"); + vx_print_hex(z[j]); + vx_print_str(" "); + } + vx_print_str("\n-------------------------------\n"); + + + // matrix sub + vx_mat_sub(x, y, z, NUM_ROWS, NUM_COLS); + vx_print_str("-------------------------\n"); + vx_print_str("FINAL Sub\n"); + + for (int j = 0; j < (NUM_COLS * NUM_ROWS); j++) + { + if ((j % NUM_COLS) == 0) vx_print_str("\n"); + vx_print_hex(z[j]); + vx_print_str(" "); + } + vx_print_str("\n-------------------------------\n"); + + return 0; } \ No newline at end of file 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 b1ce59b6..46bf40e6 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.c +++ b/src/vortex_software/vx_os/vx_back/vx_back.c @@ -15,16 +15,21 @@ void vx_before_main() void vx_reschedule_warps() { + register unsigned curr_warp asm("s10"); + // vx_printf("Reschedule: ", curr_warp); if (queue_isEmpty(q+curr_warp)) { - done[curr_warp] = true; + // vx_printf("Done: ", curr_warp); + done[curr_warp] = 1; ECALL; } Job j; queue_dequeue(q+curr_warp,&j); + + // vx_printf("Reschedule -> ", j.wid); asm __volatile__("mv sp,%0"::"r" (j.base_sp):); vx_createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); @@ -45,6 +50,9 @@ void vx_schedule_warps() asm __volatile__("mv sp,%0"::"r" (j.base_sp):); vx_wspawn(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); } + else + { + } } asm __volatile__("mv sp, s3"); @@ -55,6 +63,7 @@ void vx_schedule_warps() void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) { + vx_before_main(); asm __volatile__("addi s2, sp, 0"); int warp = 0; for (unsigned i = 0; i < num_Warps; i++) @@ -84,15 +93,22 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) void vx_wait_for_warps(unsigned num_wait) { - bool temp = false; - while (!temp) + // vx_printf("wait for: ", num_wait); + unsigned num = 0; + while (num != num_wait) { - temp = true; - for (int i = 0; i < num_wait; i++) + num = 0; + for (int i = 0; i < 8; i++) { - temp &= done[i]; + if (done[i] == 1) + { + num += 1; + } } } + + // vx_printf("num found: ", num); + for (int i = 0; i < num_wait; 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 7233dab5..c84c3c9b 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.h +++ b/src/vortex_software/vx_os/vx_back/vx_back.h @@ -29,7 +29,7 @@ #define __end_if AFTER:\ JOIN; -static bool done[] = {false, false, false, false, false, false, false}; +static int done[] = {0, 0, 0, 0, 0, 0, 0}; static int main_sp[1]; diff --git a/src/vortex_software/vx_os/vx_io/vx_io.c b/src/vortex_software/vx_os/vx_io/vx_io.c index 81c732de..e86047b2 100644 --- a/src/vortex_software/vx_os/vx_io/vx_io.c +++ b/src/vortex_software/vx_os/vx_io/vx_io.c @@ -18,4 +18,12 @@ void vx_print_hex(unsigned f) if (start) vx_print_str(hextoa[temp]); sf -= 4; } while(sf > 0); +} + + +void vx_printf(char * c, unsigned f) +{ + vx_print_str(c); + vx_print_hex(f); + vx_print_str("\n"); } \ No newline at end of file