public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: research_trasio@irq.a4lg.com
Cc: binutils@sourceware.org
Subject: Re: [REVIEW ONLY 1/1] UNRATIFIED RISC-V: Add 'Smclic' extension and its CSRs
Date: Mon, 28 Nov 2022 18:43:39 -0800 (PST)	[thread overview]
Message-ID: <mhng-380263f4-f10f-40e1-bc2d-20de5aa42082@palmer-ri-x1c9a> (raw)
In-Reply-To: <19959ea1-70de-c13b-9682-271ac070bb2c@irq.a4lg.com>

On Mon, 28 Nov 2022 18:16:21 PST (-0800), research_trasio@irq.a4lg.com wrote:
> On 2022/11/29 11:03, Palmer Dabbelt wrote:
>> On Mon, 28 Nov 2022 17:19:53 PST (-0800), binutils@sourceware.org wrote:
>>> From: Tsukasa OI <research_trasio@irq.a4lg.com>
>>>
>>> [DO NOT MERGE]
>>> Until 'Smclic' extension is frozen/ratified and final version number is
>>> determined, this patch should not be merged upstream.  This commit uses
>>> unratified version 0.9 as in the documentation (instead of possible 1.0
>>> after ratification).
>>>
>>> [RFC]
>>> It implements u* CSRs as supported in all privileged architectures.
>>> Since user-mode interrupt is dropped, we might need to mask or remove them.
>>
>> Looks like there's some issues related to these, though it's not super
>> clear what the plan is
>> <https://github.com/riscv/riscv-fast-interrupt/issues/160>.  Probably
>> best to just wait until it's frozen to sort that out?
>
> Yes, that's probably the best idea.  This is based on a document in the
> "Development" state but even "Stable" documents have a difference: the
> one very likely to change before ratification and the one not so likely
> to change.
>
> For instance, I consider that "RISC-V Profiles" documentation likely to
> change before ratification [including extension names that we toolchain
> developers consider important].  That's why I'm not committing RISC-V
> Profiles-related changes except 'Ssstateen' (this is discussed even
> outside the profiles).

I agree that "frozen" is kind of arbitrary, but it's what we all agreed 
to and IMO it's best to stick with it.  There's no real hard guarantee 
of compatibility in RISC-V land, even ratified stuff changes.  We've got 
to draw the line somewhere.

