diff --git a/kernel/vortex_test.dump b/kernel/vortex_test.dump index 17c18cca..0e7349cd 100644 --- a/kernel/vortex_test.dump +++ b/kernel/vortex_test.dump @@ -5,1707 +5,1703 @@ vortex_test.elf: file format elf32-littleriscv Disassembly of section .text: 80000000 <_start>: -80000000: 00800513 li a0,8 -80000004: 02051073 csrw 0x20,a0 -80000008: 00400513 li a0,4 -8000000c: 02151073 csrw 0x21,a0 -80000010: f1401073 csrw mhartid,zero -80000014: 30101073 csrw misa,zero -80000018: 7ffff137 lui sp,0x7ffff -8000001c: 0b9010ef jal ra,800018d4
-80000020: 00000073 ecall +80000000: 00400513 li a0,4 +80000004: 0005006b 0x5006b +80000008: 020025f3 csrr a1,0x20 +8000000c: 02102673 csrr a2,0x21 +80000010: 00000073 ecall -80000024 : -80000024: 00068b93 mv s7,a3 -80000028: 00070d13 mv s10,a4 -8000002c: 00010f13 mv t5,sp -80000030: 00050393 mv t2,a0 +80000014 : +80000014: 00068b93 mv s7,a3 +80000018: 00070d13 mv s10,a4 +8000001c: 00010f13 mv t5,sp +80000020: 00050393 mv t2,a0 -80000034 : -80000034: 00100513 li a0,1 +80000024 : +80000024: 00100513 li a0,1 -80000038 : -80000038: 00755c63 bge a0,t2,80000050 +80000028 : +80000028: 00755c63 bge a0,t2,80000040 -8000003c : -8000003c: 80010113 addi sp,sp,-2048 # 7fffe800 -80000040: 00050313 mv t1,a0 -80000044: 0003506b 0x3506b +8000002c : +8000002c: 80010113 addi sp,sp,-2048 +80000030: 00050313 mv t1,a0 +80000034: 0003506b 0x3506b -80000048 : -80000048: 00150513 addi a0,a0,1 -8000004c: fedff06f j 80000038 +80000038 : +80000038: 00150513 addi a0,a0,1 +8000003c: fedff06f j 80000028 -80000050 : +80000040 : +80000040: 00000013 nop +80000044: 00000013 nop +80000048: 00000013 nop +8000004c: 00000013 nop 80000050: 00000013 nop 80000054: 00000013 nop -80000058: 00000013 nop -8000005c: 00000013 nop -80000060: 00000013 nop -80000064: 00000013 nop -80000068: 000f0113 mv sp,t5 -8000006c: 00000513 li a0,0 -80000070: 00060f93 mv t6,a2 -80000074: 00038d93 mv s11,t2 +80000058: 000f0113 mv sp,t5 +8000005c: 00000513 li a0,0 +80000060: 00060f93 mv t6,a2 +80000064: 00038d93 mv s11,t2 +80000068: 00000013 nop +8000006c: 00000013 nop +80000070: 00000013 nop +80000074: 00000013 nop 80000078: 00000013 nop 8000007c: 00000013 nop 80000080: 00000013 nop 80000084: 00000013 nop -80000088: 00000013 nop +80000088: 01bfe0eb 0x1bfe0eb 8000008c: 00000013 nop 80000090: 00000013 nop 80000094: 00000013 nop -80000098: 01bfe0eb 0x1bfe0eb +80000098: 00000013 nop 8000009c: 00000013 nop 800000a0: 00000013 nop -800000a4: 00000013 nop -800000a8: 00000013 nop -800000ac: 00000013 nop -800000b0: 00000013 nop -800000b4: 00000517 auipc a0,0x0 -800000b8: 1b450513 addi a0,a0,436 # 80000268 -800000bc: 0005406b 0x5406b +800000a4: 00000517 auipc a0,0x0 +800000a8: 1b450513 addi a0,a0,436 # 80000258 +800000ac: 0005406b 0x5406b -800000c0 : -800000c0: 00000317 auipc t1,0x0 -800000c4: f6430313 addi t1,t1,-156 # 80000024 -800000c8: 0003006b 0x3006b -800000cc: 00008067 ret +800000b0 : +800000b0: 00000317 auipc t1,0x0 +800000b4: f6430313 addi t1,t1,-156 # 80000014 +800000b8: 0003006b 0x3006b +800000bc: 00008067 ret -800000d0 : -800000d0: 01000217 auipc tp,0x1000 -800000d4: 24020213 addi tp,tp,576 # 81000310 -800000d8: 00022023 sw zero,0(tp) # 0 -800000dc: 00122223 sw ra,4(tp) # 4 -800000e0: 00222423 sw sp,8(tp) # 8 -800000e4: 00322623 sw gp,12(tp) # c -800000e8: 00422823 sw tp,16(tp) # 10 -800000ec: 00522a23 sw t0,20(tp) # 14 -800000f0: 00622c23 sw t1,24(tp) # 18 -800000f4: 00722e23 sw t2,28(tp) # 1c -800000f8: 02822023 sw s0,32(tp) # 20 -800000fc: 02922223 sw s1,36(tp) # 24 -80000100: 02a22423 sw a0,40(tp) # 28 -80000104: 02b22623 sw a1,44(tp) # 2c -80000108: 02c22823 sw a2,48(tp) # 30 -8000010c: 02d22a23 sw a3,52(tp) # 34 -80000110: 02e22c23 sw a4,56(tp) # 38 -80000114: 02f22e23 sw a5,60(tp) # 3c -80000118: 05022023 sw a6,64(tp) # 40 -8000011c: 05122223 sw a7,68(tp) # 44 -80000120: 05222423 sw s2,72(tp) # 48 -80000124: 05322623 sw s3,76(tp) # 4c -80000128: 05422823 sw s4,80(tp) # 50 -8000012c: 05522a23 sw s5,84(tp) # 54 -80000130: 05622c23 sw s6,88(tp) # 58 -80000134: 05722e23 sw s7,92(tp) # 5c -80000138: 07822023 sw s8,96(tp) # 60 -8000013c: 07922223 sw s9,100(tp) # 64 -80000140: 07a22423 sw s10,104(tp) # 68 -80000144: 07b22623 sw s11,108(tp) # 6c -80000148: 07c22823 sw t3,112(tp) # 70 -8000014c: 07d22a23 sw t4,116(tp) # 74 -80000150: 07e22c23 sw t5,120(tp) # 78 -80000154: 07f22e23 sw t6,124(tp) # 7c -80000158: 00100213 li tp,1 -8000015c: 00008067 ret +800000c0 : +800000c0: 01000217 auipc tp,0x1000 +800000c4: 25020213 addi tp,tp,592 # 81000310 +800000c8: 00022023 sw zero,0(tp) # 0 +800000cc: 00122223 sw ra,4(tp) # 4 +800000d0: 00222423 sw sp,8(tp) # 8 +800000d4: 00322623 sw gp,12(tp) # c +800000d8: 00422823 sw tp,16(tp) # 10 +800000dc: 00522a23 sw t0,20(tp) # 14 +800000e0: 00622c23 sw t1,24(tp) # 18 +800000e4: 00722e23 sw t2,28(tp) # 1c +800000e8: 02822023 sw s0,32(tp) # 20 +800000ec: 02922223 sw s1,36(tp) # 24 +800000f0: 02a22423 sw a0,40(tp) # 28 +800000f4: 02b22623 sw a1,44(tp) # 2c +800000f8: 02c22823 sw a2,48(tp) # 30 +800000fc: 02d22a23 sw a3,52(tp) # 34 +80000100: 02e22c23 sw a4,56(tp) # 38 +80000104: 02f22e23 sw a5,60(tp) # 3c +80000108: 05022023 sw a6,64(tp) # 40 +8000010c: 05122223 sw a7,68(tp) # 44 +80000110: 05222423 sw s2,72(tp) # 48 +80000114: 05322623 sw s3,76(tp) # 4c +80000118: 05422823 sw s4,80(tp) # 50 +8000011c: 05522a23 sw s5,84(tp) # 54 +80000120: 05622c23 sw s6,88(tp) # 58 +80000124: 05722e23 sw s7,92(tp) # 5c +80000128: 07822023 sw s8,96(tp) # 60 +8000012c: 07922223 sw s9,100(tp) # 64 +80000130: 07a22423 sw s10,104(tp) # 68 +80000134: 07b22623 sw s11,108(tp) # 6c +80000138: 07c22823 sw t3,112(tp) # 70 +8000013c: 07d22a23 sw t4,116(tp) # 74 +80000140: 07e22c23 sw t5,120(tp) # 78 +80000144: 07f22e23 sw t6,124(tp) # 7c +80000148: 00100213 li tp,1 +8000014c: 00008067 ret -80000160 : -80000160: 01000217 auipc tp,0x1000 -80000164: 1b020213 addi tp,tp,432 # 81000310 -80000168: 00022003 lw zero,0(tp) # 0 -8000016c: 00422083 lw ra,4(tp) # 4 -80000170: 00822103 lw sp,8(tp) # 8 -80000174: 00c22183 lw gp,12(tp) # c -80000178: 01022203 lw tp,16(tp) # 10 -8000017c: 01422283 lw t0,20(tp) # 14 -80000180: 01822303 lw t1,24(tp) # 18 -80000184: 01c22383 lw t2,28(tp) # 1c -80000188: 02022403 lw s0,32(tp) # 20 -8000018c: 02422483 lw s1,36(tp) # 24 -80000190: 02822503 lw a0,40(tp) # 28 -80000194: 02c22583 lw a1,44(tp) # 2c -80000198: 03022603 lw a2,48(tp) # 30 -8000019c: 03422683 lw a3,52(tp) # 34 -800001a0: 03822703 lw a4,56(tp) # 38 -800001a4: 03c22783 lw a5,60(tp) # 3c -800001a8: 04022803 lw a6,64(tp) # 40 -800001ac: 04422883 lw a7,68(tp) # 44 -800001b0: 04822903 lw s2,72(tp) # 48 -800001b4: 04c22983 lw s3,76(tp) # 4c -800001b8: 05022a03 lw s4,80(tp) # 50 -800001bc: 05422a83 lw s5,84(tp) # 54 -800001c0: 05822b03 lw s6,88(tp) # 58 -800001c4: 05c22b83 lw s7,92(tp) # 5c -800001c8: 06022c03 lw s8,96(tp) # 60 -800001cc: 06422c83 lw s9,100(tp) # 64 -800001d0: 06822d03 lw s10,104(tp) # 68 -800001d4: 06c22d83 lw s11,108(tp) # 6c -800001d8: 07022e03 lw t3,112(tp) # 70 -800001dc: 07422e83 lw t4,116(tp) # 74 -800001e0: 07822f03 lw t5,120(tp) # 78 -800001e4: 07c22f83 lw t6,124(tp) # 7c -800001e8: 00000213 li tp,0 +80000150 : +80000150: 01000217 auipc tp,0x1000 +80000154: 1c020213 addi tp,tp,448 # 81000310 +80000158: 00022003 lw zero,0(tp) # 0 +8000015c: 00422083 lw ra,4(tp) # 4 +80000160: 00822103 lw sp,8(tp) # 8 +80000164: 00c22183 lw gp,12(tp) # c +80000168: 01022203 lw tp,16(tp) # 10 +8000016c: 01422283 lw t0,20(tp) # 14 +80000170: 01822303 lw t1,24(tp) # 18 +80000174: 01c22383 lw t2,28(tp) # 1c +80000178: 02022403 lw s0,32(tp) # 20 +8000017c: 02422483 lw s1,36(tp) # 24 +80000180: 02822503 lw a0,40(tp) # 28 +80000184: 02c22583 lw a1,44(tp) # 2c +80000188: 03022603 lw a2,48(tp) # 30 +8000018c: 03422683 lw a3,52(tp) # 34 +80000190: 03822703 lw a4,56(tp) # 38 +80000194: 03c22783 lw a5,60(tp) # 3c +80000198: 04022803 lw a6,64(tp) # 40 +8000019c: 04422883 lw a7,68(tp) # 44 +800001a0: 04822903 lw s2,72(tp) # 48 +800001a4: 04c22983 lw s3,76(tp) # 4c +800001a8: 05022a03 lw s4,80(tp) # 50 +800001ac: 05422a83 lw s5,84(tp) # 54 +800001b0: 05822b03 lw s6,88(tp) # 58 +800001b4: 05c22b83 lw s7,92(tp) # 5c +800001b8: 06022c03 lw s8,96(tp) # 60 +800001bc: 06422c83 lw s9,100(tp) # 64 +800001c0: 06822d03 lw s10,104(tp) # 68 +800001c4: 06c22d83 lw s11,108(tp) # 6c +800001c8: 07022e03 lw t3,112(tp) # 70 +800001cc: 07422e83 lw t4,116(tp) # 74 +800001d0: 07822f03 lw t5,120(tp) # 78 +800001d4: 07c22f83 lw t6,124(tp) # 7c +800001d8: 00000213 li tp,0 +800001dc: 00008067 ret + +800001e0 : +800001e0: 02002573 csrr a0,0x20 +800001e4: 00008067 ret + +800001e8 : +800001e8: 02102573 csrr a0,0x21 800001ec: 00008067 ret -800001f0 : -800001f0: 02002573 csrr a0,0x20 -800001f4: 00008067 ret +800001f0 : +800001f0: fe010113 addi sp,sp,-32 +800001f4: 00112e23 sw ra,28(sp) +800001f8: 00812c23 sw s0,24(sp) +800001fc: 02010413 addi s0,sp,32 +80000200: fe042623 sw zero,-20(s0) +80000204: 0340006f j 80000238 +80000208: fec42703 lw a4,-20(s0) +8000020c: 000017b7 lui a5,0x1 +80000210: 97478793 addi a5,a5,-1676 # 974 +80000214: 02f70733 mul a4,a4,a5 +80000218: 810007b7 lui a5,0x81000 +8000021c: 41078793 addi a5,a5,1040 # 81000410 +80000220: 00f707b3 add a5,a4,a5 +80000224: 00078513 mv a0,a5 +80000228: 440000ef jal ra,80000668 +8000022c: fec42783 lw a5,-20(s0) +80000230: 00178793 addi a5,a5,1 +80000234: fef42623 sw a5,-20(s0) +80000238: fec42703 lw a4,-20(s0) +8000023c: 01f00793 li a5,31 +80000240: fce7d4e3 bge a5,a4,80000208 +80000244: 00000013 nop +80000248: 01c12083 lw ra,28(sp) +8000024c: 01812403 lw s0,24(sp) +80000250: 02010113 addi sp,sp,32 +80000254: 00008067 ret -800001f8 : -800001f8: 02102573 csrr a0,0x21 -800001fc: 00008067 ret +80000258 : +80000258: fd010113 addi sp,sp,-48 +8000025c: 02112623 sw ra,44(sp) +80000260: 02812423 sw s0,40(sp) +80000264: 03a12223 sw s10,36(sp) +80000268: 03010413 addi s0,sp,48 +8000026c: 00000013 nop +80000270: 000d0713 mv a4,s10 +80000274: 000017b7 lui a5,0x1 +80000278: 97478793 addi a5,a5,-1676 # 974 +8000027c: 02f70733 mul a4,a4,a5 +80000280: 810007b7 lui a5,0x81000 +80000284: 41078793 addi a5,a5,1040 # 81000410 +80000288: 00f707b3 add a5,a4,a5 +8000028c: 00078513 mv a0,a5 +80000290: 504000ef jal ra,80000794 +80000294: 00050793 mv a5,a0 +80000298: 02078a63 beqz a5,800002cc +8000029c: 000d0713 mv a4,s10 +800002a0: 810007b7 lui a5,0x81000 +800002a4: 00271713 slli a4,a4,0x2 +800002a8: 26878793 addi a5,a5,616 # 81000268 +800002ac: 00f707b3 add a5,a4,a5 +800002b0: 00100713 li a4,1 +800002b4: 00e7a023 sw a4,0(a5) +800002b8: 000d0793 mv a5,s10 +800002bc: 00079663 bnez a5,800002c8 +800002c0: e91ff0ef jal ra,80000150 +800002c4: 05c0006f j 80000320 +800002c8: 00000073 ecall +800002cc: 000d0713 mv a4,s10 +800002d0: 000017b7 lui a5,0x1 +800002d4: 97478793 addi a5,a5,-1676 # 974 +800002d8: 02f70733 mul a4,a4,a5 +800002dc: 810007b7 lui a5,0x81000 +800002e0: 41078793 addi a5,a5,1040 # 81000410 +800002e4: 00f707b3 add a5,a4,a5 +800002e8: fd840713 addi a4,s0,-40 +800002ec: 00070593 mv a1,a4 +800002f0: 00078513 mv a0,a5 +800002f4: 400000ef jal ra,800006f4 +800002f8: fe042783 lw a5,-32(s0) +800002fc: 00078113 mv sp,a5 +80000300: fdc42783 lw a5,-36(s0) +80000304: fd842583 lw a1,-40(s0) +80000308: fe442603 lw a2,-28(s0) +8000030c: fe842683 lw a3,-24(s0) +80000310: fec42703 lw a4,-20(s0) +80000314: 00078513 mv a0,a5 +80000318: cfdff0ef jal ra,80000014 +8000031c: 00000073 ecall +80000320: 02c12083 lw ra,44(sp) +80000324: 02812403 lw s0,40(sp) +80000328: 02412d03 lw s10,36(sp) +8000032c: 03010113 addi sp,sp,48 +80000330: 00008067 ret -80000200 : -80000200: fe010113 addi sp,sp,-32 -80000204: 00112e23 sw ra,28(sp) -80000208: 00812c23 sw s0,24(sp) -8000020c: 02010413 addi s0,sp,32 -80000210: fe042623 sw zero,-20(s0) -80000214: 0340006f j 80000248 -80000218: fec42703 lw a4,-20(s0) -8000021c: 000017b7 lui a5,0x1 -80000220: 97478793 addi a5,a5,-1676 # 974 -80000224: 02f70733 mul a4,a4,a5 -80000228: 810007b7 lui a5,0x81000 -8000022c: 41078793 addi a5,a5,1040 # 81000410 -80000230: 00f707b3 add a5,a4,a5 -80000234: 00078513 mv a0,a5 -80000238: 440000ef jal ra,80000678 -8000023c: fec42783 lw a5,-20(s0) -80000240: 00178793 addi a5,a5,1 -80000244: fef42623 sw a5,-20(s0) -80000248: fec42703 lw a4,-20(s0) -8000024c: 01f00793 li a5,31 -80000250: fce7d4e3 bge a5,a4,80000218 -80000254: 00000013 nop -80000258: 01c12083 lw ra,28(sp) -8000025c: 01812403 lw s0,24(sp) -80000260: 02010113 addi sp,sp,32 -80000264: 00008067 ret +80000334 : +80000334: fb010113 addi sp,sp,-80 +80000338: 04112623 sw ra,76(sp) +8000033c: 04812423 sw s0,72(sp) +80000340: 05010413 addi s0,sp,80 +80000344: e9dff0ef jal ra,800001e0 +80000348: fea42423 sw a0,-24(s0) +8000034c: 00010993 mv s3,sp +80000350: 00100793 li a5,1 +80000354: fef42623 sw a5,-20(s0) +80000358: 08c0006f j 800003e4 +8000035c: fec42703 lw a4,-20(s0) +80000360: 000017b7 lui a5,0x1 +80000364: 97478793 addi a5,a5,-1676 # 974 +80000368: 02f70733 mul a4,a4,a5 +8000036c: 810007b7 lui a5,0x81000 +80000370: 41078793 addi a5,a5,1040 # 81000410 +80000374: 00f707b3 add a5,a4,a5 +80000378: 00078513 mv a0,a5 +8000037c: 418000ef jal ra,80000794 +80000380: 00050793 mv a5,a0 +80000384: 04079a63 bnez a5,800003d8 +80000388: fec42703 lw a4,-20(s0) +8000038c: 000017b7 lui a5,0x1 +80000390: 97478793 addi a5,a5,-1676 # 974 +80000394: 02f70733 mul a4,a4,a5 +80000398: 810007b7 lui a5,0x81000 +8000039c: 41078793 addi a5,a5,1040 # 81000410 +800003a0: 00f707b3 add a5,a4,a5 +800003a4: fd040713 addi a4,s0,-48 +800003a8: 00070593 mv a1,a4 +800003ac: 00078513 mv a0,a5 +800003b0: 344000ef jal ra,800006f4 +800003b4: fd842783 lw a5,-40(s0) +800003b8: 00078113 mv sp,a5 +800003bc: fd442783 lw a5,-44(s0) +800003c0: fd042583 lw a1,-48(s0) +800003c4: fdc42603 lw a2,-36(s0) +800003c8: fe042683 lw a3,-32(s0) +800003cc: fe442703 lw a4,-28(s0) +800003d0: 00078513 mv a0,a5 +800003d4: cddff0ef jal ra,800000b0 +800003d8: fec42783 lw a5,-20(s0) +800003dc: 00178793 addi a5,a5,1 +800003e0: fef42623 sw a5,-20(s0) +800003e4: fec42783 lw a5,-20(s0) +800003e8: fe842703 lw a4,-24(s0) +800003ec: f6e7e8e3 bltu a5,a4,8000035c +800003f0: 00098113 mv sp,s3 +800003f4: ccdff0ef jal ra,800000c0 +800003f8: 00020793 mv a5,tp +800003fc: 04078863 beqz a5,8000044c +80000400: 810007b7 lui a5,0x81000 +80000404: 41078513 addi a0,a5,1040 # 81000410 +80000408: 38c000ef jal ra,80000794 +8000040c: 00050793 mv a5,a0 +80000410: 02079e63 bnez a5,8000044c +80000414: fb840793 addi a5,s0,-72 +80000418: 00078593 mv a1,a5 +8000041c: 810007b7 lui a5,0x81000 +80000420: 41078513 addi a0,a5,1040 # 81000410 +80000424: 2d0000ef jal ra,800006f4 +80000428: fc042783 lw a5,-64(s0) +8000042c: 00078113 mv sp,a5 +80000430: fbc42783 lw a5,-68(s0) +80000434: fb842583 lw a1,-72(s0) +80000438: fc442603 lw a2,-60(s0) +8000043c: fc842683 lw a3,-56(s0) +80000440: fcc42703 lw a4,-52(s0) +80000444: 00078513 mv a0,a5 +80000448: bcdff0ef jal ra,80000014 +8000044c: 00000013 nop +80000450: 04c12083 lw ra,76(sp) +80000454: 04812403 lw s0,72(sp) +80000458: 05010113 addi sp,sp,80 +8000045c: 00008067 ret -80000268 : -80000268: fd010113 addi sp,sp,-48 -8000026c: 02112623 sw ra,44(sp) -80000270: 02812423 sw s0,40(sp) -80000274: 03a12223 sw s10,36(sp) -80000278: 03010413 addi s0,sp,48 -8000027c: 00000013 nop -80000280: 000d0713 mv a4,s10 -80000284: 000017b7 lui a5,0x1 -80000288: 97478793 addi a5,a5,-1676 # 974 -8000028c: 02f70733 mul a4,a4,a5 -80000290: 810007b7 lui a5,0x81000 -80000294: 41078793 addi a5,a5,1040 # 81000410 -80000298: 00f707b3 add a5,a4,a5 -8000029c: 00078513 mv a0,a5 -800002a0: 504000ef jal ra,800007a4 -800002a4: 00050793 mv a5,a0 -800002a8: 02078a63 beqz a5,800002dc -800002ac: 000d0713 mv a4,s10 -800002b0: 810007b7 lui a5,0x81000 -800002b4: 00271713 slli a4,a4,0x2 -800002b8: 26878793 addi a5,a5,616 # 81000268 -800002bc: 00f707b3 add a5,a4,a5 -800002c0: 00100713 li a4,1 -800002c4: 00e7a023 sw a4,0(a5) -800002c8: 000d0793 mv a5,s10 -800002cc: 00079663 bnez a5,800002d8 -800002d0: e91ff0ef jal ra,80000160 -800002d4: 05c0006f j 80000330 -800002d8: 00000073 ecall -800002dc: 000d0713 mv a4,s10 -800002e0: 000017b7 lui a5,0x1 -800002e4: 97478793 addi a5,a5,-1676 # 974 -800002e8: 02f70733 mul a4,a4,a5 -800002ec: 810007b7 lui a5,0x81000 -800002f0: 41078793 addi a5,a5,1040 # 81000410 -800002f4: 00f707b3 add a5,a4,a5 -800002f8: fd840713 addi a4,s0,-40 -800002fc: 00070593 mv a1,a4 -80000300: 00078513 mv a0,a5 -80000304: 400000ef jal ra,80000704 -80000308: fe042783 lw a5,-32(s0) -8000030c: 00078113 mv sp,a5 -80000310: fdc42783 lw a5,-36(s0) -80000314: fd842583 lw a1,-40(s0) -80000318: fe442603 lw a2,-28(s0) -8000031c: fe842683 lw a3,-24(s0) -80000320: fec42703 lw a4,-20(s0) -80000324: 00078513 mv a0,a5 -80000328: cfdff0ef jal ra,80000024 -8000032c: 00000073 ecall -80000330: 02c12083 lw ra,44(sp) -80000334: 02812403 lw s0,40(sp) -80000338: 02412d03 lw s10,36(sp) -8000033c: 03010113 addi sp,sp,48 -80000340: 00008067 ret +80000460 : +80000460: fb010113 addi sp,sp,-80 +80000464: 04112623 sw ra,76(sp) +80000468: 04812423 sw s0,72(sp) +8000046c: 05010413 addi s0,sp,80 +80000470: faa42e23 sw a0,-68(s0) +80000474: fab42c23 sw a1,-72(s0) +80000478: fac42a23 sw a2,-76(s0) +8000047c: fad42823 sw a3,-80(s0) +80000480: d71ff0ef jal ra,800001f0 +80000484: d5dff0ef jal ra,800001e0 +80000488: fea42223 sw a0,-28(s0) +8000048c: 00010913 mv s2,sp +80000490: fe042623 sw zero,-20(s0) +80000494: fe042423 sw zero,-24(s0) +80000498: 0900006f j 80000528 +8000049c: ffff09b7 lui s3,0xffff0 +800004a0: 01310133 add sp,sp,s3 +800004a4: fe842783 lw a5,-24(s0) +800004a8: fcf42623 sw a5,-52(s0) +800004ac: fb842783 lw a5,-72(s0) +800004b0: fcf42823 sw a5,-48(s0) +800004b4: 00010793 mv a5,sp +800004b8: fcf42a23 sw a5,-44(s0) +800004bc: fb442783 lw a5,-76(s0) +800004c0: fcf42c23 sw a5,-40(s0) +800004c4: fb042783 lw a5,-80(s0) +800004c8: fcf42e23 sw a5,-36(s0) +800004cc: fec42783 lw a5,-20(s0) +800004d0: fef42023 sw a5,-32(s0) +800004d4: fec42703 lw a4,-20(s0) +800004d8: 000017b7 lui a5,0x1 +800004dc: 97478793 addi a5,a5,-1676 # 974 +800004e0: 02f70733 mul a4,a4,a5 +800004e4: 810007b7 lui a5,0x81000 +800004e8: 41078793 addi a5,a5,1040 # 81000410 +800004ec: 00f707b3 add a5,a4,a5 +800004f0: fcc40713 addi a4,s0,-52 +800004f4: 00070593 mv a1,a4 +800004f8: 00078513 mv a0,a5 +800004fc: 190000ef jal ra,8000068c +80000500: fec42783 lw a5,-20(s0) +80000504: 00178793 addi a5,a5,1 +80000508: fef42623 sw a5,-20(s0) +8000050c: fec42783 lw a5,-20(s0) +80000510: fe442703 lw a4,-28(s0) +80000514: 00e7e463 bltu a5,a4,8000051c +80000518: fe042623 sw zero,-20(s0) +8000051c: fe842783 lw a5,-24(s0) +80000520: 00178793 addi a5,a5,1 +80000524: fef42423 sw a5,-24(s0) +80000528: fe842703 lw a4,-24(s0) +8000052c: fbc42783 lw a5,-68(s0) +80000530: f6f766e3 bltu a4,a5,8000049c +80000534: 00090113 mv sp,s2 +80000538: dfdff0ef jal ra,80000334 +8000053c: 00000013 nop +80000540: 04c12083 lw ra,76(sp) +80000544: 04812403 lw s0,72(sp) +80000548: 05010113 addi sp,sp,80 +8000054c: 00008067 ret -80000344 : -80000344: fb010113 addi sp,sp,-80 -80000348: 04112623 sw ra,76(sp) -8000034c: 04812423 sw s0,72(sp) -80000350: 05010413 addi s0,sp,80 -80000354: e9dff0ef jal ra,800001f0 -80000358: fea42423 sw a0,-24(s0) -8000035c: 00010993 mv s3,sp -80000360: 00100793 li a5,1 -80000364: fef42623 sw a5,-20(s0) -80000368: 08c0006f j 800003f4 -8000036c: fec42703 lw a4,-20(s0) -80000370: 000017b7 lui a5,0x1 -80000374: 97478793 addi a5,a5,-1676 # 974 -80000378: 02f70733 mul a4,a4,a5 -8000037c: 810007b7 lui a5,0x81000 -80000380: 41078793 addi a5,a5,1040 # 81000410 -80000384: 00f707b3 add a5,a4,a5 -80000388: 00078513 mv a0,a5 -8000038c: 418000ef jal ra,800007a4 -80000390: 00050793 mv a5,a0 -80000394: 04079a63 bnez a5,800003e8 -80000398: fec42703 lw a4,-20(s0) -8000039c: 000017b7 lui a5,0x1 -800003a0: 97478793 addi a5,a5,-1676 # 974 -800003a4: 02f70733 mul a4,a4,a5 -800003a8: 810007b7 lui a5,0x81000 -800003ac: 41078793 addi a5,a5,1040 # 81000410 -800003b0: 00f707b3 add a5,a4,a5 -800003b4: fd040713 addi a4,s0,-48 -800003b8: 00070593 mv a1,a4 -800003bc: 00078513 mv a0,a5 -800003c0: 344000ef jal ra,80000704 -800003c4: fd842783 lw a5,-40(s0) -800003c8: 00078113 mv sp,a5 -800003cc: fd442783 lw a5,-44(s0) -800003d0: fd042583 lw a1,-48(s0) -800003d4: fdc42603 lw a2,-36(s0) -800003d8: fe042683 lw a3,-32(s0) -800003dc: fe442703 lw a4,-28(s0) -800003e0: 00078513 mv a0,a5 -800003e4: cddff0ef jal ra,800000c0 -800003e8: fec42783 lw a5,-20(s0) -800003ec: 00178793 addi a5,a5,1 -800003f0: fef42623 sw a5,-20(s0) -800003f4: fec42783 lw a5,-20(s0) -800003f8: fe842703 lw a4,-24(s0) -800003fc: f6e7e8e3 bltu a5,a4,8000036c -80000400: 00098113 mv sp,s3 -80000404: ccdff0ef jal ra,800000d0 -80000408: 00020793 mv a5,tp -8000040c: 04078863 beqz a5,8000045c -80000410: 810007b7 lui a5,0x81000 -80000414: 41078513 addi a0,a5,1040 # 81000410 -80000418: 38c000ef jal ra,800007a4 -8000041c: 00050793 mv a5,a0 -80000420: 02079e63 bnez a5,8000045c -80000424: fb840793 addi a5,s0,-72 -80000428: 00078593 mv a1,a5 -8000042c: 810007b7 lui a5,0x81000 -80000430: 41078513 addi a0,a5,1040 # 81000410 -80000434: 2d0000ef jal ra,80000704 -80000438: fc042783 lw a5,-64(s0) -8000043c: 00078113 mv sp,a5 -80000440: fbc42783 lw a5,-68(s0) -80000444: fb842583 lw a1,-72(s0) -80000448: fc442603 lw a2,-60(s0) -8000044c: fc842683 lw a3,-56(s0) -80000450: fcc42703 lw a4,-52(s0) -80000454: 00078513 mv a0,a5 -80000458: bcdff0ef jal ra,80000024 -8000045c: 00000013 nop -80000460: 04c12083 lw ra,76(sp) -80000464: 04812403 lw s0,72(sp) -80000468: 05010113 addi sp,sp,80 -8000046c: 00008067 ret +80000550 : +80000550: fd010113 addi sp,sp,-48 +80000554: 02112623 sw ra,44(sp) +80000558: 02812423 sw s0,40(sp) +8000055c: 03010413 addi s0,sp,48 +80000560: fca42e23 sw a0,-36(s0) +80000564: fdc42583 lw a1,-36(s0) +80000568: 810007b7 lui a5,0x81000 +8000056c: 04078513 addi a0,a5,64 # 81000040 +80000570: 354000ef jal ra,800008c4 +80000574: c6dff0ef jal ra,800001e0 +80000578: fea42023 sw a0,-32(s0) +8000057c: fe042623 sw zero,-20(s0) +80000580: 0680006f j 800005e8 +80000584: 00100793 li a5,1 +80000588: fef42623 sw a5,-20(s0) +8000058c: fe042423 sw zero,-24(s0) +80000590: 03c0006f j 800005cc +80000594: 810007b7 lui a5,0x81000 +80000598: fe842703 lw a4,-24(s0) +8000059c: 00271713 slli a4,a4,0x2 +800005a0: 26878793 addi a5,a5,616 # 81000268 +800005a4: 00f707b3 add a5,a4,a5 +800005a8: 0007a703 lw a4,0(a5) +800005ac: 00100793 li a5,1 +800005b0: 00f71863 bne a4,a5,800005c0 +800005b4: fec42783 lw a5,-20(s0) +800005b8: 00178793 addi a5,a5,1 +800005bc: fef42623 sw a5,-20(s0) +800005c0: fe842783 lw a5,-24(s0) +800005c4: 00178793 addi a5,a5,1 +800005c8: fef42423 sw a5,-24(s0) +800005cc: fe842703 lw a4,-24(s0) +800005d0: 01f00793 li a5,31 +800005d4: fce7d0e3 bge a5,a4,80000594 +800005d8: fec42583 lw a1,-20(s0) +800005dc: 810007b7 lui a5,0x81000 +800005e0: 04c78513 addi a0,a5,76 # 8100004c +800005e4: 2e0000ef jal ra,800008c4 +800005e8: fec42703 lw a4,-20(s0) +800005ec: fdc42783 lw a5,-36(s0) +800005f0: f8f76ae3 bltu a4,a5,80000584 +800005f4: fe042223 sw zero,-28(s0) +800005f8: 0280006f j 80000620 +800005fc: 810007b7 lui a5,0x81000 +80000600: fe442703 lw a4,-28(s0) +80000604: 00271713 slli a4,a4,0x2 +80000608: 26878793 addi a5,a5,616 # 81000268 +8000060c: 00f707b3 add a5,a4,a5 +80000610: 0007a023 sw zero,0(a5) +80000614: fe442783 lw a5,-28(s0) +80000618: 00178793 addi a5,a5,1 +8000061c: fef42223 sw a5,-28(s0) +80000620: fe442783 lw a5,-28(s0) +80000624: fe042703 lw a4,-32(s0) +80000628: fce7eae3 bltu a5,a4,800005fc +8000062c: 00000013 nop +80000630: 02c12083 lw ra,44(sp) +80000634: 02812403 lw s0,40(sp) +80000638: 03010113 addi sp,sp,48 +8000063c: 00008067 ret -80000470 : -80000470: fb010113 addi sp,sp,-80 -80000474: 04112623 sw ra,76(sp) -80000478: 04812423 sw s0,72(sp) -8000047c: 05010413 addi s0,sp,80 -80000480: faa42e23 sw a0,-68(s0) -80000484: fab42c23 sw a1,-72(s0) -80000488: fac42a23 sw a2,-76(s0) -8000048c: fad42823 sw a3,-80(s0) -80000490: d71ff0ef jal ra,80000200 -80000494: d5dff0ef jal ra,800001f0 -80000498: fea42223 sw a0,-28(s0) -8000049c: 00010913 mv s2,sp -800004a0: fe042623 sw zero,-20(s0) -800004a4: fe042423 sw zero,-24(s0) -800004a8: 0900006f j 80000538 -800004ac: ffff09b7 lui s3,0xffff0 -800004b0: 01310133 add sp,sp,s3 -800004b4: fe842783 lw a5,-24(s0) -800004b8: fcf42623 sw a5,-52(s0) -800004bc: fb842783 lw a5,-72(s0) -800004c0: fcf42823 sw a5,-48(s0) -800004c4: 00010793 mv a5,sp -800004c8: fcf42a23 sw a5,-44(s0) -800004cc: fb442783 lw a5,-76(s0) -800004d0: fcf42c23 sw a5,-40(s0) -800004d4: fb042783 lw a5,-80(s0) -800004d8: fcf42e23 sw a5,-36(s0) -800004dc: fec42783 lw a5,-20(s0) -800004e0: fef42023 sw a5,-32(s0) -800004e4: fec42703 lw a4,-20(s0) -800004e8: 000017b7 lui a5,0x1 -800004ec: 97478793 addi a5,a5,-1676 # 974 -800004f0: 02f70733 mul a4,a4,a5 -800004f4: 810007b7 lui a5,0x81000 -800004f8: 41078793 addi a5,a5,1040 # 81000410 -800004fc: 00f707b3 add a5,a4,a5 -80000500: fcc40713 addi a4,s0,-52 -80000504: 00070593 mv a1,a4 -80000508: 00078513 mv a0,a5 -8000050c: 190000ef jal ra,8000069c -80000510: fec42783 lw a5,-20(s0) -80000514: 00178793 addi a5,a5,1 -80000518: fef42623 sw a5,-20(s0) -8000051c: fec42783 lw a5,-20(s0) -80000520: fe442703 lw a4,-28(s0) -80000524: 00e7e463 bltu a5,a4,8000052c -80000528: fe042623 sw zero,-20(s0) -8000052c: fe842783 lw a5,-24(s0) -80000530: 00178793 addi a5,a5,1 -80000534: fef42423 sw a5,-24(s0) -80000538: fe842703 lw a4,-24(s0) -8000053c: fbc42783 lw a5,-68(s0) -80000540: f6f766e3 bltu a4,a5,800004ac -80000544: 00090113 mv sp,s2 -80000548: dfdff0ef jal ra,80000344 -8000054c: 00000013 nop -80000550: 04c12083 lw ra,76(sp) -80000554: 04812403 lw s0,72(sp) -80000558: 05010113 addi sp,sp,80 -8000055c: 00008067 ret +80000640 : +80000640: ff010113 addi sp,sp,-16 +80000644: 00812623 sw s0,12(sp) +80000648: 01712423 sw s7,8(sp) +8000064c: 01010413 addi s0,sp,16 +80000650: 000b8793 mv a5,s7 +80000654: 00078513 mv a0,a5 +80000658: 00c12403 lw s0,12(sp) +8000065c: 00812b83 lw s7,8(sp) +80000660: 01010113 addi sp,sp,16 +80000664: 00008067 ret -80000560 : -80000560: fd010113 addi sp,sp,-48 -80000564: 02112623 sw ra,44(sp) -80000568: 02812423 sw s0,40(sp) -8000056c: 03010413 addi s0,sp,48 -80000570: fca42e23 sw a0,-36(s0) -80000574: fdc42583 lw a1,-36(s0) -80000578: 810007b7 lui a5,0x81000 -8000057c: 04078513 addi a0,a5,64 # 81000040 -80000580: 354000ef jal ra,800008d4 -80000584: c6dff0ef jal ra,800001f0 -80000588: fea42023 sw a0,-32(s0) -8000058c: fe042623 sw zero,-20(s0) -80000590: 0680006f j 800005f8 -80000594: 00100793 li a5,1 -80000598: fef42623 sw a5,-20(s0) -8000059c: fe042423 sw zero,-24(s0) -800005a0: 03c0006f j 800005dc -800005a4: 810007b7 lui a5,0x81000 -800005a8: fe842703 lw a4,-24(s0) -800005ac: 00271713 slli a4,a4,0x2 -800005b0: 26878793 addi a5,a5,616 # 81000268 -800005b4: 00f707b3 add a5,a4,a5 -800005b8: 0007a703 lw a4,0(a5) -800005bc: 00100793 li a5,1 -800005c0: 00f71863 bne a4,a5,800005d0 -800005c4: fec42783 lw a5,-20(s0) -800005c8: 00178793 addi a5,a5,1 -800005cc: fef42623 sw a5,-20(s0) -800005d0: fe842783 lw a5,-24(s0) -800005d4: 00178793 addi a5,a5,1 -800005d8: fef42423 sw a5,-24(s0) -800005dc: fe842703 lw a4,-24(s0) -800005e0: 01f00793 li a5,31 -800005e4: fce7d0e3 bge a5,a4,800005a4 -800005e8: fec42583 lw a1,-20(s0) -800005ec: 810007b7 lui a5,0x81000 -800005f0: 04c78513 addi a0,a5,76 # 8100004c -800005f4: 2e0000ef jal ra,800008d4 -800005f8: fec42703 lw a4,-20(s0) -800005fc: fdc42783 lw a5,-36(s0) -80000600: f8f76ae3 bltu a4,a5,80000594 -80000604: fe042223 sw zero,-28(s0) -80000608: 0280006f j 80000630 -8000060c: 810007b7 lui a5,0x81000 -80000610: fe442703 lw a4,-28(s0) -80000614: 00271713 slli a4,a4,0x2 -80000618: 26878793 addi a5,a5,616 # 81000268 -8000061c: 00f707b3 add a5,a4,a5 -80000620: 0007a023 sw zero,0(a5) -80000624: fe442783 lw a5,-28(s0) -80000628: 00178793 addi a5,a5,1 -8000062c: fef42223 sw a5,-28(s0) -80000630: fe442783 lw a5,-28(s0) -80000634: fe042703 lw a4,-32(s0) -80000638: fce7eae3 bltu a5,a4,8000060c -8000063c: 00000013 nop -80000640: 02c12083 lw ra,44(sp) -80000644: 02812403 lw s0,40(sp) -80000648: 03010113 addi sp,sp,48 -8000064c: 00008067 ret +80000668 : +80000668: 00050293 mv t0,a0 +8000066c: 00000313 li t1,0 +80000670: 00700393 li t2,7 +80000674: 0062a023 sw t1,0(t0) +80000678: 0062a223 sw t1,4(t0) +8000067c: 0062a423 sw t1,8(t0) +80000680: 0072a623 sw t2,12(t0) +80000684: 0062a823 sw t1,16(t0) +80000688: 00008067 ret -80000650 : -80000650: ff010113 addi sp,sp,-16 -80000654: 00812623 sw s0,12(sp) -80000658: 01712423 sw s7,8(sp) -8000065c: 01010413 addi s0,sp,16 -80000660: 000b8793 mv a5,s7 -80000664: 00078513 mv a0,a5 -80000668: 00c12403 lw s0,12(sp) -8000066c: 00812b83 lw s7,8(sp) -80000670: 01010113 addi sp,sp,16 -80000674: 00008067 ret +8000068c : +8000068c: 00050293 mv t0,a0 +80000690: 0082a303 lw t1,8(t0) +80000694: 00130313 addi t1,t1,1 +80000698: 0062a423 sw t1,8(t0) +8000069c: 01428313 addi t1,t0,20 +800006a0: 0042ae83 lw t4,4(t0) +800006a4: 005e9393 slli t2,t4,0x5 +800006a8: 00730333 add t1,t1,t2 +800006ac: 0005ae03 lw t3,0(a1) +800006b0: 01c32023 sw t3,0(t1) +800006b4: 0045ae03 lw t3,4(a1) +800006b8: 01c32223 sw t3,4(t1) +800006bc: 0085ae03 lw t3,8(a1) +800006c0: 01c32423 sw t3,8(t1) +800006c4: 00c5ae03 lw t3,12(a1) +800006c8: 01c32623 sw t3,12(t1) +800006cc: 0105ae03 lw t3,16(a1) +800006d0: 01c32823 sw t3,16(t1) +800006d4: 0145ae03 lw t3,20(a1) +800006d8: 01c32a23 sw t3,20(t1) +800006dc: 001e8e93 addi t4,t4,1 +800006e0: 03200f13 li t5,50 +800006e4: 01ee9463 bne t4,t5,800006ec +800006e8: 00000e93 li t4,0 -80000678 : -80000678: 00050293 mv t0,a0 -8000067c: 00000313 li t1,0 -80000680: 00700393 li t2,7 -80000684: 0062a023 sw t1,0(t0) -80000688: 0062a223 sw t1,4(t0) -8000068c: 0062a423 sw t1,8(t0) -80000690: 0072a623 sw t2,12(t0) -80000694: 0062a823 sw t1,16(t0) -80000698: 00008067 ret +800006ec : +800006ec: 01d2a223 sw t4,4(t0) +800006f0: 00008067 ret -8000069c : -8000069c: 00050293 mv t0,a0 -800006a0: 0082a303 lw t1,8(t0) -800006a4: 00130313 addi t1,t1,1 -800006a8: 0062a423 sw t1,8(t0) -800006ac: 01428313 addi t1,t0,20 -800006b0: 0042ae83 lw t4,4(t0) -800006b4: 005e9393 slli t2,t4,0x5 -800006b8: 00730333 add t1,t1,t2 -800006bc: 0005ae03 lw t3,0(a1) -800006c0: 01c32023 sw t3,0(t1) -800006c4: 0045ae03 lw t3,4(a1) -800006c8: 01c32223 sw t3,4(t1) -800006cc: 0085ae03 lw t3,8(a1) -800006d0: 01c32423 sw t3,8(t1) -800006d4: 00c5ae03 lw t3,12(a1) -800006d8: 01c32623 sw t3,12(t1) -800006dc: 0105ae03 lw t3,16(a1) -800006e0: 01c32823 sw t3,16(t1) -800006e4: 0145ae03 lw t3,20(a1) -800006e8: 01c32a23 sw t3,20(t1) -800006ec: 001e8e93 addi t4,t4,1 -800006f0: 03200f13 li t5,50 -800006f4: 01ee9463 bne t4,t5,800006fc -800006f8: 00000e93 li t4,0 - -800006fc : -800006fc: 01d2a223 sw t4,4(t0) -80000700: 00008067 ret - -80000704 : -80000704: 00050293 mv t0,a0 -80000708: 0082a303 lw t1,8(t0) +800006f4 : +800006f4: 00050293 mv t0,a0 +800006f8: 0082a303 lw t1,8(t0) +800006fc: 00000013 nop +80000700: 00000013 nop +80000704: 00000013 nop +80000708: 00000013 nop 8000070c: 00000013 nop 80000710: 00000013 nop -80000714: 00000013 nop -80000718: 00000013 nop -8000071c: 00000013 nop -80000720: 00000013 nop -80000724: fff30313 addi t1,t1,-1 -80000728: 0062a423 sw t1,8(t0) -8000072c: 01428313 addi t1,t0,20 -80000730: 0002ae83 lw t4,0(t0) -80000734: 03200f93 li t6,50 -80000738: 000e8f13 mv t5,t4 -8000073c: 001f0f13 addi t5,t5,1 -80000740: 01ff1463 bne t5,t6,80000748 -80000744: 00000f13 li t5,0 +80000714: fff30313 addi t1,t1,-1 +80000718: 0062a423 sw t1,8(t0) +8000071c: 01428313 addi t1,t0,20 +80000720: 0002ae83 lw t4,0(t0) +80000724: 03200f93 li t6,50 +80000728: 000e8f13 mv t5,t4 +8000072c: 001f0f13 addi t5,t5,1 +80000730: 01ff1463 bne t5,t6,80000738 +80000734: 00000f13 li t5,0 -80000748 : -80000748: 01e2a023 sw t5,0(t0) -8000074c: 005e9393 slli t2,t4,0x5 -80000750: 00730333 add t1,t1,t2 -80000754: 00032e03 lw t3,0(t1) -80000758: 01c5a023 sw t3,0(a1) -8000075c: 00432e03 lw t3,4(t1) -80000760: 01c5a223 sw t3,4(a1) -80000764: 00832e03 lw t3,8(t1) -80000768: 01c5a423 sw t3,8(a1) -8000076c: 00c32e03 lw t3,12(t1) -80000770: 01c5a623 sw t3,12(a1) -80000774: 01032e03 lw t3,16(t1) -80000778: 01c5a823 sw t3,16(a1) -8000077c: 01432e03 lw t3,20(t1) -80000780: 01c5aa23 sw t3,20(a1) -80000784: 00008067 ret +80000738 : +80000738: 01e2a023 sw t5,0(t0) +8000073c: 005e9393 slli t2,t4,0x5 +80000740: 00730333 add t1,t1,t2 +80000744: 00032e03 lw t3,0(t1) +80000748: 01c5a023 sw t3,0(a1) +8000074c: 00432e03 lw t3,4(t1) +80000750: 01c5a223 sw t3,4(a1) +80000754: 00832e03 lw t3,8(t1) +80000758: 01c5a423 sw t3,8(a1) +8000075c: 00c32e03 lw t3,12(t1) +80000760: 01c5a623 sw t3,12(a1) +80000764: 01032e03 lw t3,16(t1) +80000768: 01c5a823 sw t3,16(a1) +8000076c: 01432e03 lw t3,20(t1) +80000770: 01c5aa23 sw t3,20(a1) +80000774: 00008067 ret -80000788 : -80000788: 00050293 mv t0,a0 -8000078c: 0082a303 lw t1,8(t0) -80000790: 00000513 li a0,0 -80000794: 03200e13 li t3,50 -80000798: 006e1463 bne t3,t1,800007a0 -8000079c: 00150513 addi a0,a0,1 +80000778 : +80000778: 00050293 mv t0,a0 +8000077c: 0082a303 lw t1,8(t0) +80000780: 00000513 li a0,0 +80000784: 03200e13 li t3,50 +80000788: 006e1463 bne t3,t1,80000790 +8000078c: 00150513 addi a0,a0,1 -800007a0 : -800007a0: 00008067 ret +80000790 : +80000790: 00008067 ret -800007a4 : -800007a4: 00050293 mv t0,a0 -800007a8: 0082a303 lw t1,8(t0) -800007ac: 00000513 li a0,0 -800007b0: 00000e13 li t3,0 -800007b4: 006e1463 bne t3,t1,800007bc -800007b8: 00150513 addi a0,a0,1 +80000794 : +80000794: 00050293 mv t0,a0 +80000798: 0082a303 lw t1,8(t0) +8000079c: 00000513 li a0,0 +800007a0: 00000e13 li t3,0 +800007a4: 006e1463 bne t3,t1,800007ac +800007a8: 00150513 addi a0,a0,1 -800007bc : -800007bc: 00008067 ret +800007ac : +800007ac: 00008067 ret -800007c0 : -800007c0: 00050293 mv t0,a0 -800007c4: 00c2a303 lw t1,12(t0) -800007c8: 0102a383 lw t2,16(t0) -800007cc: 0063b533 sltu a0,t2,t1 -800007d0: 00008067 ret +800007b0 : +800007b0: 00050293 mv t0,a0 +800007b4: 00c2a303 lw t1,12(t0) +800007b8: 0102a383 lw t2,16(t0) +800007bc: 0063b533 sltu a0,t2,t1 +800007c0: 00008067 ret -800007d4 : -800007d4: ff410113 addi sp,sp,-12 -800007d8: 00112023 sw ra,0(sp) -800007dc: 00b12223 sw a1,4(sp) +800007c4 : +800007c4: ff410113 addi sp,sp,-12 +800007c8: 00112023 sw ra,0(sp) +800007cc: 00b12223 sw a1,4(sp) -800007e0 : -800007e0: 00054583 lbu a1,0(a0) -800007e4: 00058863 beqz a1,800007f4 -800007e8: 01c000ef jal ra,80000804 -800007ec: 00150513 addi a0,a0,1 -800007f0: ff1ff06f j 800007e0 +800007d0 : +800007d0: 00054583 lbu a1,0(a0) +800007d4: 00058863 beqz a1,800007e4 +800007d8: 01c000ef jal ra,800007f4 +800007dc: 00150513 addi a0,a0,1 +800007e0: ff1ff06f j 800007d0 -800007f4 : -800007f4: 00012083 lw ra,0(sp) -800007f8: 00412583 lw a1,4(sp) -800007fc: 00c10113 addi sp,sp,12 -80000800: 00008067 ret +800007e4 : +800007e4: 00012083 lw ra,0(sp) +800007e8: 00412583 lw a1,4(sp) +800007ec: 00c10113 addi sp,sp,12 +800007f0: 00008067 ret -80000804 : -80000804: 000108b7 lui a7,0x10 -80000808: 00b8a023 sw a1,0(a7) # 10000 -8000080c: 00008067 ret +800007f4 : +800007f4: 000108b7 lui a7,0x10 +800007f8: 00b8a023 sw a1,0(a7) # 10000 +800007fc: 00008067 ret -80000810 : -80000810: fd010113 addi sp,sp,-48 -80000814: 02112623 sw ra,44(sp) -80000818: 02812423 sw s0,40(sp) -8000081c: 03010413 addi s0,sp,48 -80000820: fca42e23 sw a0,-36(s0) +80000800 : +80000800: fd010113 addi sp,sp,-48 +80000804: 02112623 sw ra,44(sp) +80000808: 02812423 sw s0,40(sp) +8000080c: 03010413 addi s0,sp,48 +80000810: fca42e23 sw a0,-36(s0) +80000814: fdc42703 lw a4,-36(s0) +80000818: 00f00793 li a5,15 +8000081c: 02e7e463 bltu a5,a4,80000844 +80000820: 810007b7 lui a5,0x81000 80000824: fdc42703 lw a4,-36(s0) -80000828: 00f00793 li a5,15 -8000082c: 02e7e463 bltu a5,a4,80000854 -80000830: 810007b7 lui a5,0x81000 -80000834: fdc42703 lw a4,-36(s0) -80000838: 00271713 slli a4,a4,0x2 -8000083c: 1a878793 addi a5,a5,424 # 810001a8 -80000840: 00f707b3 add a5,a4,a5 -80000844: 0007a783 lw a5,0(a5) -80000848: 00078513 mv a0,a5 -8000084c: f89ff0ef jal ra,800007d4 -80000850: 0740006f j 800008c4 -80000854: 02000793 li a5,32 -80000858: fef42623 sw a5,-20(s0) -8000085c: fe0405a3 sb zero,-21(s0) -80000860: fec42783 lw a5,-20(s0) -80000864: ffc78793 addi a5,a5,-4 -80000868: fdc42703 lw a4,-36(s0) -8000086c: 00f757b3 srl a5,a4,a5 -80000870: 00f7f793 andi a5,a5,15 -80000874: fef42223 sw a5,-28(s0) -80000878: fe442783 lw a5,-28(s0) -8000087c: 00078663 beqz a5,80000888 -80000880: 00100793 li a5,1 -80000884: fef405a3 sb a5,-21(s0) -80000888: feb44783 lbu a5,-21(s0) -8000088c: 02078263 beqz a5,800008b0 -80000890: 810007b7 lui a5,0x81000 -80000894: fe442703 lw a4,-28(s0) -80000898: 00271713 slli a4,a4,0x2 -8000089c: 1a878793 addi a5,a5,424 # 810001a8 -800008a0: 00f707b3 add a5,a4,a5 -800008a4: 0007a783 lw a5,0(a5) -800008a8: 00078513 mv a0,a5 -800008ac: f29ff0ef jal ra,800007d4 -800008b0: fec42783 lw a5,-20(s0) -800008b4: ffc78793 addi a5,a5,-4 -800008b8: fef42623 sw a5,-20(s0) -800008bc: fec42783 lw a5,-20(s0) -800008c0: faf040e3 bgtz a5,80000860 -800008c4: 02c12083 lw ra,44(sp) -800008c8: 02812403 lw s0,40(sp) -800008cc: 03010113 addi sp,sp,48 -800008d0: 00008067 ret +80000828: 00271713 slli a4,a4,0x2 +8000082c: 1a878793 addi a5,a5,424 # 810001a8 +80000830: 00f707b3 add a5,a4,a5 +80000834: 0007a783 lw a5,0(a5) +80000838: 00078513 mv a0,a5 +8000083c: f89ff0ef jal ra,800007c4 +80000840: 0740006f j 800008b4 +80000844: 02000793 li a5,32 +80000848: fef42623 sw a5,-20(s0) +8000084c: fe0405a3 sb zero,-21(s0) +80000850: fec42783 lw a5,-20(s0) +80000854: ffc78793 addi a5,a5,-4 +80000858: fdc42703 lw a4,-36(s0) +8000085c: 00f757b3 srl a5,a4,a5 +80000860: 00f7f793 andi a5,a5,15 +80000864: fef42223 sw a5,-28(s0) +80000868: fe442783 lw a5,-28(s0) +8000086c: 00078663 beqz a5,80000878 +80000870: 00100793 li a5,1 +80000874: fef405a3 sb a5,-21(s0) +80000878: feb44783 lbu a5,-21(s0) +8000087c: 02078263 beqz a5,800008a0 +80000880: 810007b7 lui a5,0x81000 +80000884: fe442703 lw a4,-28(s0) +80000888: 00271713 slli a4,a4,0x2 +8000088c: 1a878793 addi a5,a5,424 # 810001a8 +80000890: 00f707b3 add a5,a4,a5 +80000894: 0007a783 lw a5,0(a5) +80000898: 00078513 mv a0,a5 +8000089c: f29ff0ef jal ra,800007c4 +800008a0: fec42783 lw a5,-20(s0) +800008a4: ffc78793 addi a5,a5,-4 +800008a8: fef42623 sw a5,-20(s0) +800008ac: fec42783 lw a5,-20(s0) +800008b0: faf040e3 bgtz a5,80000850 +800008b4: 02c12083 lw ra,44(sp) +800008b8: 02812403 lw s0,40(sp) +800008bc: 03010113 addi sp,sp,48 +800008c0: 00008067 ret -800008d4 : -800008d4: fe010113 addi sp,sp,-32 -800008d8: 00112e23 sw ra,28(sp) -800008dc: 00812c23 sw s0,24(sp) -800008e0: 02010413 addi s0,sp,32 -800008e4: fea42623 sw a0,-20(s0) -800008e8: feb42423 sw a1,-24(s0) -800008ec: fec42503 lw a0,-20(s0) -800008f0: ee5ff0ef jal ra,800007d4 -800008f4: fe842503 lw a0,-24(s0) -800008f8: f19ff0ef jal ra,80000810 -800008fc: 810007b7 lui a5,0x81000 -80000900: 09478513 addi a0,a5,148 # 81000094 -80000904: ed1ff0ef jal ra,800007d4 -80000908: 00000013 nop -8000090c: 01c12083 lw ra,28(sp) -80000910: 01812403 lw s0,24(sp) -80000914: 02010113 addi sp,sp,32 -80000918: 00008067 ret +800008c4 : +800008c4: fe010113 addi sp,sp,-32 +800008c8: 00112e23 sw ra,28(sp) +800008cc: 00812c23 sw s0,24(sp) +800008d0: 02010413 addi s0,sp,32 +800008d4: fea42623 sw a0,-20(s0) +800008d8: feb42423 sw a1,-24(s0) +800008dc: fec42503 lw a0,-20(s0) +800008e0: ee5ff0ef jal ra,800007c4 +800008e4: fe842503 lw a0,-24(s0) +800008e8: f19ff0ef jal ra,80000800 +800008ec: 810007b7 lui a5,0x81000 +800008f0: 09478513 addi a0,a5,148 # 81000094 +800008f4: ed1ff0ef jal ra,800007c4 +800008f8: 00000013 nop +800008fc: 01c12083 lw ra,28(sp) +80000900: 01812403 lw s0,24(sp) +80000904: 02010113 addi sp,sp,32 +80000908: 00008067 ret -8000091c : -8000091c: fd010113 addi sp,sp,-48 -80000920: 02112623 sw ra,44(sp) -80000924: 02812423 sw s0,40(sp) -80000928: 03010413 addi s0,sp,48 -8000092c: fca42e23 sw a0,-36(s0) -80000930: fcb42c23 sw a1,-40(s0) -80000934: fcc42a23 sw a2,-44(s0) -80000938: fcd42823 sw a3,-48(s0) -8000093c: 810267b7 lui a5,0x81026 -80000940: fdc42703 lw a4,-36(s0) -80000944: 1ae7ac23 sw a4,440(a5) # 810261b8 +8000090c : +8000090c: fd010113 addi sp,sp,-48 +80000910: 02112623 sw ra,44(sp) +80000914: 02812423 sw s0,40(sp) +80000918: 03010413 addi s0,sp,48 +8000091c: fca42e23 sw a0,-36(s0) +80000920: fcb42c23 sw a1,-40(s0) +80000924: fcc42a23 sw a2,-44(s0) +80000928: fcd42823 sw a3,-48(s0) +8000092c: 810267b7 lui a5,0x81026 +80000930: fdc42703 lw a4,-36(s0) +80000934: 1ae7ac23 sw a4,440(a5) # 810261b8 +80000938: 810267b7 lui a5,0x81026 +8000093c: 1b878793 addi a5,a5,440 # 810261b8 +80000940: fd842703 lw a4,-40(s0) +80000944: 00e7a223 sw a4,4(a5) 80000948: 810267b7 lui a5,0x81026 8000094c: 1b878793 addi a5,a5,440 # 810261b8 -80000950: fd842703 lw a4,-40(s0) -80000954: 00e7a223 sw a4,4(a5) +80000950: fd442703 lw a4,-44(s0) +80000954: 00e7a423 sw a4,8(a5) 80000958: 810267b7 lui a5,0x81026 8000095c: 1b878793 addi a5,a5,440 # 810261b8 -80000960: fd442703 lw a4,-44(s0) -80000964: 00e7a423 sw a4,8(a5) -80000968: 810267b7 lui a5,0x81026 -8000096c: 1b878793 addi a5,a5,440 # 810261b8 +80000960: fd042703 lw a4,-48(s0) +80000964: 00e7a623 sw a4,12(a5) +80000968: 881ff0ef jal ra,800001e8 +8000096c: fea42423 sw a0,-24(s0) 80000970: fd042703 lw a4,-48(s0) -80000974: 00e7a623 sw a4,12(a5) -80000978: 881ff0ef jal ra,800001f8 -8000097c: fea42423 sw a0,-24(s0) +80000974: fe842783 lw a5,-24(s0) +80000978: 02f757b3 divu a5,a4,a5 +8000097c: fef42623 sw a5,-20(s0) 80000980: fd042703 lw a4,-48(s0) 80000984: fe842783 lw a5,-24(s0) -80000988: 02f757b3 divu a5,a4,a5 -8000098c: fef42623 sw a5,-20(s0) -80000990: fd042703 lw a4,-48(s0) -80000994: fe842783 lw a5,-24(s0) -80000998: 02f777b3 remu a5,a4,a5 -8000099c: 00078863 beqz a5,800009ac -800009a0: fec42783 lw a5,-20(s0) -800009a4: 00178793 addi a5,a5,1 -800009a8: fef42623 sw a5,-20(s0) -800009ac: 810267b7 lui a5,0x81026 -800009b0: 1b878793 addi a5,a5,440 # 810261b8 -800009b4: fec42703 lw a4,-20(s0) -800009b8: 00e7a823 sw a4,16(a5) -800009bc: fd042703 lw a4,-48(s0) -800009c0: fe842783 lw a5,-24(s0) -800009c4: 02f76263 bltu a4,a5,800009e8 -800009c8: 810267b7 lui a5,0x81026 -800009cc: 1b878693 addi a3,a5,440 # 810261b8 -800009d0: 800017b7 lui a5,0x80001 -800009d4: a4078613 addi a2,a5,-1472 # 80000a40 -800009d8: fe842583 lw a1,-24(s0) -800009dc: fd042503 lw a0,-48(s0) -800009e0: a91ff0ef jal ra,80000470 -800009e4: 0200006f j 80000a04 -800009e8: 810267b7 lui a5,0x81026 -800009ec: 1b878693 addi a3,a5,440 # 810261b8 -800009f0: 800017b7 lui a5,0x80001 -800009f4: a4078613 addi a2,a5,-1472 # 80000a40 -800009f8: fd042583 lw a1,-48(s0) -800009fc: fd042503 lw a0,-48(s0) -80000a00: a71ff0ef jal ra,80000470 -80000a04: fecff0ef jal ra,800001f0 -80000a08: fea42223 sw a0,-28(s0) -80000a0c: fd042703 lw a4,-48(s0) -80000a10: fe442783 lw a5,-28(s0) -80000a14: 00e7f863 bgeu a5,a4,80000a24 -80000a18: fe442503 lw a0,-28(s0) -80000a1c: b45ff0ef jal ra,80000560 -80000a20: 00c0006f j 80000a2c -80000a24: fd042503 lw a0,-48(s0) -80000a28: b39ff0ef jal ra,80000560 -80000a2c: 00000013 nop -80000a30: 02c12083 lw ra,44(sp) -80000a34: 02812403 lw s0,40(sp) -80000a38: 03010113 addi sp,sp,48 -80000a3c: 00008067 ret +80000988: 02f777b3 remu a5,a4,a5 +8000098c: 00078863 beqz a5,8000099c +80000990: fec42783 lw a5,-20(s0) +80000994: 00178793 addi a5,a5,1 +80000998: fef42623 sw a5,-20(s0) +8000099c: 810267b7 lui a5,0x81026 +800009a0: 1b878793 addi a5,a5,440 # 810261b8 +800009a4: fec42703 lw a4,-20(s0) +800009a8: 00e7a823 sw a4,16(a5) +800009ac: fd042703 lw a4,-48(s0) +800009b0: fe842783 lw a5,-24(s0) +800009b4: 02f76263 bltu a4,a5,800009d8 +800009b8: 810267b7 lui a5,0x81026 +800009bc: 1b878693 addi a3,a5,440 # 810261b8 +800009c0: 800017b7 lui a5,0x80001 +800009c4: a3078613 addi a2,a5,-1488 # 80000a30 +800009c8: fe842583 lw a1,-24(s0) +800009cc: fd042503 lw a0,-48(s0) +800009d0: a91ff0ef jal ra,80000460 +800009d4: 0200006f j 800009f4 +800009d8: 810267b7 lui a5,0x81026 +800009dc: 1b878693 addi a3,a5,440 # 810261b8 +800009e0: 800017b7 lui a5,0x80001 +800009e4: a3078613 addi a2,a5,-1488 # 80000a30 +800009e8: fd042583 lw a1,-48(s0) +800009ec: fd042503 lw a0,-48(s0) +800009f0: a71ff0ef jal ra,80000460 +800009f4: fecff0ef jal ra,800001e0 +800009f8: fea42223 sw a0,-28(s0) +800009fc: fd042703 lw a4,-48(s0) +80000a00: fe442783 lw a5,-28(s0) +80000a04: 00e7f863 bgeu a5,a4,80000a14 +80000a08: fe442503 lw a0,-28(s0) +80000a0c: b45ff0ef jal ra,80000550 +80000a10: 00c0006f j 80000a1c +80000a14: fd042503 lw a0,-48(s0) +80000a18: b39ff0ef jal ra,80000550 +80000a1c: 00000013 nop +80000a20: 02c12083 lw ra,44(sp) +80000a24: 02812403 lw s0,40(sp) +80000a28: 03010113 addi sp,sp,48 +80000a2c: 00008067 ret -80000a40 <_vx_mat_mult>: -80000a40: fa010113 addi sp,sp,-96 -80000a44: 04112e23 sw ra,92(sp) -80000a48: 04812c23 sw s0,88(sp) -80000a4c: 06010413 addi s0,sp,96 -80000a50: faa42623 sw a0,-84(s0) -80000a54: fab42423 sw a1,-88(s0) -80000a58: bf9ff0ef jal ra,80000650 -80000a5c: fca42c23 sw a0,-40(s0) -80000a60: fd842783 lw a5,-40(s0) -80000a64: 0007a783 lw a5,0(a5) -80000a68: fcf42a23 sw a5,-44(s0) -80000a6c: fd842783 lw a5,-40(s0) -80000a70: 0047a783 lw a5,4(a5) -80000a74: fcf42823 sw a5,-48(s0) -80000a78: fd842783 lw a5,-40(s0) -80000a7c: 0087a783 lw a5,8(a5) -80000a80: fcf42623 sw a5,-52(s0) -80000a84: fd842783 lw a5,-40(s0) -80000a88: 0107a783 lw a5,16(a5) -80000a8c: fef42623 sw a5,-20(s0) -80000a90: fec42703 lw a4,-20(s0) -80000a94: fac42783 lw a5,-84(s0) -80000a98: 02f707b3 mul a5,a4,a5 -80000a9c: fef42423 sw a5,-24(s0) -80000aa0: fec42783 lw a5,-20(s0) -80000aa4: 00079a63 bnez a5,80000ab8 <_vx_mat_mult+0x78> -80000aa8: 00100793 li a5,1 -80000aac: fef42623 sw a5,-20(s0) -80000ab0: fac42783 lw a5,-84(s0) -80000ab4: fef42423 sw a5,-24(s0) -80000ab8: fd842783 lw a5,-40(s0) -80000abc: 00c7a783 lw a5,12(a5) -80000ac0: fcf42423 sw a5,-56(s0) -80000ac4: fe042223 sw zero,-28(s0) -80000ac8: 0d80006f j 80000ba0 <_vx_mat_mult+0x160> -80000acc: fe042023 sw zero,-32(s0) -80000ad0: fc042e23 sw zero,-36(s0) -80000ad4: 0780006f j 80000b4c <_vx_mat_mult+0x10c> -80000ad8: fa842703 lw a4,-88(s0) -80000adc: fc842783 lw a5,-56(s0) -80000ae0: 02f707b3 mul a5,a4,a5 -80000ae4: fdc42703 lw a4,-36(s0) -80000ae8: 00f707b3 add a5,a4,a5 -80000aec: fcf42223 sw a5,-60(s0) -80000af0: fc842703 lw a4,-56(s0) -80000af4: fdc42783 lw a5,-36(s0) -80000af8: 02f707b3 mul a5,a4,a5 -80000afc: fe842703 lw a4,-24(s0) -80000b00: 00f707b3 add a5,a4,a5 -80000b04: fcf42023 sw a5,-64(s0) -80000b08: fc442783 lw a5,-60(s0) -80000b0c: 00279793 slli a5,a5,0x2 -80000b10: fd442703 lw a4,-44(s0) -80000b14: 00f707b3 add a5,a4,a5 -80000b18: 0007a703 lw a4,0(a5) -80000b1c: fc042783 lw a5,-64(s0) -80000b20: 00279793 slli a5,a5,0x2 -80000b24: fd042683 lw a3,-48(s0) -80000b28: 00f687b3 add a5,a3,a5 -80000b2c: 0007a783 lw a5,0(a5) -80000b30: 02f707b3 mul a5,a4,a5 -80000b34: fe042703 lw a4,-32(s0) -80000b38: 00f707b3 add a5,a4,a5 -80000b3c: fef42023 sw a5,-32(s0) -80000b40: fdc42783 lw a5,-36(s0) -80000b44: 00178793 addi a5,a5,1 -80000b48: fcf42e23 sw a5,-36(s0) -80000b4c: fdc42703 lw a4,-36(s0) -80000b50: fc842783 lw a5,-56(s0) -80000b54: f8f762e3 bltu a4,a5,80000ad8 <_vx_mat_mult+0x98> -80000b58: fa842703 lw a4,-88(s0) -80000b5c: fc842783 lw a5,-56(s0) -80000b60: 02f70733 mul a4,a4,a5 -80000b64: fe842783 lw a5,-24(s0) -80000b68: 00f707b3 add a5,a4,a5 -80000b6c: faf42e23 sw a5,-68(s0) -80000b70: fbc42783 lw a5,-68(s0) -80000b74: 00279793 slli a5,a5,0x2 -80000b78: fcc42703 lw a4,-52(s0) -80000b7c: 00f707b3 add a5,a4,a5 -80000b80: fe042703 lw a4,-32(s0) -80000b84: 00e7a023 sw a4,0(a5) -80000b88: fe842783 lw a5,-24(s0) -80000b8c: 00178793 addi a5,a5,1 -80000b90: fef42423 sw a5,-24(s0) -80000b94: fe442783 lw a5,-28(s0) -80000b98: 00178793 addi a5,a5,1 -80000b9c: fef42223 sw a5,-28(s0) -80000ba0: fe442783 lw a5,-28(s0) -80000ba4: fec42703 lw a4,-20(s0) -80000ba8: f2e7e2e3 bltu a5,a4,80000acc <_vx_mat_mult+0x8c> -80000bac: 00000013 nop -80000bb0: 05c12083 lw ra,92(sp) -80000bb4: 05812403 lw s0,88(sp) -80000bb8: 06010113 addi sp,sp,96 -80000bbc: 00008067 ret +80000a30 <_vx_mat_mult>: +80000a30: fa010113 addi sp,sp,-96 +80000a34: 04112e23 sw ra,92(sp) +80000a38: 04812c23 sw s0,88(sp) +80000a3c: 06010413 addi s0,sp,96 +80000a40: faa42623 sw a0,-84(s0) +80000a44: fab42423 sw a1,-88(s0) +80000a48: bf9ff0ef jal ra,80000640 +80000a4c: fca42c23 sw a0,-40(s0) +80000a50: fd842783 lw a5,-40(s0) +80000a54: 0007a783 lw a5,0(a5) +80000a58: fcf42a23 sw a5,-44(s0) +80000a5c: fd842783 lw a5,-40(s0) +80000a60: 0047a783 lw a5,4(a5) +80000a64: fcf42823 sw a5,-48(s0) +80000a68: fd842783 lw a5,-40(s0) +80000a6c: 0087a783 lw a5,8(a5) +80000a70: fcf42623 sw a5,-52(s0) +80000a74: fd842783 lw a5,-40(s0) +80000a78: 0107a783 lw a5,16(a5) +80000a7c: fef42623 sw a5,-20(s0) +80000a80: fec42703 lw a4,-20(s0) +80000a84: fac42783 lw a5,-84(s0) +80000a88: 02f707b3 mul a5,a4,a5 +80000a8c: fef42423 sw a5,-24(s0) +80000a90: fec42783 lw a5,-20(s0) +80000a94: 00079a63 bnez a5,80000aa8 <_vx_mat_mult+0x78> +80000a98: 00100793 li a5,1 +80000a9c: fef42623 sw a5,-20(s0) +80000aa0: fac42783 lw a5,-84(s0) +80000aa4: fef42423 sw a5,-24(s0) +80000aa8: fd842783 lw a5,-40(s0) +80000aac: 00c7a783 lw a5,12(a5) +80000ab0: fcf42423 sw a5,-56(s0) +80000ab4: fe042223 sw zero,-28(s0) +80000ab8: 0d80006f j 80000b90 <_vx_mat_mult+0x160> +80000abc: fe042023 sw zero,-32(s0) +80000ac0: fc042e23 sw zero,-36(s0) +80000ac4: 0780006f j 80000b3c <_vx_mat_mult+0x10c> +80000ac8: fa842703 lw a4,-88(s0) +80000acc: fc842783 lw a5,-56(s0) +80000ad0: 02f707b3 mul a5,a4,a5 +80000ad4: fdc42703 lw a4,-36(s0) +80000ad8: 00f707b3 add a5,a4,a5 +80000adc: fcf42223 sw a5,-60(s0) +80000ae0: fc842703 lw a4,-56(s0) +80000ae4: fdc42783 lw a5,-36(s0) +80000ae8: 02f707b3 mul a5,a4,a5 +80000aec: fe842703 lw a4,-24(s0) +80000af0: 00f707b3 add a5,a4,a5 +80000af4: fcf42023 sw a5,-64(s0) +80000af8: fc442783 lw a5,-60(s0) +80000afc: 00279793 slli a5,a5,0x2 +80000b00: fd442703 lw a4,-44(s0) +80000b04: 00f707b3 add a5,a4,a5 +80000b08: 0007a703 lw a4,0(a5) +80000b0c: fc042783 lw a5,-64(s0) +80000b10: 00279793 slli a5,a5,0x2 +80000b14: fd042683 lw a3,-48(s0) +80000b18: 00f687b3 add a5,a3,a5 +80000b1c: 0007a783 lw a5,0(a5) +80000b20: 02f707b3 mul a5,a4,a5 +80000b24: fe042703 lw a4,-32(s0) +80000b28: 00f707b3 add a5,a4,a5 +80000b2c: fef42023 sw a5,-32(s0) +80000b30: fdc42783 lw a5,-36(s0) +80000b34: 00178793 addi a5,a5,1 +80000b38: fcf42e23 sw a5,-36(s0) +80000b3c: fdc42703 lw a4,-36(s0) +80000b40: fc842783 lw a5,-56(s0) +80000b44: f8f762e3 bltu a4,a5,80000ac8 <_vx_mat_mult+0x98> +80000b48: fa842703 lw a4,-88(s0) +80000b4c: fc842783 lw a5,-56(s0) +80000b50: 02f70733 mul a4,a4,a5 +80000b54: fe842783 lw a5,-24(s0) +80000b58: 00f707b3 add a5,a4,a5 +80000b5c: faf42e23 sw a5,-68(s0) +80000b60: fbc42783 lw a5,-68(s0) +80000b64: 00279793 slli a5,a5,0x2 +80000b68: fcc42703 lw a4,-52(s0) +80000b6c: 00f707b3 add a5,a4,a5 +80000b70: fe042703 lw a4,-32(s0) +80000b74: 00e7a023 sw a4,0(a5) +80000b78: fe842783 lw a5,-24(s0) +80000b7c: 00178793 addi a5,a5,1 +80000b80: fef42423 sw a5,-24(s0) +80000b84: fe442783 lw a5,-28(s0) +80000b88: 00178793 addi a5,a5,1 +80000b8c: fef42223 sw a5,-28(s0) +80000b90: fe442783 lw a5,-28(s0) +80000b94: fec42703 lw a4,-20(s0) +80000b98: f2e7e2e3 bltu a5,a4,80000abc <_vx_mat_mult+0x8c> +80000b9c: 00000013 nop +80000ba0: 05c12083 lw ra,92(sp) +80000ba4: 05812403 lw s0,88(sp) +80000ba8: 06010113 addi sp,sp,96 +80000bac: 00008067 ret -80000bc0 : -80000bc0: fc010113 addi sp,sp,-64 -80000bc4: 02112e23 sw ra,60(sp) -80000bc8: 02812c23 sw s0,56(sp) -80000bcc: 04010413 addi s0,sp,64 -80000bd0: fca42e23 sw a0,-36(s0) -80000bd4: fcb42c23 sw a1,-40(s0) -80000bd8: fcc42a23 sw a2,-44(s0) -80000bdc: fcd42823 sw a3,-48(s0) -80000be0: fce42623 sw a4,-52(s0) -80000be4: 810267b7 lui a5,0x81026 -80000be8: fdc42703 lw a4,-36(s0) -80000bec: 1ce7a623 sw a4,460(a5) # 810261cc +80000bb0 : +80000bb0: fc010113 addi sp,sp,-64 +80000bb4: 02112e23 sw ra,60(sp) +80000bb8: 02812c23 sw s0,56(sp) +80000bbc: 04010413 addi s0,sp,64 +80000bc0: fca42e23 sw a0,-36(s0) +80000bc4: fcb42c23 sw a1,-40(s0) +80000bc8: fcc42a23 sw a2,-44(s0) +80000bcc: fcd42823 sw a3,-48(s0) +80000bd0: fce42623 sw a4,-52(s0) +80000bd4: 810267b7 lui a5,0x81026 +80000bd8: fdc42703 lw a4,-36(s0) +80000bdc: 1ce7a623 sw a4,460(a5) # 810261cc +80000be0: 810267b7 lui a5,0x81026 +80000be4: 1cc78793 addi a5,a5,460 # 810261cc +80000be8: fd842703 lw a4,-40(s0) +80000bec: 00e7a223 sw a4,4(a5) 80000bf0: 810267b7 lui a5,0x81026 80000bf4: 1cc78793 addi a5,a5,460 # 810261cc -80000bf8: fd842703 lw a4,-40(s0) -80000bfc: 00e7a223 sw a4,4(a5) +80000bf8: fd442703 lw a4,-44(s0) +80000bfc: 00e7a423 sw a4,8(a5) 80000c00: 810267b7 lui a5,0x81026 80000c04: 1cc78793 addi a5,a5,460 # 810261cc -80000c08: fd442703 lw a4,-44(s0) -80000c0c: 00e7a423 sw a4,8(a5) +80000c08: fcc42703 lw a4,-52(s0) +80000c0c: 00e7a623 sw a4,12(a5) 80000c10: 810267b7 lui a5,0x81026 80000c14: 1cc78793 addi a5,a5,460 # 810261cc -80000c18: fcc42703 lw a4,-52(s0) -80000c1c: 00e7a623 sw a4,12(a5) -80000c20: 810267b7 lui a5,0x81026 -80000c24: 1cc78793 addi a5,a5,460 # 810261cc -80000c28: fd042703 lw a4,-48(s0) -80000c2c: 00e7a823 sw a4,16(a5) -80000c30: dc8ff0ef jal ra,800001f8 -80000c34: fea42423 sw a0,-24(s0) +80000c18: fd042703 lw a4,-48(s0) +80000c1c: 00e7a823 sw a4,16(a5) +80000c20: dc8ff0ef jal ra,800001e8 +80000c24: fea42423 sw a0,-24(s0) +80000c28: fcc42703 lw a4,-52(s0) +80000c2c: fe842783 lw a5,-24(s0) +80000c30: 02f757b3 divu a5,a4,a5 +80000c34: fef42623 sw a5,-20(s0) 80000c38: fcc42703 lw a4,-52(s0) 80000c3c: fe842783 lw a5,-24(s0) -80000c40: 02f757b3 divu a5,a4,a5 -80000c44: fef42623 sw a5,-20(s0) -80000c48: fcc42703 lw a4,-52(s0) -80000c4c: fe842783 lw a5,-24(s0) -80000c50: 02f777b3 remu a5,a4,a5 -80000c54: 00078863 beqz a5,80000c64 -80000c58: fec42783 lw a5,-20(s0) -80000c5c: 00178793 addi a5,a5,1 -80000c60: fef42623 sw a5,-20(s0) -80000c64: 810267b7 lui a5,0x81026 -80000c68: 1cc78793 addi a5,a5,460 # 810261cc -80000c6c: fec42703 lw a4,-20(s0) -80000c70: 00e7aa23 sw a4,20(a5) -80000c74: fcc42703 lw a4,-52(s0) -80000c78: fe842783 lw a5,-24(s0) -80000c7c: 02f76263 bltu a4,a5,80000ca0 -80000c80: 810267b7 lui a5,0x81026 -80000c84: 1cc78693 addi a3,a5,460 # 810261cc -80000c88: 800017b7 lui a5,0x80001 -80000c8c: cf878613 addi a2,a5,-776 # 80000cf8 -80000c90: fe842583 lw a1,-24(s0) -80000c94: fd042503 lw a0,-48(s0) -80000c98: fd8ff0ef jal ra,80000470 -80000c9c: 0200006f j 80000cbc -80000ca0: 810267b7 lui a5,0x81026 -80000ca4: 1cc78693 addi a3,a5,460 # 810261cc -80000ca8: 800017b7 lui a5,0x80001 -80000cac: cf878613 addi a2,a5,-776 # 80000cf8 -80000cb0: fcc42583 lw a1,-52(s0) -80000cb4: fd042503 lw a0,-48(s0) -80000cb8: fb8ff0ef jal ra,80000470 -80000cbc: d34ff0ef jal ra,800001f0 -80000cc0: fea42223 sw a0,-28(s0) -80000cc4: fd042703 lw a4,-48(s0) -80000cc8: fe442783 lw a5,-28(s0) -80000ccc: 00e7f863 bgeu a5,a4,80000cdc -80000cd0: fe442503 lw a0,-28(s0) -80000cd4: 88dff0ef jal ra,80000560 -80000cd8: 00c0006f j 80000ce4 -80000cdc: fd042503 lw a0,-48(s0) -80000ce0: 881ff0ef jal ra,80000560 -80000ce4: 00000013 nop -80000ce8: 03c12083 lw ra,60(sp) -80000cec: 03812403 lw s0,56(sp) -80000cf0: 04010113 addi sp,sp,64 -80000cf4: 00008067 ret +80000c40: 02f777b3 remu a5,a4,a5 +80000c44: 00078863 beqz a5,80000c54 +80000c48: fec42783 lw a5,-20(s0) +80000c4c: 00178793 addi a5,a5,1 +80000c50: fef42623 sw a5,-20(s0) +80000c54: 810267b7 lui a5,0x81026 +80000c58: 1cc78793 addi a5,a5,460 # 810261cc +80000c5c: fec42703 lw a4,-20(s0) +80000c60: 00e7aa23 sw a4,20(a5) +80000c64: fcc42703 lw a4,-52(s0) +80000c68: fe842783 lw a5,-24(s0) +80000c6c: 02f76263 bltu a4,a5,80000c90 +80000c70: 810267b7 lui a5,0x81026 +80000c74: 1cc78693 addi a3,a5,460 # 810261cc +80000c78: 800017b7 lui a5,0x80001 +80000c7c: ce878613 addi a2,a5,-792 # 80000ce8 +80000c80: fe842583 lw a1,-24(s0) +80000c84: fd042503 lw a0,-48(s0) +80000c88: fd8ff0ef jal ra,80000460 +80000c8c: 0200006f j 80000cac +80000c90: 810267b7 lui a5,0x81026 +80000c94: 1cc78693 addi a3,a5,460 # 810261cc +80000c98: 800017b7 lui a5,0x80001 +80000c9c: ce878613 addi a2,a5,-792 # 80000ce8 +80000ca0: fcc42583 lw a1,-52(s0) +80000ca4: fd042503 lw a0,-48(s0) +80000ca8: fb8ff0ef jal ra,80000460 +80000cac: d34ff0ef jal ra,800001e0 +80000cb0: fea42223 sw a0,-28(s0) +80000cb4: fd042703 lw a4,-48(s0) +80000cb8: fe442783 lw a5,-28(s0) +80000cbc: 00e7f863 bgeu a5,a4,80000ccc +80000cc0: fe442503 lw a0,-28(s0) +80000cc4: 88dff0ef jal ra,80000550 +80000cc8: 00c0006f j 80000cd4 +80000ccc: fd042503 lw a0,-48(s0) +80000cd0: 881ff0ef jal ra,80000550 +80000cd4: 00000013 nop +80000cd8: 03c12083 lw ra,60(sp) +80000cdc: 03812403 lw s0,56(sp) +80000ce0: 04010113 addi sp,sp,64 +80000ce4: 00008067 ret -80000cf8 <_vx_mat_add>: -80000cf8: fb010113 addi sp,sp,-80 -80000cfc: 04112623 sw ra,76(sp) -80000d00: 04812423 sw s0,72(sp) -80000d04: 05010413 addi s0,sp,80 -80000d08: faa42e23 sw a0,-68(s0) -80000d0c: fab42c23 sw a1,-72(s0) -80000d10: 941ff0ef jal ra,80000650 -80000d14: fea42023 sw a0,-32(s0) -80000d18: fe042783 lw a5,-32(s0) -80000d1c: 0007a783 lw a5,0(a5) -80000d20: fcf42e23 sw a5,-36(s0) -80000d24: fe042783 lw a5,-32(s0) -80000d28: 0047a783 lw a5,4(a5) -80000d2c: fcf42c23 sw a5,-40(s0) -80000d30: fe042783 lw a5,-32(s0) -80000d34: 0087a783 lw a5,8(a5) -80000d38: fcf42a23 sw a5,-44(s0) -80000d3c: fe042783 lw a5,-32(s0) -80000d40: 0147a783 lw a5,20(a5) -80000d44: fef42623 sw a5,-20(s0) -80000d48: fec42703 lw a4,-20(s0) -80000d4c: fbc42783 lw a5,-68(s0) -80000d50: 02f707b3 mul a5,a4,a5 -80000d54: fef42423 sw a5,-24(s0) -80000d58: fec42783 lw a5,-20(s0) -80000d5c: 00079a63 bnez a5,80000d70 <_vx_mat_add+0x78> -80000d60: 00100793 li a5,1 -80000d64: fef42623 sw a5,-20(s0) -80000d68: fbc42783 lw a5,-68(s0) -80000d6c: fef42423 sw a5,-24(s0) -80000d70: fe042783 lw a5,-32(s0) -80000d74: 00c7a783 lw a5,12(a5) -80000d78: fcf42823 sw a5,-48(s0) -80000d7c: fe042223 sw zero,-28(s0) -80000d80: 0c00006f j 80000e40 <_vx_mat_add+0x148> -80000d84: fb842703 lw a4,-72(s0) -80000d88: fd042783 lw a5,-48(s0) -80000d8c: 02f70733 mul a4,a4,a5 -80000d90: fe842783 lw a5,-24(s0) -80000d94: 00f707b3 add a5,a4,a5 -80000d98: fcf42623 sw a5,-52(s0) -80000d9c: fe842703 lw a4,-24(s0) -80000da0: fd042783 lw a5,-48(s0) -80000da4: 00f737b3 sltu a5,a4,a5 -80000da8: 0ff7f793 andi a5,a5,255 -80000dac: fcf42423 sw a5,-56(s0) -80000db0: fc842783 lw a5,-56(s0) -80000db4: 0017b793 seqz a5,a5 -80000db8: fcf403a3 sb a5,-57(s0) -80000dbc: fc744783 lbu a5,-57(s0) -80000dc0: 00078f13 mv t5,a5 -80000dc4: 800017b7 lui a5,0x80001 -80000dc8: e2c78f93 addi t6,a5,-468 # 80000e2c -80000dcc: 000f206b 0xf206b -80000dd0: 01ff707b 0x1ff707b -80000dd4: fcc42783 lw a5,-52(s0) -80000dd8: 00279793 slli a5,a5,0x2 -80000ddc: fdc42703 lw a4,-36(s0) -80000de0: 00f707b3 add a5,a4,a5 -80000de4: 0007a683 lw a3,0(a5) -80000de8: fcc42783 lw a5,-52(s0) -80000dec: 00279793 slli a5,a5,0x2 -80000df0: fd842703 lw a4,-40(s0) -80000df4: 00f707b3 add a5,a4,a5 -80000df8: 0007a703 lw a4,0(a5) -80000dfc: fcc42783 lw a5,-52(s0) -80000e00: 00279793 slli a5,a5,0x2 -80000e04: fd442603 lw a2,-44(s0) -80000e08: 00f607b3 add a5,a2,a5 -80000e0c: 00e68733 add a4,a3,a4 -80000e10: 00e7a023 sw a4,0(a5) -80000e14: fe842783 lw a5,-24(s0) -80000e18: 00178793 addi a5,a5,1 -80000e1c: fef42423 sw a5,-24(s0) -80000e20: 800017b7 lui a5,0x80001 -80000e24: e3078e13 addi t3,a5,-464 # 80000e30 -80000e28: 000e0067 jr t3 -80000e2c: 00000013 nop -80000e30: 0000306b 0x306b -80000e34: fe442783 lw a5,-28(s0) -80000e38: 00178793 addi a5,a5,1 -80000e3c: fef42223 sw a5,-28(s0) -80000e40: fe442783 lw a5,-28(s0) -80000e44: fec42703 lw a4,-20(s0) -80000e48: f2e7eee3 bltu a5,a4,80000d84 <_vx_mat_add+0x8c> -80000e4c: 00000013 nop -80000e50: 04c12083 lw ra,76(sp) -80000e54: 04812403 lw s0,72(sp) -80000e58: 05010113 addi sp,sp,80 -80000e5c: 00008067 ret +80000ce8 <_vx_mat_add>: +80000ce8: fb010113 addi sp,sp,-80 +80000cec: 04112623 sw ra,76(sp) +80000cf0: 04812423 sw s0,72(sp) +80000cf4: 05010413 addi s0,sp,80 +80000cf8: faa42e23 sw a0,-68(s0) +80000cfc: fab42c23 sw a1,-72(s0) +80000d00: 941ff0ef jal ra,80000640 +80000d04: fea42023 sw a0,-32(s0) +80000d08: fe042783 lw a5,-32(s0) +80000d0c: 0007a783 lw a5,0(a5) +80000d10: fcf42e23 sw a5,-36(s0) +80000d14: fe042783 lw a5,-32(s0) +80000d18: 0047a783 lw a5,4(a5) +80000d1c: fcf42c23 sw a5,-40(s0) +80000d20: fe042783 lw a5,-32(s0) +80000d24: 0087a783 lw a5,8(a5) +80000d28: fcf42a23 sw a5,-44(s0) +80000d2c: fe042783 lw a5,-32(s0) +80000d30: 0147a783 lw a5,20(a5) +80000d34: fef42623 sw a5,-20(s0) +80000d38: fec42703 lw a4,-20(s0) +80000d3c: fbc42783 lw a5,-68(s0) +80000d40: 02f707b3 mul a5,a4,a5 +80000d44: fef42423 sw a5,-24(s0) +80000d48: fec42783 lw a5,-20(s0) +80000d4c: 00079a63 bnez a5,80000d60 <_vx_mat_add+0x78> +80000d50: 00100793 li a5,1 +80000d54: fef42623 sw a5,-20(s0) +80000d58: fbc42783 lw a5,-68(s0) +80000d5c: fef42423 sw a5,-24(s0) +80000d60: fe042783 lw a5,-32(s0) +80000d64: 00c7a783 lw a5,12(a5) +80000d68: fcf42823 sw a5,-48(s0) +80000d6c: fe042223 sw zero,-28(s0) +80000d70: 0c00006f j 80000e30 <_vx_mat_add+0x148> +80000d74: fb842703 lw a4,-72(s0) +80000d78: fd042783 lw a5,-48(s0) +80000d7c: 02f70733 mul a4,a4,a5 +80000d80: fe842783 lw a5,-24(s0) +80000d84: 00f707b3 add a5,a4,a5 +80000d88: fcf42623 sw a5,-52(s0) +80000d8c: fe842703 lw a4,-24(s0) +80000d90: fd042783 lw a5,-48(s0) +80000d94: 00f737b3 sltu a5,a4,a5 +80000d98: 0ff7f793 andi a5,a5,255 +80000d9c: fcf42423 sw a5,-56(s0) +80000da0: fc842783 lw a5,-56(s0) +80000da4: 0017b793 seqz a5,a5 +80000da8: fcf403a3 sb a5,-57(s0) +80000dac: fc744783 lbu a5,-57(s0) +80000db0: 00078f13 mv t5,a5 +80000db4: 800017b7 lui a5,0x80001 +80000db8: e1c78f93 addi t6,a5,-484 # 80000e1c +80000dbc: 000f206b 0xf206b +80000dc0: 01ff707b 0x1ff707b +80000dc4: fcc42783 lw a5,-52(s0) +80000dc8: 00279793 slli a5,a5,0x2 +80000dcc: fdc42703 lw a4,-36(s0) +80000dd0: 00f707b3 add a5,a4,a5 +80000dd4: 0007a683 lw a3,0(a5) +80000dd8: fcc42783 lw a5,-52(s0) +80000ddc: 00279793 slli a5,a5,0x2 +80000de0: fd842703 lw a4,-40(s0) +80000de4: 00f707b3 add a5,a4,a5 +80000de8: 0007a703 lw a4,0(a5) +80000dec: fcc42783 lw a5,-52(s0) +80000df0: 00279793 slli a5,a5,0x2 +80000df4: fd442603 lw a2,-44(s0) +80000df8: 00f607b3 add a5,a2,a5 +80000dfc: 00e68733 add a4,a3,a4 +80000e00: 00e7a023 sw a4,0(a5) +80000e04: fe842783 lw a5,-24(s0) +80000e08: 00178793 addi a5,a5,1 +80000e0c: fef42423 sw a5,-24(s0) +80000e10: 800017b7 lui a5,0x80001 +80000e14: e2078e13 addi t3,a5,-480 # 80000e20 +80000e18: 000e0067 jr t3 +80000e1c: 00000013 nop +80000e20: 0000306b 0x306b +80000e24: fe442783 lw a5,-28(s0) +80000e28: 00178793 addi a5,a5,1 +80000e2c: fef42223 sw a5,-28(s0) +80000e30: fe442783 lw a5,-28(s0) +80000e34: fec42703 lw a4,-20(s0) +80000e38: f2e7eee3 bltu a5,a4,80000d74 <_vx_mat_add+0x8c> +80000e3c: 00000013 nop +80000e40: 04c12083 lw ra,76(sp) +80000e44: 04812403 lw s0,72(sp) +80000e48: 05010113 addi sp,sp,80 +80000e4c: 00008067 ret -80000e60 : -80000e60: fc010113 addi sp,sp,-64 -80000e64: 02112e23 sw ra,60(sp) -80000e68: 02812c23 sw s0,56(sp) -80000e6c: 04010413 addi s0,sp,64 -80000e70: fca42e23 sw a0,-36(s0) -80000e74: fcb42c23 sw a1,-40(s0) -80000e78: fcc42a23 sw a2,-44(s0) -80000e7c: fcd42823 sw a3,-48(s0) -80000e80: fce42623 sw a4,-52(s0) -80000e84: 810267b7 lui a5,0x81026 -80000e88: fdc42703 lw a4,-36(s0) -80000e8c: 1ce7a623 sw a4,460(a5) # 810261cc +80000e50 : +80000e50: fc010113 addi sp,sp,-64 +80000e54: 02112e23 sw ra,60(sp) +80000e58: 02812c23 sw s0,56(sp) +80000e5c: 04010413 addi s0,sp,64 +80000e60: fca42e23 sw a0,-36(s0) +80000e64: fcb42c23 sw a1,-40(s0) +80000e68: fcc42a23 sw a2,-44(s0) +80000e6c: fcd42823 sw a3,-48(s0) +80000e70: fce42623 sw a4,-52(s0) +80000e74: 810267b7 lui a5,0x81026 +80000e78: fdc42703 lw a4,-36(s0) +80000e7c: 1ce7a623 sw a4,460(a5) # 810261cc +80000e80: 810267b7 lui a5,0x81026 +80000e84: 1cc78793 addi a5,a5,460 # 810261cc +80000e88: fd842703 lw a4,-40(s0) +80000e8c: 00e7a223 sw a4,4(a5) 80000e90: 810267b7 lui a5,0x81026 80000e94: 1cc78793 addi a5,a5,460 # 810261cc -80000e98: fd842703 lw a4,-40(s0) -80000e9c: 00e7a223 sw a4,4(a5) +80000e98: fd442703 lw a4,-44(s0) +80000e9c: 00e7a423 sw a4,8(a5) 80000ea0: 810267b7 lui a5,0x81026 80000ea4: 1cc78793 addi a5,a5,460 # 810261cc -80000ea8: fd442703 lw a4,-44(s0) -80000eac: 00e7a423 sw a4,8(a5) +80000ea8: fcc42703 lw a4,-52(s0) +80000eac: 00e7a623 sw a4,12(a5) 80000eb0: 810267b7 lui a5,0x81026 80000eb4: 1cc78793 addi a5,a5,460 # 810261cc -80000eb8: fcc42703 lw a4,-52(s0) -80000ebc: 00e7a623 sw a4,12(a5) -80000ec0: 810267b7 lui a5,0x81026 -80000ec4: 1cc78793 addi a5,a5,460 # 810261cc -80000ec8: fd042703 lw a4,-48(s0) -80000ecc: 00e7a823 sw a4,16(a5) -80000ed0: b28ff0ef jal ra,800001f8 -80000ed4: fea42423 sw a0,-24(s0) +80000eb8: fd042703 lw a4,-48(s0) +80000ebc: 00e7a823 sw a4,16(a5) +80000ec0: b28ff0ef jal ra,800001e8 +80000ec4: fea42423 sw a0,-24(s0) +80000ec8: fcc42703 lw a4,-52(s0) +80000ecc: fe842783 lw a5,-24(s0) +80000ed0: 02f757b3 divu a5,a4,a5 +80000ed4: fef42623 sw a5,-20(s0) 80000ed8: fcc42703 lw a4,-52(s0) 80000edc: fe842783 lw a5,-24(s0) -80000ee0: 02f757b3 divu a5,a4,a5 -80000ee4: fef42623 sw a5,-20(s0) -80000ee8: fcc42703 lw a4,-52(s0) -80000eec: fe842783 lw a5,-24(s0) -80000ef0: 02f777b3 remu a5,a4,a5 -80000ef4: 00078863 beqz a5,80000f04 -80000ef8: fec42783 lw a5,-20(s0) -80000efc: 00178793 addi a5,a5,1 -80000f00: fef42623 sw a5,-20(s0) -80000f04: 810267b7 lui a5,0x81026 -80000f08: 1cc78793 addi a5,a5,460 # 810261cc -80000f0c: fec42703 lw a4,-20(s0) -80000f10: 00e7aa23 sw a4,20(a5) -80000f14: fcc42703 lw a4,-52(s0) -80000f18: fe842783 lw a5,-24(s0) -80000f1c: 02f76263 bltu a4,a5,80000f40 -80000f20: 810267b7 lui a5,0x81026 -80000f24: 1cc78693 addi a3,a5,460 # 810261cc -80000f28: 800017b7 lui a5,0x80001 -80000f2c: f9878613 addi a2,a5,-104 # 80000f98 -80000f30: fe842583 lw a1,-24(s0) -80000f34: fd042503 lw a0,-48(s0) -80000f38: d38ff0ef jal ra,80000470 -80000f3c: 0200006f j 80000f5c -80000f40: 810267b7 lui a5,0x81026 -80000f44: 1cc78693 addi a3,a5,460 # 810261cc -80000f48: 800017b7 lui a5,0x80001 -80000f4c: f9878613 addi a2,a5,-104 # 80000f98 -80000f50: fcc42583 lw a1,-52(s0) -80000f54: fd042503 lw a0,-48(s0) -80000f58: d18ff0ef jal ra,80000470 -80000f5c: a94ff0ef jal ra,800001f0 -80000f60: fea42223 sw a0,-28(s0) -80000f64: fd042703 lw a4,-48(s0) -80000f68: fe442783 lw a5,-28(s0) -80000f6c: 00e7f863 bgeu a5,a4,80000f7c -80000f70: fe442503 lw a0,-28(s0) -80000f74: decff0ef jal ra,80000560 -80000f78: 00c0006f j 80000f84 -80000f7c: fd042503 lw a0,-48(s0) -80000f80: de0ff0ef jal ra,80000560 -80000f84: 00000013 nop -80000f88: 03c12083 lw ra,60(sp) -80000f8c: 03812403 lw s0,56(sp) -80000f90: 04010113 addi sp,sp,64 -80000f94: 00008067 ret +80000ee0: 02f777b3 remu a5,a4,a5 +80000ee4: 00078863 beqz a5,80000ef4 +80000ee8: fec42783 lw a5,-20(s0) +80000eec: 00178793 addi a5,a5,1 +80000ef0: fef42623 sw a5,-20(s0) +80000ef4: 810267b7 lui a5,0x81026 +80000ef8: 1cc78793 addi a5,a5,460 # 810261cc +80000efc: fec42703 lw a4,-20(s0) +80000f00: 00e7aa23 sw a4,20(a5) +80000f04: fcc42703 lw a4,-52(s0) +80000f08: fe842783 lw a5,-24(s0) +80000f0c: 02f76263 bltu a4,a5,80000f30 +80000f10: 810267b7 lui a5,0x81026 +80000f14: 1cc78693 addi a3,a5,460 # 810261cc +80000f18: 800017b7 lui a5,0x80001 +80000f1c: f8878613 addi a2,a5,-120 # 80000f88 +80000f20: fe842583 lw a1,-24(s0) +80000f24: fd042503 lw a0,-48(s0) +80000f28: d38ff0ef jal ra,80000460 +80000f2c: 0200006f j 80000f4c +80000f30: 810267b7 lui a5,0x81026 +80000f34: 1cc78693 addi a3,a5,460 # 810261cc +80000f38: 800017b7 lui a5,0x80001 +80000f3c: f8878613 addi a2,a5,-120 # 80000f88 +80000f40: fcc42583 lw a1,-52(s0) +80000f44: fd042503 lw a0,-48(s0) +80000f48: d18ff0ef jal ra,80000460 +80000f4c: a94ff0ef jal ra,800001e0 +80000f50: fea42223 sw a0,-28(s0) +80000f54: fd042703 lw a4,-48(s0) +80000f58: fe442783 lw a5,-28(s0) +80000f5c: 00e7f863 bgeu a5,a4,80000f6c +80000f60: fe442503 lw a0,-28(s0) +80000f64: decff0ef jal ra,80000550 +80000f68: 00c0006f j 80000f74 +80000f6c: fd042503 lw a0,-48(s0) +80000f70: de0ff0ef jal ra,80000550 +80000f74: 00000013 nop +80000f78: 03c12083 lw ra,60(sp) +80000f7c: 03812403 lw s0,56(sp) +80000f80: 04010113 addi sp,sp,64 +80000f84: 00008067 ret -80000f98 <_vx_mat_sub>: -80000f98: fb010113 addi sp,sp,-80 -80000f9c: 04112623 sw ra,76(sp) -80000fa0: 04812423 sw s0,72(sp) -80000fa4: 05010413 addi s0,sp,80 -80000fa8: faa42e23 sw a0,-68(s0) -80000fac: fab42c23 sw a1,-72(s0) -80000fb0: ea0ff0ef jal ra,80000650 -80000fb4: fea42023 sw a0,-32(s0) -80000fb8: fe042783 lw a5,-32(s0) -80000fbc: 0007a783 lw a5,0(a5) -80000fc0: fcf42e23 sw a5,-36(s0) -80000fc4: fe042783 lw a5,-32(s0) -80000fc8: 0047a783 lw a5,4(a5) -80000fcc: fcf42c23 sw a5,-40(s0) -80000fd0: fe042783 lw a5,-32(s0) -80000fd4: 0087a783 lw a5,8(a5) -80000fd8: fcf42a23 sw a5,-44(s0) -80000fdc: fe042783 lw a5,-32(s0) -80000fe0: 0147a783 lw a5,20(a5) -80000fe4: fef42623 sw a5,-20(s0) -80000fe8: fec42703 lw a4,-20(s0) -80000fec: fbc42783 lw a5,-68(s0) -80000ff0: 02f707b3 mul a5,a4,a5 -80000ff4: fef42423 sw a5,-24(s0) -80000ff8: fec42783 lw a5,-20(s0) -80000ffc: 00079a63 bnez a5,80001010 <_vx_mat_sub+0x78> -80001000: 00100793 li a5,1 -80001004: fef42623 sw a5,-20(s0) -80001008: fbc42783 lw a5,-68(s0) -8000100c: fef42423 sw a5,-24(s0) -80001010: fe042783 lw a5,-32(s0) -80001014: 00c7a783 lw a5,12(a5) -80001018: fcf42823 sw a5,-48(s0) -8000101c: fe042223 sw zero,-28(s0) -80001020: 0c00006f j 800010e0 <_vx_mat_sub+0x148> -80001024: fb842703 lw a4,-72(s0) -80001028: fd042783 lw a5,-48(s0) -8000102c: 02f70733 mul a4,a4,a5 -80001030: fe842783 lw a5,-24(s0) -80001034: 00f707b3 add a5,a4,a5 -80001038: fcf42623 sw a5,-52(s0) -8000103c: fe842703 lw a4,-24(s0) -80001040: fd042783 lw a5,-48(s0) -80001044: 00f737b3 sltu a5,a4,a5 -80001048: 0ff7f793 andi a5,a5,255 -8000104c: fcf42423 sw a5,-56(s0) -80001050: fc842783 lw a5,-56(s0) -80001054: 0017b793 seqz a5,a5 -80001058: fcf403a3 sb a5,-57(s0) -8000105c: fc744783 lbu a5,-57(s0) -80001060: 00078f13 mv t5,a5 -80001064: 800017b7 lui a5,0x80001 -80001068: 0cc78f93 addi t6,a5,204 # 800010cc -8000106c: 000f206b 0xf206b -80001070: 01ff707b 0x1ff707b -80001074: fcc42783 lw a5,-52(s0) -80001078: 00279793 slli a5,a5,0x2 -8000107c: fdc42703 lw a4,-36(s0) -80001080: 00f707b3 add a5,a4,a5 -80001084: 0007a683 lw a3,0(a5) -80001088: fcc42783 lw a5,-52(s0) -8000108c: 00279793 slli a5,a5,0x2 -80001090: fd842703 lw a4,-40(s0) -80001094: 00f707b3 add a5,a4,a5 -80001098: 0007a703 lw a4,0(a5) -8000109c: fcc42783 lw a5,-52(s0) -800010a0: 00279793 slli a5,a5,0x2 -800010a4: fd442603 lw a2,-44(s0) -800010a8: 00f607b3 add a5,a2,a5 -800010ac: 40e68733 sub a4,a3,a4 -800010b0: 00e7a023 sw a4,0(a5) -800010b4: fe842783 lw a5,-24(s0) -800010b8: 00178793 addi a5,a5,1 -800010bc: fef42423 sw a5,-24(s0) -800010c0: 800017b7 lui a5,0x80001 -800010c4: 0d078e13 addi t3,a5,208 # 800010d0 -800010c8: 000e0067 jr t3 -800010cc: 00000013 nop -800010d0: 0000306b 0x306b -800010d4: fe442783 lw a5,-28(s0) -800010d8: 00178793 addi a5,a5,1 -800010dc: fef42223 sw a5,-28(s0) -800010e0: fe442783 lw a5,-28(s0) -800010e4: fec42703 lw a4,-20(s0) -800010e8: f2e7eee3 bltu a5,a4,80001024 <_vx_mat_sub+0x8c> -800010ec: 00000013 nop -800010f0: 04c12083 lw ra,76(sp) -800010f4: 04812403 lw s0,72(sp) -800010f8: 05010113 addi sp,sp,80 -800010fc: 00008067 ret +80000f88 <_vx_mat_sub>: +80000f88: fb010113 addi sp,sp,-80 +80000f8c: 04112623 sw ra,76(sp) +80000f90: 04812423 sw s0,72(sp) +80000f94: 05010413 addi s0,sp,80 +80000f98: faa42e23 sw a0,-68(s0) +80000f9c: fab42c23 sw a1,-72(s0) +80000fa0: ea0ff0ef jal ra,80000640 +80000fa4: fea42023 sw a0,-32(s0) +80000fa8: fe042783 lw a5,-32(s0) +80000fac: 0007a783 lw a5,0(a5) +80000fb0: fcf42e23 sw a5,-36(s0) +80000fb4: fe042783 lw a5,-32(s0) +80000fb8: 0047a783 lw a5,4(a5) +80000fbc: fcf42c23 sw a5,-40(s0) +80000fc0: fe042783 lw a5,-32(s0) +80000fc4: 0087a783 lw a5,8(a5) +80000fc8: fcf42a23 sw a5,-44(s0) +80000fcc: fe042783 lw a5,-32(s0) +80000fd0: 0147a783 lw a5,20(a5) +80000fd4: fef42623 sw a5,-20(s0) +80000fd8: fec42703 lw a4,-20(s0) +80000fdc: fbc42783 lw a5,-68(s0) +80000fe0: 02f707b3 mul a5,a4,a5 +80000fe4: fef42423 sw a5,-24(s0) +80000fe8: fec42783 lw a5,-20(s0) +80000fec: 00079a63 bnez a5,80001000 <_vx_mat_sub+0x78> +80000ff0: 00100793 li a5,1 +80000ff4: fef42623 sw a5,-20(s0) +80000ff8: fbc42783 lw a5,-68(s0) +80000ffc: fef42423 sw a5,-24(s0) +80001000: fe042783 lw a5,-32(s0) +80001004: 00c7a783 lw a5,12(a5) +80001008: fcf42823 sw a5,-48(s0) +8000100c: fe042223 sw zero,-28(s0) +80001010: 0c00006f j 800010d0 <_vx_mat_sub+0x148> +80001014: fb842703 lw a4,-72(s0) +80001018: fd042783 lw a5,-48(s0) +8000101c: 02f70733 mul a4,a4,a5 +80001020: fe842783 lw a5,-24(s0) +80001024: 00f707b3 add a5,a4,a5 +80001028: fcf42623 sw a5,-52(s0) +8000102c: fe842703 lw a4,-24(s0) +80001030: fd042783 lw a5,-48(s0) +80001034: 00f737b3 sltu a5,a4,a5 +80001038: 0ff7f793 andi a5,a5,255 +8000103c: fcf42423 sw a5,-56(s0) +80001040: fc842783 lw a5,-56(s0) +80001044: 0017b793 seqz a5,a5 +80001048: fcf403a3 sb a5,-57(s0) +8000104c: fc744783 lbu a5,-57(s0) +80001050: 00078f13 mv t5,a5 +80001054: 800017b7 lui a5,0x80001 +80001058: 0bc78f93 addi t6,a5,188 # 800010bc +8000105c: 000f206b 0xf206b +80001060: 01ff707b 0x1ff707b +80001064: fcc42783 lw a5,-52(s0) +80001068: 00279793 slli a5,a5,0x2 +8000106c: fdc42703 lw a4,-36(s0) +80001070: 00f707b3 add a5,a4,a5 +80001074: 0007a683 lw a3,0(a5) +80001078: fcc42783 lw a5,-52(s0) +8000107c: 00279793 slli a5,a5,0x2 +80001080: fd842703 lw a4,-40(s0) +80001084: 00f707b3 add a5,a4,a5 +80001088: 0007a703 lw a4,0(a5) +8000108c: fcc42783 lw a5,-52(s0) +80001090: 00279793 slli a5,a5,0x2 +80001094: fd442603 lw a2,-44(s0) +80001098: 00f607b3 add a5,a2,a5 +8000109c: 40e68733 sub a4,a3,a4 +800010a0: 00e7a023 sw a4,0(a5) +800010a4: fe842783 lw a5,-24(s0) +800010a8: 00178793 addi a5,a5,1 +800010ac: fef42423 sw a5,-24(s0) +800010b0: 800017b7 lui a5,0x80001 +800010b4: 0c078e13 addi t3,a5,192 # 800010c0 +800010b8: 000e0067 jr t3 +800010bc: 00000013 nop +800010c0: 0000306b 0x306b +800010c4: fe442783 lw a5,-28(s0) +800010c8: 00178793 addi a5,a5,1 +800010cc: fef42223 sw a5,-28(s0) +800010d0: fe442783 lw a5,-28(s0) +800010d4: fec42703 lw a4,-20(s0) +800010d8: f2e7eee3 bltu a5,a4,80001014 <_vx_mat_sub+0x8c> +800010dc: 00000013 nop +800010e0: 04c12083 lw ra,76(sp) +800010e4: 04812403 lw s0,72(sp) +800010e8: 05010113 addi sp,sp,80 +800010ec: 00008067 ret -80001100 : -80001100: fc010113 addi sp,sp,-64 -80001104: 02112e23 sw ra,60(sp) -80001108: 02812c23 sw s0,56(sp) -8000110c: 04010413 addi s0,sp,64 -80001110: fca42e23 sw a0,-36(s0) -80001114: fcb42c23 sw a1,-40(s0) -80001118: fcc42a23 sw a2,-44(s0) -8000111c: fcd42823 sw a3,-48(s0) -80001120: fce42623 sw a4,-52(s0) -80001124: 810267b7 lui a5,0x81026 -80001128: fdc42703 lw a4,-36(s0) -8000112c: 1ee7a223 sw a4,484(a5) # 810261e4 +800010f0 : +800010f0: fc010113 addi sp,sp,-64 +800010f4: 02112e23 sw ra,60(sp) +800010f8: 02812c23 sw s0,56(sp) +800010fc: 04010413 addi s0,sp,64 +80001100: fca42e23 sw a0,-36(s0) +80001104: fcb42c23 sw a1,-40(s0) +80001108: fcc42a23 sw a2,-44(s0) +8000110c: fcd42823 sw a3,-48(s0) +80001110: fce42623 sw a4,-52(s0) +80001114: 810267b7 lui a5,0x81026 +80001118: fdc42703 lw a4,-36(s0) +8000111c: 1ee7a223 sw a4,484(a5) # 810261e4 +80001120: 810267b7 lui a5,0x81026 +80001124: 1e478793 addi a5,a5,484 # 810261e4 +80001128: fd842703 lw a4,-40(s0) +8000112c: 00e7a223 sw a4,4(a5) 80001130: 810267b7 lui a5,0x81026 80001134: 1e478793 addi a5,a5,484 # 810261e4 -80001138: fd842703 lw a4,-40(s0) -8000113c: 00e7a223 sw a4,4(a5) +80001138: fd442703 lw a4,-44(s0) +8000113c: 00e7a423 sw a4,8(a5) 80001140: 810267b7 lui a5,0x81026 80001144: 1e478793 addi a5,a5,484 # 810261e4 -80001148: fd442703 lw a4,-44(s0) -8000114c: 00e7a423 sw a4,8(a5) +80001148: fcc42703 lw a4,-52(s0) +8000114c: 00e7a623 sw a4,12(a5) 80001150: 810267b7 lui a5,0x81026 80001154: 1e478793 addi a5,a5,484 # 810261e4 -80001158: fcc42703 lw a4,-52(s0) -8000115c: 00e7a623 sw a4,12(a5) -80001160: 810267b7 lui a5,0x81026 -80001164: 1e478793 addi a5,a5,484 # 810261e4 -80001168: fd042703 lw a4,-48(s0) -8000116c: 00e7a823 sw a4,16(a5) -80001170: 888ff0ef jal ra,800001f8 -80001174: fea42423 sw a0,-24(s0) +80001158: fd042703 lw a4,-48(s0) +8000115c: 00e7a823 sw a4,16(a5) +80001160: 888ff0ef jal ra,800001e8 +80001164: fea42423 sw a0,-24(s0) +80001168: fcc42703 lw a4,-52(s0) +8000116c: fe842783 lw a5,-24(s0) +80001170: 02f757b3 divu a5,a4,a5 +80001174: fef42623 sw a5,-20(s0) 80001178: fcc42703 lw a4,-52(s0) 8000117c: fe842783 lw a5,-24(s0) -80001180: 02f757b3 divu a5,a4,a5 -80001184: fef42623 sw a5,-20(s0) -80001188: fcc42703 lw a4,-52(s0) -8000118c: fe842783 lw a5,-24(s0) -80001190: 02f777b3 remu a5,a4,a5 -80001194: 00078863 beqz a5,800011a4 -80001198: fec42783 lw a5,-20(s0) -8000119c: 00178793 addi a5,a5,1 -800011a0: fef42623 sw a5,-20(s0) -800011a4: 810267b7 lui a5,0x81026 -800011a8: 1e478793 addi a5,a5,484 # 810261e4 -800011ac: fec42703 lw a4,-20(s0) -800011b0: 00e7aa23 sw a4,20(a5) -800011b4: fcc42703 lw a4,-52(s0) -800011b8: fe842783 lw a5,-24(s0) -800011bc: 02f76263 bltu a4,a5,800011e0 -800011c0: 810267b7 lui a5,0x81026 -800011c4: 1e478693 addi a3,a5,484 # 810261e4 -800011c8: 800017b7 lui a5,0x80001 -800011cc: 23878613 addi a2,a5,568 # 80001238 -800011d0: fe842583 lw a1,-24(s0) -800011d4: fd042503 lw a0,-48(s0) -800011d8: a98ff0ef jal ra,80000470 -800011dc: 0200006f j 800011fc -800011e0: 810267b7 lui a5,0x81026 -800011e4: 1e478693 addi a3,a5,484 # 810261e4 -800011e8: 800017b7 lui a5,0x80001 -800011ec: 23878613 addi a2,a5,568 # 80001238 -800011f0: fcc42583 lw a1,-52(s0) -800011f4: fd042503 lw a0,-48(s0) -800011f8: a78ff0ef jal ra,80000470 -800011fc: ff5fe0ef jal ra,800001f0 -80001200: fea42223 sw a0,-28(s0) -80001204: fd042703 lw a4,-48(s0) -80001208: fe442783 lw a5,-28(s0) -8000120c: 00e7f863 bgeu a5,a4,8000121c -80001210: fe442503 lw a0,-28(s0) -80001214: b4cff0ef jal ra,80000560 -80001218: 00c0006f j 80001224 -8000121c: fd042503 lw a0,-48(s0) -80001220: b40ff0ef jal ra,80000560 -80001224: 00000013 nop -80001228: 03c12083 lw ra,60(sp) -8000122c: 03812403 lw s0,56(sp) -80001230: 04010113 addi sp,sp,64 -80001234: 00008067 ret +80001180: 02f777b3 remu a5,a4,a5 +80001184: 00078863 beqz a5,80001194 +80001188: fec42783 lw a5,-20(s0) +8000118c: 00178793 addi a5,a5,1 +80001190: fef42623 sw a5,-20(s0) +80001194: 810267b7 lui a5,0x81026 +80001198: 1e478793 addi a5,a5,484 # 810261e4 +8000119c: fec42703 lw a4,-20(s0) +800011a0: 00e7aa23 sw a4,20(a5) +800011a4: fcc42703 lw a4,-52(s0) +800011a8: fe842783 lw a5,-24(s0) +800011ac: 02f76263 bltu a4,a5,800011d0 +800011b0: 810267b7 lui a5,0x81026 +800011b4: 1e478693 addi a3,a5,484 # 810261e4 +800011b8: 800017b7 lui a5,0x80001 +800011bc: 22878613 addi a2,a5,552 # 80001228 +800011c0: fe842583 lw a1,-24(s0) +800011c4: fd042503 lw a0,-48(s0) +800011c8: a98ff0ef jal ra,80000460 +800011cc: 0200006f j 800011ec +800011d0: 810267b7 lui a5,0x81026 +800011d4: 1e478693 addi a3,a5,484 # 810261e4 +800011d8: 800017b7 lui a5,0x80001 +800011dc: 22878613 addi a2,a5,552 # 80001228 +800011e0: fcc42583 lw a1,-52(s0) +800011e4: fd042503 lw a0,-48(s0) +800011e8: a78ff0ef jal ra,80000460 +800011ec: ff5fe0ef jal ra,800001e0 +800011f0: fea42223 sw a0,-28(s0) +800011f4: fd042703 lw a4,-48(s0) +800011f8: fe442783 lw a5,-28(s0) +800011fc: 00e7f863 bgeu a5,a4,8000120c +80001200: fe442503 lw a0,-28(s0) +80001204: b4cff0ef jal ra,80000550 +80001208: 00c0006f j 80001214 +8000120c: fd042503 lw a0,-48(s0) +80001210: b40ff0ef jal ra,80000550 +80001214: 00000013 nop +80001218: 03c12083 lw ra,60(sp) +8000121c: 03812403 lw s0,56(sp) +80001220: 04010113 addi sp,sp,64 +80001224: 00008067 ret -80001238 <_vx_e_mat_add>: -80001238: fb010113 addi sp,sp,-80 -8000123c: 04112623 sw ra,76(sp) -80001240: 04812423 sw s0,72(sp) -80001244: 05010413 addi s0,sp,80 -80001248: faa42e23 sw a0,-68(s0) -8000124c: fab42c23 sw a1,-72(s0) -80001250: c00ff0ef jal ra,80000650 -80001254: fea42023 sw a0,-32(s0) -80001258: fe042783 lw a5,-32(s0) +80001228 <_vx_e_mat_add>: +80001228: fb010113 addi sp,sp,-80 +8000122c: 04112623 sw ra,76(sp) +80001230: 04812423 sw s0,72(sp) +80001234: 05010413 addi s0,sp,80 +80001238: faa42e23 sw a0,-68(s0) +8000123c: fab42c23 sw a1,-72(s0) +80001240: c00ff0ef jal ra,80000640 +80001244: fea42023 sw a0,-32(s0) +80001248: fe042783 lw a5,-32(s0) +8000124c: 0007a783 lw a5,0(a5) +80001250: fcf42e23 sw a5,-36(s0) +80001254: fe042783 lw a5,-32(s0) +80001258: 0047a783 lw a5,4(a5) 8000125c: 0007a783 lw a5,0(a5) -80001260: fcf42e23 sw a5,-36(s0) +80001260: fcf42c23 sw a5,-40(s0) 80001264: fe042783 lw a5,-32(s0) -80001268: 0047a783 lw a5,4(a5) -8000126c: 0007a783 lw a5,0(a5) -80001270: fcf42c23 sw a5,-40(s0) -80001274: fe042783 lw a5,-32(s0) -80001278: 0087a783 lw a5,8(a5) -8000127c: fcf42a23 sw a5,-44(s0) -80001280: fe042783 lw a5,-32(s0) -80001284: 0147a783 lw a5,20(a5) -80001288: fef42623 sw a5,-20(s0) -8000128c: fec42703 lw a4,-20(s0) -80001290: fbc42783 lw a5,-68(s0) -80001294: 02f707b3 mul a5,a4,a5 -80001298: fef42423 sw a5,-24(s0) -8000129c: fec42783 lw a5,-20(s0) -800012a0: 00079a63 bnez a5,800012b4 <_vx_e_mat_add+0x7c> -800012a4: 00100793 li a5,1 -800012a8: fef42623 sw a5,-20(s0) -800012ac: fbc42783 lw a5,-68(s0) -800012b0: fef42423 sw a5,-24(s0) -800012b4: fe042783 lw a5,-32(s0) -800012b8: 00c7a783 lw a5,12(a5) -800012bc: fcf42823 sw a5,-48(s0) -800012c0: fe042223 sw zero,-28(s0) -800012c4: 0b00006f j 80001374 <_vx_e_mat_add+0x13c> -800012c8: fb842703 lw a4,-72(s0) -800012cc: fd042783 lw a5,-48(s0) -800012d0: 02f70733 mul a4,a4,a5 -800012d4: fe842783 lw a5,-24(s0) -800012d8: 00f707b3 add a5,a4,a5 -800012dc: fcf42623 sw a5,-52(s0) -800012e0: fe842703 lw a4,-24(s0) -800012e4: fd042783 lw a5,-48(s0) -800012e8: 00f737b3 sltu a5,a4,a5 -800012ec: 0ff7f793 andi a5,a5,255 -800012f0: fcf42423 sw a5,-56(s0) -800012f4: fc842783 lw a5,-56(s0) -800012f8: 0017b793 seqz a5,a5 -800012fc: fcf403a3 sb a5,-57(s0) -80001300: fc744783 lbu a5,-57(s0) -80001304: 00078f13 mv t5,a5 -80001308: 800017b7 lui a5,0x80001 -8000130c: 36078f93 addi t6,a5,864 # 80001360 -80001310: 000f206b 0xf206b -80001314: 01ff707b 0x1ff707b -80001318: fcc42783 lw a5,-52(s0) -8000131c: 00279793 slli a5,a5,0x2 -80001320: fdc42703 lw a4,-36(s0) -80001324: 00f707b3 add a5,a4,a5 -80001328: 0007a683 lw a3,0(a5) -8000132c: fcc42783 lw a5,-52(s0) -80001330: 00279793 slli a5,a5,0x2 -80001334: fd442703 lw a4,-44(s0) -80001338: 00f707b3 add a5,a4,a5 -8000133c: fd842703 lw a4,-40(s0) -80001340: 00e68733 add a4,a3,a4 -80001344: 00e7a023 sw a4,0(a5) -80001348: fe842783 lw a5,-24(s0) -8000134c: 00178793 addi a5,a5,1 -80001350: fef42423 sw a5,-24(s0) -80001354: 800017b7 lui a5,0x80001 -80001358: 36478e13 addi t3,a5,868 # 80001364 -8000135c: 000e0067 jr t3 -80001360: 00000013 nop -80001364: 0000306b 0x306b -80001368: fe442783 lw a5,-28(s0) -8000136c: 00178793 addi a5,a5,1 -80001370: fef42223 sw a5,-28(s0) -80001374: fe442783 lw a5,-28(s0) -80001378: fec42703 lw a4,-20(s0) -8000137c: f4e7e6e3 bltu a5,a4,800012c8 <_vx_e_mat_add+0x90> -80001380: 00000013 nop -80001384: 04c12083 lw ra,76(sp) -80001388: 04812403 lw s0,72(sp) -8000138c: 05010113 addi sp,sp,80 -80001390: 00008067 ret +80001268: 0087a783 lw a5,8(a5) +8000126c: fcf42a23 sw a5,-44(s0) +80001270: fe042783 lw a5,-32(s0) +80001274: 0147a783 lw a5,20(a5) +80001278: fef42623 sw a5,-20(s0) +8000127c: fec42703 lw a4,-20(s0) +80001280: fbc42783 lw a5,-68(s0) +80001284: 02f707b3 mul a5,a4,a5 +80001288: fef42423 sw a5,-24(s0) +8000128c: fec42783 lw a5,-20(s0) +80001290: 00079a63 bnez a5,800012a4 <_vx_e_mat_add+0x7c> +80001294: 00100793 li a5,1 +80001298: fef42623 sw a5,-20(s0) +8000129c: fbc42783 lw a5,-68(s0) +800012a0: fef42423 sw a5,-24(s0) +800012a4: fe042783 lw a5,-32(s0) +800012a8: 00c7a783 lw a5,12(a5) +800012ac: fcf42823 sw a5,-48(s0) +800012b0: fe042223 sw zero,-28(s0) +800012b4: 0b00006f j 80001364 <_vx_e_mat_add+0x13c> +800012b8: fb842703 lw a4,-72(s0) +800012bc: fd042783 lw a5,-48(s0) +800012c0: 02f70733 mul a4,a4,a5 +800012c4: fe842783 lw a5,-24(s0) +800012c8: 00f707b3 add a5,a4,a5 +800012cc: fcf42623 sw a5,-52(s0) +800012d0: fe842703 lw a4,-24(s0) +800012d4: fd042783 lw a5,-48(s0) +800012d8: 00f737b3 sltu a5,a4,a5 +800012dc: 0ff7f793 andi a5,a5,255 +800012e0: fcf42423 sw a5,-56(s0) +800012e4: fc842783 lw a5,-56(s0) +800012e8: 0017b793 seqz a5,a5 +800012ec: fcf403a3 sb a5,-57(s0) +800012f0: fc744783 lbu a5,-57(s0) +800012f4: 00078f13 mv t5,a5 +800012f8: 800017b7 lui a5,0x80001 +800012fc: 35078f93 addi t6,a5,848 # 80001350 +80001300: 000f206b 0xf206b +80001304: 01ff707b 0x1ff707b +80001308: fcc42783 lw a5,-52(s0) +8000130c: 00279793 slli a5,a5,0x2 +80001310: fdc42703 lw a4,-36(s0) +80001314: 00f707b3 add a5,a4,a5 +80001318: 0007a683 lw a3,0(a5) +8000131c: fcc42783 lw a5,-52(s0) +80001320: 00279793 slli a5,a5,0x2 +80001324: fd442703 lw a4,-44(s0) +80001328: 00f707b3 add a5,a4,a5 +8000132c: fd842703 lw a4,-40(s0) +80001330: 00e68733 add a4,a3,a4 +80001334: 00e7a023 sw a4,0(a5) +80001338: fe842783 lw a5,-24(s0) +8000133c: 00178793 addi a5,a5,1 +80001340: fef42423 sw a5,-24(s0) +80001344: 800017b7 lui a5,0x80001 +80001348: 35478e13 addi t3,a5,852 # 80001354 +8000134c: 000e0067 jr t3 +80001350: 00000013 nop +80001354: 0000306b 0x306b +80001358: fe442783 lw a5,-28(s0) +8000135c: 00178793 addi a5,a5,1 +80001360: fef42223 sw a5,-28(s0) +80001364: fe442783 lw a5,-28(s0) +80001368: fec42703 lw a4,-20(s0) +8000136c: f4e7e6e3 bltu a5,a4,800012b8 <_vx_e_mat_add+0x90> +80001370: 00000013 nop +80001374: 04c12083 lw ra,76(sp) +80001378: 04812403 lw s0,72(sp) +8000137c: 05010113 addi sp,sp,80 +80001380: 00008067 ret -80001394 : -80001394: fc010113 addi sp,sp,-64 -80001398: 02112e23 sw ra,60(sp) -8000139c: 02812c23 sw s0,56(sp) -800013a0: 04010413 addi s0,sp,64 -800013a4: fca42e23 sw a0,-36(s0) -800013a8: fcb42c23 sw a1,-40(s0) -800013ac: fcc42a23 sw a2,-44(s0) -800013b0: fcd42823 sw a3,-48(s0) -800013b4: fce42623 sw a4,-52(s0) -800013b8: 810267b7 lui a5,0x81026 -800013bc: fdc42703 lw a4,-36(s0) -800013c0: 1ee7a223 sw a4,484(a5) # 810261e4 +80001384 : +80001384: fc010113 addi sp,sp,-64 +80001388: 02112e23 sw ra,60(sp) +8000138c: 02812c23 sw s0,56(sp) +80001390: 04010413 addi s0,sp,64 +80001394: fca42e23 sw a0,-36(s0) +80001398: fcb42c23 sw a1,-40(s0) +8000139c: fcc42a23 sw a2,-44(s0) +800013a0: fcd42823 sw a3,-48(s0) +800013a4: fce42623 sw a4,-52(s0) +800013a8: 810267b7 lui a5,0x81026 +800013ac: fdc42703 lw a4,-36(s0) +800013b0: 1ee7a223 sw a4,484(a5) # 810261e4 +800013b4: 810267b7 lui a5,0x81026 +800013b8: 1e478793 addi a5,a5,484 # 810261e4 +800013bc: fd842703 lw a4,-40(s0) +800013c0: 00e7a223 sw a4,4(a5) 800013c4: 810267b7 lui a5,0x81026 800013c8: 1e478793 addi a5,a5,484 # 810261e4 -800013cc: fd842703 lw a4,-40(s0) -800013d0: 00e7a223 sw a4,4(a5) +800013cc: fd442703 lw a4,-44(s0) +800013d0: 00e7a423 sw a4,8(a5) 800013d4: 810267b7 lui a5,0x81026 800013d8: 1e478793 addi a5,a5,484 # 810261e4 -800013dc: fd442703 lw a4,-44(s0) -800013e0: 00e7a423 sw a4,8(a5) +800013dc: fcc42703 lw a4,-52(s0) +800013e0: 00e7a623 sw a4,12(a5) 800013e4: 810267b7 lui a5,0x81026 800013e8: 1e478793 addi a5,a5,484 # 810261e4 -800013ec: fcc42703 lw a4,-52(s0) -800013f0: 00e7a623 sw a4,12(a5) -800013f4: 810267b7 lui a5,0x81026 -800013f8: 1e478793 addi a5,a5,484 # 810261e4 -800013fc: fd042703 lw a4,-48(s0) -80001400: 00e7a823 sw a4,16(a5) -80001404: df5fe0ef jal ra,800001f8 -80001408: fea42423 sw a0,-24(s0) +800013ec: fd042703 lw a4,-48(s0) +800013f0: 00e7a823 sw a4,16(a5) +800013f4: df5fe0ef jal ra,800001e8 +800013f8: fea42423 sw a0,-24(s0) +800013fc: fcc42703 lw a4,-52(s0) +80001400: fe842783 lw a5,-24(s0) +80001404: 02f757b3 divu a5,a4,a5 +80001408: fef42623 sw a5,-20(s0) 8000140c: fcc42703 lw a4,-52(s0) 80001410: fe842783 lw a5,-24(s0) -80001414: 02f757b3 divu a5,a4,a5 -80001418: fef42623 sw a5,-20(s0) -8000141c: fcc42703 lw a4,-52(s0) -80001420: fe842783 lw a5,-24(s0) -80001424: 02f777b3 remu a5,a4,a5 -80001428: 00078863 beqz a5,80001438 -8000142c: fec42783 lw a5,-20(s0) -80001430: 00178793 addi a5,a5,1 -80001434: fef42623 sw a5,-20(s0) -80001438: 810267b7 lui a5,0x81026 -8000143c: 1e478793 addi a5,a5,484 # 810261e4 -80001440: fec42703 lw a4,-20(s0) -80001444: 00e7aa23 sw a4,20(a5) -80001448: fcc42703 lw a4,-52(s0) -8000144c: fe842783 lw a5,-24(s0) -80001450: 02f76263 bltu a4,a5,80001474 -80001454: 810267b7 lui a5,0x81026 -80001458: 1e478693 addi a3,a5,484 # 810261e4 -8000145c: 800017b7 lui a5,0x80001 -80001460: 4cc78613 addi a2,a5,1228 # 800014cc -80001464: fe842583 lw a1,-24(s0) -80001468: fd042503 lw a0,-48(s0) -8000146c: 804ff0ef jal ra,80000470 -80001470: 0200006f j 80001490 -80001474: 810267b7 lui a5,0x81026 -80001478: 1e478693 addi a3,a5,484 # 810261e4 -8000147c: 800017b7 lui a5,0x80001 -80001480: 4cc78613 addi a2,a5,1228 # 800014cc -80001484: fcc42583 lw a1,-52(s0) -80001488: fd042503 lw a0,-48(s0) -8000148c: fe5fe0ef jal ra,80000470 -80001490: d61fe0ef jal ra,800001f0 -80001494: fea42223 sw a0,-28(s0) -80001498: fd042703 lw a4,-48(s0) -8000149c: fe442783 lw a5,-28(s0) -800014a0: 00e7f863 bgeu a5,a4,800014b0 -800014a4: fe442503 lw a0,-28(s0) -800014a8: 8b8ff0ef jal ra,80000560 -800014ac: 00c0006f j 800014b8 -800014b0: fd042503 lw a0,-48(s0) -800014b4: 8acff0ef jal ra,80000560 -800014b8: 00000013 nop -800014bc: 03c12083 lw ra,60(sp) -800014c0: 03812403 lw s0,56(sp) -800014c4: 04010113 addi sp,sp,64 -800014c8: 00008067 ret +80001414: 02f777b3 remu a5,a4,a5 +80001418: 00078863 beqz a5,80001428 +8000141c: fec42783 lw a5,-20(s0) +80001420: 00178793 addi a5,a5,1 +80001424: fef42623 sw a5,-20(s0) +80001428: 810267b7 lui a5,0x81026 +8000142c: 1e478793 addi a5,a5,484 # 810261e4 +80001430: fec42703 lw a4,-20(s0) +80001434: 00e7aa23 sw a4,20(a5) +80001438: fcc42703 lw a4,-52(s0) +8000143c: fe842783 lw a5,-24(s0) +80001440: 02f76263 bltu a4,a5,80001464 +80001444: 810267b7 lui a5,0x81026 +80001448: 1e478693 addi a3,a5,484 # 810261e4 +8000144c: 800017b7 lui a5,0x80001 +80001450: 4bc78613 addi a2,a5,1212 # 800014bc +80001454: fe842583 lw a1,-24(s0) +80001458: fd042503 lw a0,-48(s0) +8000145c: 804ff0ef jal ra,80000460 +80001460: 0200006f j 80001480 +80001464: 810267b7 lui a5,0x81026 +80001468: 1e478693 addi a3,a5,484 # 810261e4 +8000146c: 800017b7 lui a5,0x80001 +80001470: 4bc78613 addi a2,a5,1212 # 800014bc +80001474: fcc42583 lw a1,-52(s0) +80001478: fd042503 lw a0,-48(s0) +8000147c: fe5fe0ef jal ra,80000460 +80001480: d61fe0ef jal ra,800001e0 +80001484: fea42223 sw a0,-28(s0) +80001488: fd042703 lw a4,-48(s0) +8000148c: fe442783 lw a5,-28(s0) +80001490: 00e7f863 bgeu a5,a4,800014a0 +80001494: fe442503 lw a0,-28(s0) +80001498: 8b8ff0ef jal ra,80000550 +8000149c: 00c0006f j 800014a8 +800014a0: fd042503 lw a0,-48(s0) +800014a4: 8acff0ef jal ra,80000550 +800014a8: 00000013 nop +800014ac: 03c12083 lw ra,60(sp) +800014b0: 03812403 lw s0,56(sp) +800014b4: 04010113 addi sp,sp,64 +800014b8: 00008067 ret -800014cc <_vx_e_mat_mult>: -800014cc: fb010113 addi sp,sp,-80 -800014d0: 04112623 sw ra,76(sp) -800014d4: 04812423 sw s0,72(sp) -800014d8: 05010413 addi s0,sp,80 -800014dc: faa42e23 sw a0,-68(s0) -800014e0: fab42c23 sw a1,-72(s0) -800014e4: 96cff0ef jal ra,80000650 -800014e8: fea42023 sw a0,-32(s0) -800014ec: fe042783 lw a5,-32(s0) +800014bc <_vx_e_mat_mult>: +800014bc: fb010113 addi sp,sp,-80 +800014c0: 04112623 sw ra,76(sp) +800014c4: 04812423 sw s0,72(sp) +800014c8: 05010413 addi s0,sp,80 +800014cc: faa42e23 sw a0,-68(s0) +800014d0: fab42c23 sw a1,-72(s0) +800014d4: 96cff0ef jal ra,80000640 +800014d8: fea42023 sw a0,-32(s0) +800014dc: fe042783 lw a5,-32(s0) +800014e0: 0007a783 lw a5,0(a5) +800014e4: fcf42e23 sw a5,-36(s0) +800014e8: fe042783 lw a5,-32(s0) +800014ec: 0047a783 lw a5,4(a5) 800014f0: 0007a783 lw a5,0(a5) -800014f4: fcf42e23 sw a5,-36(s0) +800014f4: fcf42c23 sw a5,-40(s0) 800014f8: fe042783 lw a5,-32(s0) -800014fc: 0047a783 lw a5,4(a5) -80001500: 0007a783 lw a5,0(a5) -80001504: fcf42c23 sw a5,-40(s0) -80001508: fe042783 lw a5,-32(s0) -8000150c: 0087a783 lw a5,8(a5) -80001510: fcf42a23 sw a5,-44(s0) -80001514: fe042783 lw a5,-32(s0) -80001518: 0147a783 lw a5,20(a5) -8000151c: fef42623 sw a5,-20(s0) -80001520: fec42703 lw a4,-20(s0) -80001524: fbc42783 lw a5,-68(s0) -80001528: 02f707b3 mul a5,a4,a5 -8000152c: fef42423 sw a5,-24(s0) -80001530: fec42783 lw a5,-20(s0) -80001534: 00079a63 bnez a5,80001548 <_vx_e_mat_mult+0x7c> -80001538: 00100793 li a5,1 -8000153c: fef42623 sw a5,-20(s0) -80001540: fbc42783 lw a5,-68(s0) -80001544: fef42423 sw a5,-24(s0) -80001548: fe042783 lw a5,-32(s0) -8000154c: 00c7a783 lw a5,12(a5) -80001550: fcf42823 sw a5,-48(s0) -80001554: fe042223 sw zero,-28(s0) -80001558: 0b00006f j 80001608 <_vx_e_mat_mult+0x13c> -8000155c: fb842703 lw a4,-72(s0) -80001560: fd042783 lw a5,-48(s0) -80001564: 02f70733 mul a4,a4,a5 -80001568: fe842783 lw a5,-24(s0) -8000156c: 00f707b3 add a5,a4,a5 -80001570: fcf42623 sw a5,-52(s0) -80001574: fe842703 lw a4,-24(s0) -80001578: fd042783 lw a5,-48(s0) -8000157c: 00f737b3 sltu a5,a4,a5 -80001580: 0ff7f793 andi a5,a5,255 -80001584: fcf42423 sw a5,-56(s0) -80001588: fc842783 lw a5,-56(s0) -8000158c: 0017b793 seqz a5,a5 -80001590: fcf403a3 sb a5,-57(s0) -80001594: fc744783 lbu a5,-57(s0) -80001598: 00078f13 mv t5,a5 -8000159c: 800017b7 lui a5,0x80001 -800015a0: 5f478f93 addi t6,a5,1524 # 800015f4 -800015a4: 000f206b 0xf206b -800015a8: 01ff707b 0x1ff707b -800015ac: fcc42783 lw a5,-52(s0) -800015b0: 00279793 slli a5,a5,0x2 -800015b4: fdc42703 lw a4,-36(s0) -800015b8: 00f707b3 add a5,a4,a5 -800015bc: 0007a683 lw a3,0(a5) -800015c0: fcc42783 lw a5,-52(s0) -800015c4: 00279793 slli a5,a5,0x2 -800015c8: fd442703 lw a4,-44(s0) -800015cc: 00f707b3 add a5,a4,a5 -800015d0: fd842703 lw a4,-40(s0) -800015d4: 02e68733 mul a4,a3,a4 -800015d8: 00e7a023 sw a4,0(a5) -800015dc: fe842783 lw a5,-24(s0) -800015e0: 00178793 addi a5,a5,1 -800015e4: fef42423 sw a5,-24(s0) -800015e8: 800017b7 lui a5,0x80001 -800015ec: 5f878e13 addi t3,a5,1528 # 800015f8 -800015f0: 000e0067 jr t3 -800015f4: 00000013 nop -800015f8: 0000306b 0x306b -800015fc: fe442783 lw a5,-28(s0) -80001600: 00178793 addi a5,a5,1 -80001604: fef42223 sw a5,-28(s0) -80001608: fe442783 lw a5,-28(s0) -8000160c: fec42703 lw a4,-20(s0) -80001610: f4e7e6e3 bltu a5,a4,8000155c <_vx_e_mat_mult+0x90> -80001614: 00000013 nop -80001618: 04c12083 lw ra,76(sp) -8000161c: 04812403 lw s0,72(sp) -80001620: 05010113 addi sp,sp,80 -80001624: 00008067 ret +800014fc: 0087a783 lw a5,8(a5) +80001500: fcf42a23 sw a5,-44(s0) +80001504: fe042783 lw a5,-32(s0) +80001508: 0147a783 lw a5,20(a5) +8000150c: fef42623 sw a5,-20(s0) +80001510: fec42703 lw a4,-20(s0) +80001514: fbc42783 lw a5,-68(s0) +80001518: 02f707b3 mul a5,a4,a5 +8000151c: fef42423 sw a5,-24(s0) +80001520: fec42783 lw a5,-20(s0) +80001524: 00079a63 bnez a5,80001538 <_vx_e_mat_mult+0x7c> +80001528: 00100793 li a5,1 +8000152c: fef42623 sw a5,-20(s0) +80001530: fbc42783 lw a5,-68(s0) +80001534: fef42423 sw a5,-24(s0) +80001538: fe042783 lw a5,-32(s0) +8000153c: 00c7a783 lw a5,12(a5) +80001540: fcf42823 sw a5,-48(s0) +80001544: fe042223 sw zero,-28(s0) +80001548: 0b00006f j 800015f8 <_vx_e_mat_mult+0x13c> +8000154c: fb842703 lw a4,-72(s0) +80001550: fd042783 lw a5,-48(s0) +80001554: 02f70733 mul a4,a4,a5 +80001558: fe842783 lw a5,-24(s0) +8000155c: 00f707b3 add a5,a4,a5 +80001560: fcf42623 sw a5,-52(s0) +80001564: fe842703 lw a4,-24(s0) +80001568: fd042783 lw a5,-48(s0) +8000156c: 00f737b3 sltu a5,a4,a5 +80001570: 0ff7f793 andi a5,a5,255 +80001574: fcf42423 sw a5,-56(s0) +80001578: fc842783 lw a5,-56(s0) +8000157c: 0017b793 seqz a5,a5 +80001580: fcf403a3 sb a5,-57(s0) +80001584: fc744783 lbu a5,-57(s0) +80001588: 00078f13 mv t5,a5 +8000158c: 800017b7 lui a5,0x80001 +80001590: 5e478f93 addi t6,a5,1508 # 800015e4 +80001594: 000f206b 0xf206b +80001598: 01ff707b 0x1ff707b +8000159c: fcc42783 lw a5,-52(s0) +800015a0: 00279793 slli a5,a5,0x2 +800015a4: fdc42703 lw a4,-36(s0) +800015a8: 00f707b3 add a5,a4,a5 +800015ac: 0007a683 lw a3,0(a5) +800015b0: fcc42783 lw a5,-52(s0) +800015b4: 00279793 slli a5,a5,0x2 +800015b8: fd442703 lw a4,-44(s0) +800015bc: 00f707b3 add a5,a4,a5 +800015c0: fd842703 lw a4,-40(s0) +800015c4: 02e68733 mul a4,a3,a4 +800015c8: 00e7a023 sw a4,0(a5) +800015cc: fe842783 lw a5,-24(s0) +800015d0: 00178793 addi a5,a5,1 +800015d4: fef42423 sw a5,-24(s0) +800015d8: 800017b7 lui a5,0x80001 +800015dc: 5e878e13 addi t3,a5,1512 # 800015e8 +800015e0: 000e0067 jr t3 +800015e4: 00000013 nop +800015e8: 0000306b 0x306b +800015ec: fe442783 lw a5,-28(s0) +800015f0: 00178793 addi a5,a5,1 +800015f4: fef42223 sw a5,-28(s0) +800015f8: fe442783 lw a5,-28(s0) +800015fc: fec42703 lw a4,-20(s0) +80001600: f4e7e6e3 bltu a5,a4,8000154c <_vx_e_mat_mult+0x90> +80001604: 00000013 nop +80001608: 04c12083 lw ra,76(sp) +8000160c: 04812403 lw s0,72(sp) +80001610: 05010113 addi sp,sp,80 +80001614: 00008067 ret -80001628 : -80001628: fd010113 addi sp,sp,-48 -8000162c: 02812623 sw s0,44(sp) -80001630: 03010413 addi s0,sp,48 -80001634: fca42e23 sw a0,-36(s0) -80001638: fe042623 sw zero,-20(s0) -8000163c: 0100006f j 8000164c -80001640: fec42783 lw a5,-20(s0) -80001644: 00178793 addi a5,a5,1 -80001648: fef42623 sw a5,-20(s0) -8000164c: fec42703 lw a4,-20(s0) -80001650: fdc42783 lw a5,-36(s0) -80001654: fef746e3 blt a4,a5,80001640 -80001658: 00000013 nop -8000165c: 02c12403 lw s0,44(sp) -80001660: 03010113 addi sp,sp,48 -80001664: 00008067 ret +80001618 : +80001618: fd010113 addi sp,sp,-48 +8000161c: 02812623 sw s0,44(sp) +80001620: 03010413 addi s0,sp,48 +80001624: fca42e23 sw a0,-36(s0) +80001628: fe042623 sw zero,-20(s0) +8000162c: 0100006f j 8000163c +80001630: fec42783 lw a5,-20(s0) +80001634: 00178793 addi a5,a5,1 +80001638: fef42623 sw a5,-20(s0) +8000163c: fec42703 lw a4,-20(s0) +80001640: fdc42783 lw a5,-36(s0) +80001644: fef746e3 blt a4,a5,80001630 +80001648: 00000013 nop +8000164c: 02c12403 lw s0,44(sp) +80001650: 03010113 addi sp,sp,48 +80001654: 00008067 ret -80001668 : -80001668: fd010113 addi sp,sp,-48 -8000166c: 02112623 sw ra,44(sp) -80001670: 02812423 sw s0,40(sp) -80001674: 03010413 addi s0,sp,48 -80001678: fca42e23 sw a0,-36(s0) -8000167c: fcb42c23 sw a1,-40(s0) -80001680: 810267b7 lui a5,0x81026 -80001684: 1fc78713 addi a4,a5,508 # 810261fc +80001658 : +80001658: fd010113 addi sp,sp,-48 +8000165c: 02112623 sw ra,44(sp) +80001660: 02812423 sw s0,40(sp) +80001664: 03010413 addi s0,sp,48 +80001668: fca42e23 sw a0,-36(s0) +8000166c: fcb42c23 sw a1,-40(s0) +80001670: 810267b7 lui a5,0x81026 +80001674: 1fc78713 addi a4,a5,508 # 810261fc +80001678: fdc42783 lw a5,-36(s0) +8000167c: 00f707b3 add a5,a4,a5 +80001680: 00100713 li a4,1 +80001684: 00e78023 sb a4,0(a5) 80001688: fdc42783 lw a5,-36(s0) -8000168c: 00f707b3 add a5,a4,a5 -80001690: 00100713 li a4,1 -80001694: 00e78023 sb a4,0(a5) -80001698: fdc42783 lw a5,-36(s0) -8000169c: 0c079063 bnez a5,8000175c -800016a0: fe0401a3 sb zero,-29(s0) -800016a4: fe042623 sw zero,-20(s0) -800016a8: 0a80006f j 80001750 -800016ac: fe042623 sw zero,-20(s0) -800016b0: fe042423 sw zero,-24(s0) -800016b4: 0340006f j 800016e8 -800016b8: 810267b7 lui a5,0x81026 -800016bc: 1fc78713 addi a4,a5,508 # 810261fc -800016c0: fe842783 lw a5,-24(s0) -800016c4: 00f707b3 add a5,a4,a5 -800016c8: 0007c783 lbu a5,0(a5) -800016cc: 00078863 beqz a5,800016dc -800016d0: fec42783 lw a5,-20(s0) -800016d4: 00178793 addi a5,a5,1 -800016d8: fef42623 sw a5,-20(s0) -800016dc: fe842783 lw a5,-24(s0) -800016e0: 00178793 addi a5,a5,1 -800016e4: fef42423 sw a5,-24(s0) -800016e8: fe842703 lw a4,-24(s0) -800016ec: fd842783 lw a5,-40(s0) -800016f0: fcf744e3 blt a4,a5,800016b8 -800016f4: fec42703 lw a4,-20(s0) -800016f8: fd842783 lw a5,-40(s0) -800016fc: 04f71a63 bne a4,a5,80001750 -80001700: fe042223 sw zero,-28(s0) -80001704: 0400006f j 80001744 -80001708: 810267b7 lui a5,0x81026 -8000170c: 1fc78713 addi a4,a5,508 # 810261fc -80001710: fe442783 lw a5,-28(s0) -80001714: 00f707b3 add a5,a4,a5 -80001718: 00078023 sb zero,0(a5) -8000171c: 810297b7 lui a5,0x81029 -80001720: 00100713 li a4,1 -80001724: 2ce78223 sb a4,708(a5) # 810292c4 -80001728: 04600513 li a0,70 -8000172c: efdff0ef jal ra,80001628 -80001730: 810297b7 lui a5,0x81029 -80001734: 2c078223 sb zero,708(a5) # 810292c4 -80001738: fe442783 lw a5,-28(s0) -8000173c: 00178793 addi a5,a5,1 -80001740: fef42223 sw a5,-28(s0) -80001744: fe442703 lw a4,-28(s0) -80001748: fd842783 lw a5,-40(s0) -8000174c: faf74ee3 blt a4,a5,80001708 -80001750: fe344783 lbu a5,-29(s0) -80001754: f4079ce3 bnez a5,800016ac -80001758: 0240006f j 8000177c -8000175c: 00000013 nop -80001760: 810297b7 lui a5,0x81029 -80001764: 2c47c783 lbu a5,708(a5) # 810292c4 -80001768: 0017c793 xori a5,a5,1 -8000176c: 0ff7f793 andi a5,a5,255 -80001770: fe0798e3 bnez a5,80001760 -80001774: 06400513 li a0,100 -80001778: eb1ff0ef jal ra,80001628 -8000177c: 00000013 nop -80001780: 02c12083 lw ra,44(sp) -80001784: 02812403 lw s0,40(sp) -80001788: 03010113 addi sp,sp,48 -8000178c: 00008067 ret +8000168c: 0c079063 bnez a5,8000174c +80001690: fe0401a3 sb zero,-29(s0) +80001694: fe042623 sw zero,-20(s0) +80001698: 0a80006f j 80001740 +8000169c: fe042623 sw zero,-20(s0) +800016a0: fe042423 sw zero,-24(s0) +800016a4: 0340006f j 800016d8 +800016a8: 810267b7 lui a5,0x81026 +800016ac: 1fc78713 addi a4,a5,508 # 810261fc +800016b0: fe842783 lw a5,-24(s0) +800016b4: 00f707b3 add a5,a4,a5 +800016b8: 0007c783 lbu a5,0(a5) +800016bc: 00078863 beqz a5,800016cc +800016c0: fec42783 lw a5,-20(s0) +800016c4: 00178793 addi a5,a5,1 +800016c8: fef42623 sw a5,-20(s0) +800016cc: fe842783 lw a5,-24(s0) +800016d0: 00178793 addi a5,a5,1 +800016d4: fef42423 sw a5,-24(s0) +800016d8: fe842703 lw a4,-24(s0) +800016dc: fd842783 lw a5,-40(s0) +800016e0: fcf744e3 blt a4,a5,800016a8 +800016e4: fec42703 lw a4,-20(s0) +800016e8: fd842783 lw a5,-40(s0) +800016ec: 04f71a63 bne a4,a5,80001740 +800016f0: fe042223 sw zero,-28(s0) +800016f4: 0400006f j 80001734 +800016f8: 810267b7 lui a5,0x81026 +800016fc: 1fc78713 addi a4,a5,508 # 810261fc +80001700: fe442783 lw a5,-28(s0) +80001704: 00f707b3 add a5,a4,a5 +80001708: 00078023 sb zero,0(a5) +8000170c: 810297b7 lui a5,0x81029 +80001710: 00100713 li a4,1 +80001714: 2ce78223 sb a4,708(a5) # 810292c4 +80001718: 04600513 li a0,70 +8000171c: efdff0ef jal ra,80001618 +80001720: 810297b7 lui a5,0x81029 +80001724: 2c078223 sb zero,708(a5) # 810292c4 +80001728: fe442783 lw a5,-28(s0) +8000172c: 00178793 addi a5,a5,1 +80001730: fef42223 sw a5,-28(s0) +80001734: fe442703 lw a4,-28(s0) +80001738: fd842783 lw a5,-40(s0) +8000173c: faf74ee3 blt a4,a5,800016f8 +80001740: fe344783 lbu a5,-29(s0) +80001744: f4079ce3 bnez a5,8000169c +80001748: 0240006f j 8000176c +8000174c: 00000013 nop +80001750: 810297b7 lui a5,0x81029 +80001754: 2c47c783 lbu a5,708(a5) # 810292c4 +80001758: 0017c793 xori a5,a5,1 +8000175c: 0ff7f793 andi a5,a5,255 +80001760: fe0798e3 bnez a5,80001750 +80001764: 06400513 li a0,100 +80001768: eb1ff0ef jal ra,80001618 +8000176c: 00000013 nop +80001770: 02c12083 lw ra,44(sp) +80001774: 02812403 lw s0,40(sp) +80001778: 03010113 addi sp,sp,48 +8000177c: 00008067 ret -80001790 : -80001790: ff010113 addi sp,sp,-16 -80001794: 00812623 sw s0,12(sp) -80001798: 01010413 addi s0,sp,16 -8000179c: 00000793 li a5,0 -800017a0: 00000813 li a6,0 -800017a4: 00078513 mv a0,a5 -800017a8: 00080593 mv a1,a6 -800017ac: 00c12403 lw s0,12(sp) -800017b0: 01010113 addi sp,sp,16 -800017b4: 00008067 ret +80001780 : +80001780: ff010113 addi sp,sp,-16 +80001784: 00812623 sw s0,12(sp) +80001788: 01010413 addi s0,sp,16 +8000178c: 00000793 li a5,0 +80001790: 00000813 li a6,0 +80001794: 00078513 mv a0,a5 +80001798: 00080593 mv a1,a6 +8000179c: 00c12403 lw s0,12(sp) +800017a0: 01010113 addi sp,sp,16 +800017a4: 00008067 ret -800017b8 : -800017b8: fe010113 addi sp,sp,-32 -800017bc: 00812e23 sw s0,28(sp) -800017c0: 02010413 addi s0,sp,32 -800017c4: fe042623 sw zero,-20(s0) -800017c8: 0480006f j 80001810 -800017cc: 810267b7 lui a5,0x81026 -800017d0: fec42703 lw a4,-20(s0) -800017d4: 00271713 slli a4,a4,0x2 -800017d8: 21c78793 addi a5,a5,540 # 8102621c -800017dc: 00f707b3 add a5,a4,a5 -800017e0: 00300713 li a4,3 -800017e4: 00e7a023 sw a4,0(a5) -800017e8: 810277b7 lui a5,0x81027 -800017ec: fec42703 lw a4,-20(s0) -800017f0: 00271713 slli a4,a4,0x2 -800017f4: 21c78793 addi a5,a5,540 # 8102721c -800017f8: 00f707b3 add a5,a4,a5 -800017fc: 00200713 li a4,2 -80001800: 00e7a023 sw a4,0(a5) -80001804: fec42783 lw a5,-20(s0) -80001808: 00178793 addi a5,a5,1 -8000180c: fef42623 sw a5,-20(s0) -80001810: fec42703 lw a4,-20(s0) -80001814: 0ff00793 li a5,255 -80001818: fae7dae3 bge a5,a4,800017cc -8000181c: 00000013 nop -80001820: 01c12403 lw s0,28(sp) -80001824: 02010113 addi sp,sp,32 -80001828: 00008067 ret +800017a8 : +800017a8: fe010113 addi sp,sp,-32 +800017ac: 00812e23 sw s0,28(sp) +800017b0: 02010413 addi s0,sp,32 +800017b4: fe042623 sw zero,-20(s0) +800017b8: 0480006f j 80001800 +800017bc: 810267b7 lui a5,0x81026 +800017c0: fec42703 lw a4,-20(s0) +800017c4: 00271713 slli a4,a4,0x2 +800017c8: 21c78793 addi a5,a5,540 # 8102621c +800017cc: 00f707b3 add a5,a4,a5 +800017d0: 00300713 li a4,3 +800017d4: 00e7a023 sw a4,0(a5) +800017d8: 810277b7 lui a5,0x81027 +800017dc: fec42703 lw a4,-20(s0) +800017e0: 00271713 slli a4,a4,0x2 +800017e4: 21c78793 addi a5,a5,540 # 8102721c +800017e8: 00f707b3 add a5,a4,a5 +800017ec: 00200713 li a4,2 +800017f0: 00e7a023 sw a4,0(a5) +800017f4: fec42783 lw a5,-20(s0) +800017f8: 00178793 addi a5,a5,1 +800017fc: fef42623 sw a5,-20(s0) +80001800: fec42703 lw a4,-20(s0) +80001804: 0ff00793 li a5,255 +80001808: fae7dae3 bge a5,a4,800017bc +8000180c: 00000013 nop +80001810: 01c12403 lw s0,28(sp) +80001814: 02010113 addi sp,sp,32 +80001818: 00008067 ret -8000182c : -8000182c: fd010113 addi sp,sp,-48 -80001830: 02112623 sw ra,44(sp) -80001834: 02812423 sw s0,40(sp) -80001838: 03010413 addi s0,sp,48 -8000183c: fca42e23 sw a0,-36(s0) -80001840: 810007b7 lui a5,0x81000 -80001844: 11878513 addi a0,a5,280 # 81000118 -80001848: f8dfe0ef jal ra,800007d4 -8000184c: fe042623 sw zero,-20(s0) -80001850: 0580006f j 800018a8 -80001854: fec42783 lw a5,-20(s0) -80001858: 00078e63 beqz a5,80001874 -8000185c: fec42783 lw a5,-20(s0) -80001860: 00f7f793 andi a5,a5,15 -80001864: 00079863 bnez a5,80001874 -80001868: 810007b7 lui a5,0x81000 -8000186c: 13c78513 addi a0,a5,316 # 8100013c -80001870: f65fe0ef jal ra,800007d4 -80001874: fec42783 lw a5,-20(s0) -80001878: 00279793 slli a5,a5,0x2 -8000187c: fdc42703 lw a4,-36(s0) -80001880: 00f707b3 add a5,a4,a5 -80001884: 0007a783 lw a5,0(a5) -80001888: 00078513 mv a0,a5 -8000188c: f85fe0ef jal ra,80000810 -80001890: 810007b7 lui a5,0x81000 -80001894: 14078513 addi a0,a5,320 # 81000140 -80001898: f3dfe0ef jal ra,800007d4 -8000189c: fec42783 lw a5,-20(s0) -800018a0: 00178793 addi a5,a5,1 -800018a4: fef42623 sw a5,-20(s0) -800018a8: fec42703 lw a4,-20(s0) -800018ac: 0ff00793 li a5,255 -800018b0: fae7d2e3 bge a5,a4,80001854 -800018b4: 810007b7 lui a5,0x81000 -800018b8: 14478513 addi a0,a5,324 # 81000144 -800018bc: f19fe0ef jal ra,800007d4 -800018c0: 00000013 nop -800018c4: 02c12083 lw ra,44(sp) -800018c8: 02812403 lw s0,40(sp) -800018cc: 03010113 addi sp,sp,48 -800018d0: 00008067 ret +8000181c : +8000181c: fd010113 addi sp,sp,-48 +80001820: 02112623 sw ra,44(sp) +80001824: 02812423 sw s0,40(sp) +80001828: 03010413 addi s0,sp,48 +8000182c: fca42e23 sw a0,-36(s0) +80001830: 810007b7 lui a5,0x81000 +80001834: 11878513 addi a0,a5,280 # 81000118 +80001838: f8dfe0ef jal ra,800007c4 +8000183c: fe042623 sw zero,-20(s0) +80001840: 0580006f j 80001898 +80001844: fec42783 lw a5,-20(s0) +80001848: 00078e63 beqz a5,80001864 +8000184c: fec42783 lw a5,-20(s0) +80001850: 00f7f793 andi a5,a5,15 +80001854: 00079863 bnez a5,80001864 +80001858: 810007b7 lui a5,0x81000 +8000185c: 13c78513 addi a0,a5,316 # 8100013c +80001860: f65fe0ef jal ra,800007c4 +80001864: fec42783 lw a5,-20(s0) +80001868: 00279793 slli a5,a5,0x2 +8000186c: fdc42703 lw a4,-36(s0) +80001870: 00f707b3 add a5,a4,a5 +80001874: 0007a783 lw a5,0(a5) +80001878: 00078513 mv a0,a5 +8000187c: f85fe0ef jal ra,80000800 +80001880: 810007b7 lui a5,0x81000 +80001884: 14078513 addi a0,a5,320 # 81000140 +80001888: f3dfe0ef jal ra,800007c4 +8000188c: fec42783 lw a5,-20(s0) +80001890: 00178793 addi a5,a5,1 +80001894: fef42623 sw a5,-20(s0) +80001898: fec42703 lw a4,-20(s0) +8000189c: 0ff00793 li a5,255 +800018a0: fae7d2e3 bge a5,a4,80001844 +800018a4: 810007b7 lui a5,0x81000 +800018a8: 14478513 addi a0,a5,324 # 81000144 +800018ac: f19fe0ef jal ra,800007c4 +800018b0: 00000013 nop +800018b4: 02c12083 lw ra,44(sp) +800018b8: 02812403 lw s0,40(sp) +800018bc: 03010113 addi sp,sp,48 +800018c0: 00008067 ret -800018d4
: -800018d4: ff010113 addi sp,sp,-16 -800018d8: 00112623 sw ra,12(sp) -800018dc: 00812423 sw s0,8(sp) -800018e0: 01010413 addi s0,sp,16 -800018e4: ed5ff0ef jal ra,800017b8 -800018e8: 810267b7 lui a5,0x81026 -800018ec: 21c78513 addi a0,a5,540 # 8102621c -800018f0: f3dff0ef jal ra,8000182c -800018f4: 00000793 li a5,0 -800018f8: 00078513 mv a0,a5 -800018fc: 00c12083 lw ra,12(sp) -80001900: 00812403 lw s0,8(sp) -80001904: 01010113 addi sp,sp,16 -80001908: 00008067 ret +800018c4
: +800018c4: ff010113 addi sp,sp,-16 +800018c8: 00112623 sw ra,12(sp) +800018cc: 00812423 sw s0,8(sp) +800018d0: 01010413 addi s0,sp,16 +800018d4: ed5ff0ef jal ra,800017a8 +800018d8: 810267b7 lui a5,0x81026 +800018dc: 21c78513 addi a0,a5,540 # 8102621c +800018e0: f3dff0ef jal ra,8000181c +800018e4: 00000793 li a5,0 +800018e8: 00078513 mv a0,a5 +800018ec: 00c12083 lw ra,12(sp) +800018f0: 00812403 lw s0,8(sp) +800018f4: 01010113 addi sp,sp,16 +800018f8: 00008067 ret Disassembly of section .rodata: @@ -1732,7 +1728,7 @@ 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 @@ -1769,7 +1765,7 @@ Disassembly of section .rodata: 8100007e: 0000 unimp 81000080: 0062 c.slli zero,0x18 81000082: 0000 unimp -81000084: 00000063 beqz zero,81000084 +81000084: 00000063 beqz zero,81000084 81000088: 0064 addi s1,sp,12 8100008a: 0000 unimp 8100008c: 0065 c.nop 25 @@ -1800,7 +1796,7 @@ Disassembly of section .rodata: 810000c2: 0000 unimp 810000c4: 0062 c.slli zero,0x18 810000c6: 0000 unimp -810000c8: 00000063 beqz zero,810000c8 +810000c8: 00000063 beqz zero,810000c8 810000cc: 0064 addi s1,sp,12 810000ce: 0000 unimp 810000d0: 0065 c.nop 25 @@ -1829,7 +1825,7 @@ Disassembly of section .rodata: 81000102: 0000 unimp 81000104: 0062 c.slli zero,0x18 81000106: 0000 unimp -81000108: 00000063 beqz zero,81000108 +81000108: 00000063 beqz zero,81000108 8100010c: 0064 addi s1,sp,12 8100010e: 0000 unimp 81000110: 0065 c.nop 25 diff --git a/kernel/vortex_test.elf b/kernel/vortex_test.elf index b186b4f3..a17eedbb 100755 Binary files a/kernel/vortex_test.elf and b/kernel/vortex_test.elf differ diff --git a/kernel/vortex_test.hex b/kernel/vortex_test.hex index 5fa7a125..ac16634b 100644 --- a/kernel/vortex_test.hex +++ b/kernel/vortex_test.hex @@ -1,405 +1,404 @@ :0200000480007A -:1000000013058000731005021305400073101502DC -:10001000731040F17310103037F1FF7FEF10900B29 -:1000200073000000938B0600130D0700130F0100EF -:100030009303050013051000635C75001301018034 -:10004000130305006B500300130515006FF0DFFE6E -:100050001300000013000000130000001300000054 -:10006000130000001300000013010F00130500002F -:10007000930F0600938D030013000000130000008F -:100080001300000013000000130000001300000024 -:100090001300000013000000EBE0BF01130000009C -:1000A0001300000013000000130000001300000004 -:1000B00013000000170500001305451B6B400500E9 -:1000C00017030000130343F66B0003006780000072 -:1000D000170200011302022423200200232212002F -:1000E000232422002326320023284200232A520000 -:1000F000232C6200232E72002320820223229202EC -:100100002324A2022326B2022328C202232AD202D7 -:10011000232CE202232EF2022320020523221205C1 -:10012000232422052326320523284205232A5205AB -:10013000232C6205232E7205232082072322920797 -:100140002324A2072326B2072328C207232AD20783 -:10015000232CE207232EF207130210006780000011 -:10016000170200011302021B032002008320420039 -:10017000032182008321C200032202018322420163 -:10018000032382018323C201032402028324420247 -:10019000032582028325C20203260203832642032B -:1001A000032782038327C20303280204832842040F -:1001B000032982048329C204032A0205832A4205F3 -:1001C000032B8205832BC205032C0206832C4206D7 -:1001D000032D8206832DC206032E0207832E4207BB -:1001E000032F8207832FC2071302000067800000DD -:1001F00073250002678000007325100267800000ED -:10020000130101FE232E1100232C8100130401028F -:10021000232604FE6F0040030327C4FEB717000027 -:10022000938747973307F702B70700819387074102 -:10023000B307F70013850700EF0000448327C4FECF -:10024000938717002326F4FE0327C4FE9307F001CB -:10025000E3D4E7FC130000008320C10103248101E3 -:100260001301010267800000130101FD2326110222 -:10027000232481022322A10313040103130000009D -:1002800013070D00B7170000938747973307F7024E -:10029000B707008193870741B307F700138507006D -:1002A000EF00405093070500638A070213070D0013 -:1002B000B70700811317270093878726B307F70036 -:1002C0001307100023A0E70093070D0063960700B3 -:1002D000EFF01FE96F00C0057300000013070D0069 -:1002E000B7170000938747973307F702B7070081D6 -:1002F00093870741B307F700130784FD93050700B1 -:1003000013850700EF000040832704FE13810700D8 -:100310008327C4FD832584FD032644FE832684FEB3 -:100320000327C4FE13850700EFF0DFCF7300000042 -:100330008320C10203248102032D41021301010322 -:1003400067800000130101FB23261104232481048C -:1003500013040105EFF0DFE92324A4FE9309010053 -:10036000930710002326F4FE6F00C0080327C4FE85 -:10037000B7170000938747973307F702B707008145 -:1003800093870741B307F70013850700EF0080410B -:1003900093070500639A07040327C4FEB7170000FC -:1003A000938747973307F702B70700819387074181 -:1003B000B307F700130704FD930507001385070033 -:1003C000EF004034832784FD13810700832744FD19 -:1003D000832504FD0326C4FD832604FE032744FE73 -:1003E00013850700EFF0DFCD8327C4FE9387170046 -:1003F0002326F4FE8327C4FE032784FEE3E8E7F602 -:1004000013810900EFF0DFCC930702006388070433 -:10041000B707008113850741EF00C0389307050037 -:10042000639E0702930784FB93850700B70700814B -:1004300013850741EF00002D832704FC138107007B -:100440008327C4FB832584FB032644FC832684FC8A -:100450000327C4FC13850700EFF0DFBC1300000086 -:100460008320C10403248104130101056780000077 -:10047000130101FB23261104232481041304010525 -:10048000232EA4FA232CB4FA232AC4FA2328D4FA5C -:10049000EFF01FD7EFF0DFD52322A4FE13090100F0 -:1004A000232604FE232404FE6F000009B709FFFF82 -:1004B00033013101832784FE2326F4FC832784FB48 -:1004C0002328F4FC93070100232AF4FC832744FB30 -:1004D000232CF4FC832704FB232EF4FC8327C4FE87 -:1004E0002320F4FE0327C4FEB71700009387479725 -:1004F0003307F702B707008193870741B307F70077 -:100500001307C4FC9305070013850700EF000019CB -:100510008327C4FE938717002326F4FE8327C4FE97 -:10052000032744FE63E4E700232604FE832784FEBA -:10053000938717002324F4FE032784FE8327C4FB3C -:10054000E366F7F613010900EFF0DFDF13000000A8 -:100550008320C10403248104130101056780000086 -:10056000130101FD23261102232481021304010338 -:10057000232EA4FC8325C4FDB7070081138507043F -:10058000EF004035EFF0DFC62320A4FE232604FE53 -:100590006F008006930710002326F4FE232404FE38 -:1005A0006F00C003B7070081032784FE13172700DD -:1005B00093878726B307F70003A707009307100068 -:1005C0006318F7008327C4FE938717002326F4FEE1 -:1005D000832784FE938717002324F4FE032784FED9 -:1005E0009307F001E3D0E7FC8325C4FEB707008141 -:1005F0001385C704EF00002E0327C4FE8327C4FD24 -:10060000E36AF7F8232204FE6F008002B707008137 -:10061000032744FE1317270093878726B307F700A5 -:1006200023A00700832744FE938717002322F4FEAC -:10063000832744FE032704FEE3EAE7FC13000000DF -:100640008320C1020324810213010103678000009B -:10065000130101FF232681002324710113040101EA -:1006600093870B00138507000324C100832B8100AF -:1006700013010101678000009302050013030000CD -:100680009303700023A0620023A2620023A46200EF -:1006900023A6720023A86200678000009302050071 -:1006A00003A382001303130023A4620013834201F7 -:1006B00083AE420093935E003303730003AE0500E4 -:1006C0002320C30103AE45002322C30103AE8500EE -:1006D0002324C30103AEC5002326C30103AE0501D5 -:1006E0002328C30103AE4501232AC301938E1E00B4 -:1006F000130F20036394EE01930E000023A2D20196 -:10070000678000009302050003A38200130000002D -:10071000130000001300000013000000130000008D -:10072000130000001303F3FF23A4620013834201AC -:1007300083AE0200930F2003138F0E00130F1F00D0 -:100740006314FF01130F000023A0E20193935E00E6 -:1007500033037300032E030023A0C501032E4300BF -:1007600023A2C501032E830023A4C501032EC300C9 -:1007700023A6C501032E030123A8C501032E4301AF -:1007800023AAC501678000009302050003A382002D -:1007900013050000130E200363146E0013051500EB -:1007A000678000009302050003A382001305000088 -:1007B000130E000063146E0013051500678000001F -:1007C0009302050003A3C20083A3020133B56300B3 -:1007D00067800000130141FF232011002322B10094 -:1007E0008345050063880500EF00C001130515006F -:1007F0006FF01FFF83200100832541001301C1001A -:1008000067800000B708010023A0B80067800000DF -:10081000130101FD23261102232481021304010385 -:10082000232EA4FC0327C4FD9307F00063E4E70232 -:10083000B70700810327C4FD131727009387871A82 -:10084000B307F70083A7070013850700EFF09FF8B1 -:100850006F004007930700022326F4FEA30504FE61 -:100860008327C4FE9387C7FF0327C4FDB357F70050 -:1008700093F7F7002322F4FE832744FE63860700E4 -:1008800093071000A305F4FE8347B4FE63820702BA -:10089000B7070081032744FE131727009387871AA1 -:1008A000B307F70083A7070013850700EFF09FF257 -:1008B0008327C4FE9387C7FF2326F4FE8327C4FE45 -:1008C000E340F0FA8320C1020324810213010103F3 -:1008D00067800000130101FE232E1100232C8100EC -:1008E000130401022326A4FE2324B4FE0325C4FE20 -:1008F000EFF05FEE032584FEEFF09FF1B707008174 -:1009000013854709EFF01FED130000008320C1019C -:10091000032481011301010267800000130101FD1E -:10092000232611022324810213040103232EA4FC95 -:10093000232CB4FC232AC4FC2328D4FCB7670281EF -:100940000327C4FD23ACE71AB76702819387871B8F -:10095000032784FD23A2E700B76702819387871BE3 -:10096000032744FD23A4E700B76702819387871B11 -:10097000032704FD23A6E700EFF01F882324A4FE2D -:10098000032704FD832784FEB357F7022326F4FED2 -:10099000032704FD832784FEB377F70263880700EB -:1009A0008327C4FE938717002326F4FEB7670281CE -:1009B0009387871B0327C4FE23A8E700032704FDB2 -:1009C000832784FE6362F702B76702819386871BE1 -:1009D000B7170080138607A4832584FE032504FD32 -:1009E000EFF01FA96F000002B76702819386871B93 -:1009F000B7170080138607A4832504FD032504FD93 -:100A0000EFF01FA7EFF0CFFE2322A4FE032704FD83 -:100A1000832744FE63F8E700032544FEEFF05FB44C -:100A20006F00C000032504FDEFF09FB3130000002A -:100A30008320C102032481021301010367800000A7 -:100A4000130101FA232E1104232C8104130401063F -:100A50002326A4FA2324B4FAEFF09FBF232CA4FC8E -:100A6000832784FD83A70700232AF4FC832784FDC2 -:100A700083A747002328F4FC832784FD83A78700EE -:100A80002326F4FC832784FD83A707012326F4FE95 -:100A90000327C4FE8327C4FAB307F7022324F4FE16 -:100AA0008327C4FE639A0700930710002326F4FEF1 -:100AB0008327C4FA2324F4FE832784FD83A7C70079 -:100AC0002324F4FC232204FE6F00800D232004FE67 -:100AD000232E04FC6F008007032784FA832784FCFD -:100AE000B307F7020327C4FDB307F7002322F4FC82 -:100AF000032784FC8327C4FDB307F702032784FE82 -:100B0000B307F7002320F4FC832744FC93972700C6 -:100B1000032744FDB307F70003A70700832704FC5E -:100B200093972700832604FDB387F60083A7070069 -:100B3000B307F702032704FEB307F7002320F4FEF0 -:100B40008327C4FD93871700232EF4FC0327C4FDDD -:100B5000832784FCE362F7F8032784FA832784FC65 -:100B60003307F702832784FEB307F700232EF4FA36 -:100B70008327C4FB939727000327C4FCB307F70020 -:100B8000032704FE23A0E700832784FE9387170032 -:100B90002324F4FE832744FE938717002322F4FEC8 -:100BA000832744FE0327C4FEE3E2E7F213000000BC -:100BB0008320C1050324810513010106678000001D -:100BC000130101FC232E1102232C810213040104C2 -:100BD000232EA4FC232CB4FC232AC4FC2328D4FCFD -:100BE0002326E4FCB76702810327C4FD23A6E71C84 -:100BF000B76702819387C71C032784FD23A2E70000 -:100C0000B76702819387C71C032744FD23A4E7002D -:100C1000B76702819387C71C0327C4FC23A6E7009C -:100C2000B76702819387C71C032704FD23A8E70049 -:100C3000EFF08FDC2324A4FE0327C4FC832784FE6B -:100C4000B357F7022326F4FE0327C4FC832784FE50 -:100C5000B377F702638807008327C4FE93871700E2 -:100C60002326F4FEB76702819387C71C0327C4FEBF -:100C700023AAE7000327C4FC832784FE6362F702EC -:100C8000B76702819386C71CB7170080138687CF8A -:100C9000832584FE032504FDEFF08FFD6F00000225 -:100CA000B76702819386C71CB7170080138687CF6A -:100CB0008325C4FC032504FDEFF08FFBEFF04FD339 -:100CC0002322A4FE032704FD832744FE63F8E700E4 -:100CD000032544FEEFF0DF886F00C000032504FD0C -:100CE000EFF01F88130000008320C1030324810359 -:100CF0001301010467800000130101FB2326110486 -:100D00002324810413040105232EA4FA232CB4FA0E -:100D1000EFF01F942320A4FE832704FE83A707007F -:100D2000232EF4FC832704FE83A74700232CF4FC26 -:100D3000832704FE83A78700232AF4FC832704FE6D -:100D400083A747012326F4FE0327C4FE8327C4FBA1 -:100D5000B307F7022324F4FE8327C4FE639A070037 -:100D6000930710002326F4FE8327C4FB2324F4FEFC -:100D7000832704FE83A7C7002328F4FC232204FE54 -:100D80006F00000C032784FB832704FD3307F70261 -:100D9000832784FEB307F7002326F4FC032784FE91 -:100DA000832704FDB337F70093F7F70F2324F4FCF0 -:100DB000832784FC93B71700A303F4FC834774FCD8 -:100DC000138F0700B7170080938FC7E26B200F00C7 -:100DD0007B70FF018327C4FC939727000327C4FD82 -:100DE000B307F70083A607008327C4FC9397270067 -:100DF000032784FDB307F70003A707008327C4FC7C -:100E000093972700032644FDB307F6003387E600D7 -:100E100023A0E700832784FE938717002324F4FE92 -:100E2000B7170080138E07E367000E001300000061 -:100E30006B300000832744FE938717002322F4FEC3 -:100E4000832744FE0327C4FEE3EEE7F2130000000D -:100E50008320C1040324810413010105678000007D -:100E6000130101FC232E1102232C8102130401041F -:100E7000232EA4FC232CB4FC232AC4FC2328D4FC5A -:100E80002326E4FCB76702810327C4FD23A6E71CE1 -:100E9000B76702819387C71C032784FD23A2E7005D -:100EA000B76702819387C71C032744FD23A4E7008B -:100EB000B76702819387C71C0327C4FC23A6E700FA -:100EC000B76702819387C71C032704FD23A8E700A7 -:100ED000EFF08FB22324A4FE0327C4FC832784FEF3 -:100EE000B357F7022326F4FE0327C4FC832784FEAE -:100EF000B377F702638807008327C4FE9387170040 -:100F00002326F4FEB76702819387C71C0327C4FE1C -:100F100023AAE7000327C4FC832784FE6362F70249 -:100F2000B76702819386C71CB7170080138687F9BD -:100F3000832584FE032504FDEFF08FD36F000002AC -:100F4000B76702819386C71CB7170080138687F99D -:100F50008325C4FC032504FDEFF08FD1EFF04FA9EA -:100F60002322A4FE032704FD832744FE63F8E70041 -:100F7000032544FEEFF0CFDE6F00C000032504FD23 -:100F8000EFF00FDE130000008320C1030324810370 -:100F90001301010467800000130101FB23261104E3 -:100FA0002324810413040105232EA4FA232CB4FA6C -:100FB000EFF00FEA2320A4FE832704FE83A7070097 -:100FC000232EF4FC832704FE83A74700232CF4FC84 -:100FD000832704FE83A78700232AF4FC832704FECB -:100FE00083A747012326F4FE0327C4FE8327C4FBFF -:100FF000B307F7022324F4FE8327C4FE639A070095 -:10100000930710002326F4FE8327C4FB2324F4FE59 -:10101000832704FE83A7C7002328F4FC232204FEB1 -:101020006F00000C032784FB832704FD3307F702BE -:10103000832784FEB307F7002326F4FC032784FEEE -:10104000832704FDB337F70093F7F70F2324F4FC4D -:10105000832784FC93B71700A303F4FC834774FC35 -:10106000138F0700B7170080938FC70C6B200F00FA -:101070007B70FF018327C4FC939727000327C4FDDF -:10108000B307F70083A607008327C4FC93972700C4 -:10109000032784FDB307F70003A707008327C4FCD9 -:1010A00093972700032644FDB307F6003387E640F5 -:1010B00023A0E700832784FE938717002324F4FEF0 -:1010C000B7170080138E070D67000E001300000095 -:1010D0006B300000832744FE938717002322F4FE21 -:1010E000832744FE0327C4FEE3EEE7F2130000006B -:1010F0008320C104032481041301010567800000DB -:10110000130101FC232E1102232C8102130401047C -:10111000232EA4FC232CB4FC232AC4FC2328D4FCB7 -:101120002326E4FCB76702810327C4FD23A2E71E40 -:10113000B76702819387471E032784FD23A2E70038 -:10114000B76702819387471E032744FD23A4E70066 -:10115000B76702819387471E0327C4FC23A6E700D5 -:10116000B76702819387471E032704FD23A8E70082 -:10117000EFF08F882324A4FE0327C4FC832784FE7A -:10118000B357F7022326F4FE0327C4FC832784FE0B -:10119000B377F702638807008327C4FE938717009D -:1011A0002326F4FEB76702819387471E0327C4FEF8 -:1011B00023AAE7000327C4FC832784FE6362F702A7 -:1011C000B76702819386471EB7170080138687236F -:1011D000832584FE032504FDEFF08FA96F00000234 -:1011E000B76702819386471EB7170080138687234F -:1011F0008325C4FC032504FDEFF08FA7EFE05FFF1C -:101200002322A4FE032704FD832744FE63F8E7009E -:10121000032544FEEFF0CFB46F00C000032504FDAA -:10122000EFF00FB4130000008320C10303248103F7 -:101230001301010467800000130101FB2326110440 -:101240002324810413040105232EA4FA232CB4FAC9 -:10125000EFF00FC02320A4FE832704FE83A707001E -:10126000232EF4FC832704FE83A7470083A70700EF -:10127000232CF4FC832704FE83A78700232AF4FC95 -:10128000832704FE83A747012326F4FE0327C4FE19 -:101290008327C4FBB307F7022324F4FE8327C4FE8D -:1012A000639A0700930710002326F4FE8327C4FBEC -:1012B0002324F4FE832704FE83A7C7002328F4FC1D -:1012C000232204FE6F00000B032784FB832704FD09 -:1012D0003307F702832784FEB307F7002326F4FCC5 -:1012E000032784FE832704FDB337F70093F7F70F36 -:1012F0002324F4FC832784FC93B71700A303F4FC96 -:10130000834774FC138F0700B7170080938F07364D -:101310006B200F007B70FF018327C4FC939727008D -:101320000327C4FDB307F70083A607008327C4FC87 -:1013300093972700032744FDB307F700032784FD95 -:101340003387E60023A0E700832784FE93871700F6 -:101350002324F4FEB7170080138E473667000E0073 -:10136000130000006B300000832744FE93871700B2 -:101370002322F4FE832744FE0327C4FEE3E6E7F4BA -:10138000130000008320C10403248104130101051C -:1013900067800000130101FC232E1102232C81021F -:1013A00013040104232EA4FC232CB4FC232AC4FC24 -:1013B0002328D4FC2326E4FCB76702810327C4FD5D -:1013C00023A2E71EB76702819387471E032784FD88 -:1013D00023A2E700B76702819387471E032744FDD6 -:1013E00023A4E700B76702819387471E0327C4FC45 -:1013F00023A6E700B76702819387471E032704FDF2 -:1014000023A8E700EFE05FDF2324A4FE0327C4FC4A -:10141000832784FEB357F7022326F4FE0327C4FC78 -:10142000832784FEB377F702638807008327C4FE0F -:10143000938717002326F4FEB76702819387471E20 -:101440000327C4FE23AAE7000327C4FC832784FEE6 -:101450006362F702B76702819386471EB717008061 -:101460001386C74C832584FE032504FDEFF04F80CF -:101470006F000002B76702819386471EB71700808E -:101480001386C74C8325C4FC032504FDEFE05FFEF3 -:10149000EFE01FD62322A4FE032704FD832744FE8A -:1014A00063F8E700032544FEEFF08F8B6F00C00068 -:1014B000032504FDEFF0CF8A130000008320C10351 -:1014C000032481031301010467800000130101FB61 -:1014D000232611042324810413040105232EA4FAD6 -:1014E000232CB4FAEFF0CF962320A4FE832704FE2A -:1014F00083A70700232EF4FC832704FE83A747005D -:1015000083A70700232CF4FC832704FE83A787000E -:10151000232AF4FC832704FE83A747012326F4FE35 -:101520000327C4FE8327C4FBB307F7022324F4FE7A -:101530008327C4FE639A0700930710002326F4FE56 -:101540008327C4FB2324F4FE832704FE83A7C7005C -:101550002328F4FC232204FE6F00000B032784FBE6 -:10156000832704FD3307F702832784FEB307F700C0 -:101570002326F4FC032784FE832704FDB337F700FA -:1015800093F7F70F2324F4FC832784FC93B7170009 -:10159000A303F4FC834774FC138F0700B717008084 -:1015A000938F475F6B200F007B70FF018327C4FC84 -:1015B000939727000327C4FDB307F70083A607000E -:1015C0008327C4FC93972700032744FDB307F70044 -:1015D000032784FD3387E60223A0E700832784FEE8 -:1015E000938717002324F4FEB7170080138E875FBC -:1015F00067000E00130000006B300000832744FEDC -:10160000938717002322F4FE832744FE0327C4FE9A -:10161000E3E6E7F4130000008320C10403248104FF -:101620001301010567800000130101FD23268102DB -:1016300013040103232EA4FC232604FE6F000001E3 -:101640008327C4FE938717002326F4FE0327C4FED6 -:101650008327C4FDE346F7FE130000000324C10204 -:101660001301010367800000130101FD232611020D -:101670002324810213040103232EA4FC232CB4FC95 -:10168000B76702811387C71F8327C4FDB307F7001D -:10169000130710002380E7008327C4FD6390070C25 -:1016A000A30104FE232604FE6F00800A232604FE05 -:1016B000232404FE6F004003B76702811387C71F0E -:1016C000832784FEB307F70083C7070063880700FA -:1016D0008327C4FE938717002326F4FE832784FE06 -:1016E000938717002324F4FE032784FE832784FDB9 -:1016F000E344F7FC0327C4FE832784FD631AF70441 -:10170000232204FE6F000004B76702811387C71FFE -:10171000832744FEB307F70023800700B7970281B1 -:10172000130710002382E72C13056004EFF0DFEFAE -:10173000B79702812382072C832744FE93871700E3 -:101740002322F4FE032744FE832784FDE34EF7FAA9 -:10175000834734FEE39C07F46F004002130000004F -:10176000B797028183C7472C93C7170093F7F70FEA -:10177000E39807FE13054006EFF01FEB130000008F -:101780008320C1020324810213010103678000004A -:10179000130101FF232681001304010193070000B8 -:1017A0001308000013850700930508000324C100F7 -:1017B0001301010167800000130101FE232E810047 -:1017C00013040102232604FE6F008004B767028120 -:1017D0000327C4FE131727009387C721B307F70019 -:1017E0001307300023A0E700B77702810327C4FE68 -:1017F000131727009387C721B307F70013072000AB -:1018000023A0E7008327C4FE938717002326F4FE56 -:101810000327C4FE9307F00FE3DAE7FA1300000092 -:101820000324C1011301010267800000130101FDBF -:10183000232611022324810213040103232EA4FC76 -:10184000B707008113858711EFE0DFF8232604FE38 -:101850006F0080058327C4FE638E07008327C4FEC4 -:1018600093F7F70063980700B70700811385C71344 -:10187000EFE05FF68327C4FE939727000327C4FD9C -:10188000B307F70083A7070013850700EFE05FF8B1 -:10189000B707008113850714EFE0DFF38327C4FE49 -:1018A000938717002326F4FE0327C4FE9307F00F47 -:1018B000E3D2E7FAB707008113854714EFE09FF101 -:1018C000130000008320C1020324810213010103DD -:1018D00067800000130101FF2326110023248100EB -:1018E00013040101EFF05FEDB76702811385C72193 -:1018F000EFF0DFF393070000138507008320C1009A -:0C19000003248100130101016780000036 +:10000000130540006B000500F32500027326100263 +:1000100073000000938B0600130D0700130F0100FF +:100020009303050013051000635C75001301018044 +:10003000130305006B500300130515006FF0DFFE7E +:100040001300000013000000130000001300000064 +:10005000130000001300000013010F00130500003F +:10006000930F0600938D030013000000130000009F +:100070001300000013000000130000001300000034 +:100080001300000013000000EBE0BF0113000000AC +:100090001300000013000000130000001300000014 +:1000A00013000000170500001305451B6B400500F9 +:1000B00017030000130343F66B0003006780000082 +:1000C000170200011302022523200200232212003E +:1000D000232422002326320023284200232A520010 +:1000E000232C6200232E72002320820223229202FC +:1000F0002324A2022326B2022328C202232AD202E8 +:10010000232CE202232EF2022320020523221205D1 +:10011000232422052326320523284205232A5205BB +:10012000232C6205232E72052320820723229207A7 +:100130002324A2072326B2072328C207232AD20793 +:10014000232CE207232EF207130210006780000021 +:10015000170200011302021C032002008320420048 +:10016000032182008321C200032202018322420173 +:10017000032382018323C201032402028324420257 +:10018000032582028325C20203260203832642033B +:10019000032782038327C20303280204832842041F +:1001A000032982048329C204032A0205832A420503 +:1001B000032B8205832BC205032C0206832C4206E7 +:1001C000032D8206832DC206032E0207832E4207CB +:1001D000032F8207832FC2071302000067800000ED +:1001E00073250002678000007325100267800000FD +:1001F000130101FE232E1100232C810013040102A0 +:10020000232604FE6F0040030327C4FEB717000037 +:10021000938747973307F702B70700819387074112 +:10022000B307F70013850700EF0000448327C4FEDF +:10023000938717002326F4FE0327C4FE9307F001DB +:10024000E3D4E7FC130000008320C10103248101F3 +:100250001301010267800000130101FD2326110232 +:10026000232481022322A1031304010313000000AD +:1002700013070D00B7170000938747973307F7025E +:10028000B707008193870741B307F700138507007D +:10029000EF00405093070500638A070213070D0023 +:1002A000B70700811317270093878726B307F70046 +:1002B0001307100023A0E70093070D0063960700C3 +:1002C000EFF01FE96F00C0057300000013070D0079 +:1002D000B7170000938747973307F702B7070081E6 +:1002E00093870741B307F700130784FD93050700C1 +:1002F00013850700EF000040832704FE13810700E9 +:100300008327C4FD832584FD032644FE832684FEC3 +:100310000327C4FE13850700EFF0DFCF7300000052 +:100320008320C10203248102032D41021301010332 +:1003300067800000130101FB23261104232481049C +:1003400013040105EFF0DFE92324A4FE9309010063 +:10035000930710002326F4FE6F00C0080327C4FE95 +:10036000B7170000938747973307F702B707008155 +:1003700093870741B307F70013850700EF0080411B +:1003800093070500639A07040327C4FEB71700000C +:10039000938747973307F702B70700819387074191 +:1003A000B307F700130704FD930507001385070043 +:1003B000EF004034832784FD13810700832744FD29 +:1003C000832504FD0326C4FD832604FE032744FE83 +:1003D00013850700EFF0DFCD8327C4FE9387170056 +:1003E0002326F4FE8327C4FE032784FEE3E8E7F612 +:1003F00013810900EFF0DFCC930702006388070444 +:10040000B707008113850741EF00C0389307050047 +:10041000639E0702930784FB93850700B70700815B +:1004200013850741EF00002D832704FC138107008B +:100430008327C4FB832584FB032644FC832684FC9A +:100440000327C4FC13850700EFF0DFBC1300000096 +:100450008320C10403248104130101056780000087 +:10046000130101FB23261104232481041304010535 +:10047000232EA4FA232CB4FA232AC4FA2328D4FA6C +:10048000EFF01FD7EFF0DFD52322A4FE1309010000 +:10049000232604FE232404FE6F000009B709FFFF92 +:1004A00033013101832784FE2326F4FC832784FB58 +:1004B0002328F4FC93070100232AF4FC832744FB40 +:1004C000232CF4FC832704FB232EF4FC8327C4FE97 +:1004D0002320F4FE0327C4FEB71700009387479735 +:1004E0003307F702B707008193870741B307F70087 +:1004F0001307C4FC9305070013850700EF000019DC +:100500008327C4FE938717002326F4FE8327C4FEA7 +:10051000032744FE63E4E700232604FE832784FECA +:10052000938717002324F4FE032784FE8327C4FB4C +:10053000E366F7F613010900EFF0DFDF13000000B8 +:100540008320C10403248104130101056780000096 +:10055000130101FD23261102232481021304010348 +:10056000232EA4FC8325C4FDB7070081138507044F +:10057000EF004035EFF0DFC62320A4FE232604FE63 +:100580006F008006930710002326F4FE232404FE48 +:100590006F00C003B7070081032784FE13172700ED +:1005A00093878726B307F70003A707009307100078 +:1005B0006318F7008327C4FE938717002326F4FEF1 +:1005C000832784FE938717002324F4FE032784FEE9 +:1005D0009307F001E3D0E7FC8325C4FEB707008151 +:1005E0001385C704EF00002E0327C4FE8327C4FD34 +:1005F000E36AF7F8232204FE6F008002B707008148 +:10060000032744FE1317270093878726B307F700B5 +:1006100023A00700832744FE938717002322F4FEBC +:10062000832744FE032704FEE3EAE7FC13000000EF +:100630008320C102032481021301010367800000AB +:10064000130101FF232681002324710113040101FA +:1006500093870B00138507000324C100832B8100BF +:1006600013010101678000009302050013030000DD +:100670009303700023A0620023A2620023A46200FF +:1006800023A6720023A86200678000009302050081 +:1006900003A382001303130023A462001383420107 +:1006A00083AE420093935E003303730003AE0500F4 +:1006B0002320C30103AE45002322C30103AE8500FE +:1006C0002324C30103AEC5002326C30103AE0501E5 +:1006D0002328C30103AE4501232AC301938E1E00C4 +:1006E000130F20036394EE01930E000023A2D201A6 +:1006F000678000009302050003A38200130000003E +:10070000130000001300000013000000130000009D +:10071000130000001303F3FF23A4620013834201BC +:1007200083AE0200930F2003138F0E00130F1F00E0 +:100730006314FF01130F000023A0E20193935E00F6 +:1007400033037300032E030023A0C501032E4300CF +:1007500023A2C501032E830023A4C501032EC300D9 +:1007600023A6C501032E030123A8C501032E4301BF +:1007700023AAC501678000009302050003A382003D +:1007800013050000130E200363146E0013051500FB +:10079000678000009302050003A382001305000098 +:1007A000130E000063146E0013051500678000002F +:1007B0009302050003A3C20083A3020133B56300C3 +:1007C00067800000130141FF232011002322B100A4 +:1007D0008345050063880500EF00C001130515007F +:1007E0006FF01FFF83200100832541001301C1002A +:1007F00067800000B708010023A0B80067800000F0 +:10080000130101FD23261102232481021304010395 +:10081000232EA4FC0327C4FD9307F00063E4E70242 +:10082000B70700810327C4FD131727009387871A92 +:10083000B307F70083A7070013850700EFF09FF8C1 +:100840006F004007930700022326F4FEA30504FE71 +:100850008327C4FE9387C7FF0327C4FDB357F70060 +:1008600093F7F7002322F4FE832744FE63860700F4 +:1008700093071000A305F4FE8347B4FE63820702CA +:10088000B7070081032744FE131727009387871AB1 +:10089000B307F70083A7070013850700EFF09FF267 +:1008A0008327C4FE9387C7FF2326F4FE8327C4FE55 +:1008B000E340F0FA8320C102032481021301010303 +:1008C00067800000130101FE232E1100232C8100FC +:1008D000130401022326A4FE2324B4FE0325C4FE30 +:1008E000EFF05FEE032584FEEFF09FF1B707008184 +:1008F00013854709EFF01FED130000008320C101AD +:10090000032481011301010267800000130101FD2E +:10091000232611022324810213040103232EA4FCA5 +:10092000232CB4FC232AC4FC2328D4FCB7670281FF +:100930000327C4FD23ACE71AB76702819387871B9F +:10094000032784FD23A2E700B76702819387871BF3 +:10095000032744FD23A4E700B76702819387871B21 +:10096000032704FD23A6E700EFF01F882324A4FE3D +:10097000032704FD832784FEB357F7022326F4FEE2 +:10098000032704FD832784FEB377F70263880700FB +:100990008327C4FE938717002326F4FEB7670281DE +:1009A0009387871B0327C4FE23A8E700032704FDC2 +:1009B000832784FE6362F702B76702819386871BF1 +:1009C000B7170080138607A3832584FE032504FD43 +:1009D000EFF01FA96F000002B76702819386871BA3 +:1009E000B7170080138607A3832504FD032504FDA4 +:1009F000EFF01FA7EFF0CFFE2322A4FE032704FD94 +:100A0000832744FE63F8E700032544FEEFF05FB45C +:100A10006F00C000032504FDEFF09FB3130000003A +:100A20008320C102032481021301010367800000B7 +:100A3000130101FA232E1104232C8104130401064F +:100A40002326A4FA2324B4FAEFF09FBF232CA4FC9E +:100A5000832784FD83A70700232AF4FC832784FDD2 +:100A600083A747002328F4FC832784FD83A78700FE +:100A70002326F4FC832784FD83A707012326F4FEA5 +:100A80000327C4FE8327C4FAB307F7022324F4FE26 +:100A90008327C4FE639A0700930710002326F4FE01 +:100AA0008327C4FA2324F4FE832784FD83A7C70089 +:100AB0002324F4FC232204FE6F00800D232004FE77 +:100AC000232E04FC6F008007032784FA832784FC0D +:100AD000B307F7020327C4FDB307F7002322F4FC92 +:100AE000032784FC8327C4FDB307F702032784FE92 +:100AF000B307F7002320F4FC832744FC93972700D7 +:100B0000032744FDB307F70003A70700832704FC6E +:100B100093972700832604FDB387F60083A7070079 +:100B2000B307F702032704FEB307F7002320F4FE00 +:100B30008327C4FD93871700232EF4FC0327C4FDED +:100B4000832784FCE362F7F8032784FA832784FC75 +:100B50003307F702832784FEB307F700232EF4FA46 +:100B60008327C4FB939727000327C4FCB307F70030 +:100B7000032704FE23A0E700832784FE9387170042 +:100B80002324F4FE832744FE938717002322F4FED8 +:100B9000832744FE0327C4FEE3E2E7F213000000CC +:100BA0008320C1050324810513010106678000002D +:100BB000130101FC232E1102232C810213040104D2 +:100BC000232EA4FC232CB4FC232AC4FC2328D4FC0D +:100BD0002326E4FCB76702810327C4FD23A6E71C94 +:100BE000B76702819387C71C032784FD23A2E70010 +:100BF000B76702819387C71C032744FD23A4E7003E +:100C0000B76702819387C71C0327C4FC23A6E700AC +:100C1000B76702819387C71C032704FD23A8E70059 +:100C2000EFF08FDC2324A4FE0327C4FC832784FE7B +:100C3000B357F7022326F4FE0327C4FC832784FE60 +:100C4000B377F702638807008327C4FE93871700F2 +:100C50002326F4FEB76702819387C71C0327C4FECF +:100C600023AAE7000327C4FC832784FE6362F702FC +:100C7000B76702819386C71CB7170080138687CE9B +:100C8000832584FE032504FDEFF08FFD6F00000235 +:100C9000B76702819386C71CB7170080138687CE7B +:100CA0008325C4FC032504FDEFF08FFBEFF04FD349 +:100CB0002322A4FE032704FD832744FE63F8E700F4 +:100CC000032544FEEFF0DF886F00C000032504FD1C +:100CD000EFF01F88130000008320C1030324810369 +:100CE0001301010467800000130101FB2326110496 +:100CF0002324810413040105232EA4FA232CB4FA1F +:100D0000EFF01F942320A4FE832704FE83A707008F +:100D1000232EF4FC832704FE83A74700232CF4FC36 +:100D2000832704FE83A78700232AF4FC832704FE7D +:100D300083A747012326F4FE0327C4FE8327C4FBB1 +:100D4000B307F7022324F4FE8327C4FE639A070047 +:100D5000930710002326F4FE8327C4FB2324F4FE0C +:100D6000832704FE83A7C7002328F4FC232204FE64 +:100D70006F00000C032784FB832704FD3307F70271 +:100D8000832784FEB307F7002326F4FC032784FEA1 +:100D9000832704FDB337F70093F7F70F2324F4FC00 +:100DA000832784FC93B71700A303F4FC834774FCE8 +:100DB000138F0700B7170080938FC7E16B200F00D8 +:100DC0007B70FF018327C4FC939727000327C4FD92 +:100DD000B307F70083A607008327C4FC9397270077 +:100DE000032784FDB307F70003A707008327C4FC8C +:100DF00093972700032644FDB307F6003387E600E8 +:100E000023A0E700832784FE938717002324F4FEA2 +:100E1000B7170080138E07E267000E001300000072 +:100E20006B300000832744FE938717002322F4FED3 +:100E3000832744FE0327C4FEE3EEE7F2130000001D +:100E40008320C1040324810413010105678000008D +:100E5000130101FC232E1102232C8102130401042F +:100E6000232EA4FC232CB4FC232AC4FC2328D4FC6A +:100E70002326E4FCB76702810327C4FD23A6E71CF1 +:100E8000B76702819387C71C032784FD23A2E7006D +:100E9000B76702819387C71C032744FD23A4E7009B +:100EA000B76702819387C71C0327C4FC23A6E7000A +:100EB000B76702819387C71C032704FD23A8E700B7 +:100EC000EFF08FB22324A4FE0327C4FC832784FE03 +:100ED000B357F7022326F4FE0327C4FC832784FEBE +:100EE000B377F702638807008327C4FE9387170050 +:100EF0002326F4FEB76702819387C71C0327C4FE2D +:100F000023AAE7000327C4FC832784FE6362F70259 +:100F1000B76702819386C71CB7170080138687F8CE +:100F2000832584FE032504FDEFF08FD36F000002BC +:100F3000B76702819386C71CB7170080138687F8AE +:100F40008325C4FC032504FDEFF08FD1EFF04FA9FA +:100F50002322A4FE032704FD832744FE63F8E70051 +:100F6000032544FEEFF0CFDE6F00C000032504FD33 +:100F7000EFF00FDE130000008320C1030324810380 +:100F80001301010467800000130101FB23261104F3 +:100F90002324810413040105232EA4FA232CB4FA7C +:100FA000EFF00FEA2320A4FE832704FE83A70700A7 +:100FB000232EF4FC832704FE83A74700232CF4FC94 +:100FC000832704FE83A78700232AF4FC832704FEDB +:100FD00083A747012326F4FE0327C4FE8327C4FB0F +:100FE000B307F7022324F4FE8327C4FE639A0700A5 +:100FF000930710002326F4FE8327C4FB2324F4FE6A +:10100000832704FE83A7C7002328F4FC232204FEC1 +:101010006F00000C032784FB832704FD3307F702CE +:10102000832784FEB307F7002326F4FC032784FEFE +:10103000832704FDB337F70093F7F70F2324F4FC5D +:10104000832784FC93B71700A303F4FC834774FC45 +:10105000138F0700B7170080938FC70B6B200F000B +:101060007B70FF018327C4FC939727000327C4FDEF +:10107000B307F70083A607008327C4FC93972700D4 +:10108000032784FDB307F70003A707008327C4FCE9 +:1010900093972700032644FDB307F6003387E64005 +:1010A00023A0E700832784FE938717002324F4FE00 +:1010B000B7170080138E070C67000E0013000000A6 +:1010C0006B300000832744FE938717002322F4FE31 +:1010D000832744FE0327C4FEE3EEE7F2130000007B +:1010E0008320C104032481041301010567800000EB +:1010F000130101FC232E1102232C8102130401048D +:10110000232EA4FC232CB4FC232AC4FC2328D4FCC7 +:101110002326E4FCB76702810327C4FD23A2E71E50 +:10112000B76702819387471E032784FD23A2E70048 +:10113000B76702819387471E032744FD23A4E70076 +:10114000B76702819387471E0327C4FC23A6E700E5 +:10115000B76702819387471E032704FD23A8E70092 +:10116000EFF08F882324A4FE0327C4FC832784FE8A +:10117000B357F7022326F4FE0327C4FC832784FE1B +:10118000B377F702638807008327C4FE93871700AD +:101190002326F4FEB76702819387471E0327C4FE08 +:1011A00023AAE7000327C4FC832784FE6362F702B7 +:1011B000B76702819386471EB71700801386872280 +:1011C000832584FE032504FDEFF08FA96F00000244 +:1011D000B76702819386471EB71700801386872260 +:1011E0008325C4FC032504FDEFF08FA7EFE05FFF2C +:1011F0002322A4FE032704FD832744FE63F8E700AF +:10120000032544FEEFF0CFB46F00C000032504FDBA +:10121000EFF00FB4130000008320C1030324810307 +:101220001301010467800000130101FB2326110450 +:101230002324810413040105232EA4FA232CB4FAD9 +:10124000EFF00FC02320A4FE832704FE83A707002E +:10125000232EF4FC832704FE83A7470083A70700FF +:10126000232CF4FC832704FE83A78700232AF4FCA5 +:10127000832704FE83A747012326F4FE0327C4FE29 +:101280008327C4FBB307F7022324F4FE8327C4FE9D +:10129000639A0700930710002326F4FE8327C4FBFC +:1012A0002324F4FE832704FE83A7C7002328F4FC2D +:1012B000232204FE6F00000B032784FB832704FD19 +:1012C0003307F702832784FEB307F7002326F4FCD5 +:1012D000032784FE832704FDB337F70093F7F70F46 +:1012E0002324F4FC832784FC93B71700A303F4FCA6 +:1012F000834774FC138F0700B7170080938F07355F +:101300006B200F007B70FF018327C4FC939727009D +:101310000327C4FDB307F70083A607008327C4FC97 +:1013200093972700032744FDB307F700032784FDA5 +:101330003387E60023A0E700832784FE9387170006 +:101340002324F4FEB7170080138E473567000E0084 +:10135000130000006B300000832744FE93871700C2 +:101360002322F4FE832744FE0327C4FEE3E6E7F4CA +:10137000130000008320C10403248104130101052C +:1013800067800000130101FC232E1102232C81022F +:1013900013040104232EA4FC232CB4FC232AC4FC34 +:1013A0002328D4FC2326E4FCB76702810327C4FD6D +:1013B00023A2E71EB76702819387471E032784FD98 +:1013C00023A2E700B76702819387471E032744FDE6 +:1013D00023A4E700B76702819387471E0327C4FC55 +:1013E00023A6E700B76702819387471E032704FD02 +:1013F00023A8E700EFE05FDF2324A4FE0327C4FC5B +:10140000832784FEB357F7022326F4FE0327C4FC88 +:10141000832784FEB377F702638807008327C4FE1F +:10142000938717002326F4FEB76702819387471E30 +:101430000327C4FE23AAE7000327C4FC832784FEF6 +:101440006362F702B76702819386471EB717008071 +:101450001386C74B832584FE032504FDEFF04F80E0 +:101460006F000002B76702819386471EB71700809E +:101470001386C74B8325C4FC032504FDEFE05FFE04 +:10148000EFE01FD62322A4FE032704FD832744FE9A +:1014900063F8E700032544FEEFF08F8B6F00C00078 +:1014A000032504FDEFF0CF8A130000008320C10361 +:1014B000032481031301010467800000130101FB71 +:1014C000232611042324810413040105232EA4FAE6 +:1014D000232CB4FAEFF0CF962320A4FE832704FE3A +:1014E00083A70700232EF4FC832704FE83A747006D +:1014F00083A70700232CF4FC832704FE83A787001F +:10150000232AF4FC832704FE83A747012326F4FE45 +:101510000327C4FE8327C4FBB307F7022324F4FE8A +:101520008327C4FE639A0700930710002326F4FE66 +:101530008327C4FB2324F4FE832704FE83A7C7006C +:101540002328F4FC232204FE6F00000B032784FBF6 +:10155000832704FD3307F702832784FEB307F700D0 +:101560002326F4FC032784FE832704FDB337F7000A +:1015700093F7F70F2324F4FC832784FC93B7170019 +:10158000A303F4FC834774FC138F0700B717008094 +:10159000938F475E6B200F007B70FF018327C4FC95 +:1015A000939727000327C4FDB307F70083A607001E +:1015B0008327C4FC93972700032744FDB307F70054 +:1015C000032784FD3387E60223A0E700832784FEF8 +:1015D000938717002324F4FEB7170080138E875ECD +:1015E00067000E00130000006B300000832744FEEC +:1015F000938717002322F4FE832744FE0327C4FEAB +:10160000E3E6E7F4130000008320C104032481040F +:101610001301010567800000130101FD23268102EB +:1016200013040103232EA4FC232604FE6F000001F3 +:101630008327C4FE938717002326F4FE0327C4FEE6 +:101640008327C4FDE346F7FE130000000324C10214 +:101650001301010367800000130101FD232611021D +:101660002324810213040103232EA4FC232CB4FCA5 +:10167000B76702811387C71F8327C4FDB307F7002D +:10168000130710002380E7008327C4FD6390070C35 +:10169000A30104FE232604FE6F00800A232604FE15 +:1016A000232404FE6F004003B76702811387C71F1E +:1016B000832784FEB307F70083C70700638807000A +:1016C0008327C4FE938717002326F4FE832784FE16 +:1016D000938717002324F4FE032784FE832784FDC9 +:1016E000E344F7FC0327C4FE832784FD631AF70451 +:1016F000232204FE6F000004B76702811387C71F0F +:10170000832744FEB307F70023800700B7970281C1 +:10171000130710002382E72C13056004EFF0DFEFBE +:10172000B79702812382072C832744FE93871700F3 +:101730002322F4FE032744FE832784FDE34EF7FAB9 +:10174000834734FEE39C07F46F004002130000005F +:10175000B797028183C7472C93C7170093F7F70FFA +:10176000E39807FE13054006EFF01FEB130000009F +:101770008320C1020324810213010103678000005A +:10178000130101FF232681001304010193070000C8 +:101790001308000013850700930508000324C10007 +:1017A0001301010167800000130101FE232E810057 +:1017B00013040102232604FE6F008004B767028130 +:1017C0000327C4FE131727009387C721B307F70029 +:1017D0001307300023A0E700B77702810327C4FE78 +:1017E000131727009387C721B307F70013072000BB +:1017F00023A0E7008327C4FE938717002326F4FE67 +:101800000327C4FE9307F00FE3DAE7FA13000000A2 +:101810000324C1011301010267800000130101FDCF +:10182000232611022324810213040103232EA4FC86 +:10183000B707008113858711EFE0DFF8232604FE48 +:101840006F0080058327C4FE638E07008327C4FED4 +:1018500093F7F70063980700B70700811385C71354 +:10186000EFE05FF68327C4FE939727000327C4FDAC +:10187000B307F70083A7070013850700EFE05FF8C1 +:10188000B707008113850714EFE0DFF38327C4FE59 +:10189000938717002326F4FE0327C4FE9307F00F57 +:1018A000E3D2E7FAB707008113854714EFE09FF111 +:1018B000130000008320C1020324810213010103ED +:1018C00067800000130101FF2326110023248100FB +:1018D00013040101EFF05FEDB76702811385C721A3 +:1018E000EFF0DFF393070000138507008320C100AA +:0C18F00003248100130101016780000047 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A diff --git a/kernel/vx_os/vx_back/vx_back.s b/kernel/vx_os/vx_back/vx_back.s index 49597a5c..9f9ae284 100644 --- a/kernel/vx_os/vx_back/vx_back.s +++ b/kernel/vx_os/vx_back/vx_back.s @@ -6,20 +6,21 @@ .type _start, @function .global _start _start: - # li a0, 7 - # sw a0, 0(zero) - # lw a1, 0(zero) - # ecall - li a0, 8 # Num Warps - csrw 0x20, a0 # Setting the number of available warps - li a0, 4 # 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 + li a0, 4 + .word 0x0005006b # tmc a0 + csrr a1, 0x20 # read thread IDs + csrr a2, 0x21 # read warp IDs ecall + # li a0, 8 # Num Warps + # csrw 0x20, a0 # Setting the number of available warps + # li a0, 4 # 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 + # ecall # Hi: # li a2, 7 diff --git a/rtl/VX_alu.v b/rtl/VX_alu.v index ce06e29a..3b308297 100644 --- a/rtl/VX_alu.v +++ b/rtl/VX_alu.v @@ -8,7 +8,6 @@ module VX_alu( input wire[31:0] in_itype_immed, input wire[19:0] in_upper_immed, input wire[4:0] in_alu_op, - input wire[31:0] in_csr_data, // done input wire[31:0] in_curr_PC, output reg[31:0] out_alu_result ); @@ -60,9 +59,6 @@ module VX_alu( `SUBU: out_alu_result = (ALU_in1 >= ALU_in2) ? 32'h0 : 32'hffffffff; `LUI_ALU: out_alu_result = upper_immed; `AUIPC_ALU: out_alu_result = $signed(in_curr_PC) + $signed(upper_immed); - `CSR_ALU_RW: out_alu_result = in_csr_data; - `CSR_ALU_RS: out_alu_result = in_csr_data; - `CSR_ALU_RC: out_alu_result = in_csr_data; `MUL: begin out_alu_result = mult_signed_result[31:0]; end `MULH: out_alu_result = mult_signed_result[63:32]; `MULHSU: out_alu_result = mult_signed_un_result[63:32]; diff --git a/rtl/VX_back_end.v b/rtl/VX_back_end.v index 4e6e173b..d36f2332 100644 --- a/rtl/VX_back_end.v +++ b/rtl/VX_back_end.v @@ -3,7 +3,6 @@ module VX_back_end ( input wire reset, input wire schedule_delay, - input wire[31:0] csr_decode_csr_data, output wire out_mem_delay, VX_jal_response_inter VX_jal_rsp, @@ -16,20 +15,11 @@ module VX_back_end ( VX_warp_ctl_inter VX_warp_ctl, VX_dcache_response_inter VX_dcache_rsp, - VX_dcache_request_inter VX_dcache_req, + VX_dcache_request_inter VX_dcache_req - - VX_csr_write_request_inter VX_csr_w_req ); -wire[11:0] execute_csr_address; -wire execute_is_csr; -reg[31:0] execute_csr_result; -wire execute_jal; -wire[31:0] execute_jal_dest; - - VX_wb_inter VX_writeback_temp(); assign VX_writeback_inter.wb = VX_writeback_temp.wb; assign VX_writeback_inter.rd = VX_writeback_temp.rd; @@ -63,6 +53,10 @@ VX_inst_exec_wb_inter VX_inst_exec_wb(); // GPU unit input VX_gpu_inst_req_inter VX_gpu_inst_req(); +// CSR unit inputs +VX_csr_req_inter VX_csr_req(); +VX_csr_wb_inter VX_csr_wb(); + VX_gpr_stage VX_gpr_stage( .clk (clk), .schedule_delay (schedule_delay), @@ -78,7 +72,8 @@ VX_inst_multiplex VX_inst_mult( .VX_gpr_data (VX_gpr_data), .VX_exec_unit_req(VX_exec_unit_req), .VX_lsu_req (VX_lsu_req), - .VX_gpu_inst_req (VX_gpu_inst_req) + .VX_gpu_inst_req (VX_gpu_inst_req), + .VX_csr_req (VX_csr_req) ); @@ -97,12 +92,7 @@ VX_execute_unit VX_execUnit( .VX_exec_unit_req(VX_exec_unit_req), .VX_inst_exec_wb (VX_inst_exec_wb), .VX_jal_rsp (VX_jal_rsp), - .VX_branch_rsp (VX_branch_rsp), - - .in_csr_data (csr_decode_csr_data), - .out_csr_address (VX_csr_w_req.csr_address), - .out_is_csr (VX_csr_w_req.is_csr), - .out_csr_result (VX_csr_w_req.csr_result) + .VX_branch_rsp (VX_branch_rsp) ); @@ -111,9 +101,15 @@ VX_gpgpu_inst VX_gpgpu_inst( .VX_warp_ctl (VX_warp_ctl) ); +VX_csr_wrapper VX_csr_wrapper( + .VX_csr_req(VX_csr_req), + .VX_csr_wb (VX_csr_wb) + ); + VX_writeback VX_wb( .VX_mem_wb (VX_mem_wb), .VX_inst_exec_wb (VX_inst_exec_wb), + .VX_csr_wb (VX_csr_wb), .VX_writeback_inter(VX_writeback_temp) ); diff --git a/rtl/VX_csr_wrapper.v b/rtl/VX_csr_wrapper.v new file mode 100644 index 00000000..32b52d09 --- /dev/null +++ b/rtl/VX_csr_wrapper.v @@ -0,0 +1,35 @@ +module VX_csr_wrapper ( + VX_csr_req_inter VX_csr_req, + + VX_csr_wb_inter VX_csr_wb +); + + + wire[`NT_M1:0][31:0] thread_ids; + wire[`NT_M1:0][31:0] warp_ids; + + genvar cur_t; + for (cur_t = 0; cur_t < `NT; cur_t = cur_t + 1) begin + assign thread_ids[cur_t] = cur_t; + end + + genvar cur_tw; + for (cur_tw = 0; cur_tw < `NT; cur_tw = cur_tw + 1) begin + assign warp_ids[cur_tw] = {{(31-`NW_M1){1'b0}}, VX_csr_req.warp_num}; + end + + + assign VX_csr_wb.valid = VX_csr_req.valid; + assign VX_csr_wb.warp_num = VX_csr_req.warp_num; + assign VX_csr_wb.rd = VX_csr_req.rd; + assign VX_csr_wb.wb = VX_csr_req.wb; + + + wire thread_select = VX_csr_req.csr_address == 12'h20; + wire warp_select = VX_csr_req.csr_address == 12'h21; + + assign VX_csr_wb.csr_result = thread_select ? thread_ids : + warp_select ? warp_ids : + 0; + +endmodule \ No newline at end of file diff --git a/rtl/VX_decode.v b/rtl/VX_decode.v index 2dec804f..88fc9884 100644 --- a/rtl/VX_decode.v +++ b/rtl/VX_decode.v @@ -126,8 +126,7 @@ module VX_decode( assign VX_frE_to_bckE_req.csr_immed = is_csr_immed; - - + assign VX_frE_to_bckE_req.is_csr = is_csr; assign VX_frE_to_bckE_req.wb = (is_jal || is_jalr || is_e_inst) ? `WB_JAL : diff --git a/rtl/VX_execute_unit.v b/rtl/VX_execute_unit.v index 20172229..e1cc8b97 100644 --- a/rtl/VX_execute_unit.v +++ b/rtl/VX_execute_unit.v @@ -10,12 +10,7 @@ module VX_execute_unit ( // JAL Response VX_jal_response_inter VX_jal_rsp, // Branch Response - VX_branch_response_inter VX_branch_rsp, - - input wire[31:0] in_csr_data, - output wire[11:0] out_csr_address, - output wire out_is_csr, - output reg[31:0] out_csr_result + VX_branch_response_inter VX_branch_rsp ); @@ -27,7 +22,6 @@ module VX_execute_unit ( wire[31:0] in_itype_immed; wire[2:0] in_branch_type; wire[19:0] in_upper_immed; - wire[31:0] in_csr_mask; wire in_jal; wire[31:0] in_jal_offset; wire[31:0] in_curr_PC; @@ -39,7 +33,6 @@ module VX_execute_unit ( assign in_itype_immed = VX_exec_unit_req.itype_immed; assign in_branch_type = VX_exec_unit_req.branch_type; assign in_upper_immed = VX_exec_unit_req.upper_immed; - assign in_csr_mask = VX_exec_unit_req.csr_mask; assign in_jal = VX_exec_unit_req.jal; assign in_jal_offset = VX_exec_unit_req.jal_offset; assign in_curr_PC = VX_exec_unit_req.curr_PC; @@ -58,7 +51,6 @@ module VX_execute_unit ( .in_itype_immed(in_itype_immed), .in_upper_immed(in_upper_immed), .in_alu_op (in_alu_op), - .in_csr_data (in_csr_data), .in_curr_PC (in_curr_PC), .out_alu_result(alu_result[index_out_reg]) ); @@ -110,18 +102,18 @@ module VX_execute_unit ( assign VX_branch_rsp.branch_dest = $signed(VX_exec_unit_req.curr_PC) + ($signed(VX_exec_unit_req.itype_immed) << 1); // itype_immed = branch_offset - always @(*) begin - case(in_alu_op) - `CSR_ALU_RW: out_csr_result = in_csr_mask; - `CSR_ALU_RS: out_csr_result = in_csr_data | in_csr_mask; - `CSR_ALU_RC: out_csr_result = in_csr_data & (32'hFFFFFFFF - in_csr_mask); - default: out_csr_result = 32'hdeadbeef; - endcase + // always @(*) begin + // case(in_alu_op) + // `CSR_ALU_RW: out_csr_result = in_csr_mask; + // `CSR_ALU_RS: out_csr_result = in_csr_data | in_csr_mask; + // `CSR_ALU_RC: out_csr_result = in_csr_data & (32'hFFFFFFFF - in_csr_mask); + // default: out_csr_result = 32'hdeadbeef; + // endcase - end + // end - assign out_is_csr = VX_exec_unit_req.is_csr; - assign out_csr_address = VX_exec_unit_req.csr_address; + // assign out_is_csr = VX_exec_unit_req.is_csr; + // assign out_csr_address = VX_exec_unit_req.csr_address; endmodule \ No newline at end of file diff --git a/rtl/VX_fetch.v b/rtl/VX_fetch.v index f7ae63fe..6ef5539b 100644 --- a/rtl/VX_fetch.v +++ b/rtl/VX_fetch.v @@ -42,6 +42,12 @@ module VX_fetch ( .wstall (VX_wstall.wstall), .wstall_warp_num(VX_wstall.warp_num), + // Split + .is_split (VX_warp_ctl.is_split), + .split_new_mask (VX_warp_ctl.split_new_mask), + .split_later_mask(VX_warp_ctl.split_later_mask), + .split_save_pc (VX_warp_ctl.split_save_pc), + // JAL .jal (VX_jal_rsp.jal), .jal_dest (VX_jal_rsp.jal_dest), diff --git a/rtl/VX_front_end.v b/rtl/VX_front_end.v index ea97d04d..ce6f7716 100644 --- a/rtl/VX_front_end.v +++ b/rtl/VX_front_end.v @@ -16,8 +16,6 @@ module VX_front_end ( VX_frE_to_bckE_req_inter VX_bckE_req, - - output wire[11:0] decode_csr_address, output wire fetch_ebreak ); @@ -81,10 +79,6 @@ VX_d_e_reg vx_d_e_reg( .VX_bckE_req (VX_bckE_req) ); - -assign decode_csr_address = VX_frE_to_bckE_req.csr_address; - - endmodule diff --git a/rtl/VX_generic_stack.v b/rtl/VX_generic_stack.v new file mode 100644 index 00000000..de5f0529 --- /dev/null +++ b/rtl/VX_generic_stack.v @@ -0,0 +1,40 @@ +module VX_generic_stack + #( + parameter WIDTH = 40, + parameter DEPTH = 2 + ) + ( + input wire clk, + input wire reset, + input wire push, + input wire pop, + input wire[WIDTH - 1:0] d, + output reg [WIDTH - 1:0] q, + ); + + + reg [DEPTH - 1:0] ptr; + reg [WIDTH - 1:0] stack [0:(1 << DEPTH) - 1]; + + always @(posedge clk) begin + if (reset) + ptr <= 0; + else if (push) + ptr <= ptr + 1; + else if (pop) + ptr <= ptr - 1; + end + + always @(posedge clk) begin + if (push) begin + if(push) + stack[ptr] <= q; + end + end + + always @(*) begin + if (pop) + q <= stack[ptr - 1]; + end + +endmodule \ No newline at end of file diff --git a/rtl/VX_gpgpu_inst.v b/rtl/VX_gpgpu_inst.v index 6f83f5b6..694bc630 100644 --- a/rtl/VX_gpgpu_inst.v +++ b/rtl/VX_gpgpu_inst.v @@ -26,6 +26,32 @@ module VX_gpgpu_inst ( assign VX_warp_ctl.wspawn_pc = 0; + wire[`NT_M1:0] split_new_use_mask; + wire[`NT_M1:0] split_new_later_mask; + + // VX_gpu_inst_req.pc + genvar curr_s_t; + for (curr_s_t = 0; curr_s_t < `NT; curr_s_t=curr_s_t+1) begin + wire curr_bool = (VX_gpu_inst_req.a_reg_data == 32'b1); + + assign split_new_use_mask[curr_s_t] = VX_gpu_inst_req.valid[curr_s_t] & (curr_bool); + assign split_new_later_mask[curr_s_t] = VX_gpu_inst_req.valid[curr_s_t] & (!curr_bool); + end + + reg[$clog2(`NT)-1:0] num_valids; + integer z; + always @(*) begin + num_valids = 0; + for (z = 0; z < `NT; z=z+1) begin + if (VX_gpu_inst_req.valid) num_valids = num_valids + 1 + end + end + + assign VX_warp_ctl.is_split = (VX_gpu_inst_req.is_split) && (num_valids > 1); + assign VX_warp_ctl.split_new_mask = split_new_use_mask; + assign VX_warp_ctl.split_later_mask = split_new_later_mask; + assign VX_warp_ctl.split_save_pc = VX_gpu_inst_req.pc_next; + // VX_gpu_inst_req.is_wspawn // VX_gpu_inst_req.is_split // VX_gpu_inst_req.is_barrier diff --git a/rtl/VX_gpr.v b/rtl/VX_gpr.v index 96592049..c3ac3e84 100644 --- a/rtl/VX_gpr.v +++ b/rtl/VX_gpr.v @@ -15,112 +15,112 @@ module VX_gpr ( assign write_enable = valid_write_request && ((VX_writeback_inter.wb != 0) && (VX_writeback_inter.rd != 5'h0)); - // byte_enabled_simple_dual_port_ram first_ram( - // .we (write_enable), - // .clk (clk), - // .waddr (VX_writeback_inter.rd), - // .raddr1(VX_gpr_read.rs1), - // .raddr2(VX_gpr_read.rs2), - // .be (VX_writeback_inter.wb_valid), - // .wdata (VX_writeback_inter.write_data), - // .q1 (out_a_reg_data), - // .q2 (out_b_reg_data) - // ); + byte_enabled_simple_dual_port_ram first_ram( + .we (write_enable), + .clk (clk), + .waddr (VX_writeback_inter.rd), + .raddr1(VX_gpr_read.rs1), + .raddr2(VX_gpr_read.rs2), + .be (VX_writeback_inter.wb_valid), + .wdata (VX_writeback_inter.write_data), + .q1 (out_a_reg_data), + .q2 (out_b_reg_data) + ); - wire[`NT_M1:0][31:0] write_bit_mask; + // wire[`NT_M1:0][31:0] write_bit_mask; - genvar curr_t; - for (curr_t = 0; curr_t < `NT; curr_t=curr_t+1) begin - wire local_write = write_enable & VX_writeback_inter.wb_valid[curr_t]; - assign write_bit_mask[curr_t] = {32{~local_write}}; - end + // genvar curr_t; + // for (curr_t = 0; curr_t < `NT; curr_t=curr_t+1) begin + // wire local_write = write_enable & VX_writeback_inter.wb_valid[curr_t]; + // assign write_bit_mask[curr_t] = {32{~local_write}}; + // end - wire going_to_write = write_enable & (|VX_writeback_inter.wb_valid); + // wire going_to_write = write_enable & (|VX_writeback_inter.wb_valid); - wire cenb = !going_to_write; + // wire cenb = !going_to_write; - wire cena_1 = (VX_gpr_read.rs1 == 0); - wire cena_2 = (VX_gpr_read.rs2 == 0); + // wire cena_1 = (VX_gpr_read.rs1 == 0); + // wire cena_2 = (VX_gpr_read.rs2 == 0); - // wire[127:0] write_bit_mask = {{32{~(VX_writeback_inter.wb_valid[3])}}, {32{~(VX_writeback_inter.wb_valid[2])}}, {32{~(VX_writeback_inter.wb_valid[1])}}, {32{~(VX_writeback_inter.wb_valid[0])}}}; - /* verilator lint_off PINCONNECTEMPTY */ - rf2_32x128_wm1 first_ram ( - .CENYA(), - .AYA(), - .CENYB(), - .WENYB(), - .AYB(), - .QA(out_a_reg_data), - .SOA(), - .SOB(), - .CLKA(clk), - .CENA(cena_1), - .AA(VX_gpr_read.rs1), - .CLKB(clk), - .CENB(cenb), - .WENB(write_bit_mask), - .AB(VX_writeback_inter.rd), - .DB(VX_writeback_inter.write_data), - .EMAA(3'b011), - .EMASA(1'b0), - .EMAB(3'b011), - .TENA(1'b1), - .TCENA(1'b0), - .TAA(5'b0), - .TENB(1'b1), - .TCENB(1'b0), - .TWENB(128'b0), - .TAB(5'b0), - .TDB(128'b0), - .RET1N(1'b1), - .SIA(2'b0), - .SEA(1'b0), - .DFTRAMBYP(1'b0), - .SIB(2'b0), - .SEB(1'b0), - .COLLDISN(1'b1) - ); - /* verilator lint_on PINCONNECTEMPTY */ + // // wire[127:0] write_bit_mask = {{32{~(VX_writeback_inter.wb_valid[3])}}, {32{~(VX_writeback_inter.wb_valid[2])}}, {32{~(VX_writeback_inter.wb_valid[1])}}, {32{~(VX_writeback_inter.wb_valid[0])}}}; + // /* verilator lint_off PINCONNECTEMPTY */ + // rf2_32x128_wm1 first_ram ( + // .CENYA(), + // .AYA(), + // .CENYB(), + // .WENYB(), + // .AYB(), + // .QA(out_a_reg_data), + // .SOA(), + // .SOB(), + // .CLKA(clk), + // .CENA(cena_1), + // .AA(VX_gpr_read.rs1), + // .CLKB(clk), + // .CENB(cenb), + // .WENB(write_bit_mask), + // .AB(VX_writeback_inter.rd), + // .DB(VX_writeback_inter.write_data), + // .EMAA(3'b011), + // .EMASA(1'b0), + // .EMAB(3'b011), + // .TENA(1'b1), + // .TCENA(1'b0), + // .TAA(5'b0), + // .TENB(1'b1), + // .TCENB(1'b0), + // .TWENB(128'b0), + // .TAB(5'b0), + // .TDB(128'b0), + // .RET1N(1'b1), + // .SIA(2'b0), + // .SEA(1'b0), + // .DFTRAMBYP(1'b0), + // .SIB(2'b0), + // .SEB(1'b0), + // .COLLDISN(1'b1) + // ); + // /* verilator lint_on PINCONNECTEMPTY */ - /* verilator lint_off PINCONNECTEMPTY */ - rf2_32x128_wm1 second_ram ( - .CENYA(), - .AYA(), - .CENYB(), - .WENYB(), - .AYB(), - .QA(out_b_reg_data), - .SOA(), - .SOB(), - .CLKA(clk), - .CENA(cena_2), - .AA(VX_gpr_read.rs2), - .CLKB(clk), - .CENB(cenb), - .WENB(write_bit_mask), - .AB(VX_writeback_inter.rd), - .DB(VX_writeback_inter.write_data), - .EMAA(3'b011), - .EMASA(1'b0), - .EMAB(3'b011), - .TENA(1'b1), - .TCENA(1'b0), - .TAA(5'b0), - .TENB(1'b1), - .TCENB(1'b0), - .TWENB(128'b0), - .TAB(5'b0), - .TDB(128'b0), - .RET1N(1'b1), - .SIA(2'b0), - .SEA(1'b0), - .DFTRAMBYP(1'b0), - .SIB(2'b0), - .SEB(1'b0), - .COLLDISN(1'b1) - ); - /* verilator lint_on PINCONNECTEMPTY */ + // /* verilator lint_off PINCONNECTEMPTY */ + // rf2_32x128_wm1 second_ram ( + // .CENYA(), + // .AYA(), + // .CENYB(), + // .WENYB(), + // .AYB(), + // .QA(out_b_reg_data), + // .SOA(), + // .SOB(), + // .CLKA(clk), + // .CENA(cena_2), + // .AA(VX_gpr_read.rs2), + // .CLKB(clk), + // .CENB(cenb), + // .WENB(write_bit_mask), + // .AB(VX_writeback_inter.rd), + // .DB(VX_writeback_inter.write_data), + // .EMAA(3'b011), + // .EMASA(1'b0), + // .EMAB(3'b011), + // .TENA(1'b1), + // .TCENA(1'b0), + // .TAA(5'b0), + // .TENB(1'b1), + // .TCENB(1'b0), + // .TWENB(128'b0), + // .TAB(5'b0), + // .TDB(128'b0), + // .RET1N(1'b1), + // .SIA(2'b0), + // .SEA(1'b0), + // .DFTRAMBYP(1'b0), + // .SIB(2'b0), + // .SEB(1'b0), + // .COLLDISN(1'b1) + // ); + // /* verilator lint_on PINCONNECTEMPTY */ endmodule diff --git a/rtl/VX_inst_multiplex.v b/rtl/VX_inst_multiplex.v index 7a9f2c24..e774a423 100644 --- a/rtl/VX_inst_multiplex.v +++ b/rtl/VX_inst_multiplex.v @@ -6,21 +6,24 @@ module VX_inst_multiplex ( // Outputs VX_exec_unit_req_inter VX_exec_unit_req, VX_lsu_req_inter VX_lsu_req, - VX_gpu_inst_req_inter VX_gpu_inst_req - + VX_gpu_inst_req_inter VX_gpu_inst_req, + VX_csr_req_inter VX_csr_req ); wire[`NT_M1:0] is_mem_mask; wire[`NT_M1:0] is_gpu_mask; + wire[`NT_M1:0] is_csr_mask; wire is_mem = (VX_bckE_req.mem_write != `NO_MEM_WRITE) || (VX_bckE_req.mem_read != `NO_MEM_READ); wire is_gpu = (VX_bckE_req.is_wspawn || VX_bckE_req.is_tmc || VX_bckE_req.is_barrier || VX_bckE_req.is_split); + wire is_csr = VX_bckE_req.is_csr; // wire is_gpu = 0; genvar currT; for (currT = 0; currT < `NT; currT = currT + 1) begin assign is_mem_mask[currT] = is_mem; assign is_gpu_mask[currT] = is_gpu; + assign is_csr_mask[currT] = is_csr; end // LSU Unit @@ -38,7 +41,7 @@ module VX_inst_multiplex ( // Execute Unit - assign VX_exec_unit_req.valid = VX_bckE_req.valid & (~is_mem_mask & ~is_gpu_mask); + assign VX_exec_unit_req.valid = VX_bckE_req.valid & (~is_mem_mask & ~is_gpu_mask & ~is_csr_mask); assign VX_exec_unit_req.warp_num = VX_bckE_req.warp_num; assign VX_exec_unit_req.curr_PC = VX_bckE_req.curr_PC; assign VX_exec_unit_req.PC_next = VX_bckE_req.PC_next; @@ -57,10 +60,6 @@ module VX_inst_multiplex ( assign VX_exec_unit_req.jal = VX_bckE_req.jal; assign VX_exec_unit_req.jal_offset = VX_bckE_req.jal_offset; assign VX_exec_unit_req.ebreak = VX_bckE_req.ebreak; - assign VX_exec_unit_req.is_csr = VX_bckE_req.is_csr; - assign VX_exec_unit_req.csr_address = VX_bckE_req.csr_address; - assign VX_exec_unit_req.csr_immed = VX_bckE_req.csr_immed; - assign VX_exec_unit_req.csr_mask = VX_bckE_req.csr_mask; // GPR Req @@ -72,6 +71,18 @@ module VX_inst_multiplex ( assign VX_gpu_inst_req.is_barrier = VX_bckE_req.is_barrier; assign VX_gpu_inst_req.a_reg_data = VX_gpr_data.a_reg_data; assign VX_gpu_inst_req.rd2 = VX_gpr_data.b_reg_data[0]; + assign VX_gpu_inst_req.pc_next = VX_bckE_req.PC_next; + + + // CSR Req + assign VX_csr_req.valid = VX_bckE_req.valid & is_csr_mask; + assign VX_csr_req.warp_num = VX_bckE_req.warp_num; + assign VX_csr_req.rd = VX_bckE_req.rd; + assign VX_csr_req.wb = VX_bckE_req.wb; + assign VX_csr_req.is_csr = VX_bckE_req.is_csr; + assign VX_csr_req.csr_address = VX_bckE_req.csr_address; + assign VX_csr_req.csr_immed = VX_bckE_req.csr_immed; + assign VX_csr_req.csr_mask = VX_bckE_req.csr_mask; endmodule diff --git a/rtl/VX_warp_scheduler.v b/rtl/VX_warp_scheduler.v index c5d6dc6b..40e99b5b 100644 --- a/rtl/VX_warp_scheduler.v +++ b/rtl/VX_warp_scheduler.v @@ -20,6 +20,12 @@ module VX_warp_scheduler ( input wire wstall, input wire[`NW_M1:0] wstall_warp_num, + // Split + input wire is_split, + input wire[`NT_M1:0] split_new_mask, + input wire[`NT_M1:0] split_later_mask, + input wire[31:0] split_save_pc, + // JAL input wire jal, input wire[31:0] jal_dest, diff --git a/rtl/VX_writeback.v b/rtl/VX_writeback.v index 2d0e2b6d..f12d9c42 100644 --- a/rtl/VX_writeback.v +++ b/rtl/VX_writeback.v @@ -7,6 +7,8 @@ module VX_writeback ( VX_inst_mem_wb_inter VX_mem_wb, // EXEC Unit WB info VX_inst_exec_wb_inter VX_inst_exec_wb, + // CSR Unit WB info + VX_csr_wb_inter VX_csr_wb, // Actual WB to GPR VX_wb_inter VX_writeback_inter @@ -16,66 +18,34 @@ module VX_writeback ( wire exec_wb = (VX_inst_exec_wb.wb != 0) && (|VX_inst_exec_wb.wb_valid); wire mem_wb = (VX_mem_wb.wb != 0) && (|VX_mem_wb.wb_valid); + wire csr_wb = (VX_csr_wb.wb != 0) && (|VX_csr_wb.valid); assign VX_writeback_inter.write_data = exec_wb ? VX_inst_exec_wb.alu_result : mem_wb ? VX_mem_wb.loaded_data : + csr_wb ? VX_csr_wb.csr_result : 0; assign VX_writeback_inter.wb_valid = exec_wb ? VX_inst_exec_wb.wb_valid : mem_wb ? VX_mem_wb.wb_valid : + csr_wb ? VX_csr_wb.valid : 0; assign VX_writeback_inter.rd = exec_wb ? VX_inst_exec_wb.rd : mem_wb ? VX_mem_wb.rd : + csr_wb ? VX_csr_wb.rd : 0; assign VX_writeback_inter.wb = exec_wb ? VX_inst_exec_wb.wb : mem_wb ? VX_mem_wb.wb : + csr_wb ? VX_csr_wb.wb : 0; assign VX_writeback_inter.wb_warp_num = exec_wb ? VX_inst_exec_wb.wb_warp_num : mem_wb ? VX_mem_wb.wb_warp_num : + csr_wb ? VX_csr_wb.warp_num : 0; - // wire[`NT_M1:0][31:0] in_alu_result = VX_mw_wb.alu_result; - // wire[`NT_M1:0][31:0] in_mem_result = VX_mw_wb.mem_result; - // wire[4:0] in_rd = VX_mw_wb.rd; - // wire[1:0] in_wb = VX_mw_wb.wb; - // wire[31:0] in_PC_next = VX_mw_wb.PC_next; - // wire[`NT_M1:0] in_valid = VX_mw_wb.valid; - // wire [`NW_M1:0] in_warp_num = VX_mw_wb.warp_num; - - // wire is_jal; - // wire uses_alu; - - // wire[`NT_M1:0][31:0] out_pc_data; - - - // genvar i; - // generate - // for (i = 0; i < `NT; i=i+1) - // begin - // assign out_pc_data[i] = in_PC_next; - // end - // endgenerate - - // // assign out_pc_data[0] = in_PC_next; - - // // assign out_pc_data[1] = in_PC_next; - - // assign is_jal = in_wb == `WB_JAL; - // assign uses_alu = in_wb == `WB_ALU; - - // assign VX_writeback_inter.write_data = is_jal ? out_pc_data : - // uses_alu ? in_alu_result : - // in_mem_result; - - // assign VX_writeback_inter.wb_valid = in_valid; - // assign VX_writeback_inter.rd = in_rd; - // assign VX_writeback_inter.wb = in_wb; - // assign VX_writeback_inter.wb_warp_num = in_warp_num; - endmodule // VX_writeback \ No newline at end of file diff --git a/rtl/Vortex.v b/rtl/Vortex.v index 2d4c7914..f965a3ff 100644 --- a/rtl/Vortex.v +++ b/rtl/Vortex.v @@ -51,9 +51,7 @@ VX_branch_response_inter VX_branch_rsp(); // Branch Resolution to Fetc VX_jal_response_inter VX_jal_rsp(); // Jump resolution to Fetch // CSR Buses -VX_csr_write_request_inter VX_csr_w_req(); -wire[31:0] csr_decode_csr_data; -wire[11:0] decode_csr_address; +// VX_csr_write_request_inter VX_csr_w_req(); VX_warp_ctl_inter VX_warp_ctl(); @@ -68,7 +66,6 @@ VX_front_end vx_front_end( .reset (reset), .VX_warp_ctl (VX_warp_ctl), .VX_bckE_req (VX_bckE_req), - .decode_csr_address (decode_csr_address), .schedule_delay (schedule_delay), .icache_response_fe (icache_response_fe), .icache_request_fe (icache_request_fe), @@ -91,24 +88,22 @@ VX_back_end vx_back_end( .schedule_delay (schedule_delay), .VX_warp_ctl (VX_warp_ctl), .VX_bckE_req (VX_bckE_req), - .csr_decode_csr_data (csr_decode_csr_data), .VX_jal_rsp (VX_jal_rsp), .VX_branch_rsp (VX_branch_rsp), .VX_dcache_rsp (VX_dcache_rsp), .VX_dcache_req (VX_dcache_req), - .VX_csr_w_req (VX_csr_w_req), .VX_writeback_inter (VX_writeback_inter), .out_mem_delay (memory_delay) ); -VX_csr_handler vx_csr_handler( - .clk (clk), - .in_decode_csr_address(decode_csr_address), - .VX_csr_w_req (VX_csr_w_req), - .in_wb_valid (VX_writeback_inter.wb_valid[0]), +// VX_csr_handler vx_csr_handler( +// .clk (clk), +// .in_decode_csr_address(decode_csr_address), +// .VX_csr_w_req (VX_csr_w_req), +// .in_wb_valid (VX_writeback_inter.wb_valid[0]), - .out_decode_csr_data (csr_decode_csr_data) - ); +// .out_decode_csr_data (csr_decode_csr_data) +// ); diff --git a/rtl/interfaces/VX_csr_req_inter.v b/rtl/interfaces/VX_csr_req_inter.v new file mode 100644 index 00000000..c8daf257 --- /dev/null +++ b/rtl/interfaces/VX_csr_req_inter.v @@ -0,0 +1,24 @@ + +`include "../VX_define.v" + +`ifndef VX_CSR_REQ + +`define VX_CSR_REQ + +interface VX_csr_req_inter (); + + wire[`NT_M1:0] valid; + wire[`NW_M1:0] warp_num; + wire[4:0] rd; + wire[1:0] wb; + + wire is_csr; + wire[11:0] csr_address; + wire csr_immed; + wire[31:0] csr_mask; + + +endinterface + + +`endif \ No newline at end of file diff --git a/rtl/interfaces/VX_csr_wb_inter.v b/rtl/interfaces/VX_csr_wb_inter.v new file mode 100644 index 00000000..d8389cdb --- /dev/null +++ b/rtl/interfaces/VX_csr_wb_inter.v @@ -0,0 +1,21 @@ + +`include "../VX_define.v" + +`ifndef VX_CSR_WB_REQ + +`define VX_CSR_WB_REQ + +interface VX_csr_wb_inter (); + + wire[`NT_M1:0] valid; + wire[`NW_M1:0] warp_num; + wire[4:0] rd; + wire[1:0] wb; + + wire[`NT_M1:0][31:0] csr_result; + + +endinterface + + +`endif \ No newline at end of file diff --git a/rtl/interfaces/VX_csr_write_request_inter.v b/rtl/interfaces/VX_csr_write_request_inter.v deleted file mode 100644 index 99a76e7e..00000000 --- a/rtl/interfaces/VX_csr_write_request_inter.v +++ /dev/null @@ -1,18 +0,0 @@ - -`include "../VX_define.v" - -`ifndef VX_CSR_W_REQ - -`define VX_CSR_W_REQ - -interface VX_csr_write_request_inter (); - - wire is_csr; - wire[11:0] csr_address; - wire[31:0] csr_result; - - -endinterface - - -`endif \ No newline at end of file diff --git a/rtl/interfaces/VX_gpu_inst_req_inter.v b/rtl/interfaces/VX_gpu_inst_req_inter.v index 01793b2b..66b4c191 100644 --- a/rtl/interfaces/VX_gpu_inst_req_inter.v +++ b/rtl/interfaces/VX_gpu_inst_req_inter.v @@ -13,6 +13,8 @@ interface VX_gpu_inst_req_inter(); wire is_split; wire is_barrier; + wire pc_next; + wire[`NT_M1:0][31:0] a_reg_data; wire[31:0] rd2; diff --git a/rtl/interfaces/VX_warp_ctl_inter.v b/rtl/interfaces/VX_warp_ctl_inter.v index 9908384e..a25d7aa0 100644 --- a/rtl/interfaces/VX_warp_ctl_inter.v +++ b/rtl/interfaces/VX_warp_ctl_inter.v @@ -16,6 +16,13 @@ interface VX_warp_ctl_inter (); wire ebreak; + + wire is_split; + wire[`NT_M1:0] split_new_mask; + wire[`NT_M1:0] split_later_mask; + wire[31:0] split_save_pc; + + endinterface diff --git a/rtl/results.txt b/rtl/results.txt index e3d4ce87..ff40d42b 100644 --- a/rtl/results.txt +++ b/rtl/results.txt @@ -1,7 +1,7 @@ -# Dynamic Instructions: 15 -# of total cycles: 28 +# Dynamic Instructions: 12 +# of total cycles: 25 # of forwarding stalls: 0 # of branch stalls: 0 -# CPI: 1.86667 -# time to simulate: 6.95313e-310 milliseconds +# CPI: 2.08333 +# time to simulate: 6.95312e-310 milliseconds # GRADE: Failed on test: 4294967295 diff --git a/syn/syn.tcl b/syn/syn.tcl index bbd4ef0f..be8d09a1 100755 --- a/syn/syn.tcl +++ b/syn/syn.tcl @@ -3,7 +3,7 @@ set link_library [concat * sc12mc_cln28hpm_base_ulvt_c35_ssg_typical_max_0p81v_ set symbol_library {} set target_library [concat sc12mc_cln28hpm_base_ulvt_c35_ssg_typical_max_0p81v_m40c.db] -set verilog_files [ list VX_gpgpu_inst.v VX_gpu_inst_req_inter.v VX_wstall_inter.v VX_inst_exec_wb_inter.v VX_lsu.v VX_execute_unit.v VX_lsu_addr_gen.v VX_inst_multiplex.v VX_exec_unit_req_inter.v VX_lsu_req_inter.v VX_alu.v VX_back_end.v VX_gpr_stage.v VX_gpr_data_inter.v VX_csr_handler.v VX_decode.v VX_define.v VX_scheduler.v VX_fetch.v VX_front_end.v VX_generic_register.v VX_gpr.v VX_gpr_wrapper.v VX_one_counter.v VX_priority_encoder.v VX_warp.v VX_warp_scheduler.v VX_writeback.v Vortex.v byte_enabled_simple_dual_port_ram.v VX_branch_response_inter.v VX_csr_write_request_inter.v VX_dcache_request_inter.v VX_dcache_response_inter.v VX_frE_to_bckE_req_inter.v VX_gpr_clone_inter.v VX_gpr_jal_inter.v VX_gpr_read_inter.v VX_gpr_wspawn_inter.v VX_icache_request_inter.v VX_icache_response_inter.v VX_inst_mem_wb_inter.v VX_inst_meta_inter.v VX_jal_response_inter.v VX_mem_req_inter.v VX_mw_wb_inter.v VX_warp_ctl_inter.v VX_wb_inter.v VX_d_e_reg.v VX_f_d_reg.v \ +set verilog_files [ list VX_csr_wrapper.v VX_csr_req_inter.v VX_csr_wb_inter.v VX_gpgpu_inst.v VX_gpu_inst_req_inter.v VX_wstall_inter.v VX_inst_exec_wb_inter.v VX_lsu.v VX_execute_unit.v VX_lsu_addr_gen.v VX_inst_multiplex.v VX_exec_unit_req_inter.v VX_lsu_req_inter.v VX_alu.v VX_back_end.v VX_gpr_stage.v VX_gpr_data_inter.v VX_csr_handler.v VX_decode.v VX_define.v VX_scheduler.v VX_fetch.v VX_front_end.v VX_generic_register.v VX_gpr.v VX_gpr_wrapper.v VX_one_counter.v VX_priority_encoder.v VX_warp.v VX_warp_scheduler.v VX_writeback.v Vortex.v byte_enabled_simple_dual_port_ram.v VX_branch_response_inter.v VX_dcache_request_inter.v VX_dcache_response_inter.v VX_frE_to_bckE_req_inter.v VX_gpr_clone_inter.v VX_gpr_jal_inter.v VX_gpr_read_inter.v VX_gpr_wspawn_inter.v VX_icache_request_inter.v VX_icache_response_inter.v VX_inst_mem_wb_inter.v VX_inst_meta_inter.v VX_jal_response_inter.v VX_mem_req_inter.v VX_mw_wb_inter.v VX_warp_ctl_inter.v VX_wb_inter.v VX_d_e_reg.v VX_f_d_reg.v \ ] analyze -format sverilog $verilog_files