-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathtemplate.S
96 lines (84 loc) · 1.4 KB
/
template.S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#define NOLIBC_DEFINE_ONLY
#include "../nolibc.h"
#ifndef __riscv_vector
# include "../thirdparty/rvv-rollback.S"
#else
# define HAS_RVV_1_0 1
#endif
#include "config.h"
.text
.balign 8
#define CAT_(a,b) a##b
#define CAT(a,b) CAT_(a,b)
#define STR(x) #x
#define STRe(x) STR(x)
#define MX_N 0
#include STRe(INC)
#undef MX_N
#define MX_N 1
#define MX8(x) x##m8
#define MX4(x) x##m4
#define MX2(x) x##m2
#define MX(x) x##m1
#if HAS_RVV_1_0
#define MXf2(x) x##mf2
#define MXf4(x) x##mf4
#if __riscv_v_elen >= 64
#define MXf8e8(x) x##mf8
#else
#define MXf8e8(x) x##mf4
#endif
#endif
#include STRe(INC)
#undef MX_N
#undef MX8
#undef MX4
#undef MX2
#undef MX
#undef MXf2
#undef MXf4
#undef MXf8
#undef MXf8e8
#define MX_N 2
#define MX4(x) x##m8
#define MX2(x) x##m4
#define MX(x) x##m2
#define MXf2(x) x##m1
#if HAS_RVV_1_0
#define MXf4(x) x##mf2
#define MXf8(x) x##mf4
#define MXf8e8(x) x##mf4
#endif
#include STRe(INC)
#undef MX_N
#undef MX4
#undef MX2
#undef MX
#undef MXf2
#undef MXf4
#undef MXf8
#undef MXf8e8
#define MX_N 4
#define MX2(x) x##m8
#define MX(x) x##m4
#define MXf2(x) x##m2
#define MXf4(x) x##m1
#if HAS_RVV_1_0
#define MXf8(x) x##mf2
#define MXf8e8(x) x##mf2
#endif
#include STRe(INC)
#undef MX_N
#undef MX2
#undef MX
#undef MXf2
#undef MXf4
#undef MXf8
#undef MXf8e8
#define MX_N 8
#define MX(x) x##m8
#define MXf2(x) x##m4
#define MXf4(x) x##m2
#define MXf8(x) x##m1
#define MXf8e8(x) x##m1
#include STRe(INC)