runtime tests

This commit is contained in:
felsabbagh3
2019-11-02 10:35:20 -04:00
parent bbb2373919
commit 95d8a251db
10 changed files with 771 additions and 534 deletions

View File

@@ -9,6 +9,7 @@ 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_TEST = ./tests/tests.c
VX_MAIN = ./vx_main.c
@@ -21,4 +22,4 @@ HEX: ELF
$(CPY) -O ihex vortex_runtime.elf vortex_runtime.hex
ELF:
$(COMP) $(CC_FLAGS) $(VX_STR) $(VX_INT) $(VX_IO) $(VX_MAIN) -o vortex_runtime.elf
$(COMP) $(CC_FLAGS) $(VX_STR) $(VX_INT) $(VX_IO) $(VX_TEST) $(VX_MAIN) -o vortex_runtime.elf

View File

@@ -1,4 +1,8 @@
#ifndef VX_INTRINSICS
#define VX_INTRINSICS
// Spawns Warps
void vx_wspawn (unsigned numWarps, unsigned PC_spawn);
@@ -32,3 +36,7 @@ unsigned vx_warpID(void);
#define __endif vx_join();
#endif

View File

@@ -4,9 +4,9 @@
.section .text
.type vx_wsapwn, @function
.global vx_wsapwn
vx_wsapwn:
.type vx_wspawn, @function
.global vx_wspawn
vx_wspawn:
.word 0x00b5106b # wspawn a0(numWarps), a1(PC SPAWN)
ret

View File

@@ -3,64 +3,39 @@
.type _start, @function
.global _start
_start:
# li a0, 4
# .word 0x0005006b # tmc a0
# csrr a1,0x20
# slli a1, a1, 2
# la a2, 0x20000000
# add a2, a2, a1
# sw a1, 0(a2)
# la a2, 0x40000000
# add a2, a2, a1
# li a3, 5
# sw a3, 0(a2)
# la a2, 0x80000000
# add a2, a2, a1
# li a3, 7
# sw a3, 0(a2)
# la a2, 0x60000000
# add a2, a2, a1
# li a3, 7
# sw a3, 0(a2)
# la a2, 0x20000000
# add a2, a2, a1
# lw a4, 0(a2)
# li a0, 0
# .word 0x0005006b # tmc a0
##########################
# li a0, 4
# .word 0x0005006b # tmc 4
# csrr a1,0x20 # get tid
# slli a1, a1, 10 # multiply tid by 1024
# lui sp, 0x6ffff # load base sp
# sub sp, sp, a1 # sub sp - (1024*tid)
# la a2, 0x20000000
# csrr a3,0x20 # get tid
# slli a3, a3, 2
# add a2, a2, a3
# sw a3, 0(a2)
# lw a4, 0(a2)
# li a0, 0
# .word 0x0005006b # tmc a0
##########################
li a0, 4
.word 0x0005006b # tmc 4
csrr a1,0x20 # get tid
slli a1, a1, 10 # multiply tid by 1024
lui sp, 0x6ffff # load base sp
sub sp, sp, a1 # sub sp - (1024*tid)
li a0, 4
.word 0x0005006b # tmc 4
# la a1, vx_set_sp
# li a0, 8
# .word 0x00b5106b # wspawn a0(numWarps), a1(PC SPAWN)
jal vx_set_sp
jal main
li a0, 0
.word 0x0005006b # tmc a0
.type vx_set_sp, @function
.global vx_set_sp
vx_set_sp:
li a0, 4
.word 0x0005006b # tmc 4
csrr a3, 0x21 # get wid
slli a3, a3, 15 # shift by wid
csrr a2, 0x20 # get tid
slli a1, a2, 10 # multiply tid by 1024
slli a2, a2, 2 # multiply tid by 4
lui sp, 0x6ffff # load base sp
sub sp, sp, a1 # sub sp - (1024*tid)
sub sp, sp, a3 # shoft per warp
add sp, sp, a2 # shift sp for better performance
csrr a3, 0x21 # get wid
beqz a3, RETURN
li a0, 0
.word 0x0005006b # tmc 0
RETURN:
li a0, 1
.word 0x0005006b # tmc 1
ret

117
runtime/tests/tests.c Normal file
View File

@@ -0,0 +1,117 @@
#include "tests.h"
#include "../intrinsics/vx_intrinsics.h"
#include "../io/vx_io.h"
void test_tmc()
{
vx_print_str("test_tmc\n");
vx_tmc(4);
unsigned tid = vx_threadID(); // Get TID
arr[tid] = tid;
vx_tmc(1);
vx_print_hex(arr[0]);
vx_print_str("\n");
vx_print_hex(arr[1]);
vx_print_str("\n");
vx_print_hex(arr[2]);
vx_print_str("\n");
vx_print_hex(arr[3]);
vx_print_str("\n");
return;
}
void test_divergence()
{
unsigned tid = vx_threadID(); // Get TID
bool b = tid < 2;
__if (b)
{
bool c = tid < 1;
__if (c)
{
arr[tid] = 10;
}
__else
{
arr[tid] = 11;
}
__endif
}
__else
{
bool c = tid < 3;
__if (c)
{
arr[tid] = 12;
}
__else
{
arr[tid] = 13;
}
__endif
}
__endif
vx_print_hex(arr[0]);
vx_print_str("\n");
vx_print_hex(arr[1]);
vx_print_str("\n");
vx_print_hex(arr[2]);
vx_print_str("\n");
vx_print_hex(arr[3]);
vx_print_str("\n");
}
unsigned wsapwn_arr[4];
void simple_kernel()
{
unsigned wid = vx_warpID();
wsapwn_arr[wid] = wid;
if (wid != 0)
{
vx_tmc(0);
}
}
void test_wsapwn()
{
unsigned func_ptr = (unsigned) simple_kernel;
vx_wspawn(4, func_ptr);
simple_kernel();
vx_print_hex(wsapwn_arr[0]);
vx_print_str("\n");
vx_print_hex(wsapwn_arr[1]);
vx_print_str("\n");
vx_print_hex(wsapwn_arr[2]);
vx_print_str("\n");
vx_print_hex(wsapwn_arr[3]);
vx_print_str("\n");
}

16
runtime/tests/tests.h Normal file
View File

@@ -0,0 +1,16 @@
#ifndef TESTS
#define TESTS
int arr[4];
void test_tmc();
void test_divergence();
void test_wsapwn();
#endif

View File

@@ -5,291 +5,383 @@ vortex_runtime.elf: file format elf32-littleriscv
Disassembly of section .text:
80000000 <_start>:
80000000: 00400513 li a0,4
80000004: 0005006b 0x5006b
80000008: 020025f3 csrr a1,0x20
8000000c: 00a59593 slli a1,a1,0xa
80000010: 6ffff137 lui sp,0x6ffff
80000014: 40b10133 sub sp,sp,a1
80000018: 00400513 li a0,4
80000000: 00000597 auipc a1,0x0
80000004: 02058593 addi a1,a1,32 # 80000020 <vx_set_sp>
80000008: 00800513 li a0,8
8000000c: 00b5106b 0xb5106b
80000010: 010000ef jal ra,80000020 <vx_set_sp>
80000014: 4dc000ef jal ra,800004f0 <main>
80000018: 00000513 li a0,0
8000001c: 0005006b 0x5006b
80000020: 380000ef jal ra,800003a0 <main>
80000024: 00000513 li a0,0
80000028: 0005006b 0x5006b
8000002c <vx_wsapwn>:
8000002c: 00b5106b 0xb5106b
80000030: 00008067 ret
80000020 <vx_set_sp>:
80000020: 00400513 li a0,4
80000024: 0005006b 0x5006b
80000028: 021026f3 csrr a3,0x21
8000002c: 00f69693 slli a3,a3,0xf
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
80000034 <vx_tmc>:
80000034: 0005006b 0x5006b
80000038: 00008067 ret
8000005c <RETURN>:
8000005c: 00100513 li a0,1
80000060: 0005006b 0x5006b
80000064: 00008067 ret
8000003c <vx_barrier>:
8000003c: 00b5406b 0xb5406b
80000040: 00008067 ret
80000068 <vx_wspawn>:
80000068: 00b5106b 0xb5106b
8000006c: 00008067 ret
80000044 <vx_split>:
80000044: 0005206b 0x5206b
80000048: 00008067 ret
80000070 <vx_tmc>:
80000070: 0005006b 0x5006b
80000074: 00008067 ret
8000004c <vx_join>:
8000004c: 0000306b 0x306b
80000050: 00008067 ret
80000078 <vx_barrier>:
80000078: 00b5406b 0xb5406b
8000007c: 00008067 ret
80000054 <vx_warpID>:
80000054: 02102573 csrr a0,0x21
80000058: 00008067 ret
80000080 <vx_split>:
80000080: 0005206b 0x5206b
80000084: 00008067 ret
8000005c <vx_threadID>:
8000005c: 02002573 csrr a0,0x20
80000060: 00008067 ret
80000088 <vx_join>:
80000088: 0000306b 0x306b
8000008c: 00008067 ret
80000064 <vx_print_str>:
80000064: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c>
80000068: 00112023 sw ra,0(sp)
8000006c: 00b12223 sw a1,4(sp)
80000090 <vx_warpID>:
80000090: 02102573 csrr a0,0x21
80000094: 00008067 ret
80000070 <bl>:
80000070: 00054583 lbu a1,0(a0)
80000074: 00058863 beqz a1,80000084 <be>
80000078: 01c000ef jal ra,80000094 <vx_printc>
8000007c: 00150513 addi a0,a0,1
80000080: ff1ff06f j 80000070 <bl>
80000084 <be>:
80000084: 00012083 lw ra,0(sp)
80000088: 00412583 lw a1,4(sp)
8000008c: 00c10113 addi sp,sp,12
80000090: 00008067 ret
80000094 <vx_printc>:
80000094: 000102b7 lui t0,0x10
80000098: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000>
80000098 <vx_threadID>:
80000098: 02002573 csrr a0,0x20
8000009c: 00008067 ret
800000a0 <vx_print_hex>:
800000a0: fe010113 addi sp,sp,-32
800000a4: 00112e23 sw ra,28(sp)
800000a8: 00812c23 sw s0,24(sp)
800000ac: 02010413 addi s0,sp,32
800000b0: fea42623 sw a0,-20(s0)
800000b4: 810007b7 lui a5,0x81000
800000b8: fec42703 lw a4,-20(s0)
800000bc: 00271713 slli a4,a4,0x2
800000c0: 0ac78793 addi a5,a5,172 # 810000ac <arr+0xffffff80>
800000c4: 00f707b3 add a5,a4,a5
800000c8: 0007a783 lw a5,0(a5)
800000cc: 00078513 mv a0,a5
800000d0: f95ff0ef jal ra,80000064 <vx_print_str>
800000d4: 00000013 nop
800000d8: 01c12083 lw ra,28(sp)
800000dc: 01812403 lw s0,24(sp)
800000e0: 02010113 addi sp,sp,32
800000e4: 00008067 ret
800000a0 <vx_print_str>:
800000a0: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c>
800000a4: 00112023 sw ra,0(sp)
800000a8: 00b12223 sw a1,4(sp)
800000e8 <vx_printf>:
800000e8: fe010113 addi sp,sp,-32
800000ec: 00112e23 sw ra,28(sp)
800000f0: 00812c23 sw s0,24(sp)
800000f4: 02010413 addi s0,sp,32
800000f8: fea42623 sw a0,-20(s0)
800000fc: feb42423 sw a1,-24(s0)
80000100: fec42503 lw a0,-20(s0)
80000104: f61ff0ef jal ra,80000064 <vx_print_str>
80000108: fe842503 lw a0,-24(s0)
8000010c: f95ff0ef jal ra,800000a0 <vx_print_hex>
80000110: 810007b7 lui a5,0x81000
80000114: 04078513 addi a0,a5,64 # 81000040 <arr+0xffffff14>
80000118: f4dff0ef jal ra,80000064 <vx_print_str>
8000011c: 00000013 nop
80000120: 01c12083 lw ra,28(sp)
80000124: 01812403 lw s0,24(sp)
80000128: 02010113 addi sp,sp,32
8000012c: 00008067 ret
800000ac <bl>:
800000ac: 00054583 lbu a1,0(a0)
800000b0: 00058863 beqz a1,800000c0 <be>
800000b4: 01c000ef jal ra,800000d0 <vx_printc>
800000b8: 00150513 addi a0,a0,1
800000bc: ff1ff06f j 800000ac <bl>
80000130 <test_tmc>:
80000130: fe010113 addi sp,sp,-32
80000134: 00112e23 sw ra,28(sp)
80000138: 00812c23 sw s0,24(sp)
8000013c: 02010413 addi s0,sp,32
80000140: 810007b7 lui a5,0x81000
80000144: 08478513 addi a0,a5,132 # 81000084 <arr+0xffffff58>
80000148: f1dff0ef jal ra,80000064 <vx_print_str>
8000014c: 00400513 li a0,4
80000150: ee5ff0ef jal ra,80000034 <vx_tmc>
80000154: f09ff0ef jal ra,8000005c <vx_threadID>
80000158: fea42623 sw a0,-20(s0)
8000015c: fec42703 lw a4,-20(s0)
80000160: 810007b7 lui a5,0x81000
80000164: fec42683 lw a3,-20(s0)
80000168: 00269693 slli a3,a3,0x2
8000016c: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
80000170: 00f687b3 add a5,a3,a5
80000174: 00e7a023 sw a4,0(a5)
80000178: 00100513 li a0,1
8000017c: eb9ff0ef jal ra,80000034 <vx_tmc>
80000180: 810007b7 lui a5,0x81000
80000184: 12c7a783 lw a5,300(a5) # 8100012c <arr+0x0>
80000188: 00078513 mv a0,a5
8000018c: f15ff0ef jal ra,800000a0 <vx_print_hex>
80000190: 810007b7 lui a5,0x81000
80000194: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
80000198: ecdff0ef jal ra,80000064 <vx_print_str>
800000c0 <be>:
800000c0: 00012083 lw ra,0(sp)
800000c4: 00412583 lw a1,4(sp)
800000c8: 00c10113 addi sp,sp,12
800000cc: 00008067 ret
800000d0 <vx_printc>:
800000d0: 000102b7 lui t0,0x10
800000d4: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000>
800000d8: 00008067 ret
800000dc <vx_print_hex>:
800000dc: fe010113 addi sp,sp,-32
800000e0: 00112e23 sw ra,28(sp)
800000e4: 00812c23 sw s0,24(sp)
800000e8: 02010413 addi s0,sp,32
800000ec: fea42623 sw a0,-20(s0)
800000f0: 810007b7 lui a5,0x81000
800000f4: fec42703 lw a4,-20(s0)
800000f8: 00271713 slli a4,a4,0x2
800000fc: 0e878793 addi a5,a5,232 # 810000e8 <wsapwn_arr+0xffffff30>
80000100: 00f707b3 add a5,a4,a5
80000104: 0007a783 lw a5,0(a5)
80000108: 00078513 mv a0,a5
8000010c: f95ff0ef jal ra,800000a0 <vx_print_str>
80000110: 00000013 nop
80000114: 01c12083 lw ra,28(sp)
80000118: 01812403 lw s0,24(sp)
8000011c: 02010113 addi sp,sp,32
80000120: 00008067 ret
80000124 <vx_printf>:
80000124: fe010113 addi sp,sp,-32
80000128: 00112e23 sw ra,28(sp)
8000012c: 00812c23 sw s0,24(sp)
80000130: 02010413 addi s0,sp,32
80000134: fea42623 sw a0,-20(s0)
80000138: feb42423 sw a1,-24(s0)
8000013c: fec42503 lw a0,-20(s0)
80000140: f61ff0ef jal ra,800000a0 <vx_print_str>
80000144: fe842503 lw a0,-24(s0)
80000148: f95ff0ef jal ra,800000dc <vx_print_hex>
8000014c: 810007b7 lui a5,0x81000
80000150: 04078513 addi a0,a5,64 # 81000040 <wsapwn_arr+0xfffffe88>
80000154: f4dff0ef jal ra,800000a0 <vx_print_str>
80000158: 00000013 nop
8000015c: 01c12083 lw ra,28(sp)
80000160: 01812403 lw s0,24(sp)
80000164: 02010113 addi sp,sp,32
80000168: 00008067 ret
8000016c <test_tmc>:
8000016c: fe010113 addi sp,sp,-32
80000170: 00112e23 sw ra,28(sp)
80000174: 00812c23 sw s0,24(sp)
80000178: 02010413 addi s0,sp,32
8000017c: 810007b7 lui a5,0x81000
80000180: 08478513 addi a0,a5,132 # 81000084 <wsapwn_arr+0xfffffecc>
80000184: f1dff0ef jal ra,800000a0 <vx_print_str>
80000188: 00400513 li a0,4
8000018c: ee5ff0ef jal ra,80000070 <vx_tmc>
80000190: f09ff0ef jal ra,80000098 <vx_threadID>
80000194: fea42623 sw a0,-20(s0)
80000198: fec42703 lw a4,-20(s0)
8000019c: 810007b7 lui a5,0x81000
800001a0: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
800001a4: 0047a783 lw a5,4(a5)
800001a8: 00078513 mv a0,a5
800001ac: ef5ff0ef jal ra,800000a0 <vx_print_hex>
800001b0: 810007b7 lui a5,0x81000
800001b4: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
800001b8: eadff0ef jal ra,80000064 <vx_print_str>
800001a0: fec42683 lw a3,-20(s0)
800001a4: 00269693 slli a3,a3,0x2
800001a8: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
800001ac: 00f687b3 add a5,a3,a5
800001b0: 00e7a023 sw a4,0(a5)
800001b4: 00100513 li a0,1
800001b8: eb9ff0ef jal ra,80000070 <vx_tmc>
800001bc: 810007b7 lui a5,0x81000
800001c0: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
800001c4: 0087a783 lw a5,8(a5)
800001c8: 00078513 mv a0,a5
800001cc: ed5ff0ef jal ra,800000a0 <vx_print_hex>
800001d0: 810007b7 lui a5,0x81000
800001d4: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
800001d8: e8dff0ef jal ra,80000064 <vx_print_str>
800001dc: 810007b7 lui a5,0x81000
800001e0: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
800001e4: 00c7a783 lw a5,12(a5)
800001e8: 00078513 mv a0,a5
800001ec: eb5ff0ef jal ra,800000a0 <vx_print_hex>
800001f0: 810007b7 lui a5,0x81000
800001f4: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
800001f8: e6dff0ef jal ra,80000064 <vx_print_str>
800001fc: 00000013 nop
80000200: 01c12083 lw ra,28(sp)
80000204: 01812403 lw s0,24(sp)
80000208: 02010113 addi sp,sp,32
8000020c: 00008067 ret
800001c0: 1a87a783 lw a5,424(a5) # 810001a8 <wsapwn_arr+0xfffffff0>
800001c4: 00078513 mv a0,a5
800001c8: f15ff0ef jal ra,800000dc <vx_print_hex>
800001cc: 810007b7 lui a5,0x81000
800001d0: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
800001d4: ecdff0ef jal ra,800000a0 <vx_print_str>
800001d8: 810007b7 lui a5,0x81000
800001dc: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
800001e0: 0047a783 lw a5,4(a5)
800001e4: 00078513 mv a0,a5
800001e8: ef5ff0ef jal ra,800000dc <vx_print_hex>
800001ec: 810007b7 lui a5,0x81000
800001f0: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
800001f4: eadff0ef jal ra,800000a0 <vx_print_str>
800001f8: 810007b7 lui a5,0x81000
800001fc: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
80000200: 0087a783 lw a5,8(a5)
80000204: 00078513 mv a0,a5
80000208: ed5ff0ef jal ra,800000dc <vx_print_hex>
8000020c: 810007b7 lui a5,0x81000
80000210: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
80000214: e8dff0ef jal ra,800000a0 <vx_print_str>
80000218: 810007b7 lui a5,0x81000
8000021c: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
80000220: 00c7a783 lw a5,12(a5)
80000224: 00078513 mv a0,a5
80000228: eb5ff0ef jal ra,800000dc <vx_print_hex>
8000022c: 810007b7 lui a5,0x81000
80000230: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
80000234: e6dff0ef jal ra,800000a0 <vx_print_str>
80000238: 00000013 nop
8000023c: 01c12083 lw ra,28(sp)
80000240: 01812403 lw s0,24(sp)
80000244: 02010113 addi sp,sp,32
80000248: 00008067 ret
80000210 <test_divergence>:
80000210: fe010113 addi sp,sp,-32
80000214: 00112e23 sw ra,28(sp)
80000218: 00812c23 sw s0,24(sp)
8000021c: 02010413 addi s0,sp,32
80000220: e3dff0ef jal ra,8000005c <vx_threadID>
80000224: fea42623 sw a0,-20(s0)
80000228: fec42783 lw a5,-20(s0)
8000022c: 0027b793 sltiu a5,a5,2
80000230: fef405a3 sb a5,-21(s0)
80000234: feb44783 lbu a5,-21(s0)
80000238: 00078513 mv a0,a5
8000023c: e09ff0ef jal ra,80000044 <vx_split>
80000240: feb44783 lbu a5,-21(s0)
80000244: 06078463 beqz a5,800002ac <test_divergence+0x9c>
80000248: fec42783 lw a5,-20(s0)
8000024c: 0017b793 seqz a5,a5
80000250: fef40523 sb a5,-22(s0)
80000254: fea44783 lbu a5,-22(s0)
80000258: 00078513 mv a0,a5
8000025c: de9ff0ef jal ra,80000044 <vx_split>
80000260: fea44783 lbu a5,-22(s0)
80000264: 02078263 beqz a5,80000288 <test_divergence+0x78>
80000268: 810007b7 lui a5,0x81000
8000026c: fec42703 lw a4,-20(s0)
80000270: 00271713 slli a4,a4,0x2
80000274: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
80000278: 00f707b3 add a5,a4,a5
8000027c: 00a00713 li a4,10
80000280: 00e7a023 sw a4,0(a5)
80000284: 0200006f j 800002a4 <test_divergence+0x94>
80000288: 810007b7 lui a5,0x81000
8000028c: fec42703 lw a4,-20(s0)
80000290: 00271713 slli a4,a4,0x2
80000294: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
80000298: 00f707b3 add a5,a4,a5
8000029c: 00b00713 li a4,11
800002a0: 00e7a023 sw a4,0(a5)
800002a4: da9ff0ef jal ra,8000004c <vx_join>
800002a8: 0640006f j 8000030c <test_divergence+0xfc>
800002ac: fec42783 lw a5,-20(s0)
800002b0: 0037b793 sltiu a5,a5,3
800002b4: fef404a3 sb a5,-23(s0)
800002b8: fe944783 lbu a5,-23(s0)
800002bc: 00078513 mv a0,a5
800002c0: d85ff0ef jal ra,80000044 <vx_split>
800002c4: fe944783 lbu a5,-23(s0)
800002c8: 02078263 beqz a5,800002ec <test_divergence+0xdc>
800002cc: 810007b7 lui a5,0x81000
800002d0: fec42703 lw a4,-20(s0)
800002d4: 00271713 slli a4,a4,0x2
800002d8: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
800002dc: 00f707b3 add a5,a4,a5
800002e0: 00c00713 li a4,12
800002e4: 00e7a023 sw a4,0(a5)
800002e8: 0200006f j 80000308 <test_divergence+0xf8>
800002ec: 810007b7 lui a5,0x81000
800002f0: fec42703 lw a4,-20(s0)
800002f4: 00271713 slli a4,a4,0x2
800002f8: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
800002fc: 00f707b3 add a5,a4,a5
80000300: 00d00713 li a4,13
80000304: 00e7a023 sw a4,0(a5)
80000308: d45ff0ef jal ra,8000004c <vx_join>
8000030c: d41ff0ef jal ra,8000004c <vx_join>
80000310: 810007b7 lui a5,0x81000
80000314: 12c7a783 lw a5,300(a5) # 8100012c <arr+0x0>
80000318: 00078513 mv a0,a5
8000031c: d85ff0ef jal ra,800000a0 <vx_print_hex>
80000320: 810007b7 lui a5,0x81000
80000324: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
80000328: d3dff0ef jal ra,80000064 <vx_print_str>
8000032c: 810007b7 lui a5,0x81000
80000330: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
80000334: 0047a783 lw a5,4(a5)
80000338: 00078513 mv a0,a5
8000033c: d65ff0ef jal ra,800000a0 <vx_print_hex>
80000340: 810007b7 lui a5,0x81000
80000344: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
80000348: d1dff0ef jal ra,80000064 <vx_print_str>
8000024c <test_divergence>:
8000024c: fe010113 addi sp,sp,-32
80000250: 00112e23 sw ra,28(sp)
80000254: 00812c23 sw s0,24(sp)
80000258: 02010413 addi s0,sp,32
8000025c: e3dff0ef jal ra,80000098 <vx_threadID>
80000260: fea42623 sw a0,-20(s0)
80000264: fec42783 lw a5,-20(s0)
80000268: 0027b793 sltiu a5,a5,2
8000026c: fef405a3 sb a5,-21(s0)
80000270: feb44783 lbu a5,-21(s0)
80000274: 00078513 mv a0,a5
80000278: e09ff0ef jal ra,80000080 <vx_split>
8000027c: feb44783 lbu a5,-21(s0)
80000280: 06078463 beqz a5,800002e8 <test_divergence+0x9c>
80000284: fec42783 lw a5,-20(s0)
80000288: 0017b793 seqz a5,a5
8000028c: fef40523 sb a5,-22(s0)
80000290: fea44783 lbu a5,-22(s0)
80000294: 00078513 mv a0,a5
80000298: de9ff0ef jal ra,80000080 <vx_split>
8000029c: fea44783 lbu a5,-22(s0)
800002a0: 02078263 beqz a5,800002c4 <test_divergence+0x78>
800002a4: 810007b7 lui a5,0x81000
800002a8: fec42703 lw a4,-20(s0)
800002ac: 00271713 slli a4,a4,0x2
800002b0: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
800002b4: 00f707b3 add a5,a4,a5
800002b8: 00a00713 li a4,10
800002bc: 00e7a023 sw a4,0(a5)
800002c0: 0200006f j 800002e0 <test_divergence+0x94>
800002c4: 810007b7 lui a5,0x81000
800002c8: fec42703 lw a4,-20(s0)
800002cc: 00271713 slli a4,a4,0x2
800002d0: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
800002d4: 00f707b3 add a5,a4,a5
800002d8: 00b00713 li a4,11
800002dc: 00e7a023 sw a4,0(a5)
800002e0: da9ff0ef jal ra,80000088 <vx_join>
800002e4: 0640006f j 80000348 <test_divergence+0xfc>
800002e8: fec42783 lw a5,-20(s0)
800002ec: 0037b793 sltiu a5,a5,3
800002f0: fef404a3 sb a5,-23(s0)
800002f4: fe944783 lbu a5,-23(s0)
800002f8: 00078513 mv a0,a5
800002fc: d85ff0ef jal ra,80000080 <vx_split>
80000300: fe944783 lbu a5,-23(s0)
80000304: 02078263 beqz a5,80000328 <test_divergence+0xdc>
80000308: 810007b7 lui a5,0x81000
8000030c: fec42703 lw a4,-20(s0)
80000310: 00271713 slli a4,a4,0x2
80000314: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
80000318: 00f707b3 add a5,a4,a5
8000031c: 00c00713 li a4,12
80000320: 00e7a023 sw a4,0(a5)
80000324: 0200006f j 80000344 <test_divergence+0xf8>
80000328: 810007b7 lui a5,0x81000
8000032c: fec42703 lw a4,-20(s0)
80000330: 00271713 slli a4,a4,0x2
80000334: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
80000338: 00f707b3 add a5,a4,a5
8000033c: 00d00713 li a4,13
80000340: 00e7a023 sw a4,0(a5)
80000344: d45ff0ef jal ra,80000088 <vx_join>
80000348: d41ff0ef jal ra,80000088 <vx_join>
8000034c: 810007b7 lui a5,0x81000
80000350: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
80000354: 0087a783 lw a5,8(a5)
80000358: 00078513 mv a0,a5
8000035c: d45ff0ef jal ra,800000a0 <vx_print_hex>
80000360: 810007b7 lui a5,0x81000
80000364: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
80000368: cfdff0ef jal ra,80000064 <vx_print_str>
8000036c: 810007b7 lui a5,0x81000
80000370: 12c78793 addi a5,a5,300 # 8100012c <arr+0x0>
80000374: 00c7a783 lw a5,12(a5)
80000378: 00078513 mv a0,a5
8000037c: d25ff0ef jal ra,800000a0 <vx_print_hex>
80000380: 810007b7 lui a5,0x81000
80000384: 09078513 addi a0,a5,144 # 81000090 <arr+0xffffff64>
80000388: cddff0ef jal ra,80000064 <vx_print_str>
8000038c: 00000013 nop
80000390: 01c12083 lw ra,28(sp)
80000394: 01812403 lw s0,24(sp)
80000398: 02010113 addi sp,sp,32
8000039c: 00008067 ret
800003a0 <main>:
800003a0: ff010113 addi sp,sp,-16
800003a4: 00112623 sw ra,12(sp)
800003a8: 00812423 sw s0,8(sp)
800003ac: 01010413 addi s0,sp,16
800003b0: 00100513 li a0,1
800003b4: c81ff0ef jal ra,80000034 <vx_tmc>
800003b8: d79ff0ef jal ra,80000130 <test_tmc>
80000350: 1a87a783 lw a5,424(a5) # 810001a8 <wsapwn_arr+0xfffffff0>
80000354: 00078513 mv a0,a5
80000358: d85ff0ef jal ra,800000dc <vx_print_hex>
8000035c: 810007b7 lui a5,0x81000
80000360: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
80000364: d3dff0ef jal ra,800000a0 <vx_print_str>
80000368: 810007b7 lui a5,0x81000
8000036c: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
80000370: 0047a783 lw a5,4(a5)
80000374: 00078513 mv a0,a5
80000378: d65ff0ef jal ra,800000dc <vx_print_hex>
8000037c: 810007b7 lui a5,0x81000
80000380: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
80000384: d1dff0ef jal ra,800000a0 <vx_print_str>
80000388: 810007b7 lui a5,0x81000
8000038c: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
80000390: 0087a783 lw a5,8(a5)
80000394: 00078513 mv a0,a5
80000398: d45ff0ef jal ra,800000dc <vx_print_hex>
8000039c: 810007b7 lui a5,0x81000
800003a0: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
800003a4: cfdff0ef jal ra,800000a0 <vx_print_str>
800003a8: 810007b7 lui a5,0x81000
800003ac: 1a878793 addi a5,a5,424 # 810001a8 <wsapwn_arr+0xfffffff0>
800003b0: 00c7a783 lw a5,12(a5)
800003b4: 00078513 mv a0,a5
800003b8: d25ff0ef jal ra,800000dc <vx_print_hex>
800003bc: 810007b7 lui a5,0x81000
800003c0: 09478513 addi a0,a5,148 # 81000094 <arr+0xffffff68>
800003c4: ca1ff0ef jal ra,80000064 <vx_print_str>
800003c8: 00400513 li a0,4
800003cc: c69ff0ef jal ra,80000034 <vx_tmc>
800003d0: e41ff0ef jal ra,80000210 <test_divergence>
800003d4: 00100513 li a0,1
800003d8: c5dff0ef jal ra,80000034 <vx_tmc>
800003dc: 00000793 li a5,0
800003e0: 00078513 mv a0,a5
800003e4: 00c12083 lw ra,12(sp)
800003e8: 00812403 lw s0,8(sp)
800003ec: 01010113 addi sp,sp,16
800003f0: 00008067 ret
800003c0: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
800003c4: cddff0ef jal ra,800000a0 <vx_print_str>
800003c8: 00000013 nop
800003cc: 01c12083 lw ra,28(sp)
800003d0: 01812403 lw s0,24(sp)
800003d4: 02010113 addi sp,sp,32
800003d8: 00008067 ret
800003dc <simple_kernel>:
800003dc: fe010113 addi sp,sp,-32
800003e0: 00112e23 sw ra,28(sp)
800003e4: 00812c23 sw s0,24(sp)
800003e8: 02010413 addi s0,sp,32
800003ec: ca5ff0ef jal ra,80000090 <vx_warpID>
800003f0: fea42623 sw a0,-20(s0)
800003f4: 810007b7 lui a5,0x81000
800003f8: fec42703 lw a4,-20(s0)
800003fc: 00271713 slli a4,a4,0x2
80000400: 1b878793 addi a5,a5,440 # 810001b8 <wsapwn_arr+0x0>
80000404: 00f707b3 add a5,a4,a5
80000408: fec42703 lw a4,-20(s0)
8000040c: 00e7a023 sw a4,0(a5)
80000410: fec42783 lw a5,-20(s0)
80000414: 00078663 beqz a5,80000420 <simple_kernel+0x44>
80000418: 00000513 li a0,0
8000041c: c55ff0ef jal ra,80000070 <vx_tmc>
80000420: 00000013 nop
80000424: 01c12083 lw ra,28(sp)
80000428: 01812403 lw s0,24(sp)
8000042c: 02010113 addi sp,sp,32
80000430: 00008067 ret
80000434 <test_wsapwn>:
80000434: fe010113 addi sp,sp,-32
80000438: 00112e23 sw ra,28(sp)
8000043c: 00812c23 sw s0,24(sp)
80000440: 02010413 addi s0,sp,32
80000444: 800007b7 lui a5,0x80000
80000448: 3dc78793 addi a5,a5,988 # 800003dc <wsapwn_arr+0xff000224>
8000044c: fef42623 sw a5,-20(s0)
80000450: fec42583 lw a1,-20(s0)
80000454: 00400513 li a0,4
80000458: c11ff0ef jal ra,80000068 <vx_wspawn>
8000045c: f81ff0ef jal ra,800003dc <simple_kernel>
80000460: 810007b7 lui a5,0x81000
80000464: 1b87a783 lw a5,440(a5) # 810001b8 <wsapwn_arr+0x0>
80000468: 00078513 mv a0,a5
8000046c: c71ff0ef jal ra,800000dc <vx_print_hex>
80000470: 810007b7 lui a5,0x81000
80000474: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
80000478: c29ff0ef jal ra,800000a0 <vx_print_str>
8000047c: 810007b7 lui a5,0x81000
80000480: 1b878793 addi a5,a5,440 # 810001b8 <wsapwn_arr+0x0>
80000484: 0047a783 lw a5,4(a5)
80000488: 00078513 mv a0,a5
8000048c: c51ff0ef jal ra,800000dc <vx_print_hex>
80000490: 810007b7 lui a5,0x81000
80000494: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
80000498: c09ff0ef jal ra,800000a0 <vx_print_str>
8000049c: 810007b7 lui a5,0x81000
800004a0: 1b878793 addi a5,a5,440 # 810001b8 <wsapwn_arr+0x0>
800004a4: 0087a783 lw a5,8(a5)
800004a8: 00078513 mv a0,a5
800004ac: c31ff0ef jal ra,800000dc <vx_print_hex>
800004b0: 810007b7 lui a5,0x81000
800004b4: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
800004b8: be9ff0ef jal ra,800000a0 <vx_print_str>
800004bc: 810007b7 lui a5,0x81000
800004c0: 1b878793 addi a5,a5,440 # 810001b8 <wsapwn_arr+0x0>
800004c4: 00c7a783 lw a5,12(a5)
800004c8: 00078513 mv a0,a5
800004cc: c11ff0ef jal ra,800000dc <vx_print_hex>
800004d0: 810007b7 lui a5,0x81000
800004d4: 09078513 addi a0,a5,144 # 81000090 <wsapwn_arr+0xfffffed8>
800004d8: bc9ff0ef jal ra,800000a0 <vx_print_str>
800004dc: 00000013 nop
800004e0: 01c12083 lw ra,28(sp)
800004e4: 01812403 lw s0,24(sp)
800004e8: 02010113 addi sp,sp,32
800004ec: 00008067 ret
800004f0 <main>:
800004f0: ff010113 addi sp,sp,-16
800004f4: 00112623 sw ra,12(sp)
800004f8: 00812423 sw s0,8(sp)
800004fc: 01010413 addi s0,sp,16
80000500: 00100513 li a0,1
80000504: b6dff0ef jal ra,80000070 <vx_tmc>
80000508: c65ff0ef jal ra,8000016c <test_tmc>
8000050c: 810007b7 lui a5,0x81000
80000510: 0d478513 addi a0,a5,212 # 810000d4 <wsapwn_arr+0xffffff1c>
80000514: b8dff0ef jal ra,800000a0 <vx_print_str>
80000518: 00400513 li a0,4
8000051c: b55ff0ef jal ra,80000070 <vx_tmc>
80000520: d2dff0ef jal ra,8000024c <test_divergence>
80000524: 00100513 li a0,1
80000528: b49ff0ef jal ra,80000070 <vx_tmc>
8000052c: 00000793 li a5,0
80000530: 00078513 mv a0,a5
80000534: 00c12083 lw ra,12(sp)
80000538: 00812403 lw s0,8(sp)
8000053c: 01010113 addi sp,sp,16
80000540: 00008067 ret
Disassembly of section .rodata:
@@ -316,7 +408,7 @@ Disassembly of section .rodata:
8100002a: 0000 unimp
8100002c: 0062 c.slli zero,0x18
8100002e: 0000 unimp
81000030: 00000063 beqz zero,81000030 <main+0xfffc90>
81000030: 00000063 beqz zero,81000030 <main+0xfffb40>
81000034: 0064 addi s1,sp,12
81000036: 0000 unimp
81000038: 0065 c.nop 25
@@ -347,7 +439,7 @@ Disassembly of section .rodata:
8100006e: 0000 unimp
81000070: 0062 c.slli zero,0x18
81000072: 0000 unimp
81000074: 00000063 beqz zero,81000074 <main+0xfffcd4>
81000074: 00000063 beqz zero,81000074 <main+0xfffb84>
81000078: 0064 addi s1,sp,12
8100007a: 0000 unimp
8100007c: 0065 c.nop 25
@@ -361,90 +453,153 @@ Disassembly of section .rodata:
8100008e: 0000 unimp
81000090: 000a c.slli zero,0x2
81000092: 0000 unimp
81000094: 6e32 flw ft8,12(sp)
81000096: 7765 lui a4,0xffff9
81000098: 7420 flw fs0,104(s0)
8100009a: 7365 lui t1,0xffff9
8100009c: 5f74 lw a3,124(a4)
8100009e: 6964 flw fs1,84(a0)
810000a0: 6576 flw fa0,92(sp)
810000a2: 6772 flw fa4,28(sp)
810000a4: 6e65 lui t3,0x19
810000a6: 000a6563 bltu s4,zero,810000b0 <hextoa+0x4>
81000094: 0030 addi a2,sp,8
81000096: 0000 unimp
81000098: 0031 c.nop 12
8100009a: 0000 unimp
8100009c: 0032 c.slli zero,0xc
8100009e: 0000 unimp
810000a0: 00000033 add zero,zero,zero
810000a4: 0034 addi a3,sp,8
810000a6: 0000 unimp
810000a8: 0035 c.nop 13
810000aa: 0000 unimp
810000ac: 0036 c.slli zero,0xd
810000ae: 0000 unimp
810000b0: 00000037 lui zero,0x0
810000b4: 0038 addi a4,sp,8
810000b6: 0000 unimp
810000b8: 0039 c.nop 14
810000ba: 0000 unimp
810000bc: 0061 c.nop 24
810000be: 0000 unimp
810000c0: 0062 c.slli zero,0x18
810000c2: 0000 unimp
810000c4: 00000063 beqz zero,810000c4 <main+0xfffbd4>
810000c8: 0064 addi s1,sp,12
810000ca: 0000 unimp
810000cc: 0065 c.nop 25
810000ce: 0000 unimp
810000d0: 0066 c.slli zero,0x19
810000d2: 0000 unimp
810000d4: 6574 flw fa3,76(a0)
810000d6: 645f7473 csrrci s0,0x645,30
810000da: 7669 lui a2,0xffffa
810000dc: 7265 lui tp,0xffff9
810000de: 636e6567 0x636e6567
810000e2: 0a65 addi s4,s4,25
...
Disassembly of section .data:
810000ac <hextoa>:
810000ac: 0000 unimp
810000ae: 8100 0x8100
810000b0: 0004 0x4
810000b2: 8100 0x8100
810000b4: 0008 0x8
810000b6: 8100 0x8100
810000b8: 000c 0xc
810000ba: 8100 0x8100
810000bc: 0010 0x10
810000be: 8100 0x8100
810000c0: 0014 0x14
810000c2: 8100 0x8100
810000c4: 0018 0x18
810000c6: 8100 0x8100
810000c8: 001c 0x1c
810000ca: 8100 0x8100
810000cc: 0020 addi s0,sp,8
810000ce: 8100 0x8100
810000d0: 0024 addi s1,sp,8
810000d2: 8100 0x8100
810000d4: 0028 addi a0,sp,8
810000d6: 8100 0x8100
810000d8: 002c addi a1,sp,8
810000da: 8100 0x8100
810000dc: 0030 addi a2,sp,8
810000de: 8100 0x8100
810000e0: 0034 addi a3,sp,8
810000e2: 8100 0x8100
810000e4: 0038 addi a4,sp,8
810000e6: 8100 0x8100
810000e8: 003c addi a5,sp,8
810000e8 <hextoa>:
810000e8: 0000 unimp
810000ea: 8100 0x8100
810000ec <hextoa>:
810000ec: 0044 addi s1,sp,4
810000ec: 0004 0x4
810000ee: 8100 0x8100
810000f0: 0048 addi a0,sp,4
810000f0: 0008 0x8
810000f2: 8100 0x8100
810000f4: 004c addi a1,sp,4
810000f4: 000c 0xc
810000f6: 8100 0x8100
810000f8: 0050 addi a2,sp,4
810000f8: 0010 0x10
810000fa: 8100 0x8100
810000fc: 0054 addi a3,sp,4
810000fc: 0014 0x14
810000fe: 8100 0x8100
81000100: 0058 addi a4,sp,4
81000100: 0018 0x18
81000102: 8100 0x8100
81000104: 005c addi a5,sp,4
81000104: 001c 0x1c
81000106: 8100 0x8100
81000108: 0060 addi s0,sp,12
81000108: 0020 addi s0,sp,8
8100010a: 8100 0x8100
8100010c: 0064 addi s1,sp,12
8100010c: 0024 addi s1,sp,8
8100010e: 8100 0x8100
81000110: 0068 addi a0,sp,12
81000110: 0028 addi a0,sp,8
81000112: 8100 0x8100
81000114: 006c addi a1,sp,12
81000114: 002c addi a1,sp,8
81000116: 8100 0x8100
81000118: 0070 addi a2,sp,12
81000118: 0030 addi a2,sp,8
8100011a: 8100 0x8100
8100011c: 0074 addi a3,sp,12
8100011c: 0034 addi a3,sp,8
8100011e: 8100 0x8100
81000120: 0078 addi a4,sp,12
81000120: 0038 addi a4,sp,8
81000122: 8100 0x8100
81000124: 007c addi a5,sp,12
81000124: 003c addi a5,sp,8
81000126: 8100 0x8100
81000128: 0080 addi s0,sp,64
81000128 <hextoa>:
81000128: 0044 addi s1,sp,4
8100012a: 8100 0x8100
8100012c: 0048 addi a0,sp,4
8100012e: 8100 0x8100
81000130: 004c addi a1,sp,4
81000132: 8100 0x8100
81000134: 0050 addi a2,sp,4
81000136: 8100 0x8100
81000138: 0054 addi a3,sp,4
8100013a: 8100 0x8100
8100013c: 0058 addi a4,sp,4
8100013e: 8100 0x8100
81000140: 005c addi a5,sp,4
81000142: 8100 0x8100
81000144: 0060 addi s0,sp,12
81000146: 8100 0x8100
81000148: 0064 addi s1,sp,12
8100014a: 8100 0x8100
8100014c: 0068 addi a0,sp,12
8100014e: 8100 0x8100
81000150: 006c addi a1,sp,12
81000152: 8100 0x8100
81000154: 0070 addi a2,sp,12
81000156: 8100 0x8100
81000158: 0074 addi a3,sp,12
8100015a: 8100 0x8100
8100015c: 0078 addi a4,sp,12
8100015e: 8100 0x8100
81000160: 007c addi a5,sp,12
81000162: 8100 0x8100
81000164: 0080 addi s0,sp,64
81000166: 8100 0x8100
81000168 <hextoa>:
81000168: 0094 addi a3,sp,64
8100016a: 8100 0x8100
8100016c: 0098 addi a4,sp,64
8100016e: 8100 0x8100
81000170: 009c addi a5,sp,64
81000172: 8100 0x8100
81000174: 00a0 addi s0,sp,72
81000176: 8100 0x8100
81000178: 00a4 addi s1,sp,72
8100017a: 8100 0x8100
8100017c: 00a8 addi a0,sp,72
8100017e: 8100 0x8100
81000180: 00ac addi a1,sp,72
81000182: 8100 0x8100
81000184: 00b0 addi a2,sp,72
81000186: 8100 0x8100
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
Disassembly of section .bss:
8100012c <arr>:
810001a8 <arr>:
...
810001b8 <wsapwn_arr>:
...
Disassembly of section .comment:

