Added runtime (kernel 2.0)
This commit is contained in:
24
runtime/Makefile
Normal file
24
runtime/Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
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_MAIN = ./vx_main.c
|
||||
|
||||
all: HEX DUMP ELF
|
||||
|
||||
DUMP: ELF
|
||||
$(DMP) -D vortex_runtime.elf > vortex_runtime.dump
|
||||
|
||||
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
|
||||
24
runtime/intrinsics/vx_intrinsics.h
Normal file
24
runtime/intrinsics/vx_intrinsics.h
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
// Spawns Warps
|
||||
void vx_wspawn (unsigned numWarps, unsigned PC_spawn);
|
||||
|
||||
// Changes thread mask (activated/deactivates threads)
|
||||
void vx_tmc (unsigned numThreads);
|
||||
|
||||
// Warp Barrier
|
||||
void vx_barrier(unsigned barriedID, unsigned numWarps);
|
||||
|
||||
// split on a predicate
|
||||
void vx_split (unsigned predicate);
|
||||
|
||||
|
||||
// Join
|
||||
void vx_join (void);
|
||||
|
||||
|
||||
// Get Hardware thread ID
|
||||
unsigned vx_threadID(void);
|
||||
|
||||
|
||||
// Get hardware warp ID
|
||||
unsigned vx_warpID(void);
|
||||
50
runtime/intrinsics/vx_intrinsics.s
Normal file
50
runtime/intrinsics/vx_intrinsics.s
Normal file
@@ -0,0 +1,50 @@
|
||||
|
||||
|
||||
|
||||
.section .text
|
||||
|
||||
|
||||
.type vx_wsapwn, @function
|
||||
.global vx_wsapwn
|
||||
vx_wsapwn:
|
||||
.word 0x00b5106b # wspawn a0(numWarps), a1(PC SPAWN)
|
||||
ret
|
||||
|
||||
.type vx_tmc, @function
|
||||
.global vx_tmc
|
||||
vx_tmc:
|
||||
.word 0x0005006b # tmc a0
|
||||
ret
|
||||
|
||||
|
||||
.type vx_barrier, @function
|
||||
.global vx_barrier
|
||||
vx_barrier:
|
||||
.word 0x00b5406b # barrier a0(barrier id), a1(numWarps)
|
||||
ret
|
||||
|
||||
.type vx_split, @function
|
||||
.global vx_split
|
||||
vx_split:
|
||||
.word 0x0005206b # split a0
|
||||
|
||||
.type vx_join, @function
|
||||
.global vx_join
|
||||
vx_join:
|
||||
.word 0x0000306b #join
|
||||
ret
|
||||
|
||||
|
||||
.type vx_warpID, @function
|
||||
.global vx_warpID
|
||||
vx_warpID:
|
||||
csrr a0, 0x21 # read warp IDs
|
||||
ret
|
||||
|
||||
|
||||
.type vx_threadID, @function
|
||||
.global vx_threadID
|
||||
vx_threadID:
|
||||
csrr a0, 0x20 # read thread IDs
|
||||
ret
|
||||
|
||||
30
runtime/io/vx_io.c
Normal file
30
runtime/io/vx_io.c
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
#include "vx_io.h"
|
||||
|
||||
void vx_print_hex(unsigned f)
|
||||
{
|
||||
vx_print_str(hextoa[f]);
|
||||
// if (f < 16)
|
||||
// {
|
||||
// vx_print_str(hextoa[f]);
|
||||
// return;
|
||||
// }
|
||||
// int temp;
|
||||
// int sf = 32;
|
||||
// bool start = false;
|
||||
// do
|
||||
// {
|
||||
// temp = (f >> (sf - 4)) & 0xf;
|
||||
// if (temp != 0) start = true;
|
||||
// if (start) vx_print_str(hextoa[temp]);
|
||||
// sf -= 4;
|
||||
// } while(sf > 0);
|
||||
}
|
||||
|
||||
|
||||
void vx_printf(char * c, unsigned f)
|
||||
{
|
||||
vx_print_str(c);
|
||||
vx_print_hex(f);
|
||||
vx_print_str("\n");
|
||||
}
|
||||
10
runtime/io/vx_io.h
Normal file
10
runtime/io/vx_io.h
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
static char * hextoa[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
|
||||
void vx_print_hex(unsigned);
|
||||
void vx_print_str(char *);
|
||||
void vx_printf(char *, unsigned);
|
||||
void vx_printc(unsigned, char c);
|
||||
30
runtime/io/vx_io.s
Normal file
30
runtime/io/vx_io.s
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
|
||||
.type vx_print_str, @function
|
||||
.global vx_print_str
|
||||
vx_print_str:
|
||||
addi sp, sp, -12
|
||||
sw ra, 0(sp)
|
||||
sw a1, 4(sp)
|
||||
bl:
|
||||
lbu a1,0(a0)
|
||||
beqz a1,be
|
||||
jal vx_printc
|
||||
addi a0, a0, 1
|
||||
j bl
|
||||
be:
|
||||
lw ra, 0(sp)
|
||||
lw a1, 4(sp)
|
||||
addi sp, sp, 12
|
||||
ret
|
||||
|
||||
|
||||
.type vx_printc, @function
|
||||
.global vx_printc
|
||||
vx_printc:
|
||||
la t0, 0x00010000
|
||||
sw a1, 0(t0)
|
||||
ret
|
||||
|
||||
|
||||
|
||||
48
runtime/linker.ld
Normal file
48
runtime/linker.ld
Normal 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) }
|
||||
|
||||
}
|
||||
42
runtime/startup/vx_start.s
Normal file
42
runtime/startup/vx_start.s
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
|
||||
.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
|
||||
##########################
|
||||
# lui sp, 0x7ffff
|
||||
# jal main
|
||||
# li a0, 0
|
||||
# .word 0x0005006b # tmc a0
|
||||
|
||||
|
||||
|
||||
293
runtime/vortex_runtime.dump
Normal file
293
runtime/vortex_runtime.dump
Normal file
@@ -0,0 +1,293 @@
|
||||
|
||||
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: 00259593 slli a1,a1,0x2
|
||||
80000010: 20000637 lui a2,0x20000
|
||||
80000014: 00b60633 add a2,a2,a1
|
||||
80000018: 00b62023 sw a1,0(a2) # 20000000 <_start-0x60000000>
|
||||
8000001c: 40000637 lui a2,0x40000
|
||||
80000020: 00b60633 add a2,a2,a1
|
||||
80000024: 00500693 li a3,5
|
||||
80000028: 00d62023 sw a3,0(a2) # 40000000 <_start-0x40000000>
|
||||
8000002c: 80000637 lui a2,0x80000
|
||||
80000030: 00b60633 add a2,a2,a1
|
||||
80000034: 00700693 li a3,7
|
||||
80000038: 00d62023 sw a3,0(a2) # 80000000 <arr+0xfefffefc>
|
||||
8000003c: 60000637 lui a2,0x60000
|
||||
80000040: 00b60633 add a2,a2,a1
|
||||
80000044: 00700693 li a3,7
|
||||
80000048: 00d62023 sw a3,0(a2) # 60000000 <_start-0x20000000>
|
||||
8000004c: 20000637 lui a2,0x20000
|
||||
80000050: 00b60633 add a2,a2,a1
|
||||
80000054: 00062703 lw a4,0(a2) # 20000000 <_start-0x60000000>
|
||||
80000058: 00000513 li a0,0
|
||||
8000005c: 0005006b 0x5006b
|
||||
|
||||
80000060 <vx_wsapwn>:
|
||||
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 <vx_join>:
|
||||
8000007c: 0000306b 0x306b
|
||||
80000080: 00008067 ret
|
||||
|
||||
80000084 <vx_warpID>:
|
||||
80000084: 02102573 csrr a0,0x21
|
||||
80000088: 00008067 ret
|
||||
|
||||
8000008c <vx_threadID>:
|
||||
8000008c: 02002573 csrr a0,0x20
|
||||
80000090: 00008067 ret
|
||||
|
||||
80000094 <vx_print_str>:
|
||||
80000094: ff410113 addi sp,sp,-12
|
||||
80000098: 00112023 sw ra,0(sp)
|
||||
8000009c: 00b12223 sw a1,4(sp)
|
||||
|
||||
800000a0 <bl>:
|
||||
800000a0: 00054583 lbu a1,0(a0)
|
||||
800000a4: 00058863 beqz a1,800000b4 <be>
|
||||
800000a8: 01c000ef jal ra,800000c4 <vx_printc>
|
||||
800000ac: 00150513 addi a0,a0,1
|
||||
800000b0: ff1ff06f j 800000a0 <bl>
|
||||
|
||||
800000b4 <be>:
|
||||
800000b4: 00012083 lw ra,0(sp)
|
||||
800000b8: 00412583 lw a1,4(sp)
|
||||
800000bc: 00c10113 addi sp,sp,12
|
||||
800000c0: 00008067 ret
|
||||
|
||||
800000c4 <vx_printc>:
|
||||
800000c4: 000102b7 lui t0,0x10
|
||||
800000c8: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000>
|
||||
800000cc: 00008067 ret
|
||||
|
||||
800000d0 <vx_print_hex>:
|
||||
800000d0: fe010113 addi sp,sp,-32
|
||||
800000d4: 00112e23 sw ra,28(sp)
|
||||
800000d8: 00812c23 sw s0,24(sp)
|
||||
800000dc: 02010413 addi s0,sp,32
|
||||
800000e0: fea42623 sw a0,-20(s0)
|
||||
800000e4: 810007b7 lui a5,0x81000
|
||||
800000e8: fec42703 lw a4,-20(s0)
|
||||
800000ec: 00271713 slli a4,a4,0x2
|
||||
800000f0: 08478793 addi a5,a5,132 # 81000084 <arr+0xffffff80>
|
||||
800000f4: 00f707b3 add a5,a4,a5
|
||||
800000f8: 0007a783 lw a5,0(a5)
|
||||
800000fc: 00078513 mv a0,a5
|
||||
80000100: f95ff0ef jal ra,80000094 <vx_print_str>
|
||||
80000104: 00000013 nop
|
||||
80000108: 01c12083 lw ra,28(sp)
|
||||
8000010c: 01812403 lw s0,24(sp)
|
||||
80000110: 02010113 addi sp,sp,32
|
||||
80000114: 00008067 ret
|
||||
|
||||
80000118 <vx_printf>:
|
||||
80000118: fe010113 addi sp,sp,-32
|
||||
8000011c: 00112e23 sw ra,28(sp)
|
||||
80000120: 00812c23 sw s0,24(sp)
|
||||
80000124: 02010413 addi s0,sp,32
|
||||
80000128: fea42623 sw a0,-20(s0)
|
||||
8000012c: feb42423 sw a1,-24(s0)
|
||||
80000130: fec42503 lw a0,-20(s0)
|
||||
80000134: f61ff0ef jal ra,80000094 <vx_print_str>
|
||||
80000138: fe842503 lw a0,-24(s0)
|
||||
8000013c: f95ff0ef jal ra,800000d0 <vx_print_hex>
|
||||
80000140: 810007b7 lui a5,0x81000
|
||||
80000144: 04078513 addi a0,a5,64 # 81000040 <arr+0xffffff3c>
|
||||
80000148: f4dff0ef jal ra,80000094 <vx_print_str>
|
||||
8000014c: 00000013 nop
|
||||
80000150: 01c12083 lw ra,28(sp)
|
||||
80000154: 01812403 lw s0,24(sp)
|
||||
80000158: 02010113 addi sp,sp,32
|
||||
8000015c: 00008067 ret
|
||||
|
||||
80000160 <main>:
|
||||
80000160: fe010113 addi sp,sp,-32
|
||||
80000164: 00112e23 sw ra,28(sp)
|
||||
80000168: 00812c23 sw s0,24(sp)
|
||||
8000016c: 02010413 addi s0,sp,32
|
||||
80000170: 00400513 li a0,4
|
||||
80000174: ef5ff0ef jal ra,80000068 <vx_tmc>
|
||||
80000178: f15ff0ef jal ra,8000008c <vx_threadID>
|
||||
8000017c: fea42623 sw a0,-20(s0)
|
||||
80000180: fec42703 lw a4,-20(s0)
|
||||
80000184: 810007b7 lui a5,0x81000
|
||||
80000188: fec42683 lw a3,-20(s0)
|
||||
8000018c: 00269693 slli a3,a3,0x2
|
||||
80000190: 10478793 addi a5,a5,260 # 81000104 <arr+0x0>
|
||||
80000194: 00f687b3 add a5,a3,a5
|
||||
80000198: 00e7a023 sw a4,0(a5)
|
||||
8000019c: 00000793 li a5,0
|
||||
800001a0: 00078513 mv a0,a5
|
||||
800001a4: 01c12083 lw ra,28(sp)
|
||||
800001a8: 01812403 lw s0,24(sp)
|
||||
800001ac: 02010113 addi sp,sp,32
|
||||
800001b0: 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+0xfffed0>
|
||||
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+0xffff14>
|
||||
81000078: 0064 addi s1,sp,12
|
||||
8100007a: 0000 unimp
|
||||
8100007c: 0065 c.nop 25
|
||||
8100007e: 0000 unimp
|
||||
81000080: 0066 c.slli zero,0x19
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
81000084 <hextoa>:
|
||||
81000084: 0000 unimp
|
||||
81000086: 8100 0x8100
|
||||
81000088: 0004 0x4
|
||||
8100008a: 8100 0x8100
|
||||
8100008c: 0008 0x8
|
||||
8100008e: 8100 0x8100
|
||||
81000090: 000c 0xc
|
||||
81000092: 8100 0x8100
|
||||
81000094: 0010 0x10
|
||||
81000096: 8100 0x8100
|
||||
81000098: 0014 0x14
|
||||
8100009a: 8100 0x8100
|
||||
8100009c: 0018 0x18
|
||||
8100009e: 8100 0x8100
|
||||
810000a0: 001c 0x1c
|
||||
810000a2: 8100 0x8100
|
||||
810000a4: 0020 addi s0,sp,8
|
||||
810000a6: 8100 0x8100
|
||||
810000a8: 0024 addi s1,sp,8
|
||||
810000aa: 8100 0x8100
|
||||
810000ac: 0028 addi a0,sp,8
|
||||
810000ae: 8100 0x8100
|
||||
810000b0: 002c addi a1,sp,8
|
||||
810000b2: 8100 0x8100
|
||||
810000b4: 0030 addi a2,sp,8
|
||||
810000b6: 8100 0x8100
|
||||
810000b8: 0034 addi a3,sp,8
|
||||
810000ba: 8100 0x8100
|
||||
810000bc: 0038 addi a4,sp,8
|
||||
810000be: 8100 0x8100
|
||||
810000c0: 003c addi a5,sp,8
|
||||
810000c2: 8100 0x8100
|
||||
|
||||
810000c4 <hextoa>:
|
||||
810000c4: 0044 addi s1,sp,4
|
||||
810000c6: 8100 0x8100
|
||||
810000c8: 0048 addi a0,sp,4
|
||||
810000ca: 8100 0x8100
|
||||
810000cc: 004c addi a1,sp,4
|
||||
810000ce: 8100 0x8100
|
||||
810000d0: 0050 addi a2,sp,4
|
||||
810000d2: 8100 0x8100
|
||||
810000d4: 0054 addi a3,sp,4
|
||||
810000d6: 8100 0x8100
|
||||
810000d8: 0058 addi a4,sp,4
|
||||
810000da: 8100 0x8100
|
||||
810000dc: 005c addi a5,sp,4
|
||||
810000de: 8100 0x8100
|
||||
810000e0: 0060 addi s0,sp,12
|
||||
810000e2: 8100 0x8100
|
||||
810000e4: 0064 addi s1,sp,12
|
||||
810000e6: 8100 0x8100
|
||||
810000e8: 0068 addi a0,sp,12
|
||||
810000ea: 8100 0x8100
|
||||
810000ec: 006c addi a1,sp,12
|
||||
810000ee: 8100 0x8100
|
||||
810000f0: 0070 addi a2,sp,12
|
||||
810000f2: 8100 0x8100
|
||||
810000f4: 0074 addi a3,sp,12
|
||||
810000f6: 8100 0x8100
|
||||
810000f8: 0078 addi a4,sp,12
|
||||
810000fa: 8100 0x8100
|
||||
810000fc: 007c addi a5,sp,12
|
||||
810000fe: 8100 0x8100
|
||||
81000100: 0080 addi s0,sp,64
|
||||
81000102: 8100 0x8100
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
81000104 <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)
|
||||
...
|
||||
BIN
runtime/vortex_runtime.elf
Normal file
BIN
runtime/vortex_runtime.elf
Normal file
Binary file not shown.
49
runtime/vortex_runtime.hex
Normal file
49
runtime/vortex_runtime.hex
Normal file
@@ -0,0 +1,49 @@
|
||||
:0200000480007A
|
||||
:10000000130540006B000500F325000293952500C1
|
||||
:10001000370600203306B6002320B600370600401E
|
||||
:100020003306B600930650002320D6003706008022
|
||||
:100030003306B600930670002320D6003706006012
|
||||
:100040003306B600930670002320D6003706002042
|
||||
:100050003306B60003270600130500006B000500F9
|
||||
:100060006B10B500678000006B0005006780000022
|
||||
:100070006B40B500678000006B2005006B3000000E
|
||||
:10008000678000007325100267800000732500025E
|
||||
:1000900067800000130141FF232011002322B100DB
|
||||
:1000A0008345050063880500EF00C00113051500B6
|
||||
:1000B0006FF01FFF83200100832541001301C10061
|
||||
:1000C00067800000B702010023A0B2006780000033
|
||||
:1000D000130101FE232E1100232C810013040102C1
|
||||
:1000E0002326A4FEB70700810327C4FE13172700A9
|
||||
:1000F00093874708B307F70083A707001385070016
|
||||
:10010000EFF05FF9130000008320C1010324810197
|
||||
:100110001301010267800000130101FE232E11006C
|
||||
:10012000232C8100130401022326A4FE2324B4FE01
|
||||
:100130000325C4FEEFF01FF6032584FEEFF05FF900
|
||||
:10014000B707008113850704EFF0DFF41300000008
|
||||
:100150008320C10103248101130101026780000093
|
||||
:10016000130101FE232E1100232C81001304010230
|
||||
:1001700013054000EFF05FEFEFF05FF12326A4FEE0
|
||||
:100180000327C4FEB70700818326C4FE939626008A
|
||||
:1001900093874710B387F60023A0E700930700007A
|
||||
:1001A000138507008320C10103248101130101028B
|
||||
:0401B0006780000064
|
||||
:02000004810079
|
||||
:10000000300000003100000032000000330000002A
|
||||
:10001000340000003500000036000000370000000A
|
||||
:10002000380000003900000061000000620000009C
|
||||
:10003000630000006400000065000000660000002E
|
||||
:100040000A00000030000000310000003200000013
|
||||
:1000500033000000340000003500000036000000CE
|
||||
:100060003700000038000000390000006100000087
|
||||
:1000700062000000630000006400000065000000F2
|
||||
:02008000660018
|
||||
:100084000000008104000081080000810C00008150
|
||||
:100094001000008114000081180000811C00008100
|
||||
:1000A4002000008124000081280000812C000081B0
|
||||
:1000B4003000008134000081380000813C00008160
|
||||
:1000C40044000081480000814C0000815000008100
|
||||
:1000D40054000081580000815C00008160000081B0
|
||||
:1000E40064000081680000816C0000817000008160
|
||||
:1000F40074000081780000817C0000818000008110
|
||||
:040000058000000077
|
||||
:00000001FF
|
||||
31
runtime/vx_main.c
Normal file
31
runtime/vx_main.c
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
#include "intrinsics/vx_intrinsics.h"
|
||||
#include "io/vx_io.h"
|
||||
|
||||
int arr[4];
|
||||
|
||||
int main()
|
||||
{
|
||||
// vx_print_str("Hello from runtime\n");
|
||||
|
||||
vx_tmc(4); // Activate 4 threads
|
||||
|
||||
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 0;
|
||||
}
|
||||
Reference in New Issue
Block a user