diff --git a/TODO b/TODO index d99c2247..3ca24e06 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,5 @@ -* Automatic warp detection? +* csri bug? * Start on the Verilog Pipeline (Research loading into mem) \ No newline at end of file diff --git a/src/instruction.cpp b/src/instruction.cpp index ebb79b62..e521a79b 100644 --- a/src/instruction.cpp +++ b/src/instruction.cpp @@ -581,23 +581,27 @@ void Instruction::executeOn(Warp &c) { switch (func3) { case 1: + // printf("Case 1\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; } - c.csr[immsrc & 0x00000FFF] = temp; break; case 2: + // printf("Case 2\n"); if (rdest != 0) { + // printf("Reading from CSR: %d = %d\n", (immsrc & 0x00000FFF), c.csr[immsrc & 0x00000FFF]); reg[rdest] = c.csr[immsrc & 0x00000FFF]; } - c.csr[immsrc & 0x00000FFF] = temp | c.csr[immsrc & 0x00000FFF]; + // printf("Writing to CSR --> %d = %d\n", immsrc, (temp | c.csr[immsrc & 0x00000FFF])); + c.csr[immsrc & 0x00000FFF] = temp | c.csr[immsrc & 0x00000FFF]; break; case 3: + // printf("Case 3\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; @@ -606,6 +610,7 @@ void Instruction::executeOn(Warp &c) { break; case 5: + // printf("Case 5\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; @@ -614,6 +619,7 @@ void Instruction::executeOn(Warp &c) { break; case 6: + // printf("Case 6\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; @@ -622,6 +628,7 @@ void Instruction::executeOn(Warp &c) { break; case 7: + // printf("Case 7\n"); if (rdest != 0) { reg[rdest] = c.csr[immsrc & 0x00000FFF]; diff --git a/src/vortex_software/vortex_test.dump b/src/vortex_software/vortex_test.dump index b8a17d1d..70acafbe 100644 --- a/src/vortex_software/vortex_test.dump +++ b/src/vortex_software/vortex_test.dump @@ -5,1256 +5,1330 @@ vortex_test.elf: file format elf32-littleriscv Disassembly of section .text: 80000000 <_start>: -80000000: 7ffff137 lui sp,0x7ffff -80000004: 188000ef jal ra,8000018c -80000008: 0c4010ef jal ra,800010cc
-8000000c: 00000073 ecall +80000000: 00400513 li a0,4 +80000004: 02051073 csrw 0x20,a0 +80000008: 00800513 li a0,8 +8000000c: 02151073 csrw 0x21,a0 +80000010: f1401073 csrw mhartid,zero +80000014: 30101073 csrw misa,zero +80000018: 7ffff137 lui sp,0x7ffff +8000001c: 198000ef jal ra,800001b4 +80000020: 11c010ef jal ra,8000113c
+80000024: 00000073 ecall -80000010 : -80000010: 00068b93 mv s7,a3 -80000014: 00070d13 mv s10,a4 -80000018: 00010f13 mv t5,sp -8000001c: 00050393 mv t2,a0 +80000028 : +80000028: 00068b93 mv s7,a3 +8000002c: 00070d13 mv s10,a4 +80000030: 00010f13 mv t5,sp +80000034: 00050393 mv t2,a0 -80000020 : -80000020: 00100513 li a0,1 +80000038 : +80000038: 00100513 li a0,1 -80000024 : -80000024: 00755c63 bge a0,t2,8000003c +8000003c : +8000003c: 00755c63 bge a0,t2,80000054 -80000028 : -80000028: 80010113 addi sp,sp,-2048 # 7fffe800 -8000002c: 00050313 mv t1,a0 -80000030: 0003506b 0x3506b +80000040 : +80000040: 80010113 addi sp,sp,-2048 # 7fffe800 +80000044: 00050313 mv t1,a0 +80000048: 0003506b 0x3506b -80000034 : -80000034: 00150513 addi a0,a0,1 -80000038: fedff06f j 80000024 +8000004c : +8000004c: 00150513 addi a0,a0,1 +80000050: fedff06f j 8000003c -8000003c : -8000003c: 000f0113 mv sp,t5 -80000040: 00000513 li a0,0 -80000044: 00060f93 mv t6,a2 -80000048: 00038d93 mv s11,t2 -8000004c: 01bfe0eb 0x1bfe0eb -80000050: 00000517 auipc a0,0x0 -80000054: 1a050513 addi a0,a0,416 # 800001f0 -80000058: 0005406b 0x5406b +80000054 : +80000054: 000f0113 mv sp,t5 +80000058: 00000513 li a0,0 +8000005c: 00060f93 mv t6,a2 +80000060: 00038d93 mv s11,t2 +80000064: 01bfe0eb 0x1bfe0eb +80000068: 00000517 auipc a0,0x0 +8000006c: 1b050513 addi a0,a0,432 # 80000218 +80000070: 0005406b 0x5406b -8000005c : -8000005c: 00000317 auipc t1,0x0 -80000060: fb430313 addi t1,t1,-76 # 80000010 -80000064: 0003006b 0x3006b -80000068: 00008067 ret +80000074 : +80000074: 00000317 auipc t1,0x0 +80000078: fb430313 addi t1,t1,-76 # 80000028 +8000007c: 0003006b 0x3006b +80000080: 00008067 ret -8000006c : -8000006c: 01000217 auipc tp,0x1000 -80000070: 25820213 addi tp,tp,600 # 810002c4 -80000074: 00022023 sw zero,0(tp) # 0 -80000078: 00122223 sw ra,4(tp) # 4 -8000007c: 00222423 sw sp,8(tp) # 8 -80000080: 00322623 sw gp,12(tp) # c -80000084: 00422823 sw tp,16(tp) # 10 -80000088: 00522a23 sw t0,20(tp) # 14 -8000008c: 00622c23 sw t1,24(tp) # 18 -80000090: 00722e23 sw t2,28(tp) # 1c -80000094: 02822023 sw s0,32(tp) # 20 -80000098: 02922223 sw s1,36(tp) # 24 -8000009c: 02a22423 sw a0,40(tp) # 28 -800000a0: 02b22623 sw a1,44(tp) # 2c -800000a4: 02c22823 sw a2,48(tp) # 30 -800000a8: 02d22a23 sw a3,52(tp) # 34 -800000ac: 02e22c23 sw a4,56(tp) # 38 -800000b0: 02f22e23 sw a5,60(tp) # 3c -800000b4: 05022023 sw a6,64(tp) # 40 -800000b8: 05122223 sw a7,68(tp) # 44 -800000bc: 05222423 sw s2,72(tp) # 48 -800000c0: 05322623 sw s3,76(tp) # 4c -800000c4: 05422823 sw s4,80(tp) # 50 -800000c8: 05522a23 sw s5,84(tp) # 54 -800000cc: 05622c23 sw s6,88(tp) # 58 -800000d0: 05722e23 sw s7,92(tp) # 5c -800000d4: 07822023 sw s8,96(tp) # 60 -800000d8: 07922223 sw s9,100(tp) # 64 -800000dc: 07a22423 sw s10,104(tp) # 68 -800000e0: 07b22623 sw s11,108(tp) # 6c -800000e4: 07c22823 sw t3,112(tp) # 70 -800000e8: 07d22a23 sw t4,116(tp) # 74 -800000ec: 07e22c23 sw t5,120(tp) # 78 -800000f0: 07f22e23 sw t6,124(tp) # 7c -800000f4: 00100213 li tp,1 -800000f8: 00008067 ret +80000084 : +80000084: 01000217 auipc tp,0x1000 +80000088: 23020213 addi tp,tp,560 # 810002b4 +8000008c: 00022023 sw zero,0(tp) # 0 +80000090: 00122223 sw ra,4(tp) # 4 +80000094: 00222423 sw sp,8(tp) # 8 +80000098: 00322623 sw gp,12(tp) # c +8000009c: 00422823 sw tp,16(tp) # 10 +800000a0: 00522a23 sw t0,20(tp) # 14 +800000a4: 00622c23 sw t1,24(tp) # 18 +800000a8: 00722e23 sw t2,28(tp) # 1c +800000ac: 02822023 sw s0,32(tp) # 20 +800000b0: 02922223 sw s1,36(tp) # 24 +800000b4: 02a22423 sw a0,40(tp) # 28 +800000b8: 02b22623 sw a1,44(tp) # 2c +800000bc: 02c22823 sw a2,48(tp) # 30 +800000c0: 02d22a23 sw a3,52(tp) # 34 +800000c4: 02e22c23 sw a4,56(tp) # 38 +800000c8: 02f22e23 sw a5,60(tp) # 3c +800000cc: 05022023 sw a6,64(tp) # 40 +800000d0: 05122223 sw a7,68(tp) # 44 +800000d4: 05222423 sw s2,72(tp) # 48 +800000d8: 05322623 sw s3,76(tp) # 4c +800000dc: 05422823 sw s4,80(tp) # 50 +800000e0: 05522a23 sw s5,84(tp) # 54 +800000e4: 05622c23 sw s6,88(tp) # 58 +800000e8: 05722e23 sw s7,92(tp) # 5c +800000ec: 07822023 sw s8,96(tp) # 60 +800000f0: 07922223 sw s9,100(tp) # 64 +800000f4: 07a22423 sw s10,104(tp) # 68 +800000f8: 07b22623 sw s11,108(tp) # 6c +800000fc: 07c22823 sw t3,112(tp) # 70 +80000100: 07d22a23 sw t4,116(tp) # 74 +80000104: 07e22c23 sw t5,120(tp) # 78 +80000108: 07f22e23 sw t6,124(tp) # 7c +8000010c: 00100213 li tp,1 +80000110: 00008067 ret -800000fc : -800000fc: 01000217 auipc tp,0x1000 -80000100: 1c820213 addi tp,tp,456 # 810002c4 -80000104: 00022003 lw zero,0(tp) # 0 -80000108: 00422083 lw ra,4(tp) # 4 -8000010c: 00822103 lw sp,8(tp) # 8 -80000110: 00c22183 lw gp,12(tp) # c -80000114: 01022203 lw tp,16(tp) # 10 -80000118: 01422283 lw t0,20(tp) # 14 -8000011c: 01822303 lw t1,24(tp) # 18 -80000120: 01c22383 lw t2,28(tp) # 1c -80000124: 02022403 lw s0,32(tp) # 20 -80000128: 02422483 lw s1,36(tp) # 24 -8000012c: 02822503 lw a0,40(tp) # 28 -80000130: 02c22583 lw a1,44(tp) # 2c -80000134: 03022603 lw a2,48(tp) # 30 -80000138: 03422683 lw a3,52(tp) # 34 -8000013c: 03822703 lw a4,56(tp) # 38 -80000140: 03c22783 lw a5,60(tp) # 3c -80000144: 04022803 lw a6,64(tp) # 40 -80000148: 04422883 lw a7,68(tp) # 44 -8000014c: 04822903 lw s2,72(tp) # 48 -80000150: 04c22983 lw s3,76(tp) # 4c -80000154: 05022a03 lw s4,80(tp) # 50 -80000158: 05422a83 lw s5,84(tp) # 54 -8000015c: 05822b03 lw s6,88(tp) # 58 -80000160: 05c22b83 lw s7,92(tp) # 5c -80000164: 06022c03 lw s8,96(tp) # 60 -80000168: 06422c83 lw s9,100(tp) # 64 -8000016c: 06822d03 lw s10,104(tp) # 68 -80000170: 06c22d83 lw s11,108(tp) # 6c -80000174: 07022e03 lw t3,112(tp) # 70 -80000178: 07422e83 lw t4,116(tp) # 74 -8000017c: 07822f03 lw t5,120(tp) # 78 -80000180: 07c22f83 lw t6,124(tp) # 7c -80000184: 00000213 li tp,0 -80000188: 00008067 ret +80000114 : +80000114: 01000217 auipc tp,0x1000 +80000118: 1a020213 addi tp,tp,416 # 810002b4 +8000011c: 00022003 lw zero,0(tp) # 0 +80000120: 00422083 lw ra,4(tp) # 4 +80000124: 00822103 lw sp,8(tp) # 8 +80000128: 00c22183 lw gp,12(tp) # c +8000012c: 01022203 lw tp,16(tp) # 10 +80000130: 01422283 lw t0,20(tp) # 14 +80000134: 01822303 lw t1,24(tp) # 18 +80000138: 01c22383 lw t2,28(tp) # 1c +8000013c: 02022403 lw s0,32(tp) # 20 +80000140: 02422483 lw s1,36(tp) # 24 +80000144: 02822503 lw a0,40(tp) # 28 +80000148: 02c22583 lw a1,44(tp) # 2c +8000014c: 03022603 lw a2,48(tp) # 30 +80000150: 03422683 lw a3,52(tp) # 34 +80000154: 03822703 lw a4,56(tp) # 38 +80000158: 03c22783 lw a5,60(tp) # 3c +8000015c: 04022803 lw a6,64(tp) # 40 +80000160: 04422883 lw a7,68(tp) # 44 +80000164: 04822903 lw s2,72(tp) # 48 +80000168: 04c22983 lw s3,76(tp) # 4c +8000016c: 05022a03 lw s4,80(tp) # 50 +80000170: 05422a83 lw s5,84(tp) # 54 +80000174: 05822b03 lw s6,88(tp) # 58 +80000178: 05c22b83 lw s7,92(tp) # 5c +8000017c: 06022c03 lw s8,96(tp) # 60 +80000180: 06422c83 lw s9,100(tp) # 64 +80000184: 06822d03 lw s10,104(tp) # 68 +80000188: 06c22d83 lw s11,108(tp) # 6c +8000018c: 07022e03 lw t3,112(tp) # 70 +80000190: 07422e83 lw t4,116(tp) # 74 +80000194: 07822f03 lw t5,120(tp) # 78 +80000198: 07c22f83 lw t6,124(tp) # 7c +8000019c: 00000213 li tp,0 +800001a0: 00008067 ret -8000018c : -8000018c: fe010113 addi sp,sp,-32 -80000190: 00112e23 sw ra,28(sp) -80000194: 00812c23 sw s0,24(sp) -80000198: 02010413 addi s0,sp,32 -8000019c: fe042623 sw zero,-20(s0) -800001a0: 0300006f j 800001d0 -800001a4: fec42703 lw a4,-20(s0) -800001a8: 4c400793 li a5,1220 -800001ac: 02f70733 mul a4,a4,a5 -800001b0: 810007b7 lui a5,0x81000 -800001b4: 34478793 addi a5,a5,836 # 81000344 -800001b8: 00f707b3 add a5,a4,a5 -800001bc: 00078513 mv a0,a5 -800001c0: 424000ef jal ra,800005e4 -800001c4: fec42783 lw a5,-20(s0) -800001c8: 00178793 addi a5,a5,1 -800001cc: fef42623 sw a5,-20(s0) -800001d0: fec42703 lw a4,-20(s0) -800001d4: 00700793 li a5,7 -800001d8: fce7d6e3 bge a5,a4,800001a4 -800001dc: 00000013 nop -800001e0: 01c12083 lw ra,28(sp) -800001e4: 01812403 lw s0,24(sp) -800001e8: 02010113 addi sp,sp,32 -800001ec: 00008067 ret +800001a4 : +800001a4: 02002573 csrr a0,0x20 +800001a8: 00008067 ret -800001f0 : -800001f0: fd010113 addi sp,sp,-48 -800001f4: 02112623 sw ra,44(sp) -800001f8: 02812423 sw s0,40(sp) -800001fc: 03a12223 sw s10,36(sp) -80000200: 03010413 addi s0,sp,48 -80000204: 000d0713 mv a4,s10 -80000208: 4c400793 li a5,1220 -8000020c: 02f70733 mul a4,a4,a5 -80000210: 810007b7 lui a5,0x81000 -80000214: 34478793 addi a5,a5,836 # 81000344 -80000218: 00f707b3 add a5,a4,a5 -8000021c: 00078513 mv a0,a5 -80000220: 4d8000ef jal ra,800006f8 -80000224: 00050793 mv a5,a0 -80000228: 04078463 beqz a5,80000270 -8000022c: 000d0793 mv a5,s10 -80000230: 00078593 mv a1,a5 -80000234: 810007b7 lui a5,0x81000 -80000238: 04078513 addi a0,a5,64 # 81000040 -8000023c: 5ec000ef jal ra,80000828 -80000240: 000d0713 mv a4,s10 -80000244: 810007b7 lui a5,0x81000 -80000248: 00271713 slli a4,a4,0x2 -8000024c: 2a478793 addi a5,a5,676 # 810002a4 -80000250: 00f707b3 add a5,a4,a5 -80000254: 00100713 li a4,1 -80000258: 00e7a023 sw a4,0(a5) -8000025c: 000d0793 mv a5,s10 -80000260: 00079663 bnez a5,8000026c -80000264: e99ff0ef jal ra,800000fc -80000268: 0580006f j 800002c0 -8000026c: 00000073 ecall -80000270: 000d0713 mv a4,s10 -80000274: 4c400793 li a5,1220 -80000278: 02f70733 mul a4,a4,a5 -8000027c: 810007b7 lui a5,0x81000 -80000280: 34478793 addi a5,a5,836 # 81000344 -80000284: 00f707b3 add a5,a4,a5 -80000288: fd840713 addi a4,s0,-40 -8000028c: 00070593 mv a1,a4 -80000290: 00078513 mv a0,a5 -80000294: 3dc000ef jal ra,80000670 -80000298: fe042783 lw a5,-32(s0) -8000029c: 00078113 mv sp,a5 -800002a0: fdc42783 lw a5,-36(s0) -800002a4: fd842583 lw a1,-40(s0) -800002a8: fe442603 lw a2,-28(s0) -800002ac: fe842683 lw a3,-24(s0) -800002b0: fec42703 lw a4,-20(s0) -800002b4: 00078513 mv a0,a5 -800002b8: d59ff0ef jal ra,80000010 -800002bc: 00000073 ecall -800002c0: 02c12083 lw ra,44(sp) -800002c4: 02812403 lw s0,40(sp) -800002c8: 02412d03 lw s10,36(sp) -800002cc: 03010113 addi sp,sp,48 -800002d0: 00008067 ret +800001ac : +800001ac: 02102573 csrr a0,0x21 +800001b0: 00008067 ret -800002d4 : -800002d4: fb010113 addi sp,sp,-80 -800002d8: 04112623 sw ra,76(sp) -800002dc: 04812423 sw s0,72(sp) -800002e0: 05010413 addi s0,sp,80 -800002e4: 00010993 mv s3,sp -800002e8: 00100793 li a5,1 -800002ec: fef42623 sw a5,-20(s0) -800002f0: 0840006f j 80000374 -800002f4: fec42703 lw a4,-20(s0) -800002f8: 4c400793 li a5,1220 -800002fc: 02f70733 mul a4,a4,a5 -80000300: 810007b7 lui a5,0x81000 -80000304: 34478793 addi a5,a5,836 # 81000344 -80000308: 00f707b3 add a5,a4,a5 -8000030c: 00078513 mv a0,a5 -80000310: 3e8000ef jal ra,800006f8 -80000314: 00050793 mv a5,a0 -80000318: 04079863 bnez a5,80000368 -8000031c: fec42703 lw a4,-20(s0) -80000320: 4c400793 li a5,1220 -80000324: 02f70733 mul a4,a4,a5 -80000328: 810007b7 lui a5,0x81000 -8000032c: 34478793 addi a5,a5,836 # 81000344 -80000330: 00f707b3 add a5,a4,a5 -80000334: fd440713 addi a4,s0,-44 -80000338: 00070593 mv a1,a4 -8000033c: 00078513 mv a0,a5 -80000340: 330000ef jal ra,80000670 -80000344: fdc42783 lw a5,-36(s0) -80000348: 00078113 mv sp,a5 -8000034c: fd842783 lw a5,-40(s0) -80000350: fd442583 lw a1,-44(s0) -80000354: fe042603 lw a2,-32(s0) -80000358: fe442683 lw a3,-28(s0) -8000035c: fe842703 lw a4,-24(s0) -80000360: 00078513 mv a0,a5 -80000364: cf9ff0ef jal ra,8000005c -80000368: fec42783 lw a5,-20(s0) -8000036c: 00178793 addi a5,a5,1 -80000370: fef42623 sw a5,-20(s0) -80000374: fec42703 lw a4,-20(s0) -80000378: 00700793 li a5,7 -8000037c: f6e7dce3 bge a5,a4,800002f4 -80000380: 00098113 mv sp,s3 -80000384: ce9ff0ef jal ra,8000006c -80000388: 810007b7 lui a5,0x81000 -8000038c: 04878513 addi a0,a5,72 # 81000048 -80000390: 398000ef jal ra,80000728 -80000394: 00020793 mv a5,tp -80000398: 06078863 beqz a5,80000408 -8000039c: 810007b7 lui a5,0x81000 -800003a0: 34478513 addi a0,a5,836 # 81000344 -800003a4: 354000ef jal ra,800006f8 -800003a8: 00050793 mv a5,a0 -800003ac: 04079e63 bnez a5,80000408 -800003b0: 810007b7 lui a5,0x81000 -800003b4: 05878513 addi a0,a5,88 # 81000058 -800003b8: 370000ef jal ra,80000728 -800003bc: fbc40793 addi a5,s0,-68 -800003c0: 00078593 mv a1,a5 -800003c4: 810007b7 lui a5,0x81000 -800003c8: 34478513 addi a0,a5,836 # 81000344 -800003cc: 2a4000ef jal ra,80000670 -800003d0: fc042783 lw a5,-64(s0) -800003d4: 00078593 mv a1,a5 -800003d8: 810007b7 lui a5,0x81000 -800003dc: 07078513 addi a0,a5,112 # 81000070 -800003e0: 448000ef jal ra,80000828 -800003e4: fc442783 lw a5,-60(s0) -800003e8: 00078113 mv sp,a5 -800003ec: fc042783 lw a5,-64(s0) -800003f0: fbc42583 lw a1,-68(s0) -800003f4: fc842603 lw a2,-56(s0) -800003f8: fcc42683 lw a3,-52(s0) -800003fc: fd042703 lw a4,-48(s0) -80000400: 00078513 mv a0,a5 -80000404: c0dff0ef jal ra,80000010 -80000408: 00000013 nop -8000040c: 04c12083 lw ra,76(sp) -80000410: 04812403 lw s0,72(sp) -80000414: 05010113 addi sp,sp,80 -80000418: 00008067 ret +800001b4 : +800001b4: fe010113 addi sp,sp,-32 +800001b8: 00112e23 sw ra,28(sp) +800001bc: 00812c23 sw s0,24(sp) +800001c0: 02010413 addi s0,sp,32 +800001c4: fe042623 sw zero,-20(s0) +800001c8: 0300006f j 800001f8 +800001cc: fec42703 lw a4,-20(s0) +800001d0: 4c400793 li a5,1220 +800001d4: 02f70733 mul a4,a4,a5 +800001d8: 810007b7 lui a5,0x81000 +800001dc: 33478793 addi a5,a5,820 # 81000334 +800001e0: 00f707b3 add a5,a4,a5 +800001e4: 00078513 mv a0,a5 +800001e8: 414000ef jal ra,800005fc +800001ec: fec42783 lw a5,-20(s0) +800001f0: 00178793 addi a5,a5,1 +800001f4: fef42623 sw a5,-20(s0) +800001f8: fec42703 lw a4,-20(s0) +800001fc: 00700793 li a5,7 +80000200: fce7d6e3 bge a5,a4,800001cc +80000204: 00000013 nop +80000208: 01c12083 lw ra,28(sp) +8000020c: 01812403 lw s0,24(sp) +80000210: 02010113 addi sp,sp,32 +80000214: 00008067 ret -8000041c : -8000041c: fc010113 addi sp,sp,-64 -80000420: 02112e23 sw ra,60(sp) -80000424: 02812c23 sw s0,56(sp) -80000428: 04010413 addi s0,sp,64 -8000042c: fca42623 sw a0,-52(s0) -80000430: fcb42423 sw a1,-56(s0) -80000434: fcc42223 sw a2,-60(s0) -80000438: fcd42023 sw a3,-64(s0) -8000043c: d51ff0ef jal ra,8000018c -80000440: 00010913 mv s2,sp -80000444: fe042623 sw zero,-20(s0) -80000448: fe042423 sw zero,-24(s0) -8000044c: 08c0006f j 800004d8 -80000450: ffff09b7 lui s3,0xffff0 -80000454: 01310133 add sp,sp,s3 -80000458: fe842783 lw a5,-24(s0) -8000045c: fcf42823 sw a5,-48(s0) -80000460: fc842783 lw a5,-56(s0) -80000464: fcf42a23 sw a5,-44(s0) -80000468: 00010793 mv a5,sp -8000046c: fcf42c23 sw a5,-40(s0) -80000470: fc442783 lw a5,-60(s0) -80000474: fcf42e23 sw a5,-36(s0) -80000478: fc042783 lw a5,-64(s0) -8000047c: fef42023 sw a5,-32(s0) -80000480: fec42783 lw a5,-20(s0) -80000484: fef42223 sw a5,-28(s0) -80000488: fec42703 lw a4,-20(s0) -8000048c: 4c400793 li a5,1220 -80000490: 02f70733 mul a4,a4,a5 -80000494: 810007b7 lui a5,0x81000 -80000498: 34478793 addi a5,a5,836 # 81000344 -8000049c: 00f707b3 add a5,a4,a5 -800004a0: fd040713 addi a4,s0,-48 -800004a4: 00070593 mv a1,a4 -800004a8: 00078513 mv a0,a5 -800004ac: 15c000ef jal ra,80000608 -800004b0: fec42783 lw a5,-20(s0) -800004b4: 00178793 addi a5,a5,1 -800004b8: fef42623 sw a5,-20(s0) -800004bc: fec42703 lw a4,-20(s0) -800004c0: 00700793 li a5,7 -800004c4: 00e7d463 bge a5,a4,800004cc -800004c8: fe042623 sw zero,-20(s0) -800004cc: fe842783 lw a5,-24(s0) -800004d0: 00178793 addi a5,a5,1 -800004d4: fef42423 sw a5,-24(s0) -800004d8: fe842703 lw a4,-24(s0) -800004dc: fcc42783 lw a5,-52(s0) -800004e0: f6f768e3 bltu a4,a5,80000450 -800004e4: 00090113 mv sp,s2 -800004e8: dedff0ef jal ra,800002d4 -800004ec: 00000013 nop -800004f0: 03c12083 lw ra,60(sp) -800004f4: 03812403 lw s0,56(sp) -800004f8: 04010113 addi sp,sp,64 -800004fc: 00008067 ret +80000218 : +80000218: fd010113 addi sp,sp,-48 +8000021c: 02112623 sw ra,44(sp) +80000220: 02812423 sw s0,40(sp) +80000224: 03a12223 sw s10,36(sp) +80000228: 03010413 addi s0,sp,48 +8000022c: 000d0713 mv a4,s10 +80000230: 4c400793 li a5,1220 +80000234: 02f70733 mul a4,a4,a5 +80000238: 810007b7 lui a5,0x81000 +8000023c: 33478793 addi a5,a5,820 # 81000334 +80000240: 00f707b3 add a5,a4,a5 +80000244: 00078513 mv a0,a5 +80000248: 4c8000ef jal ra,80000710 +8000024c: 00050793 mv a5,a0 +80000250: 02078a63 beqz a5,80000284 +80000254: 000d0713 mv a4,s10 +80000258: 810007b7 lui a5,0x81000 +8000025c: 00271713 slli a4,a4,0x2 +80000260: 29478793 addi a5,a5,660 # 81000294 +80000264: 00f707b3 add a5,a4,a5 +80000268: 00100713 li a4,1 +8000026c: 00e7a023 sw a4,0(a5) +80000270: 000d0793 mv a5,s10 +80000274: 00079663 bnez a5,80000280 +80000278: e9dff0ef jal ra,80000114 +8000027c: 0580006f j 800002d4 +80000280: 00000073 ecall +80000284: 000d0713 mv a4,s10 +80000288: 4c400793 li a5,1220 +8000028c: 02f70733 mul a4,a4,a5 +80000290: 810007b7 lui a5,0x81000 +80000294: 33478793 addi a5,a5,820 # 81000334 +80000298: 00f707b3 add a5,a4,a5 +8000029c: fd840713 addi a4,s0,-40 +800002a0: 00070593 mv a1,a4 +800002a4: 00078513 mv a0,a5 +800002a8: 3e0000ef jal ra,80000688 +800002ac: fe042783 lw a5,-32(s0) +800002b0: 00078113 mv sp,a5 +800002b4: fdc42783 lw a5,-36(s0) +800002b8: fd842583 lw a1,-40(s0) +800002bc: fe442603 lw a2,-28(s0) +800002c0: fe842683 lw a3,-24(s0) +800002c4: fec42703 lw a4,-20(s0) +800002c8: 00078513 mv a0,a5 +800002cc: d5dff0ef jal ra,80000028 +800002d0: 00000073 ecall +800002d4: 02c12083 lw ra,44(sp) +800002d8: 02812403 lw s0,40(sp) +800002dc: 02412d03 lw s10,36(sp) +800002e0: 03010113 addi sp,sp,48 +800002e4: 00008067 ret -80000500 : -80000500: fd010113 addi sp,sp,-48 -80000504: 02812623 sw s0,44(sp) -80000508: 03010413 addi s0,sp,48 -8000050c: fca42e23 sw a0,-36(s0) -80000510: fe042623 sw zero,-20(s0) -80000514: 0540006f j 80000568 -80000518: fe042623 sw zero,-20(s0) -8000051c: fe042423 sw zero,-24(s0) -80000520: 03c0006f j 8000055c -80000524: 810007b7 lui a5,0x81000 -80000528: fe842703 lw a4,-24(s0) -8000052c: 00271713 slli a4,a4,0x2 -80000530: 2a478793 addi a5,a5,676 # 810002a4 -80000534: 00f707b3 add a5,a4,a5 -80000538: 0007a703 lw a4,0(a5) -8000053c: 00100793 li a5,1 -80000540: 00f71863 bne a4,a5,80000550 -80000544: fec42783 lw a5,-20(s0) -80000548: 00178793 addi a5,a5,1 -8000054c: fef42623 sw a5,-20(s0) -80000550: fe842783 lw a5,-24(s0) -80000554: 00178793 addi a5,a5,1 -80000558: fef42423 sw a5,-24(s0) -8000055c: fe842703 lw a4,-24(s0) -80000560: 00700793 li a5,7 -80000564: fce7d0e3 bge a5,a4,80000524 -80000568: fec42703 lw a4,-20(s0) -8000056c: fdc42783 lw a5,-36(s0) -80000570: faf714e3 bne a4,a5,80000518 -80000574: fe042223 sw zero,-28(s0) -80000578: 0280006f j 800005a0 -8000057c: 810007b7 lui a5,0x81000 -80000580: fe442703 lw a4,-28(s0) -80000584: 00271713 slli a4,a4,0x2 -80000588: 2a478793 addi a5,a5,676 # 810002a4 -8000058c: 00f707b3 add a5,a4,a5 -80000590: 0007a023 sw zero,0(a5) -80000594: fe442783 lw a5,-28(s0) -80000598: 00178793 addi a5,a5,1 -8000059c: fef42223 sw a5,-28(s0) -800005a0: fe442783 lw a5,-28(s0) -800005a4: fdc42703 lw a4,-36(s0) -800005a8: fce7eae3 bltu a5,a4,8000057c -800005ac: 00000013 nop -800005b0: 02c12403 lw s0,44(sp) -800005b4: 03010113 addi sp,sp,48 -800005b8: 00008067 ret +800002e8 : +800002e8: fb010113 addi sp,sp,-80 +800002ec: 04112623 sw ra,76(sp) +800002f0: 04812423 sw s0,72(sp) +800002f4: 05010413 addi s0,sp,80 +800002f8: eadff0ef jal ra,800001a4 +800002fc: fea42423 sw a0,-24(s0) +80000300: 00010993 mv s3,sp +80000304: 00100793 li a5,1 +80000308: fef42623 sw a5,-20(s0) +8000030c: 0840006f j 80000390 +80000310: fec42703 lw a4,-20(s0) +80000314: 4c400793 li a5,1220 +80000318: 02f70733 mul a4,a4,a5 +8000031c: 810007b7 lui a5,0x81000 +80000320: 33478793 addi a5,a5,820 # 81000334 +80000324: 00f707b3 add a5,a4,a5 +80000328: 00078513 mv a0,a5 +8000032c: 3e4000ef jal ra,80000710 +80000330: 00050793 mv a5,a0 +80000334: 04079863 bnez a5,80000384 +80000338: fec42703 lw a4,-20(s0) +8000033c: 4c400793 li a5,1220 +80000340: 02f70733 mul a4,a4,a5 +80000344: 810007b7 lui a5,0x81000 +80000348: 33478793 addi a5,a5,820 # 81000334 +8000034c: 00f707b3 add a5,a4,a5 +80000350: fd040713 addi a4,s0,-48 +80000354: 00070593 mv a1,a4 +80000358: 00078513 mv a0,a5 +8000035c: 32c000ef jal ra,80000688 +80000360: fd842783 lw a5,-40(s0) +80000364: 00078113 mv sp,a5 +80000368: fd442783 lw a5,-44(s0) +8000036c: fd042583 lw a1,-48(s0) +80000370: fdc42603 lw a2,-36(s0) +80000374: fe042683 lw a3,-32(s0) +80000378: fe442703 lw a4,-28(s0) +8000037c: 00078513 mv a0,a5 +80000380: cf5ff0ef jal ra,80000074 +80000384: fec42783 lw a5,-20(s0) +80000388: 00178793 addi a5,a5,1 +8000038c: fef42623 sw a5,-20(s0) +80000390: fec42783 lw a5,-20(s0) +80000394: fe842703 lw a4,-24(s0) +80000398: f6e7ece3 bltu a5,a4,80000310 +8000039c: 00098113 mv sp,s3 +800003a0: ce5ff0ef jal ra,80000084 +800003a4: 00020793 mv a5,tp +800003a8: 04078863 beqz a5,800003f8 +800003ac: 810007b7 lui a5,0x81000 +800003b0: 33478513 addi a0,a5,820 # 81000334 +800003b4: 35c000ef jal ra,80000710 +800003b8: 00050793 mv a5,a0 +800003bc: 02079e63 bnez a5,800003f8 +800003c0: fb840793 addi a5,s0,-72 +800003c4: 00078593 mv a1,a5 +800003c8: 810007b7 lui a5,0x81000 +800003cc: 33478513 addi a0,a5,820 # 81000334 +800003d0: 2b8000ef jal ra,80000688 +800003d4: fc042783 lw a5,-64(s0) +800003d8: 00078113 mv sp,a5 +800003dc: fbc42783 lw a5,-68(s0) +800003e0: fb842583 lw a1,-72(s0) +800003e4: fc442603 lw a2,-60(s0) +800003e8: fc842683 lw a3,-56(s0) +800003ec: fcc42703 lw a4,-52(s0) +800003f0: 00078513 mv a0,a5 +800003f4: c35ff0ef jal ra,80000028 +800003f8: 00000013 nop +800003fc: 04c12083 lw ra,76(sp) +80000400: 04812403 lw s0,72(sp) +80000404: 05010113 addi sp,sp,80 +80000408: 00008067 ret -800005bc : -800005bc: ff010113 addi sp,sp,-16 -800005c0: 00812623 sw s0,12(sp) -800005c4: 01712423 sw s7,8(sp) -800005c8: 01010413 addi s0,sp,16 -800005cc: 000b8793 mv a5,s7 -800005d0: 00078513 mv a0,a5 -800005d4: 00c12403 lw s0,12(sp) -800005d8: 00812b83 lw s7,8(sp) -800005dc: 01010113 addi sp,sp,16 -800005e0: 00008067 ret +8000040c : +8000040c: fb010113 addi sp,sp,-80 +80000410: 04112623 sw ra,76(sp) +80000414: 04812423 sw s0,72(sp) +80000418: 05010413 addi s0,sp,80 +8000041c: faa42e23 sw a0,-68(s0) +80000420: fab42c23 sw a1,-72(s0) +80000424: fac42a23 sw a2,-76(s0) +80000428: fad42823 sw a3,-80(s0) +8000042c: d89ff0ef jal ra,800001b4 +80000430: d75ff0ef jal ra,800001a4 +80000434: fea42223 sw a0,-28(s0) +80000438: fe442583 lw a1,-28(s0) +8000043c: 810007b7 lui a5,0x81000 +80000440: 04078513 addi a0,a5,64 # 81000040 +80000444: 3fc000ef jal ra,80000840 +80000448: 00010913 mv s2,sp +8000044c: fe042623 sw zero,-20(s0) +80000450: fe042423 sw zero,-24(s0) +80000454: 08c0006f j 800004e0 +80000458: ffff09b7 lui s3,0xffff0 +8000045c: 01310133 add sp,sp,s3 +80000460: fe842783 lw a5,-24(s0) +80000464: fcf42623 sw a5,-52(s0) +80000468: fb842783 lw a5,-72(s0) +8000046c: fcf42823 sw a5,-48(s0) +80000470: 00010793 mv a5,sp +80000474: fcf42a23 sw a5,-44(s0) +80000478: fb442783 lw a5,-76(s0) +8000047c: fcf42c23 sw a5,-40(s0) +80000480: fb042783 lw a5,-80(s0) +80000484: fcf42e23 sw a5,-36(s0) +80000488: fec42783 lw a5,-20(s0) +8000048c: fef42023 sw a5,-32(s0) +80000490: fec42703 lw a4,-20(s0) +80000494: 4c400793 li a5,1220 +80000498: 02f70733 mul a4,a4,a5 +8000049c: 810007b7 lui a5,0x81000 +800004a0: 33478793 addi a5,a5,820 # 81000334 +800004a4: 00f707b3 add a5,a4,a5 +800004a8: fcc40713 addi a4,s0,-52 +800004ac: 00070593 mv a1,a4 +800004b0: 00078513 mv a0,a5 +800004b4: 16c000ef jal ra,80000620 +800004b8: fec42783 lw a5,-20(s0) +800004bc: 00178793 addi a5,a5,1 +800004c0: fef42623 sw a5,-20(s0) +800004c4: fec42783 lw a5,-20(s0) +800004c8: fe442703 lw a4,-28(s0) +800004cc: 00e7e463 bltu a5,a4,800004d4 +800004d0: fe042623 sw zero,-20(s0) +800004d4: fe842783 lw a5,-24(s0) +800004d8: 00178793 addi a5,a5,1 +800004dc: fef42423 sw a5,-24(s0) +800004e0: fe842703 lw a4,-24(s0) +800004e4: fbc42783 lw a5,-68(s0) +800004e8: f6f768e3 bltu a4,a5,80000458 +800004ec: 00090113 mv sp,s2 +800004f0: df9ff0ef jal ra,800002e8 +800004f4: 00000013 nop +800004f8: 04c12083 lw ra,76(sp) +800004fc: 04812403 lw s0,72(sp) +80000500: 05010113 addi sp,sp,80 +80000504: 00008067 ret -800005e4 : -800005e4: 00050293 mv t0,a0 -800005e8: 00000313 li t1,0 -800005ec: 00700393 li t2,7 -800005f0: 0062a023 sw t1,0(t0) -800005f4: 0062a223 sw t1,4(t0) -800005f8: 0062a423 sw t1,8(t0) -800005fc: 0072a623 sw t2,12(t0) -80000600: 0062a823 sw t1,16(t0) -80000604: 00008067 ret +80000508 : +80000508: fd010113 addi sp,sp,-48 +8000050c: 02112623 sw ra,44(sp) +80000510: 02812423 sw s0,40(sp) +80000514: 03010413 addi s0,sp,48 +80000518: fca42e23 sw a0,-36(s0) +8000051c: c89ff0ef jal ra,800001a4 +80000520: fea42023 sw a0,-32(s0) +80000524: fe042623 sw zero,-20(s0) +80000528: 0540006f j 8000057c +8000052c: fe042623 sw zero,-20(s0) +80000530: fe042423 sw zero,-24(s0) +80000534: 03c0006f j 80000570 +80000538: 810007b7 lui a5,0x81000 +8000053c: fe842703 lw a4,-24(s0) +80000540: 00271713 slli a4,a4,0x2 +80000544: 29478793 addi a5,a5,660 # 81000294 +80000548: 00f707b3 add a5,a4,a5 +8000054c: 0007a703 lw a4,0(a5) +80000550: 00100793 li a5,1 +80000554: 00f71863 bne a4,a5,80000564 +80000558: fec42783 lw a5,-20(s0) +8000055c: 00178793 addi a5,a5,1 +80000560: fef42623 sw a5,-20(s0) +80000564: fe842783 lw a5,-24(s0) +80000568: 00178793 addi a5,a5,1 +8000056c: fef42423 sw a5,-24(s0) +80000570: fe842783 lw a5,-24(s0) +80000574: fe042703 lw a4,-32(s0) +80000578: fce7e0e3 bltu a5,a4,80000538 +8000057c: fec42703 lw a4,-20(s0) +80000580: fdc42783 lw a5,-36(s0) +80000584: faf714e3 bne a4,a5,8000052c +80000588: fe042223 sw zero,-28(s0) +8000058c: 0280006f j 800005b4 +80000590: 810007b7 lui a5,0x81000 +80000594: fe442703 lw a4,-28(s0) +80000598: 00271713 slli a4,a4,0x2 +8000059c: 29478793 addi a5,a5,660 # 81000294 +800005a0: 00f707b3 add a5,a4,a5 +800005a4: 0007a023 sw zero,0(a5) +800005a8: fe442783 lw a5,-28(s0) +800005ac: 00178793 addi a5,a5,1 +800005b0: fef42223 sw a5,-28(s0) +800005b4: fe442783 lw a5,-28(s0) +800005b8: fe042703 lw a4,-32(s0) +800005bc: fce7eae3 bltu a5,a4,80000590 +800005c0: 00000013 nop +800005c4: 02c12083 lw ra,44(sp) +800005c8: 02812403 lw s0,40(sp) +800005cc: 03010113 addi sp,sp,48 +800005d0: 00008067 ret -80000608 : -80000608: 00050293 mv t0,a0 -8000060c: 0082a303 lw t1,8(t0) -80000610: 00130313 addi t1,t1,1 -80000614: 0062a423 sw t1,8(t0) -80000618: 01428313 addi t1,t0,20 -8000061c: 0042ae83 lw t4,4(t0) -80000620: 005e9393 slli t2,t4,0x5 -80000624: 00730333 add t1,t1,t2 -80000628: 0005ae03 lw t3,0(a1) -8000062c: 01c32023 sw t3,0(t1) -80000630: 0045ae03 lw t3,4(a1) -80000634: 01c32223 sw t3,4(t1) -80000638: 0085ae03 lw t3,8(a1) -8000063c: 01c32423 sw t3,8(t1) -80000640: 00c5ae03 lw t3,12(a1) -80000644: 01c32623 sw t3,12(t1) -80000648: 0105ae03 lw t3,16(a1) -8000064c: 01c32823 sw t3,16(t1) -80000650: 0145ae03 lw t3,20(a1) -80000654: 01c32a23 sw t3,20(t1) -80000658: 001e8e93 addi t4,t4,1 -8000065c: 03200f13 li t5,50 -80000660: 01ee9463 bne t4,t5,80000668 -80000664: 00000e93 li t4,0 +800005d4 : +800005d4: ff010113 addi sp,sp,-16 +800005d8: 00812623 sw s0,12(sp) +800005dc: 01712423 sw s7,8(sp) +800005e0: 01010413 addi s0,sp,16 +800005e4: 000b8793 mv a5,s7 +800005e8: 00078513 mv a0,a5 +800005ec: 00c12403 lw s0,12(sp) +800005f0: 00812b83 lw s7,8(sp) +800005f4: 01010113 addi sp,sp,16 +800005f8: 00008067 ret -80000668 : -80000668: 01d2a223 sw t4,4(t0) -8000066c: 00008067 ret +800005fc : +800005fc: 00050293 mv t0,a0 +80000600: 00000313 li t1,0 +80000604: 00700393 li t2,7 +80000608: 0062a023 sw t1,0(t0) +8000060c: 0062a223 sw t1,4(t0) +80000610: 0062a423 sw t1,8(t0) +80000614: 0072a623 sw t2,12(t0) +80000618: 0062a823 sw t1,16(t0) +8000061c: 00008067 ret -80000670 : -80000670: 00050293 mv t0,a0 -80000674: 0082a303 lw t1,8(t0) -80000678: fff30313 addi t1,t1,-1 -8000067c: 0062a423 sw t1,8(t0) -80000680: 01428313 addi t1,t0,20 -80000684: 0002ae83 lw t4,0(t0) -80000688: 03200f93 li t6,50 -8000068c: 000e8f13 mv t5,t4 -80000690: 001f0f13 addi t5,t5,1 -80000694: 01ff1463 bne t5,t6,8000069c -80000698: 00000f13 li t5,0 +80000620 : +80000620: 00050293 mv t0,a0 +80000624: 0082a303 lw t1,8(t0) +80000628: 00130313 addi t1,t1,1 +8000062c: 0062a423 sw t1,8(t0) +80000630: 01428313 addi t1,t0,20 +80000634: 0042ae83 lw t4,4(t0) +80000638: 005e9393 slli t2,t4,0x5 +8000063c: 00730333 add t1,t1,t2 +80000640: 0005ae03 lw t3,0(a1) +80000644: 01c32023 sw t3,0(t1) +80000648: 0045ae03 lw t3,4(a1) +8000064c: 01c32223 sw t3,4(t1) +80000650: 0085ae03 lw t3,8(a1) +80000654: 01c32423 sw t3,8(t1) +80000658: 00c5ae03 lw t3,12(a1) +8000065c: 01c32623 sw t3,12(t1) +80000660: 0105ae03 lw t3,16(a1) +80000664: 01c32823 sw t3,16(t1) +80000668: 0145ae03 lw t3,20(a1) +8000066c: 01c32a23 sw t3,20(t1) +80000670: 001e8e93 addi t4,t4,1 +80000674: 03200f13 li t5,50 +80000678: 01ee9463 bne t4,t5,80000680 +8000067c: 00000e93 li t4,0 -8000069c : -8000069c: 01e2a023 sw t5,0(t0) -800006a0: 005e9393 slli t2,t4,0x5 -800006a4: 00730333 add t1,t1,t2 -800006a8: 00032e03 lw t3,0(t1) -800006ac: 01c5a023 sw t3,0(a1) -800006b0: 00432e03 lw t3,4(t1) -800006b4: 01c5a223 sw t3,4(a1) -800006b8: 00832e03 lw t3,8(t1) -800006bc: 01c5a423 sw t3,8(a1) -800006c0: 00c32e03 lw t3,12(t1) -800006c4: 01c5a623 sw t3,12(a1) -800006c8: 01032e03 lw t3,16(t1) -800006cc: 01c5a823 sw t3,16(a1) -800006d0: 01432e03 lw t3,20(t1) -800006d4: 01c5aa23 sw t3,20(a1) -800006d8: 00008067 ret +80000680 : +80000680: 01d2a223 sw t4,4(t0) +80000684: 00008067 ret -800006dc : -800006dc: 00050293 mv t0,a0 -800006e0: 0082a303 lw t1,8(t0) -800006e4: 00000513 li a0,0 -800006e8: 03200e13 li t3,50 -800006ec: 006e1463 bne t3,t1,800006f4 -800006f0: 00150513 addi a0,a0,1 +80000688 : +80000688: 00050293 mv t0,a0 +8000068c: 0082a303 lw t1,8(t0) +80000690: fff30313 addi t1,t1,-1 +80000694: 0062a423 sw t1,8(t0) +80000698: 01428313 addi t1,t0,20 +8000069c: 0002ae83 lw t4,0(t0) +800006a0: 03200f93 li t6,50 +800006a4: 000e8f13 mv t5,t4 +800006a8: 001f0f13 addi t5,t5,1 +800006ac: 01ff1463 bne t5,t6,800006b4 +800006b0: 00000f13 li t5,0 -800006f4 : -800006f4: 00008067 ret +800006b4 : +800006b4: 01e2a023 sw t5,0(t0) +800006b8: 005e9393 slli t2,t4,0x5 +800006bc: 00730333 add t1,t1,t2 +800006c0: 00032e03 lw t3,0(t1) +800006c4: 01c5a023 sw t3,0(a1) +800006c8: 00432e03 lw t3,4(t1) +800006cc: 01c5a223 sw t3,4(a1) +800006d0: 00832e03 lw t3,8(t1) +800006d4: 01c5a423 sw t3,8(a1) +800006d8: 00c32e03 lw t3,12(t1) +800006dc: 01c5a623 sw t3,12(a1) +800006e0: 01032e03 lw t3,16(t1) +800006e4: 01c5a823 sw t3,16(a1) +800006e8: 01432e03 lw t3,20(t1) +800006ec: 01c5aa23 sw t3,20(a1) +800006f0: 00008067 ret -800006f8 : -800006f8: 00050293 mv t0,a0 -800006fc: 0082a303 lw t1,8(t0) -80000700: 00000513 li a0,0 -80000704: 00000e13 li t3,0 -80000708: 006e1463 bne t3,t1,80000710 -8000070c: 00150513 addi a0,a0,1 +800006f4 : +800006f4: 00050293 mv t0,a0 +800006f8: 0082a303 lw t1,8(t0) +800006fc: 00000513 li a0,0 +80000700: 03200e13 li t3,50 +80000704: 006e1463 bne t3,t1,8000070c +80000708: 00150513 addi a0,a0,1 -80000710 : -80000710: 00008067 ret +8000070c : +8000070c: 00008067 ret -80000714 : -80000714: 00050293 mv t0,a0 -80000718: 00c2a303 lw t1,12(t0) -8000071c: 0102a383 lw t2,16(t0) -80000720: 0063b533 sltu a0,t2,t1 -80000724: 00008067 ret +80000710 : +80000710: 00050293 mv t0,a0 +80000714: 0082a303 lw t1,8(t0) +80000718: 00000513 li a0,0 +8000071c: 00000e13 li t3,0 +80000720: 006e1463 bne t3,t1,80000728 +80000724: 00150513 addi a0,a0,1 -80000728 : -80000728: ff410113 addi sp,sp,-12 -8000072c: 00112023 sw ra,0(sp) -80000730: 00b12223 sw a1,4(sp) +80000728 : +80000728: 00008067 ret -80000734 : -80000734: 00054583 lbu a1,0(a0) -80000738: 00058863 beqz a1,80000748 -8000073c: 01c000ef jal ra,80000758 -80000740: 00150513 addi a0,a0,1 -80000744: ff1ff06f j 80000734 +8000072c : +8000072c: 00050293 mv t0,a0 +80000730: 00c2a303 lw t1,12(t0) +80000734: 0102a383 lw t2,16(t0) +80000738: 0063b533 sltu a0,t2,t1 +8000073c: 00008067 ret -80000748 : -80000748: 00012083 lw ra,0(sp) -8000074c: 00412583 lw a1,4(sp) -80000750: 00c10113 addi sp,sp,12 -80000754: 00008067 ret +80000740 : +80000740: ff410113 addi sp,sp,-12 +80000744: 00112023 sw ra,0(sp) +80000748: 00b12223 sw a1,4(sp) -80000758 : -80000758: 000108b7 lui a7,0x10 -8000075c: 00b8a023 sw a1,0(a7) # 10000 -80000760: 00008067 ret +8000074c : +8000074c: 00054583 lbu a1,0(a0) +80000750: 00058863 beqz a1,80000760 +80000754: 01c000ef jal ra,80000770 +80000758: 00150513 addi a0,a0,1 +8000075c: ff1ff06f j 8000074c -80000764 : -80000764: fd010113 addi sp,sp,-48 -80000768: 02112623 sw ra,44(sp) -8000076c: 02812423 sw s0,40(sp) -80000770: 03010413 addi s0,sp,48 -80000774: fca42e23 sw a0,-36(s0) -80000778: fdc42703 lw a4,-36(s0) -8000077c: 00f00793 li a5,15 -80000780: 02e7e463 bltu a5,a4,800007a8 -80000784: 810007b7 lui a5,0x81000 -80000788: fdc42703 lw a4,-36(s0) -8000078c: 00271713 slli a4,a4,0x2 -80000790: 1e478793 addi a5,a5,484 # 810001e4 -80000794: 00f707b3 add a5,a4,a5 -80000798: 0007a783 lw a5,0(a5) -8000079c: 00078513 mv a0,a5 -800007a0: f89ff0ef jal ra,80000728 -800007a4: 0740006f j 80000818 -800007a8: 02000793 li a5,32 -800007ac: fef42623 sw a5,-20(s0) -800007b0: fe0405a3 sb zero,-21(s0) -800007b4: fec42783 lw a5,-20(s0) -800007b8: ffc78793 addi a5,a5,-4 -800007bc: fdc42703 lw a4,-36(s0) -800007c0: 00f757b3 srl a5,a4,a5 -800007c4: 00f7f793 andi a5,a5,15 -800007c8: fef42223 sw a5,-28(s0) -800007cc: fe442783 lw a5,-28(s0) -800007d0: 00078663 beqz a5,800007dc -800007d4: 00100793 li a5,1 -800007d8: fef405a3 sb a5,-21(s0) -800007dc: feb44783 lbu a5,-21(s0) -800007e0: 02078263 beqz a5,80000804 -800007e4: 810007b7 lui a5,0x81000 -800007e8: fe442703 lw a4,-28(s0) -800007ec: 00271713 slli a4,a4,0x2 -800007f0: 1e478793 addi a5,a5,484 # 810001e4 -800007f4: 00f707b3 add a5,a4,a5 -800007f8: 0007a783 lw a5,0(a5) -800007fc: 00078513 mv a0,a5 -80000800: f29ff0ef jal ra,80000728 -80000804: fec42783 lw a5,-20(s0) -80000808: ffc78793 addi a5,a5,-4 -8000080c: fef42623 sw a5,-20(s0) -80000810: fec42783 lw a5,-20(s0) -80000814: faf040e3 bgtz a5,800007b4 -80000818: 02c12083 lw ra,44(sp) -8000081c: 02812403 lw s0,40(sp) -80000820: 03010113 addi sp,sp,48 -80000824: 00008067 ret +80000760 : +80000760: 00012083 lw ra,0(sp) +80000764: 00412583 lw a1,4(sp) +80000768: 00c10113 addi sp,sp,12 +8000076c: 00008067 ret -80000828 : -80000828: fe010113 addi sp,sp,-32 -8000082c: 00112e23 sw ra,28(sp) -80000830: 00812c23 sw s0,24(sp) -80000834: 02010413 addi s0,sp,32 -80000838: fea42623 sw a0,-20(s0) -8000083c: feb42423 sw a1,-24(s0) -80000840: fec42503 lw a0,-20(s0) -80000844: ee5ff0ef jal ra,80000728 -80000848: fe842503 lw a0,-24(s0) -8000084c: f19ff0ef jal ra,80000764 -80000850: 810007b7 lui a5,0x81000 -80000854: 0c078513 addi a0,a5,192 # 810000c0 -80000858: ed1ff0ef jal ra,80000728 -8000085c: 00000013 nop -80000860: 01c12083 lw ra,28(sp) -80000864: 01812403 lw s0,24(sp) -80000868: 02010113 addi sp,sp,32 -8000086c: 00008067 ret +80000770 : +80000770: 000108b7 lui a7,0x10 +80000774: 00b8a023 sw a1,0(a7) # 10000 +80000778: 00008067 ret -80000870 : -80000870: fd010113 addi sp,sp,-48 -80000874: 02112623 sw ra,44(sp) -80000878: 02812423 sw s0,40(sp) -8000087c: 03010413 addi s0,sp,48 -80000880: fca42e23 sw a0,-36(s0) -80000884: fcb42c23 sw a1,-40(s0) -80000888: fcc42a23 sw a2,-44(s0) -8000088c: fcd42823 sw a3,-48(s0) -80000890: 810037b7 lui a5,0x81003 -80000894: fdc42703 lw a4,-36(s0) -80000898: 98e7a223 sw a4,-1660(a5) # 81002984 -8000089c: 810037b7 lui a5,0x81003 -800008a0: 98478793 addi a5,a5,-1660 # 81002984 -800008a4: fd842703 lw a4,-40(s0) -800008a8: 00e7a223 sw a4,4(a5) -800008ac: 810037b7 lui a5,0x81003 -800008b0: 98478793 addi a5,a5,-1660 # 81002984 -800008b4: fd442703 lw a4,-44(s0) -800008b8: 00e7a423 sw a4,8(a5) -800008bc: 810037b7 lui a5,0x81003 -800008c0: 98478793 addi a5,a5,-1660 # 81002984 -800008c4: fd042703 lw a4,-48(s0) -800008c8: 00e7a623 sw a4,12(a5) -800008cc: fd042783 lw a5,-48(s0) -800008d0: 0037d793 srli a5,a5,0x3 -800008d4: fef42623 sw a5,-20(s0) -800008d8: fd042783 lw a5,-48(s0) -800008dc: 0077f793 andi a5,a5,7 -800008e0: 00078863 beqz a5,800008f0 -800008e4: fec42783 lw a5,-20(s0) -800008e8: 00178793 addi a5,a5,1 -800008ec: fef42623 sw a5,-20(s0) -800008f0: 810037b7 lui a5,0x81003 -800008f4: 98478793 addi a5,a5,-1660 # 81002984 -800008f8: fec42703 lw a4,-20(s0) -800008fc: 00e7a823 sw a4,16(a5) -80000900: fd042703 lw a4,-48(s0) -80000904: 00700793 li a5,7 -80000908: 02e7f263 bgeu a5,a4,8000092c -8000090c: 810037b7 lui a5,0x81003 -80000910: 98478693 addi a3,a5,-1660 # 81002984 -80000914: 800017b7 lui a5,0x80001 -80000918: 97c78613 addi a2,a5,-1668 # 8000097c -8000091c: 00800593 li a1,8 -80000920: fd042503 lw a0,-48(s0) -80000924: af9ff0ef jal ra,8000041c -80000928: 0200006f j 80000948 -8000092c: 810037b7 lui a5,0x81003 -80000930: 98478693 addi a3,a5,-1660 # 81002984 -80000934: 800017b7 lui a5,0x80001 -80000938: 97c78613 addi a2,a5,-1668 # 8000097c -8000093c: fd042583 lw a1,-48(s0) -80000940: fd042503 lw a0,-48(s0) -80000944: ad9ff0ef jal ra,8000041c -80000948: fd042703 lw a4,-48(s0) -8000094c: 00800793 li a5,8 -80000950: 00e7f863 bgeu a5,a4,80000960 -80000954: 00800513 li a0,8 -80000958: ba9ff0ef jal ra,80000500 -8000095c: 00c0006f j 80000968 -80000960: fd042503 lw a0,-48(s0) -80000964: b9dff0ef jal ra,80000500 -80000968: 00000013 nop -8000096c: 02c12083 lw ra,44(sp) -80000970: 02812403 lw s0,40(sp) -80000974: 03010113 addi sp,sp,48 -80000978: 00008067 ret +8000077c : +8000077c: fd010113 addi sp,sp,-48 +80000780: 02112623 sw ra,44(sp) +80000784: 02812423 sw s0,40(sp) +80000788: 03010413 addi s0,sp,48 +8000078c: fca42e23 sw a0,-36(s0) +80000790: fdc42703 lw a4,-36(s0) +80000794: 00f00793 li a5,15 +80000798: 02e7e463 bltu a5,a4,800007c0 +8000079c: 810007b7 lui a5,0x81000 +800007a0: fdc42703 lw a4,-36(s0) +800007a4: 00271713 slli a4,a4,0x2 +800007a8: 1d478793 addi a5,a5,468 # 810001d4 +800007ac: 00f707b3 add a5,a4,a5 +800007b0: 0007a783 lw a5,0(a5) +800007b4: 00078513 mv a0,a5 +800007b8: f89ff0ef jal ra,80000740 +800007bc: 0740006f j 80000830 +800007c0: 02000793 li a5,32 +800007c4: fef42623 sw a5,-20(s0) +800007c8: fe0405a3 sb zero,-21(s0) +800007cc: fec42783 lw a5,-20(s0) +800007d0: ffc78793 addi a5,a5,-4 +800007d4: fdc42703 lw a4,-36(s0) +800007d8: 00f757b3 srl a5,a4,a5 +800007dc: 00f7f793 andi a5,a5,15 +800007e0: fef42223 sw a5,-28(s0) +800007e4: fe442783 lw a5,-28(s0) +800007e8: 00078663 beqz a5,800007f4 +800007ec: 00100793 li a5,1 +800007f0: fef405a3 sb a5,-21(s0) +800007f4: feb44783 lbu a5,-21(s0) +800007f8: 02078263 beqz a5,8000081c +800007fc: 810007b7 lui a5,0x81000 +80000800: fe442703 lw a4,-28(s0) +80000804: 00271713 slli a4,a4,0x2 +80000808: 1d478793 addi a5,a5,468 # 810001d4 +8000080c: 00f707b3 add a5,a4,a5 +80000810: 0007a783 lw a5,0(a5) +80000814: 00078513 mv a0,a5 +80000818: f29ff0ef jal ra,80000740 +8000081c: fec42783 lw a5,-20(s0) +80000820: ffc78793 addi a5,a5,-4 +80000824: fef42623 sw a5,-20(s0) +80000828: fec42783 lw a5,-20(s0) +8000082c: faf040e3 bgtz a5,800007cc +80000830: 02c12083 lw ra,44(sp) +80000834: 02812403 lw s0,40(sp) +80000838: 03010113 addi sp,sp,48 +8000083c: 00008067 ret -8000097c <_vx_mat_mult>: -8000097c: fa010113 addi sp,sp,-96 -80000980: 04112e23 sw ra,92(sp) -80000984: 04812c23 sw s0,88(sp) -80000988: 06010413 addi s0,sp,96 -8000098c: faa42623 sw a0,-84(s0) -80000990: fab42423 sw a1,-88(s0) -80000994: c29ff0ef jal ra,800005bc -80000998: fca42c23 sw a0,-40(s0) -8000099c: fd842783 lw a5,-40(s0) -800009a0: 0007a783 lw a5,0(a5) -800009a4: fcf42a23 sw a5,-44(s0) -800009a8: fd842783 lw a5,-40(s0) -800009ac: 0047a783 lw a5,4(a5) -800009b0: fcf42823 sw a5,-48(s0) -800009b4: fd842783 lw a5,-40(s0) -800009b8: 0087a783 lw a5,8(a5) -800009bc: fcf42623 sw a5,-52(s0) -800009c0: fd842783 lw a5,-40(s0) -800009c4: 0107a783 lw a5,16(a5) -800009c8: fef42623 sw a5,-20(s0) -800009cc: fec42703 lw a4,-20(s0) -800009d0: fac42783 lw a5,-84(s0) -800009d4: 02f707b3 mul a5,a4,a5 -800009d8: fef42423 sw a5,-24(s0) -800009dc: fec42783 lw a5,-20(s0) -800009e0: 00079a63 bnez a5,800009f4 <_vx_mat_mult+0x78> -800009e4: 00100793 li a5,1 -800009e8: fef42623 sw a5,-20(s0) -800009ec: fac42783 lw a5,-84(s0) -800009f0: fef42423 sw a5,-24(s0) +80000840 : +80000840: fe010113 addi sp,sp,-32 +80000844: 00112e23 sw ra,28(sp) +80000848: 00812c23 sw s0,24(sp) +8000084c: 02010413 addi s0,sp,32 +80000850: fea42623 sw a0,-20(s0) +80000854: feb42423 sw a1,-24(s0) +80000858: fec42503 lw a0,-20(s0) +8000085c: ee5ff0ef jal ra,80000740 +80000860: fe842503 lw a0,-24(s0) +80000864: f19ff0ef jal ra,8000077c +80000868: 810007b7 lui a5,0x81000 +8000086c: 09878513 addi a0,a5,152 # 81000098 +80000870: ed1ff0ef jal ra,80000740 +80000874: 00000013 nop +80000878: 01c12083 lw ra,28(sp) +8000087c: 01812403 lw s0,24(sp) +80000880: 02010113 addi sp,sp,32 +80000884: 00008067 ret + +80000888 : +80000888: fd010113 addi sp,sp,-48 +8000088c: 02112623 sw ra,44(sp) +80000890: 02812423 sw s0,40(sp) +80000894: 03010413 addi s0,sp,48 +80000898: fca42e23 sw a0,-36(s0) +8000089c: fcb42c23 sw a1,-40(s0) +800008a0: fcc42a23 sw a2,-44(s0) +800008a4: fcd42823 sw a3,-48(s0) +800008a8: 810037b7 lui a5,0x81003 +800008ac: fdc42703 lw a4,-36(s0) +800008b0: 96e7aa23 sw a4,-1676(a5) # 81002974 +800008b4: 810037b7 lui a5,0x81003 +800008b8: 97478793 addi a5,a5,-1676 # 81002974 +800008bc: fd842703 lw a4,-40(s0) +800008c0: 00e7a223 sw a4,4(a5) +800008c4: 810037b7 lui a5,0x81003 +800008c8: 97478793 addi a5,a5,-1676 # 81002974 +800008cc: fd442703 lw a4,-44(s0) +800008d0: 00e7a423 sw a4,8(a5) +800008d4: 810037b7 lui a5,0x81003 +800008d8: 97478793 addi a5,a5,-1676 # 81002974 +800008dc: fd042703 lw a4,-48(s0) +800008e0: 00e7a623 sw a4,12(a5) +800008e4: 8c9ff0ef jal ra,800001ac +800008e8: fea42423 sw a0,-24(s0) +800008ec: fd042703 lw a4,-48(s0) +800008f0: fe842783 lw a5,-24(s0) +800008f4: 02f757b3 divu a5,a4,a5 +800008f8: fef42623 sw a5,-20(s0) +800008fc: fd042703 lw a4,-48(s0) +80000900: fe842783 lw a5,-24(s0) +80000904: 02f777b3 remu a5,a4,a5 +80000908: 00078863 beqz a5,80000918 +8000090c: fec42783 lw a5,-20(s0) +80000910: 00178793 addi a5,a5,1 +80000914: fef42623 sw a5,-20(s0) +80000918: fec42583 lw a1,-20(s0) +8000091c: 810007b7 lui a5,0x81000 +80000920: 0dc78513 addi a0,a5,220 # 810000dc +80000924: f1dff0ef jal ra,80000840 +80000928: 810037b7 lui a5,0x81003 +8000092c: 97478793 addi a5,a5,-1676 # 81002974 +80000930: fec42703 lw a4,-20(s0) +80000934: 00e7a823 sw a4,16(a5) +80000938: fd042703 lw a4,-48(s0) +8000093c: fe842783 lw a5,-24(s0) +80000940: 02f76263 bltu a4,a5,80000964 +80000944: 810037b7 lui a5,0x81003 +80000948: 97478693 addi a3,a5,-1676 # 81002974 +8000094c: 800017b7 lui a5,0x80001 +80000950: 9bc78613 addi a2,a5,-1604 # 800009bc +80000954: fe842583 lw a1,-24(s0) +80000958: fd042503 lw a0,-48(s0) +8000095c: ab1ff0ef jal ra,8000040c +80000960: 0200006f j 80000980 +80000964: 810037b7 lui a5,0x81003 +80000968: 97478693 addi a3,a5,-1676 # 81002974 +8000096c: 800017b7 lui a5,0x80001 +80000970: 9bc78613 addi a2,a5,-1604 # 800009bc +80000974: fd042583 lw a1,-48(s0) +80000978: fd042503 lw a0,-48(s0) +8000097c: a91ff0ef jal ra,8000040c +80000980: 825ff0ef jal ra,800001a4 +80000984: fea42223 sw a0,-28(s0) +80000988: fd042703 lw a4,-48(s0) +8000098c: fe442783 lw a5,-28(s0) +80000990: 00e7f863 bgeu a5,a4,800009a0 +80000994: fe442503 lw a0,-28(s0) +80000998: b71ff0ef jal ra,80000508 +8000099c: 00c0006f j 800009a8 +800009a0: fd042503 lw a0,-48(s0) +800009a4: b65ff0ef jal ra,80000508 +800009a8: 00000013 nop +800009ac: 02c12083 lw ra,44(sp) +800009b0: 02812403 lw s0,40(sp) +800009b4: 03010113 addi sp,sp,48 +800009b8: 00008067 ret + +800009bc <_vx_mat_mult>: +800009bc: fa010113 addi sp,sp,-96 +800009c0: 04112e23 sw ra,92(sp) +800009c4: 04812c23 sw s0,88(sp) +800009c8: 06010413 addi s0,sp,96 +800009cc: faa42623 sw a0,-84(s0) +800009d0: fab42423 sw a1,-88(s0) +800009d4: c01ff0ef jal ra,800005d4 +800009d8: fca42c23 sw a0,-40(s0) +800009dc: fd842783 lw a5,-40(s0) +800009e0: 0007a783 lw a5,0(a5) +800009e4: fcf42a23 sw a5,-44(s0) +800009e8: fd842783 lw a5,-40(s0) +800009ec: 0047a783 lw a5,4(a5) +800009f0: fcf42823 sw a5,-48(s0) 800009f4: fd842783 lw a5,-40(s0) -800009f8: 00c7a783 lw a5,12(a5) -800009fc: fcf42423 sw a5,-56(s0) -80000a00: fe042223 sw zero,-28(s0) -80000a04: 1240006f j 80000b28 <_vx_mat_mult+0x1ac> -80000a08: fe042023 sw zero,-32(s0) -80000a0c: fc042e23 sw zero,-36(s0) -80000a10: 0780006f j 80000a88 <_vx_mat_mult+0x10c> -80000a14: fa842703 lw a4,-88(s0) -80000a18: fc842783 lw a5,-56(s0) -80000a1c: 02f707b3 mul a5,a4,a5 -80000a20: fdc42703 lw a4,-36(s0) -80000a24: 00f707b3 add a5,a4,a5 -80000a28: fcf42223 sw a5,-60(s0) -80000a2c: fc842703 lw a4,-56(s0) -80000a30: fdc42783 lw a5,-36(s0) -80000a34: 02f707b3 mul a5,a4,a5 -80000a38: fe842703 lw a4,-24(s0) -80000a3c: 00f707b3 add a5,a4,a5 -80000a40: fcf42023 sw a5,-64(s0) -80000a44: fc442783 lw a5,-60(s0) -80000a48: 00279793 slli a5,a5,0x2 -80000a4c: fd442703 lw a4,-44(s0) -80000a50: 00f707b3 add a5,a4,a5 -80000a54: 0007a703 lw a4,0(a5) -80000a58: fc042783 lw a5,-64(s0) -80000a5c: 00279793 slli a5,a5,0x2 -80000a60: fd042683 lw a3,-48(s0) -80000a64: 00f687b3 add a5,a3,a5 -80000a68: 0007a783 lw a5,0(a5) -80000a6c: 02f707b3 mul a5,a4,a5 -80000a70: fe042703 lw a4,-32(s0) -80000a74: 00f707b3 add a5,a4,a5 -80000a78: fef42023 sw a5,-32(s0) -80000a7c: fdc42783 lw a5,-36(s0) -80000a80: 00178793 addi a5,a5,1 -80000a84: fcf42e23 sw a5,-36(s0) -80000a88: fdc42703 lw a4,-36(s0) -80000a8c: fc842783 lw a5,-56(s0) -80000a90: f8f762e3 bltu a4,a5,80000a14 <_vx_mat_mult+0x98> -80000a94: fa842703 lw a4,-88(s0) -80000a98: fc842783 lw a5,-56(s0) -80000a9c: 02f70733 mul a4,a4,a5 -80000aa0: fe842783 lw a5,-24(s0) -80000aa4: 00f707b3 add a5,a4,a5 -80000aa8: faf42e23 sw a5,-68(s0) -80000aac: fe842703 lw a4,-24(s0) -80000ab0: fc842783 lw a5,-56(s0) -80000ab4: 00f737b3 sltu a5,a4,a5 -80000ab8: 0ff7f793 andi a5,a5,255 -80000abc: faf42c23 sw a5,-72(s0) -80000ac0: fb842783 lw a5,-72(s0) -80000ac4: 0017b793 seqz a5,a5 -80000ac8: faf40ba3 sb a5,-73(s0) -80000acc: fb744783 lbu a5,-73(s0) -80000ad0: 00078f13 mv t5,a5 -80000ad4: 800017b7 lui a5,0x80001 -80000ad8: b1478f93 addi t6,a5,-1260 # 80000b14 -80000adc: 000f206b 0xf206b -80000ae0: 01ff707b 0x1ff707b -80000ae4: fbc42783 lw a5,-68(s0) -80000ae8: 00279793 slli a5,a5,0x2 -80000aec: fcc42703 lw a4,-52(s0) -80000af0: 00f707b3 add a5,a4,a5 -80000af4: fe042703 lw a4,-32(s0) -80000af8: 00e7a023 sw a4,0(a5) -80000afc: fe842783 lw a5,-24(s0) -80000b00: 00178793 addi a5,a5,1 -80000b04: fef42423 sw a5,-24(s0) -80000b08: 800017b7 lui a5,0x80001 -80000b0c: b1878e13 addi t3,a5,-1256 # 80000b18 -80000b10: 000e0067 jr t3 -80000b14: 00000013 nop -80000b18: 0000306b 0x306b -80000b1c: fe442783 lw a5,-28(s0) -80000b20: 00178793 addi a5,a5,1 -80000b24: fef42223 sw a5,-28(s0) -80000b28: fe442783 lw a5,-28(s0) -80000b2c: fec42703 lw a4,-20(s0) -80000b30: ece7ece3 bltu a5,a4,80000a08 <_vx_mat_mult+0x8c> -80000b34: 00000013 nop -80000b38: 05c12083 lw ra,92(sp) -80000b3c: 05812403 lw s0,88(sp) -80000b40: 06010113 addi sp,sp,96 -80000b44: 00008067 ret +800009f8: 0087a783 lw a5,8(a5) +800009fc: fcf42623 sw a5,-52(s0) +80000a00: fd842783 lw a5,-40(s0) +80000a04: 0107a783 lw a5,16(a5) +80000a08: fef42623 sw a5,-20(s0) +80000a0c: fec42703 lw a4,-20(s0) +80000a10: fac42783 lw a5,-84(s0) +80000a14: 02f707b3 mul a5,a4,a5 +80000a18: fef42423 sw a5,-24(s0) +80000a1c: fec42783 lw a5,-20(s0) +80000a20: 00079a63 bnez a5,80000a34 <_vx_mat_mult+0x78> +80000a24: 00100793 li a5,1 +80000a28: fef42623 sw a5,-20(s0) +80000a2c: fac42783 lw a5,-84(s0) +80000a30: fef42423 sw a5,-24(s0) +80000a34: fd842783 lw a5,-40(s0) +80000a38: 00c7a783 lw a5,12(a5) +80000a3c: fcf42423 sw a5,-56(s0) +80000a40: fe042223 sw zero,-28(s0) +80000a44: 1240006f j 80000b68 <_vx_mat_mult+0x1ac> +80000a48: fe042023 sw zero,-32(s0) +80000a4c: fc042e23 sw zero,-36(s0) +80000a50: 0780006f j 80000ac8 <_vx_mat_mult+0x10c> +80000a54: fa842703 lw a4,-88(s0) +80000a58: fc842783 lw a5,-56(s0) +80000a5c: 02f707b3 mul a5,a4,a5 +80000a60: fdc42703 lw a4,-36(s0) +80000a64: 00f707b3 add a5,a4,a5 +80000a68: fcf42223 sw a5,-60(s0) +80000a6c: fc842703 lw a4,-56(s0) +80000a70: fdc42783 lw a5,-36(s0) +80000a74: 02f707b3 mul a5,a4,a5 +80000a78: fe842703 lw a4,-24(s0) +80000a7c: 00f707b3 add a5,a4,a5 +80000a80: fcf42023 sw a5,-64(s0) +80000a84: fc442783 lw a5,-60(s0) +80000a88: 00279793 slli a5,a5,0x2 +80000a8c: fd442703 lw a4,-44(s0) +80000a90: 00f707b3 add a5,a4,a5 +80000a94: 0007a703 lw a4,0(a5) +80000a98: fc042783 lw a5,-64(s0) +80000a9c: 00279793 slli a5,a5,0x2 +80000aa0: fd042683 lw a3,-48(s0) +80000aa4: 00f687b3 add a5,a3,a5 +80000aa8: 0007a783 lw a5,0(a5) +80000aac: 02f707b3 mul a5,a4,a5 +80000ab0: fe042703 lw a4,-32(s0) +80000ab4: 00f707b3 add a5,a4,a5 +80000ab8: fef42023 sw a5,-32(s0) +80000abc: fdc42783 lw a5,-36(s0) +80000ac0: 00178793 addi a5,a5,1 +80000ac4: fcf42e23 sw a5,-36(s0) +80000ac8: fdc42703 lw a4,-36(s0) +80000acc: fc842783 lw a5,-56(s0) +80000ad0: f8f762e3 bltu a4,a5,80000a54 <_vx_mat_mult+0x98> +80000ad4: fa842703 lw a4,-88(s0) +80000ad8: fc842783 lw a5,-56(s0) +80000adc: 02f70733 mul a4,a4,a5 +80000ae0: fe842783 lw a5,-24(s0) +80000ae4: 00f707b3 add a5,a4,a5 +80000ae8: faf42e23 sw a5,-68(s0) +80000aec: fe842703 lw a4,-24(s0) +80000af0: fc842783 lw a5,-56(s0) +80000af4: 00f737b3 sltu a5,a4,a5 +80000af8: 0ff7f793 andi a5,a5,255 +80000afc: faf42c23 sw a5,-72(s0) +80000b00: fb842783 lw a5,-72(s0) +80000b04: 0017b793 seqz a5,a5 +80000b08: faf40ba3 sb a5,-73(s0) +80000b0c: fb744783 lbu a5,-73(s0) +80000b10: 00078f13 mv t5,a5 +80000b14: 800017b7 lui a5,0x80001 +80000b18: b5478f93 addi t6,a5,-1196 # 80000b54 +80000b1c: 000f206b 0xf206b +80000b20: 01ff707b 0x1ff707b +80000b24: fbc42783 lw a5,-68(s0) +80000b28: 00279793 slli a5,a5,0x2 +80000b2c: fcc42703 lw a4,-52(s0) +80000b30: 00f707b3 add a5,a4,a5 +80000b34: fe042703 lw a4,-32(s0) +80000b38: 00e7a023 sw a4,0(a5) +80000b3c: fe842783 lw a5,-24(s0) +80000b40: 00178793 addi a5,a5,1 +80000b44: fef42423 sw a5,-24(s0) +80000b48: 800017b7 lui a5,0x80001 +80000b4c: b5878e13 addi t3,a5,-1192 # 80000b58 +80000b50: 000e0067 jr t3 +80000b54: 00000013 nop +80000b58: 0000306b 0x306b +80000b5c: fe442783 lw a5,-28(s0) +80000b60: 00178793 addi a5,a5,1 +80000b64: fef42223 sw a5,-28(s0) +80000b68: fe442783 lw a5,-28(s0) +80000b6c: fec42703 lw a4,-20(s0) +80000b70: ece7ece3 bltu a5,a4,80000a48 <_vx_mat_mult+0x8c> +80000b74: 00000013 nop +80000b78: 05c12083 lw ra,92(sp) +80000b7c: 05812403 lw s0,88(sp) +80000b80: 06010113 addi sp,sp,96 +80000b84: 00008067 ret -80000b48 : -80000b48: fc010113 addi sp,sp,-64 -80000b4c: 02112e23 sw ra,60(sp) -80000b50: 02812c23 sw s0,56(sp) -80000b54: 04010413 addi s0,sp,64 -80000b58: fca42e23 sw a0,-36(s0) -80000b5c: fcb42c23 sw a1,-40(s0) -80000b60: fcc42a23 sw a2,-44(s0) -80000b64: fcd42823 sw a3,-48(s0) -80000b68: fce42623 sw a4,-52(s0) -80000b6c: 810037b7 lui a5,0x81003 -80000b70: fdc42703 lw a4,-36(s0) -80000b74: 98e7ac23 sw a4,-1640(a5) # 81002998 -80000b78: 810037b7 lui a5,0x81003 -80000b7c: 99878793 addi a5,a5,-1640 # 81002998 -80000b80: fd842703 lw a4,-40(s0) -80000b84: 00e7a223 sw a4,4(a5) -80000b88: 810037b7 lui a5,0x81003 -80000b8c: 99878793 addi a5,a5,-1640 # 81002998 -80000b90: fd442703 lw a4,-44(s0) -80000b94: 00e7a423 sw a4,8(a5) -80000b98: 810037b7 lui a5,0x81003 -80000b9c: 99878793 addi a5,a5,-1640 # 81002998 -80000ba0: fcc42703 lw a4,-52(s0) -80000ba4: 00e7a623 sw a4,12(a5) -80000ba8: 810037b7 lui a5,0x81003 -80000bac: 99878793 addi a5,a5,-1640 # 81002998 -80000bb0: fd042703 lw a4,-48(s0) -80000bb4: 00e7a823 sw a4,16(a5) -80000bb8: fcc42783 lw a5,-52(s0) -80000bbc: 0037d793 srli a5,a5,0x3 -80000bc0: fef42623 sw a5,-20(s0) -80000bc4: fcc42783 lw a5,-52(s0) -80000bc8: 0077f793 andi a5,a5,7 -80000bcc: 00078863 beqz a5,80000bdc -80000bd0: fec42783 lw a5,-20(s0) -80000bd4: 00178793 addi a5,a5,1 -80000bd8: fef42623 sw a5,-20(s0) -80000bdc: 810037b7 lui a5,0x81003 -80000be0: 99878793 addi a5,a5,-1640 # 81002998 -80000be4: fec42703 lw a4,-20(s0) -80000be8: 00e7aa23 sw a4,20(a5) -80000bec: fcc42703 lw a4,-52(s0) -80000bf0: 00700793 li a5,7 -80000bf4: 02e7f263 bgeu a5,a4,80000c18 -80000bf8: 810037b7 lui a5,0x81003 -80000bfc: 99878693 addi a3,a5,-1640 # 81002998 -80000c00: 800017b7 lui a5,0x80001 -80000c04: c6878613 addi a2,a5,-920 # 80000c68 -80000c08: 00800593 li a1,8 -80000c0c: fd042503 lw a0,-48(s0) -80000c10: 80dff0ef jal ra,8000041c -80000c14: 0200006f j 80000c34 -80000c18: 810037b7 lui a5,0x81003 -80000c1c: 99878693 addi a3,a5,-1640 # 81002998 -80000c20: 800017b7 lui a5,0x80001 -80000c24: c6878613 addi a2,a5,-920 # 80000c68 -80000c28: fcc42583 lw a1,-52(s0) -80000c2c: fd042503 lw a0,-48(s0) -80000c30: fecff0ef jal ra,8000041c -80000c34: fd042703 lw a4,-48(s0) -80000c38: 00800793 li a5,8 -80000c3c: 00e7f863 bgeu a5,a4,80000c4c -80000c40: 00800513 li a0,8 -80000c44: 8bdff0ef jal ra,80000500 -80000c48: 00c0006f j 80000c54 -80000c4c: fd042503 lw a0,-48(s0) -80000c50: 8b1ff0ef jal ra,80000500 -80000c54: 00000013 nop -80000c58: 03c12083 lw ra,60(sp) -80000c5c: 03812403 lw s0,56(sp) -80000c60: 04010113 addi sp,sp,64 -80000c64: 00008067 ret +80000b88 : +80000b88: fc010113 addi sp,sp,-64 +80000b8c: 02112e23 sw ra,60(sp) +80000b90: 02812c23 sw s0,56(sp) +80000b94: 04010413 addi s0,sp,64 +80000b98: fca42e23 sw a0,-36(s0) +80000b9c: fcb42c23 sw a1,-40(s0) +80000ba0: fcc42a23 sw a2,-44(s0) +80000ba4: fcd42823 sw a3,-48(s0) +80000ba8: fce42623 sw a4,-52(s0) +80000bac: 810037b7 lui a5,0x81003 +80000bb0: fdc42703 lw a4,-36(s0) +80000bb4: 98e7a423 sw a4,-1656(a5) # 81002988 +80000bb8: 810037b7 lui a5,0x81003 +80000bbc: 98878793 addi a5,a5,-1656 # 81002988 +80000bc0: fd842703 lw a4,-40(s0) +80000bc4: 00e7a223 sw a4,4(a5) +80000bc8: 810037b7 lui a5,0x81003 +80000bcc: 98878793 addi a5,a5,-1656 # 81002988 +80000bd0: fd442703 lw a4,-44(s0) +80000bd4: 00e7a423 sw a4,8(a5) +80000bd8: 810037b7 lui a5,0x81003 +80000bdc: 98878793 addi a5,a5,-1656 # 81002988 +80000be0: fcc42703 lw a4,-52(s0) +80000be4: 00e7a623 sw a4,12(a5) +80000be8: 810037b7 lui a5,0x81003 +80000bec: 98878793 addi a5,a5,-1656 # 81002988 +80000bf0: fd042703 lw a4,-48(s0) +80000bf4: 00e7a823 sw a4,16(a5) +80000bf8: db4ff0ef jal ra,800001ac +80000bfc: fea42423 sw a0,-24(s0) +80000c00: fcc42703 lw a4,-52(s0) +80000c04: fe842783 lw a5,-24(s0) +80000c08: 02f757b3 divu a5,a4,a5 +80000c0c: fef42623 sw a5,-20(s0) +80000c10: fcc42703 lw a4,-52(s0) +80000c14: fe842783 lw a5,-24(s0) +80000c18: 02f777b3 remu a5,a4,a5 +80000c1c: 00078863 beqz a5,80000c2c +80000c20: fec42783 lw a5,-20(s0) +80000c24: 00178793 addi a5,a5,1 +80000c28: fef42623 sw a5,-20(s0) +80000c2c: 810037b7 lui a5,0x81003 +80000c30: 98878793 addi a5,a5,-1656 # 81002988 +80000c34: fec42703 lw a4,-20(s0) +80000c38: 00e7aa23 sw a4,20(a5) +80000c3c: fcc42703 lw a4,-52(s0) +80000c40: fe842783 lw a5,-24(s0) +80000c44: 02f76263 bltu a4,a5,80000c68 +80000c48: 810037b7 lui a5,0x81003 +80000c4c: 98878693 addi a3,a5,-1656 # 81002988 +80000c50: 800017b7 lui a5,0x80001 +80000c54: cc078613 addi a2,a5,-832 # 80000cc0 +80000c58: fe842583 lw a1,-24(s0) +80000c5c: fd042503 lw a0,-48(s0) +80000c60: facff0ef jal ra,8000040c +80000c64: 0200006f j 80000c84 +80000c68: 810037b7 lui a5,0x81003 +80000c6c: 98878693 addi a3,a5,-1656 # 81002988 +80000c70: 800017b7 lui a5,0x80001 +80000c74: cc078613 addi a2,a5,-832 # 80000cc0 +80000c78: fcc42583 lw a1,-52(s0) +80000c7c: fd042503 lw a0,-48(s0) +80000c80: f8cff0ef jal ra,8000040c +80000c84: d20ff0ef jal ra,800001a4 +80000c88: fea42223 sw a0,-28(s0) +80000c8c: fd042703 lw a4,-48(s0) +80000c90: fe442783 lw a5,-28(s0) +80000c94: 00e7f863 bgeu a5,a4,80000ca4 +80000c98: fe442503 lw a0,-28(s0) +80000c9c: 86dff0ef jal ra,80000508 +80000ca0: 00c0006f j 80000cac +80000ca4: fd042503 lw a0,-48(s0) +80000ca8: 861ff0ef jal ra,80000508 +80000cac: 00000013 nop +80000cb0: 03c12083 lw ra,60(sp) +80000cb4: 03812403 lw s0,56(sp) +80000cb8: 04010113 addi sp,sp,64 +80000cbc: 00008067 ret -80000c68 <_vx_mat_add>: -80000c68: fb010113 addi sp,sp,-80 -80000c6c: 04112623 sw ra,76(sp) -80000c70: 04812423 sw s0,72(sp) -80000c74: 05010413 addi s0,sp,80 -80000c78: faa42e23 sw a0,-68(s0) -80000c7c: fab42c23 sw a1,-72(s0) -80000c80: 93dff0ef jal ra,800005bc -80000c84: fea42023 sw a0,-32(s0) -80000c88: fe042783 lw a5,-32(s0) -80000c8c: 0007a783 lw a5,0(a5) -80000c90: fcf42e23 sw a5,-36(s0) -80000c94: fe042783 lw a5,-32(s0) -80000c98: 0047a783 lw a5,4(a5) -80000c9c: fcf42c23 sw a5,-40(s0) -80000ca0: fe042783 lw a5,-32(s0) -80000ca4: 0087a783 lw a5,8(a5) -80000ca8: fcf42a23 sw a5,-44(s0) -80000cac: fe042783 lw a5,-32(s0) -80000cb0: 0147a783 lw a5,20(a5) -80000cb4: fef42623 sw a5,-20(s0) -80000cb8: fec42703 lw a4,-20(s0) -80000cbc: fbc42783 lw a5,-68(s0) -80000cc0: 02f707b3 mul a5,a4,a5 -80000cc4: fef42423 sw a5,-24(s0) -80000cc8: fec42783 lw a5,-20(s0) -80000ccc: 00079a63 bnez a5,80000ce0 <_vx_mat_add+0x78> -80000cd0: 00100793 li a5,1 -80000cd4: fef42623 sw a5,-20(s0) -80000cd8: fbc42783 lw a5,-68(s0) -80000cdc: fef42423 sw a5,-24(s0) +80000cc0 <_vx_mat_add>: +80000cc0: fb010113 addi sp,sp,-80 +80000cc4: 04112623 sw ra,76(sp) +80000cc8: 04812423 sw s0,72(sp) +80000ccc: 05010413 addi s0,sp,80 +80000cd0: faa42e23 sw a0,-68(s0) +80000cd4: fab42c23 sw a1,-72(s0) +80000cd8: 8fdff0ef jal ra,800005d4 +80000cdc: fea42023 sw a0,-32(s0) 80000ce0: fe042783 lw a5,-32(s0) -80000ce4: 00c7a783 lw a5,12(a5) -80000ce8: fcf42823 sw a5,-48(s0) -80000cec: fe042223 sw zero,-28(s0) -80000cf0: 0c00006f j 80000db0 <_vx_mat_add+0x148> -80000cf4: fb842703 lw a4,-72(s0) -80000cf8: fd042783 lw a5,-48(s0) -80000cfc: 02f70733 mul a4,a4,a5 -80000d00: fe842783 lw a5,-24(s0) -80000d04: 00f707b3 add a5,a4,a5 -80000d08: fcf42623 sw a5,-52(s0) -80000d0c: fe842703 lw a4,-24(s0) -80000d10: fd042783 lw a5,-48(s0) -80000d14: 00f737b3 sltu a5,a4,a5 -80000d18: 0ff7f793 andi a5,a5,255 -80000d1c: fcf42423 sw a5,-56(s0) -80000d20: fc842783 lw a5,-56(s0) -80000d24: 0017b793 seqz a5,a5 -80000d28: fcf403a3 sb a5,-57(s0) -80000d2c: fc744783 lbu a5,-57(s0) -80000d30: 00078f13 mv t5,a5 -80000d34: 800017b7 lui a5,0x80001 -80000d38: d9c78f93 addi t6,a5,-612 # 80000d9c -80000d3c: 000f206b 0xf206b -80000d40: 01ff707b 0x1ff707b -80000d44: fcc42783 lw a5,-52(s0) -80000d48: 00279793 slli a5,a5,0x2 -80000d4c: fdc42703 lw a4,-36(s0) -80000d50: 00f707b3 add a5,a4,a5 -80000d54: 0007a683 lw a3,0(a5) -80000d58: fcc42783 lw a5,-52(s0) -80000d5c: 00279793 slli a5,a5,0x2 -80000d60: fd842703 lw a4,-40(s0) -80000d64: 00f707b3 add a5,a4,a5 -80000d68: 0007a703 lw a4,0(a5) -80000d6c: fcc42783 lw a5,-52(s0) -80000d70: 00279793 slli a5,a5,0x2 -80000d74: fd442603 lw a2,-44(s0) -80000d78: 00f607b3 add a5,a2,a5 -80000d7c: 00e68733 add a4,a3,a4 -80000d80: 00e7a023 sw a4,0(a5) -80000d84: fe842783 lw a5,-24(s0) -80000d88: 00178793 addi a5,a5,1 -80000d8c: fef42423 sw a5,-24(s0) -80000d90: 800017b7 lui a5,0x80001 -80000d94: da078e13 addi t3,a5,-608 # 80000da0 -80000d98: 000e0067 jr t3 -80000d9c: 00000013 nop -80000da0: 0000306b 0x306b -80000da4: fe442783 lw a5,-28(s0) -80000da8: 00178793 addi a5,a5,1 -80000dac: fef42223 sw a5,-28(s0) -80000db0: fe442783 lw a5,-28(s0) -80000db4: fec42703 lw a4,-20(s0) -80000db8: f2e7eee3 bltu a5,a4,80000cf4 <_vx_mat_add+0x8c> -80000dbc: 00000013 nop -80000dc0: 04c12083 lw ra,76(sp) -80000dc4: 04812403 lw s0,72(sp) -80000dc8: 05010113 addi sp,sp,80 -80000dcc: 00008067 ret +80000ce4: 0007a783 lw a5,0(a5) +80000ce8: fcf42e23 sw a5,-36(s0) +80000cec: fe042783 lw a5,-32(s0) +80000cf0: 0047a783 lw a5,4(a5) +80000cf4: fcf42c23 sw a5,-40(s0) +80000cf8: fe042783 lw a5,-32(s0) +80000cfc: 0087a783 lw a5,8(a5) +80000d00: fcf42a23 sw a5,-44(s0) +80000d04: fe042783 lw a5,-32(s0) +80000d08: 0147a783 lw a5,20(a5) +80000d0c: fef42623 sw a5,-20(s0) +80000d10: fec42703 lw a4,-20(s0) +80000d14: fbc42783 lw a5,-68(s0) +80000d18: 02f707b3 mul a5,a4,a5 +80000d1c: fef42423 sw a5,-24(s0) +80000d20: fec42783 lw a5,-20(s0) +80000d24: 00079a63 bnez a5,80000d38 <_vx_mat_add+0x78> +80000d28: 00100793 li a5,1 +80000d2c: fef42623 sw a5,-20(s0) +80000d30: fbc42783 lw a5,-68(s0) +80000d34: fef42423 sw a5,-24(s0) +80000d38: fe042783 lw a5,-32(s0) +80000d3c: 00c7a783 lw a5,12(a5) +80000d40: fcf42823 sw a5,-48(s0) +80000d44: fe042223 sw zero,-28(s0) +80000d48: 0c00006f j 80000e08 <_vx_mat_add+0x148> +80000d4c: fb842703 lw a4,-72(s0) +80000d50: fd042783 lw a5,-48(s0) +80000d54: 02f70733 mul a4,a4,a5 +80000d58: fe842783 lw a5,-24(s0) +80000d5c: 00f707b3 add a5,a4,a5 +80000d60: fcf42623 sw a5,-52(s0) +80000d64: fe842703 lw a4,-24(s0) +80000d68: fd042783 lw a5,-48(s0) +80000d6c: 00f737b3 sltu a5,a4,a5 +80000d70: 0ff7f793 andi a5,a5,255 +80000d74: fcf42423 sw a5,-56(s0) +80000d78: fc842783 lw a5,-56(s0) +80000d7c: 0017b793 seqz a5,a5 +80000d80: fcf403a3 sb a5,-57(s0) +80000d84: fc744783 lbu a5,-57(s0) +80000d88: 00078f13 mv t5,a5 +80000d8c: 800017b7 lui a5,0x80001 +80000d90: df478f93 addi t6,a5,-524 # 80000df4 +80000d94: 000f206b 0xf206b +80000d98: 01ff707b 0x1ff707b +80000d9c: fcc42783 lw a5,-52(s0) +80000da0: 00279793 slli a5,a5,0x2 +80000da4: fdc42703 lw a4,-36(s0) +80000da8: 00f707b3 add a5,a4,a5 +80000dac: 0007a683 lw a3,0(a5) +80000db0: fcc42783 lw a5,-52(s0) +80000db4: 00279793 slli a5,a5,0x2 +80000db8: fd842703 lw a4,-40(s0) +80000dbc: 00f707b3 add a5,a4,a5 +80000dc0: 0007a703 lw a4,0(a5) +80000dc4: fcc42783 lw a5,-52(s0) +80000dc8: 00279793 slli a5,a5,0x2 +80000dcc: fd442603 lw a2,-44(s0) +80000dd0: 00f607b3 add a5,a2,a5 +80000dd4: 00e68733 add a4,a3,a4 +80000dd8: 00e7a023 sw a4,0(a5) +80000ddc: fe842783 lw a5,-24(s0) +80000de0: 00178793 addi a5,a5,1 +80000de4: fef42423 sw a5,-24(s0) +80000de8: 800017b7 lui a5,0x80001 +80000dec: df878e13 addi t3,a5,-520 # 80000df8 +80000df0: 000e0067 jr t3 +80000df4: 00000013 nop +80000df8: 0000306b 0x306b +80000dfc: fe442783 lw a5,-28(s0) +80000e00: 00178793 addi a5,a5,1 +80000e04: fef42223 sw a5,-28(s0) +80000e08: fe442783 lw a5,-28(s0) +80000e0c: fec42703 lw a4,-20(s0) +80000e10: f2e7eee3 bltu a5,a4,80000d4c <_vx_mat_add+0x8c> +80000e14: 00000013 nop +80000e18: 04c12083 lw ra,76(sp) +80000e1c: 04812403 lw s0,72(sp) +80000e20: 05010113 addi sp,sp,80 +80000e24: 00008067 ret -80000dd0 : -80000dd0: fc010113 addi sp,sp,-64 -80000dd4: 02112e23 sw ra,60(sp) -80000dd8: 02812c23 sw s0,56(sp) -80000ddc: 04010413 addi s0,sp,64 -80000de0: fca42e23 sw a0,-36(s0) -80000de4: fcb42c23 sw a1,-40(s0) -80000de8: fcc42a23 sw a2,-44(s0) -80000dec: fcd42823 sw a3,-48(s0) -80000df0: fce42623 sw a4,-52(s0) -80000df4: 810037b7 lui a5,0x81003 -80000df8: fdc42703 lw a4,-36(s0) -80000dfc: 98e7ac23 sw a4,-1640(a5) # 81002998 -80000e00: 810037b7 lui a5,0x81003 -80000e04: 99878793 addi a5,a5,-1640 # 81002998 -80000e08: fd842703 lw a4,-40(s0) -80000e0c: 00e7a223 sw a4,4(a5) -80000e10: 810037b7 lui a5,0x81003 -80000e14: 99878793 addi a5,a5,-1640 # 81002998 -80000e18: fd442703 lw a4,-44(s0) -80000e1c: 00e7a423 sw a4,8(a5) -80000e20: 810037b7 lui a5,0x81003 -80000e24: 99878793 addi a5,a5,-1640 # 81002998 -80000e28: fcc42703 lw a4,-52(s0) -80000e2c: 00e7a623 sw a4,12(a5) -80000e30: 810037b7 lui a5,0x81003 -80000e34: 99878793 addi a5,a5,-1640 # 81002998 -80000e38: fd042703 lw a4,-48(s0) -80000e3c: 00e7a823 sw a4,16(a5) -80000e40: fcc42783 lw a5,-52(s0) -80000e44: 0037d793 srli a5,a5,0x3 -80000e48: fef42623 sw a5,-20(s0) -80000e4c: fcc42783 lw a5,-52(s0) -80000e50: 0077f793 andi a5,a5,7 -80000e54: 00078863 beqz a5,80000e64 -80000e58: fec42783 lw a5,-20(s0) -80000e5c: 00178793 addi a5,a5,1 -80000e60: fef42623 sw a5,-20(s0) -80000e64: 810037b7 lui a5,0x81003 -80000e68: 99878793 addi a5,a5,-1640 # 81002998 -80000e6c: fec42703 lw a4,-20(s0) -80000e70: 00e7aa23 sw a4,20(a5) -80000e74: fcc42703 lw a4,-52(s0) -80000e78: 00700793 li a5,7 -80000e7c: 02e7f263 bgeu a5,a4,80000ea0 -80000e80: 810037b7 lui a5,0x81003 -80000e84: 99878693 addi a3,a5,-1640 # 81002998 -80000e88: 800017b7 lui a5,0x80001 -80000e8c: ef078613 addi a2,a5,-272 # 80000ef0 -80000e90: 00800593 li a1,8 -80000e94: fd042503 lw a0,-48(s0) -80000e98: d84ff0ef jal ra,8000041c -80000e9c: 0200006f j 80000ebc -80000ea0: 810037b7 lui a5,0x81003 -80000ea4: 99878693 addi a3,a5,-1640 # 81002998 -80000ea8: 800017b7 lui a5,0x80001 -80000eac: ef078613 addi a2,a5,-272 # 80000ef0 -80000eb0: fcc42583 lw a1,-52(s0) -80000eb4: fd042503 lw a0,-48(s0) -80000eb8: d64ff0ef jal ra,8000041c -80000ebc: fd042703 lw a4,-48(s0) -80000ec0: 00800793 li a5,8 -80000ec4: 00e7f863 bgeu a5,a4,80000ed4 -80000ec8: 00800513 li a0,8 -80000ecc: e34ff0ef jal ra,80000500 -80000ed0: 00c0006f j 80000edc -80000ed4: fd042503 lw a0,-48(s0) -80000ed8: e28ff0ef jal ra,80000500 -80000edc: 00000013 nop -80000ee0: 03c12083 lw ra,60(sp) -80000ee4: 03812403 lw s0,56(sp) -80000ee8: 04010113 addi sp,sp,64 -80000eec: 00008067 ret +80000e28 : +80000e28: fc010113 addi sp,sp,-64 +80000e2c: 02112e23 sw ra,60(sp) +80000e30: 02812c23 sw s0,56(sp) +80000e34: 04010413 addi s0,sp,64 +80000e38: fca42e23 sw a0,-36(s0) +80000e3c: fcb42c23 sw a1,-40(s0) +80000e40: fcc42a23 sw a2,-44(s0) +80000e44: fcd42823 sw a3,-48(s0) +80000e48: fce42623 sw a4,-52(s0) +80000e4c: 810037b7 lui a5,0x81003 +80000e50: fdc42703 lw a4,-36(s0) +80000e54: 98e7a423 sw a4,-1656(a5) # 81002988 +80000e58: 810037b7 lui a5,0x81003 +80000e5c: 98878793 addi a5,a5,-1656 # 81002988 +80000e60: fd842703 lw a4,-40(s0) +80000e64: 00e7a223 sw a4,4(a5) +80000e68: 810037b7 lui a5,0x81003 +80000e6c: 98878793 addi a5,a5,-1656 # 81002988 +80000e70: fd442703 lw a4,-44(s0) +80000e74: 00e7a423 sw a4,8(a5) +80000e78: 810037b7 lui a5,0x81003 +80000e7c: 98878793 addi a5,a5,-1656 # 81002988 +80000e80: fcc42703 lw a4,-52(s0) +80000e84: 00e7a623 sw a4,12(a5) +80000e88: 810037b7 lui a5,0x81003 +80000e8c: 98878793 addi a5,a5,-1656 # 81002988 +80000e90: fd042703 lw a4,-48(s0) +80000e94: 00e7a823 sw a4,16(a5) +80000e98: b14ff0ef jal ra,800001ac +80000e9c: fea42423 sw a0,-24(s0) +80000ea0: fcc42703 lw a4,-52(s0) +80000ea4: fe842783 lw a5,-24(s0) +80000ea8: 02f757b3 divu a5,a4,a5 +80000eac: fef42623 sw a5,-20(s0) +80000eb0: fcc42703 lw a4,-52(s0) +80000eb4: fe842783 lw a5,-24(s0) +80000eb8: 02f777b3 remu a5,a4,a5 +80000ebc: 00078863 beqz a5,80000ecc +80000ec0: fec42783 lw a5,-20(s0) +80000ec4: 00178793 addi a5,a5,1 +80000ec8: fef42623 sw a5,-20(s0) +80000ecc: 810037b7 lui a5,0x81003 +80000ed0: 98878793 addi a5,a5,-1656 # 81002988 +80000ed4: fec42703 lw a4,-20(s0) +80000ed8: 00e7aa23 sw a4,20(a5) +80000edc: fcc42703 lw a4,-52(s0) +80000ee0: fe842783 lw a5,-24(s0) +80000ee4: 02f76263 bltu a4,a5,80000f08 +80000ee8: 810037b7 lui a5,0x81003 +80000eec: 98878693 addi a3,a5,-1656 # 81002988 +80000ef0: 800017b7 lui a5,0x80001 +80000ef4: f6078613 addi a2,a5,-160 # 80000f60 +80000ef8: fe842583 lw a1,-24(s0) +80000efc: fd042503 lw a0,-48(s0) +80000f00: d0cff0ef jal ra,8000040c +80000f04: 0200006f j 80000f24 +80000f08: 810037b7 lui a5,0x81003 +80000f0c: 98878693 addi a3,a5,-1656 # 81002988 +80000f10: 800017b7 lui a5,0x80001 +80000f14: f6078613 addi a2,a5,-160 # 80000f60 +80000f18: fcc42583 lw a1,-52(s0) +80000f1c: fd042503 lw a0,-48(s0) +80000f20: cecff0ef jal ra,8000040c +80000f24: a80ff0ef jal ra,800001a4 +80000f28: fea42223 sw a0,-28(s0) +80000f2c: fd042703 lw a4,-48(s0) +80000f30: fe442783 lw a5,-28(s0) +80000f34: 00e7f863 bgeu a5,a4,80000f44 +80000f38: fe442503 lw a0,-28(s0) +80000f3c: dccff0ef jal ra,80000508 +80000f40: 00c0006f j 80000f4c +80000f44: fd042503 lw a0,-48(s0) +80000f48: dc0ff0ef jal ra,80000508 +80000f4c: 00000013 nop +80000f50: 03c12083 lw ra,60(sp) +80000f54: 03812403 lw s0,56(sp) +80000f58: 04010113 addi sp,sp,64 +80000f5c: 00008067 ret -80000ef0 <_vx_mat_sub>: -80000ef0: fb010113 addi sp,sp,-80 -80000ef4: 04112623 sw ra,76(sp) -80000ef8: 04812423 sw s0,72(sp) -80000efc: 05010413 addi s0,sp,80 -80000f00: faa42e23 sw a0,-68(s0) -80000f04: fab42c23 sw a1,-72(s0) -80000f08: eb4ff0ef jal ra,800005bc -80000f0c: fea42023 sw a0,-32(s0) -80000f10: fe042783 lw a5,-32(s0) -80000f14: 0007a783 lw a5,0(a5) -80000f18: fcf42e23 sw a5,-36(s0) -80000f1c: fe042783 lw a5,-32(s0) -80000f20: 0047a783 lw a5,4(a5) -80000f24: fcf42c23 sw a5,-40(s0) -80000f28: fe042783 lw a5,-32(s0) -80000f2c: 0087a783 lw a5,8(a5) -80000f30: fcf42a23 sw a5,-44(s0) -80000f34: fe042783 lw a5,-32(s0) -80000f38: 0147a783 lw a5,20(a5) -80000f3c: fef42623 sw a5,-20(s0) -80000f40: fec42703 lw a4,-20(s0) -80000f44: fbc42783 lw a5,-68(s0) -80000f48: 02f707b3 mul a5,a4,a5 -80000f4c: fef42423 sw a5,-24(s0) -80000f50: fec42783 lw a5,-20(s0) -80000f54: 00079a63 bnez a5,80000f68 <_vx_mat_sub+0x78> -80000f58: 00100793 li a5,1 -80000f5c: fef42623 sw a5,-20(s0) -80000f60: fbc42783 lw a5,-68(s0) -80000f64: fef42423 sw a5,-24(s0) -80000f68: fe042783 lw a5,-32(s0) -80000f6c: 00c7a783 lw a5,12(a5) -80000f70: fcf42823 sw a5,-48(s0) -80000f74: fe042223 sw zero,-28(s0) -80000f78: 0c00006f j 80001038 <_vx_mat_sub+0x148> -80000f7c: fb842703 lw a4,-72(s0) -80000f80: fd042783 lw a5,-48(s0) -80000f84: 02f70733 mul a4,a4,a5 -80000f88: fe842783 lw a5,-24(s0) -80000f8c: 00f707b3 add a5,a4,a5 -80000f90: fcf42623 sw a5,-52(s0) -80000f94: fe842703 lw a4,-24(s0) -80000f98: fd042783 lw a5,-48(s0) -80000f9c: 00f737b3 sltu a5,a4,a5 -80000fa0: 0ff7f793 andi a5,a5,255 -80000fa4: fcf42423 sw a5,-56(s0) -80000fa8: fc842783 lw a5,-56(s0) -80000fac: 0017b793 seqz a5,a5 -80000fb0: fcf403a3 sb a5,-57(s0) -80000fb4: fc744783 lbu a5,-57(s0) -80000fb8: 00078f13 mv t5,a5 -80000fbc: 800017b7 lui a5,0x80001 -80000fc0: 02478f93 addi t6,a5,36 # 80001024 -80000fc4: 000f206b 0xf206b -80000fc8: 01ff707b 0x1ff707b -80000fcc: fcc42783 lw a5,-52(s0) -80000fd0: 00279793 slli a5,a5,0x2 -80000fd4: fdc42703 lw a4,-36(s0) -80000fd8: 00f707b3 add a5,a4,a5 -80000fdc: 0007a683 lw a3,0(a5) -80000fe0: fcc42783 lw a5,-52(s0) -80000fe4: 00279793 slli a5,a5,0x2 -80000fe8: fd842703 lw a4,-40(s0) -80000fec: 00f707b3 add a5,a4,a5 -80000ff0: 0007a703 lw a4,0(a5) -80000ff4: fcc42783 lw a5,-52(s0) -80000ff8: 00279793 slli a5,a5,0x2 -80000ffc: fd442603 lw a2,-44(s0) -80001000: 00f607b3 add a5,a2,a5 -80001004: 40e68733 sub a4,a3,a4 -80001008: 00e7a023 sw a4,0(a5) -8000100c: fe842783 lw a5,-24(s0) -80001010: 00178793 addi a5,a5,1 -80001014: fef42423 sw a5,-24(s0) -80001018: 800017b7 lui a5,0x80001 -8000101c: 02878e13 addi t3,a5,40 # 80001028 -80001020: 000e0067 jr t3 -80001024: 00000013 nop -80001028: 0000306b 0x306b -8000102c: fe442783 lw a5,-28(s0) -80001030: 00178793 addi a5,a5,1 -80001034: fef42223 sw a5,-28(s0) -80001038: fe442783 lw a5,-28(s0) -8000103c: fec42703 lw a4,-20(s0) -80001040: f2e7eee3 bltu a5,a4,80000f7c <_vx_mat_sub+0x8c> -80001044: 00000013 nop -80001048: 04c12083 lw ra,76(sp) -8000104c: 04812403 lw s0,72(sp) -80001050: 05010113 addi sp,sp,80 -80001054: 00008067 ret +80000f60 <_vx_mat_sub>: +80000f60: fb010113 addi sp,sp,-80 +80000f64: 04112623 sw ra,76(sp) +80000f68: 04812423 sw s0,72(sp) +80000f6c: 05010413 addi s0,sp,80 +80000f70: faa42e23 sw a0,-68(s0) +80000f74: fab42c23 sw a1,-72(s0) +80000f78: e5cff0ef jal ra,800005d4 +80000f7c: fea42023 sw a0,-32(s0) +80000f80: fe042783 lw a5,-32(s0) +80000f84: 0007a783 lw a5,0(a5) +80000f88: fcf42e23 sw a5,-36(s0) +80000f8c: fe042783 lw a5,-32(s0) +80000f90: 0047a783 lw a5,4(a5) +80000f94: fcf42c23 sw a5,-40(s0) +80000f98: fe042783 lw a5,-32(s0) +80000f9c: 0087a783 lw a5,8(a5) +80000fa0: fcf42a23 sw a5,-44(s0) +80000fa4: fe042783 lw a5,-32(s0) +80000fa8: 0147a783 lw a5,20(a5) +80000fac: fef42623 sw a5,-20(s0) +80000fb0: fec42703 lw a4,-20(s0) +80000fb4: fbc42783 lw a5,-68(s0) +80000fb8: 02f707b3 mul a5,a4,a5 +80000fbc: fef42423 sw a5,-24(s0) +80000fc0: fec42783 lw a5,-20(s0) +80000fc4: 00079a63 bnez a5,80000fd8 <_vx_mat_sub+0x78> +80000fc8: 00100793 li a5,1 +80000fcc: fef42623 sw a5,-20(s0) +80000fd0: fbc42783 lw a5,-68(s0) +80000fd4: fef42423 sw a5,-24(s0) +80000fd8: fe042783 lw a5,-32(s0) +80000fdc: 00c7a783 lw a5,12(a5) +80000fe0: fcf42823 sw a5,-48(s0) +80000fe4: fe042223 sw zero,-28(s0) +80000fe8: 0c00006f j 800010a8 <_vx_mat_sub+0x148> +80000fec: fb842703 lw a4,-72(s0) +80000ff0: fd042783 lw a5,-48(s0) +80000ff4: 02f70733 mul a4,a4,a5 +80000ff8: fe842783 lw a5,-24(s0) +80000ffc: 00f707b3 add a5,a4,a5 +80001000: fcf42623 sw a5,-52(s0) +80001004: fe842703 lw a4,-24(s0) +80001008: fd042783 lw a5,-48(s0) +8000100c: 00f737b3 sltu a5,a4,a5 +80001010: 0ff7f793 andi a5,a5,255 +80001014: fcf42423 sw a5,-56(s0) +80001018: fc842783 lw a5,-56(s0) +8000101c: 0017b793 seqz a5,a5 +80001020: fcf403a3 sb a5,-57(s0) +80001024: fc744783 lbu a5,-57(s0) +80001028: 00078f13 mv t5,a5 +8000102c: 800017b7 lui a5,0x80001 +80001030: 09478f93 addi t6,a5,148 # 80001094 +80001034: 000f206b 0xf206b +80001038: 01ff707b 0x1ff707b +8000103c: fcc42783 lw a5,-52(s0) +80001040: 00279793 slli a5,a5,0x2 +80001044: fdc42703 lw a4,-36(s0) +80001048: 00f707b3 add a5,a4,a5 +8000104c: 0007a683 lw a3,0(a5) +80001050: fcc42783 lw a5,-52(s0) +80001054: 00279793 slli a5,a5,0x2 +80001058: fd842703 lw a4,-40(s0) +8000105c: 00f707b3 add a5,a4,a5 +80001060: 0007a703 lw a4,0(a5) +80001064: fcc42783 lw a5,-52(s0) +80001068: 00279793 slli a5,a5,0x2 +8000106c: fd442603 lw a2,-44(s0) +80001070: 00f607b3 add a5,a2,a5 +80001074: 40e68733 sub a4,a3,a4 +80001078: 00e7a023 sw a4,0(a5) +8000107c: fe842783 lw a5,-24(s0) +80001080: 00178793 addi a5,a5,1 +80001084: fef42423 sw a5,-24(s0) +80001088: 800017b7 lui a5,0x80001 +8000108c: 09878e13 addi t3,a5,152 # 80001098 +80001090: 000e0067 jr t3 +80001094: 00000013 nop +80001098: 0000306b 0x306b +8000109c: fe442783 lw a5,-28(s0) +800010a0: 00178793 addi a5,a5,1 +800010a4: fef42223 sw a5,-28(s0) +800010a8: fe442783 lw a5,-28(s0) +800010ac: fec42703 lw a4,-20(s0) +800010b0: f2e7eee3 bltu a5,a4,80000fec <_vx_mat_sub+0x8c> +800010b4: 00000013 nop +800010b8: 04c12083 lw ra,76(sp) +800010bc: 04812403 lw s0,72(sp) +800010c0: 05010113 addi sp,sp,80 +800010c4: 00008067 ret -80001058 : -80001058: fe010113 addi sp,sp,-32 -8000105c: 00812e23 sw s0,28(sp) -80001060: 02010413 addi s0,sp,32 -80001064: fe042623 sw zero,-20(s0) -80001068: 0480006f j 800010b0 -8000106c: 810037b7 lui a5,0x81003 -80001070: fec42703 lw a4,-20(s0) -80001074: 00271713 slli a4,a4,0x2 -80001078: 9b078793 addi a5,a5,-1616 # 810029b0 -8000107c: 00f707b3 add a5,a4,a5 -80001080: 00300713 li a4,3 -80001084: 00e7a023 sw a4,0(a5) -80001088: 810047b7 lui a5,0x81004 -8000108c: fec42703 lw a4,-20(s0) -80001090: 00271713 slli a4,a4,0x2 -80001094: 9b078793 addi a5,a5,-1616 # 810039b0 -80001098: 00f707b3 add a5,a4,a5 -8000109c: 00200713 li a4,2 -800010a0: 00e7a023 sw a4,0(a5) -800010a4: fec42783 lw a5,-20(s0) -800010a8: 00178793 addi a5,a5,1 -800010ac: fef42623 sw a5,-20(s0) -800010b0: fec42703 lw a4,-20(s0) -800010b4: 03f00793 li a5,63 -800010b8: fae7dae3 bge a5,a4,8000106c -800010bc: 00000013 nop -800010c0: 01c12403 lw s0,28(sp) -800010c4: 02010113 addi sp,sp,32 -800010c8: 00008067 ret +800010c8 : +800010c8: fe010113 addi sp,sp,-32 +800010cc: 00812e23 sw s0,28(sp) +800010d0: 02010413 addi s0,sp,32 +800010d4: fe042623 sw zero,-20(s0) +800010d8: 0480006f j 80001120 +800010dc: 810037b7 lui a5,0x81003 +800010e0: fec42703 lw a4,-20(s0) +800010e4: 00271713 slli a4,a4,0x2 +800010e8: 9a078793 addi a5,a5,-1632 # 810029a0 +800010ec: 00f707b3 add a5,a4,a5 +800010f0: 00300713 li a4,3 +800010f4: 00e7a023 sw a4,0(a5) +800010f8: 810047b7 lui a5,0x81004 +800010fc: fec42703 lw a4,-20(s0) +80001100: 00271713 slli a4,a4,0x2 +80001104: 9a078793 addi a5,a5,-1632 # 810039a0 +80001108: 00f707b3 add a5,a4,a5 +8000110c: 00200713 li a4,2 +80001110: 00e7a023 sw a4,0(a5) +80001114: fec42783 lw a5,-20(s0) +80001118: 00178793 addi a5,a5,1 +8000111c: fef42623 sw a5,-20(s0) +80001120: fec42703 lw a4,-20(s0) +80001124: 0ff00793 li a5,255 +80001128: fae7dae3 bge a5,a4,800010dc +8000112c: 00000013 nop +80001130: 01c12403 lw s0,28(sp) +80001134: 02010113 addi sp,sp,32 +80001138: 00008067 ret -800010cc
: -800010cc: fe010113 addi sp,sp,-32 -800010d0: 00112e23 sw ra,28(sp) -800010d4: 00812c23 sw s0,24(sp) -800010d8: 02010413 addi s0,sp,32 -800010dc: f7dff0ef jal ra,80001058 -800010e0: 00800713 li a4,8 -800010e4: 00100693 li a3,1 -800010e8: 810057b7 lui a5,0x81005 -800010ec: 9b078613 addi a2,a5,-1616 # 810049b0 -800010f0: 810047b7 lui a5,0x81004 -800010f4: 9b078593 addi a1,a5,-1616 # 810039b0 -800010f8: 810037b7 lui a5,0x81003 -800010fc: 9b078513 addi a0,a5,-1616 # 810029b0 -80001100: a49ff0ef jal ra,80000b48 -80001104: 810007b7 lui a5,0x81000 -80001108: 14478513 addi a0,a5,324 # 81000144 -8000110c: e1cff0ef jal ra,80000728 -80001110: 810007b7 lui a5,0x81000 -80001114: 16078513 addi a0,a5,352 # 81000160 -80001118: e10ff0ef jal ra,80000728 -8000111c: fe042623 sw zero,-20(s0) -80001120: 0540006f j 80001174 -80001124: fec42783 lw a5,-20(s0) -80001128: 0077f793 andi a5,a5,7 -8000112c: 00079863 bnez a5,8000113c -80001130: 810007b7 lui a5,0x81000 -80001134: 16c78513 addi a0,a5,364 # 8100016c -80001138: df0ff0ef jal ra,80000728 -8000113c: 810057b7 lui a5,0x81005 -80001140: fec42703 lw a4,-20(s0) -80001144: 00271713 slli a4,a4,0x2 -80001148: 9b078793 addi a5,a5,-1616 # 810049b0 -8000114c: 00f707b3 add a5,a4,a5 -80001150: 0007a783 lw a5,0(a5) -80001154: 00078513 mv a0,a5 -80001158: e0cff0ef jal ra,80000764 -8000115c: 810007b7 lui a5,0x81000 -80001160: 17078513 addi a0,a5,368 # 81000170 -80001164: dc4ff0ef jal ra,80000728 -80001168: fec42783 lw a5,-20(s0) -8000116c: 00178793 addi a5,a5,1 -80001170: fef42623 sw a5,-20(s0) -80001174: fec42703 lw a4,-20(s0) -80001178: 00700793 li a5,7 -8000117c: fae7d4e3 bge a5,a4,80001124 -80001180: 810007b7 lui a5,0x81000 -80001184: 17478513 addi a0,a5,372 # 81000174 -80001188: da0ff0ef jal ra,80000728 -8000118c: 00800713 li a4,8 -80001190: 00100693 li a3,1 -80001194: 810057b7 lui a5,0x81005 -80001198: 9b078613 addi a2,a5,-1616 # 810049b0 -8000119c: 810047b7 lui a5,0x81004 -800011a0: 9b078593 addi a1,a5,-1616 # 810039b0 -800011a4: 810037b7 lui a5,0x81003 -800011a8: 9b078513 addi a0,a5,-1616 # 810029b0 -800011ac: c25ff0ef jal ra,80000dd0 -800011b0: 810007b7 lui a5,0x81000 -800011b4: 14478513 addi a0,a5,324 # 81000144 -800011b8: d70ff0ef jal ra,80000728 -800011bc: 810007b7 lui a5,0x81000 -800011c0: 19878513 addi a0,a5,408 # 81000198 -800011c4: d64ff0ef jal ra,80000728 -800011c8: fe042423 sw zero,-24(s0) -800011cc: 0540006f j 80001220 -800011d0: fe842783 lw a5,-24(s0) -800011d4: 0077f793 andi a5,a5,7 -800011d8: 00079863 bnez a5,800011e8 -800011dc: 810007b7 lui a5,0x81000 -800011e0: 16c78513 addi a0,a5,364 # 8100016c -800011e4: d44ff0ef jal ra,80000728 -800011e8: 810057b7 lui a5,0x81005 -800011ec: fe842703 lw a4,-24(s0) -800011f0: 00271713 slli a4,a4,0x2 -800011f4: 9b078793 addi a5,a5,-1616 # 810049b0 -800011f8: 00f707b3 add a5,a4,a5 -800011fc: 0007a783 lw a5,0(a5) -80001200: 00078513 mv a0,a5 -80001204: d60ff0ef jal ra,80000764 -80001208: 810007b7 lui a5,0x81000 -8000120c: 17078513 addi a0,a5,368 # 81000170 -80001210: d18ff0ef jal ra,80000728 -80001214: fe842783 lw a5,-24(s0) -80001218: 00178793 addi a5,a5,1 -8000121c: fef42423 sw a5,-24(s0) -80001220: fe842703 lw a4,-24(s0) -80001224: 00700793 li a5,7 -80001228: fae7d4e3 bge a5,a4,800011d0 -8000122c: 810007b7 lui a5,0x81000 -80001230: 17478513 addi a0,a5,372 # 81000174 -80001234: cf4ff0ef jal ra,80000728 -80001238: 00000793 li a5,0 -8000123c: 00078513 mv a0,a5 -80001240: 01c12083 lw ra,28(sp) -80001244: 01812403 lw s0,24(sp) -80001248: 02010113 addi sp,sp,32 -8000124c: 00008067 ret +8000113c
: +8000113c: fe010113 addi sp,sp,-32 +80001140: 00112e23 sw ra,28(sp) +80001144: 00812c23 sw s0,24(sp) +80001148: 02010413 addi s0,sp,32 +8000114c: f7dff0ef jal ra,800010c8 +80001150: 01000693 li a3,16 +80001154: 810057b7 lui a5,0x81005 +80001158: 9a078613 addi a2,a5,-1632 # 810049a0 +8000115c: 810047b7 lui a5,0x81004 +80001160: 9a078593 addi a1,a5,-1632 # 810039a0 +80001164: 810037b7 lui a5,0x81003 +80001168: 9a078513 addi a0,a5,-1632 # 810029a0 +8000116c: f1cff0ef jal ra,80000888 +80001170: 810007b7 lui a5,0x81000 +80001174: 12878513 addi a0,a5,296 # 81000128 +80001178: dc8ff0ef jal ra,80000740 +8000117c: 810007b7 lui a5,0x81000 +80001180: 14478513 addi a0,a5,324 # 81000144 +80001184: dbcff0ef jal ra,80000740 +80001188: fe042623 sw zero,-20(s0) +8000118c: 0540006f j 800011e0 +80001190: fec42783 lw a5,-20(s0) +80001194: 00f7f793 andi a5,a5,15 +80001198: 00079863 bnez a5,800011a8 +8000119c: 810007b7 lui a5,0x81000 +800011a0: 15078513 addi a0,a5,336 # 81000150 +800011a4: d9cff0ef jal ra,80000740 +800011a8: 810057b7 lui a5,0x81005 +800011ac: fec42703 lw a4,-20(s0) +800011b0: 00271713 slli a4,a4,0x2 +800011b4: 9a078793 addi a5,a5,-1632 # 810049a0 +800011b8: 00f707b3 add a5,a4,a5 +800011bc: 0007a783 lw a5,0(a5) +800011c0: 00078513 mv a0,a5 +800011c4: db8ff0ef jal ra,8000077c +800011c8: 810007b7 lui a5,0x81000 +800011cc: 15478513 addi a0,a5,340 # 81000154 +800011d0: d70ff0ef jal ra,80000740 +800011d4: fec42783 lw a5,-20(s0) +800011d8: 00178793 addi a5,a5,1 +800011dc: fef42623 sw a5,-20(s0) +800011e0: fec42703 lw a4,-20(s0) +800011e4: 0ff00793 li a5,255 +800011e8: fae7d4e3 bge a5,a4,80001190 +800011ec: 810007b7 lui a5,0x81000 +800011f0: 15878513 addi a0,a5,344 # 81000158 +800011f4: d4cff0ef jal ra,80000740 +800011f8: 01000713 li a4,16 +800011fc: 01000693 li a3,16 +80001200: 810057b7 lui a5,0x81005 +80001204: 9a078613 addi a2,a5,-1632 # 810049a0 +80001208: 810047b7 lui a5,0x81004 +8000120c: 9a078593 addi a1,a5,-1632 # 810039a0 +80001210: 810037b7 lui a5,0x81003 +80001214: 9a078513 addi a0,a5,-1632 # 810029a0 +80001218: 971ff0ef jal ra,80000b88 +8000121c: 810007b7 lui a5,0x81000 +80001220: 12878513 addi a0,a5,296 # 81000128 +80001224: d1cff0ef jal ra,80000740 +80001228: 810007b7 lui a5,0x81000 +8000122c: 17c78513 addi a0,a5,380 # 8100017c +80001230: d10ff0ef jal ra,80000740 +80001234: fe042423 sw zero,-24(s0) +80001238: 0540006f j 8000128c +8000123c: fe842783 lw a5,-24(s0) +80001240: 00f7f793 andi a5,a5,15 +80001244: 00079863 bnez a5,80001254 +80001248: 810007b7 lui a5,0x81000 +8000124c: 15078513 addi a0,a5,336 # 81000150 +80001250: cf0ff0ef jal ra,80000740 +80001254: 810057b7 lui a5,0x81005 +80001258: fe842703 lw a4,-24(s0) +8000125c: 00271713 slli a4,a4,0x2 +80001260: 9a078793 addi a5,a5,-1632 # 810049a0 +80001264: 00f707b3 add a5,a4,a5 +80001268: 0007a783 lw a5,0(a5) +8000126c: 00078513 mv a0,a5 +80001270: d0cff0ef jal ra,8000077c +80001274: 810007b7 lui a5,0x81000 +80001278: 15478513 addi a0,a5,340 # 81000154 +8000127c: cc4ff0ef jal ra,80000740 +80001280: fe842783 lw a5,-24(s0) +80001284: 00178793 addi a5,a5,1 +80001288: fef42423 sw a5,-24(s0) +8000128c: fe842703 lw a4,-24(s0) +80001290: 0ff00793 li a5,255 +80001294: fae7d4e3 bge a5,a4,8000123c +80001298: 810007b7 lui a5,0x81000 +8000129c: 15878513 addi a0,a5,344 # 81000158 +800012a0: ca0ff0ef jal ra,80000740 +800012a4: 01000713 li a4,16 +800012a8: 01000693 li a3,16 +800012ac: 810057b7 lui a5,0x81005 +800012b0: 9a078613 addi a2,a5,-1632 # 810049a0 +800012b4: 810047b7 lui a5,0x81004 +800012b8: 9a078593 addi a1,a5,-1632 # 810039a0 +800012bc: 810037b7 lui a5,0x81003 +800012c0: 9a078513 addi a0,a5,-1632 # 810029a0 +800012c4: b65ff0ef jal ra,80000e28 +800012c8: 810007b7 lui a5,0x81000 +800012cc: 12878513 addi a0,a5,296 # 81000128 +800012d0: c70ff0ef jal ra,80000740 +800012d4: 810007b7 lui a5,0x81000 +800012d8: 18878513 addi a0,a5,392 # 81000188 +800012dc: c64ff0ef jal ra,80000740 +800012e0: fe042223 sw zero,-28(s0) +800012e4: 0540006f j 80001338 +800012e8: fe442783 lw a5,-28(s0) +800012ec: 00f7f793 andi a5,a5,15 +800012f0: 00079863 bnez a5,80001300 +800012f4: 810007b7 lui a5,0x81000 +800012f8: 15078513 addi a0,a5,336 # 81000150 +800012fc: c44ff0ef jal ra,80000740 +80001300: 810057b7 lui a5,0x81005 +80001304: fe442703 lw a4,-28(s0) +80001308: 00271713 slli a4,a4,0x2 +8000130c: 9a078793 addi a5,a5,-1632 # 810049a0 +80001310: 00f707b3 add a5,a4,a5 +80001314: 0007a783 lw a5,0(a5) +80001318: 00078513 mv a0,a5 +8000131c: c60ff0ef jal ra,8000077c +80001320: 810007b7 lui a5,0x81000 +80001324: 15478513 addi a0,a5,340 # 81000154 +80001328: c18ff0ef jal ra,80000740 +8000132c: fe442783 lw a5,-28(s0) +80001330: 00178793 addi a5,a5,1 +80001334: fef42223 sw a5,-28(s0) +80001338: fe442703 lw a4,-28(s0) +8000133c: 0ff00793 li a5,255 +80001340: fae7d4e3 bge a5,a4,800012e8 +80001344: 810007b7 lui a5,0x81000 +80001348: 15878513 addi a0,a5,344 # 81000158 +8000134c: bf4ff0ef jal ra,80000740 +80001350: 00000793 li a5,0 +80001354: 00078513 mv a0,a5 +80001358: 01c12083 lw ra,28(sp) +8000135c: 01812403 lw s0,24(sp) +80001360: 02010113 addi sp,sp,32 +80001364: 00008067 ret Disassembly of section .rodata: @@ -1281,356 +1355,351 @@ Disassembly of section .rodata: 8100002a: 0000 unimp 8100002c: 0062 c.slli zero,0x18 8100002e: 0000 unimp -81000030: 00000063 beqz zero,81000030 +81000030: 00000063 beqz zero,81000030 81000034: 0064 addi s1,sp,12 81000036: 0000 unimp 81000038: 0065 c.nop 25 8100003a: 0000 unimp 8100003c: 0066 c.slli zero,0x19 8100003e: 0000 unimp -81000040: 6f44 flw fs1,28(a4) -81000042: 656e flw fa0,216(sp) -81000044: 203a fld ft0,392(sp) -81000046: 0000 unimp -81000048: 65766173 csrrsi sp,0x657,12 -8100004c: 2064 fld fs1,192(s0) -8100004e: 746e6f63 bltu t3,t1,810007ac -81000052: 7865 lui a6,0xffff9 -81000054: 0a74 addi a3,sp,284 +81000040: 754e flw fa0,240(sp) +81000042: 206d jal 810000ec +81000044: 7661 lui a2,0xffff8 +81000046: 6961 lui s2,0x18 +81000048: 616c flw fa1,68(a0) +8100004a: 6c62 flw fs8,24(sp) +8100004c: 2065 jal 810000f4 +8100004e: 70726177 0x70726177 +81000052: 00203a73 csrrc s4,frm,zero 81000056: 0000 unimp -81000058: 6f66 flw ft10,88(sp) -8100005a: 6e75 lui t3,0x1d -8100005c: 2064 fld fs1,192(s0) -8100005e: 656d6f73 csrrsi t5,0x656,26 -81000062: 6874 flw fa3,84(s0) -81000064: 6e69 lui t3,0x1a -81000066: 6f662067 0x6f662067 -8100006a: 2072 fld ft0,280(sp) -8100006c: 000a3077 0xa3077 -81000070: 756e flw fa0,248(sp) -81000072: 5f6d li t5,-5 -81000074: 6874 flw fa3,84(s0) -81000076: 6572 flw fa0,28(sp) -81000078: 6461 lui s0,0x18 -8100007a: 00203a73 csrrc s4,frm,zero +81000058: 0030 addi a2,sp,8 +8100005a: 0000 unimp +8100005c: 0031 c.nop 12 +8100005e: 0000 unimp +81000060: 0032 c.slli zero,0xc +81000062: 0000 unimp +81000064: 00000033 add zero,zero,zero +81000068: 0034 addi a3,sp,8 +8100006a: 0000 unimp +8100006c: 0035 c.nop 13 +8100006e: 0000 unimp +81000070: 0036 c.slli zero,0xd +81000072: 0000 unimp +81000074: 00000037 lui zero,0x0 +81000078: 0038 addi a4,sp,8 +8100007a: 0000 unimp +8100007c: 0039 c.nop 14 8100007e: 0000 unimp -81000080: 0030 addi a2,sp,8 +81000080: 0061 c.nop 24 81000082: 0000 unimp -81000084: 0031 c.nop 12 +81000084: 0062 c.slli zero,0x18 81000086: 0000 unimp -81000088: 0032 c.slli zero,0xc -8100008a: 0000 unimp -8100008c: 00000033 add zero,zero,zero -81000090: 0034 addi a3,sp,8 +81000088: 00000063 beqz zero,81000088 +8100008c: 0064 addi s1,sp,12 +8100008e: 0000 unimp +81000090: 0065 c.nop 25 81000092: 0000 unimp -81000094: 0035 c.nop 13 +81000094: 0066 c.slli zero,0x19 81000096: 0000 unimp -81000098: 0036 c.slli zero,0xd +81000098: 000a c.slli zero,0x2 8100009a: 0000 unimp -8100009c: 00000037 lui zero,0x0 -810000a0: 0038 addi a4,sp,8 +8100009c: 0030 addi a2,sp,8 +8100009e: 0000 unimp +810000a0: 0031 c.nop 12 810000a2: 0000 unimp -810000a4: 0039 c.nop 14 +810000a4: 0032 c.slli zero,0xc 810000a6: 0000 unimp -810000a8: 0061 c.nop 24 -810000aa: 0000 unimp -810000ac: 0062 c.slli zero,0x18 +810000a8: 00000033 add zero,zero,zero +810000ac: 0034 addi a3,sp,8 810000ae: 0000 unimp -810000b0: 00000063 beqz zero,810000b0 -810000b4: 0064 addi s1,sp,12 +810000b0: 0035 c.nop 13 +810000b2: 0000 unimp +810000b4: 0036 c.slli zero,0xd 810000b6: 0000 unimp -810000b8: 0065 c.nop 25 -810000ba: 0000 unimp -810000bc: 0066 c.slli zero,0x19 +810000b8: 00000037 lui zero,0x0 +810000bc: 0038 addi a4,sp,8 810000be: 0000 unimp -810000c0: 000a c.slli zero,0x2 +810000c0: 0039 c.nop 14 810000c2: 0000 unimp -810000c4: 0030 addi a2,sp,8 +810000c4: 0061 c.nop 24 810000c6: 0000 unimp -810000c8: 0031 c.nop 12 +810000c8: 0062 c.slli zero,0x18 810000ca: 0000 unimp -810000cc: 0032 c.slli zero,0xc -810000ce: 0000 unimp -810000d0: 00000033 add zero,zero,zero -810000d4: 0034 addi a3,sp,8 +810000cc: 00000063 beqz zero,810000cc +810000d0: 0064 addi s1,sp,12 +810000d2: 0000 unimp +810000d4: 0065 c.nop 25 810000d6: 0000 unimp -810000d8: 0035 c.nop 13 +810000d8: 0066 c.slli zero,0x19 810000da: 0000 unimp -810000dc: 0036 c.slli zero,0xd -810000de: 0000 unimp -810000e0: 00000037 lui zero,0x0 -810000e4: 0038 addi a4,sp,8 +810000dc: 7366664f fnmadd.d fa2,fa2,fs6,fa4,unknown +810000e0: 7465 lui s0,0xffff9 +810000e2: 203a fld ft0,392(sp) +810000e4: 0000 unimp 810000e6: 0000 unimp -810000e8: 0039 c.nop 14 +810000e8: 0030 addi a2,sp,8 810000ea: 0000 unimp -810000ec: 0061 c.nop 24 +810000ec: 0031 c.nop 12 810000ee: 0000 unimp -810000f0: 0062 c.slli zero,0x18 +810000f0: 0032 c.slli zero,0xc 810000f2: 0000 unimp -810000f4: 00000063 beqz zero,810000f4 -810000f8: 0064 addi s1,sp,12 +810000f4: 00000033 add zero,zero,zero +810000f8: 0034 addi a3,sp,8 810000fa: 0000 unimp -810000fc: 0065 c.nop 25 +810000fc: 0035 c.nop 13 810000fe: 0000 unimp -81000100: 0066 c.slli zero,0x19 +81000100: 0036 c.slli zero,0xd 81000102: 0000 unimp -81000104: 0030 addi a2,sp,8 -81000106: 0000 unimp -81000108: 0031 c.nop 12 +81000104: 00000037 lui zero,0x0 +81000108: 0038 addi a4,sp,8 8100010a: 0000 unimp -8100010c: 0032 c.slli zero,0xc +8100010c: 0039 c.nop 14 8100010e: 0000 unimp -81000110: 00000033 add zero,zero,zero -81000114: 0034 addi a3,sp,8 +81000110: 0061 c.nop 24 +81000112: 0000 unimp +81000114: 0062 c.slli zero,0x18 81000116: 0000 unimp -81000118: 0035 c.nop 13 -8100011a: 0000 unimp -8100011c: 0036 c.slli zero,0xd +81000118: 00000063 beqz zero,81000118 +8100011c: 0064 addi s1,sp,12 8100011e: 0000 unimp -81000120: 00000037 lui zero,0x0 -81000124: 0038 addi a4,sp,8 +81000120: 0065 c.nop 25 +81000122: 0000 unimp +81000124: 0066 c.slli zero,0x19 81000126: 0000 unimp -81000128: 0039 c.nop 14 -8100012a: 0000 unimp -8100012c: 0061 c.nop 24 -8100012e: 0000 unimp -81000130: 0062 c.slli zero,0x18 -81000132: 0000 unimp -81000134: 00000063 beqz zero,81000134 -81000138: 0064 addi s1,sp,12 -8100013a: 0000 unimp -8100013c: 0065 c.nop 25 -8100013e: 0000 unimp -81000140: 0066 c.slli zero,0x19 +81000128: 2d2d jal 81000762 +8100012a: 2d2d jal 81000764 +8100012c: 2d2d jal 81000766 +8100012e: 2d2d jal 81000768 +81000130: 2d2d jal 8100076a +81000132: 2d2d jal 8100076c +81000134: 2d2d jal 8100076e +81000136: 2d2d jal 81000770 +81000138: 2d2d jal 81000772 +8100013a: 2d2d jal 81000774 +8100013c: 2d2d jal 81000776 +8100013e: 2d2d jal 81000778 +81000140: 0a2d addi s4,s4,11 81000142: 0000 unimp -81000144: 2d2d jal 8100077e -81000146: 2d2d jal 81000780 -81000148: 2d2d jal 81000782 -8100014a: 2d2d jal 81000784 -8100014c: 2d2d jal 81000786 -8100014e: 2d2d jal 81000788 -81000150: 2d2d jal 8100078a -81000152: 2d2d jal 8100078c -81000154: 2d2d jal 8100078e -81000156: 2d2d jal 81000790 -81000158: 2d2d jal 81000792 -8100015a: 2d2d jal 81000794 -8100015c: 0a2d addi s4,s4,11 -8100015e: 0000 unimp -81000160: 4946 lw s2,80(sp) -81000162: 414e lw sp,208(sp) -81000164: 204c fld fa1,128(s0) -81000166: 4441 li s0,16 -81000168: 0a44 addi s1,sp,276 -8100016a: 0000 unimp -8100016c: 000a c.slli zero,0x2 -8100016e: 0000 unimp -81000170: 0020 addi s0,sp,8 -81000172: 0000 unimp -81000174: 2d0a fld fs10,128(sp) -81000176: 2d2d jal 810007b0 -81000178: 2d2d jal 810007b2 -8100017a: 2d2d jal 810007b4 -8100017c: 2d2d jal 810007b6 -8100017e: 2d2d jal 810007b8 -81000180: 2d2d jal 810007ba -81000182: 2d2d jal 810007bc -81000184: 2d2d jal 810007be -81000186: 2d2d jal 810007c0 -81000188: 2d2d jal 810007c2 -8100018a: 2d2d jal 810007c4 -8100018c: 2d2d jal 810007c6 -8100018e: 2d2d jal 810007c8 -81000190: 2d2d jal 810007ca -81000192: 2d2d jal 810007cc -81000194: 000a c.slli zero,0x2 -81000196: 0000 unimp -81000198: 4946 lw s2,80(sp) -8100019a: 414e lw sp,208(sp) -8100019c: 204c fld fa1,128(s0) -8100019e: 0a627553 fsub.d fa0,ft4,ft6 +81000144: 4946 lw s2,80(sp) +81000146: 414e lw sp,208(sp) +81000148: 204c fld fa1,128(s0) +8100014a: 414d li sp,19 +8100014c: 0a54 addi a3,sp,276 +8100014e: 0000 unimp +81000150: 000a c.slli zero,0x2 +81000152: 0000 unimp +81000154: 0020 addi s0,sp,8 +81000156: 0000 unimp +81000158: 2d0a fld fs10,128(sp) +8100015a: 2d2d jal 81000794 +8100015c: 2d2d jal 81000796 +8100015e: 2d2d jal 81000798 +81000160: 2d2d jal 8100079a +81000162: 2d2d jal 8100079c +81000164: 2d2d jal 8100079e +81000166: 2d2d jal 810007a0 +81000168: 2d2d jal 810007a2 +8100016a: 2d2d jal 810007a4 +8100016c: 2d2d jal 810007a6 +8100016e: 2d2d jal 810007a8 +81000170: 2d2d jal 810007aa +81000172: 2d2d jal 810007ac +81000174: 2d2d jal 810007ae +81000176: 2d2d jal 810007b0 +81000178: 000a c.slli zero,0x2 +8100017a: 0000 unimp +8100017c: 4946 lw s2,80(sp) +8100017e: 414e lw sp,208(sp) +81000180: 204c fld fa1,128(s0) +81000182: 4441 li s0,16 +81000184: 0a44 addi s1,sp,276 +81000186: 0000 unimp +81000188: 4946 lw s2,80(sp) +8100018a: 414e lw sp,208(sp) +8100018c: 204c fld fa1,128(s0) +8100018e: 0a627553 fsub.d fa0,ft4,ft6 ... Disassembly of section .data: -810001a4 : -810001a4: 0000 unimp +81000194 : +81000194: 0000 unimp +81000196: 8100 0x8100 +81000198: 0004 0x4 +8100019a: 8100 0x8100 +8100019c: 0008 0x8 +8100019e: 8100 0x8100 +810001a0: 000c 0xc +810001a2: 8100 0x8100 +810001a4: 0010 0x10 810001a6: 8100 0x8100 -810001a8: 0004 0x4 +810001a8: 0014 0x14 810001aa: 8100 0x8100 -810001ac: 0008 0x8 +810001ac: 0018 0x18 810001ae: 8100 0x8100 -810001b0: 000c 0xc +810001b0: 001c 0x1c 810001b2: 8100 0x8100 -810001b4: 0010 0x10 +810001b4: 0020 addi s0,sp,8 810001b6: 8100 0x8100 -810001b8: 0014 0x14 +810001b8: 0024 addi s1,sp,8 810001ba: 8100 0x8100 -810001bc: 0018 0x18 +810001bc: 0028 addi a0,sp,8 810001be: 8100 0x8100 -810001c0: 001c 0x1c +810001c0: 002c addi a1,sp,8 810001c2: 8100 0x8100 -810001c4: 0020 addi s0,sp,8 +810001c4: 0030 addi a2,sp,8 810001c6: 8100 0x8100 -810001c8: 0024 addi s1,sp,8 +810001c8: 0034 addi a3,sp,8 810001ca: 8100 0x8100 -810001cc: 0028 addi a0,sp,8 +810001cc: 0038 addi a4,sp,8 810001ce: 8100 0x8100 -810001d0: 002c addi a1,sp,8 +810001d0: 003c addi a5,sp,8 810001d2: 8100 0x8100 -810001d4: 0030 addi a2,sp,8 + +810001d4 : +810001d4: 0058 addi a4,sp,4 810001d6: 8100 0x8100 -810001d8: 0034 addi a3,sp,8 +810001d8: 005c addi a5,sp,4 810001da: 8100 0x8100 -810001dc: 0038 addi a4,sp,8 +810001dc: 0060 addi s0,sp,12 810001de: 8100 0x8100 -810001e0: 003c addi a5,sp,8 +810001e0: 0064 addi s1,sp,12 810001e2: 8100 0x8100 - -810001e4 : -810001e4: 0080 addi s0,sp,64 +810001e4: 0068 addi a0,sp,12 810001e6: 8100 0x8100 -810001e8: 0084 addi s1,sp,64 +810001e8: 006c addi a1,sp,12 810001ea: 8100 0x8100 -810001ec: 0088 addi a0,sp,64 +810001ec: 0070 addi a2,sp,12 810001ee: 8100 0x8100 -810001f0: 008c addi a1,sp,64 +810001f0: 0074 addi a3,sp,12 810001f2: 8100 0x8100 -810001f4: 0090 addi a2,sp,64 +810001f4: 0078 addi a4,sp,12 810001f6: 8100 0x8100 -810001f8: 0094 addi a3,sp,64 +810001f8: 007c addi a5,sp,12 810001fa: 8100 0x8100 -810001fc: 0098 addi a4,sp,64 +810001fc: 0080 addi s0,sp,64 810001fe: 8100 0x8100 -81000200: 009c addi a5,sp,64 +81000200: 0084 addi s1,sp,64 81000202: 8100 0x8100 -81000204: 00a0 addi s0,sp,72 +81000204: 0088 addi a0,sp,64 81000206: 8100 0x8100 -81000208: 00a4 addi s1,sp,72 +81000208: 008c addi a1,sp,64 8100020a: 8100 0x8100 -8100020c: 00a8 addi a0,sp,72 +8100020c: 0090 addi a2,sp,64 8100020e: 8100 0x8100 -81000210: 00ac addi a1,sp,72 +81000210: 0094 addi a3,sp,64 81000212: 8100 0x8100 -81000214: 00b0 addi a2,sp,72 + +81000214 : +81000214: 009c addi a5,sp,64 81000216: 8100 0x8100 -81000218: 00b4 addi a3,sp,72 +81000218: 00a0 addi s0,sp,72 8100021a: 8100 0x8100 -8100021c: 00b8 addi a4,sp,72 +8100021c: 00a4 addi s1,sp,72 8100021e: 8100 0x8100 -81000220: 00bc addi a5,sp,72 +81000220: 00a8 addi a0,sp,72 81000222: 8100 0x8100 - -81000224 : -81000224: 00c4 addi s1,sp,68 +81000224: 00ac addi a1,sp,72 81000226: 8100 0x8100 -81000228: 00c8 addi a0,sp,68 +81000228: 00b0 addi a2,sp,72 8100022a: 8100 0x8100 -8100022c: 00cc addi a1,sp,68 +8100022c: 00b4 addi a3,sp,72 8100022e: 8100 0x8100 -81000230: 00d0 addi a2,sp,68 +81000230: 00b8 addi a4,sp,72 81000232: 8100 0x8100 -81000234: 00d4 addi a3,sp,68 +81000234: 00bc addi a5,sp,72 81000236: 8100 0x8100 -81000238: 00d8 addi a4,sp,68 +81000238: 00c0 addi s0,sp,68 8100023a: 8100 0x8100 -8100023c: 00dc addi a5,sp,68 +8100023c: 00c4 addi s1,sp,68 8100023e: 8100 0x8100 -81000240: 00e0 addi s0,sp,76 +81000240: 00c8 addi a0,sp,68 81000242: 8100 0x8100 -81000244: 00e4 addi s1,sp,76 +81000244: 00cc addi a1,sp,68 81000246: 8100 0x8100 -81000248: 00e8 addi a0,sp,76 +81000248: 00d0 addi a2,sp,68 8100024a: 8100 0x8100 -8100024c: 00ec addi a1,sp,76 +8100024c: 00d4 addi a3,sp,68 8100024e: 8100 0x8100 -81000250: 00f0 addi a2,sp,76 +81000250: 00d8 addi a4,sp,68 81000252: 8100 0x8100 -81000254: 00f4 addi a3,sp,76 -81000256: 8100 0x8100 -81000258: 00f8 addi a4,sp,76 -8100025a: 8100 0x8100 -8100025c: 00fc addi a5,sp,76 -8100025e: 8100 0x8100 -81000260: 0100 addi s0,sp,128 -81000262: 8100 0x8100 -81000264 : -81000264: 0104 addi s1,sp,128 +81000254 : +81000254: 00e8 addi a0,sp,76 +81000256: 8100 0x8100 +81000258: 00ec addi a1,sp,76 +8100025a: 8100 0x8100 +8100025c: 00f0 addi a2,sp,76 +8100025e: 8100 0x8100 +81000260: 00f4 addi a3,sp,76 +81000262: 8100 0x8100 +81000264: 00f8 addi a4,sp,76 81000266: 8100 0x8100 -81000268: 0108 addi a0,sp,128 +81000268: 00fc addi a5,sp,76 8100026a: 8100 0x8100 -8100026c: 010c addi a1,sp,128 +8100026c: 0100 addi s0,sp,128 8100026e: 8100 0x8100 -81000270: 0110 addi a2,sp,128 +81000270: 0104 addi s1,sp,128 81000272: 8100 0x8100 -81000274: 0114 addi a3,sp,128 +81000274: 0108 addi a0,sp,128 81000276: 8100 0x8100 -81000278: 0118 addi a4,sp,128 +81000278: 010c addi a1,sp,128 8100027a: 8100 0x8100 -8100027c: 011c addi a5,sp,128 +8100027c: 0110 addi a2,sp,128 8100027e: 8100 0x8100 -81000280: 0120 addi s0,sp,136 +81000280: 0114 addi a3,sp,128 81000282: 8100 0x8100 -81000284: 0124 addi s1,sp,136 +81000284: 0118 addi a4,sp,128 81000286: 8100 0x8100 -81000288: 0128 addi a0,sp,136 +81000288: 011c addi a5,sp,128 8100028a: 8100 0x8100 -8100028c: 012c addi a1,sp,136 +8100028c: 0120 addi s0,sp,136 8100028e: 8100 0x8100 -81000290: 0130 addi a2,sp,136 +81000290: 0124 addi s1,sp,136 81000292: 8100 0x8100 -81000294: 0134 addi a3,sp,136 -81000296: 8100 0x8100 -81000298: 0138 addi a4,sp,136 -8100029a: 8100 0x8100 -8100029c: 013c addi a5,sp,136 -8100029e: 8100 0x8100 -810002a0: 0140 addi s0,sp,132 -810002a2: 8100 0x8100 Disassembly of section .bss: -810002a4 : +81000294 : ... -810002c0 : -810002c0: 0000 unimp +810002b0 : +810002b0: 0000 unimp ... -810002c4 : +810002b4 : ... -81000344 : +81000334 : ... -81002964 : +81002954 : ... -81002980 : -81002980: 0000 unimp +81002970 : +81002970: 0000 unimp ... -81002984 : +81002974 : ... -81002998 : +81002988 : ... -810029b0 : +810029a0 : ... -810039b0 : +810039a0 : ... -810049b0 : +810049a0 : ... -810059b0 : +810059a0 : ... -810059cc : -810059cc: 0000 unimp +810059bc : +810059bc: 0000 unimp ... Disassembly of section .comment: diff --git a/src/vortex_software/vortex_test.elf b/src/vortex_software/vortex_test.elf index da76494c..c496af45 100755 Binary files a/src/vortex_software/vortex_test.elf and b/src/vortex_software/vortex_test.elf differ diff --git a/src/vortex_software/vortex_test.hex b/src/vortex_software/vortex_test.hex index efd68fb6..4514209d 100644 --- a/src/vortex_software/vortex_test.hex +++ b/src/vortex_software/vortex_test.hex @@ -1,340 +1,357 @@ :0200000480007A -:1000000037F1FF7FEF008018EF10400C7300000005 -:10001000938B0600130D0700130F010093030500D7 -:1000200013051000635C75001301018013030500C4 -:100030006B500300130515006FF0DFFE13010F0076 -:1000400013050000930F0600938D0300EBE0BF0142 -:10005000170500001305051A6B4005001703000083 -:10006000130343FB6B0003006780000017020001CD -:1000700013028225232002002322120023242200BF -:100080002326320023284200232A5200232C620018 -:10009000232E720023208202232292022324A20212 -:1000A0002326B2022328C202232AD202232CE202F0 -:1000B000232EF202232002052322120523242205E7 -:1000C0002326320523284205232A5205232C6205C4 -:1000D000232E720523208207232292072324A207BE -:1000E0002326B2072328C207232AD207232CE2079C -:1000F000232EF20713021000678000001702000190 -:100100001302821C0320020083204200032182008C -:100110008321C200032202018322420103238201C0 -:100120008323C201032402028324420203258202A4 -:100130008325C20203260203832642030327820388 -:100140008327C2030328020483284204032982046C -:100150008329C204032A0205832A4205032B820550 -:10016000832BC205032C0206832C4206032D820634 -:10017000832DC206032E0207832E4207032F820718 -:10018000832FC2071302000067800000130101FEE5 -:10019000232E1100232C810013040102232604FEC8 -:1001A0006F0000030327C4FE9307404C3307F70298 -:1001B000B707008193874734B307F700138507001B -:1001C000EF0040428327C4FE938717002326F4FEE6 -:1001D0000327C4FE93077000E3D6E7FC130000007A -:1001E0008320C10103248101130101026780000003 -:1001F000130101FD23261102232481022322A103DE -:100200001304010313070D009307404C3307F70253 -:10021000B707008193874734B307F70013850700BA -:10022000EF00804D930705006384070493070D00DA -:1002300093850700B707008113850704EF00C05EB0 -:1002400013070D00B7070081131727009387472A6C -:10025000B307F7001307100023A0E70093070D0072 -:1002600063960700EFF09FE96F00800573000000C0 -:1002700013070D009307404C3307F702B7070081BF -:1002800093874734B307F700130784FD93050700EE -:1002900013850700EF00C03D832704FE138107008C -:1002A0008327C4FD832584FD032644FE832684FE24 -:1002B0000327C4FE13850700EFF09FD573000000ED -:1002C0008320C10203248102032D41021301010393 -:1002D00067800000130101FB2326110423248104FD -:1002E0001304010593090100930710002326F4FE6F -:1002F0006F0040080327C4FE9307404C3307F70202 -:10030000B707008193874734B307F70013850700C9 -:10031000EF00803E93070500639807040327C4FE9F -:100320009307404C3307F702B707008193874734A0 -:10033000B307F700130744FD930507001385070073 -:10034000EF0000338327C4FD13810700832784FD5A -:10035000832544FD032604FE832644FE032784FEF2 -:1003600013850700EFF09FCF8327C4FE9387170004 -:100370002326F4FE0327C4FE93077000E3DCE7F6B0 -:1003800013810900EFF09FCEB70700811385870422 -:10039000EF0080399307020063880706B7070081E2 -:1003A00013854734EF00403593070500639E07042B -:1003B000B707008113858705EF0000379307C4FB5B -:1003C00093850700B707008113854734EF00402A63 -:1003D000832704FC93850700B7070081138507076F -:1003E000EF008044832744FC13810700832704FC2B -:1003F0008325C4FB032684FC8326C4FC032704FD59 -:1004000013850700EFF0DFC0130000008320C10454 -:10041000032481041301010567800000130101FC1E -:10042000232E1102232C8102130401042326A4FC91 -:100430002324B4FC2322C4FC2320D4FCEFF01FD5DA -:1004400013090100232604FE232404FE6F00C008C4 -:10045000B709FFFF33013101832784FE2328F4FC11 -:10046000832784FC232AF4FC93070100232CF4FC4B -:10047000832744FC232EF4FC832704FC2320F4FE72 -:100480008327C4FE2322F4FE0327C4FE9307404CB7 -:100490003307F702B707008193874734B307F700A4 -:1004A000130704FD9305070013850700EF00C0152F -:1004B0008327C4FE938717002326F4FE0327C4FE78 -:1004C0009307700063D4E700232604FE832784FE8D -:1004D000938717002324F4FE032784FE8327C4FC9C -:1004E000E368F7F613010900EFF0DFDE1300000008 -:1004F0008320C103032481031301010467800000EA -:10050000130101FD2326810213040103232EA4FC01 -:10051000232604FE6F004005232604FE232404FE48 -:100520006F00C003B7070081032784FE131727005D -:100530009387472AB307F70003A707009307100024 -:100540006318F7008327C4FE938717002326F4FE61 -:10055000832784FE938717002324F4FE032784FE59 -:1005600093077000E3D0E7FC0327C4FE8327C4FD94 -:10057000E314F7FA232204FE6F008002B70700811C -:10058000032744FE131727009387472AB307F70072 -:1005900023A00700832744FE938717002322F4FE3D -:1005A000832744FE0327C4FDE3EAE7FC13000000B1 -:1005B0000324C1021301010367800000130101FF3E -:1005C00023268100232471011304010193870B006A -:1005D000138507000324C100832B8100130101014F -:1005E000678000009302050013030000930370006E -:1005F00023A0620023A2620023A4620023A672004B -:1006000023A86200678000009302050003A3820014 -:100610001303130023A462001383420183AE42003C -:1006200093935E003303730003AE05002320C301E0 -:1006300003AE45002322C30103AE85002324C3017A -:1006400003AEC5002326C30103AE05012328C30161 -:1006500003AE4501232AC301938E1E00130F20030E -:100660006394EE01930E000023A2D2016780000084 -:100670009302050003A382001303F3FF23A4620087 -:100680001383420183AE0200930F2003138F0E00E9 -:10069000130F1F006314FF01130F000023A0E201DA -:1006A00093935E0033037300032E030023A0C50160 -:1006B000032E430023A2C501032E830023A4C501FA -:1006C000032EC30023A6C501032E030123A8C501E1 -:1006D000032E430123AAC501678000009302050091 -:1006E00003A3820013050000130E200363146E00A1 -:1006F00013051500678000009302050003A3820024 -:1007000013050000130E000063146E00130515009E -:10071000678000009302050003A3C20083A30201C7 -:1007200033B5630067800000130141FF23201100EF -:100730002322B1008345050063880500EF00C00156 -:10074000130515006FF01FFF832001008325410072 -:100750001301C10067800000B708010023A0B800A2 -:1007600067800000130101FD23261102232481026A -:1007700013040103232EA4FC0327C4FD9307F000F8 -:1007800063E4E702B70700810327C4FD13172700BE -:100790009387471EB307F70083A707001385070059 -:1007A000EFF09FF86F004007930700022326F4FE46 -:1007B000A30504FE8327C4FE9387C7FF0327C4FD58 -:1007C000B357F70093F7F7002322F4FE832744FE84 -:1007D0006386070093071000A305F4FE8347B4FE69 -:1007E00063820702B7070081032744FE131727001F -:1007F0009387471EB307F70083A7070013850700F9 -:10080000EFF09FF28327C4FE9387C7FF2326F4FEF1 -:100810008327C4FEE340F0FA8320C102032481024F -:100820001301010367800000130101FE232E110054 -:10083000232C8100130401022326A4FE2324B4FEEA -:100840000325C4FEEFF05FEE032584FEEFF09FF179 -:10085000B70700811385070CEFF01FED13000000B0 -:100860008320C1010324810113010102678000007C -:10087000130101FD23261102232481021304010325 -:10088000232EA4FC232CB4FC232AC4FC2328D4FC50 -:10089000B73700810327C4FD23A2E798B73700814B -:1008A00093874798032784FD23A2E700B737008189 -:1008B00093874798032744FD23A4E700B7370081B7 -:1008C00093874798032704FD23A6E700832704FDA9 -:1008D00093D737002326F4FE832704FD93F7770090 -:1008E000638807008327C4FE938717002326F4FE3E -:1008F000B7370081938747980327C4FE23A8E700F2 -:10090000032704FD9307700063F2E702B737008105 -:1009100093864798B71700801386C7979305800082 -:10092000032504FDEFF09FAF6F000002B737008191 -:1009300093864798B71700801386C797832504FDD1 -:10094000032504FDEFF09FAD032704FD930780000E -:1009500063F8E70013058000EFF09FBA6F00C00056 -:10096000032504FDEFF0DFB9130000008320C1026E -:10097000032481021301010367800000130101FABF -:10098000232E1104232C8104130401062326A4FA28 -:100990002324B4FAEFF09FC2232CA4FC832784FD08 -:1009A00083A70700232AF4FC832784FD83A747003D -:1009B0002328F4FC832784FD83A787002326F4FCE7 -:1009C000832784FD83A707012326F4FE0327C4FEA3 -:1009D0008327C4FAB307F7022324F4FE8327C4FE57 -:1009E000639A0700930710002326F4FE8327C4FAB6 -:1009F0002324F4FE832784FD83A7C7002324F4FC6B -:100A0000232204FE6F004012232004FE232E04FC48 -:100A10006F008007032784FA832784FCB307F7025B -:100A20000327C4FDB307F7002322F4FC032784FC4B -:100A30008327C4FDB307F702032784FEB307F7003B -:100A40002320F4FC832744FC93972700032744FDCD -:100A5000B307F70003A70700832704FC9397270039 -:100A6000832604FDB387F60083A70700B307F702C8 -:100A7000032704FEB307F7002320F4FE8327C4FDF9 -:100A800093871700232EF4FC0327C4FD832784FCDF -:100A9000E362F7F8032784FA832784FC3307F7021D -:100AA000832784FEB307F700232EF4FA032784FE7E -:100AB000832784FCB337F70093F7F70F232CF4FA5E -:100AC000832784FB93B71700A30BF4FA834774FBC7 -:100AD000138F0700B7170080938F47B16B200F006B -:100AE0007B70FF018327C4FB939727000327C4FC77 -:100AF000B307F700032704FE23A0E700832784FE43 -:100B0000938717002324F4FEB7170080138E87B154 -:100B100067000E00130000006B300000832744FEC6 -:100B2000938717002322F4FE832744FE0327C4FE85 -:100B3000E3ECE7EC130000008320C10503248105EA -:100B40001301010667800000130101FC232E11022E -:100B5000232C810213040104232EA4FC232CB4FCB7 -:100B6000232AC4FC2328D4FC2326E4FCB7370081C5 -:100B70000327C4FD23ACE798B73700819387879993 -:100B8000032784FD23A2E700B73700819387879965 -:100B9000032744FD23A4E700B73700819387879993 -:100BA0000327C4FC23A6E700B73700819387879902 -:100BB000032704FD23A8E7008327C4FC93D737004D -:100BC0002326F4FE8327C4FC93F77700638807008D -:100BD0008327C4FE938717002326F4FEB7370081CE -:100BE000938787990327C4FE23AAE7000327C4FC41 -:100BF0009307700063F2E702B73700819386879905 -:100C0000B7170080138687C693058000032504FD6F -:100C1000EFF0DF806F000002B7370081938687997D -:100C2000B7170080138687C68325C4FC032504FDFF -:100C3000EFF0CFFE032704FD9307800063F8E70081 -:100C400013058000EFF0DF8B6F00C000032504FD6B -:100C5000EFF01F8B130000008320C10303248103E6 -:100C60001301010467800000130101FB2326110416 -:100C70002324810413040105232EA4FA232CB4FA9F -:100C8000EFF0DF932320A4FE832704FE83A7070051 -:100C9000232EF4FC832704FE83A74700232CF4FCB7 -:100CA000832704FE83A78700232AF4FC832704FEFE -:100CB00083A747012326F4FE0327C4FE8327C4FB32 -:100CC000B307F7022324F4FE8327C4FE639A0700C8 -:100CD000930710002326F4FE8327C4FB2324F4FE8D -:100CE000832704FE83A7C7002328F4FC232204FEE5 -:100CF0006F00000C032784FB832704FD3307F702F2 -:100D0000832784FEB307F7002326F4FC032784FE21 -:100D1000832704FDB337F70093F7F70F2324F4FC80 -:100D2000832784FC93B71700A303F4FC834774FC68 -:100D3000138F0700B7170080938FC7D96B200F0060 -:100D40007B70FF018327C4FC939727000327C4FD12 -:100D5000B307F70083A607008327C4FC93972700F7 -:100D6000032784FDB307F70003A707008327C4FC0C -:100D700093972700032644FDB307F6003387E60068 -:100D800023A0E700832784FE938717002324F4FE23 -:100D9000B7170080138E07DA67000E0013000000FB -:100DA0006B300000832744FE938717002322F4FE54 -:100DB000832744FE0327C4FEE3EEE7F2130000009E -:100DC0008320C1040324810413010105678000000E -:100DD000130101FC232E1102232C810213040104B0 -:100DE000232EA4FC232CB4FC232AC4FC2328D4FCEB -:100DF0002326E4FCB73700810327C4FD23ACE79822 -:100E0000B737008193878799032784FD23A2E700E2 -:100E1000B737008193878799032744FD23A4E70010 -:100E2000B7370081938787990327C4FC23A6E7007F -:100E3000B737008193878799032704FD23A8E7002C -:100E40008327C4FC93D737002326F4FE8327C4FCF2 -:100E500093F77700638807008327C4FE9387170002 -:100E60002326F4FEB7370081938787990327C4FEB2 -:100E700023AAE7000327C4FC9307700063F2E7028C -:100E8000B737008193868799B7170080138607EFDD -:100E900093058000032504FDEFF04FD86F0000029A -:100EA000B737008193868799B7170080138607EFBD -:100EB0008325C4FC032504FDEFF04FD6032704FD72 -:100EC0009307800063F8E70013058000EFF04FE31D -:100ED0006F00C000032504FDEFF08FE21300000057 -:100EE0008320C103032481031301010467800000F0 -:100EF000130101FB2326110423248104130401059B -:100F0000232EA4FA232CB4FAEFF04FEB2320A4FEF7 -:100F1000832704FE83A70700232EF4FC832704FE07 -:100F200083A74700232CF4FC832704FE83A78700B4 -:100F3000232AF4FC832704FE83A747012326F4FE1B -:100F40000327C4FE8327C4FBB307F7022324F4FE60 -:100F50008327C4FE639A0700930710002326F4FE3C -:100F60008327C4FB2324F4FE832704FE83A7C70042 -:100F70002328F4FC232204FE6F00000C032784FBCB -:100F8000832704FD3307F702832784FEB307F700A6 -:100F90002326F4FC032784FE832704FDB337F700E0 -:100FA00093F7F70F2324F4FC832784FC93B71700EF -:100FB000A303F4FC834774FC138F0700B71700806A -:100FC000938F47026B200F007B70FF018327C4FCC7 -:100FD000939727000327C4FDB307F70083A60700F4 -:100FE0008327C4FC93972700032784FDB307F700EA -:100FF00003A707008327C4FC93972700032644FD1B -:10100000B307F6003387E64023A0E700832784FE7A -:10101000938717002324F4FEB7170080138E8702EE -:1010200067000E00130000006B300000832744FEB1 -:10103000938717002322F4FE832744FE0327C4FE70 -:10104000E3EEE7F2130000008320C10403248104CF -:101050001301010567800000130101FE232E8100AA -:1010600013040102232604FE6F008004B7370081B9 -:101070000327C4FE131727009387079BB307F700C6 -:101080001307300023A0E700B74700810327C4FE01 -:10109000131727009387079BB307F7001307200058 -:1010A00023A0E7008327C4FE938717002326F4FEBE -:1010B0000327C4FE9307F003E3DAE7FA1300000006 -:1010C0000324C1011301010267800000130101FE26 -:1010D000232E1100232C810013040102EFF0DFF70F -:1010E0001307800093061000B75700811386079BF3 -:1010F000B74700819385079BB73700811385079B0E -:10110000EFF09FA4B707008113854714EFF0CFE1FC -:10111000B707008113850716EFF00FE1232604FEC1 -:101120006F0040058327C4FE93F77700639807009C -:10113000B70700811385C716EFF00FDFB75700819F -:101140000327C4FE131727009387079BB307F700F5 -:1011500083A7070013850700EFF0CFE0B7070081F2 -:1011600013850717EFF04FDC8327C4FE9387170022 -:101170002326F4FE0327C4FE93077000E3D4E7FAA6 -:10118000B707008113854717EFF00FDA13078000C8 -:1011900093061000B75700811386079BB74700815D -:1011A0009385079BB73700811385079BEFF05FC2DC -:1011B000B707008113854714EFF00FD7B7070081F9 -:1011C00013858719EFF04FD6232404FE6F004005E6 -:1011D000832784FE93F7770063980700B7070081A1 -:1011E0001385C716EFF04FD4B7570081032784FE4D -:1011F000131727009387079BB307F70083A7070000 -:1012000013850700EFF00FD6B70700811385071786 -:10121000EFF08FD1832784FE938717002324F4FEF9 -:10122000032784FE93077000E3D4E7FAB707008131 -:1012300013854717EFF04FCF930700001385070082 -:101240008320C10103248101130101026780000092 +:1000000013054000731005021305800073101502DC +:10001000731040F17310103037F1FF7FEF0080193B +:10002000EF10C01173000000938B0600130D070042 +:10003000130F01009303050013051000635C7500A6 +:1000400013010180130305006B5003001305150015 +:100050006FF0DFFE13010F0013050000930F060081 +:10006000938D0300EBE0BF01170500001305051B8E +:100070006B40050017030000130343FB6B000300F4 +:1000800067800000170200011302022323200200F0 +:100090002322120023242200232632002328420098 +:1000A000232A5200232C6200232E72002320820276 +:1000B000232292022324A2022326B2022328C20270 +:1000C000232AD202232CE202232EF202232002054D +:1000D0002322120523242205232632052328420544 +:1000E000232A5205232C6205232E72052320820722 +:1000F000232292072324A2072326B2072328C2071C +:10010000232AD207232CE207232EF2071302100022 +:1001100067800000170200011302021A0320020088 +:1001200083204200032182008321C20003220201B6 +:1001300083224201032382018323C201032402029A +:1001400083244202032582028325C202032602037E +:1001500083264203032782038327C2030328020462 +:1001600083284204032982048329C204032A020546 +:10017000832A4205032B8205832BC205032C02062A +:10018000832C4206032D8206832DC206032E02070E +:10019000832E4207032F8207832FC207130200001A +:1001A000678000007325000267800000732510023D +:1001B00067800000130101FE232E1100232C810013 +:1001C00013040102232604FE6F0000030327C4FE6C +:1001D0009307404C3307F702B707008193874733F3 +:1001E000B307F70013850700EF0040418327C4FEE3 +:1001F000938717002326F4FE0327C4FE930770009D +:10020000E3D6E7FC130000008320C1010324810131 +:100210001301010267800000130101FD2326110272 +:10022000232481022322A1031304010313070D00D9 +:100230009307404C3307F702B70700819387473392 +:10024000B307F70013850700EF00804C9307050004 +:10025000638A070213070D00B707008113172700F1 +:1002600093874729B307F7001307100023A0E7007F +:1002700093070D0063960700EFF0DFE96F0080053C +:100280007300000013070D009307404C3307F7027B +:10029000B707008193874733B307F700130784FD3F +:1002A0009305070013850700EF00003E832704FE37 +:1002B000138107008327C4FD832584FD032644FEA4 +:1002C000832684FE0327C4FE13850700EFF0DFD5E5 +:1002D000730000008320C10203248102032D410228 +:1002E0001301010367800000130101FB23261104A1 +:1002F0002324810413040105EFF0DFEA2324A4FE84 +:1003000093090100930710002326F4FE6F004008B4 +:100310000327C4FE9307404C3307F702B707008159 +:1003200093874733B307F70013850700EF00403E7C +:1003300093070500639807040327C4FE9307404C06 +:100340003307F702B707008193874733B307F700F6 +:10035000130704FD9305070013850700EF00C03263 +:10036000832784FD13810700832744FD832504FD33 +:100370000326C4FD832604FE032744FE13850700DD +:10038000EFF05FCF8327C4FE938717002326F4FE88 +:100390008327C4FE032784FEE3ECE7F613810900FC +:1003A000EFF05FCE9307020063880704B707008170 +:1003B00013854733EF00C03593070500639E07029E +:1003C000930784FB93850700B707008113854733A4 +:1003D000EF00802B832704FC138107008327C4FBD5 +:1003E000832584FB032644FC832684FC0327C4FC6A +:1003F00013850700EFF05FC3130000008320C104E2 +:10040000032481041301010567800000130101FB2F +:10041000232611042324810413040105232EA4FAA6 +:10042000232CB4FA232AC4FA2328D4FAEFF09FD855 +:10043000EFF05FD72322A4FE832544FEB707008197 +:1004400013850704EF00C03F13090100232604FEB3 +:10045000232404FE6F00C008B709FFFF33013101F8 +:10046000832784FE2326F4FC832784FB2328F4FCC3 +:1004700093070100232AF4FC832744FB232CF4FC7C +:10048000832704FB232EF4FC8327C4FE2320F4FEE1 +:100490000327C4FE9307404C3307F702B7070081D8 +:1004A00093874733B307F7001307C4FC930507008E +:1004B00013850700EF00C0168327C4FE938717003B +:1004C0002326F4FE8327C4FE032744FE63E4E700EB +:1004D000232604FE832784FE938717002324F4FE3B +:1004E000032784FE8327C4FBE368F7F613010900A2 +:1004F000EFF09FDF130000008320C1040324810478 +:100500001301010567800000130101FD232611027C +:100510002324810213040103232EA4FCEFF09FC8BF +:100520002320A4FE232604FE6F004005232604FE9C +:10053000232404FE6F00C003B7070081032784FE55 +:100540001317270093874729B307F70003A707006E +:10055000930710006318F7008327C4FE93871700E2 +:100560002326F4FE832784FE938717002324F4FEBA +:10057000832784FE032704FEE3E0E7FC0327C4FE91 +:100580008327C4FDE314F7FA232204FE6F008002E0 +:10059000B7070081032744FE1317270093874729D5 +:1005A000B307F70023A00700832744FE93871700B3 +:1005B0002322F4FE832744FE032704FEE3EAE7FC3C +:1005C000130000008320C1020324810213010103F0 +:1005D00067800000130101FF23268100232471019D +:1005E0001304010193870B00138507000324C10046 +:1005F000832B810013010101678000009302050035 +:10060000130300009303700023A0620023A2620082 +:1006100023A4620023A6720023A862006780000062 +:100620009302050003A382001303130023A46200B6 +:100630001383420183AE420093935E003303730041 +:1006400003AE05002320C30103AE45002322C301EE +:1006500003AE85002324C30103AEC5002326C301D6 +:1006600003AE05012328C30103AE4501232AC301BC +:10067000938E1E00130F20036394EE01930E00006F +:1006800023A2D201678000009302050003A3820029 +:100690001303F3FF23A462001383420183AE02001D +:1006A000930F2003138F0E00130F1F006314FF011D +:1006B000130F000023A0E20193935E003303730045 +:1006C000032E030023A0C501032E430023A2C5016E +:1006D000032E830023A4C501032EC30023A6C50156 +:1006E000032E030123A8C501032E430123AAC5013C +:1006F000678000009302050003A382001305000039 +:10070000130E200363146E001305150067800000AC +:100710009302050003A3820013050000130E0000DE +:1007200063146E0013051500678000009302050036 +:1007300003A3C20083A3020133B5630067800000F6 +:10074000130141FF232011002322B100834505003E +:1007500063880500EF00C001130515006FF01FFF4F +:1007600083200100832541001301C1006780000040 +:10077000B708010023A0B80067800000130101FD45 +:10078000232611022324810213040103232EA4FC37 +:100790000327C4FD9307F00063E4E702B707008175 +:1007A0000327C4FD131727009387471DB307F700DE +:1007B00083A7070013850700EFF09FF86F0040073D +:1007C000930700022326F4FEA30504FE8327C4FE3C +:1007D0009387C7FF0327C4FDB357F70093F7F700CC +:1007E0002322F4FE832744FE63860700930710004C +:1007F000A305F4FE8347B4FE63820702B7070081B6 +:10080000032744FE131727009387471DB307F700FC +:1008100083A7070013850700EFF09FF28327C4FE2C +:100820009387C7FF2326F4FE8327C4FEE340F0FA34 +:100830008320C102032481021301010367800000A9 +:10084000130101FE232E1100232C81001304010249 +:100850002326A4FE2324B4FE0325C4FEEFF05FEE9E +:10086000032584FEEFF09FF1B70700811385870908 +:10087000EFF01FED130000008320C101032481016C +:100880001301010267800000130101FD23261102FC +:100890002324810213040103232EA4FC232CB4FC83 +:1008A000232AC4FC2328D4FCB73700810327C4FDC6 +:1008B00023AAE796B737008193874797032784FDDC +:1008C00023A2E700B737008193874797032744FDAA +:1008D00023A4E700B737008193874797032704FDD8 +:1008E00023A6E700EFF09F8C2324A4FE032704FD3A +:1008F000832784FEB357F7022326F4FE032704FD63 +:10090000832784FEB377F702638807008327C4FE3A +:10091000938717002326F4FE8325C4FEB7070081C2 +:100920001385C70DEFF0DFF1B73700819387479745 +:100930000327C4FE23A8E700032704FD832784FEC2 +:100940006362F702B737008193864797B717008035 +:100950001386C79B832584FE032504FDEFF01FABA0 +:100960006F000002B737008193864797B717008062 +:100970001386C79B832504FD032504FDEFF01FA903 +:10098000EFF05F822322A4FE032704FD832744FEA9 +:1009900063F8E700032544FEEFF01FB76F00C000C7 +:1009A000032504FDEFF05FB6130000008320C102B1 +:1009B000032481021301010367800000130101FA7F +:1009C000232E1104232C8104130401062326A4FAE8 +:1009D0002324B4FAEFF01FC0232CA4FC832784FD4A +:1009E00083A70700232AF4FC832784FD83A74700FD +:1009F0002328F4FC832784FD83A787002326F4FCA7 +:100A0000832784FD83A707012326F4FE0327C4FE62 +:100A10008327C4FAB307F7022324F4FE8327C4FE16 +:100A2000639A0700930710002326F4FE8327C4FA75 +:100A30002324F4FE832784FD83A7C7002324F4FC2A +:100A4000232204FE6F004012232004FE232E04FC08 +:100A50006F008007032784FA832784FCB307F7021B +:100A60000327C4FDB307F7002322F4FC032784FC0B +:100A70008327C4FDB307F702032784FEB307F700FB +:100A80002320F4FC832744FC93972700032744FD8D +:100A9000B307F70003A70700832704FC93972700F9 +:100AA000832604FDB387F60083A70700B307F70288 +:100AB000032704FEB307F7002320F4FE8327C4FDB9 +:100AC00093871700232EF4FC0327C4FD832784FC9F +:100AD000E362F7F8032784FA832784FC3307F702DD +:100AE000832784FEB307F700232EF4FA032784FE3E +:100AF000832784FCB337F70093F7F70F232CF4FA1E +:100B0000832784FB93B71700A30BF4FA834774FB86 +:100B1000138F0700B7170080938F47B56B200F0026 +:100B20007B70FF018327C4FB939727000327C4FC36 +:100B3000B307F700032704FE23A0E700832784FE02 +:100B4000938717002324F4FEB7170080138E87B510 +:100B500067000E00130000006B300000832744FE86 +:100B6000938717002322F4FE832744FE0327C4FE45 +:100B7000E3ECE7EC130000008320C10503248105AA +:100B80001301010667800000130101FC232E1102EE +:100B9000232C810213040104232EA4FC232CB4FC77 +:100BA000232AC4FC2328D4FC2326E4FCB737008185 +:100BB0000327C4FD23A4E798B7370081938787985C +:100BC000032784FD23A2E700B73700819387879826 +:100BD000032744FD23A4E700B73700819387879854 +:100BE0000327C4FC23A6E700B737008193878798C3 +:100BF000032704FD23A8E700EFF04FDB2324A4FE26 +:100C00000327C4FC832784FEB357F7022326F4FE90 +:100C10000327C4FC832784FEB377F70263880700A9 +:100C20008327C4FE938717002326F4FEB73700817D +:100C3000938787980327C4FE23AAE7000327C4FCF1 +:100C4000832784FE6362F702B73700819386879813 +:100C5000B7170080138607CC832584FE032504FD87 +:100C6000EFF0CFFA6F000002B737008193868798C4 +:100C7000B7170080138607CC8325C4FC032504FD29 +:100C8000EFF0CFF8EFF00FD22322A4FE032704FDEC +:100C9000832744FE63F8E700032544FEEFF0DF8678 +:100CA0006F00C000032504FDEFF01F861300000055 +:100CB0008320C10303248103130101046780000022 +:100CC000130101FB232611042324810413040105CD +:100CD000232EA4FA232CB4FAEFF0DF8F2320A4FEF6 +:100CE000832704FE83A70700232EF4FC832704FE3A +:100CF00083A74700232CF4FC832704FE83A78700E7 +:100D0000232AF4FC832704FE83A747012326F4FE4D +:100D10000327C4FE8327C4FBB307F7022324F4FE92 +:100D20008327C4FE639A0700930710002326F4FE6E +:100D30008327C4FB2324F4FE832704FE83A7C70074 +:100D40002328F4FC232204FE6F00000C032784FBFD +:100D5000832704FD3307F702832784FEB307F700D8 +:100D60002326F4FC032784FE832704FDB337F70012 +:100D700093F7F70F2324F4FC832784FC93B7170021 +:100D8000A303F4FC834774FC138F0700B71700809C +:100D9000938F47DF6B200F007B70FF018327C4FC1C +:100DA000939727000327C4FDB307F70083A6070026 +:100DB0008327C4FC93972700032784FDB307F7001C +:100DC00003A707008327C4FC93972700032644FD4D +:100DD000B307F6003387E60023A0E700832784FEED +:100DE000938717002324F4FEB7170080138E87DF44 +:100DF00067000E00130000006B300000832744FEE4 +:100E0000938717002322F4FE832744FE0327C4FEA2 +:100E1000E3EEE7F2130000008320C1040324810401 +:100E20001301010567800000130101FC232E11024C +:100E3000232C810213040104232EA4FC232CB4FCD4 +:100E4000232AC4FC2328D4FC2326E4FCB7370081E2 +:100E50000327C4FD23A4E798B737008193878798B9 +:100E6000032784FD23A2E700B73700819387879883 +:100E7000032744FD23A4E700B737008193878798B1 +:100E80000327C4FC23A6E700B73700819387879820 +:100E9000032704FD23A8E700EFF04FB12324A4FEAD +:100EA0000327C4FC832784FEB357F7022326F4FEEE +:100EB0000327C4FC832784FEB377F7026388070007 +:100EC0008327C4FE938717002326F4FEB7370081DB +:100ED000938787980327C4FE23AAE7000327C4FC4F +:100EE000832784FE6362F702B73700819386879871 +:100EF000B7170080138607F6832584FE032504FDBB +:100F0000EFF0CFD06F000002B7370081938687984B +:100F1000B7170080138607F68325C4FC032504FD5C +:100F2000EFF0CFCEEFF00FA82322A4FE032704FD9D +:100F3000832744FE63F8E700032544FEEFF0CFDC8F +:100F40006F00C000032504FDEFF00FDC130000006C +:100F50008320C1030324810313010104678000007F +:100F6000130101FB2326110423248104130401052A +:100F7000232EA4FA232CB4FAEFF0CFE52320A4FE0D +:100F8000832704FE83A70700232EF4FC832704FE97 +:100F900083A74700232CF4FC832704FE83A7870044 +:100FA000232AF4FC832704FE83A747012326F4FEAB +:100FB0000327C4FE8327C4FBB307F7022324F4FEF0 +:100FC0008327C4FE639A0700930710002326F4FECC +:100FD0008327C4FB2324F4FE832704FE83A7C700D2 +:100FE0002328F4FC232204FE6F00000C032784FB5B +:100FF000832704FD3307F702832784FEB307F70036 +:101000002326F4FC032784FE832704FDB337F7006F +:1010100093F7F70F2324F4FC832784FC93B717007E +:10102000A303F4FC834774FC138F0700B7170080F9 +:10103000938F47096B200F007B70FF018327C4FC4F +:10104000939727000327C4FDB307F70083A6070083 +:101050008327C4FC93972700032784FDB307F70079 +:1010600003A707008327C4FC93972700032644FDAA +:10107000B307F6003387E64023A0E700832784FE0A +:10108000938717002324F4FEB7170080138E870977 +:1010900067000E00130000006B300000832744FE41 +:1010A000938717002322F4FE832744FE0327C4FE00 +:1010B000E3EEE7F2130000008320C104032481045F +:1010C0001301010567800000130101FE232E81003A +:1010D00013040102232604FE6F008004B737008149 +:1010E0000327C4FE131727009387079AB307F70057 +:1010F0001307300023A0E700B74700810327C4FE91 +:10110000131727009387079AB307F70013072000E8 +:1011100023A0E7008327C4FE938717002326F4FE4D +:101120000327C4FE9307F00FE3DAE7FA1300000089 +:101130000324C1011301010267800000130101FEB5 +:10114000232E1100232C810013040102EFF0DFF79E +:1011500093060001B75700811386079AB7470081AD +:101160009385079AB73700811385079AEFF0CFF17F +:10117000B707008113858712EFF08FDCB707008176 +:1011800013854714EFF0CFDB232604FE6F004005E4 +:101190008327C4FE93F7F70063980700B707008121 +:1011A00013850715EFF0CFD9B75700810327C4FE89 +:1011B000131727009387079AB307F70083A7070041 +:1011C00013850700EFF08FDBB70700811385471504 +:1011D000EFF00FD78327C4FE938717002326F4FE72 +:1011E0000327C4FE9307F00FE3D4E7FAB7070081A3 +:1011F00013858715EFF0CFD4130700019306000184 +:10120000B75700811386079AB74700819385079ADD +:10121000B73700811385079AEFF01F97B707008152 +:1012200013858712EFF0CFD1B70700811385C71759 +:10123000EFF00FD1232404FE6F004005832784FEC6 +:1012400093F7F70063980700B70700811385071528 +:10125000EFF00FCFB7570081032784FE1317270045 +:101260009387079AB307F70083A707001385070042 +:10127000EFF0CFD0B707008113854715EFF04FCCC3 +:10128000832784FE938717002324F4FE032784FE1C +:101290009307F00FE3D4E7FAB707008113858715AA +:1012A000EFF00FCA1307000193060001B757008142 +:1012B0001386079AB74700819385079AB73700814D +:1012C0001385079AEFF05FB6B70700811385871281 +:1012D000EFF00FC7B707008113858718EFF04FC6EF +:1012E000232204FE6F004005832744FE93F7F70096 +:1012F00063980700B707008113850715EFF04FC407 +:10130000B7570081032744FE131727009387079AD6 +:10131000B307F70083A7070013850700EFF00FC698 +:10132000B707008113854715EFF08FC1832744FE6F +:10133000938717002322F4FE032744FE9307F00F40 +:10134000E3D4E7FAB707008113858715EFF04FBFA5 +:1013500093070000138507008320C1010324810146 +:08136000130101026780000087 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A :10002000380000003900000061000000620000009C :10003000630000006400000065000000660000002E -:10004000446F6E653A200000736176656420636FCB -:100050006E746578740A0000666F756E6420736F45 -:100060006D657468696E6720666F722077300A006C -:100070006E756D5F746872656164733A200000008C -:1000800030000000310000003200000033000000AA -:10009000340000003500000036000000370000008A -:1000A000380000003900000061000000620000001C -:1000B00063000000640000006500000066000000AE -:1000C0000A00000030000000310000003200000093 -:1000D000330000003400000035000000360000004E -:1000E0003700000038000000390000006100000007 -:1000F0006200000063000000640000006500000072 -:1001000066000000300000003100000032000000F6 -:10011000330000003400000035000000360000000D -:1001200037000000380000003900000061000000C6 -:100130006200000063000000640000006500000031 -:10014000660000002D2D2D2D2D2D2D2D2D2D2D2D2D -:100150002D2D2D2D2D2D2D2D2D2D2D2D2D0A00004C -:1001600046494E414C204144440A00000A00000028 -:10017000200000000A2D2D2D2D2D2D2D2D2D2D2D66 -:100180002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D9F -:100190002D2D2D2D0A00000046494E414C2053754F -:0301A000620A00F0 -:1001A4000000008104000081080000810C0000812F -:1001B4001000008114000081180000811C000081DF -:1001C4002000008124000081280000812C0000818F -:1001D4003000008134000081380000813C0000813F -:1001E4008000008184000081880000818C000081EF -:1001F4009000008194000081980000819C0000819F -:10020400A0000081A4000081A8000081AC0000814E -:10021400B0000081B4000081B8000081BC000081FE -:10022400C4000081C8000081CC000081D00000819E -:10023400D4000081D8000081DC000081E00000814E -:10024400E4000081E8000081EC000081F0000081FE -:10025400F4000081F8000081FC00008100010081AD -:1002640004010081080100810C010081100100815A -:1002740014010081180100811C010081200100810A -:1002840024010081280100812C01008130010081BA -:1002940034010081380100813C010081400100816A +:100040004E756D20617661696C61626C65207761C7 +:100050007270733A20000000300000003100000090 +:1000600032000000330000003400000035000000C2 +:1000700036000000370000003800000039000000A2 +:1000800061000000620000006300000064000000E6 +:1000900065000000660000000A000000300000005B +:1000A0003100000032000000330000003400000086 +:1000B0003500000036000000370000003800000066 +:1000C00039000000610000006200000063000000D1 +:1000D0006400000065000000660000004F66667363 +:1000E00065743A200000000030000000310000007C +:1000F0003200000033000000340000003500000032 +:100100003600000037000000380000003900000011 +:100110006100000062000000630000006400000055 +:1001200065000000660000002D2D2D2D2D2D2D2D9C +:100130002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEF +:100140002D0A000046494E414C204D41540A000002 +:100150000A000000200000000A2D2D2D2D2D2D2D30 +:100160002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DBF +:100170002D2D2D2D2D2D2D2D0A00000046494E41EF +:100180004C204144440A000046494E414C205375DE +:03019000620A0000 +:100194000000008104000081080000810C0000813F +:1001A4001000008114000081180000811C000081EF +:1001B4002000008124000081280000812C0000819F +:1001C4003000008134000081380000813C0000814F +:1001D400580000815C00008160000081640000819F +:1001E400680000816C00008170000081740000814F +:1001F400780000817C0000818000008184000081FF +:10020400880000818C0000819000008194000081AE +:100214009C000081A0000081A4000081A80000814E +:10022400AC000081B0000081B4000081B8000081FE +:10023400BC000081C0000081C4000081C8000081AE +:10024400CC000081D0000081D4000081D80000815E +:10025400E8000081EC000081F0000081F4000081DE +:10026400F8000081FC00008100010081040100818C +:10027400080100810C01008110010081140100813A +:10028400180100811C0100812001008124010081EA :040000058000000077 :00000001FF diff --git a/src/vortex_software/vx_include/vx_front.c b/src/vortex_software/vx_include/vx_front.c index 7026a1ee..b4f6289e 100644 --- a/src/vortex_software/vx_include/vx_front.c +++ b/src/vortex_software/vx_include/vx_front.c @@ -1,5 +1,6 @@ #include "vx_front.h" +#include "../vx_os/vx_back/vx_back.h" // -------------------------- Matrix Multiplication -------------------------- @@ -13,28 +14,34 @@ void vx_sq_mat_mult(void * x, void * y, void * z, unsigned mat_dim) mat_mult_args.z = z; mat_mult_args.mat_dim = mat_dim; - unsigned off = (mat_dim/MAX_THREADS); + unsigned num_avail_threads = vx_available_threads(); - if ((mat_dim%MAX_THREADS) != 0) + unsigned off = (mat_dim/num_avail_threads); + + if ((mat_dim%num_avail_threads) != 0) { off += 1; } + vx_printf("Offset: ", off); + mat_mult_args.offset = off; - if (mat_dim >= MAX_THREADS) + if (mat_dim >= num_avail_threads) { - vx_spawnWarps(mat_dim, MAX_THREADS, _vx_mat_mult, (void *) (&mat_mult_args)); + vx_spawnWarps(mat_dim, num_avail_threads, _vx_mat_mult, (void *) (&mat_mult_args)); } else { vx_spawnWarps(mat_dim, mat_dim, _vx_mat_mult, (void *) (&mat_mult_args)); } - if (mat_dim > MAX_WARPS) + unsigned num_avail_warps = vx_available_warps(); + + if (mat_dim > num_avail_warps) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(num_avail_warps); } else { @@ -102,9 +109,12 @@ void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.num_cols = num_cols; mat_r_args.num_rows = num_rows; - unsigned off = (num_cols/MAX_THREADS); - if ((num_cols%MAX_THREADS) != 0) + unsigned num_avail_threads = vx_available_threads(); + + unsigned off = (num_cols/num_avail_threads); + + if ((num_cols%num_avail_threads) != 0) { off += 1; } @@ -112,18 +122,20 @@ void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.offset = off; - if (num_cols >= MAX_THREADS) + if (num_cols >= num_avail_threads) { - vx_spawnWarps(num_rows, MAX_THREADS, _vx_mat_add, (void *) (&mat_r_args)); + vx_spawnWarps(num_rows, num_avail_threads, _vx_mat_add, (void *) (&mat_r_args)); } else { vx_spawnWarps(num_rows, num_cols, _vx_mat_add, (void *) (&mat_r_args)); } - if (num_rows > (MAX_WARPS)) + unsigned num_avail_warps = vx_available_warps(); + + if (num_rows > num_avail_warps) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(num_avail_warps); } else { @@ -182,9 +194,11 @@ void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.num_cols = num_cols; mat_r_args.num_rows = num_rows; - unsigned off = (num_cols/MAX_THREADS); + unsigned num_avail_threads = vx_available_threads(); - if ((num_cols%MAX_THREADS) != 0) + unsigned off = (num_cols/num_avail_threads); + + if ((num_cols%num_avail_threads) != 0) { off += 1; } @@ -192,18 +206,20 @@ void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_co mat_r_args.offset = off; - if (num_cols >= MAX_THREADS) + if (num_cols >= num_avail_threads) { - vx_spawnWarps(num_rows, MAX_THREADS, _vx_mat_sub, (void *) (&mat_r_args)); + vx_spawnWarps(num_rows, num_avail_threads, _vx_mat_sub, (void *) (&mat_r_args)); } else { vx_spawnWarps(num_rows, num_cols, _vx_mat_sub, (void *) (&mat_r_args)); } - if (num_rows > (MAX_WARPS)) + unsigned num_avail_warps = vx_available_warps(); + + if (num_rows > num_avail_warps) { - vx_wait_for_warps(MAX_WARPS); + vx_wait_for_warps(num_avail_warps); } else { diff --git a/src/vortex_software/vx_include/vx_front.h b/src/vortex_software/vx_include/vx_front.h index b2f106e6..99bf9640 100644 --- a/src/vortex_software/vx_include/vx_front.h +++ b/src/vortex_software/vx_include/vx_front.h @@ -1,9 +1,6 @@ #include "../vx_os/vx_back/vx_back.h" #include "../vx_os/vx_io/vx_io.h" -#define MAX_WARPS 8 -#define MAX_THREADS 8 - // -------------------------- Matrix Multiplication -------------------------- diff --git a/src/vortex_software/vx_main.c b/src/vortex_software/vx_main.c index 68697347..c9b9dc9f 100644 --- a/src/vortex_software/vx_main.c +++ b/src/vortex_software/vx_main.c @@ -5,10 +5,10 @@ unsigned x[1024] = {0}; unsigned y[1024] = {0}; unsigned z[1024] = {0}; -#define MAT_DIM 8 +#define MAT_DIM 16 -#define NUM_COLS 8 -#define NUM_ROWS 1 +#define NUM_COLS 16 +#define NUM_ROWS 16 void initialize_mats() { @@ -24,18 +24,18 @@ int main() initialize_mats(); - // // matrix multiplication - // vx_sq_mat_mult(x, y, z, MAT_DIM); - // vx_print_str("-------------------------\n"); - // vx_print_str("FINAL MAT\n"); + // matrix multiplication + vx_sq_mat_mult(x, y, z, MAT_DIM); + vx_print_str("-------------------------\n"); + vx_print_str("FINAL MAT\n"); - // for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) - // { - // if ((j % MAT_DIM) == 0) vx_print_str("\n"); - // vx_print_hex(z[j]); - // vx_print_str(" "); - // } - // vx_print_str("\n-------------------------------\n"); + for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) + { + if ((j % MAT_DIM) == 0) vx_print_str("\n"); + vx_print_hex(z[j]); + vx_print_str(" "); + } + vx_print_str("\n-------------------------------\n"); // matrix addition diff --git a/src/vortex_software/vx_os/vx_back/vx_back.c b/src/vortex_software/vx_os/vx_back/vx_back.c index 19374552..b8a8f3c5 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.c +++ b/src/vortex_software/vx_os/vx_back/vx_back.c @@ -5,6 +5,7 @@ void vx_before_main() { + // unsigned num_available_warps = vx_available_warps(); for (int i = 0; i < 8; i++) { queue_initialize(q + i); @@ -20,7 +21,7 @@ void vx_reschedule_warps() if (queue_isEmpty(q+curr_warp)) { - vx_printf("Done: ", curr_warp); + // vx_printf("Done: ", curr_warp); done[curr_warp] = 1; if (curr_warp == 0) { @@ -44,11 +45,11 @@ void vx_reschedule_warps() void vx_schedule_warps() { - + unsigned num_available_warps = vx_available_warps(); asm __volatile__("mv s3, sp"); - for (int curr_warp = 1; curr_warp < 8; ++curr_warp) + for (int curr_warp = 1; curr_warp < num_available_warps; ++curr_warp) { if (!queue_isEmpty(q+curr_warp)) { @@ -64,17 +65,17 @@ void vx_schedule_warps() vx_save_context(); - vx_print_str("saved context\n"); + // vx_print_str("saved context\n"); register unsigned val asm("tp"); if (val) { if (!queue_isEmpty(q)) { - vx_print_str("found something for w0\n"); + // vx_print_str("found something for w0\n"); Job j; queue_dequeue(q,&j); - vx_printf("num_threads: ", j.n_threads); + // vx_printf("num_threads: ", j.n_threads); asm __volatile__("mv sp,%0"::"r" (j.base_sp):); vx_createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); } @@ -83,10 +84,13 @@ void vx_schedule_warps() } - void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) { vx_before_main(); + + unsigned num_available_warps = vx_available_warps(); + vx_printf("Num available warps: ", num_available_warps); + asm __volatile__("addi s2, sp, 0"); int warp = 0; for (unsigned i = 0; i < num_Warps; i++) @@ -105,7 +109,7 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) queue_enqueue(q + warp,&j); ++warp; - if (warp >= 8) warp = 0; + if (warp >= num_available_warps) warp = 0; } asm __volatile__("addi sp, s2, 0"); @@ -117,11 +121,12 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) void vx_wait_for_warps(unsigned num_wait) { // vx_printf("wait for: ", num_wait); + unsigned num_available_warps = vx_available_warps(); unsigned num = 0; while (num != num_wait) { num = 0; - for (int i = 0; i < 8; i++) + for (int i = 0; i < num_available_warps; i++) { if (done[i] == 1) { @@ -131,7 +136,7 @@ void vx_wait_for_warps(unsigned num_wait) } // vx_printf("num found: ", num); - for (int i = 0; i < num_wait; i++) done[i] = 0; + for (int i = 0; i < num_available_warps; i++) done[i] = 0; } diff --git a/src/vortex_software/vx_os/vx_back/vx_back.h b/src/vortex_software/vx_os/vx_back/vx_back.h index d23b19c7..c31b1dea 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.h +++ b/src/vortex_software/vx_os/vx_back/vx_back.h @@ -40,6 +40,10 @@ void vx_load_context(void); #define FUNC void (func)(unsigned, unsigned) +unsigned vx_available_warps(void); +unsigned vx_available_threads(void); + + void vx_createThreads(unsigned, unsigned, unsigned, void *, unsigned); void vx_wspawn(unsigned, unsigned, unsigned, void *, unsigned); void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void *); diff --git a/src/vortex_software/vx_os/vx_back/vx_back.s b/src/vortex_software/vx_os/vx_back/vx_back.s index a735b15e..c918588d 100644 --- a/src/vortex_software/vx_os/vx_back/vx_back.s +++ b/src/vortex_software/vx_os/vx_back/vx_back.s @@ -6,6 +6,12 @@ .type _start, @function .global _start _start: + li a0, 4 # Num Warps + csrw 0x20, a0 # Setting the number of available warps + li a0, 8 # Num Threads + csrw 0x21, a0 # Setting the number of available threads + csrw mhartid,zero + csrw misa,zero lui sp, 0x7ffff jal vx_before_main jal main @@ -127,3 +133,19 @@ lw x31, 124(tp) li tp, 0 ret +.type vx_available_warps, @function +.global vx_available_warps +vx_available_warps: +csrr a0, 0x20 +ret + +.type vx_available_threads, @function +.global vx_available_threads +vx_available_threads: +csrr a0, 0x21 +ret + + + + +