diff --git a/emulator/test_riscv.sh b/emulator/test_riscv.sh index da6e89bc..3554b5b2 100755 --- a/emulator/test_riscv.sh +++ b/emulator/test_riscv.sh @@ -1,4 +1,4 @@ echo start > results.txt echo ../kernel/vortex_test.hex -./harptool -E -a rv32i --core ../runtime/vortex_runtime.hex -s -b 1> emulator.debug +./harptool -E -a rv32i --core ../runtime/mains/simple/vx_simple_main.hex -s -b 1> emulator.debug diff --git a/rtl/modelsim/vortex_tb.v b/rtl/modelsim/vortex_tb.v index 5a4f8228..0a8ef497 100644 --- a/rtl/modelsim/vortex_tb.v +++ b/rtl/modelsim/vortex_tb.v @@ -61,7 +61,7 @@ module vortex_tb ( initial begin // $fdumpfile("vortex1.vcd"); - load_file("../../runtime/vortex_runtime.hex"); + load_file("../../runtime/mains/simple/vx_simple_main.hex"); //load_file("../../kernel/vortex_test.hex"); $dumpvars(0, vortex_tb); reset = 1; diff --git a/runtime/mains/dev/Makefile b/runtime/mains/dev/Makefile new file mode 100644 index 00000000..cd8b9f52 --- /dev/null +++ b/runtime/mains/dev/Makefile @@ -0,0 +1,26 @@ + +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_STR = ../../startup/vx_start.s +VX_INT = ../../intrinsics/vx_intrinsics.s +VX_IO = ../../io/vx_io.s ../../io/vx_io.c +VX_API = ../../vx_api/vx_api.c +VX_TEST = ../../tests/tests.c + +VX_MAIN = ./vx_dev_main.c + +all: HEX DUMP ELF + +DUMP: ELF + $(DMP) -D vx_dev_main.elf > vx_dev_main.dump + +HEX: ELF + $(CPY) -O ihex vx_dev_main.elf vx_dev_main.hex + +ELF: + $(COMP) $(CC_FLAGS) $(VX_STR) $(VX_INT) $(VX_IO) $(VX_API) $(VX_TEST) $(VX_MAIN) -o vx_dev_main.elf diff --git a/runtime/mains/dev/linker.ld b/runtime/mains/dev/linker.ld new file mode 100644 index 00000000..8fbf7896 --- /dev/null +++ b/runtime/mains/dev/linker.ld @@ -0,0 +1,48 @@ +/* ---- Original Script: /opt/riscv32i/riscv32-unknown-elf/lib/ldscripts/elf32lriscv.x ---- */ +/* Default linker script, for normal executables */ +/* Copyright (C) 2014-2017 Free Software Foundation, Inc. + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ +OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", + "elf32-littleriscv") +OUTPUT_ARCH(riscv) +ENTRY(_start) +SECTIONS +{ + . = 0x80000000; + .text : + { + *(.text) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(.stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } + .init : + { + KEEP (*(SORT_NONE(.init))) + } + .plt : { *(.plt) } + .iplt : { *(.iplt) } + .fini : + { + KEEP (*(SORT_NONE(.fini))) + } + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + PROVIDE (_edata = .); + PROVIDE (_end = .); + PROVIDE (__global_pointer$ = .); + + . = 0x81000000; + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + . = 0x82000000; + .comment : { *(.comment) } + +} diff --git a/runtime/mains/dev/vx_dev_main.c b/runtime/mains/dev/vx_dev_main.c new file mode 100644 index 00000000..2d484496 --- /dev/null +++ b/runtime/mains/dev/vx_dev_main.c @@ -0,0 +1,84 @@ + +#include "../../intrinsics/vx_intrinsics.h" +#include "../../io/vx_io.h" +#include "../../tests/tests.h" +#include "../../vx_api/vx_api.h" + +typedef struct +{ + unsigned * x; + unsigned * y; + unsigned * z; + unsigned numColums; + unsigned numRows; +} mat_add_args_t; + + +unsigned x[] = {5, 5, 5, 5, + 6, 6, 6, 6, + 7, 7, 7, 7, + 8, 8, 8, 8}; + +unsigned y[] = {1, 1, 1, 1, + 1, 1, 1, 1, + 1, 1, 1, 1, + 1, 1, 1, 1}; + +unsigned z[] = {0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0}; + +void mat_add_kernel(void * void_arguments) +{ + mat_add_args_t * arguments = (mat_add_args_t *) void_arguments; + + unsigned wid = vx_warpID(); + unsigned tid = vx_threadID(); + + bool valid = (wid < arguments->numRows) && (tid < arguments->numColums); + + __if (valid) + { + unsigned index = (wid * arguments->numColums) + tid; + arguments->z[index] = arguments->x[index] + arguments->y[index]; + } + __endif +} + + +int main() +{ + // Main is called with all threads active of warp 0 + vx_tmc(1); + + + vx_print_str("Dev Main"); + + mat_add_args_t arguments; + arguments.x = x; + arguments.y = y; + arguments.z = z; + arguments.numColums = 4; + arguments.numRows = 4; + + + int numWarps = 4; + int numThreads = 4; + + vx_spawnWarps(numWarps, numThreads, mat_add_kernel, &arguments); + + for (int i = 0; i < arguments.numRows; i++) + { + for (int j = 0; j < arguments.numColums; j++) + { + unsigned index = (i * arguments.numColums) + j; + vx_print_hex(z[index]); + vx_print_str(" "); + } + vx_print_str("\n"); + } + + + return 0; +} \ No newline at end of file diff --git a/runtime/mains/dev/vx_dev_main.dump b/runtime/mains/dev/vx_dev_main.dump new file mode 100644 index 00000000..13a2d878 --- /dev/null +++ b/runtime/mains/dev/vx_dev_main.dump @@ -0,0 +1,929 @@ + +vx_dev_main.elf: file format elf32-littleriscv + + +Disassembly of section .text: + +80000000 <_start>: +80000000: 00000597 auipc a1,0x0 +80000004: 02058593 addi a1,a1,32 # 80000020 +80000008: 00400513 li a0,4 +8000000c: 00b5106b 0xb5106b +80000010: 010000ef jal ra,80000020 +80000014: 748000ef jal ra,8000075c
+80000018: 00000513 li a0,0 +8000001c: 0005006b 0x5006b + +80000020 : +80000020: 00400513 li a0,4 +80000024: 0005006b 0x5006b +80000028: 021026f3 csrr a3,0x21 +8000002c: 01a69693 slli a3,a3,0x1a +80000030: 02002673 csrr a2,0x20 +80000034: 00a61593 slli a1,a2,0xa +80000038: 00261613 slli a2,a2,0x2 +8000003c: 6ffff137 lui sp,0x6ffff +80000040: 40b10133 sub sp,sp,a1 +80000044: 40d10133 sub sp,sp,a3 +80000048: 00c10133 add sp,sp,a2 +8000004c: 021026f3 csrr a3,0x21 +80000050: 00068663 beqz a3,8000005c +80000054: 00000513 li a0,0 +80000058: 0005006b 0x5006b + +8000005c : +8000005c: 00008067 ret + +80000060 : +80000060: 00b5106b 0xb5106b +80000064: 00008067 ret + +80000068 : +80000068: 0005006b 0x5006b +8000006c: 00008067 ret + +80000070 : +80000070: 00b5406b 0xb5406b +80000074: 00008067 ret + +80000078 : +80000078: 0005206b 0x5206b +8000007c: 00008067 ret + +80000080 : +80000080: 0000306b 0x306b +80000084: 00008067 ret + +80000088 : +80000088: 02102573 csrr a0,0x21 +8000008c: 00008067 ret + +80000090 : +80000090: 02002573 csrr a0,0x20 +80000094: 00008067 ret + +80000098 : +80000098: 00400513 li a0,4 +8000009c: 0005006b 0x5006b +800000a0: 021026f3 csrr a3,0x21 +800000a4: 00f69693 slli a3,a3,0xf +800000a8: 02002673 csrr a2,0x20 +800000ac: 00a61593 slli a1,a2,0xa +800000b0: 00261613 slli a2,a2,0x2 +800000b4: 6ffff137 lui sp,0x6ffff +800000b8: 40b10133 sub sp,sp,a1 +800000bc: 40d10133 sub sp,sp,a3 +800000c0: 00c10133 add sp,sp,a2 +800000c4: 021026f3 csrr a3,0x21 +800000c8: 00068663 beqz a3,800000d4 +800000cc: 00000513 li a0,0 +800000d0: 0005006b 0x5006b + +800000d4 : +800000d4: 00008067 ret + +800000d8 : +800000d8: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> +800000dc: 00112023 sw ra,0(sp) +800000e0: 00b12223 sw a1,4(sp) + +800000e4 : +800000e4: 00054583 lbu a1,0(a0) +800000e8: 00058863 beqz a1,800000f8 +800000ec: 01c000ef jal ra,80000108 +800000f0: 00150513 addi a0,a0,1 +800000f4: ff1ff06f j 800000e4 + +800000f8 : +800000f8: 00012083 lw ra,0(sp) +800000fc: 00412583 lw a1,4(sp) +80000100: 00c10113 addi sp,sp,12 +80000104: 00008067 ret + +80000108 : +80000108: 000102b7 lui t0,0x10 +8000010c: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> +80000110: 00008067 ret + +80000114 : +80000114: fe010113 addi sp,sp,-32 +80000118: 00112e23 sw ra,28(sp) +8000011c: 00812c23 sw s0,24(sp) +80000120: 02010413 addi s0,sp,32 +80000124: fea42623 sw a0,-20(s0) +80000128: 810007b7 lui a5,0x81000 +8000012c: fec42703 lw a4,-20(s0) +80000130: 00271713 slli a4,a4,0x2 +80000134: 10878793 addi a5,a5,264 # 81000108 +80000138: 00f707b3 add a5,a4,a5 +8000013c: 0007a783 lw a5,0(a5) +80000140: 00078513 mv a0,a5 +80000144: f95ff0ef jal ra,800000d8 +80000148: 00000013 nop +8000014c: 01c12083 lw ra,28(sp) +80000150: 01812403 lw s0,24(sp) +80000154: 02010113 addi sp,sp,32 +80000158: 00008067 ret + +8000015c : +8000015c: fe010113 addi sp,sp,-32 +80000160: 00112e23 sw ra,28(sp) +80000164: 00812c23 sw s0,24(sp) +80000168: 02010413 addi s0,sp,32 +8000016c: fea42623 sw a0,-20(s0) +80000170: feb42423 sw a1,-24(s0) +80000174: fec42503 lw a0,-20(s0) +80000178: f61ff0ef jal ra,800000d8 +8000017c: fe842503 lw a0,-24(s0) +80000180: f95ff0ef jal ra,80000114 +80000184: 810007b7 lui a5,0x81000 +80000188: 04078513 addi a0,a5,64 # 81000040 +8000018c: f4dff0ef jal ra,800000d8 +80000190: 00000013 nop +80000194: 01c12083 lw ra,28(sp) +80000198: 01812403 lw s0,24(sp) +8000019c: 02010113 addi sp,sp,32 +800001a0: 00008067 ret + +800001a4 : +800001a4: fe010113 addi sp,sp,-32 +800001a8: 00112e23 sw ra,28(sp) +800001ac: 00812c23 sw s0,24(sp) +800001b0: 02010413 addi s0,sp,32 +800001b4: 810007b7 lui a5,0x81000 +800001b8: 2507a783 lw a5,592(a5) # 81000250 +800001bc: 00078513 mv a0,a5 +800001c0: ea9ff0ef jal ra,80000068 +800001c4: 810007b7 lui a5,0x81000 +800001c8: 24c7a703 lw a4,588(a5) # 8100024c +800001cc: 810007b7 lui a5,0x81000 +800001d0: 2487a783 lw a5,584(a5) # 81000248 +800001d4: 00078513 mv a0,a5 +800001d8: 000700e7 jalr a4 +800001dc: eadff0ef jal ra,80000088 +800001e0: fea42623 sw a0,-20(s0) +800001e4: fec42783 lw a5,-20(s0) +800001e8: 00078863 beqz a5,800001f8 +800001ec: 00000513 li a0,0 +800001f0: e79ff0ef jal ra,80000068 +800001f4: 00c0006f j 80000200 +800001f8: 00100513 li a0,1 +800001fc: e6dff0ef jal ra,80000068 +80000200: 00000013 nop +80000204: 01c12083 lw ra,28(sp) +80000208: 01812403 lw s0,24(sp) +8000020c: 02010113 addi sp,sp,32 +80000210: 00008067 ret + +80000214 : +80000214: fe010113 addi sp,sp,-32 +80000218: 00112e23 sw ra,28(sp) +8000021c: 00812c23 sw s0,24(sp) +80000220: 02010413 addi s0,sp,32 +80000224: fea42623 sw a0,-20(s0) +80000228: feb42423 sw a1,-24(s0) +8000022c: fec42223 sw a2,-28(s0) +80000230: fed42023 sw a3,-32(s0) +80000234: 810007b7 lui a5,0x81000 +80000238: fe442703 lw a4,-28(s0) +8000023c: 24e7a623 sw a4,588(a5) # 8100024c +80000240: 810007b7 lui a5,0x81000 +80000244: fe042703 lw a4,-32(s0) +80000248: 24e7a423 sw a4,584(a5) # 81000248 +8000024c: 810007b7 lui a5,0x81000 +80000250: fe842703 lw a4,-24(s0) +80000254: 24e7a823 sw a4,592(a5) # 81000250 +80000258: 800007b7 lui a5,0x80000 +8000025c: 1a478793 addi a5,a5,420 # 800001a4 +80000260: 00078593 mv a1,a5 +80000264: fec42503 lw a0,-20(s0) +80000268: df9ff0ef jal ra,80000060 +8000026c: f39ff0ef jal ra,800001a4 +80000270: 00000013 nop +80000274: 01c12083 lw ra,28(sp) +80000278: 01812403 lw s0,24(sp) +8000027c: 02010113 addi sp,sp,32 +80000280: 00008067 ret + +80000284 : +80000284: fe010113 addi sp,sp,-32 +80000288: 00112e23 sw ra,28(sp) +8000028c: 00812c23 sw s0,24(sp) +80000290: 02010413 addi s0,sp,32 +80000294: 810007b7 lui a5,0x81000 +80000298: 08478513 addi a0,a5,132 # 81000084 +8000029c: e3dff0ef jal ra,800000d8 +800002a0: 00400513 li a0,4 +800002a4: dc5ff0ef jal ra,80000068 +800002a8: de9ff0ef jal ra,80000090 +800002ac: fea42623 sw a0,-20(s0) +800002b0: fec42703 lw a4,-20(s0) +800002b4: 810007b7 lui a5,0x81000 +800002b8: fec42683 lw a3,-20(s0) +800002bc: 00269693 slli a3,a3,0x2 +800002c0: 25478793 addi a5,a5,596 # 81000254 +800002c4: 00f687b3 add a5,a3,a5 +800002c8: 00e7a023 sw a4,0(a5) +800002cc: 00100513 li a0,1 +800002d0: d99ff0ef jal ra,80000068 +800002d4: 810007b7 lui a5,0x81000 +800002d8: 2547a783 lw a5,596(a5) # 81000254 +800002dc: 00078513 mv a0,a5 +800002e0: e35ff0ef jal ra,80000114 +800002e4: 810007b7 lui a5,0x81000 +800002e8: 09078513 addi a0,a5,144 # 81000090 +800002ec: dedff0ef jal ra,800000d8 +800002f0: 810007b7 lui a5,0x81000 +800002f4: 25478793 addi a5,a5,596 # 81000254 +800002f8: 0047a783 lw a5,4(a5) +800002fc: 00078513 mv a0,a5 +80000300: e15ff0ef jal ra,80000114 +80000304: 810007b7 lui a5,0x81000 +80000308: 09078513 addi a0,a5,144 # 81000090 +8000030c: dcdff0ef jal ra,800000d8 +80000310: 810007b7 lui a5,0x81000 +80000314: 25478793 addi a5,a5,596 # 81000254 +80000318: 0087a783 lw a5,8(a5) +8000031c: 00078513 mv a0,a5 +80000320: df5ff0ef jal ra,80000114 +80000324: 810007b7 lui a5,0x81000 +80000328: 09078513 addi a0,a5,144 # 81000090 +8000032c: dadff0ef jal ra,800000d8 +80000330: 810007b7 lui a5,0x81000 +80000334: 25478793 addi a5,a5,596 # 81000254 +80000338: 00c7a783 lw a5,12(a5) +8000033c: 00078513 mv a0,a5 +80000340: dd5ff0ef jal ra,80000114 +80000344: 810007b7 lui a5,0x81000 +80000348: 09078513 addi a0,a5,144 # 81000090 +8000034c: d8dff0ef jal ra,800000d8 +80000350: 00000013 nop +80000354: 01c12083 lw ra,28(sp) +80000358: 01812403 lw s0,24(sp) +8000035c: 02010113 addi sp,sp,32 +80000360: 00008067 ret + +80000364 : +80000364: fe010113 addi sp,sp,-32 +80000368: 00112e23 sw ra,28(sp) +8000036c: 00812c23 sw s0,24(sp) +80000370: 02010413 addi s0,sp,32 +80000374: d1dff0ef jal ra,80000090 +80000378: fea42623 sw a0,-20(s0) +8000037c: fec42783 lw a5,-20(s0) +80000380: 0027b793 sltiu a5,a5,2 +80000384: fef405a3 sb a5,-21(s0) +80000388: feb44783 lbu a5,-21(s0) +8000038c: 00078513 mv a0,a5 +80000390: ce9ff0ef jal ra,80000078 +80000394: feb44783 lbu a5,-21(s0) +80000398: 06078463 beqz a5,80000400 +8000039c: fec42783 lw a5,-20(s0) +800003a0: 0017b793 seqz a5,a5 +800003a4: fef40523 sb a5,-22(s0) +800003a8: fea44783 lbu a5,-22(s0) +800003ac: 00078513 mv a0,a5 +800003b0: cc9ff0ef jal ra,80000078 +800003b4: fea44783 lbu a5,-22(s0) +800003b8: 02078263 beqz a5,800003dc +800003bc: 810007b7 lui a5,0x81000 +800003c0: fec42703 lw a4,-20(s0) +800003c4: 00271713 slli a4,a4,0x2 +800003c8: 25478793 addi a5,a5,596 # 81000254 +800003cc: 00f707b3 add a5,a4,a5 +800003d0: 00a00713 li a4,10 +800003d4: 00e7a023 sw a4,0(a5) +800003d8: 0200006f j 800003f8 +800003dc: 810007b7 lui a5,0x81000 +800003e0: fec42703 lw a4,-20(s0) +800003e4: 00271713 slli a4,a4,0x2 +800003e8: 25478793 addi a5,a5,596 # 81000254 +800003ec: 00f707b3 add a5,a4,a5 +800003f0: 00b00713 li a4,11 +800003f4: 00e7a023 sw a4,0(a5) +800003f8: c89ff0ef jal ra,80000080 +800003fc: 0640006f j 80000460 +80000400: fec42783 lw a5,-20(s0) +80000404: 0037b793 sltiu a5,a5,3 +80000408: fef404a3 sb a5,-23(s0) +8000040c: fe944783 lbu a5,-23(s0) +80000410: 00078513 mv a0,a5 +80000414: c65ff0ef jal ra,80000078 +80000418: fe944783 lbu a5,-23(s0) +8000041c: 02078263 beqz a5,80000440 +80000420: 810007b7 lui a5,0x81000 +80000424: fec42703 lw a4,-20(s0) +80000428: 00271713 slli a4,a4,0x2 +8000042c: 25478793 addi a5,a5,596 # 81000254 +80000430: 00f707b3 add a5,a4,a5 +80000434: 00c00713 li a4,12 +80000438: 00e7a023 sw a4,0(a5) +8000043c: 0200006f j 8000045c +80000440: 810007b7 lui a5,0x81000 +80000444: fec42703 lw a4,-20(s0) +80000448: 00271713 slli a4,a4,0x2 +8000044c: 25478793 addi a5,a5,596 # 81000254 +80000450: 00f707b3 add a5,a4,a5 +80000454: 00d00713 li a4,13 +80000458: 00e7a023 sw a4,0(a5) +8000045c: c25ff0ef jal ra,80000080 +80000460: c21ff0ef jal ra,80000080 +80000464: 810007b7 lui a5,0x81000 +80000468: 2547a783 lw a5,596(a5) # 81000254 +8000046c: 00078513 mv a0,a5 +80000470: ca5ff0ef jal ra,80000114 +80000474: 810007b7 lui a5,0x81000 +80000478: 09078513 addi a0,a5,144 # 81000090 +8000047c: c5dff0ef jal ra,800000d8 +80000480: 810007b7 lui a5,0x81000 +80000484: 25478793 addi a5,a5,596 # 81000254 +80000488: 0047a783 lw a5,4(a5) +8000048c: 00078513 mv a0,a5 +80000490: c85ff0ef jal ra,80000114 +80000494: 810007b7 lui a5,0x81000 +80000498: 09078513 addi a0,a5,144 # 81000090 +8000049c: c3dff0ef jal ra,800000d8 +800004a0: 810007b7 lui a5,0x81000 +800004a4: 25478793 addi a5,a5,596 # 81000254 +800004a8: 0087a783 lw a5,8(a5) +800004ac: 00078513 mv a0,a5 +800004b0: c65ff0ef jal ra,80000114 +800004b4: 810007b7 lui a5,0x81000 +800004b8: 09078513 addi a0,a5,144 # 81000090 +800004bc: c1dff0ef jal ra,800000d8 +800004c0: 810007b7 lui a5,0x81000 +800004c4: 25478793 addi a5,a5,596 # 81000254 +800004c8: 00c7a783 lw a5,12(a5) +800004cc: 00078513 mv a0,a5 +800004d0: c45ff0ef jal ra,80000114 +800004d4: 810007b7 lui a5,0x81000 +800004d8: 09078513 addi a0,a5,144 # 81000090 +800004dc: bfdff0ef jal ra,800000d8 +800004e0: 00000013 nop +800004e4: 01c12083 lw ra,28(sp) +800004e8: 01812403 lw s0,24(sp) +800004ec: 02010113 addi sp,sp,32 +800004f0: 00008067 ret + +800004f4 : +800004f4: fe010113 addi sp,sp,-32 +800004f8: 00112e23 sw ra,28(sp) +800004fc: 00812c23 sw s0,24(sp) +80000500: 02010413 addi s0,sp,32 +80000504: b85ff0ef jal ra,80000088 +80000508: fea42623 sw a0,-20(s0) +8000050c: 810007b7 lui a5,0x81000 +80000510: fec42703 lw a4,-20(s0) +80000514: 00271713 slli a4,a4,0x2 +80000518: 26478793 addi a5,a5,612 # 81000264 +8000051c: 00f707b3 add a5,a4,a5 +80000520: fec42703 lw a4,-20(s0) +80000524: 00e7a023 sw a4,0(a5) +80000528: fec42783 lw a5,-20(s0) +8000052c: 00078663 beqz a5,80000538 +80000530: 00000513 li a0,0 +80000534: b35ff0ef jal ra,80000068 +80000538: 00000013 nop +8000053c: 01c12083 lw ra,28(sp) +80000540: 01812403 lw s0,24(sp) +80000544: 02010113 addi sp,sp,32 +80000548: 00008067 ret + +8000054c : +8000054c: fe010113 addi sp,sp,-32 +80000550: 00112e23 sw ra,28(sp) +80000554: 00812c23 sw s0,24(sp) +80000558: 02010413 addi s0,sp,32 +8000055c: 800007b7 lui a5,0x80000 +80000560: 4f478793 addi a5,a5,1268 # 800004f4 +80000564: fef42623 sw a5,-20(s0) +80000568: fec42583 lw a1,-20(s0) +8000056c: 00400513 li a0,4 +80000570: af1ff0ef jal ra,80000060 +80000574: f81ff0ef jal ra,800004f4 +80000578: 810007b7 lui a5,0x81000 +8000057c: 2647a783 lw a5,612(a5) # 81000264 +80000580: 00078513 mv a0,a5 +80000584: b91ff0ef jal ra,80000114 +80000588: 810007b7 lui a5,0x81000 +8000058c: 09078513 addi a0,a5,144 # 81000090 +80000590: b49ff0ef jal ra,800000d8 +80000594: 810007b7 lui a5,0x81000 +80000598: 26478793 addi a5,a5,612 # 81000264 +8000059c: 0047a783 lw a5,4(a5) +800005a0: 00078513 mv a0,a5 +800005a4: b71ff0ef jal ra,80000114 +800005a8: 810007b7 lui a5,0x81000 +800005ac: 09078513 addi a0,a5,144 # 81000090 +800005b0: b29ff0ef jal ra,800000d8 +800005b4: 810007b7 lui a5,0x81000 +800005b8: 26478793 addi a5,a5,612 # 81000264 +800005bc: 0087a783 lw a5,8(a5) +800005c0: 00078513 mv a0,a5 +800005c4: b51ff0ef jal ra,80000114 +800005c8: 810007b7 lui a5,0x81000 +800005cc: 09078513 addi a0,a5,144 # 81000090 +800005d0: b09ff0ef jal ra,800000d8 +800005d4: 810007b7 lui a5,0x81000 +800005d8: 26478793 addi a5,a5,612 # 81000264 +800005dc: 00c7a783 lw a5,12(a5) +800005e0: 00078513 mv a0,a5 +800005e4: b31ff0ef jal ra,80000114 +800005e8: 810007b7 lui a5,0x81000 +800005ec: 09078513 addi a0,a5,144 # 81000090 +800005f0: ae9ff0ef jal ra,800000d8 +800005f4: 00000013 nop +800005f8: 01c12083 lw ra,28(sp) +800005fc: 01812403 lw s0,24(sp) +80000600: 02010113 addi sp,sp,32 +80000604: 00008067 ret + +80000608 : +80000608: ff010113 addi sp,sp,-16 +8000060c: 00112623 sw ra,12(sp) +80000610: 00812423 sw s0,8(sp) +80000614: 01010413 addi s0,sp,16 +80000618: c6dff0ef jal ra,80000284 +8000061c: 810007b7 lui a5,0x81000 +80000620: 09478513 addi a0,a5,148 # 81000094 +80000624: ab5ff0ef jal ra,800000d8 +80000628: 00400513 li a0,4 +8000062c: a3dff0ef jal ra,80000068 +80000630: d35ff0ef jal ra,80000364 +80000634: 00100513 li a0,1 +80000638: a31ff0ef jal ra,80000068 +8000063c: 810007b7 lui a5,0x81000 +80000640: 0a878513 addi a0,a5,168 # 810000a8 +80000644: a95ff0ef jal ra,800000d8 +80000648: f05ff0ef jal ra,8000054c +8000064c: 00000013 nop +80000650: 00c12083 lw ra,12(sp) +80000654: 00812403 lw s0,8(sp) +80000658: 01010113 addi sp,sp,16 +8000065c: 00008067 ret + +80000660 : +80000660: fc010113 addi sp,sp,-64 +80000664: 02112e23 sw ra,60(sp) +80000668: 02812c23 sw s0,56(sp) +8000066c: 04010413 addi s0,sp,64 +80000670: fca42623 sw a0,-52(s0) +80000674: fcc42783 lw a5,-52(s0) +80000678: fef42623 sw a5,-20(s0) +8000067c: a0dff0ef jal ra,80000088 +80000680: fea42423 sw a0,-24(s0) +80000684: a0dff0ef jal ra,80000090 +80000688: fea42223 sw a0,-28(s0) +8000068c: fec42783 lw a5,-20(s0) +80000690: 0107a783 lw a5,16(a5) +80000694: fe842703 lw a4,-24(s0) +80000698: 00f77e63 bgeu a4,a5,800006b4 +8000069c: fec42783 lw a5,-20(s0) +800006a0: 00c7a783 lw a5,12(a5) +800006a4: fe442703 lw a4,-28(s0) +800006a8: 00f77663 bgeu a4,a5,800006b4 +800006ac: 00100793 li a5,1 +800006b0: 0080006f j 800006b8 +800006b4: 00000793 li a5,0 +800006b8: fef401a3 sb a5,-29(s0) +800006bc: fe344783 lbu a5,-29(s0) +800006c0: 0017f793 andi a5,a5,1 +800006c4: fef401a3 sb a5,-29(s0) +800006c8: fe344783 lbu a5,-29(s0) +800006cc: 00078513 mv a0,a5 +800006d0: 9a9ff0ef jal ra,80000078 +800006d4: fe344783 lbu a5,-29(s0) +800006d8: 06078663 beqz a5,80000744 +800006dc: fec42783 lw a5,-20(s0) +800006e0: 00c7a703 lw a4,12(a5) +800006e4: fe842783 lw a5,-24(s0) +800006e8: 02f707b3 mul a5,a4,a5 +800006ec: fe442703 lw a4,-28(s0) +800006f0: 00f707b3 add a5,a4,a5 +800006f4: fcf42e23 sw a5,-36(s0) +800006f8: fec42783 lw a5,-20(s0) +800006fc: 0007a703 lw a4,0(a5) +80000700: fdc42783 lw a5,-36(s0) +80000704: 00279793 slli a5,a5,0x2 +80000708: 00f707b3 add a5,a4,a5 +8000070c: 0007a683 lw a3,0(a5) +80000710: fec42783 lw a5,-20(s0) +80000714: 0047a703 lw a4,4(a5) +80000718: fdc42783 lw a5,-36(s0) +8000071c: 00279793 slli a5,a5,0x2 +80000720: 00f707b3 add a5,a4,a5 +80000724: 0007a703 lw a4,0(a5) +80000728: fec42783 lw a5,-20(s0) +8000072c: 0087a603 lw a2,8(a5) +80000730: fdc42783 lw a5,-36(s0) +80000734: 00279793 slli a5,a5,0x2 +80000738: 00f607b3 add a5,a2,a5 +8000073c: 00e68733 add a4,a3,a4 +80000740: 00e7a023 sw a4,0(a5) +80000744: 93dff0ef jal ra,80000080 +80000748: 00000013 nop +8000074c: 03c12083 lw ra,60(sp) +80000750: 03812403 lw s0,56(sp) +80000754: 04010113 addi sp,sp,64 +80000758: 00008067 ret + +8000075c
: +8000075c: fc010113 addi sp,sp,-64 +80000760: 02112e23 sw ra,60(sp) +80000764: 02812c23 sw s0,56(sp) +80000768: 04010413 addi s0,sp,64 +8000076c: 00100513 li a0,1 +80000770: 8f9ff0ef jal ra,80000068 +80000774: 810007b7 lui a5,0x81000 +80000778: 0f478513 addi a0,a5,244 # 810000f4 +8000077c: 95dff0ef jal ra,800000d8 +80000780: 810007b7 lui a5,0x81000 +80000784: 1c878793 addi a5,a5,456 # 810001c8 +80000788: fcf42423 sw a5,-56(s0) +8000078c: 810007b7 lui a5,0x81000 +80000790: 20878793 addi a5,a5,520 # 81000208 +80000794: fcf42623 sw a5,-52(s0) +80000798: 810007b7 lui a5,0x81000 +8000079c: 27478793 addi a5,a5,628 # 81000274 +800007a0: fcf42823 sw a5,-48(s0) +800007a4: 00400793 li a5,4 +800007a8: fcf42a23 sw a5,-44(s0) +800007ac: 00400793 li a5,4 +800007b0: fcf42c23 sw a5,-40(s0) +800007b4: 00400793 li a5,4 +800007b8: fef42223 sw a5,-28(s0) +800007bc: 00400793 li a5,4 +800007c0: fef42023 sw a5,-32(s0) +800007c4: fe442703 lw a4,-28(s0) +800007c8: fe042583 lw a1,-32(s0) +800007cc: fc840793 addi a5,s0,-56 +800007d0: 00078693 mv a3,a5 +800007d4: 800007b7 lui a5,0x80000 +800007d8: 66078613 addi a2,a5,1632 # 80000660 +800007dc: 00070513 mv a0,a4 +800007e0: a35ff0ef jal ra,80000214 +800007e4: fe042623 sw zero,-20(s0) +800007e8: 0800006f j 80000868 +800007ec: fe042423 sw zero,-24(s0) +800007f0: 0540006f j 80000844 +800007f4: fd442703 lw a4,-44(s0) +800007f8: fec42783 lw a5,-20(s0) +800007fc: 02f70733 mul a4,a4,a5 +80000800: fe842783 lw a5,-24(s0) +80000804: 00f707b3 add a5,a4,a5 +80000808: fcf42e23 sw a5,-36(s0) +8000080c: 810007b7 lui a5,0x81000 +80000810: fdc42703 lw a4,-36(s0) +80000814: 00271713 slli a4,a4,0x2 +80000818: 27478793 addi a5,a5,628 # 81000274 +8000081c: 00f707b3 add a5,a4,a5 +80000820: 0007a783 lw a5,0(a5) +80000824: 00078513 mv a0,a5 +80000828: 8edff0ef jal ra,80000114 +8000082c: 810007b7 lui a5,0x81000 +80000830: 10078513 addi a0,a5,256 # 81000100 +80000834: 8a5ff0ef jal ra,800000d8 +80000838: fe842783 lw a5,-24(s0) +8000083c: 00178793 addi a5,a5,1 +80000840: fef42423 sw a5,-24(s0) +80000844: fd442703 lw a4,-44(s0) +80000848: fe842783 lw a5,-24(s0) +8000084c: fae7e4e3 bltu a5,a4,800007f4 +80000850: 810007b7 lui a5,0x81000 +80000854: 10478513 addi a0,a5,260 # 81000104 +80000858: 881ff0ef jal ra,800000d8 +8000085c: fec42783 lw a5,-20(s0) +80000860: 00178793 addi a5,a5,1 +80000864: fef42623 sw a5,-20(s0) +80000868: fd842703 lw a4,-40(s0) +8000086c: fec42783 lw a5,-20(s0) +80000870: f6e7eee3 bltu a5,a4,800007ec +80000874: 00000793 li a5,0 +80000878: 00078513 mv a0,a5 +8000087c: 03c12083 lw ra,60(sp) +80000880: 03812403 lw s0,56(sp) +80000884: 04010113 addi sp,sp,64 +80000888: 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: 000a c.slli zero,0x2 +81000042: 0000 unimp +81000044: 0030 addi a2,sp,8 +81000046: 0000 unimp +81000048: 0031 c.nop 12 +8100004a: 0000 unimp +8100004c: 0032 c.slli zero,0xc +8100004e: 0000 unimp +81000050: 00000033 add zero,zero,zero +81000054: 0034 addi a3,sp,8 +81000056: 0000 unimp +81000058: 0035 c.nop 13 +8100005a: 0000 unimp +8100005c: 0036 c.slli zero,0xd +8100005e: 0000 unimp +81000060: 00000037 lui zero,0x0 +81000064: 0038 addi a4,sp,8 +81000066: 0000 unimp +81000068: 0039 c.nop 14 +8100006a: 0000 unimp +8100006c: 0061 c.nop 24 +8100006e: 0000 unimp +81000070: 0062 c.slli zero,0x18 +81000072: 0000 unimp +81000074: 00000063 beqz zero,81000074 +81000078: 0064 addi s1,sp,12 +8100007a: 0000 unimp +8100007c: 0065 c.nop 25 +8100007e: 0000 unimp +81000080: 0066 c.slli zero,0x19 +81000082: 0000 unimp +81000084: 6574 flw fa3,76(a0) +81000086: 745f7473 csrrci s0,0x745,30 +8100008a: 636d lui t1,0x1b +8100008c: 000a c.slli zero,0x2 +8100008e: 0000 unimp +81000090: 000a c.slli zero,0x2 +81000092: 0000 unimp +81000094: 6574 flw fa3,76(a0) +81000096: 645f7473 csrrci s0,0x645,30 +8100009a: 7669 lui a2,0xffffa +8100009c: 7265 lui tp,0xffff9 +8100009e: 636e6567 0x636e6567 +810000a2: 0a65 addi s4,s4,25 +810000a4: 0000 unimp +810000a6: 0000 unimp +810000a8: 6574 flw fa3,76(a0) +810000aa: 735f7473 csrrci s0,0x735,30 +810000ae: 6170 flw fa2,68(a0) +810000b0: 000a6e77 0xa6e77 +810000b4: 0030 addi a2,sp,8 +810000b6: 0000 unimp +810000b8: 0031 c.nop 12 +810000ba: 0000 unimp +810000bc: 0032 c.slli zero,0xc +810000be: 0000 unimp +810000c0: 00000033 add zero,zero,zero +810000c4: 0034 addi a3,sp,8 +810000c6: 0000 unimp +810000c8: 0035 c.nop 13 +810000ca: 0000 unimp +810000cc: 0036 c.slli zero,0xd +810000ce: 0000 unimp +810000d0: 00000037 lui zero,0x0 +810000d4: 0038 addi a4,sp,8 +810000d6: 0000 unimp +810000d8: 0039 c.nop 14 +810000da: 0000 unimp +810000dc: 0061 c.nop 24 +810000de: 0000 unimp +810000e0: 0062 c.slli zero,0x18 +810000e2: 0000 unimp +810000e4: 00000063 beqz zero,810000e4 +810000e8: 0064 addi s1,sp,12 +810000ea: 0000 unimp +810000ec: 0065 c.nop 25 +810000ee: 0000 unimp +810000f0: 0066 c.slli zero,0x19 +810000f2: 0000 unimp +810000f4: 6544 flw fs1,12(a0) +810000f6: 2076 fld ft0,344(sp) +810000f8: 614d addi sp,sp,176 +810000fa: 6e69 lui t3,0x1a +810000fc: 0000 unimp +810000fe: 0000 unimp +81000100: 0020 addi s0,sp,8 +81000102: 0000 unimp +81000104: 000a c.slli zero,0x2 + +Disassembly of section .data: + +81000108 : +81000108: 0000 unimp +8100010a: 8100 0x8100 +8100010c: 0004 0x4 +8100010e: 8100 0x8100 +81000110: 0008 0x8 +81000112: 8100 0x8100 +81000114: 000c 0xc +81000116: 8100 0x8100 +81000118: 0010 0x10 +8100011a: 8100 0x8100 +8100011c: 0014 0x14 +8100011e: 8100 0x8100 +81000120: 0018 0x18 +81000122: 8100 0x8100 +81000124: 001c 0x1c +81000126: 8100 0x8100 +81000128: 0020 addi s0,sp,8 +8100012a: 8100 0x8100 +8100012c: 0024 addi s1,sp,8 +8100012e: 8100 0x8100 +81000130: 0028 addi a0,sp,8 +81000132: 8100 0x8100 +81000134: 002c addi a1,sp,8 +81000136: 8100 0x8100 +81000138: 0030 addi a2,sp,8 +8100013a: 8100 0x8100 +8100013c: 0034 addi a3,sp,8 +8100013e: 8100 0x8100 +81000140: 0038 addi a4,sp,8 +81000142: 8100 0x8100 +81000144: 003c addi a5,sp,8 +81000146: 8100 0x8100 + +81000148 : +81000148: 0044 addi s1,sp,4 +8100014a: 8100 0x8100 +8100014c: 0048 addi a0,sp,4 +8100014e: 8100 0x8100 +81000150: 004c addi a1,sp,4 +81000152: 8100 0x8100 +81000154: 0050 addi a2,sp,4 +81000156: 8100 0x8100 +81000158: 0054 addi a3,sp,4 +8100015a: 8100 0x8100 +8100015c: 0058 addi a4,sp,4 +8100015e: 8100 0x8100 +81000160: 005c addi a5,sp,4 +81000162: 8100 0x8100 +81000164: 0060 addi s0,sp,12 +81000166: 8100 0x8100 +81000168: 0064 addi s1,sp,12 +8100016a: 8100 0x8100 +8100016c: 0068 addi a0,sp,12 +8100016e: 8100 0x8100 +81000170: 006c addi a1,sp,12 +81000172: 8100 0x8100 +81000174: 0070 addi a2,sp,12 +81000176: 8100 0x8100 +81000178: 0074 addi a3,sp,12 +8100017a: 8100 0x8100 +8100017c: 0078 addi a4,sp,12 +8100017e: 8100 0x8100 +81000180: 007c addi a5,sp,12 +81000182: 8100 0x8100 +81000184: 0080 addi s0,sp,64 +81000186: 8100 0x8100 + +81000188 : +81000188: 00b4 addi a3,sp,72 +8100018a: 8100 0x8100 +8100018c: 00b8 addi a4,sp,72 +8100018e: 8100 0x8100 +81000190: 00bc addi a5,sp,72 +81000192: 8100 0x8100 +81000194: 00c0 addi s0,sp,68 +81000196: 8100 0x8100 +81000198: 00c4 addi s1,sp,68 +8100019a: 8100 0x8100 +8100019c: 00c8 addi a0,sp,68 +8100019e: 8100 0x8100 +810001a0: 00cc addi a1,sp,68 +810001a2: 8100 0x8100 +810001a4: 00d0 addi a2,sp,68 +810001a6: 8100 0x8100 +810001a8: 00d4 addi a3,sp,68 +810001aa: 8100 0x8100 +810001ac: 00d8 addi a4,sp,68 +810001ae: 8100 0x8100 +810001b0: 00dc addi a5,sp,68 +810001b2: 8100 0x8100 +810001b4: 00e0 addi s0,sp,76 +810001b6: 8100 0x8100 +810001b8: 00e4 addi s1,sp,76 +810001ba: 8100 0x8100 +810001bc: 00e8 addi a0,sp,76 +810001be: 8100 0x8100 +810001c0: 00ec addi a1,sp,76 +810001c2: 8100 0x8100 +810001c4: 00f0 addi a2,sp,76 +810001c6: 8100 0x8100 + +810001c8 : +810001c8: 0005 c.nop 1 +810001ca: 0000 unimp +810001cc: 0005 c.nop 1 +810001ce: 0000 unimp +810001d0: 0005 c.nop 1 +810001d2: 0000 unimp +810001d4: 0005 c.nop 1 +810001d6: 0000 unimp +810001d8: 0006 c.slli zero,0x1 +810001da: 0000 unimp +810001dc: 0006 c.slli zero,0x1 +810001de: 0000 unimp +810001e0: 0006 c.slli zero,0x1 +810001e2: 0000 unimp +810001e4: 0006 c.slli zero,0x1 +810001e6: 0000 unimp +810001e8: 00000007 0x7 +810001ec: 00000007 0x7 +810001f0: 00000007 0x7 +810001f4: 00000007 0x7 +810001f8: 0008 0x8 +810001fa: 0000 unimp +810001fc: 0008 0x8 +810001fe: 0000 unimp +81000200: 0008 0x8 +81000202: 0000 unimp +81000204: 0008 0x8 + ... + +81000208 : +81000208: 0001 nop +8100020a: 0000 unimp +8100020c: 0001 nop +8100020e: 0000 unimp +81000210: 0001 nop +81000212: 0000 unimp +81000214: 0001 nop +81000216: 0000 unimp +81000218: 0001 nop +8100021a: 0000 unimp +8100021c: 0001 nop +8100021e: 0000 unimp +81000220: 0001 nop +81000222: 0000 unimp +81000224: 0001 nop +81000226: 0000 unimp +81000228: 0001 nop +8100022a: 0000 unimp +8100022c: 0001 nop +8100022e: 0000 unimp +81000230: 0001 nop +81000232: 0000 unimp +81000234: 0001 nop +81000236: 0000 unimp +81000238: 0001 nop +8100023a: 0000 unimp +8100023c: 0001 nop +8100023e: 0000 unimp +81000240: 0001 nop +81000242: 0000 unimp +81000244: 0001 nop + ... + +Disassembly of section .bss: + +81000248 : +81000248: 0000 unimp + ... + +8100024c : +8100024c: 0000 unimp + ... + +81000250 : +81000250: 0000 unimp + ... + +81000254 : + ... + +81000264 : + ... + +81000274 : + ... + +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/runtime/mains/dev/vx_dev_main.elf b/runtime/mains/dev/vx_dev_main.elf new file mode 100644 index 00000000..13ccbc6d Binary files /dev/null and b/runtime/mains/dev/vx_dev_main.elf differ diff --git a/runtime/mains/dev/vx_dev_main.hex b/runtime/mains/dev/vx_dev_main.hex new file mode 100644 index 00000000..32952a2f --- /dev/null +++ b/runtime/mains/dev/vx_dev_main.hex @@ -0,0 +1,178 @@ +:0200000480007A +:100000009705000093850502130540006B10B500AD +:10001000EF000001EF008074130500006B00050085 +:10002000130540006B000500F32610029396A6010D +:10003000732600029315A6001316260037F1FF6FF2 +:100040003301B1403301D1403301C100F326100226 +:1000500063860600130500006B0005006780000042 +:100060006B10B500678000006B0005006780000022 +:100070006B40B500678000006B20050067800000C2 +:100080006B3000006780000073251002678000005D +:100090007325000267800000130540006B00050017 +:1000A000F32610029396F600732600029315A6001D +:1000B0001316260037F1FF6F3301B1403301D140F1 +:1000C0003301C100F3261002638606001305000009 +:1000D0006B00050067800000130141FF2320110021 +:1000E0002322B1008345050063880500EF00C001AD +:1000F000130515006FF01FFF8320010083254100C9 +:100100001301C10067800000B702010023A0B20004 +:1001100067800000130101FE232E1100232C8100B3 +:10012000130401022326A4FEB70700810327C4FE9F +:100130001317270093878710B307F70083A70700DB +:1001400013850700EFF05FF9130000008320C10161 +:10015000032481011301010267800000130101FEE5 +:10016000232E1100232C8100130401022326A4FE58 +:100170002324B4FE0325C4FEEFF01FF6032584FEFE +:10018000EFF05FF9B707008113850704EFF0DFF4A4 +:10019000130000008320C101032481011301010227 +:1001A00067800000130101FE232E1100232C810023 +:1001B00013040102B707008183A7072513850700F1 +:1001C000EFF09FEAB707008103A7C724B7070081B4 +:1001D00083A7872413850700E7000700EFF0DFEA15 +:1001E0002326A4FE8327C4FE6388070013050000AE +:1001F000EFF09FE76F00C00013051000EFF0DFE69F +:10020000130000008320C1010324810113010102B6 +:1002100067800000130101FE232E1100232C8100B2 +:10022000130401022326A4FE2324B4FE2322C4FEC9 +:100230002320D4FEB7070081032744FE23A6E7242A +:10024000B7070081032704FE23A4E724B707008132 +:10025000032784FE23A8E724B70700809387471A63 +:10026000938507000325C4FEEFF09FDFEFF09FF3B7 +:10027000130000008320C101032481011301010246 +:1002800067800000130101FE232E1100232C810042 +:1002900013040102B707008113854708EFF0DFE37D +:1002A00013054000EFF05FDCEFF09FDE2326A4FE95 +:1002B0000327C4FEB70700818326C4FE9396260059 +:1002C00093874725B387F60023A0E70013051000A6 +:1002D000EFF09FD9B707008183A747251385070053 +:1002E000EFF05FE3B707008113850709EFF0DFDE6A +:1002F000B70700819387472583A747001385070029 +:10030000EFF05FE1B707008113850709EFF0DFDC4D +:10031000B70700819387472583A7870013850700C8 +:10032000EFF05FDFB707008113850709EFF0DFDA31 +:10033000B70700819387472583A7C7001385070068 +:10034000EFF05FDDB707008113850709EFF0DFD815 +:10035000130000008320C101032481011301010265 +:1003600067800000130101FE232E1100232C810061 +:1003700013040102EFF0DFD12326A4FE8327C4FE7D +:1003800093B72700A305F4FE8347B4FE1385070047 +:10039000EFF09FCE8347B4FE638407068327C4FE35 +:1003A00093B717002305F4FE8347A4FE13850700C7 +:1003B000EFF09FCC8347A4FE63820702B70700815A +:1003C0000327C4FE1317270093874725B307F700B9 +:1003D0001307A00023A0E7006F000002B707008109 +:1003E0000327C4FE1317270093874725B307F70099 +:1003F0001307B00023A0E700EFF09FC86F0040068E +:100400008327C4FE93B73700A304F4FE834794FE0A +:1004100013850700EFF05FC6834794FE63820702EF +:10042000B70700810327C4FE1317270093874725CA +:10043000B307F7001307C00023A0E7006F00000216 +:10044000B70700810327C4FE1317270093874725AA +:10045000B307F7001307D00023A0E700EFF05FC257 +:10046000EFF01FC2B707008183A747251385070058 +:10047000EFF05FCAB707008113850709EFF0DFC50A +:10048000B70700819387472583A747001385070097 +:10049000EFF05FC8B707008113850709EFF0DFC3EE +:1004A000B70700819387472583A787001385070037 +:1004B000EFF05FC6B707008113850709EFF0DFC1D2 +:1004C000B70700819387472583A7C70013850700D7 +:1004D000EFF05FC4B707008113850709EFF0DFBFB6 +:1004E000130000008320C1010324810113010102D4 +:1004F00067800000130101FE232E1100232C8100D0 +:1005000013040102EFF05FB82326A4FEB7070081B1 +:100510000327C4FE1317270093874726B307F70066 +:100520000327C4FE23A0E7008327C4FE63860700D9 +:1005300013050000EFF05FB3130000008320C1013A +:10054000032481011301010267800000130101FEF1 +:10055000232E1100232C810013040102B707008011 +:100560009387474F2326F4FE8325C4FE13054000DE +:10057000EFF01FAFEFF01FF8B707008183A7472602 +:1005800013850700EFF01FB9B7070081138507092E +:10059000EFF09FB4B70700819387472683A74700F2 +:1005A00013850700EFF01FB7B70700811385070910 +:1005B000EFF09FB2B70700819387472683A7870094 +:1005C00013850700EFF01FB5B707008113850709F2 +:1005D000EFF09FB0B70700819387472683A7C70036 +:1005E00013850700EFF01FB3B707008113850709D4 +:1005F000EFF09FAE130000008320C10103248101AE +:100600001301010267800000130101FF232611007E +:100610002324810013040101EFF0DFC6B707008136 +:1006200013854709EFF05FAB13054000EFF0DFA340 +:10063000EFF05FD313051000EFF01FA3B7070081A1 +:100640001385870AEFF05FA9EFF05FF01300000059 +:100650008320C10003248100130101016780000091 +:10066000130101FC232E1102232C81021304010427 +:100670002326A4FC8327C4FC2326F4FEEFF0DFA08E +:100680002324A4FEEFF0DFA02322A4FE8327C4FED0 +:1006900083A70701032784FE637EF7008327C4FE38 +:1006A00083A7C700032744FE6376F7009307100073 +:1006B0006F00800093070000A301F4FE834734FE1F +:1006C00093F71700A301F4FE834734FE1385070058 +:1006D000EFF09F9A834734FE638607068327C4FEA4 +:1006E00003A7C700832784FEB307F702032744FE4E +:1006F000B307F700232EF4FC8327C4FE03A70700EB +:100700008327C4FD93972700B307F70083A607004C +:100710008327C4FE03A747008327C4FD93972700C0 +:10072000B307F70003A707008327C4FE03A68700CB +:100730008327C4FD93972700B307F6003387E600AD +:1007400023A0E700EFF0DF93130000008320C10334 +:10075000032481031301010467800000130101FCDD +:10076000232E1102232C810213040104130510000F +:10077000EFF09F8FB70700811385470FEFF0DF95EC +:10078000B70700819387871C2324F4FCB7070081F7 +:10079000938787202326F4FCB70700819387472798 +:1007A0002328F4FC93074000232AF4FC930740001D +:1007B000232CF4FC930740002322F4FE930740000F +:1007C0002320F4FE032744FE832504FE930784FCC4 +:1007D00093860700B7070080138607661305070096 +:1007E000EFF05FA3232604FE6F000008232404FE1D +:1007F0006F004005032744FD8327C4FE3307F7023B +:10080000832784FEB307F700232EF4FCB70700818B +:100810000327C4FD1317270093874727B307F70063 +:1008200083A7070013850700EFF0DF8EB70700816D +:1008300013850710EFF05F8A832784FE93871700E4 +:100840002324F4FE032744FD832784FEE3E4E7FA30 +:10085000B707008113854710EFF01F888327C4FE78 +:10086000938717002326F4FE032784FD8327C4FE05 +:10087000E3EEE7F693070000138507008320C1032A +:0C088000032481031301010467800000C1 +:02000004810079 +:10000000300000003100000032000000330000002A +:10001000340000003500000036000000370000000A +:10002000380000003900000061000000620000009C +:10003000630000006400000065000000660000002E +:100040000A00000030000000310000003200000013 +:1000500033000000340000003500000036000000CE +:100060003700000038000000390000006100000087 +:1000700062000000630000006400000065000000F2 +:1000800066000000746573745F746D630A0000009D +:100090000A000000746573745F6469766572676551 +:1000A0006E63650A00000000746573745F737061AD +:1000B000776E0A00300000003100000032000000BE +:1000C000330000003400000035000000360000005E +:1000D0003700000038000000390000006100000017 +:1000E0006200000063000000640000006500000082 +:1000F00066000000446576204D61696E00000000D6 +:06010000200000000A00CF +:100108000000008104000081080000810C000081CB +:100118001000008114000081180000811C0000817B +:100128002000008124000081280000812C0000812B +:100138003000008134000081380000813C000081DB +:1001480044000081480000814C000081500000817B +:1001580054000081580000815C000081600000812B +:1001680064000081680000816C00008170000081DB +:1001780074000081780000817C000081800000818B +:10018800B4000081B8000081BC000081C00000817B +:10019800C4000081C8000081CC000081D00000812B +:1001A800D4000081D8000081DC000081E0000081DB +:1001B800E4000081E8000081EC000081F00000818B +:1001C8000500000005000000050000000500000013 +:1001D80006000000060000000600000006000000FF +:1001E80007000000070000000700000007000000EB +:1001F80008000000080000000800000008000000D7 +:1002080001000000010000000100000001000000E2 +:1002180001000000010000000100000001000000D2 +:1002280001000000010000000100000001000000C2 +:1002380001000000010000000100000001000000B2 +:040000058000000077 +:00000001FF diff --git a/runtime/mains/simple/Makefile b/runtime/mains/simple/Makefile new file mode 100644 index 00000000..58ea8c8c --- /dev/null +++ b/runtime/mains/simple/Makefile @@ -0,0 +1,26 @@ + +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_STR = ../../startup/vx_start.s +VX_INT = ../../intrinsics/vx_intrinsics.s +VX_IO = ../../io/vx_io.s ../../io/vx_io.c +VX_API = ../../vx_api/vx_api.c +VX_TEST = ../../tests/tests.c + +VX_MAIN = ./vx_simple_main.c + +all: HEX DUMP ELF + +DUMP: ELF + $(DMP) -D vx_simple_main.elf > vx_simple_main.dump + +HEX: ELF + $(CPY) -O ihex vx_simple_main.elf vx_simple_main.hex + +ELF: + $(COMP) $(CC_FLAGS) $(VX_STR) $(VX_INT) $(VX_IO) $(VX_API) $(VX_TEST) $(VX_MAIN) -o vx_simple_main.elf diff --git a/runtime/mains/simple/linker.ld b/runtime/mains/simple/linker.ld new file mode 100644 index 00000000..8fbf7896 --- /dev/null +++ b/runtime/mains/simple/linker.ld @@ -0,0 +1,48 @@ +/* ---- Original Script: /opt/riscv32i/riscv32-unknown-elf/lib/ldscripts/elf32lriscv.x ---- */ +/* Default linker script, for normal executables */ +/* Copyright (C) 2014-2017 Free Software Foundation, Inc. + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ +OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", + "elf32-littleriscv") +OUTPUT_ARCH(riscv) +ENTRY(_start) +SECTIONS +{ + . = 0x80000000; + .text : + { + *(.text) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(.stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } + .init : + { + KEEP (*(SORT_NONE(.init))) + } + .plt : { *(.plt) } + .iplt : { *(.iplt) } + .fini : + { + KEEP (*(SORT_NONE(.fini))) + } + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + PROVIDE (_edata = .); + PROVIDE (_end = .); + PROVIDE (__global_pointer$ = .); + + . = 0x81000000; + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + . = 0x82000000; + .comment : { *(.comment) } + +} diff --git a/runtime/mains/simple/vx_simple_main.c b/runtime/mains/simple/vx_simple_main.c new file mode 100644 index 00000000..d434f576 --- /dev/null +++ b/runtime/mains/simple/vx_simple_main.c @@ -0,0 +1,29 @@ + +#include "../../intrinsics/vx_intrinsics.h" +#include "../../io/vx_io.h" +#include "../../tests/tests.h" +#include "../../vx_api/vx_api.h" + +int main() +{ + // Main is called with all threads active of warp 0 + vx_tmc(1); + + vx_print_str("Simple Main1\n"); + + // TMC test + test_tmc(); + + // Control Divergence Test + vx_print_str("test_divergence\n"); + vx_tmc(4); + test_divergence(); + vx_tmc(1); + + + // Test wspawn + vx_print_str("test_spawn\n"); + test_wsapwn(); + + return 0; +} \ No newline at end of file diff --git a/runtime/mains/simple/vx_simple_main.dump b/runtime/mains/simple/vx_simple_main.dump new file mode 100644 index 00000000..a807768e --- /dev/null +++ b/runtime/mains/simple/vx_simple_main.dump @@ -0,0 +1,759 @@ + +vx_simple_main.elf: file format elf32-littleriscv + + +Disassembly of section .text: + +80000000 <_start>: +80000000: 00000597 auipc a1,0x0 +80000004: 02058593 addi a1,a1,32 # 80000020 +80000008: 00400513 li a0,4 +8000000c: 00b5106b 0xb5106b +80000010: 010000ef jal ra,80000020 +80000014: 64c000ef jal ra,80000660
+80000018: 00000513 li a0,0 +8000001c: 0005006b 0x5006b + +80000020 : +80000020: 00400513 li a0,4 +80000024: 0005006b 0x5006b +80000028: 021026f3 csrr a3,0x21 +8000002c: 01a69693 slli a3,a3,0x1a +80000030: 02002673 csrr a2,0x20 +80000034: 00a61593 slli a1,a2,0xa +80000038: 00261613 slli a2,a2,0x2 +8000003c: 6ffff137 lui sp,0x6ffff +80000040: 40b10133 sub sp,sp,a1 +80000044: 40d10133 sub sp,sp,a3 +80000048: 00c10133 add sp,sp,a2 +8000004c: 021026f3 csrr a3,0x21 +80000050: 00068663 beqz a3,8000005c +80000054: 00000513 li a0,0 +80000058: 0005006b 0x5006b + +8000005c : +8000005c: 00008067 ret + +80000060 : +80000060: 00b5106b 0xb5106b +80000064: 00008067 ret + +80000068 : +80000068: 0005006b 0x5006b +8000006c: 00008067 ret + +80000070 : +80000070: 00b5406b 0xb5406b +80000074: 00008067 ret + +80000078 : +80000078: 0005206b 0x5206b +8000007c: 00008067 ret + +80000080 : +80000080: 0000306b 0x306b +80000084: 00008067 ret + +80000088 : +80000088: 02102573 csrr a0,0x21 +8000008c: 00008067 ret + +80000090 : +80000090: 02002573 csrr a0,0x20 +80000094: 00008067 ret + +80000098 : +80000098: 00400513 li a0,4 +8000009c: 0005006b 0x5006b +800000a0: 021026f3 csrr a3,0x21 +800000a4: 00f69693 slli a3,a3,0xf +800000a8: 02002673 csrr a2,0x20 +800000ac: 00a61593 slli a1,a2,0xa +800000b0: 00261613 slli a2,a2,0x2 +800000b4: 6ffff137 lui sp,0x6ffff +800000b8: 40b10133 sub sp,sp,a1 +800000bc: 40d10133 sub sp,sp,a3 +800000c0: 00c10133 add sp,sp,a2 +800000c4: 021026f3 csrr a3,0x21 +800000c8: 00068663 beqz a3,800000d4 +800000cc: 00000513 li a0,0 +800000d0: 0005006b 0x5006b + +800000d4 : +800000d4: 00008067 ret + +800000d8 : +800000d8: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> +800000dc: 00112023 sw ra,0(sp) +800000e0: 00b12223 sw a1,4(sp) + +800000e4 : +800000e4: 00054583 lbu a1,0(a0) +800000e8: 00058863 beqz a1,800000f8 +800000ec: 01c000ef jal ra,80000108 +800000f0: 00150513 addi a0,a0,1 +800000f4: ff1ff06f j 800000e4 + +800000f8 : +800000f8: 00012083 lw ra,0(sp) +800000fc: 00412583 lw a1,4(sp) +80000100: 00c10113 addi sp,sp,12 +80000104: 00008067 ret + +80000108 : +80000108: 000102b7 lui t0,0x10 +8000010c: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> +80000110: 00008067 ret + +80000114 : +80000114: fe010113 addi sp,sp,-32 +80000118: 00112e23 sw ra,28(sp) +8000011c: 00812c23 sw s0,24(sp) +80000120: 02010413 addi s0,sp,32 +80000124: fea42623 sw a0,-20(s0) +80000128: 810007b7 lui a5,0x81000 +8000012c: fec42703 lw a4,-20(s0) +80000130: 00271713 slli a4,a4,0x2 +80000134: 12478793 addi a5,a5,292 # 81000124 +80000138: 00f707b3 add a5,a4,a5 +8000013c: 0007a783 lw a5,0(a5) +80000140: 00078513 mv a0,a5 +80000144: f95ff0ef jal ra,800000d8 +80000148: 00000013 nop +8000014c: 01c12083 lw ra,28(sp) +80000150: 01812403 lw s0,24(sp) +80000154: 02010113 addi sp,sp,32 +80000158: 00008067 ret + +8000015c : +8000015c: fe010113 addi sp,sp,-32 +80000160: 00112e23 sw ra,28(sp) +80000164: 00812c23 sw s0,24(sp) +80000168: 02010413 addi s0,sp,32 +8000016c: fea42623 sw a0,-20(s0) +80000170: feb42423 sw a1,-24(s0) +80000174: fec42503 lw a0,-20(s0) +80000178: f61ff0ef jal ra,800000d8 +8000017c: fe842503 lw a0,-24(s0) +80000180: f95ff0ef jal ra,80000114 +80000184: 810007b7 lui a5,0x81000 +80000188: 04078513 addi a0,a5,64 # 81000040 +8000018c: f4dff0ef jal ra,800000d8 +80000190: 00000013 nop +80000194: 01c12083 lw ra,28(sp) +80000198: 01812403 lw s0,24(sp) +8000019c: 02010113 addi sp,sp,32 +800001a0: 00008067 ret + +800001a4 : +800001a4: fe010113 addi sp,sp,-32 +800001a8: 00112e23 sw ra,28(sp) +800001ac: 00812c23 sw s0,24(sp) +800001b0: 02010413 addi s0,sp,32 +800001b4: 810007b7 lui a5,0x81000 +800001b8: 1ec7a783 lw a5,492(a5) # 810001ec +800001bc: 00078513 mv a0,a5 +800001c0: ea9ff0ef jal ra,80000068 +800001c4: 810007b7 lui a5,0x81000 +800001c8: 1e87a703 lw a4,488(a5) # 810001e8 +800001cc: 810007b7 lui a5,0x81000 +800001d0: 1e47a783 lw a5,484(a5) # 810001e4 +800001d4: 00078513 mv a0,a5 +800001d8: 000700e7 jalr a4 +800001dc: eadff0ef jal ra,80000088 +800001e0: fea42623 sw a0,-20(s0) +800001e4: fec42783 lw a5,-20(s0) +800001e8: 00078863 beqz a5,800001f8 +800001ec: 00000513 li a0,0 +800001f0: e79ff0ef jal ra,80000068 +800001f4: 00c0006f j 80000200 +800001f8: 00100513 li a0,1 +800001fc: e6dff0ef jal ra,80000068 +80000200: 00000013 nop +80000204: 01c12083 lw ra,28(sp) +80000208: 01812403 lw s0,24(sp) +8000020c: 02010113 addi sp,sp,32 +80000210: 00008067 ret + +80000214 : +80000214: fe010113 addi sp,sp,-32 +80000218: 00112e23 sw ra,28(sp) +8000021c: 00812c23 sw s0,24(sp) +80000220: 02010413 addi s0,sp,32 +80000224: fea42623 sw a0,-20(s0) +80000228: feb42423 sw a1,-24(s0) +8000022c: fec42223 sw a2,-28(s0) +80000230: fed42023 sw a3,-32(s0) +80000234: 810007b7 lui a5,0x81000 +80000238: fe442703 lw a4,-28(s0) +8000023c: 1ee7a423 sw a4,488(a5) # 810001e8 +80000240: 810007b7 lui a5,0x81000 +80000244: fe042703 lw a4,-32(s0) +80000248: 1ee7a223 sw a4,484(a5) # 810001e4 +8000024c: 810007b7 lui a5,0x81000 +80000250: fe842703 lw a4,-24(s0) +80000254: 1ee7a623 sw a4,492(a5) # 810001ec +80000258: 800007b7 lui a5,0x80000 +8000025c: 1a478793 addi a5,a5,420 # 800001a4 +80000260: 00078593 mv a1,a5 +80000264: fec42503 lw a0,-20(s0) +80000268: df9ff0ef jal ra,80000060 +8000026c: f39ff0ef jal ra,800001a4 +80000270: 00000013 nop +80000274: 01c12083 lw ra,28(sp) +80000278: 01812403 lw s0,24(sp) +8000027c: 02010113 addi sp,sp,32 +80000280: 00008067 ret + +80000284 : +80000284: fe010113 addi sp,sp,-32 +80000288: 00112e23 sw ra,28(sp) +8000028c: 00812c23 sw s0,24(sp) +80000290: 02010413 addi s0,sp,32 +80000294: 810007b7 lui a5,0x81000 +80000298: 08478513 addi a0,a5,132 # 81000084 +8000029c: e3dff0ef jal ra,800000d8 +800002a0: 00400513 li a0,4 +800002a4: dc5ff0ef jal ra,80000068 +800002a8: de9ff0ef jal ra,80000090 +800002ac: fea42623 sw a0,-20(s0) +800002b0: fec42703 lw a4,-20(s0) +800002b4: 810007b7 lui a5,0x81000 +800002b8: fec42683 lw a3,-20(s0) +800002bc: 00269693 slli a3,a3,0x2 +800002c0: 1f078793 addi a5,a5,496 # 810001f0 +800002c4: 00f687b3 add a5,a3,a5 +800002c8: 00e7a023 sw a4,0(a5) +800002cc: 00100513 li a0,1 +800002d0: d99ff0ef jal ra,80000068 +800002d4: 810007b7 lui a5,0x81000 +800002d8: 1f07a783 lw a5,496(a5) # 810001f0 +800002dc: 00078513 mv a0,a5 +800002e0: e35ff0ef jal ra,80000114 +800002e4: 810007b7 lui a5,0x81000 +800002e8: 09078513 addi a0,a5,144 # 81000090 +800002ec: dedff0ef jal ra,800000d8 +800002f0: 810007b7 lui a5,0x81000 +800002f4: 1f078793 addi a5,a5,496 # 810001f0 +800002f8: 0047a783 lw a5,4(a5) +800002fc: 00078513 mv a0,a5 +80000300: e15ff0ef jal ra,80000114 +80000304: 810007b7 lui a5,0x81000 +80000308: 09078513 addi a0,a5,144 # 81000090 +8000030c: dcdff0ef jal ra,800000d8 +80000310: 810007b7 lui a5,0x81000 +80000314: 1f078793 addi a5,a5,496 # 810001f0 +80000318: 0087a783 lw a5,8(a5) +8000031c: 00078513 mv a0,a5 +80000320: df5ff0ef jal ra,80000114 +80000324: 810007b7 lui a5,0x81000 +80000328: 09078513 addi a0,a5,144 # 81000090 +8000032c: dadff0ef jal ra,800000d8 +80000330: 810007b7 lui a5,0x81000 +80000334: 1f078793 addi a5,a5,496 # 810001f0 +80000338: 00c7a783 lw a5,12(a5) +8000033c: 00078513 mv a0,a5 +80000340: dd5ff0ef jal ra,80000114 +80000344: 810007b7 lui a5,0x81000 +80000348: 09078513 addi a0,a5,144 # 81000090 +8000034c: d8dff0ef jal ra,800000d8 +80000350: 00000013 nop +80000354: 01c12083 lw ra,28(sp) +80000358: 01812403 lw s0,24(sp) +8000035c: 02010113 addi sp,sp,32 +80000360: 00008067 ret + +80000364 : +80000364: fe010113 addi sp,sp,-32 +80000368: 00112e23 sw ra,28(sp) +8000036c: 00812c23 sw s0,24(sp) +80000370: 02010413 addi s0,sp,32 +80000374: d1dff0ef jal ra,80000090 +80000378: fea42623 sw a0,-20(s0) +8000037c: fec42783 lw a5,-20(s0) +80000380: 0027b793 sltiu a5,a5,2 +80000384: fef405a3 sb a5,-21(s0) +80000388: feb44783 lbu a5,-21(s0) +8000038c: 00078513 mv a0,a5 +80000390: ce9ff0ef jal ra,80000078 +80000394: feb44783 lbu a5,-21(s0) +80000398: 06078463 beqz a5,80000400 +8000039c: fec42783 lw a5,-20(s0) +800003a0: 0017b793 seqz a5,a5 +800003a4: fef40523 sb a5,-22(s0) +800003a8: fea44783 lbu a5,-22(s0) +800003ac: 00078513 mv a0,a5 +800003b0: cc9ff0ef jal ra,80000078 +800003b4: fea44783 lbu a5,-22(s0) +800003b8: 02078263 beqz a5,800003dc +800003bc: 810007b7 lui a5,0x81000 +800003c0: fec42703 lw a4,-20(s0) +800003c4: 00271713 slli a4,a4,0x2 +800003c8: 1f078793 addi a5,a5,496 # 810001f0 +800003cc: 00f707b3 add a5,a4,a5 +800003d0: 00a00713 li a4,10 +800003d4: 00e7a023 sw a4,0(a5) +800003d8: 0200006f j 800003f8 +800003dc: 810007b7 lui a5,0x81000 +800003e0: fec42703 lw a4,-20(s0) +800003e4: 00271713 slli a4,a4,0x2 +800003e8: 1f078793 addi a5,a5,496 # 810001f0 +800003ec: 00f707b3 add a5,a4,a5 +800003f0: 00b00713 li a4,11 +800003f4: 00e7a023 sw a4,0(a5) +800003f8: c89ff0ef jal ra,80000080 +800003fc: 0640006f j 80000460 +80000400: fec42783 lw a5,-20(s0) +80000404: 0037b793 sltiu a5,a5,3 +80000408: fef404a3 sb a5,-23(s0) +8000040c: fe944783 lbu a5,-23(s0) +80000410: 00078513 mv a0,a5 +80000414: c65ff0ef jal ra,80000078 +80000418: fe944783 lbu a5,-23(s0) +8000041c: 02078263 beqz a5,80000440 +80000420: 810007b7 lui a5,0x81000 +80000424: fec42703 lw a4,-20(s0) +80000428: 00271713 slli a4,a4,0x2 +8000042c: 1f078793 addi a5,a5,496 # 810001f0 +80000430: 00f707b3 add a5,a4,a5 +80000434: 00c00713 li a4,12 +80000438: 00e7a023 sw a4,0(a5) +8000043c: 0200006f j 8000045c +80000440: 810007b7 lui a5,0x81000 +80000444: fec42703 lw a4,-20(s0) +80000448: 00271713 slli a4,a4,0x2 +8000044c: 1f078793 addi a5,a5,496 # 810001f0 +80000450: 00f707b3 add a5,a4,a5 +80000454: 00d00713 li a4,13 +80000458: 00e7a023 sw a4,0(a5) +8000045c: c25ff0ef jal ra,80000080 +80000460: c21ff0ef jal ra,80000080 +80000464: 810007b7 lui a5,0x81000 +80000468: 1f07a783 lw a5,496(a5) # 810001f0 +8000046c: 00078513 mv a0,a5 +80000470: ca5ff0ef jal ra,80000114 +80000474: 810007b7 lui a5,0x81000 +80000478: 09078513 addi a0,a5,144 # 81000090 +8000047c: c5dff0ef jal ra,800000d8 +80000480: 810007b7 lui a5,0x81000 +80000484: 1f078793 addi a5,a5,496 # 810001f0 +80000488: 0047a783 lw a5,4(a5) +8000048c: 00078513 mv a0,a5 +80000490: c85ff0ef jal ra,80000114 +80000494: 810007b7 lui a5,0x81000 +80000498: 09078513 addi a0,a5,144 # 81000090 +8000049c: c3dff0ef jal ra,800000d8 +800004a0: 810007b7 lui a5,0x81000 +800004a4: 1f078793 addi a5,a5,496 # 810001f0 +800004a8: 0087a783 lw a5,8(a5) +800004ac: 00078513 mv a0,a5 +800004b0: c65ff0ef jal ra,80000114 +800004b4: 810007b7 lui a5,0x81000 +800004b8: 09078513 addi a0,a5,144 # 81000090 +800004bc: c1dff0ef jal ra,800000d8 +800004c0: 810007b7 lui a5,0x81000 +800004c4: 1f078793 addi a5,a5,496 # 810001f0 +800004c8: 00c7a783 lw a5,12(a5) +800004cc: 00078513 mv a0,a5 +800004d0: c45ff0ef jal ra,80000114 +800004d4: 810007b7 lui a5,0x81000 +800004d8: 09078513 addi a0,a5,144 # 81000090 +800004dc: bfdff0ef jal ra,800000d8 +800004e0: 00000013 nop +800004e4: 01c12083 lw ra,28(sp) +800004e8: 01812403 lw s0,24(sp) +800004ec: 02010113 addi sp,sp,32 +800004f0: 00008067 ret + +800004f4 : +800004f4: fe010113 addi sp,sp,-32 +800004f8: 00112e23 sw ra,28(sp) +800004fc: 00812c23 sw s0,24(sp) +80000500: 02010413 addi s0,sp,32 +80000504: b85ff0ef jal ra,80000088 +80000508: fea42623 sw a0,-20(s0) +8000050c: 810007b7 lui a5,0x81000 +80000510: fec42703 lw a4,-20(s0) +80000514: 00271713 slli a4,a4,0x2 +80000518: 20078793 addi a5,a5,512 # 81000200 +8000051c: 00f707b3 add a5,a4,a5 +80000520: fec42703 lw a4,-20(s0) +80000524: 00e7a023 sw a4,0(a5) +80000528: fec42783 lw a5,-20(s0) +8000052c: 00078663 beqz a5,80000538 +80000530: 00000513 li a0,0 +80000534: b35ff0ef jal ra,80000068 +80000538: 00000013 nop +8000053c: 01c12083 lw ra,28(sp) +80000540: 01812403 lw s0,24(sp) +80000544: 02010113 addi sp,sp,32 +80000548: 00008067 ret + +8000054c : +8000054c: fe010113 addi sp,sp,-32 +80000550: 00112e23 sw ra,28(sp) +80000554: 00812c23 sw s0,24(sp) +80000558: 02010413 addi s0,sp,32 +8000055c: 800007b7 lui a5,0x80000 +80000560: 4f478793 addi a5,a5,1268 # 800004f4 +80000564: fef42623 sw a5,-20(s0) +80000568: fec42583 lw a1,-20(s0) +8000056c: 00400513 li a0,4 +80000570: af1ff0ef jal ra,80000060 +80000574: f81ff0ef jal ra,800004f4 +80000578: 810007b7 lui a5,0x81000 +8000057c: 2007a783 lw a5,512(a5) # 81000200 +80000580: 00078513 mv a0,a5 +80000584: b91ff0ef jal ra,80000114 +80000588: 810007b7 lui a5,0x81000 +8000058c: 09078513 addi a0,a5,144 # 81000090 +80000590: b49ff0ef jal ra,800000d8 +80000594: 810007b7 lui a5,0x81000 +80000598: 20078793 addi a5,a5,512 # 81000200 +8000059c: 0047a783 lw a5,4(a5) +800005a0: 00078513 mv a0,a5 +800005a4: b71ff0ef jal ra,80000114 +800005a8: 810007b7 lui a5,0x81000 +800005ac: 09078513 addi a0,a5,144 # 81000090 +800005b0: b29ff0ef jal ra,800000d8 +800005b4: 810007b7 lui a5,0x81000 +800005b8: 20078793 addi a5,a5,512 # 81000200 +800005bc: 0087a783 lw a5,8(a5) +800005c0: 00078513 mv a0,a5 +800005c4: b51ff0ef jal ra,80000114 +800005c8: 810007b7 lui a5,0x81000 +800005cc: 09078513 addi a0,a5,144 # 81000090 +800005d0: b09ff0ef jal ra,800000d8 +800005d4: 810007b7 lui a5,0x81000 +800005d8: 20078793 addi a5,a5,512 # 81000200 +800005dc: 00c7a783 lw a5,12(a5) +800005e0: 00078513 mv a0,a5 +800005e4: b31ff0ef jal ra,80000114 +800005e8: 810007b7 lui a5,0x81000 +800005ec: 09078513 addi a0,a5,144 # 81000090 +800005f0: ae9ff0ef jal ra,800000d8 +800005f4: 00000013 nop +800005f8: 01c12083 lw ra,28(sp) +800005fc: 01812403 lw s0,24(sp) +80000600: 02010113 addi sp,sp,32 +80000604: 00008067 ret + +80000608 : +80000608: ff010113 addi sp,sp,-16 +8000060c: 00112623 sw ra,12(sp) +80000610: 00812423 sw s0,8(sp) +80000614: 01010413 addi s0,sp,16 +80000618: c6dff0ef jal ra,80000284 +8000061c: 810007b7 lui a5,0x81000 +80000620: 09478513 addi a0,a5,148 # 81000094 +80000624: ab5ff0ef jal ra,800000d8 +80000628: 00400513 li a0,4 +8000062c: a3dff0ef jal ra,80000068 +80000630: d35ff0ef jal ra,80000364 +80000634: 00100513 li a0,1 +80000638: a31ff0ef jal ra,80000068 +8000063c: 810007b7 lui a5,0x81000 +80000640: 0a878513 addi a0,a5,168 # 810000a8 +80000644: a95ff0ef jal ra,800000d8 +80000648: f05ff0ef jal ra,8000054c +8000064c: 00000013 nop +80000650: 00c12083 lw ra,12(sp) +80000654: 00812403 lw s0,8(sp) +80000658: 01010113 addi sp,sp,16 +8000065c: 00008067 ret + +80000660
: +80000660: ff010113 addi sp,sp,-16 +80000664: 00112623 sw ra,12(sp) +80000668: 00812423 sw s0,8(sp) +8000066c: 01010413 addi s0,sp,16 +80000670: 00100513 li a0,1 +80000674: 9f5ff0ef jal ra,80000068 +80000678: 810007b7 lui a5,0x81000 +8000067c: 0f478513 addi a0,a5,244 # 810000f4 +80000680: a59ff0ef jal ra,800000d8 +80000684: c01ff0ef jal ra,80000284 +80000688: 810007b7 lui a5,0x81000 +8000068c: 10478513 addi a0,a5,260 # 81000104 +80000690: a49ff0ef jal ra,800000d8 +80000694: 00400513 li a0,4 +80000698: 9d1ff0ef jal ra,80000068 +8000069c: cc9ff0ef jal ra,80000364 +800006a0: 00100513 li a0,1 +800006a4: 9c5ff0ef jal ra,80000068 +800006a8: 810007b7 lui a5,0x81000 +800006ac: 11878513 addi a0,a5,280 # 81000118 +800006b0: a29ff0ef jal ra,800000d8 +800006b4: e99ff0ef jal ra,8000054c +800006b8: 00000793 li a5,0 +800006bc: 00078513 mv a0,a5 +800006c0: 00c12083 lw ra,12(sp) +800006c4: 00812403 lw s0,8(sp) +800006c8: 01010113 addi sp,sp,16 +800006cc: 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: 000a c.slli zero,0x2 +81000042: 0000 unimp +81000044: 0030 addi a2,sp,8 +81000046: 0000 unimp +81000048: 0031 c.nop 12 +8100004a: 0000 unimp +8100004c: 0032 c.slli zero,0xc +8100004e: 0000 unimp +81000050: 00000033 add zero,zero,zero +81000054: 0034 addi a3,sp,8 +81000056: 0000 unimp +81000058: 0035 c.nop 13 +8100005a: 0000 unimp +8100005c: 0036 c.slli zero,0xd +8100005e: 0000 unimp +81000060: 00000037 lui zero,0x0 +81000064: 0038 addi a4,sp,8 +81000066: 0000 unimp +81000068: 0039 c.nop 14 +8100006a: 0000 unimp +8100006c: 0061 c.nop 24 +8100006e: 0000 unimp +81000070: 0062 c.slli zero,0x18 +81000072: 0000 unimp +81000074: 00000063 beqz zero,81000074 +81000078: 0064 addi s1,sp,12 +8100007a: 0000 unimp +8100007c: 0065 c.nop 25 +8100007e: 0000 unimp +81000080: 0066 c.slli zero,0x19 +81000082: 0000 unimp +81000084: 6574 flw fa3,76(a0) +81000086: 745f7473 csrrci s0,0x745,30 +8100008a: 636d lui t1,0x1b +8100008c: 000a c.slli zero,0x2 +8100008e: 0000 unimp +81000090: 000a c.slli zero,0x2 +81000092: 0000 unimp +81000094: 6574 flw fa3,76(a0) +81000096: 645f7473 csrrci s0,0x645,30 +8100009a: 7669 lui a2,0xffffa +8100009c: 7265 lui tp,0xffff9 +8100009e: 636e6567 0x636e6567 +810000a2: 0a65 addi s4,s4,25 +810000a4: 0000 unimp +810000a6: 0000 unimp +810000a8: 6574 flw fa3,76(a0) +810000aa: 735f7473 csrrci s0,0x735,30 +810000ae: 6170 flw fa2,68(a0) +810000b0: 000a6e77 0xa6e77 +810000b4: 0030 addi a2,sp,8 +810000b6: 0000 unimp +810000b8: 0031 c.nop 12 +810000ba: 0000 unimp +810000bc: 0032 c.slli zero,0xc +810000be: 0000 unimp +810000c0: 00000033 add zero,zero,zero +810000c4: 0034 addi a3,sp,8 +810000c6: 0000 unimp +810000c8: 0035 c.nop 13 +810000ca: 0000 unimp +810000cc: 0036 c.slli zero,0xd +810000ce: 0000 unimp +810000d0: 00000037 lui zero,0x0 +810000d4: 0038 addi a4,sp,8 +810000d6: 0000 unimp +810000d8: 0039 c.nop 14 +810000da: 0000 unimp +810000dc: 0061 c.nop 24 +810000de: 0000 unimp +810000e0: 0062 c.slli zero,0x18 +810000e2: 0000 unimp +810000e4: 00000063 beqz zero,810000e4 +810000e8: 0064 addi s1,sp,12 +810000ea: 0000 unimp +810000ec: 0065 c.nop 25 +810000ee: 0000 unimp +810000f0: 0066 c.slli zero,0x19 +810000f2: 0000 unimp +810000f4: 706d6953 0x706d6953 +810000f8: 656c flw fa1,76(a0) +810000fa: 4d20 lw s0,88(a0) +810000fc: 6961 lui s2,0x18 +810000fe: 316e fld ft2,248(sp) +81000100: 000a c.slli zero,0x2 +81000102: 0000 unimp +81000104: 6574 flw fa3,76(a0) +81000106: 645f7473 csrrci s0,0x645,30 +8100010a: 7669 lui a2,0xffffa +8100010c: 7265 lui tp,0xffff9 +8100010e: 636e6567 0x636e6567 +81000112: 0a65 addi s4,s4,25 +81000114: 0000 unimp +81000116: 0000 unimp +81000118: 6574 flw fa3,76(a0) +8100011a: 735f7473 csrrci s0,0x735,30 +8100011e: 6170 flw fa2,68(a0) +81000120: 000a6e77 0xa6e77 + +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: 0044 addi s1,sp,4 +81000166: 8100 0x8100 +81000168: 0048 addi a0,sp,4 +8100016a: 8100 0x8100 +8100016c: 004c addi a1,sp,4 +8100016e: 8100 0x8100 +81000170: 0050 addi a2,sp,4 +81000172: 8100 0x8100 +81000174: 0054 addi a3,sp,4 +81000176: 8100 0x8100 +81000178: 0058 addi a4,sp,4 +8100017a: 8100 0x8100 +8100017c: 005c addi a5,sp,4 +8100017e: 8100 0x8100 +81000180: 0060 addi s0,sp,12 +81000182: 8100 0x8100 +81000184: 0064 addi s1,sp,12 +81000186: 8100 0x8100 +81000188: 0068 addi a0,sp,12 +8100018a: 8100 0x8100 +8100018c: 006c addi a1,sp,12 +8100018e: 8100 0x8100 +81000190: 0070 addi a2,sp,12 +81000192: 8100 0x8100 +81000194: 0074 addi a3,sp,12 +81000196: 8100 0x8100 +81000198: 0078 addi a4,sp,12 +8100019a: 8100 0x8100 +8100019c: 007c addi a5,sp,12 +8100019e: 8100 0x8100 +810001a0: 0080 addi s0,sp,64 +810001a2: 8100 0x8100 + +810001a4 : +810001a4: 00b4 addi a3,sp,72 +810001a6: 8100 0x8100 +810001a8: 00b8 addi a4,sp,72 +810001aa: 8100 0x8100 +810001ac: 00bc addi a5,sp,72 +810001ae: 8100 0x8100 +810001b0: 00c0 addi s0,sp,68 +810001b2: 8100 0x8100 +810001b4: 00c4 addi s1,sp,68 +810001b6: 8100 0x8100 +810001b8: 00c8 addi a0,sp,68 +810001ba: 8100 0x8100 +810001bc: 00cc addi a1,sp,68 +810001be: 8100 0x8100 +810001c0: 00d0 addi a2,sp,68 +810001c2: 8100 0x8100 +810001c4: 00d4 addi a3,sp,68 +810001c6: 8100 0x8100 +810001c8: 00d8 addi a4,sp,68 +810001ca: 8100 0x8100 +810001cc: 00dc addi a5,sp,68 +810001ce: 8100 0x8100 +810001d0: 00e0 addi s0,sp,76 +810001d2: 8100 0x8100 +810001d4: 00e4 addi s1,sp,76 +810001d6: 8100 0x8100 +810001d8: 00e8 addi a0,sp,76 +810001da: 8100 0x8100 +810001dc: 00ec addi a1,sp,76 +810001de: 8100 0x8100 +810001e0: 00f0 addi a2,sp,76 +810001e2: 8100 0x8100 + +Disassembly of section .bss: + +810001e4 : +810001e4: 0000 unimp + ... + +810001e8 : +810001e8: 0000 unimp + ... + +810001ec : +810001ec: 0000 unimp + ... + +810001f0 : + ... + +81000200 : + ... + +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/runtime/mains/simple/vx_simple_main.elf b/runtime/mains/simple/vx_simple_main.elf new file mode 100644 index 00000000..b880da4b Binary files /dev/null and b/runtime/mains/simple/vx_simple_main.elf differ diff --git a/runtime/mains/simple/vx_simple_main.hex b/runtime/mains/simple/vx_simple_main.hex new file mode 100644 index 00000000..01859f42 --- /dev/null +++ b/runtime/mains/simple/vx_simple_main.hex @@ -0,0 +1,144 @@ +:0200000480007A +:100000009705000093850502130540006B10B500AD +:10001000EF000001EF00C064130500006B00050055 +:10002000130540006B000500F32610029396A6010D +:10003000732600029315A6001316260037F1FF6FF2 +:100040003301B1403301D1403301C100F326100226 +:1000500063860600130500006B0005006780000042 +:100060006B10B500678000006B0005006780000022 +:100070006B40B500678000006B20050067800000C2 +:100080006B3000006780000073251002678000005D +:100090007325000267800000130540006B00050017 +:1000A000F32610029396F600732600029315A6001D +:1000B0001316260037F1FF6F3301B1403301D140F1 +:1000C0003301C100F3261002638606001305000009 +:1000D0006B00050067800000130141FF2320110021 +:1000E0002322B1008345050063880500EF00C001AD +:1000F000130515006FF01FFF8320010083254100C9 +:100100001301C10067800000B702010023A0B20004 +:1001100067800000130101FE232E1100232C8100B3 +:10012000130401022326A4FEB70700810327C4FE9F +:100130001317270093874712B307F70083A7070019 +:1001400013850700EFF05FF9130000008320C10161 +:10015000032481011301010267800000130101FEE5 +:10016000232E1100232C8100130401022326A4FE58 +:100170002324B4FE0325C4FEEFF01FF6032584FEFE +:10018000EFF05FF9B707008113850704EFF0DFF4A4 +:10019000130000008320C101032481011301010227 +:1001A00067800000130101FE232E1100232C810023 +:1001B00013040102B707008183A7C71E1385070038 +:1001C000EFF09FEAB707008103A7871EB7070081FA +:1001D00083A7471E13850700E7000700EFF0DFEA5B +:1001E0002326A4FE8327C4FE6388070013050000AE +:1001F000EFF09FE76F00C00013051000EFF0DFE69F +:10020000130000008320C1010324810113010102B6 +:1002100067800000130101FE232E1100232C8100B2 +:10022000130401022326A4FE2324B4FE2322C4FEC9 +:100230002320D4FEB7070081032744FE23A4E71E32 +:10024000B7070081032704FE23A2E71EB70700813A +:10025000032784FE23A6E71EB70700809387471A6B +:10026000938507000325C4FEEFF09FDFEFF09FF3B7 +:10027000130000008320C101032481011301010246 +:1002800067800000130101FE232E1100232C810042 +:1002900013040102B707008113854708EFF0DFE37D +:1002A00013054000EFF05FDCEFF09FDE2326A4FE95 +:1002B0000327C4FEB70700818326C4FE9396260059 +:1002C0009387071FB387F60023A0E70013051000EC +:1002D000EFF09FD9B707008183A7071F1385070099 +:1002E000EFF05FE3B707008113850709EFF0DFDE6A +:1002F000B70700819387071F83A74700138507006F +:10030000EFF05FE1B707008113850709EFF0DFDC4D +:10031000B70700819387071F83A78700138507000E +:10032000EFF05FDFB707008113850709EFF0DFDA31 +:10033000B70700819387071F83A7C70013850700AE +:10034000EFF05FDDB707008113850709EFF0DFD815 +:10035000130000008320C101032481011301010265 +:1003600067800000130101FE232E1100232C810061 +:1003700013040102EFF0DFD12326A4FE8327C4FE7D +:1003800093B72700A305F4FE8347B4FE1385070047 +:10039000EFF09FCE8347B4FE638407068327C4FE35 +:1003A00093B717002305F4FE8347A4FE13850700C7 +:1003B000EFF09FCC8347A4FE63820702B70700815A +:1003C0000327C4FE131727009387071FB307F700FF +:1003D0001307A00023A0E7006F000002B707008109 +:1003E0000327C4FE131727009387071FB307F700DF +:1003F0001307B00023A0E700EFF09FC86F0040068E +:100400008327C4FE93B73700A304F4FE834794FE0A +:1004100013850700EFF05FC6834794FE63820702EF +:10042000B70700810327C4FE131727009387071F10 +:10043000B307F7001307C00023A0E7006F00000216 +:10044000B70700810327C4FE131727009387071FF0 +:10045000B307F7001307D00023A0E700EFF05FC257 +:10046000EFF01FC2B707008183A7071F138507009E +:10047000EFF05FCAB707008113850709EFF0DFC50A +:10048000B70700819387071F83A7470013850700DD +:10049000EFF05FC8B707008113850709EFF0DFC3EE +:1004A000B70700819387071F83A78700138507007D +:1004B000EFF05FC6B707008113850709EFF0DFC1D2 +:1004C000B70700819387071F83A7C700138507001D +:1004D000EFF05FC4B707008113850709EFF0DFBFB6 +:1004E000130000008320C1010324810113010102D4 +:1004F00067800000130101FE232E1100232C8100D0 +:1005000013040102EFF05FB82326A4FEB7070081B1 +:100510000327C4FE1317270093870720B307F700AC +:100520000327C4FE23A0E7008327C4FE63860700D9 +:1005300013050000EFF05FB3130000008320C1013A +:10054000032481011301010267800000130101FEF1 +:10055000232E1100232C810013040102B707008011 +:100560009387474F2326F4FE8325C4FE13054000DE +:10057000EFF01FAFEFF01FF8B707008183A7072048 +:1005800013850700EFF01FB9B7070081138507092E +:10059000EFF09FB4B70700819387072083A7470038 +:1005A00013850700EFF01FB7B70700811385070910 +:1005B000EFF09FB2B70700819387072083A78700DA +:1005C00013850700EFF01FB5B707008113850709F2 +:1005D000EFF09FB0B70700819387072083A7C7007C +:1005E00013850700EFF01FB3B707008113850709D4 +:1005F000EFF09FAE130000008320C10103248101AE +:100600001301010267800000130101FF232611007E +:100610002324810013040101EFF0DFC6B707008136 +:1006200013854709EFF05FAB13054000EFF0DFA340 +:10063000EFF05FD313051000EFF01FA3B7070081A1 +:100640001385870AEFF05FA9EFF05FF01300000059 +:100650008320C10003248100130101016780000091 +:10066000130101FF2326110023248100130401013B +:1006700013051000EFF05F9FB70700811385470F48 +:10068000EFF09FA5EFF01FC0B7070081138547105B +:10069000EFF09FA413054000EFF01F9DEFF09FCCFB +:1006A00013051000EFF05F9CB707008113858711D9 +:1006B000EFF09FA2EFF09FE993070000138507007A +:1006C0008320C10003248100130101016780000021 +:02000004810079 +:10000000300000003100000032000000330000002A +:10001000340000003500000036000000370000000A +:10002000380000003900000061000000620000009C +:10003000630000006400000065000000660000002E +:100040000A00000030000000310000003200000013 +:1000500033000000340000003500000036000000CE +:100060003700000038000000390000006100000087 +:1000700062000000630000006400000065000000F2 +:1000800066000000746573745F746D630A0000009D +:100090000A000000746573745F6469766572676551 +:1000A0006E63650A00000000746573745F737061AD +:1000B000776E0A00300000003100000032000000BE +:1000C000330000003400000035000000360000005E +:1000D0003700000038000000390000006100000017 +:1000E0006200000063000000640000006500000082 +:1000F0006600000053696D706C65204D61696E315A +:100100000A000000746573745F64697665726765E0 +:100110006E63650A00000000746573745F7370613C +:04012000776E0A00EC +:100124000000008104000081080000810C000081AF +:100134001000008114000081180000811C0000815F +:100144002000008124000081280000812C0000810F +:100154003000008134000081380000813C000081BF +:1001640044000081480000814C000081500000815F +:1001740054000081580000815C000081600000810F +:1001840064000081680000816C00008170000081BF +:1001940074000081780000817C000081800000816F +:1001A400B4000081B8000081BC000081C00000815F +:1001B400C4000081C8000081CC000081D00000810F +:1001C400D4000081D8000081DC000081E0000081BF +:1001D400E4000081E8000081EC000081F00000816F +:040000058000000077 +:00000001FF diff --git a/runtime/mains/simple/vx_tempelate.c b/runtime/mains/simple/vx_tempelate.c new file mode 100644 index 00000000..5689a513 --- /dev/null +++ b/runtime/mains/simple/vx_tempelate.c @@ -0,0 +1,42 @@ + + + +#include "io/io.h" // Printing functions +#include "intrinsics/instrinsics.h" // vx_threadID and vx_WarpID + +struct args +{ + void * data; +}; + + +void function(void * arg) +{ + struct args * real_arg = (struct args *) arg; + + unsigned tid = vx_threadID(); + unsigned wid = vx_WarpID(); + + __if(something) // Control divergent if + { + + } + __else + { + + } + __endif +} + +int main() +{ + + void * data = vx_loadfile("filename.txt"); // The raw char data will be returned by vx_loadfile + + struct args arg; + arg.data = data; + + vx_spawnWarps(numWarps, numThreads, function, &data); + + +} \ No newline at end of file diff --git a/runtime/vortex_runtime.dump b/runtime/vortex_runtime.dump index f875ed52..889811d6 100644 --- a/runtime/vortex_runtime.dump +++ b/runtime/vortex_runtime.dump @@ -114,7 +114,7 @@ Disassembly of section .text: 80000128: 810007b7 lui a5,0x81000 8000012c: fec42703 lw a4,-20(s0) 80000130: 00271713 slli a4,a4,0x2 -80000134: 0fc78793 addi a5,a5,252 # 810000fc +80000134: 0f478793 addi a5,a5,244 # 810000f4 80000138: 00f707b3 add a5,a4,a5 8000013c: 0007a783 lw a5,0(a5) 80000140: 00078513 mv a0,a5 @@ -137,7 +137,7 @@ Disassembly of section .text: 8000017c: fe842503 lw a0,-24(s0) 80000180: f95ff0ef jal ra,80000114 80000184: 810007b7 lui a5,0x81000 -80000188: 04078513 addi a0,a5,64 # 81000040 +80000188: 04078513 addi a0,a5,64 # 81000040 8000018c: f4dff0ef jal ra,800000d8 80000190: 00000013 nop 80000194: 01c12083 lw ra,28(sp) @@ -151,13 +151,13 @@ Disassembly of section .text: 800001ac: 00812c23 sw s0,24(sp) 800001b0: 02010413 addi s0,sp,32 800001b4: 810007b7 lui a5,0x81000 -800001b8: 2447a783 lw a5,580(a5) # 81000244 +800001b8: 23c7a783 lw a5,572(a5) # 8100023c 800001bc: 00078513 mv a0,a5 800001c0: ea9ff0ef jal ra,80000068 800001c4: 810007b7 lui a5,0x81000 -800001c8: 2407a703 lw a4,576(a5) # 81000240 +800001c8: 2387a703 lw a4,568(a5) # 81000238 800001cc: 810007b7 lui a5,0x81000 -800001d0: 23c7a783 lw a5,572(a5) # 8100023c +800001d0: 2347a783 lw a5,564(a5) # 81000234 800001d4: 00078513 mv a0,a5 800001d8: 000700e7 jalr a4 800001dc: eadff0ef jal ra,80000088 @@ -186,15 +186,15 @@ Disassembly of section .text: 80000230: fed42023 sw a3,-32(s0) 80000234: 810007b7 lui a5,0x81000 80000238: fe442703 lw a4,-28(s0) -8000023c: 24e7a023 sw a4,576(a5) # 81000240 +8000023c: 22e7ac23 sw a4,568(a5) # 81000238 80000240: 810007b7 lui a5,0x81000 80000244: fe042703 lw a4,-32(s0) -80000248: 22e7ae23 sw a4,572(a5) # 8100023c +80000248: 22e7aa23 sw a4,564(a5) # 81000234 8000024c: 810007b7 lui a5,0x81000 80000250: fe842703 lw a4,-24(s0) -80000254: 24e7a223 sw a4,580(a5) # 81000244 +80000254: 22e7ae23 sw a4,572(a5) # 8100023c 80000258: 800007b7 lui a5,0x80000 -8000025c: 1a478793 addi a5,a5,420 # 800001a4 +8000025c: 1a478793 addi a5,a5,420 # 800001a4 80000260: 00078593 mv a1,a5 80000264: fec42503 lw a0,-20(s0) 80000268: df9ff0ef jal ra,80000060 @@ -211,7 +211,7 @@ Disassembly of section .text: 8000028c: 00812c23 sw s0,24(sp) 80000290: 02010413 addi s0,sp,32 80000294: 810007b7 lui a5,0x81000 -80000298: 08478513 addi a0,a5,132 # 81000084 +80000298: 08478513 addi a0,a5,132 # 81000084 8000029c: e3dff0ef jal ra,800000d8 800002a0: 00400513 li a0,4 800002a4: dc5ff0ef jal ra,80000068 @@ -221,41 +221,41 @@ Disassembly of section .text: 800002b4: 810007b7 lui a5,0x81000 800002b8: fec42683 lw a3,-20(s0) 800002bc: 00269693 slli a3,a3,0x2 -800002c0: 24878793 addi a5,a5,584 # 81000248 +800002c0: 24078793 addi a5,a5,576 # 81000240 800002c4: 00f687b3 add a5,a3,a5 800002c8: 00e7a023 sw a4,0(a5) 800002cc: 00100513 li a0,1 800002d0: d99ff0ef jal ra,80000068 800002d4: 810007b7 lui a5,0x81000 -800002d8: 2487a783 lw a5,584(a5) # 81000248 +800002d8: 2407a783 lw a5,576(a5) # 81000240 800002dc: 00078513 mv a0,a5 800002e0: e35ff0ef jal ra,80000114 800002e4: 810007b7 lui a5,0x81000 -800002e8: 09078513 addi a0,a5,144 # 81000090 +800002e8: 09078513 addi a0,a5,144 # 81000090 800002ec: dedff0ef jal ra,800000d8 800002f0: 810007b7 lui a5,0x81000 -800002f4: 24878793 addi a5,a5,584 # 81000248 +800002f4: 24078793 addi a5,a5,576 # 81000240 800002f8: 0047a783 lw a5,4(a5) 800002fc: 00078513 mv a0,a5 80000300: e15ff0ef jal ra,80000114 80000304: 810007b7 lui a5,0x81000 -80000308: 09078513 addi a0,a5,144 # 81000090 +80000308: 09078513 addi a0,a5,144 # 81000090 8000030c: dcdff0ef jal ra,800000d8 80000310: 810007b7 lui a5,0x81000 -80000314: 24878793 addi a5,a5,584 # 81000248 +80000314: 24078793 addi a5,a5,576 # 81000240 80000318: 0087a783 lw a5,8(a5) 8000031c: 00078513 mv a0,a5 80000320: df5ff0ef jal ra,80000114 80000324: 810007b7 lui a5,0x81000 -80000328: 09078513 addi a0,a5,144 # 81000090 +80000328: 09078513 addi a0,a5,144 # 81000090 8000032c: dadff0ef jal ra,800000d8 80000330: 810007b7 lui a5,0x81000 -80000334: 24878793 addi a5,a5,584 # 81000248 +80000334: 24078793 addi a5,a5,576 # 81000240 80000338: 00c7a783 lw a5,12(a5) 8000033c: 00078513 mv a0,a5 80000340: dd5ff0ef jal ra,80000114 80000344: 810007b7 lui a5,0x81000 -80000348: 09078513 addi a0,a5,144 # 81000090 +80000348: 09078513 addi a0,a5,144 # 81000090 8000034c: d8dff0ef jal ra,800000d8 80000350: 00000013 nop 80000354: 01c12083 lw ra,28(sp) @@ -289,7 +289,7 @@ Disassembly of section .text: 800003bc: 810007b7 lui a5,0x81000 800003c0: fec42703 lw a4,-20(s0) 800003c4: 00271713 slli a4,a4,0x2 -800003c8: 24878793 addi a5,a5,584 # 81000248 +800003c8: 24078793 addi a5,a5,576 # 81000240 800003cc: 00f707b3 add a5,a4,a5 800003d0: 00a00713 li a4,10 800003d4: 00e7a023 sw a4,0(a5) @@ -297,7 +297,7 @@ Disassembly of section .text: 800003dc: 810007b7 lui a5,0x81000 800003e0: fec42703 lw a4,-20(s0) 800003e4: 00271713 slli a4,a4,0x2 -800003e8: 24878793 addi a5,a5,584 # 81000248 +800003e8: 24078793 addi a5,a5,576 # 81000240 800003ec: 00f707b3 add a5,a4,a5 800003f0: 00b00713 li a4,11 800003f4: 00e7a023 sw a4,0(a5) @@ -314,7 +314,7 @@ Disassembly of section .text: 80000420: 810007b7 lui a5,0x81000 80000424: fec42703 lw a4,-20(s0) 80000428: 00271713 slli a4,a4,0x2 -8000042c: 24878793 addi a5,a5,584 # 81000248 +8000042c: 24078793 addi a5,a5,576 # 81000240 80000430: 00f707b3 add a5,a4,a5 80000434: 00c00713 li a4,12 80000438: 00e7a023 sw a4,0(a5) @@ -322,42 +322,42 @@ Disassembly of section .text: 80000440: 810007b7 lui a5,0x81000 80000444: fec42703 lw a4,-20(s0) 80000448: 00271713 slli a4,a4,0x2 -8000044c: 24878793 addi a5,a5,584 # 81000248 +8000044c: 24078793 addi a5,a5,576 # 81000240 80000450: 00f707b3 add a5,a4,a5 80000454: 00d00713 li a4,13 80000458: 00e7a023 sw a4,0(a5) 8000045c: c25ff0ef jal ra,80000080 80000460: c21ff0ef jal ra,80000080 80000464: 810007b7 lui a5,0x81000 -80000468: 2487a783 lw a5,584(a5) # 81000248 +80000468: 2407a783 lw a5,576(a5) # 81000240 8000046c: 00078513 mv a0,a5 80000470: ca5ff0ef jal ra,80000114 80000474: 810007b7 lui a5,0x81000 -80000478: 09078513 addi a0,a5,144 # 81000090 +80000478: 09078513 addi a0,a5,144 # 81000090 8000047c: c5dff0ef jal ra,800000d8 80000480: 810007b7 lui a5,0x81000 -80000484: 24878793 addi a5,a5,584 # 81000248 +80000484: 24078793 addi a5,a5,576 # 81000240 80000488: 0047a783 lw a5,4(a5) 8000048c: 00078513 mv a0,a5 80000490: c85ff0ef jal ra,80000114 80000494: 810007b7 lui a5,0x81000 -80000498: 09078513 addi a0,a5,144 # 81000090 +80000498: 09078513 addi a0,a5,144 # 81000090 8000049c: c3dff0ef jal ra,800000d8 800004a0: 810007b7 lui a5,0x81000 -800004a4: 24878793 addi a5,a5,584 # 81000248 +800004a4: 24078793 addi a5,a5,576 # 81000240 800004a8: 0087a783 lw a5,8(a5) 800004ac: 00078513 mv a0,a5 800004b0: c65ff0ef jal ra,80000114 800004b4: 810007b7 lui a5,0x81000 -800004b8: 09078513 addi a0,a5,144 # 81000090 +800004b8: 09078513 addi a0,a5,144 # 81000090 800004bc: c1dff0ef jal ra,800000d8 800004c0: 810007b7 lui a5,0x81000 -800004c4: 24878793 addi a5,a5,584 # 81000248 +800004c4: 24078793 addi a5,a5,576 # 81000240 800004c8: 00c7a783 lw a5,12(a5) 800004cc: 00078513 mv a0,a5 800004d0: c45ff0ef jal ra,80000114 800004d4: 810007b7 lui a5,0x81000 -800004d8: 09078513 addi a0,a5,144 # 81000090 +800004d8: 09078513 addi a0,a5,144 # 81000090 800004dc: bfdff0ef jal ra,800000d8 800004e0: 00000013 nop 800004e4: 01c12083 lw ra,28(sp) @@ -375,7 +375,7 @@ Disassembly of section .text: 8000050c: 810007b7 lui a5,0x81000 80000510: fec42703 lw a4,-20(s0) 80000514: 00271713 slli a4,a4,0x2 -80000518: 25878793 addi a5,a5,600 # 81000258 +80000518: 25078793 addi a5,a5,592 # 81000250 8000051c: 00f707b3 add a5,a4,a5 80000520: fec42703 lw a4,-20(s0) 80000524: 00e7a023 sw a4,0(a5) @@ -395,42 +395,42 @@ Disassembly of section .text: 80000554: 00812c23 sw s0,24(sp) 80000558: 02010413 addi s0,sp,32 8000055c: 800007b7 lui a5,0x80000 -80000560: 4f478793 addi a5,a5,1268 # 800004f4 +80000560: 4f478793 addi a5,a5,1268 # 800004f4 80000564: fef42623 sw a5,-20(s0) 80000568: fec42583 lw a1,-20(s0) 8000056c: 00400513 li a0,4 80000570: af1ff0ef jal ra,80000060 80000574: f81ff0ef jal ra,800004f4 80000578: 810007b7 lui a5,0x81000 -8000057c: 2587a783 lw a5,600(a5) # 81000258 +8000057c: 2507a783 lw a5,592(a5) # 81000250 80000580: 00078513 mv a0,a5 80000584: b91ff0ef jal ra,80000114 80000588: 810007b7 lui a5,0x81000 -8000058c: 09078513 addi a0,a5,144 # 81000090 +8000058c: 09078513 addi a0,a5,144 # 81000090 80000590: b49ff0ef jal ra,800000d8 80000594: 810007b7 lui a5,0x81000 -80000598: 25878793 addi a5,a5,600 # 81000258 +80000598: 25078793 addi a5,a5,592 # 81000250 8000059c: 0047a783 lw a5,4(a5) 800005a0: 00078513 mv a0,a5 800005a4: b71ff0ef jal ra,80000114 800005a8: 810007b7 lui a5,0x81000 -800005ac: 09078513 addi a0,a5,144 # 81000090 +800005ac: 09078513 addi a0,a5,144 # 81000090 800005b0: b29ff0ef jal ra,800000d8 800005b4: 810007b7 lui a5,0x81000 -800005b8: 25878793 addi a5,a5,600 # 81000258 +800005b8: 25078793 addi a5,a5,592 # 81000250 800005bc: 0087a783 lw a5,8(a5) 800005c0: 00078513 mv a0,a5 800005c4: b51ff0ef jal ra,80000114 800005c8: 810007b7 lui a5,0x81000 -800005cc: 09078513 addi a0,a5,144 # 81000090 +800005cc: 09078513 addi a0,a5,144 # 81000090 800005d0: b09ff0ef jal ra,800000d8 800005d4: 810007b7 lui a5,0x81000 -800005d8: 25878793 addi a5,a5,600 # 81000258 +800005d8: 25078793 addi a5,a5,592 # 81000250 800005dc: 00c7a783 lw a5,12(a5) 800005e0: 00078513 mv a0,a5 800005e4: b31ff0ef jal ra,80000114 800005e8: 810007b7 lui a5,0x81000 -800005ec: 09078513 addi a0,a5,144 # 81000090 +800005ec: 09078513 addi a0,a5,144 # 81000090 800005f0: ae9ff0ef jal ra,800000d8 800005f4: 00000013 nop 800005f8: 01c12083 lw ra,28(sp) @@ -445,7 +445,7 @@ Disassembly of section .text: 80000614: 01010413 addi s0,sp,16 80000618: c6dff0ef jal ra,80000284 8000061c: 810007b7 lui a5,0x81000 -80000620: 09478513 addi a0,a5,148 # 81000094 +80000620: 09478513 addi a0,a5,148 # 81000094 80000624: ab5ff0ef jal ra,800000d8 80000628: 00400513 li a0,4 8000062c: a3dff0ef jal ra,80000068 @@ -453,7 +453,7 @@ Disassembly of section .text: 80000634: 00100513 li a0,1 80000638: a31ff0ef jal ra,80000068 8000063c: 810007b7 lui a5,0x81000 -80000640: 0a878513 addi a0,a5,168 # 810000a8 +80000640: 0a878513 addi a0,a5,168 # 810000a8 80000644: a95ff0ef jal ra,800000d8 80000648: f05ff0ef jal ra,8000054c 8000064c: 00000013 nop @@ -528,79 +528,19 @@ Disassembly of section .text: 80000758: 00008067 ret 8000075c
: -8000075c: fc010113 addi sp,sp,-64 -80000760: 02112e23 sw ra,60(sp) -80000764: 02812c23 sw s0,56(sp) -80000768: 04010413 addi s0,sp,64 +8000075c: ff010113 addi sp,sp,-16 +80000760: 00112623 sw ra,12(sp) +80000764: 00812423 sw s0,8(sp) +80000768: 01010413 addi s0,sp,16 8000076c: 00100513 li a0,1 80000770: 8f9ff0ef jal ra,80000068 -80000774: 810007b7 lui a5,0x81000 -80000778: 1bc78793 addi a5,a5,444 # 810001bc -8000077c: fcf42423 sw a5,-56(s0) -80000780: 810007b7 lui a5,0x81000 -80000784: 1fc78793 addi a5,a5,508 # 810001fc -80000788: fcf42623 sw a5,-52(s0) -8000078c: 810007b7 lui a5,0x81000 -80000790: 26878793 addi a5,a5,616 # 81000268 -80000794: fcf42823 sw a5,-48(s0) -80000798: 00400793 li a5,4 -8000079c: fcf42a23 sw a5,-44(s0) -800007a0: 00400793 li a5,4 -800007a4: fcf42c23 sw a5,-40(s0) -800007a8: 00400793 li a5,4 -800007ac: fef42223 sw a5,-28(s0) -800007b0: 00400793 li a5,4 -800007b4: fef42023 sw a5,-32(s0) -800007b8: fe442703 lw a4,-28(s0) -800007bc: fe042583 lw a1,-32(s0) -800007c0: fc840793 addi a5,s0,-56 -800007c4: 00078693 mv a3,a5 -800007c8: 800007b7 lui a5,0x80000 -800007cc: 66078613 addi a2,a5,1632 # 80000660 -800007d0: 00070513 mv a0,a4 -800007d4: a41ff0ef jal ra,80000214 -800007d8: fe042623 sw zero,-20(s0) -800007dc: 0800006f j 8000085c -800007e0: fe042423 sw zero,-24(s0) -800007e4: 0540006f j 80000838 -800007e8: fd442703 lw a4,-44(s0) -800007ec: fec42783 lw a5,-20(s0) -800007f0: 02f70733 mul a4,a4,a5 -800007f4: fe842783 lw a5,-24(s0) -800007f8: 00f707b3 add a5,a4,a5 -800007fc: fcf42e23 sw a5,-36(s0) -80000800: 810007b7 lui a5,0x81000 -80000804: fdc42703 lw a4,-36(s0) -80000808: 00271713 slli a4,a4,0x2 -8000080c: 26878793 addi a5,a5,616 # 81000268 -80000810: 00f707b3 add a5,a4,a5 -80000814: 0007a783 lw a5,0(a5) -80000818: 00078513 mv a0,a5 -8000081c: 8f9ff0ef jal ra,80000114 -80000820: 810007b7 lui a5,0x81000 -80000824: 0f478513 addi a0,a5,244 # 810000f4 -80000828: 8b1ff0ef jal ra,800000d8 -8000082c: fe842783 lw a5,-24(s0) -80000830: 00178793 addi a5,a5,1 -80000834: fef42423 sw a5,-24(s0) -80000838: fd442703 lw a4,-44(s0) -8000083c: fe842783 lw a5,-24(s0) -80000840: fae7e4e3 bltu a5,a4,800007e8 -80000844: 810007b7 lui a5,0x81000 -80000848: 0f878513 addi a0,a5,248 # 810000f8 -8000084c: 88dff0ef jal ra,800000d8 -80000850: fec42783 lw a5,-20(s0) -80000854: 00178793 addi a5,a5,1 -80000858: fef42623 sw a5,-20(s0) -8000085c: fd842703 lw a4,-40(s0) -80000860: fec42783 lw a5,-20(s0) -80000864: f6e7eee3 bltu a5,a4,800007e0 -80000868: 00000793 li a5,0 -8000086c: 00078513 mv a0,a5 -80000870: 03c12083 lw ra,60(sp) -80000874: 03812403 lw s0,56(sp) -80000878: 04010113 addi sp,sp,64 -8000087c: 00008067 ret +80000774: e95ff0ef jal ra,80000608 +80000778: 00000793 li a5,0 +8000077c: 00078513 mv a0,a5 +80000780: 00c12083 lw ra,12(sp) +80000784: 00812403 lw s0,8(sp) +80000788: 01010113 addi sp,sp,16 +8000078c: 00008067 ret Disassembly of section .rodata: @@ -712,146 +652,146 @@ Disassembly of section .rodata: 810000ec: 0065 c.nop 25 810000ee: 0000 unimp 810000f0: 0066 c.slli zero,0x19 -810000f2: 0000 unimp -810000f4: 0020 addi s0,sp,8 -810000f6: 0000 unimp -810000f8: 000a c.slli zero,0x2 Disassembly of section .data: -810000fc : -810000fc: 0000 unimp +810000f4 : +810000f4: 0000 unimp +810000f6: 8100 0x8100 +810000f8: 0004 0x4 +810000fa: 8100 0x8100 +810000fc: 0008 0x8 810000fe: 8100 0x8100 -81000100: 0004 0x4 +81000100: 000c 0xc 81000102: 8100 0x8100 -81000104: 0008 0x8 +81000104: 0010 0x10 81000106: 8100 0x8100 -81000108: 000c 0xc +81000108: 0014 0x14 8100010a: 8100 0x8100 -8100010c: 0010 0x10 +8100010c: 0018 0x18 8100010e: 8100 0x8100 -81000110: 0014 0x14 +81000110: 001c 0x1c 81000112: 8100 0x8100 -81000114: 0018 0x18 +81000114: 0020 addi s0,sp,8 81000116: 8100 0x8100 -81000118: 001c 0x1c +81000118: 0024 addi s1,sp,8 8100011a: 8100 0x8100 -8100011c: 0020 addi s0,sp,8 +8100011c: 0028 addi a0,sp,8 8100011e: 8100 0x8100 -81000120: 0024 addi s1,sp,8 +81000120: 002c addi a1,sp,8 81000122: 8100 0x8100 -81000124: 0028 addi a0,sp,8 +81000124: 0030 addi a2,sp,8 81000126: 8100 0x8100 -81000128: 002c addi a1,sp,8 +81000128: 0034 addi a3,sp,8 8100012a: 8100 0x8100 -8100012c: 0030 addi a2,sp,8 +8100012c: 0038 addi a4,sp,8 8100012e: 8100 0x8100 -81000130: 0034 addi a3,sp,8 +81000130: 003c addi a5,sp,8 81000132: 8100 0x8100 -81000134: 0038 addi a4,sp,8 + +81000134 : +81000134: 0044 addi s1,sp,4 81000136: 8100 0x8100 -81000138: 003c addi a5,sp,8 +81000138: 0048 addi a0,sp,4 8100013a: 8100 0x8100 - -8100013c : -8100013c: 0044 addi s1,sp,4 +8100013c: 004c addi a1,sp,4 8100013e: 8100 0x8100 -81000140: 0048 addi a0,sp,4 +81000140: 0050 addi a2,sp,4 81000142: 8100 0x8100 -81000144: 004c addi a1,sp,4 +81000144: 0054 addi a3,sp,4 81000146: 8100 0x8100 -81000148: 0050 addi a2,sp,4 +81000148: 0058 addi a4,sp,4 8100014a: 8100 0x8100 -8100014c: 0054 addi a3,sp,4 +8100014c: 005c addi a5,sp,4 8100014e: 8100 0x8100 -81000150: 0058 addi a4,sp,4 +81000150: 0060 addi s0,sp,12 81000152: 8100 0x8100 -81000154: 005c addi a5,sp,4 +81000154: 0064 addi s1,sp,12 81000156: 8100 0x8100 -81000158: 0060 addi s0,sp,12 +81000158: 0068 addi a0,sp,12 8100015a: 8100 0x8100 -8100015c: 0064 addi s1,sp,12 +8100015c: 006c addi a1,sp,12 8100015e: 8100 0x8100 -81000160: 0068 addi a0,sp,12 +81000160: 0070 addi a2,sp,12 81000162: 8100 0x8100 -81000164: 006c addi a1,sp,12 +81000164: 0074 addi a3,sp,12 81000166: 8100 0x8100 -81000168: 0070 addi a2,sp,12 +81000168: 0078 addi a4,sp,12 8100016a: 8100 0x8100 -8100016c: 0074 addi a3,sp,12 +8100016c: 007c addi a5,sp,12 8100016e: 8100 0x8100 -81000170: 0078 addi a4,sp,12 +81000170: 0080 addi s0,sp,64 81000172: 8100 0x8100 -81000174: 007c addi a5,sp,12 + +81000174 : +81000174: 00b4 addi a3,sp,72 81000176: 8100 0x8100 -81000178: 0080 addi s0,sp,64 +81000178: 00b8 addi a4,sp,72 8100017a: 8100 0x8100 - -8100017c : -8100017c: 00b4 addi a3,sp,72 +8100017c: 00bc addi a5,sp,72 8100017e: 8100 0x8100 -81000180: 00b8 addi a4,sp,72 +81000180: 00c0 addi s0,sp,68 81000182: 8100 0x8100 -81000184: 00bc addi a5,sp,72 +81000184: 00c4 addi s1,sp,68 81000186: 8100 0x8100 -81000188: 00c0 addi s0,sp,68 +81000188: 00c8 addi a0,sp,68 8100018a: 8100 0x8100 -8100018c: 00c4 addi s1,sp,68 +8100018c: 00cc addi a1,sp,68 8100018e: 8100 0x8100 -81000190: 00c8 addi a0,sp,68 +81000190: 00d0 addi a2,sp,68 81000192: 8100 0x8100 -81000194: 00cc addi a1,sp,68 +81000194: 00d4 addi a3,sp,68 81000196: 8100 0x8100 -81000198: 00d0 addi a2,sp,68 +81000198: 00d8 addi a4,sp,68 8100019a: 8100 0x8100 -8100019c: 00d4 addi a3,sp,68 +8100019c: 00dc addi a5,sp,68 8100019e: 8100 0x8100 -810001a0: 00d8 addi a4,sp,68 +810001a0: 00e0 addi s0,sp,76 810001a2: 8100 0x8100 -810001a4: 00dc addi a5,sp,68 +810001a4: 00e4 addi s1,sp,76 810001a6: 8100 0x8100 -810001a8: 00e0 addi s0,sp,76 +810001a8: 00e8 addi a0,sp,76 810001aa: 8100 0x8100 -810001ac: 00e4 addi s1,sp,76 +810001ac: 00ec addi a1,sp,76 810001ae: 8100 0x8100 -810001b0: 00e8 addi a0,sp,76 +810001b0: 00f0 addi a2,sp,76 810001b2: 8100 0x8100 -810001b4: 00ec addi a1,sp,76 -810001b6: 8100 0x8100 -810001b8: 00f0 addi a2,sp,76 -810001ba: 8100 0x8100 -810001bc : +810001b4 : +810001b4: 0005 c.nop 1 +810001b6: 0000 unimp +810001b8: 0005 c.nop 1 +810001ba: 0000 unimp 810001bc: 0005 c.nop 1 810001be: 0000 unimp 810001c0: 0005 c.nop 1 810001c2: 0000 unimp -810001c4: 0005 c.nop 1 +810001c4: 0006 c.slli zero,0x1 810001c6: 0000 unimp -810001c8: 0005 c.nop 1 +810001c8: 0006 c.slli zero,0x1 810001ca: 0000 unimp 810001cc: 0006 c.slli zero,0x1 810001ce: 0000 unimp 810001d0: 0006 c.slli zero,0x1 810001d2: 0000 unimp -810001d4: 0006 c.slli zero,0x1 -810001d6: 0000 unimp -810001d8: 0006 c.slli zero,0x1 -810001da: 0000 unimp +810001d4: 00000007 0x7 +810001d8: 00000007 0x7 810001dc: 00000007 0x7 810001e0: 00000007 0x7 -810001e4: 00000007 0x7 -810001e8: 00000007 0x7 +810001e4: 0008 0x8 +810001e6: 0000 unimp +810001e8: 0008 0x8 +810001ea: 0000 unimp 810001ec: 0008 0x8 810001ee: 0000 unimp 810001f0: 0008 0x8 -810001f2: 0000 unimp -810001f4: 0008 0x8 -810001f6: 0000 unimp -810001f8: 0008 0x8 ... -810001fc : +810001f4 : +810001f4: 0001 nop +810001f6: 0000 unimp +810001f8: 0001 nop +810001fa: 0000 unimp 810001fc: 0001 nop 810001fe: 0000 unimp 81000200: 0001 nop @@ -879,33 +819,29 @@ Disassembly of section .data: 8100022c: 0001 nop 8100022e: 0000 unimp 81000230: 0001 nop -81000232: 0000 unimp -81000234: 0001 nop -81000236: 0000 unimp -81000238: 0001 nop ... Disassembly of section .bss: -8100023c : +81000234 : +81000234: 0000 unimp + ... + +81000238 : +81000238: 0000 unimp + ... + +8100023c : 8100023c: 0000 unimp ... -81000240 : -81000240: 0000 unimp +81000240 : ... -81000244 : -81000244: 0000 unimp +81000250 : ... -81000248 : - ... - -81000258 : - ... - -81000268 : +81000260 : ... Disassembly of section .comment: diff --git a/runtime/vortex_runtime.elf b/runtime/vortex_runtime.elf index 5147bd11..4a0b5707 100644 Binary files a/runtime/vortex_runtime.elf and b/runtime/vortex_runtime.elf differ diff --git a/runtime/vortex_runtime.hex b/runtime/vortex_runtime.hex index 5af1b045..efb95c14 100644 --- a/runtime/vortex_runtime.hex +++ b/runtime/vortex_runtime.hex @@ -18,7 +18,7 @@ :100100001301C10067800000B702010023A0B20004 :1001100067800000130101FE232E1100232C8100B3 :10012000130401022326A4FEB70700810327C4FE9F -:10013000131727009387C70FB307F70083A707009C +:10013000131727009387470FB307F70083A707001C :1001400013850700EFF05FF9130000008320C10161 :10015000032481011301010267800000130101FEE5 :10016000232E1100232C8100130401022326A4FE58 @@ -26,31 +26,31 @@ :10018000EFF05FF9B707008113850704EFF0DFF4A4 :10019000130000008320C101032481011301010227 :1001A00067800000130101FE232E1100232C810023 -:1001B00013040102B707008183A7472413850700B2 -:1001C000EFF09FEAB707008103A70724B707008174 -:1001D00083A7C72313850700E7000700EFF0DFEAD6 +:1001B00013040102B707008183A7C7231385070033 +:1001C000EFF09FEAB707008103A78723B7070081F5 +:1001D00083A7472313850700E7000700EFF0DFEA56 :1001E0002326A4FE8327C4FE6388070013050000AE :1001F000EFF09FE76F00C00013051000EFF0DFE69F :10020000130000008320C1010324810113010102B6 :1002100067800000130101FE232E1100232C8100B2 :10022000130401022326A4FE2324B4FE2322C4FEC9 -:100230002320D4FEB7070081032744FE23A0E72430 -:10024000B7070081032704FE23AEE722B70700812A -:10025000032784FE23A2E724B70700809387471A69 +:100230002320D4FEB7070081032744FE23ACE72226 +:10024000B7070081032704FE23AAE722B70700812E +:10025000032784FE23AEE722B70700809387471A5F :10026000938507000325C4FEEFF09FDFEFF09FF3B7 :10027000130000008320C101032481011301010246 :1002800067800000130101FE232E1100232C810042 :1002900013040102B707008113854708EFF0DFE37D :1002A00013054000EFF05FDCEFF09FDE2326A4FE95 :1002B0000327C4FEB70700818326C4FE9396260059 -:1002C00093878724B387F60023A0E7001305100067 -:1002D000EFF09FD9B707008183A787241385070014 +:1002C00093870724B387F60023A0E70013051000E7 +:1002D000EFF09FD9B707008183A707241385070094 :1002E000EFF05FE3B707008113850709EFF0DFDE6A -:1002F000B70700819387872483A7470013850700EA +:1002F000B70700819387072483A74700138507006A :10030000EFF05FE1B707008113850709EFF0DFDC4D -:10031000B70700819387872483A787001385070089 +:10031000B70700819387072483A787001385070009 :10032000EFF05FDFB707008113850709EFF0DFDA31 -:10033000B70700819387872483A7C7001385070029 +:10033000B70700819387072483A7C70013850700A9 :10034000EFF05FDDB707008113850709EFF0DFD815 :10035000130000008320C101032481011301010265 :1003600067800000130101FE232E1100232C810061 @@ -59,40 +59,40 @@ :10039000EFF09FCE8347B4FE638407068327C4FE35 :1003A00093B717002305F4FE8347A4FE13850700C7 :1003B000EFF09FCC8347A4FE63820702B70700815A -:1003C0000327C4FE1317270093878724B307F7007A +:1003C0000327C4FE1317270093870724B307F700FA :1003D0001307A00023A0E7006F000002B707008109 -:1003E0000327C4FE1317270093878724B307F7005A +:1003E0000327C4FE1317270093870724B307F700DA :1003F0001307B00023A0E700EFF09FC86F0040068E :100400008327C4FE93B73700A304F4FE834794FE0A :1004100013850700EFF05FC6834794FE63820702EF -:10042000B70700810327C4FE13172700938787248B +:10042000B70700810327C4FE13172700938707240B :10043000B307F7001307C00023A0E7006F00000216 -:10044000B70700810327C4FE13172700938787246B +:10044000B70700810327C4FE1317270093870724EB :10045000B307F7001307D00023A0E700EFF05FC257 -:10046000EFF01FC2B707008183A787241385070019 +:10046000EFF01FC2B707008183A707241385070099 :10047000EFF05FCAB707008113850709EFF0DFC50A -:10048000B70700819387872483A747001385070058 +:10048000B70700819387072483A7470013850700D8 :10049000EFF05FC8B707008113850709EFF0DFC3EE -:1004A000B70700819387872483A7870013850700F8 +:1004A000B70700819387072483A787001385070078 :1004B000EFF05FC6B707008113850709EFF0DFC1D2 -:1004C000B70700819387872483A7C7001385070098 +:1004C000B70700819387072483A7C7001385070018 :1004D000EFF05FC4B707008113850709EFF0DFBFB6 :1004E000130000008320C1010324810113010102D4 :1004F00067800000130101FE232E1100232C8100D0 :1005000013040102EFF05FB82326A4FEB7070081B1 -:100510000327C4FE1317270093878725B307F70027 +:100510000327C4FE1317270093870725B307F700A7 :100520000327C4FE23A0E7008327C4FE63860700D9 :1005300013050000EFF05FB3130000008320C1013A :10054000032481011301010267800000130101FEF1 :10055000232E1100232C810013040102B707008011 :100560009387474F2326F4FE8325C4FE13054000DE -:10057000EFF01FAFEFF01FF8B707008183A78725C3 +:10057000EFF01FAFEFF01FF8B707008183A7072543 :1005800013850700EFF01FB9B7070081138507092E -:10059000EFF09FB4B70700819387872583A74700B3 +:10059000EFF09FB4B70700819387072583A7470033 :1005A00013850700EFF01FB7B70700811385070910 -:1005B000EFF09FB2B70700819387872583A7870055 +:1005B000EFF09FB2B70700819387072583A78700D5 :1005C00013850700EFF01FB5B707008113850709F2 -:1005D000EFF09FB0B70700819387872583A7C700F7 +:1005D000EFF09FB0B70700819387072583A7C70077 :1005E00013850700EFF01FB3B707008113850709D4 :1005F000EFF09FAE130000008320C10103248101AE :100600001301010267800000130101FF232611007E @@ -116,25 +116,10 @@ :10072000B307F70003A707008327C4FE03A68700CB :100730008327C4FD93972700B307F6003387E600AD :1007400023A0E700EFF0DF93130000008320C10334 -:10075000032481031301010467800000130101FCDD -:10076000232E1102232C810213040104130510000F -:10077000EFF09F8FB70700819387C71B2324F4FCFA -:10078000B70700819387C71F2326F4FCB7070081B2 -:10079000938787262328F4FC93074000232AF4FC40 -:1007A00093074000232CF4FC930740002322F4FE1F -:1007B000930740002320F4FE032744FE832504FE14 -:1007C000930784FC93860700B707008013860766AB -:1007D00013050700EFF01FA4232604FE6F00000896 -:1007E000232404FE6F004005032744FD8327C4FE35 -:1007F0003307F702832784FEB307F700232EF4FCA8 -:10080000B70700810327C4FD1317270093878726A6 -:10081000B307F70083A7070013850700EFF09F8F4A -:10082000B70700811385470FEFF01F8B832784FEE6 -:10083000938717002324F4FE032744FD832784FEB7 -:10084000E3E4E7FAB70700811385870FEFF0DF884D -:100850008327C4FE938717002326F4FE032784FD15 -:100860008327C4FEE3EEE7F6930700001385070035 -:100870008320C10303248103130101046780000066 +:10075000032481031301010467800000130101FFDA +:100760002326110023248100130401011305100026 +:10077000EFF09F8FEFF05FE993070000138507000C +:100780008320C10003248100130101016780000060 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A @@ -151,26 +136,26 @@ :1000C000330000003400000035000000360000005E :1000D0003700000038000000390000006100000017 :1000E0006200000063000000640000006500000082 -:0A00F00066000000200000000A0076 -:1000FC000000008104000081080000810C000081D8 -:10010C001000008114000081180000811C00008187 -:10011C002000008124000081280000812C00008137 -:10012C003000008134000081380000813C000081E7 -:10013C0044000081480000814C0000815000008187 -:10014C0054000081580000815C0000816000008137 -:10015C0064000081680000816C00008170000081E7 -:10016C0074000081780000817C0000818000008197 -:10017C00B4000081B8000081BC000081C000008187 -:10018C00C4000081C8000081CC000081D000008137 -:10019C00D4000081D8000081DC000081E0000081E7 -:1001AC00E4000081E8000081EC000081F000008197 -:1001BC00050000000500000005000000050000001F -:1001CC00060000000600000006000000060000000B -:1001DC0007000000070000000700000007000000F7 -:1001EC0008000000080000000800000008000000E3 -:1001FC0001000000010000000100000001000000EF -:10020C0001000000010000000100000001000000DE -:10021C0001000000010000000100000001000000CE -:10022C0001000000010000000100000001000000BE +:0200F0006600A8 +:1000F4000000008104000081080000810C000081E0 +:100104001000008114000081180000811C0000818F +:100114002000008124000081280000812C0000813F +:100124003000008134000081380000813C000081EF +:1001340044000081480000814C000081500000818F +:1001440054000081580000815C000081600000813F +:1001540064000081680000816C00008170000081EF +:1001640074000081780000817C000081800000819F +:10017400B4000081B8000081BC000081C00000818F +:10018400C4000081C8000081CC000081D00000813F +:10019400D4000081D8000081DC000081E0000081EF +:1001A400E4000081E8000081EC000081F00000819F +:1001B4000500000005000000050000000500000027 +:1001C4000600000006000000060000000600000013 +:1001D40007000000070000000700000007000000FF +:1001E40008000000080000000800000008000000EB +:1001F40001000000010000000100000001000000F7 +:1002040001000000010000000100000001000000E6 +:1002140001000000010000000100000001000000D6 +:1002240001000000010000000100000001000000C6 :040000058000000077 :00000001FF diff --git a/runtime/vx_main.c b/runtime/vx_main.c index ae483154..c08b315d 100644 --- a/runtime/vx_main.c +++ b/runtime/vx_main.c @@ -54,33 +54,33 @@ int main() /////////////////////////////////////////////////////////////////////// - mat_add_args_t arguments; - arguments.x = x; - arguments.y = y; - arguments.z = z; - arguments.numColums = 4; - arguments.numRows = 4; + // mat_add_args_t arguments; + // arguments.x = x; + // arguments.y = y; + // arguments.z = z; + // arguments.numColums = 4; + // arguments.numRows = 4; - int numWarps = 4; - int numThreads = 4; + // int numWarps = 4; + // int numThreads = 4; - vx_spawnWarps(numWarps, numThreads, mat_add_kernel, &arguments); + // vx_spawnWarps(numWarps, numThreads, mat_add_kernel, &arguments); - for (int i = 0; i < arguments.numRows; i++) - { - for (int j = 0; j < arguments.numColums; j++) - { - unsigned index = (i * arguments.numColums) + j; - vx_print_hex(z[index]); - vx_print_str(" "); - } - vx_print_str("\n"); - } + // for (int i = 0; i < arguments.numRows; i++) + // { + // for (int j = 0; j < arguments.numColums; j++) + // { + // unsigned index = (i * arguments.numColums) + j; + // vx_print_hex(z[index]); + // vx_print_str(" "); + // } + // vx_print_str("\n"); + // } /////////////////////////////////////////////////////////////////////// - // intrinsics_tests(); + intrinsics_tests(); ///////////////////////////////////////////////////////////////////////