Binary file not shown.

View File

@@ -1,68 +1,89 @@
:0200000480007A
:10000000130540006B000500F32500029395A50041
:1000100037F1FF6F3301B140130540006B0005005D
:10002000EF000038130500006B0005006B10B500F1
:10003000678000006B000500678000006B40B50022
:10004000678000006B200500678000006B300000B7
:10005000678000007325100267800000732500028E
:1000600067800000130141FF232011002322B1000B
:100070008345050063880500EF00C00113051500E6
:100080006FF01FFF83200100832541001301C10091
:1000900067800000B702010023A0B2006780000063
:1000A000130101FE232E1100232C810013040102F1
:1000B0002326A4FEB70700810327C4FE13172700D9
:1000C0009387C70AB307F70083A7070013850700C4
:1000D000EFF05FF9130000008320C10103248101C8
:1000E0001301010267800000130101FE232E11009D
:1000F000232C8100130401022326A4FE2324B4FE32
:100100000325C4FEEFF01FF6032584FEEFF05FF930
:10011000B707008113850704EFF0DFF41300000038
:100120008320C101032481011301010267800000C3
:10013000130101FE232E1100232C81001304010260
:10014000B707008113854708EFF0DFF11305400082
:10015000EFF05FEEEFF09FF02326A4FE0327C4FE2E
:10016000B70700818326C4FE939626009387C712A3
:10017000B387F60023A0E70013051000EFF09FEB14
:10018000B707008183A7C71213850700EFF05FF15F
:10019000B707008113850709EFF0DFECB70700818F
:1001A0009387C71283A7470013850700EFF05FEF1F
:1001B000B707008113850709EFF0DFEAB707008171
:1001C0009387C71283A7870013850700EFF05FEDC1
:1001D000B707008113850709EFF0DFE8B707008153
:1001E0009387C71283A7C70013850700EFF05FEB63
:1001F000B707008113850709EFF0DFE61300000061
:100200008320C101032481011301010267800000E2
:10021000130101FE232E1100232C8100130401027F
:10022000EFF0DFE32326A4FE8327C4FE93B7270065
:10023000A305F4FE8347B4FE13850700EFF09FE0AB
:100240008347B4FE638407068327C4FE93B7170071
:100250002305F4FE8347A4FE13850700EFF09FDE1D
:100260008347A4FE63820702B70700810327C4FE09
:10027000131727009387C712B307F7001307A000CF
:1002800023A0E7006F000002B70700810327C4FE28
:10029000131727009387C712B307F7001307B0009F
:1002A00023A0E700EFF09FDA6F0040068327C4FE2B
:1002B00093B73700A304F4FE834794FE1385070029
:1002C000EFF05FD8834794FE63820702B70700818F
:1002D0000327C4FE131727009387C712B307F7003D
:1002E0001307C00023A0E7006F000002B7070081DA
:1002F0000327C4FE131727009387C712B307F7001D
:100300001307D00023A0E700EFF05FD4EFF01FD475
:10031000B707008183A7C71213850700EFF05FD8E6
:10032000B707008113850709EFF0DFD3B707008116
:100330009387C71283A7470013850700EFF05FD6A6
:10034000B707008113850709EFF0DFD1B7070081F8
:100350009387C71283A7870013850700EFF05FD448
:10036000B707008113850709EFF0DFCFB7070081DA
:100370009387C71283A7C70013850700EFF05FD2EA
:10038000B707008113850709EFF0DFCD13000000E8
:100390008320C10103248101130101026780000051
:1003A000130101FF232611002324810013040101FE
:1003B00013051000EFF01FC8EFF09FD7B7070081BB
:1003C00013854709EFF01FCA13054000EFF09FC6E1
:1003D000EFF01FE413051000EFF0DFC593070000F6
:1003E000138507008320C10003248100130101014C
:0403F0006780000022
:100000009705000093850502130580006B10B5006D
:10001000EF000001EF00C04D130500006B0005006C
:10002000130540006B000500F32610029396F600BE
:10003000732600029315A6001316260037F1FF6FF2
:100040003301B1403301D1403301C100F326100226
:1000500063860600130500006B0005001305100001
:100060006B000500678000006B10B5006780000022
:100070006B000500678000006B40B50067800000E2
:100080006B200500678000006B3000006780000077
:10009000732510026780000073250002678000004E
:1000A000130141FF232011002322B10083450500E5
:1000B00063880500EF00C001130515006FF01FFFF6
:1000C00083200100832541001301C10067800000E7
:1000D000B702010023A0B20067800000130101FEF7
:1000E000232E1100232C8100130401022326A4FED9
:1000F000B70700810327C4FE131727009387870ED5
:10010000B307F70083A7070013850700EFF05FF937
:10011000130000008320C1010324810113010102A7
:1001200067800000130101FE232E1100232C8100A3
:10013000130401022326A4FE2324B4FE0325C4FED7
:10014000EFF01FF6032584FEEFF05FF9B70700819B
:1001500013850704EFF0DFF4130000008320C101D2
:10016000032481011301010267800000130101FED5
:10017000232E1100232C810013040102B7070081F4
:1001800013854708EFF0DFF113054000EFF05FEE55
:10019000EFF09FF02326A4FE0327C4FEB7070081DB
:1001A0008326C4FE939626009387871AB387F600AA
:1001B00023A0E70013051000EFF09FEBB7070081C5
:1001C00083A7871A13850700EFF05FF1B707008157
:1001D00013850709EFF0DFECB70700819387871AD3
:1001E00083A7470013850700EFF05FEFB707008193
:1001F00013850709EFF0DFEAB70700819387871AB5
:1002000083A7870013850700EFF05FEDB707008134
:1002100013850709EFF0DFE8B70700819387871A96
:1002200083A7C70013850700EFF05FEBB7070081D6
:1002300013850709EFF0DFE6130000008320C101FA
:10024000032481011301010267800000130101FEF4
:10025000232E1100232C810013040102EFF0DFE3B1
:100260002326A4FE8327C4FE93B72700A305F4FE2C
:100270008347B4FE13850700EFF09FE08347B4FE89
:10028000638407068327C4FE93B717002305F4FE93
:100290008347A4FE13850700EFF09FDE8347A4FE8B
:1002A00063820702B70700810327C4FE13172700E4
:1002B0009387871AB307F7001307A00023A0E7006E
:1002C0006F000002B70700810327C4FE1317270041
:1002D0009387871AB307F7001307B00023A0E7003E
:1002E000EFF09FDA6F0040068327C4FE93B7370014
:1002F000A304F4FE834794FE13850700EFF05FD854
:10030000834794FE63820702B70700810327C4FE78
:10031000131727009387871AB307F7001307C00046
:1003200023A0E7006F000002B70700810327C4FE87
:10033000131727009387871AB307F7001307D00016
:1003400023A0E700EFF05FD4EFF01FD4B7070081E0
:1003500083A7871A13850700EFF05FD8B7070081DE
:1003600013850709EFF0DFD3B70700819387871A5A
:1003700083A7470013850700EFF05FD6B70700811A
:1003800013850709EFF0DFD1B70700819387871A3C
:1003900083A7870013850700EFF05FD4B7070081BC
:1003A00013850709EFF0DFCFB70700819387871A1E
:1003B00083A7C70013850700EFF05FD2B70700815E
:1003C00013850709EFF0DFCD130000008320C10182
:1003D000032481011301010267800000130101FE63
:1003E000232E1100232C810013040102EFF05FCAB9
:1003F0002326A4FEB70700810327C4FE1317270096
:100400009387871BB307F7000327C4FE23A0E700E9
:100410008327C4FE6386070013050000EFF05FC565
:10042000130000008320C101032481011301010294
:1004300067800000130101FE232E1100232C810090
:1004400013040102B70700809387C73D2326F4FEFB
:100450008325C4FE13054000EFF01FC1EFF01FF825
:10046000B707008183A7871B13850700EFF01FC71D
:10047000B707008113850709EFF09FC2B707008116
:100480009387871B83A7470013850700EFF01FC5DD
:10049000B707008113850709EFF09FC0B7070081F8
:1004A0009387871B83A7870013850700EFF01FC37F
:1004B000B707008113850709EFF09FBEB7070081DA
:1004C0009387871B83A7C70013850700EFF01FC121
:1004D000B707008113850709EFF09FBC13000000E8
:1004E0008320C10103248101130101026780000000
:1004F000130101FF232611002324810013040101AD
:1005000013051000EFF0DFB6EFF05FC6B70700810C
:100510001385470DEFF0DFB813054000EFF05FB52E
:10052000EFF0DFD213051000EFF09FB49307000047
:10053000138507008320C1000324810013010101FA
:0405400067800000D0
:02000004810079
:10000000300000003100000032000000330000002A
:10001000340000003500000036000000370000000A
@@ -73,15 +94,23 @@
:100060003700000038000000390000006100000087
:1000700062000000630000006400000065000000F2
:1000800066000000746573745F746D630A0000009D
:100090000A000000326E657720746573745F6469CE
:0A00A00076657267656E63650A00FD
:1000AC000000008104000081080000810C00008128
:1000BC001000008114000081180000811C000081D8
:1000CC002000008124000081280000812C00008188
:1000DC003000008134000081380000813C00008138
:1000EC0044000081480000814C00008150000081D8
:1000FC0054000081580000815C0000816000008188
:10010C0064000081680000816C0000817000008137
:10011C0074000081780000817C00008180000081E7
:100090000A000000300000003100000032000000C3
:1000A000330000003400000035000000360000007E
:1000B0003700000038000000390000006100000037
:1000C00062000000630000006400000065000000A2
:1000D00066000000746573745F64697665726765B5
:0500E0006E63650A00DB
:1000E8000000008104000081080000810C000081EC
:1000F8001000008114000081180000811C0000819C
:100108002000008124000081280000812C0000814B
:100118003000008134000081380000813C000081FB
:1001280044000081480000814C000081500000819B
:1001380054000081580000815C000081600000814B
:1001480064000081680000816C00008170000081FB
:1001580074000081780000817C00008180000081AB
:1001680094000081980000819C000081A00000811B
:10017800A4000081A8000081AC000081B0000081CB
:10018800B4000081B8000081BC000081C00000817B
:10019800C4000081C8000081CC000081D00000812B
:040000058000000077
:00000001FF

