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

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

View File

@@ -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 <vx_set_sp>
80000008: 00400513 li a0,4
8000000c: 00b5106b 0xb5106b
80000010: 010000ef jal ra,80000020 <vx_set_sp>
80000014: 748000ef jal ra,8000075c <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: 10878793 addi a5,a5,264 # 81000108 <z+0xfffffe94>
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 <z+0xfffffdcc>
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: 2507a783 lw a5,592(a5) # 81000250 <z+0xffffffdc>
800001bc: 00078513 mv a0,a5
800001c0: ea9ff0ef jal ra,80000068 <vx_tmc>
800001c4: 810007b7 lui a5,0x81000
800001c8: 24c7a703 lw a4,588(a5) # 8100024c <z+0xffffffd8>
800001cc: 810007b7 lui a5,0x81000
800001d0: 2487a783 lw a5,584(a5) # 81000248 <z+0xffffffd4>
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: 24e7a623 sw a4,588(a5) # 8100024c <z+0xffffffd8>
80000240: 810007b7 lui a5,0x81000
80000244: fe042703 lw a4,-32(s0)
80000248: 24e7a423 sw a4,584(a5) # 81000248 <z+0xffffffd4>
8000024c: 810007b7 lui a5,0x81000
80000250: fe842703 lw a4,-24(s0)
80000254: 24e7a823 sw a4,592(a5) # 81000250 <z+0xffffffdc>
80000258: 800007b7 lui a5,0x80000
8000025c: 1a478793 addi a5,a5,420 # 800001a4 <z+0xfeffff30>
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 <z+0xfffffe10>
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: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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: 2547a783 lw a5,596(a5) # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
800002ec: dedff0ef jal ra,800000d8 <vx_print_str>
800002f0: 810007b7 lui a5,0x81000
800002f4: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
8000030c: dcdff0ef jal ra,800000d8 <vx_print_str>
80000310: 810007b7 lui a5,0x81000
80000314: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
8000032c: dadff0ef jal ra,800000d8 <vx_print_str>
80000330: 810007b7 lui a5,0x81000
80000334: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
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: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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: 2547a783 lw a5,596(a5) # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
8000047c: c5dff0ef jal ra,800000d8 <vx_print_str>
80000480: 810007b7 lui a5,0x81000
80000484: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
8000049c: c3dff0ef jal ra,800000d8 <vx_print_str>
800004a0: 810007b7 lui a5,0x81000
800004a4: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
800004bc: c1dff0ef jal ra,800000d8 <vx_print_str>
800004c0: 810007b7 lui a5,0x81000
800004c4: 25478793 addi a5,a5,596 # 81000254 <z+0xffffffe0>
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 <z+0xfffffe1c>
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: 26478793 addi a5,a5,612 # 81000264 <z+0xfffffff0>
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 <z+0xff000280>
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: 2647a783 lw a5,612(a5) # 81000264 <z+0xfffffff0>
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 <z+0xfffffe1c>
80000590: b49ff0ef jal ra,800000d8 <vx_print_str>
80000594: 810007b7 lui a5,0x81000
80000598: 26478793 addi a5,a5,612 # 81000264 <z+0xfffffff0>
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 <z+0xfffffe1c>
800005b0: b29ff0ef jal ra,800000d8 <vx_print_str>
800005b4: 810007b7 lui a5,0x81000
800005b8: 26478793 addi a5,a5,612 # 81000264 <z+0xfffffff0>
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 <z+0xfffffe1c>
800005d0: b09ff0ef jal ra,800000d8 <vx_print_str>
800005d4: 810007b7 lui a5,0x81000
800005d8: 26478793 addi a5,a5,612 # 81000264 <z+0xfffffff0>
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 <z+0xfffffe1c>
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 <z+0xfffffe20>
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 <z+0xfffffe34>
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 <mat_add_kernel>:
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 <vx_warpID>
80000680: fea42423 sw a0,-24(s0)
80000684: a0dff0ef jal ra,80000090 <vx_threadID>
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 <mat_add_kernel+0x54>
8000069c: fec42783 lw a5,-20(s0)
800006a0: 00c7a783 lw a5,12(a5)
800006a4: fe442703 lw a4,-28(s0)
800006a8: 00f77663 bgeu a4,a5,800006b4 <mat_add_kernel+0x54>
800006ac: 00100793 li a5,1
800006b0: 0080006f j 800006b8 <mat_add_kernel+0x58>
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 <vx_split>
800006d4: fe344783 lbu a5,-29(s0)
800006d8: 06078663 beqz a5,80000744 <mat_add_kernel+0xe4>
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 <vx_join>
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 <main>:
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 <vx_tmc>
80000774: 810007b7 lui a5,0x81000
80000778: 0f478513 addi a0,a5,244 # 810000f4 <z+0xfffffe80>
8000077c: 95dff0ef jal ra,800000d8 <vx_print_str>
80000780: 810007b7 lui a5,0x81000
80000784: 1c878793 addi a5,a5,456 # 810001c8 <z+0xffffff54>
80000788: fcf42423 sw a5,-56(s0)
8000078c: 810007b7 lui a5,0x81000
80000790: 20878793 addi a5,a5,520 # 81000208 <z+0xffffff94>
80000794: fcf42623 sw a5,-52(s0)
80000798: 810007b7 lui a5,0x81000
8000079c: 27478793 addi a5,a5,628 # 81000274 <z+0x0>
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 <z+0xff0003ec>
800007dc: 00070513 mv a0,a4
800007e0: a35ff0ef jal ra,80000214 <vx_spawnWarps>
800007e4: fe042623 sw zero,-20(s0)
800007e8: 0800006f j 80000868 <main+0x10c>
800007ec: fe042423 sw zero,-24(s0)
800007f0: 0540006f j 80000844 <main+0xe8>
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 <z+0x0>
8000081c: 00f707b3 add a5,a4,a5
80000820: 0007a783 lw a5,0(a5)
80000824: 00078513 mv a0,a5
80000828: 8edff0ef jal ra,80000114 <vx_print_hex>
8000082c: 810007b7 lui a5,0x81000
80000830: 10078513 addi a0,a5,256 # 81000100 <z+0xfffffe8c>
80000834: 8a5ff0ef jal ra,800000d8 <vx_print_str>
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 <main+0x98>
80000850: 810007b7 lui a5,0x81000
80000854: 10478513 addi a0,a5,260 # 81000104 <z+0xfffffe90>
80000858: 881ff0ef jal ra,800000d8 <vx_print_str>
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 <main+0x90>
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 <main+0xfff8d4>
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+0xfff918>
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+0xfff988>
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 <hextoa>:
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 <hextoa>:
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 <hextoa>:
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 <x>:
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 <y>:
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 <global_argument_struct>:
81000248: 0000 unimp
...
8100024c <global_function_pointer>:
8100024c: 0000 unimp
...
81000250 <global_num_threads>:
81000250: 0000 unimp
...
81000254 <arr>:
...
81000264 <wsapwn_arr>:
...
81000274 <z>:
...
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,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