Fix bitfield long types for stabs/dwarf
[tinycc.git] / riscv64-tok.h
blob0b2184126e67d3c89bf84705e1b0089ffc92ac2a
1 /* ------------------------------------------------------------------ */
2 /* WARNING: relative order of tokens is important. */
4 // See https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf
6 /* register */
8 DEF_ASM(x0)
9 DEF_ASM(x1)
10 DEF_ASM(x2)
11 DEF_ASM(x3)
12 DEF_ASM(x4)
13 DEF_ASM(x5)
14 DEF_ASM(x6)
15 DEF_ASM(x7)
16 DEF_ASM(x8)
17 DEF_ASM(x9)
18 DEF_ASM(x10)
19 DEF_ASM(x11)
20 DEF_ASM(x12)
21 DEF_ASM(x13)
22 DEF_ASM(x14)
23 DEF_ASM(x15)
24 DEF_ASM(x16)
25 DEF_ASM(x17)
26 DEF_ASM(x18)
27 DEF_ASM(x19)
28 DEF_ASM(x20)
29 DEF_ASM(x21)
30 DEF_ASM(x22)
31 DEF_ASM(x23)
32 DEF_ASM(x24)
33 DEF_ASM(x25)
34 DEF_ASM(x26)
35 DEF_ASM(x27)
36 DEF_ASM(x28)
37 DEF_ASM(x29)
38 DEF_ASM(x30)
39 DEF_ASM(x31)
41 /* register macros */
43 DEF_ASM(zero)
45 DEF_ASM(ra)
46 DEF_ASM(sp)
47 DEF_ASM(gp)
48 DEF_ASM(tp)
49 DEF_ASM(t0)
50 DEF_ASM(t1)
51 DEF_ASM(t2)
52 DEF_ASM(fp)
53 DEF_ASM(s1)
54 DEF_ASM(a0)
55 DEF_ASM(a1)
56 DEF_ASM(a2)
57 DEF_ASM(a3)
58 DEF_ASM(a4)
59 DEF_ASM(a5)
60 DEF_ASM(a6)
61 DEF_ASM(a7)
62 DEF_ASM(s2)
63 DEF_ASM(s3)
64 DEF_ASM(s4)
65 DEF_ASM(s5)
66 DEF_ASM(s6)
67 DEF_ASM(s7)
68 DEF_ASM(s8)
69 DEF_ASM(s9)
70 DEF_ASM(s10)
71 DEF_ASM(s11)
72 DEF_ASM(t3)
73 DEF_ASM(t4)
74 DEF_ASM(t5)
75 DEF_ASM(t6)
77 DEF_ASM(s0) // = x8
80 DEF_ASM(pc)
82 #define DEF_ASM_WITH_SUFFIX(x, y) \
83 DEF(TOK_ASM_ ## x ## _ ## y, #x #y)
85 /* Loads */
87 DEF_ASM(lb)
88 DEF_ASM(lh)
89 DEF_ASM(lw)
90 DEF_ASM(lbu)
91 DEF_ASM(lhu)
92 DEF_ASM(ld)
93 DEF_ASM(lq)
94 DEF_ASM(lwu)
95 DEF_ASM(ldu)
97 /* Stores */
99 DEF_ASM(sb)
100 DEF_ASM(sh)
101 DEF_ASM(sw)
102 DEF_ASM(sd)
103 DEF_ASM(sq)
105 /* Shifts */
107 DEF_ASM(sll)
108 DEF_ASM(slli)
109 DEF_ASM(srl)
110 DEF_ASM(srli)
111 DEF_ASM(sra)
112 DEF_ASM(srai)
114 DEF_ASM(sllw)
115 DEF_ASM(slld)
116 DEF_ASM(slliw)
117 DEF_ASM(sllid)
118 DEF_ASM(srlw)
119 DEF_ASM(srld)
120 DEF_ASM(srliw)
121 DEF_ASM(srlid)
122 DEF_ASM(sraw)
123 DEF_ASM(srad)
124 DEF_ASM(sraiw)
125 DEF_ASM(sraid)
127 /* Arithmetic */
129 DEF_ASM(add)
130 DEF_ASM(addi)
131 DEF_ASM(sub)
132 DEF_ASM(lui)
133 DEF_ASM(auipc)
135 DEF_ASM(addw)
136 DEF_ASM(addd)
137 DEF_ASM(addiw)
138 DEF_ASM(addid)
139 DEF_ASM(subw)
140 DEF_ASM(subd)
142 /* Logical */
144 DEF_ASM(xor)
145 DEF_ASM(xori)
146 DEF_ASM(or)
147 DEF_ASM(ori)
148 DEF_ASM(and)
149 DEF_ASM(andi)
151 /* Compare */
153 DEF_ASM(slt)
154 DEF_ASM(slti)
155 DEF_ASM(sltu)
156 DEF_ASM(sltiu)
158 /* Branch */
160 DEF_ASM(beq)
161 DEF_ASM(bne)
162 DEF_ASM(blt)
163 DEF_ASM(bge)
164 DEF_ASM(bltu)
165 DEF_ASM(bgeu)
167 /* Sync */
169 DEF_ASM(fence)
170 DEF_ASM_WITH_SUFFIX(fence, i)
172 /* System call */
174 DEF_ASM(scall)
175 DEF_ASM(sbreak)
177 /* Counters */
179 DEF_ASM(rdcycle)
180 DEF_ASM(rdcycleh)
181 DEF_ASM(rdtime)
182 DEF_ASM(rdtimeh)
183 DEF_ASM(rdinstret)
184 DEF_ASM(rdinstreth)
186 /* Privileged Instructions */
188 DEF_ASM(ecall)
189 DEF_ASM(ebreak)
191 DEF_ASM(mrts)
192 DEF_ASM(mrth)
193 DEF_ASM(hrts)
194 DEF_ASM(wfi)