RISC-V: Add missing privileged spec registers.

gas/
	* testsuite/gas/riscv/priv-reg.d, testsuite/gas/riscv/priv-reg.s: New.

	include/
	* opcode/riscv-opc.h (DECLARE_CSR): Add missing privileged registers.
	Sort to match privileged spec documentation order.
	(DECLARE_CSR_ALIAS): Add ubadaddr, and comments.
This commit is contained in:
Jim Wilson 2017-12-28 13:21:46 -08:00
parent 4ee2b642dd
commit d9be0c189a
5 changed files with 818 additions and 230 deletions

View File

@ -1,3 +1,7 @@
2017-12-28 Jim Wilson <jimw@sifive.com>
* testsuite/gas/riscv/priv-reg.d, testsuite/gas/riscv/priv-reg.s: New.
2017-12-20 Jim Wilson <jimw@sifive.com>
* config/tc-riscv.c (risc_ip) <o>: Add comment.

View File

@ -0,0 +1,251 @@
#as: -march=rv32i
#objdump: -dr
.*:[ ]+file format .*
Disassembly of section .text:
0+000 <.text>:
[ ]+0:[ ]+00002573[ ]+csrr[ ]+a0,ustatus
[ ]+4:[ ]+00402573[ ]+csrr[ ]+a0,uie
[ ]+8:[ ]+00502573[ ]+csrr[ ]+a0,utvec
[ ]+c:[ ]+04002573[ ]+csrr[ ]+a0,uscratch
[ ]+10:[ ]+04102573[ ]+csrr[ ]+a0,uepc
[ ]+14:[ ]+04202573[ ]+csrr[ ]+a0,ucause
[ ]+18:[ ]+04302573[ ]+csrr[ ]+a0,utval
[ ]+1c:[ ]+04402573[ ]+csrr[ ]+a0,uip
[ ]+20:[ ]+00102573[ ]+frflags[ ]+a0
[ ]+24:[ ]+00202573[ ]+frrm[ ]+a0
[ ]+28:[ ]+00302573[ ]+frsr[ ]+a0
[ ]+2c:[ ]+c0002573[ ]+rdcycle[ ]+a0
[ ]+30:[ ]+c0102573[ ]+rdtime[ ]+a0
[ ]+34:[ ]+c0202573[ ]+rdinstret[ ]+a0
[ ]+38:[ ]+c0302573[ ]+csrr[ ]+a0,hpmcounter3
[ ]+3c:[ ]+c0402573[ ]+csrr[ ]+a0,hpmcounter4
[ ]+40:[ ]+c0502573[ ]+csrr[ ]+a0,hpmcounter5
[ ]+44:[ ]+c0602573[ ]+csrr[ ]+a0,hpmcounter6
[ ]+48:[ ]+c0702573[ ]+csrr[ ]+a0,hpmcounter7
[ ]+4c:[ ]+c0802573[ ]+csrr[ ]+a0,hpmcounter8
[ ]+50:[ ]+c0902573[ ]+csrr[ ]+a0,hpmcounter9
[ ]+54:[ ]+c0a02573[ ]+csrr[ ]+a0,hpmcounter10
[ ]+58:[ ]+c0b02573[ ]+csrr[ ]+a0,hpmcounter11
[ ]+5c:[ ]+c0c02573[ ]+csrr[ ]+a0,hpmcounter12
[ ]+60:[ ]+c0d02573[ ]+csrr[ ]+a0,hpmcounter13
[ ]+64:[ ]+c0e02573[ ]+csrr[ ]+a0,hpmcounter14
[ ]+68:[ ]+c0f02573[ ]+csrr[ ]+a0,hpmcounter15
[ ]+6c:[ ]+c1002573[ ]+csrr[ ]+a0,hpmcounter16
[ ]+70:[ ]+c1102573[ ]+csrr[ ]+a0,hpmcounter17
[ ]+74:[ ]+c1202573[ ]+csrr[ ]+a0,hpmcounter18
[ ]+78:[ ]+c1302573[ ]+csrr[ ]+a0,hpmcounter19
[ ]+7c:[ ]+c1402573[ ]+csrr[ ]+a0,hpmcounter20
[ ]+80:[ ]+c1502573[ ]+csrr[ ]+a0,hpmcounter21
[ ]+84:[ ]+c1602573[ ]+csrr[ ]+a0,hpmcounter22
[ ]+88:[ ]+c1702573[ ]+csrr[ ]+a0,hpmcounter23
[ ]+8c:[ ]+c1802573[ ]+csrr[ ]+a0,hpmcounter24
[ ]+90:[ ]+c1902573[ ]+csrr[ ]+a0,hpmcounter25
[ ]+94:[ ]+c1a02573[ ]+csrr[ ]+a0,hpmcounter26
[ ]+98:[ ]+c1b02573[ ]+csrr[ ]+a0,hpmcounter27
[ ]+9c:[ ]+c1c02573[ ]+csrr[ ]+a0,hpmcounter28
[ ]+a0:[ ]+c1d02573[ ]+csrr[ ]+a0,hpmcounter29
[ ]+a4:[ ]+c1e02573[ ]+csrr[ ]+a0,hpmcounter30
[ ]+a8:[ ]+c1f02573[ ]+csrr[ ]+a0,hpmcounter31
[ ]+ac:[ ]+c8002573[ ]+rdcycleh[ ]+a0
[ ]+b0:[ ]+c8102573[ ]+rdtimeh[ ]+a0
[ ]+b4:[ ]+c8202573[ ]+rdinstreth[ ]+a0
[ ]+b8:[ ]+c8302573[ ]+csrr[ ]+a0,hpmcounter3h
[ ]+bc:[ ]+c8402573[ ]+csrr[ ]+a0,hpmcounter4h
[ ]+c0:[ ]+c8502573[ ]+csrr[ ]+a0,hpmcounter5h
[ ]+c4:[ ]+c8602573[ ]+csrr[ ]+a0,hpmcounter6h
[ ]+c8:[ ]+c8702573[ ]+csrr[ ]+a0,hpmcounter7h
[ ]+cc:[ ]+c8802573[ ]+csrr[ ]+a0,hpmcounter8h
[ ]+d0:[ ]+c8902573[ ]+csrr[ ]+a0,hpmcounter9h
[ ]+d4:[ ]+c8a02573[ ]+csrr[ ]+a0,hpmcounter10h
[ ]+d8:[ ]+c8b02573[ ]+csrr[ ]+a0,hpmcounter11h
[ ]+dc:[ ]+c8c02573[ ]+csrr[ ]+a0,hpmcounter12h
[ ]+e0:[ ]+c8d02573[ ]+csrr[ ]+a0,hpmcounter13h
[ ]+e4:[ ]+c8e02573[ ]+csrr[ ]+a0,hpmcounter14h
[ ]+e8:[ ]+c8f02573[ ]+csrr[ ]+a0,hpmcounter15h
[ ]+ec:[ ]+c9002573[ ]+csrr[ ]+a0,hpmcounter16h
[ ]+f0:[ ]+c9102573[ ]+csrr[ ]+a0,hpmcounter17h
[ ]+f4:[ ]+c9202573[ ]+csrr[ ]+a0,hpmcounter18h
[ ]+f8:[ ]+c9302573[ ]+csrr[ ]+a0,hpmcounter19h
[ ]+fc:[ ]+c9402573[ ]+csrr[ ]+a0,hpmcounter20h
[ ]+100:[ ]+c9502573[ ]+csrr[ ]+a0,hpmcounter21h
[ ]+104:[ ]+c9602573[ ]+csrr[ ]+a0,hpmcounter22h
[ ]+108:[ ]+c9702573[ ]+csrr[ ]+a0,hpmcounter23h
[ ]+10c:[ ]+c9802573[ ]+csrr[ ]+a0,hpmcounter24h
[ ]+110:[ ]+c9902573[ ]+csrr[ ]+a0,hpmcounter25h
[ ]+114:[ ]+c9a02573[ ]+csrr[ ]+a0,hpmcounter26h
[ ]+118:[ ]+c9b02573[ ]+csrr[ ]+a0,hpmcounter27h
[ ]+11c:[ ]+c9c02573[ ]+csrr[ ]+a0,hpmcounter28h
[ ]+120:[ ]+c9d02573[ ]+csrr[ ]+a0,hpmcounter29h
[ ]+124:[ ]+c9e02573[ ]+csrr[ ]+a0,hpmcounter30h
[ ]+128:[ ]+c9f02573[ ]+csrr[ ]+a0,hpmcounter31h
[ ]+12c:[ ]+10002573[ ]+csrr[ ]+a0,sstatus
[ ]+130:[ ]+10202573[ ]+csrr[ ]+a0,sedeleg
[ ]+134:[ ]+10302573[ ]+csrr[ ]+a0,sideleg
[ ]+138:[ ]+10402573[ ]+csrr[ ]+a0,sie
[ ]+13c:[ ]+10502573[ ]+csrr[ ]+a0,stvec
[ ]+140:[ ]+14002573[ ]+csrr[ ]+a0,sscratch
[ ]+144:[ ]+14102573[ ]+csrr[ ]+a0,sepc
[ ]+148:[ ]+14202573[ ]+csrr[ ]+a0,scause
[ ]+14c:[ ]+14302573[ ]+csrr[ ]+a0,sbadaddr
[ ]+150:[ ]+14402573[ ]+csrr[ ]+a0,sip
[ ]+154:[ ]+18002573[ ]+csrr[ ]+a0,satp
[ ]+158:[ ]+20002573[ ]+csrr[ ]+a0,hstatus
[ ]+15c:[ ]+20202573[ ]+csrr[ ]+a0,hedeleg
[ ]+160:[ ]+20302573[ ]+csrr[ ]+a0,hideleg
[ ]+164:[ ]+20402573[ ]+csrr[ ]+a0,hie
[ ]+168:[ ]+20502573[ ]+csrr[ ]+a0,htvec
[ ]+16c:[ ]+24002573[ ]+csrr[ ]+a0,hscratch
[ ]+170:[ ]+24102573[ ]+csrr[ ]+a0,hepc
[ ]+174:[ ]+24202573[ ]+csrr[ ]+a0,hcause
[ ]+178:[ ]+24302573[ ]+csrr[ ]+a0,hbadaddr
[ ]+17c:[ ]+24402573[ ]+csrr[ ]+a0,hip
[ ]+180:[ ]+f1102573[ ]+csrr[ ]+a0,mvendorid
[ ]+184:[ ]+f1202573[ ]+csrr[ ]+a0,marchid
[ ]+188:[ ]+f1302573[ ]+csrr[ ]+a0,mimpid
[ ]+18c:[ ]+f1402573[ ]+csrr[ ]+a0,mhartid
[ ]+190:[ ]+30002573[ ]+csrr[ ]+a0,mstatus
[ ]+194:[ ]+30102573[ ]+csrr[ ]+a0,misa
[ ]+198:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+19c:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+1a0:[ ]+30402573[ ]+csrr[ ]+a0,mie
[ ]+1a4:[ ]+30502573[ ]+csrr[ ]+a0,mtvec
[ ]+1a8:[ ]+34002573[ ]+csrr[ ]+a0,mscratch
[ ]+1ac:[ ]+34102573[ ]+csrr[ ]+a0,mepc
[ ]+1b0:[ ]+34202573[ ]+csrr[ ]+a0,mcause
[ ]+1b4:[ ]+34302573[ ]+csrr[ ]+a0,mbadaddr
[ ]+1b8:[ ]+34402573[ ]+csrr[ ]+a0,mip
[ ]+1bc:[ ]+38002573[ ]+csrr[ ]+a0,mbase
[ ]+1c0:[ ]+38102573[ ]+csrr[ ]+a0,mbound
[ ]+1c4:[ ]+38202573[ ]+csrr[ ]+a0,mibase
[ ]+1c8:[ ]+38302573[ ]+csrr[ ]+a0,mibound
[ ]+1cc:[ ]+38402573[ ]+csrr[ ]+a0,mdbase
[ ]+1d0:[ ]+38502573[ ]+csrr[ ]+a0,mdbound
[ ]+1d4:[ ]+b0002573[ ]+csrr[ ]+a0,mcycle
[ ]+1d8:[ ]+b0202573[ ]+csrr[ ]+a0,minstret
[ ]+1dc:[ ]+b0302573[ ]+csrr[ ]+a0,mhpmcounter3
[ ]+1e0:[ ]+b0402573[ ]+csrr[ ]+a0,mhpmcounter4
[ ]+1e4:[ ]+b0502573[ ]+csrr[ ]+a0,mhpmcounter5
[ ]+1e8:[ ]+b0602573[ ]+csrr[ ]+a0,mhpmcounter6
[ ]+1ec:[ ]+b0702573[ ]+csrr[ ]+a0,mhpmcounter7
[ ]+1f0:[ ]+b0802573[ ]+csrr[ ]+a0,mhpmcounter8
[ ]+1f4:[ ]+b0902573[ ]+csrr[ ]+a0,mhpmcounter9
[ ]+1f8:[ ]+b0a02573[ ]+csrr[ ]+a0,mhpmcounter10
[ ]+1fc:[ ]+b0b02573[ ]+csrr[ ]+a0,mhpmcounter11
[ ]+200:[ ]+b0c02573[ ]+csrr[ ]+a0,mhpmcounter12
[ ]+204:[ ]+b0d02573[ ]+csrr[ ]+a0,mhpmcounter13
[ ]+208:[ ]+b0e02573[ ]+csrr[ ]+a0,mhpmcounter14
[ ]+20c:[ ]+b0f02573[ ]+csrr[ ]+a0,mhpmcounter15
[ ]+210:[ ]+b1002573[ ]+csrr[ ]+a0,mhpmcounter16
[ ]+214:[ ]+b1102573[ ]+csrr[ ]+a0,mhpmcounter17
[ ]+218:[ ]+b1202573[ ]+csrr[ ]+a0,mhpmcounter18
[ ]+21c:[ ]+b1302573[ ]+csrr[ ]+a0,mhpmcounter19
[ ]+220:[ ]+b1402573[ ]+csrr[ ]+a0,mhpmcounter20
[ ]+224:[ ]+b1502573[ ]+csrr[ ]+a0,mhpmcounter21
[ ]+228:[ ]+b1602573[ ]+csrr[ ]+a0,mhpmcounter22
[ ]+22c:[ ]+b1702573[ ]+csrr[ ]+a0,mhpmcounter23
[ ]+230:[ ]+b1802573[ ]+csrr[ ]+a0,mhpmcounter24
[ ]+234:[ ]+b1902573[ ]+csrr[ ]+a0,mhpmcounter25
[ ]+238:[ ]+b1a02573[ ]+csrr[ ]+a0,mhpmcounter26
[ ]+23c:[ ]+b1b02573[ ]+csrr[ ]+a0,mhpmcounter27
[ ]+240:[ ]+b1c02573[ ]+csrr[ ]+a0,mhpmcounter28
[ ]+244:[ ]+b1d02573[ ]+csrr[ ]+a0,mhpmcounter29
[ ]+248:[ ]+b1e02573[ ]+csrr[ ]+a0,mhpmcounter30
[ ]+24c:[ ]+b1f02573[ ]+csrr[ ]+a0,mhpmcounter31
[ ]+250:[ ]+b8002573[ ]+csrr[ ]+a0,mcycleh
[ ]+254:[ ]+b8202573[ ]+csrr[ ]+a0,minstreth
[ ]+258:[ ]+b8302573[ ]+csrr[ ]+a0,mhpmcounter3h
[ ]+25c:[ ]+b8402573[ ]+csrr[ ]+a0,mhpmcounter4h
[ ]+260:[ ]+b8502573[ ]+csrr[ ]+a0,mhpmcounter5h
[ ]+264:[ ]+b8602573[ ]+csrr[ ]+a0,mhpmcounter6h
[ ]+268:[ ]+b8702573[ ]+csrr[ ]+a0,mhpmcounter7h
[ ]+26c:[ ]+b8802573[ ]+csrr[ ]+a0,mhpmcounter8h
[ ]+270:[ ]+b8902573[ ]+csrr[ ]+a0,mhpmcounter9h
[ ]+274:[ ]+b8a02573[ ]+csrr[ ]+a0,mhpmcounter10h
[ ]+278:[ ]+b8b02573[ ]+csrr[ ]+a0,mhpmcounter11h
[ ]+27c:[ ]+b8c02573[ ]+csrr[ ]+a0,mhpmcounter12h
[ ]+280:[ ]+b8d02573[ ]+csrr[ ]+a0,mhpmcounter13h
[ ]+284:[ ]+b8e02573[ ]+csrr[ ]+a0,mhpmcounter14h
[ ]+288:[ ]+b8f02573[ ]+csrr[ ]+a0,mhpmcounter15h
[ ]+28c:[ ]+b9002573[ ]+csrr[ ]+a0,mhpmcounter16h
[ ]+290:[ ]+b9102573[ ]+csrr[ ]+a0,mhpmcounter17h
[ ]+294:[ ]+b9202573[ ]+csrr[ ]+a0,mhpmcounter18h
[ ]+298:[ ]+b9302573[ ]+csrr[ ]+a0,mhpmcounter19h
[ ]+29c:[ ]+b9402573[ ]+csrr[ ]+a0,mhpmcounter20h
[ ]+2a0:[ ]+b9502573[ ]+csrr[ ]+a0,mhpmcounter21h
[ ]+2a4:[ ]+b9602573[ ]+csrr[ ]+a0,mhpmcounter22h
[ ]+2a8:[ ]+b9702573[ ]+csrr[ ]+a0,mhpmcounter23h
[ ]+2ac:[ ]+b9802573[ ]+csrr[ ]+a0,mhpmcounter24h
[ ]+2b0:[ ]+b9902573[ ]+csrr[ ]+a0,mhpmcounter25h
[ ]+2b4:[ ]+b9a02573[ ]+csrr[ ]+a0,mhpmcounter26h
[ ]+2b8:[ ]+b9b02573[ ]+csrr[ ]+a0,mhpmcounter27h
[ ]+2bc:[ ]+b9c02573[ ]+csrr[ ]+a0,mhpmcounter28h
[ ]+2c0:[ ]+b9d02573[ ]+csrr[ ]+a0,mhpmcounter29h
[ ]+2c4:[ ]+b9e02573[ ]+csrr[ ]+a0,mhpmcounter30h
[ ]+2c8:[ ]+b9f02573[ ]+csrr[ ]+a0,mhpmcounter31h
[ ]+2cc:[ ]+32002573[ ]+csrr[ ]+a0,mucounteren
[ ]+2d0:[ ]+32102573[ ]+csrr[ ]+a0,mscounteren
[ ]+2d4:[ ]+32202573[ ]+csrr[ ]+a0,mhcounteren
[ ]+2d8:[ ]+32302573[ ]+csrr[ ]+a0,mhpmevent3
[ ]+2dc:[ ]+32402573[ ]+csrr[ ]+a0,mhpmevent4
[ ]+2e0:[ ]+32502573[ ]+csrr[ ]+a0,mhpmevent5
[ ]+2e4:[ ]+32602573[ ]+csrr[ ]+a0,mhpmevent6
[ ]+2e8:[ ]+32702573[ ]+csrr[ ]+a0,mhpmevent7
[ ]+2ec:[ ]+32802573[ ]+csrr[ ]+a0,mhpmevent8
[ ]+2f0:[ ]+32902573[ ]+csrr[ ]+a0,mhpmevent9
[ ]+2f4:[ ]+32a02573[ ]+csrr[ ]+a0,mhpmevent10
[ ]+2f8:[ ]+32b02573[ ]+csrr[ ]+a0,mhpmevent11
[ ]+2fc:[ ]+32c02573[ ]+csrr[ ]+a0,mhpmevent12
[ ]+300:[ ]+32d02573[ ]+csrr[ ]+a0,mhpmevent13
[ ]+304:[ ]+32e02573[ ]+csrr[ ]+a0,mhpmevent14
[ ]+308:[ ]+32f02573[ ]+csrr[ ]+a0,mhpmevent15
[ ]+30c:[ ]+33002573[ ]+csrr[ ]+a0,mhpmevent16
[ ]+310:[ ]+33102573[ ]+csrr[ ]+a0,mhpmevent17
[ ]+314:[ ]+33202573[ ]+csrr[ ]+a0,mhpmevent18
[ ]+318:[ ]+33302573[ ]+csrr[ ]+a0,mhpmevent19
[ ]+31c:[ ]+33402573[ ]+csrr[ ]+a0,mhpmevent20
[ ]+320:[ ]+33502573[ ]+csrr[ ]+a0,mhpmevent21
[ ]+324:[ ]+33602573[ ]+csrr[ ]+a0,mhpmevent22
[ ]+328:[ ]+33702573[ ]+csrr[ ]+a0,mhpmevent23
[ ]+32c:[ ]+33802573[ ]+csrr[ ]+a0,mhpmevent24
[ ]+330:[ ]+33902573[ ]+csrr[ ]+a0,mhpmevent25
[ ]+334:[ ]+33a02573[ ]+csrr[ ]+a0,mhpmevent26
[ ]+338:[ ]+33b02573[ ]+csrr[ ]+a0,mhpmevent27
[ ]+33c:[ ]+33c02573[ ]+csrr[ ]+a0,mhpmevent28
[ ]+340:[ ]+33d02573[ ]+csrr[ ]+a0,mhpmevent29
[ ]+344:[ ]+33e02573[ ]+csrr[ ]+a0,mhpmevent30
[ ]+348:[ ]+33f02573[ ]+csrr[ ]+a0,mhpmevent31
[ ]+34c:[ ]+7a002573[ ]+csrr[ ]+a0,tselect
[ ]+350:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
[ ]+354:[ ]+7a202573[ ]+csrr[ ]+a0,tdata2
[ ]+358:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
[ ]+35c:[ ]+7b002573[ ]+csrr[ ]+a0,dcsr
[ ]+360:[ ]+7b102573[ ]+csrr[ ]+a0,dpc
[ ]+364:[ ]+7b202573[ ]+csrr[ ]+a0,dscratch
[ ]+368:[ ]+04302573[ ]+csrr[ ]+a0,utval
[ ]+36c:[ ]+10602573[ ]+csrr[ ]+a0,scounteren
[ ]+370:[ ]+18002573[ ]+csrr[ ]+a0,satp
[ ]+374:[ ]+30602573[ ]+csrr[ ]+a0,mcounteren
[ ]+378:[ ]+3a002573[ ]+csrr[ ]+a0,pmpcfg0
[ ]+37c:[ ]+3a102573[ ]+csrr[ ]+a0,pmpcfg1
[ ]+380:[ ]+3a202573[ ]+csrr[ ]+a0,pmpcfg2
[ ]+384:[ ]+3a302573[ ]+csrr[ ]+a0,pmpcfg3
[ ]+388:[ ]+3b002573[ ]+csrr[ ]+a0,pmpaddr0
[ ]+38c:[ ]+3b102573[ ]+csrr[ ]+a0,pmpaddr1
[ ]+390:[ ]+3b202573[ ]+csrr[ ]+a0,pmpaddr2
[ ]+394:[ ]+3b302573[ ]+csrr[ ]+a0,pmpaddr3
[ ]+398:[ ]+3b402573[ ]+csrr[ ]+a0,pmpaddr4
[ ]+39c:[ ]+3b502573[ ]+csrr[ ]+a0,pmpaddr5
[ ]+3a0:[ ]+3b602573[ ]+csrr[ ]+a0,pmpaddr6
[ ]+3a4:[ ]+3b702573[ ]+csrr[ ]+a0,pmpaddr7
[ ]+3a8:[ ]+3b802573[ ]+csrr[ ]+a0,pmpaddr8
[ ]+3ac:[ ]+3b902573[ ]+csrr[ ]+a0,pmpaddr9
[ ]+3b0:[ ]+3ba02573[ ]+csrr[ ]+a0,pmpaddr10
[ ]+3b4:[ ]+3bb02573[ ]+csrr[ ]+a0,pmpaddr11
[ ]+3b8:[ ]+3bc02573[ ]+csrr[ ]+a0,pmpaddr12
[ ]+3bc:[ ]+3bd02573[ ]+csrr[ ]+a0,pmpaddr13
[ ]+3c0:[ ]+3be02573[ ]+csrr[ ]+a0,pmpaddr14
[ ]+3c4:[ ]+3bf02573[ ]+csrr[ ]+a0,pmpaddr15