> Additional reference:
> <https://github.com/riscv/riscv-fast-interrupt/issues/200>
>
> Tsukasa
>
>>
>>>
>>> This commit adds CSR support for the 'Smclic' extension, a part of Core-
>>> Local Interrupt Controller (CLIC) extension.
>>>
>>> This is based on the latest Core-Local Interrupt Controller (CLIC)
>>> extension draft (version 0.9-draft):
>>> <https://github.com/riscv/riscv-fast-interrupt/blob/e601b94bf43af0e9842b20134814404e488511e3/clic.pdf>
>>>
>>> bfd/ChangeLog:
>>>
>>> 	* elfxx-riscv.c (riscv_implicit_subsets): Add implication from
>>> 	'Smclic' to 'Zicsr'.  (riscv_supported_std_s_ext) Add 'Smclic'.
>>>
>>> gas/ChangeLog:
>>>
>>> 	* config/tc-riscv.c (enum riscv_csr_class): Add new CSR class.
>>> 	(riscv_csr_address): Add new CSR class handling.
>>> 	* testsuite/gas/riscv/csr.s: Add new CSR test.
>>> 	* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
>>> 	* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
>>> 	* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
>>>
>>> include/ChangeLog:
>>>
>>> 	* opcode/riscv-opc.h (CSR_MTVT, CSR_MNXTI, CSR_MINTSTATUS,
>>> 	CSR_MINTTHRESH, CSR_MSCRATCHCSW, CSR_MSCRATCHCSWL, CSR_STVT,
>>> 	CSR_SNXTI, CSR_SINTSTATUS, CSR_SINTTHRESH, CSR_SSCRATCHCSW,
>>> 	CSR_SSCRATCHCSWL, CSR_UTVT, CSR_UNXTI, CSR_UINTSTATUS,
>>> 	CSR_UINTTHRESH, CSR_USCRATCHCSW, CSR_USCRATCHCSWL): New.
>>> ---
>>>  bfd/elfxx-riscv.c                           |  2 ++
>>>  gas/config/tc-riscv.c                       |  4 +++
>>>  gas/testsuite/gas/riscv/csr-dw-regnums.d    | 18 ++++++++++
>>>  gas/testsuite/gas/riscv/csr-dw-regnums.s    | 19 ++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p10.d  | 36 +++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p10.l  | 39 +++++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p11.d  | 36 +++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p11.l  | 39 +++++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p12.d  | 36 +++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p12.l  | 39 +++++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p9p1.d | 36 +++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr-version-1p9p1.l | 39 +++++++++++++++++++++
>>>  gas/testsuite/gas/riscv/csr.s               | 20 +++++++++++
>>>  include/opcode/riscv-opc.h                  | 38 ++++++++++++++++++++
>>>  14 files changed, 401 insertions(+)
>>>
>>> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
>>> index 0bcf2fdcfa34..6c60cf7c888e 100644
>>> --- a/bfd/elfxx-riscv.c
>>> +++ b/bfd/elfxx-riscv.c
>>> @@ -1103,6 +1103,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
>>>    {"zks", "zksh",	check_implicit_always},
>>>    {"smaia", "ssaia",		check_implicit_always},
>>>    {"smstateen", "ssstateen",	check_implicit_always},
>>> +  {"smclic", "zicsr",		check_implicit_always},
>>>    {"smepmp", "zicsr",		check_implicit_always},
>>>    {"ssaia", "zicsr",		check_implicit_always},
>>>    {"sscofpmf", "zicsr",		check_implicit_always},
>>> @@ -1224,6 +1225,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
>>>  static struct riscv_supported_ext riscv_supported_std_s_ext[] =
>>>  {
>>>    {"smaia",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>>> +  {"smclic",		ISA_SPEC_CLASS_DRAFT,		0, 9, 0 },
>>>    {"smepmp",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>>>    {"smstateen",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>>>    {"ssaia",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>>> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
>>> index 0682eb355241..e90e0ba53987 100644
>>> --- a/gas/config/tc-riscv.c
>>> +++ b/gas/config/tc-riscv.c
>>> @@ -74,6 +74,7 @@ enum riscv_csr_class
>>>    CSR_CLASS_H_32,	/* hypervisor, rv32 only */
>>>    CSR_CLASS_SMAIA,		/* Smaia */
>>>    CSR_CLASS_SMAIA_32,		/* Smaia, rv32 only */
>>> +  CSR_CLASS_SMCLIC,		/* Smclic only */
>>>    CSR_CLASS_SMSTATEEN,		/* Smstateen only */
>>>    CSR_CLASS_SMSTATEEN_32,	/* Smstateen RV32 only */
>>>    CSR_CLASS_SSAIA,		/* Ssaia */
>>> @@ -1049,6 +1050,9 @@ riscv_csr_address (const char *csr_name,
>>>      case CSR_CLASS_SMAIA:
>>>        extension = "smaia";
>>>        break;
>>> +    case CSR_CLASS_SMCLIC:
>>> +      extension = "smclic";
>>> +      break;
>>>      case CSR_CLASS_SMSTATEEN:
>>>      case CSR_CLASS_SMSTATEEN_32:
>>>        is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
>>> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
>>> index fd830666ab89..2b58c6a955b1 100644
>>> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
>>> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
>>> @@ -324,6 +324,24 @@ Contents of the .* section:
>>>    DW_CFA_offset_extended_sf: r4888 \(mvienh\) at cfa\+3168
>>>    DW_CFA_offset_extended_sf: r4889 \(mviph\) at cfa\+3172
>>>    DW_CFA_offset_extended_sf: r4948 \(miph\) at cfa\+3408
>>> +  DW_CFA_offset_extended_sf: r4871 \(mtvt\) at cfa\+3100
>>> +  DW_CFA_offset_extended_sf: r4933 \(mnxti\) at cfa\+3348
>>> +  DW_CFA_offset_extended_sf: r8006 \(mintstatus\) at cfa\+15640
>>> +  DW_CFA_offset_extended_sf: r4935 \(mintthresh\) at cfa\+3356
>>> +  DW_CFA_offset_extended_sf: r4936 \(mscratchcsw\) at cfa\+3360
>>> +  DW_CFA_offset_extended_sf: r4937 \(mscratchcswl\) at cfa\+3364
>>> +  DW_CFA_offset_extended_sf: r4359 \(stvt\) at cfa\+1052
>>> +  DW_CFA_offset_extended_sf: r4421 \(snxti\) at cfa\+1300
>>> +  DW_CFA_offset_extended_sf: r7494 \(sintstatus\) at cfa\+13592
>>> +  DW_CFA_offset_extended_sf: r4423 \(sintthresh\) at cfa\+1308
>>> +  DW_CFA_offset_extended_sf: r4424 \(sscratchcsw\) at cfa\+1312
>>> +  DW_CFA_offset_extended_sf: r4425 \(sscratchcswl\) at cfa\+1316
>>> +  DW_CFA_offset_extended_sf: r4103 \(utvt\) at cfa\+28
>>> +  DW_CFA_offset_extended_sf: r4165 \(unxti\) at cfa\+276
>>> +  DW_CFA_offset_extended_sf: r7238 \(uintstatus\) at cfa\+12568
>>> +  DW_CFA_offset_extended_sf: r4167 \(uintthresh\) at cfa\+284
>>> +  DW_CFA_offset_extended_sf: r4168 \(uscratchcsw\) at cfa\+288
>>> +  DW_CFA_offset_extended_sf: r4169 \(uscratchcswl\) at cfa\+292
>>>    DW_CFA_offset_extended_sf: r4876 \(mstateen0\) at cfa\+3120
>>>    DW_CFA_offset_extended_sf: r4877 \(mstateen1\) at cfa\+3124
>>>    DW_CFA_offset_extended_sf: r4878 \(mstateen2\) at cfa\+3128
>>> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s
>>> index b8b0f7902297..af1158eb0089 100644
>>> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.s
>>> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s
>>> @@ -321,6 +321,25 @@ _start:
>>>  	.cfi_offset mvienh, 3168
>>>  	.cfi_offset mviph, 3172
>>>  	.cfi_offset miph, 3408
>>> +	# Smclic extension
>>> +	.cfi_offset mtvt, 3100
>>> +	.cfi_offset mnxti, 3348
>>> +	.cfi_offset mintstatus, 15640
>>> +	.cfi_offset mintthresh, 3356
>>> +	.cfi_offset mscratchcsw, 3360
>>> +	.cfi_offset mscratchcswl, 3364
>>> +	.cfi_offset stvt, 1052
>>> +	.cfi_offset snxti, 1300
>>> +	.cfi_offset sintstatus, 13592
>>> +	.cfi_offset sintthresh, 1308
>>> +	.cfi_offset sscratchcsw, 1312
>>> +	.cfi_offset sscratchcswl, 1316
>>> +	.cfi_offset utvt, 28
>>> +	.cfi_offset unxti, 276
>>> +	.cfi_offset uintstatus, 12568
>>> +	.cfi_offset uintthresh, 284
>>> +	.cfi_offset uscratchcsw, 288
>>> +	.cfi_offset uscratchcswl, 292
>>>  	# Smstateen extension
>>>  	.cfi_offset mstateen0, 3120
>>>  	.cfi_offset mstateen1, 3124
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d
>>> index ee41e1025cce..aa116a75fadd 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
>>> @@ -623,6 +623,42 @@ Disassembly of section .text:
>>>  [ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
>>>  [ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+30702573[ 	]+csrr[ 	]+a0,mtvt
>>> +[ 	]+[0-9a-f]+:[ 	]+30759073[ 	]+csrw[ 	]+mtvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34502573[ 	]+csrr[ 	]+a0,mnxti
>>> +[ 	]+[0-9a-f]+:[ 	]+34559073[ 	]+csrw[ 	]+mnxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+f4602573[ 	]+csrr[ 	]+a0,mintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+f4659073[ 	]+csrw[ 	]+mintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34702573[ 	]+csrr[ 	]+a0,mintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+34759073[ 	]+csrw[ 	]+mintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34802573[ 	]+csrr[ 	]+a0,mscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+34859073[ 	]+csrw[ 	]+mscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34902573[ 	]+csrr[ 	]+a0,mscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+34959073[ 	]+csrw[ 	]+mscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+10702573[ 	]+csrr[ 	]+a0,stvt
>>> +[ 	]+[0-9a-f]+:[ 	]+10759073[ 	]+csrw[ 	]+stvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14502573[ 	]+csrr[ 	]+a0,snxti
>>> +[ 	]+[0-9a-f]+:[ 	]+14559073[ 	]+csrw[ 	]+snxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+d4602573[ 	]+csrr[ 	]+a0,sintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+d4659073[ 	]+csrw[ 	]+sintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14702573[ 	]+csrr[ 	]+a0,sintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+14759073[ 	]+csrw[ 	]+sintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14802573[ 	]+csrr[ 	]+a0,sscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+14859073[ 	]+csrw[ 	]+sscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14902573[ 	]+csrr[ 	]+a0,sscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+14959073[ 	]+csrw[ 	]+sscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+00702573[ 	]+csrr[ 	]+a0,utvt
>>> +[ 	]+[0-9a-f]+:[ 	]+00759073[ 	]+csrw[ 	]+utvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04502573[ 	]+csrr[ 	]+a0,unxti
>>> +[ 	]+[0-9a-f]+:[ 	]+04559073[ 	]+csrw[ 	]+unxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+c4602573[ 	]+csrr[ 	]+a0,uintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+c4659073[ 	]+csrw[ 	]+uintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04702573[ 	]+csrr[ 	]+a0,uintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+04759073[ 	]+csrw[ 	]+uintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04802573[ 	]+csrr[ 	]+a0,uscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+04859073[ 	]+csrw[ 	]+uscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04902573[ 	]+csrr[ 	]+a0,uscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+04959073[ 	]+csrw[ 	]+uscratchcswl,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>>>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
>>> index e677b78b8bb8..15431cef4590 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
>>> @@ -444,6 +444,45 @@
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>>  .*Warning: invalid CSR `miph', needs rv32i extension
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw mintstatus,a1'
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw sintstatus,a1'
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw uintstatus,a1'
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d
>>> index a83b1bf68f98..c7af6b7cafac 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
>>> @@ -623,6 +623,42 @@ Disassembly of section .text:
>>>  [ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
>>>  [ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+30702573[ 	]+csrr[ 	]+a0,mtvt
>>> +[ 	]+[0-9a-f]+:[ 	]+30759073[ 	]+csrw[ 	]+mtvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34502573[ 	]+csrr[ 	]+a0,mnxti
>>> +[ 	]+[0-9a-f]+:[ 	]+34559073[ 	]+csrw[ 	]+mnxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+f4602573[ 	]+csrr[ 	]+a0,mintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+f4659073[ 	]+csrw[ 	]+mintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34702573[ 	]+csrr[ 	]+a0,mintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+34759073[ 	]+csrw[ 	]+mintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34802573[ 	]+csrr[ 	]+a0,mscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+34859073[ 	]+csrw[ 	]+mscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34902573[ 	]+csrr[ 	]+a0,mscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+34959073[ 	]+csrw[ 	]+mscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+10702573[ 	]+csrr[ 	]+a0,stvt
>>> +[ 	]+[0-9a-f]+:[ 	]+10759073[ 	]+csrw[ 	]+stvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14502573[ 	]+csrr[ 	]+a0,snxti
>>> +[ 	]+[0-9a-f]+:[ 	]+14559073[ 	]+csrw[ 	]+snxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+d4602573[ 	]+csrr[ 	]+a0,sintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+d4659073[ 	]+csrw[ 	]+sintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14702573[ 	]+csrr[ 	]+a0,sintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+14759073[ 	]+csrw[ 	]+sintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14802573[ 	]+csrr[ 	]+a0,sscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+14859073[ 	]+csrw[ 	]+sscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14902573[ 	]+csrr[ 	]+a0,sscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+14959073[ 	]+csrw[ 	]+sscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+00702573[ 	]+csrr[ 	]+a0,utvt
>>> +[ 	]+[0-9a-f]+:[ 	]+00759073[ 	]+csrw[ 	]+utvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04502573[ 	]+csrr[ 	]+a0,unxti
>>> +[ 	]+[0-9a-f]+:[ 	]+04559073[ 	]+csrw[ 	]+unxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+c4602573[ 	]+csrr[ 	]+a0,uintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+c4659073[ 	]+csrw[ 	]+uintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04702573[ 	]+csrr[ 	]+a0,uintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+04759073[ 	]+csrw[ 	]+uintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04802573[ 	]+csrr[ 	]+a0,uscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+04859073[ 	]+csrw[ 	]+uscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04902573[ 	]+csrr[ 	]+a0,uscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+04959073[ 	]+csrw[ 	]+uscratchcswl,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>>>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
>>> index 81ca86ca7bcc..94c3142c07ff 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
>>> @@ -442,6 +442,45 @@
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>>  .*Warning: invalid CSR `miph', needs rv32i extension
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw mintstatus,a1'
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw sintstatus,a1'
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw uintstatus,a1'
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d
>>> index 612aac280768..357f9ae1a626 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
>>> @@ -623,6 +623,42 @@ Disassembly of section .text:
>>>  [ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
>>>  [ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+30702573[ 	]+csrr[ 	]+a0,mtvt
>>> +[ 	]+[0-9a-f]+:[ 	]+30759073[ 	]+csrw[ 	]+mtvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34502573[ 	]+csrr[ 	]+a0,mnxti
>>> +[ 	]+[0-9a-f]+:[ 	]+34559073[ 	]+csrw[ 	]+mnxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+f4602573[ 	]+csrr[ 	]+a0,mintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+f4659073[ 	]+csrw[ 	]+mintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34702573[ 	]+csrr[ 	]+a0,mintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+34759073[ 	]+csrw[ 	]+mintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34802573[ 	]+csrr[ 	]+a0,mscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+34859073[ 	]+csrw[ 	]+mscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34902573[ 	]+csrr[ 	]+a0,mscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+34959073[ 	]+csrw[ 	]+mscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+10702573[ 	]+csrr[ 	]+a0,stvt
>>> +[ 	]+[0-9a-f]+:[ 	]+10759073[ 	]+csrw[ 	]+stvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14502573[ 	]+csrr[ 	]+a0,snxti
>>> +[ 	]+[0-9a-f]+:[ 	]+14559073[ 	]+csrw[ 	]+snxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+d4602573[ 	]+csrr[ 	]+a0,sintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+d4659073[ 	]+csrw[ 	]+sintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14702573[ 	]+csrr[ 	]+a0,sintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+14759073[ 	]+csrw[ 	]+sintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14802573[ 	]+csrr[ 	]+a0,sscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+14859073[ 	]+csrw[ 	]+sscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14902573[ 	]+csrr[ 	]+a0,sscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+14959073[ 	]+csrw[ 	]+sscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+00702573[ 	]+csrr[ 	]+a0,utvt
>>> +[ 	]+[0-9a-f]+:[ 	]+00759073[ 	]+csrw[ 	]+utvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04502573[ 	]+csrr[ 	]+a0,unxti
>>> +[ 	]+[0-9a-f]+:[ 	]+04559073[ 	]+csrw[ 	]+unxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+c4602573[ 	]+csrr[ 	]+a0,uintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+c4659073[ 	]+csrw[ 	]+uintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04702573[ 	]+csrr[ 	]+a0,uintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+04759073[ 	]+csrw[ 	]+uintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04802573[ 	]+csrr[ 	]+a0,uscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+04859073[ 	]+csrw[ 	]+uscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04902573[ 	]+csrr[ 	]+a0,uscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+04959073[ 	]+csrw[ 	]+uscratchcswl,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>>>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
>>> index 1c0bb4ef2d8f..1655fe4ce833 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
>>> @@ -304,6 +304,45 @@
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>>  .*Warning: invalid CSR `miph', needs rv32i extension
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw mintstatus,a1'
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw sintstatus,a1'
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw uintstatus,a1'
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
>>> index 0fe849c269c2..8688fa6ecb7e 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
>>> @@ -623,6 +623,42 @@ Disassembly of section .text:
>>>  [ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
>>>  [ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+30702573[ 	]+csrr[ 	]+a0,mtvt
>>> +[ 	]+[0-9a-f]+:[ 	]+30759073[ 	]+csrw[ 	]+mtvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34502573[ 	]+csrr[ 	]+a0,mnxti
>>> +[ 	]+[0-9a-f]+:[ 	]+34559073[ 	]+csrw[ 	]+mnxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+f4602573[ 	]+csrr[ 	]+a0,mintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+f4659073[ 	]+csrw[ 	]+mintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34702573[ 	]+csrr[ 	]+a0,mintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+34759073[ 	]+csrw[ 	]+mintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34802573[ 	]+csrr[ 	]+a0,mscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+34859073[ 	]+csrw[ 	]+mscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+34902573[ 	]+csrr[ 	]+a0,mscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+34959073[ 	]+csrw[ 	]+mscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+10702573[ 	]+csrr[ 	]+a0,stvt
>>> +[ 	]+[0-9a-f]+:[ 	]+10759073[ 	]+csrw[ 	]+stvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14502573[ 	]+csrr[ 	]+a0,snxti
>>> +[ 	]+[0-9a-f]+:[ 	]+14559073[ 	]+csrw[ 	]+snxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+d4602573[ 	]+csrr[ 	]+a0,sintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+d4659073[ 	]+csrw[ 	]+sintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14702573[ 	]+csrr[ 	]+a0,sintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+14759073[ 	]+csrw[ 	]+sintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14802573[ 	]+csrr[ 	]+a0,sscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+14859073[ 	]+csrw[ 	]+sscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+14902573[ 	]+csrr[ 	]+a0,sscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+14959073[ 	]+csrw[ 	]+sscratchcswl,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+00702573[ 	]+csrr[ 	]+a0,utvt
>>> +[ 	]+[0-9a-f]+:[ 	]+00759073[ 	]+csrw[ 	]+utvt,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04502573[ 	]+csrr[ 	]+a0,unxti
>>> +[ 	]+[0-9a-f]+:[ 	]+04559073[ 	]+csrw[ 	]+unxti,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+c4602573[ 	]+csrr[ 	]+a0,uintstatus
>>> +[ 	]+[0-9a-f]+:[ 	]+c4659073[ 	]+csrw[ 	]+uintstatus,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04702573[ 	]+csrr[ 	]+a0,uintthresh
>>> +[ 	]+[0-9a-f]+:[ 	]+04759073[ 	]+csrw[ 	]+uintthresh,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04802573[ 	]+csrr[ 	]+a0,uscratchcsw
>>> +[ 	]+[0-9a-f]+:[ 	]+04859073[ 	]+csrw[ 	]+uscratchcsw,a1
>>> +[ 	]+[0-9a-f]+:[ 	]+04902573[ 	]+csrr[ 	]+a0,uscratchcswl
>>> +[ 	]+[0-9a-f]+:[ 	]+04959073[ 	]+csrw[ 	]+uscratchcswl,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>>>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>>>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
>>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
>>> index c65d0b48e414..22bed0aecfd0 100644
>>> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
>>> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
>>> @@ -494,6 +494,45 @@
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>>  .*Warning: invalid CSR `miph', needs rv32i extension
>>>  .*Warning: invalid CSR `miph', needs `smaia' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mtvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mnxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw mintstatus,a1'
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `stvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `snxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw sintstatus,a1'
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `utvt', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `unxti', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension
>>> +.*Warning: read-only CSR is written `csrw uintstatus,a1'
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>>>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
>>> diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s
>>> index c7406ce34c2e..29a0710df812 100644
>>> --- a/gas/testsuite/gas/riscv/csr.s
>>> +++ b/gas/testsuite/gas/riscv/csr.s
>>> @@ -350,6 +350,26 @@
>>>  	csr mviph
>>>  	csr miph
>>>
>>> +	# Smclic extension
>>> +	csr mtvt
>>> +	csr mnxti
>>> +	csr mintstatus
>>> +	csr mintthresh
>>> +	csr mscratchcsw
>>> +	csr mscratchcswl
>>> +	csr stvt
>>> +	csr snxti
>>> +	csr sintstatus
>>> +	csr sintthresh
>>> +	csr sscratchcsw
>>> +	csr sscratchcswl
>>> +	csr utvt
>>> +	csr unxti
>>> +	csr uintstatus
>>> +	csr uintthresh
>>> +	csr uscratchcsw
>>> +	csr uscratchcswl
>>> +
>>>  	# Smstateen/Ssstateen extensions
>>>  	csr mstateen0
>>>  	csr mstateen1
>>> diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
>>> index 06e3df0f5a63..3f072bf01b3c 100644
>>> --- a/include/opcode/riscv-opc.h
>>> +++ b/include/opcode/riscv-opc.h
>>> @@ -2673,6 +2673,25 @@
>>>  #define CSR_MVIENH   0x318
>>>  #define CSR_MVIPH    0x319
>>>  #define CSR_MIPH     0x354
>>> +/* Smclic extension CSR addresses (including user interrupts).  */
>>> +#define CSR_MTVT 0x307
>>> +#define CSR_MNXTI 0x345
>>> +#define CSR_MINTSTATUS 0xf46
>>> +#define CSR_MINTTHRESH 0x347
>>> +#define CSR_MSCRATCHCSW 0x348
>>> +#define CSR_MSCRATCHCSWL 0x349
>>> +#define CSR_STVT 0x107
>>> +#define CSR_SNXTI 0x145
>>> +#define CSR_SINTSTATUS 0xd46
>>> +#define CSR_SINTTHRESH 0x147
>>> +#define CSR_SSCRATCHCSW 0x148
>>> +#define CSR_SSCRATCHCSWL 0x149
>>> +#define CSR_UTVT 0x7
>>> +#define CSR_UNXTI 0x45
>>> +#define CSR_UINTSTATUS 0xc46
>>> +#define CSR_UINTTHRESH 0x47
>>> +#define CSR_USCRATCHCSW 0x48
>>> +#define CSR_USCRATCHCSWL 0x49
>>>  /* Smstateen extension */
>>>  #define CSR_MSTATEEN0 0x30c
>>>  #define CSR_MSTATEEN1 0x30d
>>> @@ -3550,6 +3569,25 @@ DECLARE_CSR(mieh, CSR_MIEH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_
>>>  DECLARE_CSR(mvienh, CSR_MVIENH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>>  DECLARE_CSR(mviph, CSR_MVIPH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>>  DECLARE_CSR(miph, CSR_MIPH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +/* Smclic extension CSRs (including user interrupts).  */
>>> +DECLARE_CSR(mtvt, CSR_MTVT, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(mnxti, CSR_MNXTI, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(mintstatus, CSR_MINTSTATUS, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(mintthresh, CSR_MINTTHRESH, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(mscratchcsw, CSR_MSCRATCHCSW, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(mscratchcswl, CSR_MSCRATCHCSWL, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(stvt, CSR_STVT, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(snxti, CSR_SNXTI, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(sintstatus, CSR_SINTSTATUS, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(sintthresh, CSR_SINTTHRESH, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(sscratchcsw, CSR_SSCRATCHCSW, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(sscratchcswl, CSR_SSCRATCHCSWL, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(utvt, CSR_UTVT, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(unxti, CSR_UNXTI, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(uintstatus, CSR_UINTSTATUS, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(uintthresh, CSR_UINTTHRESH, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(uscratchcsw, CSR_USCRATCHCSW, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>> +DECLARE_CSR(uscratchcswl, CSR_USCRATCHCSWL, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>>  /* Smstateen/Ssstateen extensions.  */
>>>  DECLARE_CSR(mstateen0, CSR_MSTATEEN0, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>>  DECLARE_CSR(mstateen1, CSR_MSTATEEN1, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>

  reply	other threads:[~2022-11-29  2:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-29  1:19 [REVIEW ONLY 0/1] " Tsukasa OI
2022-11-29  1:19 ` [REVIEW ONLY 1/1] " Tsukasa OI
2022-11-29  2:03   ` Palmer Dabbelt
2022-11-29  2:16     ` Tsukasa OI
2022-11-29  2:43       ` Palmer Dabbelt [this message]
2023-09-12  1:39 ` [REVIEW ONLY v2 0/1] UNRATIFIED RISC-V: Add support for Core-Local Interrupt Controller (CLIC) extensions and their CSRs Tsukasa OI
2023-09-12  1:39   ` [REVIEW ONLY v2 1/1] UNRATIFIED RISC-V: Add CLIC extensions with CSRs Tsukasa OI

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=mhng-380263f4-f10f-40e1-bc2d-20de5aa42082@palmer-ri-x1c9a \
    --to=palmer@dabbelt.com \
    --cc=binutils@sourceware.org \
    --cc=research_trasio@irq.a4lg.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).