aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/riscv/csr.s
blob: 397fe0b9eb8b1304690f96e8479be91dc45f6541 (plain)
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
	.macro csr val
	csrr a0,\val
	csrw \val, a1
	.endm

	# Supported privileged specs, 1.9.1, 1.10, 1.11 and 1.12.

	# User Counter/Timers
	csr cycle
	csr time
	csr instret
	csr hpmcounter3
	csr hpmcounter4
	csr hpmcounter5
	csr hpmcounter6
	csr hpmcounter7
	csr hpmcounter8
	csr hpmcounter9
	csr hpmcounter10
	csr hpmcounter11
	csr hpmcounter12
	csr hpmcounter13
	csr hpmcounter14
	csr hpmcounter15
	csr hpmcounter16
	csr hpmcounter17
	csr hpmcounter18
	csr hpmcounter19
	csr hpmcounter20
	csr hpmcounter21
	csr hpmcounter22
	csr hpmcounter23
	csr hpmcounter24
	csr hpmcounter25
	csr hpmcounter26
	csr hpmcounter27
	csr hpmcounter28
	csr hpmcounter29
	csr hpmcounter30
	csr hpmcounter31
	csr cycleh
	csr timeh
	csr instreth
	csr hpmcounter3h
	csr hpmcounter4h
	csr hpmcounter5h
	csr hpmcounter6h
	csr hpmcounter7h
	csr hpmcounter8h
	csr hpmcounter9h
	csr hpmcounter10h
	csr hpmcounter11h
	csr hpmcounter12h
	csr hpmcounter13h
	csr hpmcounter14h
	csr hpmcounter15h
	csr hpmcounter16h
	csr hpmcounter17h
	csr hpmcounter18h
	csr hpmcounter19h
	csr hpmcounter20h
	csr hpmcounter21h
	csr hpmcounter22h
	csr hpmcounter23h
	csr hpmcounter24h
	csr hpmcounter25h
	csr hpmcounter26h
	csr hpmcounter27h
	csr hpmcounter28h
	csr hpmcounter29h
	csr hpmcounter30h
	csr hpmcounter31h

	# Supervisor Trap Setup
	csr sstatus
	csr sie
	csr stvec
	csr scounteren		# Added in 1.10

	# Supervisor Configuration
	csr senvcfg		# Added in 1.12

	# Supervisor Trap Handling
	csr sscratch
	csr sepc
	csr scause
	csr stval		# Added in 1.10
	csr sip

	# Supervisor Protection and Translation
	csr satp		# Added in 1.10

	# Machine Information Registers
	csr mvendorid
	csr marchid
	csr mimpid
	csr mhartid
	csr mconfigptr		# Added in 1.12

	# Machine Trap Setup
	csr mstatus
	csr misa
	csr medeleg
	csr mideleg
	csr mie
	csr mtvec
	csr mcounteren		# Added in 1.10
	csr mstatush		# Added in 1.12

	# Machine Trap Handling
	csr mscratch
	csr mepc
	csr mcause
	csr mtval		# Added in 1.10
	csr mip
	csr mtinst		# Added in 1.12
	csr mtval2		# Added in 1.12

	# Machine Configuration
	csr menvcfg		# Added in 1.12
	csr menvcfgh		# Added in 1.12
	csr mseccfg		# Added in 1.12
	csr mseccfgh		# Added in 1.12

	# Machine Memory Protection
	csr pmpcfg0		# Added in 1.10
	csr pmpcfg1		# Added in 1.10
	csr pmpcfg2		# Added in 1.10
	csr pmpcfg3		# Added in 1.10
	csr pmpcfg4		# Added in 1.12
	csr pmpcfg5		# Added in 1.12
	csr pmpcfg6		# Added in 1.12
	csr pmpcfg7		# Added in 1.12
	csr pmpcfg8		# Added in 1.12
	csr pmpcfg9		# Added in 1.12
	csr pmpcfg10		# Added in 1.12
	csr pmpcfg11		# Added in 1.12
	csr pmpcfg12		# Added in 1.12
	csr pmpcfg13		# Added in 1.12
	csr pmpcfg14		# Added in 1.12
	csr pmpcfg15		# Added in 1.12
	csr pmpaddr0		# Added in 1.10
	csr pmpaddr1		# Added in 1.10
	csr pmpaddr2		# Added in 1.10
	csr pmpaddr3		# Added in 1.10
	csr pmpaddr4		# Added in 1.10
	csr pmpaddr5		# Added in 1.10
	csr pmpaddr6		# Added in 1.10
	csr pmpaddr7		# Added in 1.10
	csr pmpaddr8		# Added in 1.10
	csr pmpaddr9		# Added in 1.10
	csr pmpaddr10		# Added in 1.10
	csr pmpaddr11		# Added in 1.10
	csr pmpaddr12		# Added in 1.10
	csr pmpaddr13		# Added in 1.10
	csr pmpaddr14		# Added in 1.10
	csr pmpaddr15		# Added in 1.10
	csr pmpaddr16		# Added in 1.12
	csr pmpaddr17		# Added in 1.12
	csr pmpaddr18		# Added in 1.12
	csr pmpaddr19		# Added in 1.12
	csr pmpaddr20		# Added in 1.12
	csr pmpaddr21		# Added in 1.12
	csr pmpaddr22		# Added in 1.12
	csr pmpaddr23		# Added in 1.12
	csr pmpaddr24		# Added in 1.12
	csr pmpaddr25		# Added in 1.12
	csr pmpaddr26		# Added in 1.12
	csr pmpaddr27		# Added in 1.12
	csr pmpaddr28		# Added in 1.12
	csr pmpaddr29		# Added in 1.12
	csr pmpaddr30		# Added in 1.12
	csr pmpaddr31		# Added in 1.12
	csr pmpaddr32		# Added in 1.12
	csr pmpaddr33		# Added in 1.12
	csr pmpaddr34		# Added in 1.12
	csr pmpaddr35		# Added in 1.12
	csr pmpaddr36		# Added in 1.12
	csr pmpaddr37		# Added in 1.12
	csr pmpaddr38		# Added in 1.12
	csr pmpaddr39		# Added in 1.12
	csr pmpaddr40		# Added in 1.12
	csr pmpaddr41		# Added in 1.12
	csr pmpaddr42		# Added in 1.12
	csr pmpaddr43		# Added in 1.12
	csr pmpaddr44		# Added in 1.12
	csr pmpaddr45		# Added in 1.12
	csr pmpaddr46		# Added in 1.12
	csr pmpaddr47		# Added in 1.12
	csr pmpaddr48		# Added in 1.12
	csr pmpaddr49		# Added in 1.12
	csr pmpaddr50		# Added in 1.12
	csr pmpaddr51		# Added in 1.12
	csr pmpaddr52		# Added in 1.12
	csr pmpaddr53		# Added in 1.12
	csr pmpaddr54		# Added in 1.12
	csr pmpaddr55		# Added in 1.12
	csr pmpaddr56		# Added in 1.12
	csr pmpaddr57		# Added in 1.12
	csr pmpaddr58		# Added in 1.12
	csr pmpaddr59		# Added in 1.12
	csr pmpaddr60		# Added in 1.12
	csr pmpaddr61		# Added in 1.12
	csr pmpaddr62		# Added in 1.12
	csr pmpaddr63		# Added in 1.12

	# Machine Counter/Timer
	csr mcycle
	csr minstret
	csr mhpmcounter3
	csr mhpmcounter4
	csr mhpmcounter5
	csr mhpmcounter6
	csr mhpmcounter7
	csr mhpmcounter8
	csr mhpmcounter9
	csr mhpmcounter10
	csr mhpmcounter11
	csr mhpmcounter12
	csr mhpmcounter13
	csr mhpmcounter14
	csr mhpmcounter15
	csr mhpmcounter16
	csr mhpmcounter17
	csr mhpmcounter18
	csr mhpmcounter19
	csr mhpmcounter20
	csr mhpmcounter21
	csr mhpmcounter22
	csr mhpmcounter23
	csr mhpmcounter24
	csr mhpmcounter25
	csr mhpmcounter26
	csr mhpmcounter27
	csr mhpmcounter28
	csr mhpmcounter29
	csr mhpmcounter30
	csr mhpmcounter31
	csr mcycleh
	csr minstreth
	csr mhpmcounter3h
	csr mhpmcounter4h
	csr mhpmcounter5h
	csr mhpmcounter6h
	csr mhpmcounter7h
	csr mhpmcounter8h
	csr mhpmcounter9h
	csr mhpmcounter10h
	csr mhpmcounter11h
	csr mhpmcounter12h
	csr mhpmcounter13h
	csr mhpmcounter14h
	csr mhpmcounter15h
	csr mhpmcounter16h
	csr mhpmcounter17h
	csr mhpmcounter18h
	csr mhpmcounter19h
	csr mhpmcounter20h
	csr mhpmcounter21h
	csr mhpmcounter22h
	csr mhpmcounter23h
	csr mhpmcounter24h
	csr mhpmcounter25h
	csr mhpmcounter26h
	csr mhpmcounter27h
	csr mhpmcounter28h
	csr mhpmcounter29h
	csr mhpmcounter30h
	csr mhpmcounter31h

	# Machine Counter Setup
	csr mcountinhibit	# Added in 1.11
	csr mhpmevent3
	csr mhpmevent4
	csr mhpmevent5
	csr mhpmevent6
	csr mhpmevent7
	csr mhpmevent8
	csr mhpmevent9
	csr mhpmevent10
	csr mhpmevent11
	csr mhpmevent12
	csr mhpmevent13
	csr mhpmevent14
	csr mhpmevent15
	csr mhpmevent16
	csr mhpmevent17
	csr mhpmevent18
	csr mhpmevent19
	csr mhpmevent20
	csr mhpmevent21
	csr mhpmevent22
	csr mhpmevent23
	csr mhpmevent24
	csr mhpmevent25
	csr mhpmevent26
	csr mhpmevent27
	csr mhpmevent28
	csr mhpmevent29
	csr mhpmevent30
	csr mhpmevent31

	# Hypervisor Trap Setup
	csr hstatus
	csr hedeleg
	csr hideleg
	csr hie
	csr hcounteren
	csr hgeie

	# Hypervisor Trap Handling
	csr htval
	csr hip
	csr hvip
	csr htinst
	csr hgeip

	# Hypervisor Configuration
	csr henvcfg
	csr henvcfgh

	# Hypervisor Protection and Translation
	csr hgatp

	# Hypervisor Counter/Timer Virtualization Registers
	csr htimedelta
	csr htimedeltah

	# Virtual Supervisor Registers
	csr vsstatus
	csr vsie
	csr vstvec
	csr vsscratch
	csr vsepc
	csr vscause
	csr vstval
	csr vsip
	csr vsatp

	# Smstateen/Ssstateen extensions
	csr mstateen0
	csr mstateen1
	csr mstateen2
	csr mstateen3
	csr sstateen0
	csr sstateen1
	csr sstateen2
	csr sstateen3
	csr hstateen0
	csr hstateen1
	csr hstateen2
	csr hstateen3
	csr mstateen0h
	csr mstateen1h
	csr mstateen2h
	csr mstateen3h
	csr hstateen0h
	csr hstateen1h
	csr hstateen2h
	csr hstateen3h

	# Sscofpmf extension
	csr scountovf
	csr mhpmevent3h
	csr mhpmevent4h
	csr mhpmevent5h
	csr mhpmevent6h
	csr mhpmevent7h
	csr mhpmevent8h
	csr mhpmevent9h
	csr mhpmevent10h
	csr mhpmevent11h
	csr mhpmevent12h
	csr mhpmevent13h
	csr mhpmevent14h
	csr mhpmevent15h
	csr mhpmevent16h
	csr mhpmevent17h
	csr mhpmevent18h
	csr mhpmevent19h
	csr mhpmevent20h
	csr mhpmevent21h
	csr mhpmevent22h
	csr mhpmevent23h
	csr mhpmevent24h
	csr mhpmevent25h
	csr mhpmevent26h
	csr mhpmevent27h
	csr mhpmevent28h
	csr mhpmevent29h
	csr mhpmevent30h
	csr mhpmevent31h

	# Sstc extension
	csr stimecmp
	csr stimecmph
	csr vstimecmp
	csr vstimecmph

	# Supported in previous priv spec, but dropped now

	csr ubadaddr		# 0x043 in 1.9.1, but the value is utval since 1.10
	csr sbadaddr		# 0x143 in 1.9.1, but the value is stval since 1.10
	csr sptbr		# 0x180 in 1.9.1, but the value is satp since 1.10
	csr mbadaddr		# 0x343 in 1.9.1, but the value is mtval since 1.10
	csr mucounteren		# 0x320 in 1.9.1, dropped in 1.10, but the value is mcountinhibit since 1.11
	csr mbase		# 0x380 in 1.9.1, dropped in 1.10
	csr mbound		# 0x381 in 1.9.1, dropped in 1.10
	csr mibase		# 0x382 in 1.9.1, dropped in 1.10
	csr mibound		# 0x383 in 1.9.1, dropped in 1.10
	csr mdbase		# 0x384 in 1.9.1, dropped in 1.10
	csr mdbound		# 0x385 in 1.9.1, dropped in 1.10
	csr mscounteren		# 0x321 in 1.9.1, dropped in 1.10
	csr mhcounteren		# 0x322 in 1.9.1, dropped in 1.10
	csr ustatus		# 0x0   in 1.9.1, dropped in 1.12
	csr uie			# 0x4   in 1.9.1, dropped in 1.12
	csr utvec		# 0x5   in 1.9.1, dropped in 1.12
	csr uscratch		# 0x40  in 1.9.1, dropped in 1.12
	csr uepc		# 0x41  in 1.9.1, dropped in 1.12
	csr ucause		# 0x42  in 1.9.1, dropped in 1.12
	csr utval		# 0x43  in 1.10,  dropped in 1.12
	csr uip			# 0x44  in 1.9.1, dropped in 1.12
	csr sedeleg		# 0x102 in 1.9.1, dropped in 1.12
	csr sideleg		# 0x103 in 1.9.1, dropped in 1.12

	# Unprivileged CSR which are not controlled by privilege spec

	# Float
	csr fflags
	csr frm
	csr fcsr

	# Core debug
	csr dcsr
	csr dpc
	csr dscratch0
	csr dscratch1
	csr dscratch		# 0x7b2, alias to dscratch0

	# Trigger debug
	csr tselect
	csr tdata1
	csr tdata2
	csr tdata3
	csr tinfo
	csr tcontrol
	csr hcontext
	csr scontext
	csr mcontext
	csr mscontext
	csr mcontrol		# 0x7a1, alias to tdata1
	csr mcontrol6		# 0x7a1, alias to tdata1
	csr icount		# 0x7a1, alias to tdata1
	csr itrigger		# 0x7a1, alias to tdata1
	csr etrigger		# 0x7a1, alias to tdata1
	csr tmexttrigger	# 0x7a1, alias to tdata1
	csr textra32		# 0x7a3, alias to tdata3
	csr textra64		# 0x7a3, alias to tdata3

	# Scalar crypto
	csr seed		# 0x015, Entropy Source

	# Vector
	csr vstart
	csr vxsat
	csr vxrm
	csr vcsr
	csr vl
	csr vtype
	csr vlenb