View File

@ -0,0 +1,267 @@
.macro csr val
csrr a0,\val
.endm
# 1.9.1 registers
csr ustatus
csr uie
csr utvec
csr uscratch
csr uepc
csr ucause
csr ubadaddr
csr uip
csr fflags
csr frm
csr fcsr
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
csr sstatus
csr sedeleg
csr sideleg
csr sie
csr stvec
csr sscratch
csr sepc
csr scause
csr sbadaddr
csr sip
csr sptbr
csr hstatus
csr hedeleg
csr hideleg
csr hie
csr htvec
csr hscratch
csr hepc
csr hcause
csr hbadaddr
csr hip
csr mvendorid
csr marchid
csr mimpid
csr mhartid
csr mstatus
csr misa
csr medeleg
csr mideleg
csr mie
csr mtvec
csr mscratch
csr mepc
csr mcause
csr mbadaddr
csr mip
csr mbase
csr mbound
csr mibase
csr mibound
csr mdbase
csr mdbound
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
csr mucounteren
csr mscounteren
csr mhcounteren
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
csr tselect
csr tdata1
csr tdata2
csr tdata3
csr dcsr
csr dpc
csr dscratch
# 1.10 registers
csr utval
csr scounteren
csr satp
csr mcounteren
csr pmpcfg0
csr pmpcfg1
csr pmpcfg2
csr pmpcfg3
csr pmpaddr0
csr pmpaddr1
csr pmpaddr2
csr pmpaddr3
csr pmpaddr4
csr pmpaddr5
csr pmpaddr6
csr pmpaddr7
csr pmpaddr8
csr pmpaddr9
csr pmpaddr10
csr pmpaddr11
csr pmpaddr12
csr pmpaddr13
csr pmpaddr14
csr pmpaddr15