View File

@@ -1,76 +1,7 @@
#include "intrinsics/vx_intrinsics.h"
#include "io/vx_io.h"
int arr[4];
void test_tmc()
{
vx_print_str("test_tmc\n");
vx_tmc(4);
unsigned tid = vx_threadID(); // Get TID
arr[tid] = tid;
vx_tmc(1);
vx_print_hex(arr[0]);
vx_print_str("\n");
vx_print_hex(arr[1]);
vx_print_str("\n");
vx_print_hex(arr[2]);
vx_print_str("\n");
vx_print_hex(arr[3]);
vx_print_str("\n");
return;
}
void test_divergence()
{
unsigned tid = vx_threadID(); // Get TID
bool b = tid < 2;
__if (b)
{
bool c = tid < 1;
__if (c)
{
arr[tid] = 10;
}
__else
{
arr[tid] = 11;
}
__endif
}
__else
{
bool c = tid < 3;
__if (c)
{
arr[tid] = 12;
}
__else
{
arr[tid] = 13;
}
__endif
}
__endif
vx_print_hex(arr[0]);
vx_print_str("\n");
vx_print_hex(arr[1]);
vx_print_str("\n");
vx_print_hex(arr[2]);
vx_print_str("\n");
vx_print_hex(arr[3]);
vx_print_str("\n");
}
#include "tests/tests.h"
int main()
{
@@ -80,11 +11,16 @@ int main()
test_tmc();
// Control Divergence Test
vx_print_str("2new test_divergence\n");
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;
}