diff --git a/src/riscv_gpgpu/gpgpu_test.c b/src/riscv_gpgpu/gpgpu_test.c index e837b8e6..169d8b80 100644 --- a/src/riscv_gpgpu/gpgpu_test.c +++ b/src/riscv_gpgpu/gpgpu_test.c @@ -5,7 +5,7 @@ extern void printc(char); int main(void); -void matAddition (unsigned, unsigned); +void matMult (unsigned, unsigned); #include "./lib/lib.h" @@ -16,16 +16,29 @@ void matAddition (unsigned, unsigned); -unsigned x[64] = {0}; +unsigned x[256] = {0}; -unsigned y[64] = {0}; +unsigned y[256] = {0}; -unsigned z[64] = {0}; +unsigned z[256] = {0}; -#define MAT_DIM 8 +#define MAT_DIM 16 +#define MAX_THREADS 8 #define NUM_WARPS MAT_DIM -#define NUM_THREADS MAT_DIM +#define NUM_THREADS MAX_THREADS + +typedef struct +{ + unsigned * x; + unsigned * y; + unsigned * z; + unsigned mat_dim; + unsigned offset; + +} matMult_arg_t; + +matMult_arg_t args; int main() { @@ -41,9 +54,16 @@ int main() y[i] = 2; } - createWarps(NUM_WARPS, NUM_THREADS, matAddition, (void *) x, (void *) y, (void *) z); + + args.x = x; + args.y = y; + args.z = z; + args.mat_dim = MAT_DIM; + args.offset = (MAT_DIM/MAX_THREADS); - wait_for_done(NUM_WARPS); + createWarps(NUM_WARPS, NUM_THREADS, matMult, (void *) (&args)); + + wait_for_done(8); print_consol("-------------------------\n"); print_consol("FINAL Z\n"); @@ -60,25 +80,35 @@ int main() } -void matAddition(unsigned tid, unsigned wid) +void matMult(unsigned tid, unsigned wid) { + matMult_arg_t * args = (matMult_arg_t *) get_1st_arg(); - unsigned * x_ptr = (unsigned *) get_1st_arg(); - unsigned * y_ptr = (unsigned *) get_2nd_arg(); - unsigned * z_ptr = (unsigned *) get_3rd_arg(); + unsigned * x_ptr = args->x; + unsigned * y_ptr = args->y; + unsigned * z_ptr = args->z; + unsigned off = args->offset; - unsigned total = 0; - for (unsigned place = 0; place < MAT_DIM; place++) + unsigned i_index = off * tid; + unsigned mat_dim = args->mat_dim; + + for (int iter = 0; iter < off; ++iter) { - unsigned x_i = (wid * MAT_DIM) + place; - unsigned y_i = (MAT_DIM * place) + tid; + unsigned total = 0; + for (unsigned place = 0; place < mat_dim; ++place) + { + unsigned x_i = (wid * mat_dim) + place; + unsigned y_i = (mat_dim * place) + i_index; - total += (x_ptr[x_i] * y_ptr[y_i]); + total += (x_ptr[x_i] * y_ptr[y_i]); + } + + int final_i = (wid * mat_dim) + i_index; + z_ptr[final_i] = total; + i_index++; } - int final_i = (wid * MAT_DIM) + tid; - z_ptr[final_i] = total; return; diff --git a/src/riscv_gpgpu/gpgpu_test.dump b/src/riscv_gpgpu/gpgpu_test.dump index 0d2a5c4a..c42ff5a3 100644 --- a/src/riscv_gpgpu/gpgpu_test.dump +++ b/src/riscv_gpgpu/gpgpu_test.dump @@ -6,656 +6,685 @@ Disassembly of section .text: 80000000 <_start>: 80000000: 7ffff137 lui sp,0x7ffff -80000004: 0cc000ef jal ra,800000d0
+80000004: 0c4000ef jal ra,800000c8
80000008: 00000073 ecall 8000000c : 8000000c: 00068b93 mv s7,a3 -80000010: 00070c13 mv s8,a4 -80000014: 00078c93 mv s9,a5 -80000018: 00080d13 mv s10,a6 -8000001c: 00010f13 mv t5,sp -80000020: 00050393 mv t2,a0 +80000010: 00070d13 mv s10,a4 +80000014: 00010f13 mv t5,sp +80000018: 00050393 mv t2,a0 -80000024 : -80000024: 00100513 li a0,1 +8000001c : +8000001c: 00100513 li a0,1 -80000028 : -80000028: 00755c63 bge a0,t2,80000040 +80000020 : +80000020: 00755c63 bge a0,t2,80000038 -8000002c : -8000002c: 80010113 addi sp,sp,-2048 # 7fffe800 -80000030: 00050313 mv t1,a0 -80000034: 0003506b 0x3506b +80000024 : +80000024: 80010113 addi sp,sp,-2048 # 7fffe800 +80000028: 00050313 mv t1,a0 +8000002c: 0003506b 0x3506b -80000038 : -80000038: 00150513 addi a0,a0,1 -8000003c: fedff06f j 80000028 +80000030 : +80000030: 00150513 addi a0,a0,1 +80000034: fedff06f j 80000020 -80000040 : -80000040: 000f0113 mv sp,t5 -80000044: 00000513 li a0,0 -80000048: 00060f93 mv t6,a2 -8000004c: 00038d93 mv s11,t2 -80000050: 01bfe0eb 0x1bfe0eb -80000054: 00000517 auipc a0,0x0 -80000058: 51450513 addi a0,a0,1300 # 80000568 -8000005c: 0005406b 0x5406b +80000038 : +80000038: 000f0113 mv sp,t5 +8000003c: 00000513 li a0,0 +80000040: 00060f93 mv t6,a2 +80000044: 00038d93 mv s11,t2 +80000048: 01bfe0eb 0x1bfe0eb +8000004c: 00000517 auipc a0,0x0 +80000050: 5b050513 addi a0,a0,1456 # 800005fc +80000054: 0005406b 0x5406b -80000060 : -80000060: 000108b7 lui a7,0x10 -80000064: 00b8a023 sw a1,0(a7) # 10000 -80000068: 00008067 ret +80000058 : +80000058: 000108b7 lui a7,0x10 +8000005c: 00b8a023 sw a1,0(a7) # 10000 +80000060: 00008067 ret -8000006c : -8000006c: 00000317 auipc t1,0x0 -80000070: fa030313 addi t1,t1,-96 # 8000000c -80000074: 0003006b 0x3006b -80000078: 00008067 ret +80000064 : +80000064: 00000317 auipc t1,0x0 +80000068: fa830313 addi t1,t1,-88 # 8000000c +8000006c: 0003006b 0x3006b +80000070: 00008067 ret -8000007c : -8000007c: ff410113 addi sp,sp,-12 -80000080: 00112023 sw ra,0(sp) -80000084: 00b12223 sw a1,4(sp) +80000074 : +80000074: ff410113 addi sp,sp,-12 +80000078: 00112023 sw ra,0(sp) +8000007c: 00b12223 sw a1,4(sp) -80000088 : -80000088: 00054583 lbu a1,0(a0) -8000008c: 00058863 beqz a1,8000009c -80000090: fd1ff0ef jal ra,80000060 -80000094: 00150513 addi a0,a0,1 -80000098: ff1ff06f j 80000088 +80000080 : +80000080: 00054583 lbu a1,0(a0) +80000084: 00058863 beqz a1,80000094 +80000088: fd1ff0ef jal ra,80000058 +8000008c: 00150513 addi a0,a0,1 +80000090: ff1ff06f j 80000080 -8000009c : -8000009c: 00012083 lw ra,0(sp) -800000a0: 00412583 lw a1,4(sp) -800000a4: 00c10113 addi sp,sp,12 -800000a8: 00008067 ret +80000094 : +80000094: 00012083 lw ra,0(sp) +80000098: 00412583 lw a1,4(sp) +8000009c: 00c10113 addi sp,sp,12 +800000a0: 00008067 ret -800000ac : -800000ac: ff410113 addi sp,sp,-12 -800000b0: 00112023 sw ra,0(sp) -800000b4: 00b12223 sw a1,4(sp) -800000b8: 03050593 addi a1,a0,48 -800000bc: fa5ff0ef jal ra,80000060 -800000c0: 00012083 lw ra,0(sp) -800000c4: 00412583 lw a1,4(sp) -800000c8: 00c10113 addi sp,sp,12 -800000cc: 00008067 ret +800000a4 : +800000a4: ff410113 addi sp,sp,-12 +800000a8: 00112023 sw ra,0(sp) +800000ac: 00b12223 sw a1,4(sp) +800000b0: 03050593 addi a1,a0,48 +800000b4: fa5ff0ef jal ra,80000058 +800000b8: 00012083 lw ra,0(sp) +800000bc: 00412583 lw a1,4(sp) +800000c0: 00c10113 addi sp,sp,12 +800000c4: 00008067 ret -800000d0
: -800000d0: fe010113 addi sp,sp,-32 -800000d4: 00112e23 sw ra,28(sp) -800000d8: 00812c23 sw s0,24(sp) -800000dc: 02010413 addi s0,sp,32 -800000e0: fe042623 sw zero,-20(s0) -800000e4: 0300006f j 80000114 -800000e8: fec42703 lw a4,-20(s0) -800000ec: 65400793 li a5,1620 -800000f0: 02f70733 mul a4,a4,a5 -800000f4: 810007b7 lui a5,0x81000 -800000f8: 46078793 addi a5,a5,1120 # 81000460 -800000fc: 00f707b3 add a5,a4,a5 -80000100: 00078513 mv a0,a5 -80000104: 23c000ef jal ra,80000340 -80000108: fec42783 lw a5,-20(s0) -8000010c: 00178793 addi a5,a5,1 -80000110: fef42623 sw a5,-20(s0) -80000114: fec42703 lw a4,-20(s0) -80000118: 00700793 li a5,7 -8000011c: fce7d6e3 bge a5,a4,800000e8 -80000120: fe042423 sw zero,-24(s0) -80000124: 0480006f j 8000016c -80000128: 810007b7 lui a5,0x81000 -8000012c: fe842703 lw a4,-24(s0) -80000130: 00271713 slli a4,a4,0x2 -80000134: 15478793 addi a5,a5,340 # 81000154 -80000138: 00f707b3 add a5,a4,a5 -8000013c: 00300713 li a4,3 -80000140: 00e7a023 sw a4,0(a5) -80000144: 810007b7 lui a5,0x81000 -80000148: fe842703 lw a4,-24(s0) -8000014c: 00271713 slli a4,a4,0x2 -80000150: 25478793 addi a5,a5,596 # 81000254 -80000154: 00f707b3 add a5,a4,a5 -80000158: 00200713 li a4,2 -8000015c: 00e7a023 sw a4,0(a5) -80000160: fe842783 lw a5,-24(s0) -80000164: 00178793 addi a5,a5,1 -80000168: fef42423 sw a5,-24(s0) -8000016c: fe842703 lw a4,-24(s0) -80000170: 03f00793 li a5,63 -80000174: fae7dae3 bge a5,a4,80000128 -80000178: 810007b7 lui a5,0x81000 -8000017c: 35478793 addi a5,a5,852 # 81000354 -80000180: 81000737 lui a4,0x81000 -80000184: 25470713 addi a4,a4,596 # 81000254 -80000188: 810006b7 lui a3,0x81000 -8000018c: 15468693 addi a3,a3,340 # 81000154 -80000190: 80000637 lui a2,0x80000 -80000194: 24c60613 addi a2,a2,588 # 8000024c -80000198: 00800593 li a1,8 -8000019c: 00800513 li a0,8 -800001a0: 590000ef jal ra,80000730 -800001a4: 00800513 li a0,8 -800001a8: 680000ef jal ra,80000828 -800001ac: 810007b7 lui a5,0x81000 -800001b0: 04078513 addi a0,a5,64 # 81000040 -800001b4: ec9ff0ef jal ra,8000007c -800001b8: 810007b7 lui a5,0x81000 -800001bc: 05c78513 addi a0,a5,92 # 8100005c -800001c0: ebdff0ef jal ra,8000007c -800001c4: fe042223 sw zero,-28(s0) -800001c8: 0540006f j 8000021c -800001cc: fe442783 lw a5,-28(s0) -800001d0: 0077f793 andi a5,a5,7 -800001d4: 00079863 bnez a5,800001e4 -800001d8: 810007b7 lui a5,0x81000 -800001dc: 06878513 addi a0,a5,104 # 81000068 -800001e0: e9dff0ef jal ra,8000007c -800001e4: 810007b7 lui a5,0x81000 -800001e8: fe442703 lw a4,-28(s0) -800001ec: 00271713 slli a4,a4,0x2 -800001f0: 35478793 addi a5,a5,852 # 81000354 -800001f4: 00f707b3 add a5,a4,a5 -800001f8: 0007a783 lw a5,0(a5) -800001fc: 00078513 mv a0,a5 -80000200: 2a4000ef jal ra,800004a4 -80000204: 810007b7 lui a5,0x81000 -80000208: 06c78513 addi a0,a5,108 # 8100006c -8000020c: e71ff0ef jal ra,8000007c -80000210: fe442783 lw a5,-28(s0) -80000214: 00178793 addi a5,a5,1 -80000218: fef42223 sw a5,-28(s0) -8000021c: fe442703 lw a4,-28(s0) -80000220: 03f00793 li a5,63 -80000224: fae7d4e3 bge a5,a4,800001cc -80000228: 810007b7 lui a5,0x81000 -8000022c: 07078513 addi a0,a5,112 # 81000070 -80000230: e4dff0ef jal ra,8000007c -80000234: 00000793 li a5,0 -80000238: 00078513 mv a0,a5 -8000023c: 01c12083 lw ra,28(sp) -80000240: 01812403 lw s0,24(sp) -80000244: 02010113 addi sp,sp,32 -80000248: 00008067 ret +800000c8
: +800000c8: fe010113 addi sp,sp,-32 +800000cc: 00112e23 sw ra,28(sp) +800000d0: 00812c23 sw s0,24(sp) +800000d4: 02010413 addi s0,sp,32 +800000d8: fe042623 sw zero,-20(s0) +800000dc: 0300006f j 8000010c +800000e0: fec42703 lw a4,-20(s0) +800000e4: 4c400793 li a5,1220 +800000e8: 02f70733 mul a4,a4,a5 +800000ec: 810017b7 lui a5,0x81001 +800000f0: d7478793 addi a5,a5,-652 # 81000d74 +800000f4: 00f707b3 add a5,a4,a5 +800000f8: 00078513 mv a0,a5 +800000fc: 2f8000ef jal ra,800003f4 +80000100: fec42783 lw a5,-20(s0) +80000104: 00178793 addi a5,a5,1 +80000108: fef42623 sw a5,-20(s0) +8000010c: fec42703 lw a4,-20(s0) +80000110: 00700793 li a5,7 +80000114: fce7d6e3 bge a5,a4,800000e0 +80000118: fe042423 sw zero,-24(s0) +8000011c: 0480006f j 80000164 +80000120: 810007b7 lui a5,0x81000 +80000124: fe842703 lw a4,-24(s0) +80000128: 00271713 slli a4,a4,0x2 +8000012c: 15478793 addi a5,a5,340 # 81000154 +80000130: 00f707b3 add a5,a4,a5 +80000134: 00300713 li a4,3 +80000138: 00e7a023 sw a4,0(a5) +8000013c: 810007b7 lui a5,0x81000 +80000140: fe842703 lw a4,-24(s0) +80000144: 00271713 slli a4,a4,0x2 +80000148: 55478793 addi a5,a5,1364 # 81000554 +8000014c: 00f707b3 add a5,a4,a5 +80000150: 00200713 li a4,2 +80000154: 00e7a023 sw a4,0(a5) +80000158: fe842783 lw a5,-24(s0) +8000015c: 00178793 addi a5,a5,1 +80000160: fef42423 sw a5,-24(s0) +80000164: fe842703 lw a4,-24(s0) +80000168: 0ff00793 li a5,255 +8000016c: fae7dae3 bge a5,a4,80000120 +80000170: 810017b7 lui a5,0x81001 +80000174: 81000737 lui a4,0x81000 +80000178: 15470713 addi a4,a4,340 # 81000154 +8000017c: d6e7a023 sw a4,-672(a5) # 81000d60 +80000180: 810017b7 lui a5,0x81001 +80000184: d6078793 addi a5,a5,-672 # 81000d60 +80000188: 81000737 lui a4,0x81000 +8000018c: 55470713 addi a4,a4,1364 # 81000554 +80000190: 00e7a223 sw a4,4(a5) +80000194: 810017b7 lui a5,0x81001 +80000198: d6078793 addi a5,a5,-672 # 81000d60 +8000019c: 81001737 lui a4,0x81001 +800001a0: 95470713 addi a4,a4,-1708 # 81000954 +800001a4: 00e7a423 sw a4,8(a5) +800001a8: 810017b7 lui a5,0x81001 +800001ac: d6078793 addi a5,a5,-672 # 81000d60 +800001b0: 01000713 li a4,16 +800001b4: 00e7a623 sw a4,12(a5) +800001b8: 810017b7 lui a5,0x81001 +800001bc: d6078793 addi a5,a5,-672 # 81000d60 +800001c0: 00200713 li a4,2 +800001c4: 00e7a823 sw a4,16(a5) +800001c8: 810017b7 lui a5,0x81001 +800001cc: d6078693 addi a3,a5,-672 # 81000d60 +800001d0: 800007b7 lui a5,0x80000 +800001d4: 28c78613 addi a2,a5,652 # 8000028c +800001d8: 00800593 li a1,8 +800001dc: 01000513 li a0,16 +800001e0: 5dc000ef jal ra,800007bc +800001e4: 00800513 li a0,8 +800001e8: 6b4000ef jal ra,8000089c +800001ec: 810007b7 lui a5,0x81000 +800001f0: 04078513 addi a0,a5,64 # 81000040 +800001f4: e81ff0ef jal ra,80000074 +800001f8: 810007b7 lui a5,0x81000 +800001fc: 05c78513 addi a0,a5,92 # 8100005c +80000200: e75ff0ef jal ra,80000074 +80000204: fe042223 sw zero,-28(s0) +80000208: 0540006f j 8000025c +8000020c: fe442783 lw a5,-28(s0) +80000210: 00f7f793 andi a5,a5,15 +80000214: 00079863 bnez a5,80000224 +80000218: 810007b7 lui a5,0x81000 +8000021c: 06878513 addi a0,a5,104 # 81000068 +80000220: e55ff0ef jal ra,80000074 +80000224: 810017b7 lui a5,0x81001 +80000228: fe442703 lw a4,-28(s0) +8000022c: 00271713 slli a4,a4,0x2 +80000230: 95478793 addi a5,a5,-1708 # 81000954 +80000234: 00f707b3 add a5,a4,a5 +80000238: 0007a783 lw a5,0(a5) +8000023c: 00078513 mv a0,a5 +80000240: 2f8000ef jal ra,80000538 +80000244: 810007b7 lui a5,0x81000 +80000248: 06c78513 addi a0,a5,108 # 8100006c +8000024c: e29ff0ef jal ra,80000074 +80000250: fe442783 lw a5,-28(s0) +80000254: 00178793 addi a5,a5,1 +80000258: fef42223 sw a5,-28(s0) +8000025c: fe442703 lw a4,-28(s0) +80000260: 0ff00793 li a5,255 +80000264: fae7d4e3 bge a5,a4,8000020c +80000268: 810007b7 lui a5,0x81000 +8000026c: 07078513 addi a0,a5,112 # 81000070 +80000270: e05ff0ef jal ra,80000074 +80000274: 00000793 li a5,0 +80000278: 00078513 mv a0,a5 +8000027c: 01c12083 lw ra,28(sp) +80000280: 01812403 lw s0,24(sp) +80000284: 02010113 addi sp,sp,32 +80000288: 00008067 ret -8000024c : -8000024c: fc010113 addi sp,sp,-64 -80000250: 02112e23 sw ra,60(sp) -80000254: 02812c23 sw s0,56(sp) -80000258: 04010413 addi s0,sp,64 -8000025c: fca42623 sw a0,-52(s0) -80000260: fcb42423 sw a1,-56(s0) -80000264: 648000ef jal ra,800008ac -80000268: fea42223 sw a0,-28(s0) -8000026c: 668000ef jal ra,800008d4 -80000270: fea42023 sw a0,-32(s0) -80000274: 688000ef jal ra,800008fc -80000278: fca42e23 sw a0,-36(s0) -8000027c: fe042623 sw zero,-20(s0) -80000280: fe042423 sw zero,-24(s0) -80000284: 0700006f j 800002f4 -80000288: fc842783 lw a5,-56(s0) -8000028c: 00379793 slli a5,a5,0x3 -80000290: fe842703 lw a4,-24(s0) -80000294: 00f707b3 add a5,a4,a5 -80000298: fcf42c23 sw a5,-40(s0) -8000029c: fe842783 lw a5,-24(s0) -800002a0: 00379793 slli a5,a5,0x3 -800002a4: fcc42703 lw a4,-52(s0) -800002a8: 00f707b3 add a5,a4,a5 -800002ac: fcf42a23 sw a5,-44(s0) -800002b0: fd842783 lw a5,-40(s0) -800002b4: 00279793 slli a5,a5,0x2 -800002b8: fe442703 lw a4,-28(s0) -800002bc: 00f707b3 add a5,a4,a5 -800002c0: 0007a703 lw a4,0(a5) -800002c4: fd442783 lw a5,-44(s0) -800002c8: 00279793 slli a5,a5,0x2 -800002cc: fe042683 lw a3,-32(s0) -800002d0: 00f687b3 add a5,a3,a5 -800002d4: 0007a783 lw a5,0(a5) -800002d8: 02f707b3 mul a5,a4,a5 -800002dc: fec42703 lw a4,-20(s0) -800002e0: 00f707b3 add a5,a4,a5 -800002e4: fef42623 sw a5,-20(s0) -800002e8: fe842783 lw a5,-24(s0) -800002ec: 00178793 addi a5,a5,1 -800002f0: fef42423 sw a5,-24(s0) -800002f4: fe842703 lw a4,-24(s0) -800002f8: 00700793 li a5,7 -800002fc: f8e7f6e3 bgeu a5,a4,80000288 -80000300: fc842783 lw a5,-56(s0) -80000304: 00379713 slli a4,a5,0x3 -80000308: fcc42783 lw a5,-52(s0) -8000030c: 00f707b3 add a5,a4,a5 -80000310: fcf42823 sw a5,-48(s0) -80000314: fd042783 lw a5,-48(s0) -80000318: 00279793 slli a5,a5,0x2 -8000031c: fdc42703 lw a4,-36(s0) -80000320: 00f707b3 add a5,a4,a5 -80000324: fec42703 lw a4,-20(s0) -80000328: 00e7a023 sw a4,0(a5) -8000032c: 00000013 nop -80000330: 03c12083 lw ra,60(sp) -80000334: 03812403 lw s0,56(sp) -80000338: 04010113 addi sp,sp,64 -8000033c: 00008067 ret +8000028c : +8000028c: fa010113 addi sp,sp,-96 +80000290: 04112e23 sw ra,92(sp) +80000294: 04812c23 sw s0,88(sp) +80000298: 06010413 addi s0,sp,96 +8000029c: faa42623 sw a0,-84(s0) +800002a0: fab42423 sw a1,-88(s0) +800002a4: 67c000ef jal ra,80000920 +800002a8: fca42e23 sw a0,-36(s0) +800002ac: fdc42783 lw a5,-36(s0) +800002b0: 0007a783 lw a5,0(a5) +800002b4: fcf42c23 sw a5,-40(s0) +800002b8: fdc42783 lw a5,-36(s0) +800002bc: 0047a783 lw a5,4(a5) +800002c0: fcf42a23 sw a5,-44(s0) +800002c4: fdc42783 lw a5,-36(s0) +800002c8: 0087a783 lw a5,8(a5) +800002cc: fcf42823 sw a5,-48(s0) +800002d0: fdc42783 lw a5,-36(s0) +800002d4: 0107a783 lw a5,16(a5) +800002d8: fcf42623 sw a5,-52(s0) +800002dc: fcc42703 lw a4,-52(s0) +800002e0: fac42783 lw a5,-84(s0) +800002e4: 02f707b3 mul a5,a4,a5 +800002e8: fef42623 sw a5,-20(s0) +800002ec: fdc42783 lw a5,-36(s0) +800002f0: 00c7a783 lw a5,12(a5) +800002f4: fcf42423 sw a5,-56(s0) +800002f8: fe042423 sw zero,-24(s0) +800002fc: 0d80006f j 800003d4 +80000300: fe042223 sw zero,-28(s0) +80000304: fe042023 sw zero,-32(s0) +80000308: 0780006f j 80000380 +8000030c: fa842703 lw a4,-88(s0) +80000310: fc842783 lw a5,-56(s0) +80000314: 02f707b3 mul a5,a4,a5 +80000318: fe042703 lw a4,-32(s0) +8000031c: 00f707b3 add a5,a4,a5 +80000320: fcf42223 sw a5,-60(s0) +80000324: fc842703 lw a4,-56(s0) +80000328: fe042783 lw a5,-32(s0) +8000032c: 02f707b3 mul a5,a4,a5 +80000330: fec42703 lw a4,-20(s0) +80000334: 00f707b3 add a5,a4,a5 +80000338: fcf42023 sw a5,-64(s0) +8000033c: fc442783 lw a5,-60(s0) +80000340: 00279793 slli a5,a5,0x2 +80000344: fd842703 lw a4,-40(s0) +80000348: 00f707b3 add a5,a4,a5 +8000034c: 0007a703 lw a4,0(a5) +80000350: fc042783 lw a5,-64(s0) +80000354: 00279793 slli a5,a5,0x2 +80000358: fd442683 lw a3,-44(s0) +8000035c: 00f687b3 add a5,a3,a5 +80000360: 0007a783 lw a5,0(a5) +80000364: 02f707b3 mul a5,a4,a5 +80000368: fe442703 lw a4,-28(s0) +8000036c: 00f707b3 add a5,a4,a5 +80000370: fef42223 sw a5,-28(s0) +80000374: fe042783 lw a5,-32(s0) +80000378: 00178793 addi a5,a5,1 +8000037c: fef42023 sw a5,-32(s0) +80000380: fe042703 lw a4,-32(s0) +80000384: fc842783 lw a5,-56(s0) +80000388: f8f762e3 bltu a4,a5,8000030c +8000038c: fa842703 lw a4,-88(s0) +80000390: fc842783 lw a5,-56(s0) +80000394: 02f70733 mul a4,a4,a5 +80000398: fec42783 lw a5,-20(s0) +8000039c: 00f707b3 add a5,a4,a5 +800003a0: faf42e23 sw a5,-68(s0) +800003a4: fbc42783 lw a5,-68(s0) +800003a8: 00279793 slli a5,a5,0x2 +800003ac: fd042703 lw a4,-48(s0) +800003b0: 00f707b3 add a5,a4,a5 +800003b4: fe442703 lw a4,-28(s0) +800003b8: 00e7a023 sw a4,0(a5) +800003bc: fec42783 lw a5,-20(s0) +800003c0: 00178793 addi a5,a5,1 +800003c4: fef42623 sw a5,-20(s0) +800003c8: fe842783 lw a5,-24(s0) +800003cc: 00178793 addi a5,a5,1 +800003d0: fef42423 sw a5,-24(s0) +800003d4: fe842783 lw a5,-24(s0) +800003d8: fcc42703 lw a4,-52(s0) +800003dc: f2e7e2e3 bltu a5,a4,80000300 +800003e0: 00000013 nop +800003e4: 05c12083 lw ra,92(sp) +800003e8: 05812403 lw s0,88(sp) +800003ec: 06010113 addi sp,sp,96 +800003f0: 00008067 ret -80000340 : -80000340: 00050293 mv t0,a0 -80000344: 00000313 li t1,0 -80000348: 00700393 li t2,7 -8000034c: 0062a023 sw t1,0(t0) -80000350: 0062a223 sw t1,4(t0) -80000354: 0062a423 sw t1,8(t0) -80000358: 0072a623 sw t2,12(t0) -8000035c: 0062a823 sw t1,16(t0) -80000360: 00008067 ret +800003f4 : +800003f4: 00050293 mv t0,a0 +800003f8: 00000313 li t1,0 +800003fc: 00700393 li t2,7 +80000400: 0062a023 sw t1,0(t0) +80000404: 0062a223 sw t1,4(t0) +80000408: 0062a423 sw t1,8(t0) +8000040c: 0072a623 sw t2,12(t0) +80000410: 0062a823 sw t1,16(t0) +80000414: 00008067 ret -80000364 : -80000364: 00050293 mv t0,a0 -80000368: 0082a303 lw t1,8(t0) -8000036c: 00130313 addi t1,t1,1 -80000370: 0062a423 sw t1,8(t0) -80000374: 01428313 addi t1,t0,20 -80000378: 0042ae83 lw t4,4(t0) -8000037c: 005e9393 slli t2,t4,0x5 -80000380: 00730333 add t1,t1,t2 -80000384: 0005ae03 lw t3,0(a1) -80000388: 01c32023 sw t3,0(t1) -8000038c: 0045ae03 lw t3,4(a1) -80000390: 01c32223 sw t3,4(t1) -80000394: 0085ae03 lw t3,8(a1) -80000398: 01c32423 sw t3,8(t1) -8000039c: 00c5ae03 lw t3,12(a1) -800003a0: 01c32623 sw t3,12(t1) -800003a4: 0105ae03 lw t3,16(a1) -800003a8: 01c32823 sw t3,16(t1) -800003ac: 0145ae03 lw t3,20(a1) -800003b0: 01c32a23 sw t3,20(t1) -800003b4: 0185ae03 lw t3,24(a1) -800003b8: 01c32c23 sw t3,24(t1) -800003bc: 01c5ae03 lw t3,28(a1) -800003c0: 01c32e23 sw t3,28(t1) -800003c4: 001e8e93 addi t4,t4,1 -800003c8: 03200f13 li t5,50 -800003cc: 01ee9463 bne t4,t5,800003d4 -800003d0: 00000e93 li t4,0 +80000418 : +80000418: 00050293 mv t0,a0 +8000041c: 0082a303 lw t1,8(t0) +80000420: 00130313 addi t1,t1,1 +80000424: 0062a423 sw t1,8(t0) +80000428: 01428313 addi t1,t0,20 +8000042c: 0042ae83 lw t4,4(t0) +80000430: 005e9393 slli t2,t4,0x5 +80000434: 00730333 add t1,t1,t2 +80000438: 0005ae03 lw t3,0(a1) +8000043c: 01c32023 sw t3,0(t1) +80000440: 0045ae03 lw t3,4(a1) +80000444: 01c32223 sw t3,4(t1) +80000448: 0085ae03 lw t3,8(a1) +8000044c: 01c32423 sw t3,8(t1) +80000450: 00c5ae03 lw t3,12(a1) +80000454: 01c32623 sw t3,12(t1) +80000458: 0105ae03 lw t3,16(a1) +8000045c: 01c32823 sw t3,16(t1) +80000460: 0145ae03 lw t3,20(a1) +80000464: 01c32a23 sw t3,20(t1) +80000468: 001e8e93 addi t4,t4,1 +8000046c: 03200f13 li t5,50 +80000470: 01ee9463 bne t4,t5,80000478 +80000474: 00000e93 li t4,0 -800003d4 : -800003d4: 01d2a223 sw t4,4(t0) -800003d8: 00008067 ret +80000478 : +80000478: 01d2a223 sw t4,4(t0) +8000047c: 00008067 ret -800003dc : -800003dc: 00050293 mv t0,a0 -800003e0: 0082a303 lw t1,8(t0) -800003e4: fff30313 addi t1,t1,-1 -800003e8: 0062a423 sw t1,8(t0) -800003ec: 01428313 addi t1,t0,20 -800003f0: 0002ae83 lw t4,0(t0) -800003f4: 03200f93 li t6,50 -800003f8: 000e8f13 mv t5,t4 -800003fc: 001f0f13 addi t5,t5,1 -80000400: 01ff1463 bne t5,t6,80000408 -80000404: 00000f13 li t5,0 +80000480 : +80000480: 00050293 mv t0,a0 +80000484: 0082a303 lw t1,8(t0) +80000488: fff30313 addi t1,t1,-1 +8000048c: 0062a423 sw t1,8(t0) +80000490: 01428313 addi t1,t0,20 +80000494: 0002ae83 lw t4,0(t0) +80000498: 03200f93 li t6,50 +8000049c: 000e8f13 mv t5,t4 +800004a0: 001f0f13 addi t5,t5,1 +800004a4: 01ff1463 bne t5,t6,800004ac +800004a8: 00000f13 li t5,0 -80000408 : -80000408: 01e2a023 sw t5,0(t0) -8000040c: 005e9393 slli t2,t4,0x5 -80000410: 00730333 add t1,t1,t2 -80000414: 00032e03 lw t3,0(t1) -80000418: 01c5a023 sw t3,0(a1) -8000041c: 00432e03 lw t3,4(t1) -80000420: 01c5a223 sw t3,4(a1) -80000424: 00832e03 lw t3,8(t1) -80000428: 01c5a423 sw t3,8(a1) -8000042c: 00c32e03 lw t3,12(t1) -80000430: 01c5a623 sw t3,12(a1) -80000434: 01032e03 lw t3,16(t1) -80000438: 01c5a823 sw t3,16(a1) -8000043c: 01432e03 lw t3,20(t1) -80000440: 01c5aa23 sw t3,20(a1) -80000444: 01832e03 lw t3,24(t1) -80000448: 01c5ac23 sw t3,24(a1) -8000044c: 01c32e03 lw t3,28(t1) -80000450: 01c5ae23 sw t3,28(a1) -80000454: 00008067 ret +800004ac : +800004ac: 01e2a023 sw t5,0(t0) +800004b0: 005e9393 slli t2,t4,0x5 +800004b4: 00730333 add t1,t1,t2 +800004b8: 00032e03 lw t3,0(t1) +800004bc: 01c5a023 sw t3,0(a1) +800004c0: 00432e03 lw t3,4(t1) +800004c4: 01c5a223 sw t3,4(a1) +800004c8: 00832e03 lw t3,8(t1) +800004cc: 01c5a423 sw t3,8(a1) +800004d0: 00c32e03 lw t3,12(t1) +800004d4: 01c5a623 sw t3,12(a1) +800004d8: 01032e03 lw t3,16(t1) +800004dc: 01c5a823 sw t3,16(a1) +800004e0: 01432e03 lw t3,20(t1) +800004e4: 01c5aa23 sw t3,20(a1) +800004e8: 00008067 ret -80000458 : -80000458: 00050293 mv t0,a0 -8000045c: 0082a303 lw t1,8(t0) -80000460: 00000513 li a0,0 -80000464: 03200e13 li t3,50 -80000468: 006e1463 bne t3,t1,80000470 -8000046c: 00150513 addi a0,a0,1 +800004ec : +800004ec: 00050293 mv t0,a0 +800004f0: 0082a303 lw t1,8(t0) +800004f4: 00000513 li a0,0 +800004f8: 03200e13 li t3,50 +800004fc: 006e1463 bne t3,t1,80000504 +80000500: 00150513 addi a0,a0,1 -80000470 : -80000470: 00008067 ret +80000504 : +80000504: 00008067 ret -80000474 : -80000474: 00050293 mv t0,a0 -80000478: 0082a303 lw t1,8(t0) -8000047c: 00000513 li a0,0 -80000480: 00000e13 li t3,0 -80000484: 006e1463 bne t3,t1,8000048c -80000488: 00150513 addi a0,a0,1 +80000508 : +80000508: 00050293 mv t0,a0 +8000050c: 0082a303 lw t1,8(t0) +80000510: 00000513 li a0,0 +80000514: 00000e13 li t3,0 +80000518: 006e1463 bne t3,t1,80000520 +8000051c: 00150513 addi a0,a0,1 -8000048c : -8000048c: 00008067 ret +80000520 : +80000520: 00008067 ret -80000490 : -80000490: 00050293 mv t0,a0 -80000494: 00c2a303 lw t1,12(t0) -80000498: 0102a383 lw t2,16(t0) -8000049c: 0063b533 sltu a0,t2,t1 -800004a0: 00008067 ret +80000524 : +80000524: 00050293 mv t0,a0 +80000528: 00c2a303 lw t1,12(t0) +8000052c: 0102a383 lw t2,16(t0) +80000530: 0063b533 sltu a0,t2,t1 +80000534: 00008067 ret -800004a4 : -800004a4: fd010113 addi sp,sp,-48 -800004a8: 02112623 sw ra,44(sp) -800004ac: 02812423 sw s0,40(sp) -800004b0: 03010413 addi s0,sp,48 -800004b4: fca42e23 sw a0,-36(s0) -800004b8: fdc42703 lw a4,-36(s0) -800004bc: 00f00793 li a5,15 -800004c0: 02e7e463 bltu a5,a4,800004e8 -800004c4: 810007b7 lui a5,0x81000 -800004c8: fdc42703 lw a4,-36(s0) -800004cc: 00271713 slli a4,a4,0x2 -800004d0: 11478793 addi a5,a5,276 # 81000114 -800004d4: 00f707b3 add a5,a4,a5 -800004d8: 0007a783 lw a5,0(a5) -800004dc: 00078513 mv a0,a5 -800004e0: b9dff0ef jal ra,8000007c -800004e4: 0740006f j 80000558 -800004e8: 02000793 li a5,32 -800004ec: fef42623 sw a5,-20(s0) -800004f0: fe0405a3 sb zero,-21(s0) -800004f4: fec42783 lw a5,-20(s0) -800004f8: ffc78793 addi a5,a5,-4 -800004fc: fdc42703 lw a4,-36(s0) -80000500: 00f757b3 srl a5,a4,a5 -80000504: 00f7f793 andi a5,a5,15 -80000508: fef42223 sw a5,-28(s0) -8000050c: fe442783 lw a5,-28(s0) -80000510: 00078663 beqz a5,8000051c -80000514: 00100793 li a5,1 -80000518: fef405a3 sb a5,-21(s0) -8000051c: feb44783 lbu a5,-21(s0) -80000520: 02078263 beqz a5,80000544 -80000524: 810007b7 lui a5,0x81000 -80000528: fe442703 lw a4,-28(s0) -8000052c: 00271713 slli a4,a4,0x2 -80000530: 11478793 addi a5,a5,276 # 81000114 -80000534: 00f707b3 add a5,a4,a5 -80000538: 0007a783 lw a5,0(a5) -8000053c: 00078513 mv a0,a5 -80000540: b3dff0ef jal ra,8000007c -80000544: fec42783 lw a5,-20(s0) -80000548: ffc78793 addi a5,a5,-4 -8000054c: fef42623 sw a5,-20(s0) -80000550: fec42783 lw a5,-20(s0) -80000554: faf040e3 bgtz a5,800004f4 -80000558: 02c12083 lw ra,44(sp) -8000055c: 02812403 lw s0,40(sp) -80000560: 03010113 addi sp,sp,48 -80000564: 00008067 ret +80000538 : +80000538: fd010113 addi sp,sp,-48 +8000053c: 02112623 sw ra,44(sp) +80000540: 02812423 sw s0,40(sp) +80000544: 03010413 addi s0,sp,48 +80000548: fca42e23 sw a0,-36(s0) +8000054c: fdc42703 lw a4,-36(s0) +80000550: 00f00793 li a5,15 +80000554: 02e7e463 bltu a5,a4,8000057c +80000558: 810007b7 lui a5,0x81000 +8000055c: fdc42703 lw a4,-36(s0) +80000560: 00271713 slli a4,a4,0x2 +80000564: 11478793 addi a5,a5,276 # 81000114 +80000568: 00f707b3 add a5,a4,a5 +8000056c: 0007a783 lw a5,0(a5) +80000570: 00078513 mv a0,a5 +80000574: b01ff0ef jal ra,80000074 +80000578: 0740006f j 800005ec +8000057c: 02000793 li a5,32 +80000580: fef42623 sw a5,-20(s0) +80000584: fe0405a3 sb zero,-21(s0) +80000588: fec42783 lw a5,-20(s0) +8000058c: ffc78793 addi a5,a5,-4 +80000590: fdc42703 lw a4,-36(s0) +80000594: 00f757b3 srl a5,a4,a5 +80000598: 00f7f793 andi a5,a5,15 +8000059c: fef42223 sw a5,-28(s0) +800005a0: fe442783 lw a5,-28(s0) +800005a4: 00078663 beqz a5,800005b0 +800005a8: 00100793 li a5,1 +800005ac: fef405a3 sb a5,-21(s0) +800005b0: feb44783 lbu a5,-21(s0) +800005b4: 02078263 beqz a5,800005d8 +800005b8: 810007b7 lui a5,0x81000 +800005bc: fe442703 lw a4,-28(s0) +800005c0: 00271713 slli a4,a4,0x2 +800005c4: 11478793 addi a5,a5,276 # 81000114 +800005c8: 00f707b3 add a5,a4,a5 +800005cc: 0007a783 lw a5,0(a5) +800005d0: 00078513 mv a0,a5 +800005d4: aa1ff0ef jal ra,80000074 +800005d8: fec42783 lw a5,-20(s0) +800005dc: ffc78793 addi a5,a5,-4 +800005e0: fef42623 sw a5,-20(s0) +800005e4: fec42783 lw a5,-20(s0) +800005e8: faf040e3 bgtz a5,80000588 +800005ec: 02c12083 lw ra,44(sp) +800005f0: 02812403 lw s0,40(sp) +800005f4: 03010113 addi sp,sp,48 +800005f8: 00008067 ret -80000568 : -80000568: fd010113 addi sp,sp,-48 -8000056c: 02112623 sw ra,44(sp) -80000570: 02812423 sw s0,40(sp) -80000574: 03a12223 sw s10,36(sp) -80000578: 03010413 addi s0,sp,48 -8000057c: 000d0713 mv a4,s10 -80000580: 65400793 li a5,1620 -80000584: 02f70733 mul a4,a4,a5 -80000588: 810007b7 lui a5,0x81000 -8000058c: 46078793 addi a5,a5,1120 # 81000460 -80000590: 00f707b3 add a5,a4,a5 -80000594: 00078513 mv a0,a5 -80000598: eddff0ef jal ra,80000474 -8000059c: 00050793 mv a5,a0 -800005a0: 02078063 beqz a5,800005c0 -800005a4: 000d0713 mv a4,s10 -800005a8: 810037b7 lui a5,0x81003 -800005ac: 70078793 addi a5,a5,1792 # 81003700 -800005b0: 00f707b3 add a5,a4,a5 -800005b4: 00100713 li a4,1 -800005b8: 00e78023 sb a4,0(a5) -800005bc: 00000073 ecall -800005c0: 000d0713 mv a4,s10 -800005c4: 65400793 li a5,1620 -800005c8: 02f70733 mul a4,a4,a5 -800005cc: 810007b7 lui a5,0x81000 -800005d0: 46078793 addi a5,a5,1120 # 81000460 -800005d4: 00f707b3 add a5,a4,a5 -800005d8: fd040713 addi a4,s0,-48 -800005dc: 00070593 mv a1,a4 -800005e0: 00078513 mv a0,a5 -800005e4: df9ff0ef jal ra,800003dc -800005e8: fd842783 lw a5,-40(s0) -800005ec: 00078113 mv sp,a5 -800005f0: fd442503 lw a0,-44(s0) -800005f4: fd042583 lw a1,-48(s0) -800005f8: fdc42603 lw a2,-36(s0) -800005fc: fe042683 lw a3,-32(s0) -80000600: fe442703 lw a4,-28(s0) -80000604: fe842783 lw a5,-24(s0) -80000608: fec42803 lw a6,-20(s0) -8000060c: a01ff0ef jal ra,8000000c -80000610: 00000073 ecall -80000614: 00000013 nop -80000618: 02c12083 lw ra,44(sp) -8000061c: 02812403 lw s0,40(sp) -80000620: 02412d03 lw s10,36(sp) -80000624: 03010113 addi sp,sp,48 -80000628: 00008067 ret +800005fc : +800005fc: fd010113 addi sp,sp,-48 +80000600: 02112623 sw ra,44(sp) +80000604: 02812423 sw s0,40(sp) +80000608: 03a12223 sw s10,36(sp) +8000060c: 03010413 addi s0,sp,48 +80000610: 000d0713 mv a4,s10 +80000614: 4c400793 li a5,1220 +80000618: 02f70733 mul a4,a4,a5 +8000061c: 810017b7 lui a5,0x81001 +80000620: d7478793 addi a5,a5,-652 # 81000d74 +80000624: 00f707b3 add a5,a4,a5 +80000628: 00078513 mv a0,a5 +8000062c: eddff0ef jal ra,80000508 +80000630: 00050793 mv a5,a0 +80000634: 02078063 beqz a5,80000654 +80000638: 000d0713 mv a4,s10 +8000063c: 810037b7 lui a5,0x81003 +80000640: 39478793 addi a5,a5,916 # 81003394 +80000644: 00f707b3 add a5,a4,a5 +80000648: 00100713 li a4,1 +8000064c: 00e78023 sb a4,0(a5) +80000650: 00000073 ecall +80000654: 000d0713 mv a4,s10 +80000658: 4c400793 li a5,1220 +8000065c: 02f70733 mul a4,a4,a5 +80000660: 810017b7 lui a5,0x81001 +80000664: d7478793 addi a5,a5,-652 # 81000d74 +80000668: 00f707b3 add a5,a4,a5 +8000066c: fd840713 addi a4,s0,-40 +80000670: 00070593 mv a1,a4 +80000674: 00078513 mv a0,a5 +80000678: e09ff0ef jal ra,80000480 +8000067c: fe042783 lw a5,-32(s0) +80000680: 00078113 mv sp,a5 +80000684: fdc42783 lw a5,-36(s0) +80000688: fd842583 lw a1,-40(s0) +8000068c: fe442603 lw a2,-28(s0) +80000690: fe842683 lw a3,-24(s0) +80000694: fec42703 lw a4,-20(s0) +80000698: 00078513 mv a0,a5 +8000069c: 971ff0ef jal ra,8000000c +800006a0: 00000073 ecall +800006a4: 00000013 nop +800006a8: 02c12083 lw ra,44(sp) +800006ac: 02812403 lw s0,40(sp) +800006b0: 02412d03 lw s10,36(sp) +800006b4: 03010113 addi sp,sp,48 +800006b8: 00008067 ret -8000062c : -8000062c: fc010113 addi sp,sp,-64 -80000630: 02112e23 sw ra,60(sp) -80000634: 02812c23 sw s0,56(sp) -80000638: 04010413 addi s0,sp,64 -8000063c: 00010993 mv s3,sp -80000640: fe042623 sw zero,-20(s0) -80000644: 0880006f j 800006cc -80000648: fec42703 lw a4,-20(s0) -8000064c: 65400793 li a5,1620 -80000650: 02f70733 mul a4,a4,a5 -80000654: 810007b7 lui a5,0x81000 -80000658: 46078793 addi a5,a5,1120 # 81000460 -8000065c: 00f707b3 add a5,a4,a5 -80000660: 00078513 mv a0,a5 -80000664: e11ff0ef jal ra,80000474 -80000668: 00050793 mv a5,a0 -8000066c: 04079a63 bnez a5,800006c0 -80000670: fec42703 lw a4,-20(s0) -80000674: 65400793 li a5,1620 -80000678: 02f70733 mul a4,a4,a5 -8000067c: 810007b7 lui a5,0x81000 -80000680: 46078793 addi a5,a5,1120 # 81000460 -80000684: 00f707b3 add a5,a4,a5 -80000688: fcc40713 addi a4,s0,-52 -8000068c: 00070593 mv a1,a4 -80000690: 00078513 mv a0,a5 -80000694: d49ff0ef jal ra,800003dc -80000698: fd442783 lw a5,-44(s0) -8000069c: 00078113 mv sp,a5 -800006a0: fd042503 lw a0,-48(s0) -800006a4: fcc42583 lw a1,-52(s0) -800006a8: fd842603 lw a2,-40(s0) -800006ac: fdc42683 lw a3,-36(s0) -800006b0: fe042703 lw a4,-32(s0) -800006b4: fe442783 lw a5,-28(s0) -800006b8: fe842803 lw a6,-24(s0) -800006bc: 9b1ff0ef jal ra,8000006c -800006c0: fec42783 lw a5,-20(s0) -800006c4: 00178793 addi a5,a5,1 -800006c8: fef42623 sw a5,-20(s0) -800006cc: fec42703 lw a4,-20(s0) -800006d0: 00600793 li a5,6 -800006d4: f6e7dae3 bge a5,a4,80000648 -800006d8: 00098113 mv sp,s3 -800006dc: 00000013 nop -800006e0: 03c12083 lw ra,60(sp) -800006e4: 03812403 lw s0,56(sp) -800006e8: 04010113 addi sp,sp,64 -800006ec: 00008067 ret +800006bc : +800006bc: fd010113 addi sp,sp,-48 +800006c0: 02112623 sw ra,44(sp) +800006c4: 02812423 sw s0,40(sp) +800006c8: 03010413 addi s0,sp,48 +800006cc: 00010993 mv s3,sp +800006d0: fe042623 sw zero,-20(s0) +800006d4: 0840006f j 80000758 +800006d8: fec42703 lw a4,-20(s0) +800006dc: 4c400793 li a5,1220 +800006e0: 02f70733 mul a4,a4,a5 +800006e4: 810017b7 lui a5,0x81001 +800006e8: d7478793 addi a5,a5,-652 # 81000d74 +800006ec: 00f707b3 add a5,a4,a5 +800006f0: 00078513 mv a0,a5 +800006f4: e15ff0ef jal ra,80000508 +800006f8: 00050793 mv a5,a0 +800006fc: 04079863 bnez a5,8000074c +80000700: fec42703 lw a4,-20(s0) +80000704: 4c400793 li a5,1220 +80000708: 02f70733 mul a4,a4,a5 +8000070c: 810017b7 lui a5,0x81001 +80000710: d7478793 addi a5,a5,-652 # 81000d74 +80000714: 00f707b3 add a5,a4,a5 +80000718: fd440713 addi a4,s0,-44 +8000071c: 00070593 mv a1,a4 +80000720: 00078513 mv a0,a5 +80000724: d5dff0ef jal ra,80000480 +80000728: fdc42783 lw a5,-36(s0) +8000072c: 00078113 mv sp,a5 +80000730: fd842783 lw a5,-40(s0) +80000734: fd442583 lw a1,-44(s0) +80000738: fe042603 lw a2,-32(s0) +8000073c: fe442683 lw a3,-28(s0) +80000740: fe842703 lw a4,-24(s0) +80000744: 00078513 mv a0,a5 +80000748: 91dff0ef jal ra,80000064 +8000074c: fec42783 lw a5,-20(s0) +80000750: 00178793 addi a5,a5,1 +80000754: fef42623 sw a5,-20(s0) +80000758: fec42703 lw a4,-20(s0) +8000075c: 00600793 li a5,6 +80000760: f6e7dce3 bge a5,a4,800006d8 +80000764: 00098113 mv sp,s3 +80000768: 00000013 nop +8000076c: 02c12083 lw ra,44(sp) +80000770: 02812403 lw s0,40(sp) +80000774: 03010113 addi sp,sp,48 +80000778: 00008067 ret -800006f0 : -800006f0: fd010113 addi sp,sp,-48 -800006f4: 02812623 sw s0,44(sp) -800006f8: 03010413 addi s0,sp,48 -800006fc: fca42e23 sw a0,-36(s0) -80000700: fe042623 sw zero,-20(s0) -80000704: 0100006f j 80000714 -80000708: fec42783 lw a5,-20(s0) -8000070c: 00178793 addi a5,a5,1 -80000710: fef42623 sw a5,-20(s0) -80000714: fec42703 lw a4,-20(s0) -80000718: fdc42783 lw a5,-36(s0) -8000071c: fef746e3 blt a4,a5,80000708 -80000720: 00000013 nop -80000724: 02c12403 lw s0,44(sp) -80000728: 03010113 addi sp,sp,48 -8000072c: 00008067 ret +8000077c : +8000077c: fd010113 addi sp,sp,-48 +80000780: 02812623 sw s0,44(sp) +80000784: 03010413 addi s0,sp,48 +80000788: fca42e23 sw a0,-36(s0) +8000078c: fe042623 sw zero,-20(s0) +80000790: 0100006f j 800007a0 +80000794: fec42783 lw a5,-20(s0) +80000798: 00178793 addi a5,a5,1 +8000079c: fef42623 sw a5,-20(s0) +800007a0: fec42703 lw a4,-20(s0) +800007a4: fdc42783 lw a5,-36(s0) +800007a8: fef746e3 blt a4,a5,80000794 +800007ac: 00000013 nop +800007b0: 02c12403 lw s0,44(sp) +800007b4: 03010113 addi sp,sp,48 +800007b8: 00008067 ret -80000730 : -80000730: fa010113 addi sp,sp,-96 -80000734: 04112e23 sw ra,92(sp) -80000738: 04812c23 sw s0,88(sp) -8000073c: 06010413 addi s0,sp,96 -80000740: faa42e23 sw a0,-68(s0) -80000744: fab42c23 sw a1,-72(s0) -80000748: fac42a23 sw a2,-76(s0) -8000074c: fad42823 sw a3,-80(s0) -80000750: fae42623 sw a4,-84(s0) -80000754: faf42423 sw a5,-88(s0) -80000758: 00010913 mv s2,sp -8000075c: fe042623 sw zero,-20(s0) -80000760: fe042423 sw zero,-24(s0) -80000764: 09c0006f j 80000800 -80000768: ffff09b7 lui s3,0xffff0 -8000076c: 01310133 add sp,sp,s3 -80000770: fe842783 lw a5,-24(s0) -80000774: fcf42423 sw a5,-56(s0) -80000778: fb842783 lw a5,-72(s0) -8000077c: fcf42623 sw a5,-52(s0) -80000780: 00010793 mv a5,sp -80000784: fcf42823 sw a5,-48(s0) -80000788: fb442783 lw a5,-76(s0) -8000078c: fcf42a23 sw a5,-44(s0) -80000790: fb042783 lw a5,-80(s0) -80000794: fcf42c23 sw a5,-40(s0) -80000798: fac42783 lw a5,-84(s0) -8000079c: fcf42e23 sw a5,-36(s0) -800007a0: fa842783 lw a5,-88(s0) -800007a4: fef42023 sw a5,-32(s0) -800007a8: fec42783 lw a5,-20(s0) -800007ac: fef42223 sw a5,-28(s0) -800007b0: fec42703 lw a4,-20(s0) -800007b4: 65400793 li a5,1620 -800007b8: 02f70733 mul a4,a4,a5 -800007bc: 810007b7 lui a5,0x81000 -800007c0: 46078793 addi a5,a5,1120 # 81000460 -800007c4: 00f707b3 add a5,a4,a5 -800007c8: fc840713 addi a4,s0,-56 -800007cc: 00070593 mv a1,a4 -800007d0: 00078513 mv a0,a5 -800007d4: b91ff0ef jal ra,80000364 -800007d8: fec42783 lw a5,-20(s0) -800007dc: 00178793 addi a5,a5,1 -800007e0: fef42623 sw a5,-20(s0) -800007e4: fec42703 lw a4,-20(s0) -800007e8: 00600793 li a5,6 -800007ec: 00e7d463 bge a5,a4,800007f4 -800007f0: fe042623 sw zero,-20(s0) +800007bc : +800007bc: fc010113 addi sp,sp,-64 +800007c0: 02112e23 sw ra,60(sp) +800007c4: 02812c23 sw s0,56(sp) +800007c8: 04010413 addi s0,sp,64 +800007cc: fca42623 sw a0,-52(s0) +800007d0: fcb42423 sw a1,-56(s0) +800007d4: fcc42223 sw a2,-60(s0) +800007d8: fcd42023 sw a3,-64(s0) +800007dc: 00010913 mv s2,sp +800007e0: fe042623 sw zero,-20(s0) +800007e4: fe042423 sw zero,-24(s0) +800007e8: 08c0006f j 80000874 +800007ec: ffff09b7 lui s3,0xffff0 +800007f0: 01310133 add sp,sp,s3 800007f4: fe842783 lw a5,-24(s0) -800007f8: 00178793 addi a5,a5,1 -800007fc: fef42423 sw a5,-24(s0) -80000800: fe842703 lw a4,-24(s0) -80000804: fbc42783 lw a5,-68(s0) -80000808: f6f760e3 bltu a4,a5,80000768 -8000080c: 00090113 mv sp,s2 -80000810: e1dff0ef jal ra,8000062c -80000814: 00000013 nop -80000818: 05c12083 lw ra,92(sp) -8000081c: 05812403 lw s0,88(sp) -80000820: 06010113 addi sp,sp,96 -80000824: 00008067 ret +800007f8: fcf42823 sw a5,-48(s0) +800007fc: fc842783 lw a5,-56(s0) +80000800: fcf42a23 sw a5,-44(s0) +80000804: 00010793 mv a5,sp +80000808: fcf42c23 sw a5,-40(s0) +8000080c: fc442783 lw a5,-60(s0) +80000810: fcf42e23 sw a5,-36(s0) +80000814: fc042783 lw a5,-64(s0) +80000818: fef42023 sw a5,-32(s0) +8000081c: fec42783 lw a5,-20(s0) +80000820: fef42223 sw a5,-28(s0) +80000824: fec42703 lw a4,-20(s0) +80000828: 4c400793 li a5,1220 +8000082c: 02f70733 mul a4,a4,a5 +80000830: 810017b7 lui a5,0x81001 +80000834: d7478793 addi a5,a5,-652 # 81000d74 +80000838: 00f707b3 add a5,a4,a5 +8000083c: fd040713 addi a4,s0,-48 +80000840: 00070593 mv a1,a4 +80000844: 00078513 mv a0,a5 +80000848: bd1ff0ef jal ra,80000418 +8000084c: fec42783 lw a5,-20(s0) +80000850: 00178793 addi a5,a5,1 +80000854: fef42623 sw a5,-20(s0) +80000858: fec42703 lw a4,-20(s0) +8000085c: 00600793 li a5,6 +80000860: 00e7d463 bge a5,a4,80000868 +80000864: fe042623 sw zero,-20(s0) +80000868: fe842783 lw a5,-24(s0) +8000086c: 00178793 addi a5,a5,1 +80000870: fef42423 sw a5,-24(s0) +80000874: fe842703 lw a4,-24(s0) +80000878: fcc42783 lw a5,-52(s0) +8000087c: f6f768e3 bltu a4,a5,800007ec +80000880: 00090113 mv sp,s2 +80000884: e39ff0ef jal ra,800006bc +80000888: 00000013 nop +8000088c: 03c12083 lw ra,60(sp) +80000890: 03812403 lw s0,56(sp) +80000894: 04010113 addi sp,sp,64 +80000898: 00008067 ret -80000828 : -80000828: fd010113 addi sp,sp,-48 -8000082c: 02812623 sw s0,44(sp) -80000830: 03010413 addi s0,sp,48 -80000834: fca42e23 sw a0,-36(s0) -80000838: fe0407a3 sb zero,-17(s0) -8000083c: 0500006f j 8000088c -80000840: 00100793 li a5,1 -80000844: fef407a3 sb a5,-17(s0) -80000848: fe042423 sw zero,-24(s0) -8000084c: 0340006f j 80000880 -80000850: fef44783 lbu a5,-17(s0) -80000854: 81003737 lui a4,0x81003 -80000858: 70070693 addi a3,a4,1792 # 81003700 -8000085c: fe842703 lw a4,-24(s0) -80000860: 00e68733 add a4,a3,a4 -80000864: 00074703 lbu a4,0(a4) -80000868: 00e7f7b3 and a5,a5,a4 -8000086c: 00f037b3 snez a5,a5 -80000870: fef407a3 sb a5,-17(s0) -80000874: fe842783 lw a5,-24(s0) -80000878: 00178793 addi a5,a5,1 -8000087c: fef42423 sw a5,-24(s0) -80000880: fe842783 lw a5,-24(s0) -80000884: fdc42703 lw a4,-36(s0) -80000888: fce7e4e3 bltu a5,a4,80000850 -8000088c: fef44783 lbu a5,-17(s0) -80000890: 0017c793 xori a5,a5,1 -80000894: 0ff7f793 andi a5,a5,255 -80000898: fa0794e3 bnez a5,80000840 -8000089c: 00000013 nop -800008a0: 02c12403 lw s0,44(sp) -800008a4: 03010113 addi sp,sp,48 -800008a8: 00008067 ret +8000089c : +8000089c: fd010113 addi sp,sp,-48 +800008a0: 02812623 sw s0,44(sp) +800008a4: 03010413 addi s0,sp,48 +800008a8: fca42e23 sw a0,-36(s0) +800008ac: fe0407a3 sb zero,-17(s0) +800008b0: 0500006f j 80000900 +800008b4: 00100793 li a5,1 +800008b8: fef407a3 sb a5,-17(s0) +800008bc: fe042423 sw zero,-24(s0) +800008c0: 0340006f j 800008f4 +800008c4: fef44783 lbu a5,-17(s0) +800008c8: 81003737 lui a4,0x81003 +800008cc: 39470693 addi a3,a4,916 # 81003394 +800008d0: fe842703 lw a4,-24(s0) +800008d4: 00e68733 add a4,a3,a4 +800008d8: 00074703 lbu a4,0(a4) +800008dc: 00e7f7b3 and a5,a5,a4 +800008e0: 00f037b3 snez a5,a5 +800008e4: fef407a3 sb a5,-17(s0) +800008e8: fe842783 lw a5,-24(s0) +800008ec: 00178793 addi a5,a5,1 +800008f0: fef42423 sw a5,-24(s0) +800008f4: fe842783 lw a5,-24(s0) +800008f8: fdc42703 lw a4,-36(s0) +800008fc: fce7e4e3 bltu a5,a4,800008c4 +80000900: fef44783 lbu a5,-17(s0) +80000904: 0017c793 xori a5,a5,1 +80000908: 0ff7f793 andi a5,a5,255 +8000090c: fa0794e3 bnez a5,800008b4 +80000910: 00000013 nop +80000914: 02c12403 lw s0,44(sp) +80000918: 03010113 addi sp,sp,48 +8000091c: 00008067 ret -800008ac : -800008ac: ff010113 addi sp,sp,-16 -800008b0: 00812623 sw s0,12(sp) -800008b4: 01712423 sw s7,8(sp) -800008b8: 01010413 addi s0,sp,16 -800008bc: 000b8793 mv a5,s7 -800008c0: 00078513 mv a0,a5 -800008c4: 00c12403 lw s0,12(sp) -800008c8: 00812b83 lw s7,8(sp) -800008cc: 01010113 addi sp,sp,16 -800008d0: 00008067 ret +80000920 : +80000920: ff010113 addi sp,sp,-16 +80000924: 00812623 sw s0,12(sp) +80000928: 01712423 sw s7,8(sp) +8000092c: 01010413 addi s0,sp,16 +80000930: 000b8793 mv a5,s7 +80000934: 00078513 mv a0,a5 +80000938: 00c12403 lw s0,12(sp) +8000093c: 00812b83 lw s7,8(sp) +80000940: 01010113 addi sp,sp,16 +80000944: 00008067 ret -800008d4 : -800008d4: ff010113 addi sp,sp,-16 -800008d8: 00812623 sw s0,12(sp) -800008dc: 01812423 sw s8,8(sp) -800008e0: 01010413 addi s0,sp,16 -800008e4: 000c0793 mv a5,s8 -800008e8: 00078513 mv a0,a5 -800008ec: 00c12403 lw s0,12(sp) -800008f0: 00812c03 lw s8,8(sp) -800008f4: 01010113 addi sp,sp,16 -800008f8: 00008067 ret +80000948 : +80000948: ff010113 addi sp,sp,-16 +8000094c: 00812623 sw s0,12(sp) +80000950: 01812423 sw s8,8(sp) +80000954: 01010413 addi s0,sp,16 +80000958: 000c0793 mv a5,s8 +8000095c: 00078513 mv a0,a5 +80000960: 00c12403 lw s0,12(sp) +80000964: 00812c03 lw s8,8(sp) +80000968: 01010113 addi sp,sp,16 +8000096c: 00008067 ret -800008fc : -800008fc: ff010113 addi sp,sp,-16 -80000900: 00812623 sw s0,12(sp) -80000904: 01912423 sw s9,8(sp) -80000908: 01010413 addi s0,sp,16 -8000090c: 000c8793 mv a5,s9 -80000910: 00078513 mv a0,a5 -80000914: 00c12403 lw s0,12(sp) -80000918: 00812c83 lw s9,8(sp) -8000091c: 01010113 addi sp,sp,16 -80000920: 00008067 ret +80000970 : +80000970: ff010113 addi sp,sp,-16 +80000974: 00812623 sw s0,12(sp) +80000978: 01912423 sw s9,8(sp) +8000097c: 01010413 addi s0,sp,16 +80000980: 000c8793 mv a5,s9 +80000984: 00078513 mv a0,a5 +80000988: 00c12403 lw s0,12(sp) +8000098c: 00812c83 lw s9,8(sp) +80000990: 01010113 addi sp,sp,16 +80000994: 00008067 ret Disassembly of section .rodata: @@ -682,25 +711,25 @@ Disassembly of section .rodata: 8100002a: 0000 unimp 8100002c: 0062 c.slli zero,0x18 8100002e: 0000 unimp -81000030: 00000063 beqz zero,81000030 +81000030: 00000063 beqz zero,81000030 81000034: 0064 addi s1,sp,12 81000036: 0000 unimp 81000038: 0065 c.nop 25 8100003a: 0000 unimp 8100003c: 0066 c.slli zero,0x19 8100003e: 0000 unimp -81000040: 2d2d jal 8100067a -81000042: 2d2d jal 8100067c -81000044: 2d2d jal 8100067e -81000046: 2d2d jal 81000680 -81000048: 2d2d jal 81000682 -8100004a: 2d2d jal 81000684 -8100004c: 2d2d jal 81000686 -8100004e: 2d2d jal 81000688 -81000050: 2d2d jal 8100068a -81000052: 2d2d jal 8100068c -81000054: 2d2d jal 8100068e -81000056: 2d2d jal 81000690 +81000040: 2d2d jal 8100067a +81000042: 2d2d jal 8100067c +81000044: 2d2d jal 8100067e +81000046: 2d2d jal 81000680 +81000048: 2d2d jal 81000682 +8100004a: 2d2d jal 81000684 +8100004c: 2d2d jal 81000686 +8100004e: 2d2d jal 81000688 +81000050: 2d2d jal 8100068a +81000052: 2d2d jal 8100068c +81000054: 2d2d jal 8100068e +81000056: 2d2d jal 81000690 81000058: 0a2d addi s4,s4,11 8100005a: 0000 unimp 8100005c: 4946 lw s2,80(sp) @@ -714,21 +743,21 @@ Disassembly of section .rodata: 8100006c: 0020 addi s0,sp,8 8100006e: 0000 unimp 81000070: 2d0a fld fs10,128(sp) -81000072: 2d2d jal 810006ac -81000074: 2d2d jal 810006ae -81000076: 2d2d jal 810006b0 -81000078: 2d2d jal 810006b2 -8100007a: 2d2d jal 810006b4 -8100007c: 2d2d jal 810006b6 -8100007e: 2d2d jal 810006b8 -81000080: 2d2d jal 810006ba -81000082: 2d2d jal 810006bc -81000084: 2d2d jal 810006be -81000086: 2d2d jal 810006c0 -81000088: 2d2d jal 810006c2 -8100008a: 2d2d jal 810006c4 -8100008c: 2d2d jal 810006c6 -8100008e: 2d2d jal 810006c8 +81000072: 2d2d jal 810006ac +81000074: 2d2d jal 810006ae +81000076: 2d2d jal 810006b0 +81000078: 2d2d jal 810006b2 +8100007a: 2d2d jal 810006b4 +8100007c: 2d2d jal 810006b6 +8100007e: 2d2d jal 810006b8 +81000080: 2d2d jal 810006ba +81000082: 2d2d jal 810006bc +81000084: 2d2d jal 810006be +81000086: 2d2d jal 810006c0 +81000088: 2d2d jal 810006c2 +8100008a: 2d2d jal 810006c4 +8100008c: 2d2d jal 810006c6 +8100008e: 2d2d jal 810006c8 81000090: 000a c.slli zero,0x2 81000092: 0000 unimp 81000094: 0030 addi a2,sp,8 @@ -753,7 +782,7 @@ Disassembly of section .rodata: 810000be: 0000 unimp 810000c0: 0062 c.slli zero,0x18 810000c2: 0000 unimp -810000c4: 00000063 beqz zero,810000c4 +810000c4: 00000063 beqz zero,810000c4 810000c8: 0064 addi s1,sp,12 810000ca: 0000 unimp 810000cc: 0065 c.nop 25 @@ -835,27 +864,30 @@ Disassembly of section .bss: 81000154 : ... -81000254 : +81000554 : ... -81000354 : +81000954 : ... -81000454 : +81000d54 : ... -8100045c : -8100045c: 0000 unimp +81000d5c : +81000d5c: 0000 unimp ... -81000460 : +81000d60 : ... -81003700 : +81000d74 : ... -81003708 : -81003708: 0000 unimp +81003394 : + ... + +8100339c : +8100339c: 0000 unimp ... Disassembly of section .comment: diff --git a/src/riscv_gpgpu/gpgpu_test.elf b/src/riscv_gpgpu/gpgpu_test.elf index cd034716..b2cd562a 100755 Binary files a/src/riscv_gpgpu/gpgpu_test.elf and b/src/riscv_gpgpu/gpgpu_test.elf differ diff --git a/src/riscv_gpgpu/gpgpu_test.hex b/src/riscv_gpgpu/gpgpu_test.hex index 9620e3bc..1a365152 100644 --- a/src/riscv_gpgpu/gpgpu_test.hex +++ b/src/riscv_gpgpu/gpgpu_test.hex @@ -1,151 +1,158 @@ :0200000480007A -:1000000037F1FF7FEF00C00C73000000938B0600F8 -:10001000130C0700938C0700130D0800130F010049 -:100020009303050013051000635C75001301018044 -:10003000130305006B500300130515006FF0DFFE7E -:1000400013010F0013050000930F0600938D0300AA -:10005000EBE0BF0117050000130545516B4005009B -:10006000B708010023A0B800678000001703000054 -:10007000130303FA6B00030067800000130141FFC4 -:10008000232011002322B100834505006388050069 -:10009000EFF01FFD130515006FF01FFF8320010017 -:1000A000832541001301C10067800000130141FF57 -:1000B000232011002322B10093050503EFF05FFA1E -:1000C00083200100832541001301C10067800000E7 -:1000D000130101FE232E1100232C810013040102C1 -:1000E000232604FE6F0000030327C4FE9307406528 -:1000F0003307F702B707008193870746B307F70076 -:1001000013850700EF00C0238327C4FE93871700E1 -:100110002326F4FE0327C4FE93077000E3D6E7FC12 -:10012000232404FE6F008004B7070081032784FEA8 -:100130001317270093874715B307F70013073000FD -:1001400023A0E700B7070081032784FE13172700C9 -:1001500093874725B307F7001307200023A0E70084 -:10016000832784FE938717002324F4FE032784FE4D -:100170009307F003E3DAE7FAB7070081938747357F -:100180003707008113074725B70600819386461578 -:10019000370600801306C6249305800013058000EF -:1001A000EF00005913058000EF000068B7070081D9 -:1001B00013850704EFF09FECB70700811385C7058F -:1001C000EFF0DFEB232204FE6F004005832744FE9F -:1001D00093F7770063980700B707008113858706B8 -:1001E000EFF0DFE9B7070081032744FE131727006C -:1001F00093874735B307F70083A7070013850700E8 -:10020000EF00402AB70700811385C706EFF01FE70C -:10021000832744FE938717002322F4FE032744FE1E -:100220009307F003E3D4E7FAB707008113850707C4 -:10023000EFF0DFE493070000138507008320C1017E -:10024000032481011301010267800000130101FCF6 -:10025000232E1102232C8102130401042326A4FC63 -:100260002324B4FCEF0080642322A4FEEF00806608 -:100270002320A4FEEF008068232EA4FC232604FE86 -:10028000232404FE6F000007832784FC9397370024 -:10029000032784FEB307F700232CF4FC832784FE96 -:1002A000939737000327C4FCB307F700232AF4FC15 -:1002B000832784FD93972700032744FEB307F700A5 -:1002C00003A70700832744FD93972700832604FE96 -:1002D000B387F60083A70700B307F7020327C4FE1E -:1002E000B307F7002326F4FE832784FE93871700C5 -:1002F0002324F4FE032784FE93077000E3F6E7F857 -:10030000832784FC139737008327C4FCB307F700C7 -:100310002328F4FC832704FD939727000327C4FDBB -:10032000B307F7000327C4FE23A0E7001300000073 -:100330008320C103032481031301010467800000AB -:1003400093020500130300009303700023A06200D2 -:1003500023A2620023A4620023A6720023A86200E5 -:10036000678000009302050003A3820013031300BB -:1003700023A462001383420183AE420093935E0084 -:100380003303730003AE05002320C30103AE450011 -:100390002322C30103AE85002324C30103AEC5009D -:1003A0002326C30103AE05012328C30103AE450183 -:1003B000232AC30103AE8501232CC30103AEC5016B -:1003C000232EC301938E1E00130F20036394EE01AE -:1003D000930E000023A2D201678000009302050063 -:1003E00003A382001303F3FF23A4620013834201DB -:1003F00083AE0200930F2003138F0E00130F1F0014 -:100400006314FF01130F000023A0E20193935E0029 -:1004100033037300032E030023A0C501032E430002 -:1004200023A2C501032E830023A4C501032EC3000C -:1004300023A6C501032E030123A8C501032E4301F2 -:1004400023AAC501032E830123ACC501032EC301DA -:1004500023AEC501678000009302050003A382005C -:1004600013050000130E200363146E00130515001E -:10047000678000009302050003A3820013050000BB -:10048000130E000063146E00130515006780000052 -:100490009302050003A3C20083A3020133B56300E6 -:1004A00067800000130101FD23261102232481022D -:1004B00013040103232EA4FC0327C4FD9307F000BB -:1004C00063E4E702B70700810327C4FD1317270081 -:1004D00093874711B307F70083A707001385070029 -:1004E000EFF0DFB96F004007930700022326F4FE08 -:1004F000A30504FE8327C4FE9387C7FF0327C4FD1B -:10050000B357F70093F7F7002322F4FE832744FE46 -:100510006386070093071000A305F4FE8347B4FE2B -:1005200063820702B7070081032744FE13172700E1 -:1005300093874711B307F70083A7070013850700C8 -:10054000EFF0DFB38327C4FE9387C7FF2326F4FEB3 -:100550008327C4FEE340F0FA8320C1020324810212 -:100560001301010367800000130101FD232611021E -:10057000232481022322A1031304010313070D0086 -:10058000930740653307F702B70700819387074653 -:10059000B307F70013850700EFF0DFED93070500C1 -:1005A0006380070213070D00B73700819387077038 -:1005B000B307F700130710002380E7007300000063 -:1005C00013070D00930740653307F702B707008153 -:1005D00093870746B307F700130704FD9305070049 -:1005E00013850700EFF09FDF832784FD1381070049 -:1005F000032544FD832504FD0326C4FD832604FE54 -:10060000032744FE832784FE0328C4FEEFF01FA0C7 -:1006100073000000130000008320C1020324810244 -:10062000032D41021301010367800000130101FC47 -:10063000232E1102232C81021304010493090100CB -:10064000232604FE6F0080080327C4FE930740653D -:100650003307F702B707008193870746B307F70010 -:1006600013850700EFF01FE193070500639A070465 -:100670000327C4FE930740653307F702B7070081DD -:1006800093870746B307F7001307C4FC93050700D9 -:1006900013850700EFF09FD4832744FD13810700E3 -:1006A000032504FD8325C4FC032684FD8326C4FDA5 -:1006B000032704FE832744FE032884FEEFF01F9BDC -:1006C0008327C4FE938717002326F4FE0327C4FE66 -:1006D00093076000E3DAE7F61381090013000000D6 -:1006E0008320C103032481031301010467800000F8 -:1006F000130101FD2326810213040103232EA4FC10 -:10070000232604FE6F0000018327C4FE9387170091 -:100710002326F4FE0327C4FE8327C4FDE346F7FE29 -:10072000130000000324C1021301010367800000CD -:10073000130101FA232E1104232C81041304010652 -:10074000232EA4FA232CB4FA232AC4FA2328D4FA99 -:100750002326E4FA2324F4FA13090100232604FED5 -:10076000232404FE6F00C009B709FFFF33013101E4 -:10077000832784FE2324F4FC832784FB2326F4FCB4 -:10078000930701002328F4FC832744FB232AF4FC6D -:10079000832704FB232CF4FC8327C4FA232EF4FCC8 -:1007A000832784FA2320F4FE8327C4FE2322F4FE49 -:1007B0000327C4FE930740653307F702B70700819C -:1007C00093870746B307F700130784FC93050700D8 -:1007D00013850700EFF01FB98327C4FE9387170026 -:1007E0002326F4FE0327C4FE9307600063D4E700CA -:1007F000232604FE832784FE938717002324F4FE18 -:10080000032784FE8327C4FBE360F7F61301090086 -:10081000EFF0DFE1130000008320C1050324810510 -:100820001301010667800000130101FD23268102E8 -:1008300013040103232EA4FCA30704FE6F0000058C -:1008400093071000A307F4FE232404FE6F00400367 -:100850008347F4FE3737008193060770032784FE31 -:100860003387E60003470700B3F7E700B337F0002C -:10087000A307F4FE832784FE938717002324F4FE46 -:10088000832784FE0327C4FDE3E4E7FC8347F4FEEB -:1008900093C7170093F7F70FE39407FA13000000CC -:1008A0000324C1021301010367800000130101FF4B -:1008B00023268100232471011304010193870B0077 -:1008C000138507000324C100832B8100130101015C -:1008D00067800000130101FF23268100232481018A -:1008E0001304010193070C00138507000324C100C2 -:1008F000032C81001301010167800000130101FF37 -:1009000023268100232491011304010193870C0005 -:10091000138507000324C100832C8100130101010A -:0409200067800000EC +:1000000037F1FF7FEF00400C73000000938B060078 +:10001000130D0700130F01009303050013051000D3 +:10002000635C750013010180130305006B5003002E +:10003000130515006FF0DFFE13010F00130500001C +:10004000930F0600938D0300EBE0BF01170500003E +:100050001305055B6B400500B708010023A0B8003D +:100060006780000017030000130383FA6B0003008E +:1000700067800000130141FF232011002322B100FB +:100080008345050063880500EFF01FFD130515008B +:100090006FF01FFF83200100832541001301C10081 +:1000A00067800000130141FF232011002322B100CB +:1000B00093050503EFF05FFA8320010083254100DB +:1000C0001301C10067800000130101FE232E1100FF +:1000D000232C810013040102232604FE6F00000379 +:1000E0000327C4FE9307404C3307F702B71700817C +:1000F000938747D7B307F70013850700EF00802FDA +:100100008327C4FE938717002326F4FE0327C4FE2B +:1001100093077000E3D6E7FC232404FE6F008004FD +:10012000B7070081032784FE13172700938747151D +:10013000B307F7001307300023A0E700B7070081DB +:10014000032784FE1317270093874755B307F7004B +:100150001307200023A0E700832784FE938717005E +:100160002324F4FE032784FE9307F00FE3DAE7FA73 +:10017000B7170081370700811307471523A0E7D67B +:10018000B7170081938707D63707008113074755B4 +:1001900023A2E700B7170081938707D6371700819E +:1001A0001307479523A4E700B7170081938707D665 +:1001B0001307000123A6E700B7170081938707D62E +:1001C0001307200023A8E700B7170081938607D6FE +:1001D000B70700801386C728930580001305000128 +:1001E000EF00C05D13058000EF00406BB707008192 +:1001F00013850704EFF01FE8B70700811385C705D3 +:10020000EFF05FE7232204FE6F004005832744FEE2 +:1002100093F7F70063980700B707008113858706F7 +:10022000EFF05FE5B7170081032744FE131727009F +:1002300093874795B307F70083A707001385070047 +:10024000EF00802FB70700811385C706EFF09FE20C +:10025000832744FE938717002322F4FE032744FEDE +:100260009307F00FE3D4E7FAB70700811385070778 +:10027000EFF05FE093070000138507008320C101C2 +:10028000032481011301010267800000130101FAB8 +:10029000232E1104232C8104130401062326A4FA1F +:1002A0002324B4FAEF00C067232EA4FC8327C4FDE7 +:1002B00083A70700232CF4FC8327C4FD83A74700F2 +:1002C000232AF4FC8327C4FD83A787002328F4FC9A +:1002D0008327C4FD83A707012326F4FC0327C4FC5E +:1002E0008327C4FAB307F7022326F4FE8327C4FD4D +:1002F00083A7C7002324F4FC232404FE6F00800D91 +:10030000232204FE232004FE6F008007032784FAC3 +:10031000832784FCB307F702032704FEB307F70023 +:100320002322F4FC032784FC832704FEB307F7028F +:100330000327C4FEB307F7002320F4FC832744FC03 +:1003400093972700032784FDB307F70003A707004F +:10035000832704FC93972700832644FDB387F60088 +:1003600083A70700B307F702032744FEB307F7008C +:100370002322F4FE832704FE938717002320F4FE34 +:10038000032704FE832784FCE362F7F8032784FA3B +:10039000832784FC3307F7028327C4FEB307F700E3 +:1003A000232EF4FA8327C4FB93972700032704FD29 +:1003B000B307F700032744FE23A0E7008327C4FE0A +:1003C000938717002326F4FE832784FE9387170064 +:1003D0002324F4FE832784FE0327C4FCE3E2E7F230 +:1003E000130000008320C1050324810513010106C9 +:1003F0006780000093020500130300009303700060 +:1004000023A0620023A2620023A4620023A672003C +:1004100023A86200678000009302050003A3820006 +:100420001303130023A462001383420183AE42002E +:1004300093935E003303730003AE05002320C301D2 +:1004400003AE45002322C30103AE85002324C3016C +:1004500003AEC5002326C30103AE05012328C30153 +:1004600003AE4501232AC301938E1E00130F200300 +:100470006394EE01930E000023A2D2016780000076 +:100480009302050003A382001303F3FF23A4620079 +:100490001383420183AE0200930F2003138F0E00DB +:1004A000130F1F006314FF01130F000023A0E201CC +:1004B00093935E0033037300032E030023A0C50152 +:1004C000032E430023A2C501032E830023A4C501EC +:1004D000032EC30023A6C501032E030123A8C501D3 +:1004E000032E430123AAC501678000009302050083 +:1004F00003A3820013050000130E200363146E0093 +:1005000013051500678000009302050003A3820015 +:1005100013050000130E000063146E001305150090 +:10052000678000009302050003A3C20083A30201B9 +:1005300033B5630067800000130101FD232611021B +:100540002324810213040103232EA4FC0327C4FDEA +:100550009307F00063E4E702B70700810327C4FDB7 +:100560001317270093874711B307F70083A70700E6 +:1005700013850700EFF01FB06F00400793070002DC +:100580002326F4FEA30504FE8327C4FE9387C7FF3A +:100590000327C4FDB357F70093F7F7002322F4FEB7 +:1005A000832744FE6386070093071000A305F4FE2B +:1005B0008347B4FE63820702B7070081032744FE26 +:1005C0001317270093874711B307F70083A7070086 +:1005D00013850700EFF01FAA8327C4FE9387C7FF88 +:1005E0002326F4FE8327C4FEE340F0FA8320C102F1 +:1005F000032481021301010367800000130101FD40 +:1006000023261102232481022322A10313040103C0 +:1006100013070D009307404C3307F702B71700810B +:10062000938747D7B307F70013850700EFF0DFED97 +:10063000930705006380070213070D00B737008199 +:1006400093874739B307F700130710002380E700AB +:100650007300000013070D009307404C3307F702A7 +:10066000B7170081938747D7B307F700130784FDB7 +:100670009305070013850700EFF09FE0832704FE32 +:10068000138107008327C4FD832584FD032644FED0 +:10069000832684FE0327C4FE13850700EFF01F970F +:1006A00073000000130000008320C10203248102B4 +:1006B000032D41021301010367800000130101FDB6 +:1006C000232611022324810213040103930901004C +:1006D000232604FE6F0040080327C4FE9307404C06 +:1006E0003307F702B7170081938747D7B307F7009F +:1006F00013850700EFF05FE1930705006398070497 +:100700000327C4FE9307404C3307F702B717008155 +:10071000938747D7B307F700130744FD93050700F6 +:1007200013850700EFF0DFD58327C4FD1381070091 +:10073000832784FD832544FD032604FE832644FE8F +:10074000032784FE13850700EFF0DF918327C4FEA3 +:10075000938717002326F4FE0327C4FE9307600047 +:10076000E3DCE7F613810900130000008320C102D7 +:10077000032481021301010367800000130101FDBE +:100780002326810213040103232EA4FC232604FE46 +:100790006F0000018327C4FE938717002326F4FE11 +:1007A0000327C4FE8327C4FDE346F7FE13000000C1 +:1007B0000324C1021301010367800000130101FC3F +:1007C000232E1102232C8102130401042326A4FCEE +:1007D0002324B4FC2322C4FC2320D4FC13090100ED +:1007E000232604FE232404FE6F00C008B709FFFF80 +:1007F00033013101832784FE2328F4FC832784FC02 +:10080000232AF4FC93070100232CF4FC832744FCE7 +:10081000232EF4FC832704FC2320F4FE8327C4FE4C +:100820002322F4FE0327C4FE9307404C3307F7024C +:10083000B7170081938747D7B307F700130704FD65 +:100840009305070013850700EFF01FBD8327C4FE43 +:10085000938717002326F4FE0327C4FE9307600046 +:1008600063D4E700232604FE832784FE93871700C2 +:100870002324F4FE032784FE8327C4FCE368F7F6F1 +:1008800013010900EFF09FE3130000008320C10370 +:10089000032481031301010467800000130101FD9B +:1008A0002326810213040103232EA4FCA30704FEC4 +:1008B0006F00000593071000A307F4FE232404FE35 +:1008C0006F0040038347F4FE3737008193064739B2 +:1008D000032784FE3387E60003470700B3F7E700EA +:1008E000B337F000A307F4FE832784FE9387170035 +:1008F0002324F4FE832784FE0327C4FDE3E4E7FCFE +:100900008347F4FE93C7170093F7F70FE39407FAB2 +:10091000130000000324C1021301010367800000DB +:10092000130101FF23268100232471011304010117 +:1009300093870B00138507000324C100832B8100DC +:100940001301010167800000130101FF23268100CC +:10095000232481011304010193070C001385070070 +:100960000324C100032C81001301010167800000F2 +:10097000130101FF232681002324910113040101A7 +:1009800093870C00138507000324C100832C81008A +:08099000130101016780000062 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A diff --git a/src/riscv_gpgpu/lib/lib.c b/src/riscv_gpgpu/lib/lib.c index 9476dde7..0ae13ed3 100644 --- a/src/riscv_gpgpu/lib/lib.c +++ b/src/riscv_gpgpu/lib/lib.c @@ -1,8 +1,8 @@ #include "lib.h" -extern void createThreads(unsigned, unsigned, unsigned, void *, void *, void *, unsigned); -extern void wspawn(unsigned, unsigned, unsigned, void *, void *, void *, unsigned); +extern void createThreads(unsigned, unsigned, unsigned, void *, unsigned); +extern void wspawn(unsigned, unsigned, unsigned, void *, unsigned); extern void print_consol(char *); extern void printc(char); @@ -33,9 +33,6 @@ void reschedule_warps() if (queue_isEmpty(q+curr_warp)) { - // print_consol("done: "); - // int_print(curr_warp); - // print_consol("\n"); done[curr_warp] = true; ECALL; } @@ -43,7 +40,7 @@ void reschedule_warps() Job j; queue_dequeue(q+curr_warp,&j); asm __volatile__("mv sp,%0"::"r" (j.base_sp):); - createThreads(j.n_threads, j.wid, j.func_ptr, j.x, j.y, j.z, j.assigned_warp); + createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); ECALL; @@ -60,7 +57,7 @@ void schedule_warps() Job j; queue_dequeue(q+curr_warp,&j); asm __volatile__("mv sp,%0"::"r" (j.base_sp):); - wspawn(j.n_threads, j.wid, j.func_ptr, j.x, j.y, j.z, j.assigned_warp); + wspawn(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); } } @@ -75,7 +72,7 @@ void sleep(int t) -void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * x_ptr, void * y_ptr, void * z_ptr) +void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) { asm __volatile__("addi s2, sp, 0"); int warp = 0; @@ -90,9 +87,7 @@ void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * x_ptr, v j.n_threads = num_threads; j.base_sp = stack_ptr; j.func_ptr = (unsigned) func; - j.x = x_ptr; - j.y = y_ptr; - j.z = z_ptr; + j.args = args; j.assigned_warp = warp; queue_enqueue(q + warp,&j); diff --git a/src/riscv_gpgpu/lib/lib.h b/src/riscv_gpgpu/lib/lib.h index afaff312..19d7117b 100644 --- a/src/riscv_gpgpu/lib/lib.h +++ b/src/riscv_gpgpu/lib/lib.h @@ -35,7 +35,7 @@ static bool done[] = {false, false, false, false, false, false, false}; static int main_sp[1]; #define FUNC void (func)(unsigned, unsigned) -void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void *, void *, void *); +void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void *); void reschedule_warps(void); void int_print(unsigned); void wait_for_done(unsigned); @@ -46,5 +46,10 @@ void * get_3rd_arg(void); void sleep(int); + + + + + #endif diff --git a/src/riscv_gpgpu/lib/lib.s b/src/riscv_gpgpu/lib/lib.s index fcef0dcf..8df6ca9a 100644 --- a/src/riscv_gpgpu/lib/lib.s +++ b/src/riscv_gpgpu/lib/lib.s @@ -13,10 +13,8 @@ _start: .type createThreads, @function .global createThreads createThreads: - mv s7 ,a3 # Moving x_ptr to s7 - mv s8 ,a4 # Moving y_ptr to s8 - mv s9 ,a5 # Moving z_ptr to s9 - mv s10,a6 # Moving assigned_warp to s10 + mv s7 ,a3 # Moving args to s7 + mv s10,a4 # Moving assigned_warp to s10 mv t5 ,sp # Saving the current stack pointer to t5 mv t2 , a0 # t2 = num_threads loop_init: diff --git a/src/riscv_gpgpu/lib/linker.ld b/src/riscv_gpgpu/lib/linker.ld deleted file mode 100644 index 676b1783..00000000 --- a/src/riscv_gpgpu/lib/linker.ld +++ /dev/null @@ -1,44 +0,0 @@ -/* ---- Original Script: /opt/riscv32i/riscv32-unknown-elf/lib/ldscripts/elf32lriscv.x ---- */ -/* Default linker script, for normal executables */ -/* Copyright (C) 2014-2017 Free Software Foundation, Inc. - Copying and distribution of this script, with or without modification, - are permitted in any medium without royalty provided the copyright - notice and this notice are preserved. */ -OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", - "elf32-littleriscv") -OUTPUT_ARCH(riscv) -ENTRY(main) -SECTIONS -{ - . = 0x80000000; - .text : - { - *(.text) - *(.text.unlikely .text.*_unlikely .text.unlikely.*) - *(.text.exit .text.exit.*) - *(.text.startup .text.startup.*) - *(.text.hot .text.hot.*) - *(.stub .text.* .gnu.linkonce.t.*) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - } - .init : - { - KEEP (*(SORT_NONE(.init))) - } - .plt : { *(.plt) } - .iplt : { *(.iplt) } - .fini : - { - KEEP (*(SORT_NONE(.fini))) - } - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - . = 0x81000000; - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } - .rodata1 : { *(.rodata1) } - . = 0x82000000; - .comment : { *(.comment) } - -} diff --git a/src/riscv_gpgpu/lib/queue.dump b/src/riscv_gpgpu/lib/queue.dump deleted file mode 100644 index 21c86fe1..00000000 --- a/src/riscv_gpgpu/lib/queue.dump +++ /dev/null @@ -1,481 +0,0 @@ - -queue.elf: file format elf32-littleriscv - - -Disassembly of section .text: - -80000000
: -80000000: fd010113 addi sp,sp,-48 -80000004: 02112623 sw ra,44(sp) -80000008: 02812423 sw s0,40(sp) -8000000c: 03010413 addi s0,sp,48 -80000010: 800007b7 lui a5,0x80000 -80000014: 5e078793 addi a5,a5,1504 # 800005e0 -80000018: fef42023 sw a5,-32(s0) -8000001c: 810007b7 lui a5,0x81000 -80000020: 0ec78793 addi a5,a5,236 # 810000ec -80000024: fef42223 sw a5,-28(s0) -80000028: 810007b7 lui a5,0x81000 -8000002c: 12c78793 addi a5,a5,300 # 8100012c -80000030: fef42423 sw a5,-24(s0) -80000034: 810007b7 lui a5,0x81000 -80000038: 00078793 mv a5,a5 -8000003c: fef42623 sw a5,-20(s0) -80000040: fe042603 lw a2,-32(s0) -80000044: fe442683 lw a3,-28(s0) -80000048: fe842703 lw a4,-24(s0) -8000004c: fec42783 lw a5,-20(s0) -80000050: fcc42823 sw a2,-48(s0) -80000054: fcd42a23 sw a3,-44(s0) -80000058: fce42c23 sw a4,-40(s0) -8000005c: fcf42e23 sw a5,-36(s0) -80000060: fd040793 addi a5,s0,-48 -80000064: 00078513 mv a0,a5 -80000068: 390000ef jal ra,800003f8 -8000006c: fe042603 lw a2,-32(s0) -80000070: fe442683 lw a3,-28(s0) -80000074: fe842703 lw a4,-24(s0) -80000078: fec42783 lw a5,-20(s0) -8000007c: fcc42823 sw a2,-48(s0) -80000080: fcd42a23 sw a3,-44(s0) -80000084: fce42c23 sw a4,-40(s0) -80000088: fcf42e23 sw a5,-36(s0) -8000008c: fd040793 addi a5,s0,-48 -80000090: 00078513 mv a0,a5 -80000094: 364000ef jal ra,800003f8 -80000098: fe042603 lw a2,-32(s0) -8000009c: fe442683 lw a3,-28(s0) -800000a0: fe842703 lw a4,-24(s0) -800000a4: fec42783 lw a5,-20(s0) -800000a8: fcc42823 sw a2,-48(s0) -800000ac: fcd42a23 sw a3,-44(s0) -800000b0: fce42c23 sw a4,-40(s0) -800000b4: fcf42e23 sw a5,-36(s0) -800000b8: fd040793 addi a5,s0,-48 -800000bc: 00078513 mv a0,a5 -800000c0: 338000ef jal ra,800003f8 -800000c4: fe042603 lw a2,-32(s0) -800000c8: fe442683 lw a3,-28(s0) -800000cc: fe842703 lw a4,-24(s0) -800000d0: fec42783 lw a5,-20(s0) -800000d4: fcc42823 sw a2,-48(s0) -800000d8: fcd42a23 sw a3,-44(s0) -800000dc: fce42c23 sw a4,-40(s0) -800000e0: fcf42e23 sw a5,-36(s0) -800000e4: fd040793 addi a5,s0,-48 -800000e8: 00078513 mv a0,a5 -800000ec: 30c000ef jal ra,800003f8 -800000f0: fe042603 lw a2,-32(s0) -800000f4: fe442683 lw a3,-28(s0) -800000f8: fe842703 lw a4,-24(s0) -800000fc: fec42783 lw a5,-20(s0) -80000100: fcc42823 sw a2,-48(s0) -80000104: fcd42a23 sw a3,-44(s0) -80000108: fce42c23 sw a4,-40(s0) -8000010c: fcf42e23 sw a5,-36(s0) -80000110: fd040793 addi a5,s0,-48 -80000114: 00078513 mv a0,a5 -80000118: 2e0000ef jal ra,800003f8 -8000011c: fe042603 lw a2,-32(s0) -80000120: fe442683 lw a3,-28(s0) -80000124: fe842703 lw a4,-24(s0) -80000128: fec42783 lw a5,-20(s0) -8000012c: fcc42823 sw a2,-48(s0) -80000130: fcd42a23 sw a3,-44(s0) -80000134: fce42c23 sw a4,-40(s0) -80000138: fcf42e23 sw a5,-36(s0) -8000013c: fd040793 addi a5,s0,-48 -80000140: 00078513 mv a0,a5 -80000144: 2b4000ef jal ra,800003f8 -80000148: fe040793 addi a5,s0,-32 -8000014c: 00078513 mv a0,a5 -80000150: 36c000ef jal ra,800004bc -80000154: fd040793 addi a5,s0,-48 -80000158: 00078513 mv a0,a5 -8000015c: 360000ef jal ra,800004bc -80000160: fd042603 lw a2,-48(s0) -80000164: fd442683 lw a3,-44(s0) -80000168: fd842703 lw a4,-40(s0) -8000016c: fdc42783 lw a5,-36(s0) -80000170: fec42023 sw a2,-32(s0) -80000174: fed42223 sw a3,-28(s0) -80000178: fee42423 sw a4,-24(s0) -8000017c: fef42623 sw a5,-20(s0) -80000180: fe042603 lw a2,-32(s0) -80000184: fe442683 lw a3,-28(s0) -80000188: fe842703 lw a4,-24(s0) -8000018c: fec42783 lw a5,-20(s0) -80000190: fcc42823 sw a2,-48(s0) -80000194: fcd42a23 sw a3,-44(s0) -80000198: fce42c23 sw a4,-40(s0) -8000019c: fcf42e23 sw a5,-36(s0) -800001a0: fd040793 addi a5,s0,-48 -800001a4: 00078513 mv a0,a5 -800001a8: 250000ef jal ra,800003f8 -800001ac: fe042603 lw a2,-32(s0) -800001b0: fe442683 lw a3,-28(s0) -800001b4: fe842703 lw a4,-24(s0) -800001b8: fec42783 lw a5,-20(s0) -800001bc: fcc42823 sw a2,-48(s0) -800001c0: fcd42a23 sw a3,-44(s0) -800001c4: fce42c23 sw a4,-40(s0) -800001c8: fcf42e23 sw a5,-36(s0) -800001cc: fd040793 addi a5,s0,-48 -800001d0: 00078513 mv a0,a5 -800001d4: 224000ef jal ra,800003f8 -800001d8: 3a4000ef jal ra,8000057c -800001dc: 00050793 mv a5,a0 -800001e0: 02079863 bnez a5,80000210 -800001e4: fe042603 lw a2,-32(s0) -800001e8: fe442683 lw a3,-28(s0) -800001ec: fe842703 lw a4,-24(s0) -800001f0: fec42783 lw a5,-20(s0) -800001f4: fcc42823 sw a2,-48(s0) -800001f8: fcd42a23 sw a3,-44(s0) -800001fc: fce42c23 sw a4,-40(s0) -80000200: fcf42e23 sw a5,-36(s0) -80000204: fd040793 addi a5,s0,-48 -80000208: 00078513 mv a0,a5 -8000020c: 1ec000ef jal ra,800003f8 -80000210: 36c000ef jal ra,8000057c -80000214: 00050793 mv a5,a0 -80000218: 02079863 bnez a5,80000248 -8000021c: fe042603 lw a2,-32(s0) -80000220: fe442683 lw a3,-28(s0) -80000224: fe842703 lw a4,-24(s0) -80000228: fec42783 lw a5,-20(s0) -8000022c: fcc42823 sw a2,-48(s0) -80000230: fcd42a23 sw a3,-44(s0) -80000234: fce42c23 sw a4,-40(s0) -80000238: fcf42e23 sw a5,-36(s0) -8000023c: fd040793 addi a5,s0,-48 -80000240: 00078513 mv a0,a5 -80000244: 1b4000ef jal ra,800003f8 -80000248: 334000ef jal ra,8000057c -8000024c: 00050793 mv a5,a0 -80000250: 02079863 bnez a5,80000280 -80000254: fe042603 lw a2,-32(s0) -80000258: fe442683 lw a3,-28(s0) -8000025c: fe842703 lw a4,-24(s0) -80000260: fec42783 lw a5,-20(s0) -80000264: fcc42823 sw a2,-48(s0) -80000268: fcd42a23 sw a3,-44(s0) -8000026c: fce42c23 sw a4,-40(s0) -80000270: fcf42e23 sw a5,-36(s0) -80000274: fd040793 addi a5,s0,-48 -80000278: 00078513 mv a0,a5 -8000027c: 17c000ef jal ra,800003f8 -80000280: 2fc000ef jal ra,8000057c -80000284: 00050793 mv a5,a0 -80000288: 02079863 bnez a5,800002b8 -8000028c: fe042603 lw a2,-32(s0) -80000290: fe442683 lw a3,-28(s0) -80000294: fe842703 lw a4,-24(s0) -80000298: fec42783 lw a5,-20(s0) -8000029c: fcc42823 sw a2,-48(s0) -800002a0: fcd42a23 sw a3,-44(s0) -800002a4: fce42c23 sw a4,-40(s0) -800002a8: fcf42e23 sw a5,-36(s0) -800002ac: fd040793 addi a5,s0,-48 -800002b0: 00078513 mv a0,a5 -800002b4: 144000ef jal ra,800003f8 -800002b8: 2c4000ef jal ra,8000057c -800002bc: 00050793 mv a5,a0 -800002c0: 02079863 bnez a5,800002f0 -800002c4: fe042603 lw a2,-32(s0) -800002c8: fe442683 lw a3,-28(s0) -800002cc: fe842703 lw a4,-24(s0) -800002d0: fec42783 lw a5,-20(s0) -800002d4: fcc42823 sw a2,-48(s0) -800002d8: fcd42a23 sw a3,-44(s0) -800002dc: fce42c23 sw a4,-40(s0) -800002e0: fcf42e23 sw a5,-36(s0) -800002e4: fd040793 addi a5,s0,-48 -800002e8: 00078513 mv a0,a5 -800002ec: 10c000ef jal ra,800003f8 -800002f0: 28c000ef jal ra,8000057c -800002f4: 00050793 mv a5,a0 -800002f8: 02079863 bnez a5,80000328 -800002fc: fe042603 lw a2,-32(s0) -80000300: fe442683 lw a3,-28(s0) -80000304: fe842703 lw a4,-24(s0) -80000308: fec42783 lw a5,-20(s0) -8000030c: fcc42823 sw a2,-48(s0) -80000310: fcd42a23 sw a3,-44(s0) -80000314: fce42c23 sw a4,-40(s0) -80000318: fcf42e23 sw a5,-36(s0) -8000031c: fd040793 addi a5,s0,-48 -80000320: 00078513 mv a0,a5 -80000324: 0d4000ef jal ra,800003f8 -80000328: fd040793 addi a5,s0,-48 -8000032c: 00078513 mv a0,a5 -80000330: 18c000ef jal ra,800004bc -80000334: fd040793 addi a5,s0,-48 -80000338: 00078513 mv a0,a5 -8000033c: 180000ef jal ra,800004bc -80000340: fd040793 addi a5,s0,-48 -80000344: 00078513 mv a0,a5 -80000348: 174000ef jal ra,800004bc -8000034c: fd040793 addi a5,s0,-48 -80000350: 00078513 mv a0,a5 -80000354: 168000ef jal ra,800004bc -80000358: fd040793 addi a5,s0,-48 -8000035c: 00078513 mv a0,a5 -80000360: 15c000ef jal ra,800004bc -80000364: fd040793 addi a5,s0,-48 -80000368: 00078513 mv a0,a5 -8000036c: 150000ef jal ra,800004bc -80000370: fd040793 addi a5,s0,-48 -80000374: 00078513 mv a0,a5 -80000378: 144000ef jal ra,800004bc -8000037c: fd040793 addi a5,s0,-48 -80000380: 00078513 mv a0,a5 -80000384: 138000ef jal ra,800004bc -80000388: fd040793 addi a5,s0,-48 -8000038c: 00078513 mv a0,a5 -80000390: 12c000ef jal ra,800004bc -80000394: fd040793 addi a5,s0,-48 -80000398: 00078513 mv a0,a5 -8000039c: 120000ef jal ra,800004bc -800003a0: 00000793 li a5,0 -800003a4: 00078513 mv a0,a5 -800003a8: 02c12083 lw ra,44(sp) -800003ac: 02812403 lw s0,40(sp) -800003b0: 03010113 addi sp,sp,48 -800003b4: 00008067 ret - -800003b8 : -800003b8: ff010113 addi sp,sp,-16 -800003bc: 00812623 sw s0,12(sp) -800003c0: 01010413 addi s0,sp,16 -800003c4: 810007b7 lui a5,0x81000 -800003c8: 04078793 addi a5,a5,64 # 81000040 -800003cc: 0a07a023 sw zero,160(a5) -800003d0: 810007b7 lui a5,0x81000 -800003d4: 04078793 addi a5,a5,64 # 81000040 -800003d8: 0a07a223 sw zero,164(a5) -800003dc: 810007b7 lui a5,0x81000 -800003e0: 04078793 addi a5,a5,64 # 81000040 -800003e4: 0a07a423 sw zero,168(a5) -800003e8: 00000013 nop -800003ec: 00c12403 lw s0,12(sp) -800003f0: 01010113 addi sp,sp,16 -800003f4: 00008067 ret - -800003f8 : -800003f8: ff010113 addi sp,sp,-16 -800003fc: 00812623 sw s0,12(sp) -80000400: 00912423 sw s1,8(sp) -80000404: 01010413 addi s0,sp,16 -80000408: 00050493 mv s1,a0 -8000040c: 810007b7 lui a5,0x81000 -80000410: 04078793 addi a5,a5,64 # 81000040 -80000414: 0a87a783 lw a5,168(a5) -80000418: 00178713 addi a4,a5,1 -8000041c: 810007b7 lui a5,0x81000 -80000420: 04078793 addi a5,a5,64 # 81000040 -80000424: 0ae7a423 sw a4,168(a5) -80000428: 810007b7 lui a5,0x81000 -8000042c: 04078793 addi a5,a5,64 # 81000040 -80000430: 0a47a703 lw a4,164(a5) -80000434: 810007b7 lui a5,0x81000 -80000438: 00471713 slli a4,a4,0x4 -8000043c: 04078793 addi a5,a5,64 # 81000040 -80000440: 00f707b3 add a5,a4,a5 -80000444: 0004a583 lw a1,0(s1) -80000448: 0044a603 lw a2,4(s1) -8000044c: 0084a683 lw a3,8(s1) -80000450: 00c4a703 lw a4,12(s1) -80000454: 00b7a023 sw a1,0(a5) -80000458: 00c7a223 sw a2,4(a5) -8000045c: 00d7a423 sw a3,8(a5) -80000460: 00e7a623 sw a4,12(a5) -80000464: 810007b7 lui a5,0x81000 -80000468: 04078793 addi a5,a5,64 # 81000040 -8000046c: 0a47a783 lw a5,164(a5) -80000470: 00178713 addi a4,a5,1 -80000474: 00900793 li a5,9 -80000478: 02e7e263 bltu a5,a4,8000049c -8000047c: 810007b7 lui a5,0x81000 -80000480: 04078793 addi a5,a5,64 # 81000040 -80000484: 0a47a783 lw a5,164(a5) -80000488: 00178713 addi a4,a5,1 -8000048c: 810007b7 lui a5,0x81000 -80000490: 04078793 addi a5,a5,64 # 81000040 -80000494: 0ae7a223 sw a4,164(a5) -80000498: 0100006f j 800004a8 -8000049c: 810007b7 lui a5,0x81000 -800004a0: 04078793 addi a5,a5,64 # 81000040 -800004a4: 0a07a223 sw zero,164(a5) -800004a8: 00000013 nop -800004ac: 00c12403 lw s0,12(sp) -800004b0: 00812483 lw s1,8(sp) -800004b4: 01010113 addi sp,sp,16 -800004b8: 00008067 ret - -800004bc : -800004bc: fd010113 addi sp,sp,-48 -800004c0: 02812623 sw s0,44(sp) -800004c4: 03010413 addi s0,sp,48 -800004c8: fca42e23 sw a0,-36(s0) -800004cc: 810007b7 lui a5,0x81000 -800004d0: 04078793 addi a5,a5,64 # 81000040 -800004d4: 0a87a783 lw a5,168(a5) -800004d8: fff78713 addi a4,a5,-1 -800004dc: 810007b7 lui a5,0x81000 -800004e0: 04078793 addi a5,a5,64 # 81000040 -800004e4: 0ae7a423 sw a4,168(a5) -800004e8: 810007b7 lui a5,0x81000 -800004ec: 04078793 addi a5,a5,64 # 81000040 -800004f0: 0a07a703 lw a4,160(a5) -800004f4: 810007b7 lui a5,0x81000 -800004f8: 00471713 slli a4,a4,0x4 -800004fc: 04078793 addi a5,a5,64 # 81000040 -80000500: 00f707b3 add a5,a4,a5 -80000504: 0007a603 lw a2,0(a5) -80000508: 0047a683 lw a3,4(a5) -8000050c: 0087a703 lw a4,8(a5) -80000510: 00c7a783 lw a5,12(a5) -80000514: fec42023 sw a2,-32(s0) -80000518: fed42223 sw a3,-28(s0) -8000051c: fee42423 sw a4,-24(s0) -80000520: fef42623 sw a5,-20(s0) -80000524: 810007b7 lui a5,0x81000 -80000528: 04078793 addi a5,a5,64 # 81000040 -8000052c: 0a07a783 lw a5,160(a5) -80000530: 00178713 addi a4,a5,1 -80000534: 00900793 li a5,9 -80000538: 02e7e263 bltu a5,a4,8000055c -8000053c: 810007b7 lui a5,0x81000 -80000540: 04078793 addi a5,a5,64 # 81000040 -80000544: 0a07a783 lw a5,160(a5) -80000548: 00178713 addi a4,a5,1 -8000054c: 810007b7 lui a5,0x81000 -80000550: 04078793 addi a5,a5,64 # 81000040 -80000554: 0ae7a023 sw a4,160(a5) -80000558: 0100006f j 80000568 -8000055c: 810007b7 lui a5,0x81000 -80000560: 04078793 addi a5,a5,64 # 81000040 -80000564: 0a07a023 sw zero,160(a5) -80000568: 00000013 nop -8000056c: fdc42503 lw a0,-36(s0) -80000570: 02c12403 lw s0,44(sp) -80000574: 03010113 addi sp,sp,48 -80000578: 00008067 ret - -8000057c : -8000057c: ff010113 addi sp,sp,-16 -80000580: 00812623 sw s0,12(sp) -80000584: 01010413 addi s0,sp,16 -80000588: 810007b7 lui a5,0x81000 -8000058c: 04078793 addi a5,a5,64 # 81000040 -80000590: 0a87a783 lw a5,168(a5) -80000594: ff678793 addi a5,a5,-10 -80000598: 0017b793 seqz a5,a5 -8000059c: 0ff7f793 andi a5,a5,255 -800005a0: 00078513 mv a0,a5 -800005a4: 00c12403 lw s0,12(sp) -800005a8: 01010113 addi sp,sp,16 -800005ac: 00008067 ret - -800005b0 : -800005b0: ff010113 addi sp,sp,-16 -800005b4: 00812623 sw s0,12(sp) -800005b8: 01010413 addi s0,sp,16 -800005bc: 810007b7 lui a5,0x81000 -800005c0: 04078793 addi a5,a5,64 # 81000040 -800005c4: 0a87a783 lw a5,168(a5) -800005c8: 0017b793 seqz a5,a5 -800005cc: 0ff7f793 andi a5,a5,255 -800005d0: 00078513 mv a0,a5 -800005d4: 00c12403 lw s0,12(sp) -800005d8: 01010113 addi sp,sp,16 -800005dc: 00008067 ret - -800005e0 : -800005e0: ff010113 addi sp,sp,-16 -800005e4: 00812623 sw s0,12(sp) -800005e8: 01010413 addi s0,sp,16 -800005ec: 00000013 nop -800005f0: 00c12403 lw s0,12(sp) -800005f4: 01010113 addi sp,sp,16 -800005f8: 00008067 ret - -Disassembly of section .bss: - -81000000 : - ... - -81000040 : - ... - -Disassembly of section .data: - -810000ec : -810000ec: 0001 nop -810000ee: 0000 unimp -810000f0: 0001 nop -810000f2: 0000 unimp -810000f4: 0006 c.slli zero,0x1 -810000f6: 0000 unimp -810000f8: 0000 unimp -810000fa: 0000 unimp -810000fc: 00000003 lb zero,0(zero) # 0 -81000100: 0001 nop -81000102: 0000 unimp -81000104: 0001 nop -81000106: 0000 unimp -81000108: 0002 c.slli64 zero -8100010a: 0000 unimp -8100010c: 0000 unimp -8100010e: 0000 unimp -81000110: 00000003 lb zero,0(zero) # 0 -81000114: 0006 c.slli zero,0x1 -81000116: 0000 unimp -81000118: 00000007 0x7 -8100011c: 0005 c.nop 1 -8100011e: 0000 unimp -81000120: 00000007 0x7 -81000124: 00000007 0x7 -81000128: 0009 c.nop 2 - ... - -8100012c : -8100012c: 0000 unimp -8100012e: 0000 unimp -81000130: 0002 c.slli64 zero -81000132: 0000 unimp -81000134: 0002 c.slli64 zero -81000136: 0000 unimp -81000138: 0000 unimp -8100013a: 0000 unimp -8100013c: 0005 c.nop 1 -8100013e: 0000 unimp -81000140: 0000 unimp -81000142: 0000 unimp -81000144: 0001 nop -81000146: 0000 unimp -81000148: 0001 nop -8100014a: 0000 unimp -8100014c: 0004 0x4 -8100014e: 0000 unimp -81000150: 0002 c.slli64 zero - ... -8100015a: 0000 unimp -8100015c: 00000003 lb zero,0(zero) # 0 -81000160: 0002 c.slli64 zero -81000162: 0000 unimp -81000164: 00000003 lb zero,0(zero) # 0 -81000168: 0002 c.slli64 zero - ... - -Disassembly of section .comment: - -82000000 <.comment>: -82000000: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm -82000004: 2820 fld fs0,80(s0) -82000006: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm -8200000a: 3820 fld fs0,112(s0) -8200000c: 322e fld ft4,232(sp) -8200000e: 302e fld ft0,232(sp) - ... diff --git a/src/riscv_gpgpu/lib/queue.h b/src/riscv_gpgpu/lib/queue.h index 7b586956..6793d467 100644 --- a/src/riscv_gpgpu/lib/queue.h +++ b/src/riscv_gpgpu/lib/queue.h @@ -15,9 +15,7 @@ typedef struct Job_t unsigned n_threads; unsigned base_sp; unsigned func_ptr; - void * x; - void * y; - void * z; + void * args; unsigned assigned_warp; } Job; diff --git a/src/riscv_gpgpu/lib/queue.hex b/src/riscv_gpgpu/lib/queue.hex deleted file mode 100644 index 2af2f29b..00000000 --- a/src/riscv_gpgpu/lib/queue.hex +++ /dev/null @@ -1,108 +0,0 @@ -:0200000480007A -:10000000130101FD2326110223248102130401039D -:10001000B70700809387075E2320F4FEB7070081AF -:100020009387C70E2322F4FEB70700819387C71278 -:100030002324F4FEB7070081938707002326F4FEEC -:10004000032604FE832644FE032784FE8327C4FE82 -:100050002328C4FC232AD4FC232CE4FC232EF4FC08 -:10006000930704FD13850700EF000039032604FE03 -:10007000832644FE032784FE8327C4FE2328C4FC72 -:10008000232AD4FC232CE4FC232EF4FC930704FD48 -:1000900013850700EF004036032604FE832644FE46 -:1000A000032784FE8327C4FE2328C4FC232AD4FC10 -:1000B000232CE4FC232EF4FC930704FD1385070096 -:1000C000EF008033032604FE832644FE032784FECC -:1000D0008327C4FE2328C4FC232AD4FC232CE4FC5D -:1000E000232EF4FC930704FD13850700EF00C030B6 -:1000F000032604FE832644FE032784FE8327C4FED2 -:100100002328C4FC232AD4FC232CE4FC232EF4FC57 -:10011000930704FD13850700EF00002E032604FE5D -:10012000832644FE032784FE8327C4FE2328C4FCC1 -:10013000232AD4FC232CE4FC232EF4FC930704FD97 -:1001400013850700EF00402B930704FE138507007B -:10015000EF00C036930704FD13850700EF0000365B -:10016000032604FD832644FD032784FD8327C4FD65 -:100170002320C4FE2322D4FE2324E4FE2326F4FEFF -:10018000032604FE832644FE032784FE8327C4FE41 -:100190002328C4FC232AD4FC232CE4FC232EF4FCC7 -:1001A000930704FD13850700EF000025032604FED6 -:1001B000832644FE032784FE8327C4FE2328C4FC31 -:1001C000232AD4FC232CE4FC232EF4FC930704FD07 -:1001D00013850700EF004022EF00403A9307050027 -:1001E00063980702032604FE832644FE032784FE49 -:1001F0008327C4FE2328C4FC232AD4FC232CE4FC3C -:10020000232EF4FC930704FD13850700EF00C01EA6 -:10021000EF00C0369307050063980702032604FE2B -:10022000832644FE032784FE8327C4FE2328C4FCC0 -:10023000232AD4FC232CE4FC232EF4FC930704FD96 -:1002400013850700EF00401BEF00403393070500C4 -:1002500063980702032604FE832644FE032784FED8 -:100260008327C4FE2328C4FC232AD4FC232CE4FCCB -:10027000232EF4FC930704FD13850700EF00C0173D -:10028000EF00C02F9307050063980702032604FEC2 -:10029000832644FE032784FE8327C4FE2328C4FC50 -:1002A000232AD4FC232CE4FC232EF4FC930704FD26 -:1002B00013850700EF004014EF00402C9307050062 -:1002C00063980702032604FE832644FE032784FE68 -:1002D0008327C4FE2328C4FC232AD4FC232CE4FC5B -:1002E000232EF4FC930704FD13850700EF00C010D4 -:1002F000EF00C0289307050063980702032604FE59 -:10030000832644FE032784FE8327C4FE2328C4FCDF -:10031000232AD4FC232CE4FC232EF4FC930704FDB5 -:1003200013850700EF00400D930704FD13850700B8 -:10033000EF00C018930704FD13850700EF000018B5 -:10034000930704FD13850700EF004017930704FD92 -:1003500013850700EF008016930704FD138507003F -:10036000EF00C015930704FD13850700EF0000158B -:10037000930704FD13850700EF004014930704FD65 -:1003800013850700EF008013930704FD1385070012 -:10039000EF00C012930704FD13850700EF00001261 -:1003A00093070000138507008320C1020324810204 -:1003B0001301010367800000130101FF2326810060 -:1003C00013040101B70700819387070423A0070ADC -:1003D000B70700819387070423A2070AB7070081A4 -:1003E0009387070423A4070A130000000324C10015 -:1003F0001301010167800000130101FF2326810022 -:10040000232491001304010193040500B707008120 -:100410009387070483A7870A13871700B70700810C -:100420009387070423A4E70AB7070081938707048B -:1004300003A7470AB70700811317470093870704EC -:10044000B307F70083A5040003A6440083A6840035 -:1004500003A7C40023A0B70023A2C70023A4D7008A -:1004600023A6E700B70700819387070483A7470AFD -:10047000138717009307900063E2E702B707008134 -:100480009387070483A7470A13871700B7070081DC -:100490009387070423A2E70A6F000001B7070081D2 -:1004A0009387070423A2070A130000000324C10056 -:1004B000832481001301010167800000130101FD05 -:1004C0002326810213040103232EA4FCB707008115 -:1004D0009387070483A7870A1387F7FFB70700816D -:1004E0009387070423A4E70AB707008193870704CB -:1004F00003A7070AB707008113174700938707046C -:10050000B307F70003A6070083A6470003A78700E9 -:1005100083A7C7002320C4FE2322D4FE2324E4FEA5 -:100520002326F4FEB70700819387070483A7070AF1 -:10053000138717009307900063E2E702B707008173 -:100540009387070483A7070A13871700B70700815B -:100550009387070423A0E70A6F000001B707008113 -:100560009387070423A0070A130000000325C4FD96 -:100570000324C1021301010367800000130101FF7E -:100580002326810013040101B70700819387070424 -:1005900083A7870A938767FF93B7170093F7F70F2F -:1005A000138507000324C1001301010167800000C7 -:1005B000130101FF2326810013040101B707008105 -:1005C0009387070483A7870A93B7170093F7F70F5A -:1005D000138507000324C100130101016780000097 -:1005E000130101FF23268100130401011300000001 -:0C05F0000324C10013010101678000001A -:02000004810079 -:1000EC0001000000010000000600000000000000FC -:1000FC0003000000010000000100000002000000ED -:10010C0000000000030000000600000007000000D3 -:10011C0005000000070000000700000009000000B7 -:10012C0000000000020000000200000000000000BF -:10013C0005000000000000000100000001000000AC -:10014C00040000000200000000000000000000009D -:10015C000300000002000000030000000200000089 -:040000058000000077 -:00000001FF diff --git a/src/riscv_gpgpu/lib/queue.s b/src/riscv_gpgpu/lib/queue.s index 666d2d4f..6fcec494 100644 --- a/src/riscv_gpgpu/lib/queue.s +++ b/src/riscv_gpgpu/lib/queue.s @@ -39,14 +39,10 @@ queue_enqueue: sw t3, 8 (t1) # lw t3, 12(a1) # func_ptr sw t3, 12(t1) # - lw t3, 16(a1) # x + lw t3, 16(a1) # args sw t3, 16(t1) # - lw t3, 20(a1) # y + lw t3, 20(a1) # assigned_warp sw t3, 20(t1) # - lw t3, 24(a1) # z - sw t3, 24(t1) # - lw t3, 28(a1) # assigned_warp - sw t3, 28(t1) # addi t4, t4, 1 # end_i++ li t5, SIZE # size bne t4, t5, ec # if ((q.end_i + 1) == SIZE) @@ -83,14 +79,10 @@ dc: sw t3, 8 (a1) # lw t3, 12(t1) # func_ptr sw t3, 12(a1) # - lw t3, 16(t1) # x + lw t3, 16(t1) # args sw t3, 16(a1) # - lw t3, 20(t1) # y + lw t3, 20(t1) # assigned_warp sw t3, 20(a1) # - lw t3, 24(t1) # z - sw t3, 24(a1) # - lw t3, 28(t1) # assigned_warp - sw t3, 28(a1) # ret