projects
/
riscv-tests.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
push env
[riscv-tests.git]
/
benchmarks
/
common
/
crt-mt.S
1
#include "encoding.h"
2
3
.data
4
.globl _heapend
5
.globl environ
6
_heapend:
7
.word 0
8
environ:
9
.word 0
10
11
.text
12
.globl _start
13
14
_start:
15
li x1, 0
16
li x2, 0
17
li x3, 0
18
li x4, 0
19
li x5, 0
20
li x6, 0
21
li x7, 0
22
li x8, 0
23
li x9, 0
24
li x10,0
25
li x11,0
26
li x12,0
27
li x13,0
28
li x14,0
29
li x15,0
30
li x16,0
31
li x17,0
32
li x18,0
33
li x19,0
34
li x20,0
35
li x21,0
36
li x22,0
37
li x23,0
38
li x24,0
39
li x25,0
40
li x26,0
41
li x27,0
42
li x28,0
43
li x29,0
44
li x30,0
45
li x31,0
46
47
# enable fp and accelerator
48
li a0, SR_EF | SR_EA
49
csrs status, a0
50
51
## if that didn't stick, we don't have an FPU, so don't initialize it
52
csrr t0, status
53
and t0, t0, SR_EF
54
beqz t0, 1f
55
56
fssr x0
57
fmv.s.x f0, x0
58
fmv.s.x f1, x0
59
fmv.s.x f2, x0
60
fmv.s.x f3, x0
61
fmv.s.x f4, x0
62
fmv.s.x f5, x0
63
fmv.s.x f6, x0
64
fmv.s.x f7, x0
65
fmv.s.x f8, x0
66
fmv.s.x f9, x0
67
fmv.s.x f10,x0
68
fmv.s.x f11,x0
69
fmv.s.x f12,x0
70
fmv.s.x f13,x0
71
fmv.s.x f14,x0
72
fmv.s.x f15,x0
73
fmv.s.x f16,x0
74
fmv.s.x f17,x0
75
fmv.s.x f18,x0
76
fmv.s.x f19,x0
77
fmv.s.x f20,x0
78
fmv.s.x f21,x0
79
fmv.s.x f22,x0
80
fmv.s.x f23,x0
81
fmv.s.x f24,x0
82
fmv.s.x f25,x0
83
fmv.s.x f26,x0
84
fmv.s.x f27,x0
85
fmv.s.x f28,x0
86
fmv.s.x f29,x0
87
fmv.s.x f30,x0
88
fmv.s.x f31,x0
89
1:
90
91
92
# get core id and number of cores
93
csrr a0, hartid
94
lw a1, 4(zero)
95
96
slli a2, a0, 13
97
la sp, stacktop
98
sub sp, sp, a2
99
100
la tp, tlstop
101
sub tp, tp, a2
102
103
jal thread_entry
104
105
.bss
106
.globl stacktop
107
.globl tlstop
108
109
.align 4
110
.skip 32768
111
stacktop:
112
.skip 65536
113
tlstop: