From 4266c8d86cc7797450b1a2ff0347c3d8caadf627 Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Mon, 18 Mar 2019 21:10:16 -0400 Subject: [PATCH] Changed name to vortex for now + Fixed library structure --- .DS_Store | Bin 0 -> 6148 bytes src/.DS_Store | Bin 0 -> 8196 bytes src/riscv_gpgpu/Makefile | 18 - src/riscv_gpgpu/gpgpu_test.c | 115 -- src/riscv_gpgpu/gpgpu_test.dump | 902 --------------- src/riscv_gpgpu/gpgpu_test.hex | 180 --- src/riscv_gpgpu/hi.sh | 3 - src/test_riscv.sh | 4 +- .../queue.elf => vortex_software/.DS_Store} | Bin 9296 -> 8196 bytes src/vortex_software/Makefile | 21 + .../linker.ld | 0 src/vortex_software/vortex_test.dump | 1028 +++++++++++++++++ .../vortex_test.elf} | Bin 10392 -> 10748 bytes src/vortex_software/vortex_test.hex | 202 ++++ src/vortex_software/vx_include/vx_front.c | 94 ++ src/vortex_software/vx_include/vx_front.h | 20 + src/vortex_software/vx_main.c | 38 + src/vortex_software/vx_os/.DS_Store | Bin 0 -> 6148 bytes .../vx_os/vx_back/vx_back.c} | 59 +- .../vx_os/vx_back/vx_back.h} | 30 +- .../vx_os/vx_back/vx_back.s} | 54 +- src/vortex_software/vx_os/vx_io/.DS_Store | Bin 0 -> 6148 bytes src/vortex_software/vx_os/vx_io/vx_io.c | 21 + src/vortex_software/vx_os/vx_io/vx_io.h | 8 + src/vortex_software/vx_os/vx_io/vx_io.s | 30 + src/vortex_software/vx_os/vx_util/.DS_Store | Bin 0 -> 6148 bytes .../vx_os/vx_util}/queue.h | 0 .../vx_os/vx_util}/queue.s | 0 28 files changed, 1498 insertions(+), 1329 deletions(-) create mode 100644 .DS_Store create mode 100644 src/.DS_Store delete mode 100644 src/riscv_gpgpu/Makefile delete mode 100644 src/riscv_gpgpu/gpgpu_test.c delete mode 100644 src/riscv_gpgpu/gpgpu_test.dump delete mode 100644 src/riscv_gpgpu/gpgpu_test.hex delete mode 100755 src/riscv_gpgpu/hi.sh rename src/{riscv_gpgpu/lib/queue.elf => vortex_software/.DS_Store} (66%) mode change 100755 => 100644 create mode 100644 src/vortex_software/Makefile rename src/{riscv_gpgpu => vortex_software}/linker.ld (100%) create mode 100644 src/vortex_software/vortex_test.dump rename src/{riscv_gpgpu/gpgpu_test.elf => vortex_software/vortex_test.elf} (51%) create mode 100644 src/vortex_software/vortex_test.hex create mode 100644 src/vortex_software/vx_include/vx_front.c create mode 100644 src/vortex_software/vx_include/vx_front.h create mode 100644 src/vortex_software/vx_main.c create mode 100644 src/vortex_software/vx_os/.DS_Store rename src/{riscv_gpgpu/lib/lib.c => vortex_software/vx_os/vx_back/vx_back.c} (53%) rename src/{riscv_gpgpu/lib/lib.h => vortex_software/vx_os/vx_back/vx_back.h} (69%) rename src/{riscv_gpgpu/lib/lib.s => vortex_software/vx_os/vx_back/vx_back.s} (53%) create mode 100644 src/vortex_software/vx_os/vx_io/.DS_Store create mode 100644 src/vortex_software/vx_os/vx_io/vx_io.c create mode 100644 src/vortex_software/vx_os/vx_io/vx_io.h create mode 100644 src/vortex_software/vx_os/vx_io/vx_io.s create mode 100644 src/vortex_software/vx_os/vx_util/.DS_Store rename src/{riscv_gpgpu/lib => vortex_software/vx_os/vx_util}/queue.h (100%) rename src/{riscv_gpgpu/lib => vortex_software/vx_os/vx_util}/queue.s (100%) diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ffe5b8b379f2f4c52495d90f19157aa66b4c9d91 GIT binary patch literal 6148 zcmeHK%}T>S5Z<*_w-qr5!5(w*)P}u`{sy&FswVWZa8`$m(WlwOe3xnw>1Gh`oL5@T7nD@R&Yj&o7E!4)jae(OAGMD7w6RcN&hP@D@gj z=pu@c7$63S0b*dK7|_Rn*jlNosaRrw82AYTxIdWC5N(aQLb-K7hu3HHml07w$F~Hc zsnOP$D+CV+SE+z1mFp)4SLrZr>Ns0tu27{jE?0(m^vcEKh0E1p+?3&r+X|^C28e-0 z21?2_@cci9UuNkee=&tDVt^Rl}>oCU{aIv`yHBq7uh1HZt)2X7Zo-~a#s literal 0 HcmV?d00001 diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a6a3aa02fbe08a83f7d2b09eb9188f7ad1d5eb34 GIT binary patch literal 8196 zcmeHM%Wl&^6upzDn>K0}NG%)W4HAn|HI-T_p-NHO3Mv6Ya-j=AsndkU!i_`hG=&h9 z4dNGoKR|p5E0%l+Vhv};t{G1qbyJ~Aosnkl*gj|G&hZ^P*C8TS>o+Sz3q)j~ayvJT zCZ+J}yq+nU=*$gR20qae9Z;9LJFa(d2CYwM1+)TM0j+>mKr3(=6u>*17h}SEKfJ12 zt$F=m)Ou!zc{6oZ9y zTsJu!wi?-SXhS-&kWMU`nMD~26SIS73OKQ9XmzU<&&$^5y)!;d%{R za9Pbphr}Y@E*_gCG1xPo1+>%p?hQ{aco|}8TfMG!HZV95A1`2FGzUB2lh+B z7BOlEcrN74+r;5Op* zg-1(dC;b%>_(_Vu@&ukw%8bP0QDzqD0qxKxZPO#NXgfKNh)Nl4&_mqeSBQw0@Y7Xw z6j3STi*y9+QMzs-E@gB+Mk`*6n3R!adX3%b0Dn8yDm|KcjLOVuv8R08RTp=a@9=<5 zC`hhbM5@YifIgsOs)Nx&AM7Mc#GK43#>ge$+X|XTjf^hG=sJ8noh^;Yqg7@aSPhR* zH(h5DWiq}X;T5HMWHCdEtXZs>KZp35Pq21G6z+XM1F_SUeI$0OJkvSs#=!4JPoD3M zuIu>0^72oX$>#EfqG6PbQn~cPYI_4Ku!Fu|vwP3@(PKMkH=_Qo=ecp;Zaj5bgZkXH zO|KK!PN&rqWT)8zKT&7pp)v9BzT<|J#$l|6lB+dNi$oR^U=8z;avGRt+wlKI2vI zc&=@t?xXU;apTYm3L24)!-{kqHvYp9eG^d5sYZ4jTAV@o?;iq^`HFu3>-WEi!>iW( E1$Wy?%m4rY literal 0 HcmV?d00001 diff --git a/src/riscv_gpgpu/Makefile b/src/riscv_gpgpu/Makefile deleted file mode 100644 index b82d8f7e..00000000 --- a/src/riscv_gpgpu/Makefile +++ /dev/null @@ -1,18 +0,0 @@ - -COMP = /opt/riscv/bin/riscv32-unknown-elf-gcc -CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib - -DMP = /opt/riscv/bin/riscv32-unknown-elf-objdump -CPY = /opt/riscv/bin/riscv32-unknown-elf-objcopy - - -all: HEX DUMP ELF - -DUMP: ELF - $(DMP) -D gpgpu_test.elf > gpgpu_test.dump - -HEX: ELF - $(CPY) -O ihex gpgpu_test.elf gpgpu_test.hex - -ELF: - $(COMP) $(CC_FLAGS) ./lib/lib.s gpgpu_test.c ./lib/queue.s ./lib/lib.c -o gpgpu_test.elf diff --git a/src/riscv_gpgpu/gpgpu_test.c b/src/riscv_gpgpu/gpgpu_test.c deleted file mode 100644 index 169d8b80..00000000 --- a/src/riscv_gpgpu/gpgpu_test.c +++ /dev/null @@ -1,115 +0,0 @@ -// #include -// #include -extern void print_consol(char *); -extern void printc(char); - - -int main(void); -void matMult (unsigned, unsigned); - -#include "./lib/lib.h" - - -// unsigned x[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1 , 1 , 1 , 1 , 1 }; -// unsigned y[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; -// unsigned z[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - - - -unsigned x[256] = {0}; - -unsigned y[256] = {0}; - -unsigned z[256] = {0}; - -#define MAT_DIM 16 -#define MAX_THREADS 8 - -#define NUM_WARPS 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() -{ - - for (int i = 0; i < 8; i++) - { - queue_initialize(q + i); - } - - for (int i = 0; i < (MAT_DIM * MAT_DIM); i++) - { - x[i] = 3; - y[i] = 2; - } - - - args.x = x; - args.y = y; - args.z = z; - args.mat_dim = MAT_DIM; - args.offset = (MAT_DIM/MAX_THREADS); - - createWarps(NUM_WARPS, NUM_THREADS, matMult, (void *) (&args)); - - wait_for_done(8); - - print_consol("-------------------------\n"); - print_consol("FINAL Z\n"); - - for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) - { - if ((j % MAT_DIM) == 0) print_consol("\n"); - int_print(z[j]); - print_consol(" "); - } - - print_consol("\n-------------------------------\n"); - return 0; -} - - -void matMult(unsigned tid, unsigned wid) -{ - matMult_arg_t * args = (matMult_arg_t *) get_1st_arg(); - - unsigned * x_ptr = args->x; - unsigned * y_ptr = args->y; - unsigned * z_ptr = args->z; - - unsigned off = args->offset; - - unsigned i_index = off * tid; - unsigned mat_dim = args->mat_dim; - - for (int iter = 0; iter < off; ++iter) - { - 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]); - } - - int final_i = (wid * mat_dim) + i_index; - z_ptr[final_i] = total; - i_index++; - } - - - return; - -} \ No newline at end of file diff --git a/src/riscv_gpgpu/gpgpu_test.dump b/src/riscv_gpgpu/gpgpu_test.dump deleted file mode 100644 index c42ff5a3..00000000 --- a/src/riscv_gpgpu/gpgpu_test.dump +++ /dev/null @@ -1,902 +0,0 @@ - -gpgpu_test.elf: file format elf32-littleriscv - - -Disassembly of section .text: - -80000000 <_start>: -80000000: 7ffff137 lui sp,0x7ffff -80000004: 0c4000ef jal ra,800000c8
-80000008: 00000073 ecall - -8000000c : -8000000c: 00068b93 mv s7,a3 -80000010: 00070d13 mv s10,a4 -80000014: 00010f13 mv t5,sp -80000018: 00050393 mv t2,a0 - -8000001c : -8000001c: 00100513 li a0,1 - -80000020 : -80000020: 00755c63 bge a0,t2,80000038 - -80000024 : -80000024: 80010113 addi sp,sp,-2048 # 7fffe800 -80000028: 00050313 mv t1,a0 -8000002c: 0003506b 0x3506b - -80000030 : -80000030: 00150513 addi a0,a0,1 -80000034: fedff06f j 80000020 - -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 - -80000058 : -80000058: 000108b7 lui a7,0x10 -8000005c: 00b8a023 sw a1,0(a7) # 10000 -80000060: 00008067 ret - -80000064 : -80000064: 00000317 auipc t1,0x0 -80000068: fa830313 addi t1,t1,-88 # 8000000c -8000006c: 0003006b 0x3006b -80000070: 00008067 ret - -80000074 : -80000074: ff410113 addi sp,sp,-12 -80000078: 00112023 sw ra,0(sp) -8000007c: 00b12223 sw a1,4(sp) - -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 - -80000094 : -80000094: 00012083 lw ra,0(sp) -80000098: 00412583 lw a1,4(sp) -8000009c: 00c10113 addi sp,sp,12 -800000a0: 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 - -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 - -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 - -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 - -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 - -80000478 : -80000478: 01d2a223 sw t4,4(t0) -8000047c: 00008067 ret - -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 - -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 - -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 - -80000504 : -80000504: 00008067 ret - -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 - -80000520 : -80000520: 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 - -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 - -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 - -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 - -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 - -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: 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 - -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 - -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 - -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 - -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: - -81000000 <.rodata>: -81000000: 0030 addi a2,sp,8 -81000002: 0000 unimp -81000004: 0031 c.nop 12 -81000006: 0000 unimp -81000008: 0032 c.slli zero,0xc -8100000a: 0000 unimp -8100000c: 00000033 add zero,zero,zero -81000010: 0034 addi a3,sp,8 -81000012: 0000 unimp -81000014: 0035 c.nop 13 -81000016: 0000 unimp -81000018: 0036 c.slli zero,0xd -8100001a: 0000 unimp -8100001c: 00000037 lui zero,0x0 -81000020: 0038 addi a4,sp,8 -81000022: 0000 unimp -81000024: 0039 c.nop 14 -81000026: 0000 unimp -81000028: 0061 c.nop 24 -8100002a: 0000 unimp -8100002c: 0062 c.slli zero,0x18 -8100002e: 0000 unimp -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 -81000058: 0a2d addi s4,s4,11 -8100005a: 0000 unimp -8100005c: 4946 lw s2,80(sp) -8100005e: 414e lw sp,208(sp) -81000060: 204c fld fa1,128(s0) -81000062: 0a5a slli s4,s4,0x16 -81000064: 0000 unimp -81000066: 0000 unimp -81000068: 000a c.slli zero,0x2 -8100006a: 0000 unimp -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 -81000090: 000a c.slli zero,0x2 -81000092: 0000 unimp -81000094: 0030 addi a2,sp,8 -81000096: 0000 unimp -81000098: 0031 c.nop 12 -8100009a: 0000 unimp -8100009c: 0032 c.slli zero,0xc -8100009e: 0000 unimp -810000a0: 00000033 add zero,zero,zero -810000a4: 0034 addi a3,sp,8 -810000a6: 0000 unimp -810000a8: 0035 c.nop 13 -810000aa: 0000 unimp -810000ac: 0036 c.slli zero,0xd -810000ae: 0000 unimp -810000b0: 00000037 lui zero,0x0 -810000b4: 0038 addi a4,sp,8 -810000b6: 0000 unimp -810000b8: 0039 c.nop 14 -810000ba: 0000 unimp -810000bc: 0061 c.nop 24 -810000be: 0000 unimp -810000c0: 0062 c.slli zero,0x18 -810000c2: 0000 unimp -810000c4: 00000063 beqz zero,810000c4 -810000c8: 0064 addi s1,sp,12 -810000ca: 0000 unimp -810000cc: 0065 c.nop 25 -810000ce: 0000 unimp -810000d0: 0066 c.slli zero,0x19 - -Disassembly of section .data: - -810000d4 : -810000d4: 0000 unimp -810000d6: 8100 0x8100 -810000d8: 0004 0x4 -810000da: 8100 0x8100 -810000dc: 0008 0x8 -810000de: 8100 0x8100 -810000e0: 000c 0xc -810000e2: 8100 0x8100 -810000e4: 0010 0x10 -810000e6: 8100 0x8100 -810000e8: 0014 0x14 -810000ea: 8100 0x8100 -810000ec: 0018 0x18 -810000ee: 8100 0x8100 -810000f0: 001c 0x1c -810000f2: 8100 0x8100 -810000f4: 0020 addi s0,sp,8 -810000f6: 8100 0x8100 -810000f8: 0024 addi s1,sp,8 -810000fa: 8100 0x8100 -810000fc: 0028 addi a0,sp,8 -810000fe: 8100 0x8100 -81000100: 002c addi a1,sp,8 -81000102: 8100 0x8100 -81000104: 0030 addi a2,sp,8 -81000106: 8100 0x8100 -81000108: 0034 addi a3,sp,8 -8100010a: 8100 0x8100 -8100010c: 0038 addi a4,sp,8 -8100010e: 8100 0x8100 -81000110: 003c addi a5,sp,8 -81000112: 8100 0x8100 - -81000114 : -81000114: 0094 addi a3,sp,64 -81000116: 8100 0x8100 -81000118: 0098 addi a4,sp,64 -8100011a: 8100 0x8100 -8100011c: 009c addi a5,sp,64 -8100011e: 8100 0x8100 -81000120: 00a0 addi s0,sp,72 -81000122: 8100 0x8100 -81000124: 00a4 addi s1,sp,72 -81000126: 8100 0x8100 -81000128: 00a8 addi a0,sp,72 -8100012a: 8100 0x8100 -8100012c: 00ac addi a1,sp,72 -8100012e: 8100 0x8100 -81000130: 00b0 addi a2,sp,72 -81000132: 8100 0x8100 -81000134: 00b4 addi a3,sp,72 -81000136: 8100 0x8100 -81000138: 00b8 addi a4,sp,72 -8100013a: 8100 0x8100 -8100013c: 00bc addi a5,sp,72 -8100013e: 8100 0x8100 -81000140: 00c0 addi s0,sp,68 -81000142: 8100 0x8100 -81000144: 00c4 addi s1,sp,68 -81000146: 8100 0x8100 -81000148: 00c8 addi a0,sp,68 -8100014a: 8100 0x8100 -8100014c: 00cc addi a1,sp,68 -8100014e: 8100 0x8100 -81000150: 00d0 addi a2,sp,68 -81000152: 8100 0x8100 - -Disassembly of section .bss: - -81000154 : - ... - -81000554 : - ... - -81000954 : - ... - -81000d54 : - ... - -81000d5c : -81000d5c: 0000 unimp - ... - -81000d60 : - ... - -81000d74 : - ... - -81003394 : - ... - -8100339c : -8100339c: 0000 unimp - ... - -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/gpgpu_test.hex b/src/riscv_gpgpu/gpgpu_test.hex deleted file mode 100644 index 1a365152..00000000 --- a/src/riscv_gpgpu/gpgpu_test.hex +++ /dev/null @@ -1,180 +0,0 @@ -:0200000480007A -: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 -:10002000380000003900000061000000620000009C -:10003000630000006400000065000000660000002E -:100040002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DE0 -:100050002D2D2D2D2D2D2D2D2D0A000046494E41E3 -:100060004C205A0A000000000A0000002000000096 -:100070000A2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DD3 -:100080002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DA0 -:100090000A000000300000003100000032000000C3 -:1000A000330000003400000035000000360000007E -:1000B0003700000038000000390000006100000037 -:1000C00062000000630000006400000065000000A2 -:0200D0006600C8 -:1000D4000000008104000081080000810C00008100 -:1000E4001000008114000081180000811C000081B0 -:1000F4002000008124000081280000812C00008160 -:100104003000008134000081380000813C0000810F -:1001140094000081980000819C000081A00000816F -:10012400A4000081A8000081AC000081B00000811F -:10013400B4000081B8000081BC000081C0000081CF -:10014400C4000081C8000081CC000081D00000817F -:040000058000000077 -:00000001FF diff --git a/src/riscv_gpgpu/hi.sh b/src/riscv_gpgpu/hi.sh deleted file mode 100755 index d44ef33e..00000000 --- a/src/riscv_gpgpu/hi.sh +++ /dev/null @@ -1,3 +0,0 @@ - /opt/riscv/bin/riscv32-unknown-elf-gcc -march=rv32i -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib ./lib/lib.s gpgpu_test.c ./lib/queue.s ./lib/lib.c -o gpgpu_test.elf - /opt/riscv/bin/riscv32-unknown-elf-objdump -D gpgpu_test.elf > gpgpu_test.dump - /opt/riscv/bin/riscv32-unknown-elf-objcopy -O ihex gpgpu_test.elf gpgpu_test.hex diff --git a/src/test_riscv.sh b/src/test_riscv.sh index d7fa5998..8ae14373 100755 --- a/src/test_riscv.sh +++ b/src/test_riscv.sh @@ -1,4 +1,4 @@ echo start > results.txt -echo ./riscv_gpgpu/gpgpu_test.hex -./harptool -E -a rv32i --core ./riscv_gpgpu/gpgpu_test.hex -s -b +echo ./vortex_software/vortex_test.hex +./harptool -E -a rv32i --core ./vortex_software/vortex_test.hex -s -b diff --git a/src/riscv_gpgpu/lib/queue.elf b/src/vortex_software/.DS_Store old mode 100755 new mode 100644 similarity index 66% rename from src/riscv_gpgpu/lib/queue.elf rename to src/vortex_software/.DS_Store index 2893e5d7ac6d98f24af5906181b27b98978ee5d5..476708ba1f5b061f4894586be39ce6987b9dc8f8 GIT binary patch literal 8196 zcmeHM-D(p-6h4!rx`{{w3eDx-2trF}3atex#F$>>LJ%T)p^|2^nH5Qg%@7f8!vqjA3(qPN!(3#q27qaIWXs&ojKpm*>93e&z6W-W$c!S3Pfa~3Cv%E zi!m`T+M1>G$PFL^pU9&D70D;J=C4JY0i%FXz$jo8FbWt2{sjeaW(%_t&V4m&yivd? z@Lwt*ejjW!fn|+zh4QBZPL=?`42Gqlk2*kdY>j1&bA^(Md#dVzX)4nt22*s*+aerT z);L$F=)@GAm|mIb3Wdql!LwyJv9dzrjRHo2bp=H2o<+sprGQ?9>v!IAeC}WtU#QeK z;O(E%u<){bPll!`dR}HuC3CNo3uMa?+m?I6~DHG92SMS2Rks!PyRJx>zT| z@lQ+j7Vq^DyRg`}9lU$hJF1+U!A_+9gcQ)zq3?2vvK9BW#z2g_1yD%hfnIG=4d>uGzU+` z)x+kfE(HO>{vcsO|q z1I_slU5pt8E|UUjm25%O|HsMi|1Z-cnOuzmMu9(6fMu%nY6T>Ds>hJUDQ}~lpa~Ok nbA^%u7x_Z~*UNtxqHiNqaLO9z3NZpRF9M_t#u)|vssg_N*iRCe literal 9296 zcmeHN&ubi29RJSF#HkTA$ws48WX#)cqlU5ATC^8O`ePA9@Zi<5-K=$CcWccA+9EjH zsqD3~7mp#t-HQjoLp*qx!b1Onf_M|D@d&xQK&TcLlv zABvU!K)iNuAXe`WguOrLn8q;wwMlzK?@S)+oSr<^J2`o5aANXUvL}yqUdK8^xz6Bp zX3e~gA@CUjpCRxW3JVx5-wQ?IemEt5$EN6Kd5@ek9dm{%-cJKLA4xUS8%E-=QYWMP~ z94w?VK_=pJLX{3wo-BDe=SBm8PQi<@LFn%--$p6kDy?c)Q?k&=LeG;2H zB)0C7*#3n?cXw3BM=saxn766&`))3sPude*Z0*io!M_nxJ?-BwV9n_o@a>Y{En#mD zl6cww!C|8Rvww+8wtu|~e7hy|-X_0?zQ^9tq>kT1ACK%`+LJi3Io3b+CBpw$e~3N! z&pqVcJMGJdogLtGaPTbe{iF6RyYErX1o7i%;BkI$s9c4BLO>y)5Kssx1QY@a0foT- z9RXZHi0&pt_YffKvCj4!1{2%Zk3YMj`wYx^Jc+@?aY<}+-vN43*U0!FMzuJWYcemL zJ$uGlDSi0ytJd50oAwEq{*63#=<+57i!G_knIDXFt{l-#e(GeT8PE;-^N{=Icn5qQ z5l?}CIYZIijs-+7KnKPC94$)S`w6AlUxL1>C4QY=g#NcqULTzOuYmuCdN0L#5&UO^ zydc(XaMbdgSbrBBa_f8Wd7$zh_z%cuFt{FF-KcIj2!gpX2;&iYO5zwduE%k_ zUk@xUno<(C3KPf0hv#M;6U?V!k&pd6ua^4aFW_0V#3uH)XI5#3%UdOwon UgX=Ky9ND;E5%*T)k&h(qA$L%AC;$Ke diff --git a/src/vortex_software/Makefile b/src/vortex_software/Makefile new file mode 100644 index 00000000..b82f85df --- /dev/null +++ b/src/vortex_software/Makefile @@ -0,0 +1,21 @@ + +COMP = /opt/riscv/bin/riscv32-unknown-elf-gcc +CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib + +DMP = /opt/riscv/bin/riscv32-unknown-elf-objdump +CPY = /opt/riscv/bin/riscv32-unknown-elf-objcopy + +VX_LIB = ./vx_os/vx_back/vx_back.s ./vx_os/vx_back/vx_back.c ./vx_os/vx_util/queue.s +VX_IO = ./vx_os/vx_io/vx_io.s ./vx_os/vx_io/vx_io.c +VX_FR = ./vx_include/vx_front.c + +all: HEX DUMP ELF + +DUMP: ELF + $(DMP) -D vortex_test.elf > vortex_test.dump + +HEX: ELF + $(CPY) -O ihex vortex_test.elf vortex_test.hex + +ELF: + $(COMP) $(CC_FLAGS) $(VX_LIB) $(VX_IO) $(VX_FR) vx_main.c -o vortex_test.elf diff --git a/src/riscv_gpgpu/linker.ld b/src/vortex_software/linker.ld similarity index 100% rename from src/riscv_gpgpu/linker.ld rename to src/vortex_software/linker.ld diff --git a/src/vortex_software/vortex_test.dump b/src/vortex_software/vortex_test.dump new file mode 100644 index 00000000..5e98a3ee --- /dev/null +++ b/src/vortex_software/vortex_test.dump @@ -0,0 +1,1028 @@ + +vortex_test.elf: file format elf32-littleriscv + + +Disassembly of section .text: + +80000000 <_start>: +80000000: 7ffff137 lui sp,0x7ffff +80000004: 068000ef jal ra,8000006c +80000008: 185000ef jal ra,8000098c
+8000000c: 00000073 ecall + +80000010 : +80000010: 00068b93 mv s7,a3 +80000014: 00070d13 mv s10,a4 +80000018: 00010f13 mv t5,sp +8000001c: 00050393 mv t2,a0 + +80000020 : +80000020: 00100513 li a0,1 + +80000024 : +80000024: 00755c63 bge a0,t2,8000003c + +80000028 : +80000028: 80010113 addi sp,sp,-2048 # 7fffe800 +8000002c: 00050313 mv t1,a0 +80000030: 0003506b 0x3506b + +80000034 : +80000034: 00150513 addi a0,a0,1 +80000038: fedff06f j 80000024 + +8000003c : +8000003c: 000f0113 mv sp,t5 +80000040: 00000513 li a0,0 +80000044: 00060f93 mv t6,a2 +80000048: 00038d93 mv s11,t2 +8000004c: 01bfe0eb 0x1bfe0eb +80000050: 00000517 auipc a0,0x0 +80000054: 08050513 addi a0,a0,128 # 800000d0 +80000058: 0005406b 0x5406b + +8000005c : +8000005c: 00000317 auipc t1,0x0 +80000060: fb430313 addi t1,t1,-76 # 80000010 +80000064: 0003006b 0x3006b +80000068: 00008067 ret + +8000006c : +8000006c: fe010113 addi sp,sp,-32 +80000070: 00112e23 sw ra,28(sp) +80000074: 00812c23 sw s0,24(sp) +80000078: 02010413 addi s0,sp,32 +8000007c: fe042623 sw zero,-20(s0) +80000080: 0300006f j 800000b0 +80000084: fec42703 lw a4,-20(s0) +80000088: 4c400793 li a5,1220 +8000008c: 02f70733 mul a4,a4,a5 +80000090: 810007b7 lui a5,0x81000 +80000094: 1f078793 addi a5,a5,496 # 810001f0 +80000098: 00f707b3 add a5,a4,a5 +8000009c: 00078513 mv a0,a5 +800000a0: 33c000ef jal ra,800003dc +800000a4: fec42783 lw a5,-20(s0) +800000a8: 00178793 addi a5,a5,1 +800000ac: fef42623 sw a5,-20(s0) +800000b0: fec42703 lw a4,-20(s0) +800000b4: 00700793 li a5,7 +800000b8: fce7d6e3 bge a5,a4,80000084 +800000bc: 00000013 nop +800000c0: 01c12083 lw ra,28(sp) +800000c4: 01812403 lw s0,24(sp) +800000c8: 02010113 addi sp,sp,32 +800000cc: 00008067 ret + +800000d0 : +800000d0: fd010113 addi sp,sp,-48 +800000d4: 02112623 sw ra,44(sp) +800000d8: 02812423 sw s0,40(sp) +800000dc: 03a12223 sw s10,36(sp) +800000e0: 03010413 addi s0,sp,48 +800000e4: 000d0713 mv a4,s10 +800000e8: 4c400793 li a5,1220 +800000ec: 02f70733 mul a4,a4,a5 +800000f0: 810007b7 lui a5,0x81000 +800000f4: 1f078793 addi a5,a5,496 # 810001f0 +800000f8: 00f707b3 add a5,a4,a5 +800000fc: 00078513 mv a0,a5 +80000100: 3f0000ef jal ra,800004f0 +80000104: 00050793 mv a5,a0 +80000108: 02078063 beqz a5,80000128 +8000010c: 000d0713 mv a4,s10 +80000110: 810007b7 lui a5,0x81000 +80000114: 1e478793 addi a5,a5,484 # 810001e4 +80000118: 00f707b3 add a5,a4,a5 +8000011c: 00100713 li a4,1 +80000120: 00e78023 sb a4,0(a5) +80000124: 00000073 ecall +80000128: 000d0713 mv a4,s10 +8000012c: 4c400793 li a5,1220 +80000130: 02f70733 mul a4,a4,a5 +80000134: 810007b7 lui a5,0x81000 +80000138: 1f078793 addi a5,a5,496 # 810001f0 +8000013c: 00f707b3 add a5,a4,a5 +80000140: fd840713 addi a4,s0,-40 +80000144: 00070593 mv a1,a4 +80000148: 00078513 mv a0,a5 +8000014c: 31c000ef jal ra,80000468 +80000150: fe042783 lw a5,-32(s0) +80000154: 00078113 mv sp,a5 +80000158: fdc42783 lw a5,-36(s0) +8000015c: fd842583 lw a1,-40(s0) +80000160: fe442603 lw a2,-28(s0) +80000164: fe842683 lw a3,-24(s0) +80000168: fec42703 lw a4,-20(s0) +8000016c: 00078513 mv a0,a5 +80000170: ea1ff0ef jal ra,80000010 +80000174: 00000073 ecall +80000178: 00000013 nop +8000017c: 02c12083 lw ra,44(sp) +80000180: 02812403 lw s0,40(sp) +80000184: 02412d03 lw s10,36(sp) +80000188: 03010113 addi sp,sp,48 +8000018c: 00008067 ret + +80000190 : +80000190: fd010113 addi sp,sp,-48 +80000194: 02112623 sw ra,44(sp) +80000198: 02812423 sw s0,40(sp) +8000019c: 03010413 addi s0,sp,48 +800001a0: 00010993 mv s3,sp +800001a4: fe042623 sw zero,-20(s0) +800001a8: 0840006f j 8000022c +800001ac: fec42703 lw a4,-20(s0) +800001b0: 4c400793 li a5,1220 +800001b4: 02f70733 mul a4,a4,a5 +800001b8: 810007b7 lui a5,0x81000 +800001bc: 1f078793 addi a5,a5,496 # 810001f0 +800001c0: 00f707b3 add a5,a4,a5 +800001c4: 00078513 mv a0,a5 +800001c8: 328000ef jal ra,800004f0 +800001cc: 00050793 mv a5,a0 +800001d0: 04079863 bnez a5,80000220 +800001d4: fec42703 lw a4,-20(s0) +800001d8: 4c400793 li a5,1220 +800001dc: 02f70733 mul a4,a4,a5 +800001e0: 810007b7 lui a5,0x81000 +800001e4: 1f078793 addi a5,a5,496 # 810001f0 +800001e8: 00f707b3 add a5,a4,a5 +800001ec: fd440713 addi a4,s0,-44 +800001f0: 00070593 mv a1,a4 +800001f4: 00078513 mv a0,a5 +800001f8: 270000ef jal ra,80000468 +800001fc: fdc42783 lw a5,-36(s0) +80000200: 00078113 mv sp,a5 +80000204: fd842783 lw a5,-40(s0) +80000208: fd442583 lw a1,-44(s0) +8000020c: fe042603 lw a2,-32(s0) +80000210: fe442683 lw a3,-28(s0) +80000214: fe842703 lw a4,-24(s0) +80000218: 00078513 mv a0,a5 +8000021c: e41ff0ef jal ra,8000005c +80000220: fec42783 lw a5,-20(s0) +80000224: 00178793 addi a5,a5,1 +80000228: fef42623 sw a5,-20(s0) +8000022c: fec42703 lw a4,-20(s0) +80000230: 00600793 li a5,6 +80000234: f6e7dce3 bge a5,a4,800001ac +80000238: 00098113 mv sp,s3 +8000023c: 00000013 nop +80000240: 02c12083 lw ra,44(sp) +80000244: 02812403 lw s0,40(sp) +80000248: 03010113 addi sp,sp,48 +8000024c: 00008067 ret + +80000250 : +80000250: fc010113 addi sp,sp,-64 +80000254: 02112e23 sw ra,60(sp) +80000258: 02812c23 sw s0,56(sp) +8000025c: 04010413 addi s0,sp,64 +80000260: fca42623 sw a0,-52(s0) +80000264: fcb42423 sw a1,-56(s0) +80000268: fcc42223 sw a2,-60(s0) +8000026c: fcd42023 sw a3,-64(s0) +80000270: 00010913 mv s2,sp +80000274: fe042623 sw zero,-20(s0) +80000278: fe042423 sw zero,-24(s0) +8000027c: 08c0006f j 80000308 +80000280: ffff09b7 lui s3,0xffff0 +80000284: 01310133 add sp,sp,s3 +80000288: fe842783 lw a5,-24(s0) +8000028c: fcf42823 sw a5,-48(s0) +80000290: fc842783 lw a5,-56(s0) +80000294: fcf42a23 sw a5,-44(s0) +80000298: 00010793 mv a5,sp +8000029c: fcf42c23 sw a5,-40(s0) +800002a0: fc442783 lw a5,-60(s0) +800002a4: fcf42e23 sw a5,-36(s0) +800002a8: fc042783 lw a5,-64(s0) +800002ac: fef42023 sw a5,-32(s0) +800002b0: fec42783 lw a5,-20(s0) +800002b4: fef42223 sw a5,-28(s0) +800002b8: fec42703 lw a4,-20(s0) +800002bc: 4c400793 li a5,1220 +800002c0: 02f70733 mul a4,a4,a5 +800002c4: 810007b7 lui a5,0x81000 +800002c8: 1f078793 addi a5,a5,496 # 810001f0 +800002cc: 00f707b3 add a5,a4,a5 +800002d0: fd040713 addi a4,s0,-48 +800002d4: 00070593 mv a1,a4 +800002d8: 00078513 mv a0,a5 +800002dc: 124000ef jal ra,80000400 +800002e0: fec42783 lw a5,-20(s0) +800002e4: 00178793 addi a5,a5,1 +800002e8: fef42623 sw a5,-20(s0) +800002ec: fec42703 lw a4,-20(s0) +800002f0: 00600793 li a5,6 +800002f4: 00e7d463 bge a5,a4,800002fc +800002f8: fe042623 sw zero,-20(s0) +800002fc: fe842783 lw a5,-24(s0) +80000300: 00178793 addi a5,a5,1 +80000304: fef42423 sw a5,-24(s0) +80000308: fe842703 lw a4,-24(s0) +8000030c: fcc42783 lw a5,-52(s0) +80000310: f6f768e3 bltu a4,a5,80000280 +80000314: 00090113 mv sp,s2 +80000318: e79ff0ef jal ra,80000190 +8000031c: 00000013 nop +80000320: 03c12083 lw ra,60(sp) +80000324: 03812403 lw s0,56(sp) +80000328: 04010113 addi sp,sp,64 +8000032c: 00008067 ret + +80000330 : +80000330: fd010113 addi sp,sp,-48 +80000334: 02812623 sw s0,44(sp) +80000338: 03010413 addi s0,sp,48 +8000033c: fca42e23 sw a0,-36(s0) +80000340: fe0407a3 sb zero,-17(s0) +80000344: 0500006f j 80000394 +80000348: 00100793 li a5,1 +8000034c: fef407a3 sb a5,-17(s0) +80000350: fe042423 sw zero,-24(s0) +80000354: 0340006f j 80000388 +80000358: fef44783 lbu a5,-17(s0) +8000035c: 81000737 lui a4,0x81000 +80000360: 1e470693 addi a3,a4,484 # 810001e4 +80000364: fe842703 lw a4,-24(s0) +80000368: 00e68733 add a4,a3,a4 +8000036c: 00074703 lbu a4,0(a4) +80000370: 00e7f7b3 and a5,a5,a4 +80000374: 00f037b3 snez a5,a5 +80000378: fef407a3 sb a5,-17(s0) +8000037c: fe842783 lw a5,-24(s0) +80000380: 00178793 addi a5,a5,1 +80000384: fef42423 sw a5,-24(s0) +80000388: fe842783 lw a5,-24(s0) +8000038c: fdc42703 lw a4,-36(s0) +80000390: fce7e4e3 bltu a5,a4,80000358 +80000394: fef44783 lbu a5,-17(s0) +80000398: 0017c793 xori a5,a5,1 +8000039c: 0ff7f793 andi a5,a5,255 +800003a0: fa0794e3 bnez a5,80000348 +800003a4: 00000013 nop +800003a8: 02c12403 lw s0,44(sp) +800003ac: 03010113 addi sp,sp,48 +800003b0: 00008067 ret + +800003b4 : +800003b4: ff010113 addi sp,sp,-16 +800003b8: 00812623 sw s0,12(sp) +800003bc: 01712423 sw s7,8(sp) +800003c0: 01010413 addi s0,sp,16 +800003c4: 000b8793 mv a5,s7 +800003c8: 00078513 mv a0,a5 +800003cc: 00c12403 lw s0,12(sp) +800003d0: 00812b83 lw s7,8(sp) +800003d4: 01010113 addi sp,sp,16 +800003d8: 00008067 ret + +800003dc : +800003dc: 00050293 mv t0,a0 +800003e0: 00000313 li t1,0 +800003e4: 00700393 li t2,7 +800003e8: 0062a023 sw t1,0(t0) +800003ec: 0062a223 sw t1,4(t0) +800003f0: 0062a423 sw t1,8(t0) +800003f4: 0072a623 sw t2,12(t0) +800003f8: 0062a823 sw t1,16(t0) +800003fc: 00008067 ret + +80000400 : +80000400: 00050293 mv t0,a0 +80000404: 0082a303 lw t1,8(t0) +80000408: 00130313 addi t1,t1,1 +8000040c: 0062a423 sw t1,8(t0) +80000410: 01428313 addi t1,t0,20 +80000414: 0042ae83 lw t4,4(t0) +80000418: 005e9393 slli t2,t4,0x5 +8000041c: 00730333 add t1,t1,t2 +80000420: 0005ae03 lw t3,0(a1) +80000424: 01c32023 sw t3,0(t1) +80000428: 0045ae03 lw t3,4(a1) +8000042c: 01c32223 sw t3,4(t1) +80000430: 0085ae03 lw t3,8(a1) +80000434: 01c32423 sw t3,8(t1) +80000438: 00c5ae03 lw t3,12(a1) +8000043c: 01c32623 sw t3,12(t1) +80000440: 0105ae03 lw t3,16(a1) +80000444: 01c32823 sw t3,16(t1) +80000448: 0145ae03 lw t3,20(a1) +8000044c: 01c32a23 sw t3,20(t1) +80000450: 001e8e93 addi t4,t4,1 +80000454: 03200f13 li t5,50 +80000458: 01ee9463 bne t4,t5,80000460 +8000045c: 00000e93 li t4,0 + +80000460 : +80000460: 01d2a223 sw t4,4(t0) +80000464: 00008067 ret + +80000468 : +80000468: 00050293 mv t0,a0 +8000046c: 0082a303 lw t1,8(t0) +80000470: fff30313 addi t1,t1,-1 +80000474: 0062a423 sw t1,8(t0) +80000478: 01428313 addi t1,t0,20 +8000047c: 0002ae83 lw t4,0(t0) +80000480: 03200f93 li t6,50 +80000484: 000e8f13 mv t5,t4 +80000488: 001f0f13 addi t5,t5,1 +8000048c: 01ff1463 bne t5,t6,80000494 +80000490: 00000f13 li t5,0 + +80000494 : +80000494: 01e2a023 sw t5,0(t0) +80000498: 005e9393 slli t2,t4,0x5 +8000049c: 00730333 add t1,t1,t2 +800004a0: 00032e03 lw t3,0(t1) +800004a4: 01c5a023 sw t3,0(a1) +800004a8: 00432e03 lw t3,4(t1) +800004ac: 01c5a223 sw t3,4(a1) +800004b0: 00832e03 lw t3,8(t1) +800004b4: 01c5a423 sw t3,8(a1) +800004b8: 00c32e03 lw t3,12(t1) +800004bc: 01c5a623 sw t3,12(a1) +800004c0: 01032e03 lw t3,16(t1) +800004c4: 01c5a823 sw t3,16(a1) +800004c8: 01432e03 lw t3,20(t1) +800004cc: 01c5aa23 sw t3,20(a1) +800004d0: 00008067 ret + +800004d4 : +800004d4: 00050293 mv t0,a0 +800004d8: 0082a303 lw t1,8(t0) +800004dc: 00000513 li a0,0 +800004e0: 03200e13 li t3,50 +800004e4: 006e1463 bne t3,t1,800004ec +800004e8: 00150513 addi a0,a0,1 + +800004ec : +800004ec: 00008067 ret + +800004f0 : +800004f0: 00050293 mv t0,a0 +800004f4: 0082a303 lw t1,8(t0) +800004f8: 00000513 li a0,0 +800004fc: 00000e13 li t3,0 +80000500: 006e1463 bne t3,t1,80000508 +80000504: 00150513 addi a0,a0,1 + +80000508 : +80000508: 00008067 ret + +8000050c : +8000050c: 00050293 mv t0,a0 +80000510: 00c2a303 lw t1,12(t0) +80000514: 0102a383 lw t2,16(t0) +80000518: 0063b533 sltu a0,t2,t1 +8000051c: 00008067 ret + +80000520 : +80000520: ff410113 addi sp,sp,-12 +80000524: 00112023 sw ra,0(sp) +80000528: 00b12223 sw a1,4(sp) + +8000052c : +8000052c: 00054583 lbu a1,0(a0) +80000530: 00058863 beqz a1,80000540 +80000534: 01c000ef jal ra,80000550 +80000538: 00150513 addi a0,a0,1 +8000053c: ff1ff06f j 8000052c + +80000540 : +80000540: 00012083 lw ra,0(sp) +80000544: 00412583 lw a1,4(sp) +80000548: 00c10113 addi sp,sp,12 +8000054c: 00008067 ret + +80000550 : +80000550: 000108b7 lui a7,0x10 +80000554: 00b8a023 sw a1,0(a7) # 10000 +80000558: 00008067 ret + +8000055c : +8000055c: fd010113 addi sp,sp,-48 +80000560: 02112623 sw ra,44(sp) +80000564: 02812423 sw s0,40(sp) +80000568: 03010413 addi s0,sp,48 +8000056c: fca42e23 sw a0,-36(s0) +80000570: fdc42703 lw a4,-36(s0) +80000574: 00f00793 li a5,15 +80000578: 02e7e463 bltu a5,a4,800005a0 +8000057c: 810007b7 lui a5,0x81000 +80000580: fdc42703 lw a4,-36(s0) +80000584: 00271713 slli a4,a4,0x2 +80000588: 12478793 addi a5,a5,292 # 81000124 +8000058c: 00f707b3 add a5,a4,a5 +80000590: 0007a783 lw a5,0(a5) +80000594: 00078513 mv a0,a5 +80000598: f89ff0ef jal ra,80000520 +8000059c: 0740006f j 80000610 +800005a0: 02000793 li a5,32 +800005a4: fef42623 sw a5,-20(s0) +800005a8: fe0405a3 sb zero,-21(s0) +800005ac: fec42783 lw a5,-20(s0) +800005b0: ffc78793 addi a5,a5,-4 +800005b4: fdc42703 lw a4,-36(s0) +800005b8: 00f757b3 srl a5,a4,a5 +800005bc: 00f7f793 andi a5,a5,15 +800005c0: fef42223 sw a5,-28(s0) +800005c4: fe442783 lw a5,-28(s0) +800005c8: 00078663 beqz a5,800005d4 +800005cc: 00100793 li a5,1 +800005d0: fef405a3 sb a5,-21(s0) +800005d4: feb44783 lbu a5,-21(s0) +800005d8: 02078263 beqz a5,800005fc +800005dc: 810007b7 lui a5,0x81000 +800005e0: fe442703 lw a4,-28(s0) +800005e4: 00271713 slli a4,a4,0x2 +800005e8: 12478793 addi a5,a5,292 # 81000124 +800005ec: 00f707b3 add a5,a4,a5 +800005f0: 0007a783 lw a5,0(a5) +800005f4: 00078513 mv a0,a5 +800005f8: f29ff0ef jal ra,80000520 +800005fc: fec42783 lw a5,-20(s0) +80000600: ffc78793 addi a5,a5,-4 +80000604: fef42623 sw a5,-20(s0) +80000608: fec42783 lw a5,-20(s0) +8000060c: faf040e3 bgtz a5,800005ac +80000610: 02c12083 lw ra,44(sp) +80000614: 02812403 lw s0,40(sp) +80000618: 03010113 addi sp,sp,48 +8000061c: 00008067 ret + +80000620 : +80000620: fd010113 addi sp,sp,-48 +80000624: 02112623 sw ra,44(sp) +80000628: 02812423 sw s0,40(sp) +8000062c: 03010413 addi s0,sp,48 +80000630: fca42e23 sw a0,-36(s0) +80000634: fcb42c23 sw a1,-40(s0) +80000638: fcc42a23 sw a2,-44(s0) +8000063c: fcd42823 sw a3,-48(s0) +80000640: 810037b7 lui a5,0x81003 +80000644: fdc42703 lw a4,-36(s0) +80000648: 80e7ae23 sw a4,-2020(a5) # 8100281c +8000064c: 810037b7 lui a5,0x81003 +80000650: 81c78793 addi a5,a5,-2020 # 8100281c +80000654: fd842703 lw a4,-40(s0) +80000658: 00e7a223 sw a4,4(a5) +8000065c: 810037b7 lui a5,0x81003 +80000660: 81c78793 addi a5,a5,-2020 # 8100281c +80000664: fd442703 lw a4,-44(s0) +80000668: 00e7a423 sw a4,8(a5) +8000066c: 810037b7 lui a5,0x81003 +80000670: 81c78793 addi a5,a5,-2020 # 8100281c +80000674: fd042703 lw a4,-48(s0) +80000678: 00e7a623 sw a4,12(a5) +8000067c: fd042783 lw a5,-48(s0) +80000680: 0037d793 srli a5,a5,0x3 +80000684: fef42623 sw a5,-20(s0) +80000688: fd042783 lw a5,-48(s0) +8000068c: 0077f793 andi a5,a5,7 +80000690: 00078863 beqz a5,800006a0 +80000694: fec42783 lw a5,-20(s0) +80000698: 00178793 addi a5,a5,1 +8000069c: fef42623 sw a5,-20(s0) +800006a0: 810037b7 lui a5,0x81003 +800006a4: 81c78793 addi a5,a5,-2020 # 8100281c +800006a8: fec42703 lw a4,-20(s0) +800006ac: 00e7a823 sw a4,16(a5) +800006b0: 810007b7 lui a5,0x81000 +800006b4: 08078513 addi a0,a5,128 # 81000080 +800006b8: e69ff0ef jal ra,80000520 +800006bc: fec42503 lw a0,-20(s0) +800006c0: e9dff0ef jal ra,8000055c +800006c4: 810007b7 lui a5,0x81000 +800006c8: 08c78513 addi a0,a5,140 # 8100008c +800006cc: e55ff0ef jal ra,80000520 +800006d0: fd042703 lw a4,-48(s0) +800006d4: 00700793 li a5,7 +800006d8: 02e7f263 bgeu a5,a4,800006fc +800006dc: 810037b7 lui a5,0x81003 +800006e0: 81c78693 addi a3,a5,-2020 # 8100281c +800006e4: 800007b7 lui a5,0x80000 +800006e8: 74c78613 addi a2,a5,1868 # 8000074c +800006ec: 00800593 li a1,8 +800006f0: fd042503 lw a0,-48(s0) +800006f4: b5dff0ef jal ra,80000250 +800006f8: 0200006f j 80000718 +800006fc: 810037b7 lui a5,0x81003 +80000700: 81c78693 addi a3,a5,-2020 # 8100281c +80000704: 800007b7 lui a5,0x80000 +80000708: 74c78613 addi a2,a5,1868 # 8000074c +8000070c: fd042583 lw a1,-48(s0) +80000710: fd042503 lw a0,-48(s0) +80000714: b3dff0ef jal ra,80000250 +80000718: fd042703 lw a4,-48(s0) +8000071c: 00700793 li a5,7 +80000720: 00e7f863 bgeu a5,a4,80000730 +80000724: 00800513 li a0,8 +80000728: c09ff0ef jal ra,80000330 +8000072c: 00c0006f j 80000738 +80000730: fd042503 lw a0,-48(s0) +80000734: bfdff0ef jal ra,80000330 +80000738: 00000013 nop +8000073c: 02c12083 lw ra,44(sp) +80000740: 02812403 lw s0,40(sp) +80000744: 03010113 addi sp,sp,48 +80000748: 00008067 ret + +8000074c <_vx_matMult>: +8000074c: fa010113 addi sp,sp,-96 +80000750: 04112e23 sw ra,92(sp) +80000754: 04812c23 sw s0,88(sp) +80000758: 06010413 addi s0,sp,96 +8000075c: faa42623 sw a0,-84(s0) +80000760: fab42423 sw a1,-88(s0) +80000764: c51ff0ef jal ra,800003b4 +80000768: fca42c23 sw a0,-40(s0) +8000076c: fd842783 lw a5,-40(s0) +80000770: 0007a783 lw a5,0(a5) +80000774: fcf42a23 sw a5,-44(s0) +80000778: fd842783 lw a5,-40(s0) +8000077c: 0047a783 lw a5,4(a5) +80000780: fcf42823 sw a5,-48(s0) +80000784: fd842783 lw a5,-40(s0) +80000788: 0087a783 lw a5,8(a5) +8000078c: fcf42623 sw a5,-52(s0) +80000790: fd842783 lw a5,-40(s0) +80000794: 0107a783 lw a5,16(a5) +80000798: fef42623 sw a5,-20(s0) +8000079c: fec42703 lw a4,-20(s0) +800007a0: fac42783 lw a5,-84(s0) +800007a4: 02f707b3 mul a5,a4,a5 +800007a8: fef42423 sw a5,-24(s0) +800007ac: fec42783 lw a5,-20(s0) +800007b0: 00079a63 bnez a5,800007c4 <_vx_matMult+0x78> +800007b4: 00100793 li a5,1 +800007b8: fef42623 sw a5,-20(s0) +800007bc: fac42783 lw a5,-84(s0) +800007c0: fef42423 sw a5,-24(s0) +800007c4: fd842783 lw a5,-40(s0) +800007c8: 00c7a783 lw a5,12(a5) +800007cc: fcf42423 sw a5,-56(s0) +800007d0: fe042223 sw zero,-28(s0) +800007d4: 1240006f j 800008f8 <_vx_matMult+0x1ac> +800007d8: fe042023 sw zero,-32(s0) +800007dc: fc042e23 sw zero,-36(s0) +800007e0: 0780006f j 80000858 <_vx_matMult+0x10c> +800007e4: fa842703 lw a4,-88(s0) +800007e8: fc842783 lw a5,-56(s0) +800007ec: 02f707b3 mul a5,a4,a5 +800007f0: fdc42703 lw a4,-36(s0) +800007f4: 00f707b3 add a5,a4,a5 +800007f8: fcf42223 sw a5,-60(s0) +800007fc: fc842703 lw a4,-56(s0) +80000800: fdc42783 lw a5,-36(s0) +80000804: 02f707b3 mul a5,a4,a5 +80000808: fe842703 lw a4,-24(s0) +8000080c: 00f707b3 add a5,a4,a5 +80000810: fcf42023 sw a5,-64(s0) +80000814: fc442783 lw a5,-60(s0) +80000818: 00279793 slli a5,a5,0x2 +8000081c: fd442703 lw a4,-44(s0) +80000820: 00f707b3 add a5,a4,a5 +80000824: 0007a703 lw a4,0(a5) +80000828: fc042783 lw a5,-64(s0) +8000082c: 00279793 slli a5,a5,0x2 +80000830: fd042683 lw a3,-48(s0) +80000834: 00f687b3 add a5,a3,a5 +80000838: 0007a783 lw a5,0(a5) +8000083c: 02f707b3 mul a5,a4,a5 +80000840: fe042703 lw a4,-32(s0) +80000844: 00f707b3 add a5,a4,a5 +80000848: fef42023 sw a5,-32(s0) +8000084c: fdc42783 lw a5,-36(s0) +80000850: 00178793 addi a5,a5,1 +80000854: fcf42e23 sw a5,-36(s0) +80000858: fdc42703 lw a4,-36(s0) +8000085c: fc842783 lw a5,-56(s0) +80000860: f8f762e3 bltu a4,a5,800007e4 <_vx_matMult+0x98> +80000864: fa842703 lw a4,-88(s0) +80000868: fc842783 lw a5,-56(s0) +8000086c: 02f70733 mul a4,a4,a5 +80000870: fe842783 lw a5,-24(s0) +80000874: 00f707b3 add a5,a4,a5 +80000878: faf42e23 sw a5,-68(s0) +8000087c: fe842703 lw a4,-24(s0) +80000880: fc842783 lw a5,-56(s0) +80000884: 00f737b3 sltu a5,a4,a5 +80000888: 0ff7f793 andi a5,a5,255 +8000088c: faf42c23 sw a5,-72(s0) +80000890: fb842783 lw a5,-72(s0) +80000894: 0017b793 seqz a5,a5 +80000898: faf40ba3 sb a5,-73(s0) +8000089c: fb744783 lbu a5,-73(s0) +800008a0: 00078f13 mv t5,a5 +800008a4: 800017b7 lui a5,0x80001 +800008a8: 8e478f93 addi t6,a5,-1820 # 800008e4 +800008ac: 000f206b 0xf206b +800008b0: 01ff707b 0x1ff707b +800008b4: fbc42783 lw a5,-68(s0) +800008b8: 00279793 slli a5,a5,0x2 +800008bc: fcc42703 lw a4,-52(s0) +800008c0: 00f707b3 add a5,a4,a5 +800008c4: fe042703 lw a4,-32(s0) +800008c8: 00e7a023 sw a4,0(a5) +800008cc: fe842783 lw a5,-24(s0) +800008d0: 00178793 addi a5,a5,1 +800008d4: fef42423 sw a5,-24(s0) +800008d8: 800017b7 lui a5,0x80001 +800008dc: 8e878e13 addi t3,a5,-1816 # 800008e8 +800008e0: 000e0067 jr t3 +800008e4: 00000013 nop +800008e8: 0000306b 0x306b +800008ec: fe442783 lw a5,-28(s0) +800008f0: 00178793 addi a5,a5,1 +800008f4: fef42223 sw a5,-28(s0) +800008f8: fe442783 lw a5,-28(s0) +800008fc: fec42703 lw a4,-20(s0) +80000900: ece7ece3 bltu a5,a4,800007d8 <_vx_matMult+0x8c> +80000904: 00000013 nop +80000908: 05c12083 lw ra,92(sp) +8000090c: 05812403 lw s0,88(sp) +80000910: 06010113 addi sp,sp,96 +80000914: 00008067 ret + +80000918 : +80000918: fe010113 addi sp,sp,-32 +8000091c: 00812e23 sw s0,28(sp) +80000920: 02010413 addi s0,sp,32 +80000924: fe042623 sw zero,-20(s0) +80000928: 0480006f j 80000970 +8000092c: 810037b7 lui a5,0x81003 +80000930: fec42703 lw a4,-20(s0) +80000934: 00271713 slli a4,a4,0x2 +80000938: 83078793 addi a5,a5,-2000 # 81002830 +8000093c: 00f707b3 add a5,a4,a5 +80000940: 00300713 li a4,3 +80000944: 00e7a023 sw a4,0(a5) +80000948: 810047b7 lui a5,0x81004 +8000094c: fec42703 lw a4,-20(s0) +80000950: 00271713 slli a4,a4,0x2 +80000954: 83078793 addi a5,a5,-2000 # 81003830 +80000958: 00f707b3 add a5,a4,a5 +8000095c: 00200713 li a4,2 +80000960: 00e7a023 sw a4,0(a5) +80000964: fec42783 lw a5,-20(s0) +80000968: 00178793 addi a5,a5,1 +8000096c: fef42623 sw a5,-20(s0) +80000970: fec42703 lw a4,-20(s0) +80000974: 08f00793 li a5,143 +80000978: fae7dae3 bge a5,a4,8000092c +8000097c: 00000013 nop +80000980: 01c12403 lw s0,28(sp) +80000984: 02010113 addi sp,sp,32 +80000988: 00008067 ret + +8000098c
: +8000098c: fe010113 addi sp,sp,-32 +80000990: 00112e23 sw ra,28(sp) +80000994: 00812c23 sw s0,24(sp) +80000998: 02010413 addi s0,sp,32 +8000099c: f7dff0ef jal ra,80000918 +800009a0: 00c00693 li a3,12 +800009a4: 810057b7 lui a5,0x81005 +800009a8: 83078613 addi a2,a5,-2000 # 81004830 +800009ac: 810047b7 lui a5,0x81004 +800009b0: 83078593 addi a1,a5,-2000 # 81003830 +800009b4: 810037b7 lui a5,0x81003 +800009b8: 83078513 addi a0,a5,-2000 # 81002830 +800009bc: c65ff0ef jal ra,80000620 +800009c0: 810007b7 lui a5,0x81000 +800009c4: 0d078513 addi a0,a5,208 # 810000d0 +800009c8: b59ff0ef jal ra,80000520 +800009cc: 810007b7 lui a5,0x81000 +800009d0: 0ec78513 addi a0,a5,236 # 810000ec +800009d4: b4dff0ef jal ra,80000520 +800009d8: fe042623 sw zero,-20(s0) +800009dc: 0580006f j 80000a34 +800009e0: fec42703 lw a4,-20(s0) +800009e4: 00c00793 li a5,12 +800009e8: 02f767b3 rem a5,a4,a5 +800009ec: 00079863 bnez a5,800009fc +800009f0: 810007b7 lui a5,0x81000 +800009f4: 0f878513 addi a0,a5,248 # 810000f8 +800009f8: b29ff0ef jal ra,80000520 +800009fc: 810057b7 lui a5,0x81005 +80000a00: fec42703 lw a4,-20(s0) +80000a04: 00271713 slli a4,a4,0x2 +80000a08: 83078793 addi a5,a5,-2000 # 81004830 +80000a0c: 00f707b3 add a5,a4,a5 +80000a10: 0007a783 lw a5,0(a5) +80000a14: 00078513 mv a0,a5 +80000a18: b45ff0ef jal ra,8000055c +80000a1c: 810007b7 lui a5,0x81000 +80000a20: 0fc78513 addi a0,a5,252 # 810000fc +80000a24: afdff0ef jal ra,80000520 +80000a28: fec42783 lw a5,-20(s0) +80000a2c: 00178793 addi a5,a5,1 +80000a30: fef42623 sw a5,-20(s0) +80000a34: fec42703 lw a4,-20(s0) +80000a38: 08f00793 li a5,143 +80000a3c: fae7d2e3 bge a5,a4,800009e0 +80000a40: 810007b7 lui a5,0x81000 +80000a44: 10078513 addi a0,a5,256 # 81000100 +80000a48: ad9ff0ef jal ra,80000520 +80000a4c: 00000793 li a5,0 +80000a50: 00078513 mv a0,a5 +80000a54: 01c12083 lw ra,28(sp) +80000a58: 01812403 lw s0,24(sp) +80000a5c: 02010113 addi sp,sp,32 +80000a60: 00008067 ret + +Disassembly of section .rodata: + +81000000 <.rodata>: +81000000: 0030 addi a2,sp,8 +81000002: 0000 unimp +81000004: 0031 c.nop 12 +81000006: 0000 unimp +81000008: 0032 c.slli zero,0xc +8100000a: 0000 unimp +8100000c: 00000033 add zero,zero,zero +81000010: 0034 addi a3,sp,8 +81000012: 0000 unimp +81000014: 0035 c.nop 13 +81000016: 0000 unimp +81000018: 0036 c.slli zero,0xd +8100001a: 0000 unimp +8100001c: 00000037 lui zero,0x0 +81000020: 0038 addi a4,sp,8 +81000022: 0000 unimp +81000024: 0039 c.nop 14 +81000026: 0000 unimp +81000028: 0061 c.nop 24 +8100002a: 0000 unimp +8100002c: 0062 c.slli zero,0x18 +8100002e: 0000 unimp +81000030: 00000063 beqz zero,81000030 +81000034: 0064 addi s1,sp,12 +81000036: 0000 unimp +81000038: 0065 c.nop 25 +8100003a: 0000 unimp +8100003c: 0066 c.slli zero,0x19 +8100003e: 0000 unimp +81000040: 0030 addi a2,sp,8 +81000042: 0000 unimp +81000044: 0031 c.nop 12 +81000046: 0000 unimp +81000048: 0032 c.slli zero,0xc +8100004a: 0000 unimp +8100004c: 00000033 add zero,zero,zero +81000050: 0034 addi a3,sp,8 +81000052: 0000 unimp +81000054: 0035 c.nop 13 +81000056: 0000 unimp +81000058: 0036 c.slli zero,0xd +8100005a: 0000 unimp +8100005c: 00000037 lui zero,0x0 +81000060: 0038 addi a4,sp,8 +81000062: 0000 unimp +81000064: 0039 c.nop 14 +81000066: 0000 unimp +81000068: 0061 c.nop 24 +8100006a: 0000 unimp +8100006c: 0062 c.slli zero,0x18 +8100006e: 0000 unimp +81000070: 00000063 beqz zero,81000070 +81000074: 0064 addi s1,sp,12 +81000076: 0000 unimp +81000078: 0065 c.nop 25 +8100007a: 0000 unimp +8100007c: 0066 c.slli zero,0x19 +8100007e: 0000 unimp +81000080: 7366666f jal a2,810667b6 +81000084: 7465 lui s0,0xffff9 +81000086: 203a fld ft0,392(sp) +81000088: 0000 unimp +8100008a: 0000 unimp +8100008c: 000a c.slli zero,0x2 +8100008e: 0000 unimp +81000090: 0030 addi a2,sp,8 +81000092: 0000 unimp +81000094: 0031 c.nop 12 +81000096: 0000 unimp +81000098: 0032 c.slli zero,0xc +8100009a: 0000 unimp +8100009c: 00000033 add zero,zero,zero +810000a0: 0034 addi a3,sp,8 +810000a2: 0000 unimp +810000a4: 0035 c.nop 13 +810000a6: 0000 unimp +810000a8: 0036 c.slli zero,0xd +810000aa: 0000 unimp +810000ac: 00000037 lui zero,0x0 +810000b0: 0038 addi a4,sp,8 +810000b2: 0000 unimp +810000b4: 0039 c.nop 14 +810000b6: 0000 unimp +810000b8: 0061 c.nop 24 +810000ba: 0000 unimp +810000bc: 0062 c.slli zero,0x18 +810000be: 0000 unimp +810000c0: 00000063 beqz zero,810000c0 +810000c4: 0064 addi s1,sp,12 +810000c6: 0000 unimp +810000c8: 0065 c.nop 25 +810000ca: 0000 unimp +810000cc: 0066 c.slli zero,0x19 +810000ce: 0000 unimp +810000d0: 2d2d jal 8100070a +810000d2: 2d2d jal 8100070c +810000d4: 2d2d jal 8100070e +810000d6: 2d2d jal 81000710 +810000d8: 2d2d jal 81000712 +810000da: 2d2d jal 81000714 +810000dc: 2d2d jal 81000716 +810000de: 2d2d jal 81000718 +810000e0: 2d2d jal 8100071a +810000e2: 2d2d jal 8100071c +810000e4: 2d2d jal 8100071e +810000e6: 2d2d jal 81000720 +810000e8: 0a2d addi s4,s4,11 +810000ea: 0000 unimp +810000ec: 4946 lw s2,80(sp) +810000ee: 414e lw sp,208(sp) +810000f0: 204c fld fa1,128(s0) +810000f2: 0a5a slli s4,s4,0x16 +810000f4: 0000 unimp +810000f6: 0000 unimp +810000f8: 000a c.slli zero,0x2 +810000fa: 0000 unimp +810000fc: 0020 addi s0,sp,8 +810000fe: 0000 unimp +81000100: 2d0a fld fs10,128(sp) +81000102: 2d2d jal 8100073c +81000104: 2d2d jal 8100073e +81000106: 2d2d jal 81000740 +81000108: 2d2d jal 81000742 +8100010a: 2d2d jal 81000744 +8100010c: 2d2d jal 81000746 +8100010e: 2d2d jal 81000748 +81000110: 2d2d jal 8100074a +81000112: 2d2d jal 8100074c +81000114: 2d2d jal 8100074e +81000116: 2d2d jal 81000750 +81000118: 2d2d jal 81000752 +8100011a: 2d2d jal 81000754 +8100011c: 2d2d jal 81000756 +8100011e: 2d2d jal 81000758 +81000120: 000a c.slli zero,0x2 + +Disassembly of section .data: + +81000124 : +81000124: 0000 unimp +81000126: 8100 0x8100 +81000128: 0004 0x4 +8100012a: 8100 0x8100 +8100012c: 0008 0x8 +8100012e: 8100 0x8100 +81000130: 000c 0xc +81000132: 8100 0x8100 +81000134: 0010 0x10 +81000136: 8100 0x8100 +81000138: 0014 0x14 +8100013a: 8100 0x8100 +8100013c: 0018 0x18 +8100013e: 8100 0x8100 +81000140: 001c 0x1c +81000142: 8100 0x8100 +81000144: 0020 addi s0,sp,8 +81000146: 8100 0x8100 +81000148: 0024 addi s1,sp,8 +8100014a: 8100 0x8100 +8100014c: 0028 addi a0,sp,8 +8100014e: 8100 0x8100 +81000150: 002c addi a1,sp,8 +81000152: 8100 0x8100 +81000154: 0030 addi a2,sp,8 +81000156: 8100 0x8100 +81000158: 0034 addi a3,sp,8 +8100015a: 8100 0x8100 +8100015c: 0038 addi a4,sp,8 +8100015e: 8100 0x8100 +81000160: 003c addi a5,sp,8 +81000162: 8100 0x8100 + +81000164 : +81000164: 0040 addi s0,sp,4 +81000166: 8100 0x8100 +81000168: 0044 addi s1,sp,4 +8100016a: 8100 0x8100 +8100016c: 0048 addi a0,sp,4 +8100016e: 8100 0x8100 +81000170: 004c addi a1,sp,4 +81000172: 8100 0x8100 +81000174: 0050 addi a2,sp,4 +81000176: 8100 0x8100 +81000178: 0054 addi a3,sp,4 +8100017a: 8100 0x8100 +8100017c: 0058 addi a4,sp,4 +8100017e: 8100 0x8100 +81000180: 005c addi a5,sp,4 +81000182: 8100 0x8100 +81000184: 0060 addi s0,sp,12 +81000186: 8100 0x8100 +81000188: 0064 addi s1,sp,12 +8100018a: 8100 0x8100 +8100018c: 0068 addi a0,sp,12 +8100018e: 8100 0x8100 +81000190: 006c addi a1,sp,12 +81000192: 8100 0x8100 +81000194: 0070 addi a2,sp,12 +81000196: 8100 0x8100 +81000198: 0074 addi a3,sp,12 +8100019a: 8100 0x8100 +8100019c: 0078 addi a4,sp,12 +8100019e: 8100 0x8100 +810001a0: 007c addi a5,sp,12 +810001a2: 8100 0x8100 + +810001a4 : +810001a4: 0090 addi a2,sp,64 +810001a6: 8100 0x8100 +810001a8: 0094 addi a3,sp,64 +810001aa: 8100 0x8100 +810001ac: 0098 addi a4,sp,64 +810001ae: 8100 0x8100 +810001b0: 009c addi a5,sp,64 +810001b2: 8100 0x8100 +810001b4: 00a0 addi s0,sp,72 +810001b6: 8100 0x8100 +810001b8: 00a4 addi s1,sp,72 +810001ba: 8100 0x8100 +810001bc: 00a8 addi a0,sp,72 +810001be: 8100 0x8100 +810001c0: 00ac addi a1,sp,72 +810001c2: 8100 0x8100 +810001c4: 00b0 addi a2,sp,72 +810001c6: 8100 0x8100 +810001c8: 00b4 addi a3,sp,72 +810001ca: 8100 0x8100 +810001cc: 00b8 addi a4,sp,72 +810001ce: 8100 0x8100 +810001d0: 00bc addi a5,sp,72 +810001d2: 8100 0x8100 +810001d4: 00c0 addi s0,sp,68 +810001d6: 8100 0x8100 +810001d8: 00c4 addi s1,sp,68 +810001da: 8100 0x8100 +810001dc: 00c8 addi a0,sp,68 +810001de: 8100 0x8100 +810001e0: 00cc addi a1,sp,68 +810001e2: 8100 0x8100 + +Disassembly of section .bss: + +810001e4 : + ... + +810001ec : +810001ec: 0000 unimp + ... + +810001f0 : + ... + +81002810 : + ... + +81002818 : +81002818: 0000 unimp + ... + +8100281c : + ... + +81002830 : + ... + +81003830 : + ... + +81004830 : + ... + +81005830 : + ... + +81005838 : +81005838: 0000 unimp + ... + +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/gpgpu_test.elf b/src/vortex_software/vortex_test.elf similarity index 51% rename from src/riscv_gpgpu/gpgpu_test.elf rename to src/vortex_software/vortex_test.elf index b2cd562ab522b038da1a6c811f665f43437a6d3c..fdc7078192024f3fd99a79c443b1f99c3a324b2b 100755 GIT binary patch literal 10748 zcmeHNeQZ}Thr3AST9 zd~}uij02gpl~#I4tENh2CF;<$vX6k$Kc+QZLo=z>v{h*Brb<)`tM`FMXd{AxWAAtF zdoM95k)~Ff_J^-@eDCkxbI&>V+;h%*g!jz$oexTqL{4+jCuAd|8IvdKtd(Z+l8fqS z8C6>AE5y8kUnBAbA|^LaVP5R_GN268B~0A^1W^UgSo?TXZe_L*i%(O=Cd;W>%-TjYG9AsUD?~}rfL~udE1R%lBvtU zSdt2we&_;1#x<%^#vD@Dji@u^IjYhX8f(h(`cO4# zHPZ!)H$jts%H=(vl6@HovR$^0Ijv@;OY>!1+WH^M&?9@)J7{V7^i5NBlWwRk z=Ckw%)(ZXV3et=mv0s*yp$^WOZurZx_1F$CUK4zRAos%wY|hvs%0B3TL)ol zJ8V^8YddTmEZDYQ0?#7f@1w~Na@RbWWn}wboT0@2JnqV0*OnP8{6A z7phWn#@1E0vR}WD6Fy~~BCdQaZ;)l@C%b2^d8B1@W$LAzeLfj?B;$O_!u^P|$(nyS ze@YcG>^2cAr_||!b*@%98<;M%a4c5@*0SuTp^r!os5CN@qmh;=!CR`I$1?6?@=`9( zd(DYzGG}J0CQqodY=`W7qclc}T1|#DU%vz&OXkpRBL2Wb*{>qE@CQA%)pQ|$W%P1_ zw3A`dUIq<=UP+R6IxKRMdE`?^z~>Qbp6mls_RIrhn%|)&IYsgrH)-BCCHc&D($;f- z6neQo4Ozl+5F6Q9Hb{e&XMfxtyT$-FaIqJ)acW21}0%wZkiWo?DJR z>quW+lsr|~bMmj!yneq7d|s0M+aQbkEbQd|O`L;!S<+66bxHf_`I~idEm{s+R>wrm za(p7}5NiaTi`RZj*;6j5>6~uYthS=&Ma^3OOUiCXo%o)cYm#Kuz;(r}SEB5OHu(Gv z!9QAwxIOurQ}5<$5$7_;3*WJ+PLX~oCu$vIPjxMsLxELXbFx3NYsu70*OBw8sS@hs zbm5d6xhZmSqR4wjcF%Bpz%I^-_JV#)MU6uYx`6{{3;Ge&mfv1jLjK2&JeJSn$=0b^ z)YHZJ{HZf&^~mRq<9V&_LVmP`GHj1_CTH;29GU_ z{v+$2?K^{fo@coe$jfQeS@En`rFj)RYn6PQ3{|cjoCQyw({m%pX&;tiwEt9(EuHvWWM$?0mQb@p;b9gXP$F)_P|!+?KvE8tIyG=`X;SB7cUe z!2c_jyZAgDpOB4s51zH${r|tpzMMF zGY{agNcVy^fto=4fBu_6Ujwy(wt%*RLZC262Sq?pP$%f~?vHnNrlRTlybwkBgy3__ zyJx8e;ScV3q;02n533QnyxcFvZ_f*6e8ZrCDnYk{@Cid^HE0d!P7vf|d?0)(k*Np4 zCmHxL1K(xt2epFQK@Wj;f;vFEK=>pgvlp}v6ajUE`alU#8gvNsH0XKI3D66m7eOaM z!=TfkpMib>ItzLY^lQ)jIBFez$jvf0MtFmTm?w$<7xb*lS@I zcjS{CEDMb9I_z~tVEi26fs8LfBxeS_LRX95K<~x3BIwX0f-lHdf*%FGzXb0Et}DSD zYt1DX@9*=Ccu|20imy?P~EY3^)g@cD4962K$r+ zdw&mnq6GgD_;Lxp09@%_;C~O;X{>KG98zDhUJZ;tkr@_`L|+DW8uPCQ_QC#EOiJ+R z-HX=wyesN%KJOY}=e)c>QnJ4p_)e^^7V;F@dJB1tPuwhT3vj8t;SzbY(~2JVPf z!NSLZac2ggz(L^WB{IfrEF**(p`XA1S&19y$NHLOWTfr&4De3;JMA6xEbm$L-U>46 zZTuqo51gsKMMQ@=pVD!-{y4}86VpC&%nqnBVyyf15era$NR4VH$Jpr z-*w=#w`o-Yrzj!7?>9FwgBH= zBJW|~3nlXQ08hdH-Wtn)dx0C_k3oBX3>a=T@GIm|!+}t;p)=kWi6&DG$89qU z%}+hqv~_b!Z_|?pdQ<)3?#<1~MzpR(!>)z~UH?{BIvPm$FAC1L4R9tciW>KkI`d0_H3u9 zP7$5@JE=eVnWXOMXdCF>4yoZj3P;)0o;VEcjvh+KLkv5U@mLx&p=4KzF&_aCqpoN= zh}mE&ogC29JaaIW2px>^D5ZBtBLjWW;K5Kbks|h1PpGfwsVMfRQxp_}(hm>xiG8Vl zo(}G3*gp^*hzj>w8(3N**%M0(oyq7T$*hZ&?iPB0!qLunlGXIY99gOD`xEKI^whkl zAdW|{JCqdag?K)Oy&)16MlidcjE2(DUESy+DSJ6|Ak@hOyHe zz6MNGf|&0T_%4C(iElexoQ76wM#u6REqH|aR$626%WDqVwu$-c;QJ85`T67nu{<0N i-(Ffe(TVo{2BN1+HnJ>ktb=WH+Ab97uR8#}!}lLT*HYU6 literal 10392 zcmeHNYitzP6+W}G>#_(snk}1VA`#eQkG)j)LHNLJ9lR6 zut_uTWk=iagGd1d{^4U#00(_D0yY-Fs!;L=8GW(8^Fq9&@LYHNO; z7&q`Vj?@q_d3XrpV!g(IGEAKqIPNE^;t^{d_bRQDfl3A{8K`8Sl7UJFDjBF`ppt<~ z1}Yh-WT29PN(TN<8ECmvdgV5?&Plq}WpqU@7xuzTSldDG*OZ|4J(56ehJ-3OgZGNigC zm)_tm#))LPakOYEtsDKygzHQlWz3)Ndc%0pl1nm#f!rYa=qZ?H5w{z;{;So$>_IMb`XY|C)st;(FPak*6h5Me*wh0H%xB+677WW+c>?i|Yh@5_{;z z9=frIReHn7r0zXEi5R+c-$(&_HN|%ICF6F#gY?Bte~9!Zr>{uZ&jR+7S4TS zt-nmVcih?Exg5K$iM>{^Pm|cU0?W&d?jpyDIG|?`dIZM!s5P#!t@eWXdLvjNQonL&dp9o;}F32l=hyJew|@ZJbF{PM}spq`v_g0lk?- zErrCHV;OmPKjc&~r)Jkm*^_I@G+!dWoFe(8hji_tB%fT595FwDyfVLpv&7sZ=}lr@ z(idNp%$azNk1XxCH<{S_uJxo>T&q8pikUq_xT~_2sR&_`vql( zU6TJNVf#*!ru2sSF5R1Pp;l$CPvm?G^-kfNITzPEWBbg^=lYmFGx_>=aNZQ015ua5 z95eI_5&|CXcAuKVIxYaVyz z1sCeTg*uQqX7K44^hH0CISy5s3tO|?m-%bAOa=F~p}1J?OpCZr*Klkq{L_sb@q1)e z9m?R8>9OyP{ITnN4%7^v8Jz1U2dCtQ_F}d{)NWDSE&2M_g+8l>h41pyZIASyeK%|H z&Jp*1Yc=vX`@NqJd?4aDqPS<3Q`*aXz4kly(eiZ=zP7_x>>2#UnYDerb_g=l=h4!; zoyPu@yQgMq$UcXU$p1|J*zYXqK|O4HY{Nv6b;#Zed~bmpP|5a|K>&UasTw zRy%fBnS4Z!OL{{FcU!-N982cVC&ar8`#{+*;CBuD^ThVmmc#pu<&-(oax(u;@{rsi zTi=XawoDFNU1^mJR5DP>KqUi}4E)bBuoRk?ftG{(ApW2KO3*4$3urZH4JZf-fx@5& zC<@vEdV03@7}17jH??ilUPO;cqDn@WV}_B%a8V!HDsI)e%p& z&yKPGt>6+o+zQ?~m+;#@V>f*Vd>gRa#)rV2#_N9rz_M1mQ@V-{*QnL*l>Ug$9`}s> z_krIo!yf>rV{uD53)c_RwyujbWe5;KY18ZgWRsoO8 zGx8n4Un^U`3Aoyhm;KuY+*yPAfh+9KOTZ&#^4-8_20vIn4*Xpg89dJTr{L$R$T)A$ z?*=|vO~#;&4*)01{5u3}*!#ijj{)P17^C2fN5Io%_9D>J>6!8GUCd+5z_5@%3tT`v z=WYBeU~gG`?*sp>%-)BP_{Bx>v49E=B7~GL(($Q4f7pCs$o^(7&JA*xafmGr@^2fjVxm7KG_|q2H z+V=eB7wCm&UtCYoFh#=Dzk~YWN>2!;x}xd8^1etQnCv1@iuO=XUpkOT;z{9TG?f=s;8i-V==V?2D360b|y9YW>bcdN1v>h9Q@x zKq?(frV(ZOs{^q#?GE;&13Ti$fJhYkC8Mcu zcQi5(iw1TJm#uZdUBRAMFch=naQxXY5Q|a2?OwFc(oMe9-ks@S2t1v%c(>C_V^heN zj7Ng$Ao;9kD3u~#IKFdd6!HAK?b8rM$ywjLaUIXIzL9g*yY0^BZ8_`4NBwI=?>R!? zj@(nW9KQ+pUcI8(hXa_KBiD?6HHhW-{^^8)jWZYLwA>2Jvw!x>X+O)&2X-3IIb{1L wrn({bLn!CF`LiIli_q|0pk)(Gw2!<*AF~3xIbF8FzB%nK&gYjM0Pe{B3m;0Pn*aa+ diff --git a/src/vortex_software/vortex_test.hex b/src/vortex_software/vortex_test.hex new file mode 100644 index 00000000..5258d0c1 --- /dev/null +++ b/src/vortex_software/vortex_test.hex @@ -0,0 +1,202 @@ +:0200000480007A +:1000000037F1FF7FEF008006EF005018730000000B +:10001000938B0600130D0700130F010093030500D7 +:1000200013051000635C75001301018013030500C4 +:100030006B500300130515006FF0DFFE13010F0076 +:1000400013050000930F0600938D0300EBE0BF0142 +:1000500017050000130505086B4005001703000095 +:10006000130343FB6B00030067800000130101FED4 +:10007000232E1100232C810013040102232604FEE9 +:100080006F0000030327C4FE9307404C3307F702B9 +:10009000B70700819387071FB307F7001385070091 +:1000A000EF00C0338327C4FE938717002326F4FE96 +:1000B0000327C4FE93077000E3D6E7FC130000009B +:1000C0008320C10103248101130101026780000024 +:1000D000130101FD23261102232481022322A103FF +:1000E0001304010313070D009307404C3307F70275 +:1000F000B70700819387071FB307F7001385070031 +:10010000EF00003F930705006380070213070D000F +:10011000B70700819387471EB307F7001307100046 +:100120002380E7007300000013070D009307404C85 +:100130003307F702B70700819387071FB307F7005C +:10014000130784FD9305070013850700EF00C031F6 +:10015000832704FE138107008327C4FD832584FDC4 +:10016000032644FE832684FE0327C4FE138507006E +:10017000EFF01FEA73000000130000008320C102AB +:1001800003248102032D4102130101036780000053 +:10019000130101FD2326110223248102130401030C +:1001A00093090100232604FE6F0040080327C4FEC4 +:1001B0009307404C3307F702B70700819387071F67 +:1001C000B307F70013850700EF008032930705009F +:1001D000639807040327C4FE9307404C3307F702D4 +:1001E000B70700819387071FB307F700130744FD84 +:1001F0009305070013850700EF0000278327C4FD40 +:1002000013810700832784FD832544FD032604FE14 +:10021000832644FE032784FE13850700EFF01FE4C6 +:100220008327C4FE938717002326F4FE0327C4FE0A +:1002300093076000E3DCE7F6138109001300000078 +:100240008320C1020324810213010103678000009F +:10025000130101FC232E1102232C8102130401043B +:100260002326A4FC2324B4FC2322C4FC2320D4FC96 +:1002700013090100232604FE232404FE6F00C00896 +:10028000B709FFFF33013101832784FE2328F4FCE3 +:10029000832784FC232AF4FC93070100232CF4FC1D +:1002A000832744FC232EF4FC832704FC2320F4FE44 +:1002B0008327C4FE2322F4FE0327C4FE9307404C89 +:1002C0003307F702B70700819387071FB307F700CB +:1002D000130704FD9305070013850700EF00401284 +:1002E0008327C4FE938717002326F4FE0327C4FE4A +:1002F0009307600063D4E700232604FE832784FE6F +:10030000938717002324F4FE032784FE8327C4FC6D +:10031000E368F7F613010900EFF09FE71300000010 +:100320008320C103032481031301010467800000BB +:10033000130101FD2326810213040103232EA4FCD3 +:10034000A30704FE6F00000593071000A307F4FE47 +:10035000232404FE6F0040038347F4FE3707008127 +:100360009306471E032784FE3387E60003470700F2 +:10037000B3F7E700B337F000A307F4FE832784FE4A +:10038000938717002324F4FE832784FE0327C4FDEC +:10039000E3E4E7FC8347F4FE93C7170093F7F70FF6 +:1003A000E39407FA130000000324C10213010103C0 +:1003B00067800000130101FF2326810023247101BF +:1003C0001304010193870B00138507000324C10068 +:1003D000832B810013010101678000009302050057 +:1003E000130300009303700023A0620023A26200A5 +:1003F00023A4620023A6720023A862006780000085 +:100400009302050003A382001303130023A46200D8 +:100410001383420183AE420093935E003303730063 +:1004200003AE05002320C30103AE45002322C30110 +:1004300003AE85002324C30103AEC5002326C301F8 +:1004400003AE05012328C30103AE4501232AC301DE +:10045000938E1E00130F20036394EE01930E000091 +:1004600023A2D201678000009302050003A382004B +:100470001303F3FF23A462001383420183AE02003F +:10048000930F2003138F0E00130F1F006314FF013F +:10049000130F000023A0E20193935E003303730067 +:1004A000032E030023A0C501032E430023A2C50190 +:1004B000032E830023A4C501032EC30023A6C50178 +:1004C000032E030123A8C501032E430123AAC5015E +:1004D000678000009302050003A38200130500005B +:1004E000130E200363146E001305150067800000CF +:1004F0009302050003A3820013050000130E000001 +:1005000063146E0013051500678000009302050058 +:1005100003A3C20083A3020133B563006780000018 +:10052000130141FF232011002322B1008345050060 +:1005300063880500EF00C001130515006FF01FFF71 +:1005400083200100832541001301C1006780000062 +:10055000B708010023A0B80067800000130101FD67 +:10056000232611022324810213040103232EA4FC59 +:100570000327C4FD9307F00063E4E702B707008197 +:100580000327C4FD1317270093874712B307F7000B +:1005900083A7070013850700EFF09FF86F0040075F +:1005A000930700022326F4FEA30504FE8327C4FE5E +:1005B0009387C7FF0327C4FDB357F70093F7F700EE +:1005C0002322F4FE832744FE63860700930710006E +:1005D000A305F4FE8347B4FE63820702B7070081D8 +:1005E000032744FE1317270093874712B307F7002A +:1005F00083A7070013850700EFF09FF28327C4FE4F +:100600009387C7FF2326F4FE8327C4FEE340F0FA56 +:100610008320C102032481021301010367800000CB +:10062000130101FD23261102232481021304010377 +:10063000232EA4FC232CB4FC232AC4FC2328D4FCA2 +:10064000B73700810327C4FD23AEE780B7370081A9 +:100650009387C781032784FD23A2E700B737008172 +:100660009387C781032744FD23A4E700B7370081A0 +:100670009387C781032704FD23A6E700832704FD92 +:1006800093D737002326F4FE832704FD93F77700E2 +:10069000638807008327C4FE938717002326F4FE90 +:1006A000B73700819387C7810327C4FE23A8E700DB +:1006B000B707008113850708EFF09FE60325C4FE06 +:1006C000EFF0DFE9B70700811385C708EFF05FE5BA +:1006D000032704FD9307700063F2E702B737008138 +:1006E0009386C781B70700801386C774930580007F +:1006F000032504FDEFF0DFB56F000002B73700817E +:100700009386C781B70700801386C774832504FDCD +:10071000032504FDEFF0DFB3032704FD930770000A +:1007200063F8E70013058000EFF09FC06F00C00082 +:10073000032504FDEFF0DFBF130000008320C1029A +:10074000032481021301010367800000130101FAF1 +:10075000232E1104232C8104130401062326A4FA5A +:100760002324B4FAEFF01FC5232CA4FC832784FDB7 +:1007700083A70700232AF4FC832784FD83A747006F +:100780002328F4FC832784FD83A787002326F4FC19 +:10079000832784FD83A707012326F4FE0327C4FED5 +:1007A0008327C4FAB307F7022324F4FE8327C4FE89 +:1007B000639A0700930710002326F4FE8327C4FAE8 +:1007C0002324F4FE832784FD83A7C7002324F4FC9D +:1007D000232204FE6F004012232004FE232E04FC7B +:1007E0006F008007032784FA832784FCB307F7028E +:1007F0000327C4FDB307F7002322F4FC032784FC7E +:100800008327C4FDB307F702032784FEB307F7006D +:100810002320F4FC832744FC93972700032744FDFF +:10082000B307F70003A70700832704FC939727006B +:10083000832604FDB387F60083A70700B307F702FA +:10084000032704FEB307F7002320F4FE8327C4FD2B +:1008500093871700232EF4FC0327C4FD832784FC11 +:10086000E362F7F8032784FA832784FC3307F7024F +:10087000832784FEB307F700232EF4FA032784FEB0 +:10088000832784FCB337F70093F7F70F232CF4FA90 +:10089000832784FB93B71700A30BF4FA834774FBF9 +:1008A000138F0700B7170080938F478E6B200F00C0 +:1008B0007B70FF018327C4FB939727000327C4FCA9 +:1008C000B307F700032704FE23A0E700832784FE75 +:1008D000938717002324F4FEB7170080138E878EAA +:1008E00067000E00130000006B300000832744FEF9 +:1008F000938717002322F4FE832744FE0327C4FEB8 +:10090000E3ECE7EC130000008320C105032481051C +:100910001301010667800000130101FE232E8100F0 +:1009200013040102232604FE6F008004B737008100 +:100930000327C4FE1317270093870783B307F70025 +:100940001307300023A0E700B74700810327C4FE48 +:100950001317270093870783B307F70013072000B7 +:1009600023A0E7008327C4FE938717002326F4FE05 +:100970000327C4FE9307F008E3DAE7FA1300000048 +:100980000324C1011301010267800000130101FE6D +:10099000232E1100232C810013040102EFF0DFF756 +:1009A0009306C000B757008113860783B7470081BD +:1009B00093850783B737008113850783EFF05FC600 +:1009C000B70700811385070DEFF09FB5B7070081CA +:1009D0001385C70EEFF0DFB4232604FE6F008005F9 +:1009E0000327C4FE9307C000B367F70263980700AC +:1009F000B70700811385870FEFF09FB2B7570081CB +:100A00000327C4FE1317270093870783B307F70054 +:100A100083A7070013850700EFF05FB4B7070081D5 +:100A20001385C70FEFF0DFAF8327C4FE938717004E +:100A30002326F4FE0327C4FE9307F008E3D2E7FA67 +:100A4000B707008113850710EFF09FAD93070000F3 +:100A5000138507008320C1010324810113010102D2 +:040A600067800000AB +:02000004810079 +:10000000300000003100000032000000330000002A +:10001000340000003500000036000000370000000A +:10002000380000003900000061000000620000009C +:10003000630000006400000065000000660000002E +:1000400030000000310000003200000033000000EA +:1000500034000000350000003600000037000000CA +:10006000380000003900000061000000620000005C +:1000700063000000640000006500000066000000EE +:100080006F66667365743A20000000000A00000085 +:10009000300000003100000032000000330000009A +:1000A000340000003500000036000000370000007A +:1000B000380000003900000061000000620000000C +:1000C000630000006400000065000000660000009E +:1000D0002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D50 +:1000E0002D2D2D2D2D2D2D2D2D0A000046494E4153 +:1000F0004C205A0A000000000A0000002000000006 +:100100000A2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D42 +:100110002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0F +:020120000A00D3 +:100124000000008104000081080000810C000081AF +:100134001000008114000081180000811C0000815F +:100144002000008124000081280000812C0000810F +:100154003000008134000081380000813C000081BF +:100164004000008144000081480000814C0000816F +:100174005000008154000081580000815C0000811F +:100184006000008164000081680000816C000081CF +:100194007000008174000081780000817C0000817F +:1001A4009000008194000081980000819C000081EF +:1001B400A0000081A4000081A8000081AC0000819F +:1001C400B0000081B4000081B8000081BC0000814F +:1001D400C0000081C4000081C8000081CC000081FF +:040000058000000077 +:00000001FF diff --git a/src/vortex_software/vx_include/vx_front.c b/src/vortex_software/vx_include/vx_front.c new file mode 100644 index 00000000..34e1d4a4 --- /dev/null +++ b/src/vortex_software/vx_include/vx_front.c @@ -0,0 +1,94 @@ + +#include "vx_front.h" + +// -------------------------- Matrix Multiplication -------------------------- + +static mat_mult_arg_t args; +void _vx_matMult(unsigned, unsigned); + +void vx_sq_mat_mult(void * x, void * y, void * z, unsigned mat_dim) +{ + args.x = x; + args.y = y; + args.z = z; + args.mat_dim = mat_dim; + + unsigned off = (mat_dim/MAX_THREADS); + + if ((mat_dim%MAX_THREADS) != 0) + { + off += 1; + } + + + args.offset = off; + + vx_print_str("offset: "); + vx_print_hex(off); + vx_print_str("\n"); + + if (mat_dim >= 8) + { + vx_spawnWarps(mat_dim, MAX_THREADS, _vx_matMult, (void *) (&args)); + } + else + { + vx_spawnWarps(mat_dim, mat_dim, _vx_matMult, (void *) (&args)); + } + + if (mat_dim > 7) + { + vx_wait_for_warps(MAX_WARPS); + } + else + { + vx_wait_for_warps(mat_dim); + } +} + +void _vx_matMult(unsigned tid, unsigned wid) +{ + mat_mult_arg_t * args = (mat_mult_arg_t *) vx_get_arg_struct(); + + unsigned * x_ptr = args->x; + unsigned * y_ptr = args->y; + unsigned * z_ptr = args->z; + + unsigned off = args->offset; + + unsigned i_index = off * tid; + + if (off == 0) + { + off = 1; + i_index = tid; + } + + unsigned mat_dim = args->mat_dim; + + for (int iter = 0; iter < off; ++iter) + { + 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]); + } + + int final_i = (wid * mat_dim) + i_index; + unsigned cond = i_index < mat_dim; + __if(cond) + { + z_ptr[final_i] = total; + i_index++; + } + __else + __end_if + } + + + return; + +} \ No newline at end of file diff --git a/src/vortex_software/vx_include/vx_front.h b/src/vortex_software/vx_include/vx_front.h new file mode 100644 index 00000000..3f9f749b --- /dev/null +++ b/src/vortex_software/vx_include/vx_front.h @@ -0,0 +1,20 @@ +#include "../vx_os/vx_back/vx_back.h" +#include "../vx_os/vx_io/vx_io.h" + +#define MAX_WARPS 8 +#define MAX_THREADS 8 + + +// -------------------------- Matrix Multiplication -------------------------- + +typedef struct +{ + unsigned * x; + unsigned * y; + unsigned * z; + unsigned mat_dim; + unsigned offset; + +} mat_mult_arg_t; +void vx_sq_mat_mult(void *, void *, void *, unsigned); + diff --git a/src/vortex_software/vx_main.c b/src/vortex_software/vx_main.c new file mode 100644 index 00000000..931dc17c --- /dev/null +++ b/src/vortex_software/vx_main.c @@ -0,0 +1,38 @@ + +#include "./vx_include/vx_front.h" + +unsigned x[1024] = {0}; +unsigned y[1024] = {0}; +unsigned z[1024] = {0}; + +#define MAT_DIM 16 + +void initialize_mats() +{ + for (int i = 0; i < (MAT_DIM * MAT_DIM); i++) + { + x[i] = 3; + y[i] = 2; + } +} + +int main() +{ + + initialize_mats(); + + vx_sq_mat_mult(x, y, z, MAT_DIM); + + vx_print_str("-------------------------\n"); + vx_print_str("FINAL Z\n"); + + for (int j = 0; j < (MAT_DIM * MAT_DIM); j++) + { + if ((j % MAT_DIM) == 0) vx_print_str("\n"); + vx_print_hex(z[j]); + vx_print_str(" "); + } + + vx_print_str("\n-------------------------------\n"); + return 0; +} \ No newline at end of file diff --git a/src/vortex_software/vx_os/.DS_Store b/src/vortex_software/vx_os/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1a403cc6dd255f59e7471c1a56ad8bc731f83ffb GIT binary patch literal 6148 zcmeHKyH3L}6umC38o^Srz?dDVRK&&-sxTnNegM!E(TY^51g$#eL)a0&z{U^oAxLcO zaISqz^D1IM2%&o=`y|e}_VI~g$3$eh(?N%*MMNG7V|^V}MeuVjrKm~ECeYYEqLVm@ z`f<`PakW7mPzU~=1N`kaD5eqhsZH7MmzRV?l=iy~D}BivX1;W0KCEQkJC|%5WO1F61aY5|?)b3~07T6Vv z3yiGl+T*NN@L5J3Crjn4SrzIRZ&&f>9KfE<;cYn7S{+aa)PYY2czy6u7z4r7pUY3oj5%9lCTfa`-SZvXK*tv7@7Z z-_pqh4z*SX)PcMMYwoti`~UIk^M5``@6-Wx;9ogl>R~VJVoI{NmL|u0t&eh!!oj@M mp-n+0+p)dit#}*72A=tR0Sp9FhiF0QkASs7D|O&k9rysCVXsL5 literal 0 HcmV?d00001 diff --git a/src/riscv_gpgpu/lib/lib.c b/src/vortex_software/vx_os/vx_back/vx_back.c similarity index 53% rename from src/riscv_gpgpu/lib/lib.c rename to src/vortex_software/vx_os/vx_back/vx_back.c index 0ae13ed3..b1ce59b6 100644 --- a/src/riscv_gpgpu/lib/lib.c +++ b/src/vortex_software/vx_os/vx_back/vx_back.c @@ -1,32 +1,18 @@ -#include "lib.h" +#include "vx_back.h" -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); +extern void vx_createThreads(unsigned, unsigned, unsigned, void *, unsigned); +extern void vx_wspawn(unsigned, unsigned, unsigned, void *, unsigned); - -void int_print(unsigned f) +void vx_before_main() { - if (f < 16) + for (int i = 0; i < 8; i++) { - print_consol(hextoa[f]); - return; + queue_initialize(q + i); } - int temp; - int sf = 32; - bool start = false; - do - { - temp = (f >> (sf - 4)) & 0xf; - if (temp != 0) start = true; - if (start) print_consol(hextoa[temp]); - sf -= 4; - } while(sf > 0); } -void reschedule_warps() +void vx_reschedule_warps() { register unsigned curr_warp asm("s10"); @@ -40,13 +26,13 @@ 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.args, j.assigned_warp); + vx_createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); ECALL; } -void schedule_warps() +void vx_schedule_warps() { asm __volatile__("mv s3, sp"); @@ -57,7 +43,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.args, j.assigned_warp); + vx_wspawn(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp); } } @@ -65,14 +51,9 @@ void schedule_warps() } -void sleep(int t) -{ - for(int z = 0; z < t; z++) {} -} - -void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) +void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) { asm __volatile__("addi s2, sp, 0"); int warp = 0; @@ -97,11 +78,11 @@ void createWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args) asm __volatile__("addi sp, s2, 0"); - schedule_warps(); + vx_schedule_warps(); } -void wait_for_done(unsigned num_wait) +void vx_wait_for_warps(unsigned num_wait) { bool temp = false; while (!temp) @@ -115,19 +96,11 @@ void wait_for_done(unsigned num_wait) } -void * get_1st_arg(void) +void * vx_get_arg_struct(void) { register void *ret asm("s7"); return ret; } -void * get_2nd_arg(void) -{ - register void *ret asm("s8"); - return ret; -} -void * get_3rd_arg(void) -{ - register void *ret asm("s9"); - return ret; -} + + diff --git a/src/riscv_gpgpu/lib/lib.h b/src/vortex_software/vx_os/vx_back/vx_back.h similarity index 69% rename from src/riscv_gpgpu/lib/lib.h rename to src/vortex_software/vx_os/vx_back/vx_back.h index 19d7117b..7233dab5 100644 --- a/src/riscv_gpgpu/lib/lib.h +++ b/src/vortex_software/vx_os/vx_back/vx_back.h @@ -1,8 +1,9 @@ -#ifndef __RISCV_GP_ -#define __RISCV_GP_ + +#pragma once + #include -#include "queue.h" +#include "../vx_util/queue.h" #define WSPAWN asm __volatile__(".word 0x3006b"::); #define CLONE asm __volatile__(".word 0x3506b":::); @@ -28,28 +29,15 @@ #define __end_if AFTER:\ JOIN; - -static char * hextoa[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; 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 reschedule_warps(void); -void int_print(unsigned); -void wait_for_done(unsigned); - -void * get_1st_arg(void); -void * get_2nd_arg(void); -void * get_3rd_arg(void); -void sleep(int); +void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void *); +void vx_schedule_warps(void); +void vx_reschedule_warps(void); +void vx_wait_for_warps(unsigned); +void * vx_get_arg_struct(void); - - - - - -#endif - diff --git a/src/riscv_gpgpu/lib/lib.s b/src/vortex_software/vx_os/vx_back/vx_back.s similarity index 53% rename from src/riscv_gpgpu/lib/lib.s rename to src/vortex_software/vx_os/vx_back/vx_back.s index 8df6ca9a..0d90fe6e 100644 --- a/src/riscv_gpgpu/lib/lib.s +++ b/src/vortex_software/vx_os/vx_back/vx_back.s @@ -7,12 +7,13 @@ .global _start _start: lui sp, 0x7ffff + jal vx_before_main jal main ecall -.type createThreads, @function -.global createThreads -createThreads: +.type vx_createThreads, @function +.global vx_createThreads +vx_createThreads: 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 @@ -34,51 +35,14 @@ loop_done: mv t6,a2 # setting func_addr mv s11,t2 # setting num_threads to spawn .word 0x1bfe0eb - la a0, reschedule_warps + la a0, vx_reschedule_warps .word 0x5406b -.type printc, @function -.global printc -printc: - la a7, 0x00010000 - sw a1, 0(a7) - ret - -.type wspawn, @function -.global wspawn -wspawn: - la t1, createThreads +.type vx_wspawn, @function +.global vx_wspawn +vx_wspawn: + la t1, vx_createThreads .word 0x3006b # WSPAWN instruction ret -.type print_consol, @function -.global print_consol -print_consol: - addi sp, sp, -12 - sw ra, 0(sp) - sw a1, 4(sp) -bl: - lbu a1,0(a0) - beqz a1,be - jal printc - addi a0, a0, 1 - j bl -be: - lw ra, 0(sp) - lw a1, 4(sp) - addi sp, sp, 12 - ret - -.type print_int, @function -.global print_int -print_int: - addi sp, sp, -12 - sw ra, 0(sp) - sw a1, 4(sp) - addi a1, a0, 48 - jal printc - lw ra, 0(sp) - lw a1, 4(sp) - addi sp, sp, 12 - ret diff --git a/src/vortex_software/vx_os/vx_io/.DS_Store b/src/vortex_software/vx_os/vx_io/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b23802d5f92bd7c7768afa931cf20d5308855f76 GIT binary patch literal 6148 zcmeHKO-lno3{7gmLN9ytIKM#f9}HzZ^z08%S`P|^J(QLn=bzX2k|-`N=t)XRVDhs0 zn4NjBGaC`n)#3F)q!W<^22p8D2;GyRStQ>8)#e!FUbgGqu-)t?Cb~oy*M2KUImxrU z%eVCp8$`PENNfY+>^I--AG7zrWM3jfxu#?w8At|_foo#`cQ$3QbWEKLBm>F77Xv&W z3I?$THb*-;psWP|&fzwJ&0c~vC9noIM?@g%r9dy$Xff2w;V+R_1Dm6li$?RI@#fFw zMeXgFzgW6xbxfTMBm-jx*!w~{-v5vIWG0(@OG%XsBm>vVfX@4;eudq|-TGsnylV@_ s3kHRGjRpkv=qCUVJV)*<=Mo6k;;2#+H0LL;(ZvX%Q literal 0 HcmV?d00001 diff --git a/src/vortex_software/vx_os/vx_io/vx_io.c b/src/vortex_software/vx_os/vx_io/vx_io.c new file mode 100644 index 00000000..81c732de --- /dev/null +++ b/src/vortex_software/vx_os/vx_io/vx_io.c @@ -0,0 +1,21 @@ + +#include "vx_io.h" + +void vx_print_hex(unsigned f) +{ + if (f < 16) + { + vx_print_str(hextoa[f]); + return; + } + int temp; + int sf = 32; + bool start = false; + do + { + temp = (f >> (sf - 4)) & 0xf; + if (temp != 0) start = true; + if (start) vx_print_str(hextoa[temp]); + sf -= 4; + } while(sf > 0); +} \ No newline at end of file diff --git a/src/vortex_software/vx_os/vx_io/vx_io.h b/src/vortex_software/vx_os/vx_io/vx_io.h new file mode 100644 index 00000000..832d58e1 --- /dev/null +++ b/src/vortex_software/vx_os/vx_io/vx_io.h @@ -0,0 +1,8 @@ + +#pragma once + +#include + +static char * hextoa[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; +void vx_print_hex(unsigned); +void vx_print_str(char *); \ No newline at end of file diff --git a/src/vortex_software/vx_os/vx_io/vx_io.s b/src/vortex_software/vx_os/vx_io/vx_io.s new file mode 100644 index 00000000..676b92bd --- /dev/null +++ b/src/vortex_software/vx_os/vx_io/vx_io.s @@ -0,0 +1,30 @@ + + +.type vx_print_str, @function +.global vx_print_str +vx_print_str: + addi sp, sp, -12 + sw ra, 0(sp) + sw a1, 4(sp) +bl: + lbu a1,0(a0) + beqz a1,be + jal vx_printc + addi a0, a0, 1 + j bl +be: + lw ra, 0(sp) + lw a1, 4(sp) + addi sp, sp, 12 + ret + + +.type vx_printc, @function +.global vx_printc +vx_printc: + la a7, 0x00010000 + sw a1, 0(a7) + ret + + + diff --git a/src/vortex_software/vx_os/vx_util/.DS_Store b/src/vortex_software/vx_os/vx_util/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0ee024ad53f272f5e21483f9b08a969e9e67f889 GIT binary patch literal 6148 zcmeHKu}(uV478yVl~~@$m@h!$51y(rF!KYbP>G>Zg;4jm@!4=^n~LbQD+8P*`x3{F zl^f#3%zSltxicHgYzZaW2hCi#PMyg`d59i+Z0*)wA9nla&2AQb+QHl_d$WUWLy!6U z4OWKFPGXBb`aP?ijXqsfUNImB#DEwO1OJx+^lZxVI#E^(hygKhWPtZWgA&KWDKV}N z7(U;*z93RCj=u!3)qE_R60rjDOa*4D*B8Sx9sX8vW8svT>E=-x`&4DGABsnH_*;aV zkBPEkKn(N@T;_CO|G$Tx`TzGxnu!51@TVB?#rko*!jY=C&JM?3+n`U-Z$WH?!*q`T gOxTKVe#AA75jPf2iIEO}qyzO3ATJUz@EZ(#0bt2C00000 literal 0 HcmV?d00001 diff --git a/src/riscv_gpgpu/lib/queue.h b/src/vortex_software/vx_os/vx_util/queue.h similarity index 100% rename from src/riscv_gpgpu/lib/queue.h rename to src/vortex_software/vx_os/vx_util/queue.h diff --git a/src/riscv_gpgpu/lib/queue.s b/src/vortex_software/vx_os/vx_util/queue.s similarity index 100% rename from src/riscv_gpgpu/lib/queue.s rename to src/vortex_software/vx_os/vx_util/queue.s