Added simple_main

This commit is contained in:
felsabbagh3
2019-11-07 00:10:06 -05:00
parent bf43680b7c
commit 9e2de897f0
19 changed files with 2524 additions and 290 deletions

View File

@@ -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

View File

@@ -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) }
}

View File

@@ -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;
}

View File

@@ -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 <vx_set_sp>
80000008: 00400513 li a0,4
8000000c: 00b5106b 0xb5106b
80000010: 010000ef jal ra,80000020 <vx_set_sp>
80000014: 64c000ef jal ra,80000660 <main>
80000018: 00000513 li a0,0
8000001c: 0005006b 0x5006b
80000020 <vx_set_sp>:
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 <RETURN>
80000054: 00000513 li a0,0
80000058: 0005006b 0x5006b
8000005c <RETURN>:
8000005c: 00008067 ret
80000060 <vx_wspawn>:
80000060: 00b5106b 0xb5106b
80000064: 00008067 ret
80000068 <vx_tmc>:
80000068: 0005006b 0x5006b
8000006c: 00008067 ret
80000070 <vx_barrier>:
80000070: 00b5406b 0xb5406b
80000074: 00008067 ret
80000078 <vx_split>:
80000078: 0005206b 0x5206b
8000007c: 00008067 ret
80000080 <vx_join>:
80000080: 0000306b 0x306b
80000084: 00008067 ret
80000088 <vx_warpID>:
80000088: 02102573 csrr a0,0x21
8000008c: 00008067 ret
80000090 <vx_threadID>:
80000090: 02002573 csrr a0,0x20
80000094: 00008067 ret
80000098 <vx_resetStack>:
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 <RETURN>
800000cc: 00000513 li a0,0
800000d0: 0005006b 0x5006b
800000d4 <RETURN>:
800000d4: 00008067 ret
800000d8 <vx_print_str>:
800000d8: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c>
800000dc: 00112023 sw ra,0(sp)
800000e0: 00b12223 sw a1,4(sp)
800000e4 <bl>:
800000e4: 00054583 lbu a1,0(a0)
800000e8: 00058863 beqz a1,800000f8 <be>
800000ec: 01c000ef jal ra,80000108 <vx_printc>
800000f0: 00150513 addi a0,a0,1
800000f4: ff1ff06f j 800000e4 <bl>
800000f8 <be>:
800000f8: 00012083 lw ra,0(sp)
800000fc: 00412583 lw a1,4(sp)
80000100: 00c10113 addi sp,sp,12
80000104: 00008067 ret
80000108 <vx_printc>:
80000108: 000102b7 lui t0,0x10
8000010c: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000>
80000110: 00008067 ret
80000114 <vx_print_hex>:
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 <wsapwn_arr+0xffffff24>
80000138: 00f707b3 add a5,a4,a5
8000013c: 0007a783 lw a5,0(a5)
80000140: 00078513 mv a0,a5
80000144: f95ff0ef jal ra,800000d8 <vx_print_str>
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 <vx_printf>:
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 <vx_print_str>
8000017c: fe842503 lw a0,-24(s0)
80000180: f95ff0ef jal ra,80000114 <vx_print_hex>
80000184: 810007b7 lui a5,0x81000
80000188: 04078513 addi a0,a5,64 # 81000040 <wsapwn_arr+0xfffffe40>
8000018c: f4dff0ef jal ra,800000d8 <vx_print_str>
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 <setup_call>:
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 <wsapwn_arr+0xffffffec>
800001bc: 00078513 mv a0,a5
800001c0: ea9ff0ef jal ra,80000068 <vx_tmc>
800001c4: 810007b7 lui a5,0x81000
800001c8: 1e87a703 lw a4,488(a5) # 810001e8 <wsapwn_arr+0xffffffe8>
800001cc: 810007b7 lui a5,0x81000
800001d0: 1e47a783 lw a5,484(a5) # 810001e4 <wsapwn_arr+0xffffffe4>
800001d4: 00078513 mv a0,a5
800001d8: 000700e7 jalr a4
800001dc: eadff0ef jal ra,80000088 <vx_warpID>
800001e0: fea42623 sw a0,-20(s0)
800001e4: fec42783 lw a5,-20(s0)
800001e8: 00078863 beqz a5,800001f8 <setup_call+0x54>
800001ec: 00000513 li a0,0
800001f0: e79ff0ef jal ra,80000068 <vx_tmc>
800001f4: 00c0006f j 80000200 <setup_call+0x5c>
800001f8: 00100513 li a0,1
800001fc: e6dff0ef jal ra,80000068 <vx_tmc>
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 <vx_spawnWarps>:
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 <wsapwn_arr+0xffffffe8>
80000240: 810007b7 lui a5,0x81000
80000244: fe042703 lw a4,-32(s0)
80000248: 1ee7a223 sw a4,484(a5) # 810001e4 <wsapwn_arr+0xffffffe4>
8000024c: 810007b7 lui a5,0x81000
80000250: fe842703 lw a4,-24(s0)
80000254: 1ee7a623 sw a4,492(a5) # 810001ec <wsapwn_arr+0xffffffec>
80000258: 800007b7 lui a5,0x80000
8000025c: 1a478793 addi a5,a5,420 # 800001a4 <wsapwn_arr+0xfeffffa4>
80000260: 00078593 mv a1,a5
80000264: fec42503 lw a0,-20(s0)
80000268: df9ff0ef jal ra,80000060 <vx_wspawn>
8000026c: f39ff0ef jal ra,800001a4 <setup_call>
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 <test_tmc>:
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 <wsapwn_arr+0xfffffe84>
8000029c: e3dff0ef jal ra,800000d8 <vx_print_str>
800002a0: 00400513 li a0,4
800002a4: dc5ff0ef jal ra,80000068 <vx_tmc>
800002a8: de9ff0ef jal ra,80000090 <vx_threadID>
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 <wsapwn_arr+0xfffffff0>
800002c4: 00f687b3 add a5,a3,a5
800002c8: 00e7a023 sw a4,0(a5)
800002cc: 00100513 li a0,1
800002d0: d99ff0ef jal ra,80000068 <vx_tmc>
800002d4: 810007b7 lui a5,0x81000
800002d8: 1f07a783 lw a5,496(a5) # 810001f0 <wsapwn_arr+0xfffffff0>
800002dc: 00078513 mv a0,a5
800002e0: e35ff0ef jal ra,80000114 <vx_print_hex>
800002e4: 810007b7 lui a5,0x81000
800002e8: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
800002ec: dedff0ef jal ra,800000d8 <vx_print_str>
800002f0: 810007b7 lui a5,0x81000
800002f4: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
800002f8: 0047a783 lw a5,4(a5)
800002fc: 00078513 mv a0,a5
80000300: e15ff0ef jal ra,80000114 <vx_print_hex>
80000304: 810007b7 lui a5,0x81000
80000308: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
8000030c: dcdff0ef jal ra,800000d8 <vx_print_str>
80000310: 810007b7 lui a5,0x81000
80000314: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
80000318: 0087a783 lw a5,8(a5)
8000031c: 00078513 mv a0,a5
80000320: df5ff0ef jal ra,80000114 <vx_print_hex>
80000324: 810007b7 lui a5,0x81000
80000328: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
8000032c: dadff0ef jal ra,800000d8 <vx_print_str>
80000330: 810007b7 lui a5,0x81000
80000334: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
80000338: 00c7a783 lw a5,12(a5)
8000033c: 00078513 mv a0,a5
80000340: dd5ff0ef jal ra,80000114 <vx_print_hex>
80000344: 810007b7 lui a5,0x81000
80000348: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
8000034c: d8dff0ef jal ra,800000d8 <vx_print_str>
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 <test_divergence>:
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 <vx_threadID>
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 <vx_split>
80000394: feb44783 lbu a5,-21(s0)
80000398: 06078463 beqz a5,80000400 <test_divergence+0x9c>
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 <vx_split>
800003b4: fea44783 lbu a5,-22(s0)
800003b8: 02078263 beqz a5,800003dc <test_divergence+0x78>
800003bc: 810007b7 lui a5,0x81000
800003c0: fec42703 lw a4,-20(s0)
800003c4: 00271713 slli a4,a4,0x2
800003c8: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
800003cc: 00f707b3 add a5,a4,a5
800003d0: 00a00713 li a4,10
800003d4: 00e7a023 sw a4,0(a5)
800003d8: 0200006f j 800003f8 <test_divergence+0x94>
800003dc: 810007b7 lui a5,0x81000
800003e0: fec42703 lw a4,-20(s0)
800003e4: 00271713 slli a4,a4,0x2
800003e8: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
800003ec: 00f707b3 add a5,a4,a5
800003f0: 00b00713 li a4,11
800003f4: 00e7a023 sw a4,0(a5)
800003f8: c89ff0ef jal ra,80000080 <vx_join>
800003fc: 0640006f j 80000460 <test_divergence+0xfc>
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 <vx_split>
80000418: fe944783 lbu a5,-23(s0)
8000041c: 02078263 beqz a5,80000440 <test_divergence+0xdc>
80000420: 810007b7 lui a5,0x81000
80000424: fec42703 lw a4,-20(s0)
80000428: 00271713 slli a4,a4,0x2
8000042c: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
80000430: 00f707b3 add a5,a4,a5
80000434: 00c00713 li a4,12
80000438: 00e7a023 sw a4,0(a5)
8000043c: 0200006f j 8000045c <test_divergence+0xf8>
80000440: 810007b7 lui a5,0x81000
80000444: fec42703 lw a4,-20(s0)
80000448: 00271713 slli a4,a4,0x2
8000044c: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
80000450: 00f707b3 add a5,a4,a5
80000454: 00d00713 li a4,13
80000458: 00e7a023 sw a4,0(a5)
8000045c: c25ff0ef jal ra,80000080 <vx_join>
80000460: c21ff0ef jal ra,80000080 <vx_join>
80000464: 810007b7 lui a5,0x81000
80000468: 1f07a783 lw a5,496(a5) # 810001f0 <wsapwn_arr+0xfffffff0>
8000046c: 00078513 mv a0,a5
80000470: ca5ff0ef jal ra,80000114 <vx_print_hex>
80000474: 810007b7 lui a5,0x81000
80000478: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
8000047c: c5dff0ef jal ra,800000d8 <vx_print_str>
80000480: 810007b7 lui a5,0x81000
80000484: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
80000488: 0047a783 lw a5,4(a5)
8000048c: 00078513 mv a0,a5
80000490: c85ff0ef jal ra,80000114 <vx_print_hex>
80000494: 810007b7 lui a5,0x81000
80000498: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
8000049c: c3dff0ef jal ra,800000d8 <vx_print_str>
800004a0: 810007b7 lui a5,0x81000
800004a4: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
800004a8: 0087a783 lw a5,8(a5)
800004ac: 00078513 mv a0,a5
800004b0: c65ff0ef jal ra,80000114 <vx_print_hex>
800004b4: 810007b7 lui a5,0x81000
800004b8: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
800004bc: c1dff0ef jal ra,800000d8 <vx_print_str>
800004c0: 810007b7 lui a5,0x81000
800004c4: 1f078793 addi a5,a5,496 # 810001f0 <wsapwn_arr+0xfffffff0>
800004c8: 00c7a783 lw a5,12(a5)
800004cc: 00078513 mv a0,a5
800004d0: c45ff0ef jal ra,80000114 <vx_print_hex>
800004d4: 810007b7 lui a5,0x81000
800004d8: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
800004dc: bfdff0ef jal ra,800000d8 <vx_print_str>
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 <simple_kernel>:
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 <vx_warpID>
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 <wsapwn_arr+0x0>
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 <simple_kernel+0x44>
80000530: 00000513 li a0,0
80000534: b35ff0ef jal ra,80000068 <vx_tmc>
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 <test_wsapwn>:
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 <wsapwn_arr+0xff0002f4>
80000564: fef42623 sw a5,-20(s0)
80000568: fec42583 lw a1,-20(s0)
8000056c: 00400513 li a0,4
80000570: af1ff0ef jal ra,80000060 <vx_wspawn>
80000574: f81ff0ef jal ra,800004f4 <simple_kernel>
80000578: 810007b7 lui a5,0x81000
8000057c: 2007a783 lw a5,512(a5) # 81000200 <wsapwn_arr+0x0>
80000580: 00078513 mv a0,a5
80000584: b91ff0ef jal ra,80000114 <vx_print_hex>
80000588: 810007b7 lui a5,0x81000
8000058c: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
80000590: b49ff0ef jal ra,800000d8 <vx_print_str>
80000594: 810007b7 lui a5,0x81000
80000598: 20078793 addi a5,a5,512 # 81000200 <wsapwn_arr+0x0>
8000059c: 0047a783 lw a5,4(a5)
800005a0: 00078513 mv a0,a5
800005a4: b71ff0ef jal ra,80000114 <vx_print_hex>
800005a8: 810007b7 lui a5,0x81000
800005ac: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
800005b0: b29ff0ef jal ra,800000d8 <vx_print_str>
800005b4: 810007b7 lui a5,0x81000
800005b8: 20078793 addi a5,a5,512 # 81000200 <wsapwn_arr+0x0>
800005bc: 0087a783 lw a5,8(a5)
800005c0: 00078513 mv a0,a5
800005c4: b51ff0ef jal ra,80000114 <vx_print_hex>
800005c8: 810007b7 lui a5,0x81000
800005cc: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
800005d0: b09ff0ef jal ra,800000d8 <vx_print_str>
800005d4: 810007b7 lui a5,0x81000
800005d8: 20078793 addi a5,a5,512 # 81000200 <wsapwn_arr+0x0>
800005dc: 00c7a783 lw a5,12(a5)
800005e0: 00078513 mv a0,a5
800005e4: b31ff0ef jal ra,80000114 <vx_print_hex>
800005e8: 810007b7 lui a5,0x81000
800005ec: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffe90>
800005f0: ae9ff0ef jal ra,800000d8 <vx_print_str>
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 <intrinsics_tests>:
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 <test_tmc>
8000061c: 810007b7 lui a5,0x81000
80000620: 09478513 addi a0,a5,148 # 81000094 <wsapwn_arr+0xfffffe94>
80000624: ab5ff0ef jal ra,800000d8 <vx_print_str>
80000628: 00400513 li a0,4
8000062c: a3dff0ef jal ra,80000068 <vx_tmc>
80000630: d35ff0ef jal ra,80000364 <test_divergence>
80000634: 00100513 li a0,1
80000638: a31ff0ef jal ra,80000068 <vx_tmc>
8000063c: 810007b7 lui a5,0x81000
80000640: 0a878513 addi a0,a5,168 # 810000a8 <wsapwn_arr+0xfffffea8>
80000644: a95ff0ef jal ra,800000d8 <vx_print_str>
80000648: f05ff0ef jal ra,8000054c <test_wsapwn>
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 <main>:
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 <vx_tmc>
80000678: 810007b7 lui a5,0x81000
8000067c: 0f478513 addi a0,a5,244 # 810000f4 <wsapwn_arr+0xfffffef4>
80000680: a59ff0ef jal ra,800000d8 <vx_print_str>
80000684: c01ff0ef jal ra,80000284 <test_tmc>
80000688: 810007b7 lui a5,0x81000
8000068c: 10478513 addi a0,a5,260 # 81000104 <wsapwn_arr+0xffffff04>
80000690: a49ff0ef jal ra,800000d8 <vx_print_str>
80000694: 00400513 li a0,4
80000698: 9d1ff0ef jal ra,80000068 <vx_tmc>
8000069c: cc9ff0ef jal ra,80000364 <test_divergence>
800006a0: 00100513 li a0,1
800006a4: 9c5ff0ef jal ra,80000068 <vx_tmc>
800006a8: 810007b7 lui a5,0x81000
800006ac: 11878513 addi a0,a5,280 # 81000118 <wsapwn_arr+0xffffff18>
800006b0: a29ff0ef jal ra,800000d8 <vx_print_str>
800006b4: e99ff0ef jal ra,8000054c <test_wsapwn>
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 <main+0xfff9d0>
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 <main+0xfffa14>
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 <main+0xfffa84>
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 <hextoa>:
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 <hextoa>:
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 <hextoa>:
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 <global_argument_struct>:
810001e4: 0000 unimp
...
810001e8 <global_function_pointer>:
810001e8: 0000 unimp
...
810001ec <global_num_threads>:
810001ec: 0000 unimp
...
810001f0 <arr>:
...
81000200 <wsapwn_arr>:
...
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)
...

Binary file not shown.

View File

@@ -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

View File

@@ -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);
}