View File

@ -1,3 +1,9 @@
2017-12-28 Jim Wilson <jimw@sifive.com>
* opcode/riscv-opc.h (DECLARE_CSR): Add missing privileged registers.
Sort to match privileged spec documentation order.
(DECLARE_CSR_ALIAS): Add ubadaddr, and comments.
2017-12-19 Tamar Christina <tamar.christina@arm.com>
PR gas/22559

View File

@ -567,6 +567,14 @@
#define MASK_CUSTOM3_RD_RS1 0x707f
#define MATCH_CUSTOM3_RD_RS1_RS2 0x707b
#define MASK_CUSTOM3_RD_RS1_RS2 0x707f
#define CSR_USTATUS 0x0
#define CSR_UIE 0x4
#define CSR_UTVEC 0x5
#define CSR_USCRATCH 0x40
#define CSR_UEPC 0x41
#define CSR_UCAUSE 0x42
#define CSR_UTVAL 0x43
#define CSR_UIP 0x44
#define CSR_FFLAGS 0x1
#define CSR_FRM 0x2
#define CSR_FCSR 0x3
@ -602,121 +610,6 @@
#define CSR_HPMCOUNTER29 0xc1d
#define CSR_HPMCOUNTER30 0xc1e
#define CSR_HPMCOUNTER31 0xc1f
#define CSR_SSTATUS 0x100
#define CSR_SIE 0x104
#define CSR_STVEC 0x105
#define CSR_SCOUNTEREN 0x106
#define CSR_SSCRATCH 0x140
#define CSR_SEPC 0x141
#define CSR_SCAUSE 0x142
#define CSR_SBADADDR 0x143
#define CSR_SIP 0x144
#define CSR_SATP 0x180
#define CSR_MSTATUS 0x300
#define CSR_MISA 0x301
#define CSR_MEDELEG 0x302
#define CSR_MIDELEG 0x303
#define CSR_MIE 0x304
#define CSR_MTVEC 0x305
#define CSR_MCOUNTEREN 0x306
#define CSR_MSCRATCH 0x340
#define CSR_MEPC 0x341
#define CSR_MCAUSE 0x342
#define CSR_MBADADDR 0x343
#define CSR_MIP 0x344
#define CSR_PMPCFG0 0x3a0
#define CSR_PMPCFG1 0x3a1
#define CSR_PMPCFG2 0x3a2
#define CSR_PMPCFG3 0x3a3
#define CSR_PMPADDR0 0x3b0
#define CSR_PMPADDR1 0x3b1
#define CSR_PMPADDR2 0x3b2
#define CSR_PMPADDR3 0x3b3
#define CSR_PMPADDR4 0x3b4
#define CSR_PMPADDR5 0x3b5
#define CSR_PMPADDR6 0x3b6
#define CSR_PMPADDR7 0x3b7
#define CSR_PMPADDR8 0x3b8
#define CSR_PMPADDR9 0x3b9
#define CSR_PMPADDR10 0x3ba
#define CSR_PMPADDR11 0x3bb
#define CSR_PMPADDR12 0x3bc
#define CSR_PMPADDR13 0x3bd
#define CSR_PMPADDR14 0x3be
#define CSR_PMPADDR15 0x3bf
#define CSR_TSELECT 0x7a0
#define CSR_TDATA1 0x7a1
#define CSR_TDATA2 0x7a2
#define CSR_TDATA3 0x7a3
#define CSR_DCSR 0x7b0
#define CSR_DPC 0x7b1
#define CSR_DSCRATCH 0x7b2
#define CSR_MCYCLE 0xb00
#define CSR_MINSTRET 0xb02
#define CSR_MHPMCOUNTER3 0xb03
#define CSR_MHPMCOUNTER4 0xb04
#define CSR_MHPMCOUNTER5 0xb05
#define CSR_MHPMCOUNTER6 0xb06
#define CSR_MHPMCOUNTER7 0xb07
#define CSR_MHPMCOUNTER8 0xb08
#define CSR_MHPMCOUNTER9 0xb09
#define CSR_MHPMCOUNTER10 0xb0a
#define CSR_MHPMCOUNTER11 0xb0b
#define CSR_MHPMCOUNTER12 0xb0c
#define CSR_MHPMCOUNTER13 0xb0d
#define CSR_MHPMCOUNTER14 0xb0e
#define CSR_MHPMCOUNTER15 0xb0f
#define CSR_MHPMCOUNTER16 0xb10
#define CSR_MHPMCOUNTER17 0xb11
#define CSR_MHPMCOUNTER18 0xb12
#define CSR_MHPMCOUNTER19 0xb13
#define CSR_MHPMCOUNTER20 0xb14
#define CSR_MHPMCOUNTER21 0xb15
#define CSR_MHPMCOUNTER22 0xb16
#define CSR_MHPMCOUNTER23 0xb17
#define CSR_MHPMCOUNTER24 0xb18
#define CSR_MHPMCOUNTER25 0xb19
#define CSR_MHPMCOUNTER26 0xb1a
#define CSR_MHPMCOUNTER27 0xb1b
#define CSR_MHPMCOUNTER28 0xb1c
#define CSR_MHPMCOUNTER29 0xb1d
#define CSR_MHPMCOUNTER30 0xb1e
#define CSR_MHPMCOUNTER31 0xb1f
#define CSR_MUCOUNTEREN 0x320
#define CSR_MSCOUNTEREN 0x321
#define CSR_MHPMEVENT3 0x323
#define CSR_MHPMEVENT4 0x324
#define CSR_MHPMEVENT5 0x325
#define CSR_MHPMEVENT6 0x326
#define CSR_MHPMEVENT7 0x327
#define CSR_MHPMEVENT8 0x328
#define CSR_MHPMEVENT9 0x329
#define CSR_MHPMEVENT10 0x32a
#define CSR_MHPMEVENT11 0x32b
#define CSR_MHPMEVENT12 0x32c
#define CSR_MHPMEVENT13 0x32d
#define CSR_MHPMEVENT14 0x32e
#define CSR_MHPMEVENT15 0x32f
#define CSR_MHPMEVENT16 0x330
#define CSR_MHPMEVENT17 0x331
#define CSR_MHPMEVENT18 0x332
#define CSR_MHPMEVENT19 0x333
#define CSR_MHPMEVENT20 0x334
#define CSR_MHPMEVENT21 0x335
#define CSR_MHPMEVENT22 0x336
#define CSR_MHPMEVENT23 0x337
#define CSR_MHPMEVENT24 0x338
#define CSR_MHPMEVENT25 0x339
#define CSR_MHPMEVENT26 0x33a
#define CSR_MHPMEVENT27 0x33b
#define CSR_MHPMEVENT28 0x33c
#define CSR_MHPMEVENT29 0x33d
#define CSR_MHPMEVENT30 0x33e
#define CSR_MHPMEVENT31 0x33f
#define CSR_MVENDORID 0xf11
#define CSR_MARCHID 0xf12
#define CSR_MIMPID 0xf13
#define CSR_MHARTID 0xf14
#define CSR_CYCLEH 0xc80
#define CSR_TIMEH 0xc81
#define CSR_INSTRETH 0xc82
@ -749,6 +642,85 @@
#define CSR_HPMCOUNTER29H 0xc9d
#define CSR_HPMCOUNTER30H 0xc9e
#define CSR_HPMCOUNTER31H 0xc9f
#define CSR_SSTATUS 0x100
#define CSR_SEDELEG 0x102
#define CSR_SIDELEG 0x103
#define CSR_SIE 0x104
#define CSR_STVEC 0x105
#define CSR_SCOUNTEREN 0x106
#define CSR_SSCRATCH 0x140
#define CSR_SEPC 0x141
#define CSR_SCAUSE 0x142
#define CSR_SBADADDR 0x143
#define CSR_SIP 0x144
#define CSR_SATP 0x180
#define CSR_MVENDORID 0xf11
#define CSR_MARCHID 0xf12
#define CSR_MIMPID 0xf13
#define CSR_MHARTID 0xf14
#define CSR_MSTATUS 0x300
#define CSR_MISA 0x301
#define CSR_MEDELEG 0x302
#define CSR_MIDELEG 0x303
#define CSR_MIE 0x304
#define CSR_MTVEC 0x305
#define CSR_MCOUNTEREN 0x306
#define CSR_MSCRATCH 0x340
#define CSR_MEPC 0x341
#define CSR_MCAUSE 0x342
#define CSR_MBADADDR 0x343
#define CSR_MIP 0x344
#define CSR_PMPCFG0 0x3a0
#define CSR_PMPCFG1 0x3a1
#define CSR_PMPCFG2 0x3a2
#define CSR_PMPCFG3 0x3a3
#define CSR_PMPADDR0 0x3b0
#define CSR_PMPADDR1 0x3b1
#define CSR_PMPADDR2 0x3b2
#define CSR_PMPADDR3 0x3b3
#define CSR_PMPADDR4 0x3b4
#define CSR_PMPADDR5 0x3b5
#define CSR_PMPADDR6 0x3b6
#define CSR_PMPADDR7 0x3b7
#define CSR_PMPADDR8 0x3b8
#define CSR_PMPADDR9 0x3b9
#define CSR_PMPADDR10 0x3ba
#define CSR_PMPADDR11 0x3bb
#define CSR_PMPADDR12 0x3bc
#define CSR_PMPADDR13 0x3bd
#define CSR_PMPADDR14 0x3be
#define CSR_PMPADDR15 0x3bf
#define CSR_MCYCLE 0xb00
#define CSR_MINSTRET 0xb02
#define CSR_MHPMCOUNTER3 0xb03
#define CSR_MHPMCOUNTER4 0xb04
#define CSR_MHPMCOUNTER5 0xb05
#define CSR_MHPMCOUNTER6 0xb06
#define CSR_MHPMCOUNTER7 0xb07
#define CSR_MHPMCOUNTER8 0xb08
#define CSR_MHPMCOUNTER9 0xb09
#define CSR_MHPMCOUNTER10 0xb0a
#define CSR_MHPMCOUNTER11 0xb0b
#define CSR_MHPMCOUNTER12 0xb0c
#define CSR_MHPMCOUNTER13 0xb0d
#define CSR_MHPMCOUNTER14 0xb0e
#define CSR_MHPMCOUNTER15 0xb0f
#define CSR_MHPMCOUNTER16 0xb10
#define CSR_MHPMCOUNTER17 0xb11
#define CSR_MHPMCOUNTER18 0xb12
#define CSR_MHPMCOUNTER19 0xb13
#define CSR_MHPMCOUNTER20 0xb14
#define CSR_MHPMCOUNTER21 0xb15
#define CSR_MHPMCOUNTER22 0xb16
#define CSR_MHPMCOUNTER23 0xb17
#define CSR_MHPMCOUNTER24 0xb18
#define CSR_MHPMCOUNTER25 0xb19
#define CSR_MHPMCOUNTER26 0xb1a
#define CSR_MHPMCOUNTER27 0xb1b
#define CSR_MHPMCOUNTER28 0xb1c
#define CSR_MHPMCOUNTER29 0xb1d
#define CSR_MHPMCOUNTER30 0xb1e
#define CSR_MHPMCOUNTER31 0xb1f
#define CSR_MCYCLEH 0xb80
#define CSR_MINSTRETH 0xb82
#define CSR_MHPMCOUNTER3H 0xb83
@ -780,6 +752,63 @@
#define CSR_MHPMCOUNTER29H 0xb9d
#define CSR_MHPMCOUNTER30H 0xb9e
#define CSR_MHPMCOUNTER31H 0xb9f
#define CSR_MHPMEVENT3 0x323
#define CSR_MHPMEVENT4 0x324
#define CSR_MHPMEVENT5 0x325
#define CSR_MHPMEVENT6 0x326
#define CSR_MHPMEVENT7 0x327
#define CSR_MHPMEVENT8 0x328
#define CSR_MHPMEVENT9 0x329
#define CSR_MHPMEVENT10 0x32a
#define CSR_MHPMEVENT11 0x32b
#define CSR_MHPMEVENT12 0x32c
#define CSR_MHPMEVENT13 0x32d
#define CSR_MHPMEVENT14 0x32e
#define CSR_MHPMEVENT15 0x32f
#define CSR_MHPMEVENT16 0x330
#define CSR_MHPMEVENT17 0x331
#define CSR_MHPMEVENT18 0x332
#define CSR_MHPMEVENT19 0x333
#define CSR_MHPMEVENT20 0x334
#define CSR_MHPMEVENT21 0x335
#define CSR_MHPMEVENT22 0x336
#define CSR_MHPMEVENT23 0x337
#define CSR_MHPMEVENT24 0x338
#define CSR_MHPMEVENT25 0x339
#define CSR_MHPMEVENT26 0x33a
#define CSR_MHPMEVENT27 0x33b
#define CSR_MHPMEVENT28 0x33c
#define CSR_MHPMEVENT29 0x33d
#define CSR_MHPMEVENT30 0x33e
#define CSR_MHPMEVENT31 0x33f
#define CSR_TSELECT 0x7a0
#define CSR_TDATA1 0x7a1
#define CSR_TDATA2 0x7a2
#define CSR_TDATA3 0x7a3
#define CSR_DCSR 0x7b0
#define CSR_DPC 0x7b1
#define CSR_DSCRATCH 0x7b2
/* These registers are present in priv spec 1.9.1, dropped in 1.10. */
#define CSR_HSTATUS 0x200
#define CSR_HEDELEG 0x202
#define CSR_HIDELEG 0x203
#define CSR_HIE 0x204
#define CSR_HTVEC 0x205
#define CSR_HSCRATCH 0x240
#define CSR_HEPC 0x241
#define CSR_HCAUSE 0x242
#define CSR_HBADADDR 0x243
#define CSR_HIP 0x244
/* CSR_MISA is 0xf10 in 1.9, but 0x301 in 1.9.1. */
#define CSR_MBASE 0x380
#define CSR_MBOUND 0x381
#define CSR_MIBASE 0x382
#define CSR_MIBOUND 0x383
#define CSR_MDBASE 0x384
#define CSR_MDBOUND 0x385
#define CSR_MUCOUNTEREN 0x320
#define CSR_MSCOUNTEREN 0x321
#define CSR_MHCOUNTEREN 0x322
#define CAUSE_MISALIGNED_FETCH 0x0
#define CAUSE_FAULT_FETCH 0x1
#define CAUSE_ILLEGAL_INSTRUCTION 0x2
@ -1079,6 +1108,14 @@ DECLARE_INSN(custom3_rd_rs1, MATCH_CUSTOM3_RD_RS1, MASK_CUSTOM3_RD_RS1)
DECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2, MASK_CUSTOM3_RD_RS1_RS2)
#endif
#ifdef DECLARE_CSR
DECLARE_CSR(ustatus, CSR_USTATUS)
DECLARE_CSR(uie, CSR_UIE)
DECLARE_CSR(utvec, CSR_UTVEC)
DECLARE_CSR(uscratch, CSR_USCRATCH)
DECLARE_CSR(uepc, CSR_UEPC)
DECLARE_CSR(ucause, CSR_UCAUSE)
DECLARE_CSR(utval, CSR_UTVAL)
DECLARE_CSR(uip, CSR_UIP)
DECLARE_CSR(fflags, CSR_FFLAGS)
DECLARE_CSR(frm, CSR_FRM)
DECLARE_CSR(fcsr, CSR_FCSR)
@ -1114,121 +1151,6 @@ DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28)
DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29)
DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30)
DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31)
DECLARE_CSR(sstatus, CSR_SSTATUS)
DECLARE_CSR(sie, CSR_SIE)
DECLARE_CSR(stvec, CSR_STVEC)
DECLARE_CSR(scounteren, CSR_SCOUNTEREN)
DECLARE_CSR(sscratch, CSR_SSCRATCH)
DECLARE_CSR(sepc, CSR_SEPC)
DECLARE_CSR(scause, CSR_SCAUSE)
DECLARE_CSR(sbadaddr, CSR_SBADADDR)
DECLARE_CSR(sip, CSR_SIP)
DECLARE_CSR(satp, CSR_SATP)
DECLARE_CSR(mstatus, CSR_MSTATUS)
DECLARE_CSR(misa, CSR_MISA)
DECLARE_CSR(medeleg, CSR_MEDELEG)
DECLARE_CSR(mideleg, CSR_MIDELEG)
DECLARE_CSR(mie, CSR_MIE)
DECLARE_CSR(mtvec, CSR_MTVEC)
DECLARE_CSR(mcounteren, CSR_MCOUNTEREN)
DECLARE_CSR(mscratch, CSR_MSCRATCH)
DECLARE_CSR(mepc, CSR_MEPC)
DECLARE_CSR(mcause, CSR_MCAUSE)
DECLARE_CSR(mbadaddr, CSR_MBADADDR)
DECLARE_CSR(mip, CSR_MIP)
DECLARE_CSR(pmpcfg0, CSR_PMPCFG0)
DECLARE_CSR(pmpcfg1, CSR_PMPCFG1)
DECLARE_CSR(pmpcfg2, CSR_PMPCFG2)
DECLARE_CSR(pmpcfg3, CSR_PMPCFG3)
DECLARE_CSR(pmpaddr0, CSR_PMPADDR0)
DECLARE_CSR(pmpaddr1, CSR_PMPADDR1)
DECLARE_CSR(pmpaddr2, CSR_PMPADDR2)
DECLARE_CSR(pmpaddr3, CSR_PMPADDR3)
DECLARE_CSR(pmpaddr4, CSR_PMPADDR4)
DECLARE_CSR(pmpaddr5, CSR_PMPADDR5)
DECLARE_CSR(pmpaddr6, CSR_PMPADDR6)
DECLARE_CSR(pmpaddr7, CSR_PMPADDR7)
DECLARE_CSR(pmpaddr8, CSR_PMPADDR8)
DECLARE_CSR(pmpaddr9, CSR_PMPADDR9)
DECLARE_CSR(pmpaddr10, CSR_PMPADDR10)
DECLARE_CSR(pmpaddr11, CSR_PMPADDR11)
DECLARE_CSR(pmpaddr12, CSR_PMPADDR12)
DECLARE_CSR(pmpaddr13, CSR_PMPADDR13)
DECLARE_CSR(pmpaddr14, CSR_PMPADDR14)
DECLARE_CSR(pmpaddr15, CSR_PMPADDR15)
DECLARE_CSR(tselect, CSR_TSELECT)
DECLARE_CSR(tdata1, CSR_TDATA1)
DECLARE_CSR(tdata2, CSR_TDATA2)
DECLARE_CSR(tdata3, CSR_TDATA3)
DECLARE_CSR(dcsr, CSR_DCSR)
DECLARE_CSR(dpc, CSR_DPC)
DECLARE_CSR(dscratch, CSR_DSCRATCH)
DECLARE_CSR(mcycle, CSR_MCYCLE)
DECLARE_CSR(minstret, CSR_MINSTRET)
DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3)
DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4)
DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5)
DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6)
DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7)
DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8)
DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9)
DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10)
DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11)
DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12)
DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13)
DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14)
DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15)
DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16)
DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17)
DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18)
DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19)
DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20)
DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21)
DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22)
DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23)
DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24)
DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25)
DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26)
DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27)
DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28)
DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29)
DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30)
DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31)
DECLARE_CSR(mucounteren, CSR_MUCOUNTEREN)
DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN)
DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
DECLARE_CSR(mvendorid, CSR_MVENDORID)
DECLARE_CSR(marchid, CSR_MARCHID)
DECLARE_CSR(mimpid, CSR_MIMPID)
DECLARE_CSR(mhartid, CSR_MHARTID)
DECLARE_CSR(cycleh, CSR_CYCLEH)
DECLARE_CSR(timeh, CSR_TIMEH)
DECLARE_CSR(instreth, CSR_INSTRETH)
@ -1261,6 +1183,85 @@ DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H)
DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H)
DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H)
DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H)
DECLARE_CSR(sstatus, CSR_SSTATUS)
DECLARE_CSR(sedeleg, CSR_SEDELEG)
DECLARE_CSR(sideleg, CSR_SIDELEG)
DECLARE_CSR(sie, CSR_SIE)
DECLARE_CSR(stvec, CSR_STVEC)
DECLARE_CSR(scounteren, CSR_SCOUNTEREN)
DECLARE_CSR(sscratch, CSR_SSCRATCH)
DECLARE_CSR(sepc, CSR_SEPC)
DECLARE_CSR(scause, CSR_SCAUSE)
DECLARE_CSR(sbadaddr, CSR_SBADADDR)
DECLARE_CSR(sip, CSR_SIP)
DECLARE_CSR(satp, CSR_SATP)
DECLARE_CSR(mvendorid, CSR_MVENDORID)
DECLARE_CSR(marchid, CSR_MARCHID)
DECLARE_CSR(mimpid, CSR_MIMPID)
DECLARE_CSR(mhartid, CSR_MHARTID)
DECLARE_CSR(mstatus, CSR_MSTATUS)
DECLARE_CSR(misa, CSR_MISA)
DECLARE_CSR(medeleg, CSR_MEDELEG)
DECLARE_CSR(mideleg, CSR_MIDELEG)
DECLARE_CSR(mie, CSR_MIE)
DECLARE_CSR(mtvec, CSR_MTVEC)
DECLARE_CSR(mcounteren, CSR_MCOUNTEREN)
DECLARE_CSR(mscratch, CSR_MSCRATCH)
DECLARE_CSR(mepc, CSR_MEPC)
DECLARE_CSR(mcause, CSR_MCAUSE)
DECLARE_CSR(mbadaddr, CSR_MBADADDR)
DECLARE_CSR(mip, CSR_MIP)
DECLARE_CSR(pmpcfg0, CSR_PMPCFG0)
DECLARE_CSR(pmpcfg1, CSR_PMPCFG1)
DECLARE_CSR(pmpcfg2, CSR_PMPCFG2)
DECLARE_CSR(pmpcfg3, CSR_PMPCFG3)
DECLARE_CSR(pmpaddr0, CSR_PMPADDR0)
DECLARE_CSR(pmpaddr1, CSR_PMPADDR1)
DECLARE_CSR(pmpaddr2, CSR_PMPADDR2)
DECLARE_CSR(pmpaddr3, CSR_PMPADDR3)
DECLARE_CSR(pmpaddr4, CSR_PMPADDR4)
DECLARE_CSR(pmpaddr5, CSR_PMPADDR5)
DECLARE_CSR(pmpaddr6, CSR_PMPADDR6)
DECLARE_CSR(pmpaddr7, CSR_PMPADDR7)
DECLARE_CSR(pmpaddr8, CSR_PMPADDR8)
DECLARE_CSR(pmpaddr9, CSR_PMPADDR9)
DECLARE_CSR(pmpaddr10, CSR_PMPADDR10)
DECLARE_CSR(pmpaddr11, CSR_PMPADDR11)
DECLARE_CSR(pmpaddr12, CSR_PMPADDR12)
DECLARE_CSR(pmpaddr13, CSR_PMPADDR13)
DECLARE_CSR(pmpaddr14, CSR_PMPADDR14)
DECLARE_CSR(pmpaddr15, CSR_PMPADDR15)
DECLARE_CSR(mcycle, CSR_MCYCLE)
DECLARE_CSR(minstret, CSR_MINSTRET)
DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3)
DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4)
DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5)
DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6)
DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7)
DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8)
DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9)
DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10)
DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11)
DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12)
DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13)
DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14)
DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15)
DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16)
DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17)
DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18)
DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19)
DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20)
DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21)
DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22)
DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23)
DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24)
DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25)
DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26)
DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27)
DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28)
DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29)
DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30)
DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31)
DECLARE_CSR(mcycleh, CSR_MCYCLEH)
DECLARE_CSR(minstreth, CSR_MINSTRETH)
DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H)
@ -1292,8 +1293,67 @@ DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H)
DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H)
DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H)
DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H)
DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
DECLARE_CSR(tselect, CSR_TSELECT)
DECLARE_CSR(tdata1, CSR_TDATA1)
DECLARE_CSR(tdata2, CSR_TDATA2)
DECLARE_CSR(tdata3, CSR_TDATA3)
DECLARE_CSR(dcsr, CSR_DCSR)
DECLARE_CSR(dpc, CSR_DPC)
DECLARE_CSR(dscratch, CSR_DSCRATCH)
/* These registers are present in priv spec 1.9.1, dropped in 1.10. */
DECLARE_CSR(hstatus, CSR_HSTATUS)
DECLARE_CSR(hedeleg, CSR_HEDELEG)
DECLARE_CSR(hideleg, CSR_HIDELEG)
DECLARE_CSR(hie, CSR_HIE)
DECLARE_CSR(htvec, CSR_HTVEC)
DECLARE_CSR(hscratch, CSR_HSCRATCH)
DECLARE_CSR(hepc, CSR_HEPC)
DECLARE_CSR(hcause, CSR_HCAUSE)
DECLARE_CSR(hbadaddr, CSR_HBADADDR)
DECLARE_CSR(hip, CSR_HIP)
DECLARE_CSR(mbase, CSR_MBASE)
DECLARE_CSR(mbound, CSR_MBOUND)
DECLARE_CSR(mibase, CSR_MIBASE)
DECLARE_CSR(mibound, CSR_MIBOUND)
DECLARE_CSR(mdbase, CSR_MDBASE)
DECLARE_CSR(mdbound, CSR_MDBOUND)
DECLARE_CSR(mucounteren, CSR_MUCOUNTEREN)
DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN)
DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN)
#endif
#ifdef DECLARE_CSR_ALIAS
/* Ubadaddr is 0x043 in 1.9.1, but 0x043 is utval in 1.10. */
DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL)
/* Sptbr is 0x180 in 1.9.1, but 0x180 is satp in 1.10. */
DECLARE_CSR_ALIAS(sptbr, CSR_SATP)
#endif
#ifdef DECLARE_CAUSE