public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: binutils@sourceware.org
Cc: research_trasio@irq.a4lg.com, binutils@sourceware.org
Subject: Re: [REVIEW ONLY 1/2] UNRATIFIED RISC-V: Add 'Sspmp' extension and its TENTATIVE CSRs
Date: Mon, 28 Nov 2022 18:22:29 -0800 (PST)	[thread overview]
Message-ID: <mhng-e7bd7b9a-bac5-4c41-8d05-6c6161a1ecdb@palmer-ri-x1c9a> (raw)
In-Reply-To: <54d777ce6e71c02b8b0f9426367e98d0f927ce40.1669684854.git.research_trasio@irq.a4lg.com>

On Mon, 28 Nov 2022 17:20:57 PST (-0800), binutils@sourceware.org wrote:
> From: Tsukasa OI <research_trasio@irq.a4lg.com>
>
> [DO NOT MERGE]
> Until 'Sspmp' extension is frozen/ratified and final version number is
> determined, this patch should not be merged upstream. This commit uses
> unratified version 0.8 as in the documentation (instead of possible 1.0
> after ratification).
>
> This commit adds RISC-V S-mode Physical Memory Protection (SPMP) version
> 0.8 based on the specification:
> <https://github.com/riscv/riscv-spmp/blob/c1e38ede20e4fe0a534ec7e8302c99b2a0a0ca72/rv-spmp-spec.pdf>

Looks like there's also vSPMP and hgPMP extensions (see chapter 4)?  
Those are still somewhat vague in the spec, though.  Otherwise

Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com> # pending freeze

Thanks!

>
> Note
>
> Because CSR addresses are not fixed yet, this commit uses tentative
> addresses (a part of custom CSR space).
>
> bfd/ChangeLog:
>
> 	* elfxx-riscv.c (riscv_implicit_subsets) Add implication 'Sspmp'
> 	-> 'Zicsr'.  (riscv_supported_std_s_ext): Add 'Sspmp' extension to
> 	valid 'S' extension list.
>
> gas/ChangeLog:
>
> 	* config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for
> 	the 'Sspmp' extension.  (riscv_csr_address): Add handling for new
> 	CSR classes.
> 	* testsuite/gas/riscv/csr-dw-regnums.d: Add new CSRs.
> 	* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
> 	* testsuite/gas/riscv/csr.s: Add new CSRs.
> 	* 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_SPMPCFG0, CSR_SPMPCFG1, CSR_SPMPCFG2,
> 	CSR_SPMPCFG3, CSR_SPMPCFG4, CSR_SPMPCFG5, CSR_SPMPCFG6,
> 	CSR_SPMPCFG7, CSR_SPMPCFG8, CSR_SPMPCFG9, CSR_SPMPCFG10,
> 	CSR_SPMPCFG11, CSR_SPMPCFG12, CSR_SPMPCFG13, CSR_SPMPCFG14,
> 	CSR_SPMPCFG15, CSR_SPMPSWITCH0, CSR_SPMPSWITCH1, CSR_SPMPADDR0,
> 	CSR_SPMPADDR1, CSR_SPMPADDR2, CSR_SPMPADDR3, CSR_SPMPADDR4,
> 	CSR_SPMPADDR5, CSR_SPMPADDR6, CSR_SPMPADDR7, CSR_SPMPADDR8,
> 	CSR_SPMPADDR9, CSR_SPMPADDR10, CSR_SPMPADDR11, CSR_SPMPADDR12,
> 	CSR_SPMPADDR13, CSR_SPMPADDR14, CSR_SPMPADDR15, CSR_SPMPADDR16,
> 	CSR_SPMPADDR17, CSR_SPMPADDR18, CSR_SPMPADDR19, CSR_SPMPADDR20,
> 	CSR_SPMPADDR21, CSR_SPMPADDR22, CSR_SPMPADDR23, CSR_SPMPADDR24,
> 	CSR_SPMPADDR25, CSR_SPMPADDR26, CSR_SPMPADDR27, CSR_SPMPADDR28,
> 	CSR_SPMPADDR29, CSR_SPMPADDR30, CSR_SPMPADDR31, CSR_SPMPADDR32,
> 	CSR_SPMPADDR33, CSR_SPMPADDR34, CSR_SPMPADDR35, CSR_SPMPADDR36,
> 	CSR_SPMPADDR37, CSR_SPMPADDR38, CSR_SPMPADDR39, CSR_SPMPADDR40,
> 	CSR_SPMPADDR41, CSR_SPMPADDR42, CSR_SPMPADDR43, CSR_SPMPADDR44,
> 	CSR_SPMPADDR45, CSR_SPMPADDR46, CSR_SPMPADDR47, CSR_SPMPADDR48,
> 	CSR_SPMPADDR49, CSR_SPMPADDR50, CSR_SPMPADDR51, CSR_SPMPADDR52,
> 	CSR_SPMPADDR53, CSR_SPMPADDR54, CSR_SPMPADDR55, CSR_SPMPADDR56,
> 	CSR_SPMPADDR57, CSR_SPMPADDR58, CSR_SPMPADDR59, CSR_SPMPADDR60,
> 	CSR_SPMPADDR61, CSR_SPMPADDR62, CSR_SPMPADDR63): New.
> ---
>  bfd/elfxx-riscv.c                           |   2 +
>  gas/config/tc-riscv.c                       |   7 +
>  gas/testsuite/gas/riscv/csr-dw-regnums.d    |  82 +++++++++
>  gas/testsuite/gas/riscv/csr-dw-regnums.s    |  83 +++++++++
>  gas/testsuite/gas/riscv/csr-version-1p10.d  | 164 ++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p10.l  | 182 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p11.d  | 164 ++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p11.l  | 182 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p12.d  | 164 ++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p12.l  | 182 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p9p1.d | 164 ++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p9p1.l | 182 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr.s               |  84 +++++++++
>  include/opcode/riscv-opc.h                  | 166 ++++++++++++++++++
>  14 files changed, 1808 insertions(+)
>
> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> index 0bcf2fdcfa34..c810b7d106e1 100644
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -1106,6 +1106,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
>    {"smepmp", "zicsr",		check_implicit_always},
>    {"ssaia", "zicsr",		check_implicit_always},
>    {"sscofpmf", "zicsr",		check_implicit_always},
> +  {"sspmp", "zicsr",		check_implicit_always},
>    {"ssstateen", "zicsr",	check_implicit_always},
>    {"sstc", "zicsr",		check_implicit_always},
>    {NULL, NULL, NULL}
> @@ -1228,6 +1229,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
>    {"smstateen",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>    {"ssaia",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>    {"sscofpmf",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
> +  {"sspmp",		ISA_SPEC_CLASS_DRAFT,		0, 8, 0 },
>    {"ssstateen",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>    {"sstc",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>    {"svinval",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 0682eb355241..15a151580d18 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -80,6 +80,8 @@ enum riscv_csr_class
>    CSR_CLASS_SSAIA_AND_H,	/* Ssaia with H */
>    CSR_CLASS_SSAIA_32,		/* Ssaia, rv32 only */
>    CSR_CLASS_SSAIA_AND_H_32,	/* Ssaia with H, rv32 only */
> +  CSR_CLASS_SSPMP,		/* Sspmp only */
> +  CSR_CLASS_SSPMP_32,		/* Sspmp RV32 only */
>    CSR_CLASS_SSSTATEEN,		/* S[ms]stateen only */
>    CSR_CLASS_SSSTATEEN_AND_H,	/* S[ms]stateen only (with H) */
>    CSR_CLASS_SSSTATEEN_AND_H_32,	/* S[ms]stateen RV32 only (with H) */
> @@ -1064,6 +1066,11 @@ riscv_csr_address (const char *csr_name,
>  		       || csr_class == CSR_CLASS_SSAIA_AND_H_32);
>        extension = "ssaia";
>        break;
> +    case CSR_CLASS_SSPMP:
> +    case CSR_CLASS_SSPMP_32:
> +      is_rv32_only = (csr_class == CSR_CLASS_SSPMP_32);
> +      extension = "sspmp";
> +      break;
>      case CSR_CLASS_SSSTATEEN:
>      case CSR_CLASS_SSSTATEEN_AND_H:
>      case CSR_CLASS_SSSTATEEN_AND_H_32:
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> index fd830666ab89..2e68235c13fe 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> @@ -395,6 +395,88 @@ Contents of the .* section:
>    DW_CFA_offset_extended_sf: r5949 \(mhpmevent29h\) at cfa\+7412
>    DW_CFA_offset_extended_sf: r5950 \(mhpmevent30h\) at cfa\+7416
>    DW_CFA_offset_extended_sf: r5951 \(mhpmevent31h\) at cfa\+7420
> +  DW_CFA_offset_extended_sf: r5568 \(spmpcfg0\) at cfa\+5888
> +  DW_CFA_offset_extended_sf: r5569 \(spmpcfg1\) at cfa\+5892
> +  DW_CFA_offset_extended_sf: r5570 \(spmpcfg2\) at cfa\+5896
> +  DW_CFA_offset_extended_sf: r5571 \(spmpcfg3\) at cfa\+5900
> +  DW_CFA_offset_extended_sf: r5572 \(spmpcfg4\) at cfa\+5904
> +  DW_CFA_offset_extended_sf: r5573 \(spmpcfg5\) at cfa\+5908
> +  DW_CFA_offset_extended_sf: r5574 \(spmpcfg6\) at cfa\+5912
> +  DW_CFA_offset_extended_sf: r5575 \(spmpcfg7\) at cfa\+5916
> +  DW_CFA_offset_extended_sf: r5576 \(spmpcfg8\) at cfa\+5920
> +  DW_CFA_offset_extended_sf: r5577 \(spmpcfg9\) at cfa\+5924
> +  DW_CFA_offset_extended_sf: r5578 \(spmpcfg10\) at cfa\+5928
> +  DW_CFA_offset_extended_sf: r5579 \(spmpcfg11\) at cfa\+5932
> +  DW_CFA_offset_extended_sf: r5580 \(spmpcfg12\) at cfa\+5936
> +  DW_CFA_offset_extended_sf: r5581 \(spmpcfg13\) at cfa\+5940
> +  DW_CFA_offset_extended_sf: r5582 \(spmpcfg14\) at cfa\+5944
> +  DW_CFA_offset_extended_sf: r5583 \(spmpcfg15\) at cfa\+5948
> +  DW_CFA_offset_extended_sf: r5584 \(spmpswitch0\) at cfa\+5952
> +  DW_CFA_offset_extended_sf: r5585 \(spmpswitch1\) at cfa\+5956
> +  DW_CFA_offset_extended_sf: r6592 \(spmpaddr0\) at cfa\+9984
> +  DW_CFA_offset_extended_sf: r6593 \(spmpaddr1\) at cfa\+9988
> +  DW_CFA_offset_extended_sf: r6594 \(spmpaddr2\) at cfa\+9992
> +  DW_CFA_offset_extended_sf: r6595 \(spmpaddr3\) at cfa\+9996
> +  DW_CFA_offset_extended_sf: r6596 \(spmpaddr4\) at cfa\+10000
> +  DW_CFA_offset_extended_sf: r6597 \(spmpaddr5\) at cfa\+10004
> +  DW_CFA_offset_extended_sf: r6598 \(spmpaddr6\) at cfa\+10008
> +  DW_CFA_offset_extended_sf: r6599 \(spmpaddr7\) at cfa\+10012
> +  DW_CFA_offset_extended_sf: r6600 \(spmpaddr8\) at cfa\+10016
> +  DW_CFA_offset_extended_sf: r6601 \(spmpaddr9\) at cfa\+10020
> +  DW_CFA_offset_extended_sf: r6602 \(spmpaddr10\) at cfa\+10024
> +  DW_CFA_offset_extended_sf: r6603 \(spmpaddr11\) at cfa\+10028
> +  DW_CFA_offset_extended_sf: r6604 \(spmpaddr12\) at cfa\+10032
> +  DW_CFA_offset_extended_sf: r6605 \(spmpaddr13\) at cfa\+10036
> +  DW_CFA_offset_extended_sf: r6606 \(spmpaddr14\) at cfa\+10040
> +  DW_CFA_offset_extended_sf: r6607 \(spmpaddr15\) at cfa\+10044
> +  DW_CFA_offset_extended_sf: r6608 \(spmpaddr16\) at cfa\+10048
> +  DW_CFA_offset_extended_sf: r6609 \(spmpaddr17\) at cfa\+10052
> +  DW_CFA_offset_extended_sf: r6610 \(spmpaddr18\) at cfa\+10056
> +  DW_CFA_offset_extended_sf: r6611 \(spmpaddr19\) at cfa\+10060
> +  DW_CFA_offset_extended_sf: r6612 \(spmpaddr20\) at cfa\+10064
> +  DW_CFA_offset_extended_sf: r6613 \(spmpaddr21\) at cfa\+10068
> +  DW_CFA_offset_extended_sf: r6614 \(spmpaddr22\) at cfa\+10072
> +  DW_CFA_offset_extended_sf: r6615 \(spmpaddr23\) at cfa\+10076
> +  DW_CFA_offset_extended_sf: r6616 \(spmpaddr24\) at cfa\+10080
> +  DW_CFA_offset_extended_sf: r6617 \(spmpaddr25\) at cfa\+10084
> +  DW_CFA_offset_extended_sf: r6618 \(spmpaddr26\) at cfa\+10088
> +  DW_CFA_offset_extended_sf: r6619 \(spmpaddr27\) at cfa\+10092
> +  DW_CFA_offset_extended_sf: r6620 \(spmpaddr28\) at cfa\+10096
> +  DW_CFA_offset_extended_sf: r6621 \(spmpaddr29\) at cfa\+10100
> +  DW_CFA_offset_extended_sf: r6622 \(spmpaddr30\) at cfa\+10104
> +  DW_CFA_offset_extended_sf: r6623 \(spmpaddr31\) at cfa\+10108
> +  DW_CFA_offset_extended_sf: r6624 \(spmpaddr32\) at cfa\+10112
> +  DW_CFA_offset_extended_sf: r6625 \(spmpaddr33\) at cfa\+10116
> +  DW_CFA_offset_extended_sf: r6626 \(spmpaddr34\) at cfa\+10120
> +  DW_CFA_offset_extended_sf: r6627 \(spmpaddr35\) at cfa\+10124
> +  DW_CFA_offset_extended_sf: r6628 \(spmpaddr36\) at cfa\+10128
> +  DW_CFA_offset_extended_sf: r6629 \(spmpaddr37\) at cfa\+10132
> +  DW_CFA_offset_extended_sf: r6630 \(spmpaddr38\) at cfa\+10136
> +  DW_CFA_offset_extended_sf: r6631 \(spmpaddr39\) at cfa\+10140
> +  DW_CFA_offset_extended_sf: r6632 \(spmpaddr40\) at cfa\+10144
> +  DW_CFA_offset_extended_sf: r6633 \(spmpaddr41\) at cfa\+10148
> +  DW_CFA_offset_extended_sf: r6634 \(spmpaddr42\) at cfa\+10152
> +  DW_CFA_offset_extended_sf: r6635 \(spmpaddr43\) at cfa\+10156
> +  DW_CFA_offset_extended_sf: r6636 \(spmpaddr44\) at cfa\+10160
> +  DW_CFA_offset_extended_sf: r6637 \(spmpaddr45\) at cfa\+10164
> +  DW_CFA_offset_extended_sf: r6638 \(spmpaddr46\) at cfa\+10168
> +  DW_CFA_offset_extended_sf: r6639 \(spmpaddr47\) at cfa\+10172
> +  DW_CFA_offset_extended_sf: r6640 \(spmpaddr48\) at cfa\+10176
> +  DW_CFA_offset_extended_sf: r6641 \(spmpaddr49\) at cfa\+10180
> +  DW_CFA_offset_extended_sf: r6642 \(spmpaddr50\) at cfa\+10184
> +  DW_CFA_offset_extended_sf: r6643 \(spmpaddr51\) at cfa\+10188
> +  DW_CFA_offset_extended_sf: r6644 \(spmpaddr52\) at cfa\+10192
> +  DW_CFA_offset_extended_sf: r6645 \(spmpaddr53\) at cfa\+10196
> +  DW_CFA_offset_extended_sf: r6646 \(spmpaddr54\) at cfa\+10200
> +  DW_CFA_offset_extended_sf: r6647 \(spmpaddr55\) at cfa\+10204
> +  DW_CFA_offset_extended_sf: r6648 \(spmpaddr56\) at cfa\+10208
> +  DW_CFA_offset_extended_sf: r6649 \(spmpaddr57\) at cfa\+10212
> +  DW_CFA_offset_extended_sf: r6650 \(spmpaddr58\) at cfa\+10216
> +  DW_CFA_offset_extended_sf: r6651 \(spmpaddr59\) at cfa\+10220
> +  DW_CFA_offset_extended_sf: r6652 \(spmpaddr60\) at cfa\+10224
> +  DW_CFA_offset_extended_sf: r6653 \(spmpaddr61\) at cfa\+10228
> +  DW_CFA_offset_extended_sf: r6654 \(spmpaddr62\) at cfa\+10232
> +  DW_CFA_offset_extended_sf: r6655 \(spmpaddr63\) at cfa\+10236
>    DW_CFA_offset_extended_sf: r4429 \(stimecmp\) at cfa\+1332
>    DW_CFA_offset_extended_sf: r4445 \(stimecmph\) at cfa\+1396
>    DW_CFA_offset_extended_sf: r4685 \(vstimecmp\) at cfa\+2356
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s
> index b8b0f7902297..397847c3d01d 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.s
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s
> @@ -395,6 +395,89 @@ _start:
>  	.cfi_offset mhpmevent29h, 7412
>  	.cfi_offset mhpmevent30h, 7416
>  	.cfi_offset mhpmevent31h, 7420
> +	# Sspmp extension
> +	.cfi_offset spmpcfg0, 5888
> +	.cfi_offset spmpcfg1, 5892
> +	.cfi_offset spmpcfg2, 5896
> +	.cfi_offset spmpcfg3, 5900
> +	.cfi_offset spmpcfg4, 5904
> +	.cfi_offset spmpcfg5, 5908
> +	.cfi_offset spmpcfg6, 5912
> +	.cfi_offset spmpcfg7, 5916
> +	.cfi_offset spmpcfg8, 5920
> +	.cfi_offset spmpcfg9, 5924
> +	.cfi_offset spmpcfg10, 5928
> +	.cfi_offset spmpcfg11, 5932
> +	.cfi_offset spmpcfg12, 5936
> +	.cfi_offset spmpcfg13, 5940
> +	.cfi_offset spmpcfg14, 5944
> +	.cfi_offset spmpcfg15, 5948
> +	.cfi_offset spmpswitch0, 5952
> +	.cfi_offset spmpswitch1, 5956
> +	.cfi_offset spmpaddr0, 9984
> +	.cfi_offset spmpaddr1, 9988
> +	.cfi_offset spmpaddr2, 9992
> +	.cfi_offset spmpaddr3, 9996
> +	.cfi_offset spmpaddr4, 10000
> +	.cfi_offset spmpaddr5, 10004
> +	.cfi_offset spmpaddr6, 10008
> +	.cfi_offset spmpaddr7, 10012
> +	.cfi_offset spmpaddr8, 10016
> +	.cfi_offset spmpaddr9, 10020
> +	.cfi_offset spmpaddr10, 10024
> +	.cfi_offset spmpaddr11, 10028
> +	.cfi_offset spmpaddr12, 10032
> +	.cfi_offset spmpaddr13, 10036
> +	.cfi_offset spmpaddr14, 10040
> +	.cfi_offset spmpaddr15, 10044
> +	.cfi_offset spmpaddr16, 10048
> +	.cfi_offset spmpaddr17, 10052
> +	.cfi_offset spmpaddr18, 10056
> +	.cfi_offset spmpaddr19, 10060
> +	.cfi_offset spmpaddr20, 10064
> +	.cfi_offset spmpaddr21, 10068
> +	.cfi_offset spmpaddr22, 10072
> +	.cfi_offset spmpaddr23, 10076
> +	.cfi_offset spmpaddr24, 10080
> +	.cfi_offset spmpaddr25, 10084
> +	.cfi_offset spmpaddr26, 10088
> +	.cfi_offset spmpaddr27, 10092
> +	.cfi_offset spmpaddr28, 10096
> +	.cfi_offset spmpaddr29, 10100
> +	.cfi_offset spmpaddr30, 10104
> +	.cfi_offset spmpaddr31, 10108
> +	.cfi_offset spmpaddr32, 10112
> +	.cfi_offset spmpaddr33, 10116
> +	.cfi_offset spmpaddr34, 10120
> +	.cfi_offset spmpaddr35, 10124
> +	.cfi_offset spmpaddr36, 10128
> +	.cfi_offset spmpaddr37, 10132
> +	.cfi_offset spmpaddr38, 10136
> +	.cfi_offset spmpaddr39, 10140
> +	.cfi_offset spmpaddr40, 10144
> +	.cfi_offset spmpaddr41, 10148
> +	.cfi_offset spmpaddr42, 10152
> +	.cfi_offset spmpaddr43, 10156
> +	.cfi_offset spmpaddr44, 10160
> +	.cfi_offset spmpaddr45, 10164
> +	.cfi_offset spmpaddr46, 10168
> +	.cfi_offset spmpaddr47, 10172
> +	.cfi_offset spmpaddr48, 10176
> +	.cfi_offset spmpaddr49, 10180
> +	.cfi_offset spmpaddr50, 10184
> +	.cfi_offset spmpaddr51, 10188
> +	.cfi_offset spmpaddr52, 10192
> +	.cfi_offset spmpaddr53, 10196
> +	.cfi_offset spmpaddr54, 10200
> +	.cfi_offset spmpaddr55, 10204
> +	.cfi_offset spmpaddr56, 10208
> +	.cfi_offset spmpaddr57, 10212
> +	.cfi_offset spmpaddr58, 10216
> +	.cfi_offset spmpaddr59, 10220
> +	.cfi_offset spmpaddr60, 10224
> +	.cfi_offset spmpaddr61, 10228
> +	.cfi_offset spmpaddr62, 10232
> +	.cfi_offset spmpaddr63, 10236
>  	# Sstc extension
>  	.cfi_offset stimecmp, 1332
>  	.cfi_offset stimecmph, 1396
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d
> index ee41e1025cce..ffea30674d33 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> @@ -765,6 +765,170 @@ Disassembly of section .text:
>  [ 	]+[0-9a-f]+:[ 	]+73e59073[ 	]+csrw[ 	]+mhpmevent30h,a1
>  [ 	]+[0-9a-f]+:[ 	]+73f02573[ 	]+csrr[ 	]+a0,mhpmevent31h
>  [ 	]+[0-9a-f]+:[ 	]+73f59073[ 	]+csrw[ 	]+mhpmevent31h,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c002573[ 	]+csrr[ 	]+a0,spmpcfg0
> +[ 	]+[0-9a-f]+:[ 	]+5c059073[ 	]+csrw[ 	]+spmpcfg0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c102573[ 	]+csrr[ 	]+a0,spmpcfg1
> +[ 	]+[0-9a-f]+:[ 	]+5c159073[ 	]+csrw[ 	]+spmpcfg1,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c202573[ 	]+csrr[ 	]+a0,spmpcfg2
> +[ 	]+[0-9a-f]+:[ 	]+5c259073[ 	]+csrw[ 	]+spmpcfg2,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c302573[ 	]+csrr[ 	]+a0,spmpcfg3
> +[ 	]+[0-9a-f]+:[ 	]+5c359073[ 	]+csrw[ 	]+spmpcfg3,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c402573[ 	]+csrr[ 	]+a0,spmpcfg4
> +[ 	]+[0-9a-f]+:[ 	]+5c459073[ 	]+csrw[ 	]+spmpcfg4,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c502573[ 	]+csrr[ 	]+a0,spmpcfg5
> +[ 	]+[0-9a-f]+:[ 	]+5c559073[ 	]+csrw[ 	]+spmpcfg5,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c602573[ 	]+csrr[ 	]+a0,spmpcfg6
> +[ 	]+[0-9a-f]+:[ 	]+5c659073[ 	]+csrw[ 	]+spmpcfg6,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c702573[ 	]+csrr[ 	]+a0,spmpcfg7
> +[ 	]+[0-9a-f]+:[ 	]+5c759073[ 	]+csrw[ 	]+spmpcfg7,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c802573[ 	]+csrr[ 	]+a0,spmpcfg8
> +[ 	]+[0-9a-f]+:[ 	]+5c859073[ 	]+csrw[ 	]+spmpcfg8,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c902573[ 	]+csrr[ 	]+a0,spmpcfg9
> +[ 	]+[0-9a-f]+:[ 	]+5c959073[ 	]+csrw[ 	]+spmpcfg9,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ca02573[ 	]+csrr[ 	]+a0,spmpcfg10
> +[ 	]+[0-9a-f]+:[ 	]+5ca59073[ 	]+csrw[ 	]+spmpcfg10,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cb02573[ 	]+csrr[ 	]+a0,spmpcfg11
> +[ 	]+[0-9a-f]+:[ 	]+5cb59073[ 	]+csrw[ 	]+spmpcfg11,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cc02573[ 	]+csrr[ 	]+a0,spmpcfg12
> +[ 	]+[0-9a-f]+:[ 	]+5cc59073[ 	]+csrw[ 	]+spmpcfg12,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cd02573[ 	]+csrr[ 	]+a0,spmpcfg13
> +[ 	]+[0-9a-f]+:[ 	]+5cd59073[ 	]+csrw[ 	]+spmpcfg13,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ce02573[ 	]+csrr[ 	]+a0,spmpcfg14
> +[ 	]+[0-9a-f]+:[ 	]+5ce59073[ 	]+csrw[ 	]+spmpcfg14,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cf02573[ 	]+csrr[ 	]+a0,spmpcfg15
> +[ 	]+[0-9a-f]+:[ 	]+5cf59073[ 	]+csrw[ 	]+spmpcfg15,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d002573[ 	]+csrr[ 	]+a0,spmpswitch0
> +[ 	]+[0-9a-f]+:[ 	]+5d059073[ 	]+csrw[ 	]+spmpswitch0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d102573[ 	]+csrr[ 	]+a0,spmpswitch1
> +[ 	]+[0-9a-f]+:[ 	]+5d159073[ 	]+csrw[ 	]+spmpswitch1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c002573[ 	]+csrr[ 	]+a0,spmpaddr0
> +[ 	]+[0-9a-f]+:[ 	]+9c059073[ 	]+csrw[ 	]+spmpaddr0,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c102573[ 	]+csrr[ 	]+a0,spmpaddr1
> +[ 	]+[0-9a-f]+:[ 	]+9c159073[ 	]+csrw[ 	]+spmpaddr1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c202573[ 	]+csrr[ 	]+a0,spmpaddr2
> +[ 	]+[0-9a-f]+:[ 	]+9c259073[ 	]+csrw[ 	]+spmpaddr2,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c302573[ 	]+csrr[ 	]+a0,spmpaddr3
> +[ 	]+[0-9a-f]+:[ 	]+9c359073[ 	]+csrw[ 	]+spmpaddr3,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c402573[ 	]+csrr[ 	]+a0,spmpaddr4
> +[ 	]+[0-9a-f]+:[ 	]+9c459073[ 	]+csrw[ 	]+spmpaddr4,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c502573[ 	]+csrr[ 	]+a0,spmpaddr5
> +[ 	]+[0-9a-f]+:[ 	]+9c559073[ 	]+csrw[ 	]+spmpaddr5,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c602573[ 	]+csrr[ 	]+a0,spmpaddr6
> +[ 	]+[0-9a-f]+:[ 	]+9c659073[ 	]+csrw[ 	]+spmpaddr6,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c702573[ 	]+csrr[ 	]+a0,spmpaddr7
> +[ 	]+[0-9a-f]+:[ 	]+9c759073[ 	]+csrw[ 	]+spmpaddr7,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c802573[ 	]+csrr[ 	]+a0,spmpaddr8
> +[ 	]+[0-9a-f]+:[ 	]+9c859073[ 	]+csrw[ 	]+spmpaddr8,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c902573[ 	]+csrr[ 	]+a0,spmpaddr9
> +[ 	]+[0-9a-f]+:[ 	]+9c959073[ 	]+csrw[ 	]+spmpaddr9,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ca02573[ 	]+csrr[ 	]+a0,spmpaddr10
> +[ 	]+[0-9a-f]+:[ 	]+9ca59073[ 	]+csrw[ 	]+spmpaddr10,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cb02573[ 	]+csrr[ 	]+a0,spmpaddr11
> +[ 	]+[0-9a-f]+:[ 	]+9cb59073[ 	]+csrw[ 	]+spmpaddr11,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cc02573[ 	]+csrr[ 	]+a0,spmpaddr12
> +[ 	]+[0-9a-f]+:[ 	]+9cc59073[ 	]+csrw[ 	]+spmpaddr12,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cd02573[ 	]+csrr[ 	]+a0,spmpaddr13
> +[ 	]+[0-9a-f]+:[ 	]+9cd59073[ 	]+csrw[ 	]+spmpaddr13,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ce02573[ 	]+csrr[ 	]+a0,spmpaddr14
> +[ 	]+[0-9a-f]+:[ 	]+9ce59073[ 	]+csrw[ 	]+spmpaddr14,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cf02573[ 	]+csrr[ 	]+a0,spmpaddr15
> +[ 	]+[0-9a-f]+:[ 	]+9cf59073[ 	]+csrw[ 	]+spmpaddr15,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d002573[ 	]+csrr[ 	]+a0,spmpaddr16
> +[ 	]+[0-9a-f]+:[ 	]+9d059073[ 	]+csrw[ 	]+spmpaddr16,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d102573[ 	]+csrr[ 	]+a0,spmpaddr17
> +[ 	]+[0-9a-f]+:[ 	]+9d159073[ 	]+csrw[ 	]+spmpaddr17,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d202573[ 	]+csrr[ 	]+a0,spmpaddr18
> +[ 	]+[0-9a-f]+:[ 	]+9d259073[ 	]+csrw[ 	]+spmpaddr18,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d302573[ 	]+csrr[ 	]+a0,spmpaddr19
> +[ 	]+[0-9a-f]+:[ 	]+9d359073[ 	]+csrw[ 	]+spmpaddr19,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d402573[ 	]+csrr[ 	]+a0,spmpaddr20
> +[ 	]+[0-9a-f]+:[ 	]+9d459073[ 	]+csrw[ 	]+spmpaddr20,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d502573[ 	]+csrr[ 	]+a0,spmpaddr21
> +[ 	]+[0-9a-f]+:[ 	]+9d559073[ 	]+csrw[ 	]+spmpaddr21,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d602573[ 	]+csrr[ 	]+a0,spmpaddr22
> +[ 	]+[0-9a-f]+:[ 	]+9d659073[ 	]+csrw[ 	]+spmpaddr22,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d702573[ 	]+csrr[ 	]+a0,spmpaddr23
> +[ 	]+[0-9a-f]+:[ 	]+9d759073[ 	]+csrw[ 	]+spmpaddr23,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d802573[ 	]+csrr[ 	]+a0,spmpaddr24
> +[ 	]+[0-9a-f]+:[ 	]+9d859073[ 	]+csrw[ 	]+spmpaddr24,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d902573[ 	]+csrr[ 	]+a0,spmpaddr25
> +[ 	]+[0-9a-f]+:[ 	]+9d959073[ 	]+csrw[ 	]+spmpaddr25,a1
> +[ 	]+[0-9a-f]+:[ 	]+9da02573[ 	]+csrr[ 	]+a0,spmpaddr26
> +[ 	]+[0-9a-f]+:[ 	]+9da59073[ 	]+csrw[ 	]+spmpaddr26,a1
> +[ 	]+[0-9a-f]+:[ 	]+9db02573[ 	]+csrr[ 	]+a0,spmpaddr27
> +[ 	]+[0-9a-f]+:[ 	]+9db59073[ 	]+csrw[ 	]+spmpaddr27,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dc02573[ 	]+csrr[ 	]+a0,spmpaddr28
> +[ 	]+[0-9a-f]+:[ 	]+9dc59073[ 	]+csrw[ 	]+spmpaddr28,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dd02573[ 	]+csrr[ 	]+a0,spmpaddr29
> +[ 	]+[0-9a-f]+:[ 	]+9dd59073[ 	]+csrw[ 	]+spmpaddr29,a1
> +[ 	]+[0-9a-f]+:[ 	]+9de02573[ 	]+csrr[ 	]+a0,spmpaddr30
> +[ 	]+[0-9a-f]+:[ 	]+9de59073[ 	]+csrw[ 	]+spmpaddr30,a1
> +[ 	]+[0-9a-f]+:[ 	]+9df02573[ 	]+csrr[ 	]+a0,spmpaddr31
> +[ 	]+[0-9a-f]+:[ 	]+9df59073[ 	]+csrw[ 	]+spmpaddr31,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e002573[ 	]+csrr[ 	]+a0,spmpaddr32
> +[ 	]+[0-9a-f]+:[ 	]+9e059073[ 	]+csrw[ 	]+spmpaddr32,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e102573[ 	]+csrr[ 	]+a0,spmpaddr33
> +[ 	]+[0-9a-f]+:[ 	]+9e159073[ 	]+csrw[ 	]+spmpaddr33,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e202573[ 	]+csrr[ 	]+a0,spmpaddr34
> +[ 	]+[0-9a-f]+:[ 	]+9e259073[ 	]+csrw[ 	]+spmpaddr34,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e302573[ 	]+csrr[ 	]+a0,spmpaddr35
> +[ 	]+[0-9a-f]+:[ 	]+9e359073[ 	]+csrw[ 	]+spmpaddr35,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e402573[ 	]+csrr[ 	]+a0,spmpaddr36
> +[ 	]+[0-9a-f]+:[ 	]+9e459073[ 	]+csrw[ 	]+spmpaddr36,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e502573[ 	]+csrr[ 	]+a0,spmpaddr37
> +[ 	]+[0-9a-f]+:[ 	]+9e559073[ 	]+csrw[ 	]+spmpaddr37,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e602573[ 	]+csrr[ 	]+a0,spmpaddr38
> +[ 	]+[0-9a-f]+:[ 	]+9e659073[ 	]+csrw[ 	]+spmpaddr38,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e702573[ 	]+csrr[ 	]+a0,spmpaddr39
> +[ 	]+[0-9a-f]+:[ 	]+9e759073[ 	]+csrw[ 	]+spmpaddr39,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e802573[ 	]+csrr[ 	]+a0,spmpaddr40
> +[ 	]+[0-9a-f]+:[ 	]+9e859073[ 	]+csrw[ 	]+spmpaddr40,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e902573[ 	]+csrr[ 	]+a0,spmpaddr41
> +[ 	]+[0-9a-f]+:[ 	]+9e959073[ 	]+csrw[ 	]+spmpaddr41,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ea02573[ 	]+csrr[ 	]+a0,spmpaddr42
> +[ 	]+[0-9a-f]+:[ 	]+9ea59073[ 	]+csrw[ 	]+spmpaddr42,a1
> +[ 	]+[0-9a-f]+:[ 	]+9eb02573[ 	]+csrr[ 	]+a0,spmpaddr43
> +[ 	]+[0-9a-f]+:[ 	]+9eb59073[ 	]+csrw[ 	]+spmpaddr43,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ec02573[ 	]+csrr[ 	]+a0,spmpaddr44
> +[ 	]+[0-9a-f]+:[ 	]+9ec59073[ 	]+csrw[ 	]+spmpaddr44,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ed02573[ 	]+csrr[ 	]+a0,spmpaddr45
> +[ 	]+[0-9a-f]+:[ 	]+9ed59073[ 	]+csrw[ 	]+spmpaddr45,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ee02573[ 	]+csrr[ 	]+a0,spmpaddr46
> +[ 	]+[0-9a-f]+:[ 	]+9ee59073[ 	]+csrw[ 	]+spmpaddr46,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ef02573[ 	]+csrr[ 	]+a0,spmpaddr47
> +[ 	]+[0-9a-f]+:[ 	]+9ef59073[ 	]+csrw[ 	]+spmpaddr47,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f002573[ 	]+csrr[ 	]+a0,spmpaddr48
> +[ 	]+[0-9a-f]+:[ 	]+9f059073[ 	]+csrw[ 	]+spmpaddr48,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f102573[ 	]+csrr[ 	]+a0,spmpaddr49
> +[ 	]+[0-9a-f]+:[ 	]+9f159073[ 	]+csrw[ 	]+spmpaddr49,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f202573[ 	]+csrr[ 	]+a0,spmpaddr50
> +[ 	]+[0-9a-f]+:[ 	]+9f259073[ 	]+csrw[ 	]+spmpaddr50,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f302573[ 	]+csrr[ 	]+a0,spmpaddr51
> +[ 	]+[0-9a-f]+:[ 	]+9f359073[ 	]+csrw[ 	]+spmpaddr51,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f402573[ 	]+csrr[ 	]+a0,spmpaddr52
> +[ 	]+[0-9a-f]+:[ 	]+9f459073[ 	]+csrw[ 	]+spmpaddr52,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f502573[ 	]+csrr[ 	]+a0,spmpaddr53
> +[ 	]+[0-9a-f]+:[ 	]+9f559073[ 	]+csrw[ 	]+spmpaddr53,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f602573[ 	]+csrr[ 	]+a0,spmpaddr54
> +[ 	]+[0-9a-f]+:[ 	]+9f659073[ 	]+csrw[ 	]+spmpaddr54,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f702573[ 	]+csrr[ 	]+a0,spmpaddr55
> +[ 	]+[0-9a-f]+:[ 	]+9f759073[ 	]+csrw[ 	]+spmpaddr55,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f802573[ 	]+csrr[ 	]+a0,spmpaddr56
> +[ 	]+[0-9a-f]+:[ 	]+9f859073[ 	]+csrw[ 	]+spmpaddr56,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f902573[ 	]+csrr[ 	]+a0,spmpaddr57
> +[ 	]+[0-9a-f]+:[ 	]+9f959073[ 	]+csrw[ 	]+spmpaddr57,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fa02573[ 	]+csrr[ 	]+a0,spmpaddr58
> +[ 	]+[0-9a-f]+:[ 	]+9fa59073[ 	]+csrw[ 	]+spmpaddr58,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fb02573[ 	]+csrr[ 	]+a0,spmpaddr59
> +[ 	]+[0-9a-f]+:[ 	]+9fb59073[ 	]+csrw[ 	]+spmpaddr59,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fc02573[ 	]+csrr[ 	]+a0,spmpaddr60
> +[ 	]+[0-9a-f]+:[ 	]+9fc59073[ 	]+csrw[ 	]+spmpaddr60,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fd02573[ 	]+csrr[ 	]+a0,spmpaddr61
> +[ 	]+[0-9a-f]+:[ 	]+9fd59073[ 	]+csrw[ 	]+spmpaddr61,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fe02573[ 	]+csrr[ 	]+a0,spmpaddr62
> +[ 	]+[0-9a-f]+:[ 	]+9fe59073[ 	]+csrw[ 	]+spmpaddr62,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ff02573[ 	]+csrr[ 	]+a0,spmpaddr63
> +[ 	]+[0-9a-f]+:[ 	]+9ff59073[ 	]+csrw[ 	]+spmpaddr63,a1
>  [ 	]+[0-9a-f]+:[ 	]+14d02573[ 	]+csrr[ 	]+a0,stimecmp
>  [ 	]+[0-9a-f]+:[ 	]+14d59073[ 	]+csrw[ 	]+stimecmp,a1
>  [ 	]+[0-9a-f]+:[ 	]+15d02573[ 	]+csrr[ 	]+a0,stimecmph
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
> index e677b78b8bb8..c1a91cee3c99 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> @@ -727,6 +727,188 @@
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
>  .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmph', needs rv32i extension
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d
> index a83b1bf68f98..ce8da6fac2f1 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> @@ -765,6 +765,170 @@ Disassembly of section .text:
>  [ 	]+[0-9a-f]+:[ 	]+73e59073[ 	]+csrw[ 	]+mhpmevent30h,a1
>  [ 	]+[0-9a-f]+:[ 	]+73f02573[ 	]+csrr[ 	]+a0,mhpmevent31h
>  [ 	]+[0-9a-f]+:[ 	]+73f59073[ 	]+csrw[ 	]+mhpmevent31h,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c002573[ 	]+csrr[ 	]+a0,spmpcfg0
> +[ 	]+[0-9a-f]+:[ 	]+5c059073[ 	]+csrw[ 	]+spmpcfg0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c102573[ 	]+csrr[ 	]+a0,spmpcfg1
> +[ 	]+[0-9a-f]+:[ 	]+5c159073[ 	]+csrw[ 	]+spmpcfg1,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c202573[ 	]+csrr[ 	]+a0,spmpcfg2
> +[ 	]+[0-9a-f]+:[ 	]+5c259073[ 	]+csrw[ 	]+spmpcfg2,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c302573[ 	]+csrr[ 	]+a0,spmpcfg3
> +[ 	]+[0-9a-f]+:[ 	]+5c359073[ 	]+csrw[ 	]+spmpcfg3,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c402573[ 	]+csrr[ 	]+a0,spmpcfg4
> +[ 	]+[0-9a-f]+:[ 	]+5c459073[ 	]+csrw[ 	]+spmpcfg4,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c502573[ 	]+csrr[ 	]+a0,spmpcfg5
> +[ 	]+[0-9a-f]+:[ 	]+5c559073[ 	]+csrw[ 	]+spmpcfg5,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c602573[ 	]+csrr[ 	]+a0,spmpcfg6
> +[ 	]+[0-9a-f]+:[ 	]+5c659073[ 	]+csrw[ 	]+spmpcfg6,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c702573[ 	]+csrr[ 	]+a0,spmpcfg7
> +[ 	]+[0-9a-f]+:[ 	]+5c759073[ 	]+csrw[ 	]+spmpcfg7,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c802573[ 	]+csrr[ 	]+a0,spmpcfg8
> +[ 	]+[0-9a-f]+:[ 	]+5c859073[ 	]+csrw[ 	]+spmpcfg8,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c902573[ 	]+csrr[ 	]+a0,spmpcfg9
> +[ 	]+[0-9a-f]+:[ 	]+5c959073[ 	]+csrw[ 	]+spmpcfg9,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ca02573[ 	]+csrr[ 	]+a0,spmpcfg10
> +[ 	]+[0-9a-f]+:[ 	]+5ca59073[ 	]+csrw[ 	]+spmpcfg10,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cb02573[ 	]+csrr[ 	]+a0,spmpcfg11
> +[ 	]+[0-9a-f]+:[ 	]+5cb59073[ 	]+csrw[ 	]+spmpcfg11,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cc02573[ 	]+csrr[ 	]+a0,spmpcfg12
> +[ 	]+[0-9a-f]+:[ 	]+5cc59073[ 	]+csrw[ 	]+spmpcfg12,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cd02573[ 	]+csrr[ 	]+a0,spmpcfg13
> +[ 	]+[0-9a-f]+:[ 	]+5cd59073[ 	]+csrw[ 	]+spmpcfg13,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ce02573[ 	]+csrr[ 	]+a0,spmpcfg14
> +[ 	]+[0-9a-f]+:[ 	]+5ce59073[ 	]+csrw[ 	]+spmpcfg14,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cf02573[ 	]+csrr[ 	]+a0,spmpcfg15
> +[ 	]+[0-9a-f]+:[ 	]+5cf59073[ 	]+csrw[ 	]+spmpcfg15,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d002573[ 	]+csrr[ 	]+a0,spmpswitch0
> +[ 	]+[0-9a-f]+:[ 	]+5d059073[ 	]+csrw[ 	]+spmpswitch0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d102573[ 	]+csrr[ 	]+a0,spmpswitch1
> +[ 	]+[0-9a-f]+:[ 	]+5d159073[ 	]+csrw[ 	]+spmpswitch1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c002573[ 	]+csrr[ 	]+a0,spmpaddr0
> +[ 	]+[0-9a-f]+:[ 	]+9c059073[ 	]+csrw[ 	]+spmpaddr0,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c102573[ 	]+csrr[ 	]+a0,spmpaddr1
> +[ 	]+[0-9a-f]+:[ 	]+9c159073[ 	]+csrw[ 	]+spmpaddr1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c202573[ 	]+csrr[ 	]+a0,spmpaddr2
> +[ 	]+[0-9a-f]+:[ 	]+9c259073[ 	]+csrw[ 	]+spmpaddr2,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c302573[ 	]+csrr[ 	]+a0,spmpaddr3
> +[ 	]+[0-9a-f]+:[ 	]+9c359073[ 	]+csrw[ 	]+spmpaddr3,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c402573[ 	]+csrr[ 	]+a0,spmpaddr4
> +[ 	]+[0-9a-f]+:[ 	]+9c459073[ 	]+csrw[ 	]+spmpaddr4,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c502573[ 	]+csrr[ 	]+a0,spmpaddr5
> +[ 	]+[0-9a-f]+:[ 	]+9c559073[ 	]+csrw[ 	]+spmpaddr5,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c602573[ 	]+csrr[ 	]+a0,spmpaddr6
> +[ 	]+[0-9a-f]+:[ 	]+9c659073[ 	]+csrw[ 	]+spmpaddr6,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c702573[ 	]+csrr[ 	]+a0,spmpaddr7
> +[ 	]+[0-9a-f]+:[ 	]+9c759073[ 	]+csrw[ 	]+spmpaddr7,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c802573[ 	]+csrr[ 	]+a0,spmpaddr8
> +[ 	]+[0-9a-f]+:[ 	]+9c859073[ 	]+csrw[ 	]+spmpaddr8,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c902573[ 	]+csrr[ 	]+a0,spmpaddr9
> +[ 	]+[0-9a-f]+:[ 	]+9c959073[ 	]+csrw[ 	]+spmpaddr9,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ca02573[ 	]+csrr[ 	]+a0,spmpaddr10
> +[ 	]+[0-9a-f]+:[ 	]+9ca59073[ 	]+csrw[ 	]+spmpaddr10,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cb02573[ 	]+csrr[ 	]+a0,spmpaddr11
> +[ 	]+[0-9a-f]+:[ 	]+9cb59073[ 	]+csrw[ 	]+spmpaddr11,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cc02573[ 	]+csrr[ 	]+a0,spmpaddr12
> +[ 	]+[0-9a-f]+:[ 	]+9cc59073[ 	]+csrw[ 	]+spmpaddr12,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cd02573[ 	]+csrr[ 	]+a0,spmpaddr13
> +[ 	]+[0-9a-f]+:[ 	]+9cd59073[ 	]+csrw[ 	]+spmpaddr13,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ce02573[ 	]+csrr[ 	]+a0,spmpaddr14
> +[ 	]+[0-9a-f]+:[ 	]+9ce59073[ 	]+csrw[ 	]+spmpaddr14,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cf02573[ 	]+csrr[ 	]+a0,spmpaddr15
> +[ 	]+[0-9a-f]+:[ 	]+9cf59073[ 	]+csrw[ 	]+spmpaddr15,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d002573[ 	]+csrr[ 	]+a0,spmpaddr16
> +[ 	]+[0-9a-f]+:[ 	]+9d059073[ 	]+csrw[ 	]+spmpaddr16,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d102573[ 	]+csrr[ 	]+a0,spmpaddr17
> +[ 	]+[0-9a-f]+:[ 	]+9d159073[ 	]+csrw[ 	]+spmpaddr17,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d202573[ 	]+csrr[ 	]+a0,spmpaddr18
> +[ 	]+[0-9a-f]+:[ 	]+9d259073[ 	]+csrw[ 	]+spmpaddr18,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d302573[ 	]+csrr[ 	]+a0,spmpaddr19
> +[ 	]+[0-9a-f]+:[ 	]+9d359073[ 	]+csrw[ 	]+spmpaddr19,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d402573[ 	]+csrr[ 	]+a0,spmpaddr20
> +[ 	]+[0-9a-f]+:[ 	]+9d459073[ 	]+csrw[ 	]+spmpaddr20,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d502573[ 	]+csrr[ 	]+a0,spmpaddr21
> +[ 	]+[0-9a-f]+:[ 	]+9d559073[ 	]+csrw[ 	]+spmpaddr21,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d602573[ 	]+csrr[ 	]+a0,spmpaddr22
> +[ 	]+[0-9a-f]+:[ 	]+9d659073[ 	]+csrw[ 	]+spmpaddr22,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d702573[ 	]+csrr[ 	]+a0,spmpaddr23
> +[ 	]+[0-9a-f]+:[ 	]+9d759073[ 	]+csrw[ 	]+spmpaddr23,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d802573[ 	]+csrr[ 	]+a0,spmpaddr24
> +[ 	]+[0-9a-f]+:[ 	]+9d859073[ 	]+csrw[ 	]+spmpaddr24,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d902573[ 	]+csrr[ 	]+a0,spmpaddr25
> +[ 	]+[0-9a-f]+:[ 	]+9d959073[ 	]+csrw[ 	]+spmpaddr25,a1
> +[ 	]+[0-9a-f]+:[ 	]+9da02573[ 	]+csrr[ 	]+a0,spmpaddr26
> +[ 	]+[0-9a-f]+:[ 	]+9da59073[ 	]+csrw[ 	]+spmpaddr26,a1
> +[ 	]+[0-9a-f]+:[ 	]+9db02573[ 	]+csrr[ 	]+a0,spmpaddr27
> +[ 	]+[0-9a-f]+:[ 	]+9db59073[ 	]+csrw[ 	]+spmpaddr27,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dc02573[ 	]+csrr[ 	]+a0,spmpaddr28
> +[ 	]+[0-9a-f]+:[ 	]+9dc59073[ 	]+csrw[ 	]+spmpaddr28,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dd02573[ 	]+csrr[ 	]+a0,spmpaddr29
> +[ 	]+[0-9a-f]+:[ 	]+9dd59073[ 	]+csrw[ 	]+spmpaddr29,a1
> +[ 	]+[0-9a-f]+:[ 	]+9de02573[ 	]+csrr[ 	]+a0,spmpaddr30
> +[ 	]+[0-9a-f]+:[ 	]+9de59073[ 	]+csrw[ 	]+spmpaddr30,a1
> +[ 	]+[0-9a-f]+:[ 	]+9df02573[ 	]+csrr[ 	]+a0,spmpaddr31
> +[ 	]+[0-9a-f]+:[ 	]+9df59073[ 	]+csrw[ 	]+spmpaddr31,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e002573[ 	]+csrr[ 	]+a0,spmpaddr32
> +[ 	]+[0-9a-f]+:[ 	]+9e059073[ 	]+csrw[ 	]+spmpaddr32,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e102573[ 	]+csrr[ 	]+a0,spmpaddr33
> +[ 	]+[0-9a-f]+:[ 	]+9e159073[ 	]+csrw[ 	]+spmpaddr33,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e202573[ 	]+csrr[ 	]+a0,spmpaddr34
> +[ 	]+[0-9a-f]+:[ 	]+9e259073[ 	]+csrw[ 	]+spmpaddr34,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e302573[ 	]+csrr[ 	]+a0,spmpaddr35
> +[ 	]+[0-9a-f]+:[ 	]+9e359073[ 	]+csrw[ 	]+spmpaddr35,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e402573[ 	]+csrr[ 	]+a0,spmpaddr36
> +[ 	]+[0-9a-f]+:[ 	]+9e459073[ 	]+csrw[ 	]+spmpaddr36,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e502573[ 	]+csrr[ 	]+a0,spmpaddr37
> +[ 	]+[0-9a-f]+:[ 	]+9e559073[ 	]+csrw[ 	]+spmpaddr37,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e602573[ 	]+csrr[ 	]+a0,spmpaddr38
> +[ 	]+[0-9a-f]+:[ 	]+9e659073[ 	]+csrw[ 	]+spmpaddr38,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e702573[ 	]+csrr[ 	]+a0,spmpaddr39
> +[ 	]+[0-9a-f]+:[ 	]+9e759073[ 	]+csrw[ 	]+spmpaddr39,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e802573[ 	]+csrr[ 	]+a0,spmpaddr40
> +[ 	]+[0-9a-f]+:[ 	]+9e859073[ 	]+csrw[ 	]+spmpaddr40,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e902573[ 	]+csrr[ 	]+a0,spmpaddr41
> +[ 	]+[0-9a-f]+:[ 	]+9e959073[ 	]+csrw[ 	]+spmpaddr41,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ea02573[ 	]+csrr[ 	]+a0,spmpaddr42
> +[ 	]+[0-9a-f]+:[ 	]+9ea59073[ 	]+csrw[ 	]+spmpaddr42,a1
> +[ 	]+[0-9a-f]+:[ 	]+9eb02573[ 	]+csrr[ 	]+a0,spmpaddr43
> +[ 	]+[0-9a-f]+:[ 	]+9eb59073[ 	]+csrw[ 	]+spmpaddr43,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ec02573[ 	]+csrr[ 	]+a0,spmpaddr44
> +[ 	]+[0-9a-f]+:[ 	]+9ec59073[ 	]+csrw[ 	]+spmpaddr44,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ed02573[ 	]+csrr[ 	]+a0,spmpaddr45
> +[ 	]+[0-9a-f]+:[ 	]+9ed59073[ 	]+csrw[ 	]+spmpaddr45,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ee02573[ 	]+csrr[ 	]+a0,spmpaddr46
> +[ 	]+[0-9a-f]+:[ 	]+9ee59073[ 	]+csrw[ 	]+spmpaddr46,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ef02573[ 	]+csrr[ 	]+a0,spmpaddr47
> +[ 	]+[0-9a-f]+:[ 	]+9ef59073[ 	]+csrw[ 	]+spmpaddr47,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f002573[ 	]+csrr[ 	]+a0,spmpaddr48
> +[ 	]+[0-9a-f]+:[ 	]+9f059073[ 	]+csrw[ 	]+spmpaddr48,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f102573[ 	]+csrr[ 	]+a0,spmpaddr49
> +[ 	]+[0-9a-f]+:[ 	]+9f159073[ 	]+csrw[ 	]+spmpaddr49,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f202573[ 	]+csrr[ 	]+a0,spmpaddr50
> +[ 	]+[0-9a-f]+:[ 	]+9f259073[ 	]+csrw[ 	]+spmpaddr50,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f302573[ 	]+csrr[ 	]+a0,spmpaddr51
> +[ 	]+[0-9a-f]+:[ 	]+9f359073[ 	]+csrw[ 	]+spmpaddr51,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f402573[ 	]+csrr[ 	]+a0,spmpaddr52
> +[ 	]+[0-9a-f]+:[ 	]+9f459073[ 	]+csrw[ 	]+spmpaddr52,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f502573[ 	]+csrr[ 	]+a0,spmpaddr53
> +[ 	]+[0-9a-f]+:[ 	]+9f559073[ 	]+csrw[ 	]+spmpaddr53,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f602573[ 	]+csrr[ 	]+a0,spmpaddr54
> +[ 	]+[0-9a-f]+:[ 	]+9f659073[ 	]+csrw[ 	]+spmpaddr54,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f702573[ 	]+csrr[ 	]+a0,spmpaddr55
> +[ 	]+[0-9a-f]+:[ 	]+9f759073[ 	]+csrw[ 	]+spmpaddr55,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f802573[ 	]+csrr[ 	]+a0,spmpaddr56
> +[ 	]+[0-9a-f]+:[ 	]+9f859073[ 	]+csrw[ 	]+spmpaddr56,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f902573[ 	]+csrr[ 	]+a0,spmpaddr57
> +[ 	]+[0-9a-f]+:[ 	]+9f959073[ 	]+csrw[ 	]+spmpaddr57,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fa02573[ 	]+csrr[ 	]+a0,spmpaddr58
> +[ 	]+[0-9a-f]+:[ 	]+9fa59073[ 	]+csrw[ 	]+spmpaddr58,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fb02573[ 	]+csrr[ 	]+a0,spmpaddr59
> +[ 	]+[0-9a-f]+:[ 	]+9fb59073[ 	]+csrw[ 	]+spmpaddr59,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fc02573[ 	]+csrr[ 	]+a0,spmpaddr60
> +[ 	]+[0-9a-f]+:[ 	]+9fc59073[ 	]+csrw[ 	]+spmpaddr60,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fd02573[ 	]+csrr[ 	]+a0,spmpaddr61
> +[ 	]+[0-9a-f]+:[ 	]+9fd59073[ 	]+csrw[ 	]+spmpaddr61,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fe02573[ 	]+csrr[ 	]+a0,spmpaddr62
> +[ 	]+[0-9a-f]+:[ 	]+9fe59073[ 	]+csrw[ 	]+spmpaddr62,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ff02573[ 	]+csrr[ 	]+a0,spmpaddr63
> +[ 	]+[0-9a-f]+:[ 	]+9ff59073[ 	]+csrw[ 	]+spmpaddr63,a1
>  [ 	]+[0-9a-f]+:[ 	]+14d02573[ 	]+csrr[ 	]+a0,stimecmp
>  [ 	]+[0-9a-f]+:[ 	]+14d59073[ 	]+csrw[ 	]+stimecmp,a1
>  [ 	]+[0-9a-f]+:[ 	]+15d02573[ 	]+csrr[ 	]+a0,stimecmph
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
> index 81ca86ca7bcc..542e3a70f34b 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> @@ -725,6 +725,188 @@
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
>  .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmph', needs rv32i extension
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d
> index 612aac280768..c1c31bbbf79b 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> @@ -765,6 +765,170 @@ Disassembly of section .text:
>  [ 	]+[0-9a-f]+:[ 	]+73e59073[ 	]+csrw[ 	]+mhpmevent30h,a1
>  [ 	]+[0-9a-f]+:[ 	]+73f02573[ 	]+csrr[ 	]+a0,mhpmevent31h
>  [ 	]+[0-9a-f]+:[ 	]+73f59073[ 	]+csrw[ 	]+mhpmevent31h,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c002573[ 	]+csrr[ 	]+a0,spmpcfg0
> +[ 	]+[0-9a-f]+:[ 	]+5c059073[ 	]+csrw[ 	]+spmpcfg0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c102573[ 	]+csrr[ 	]+a0,spmpcfg1
> +[ 	]+[0-9a-f]+:[ 	]+5c159073[ 	]+csrw[ 	]+spmpcfg1,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c202573[ 	]+csrr[ 	]+a0,spmpcfg2
> +[ 	]+[0-9a-f]+:[ 	]+5c259073[ 	]+csrw[ 	]+spmpcfg2,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c302573[ 	]+csrr[ 	]+a0,spmpcfg3
> +[ 	]+[0-9a-f]+:[ 	]+5c359073[ 	]+csrw[ 	]+spmpcfg3,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c402573[ 	]+csrr[ 	]+a0,spmpcfg4
> +[ 	]+[0-9a-f]+:[ 	]+5c459073[ 	]+csrw[ 	]+spmpcfg4,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c502573[ 	]+csrr[ 	]+a0,spmpcfg5
> +[ 	]+[0-9a-f]+:[ 	]+5c559073[ 	]+csrw[ 	]+spmpcfg5,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c602573[ 	]+csrr[ 	]+a0,spmpcfg6
> +[ 	]+[0-9a-f]+:[ 	]+5c659073[ 	]+csrw[ 	]+spmpcfg6,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c702573[ 	]+csrr[ 	]+a0,spmpcfg7
> +[ 	]+[0-9a-f]+:[ 	]+5c759073[ 	]+csrw[ 	]+spmpcfg7,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c802573[ 	]+csrr[ 	]+a0,spmpcfg8
> +[ 	]+[0-9a-f]+:[ 	]+5c859073[ 	]+csrw[ 	]+spmpcfg8,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c902573[ 	]+csrr[ 	]+a0,spmpcfg9
> +[ 	]+[0-9a-f]+:[ 	]+5c959073[ 	]+csrw[ 	]+spmpcfg9,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ca02573[ 	]+csrr[ 	]+a0,spmpcfg10
> +[ 	]+[0-9a-f]+:[ 	]+5ca59073[ 	]+csrw[ 	]+spmpcfg10,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cb02573[ 	]+csrr[ 	]+a0,spmpcfg11
> +[ 	]+[0-9a-f]+:[ 	]+5cb59073[ 	]+csrw[ 	]+spmpcfg11,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cc02573[ 	]+csrr[ 	]+a0,spmpcfg12
> +[ 	]+[0-9a-f]+:[ 	]+5cc59073[ 	]+csrw[ 	]+spmpcfg12,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cd02573[ 	]+csrr[ 	]+a0,spmpcfg13
> +[ 	]+[0-9a-f]+:[ 	]+5cd59073[ 	]+csrw[ 	]+spmpcfg13,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ce02573[ 	]+csrr[ 	]+a0,spmpcfg14
> +[ 	]+[0-9a-f]+:[ 	]+5ce59073[ 	]+csrw[ 	]+spmpcfg14,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cf02573[ 	]+csrr[ 	]+a0,spmpcfg15
> +[ 	]+[0-9a-f]+:[ 	]+5cf59073[ 	]+csrw[ 	]+spmpcfg15,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d002573[ 	]+csrr[ 	]+a0,spmpswitch0
> +[ 	]+[0-9a-f]+:[ 	]+5d059073[ 	]+csrw[ 	]+spmpswitch0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d102573[ 	]+csrr[ 	]+a0,spmpswitch1
> +[ 	]+[0-9a-f]+:[ 	]+5d159073[ 	]+csrw[ 	]+spmpswitch1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c002573[ 	]+csrr[ 	]+a0,spmpaddr0
> +[ 	]+[0-9a-f]+:[ 	]+9c059073[ 	]+csrw[ 	]+spmpaddr0,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c102573[ 	]+csrr[ 	]+a0,spmpaddr1
> +[ 	]+[0-9a-f]+:[ 	]+9c159073[ 	]+csrw[ 	]+spmpaddr1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c202573[ 	]+csrr[ 	]+a0,spmpaddr2
> +[ 	]+[0-9a-f]+:[ 	]+9c259073[ 	]+csrw[ 	]+spmpaddr2,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c302573[ 	]+csrr[ 	]+a0,spmpaddr3
> +[ 	]+[0-9a-f]+:[ 	]+9c359073[ 	]+csrw[ 	]+spmpaddr3,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c402573[ 	]+csrr[ 	]+a0,spmpaddr4
> +[ 	]+[0-9a-f]+:[ 	]+9c459073[ 	]+csrw[ 	]+spmpaddr4,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c502573[ 	]+csrr[ 	]+a0,spmpaddr5
> +[ 	]+[0-9a-f]+:[ 	]+9c559073[ 	]+csrw[ 	]+spmpaddr5,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c602573[ 	]+csrr[ 	]+a0,spmpaddr6
> +[ 	]+[0-9a-f]+:[ 	]+9c659073[ 	]+csrw[ 	]+spmpaddr6,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c702573[ 	]+csrr[ 	]+a0,spmpaddr7
> +[ 	]+[0-9a-f]+:[ 	]+9c759073[ 	]+csrw[ 	]+spmpaddr7,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c802573[ 	]+csrr[ 	]+a0,spmpaddr8
> +[ 	]+[0-9a-f]+:[ 	]+9c859073[ 	]+csrw[ 	]+spmpaddr8,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c902573[ 	]+csrr[ 	]+a0,spmpaddr9
> +[ 	]+[0-9a-f]+:[ 	]+9c959073[ 	]+csrw[ 	]+spmpaddr9,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ca02573[ 	]+csrr[ 	]+a0,spmpaddr10
> +[ 	]+[0-9a-f]+:[ 	]+9ca59073[ 	]+csrw[ 	]+spmpaddr10,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cb02573[ 	]+csrr[ 	]+a0,spmpaddr11
> +[ 	]+[0-9a-f]+:[ 	]+9cb59073[ 	]+csrw[ 	]+spmpaddr11,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cc02573[ 	]+csrr[ 	]+a0,spmpaddr12
> +[ 	]+[0-9a-f]+:[ 	]+9cc59073[ 	]+csrw[ 	]+spmpaddr12,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cd02573[ 	]+csrr[ 	]+a0,spmpaddr13
> +[ 	]+[0-9a-f]+:[ 	]+9cd59073[ 	]+csrw[ 	]+spmpaddr13,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ce02573[ 	]+csrr[ 	]+a0,spmpaddr14
> +[ 	]+[0-9a-f]+:[ 	]+9ce59073[ 	]+csrw[ 	]+spmpaddr14,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cf02573[ 	]+csrr[ 	]+a0,spmpaddr15
> +[ 	]+[0-9a-f]+:[ 	]+9cf59073[ 	]+csrw[ 	]+spmpaddr15,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d002573[ 	]+csrr[ 	]+a0,spmpaddr16
> +[ 	]+[0-9a-f]+:[ 	]+9d059073[ 	]+csrw[ 	]+spmpaddr16,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d102573[ 	]+csrr[ 	]+a0,spmpaddr17
> +[ 	]+[0-9a-f]+:[ 	]+9d159073[ 	]+csrw[ 	]+spmpaddr17,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d202573[ 	]+csrr[ 	]+a0,spmpaddr18
> +[ 	]+[0-9a-f]+:[ 	]+9d259073[ 	]+csrw[ 	]+spmpaddr18,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d302573[ 	]+csrr[ 	]+a0,spmpaddr19
> +[ 	]+[0-9a-f]+:[ 	]+9d359073[ 	]+csrw[ 	]+spmpaddr19,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d402573[ 	]+csrr[ 	]+a0,spmpaddr20
> +[ 	]+[0-9a-f]+:[ 	]+9d459073[ 	]+csrw[ 	]+spmpaddr20,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d502573[ 	]+csrr[ 	]+a0,spmpaddr21
> +[ 	]+[0-9a-f]+:[ 	]+9d559073[ 	]+csrw[ 	]+spmpaddr21,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d602573[ 	]+csrr[ 	]+a0,spmpaddr22
> +[ 	]+[0-9a-f]+:[ 	]+9d659073[ 	]+csrw[ 	]+spmpaddr22,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d702573[ 	]+csrr[ 	]+a0,spmpaddr23
> +[ 	]+[0-9a-f]+:[ 	]+9d759073[ 	]+csrw[ 	]+spmpaddr23,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d802573[ 	]+csrr[ 	]+a0,spmpaddr24
> +[ 	]+[0-9a-f]+:[ 	]+9d859073[ 	]+csrw[ 	]+spmpaddr24,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d902573[ 	]+csrr[ 	]+a0,spmpaddr25
> +[ 	]+[0-9a-f]+:[ 	]+9d959073[ 	]+csrw[ 	]+spmpaddr25,a1
> +[ 	]+[0-9a-f]+:[ 	]+9da02573[ 	]+csrr[ 	]+a0,spmpaddr26
> +[ 	]+[0-9a-f]+:[ 	]+9da59073[ 	]+csrw[ 	]+spmpaddr26,a1
> +[ 	]+[0-9a-f]+:[ 	]+9db02573[ 	]+csrr[ 	]+a0,spmpaddr27
> +[ 	]+[0-9a-f]+:[ 	]+9db59073[ 	]+csrw[ 	]+spmpaddr27,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dc02573[ 	]+csrr[ 	]+a0,spmpaddr28
> +[ 	]+[0-9a-f]+:[ 	]+9dc59073[ 	]+csrw[ 	]+spmpaddr28,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dd02573[ 	]+csrr[ 	]+a0,spmpaddr29
> +[ 	]+[0-9a-f]+:[ 	]+9dd59073[ 	]+csrw[ 	]+spmpaddr29,a1
> +[ 	]+[0-9a-f]+:[ 	]+9de02573[ 	]+csrr[ 	]+a0,spmpaddr30
> +[ 	]+[0-9a-f]+:[ 	]+9de59073[ 	]+csrw[ 	]+spmpaddr30,a1
> +[ 	]+[0-9a-f]+:[ 	]+9df02573[ 	]+csrr[ 	]+a0,spmpaddr31
> +[ 	]+[0-9a-f]+:[ 	]+9df59073[ 	]+csrw[ 	]+spmpaddr31,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e002573[ 	]+csrr[ 	]+a0,spmpaddr32
> +[ 	]+[0-9a-f]+:[ 	]+9e059073[ 	]+csrw[ 	]+spmpaddr32,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e102573[ 	]+csrr[ 	]+a0,spmpaddr33
> +[ 	]+[0-9a-f]+:[ 	]+9e159073[ 	]+csrw[ 	]+spmpaddr33,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e202573[ 	]+csrr[ 	]+a0,spmpaddr34
> +[ 	]+[0-9a-f]+:[ 	]+9e259073[ 	]+csrw[ 	]+spmpaddr34,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e302573[ 	]+csrr[ 	]+a0,spmpaddr35
> +[ 	]+[0-9a-f]+:[ 	]+9e359073[ 	]+csrw[ 	]+spmpaddr35,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e402573[ 	]+csrr[ 	]+a0,spmpaddr36
> +[ 	]+[0-9a-f]+:[ 	]+9e459073[ 	]+csrw[ 	]+spmpaddr36,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e502573[ 	]+csrr[ 	]+a0,spmpaddr37
> +[ 	]+[0-9a-f]+:[ 	]+9e559073[ 	]+csrw[ 	]+spmpaddr37,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e602573[ 	]+csrr[ 	]+a0,spmpaddr38
> +[ 	]+[0-9a-f]+:[ 	]+9e659073[ 	]+csrw[ 	]+spmpaddr38,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e702573[ 	]+csrr[ 	]+a0,spmpaddr39
> +[ 	]+[0-9a-f]+:[ 	]+9e759073[ 	]+csrw[ 	]+spmpaddr39,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e802573[ 	]+csrr[ 	]+a0,spmpaddr40
> +[ 	]+[0-9a-f]+:[ 	]+9e859073[ 	]+csrw[ 	]+spmpaddr40,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e902573[ 	]+csrr[ 	]+a0,spmpaddr41
> +[ 	]+[0-9a-f]+:[ 	]+9e959073[ 	]+csrw[ 	]+spmpaddr41,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ea02573[ 	]+csrr[ 	]+a0,spmpaddr42
> +[ 	]+[0-9a-f]+:[ 	]+9ea59073[ 	]+csrw[ 	]+spmpaddr42,a1
> +[ 	]+[0-9a-f]+:[ 	]+9eb02573[ 	]+csrr[ 	]+a0,spmpaddr43
> +[ 	]+[0-9a-f]+:[ 	]+9eb59073[ 	]+csrw[ 	]+spmpaddr43,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ec02573[ 	]+csrr[ 	]+a0,spmpaddr44
> +[ 	]+[0-9a-f]+:[ 	]+9ec59073[ 	]+csrw[ 	]+spmpaddr44,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ed02573[ 	]+csrr[ 	]+a0,spmpaddr45
> +[ 	]+[0-9a-f]+:[ 	]+9ed59073[ 	]+csrw[ 	]+spmpaddr45,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ee02573[ 	]+csrr[ 	]+a0,spmpaddr46
> +[ 	]+[0-9a-f]+:[ 	]+9ee59073[ 	]+csrw[ 	]+spmpaddr46,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ef02573[ 	]+csrr[ 	]+a0,spmpaddr47
> +[ 	]+[0-9a-f]+:[ 	]+9ef59073[ 	]+csrw[ 	]+spmpaddr47,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f002573[ 	]+csrr[ 	]+a0,spmpaddr48
> +[ 	]+[0-9a-f]+:[ 	]+9f059073[ 	]+csrw[ 	]+spmpaddr48,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f102573[ 	]+csrr[ 	]+a0,spmpaddr49
> +[ 	]+[0-9a-f]+:[ 	]+9f159073[ 	]+csrw[ 	]+spmpaddr49,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f202573[ 	]+csrr[ 	]+a0,spmpaddr50
> +[ 	]+[0-9a-f]+:[ 	]+9f259073[ 	]+csrw[ 	]+spmpaddr50,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f302573[ 	]+csrr[ 	]+a0,spmpaddr51
> +[ 	]+[0-9a-f]+:[ 	]+9f359073[ 	]+csrw[ 	]+spmpaddr51,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f402573[ 	]+csrr[ 	]+a0,spmpaddr52
> +[ 	]+[0-9a-f]+:[ 	]+9f459073[ 	]+csrw[ 	]+spmpaddr52,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f502573[ 	]+csrr[ 	]+a0,spmpaddr53
> +[ 	]+[0-9a-f]+:[ 	]+9f559073[ 	]+csrw[ 	]+spmpaddr53,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f602573[ 	]+csrr[ 	]+a0,spmpaddr54
> +[ 	]+[0-9a-f]+:[ 	]+9f659073[ 	]+csrw[ 	]+spmpaddr54,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f702573[ 	]+csrr[ 	]+a0,spmpaddr55
> +[ 	]+[0-9a-f]+:[ 	]+9f759073[ 	]+csrw[ 	]+spmpaddr55,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f802573[ 	]+csrr[ 	]+a0,spmpaddr56
> +[ 	]+[0-9a-f]+:[ 	]+9f859073[ 	]+csrw[ 	]+spmpaddr56,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f902573[ 	]+csrr[ 	]+a0,spmpaddr57
> +[ 	]+[0-9a-f]+:[ 	]+9f959073[ 	]+csrw[ 	]+spmpaddr57,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fa02573[ 	]+csrr[ 	]+a0,spmpaddr58
> +[ 	]+[0-9a-f]+:[ 	]+9fa59073[ 	]+csrw[ 	]+spmpaddr58,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fb02573[ 	]+csrr[ 	]+a0,spmpaddr59
> +[ 	]+[0-9a-f]+:[ 	]+9fb59073[ 	]+csrw[ 	]+spmpaddr59,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fc02573[ 	]+csrr[ 	]+a0,spmpaddr60
> +[ 	]+[0-9a-f]+:[ 	]+9fc59073[ 	]+csrw[ 	]+spmpaddr60,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fd02573[ 	]+csrr[ 	]+a0,spmpaddr61
> +[ 	]+[0-9a-f]+:[ 	]+9fd59073[ 	]+csrw[ 	]+spmpaddr61,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fe02573[ 	]+csrr[ 	]+a0,spmpaddr62
> +[ 	]+[0-9a-f]+:[ 	]+9fe59073[ 	]+csrw[ 	]+spmpaddr62,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ff02573[ 	]+csrr[ 	]+a0,spmpaddr63
> +[ 	]+[0-9a-f]+:[ 	]+9ff59073[ 	]+csrw[ 	]+spmpaddr63,a1
>  [ 	]+[0-9a-f]+:[ 	]+14d02573[ 	]+csrr[ 	]+a0,stimecmp
>  [ 	]+[0-9a-f]+:[ 	]+14d59073[ 	]+csrw[ 	]+stimecmp,a1
>  [ 	]+[0-9a-f]+:[ 	]+15d02573[ 	]+csrr[ 	]+a0,stimecmph
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
> index 1c0bb4ef2d8f..83933a198eda 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> @@ -587,6 +587,188 @@
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
>  .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmph', needs rv32i extension
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> index 0fe849c269c2..b304622e7f9c 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> @@ -765,6 +765,170 @@ Disassembly of section .text:
>  [ 	]+[0-9a-f]+:[ 	]+73e59073[ 	]+csrw[ 	]+mhpmevent30h,a1
>  [ 	]+[0-9a-f]+:[ 	]+73f02573[ 	]+csrr[ 	]+a0,mhpmevent31h
>  [ 	]+[0-9a-f]+:[ 	]+73f59073[ 	]+csrw[ 	]+mhpmevent31h,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c002573[ 	]+csrr[ 	]+a0,spmpcfg0
> +[ 	]+[0-9a-f]+:[ 	]+5c059073[ 	]+csrw[ 	]+spmpcfg0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c102573[ 	]+csrr[ 	]+a0,spmpcfg1
> +[ 	]+[0-9a-f]+:[ 	]+5c159073[ 	]+csrw[ 	]+spmpcfg1,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c202573[ 	]+csrr[ 	]+a0,spmpcfg2
> +[ 	]+[0-9a-f]+:[ 	]+5c259073[ 	]+csrw[ 	]+spmpcfg2,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c302573[ 	]+csrr[ 	]+a0,spmpcfg3
> +[ 	]+[0-9a-f]+:[ 	]+5c359073[ 	]+csrw[ 	]+spmpcfg3,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c402573[ 	]+csrr[ 	]+a0,spmpcfg4
> +[ 	]+[0-9a-f]+:[ 	]+5c459073[ 	]+csrw[ 	]+spmpcfg4,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c502573[ 	]+csrr[ 	]+a0,spmpcfg5
> +[ 	]+[0-9a-f]+:[ 	]+5c559073[ 	]+csrw[ 	]+spmpcfg5,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c602573[ 	]+csrr[ 	]+a0,spmpcfg6
> +[ 	]+[0-9a-f]+:[ 	]+5c659073[ 	]+csrw[ 	]+spmpcfg6,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c702573[ 	]+csrr[ 	]+a0,spmpcfg7
> +[ 	]+[0-9a-f]+:[ 	]+5c759073[ 	]+csrw[ 	]+spmpcfg7,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c802573[ 	]+csrr[ 	]+a0,spmpcfg8
> +[ 	]+[0-9a-f]+:[ 	]+5c859073[ 	]+csrw[ 	]+spmpcfg8,a1
> +[ 	]+[0-9a-f]+:[ 	]+5c902573[ 	]+csrr[ 	]+a0,spmpcfg9
> +[ 	]+[0-9a-f]+:[ 	]+5c959073[ 	]+csrw[ 	]+spmpcfg9,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ca02573[ 	]+csrr[ 	]+a0,spmpcfg10
> +[ 	]+[0-9a-f]+:[ 	]+5ca59073[ 	]+csrw[ 	]+spmpcfg10,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cb02573[ 	]+csrr[ 	]+a0,spmpcfg11
> +[ 	]+[0-9a-f]+:[ 	]+5cb59073[ 	]+csrw[ 	]+spmpcfg11,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cc02573[ 	]+csrr[ 	]+a0,spmpcfg12
> +[ 	]+[0-9a-f]+:[ 	]+5cc59073[ 	]+csrw[ 	]+spmpcfg12,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cd02573[ 	]+csrr[ 	]+a0,spmpcfg13
> +[ 	]+[0-9a-f]+:[ 	]+5cd59073[ 	]+csrw[ 	]+spmpcfg13,a1
> +[ 	]+[0-9a-f]+:[ 	]+5ce02573[ 	]+csrr[ 	]+a0,spmpcfg14
> +[ 	]+[0-9a-f]+:[ 	]+5ce59073[ 	]+csrw[ 	]+spmpcfg14,a1
> +[ 	]+[0-9a-f]+:[ 	]+5cf02573[ 	]+csrr[ 	]+a0,spmpcfg15
> +[ 	]+[0-9a-f]+:[ 	]+5cf59073[ 	]+csrw[ 	]+spmpcfg15,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d002573[ 	]+csrr[ 	]+a0,spmpswitch0
> +[ 	]+[0-9a-f]+:[ 	]+5d059073[ 	]+csrw[ 	]+spmpswitch0,a1
> +[ 	]+[0-9a-f]+:[ 	]+5d102573[ 	]+csrr[ 	]+a0,spmpswitch1
> +[ 	]+[0-9a-f]+:[ 	]+5d159073[ 	]+csrw[ 	]+spmpswitch1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c002573[ 	]+csrr[ 	]+a0,spmpaddr0
> +[ 	]+[0-9a-f]+:[ 	]+9c059073[ 	]+csrw[ 	]+spmpaddr0,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c102573[ 	]+csrr[ 	]+a0,spmpaddr1
> +[ 	]+[0-9a-f]+:[ 	]+9c159073[ 	]+csrw[ 	]+spmpaddr1,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c202573[ 	]+csrr[ 	]+a0,spmpaddr2
> +[ 	]+[0-9a-f]+:[ 	]+9c259073[ 	]+csrw[ 	]+spmpaddr2,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c302573[ 	]+csrr[ 	]+a0,spmpaddr3
> +[ 	]+[0-9a-f]+:[ 	]+9c359073[ 	]+csrw[ 	]+spmpaddr3,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c402573[ 	]+csrr[ 	]+a0,spmpaddr4
> +[ 	]+[0-9a-f]+:[ 	]+9c459073[ 	]+csrw[ 	]+spmpaddr4,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c502573[ 	]+csrr[ 	]+a0,spmpaddr5
> +[ 	]+[0-9a-f]+:[ 	]+9c559073[ 	]+csrw[ 	]+spmpaddr5,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c602573[ 	]+csrr[ 	]+a0,spmpaddr6
> +[ 	]+[0-9a-f]+:[ 	]+9c659073[ 	]+csrw[ 	]+spmpaddr6,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c702573[ 	]+csrr[ 	]+a0,spmpaddr7
> +[ 	]+[0-9a-f]+:[ 	]+9c759073[ 	]+csrw[ 	]+spmpaddr7,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c802573[ 	]+csrr[ 	]+a0,spmpaddr8
> +[ 	]+[0-9a-f]+:[ 	]+9c859073[ 	]+csrw[ 	]+spmpaddr8,a1
> +[ 	]+[0-9a-f]+:[ 	]+9c902573[ 	]+csrr[ 	]+a0,spmpaddr9
> +[ 	]+[0-9a-f]+:[ 	]+9c959073[ 	]+csrw[ 	]+spmpaddr9,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ca02573[ 	]+csrr[ 	]+a0,spmpaddr10
> +[ 	]+[0-9a-f]+:[ 	]+9ca59073[ 	]+csrw[ 	]+spmpaddr10,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cb02573[ 	]+csrr[ 	]+a0,spmpaddr11
> +[ 	]+[0-9a-f]+:[ 	]+9cb59073[ 	]+csrw[ 	]+spmpaddr11,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cc02573[ 	]+csrr[ 	]+a0,spmpaddr12
> +[ 	]+[0-9a-f]+:[ 	]+9cc59073[ 	]+csrw[ 	]+spmpaddr12,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cd02573[ 	]+csrr[ 	]+a0,spmpaddr13
> +[ 	]+[0-9a-f]+:[ 	]+9cd59073[ 	]+csrw[ 	]+spmpaddr13,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ce02573[ 	]+csrr[ 	]+a0,spmpaddr14
> +[ 	]+[0-9a-f]+:[ 	]+9ce59073[ 	]+csrw[ 	]+spmpaddr14,a1
> +[ 	]+[0-9a-f]+:[ 	]+9cf02573[ 	]+csrr[ 	]+a0,spmpaddr15
> +[ 	]+[0-9a-f]+:[ 	]+9cf59073[ 	]+csrw[ 	]+spmpaddr15,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d002573[ 	]+csrr[ 	]+a0,spmpaddr16
> +[ 	]+[0-9a-f]+:[ 	]+9d059073[ 	]+csrw[ 	]+spmpaddr16,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d102573[ 	]+csrr[ 	]+a0,spmpaddr17
> +[ 	]+[0-9a-f]+:[ 	]+9d159073[ 	]+csrw[ 	]+spmpaddr17,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d202573[ 	]+csrr[ 	]+a0,spmpaddr18
> +[ 	]+[0-9a-f]+:[ 	]+9d259073[ 	]+csrw[ 	]+spmpaddr18,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d302573[ 	]+csrr[ 	]+a0,spmpaddr19
> +[ 	]+[0-9a-f]+:[ 	]+9d359073[ 	]+csrw[ 	]+spmpaddr19,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d402573[ 	]+csrr[ 	]+a0,spmpaddr20
> +[ 	]+[0-9a-f]+:[ 	]+9d459073[ 	]+csrw[ 	]+spmpaddr20,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d502573[ 	]+csrr[ 	]+a0,spmpaddr21
> +[ 	]+[0-9a-f]+:[ 	]+9d559073[ 	]+csrw[ 	]+spmpaddr21,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d602573[ 	]+csrr[ 	]+a0,spmpaddr22
> +[ 	]+[0-9a-f]+:[ 	]+9d659073[ 	]+csrw[ 	]+spmpaddr22,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d702573[ 	]+csrr[ 	]+a0,spmpaddr23
> +[ 	]+[0-9a-f]+:[ 	]+9d759073[ 	]+csrw[ 	]+spmpaddr23,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d802573[ 	]+csrr[ 	]+a0,spmpaddr24
> +[ 	]+[0-9a-f]+:[ 	]+9d859073[ 	]+csrw[ 	]+spmpaddr24,a1
> +[ 	]+[0-9a-f]+:[ 	]+9d902573[ 	]+csrr[ 	]+a0,spmpaddr25
> +[ 	]+[0-9a-f]+:[ 	]+9d959073[ 	]+csrw[ 	]+spmpaddr25,a1
> +[ 	]+[0-9a-f]+:[ 	]+9da02573[ 	]+csrr[ 	]+a0,spmpaddr26
> +[ 	]+[0-9a-f]+:[ 	]+9da59073[ 	]+csrw[ 	]+spmpaddr26,a1
> +[ 	]+[0-9a-f]+:[ 	]+9db02573[ 	]+csrr[ 	]+a0,spmpaddr27
> +[ 	]+[0-9a-f]+:[ 	]+9db59073[ 	]+csrw[ 	]+spmpaddr27,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dc02573[ 	]+csrr[ 	]+a0,spmpaddr28
> +[ 	]+[0-9a-f]+:[ 	]+9dc59073[ 	]+csrw[ 	]+spmpaddr28,a1
> +[ 	]+[0-9a-f]+:[ 	]+9dd02573[ 	]+csrr[ 	]+a0,spmpaddr29
> +[ 	]+[0-9a-f]+:[ 	]+9dd59073[ 	]+csrw[ 	]+spmpaddr29,a1
> +[ 	]+[0-9a-f]+:[ 	]+9de02573[ 	]+csrr[ 	]+a0,spmpaddr30
> +[ 	]+[0-9a-f]+:[ 	]+9de59073[ 	]+csrw[ 	]+spmpaddr30,a1
> +[ 	]+[0-9a-f]+:[ 	]+9df02573[ 	]+csrr[ 	]+a0,spmpaddr31
> +[ 	]+[0-9a-f]+:[ 	]+9df59073[ 	]+csrw[ 	]+spmpaddr31,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e002573[ 	]+csrr[ 	]+a0,spmpaddr32
> +[ 	]+[0-9a-f]+:[ 	]+9e059073[ 	]+csrw[ 	]+spmpaddr32,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e102573[ 	]+csrr[ 	]+a0,spmpaddr33
> +[ 	]+[0-9a-f]+:[ 	]+9e159073[ 	]+csrw[ 	]+spmpaddr33,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e202573[ 	]+csrr[ 	]+a0,spmpaddr34
> +[ 	]+[0-9a-f]+:[ 	]+9e259073[ 	]+csrw[ 	]+spmpaddr34,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e302573[ 	]+csrr[ 	]+a0,spmpaddr35
> +[ 	]+[0-9a-f]+:[ 	]+9e359073[ 	]+csrw[ 	]+spmpaddr35,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e402573[ 	]+csrr[ 	]+a0,spmpaddr36
> +[ 	]+[0-9a-f]+:[ 	]+9e459073[ 	]+csrw[ 	]+spmpaddr36,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e502573[ 	]+csrr[ 	]+a0,spmpaddr37
> +[ 	]+[0-9a-f]+:[ 	]+9e559073[ 	]+csrw[ 	]+spmpaddr37,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e602573[ 	]+csrr[ 	]+a0,spmpaddr38
> +[ 	]+[0-9a-f]+:[ 	]+9e659073[ 	]+csrw[ 	]+spmpaddr38,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e702573[ 	]+csrr[ 	]+a0,spmpaddr39
> +[ 	]+[0-9a-f]+:[ 	]+9e759073[ 	]+csrw[ 	]+spmpaddr39,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e802573[ 	]+csrr[ 	]+a0,spmpaddr40
> +[ 	]+[0-9a-f]+:[ 	]+9e859073[ 	]+csrw[ 	]+spmpaddr40,a1
> +[ 	]+[0-9a-f]+:[ 	]+9e902573[ 	]+csrr[ 	]+a0,spmpaddr41
> +[ 	]+[0-9a-f]+:[ 	]+9e959073[ 	]+csrw[ 	]+spmpaddr41,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ea02573[ 	]+csrr[ 	]+a0,spmpaddr42
> +[ 	]+[0-9a-f]+:[ 	]+9ea59073[ 	]+csrw[ 	]+spmpaddr42,a1
> +[ 	]+[0-9a-f]+:[ 	]+9eb02573[ 	]+csrr[ 	]+a0,spmpaddr43
> +[ 	]+[0-9a-f]+:[ 	]+9eb59073[ 	]+csrw[ 	]+spmpaddr43,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ec02573[ 	]+csrr[ 	]+a0,spmpaddr44
> +[ 	]+[0-9a-f]+:[ 	]+9ec59073[ 	]+csrw[ 	]+spmpaddr44,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ed02573[ 	]+csrr[ 	]+a0,spmpaddr45
> +[ 	]+[0-9a-f]+:[ 	]+9ed59073[ 	]+csrw[ 	]+spmpaddr45,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ee02573[ 	]+csrr[ 	]+a0,spmpaddr46
> +[ 	]+[0-9a-f]+:[ 	]+9ee59073[ 	]+csrw[ 	]+spmpaddr46,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ef02573[ 	]+csrr[ 	]+a0,spmpaddr47
> +[ 	]+[0-9a-f]+:[ 	]+9ef59073[ 	]+csrw[ 	]+spmpaddr47,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f002573[ 	]+csrr[ 	]+a0,spmpaddr48
> +[ 	]+[0-9a-f]+:[ 	]+9f059073[ 	]+csrw[ 	]+spmpaddr48,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f102573[ 	]+csrr[ 	]+a0,spmpaddr49
> +[ 	]+[0-9a-f]+:[ 	]+9f159073[ 	]+csrw[ 	]+spmpaddr49,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f202573[ 	]+csrr[ 	]+a0,spmpaddr50
> +[ 	]+[0-9a-f]+:[ 	]+9f259073[ 	]+csrw[ 	]+spmpaddr50,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f302573[ 	]+csrr[ 	]+a0,spmpaddr51
> +[ 	]+[0-9a-f]+:[ 	]+9f359073[ 	]+csrw[ 	]+spmpaddr51,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f402573[ 	]+csrr[ 	]+a0,spmpaddr52
> +[ 	]+[0-9a-f]+:[ 	]+9f459073[ 	]+csrw[ 	]+spmpaddr52,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f502573[ 	]+csrr[ 	]+a0,spmpaddr53
> +[ 	]+[0-9a-f]+:[ 	]+9f559073[ 	]+csrw[ 	]+spmpaddr53,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f602573[ 	]+csrr[ 	]+a0,spmpaddr54
> +[ 	]+[0-9a-f]+:[ 	]+9f659073[ 	]+csrw[ 	]+spmpaddr54,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f702573[ 	]+csrr[ 	]+a0,spmpaddr55
> +[ 	]+[0-9a-f]+:[ 	]+9f759073[ 	]+csrw[ 	]+spmpaddr55,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f802573[ 	]+csrr[ 	]+a0,spmpaddr56
> +[ 	]+[0-9a-f]+:[ 	]+9f859073[ 	]+csrw[ 	]+spmpaddr56,a1
> +[ 	]+[0-9a-f]+:[ 	]+9f902573[ 	]+csrr[ 	]+a0,spmpaddr57
> +[ 	]+[0-9a-f]+:[ 	]+9f959073[ 	]+csrw[ 	]+spmpaddr57,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fa02573[ 	]+csrr[ 	]+a0,spmpaddr58
> +[ 	]+[0-9a-f]+:[ 	]+9fa59073[ 	]+csrw[ 	]+spmpaddr58,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fb02573[ 	]+csrr[ 	]+a0,spmpaddr59
> +[ 	]+[0-9a-f]+:[ 	]+9fb59073[ 	]+csrw[ 	]+spmpaddr59,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fc02573[ 	]+csrr[ 	]+a0,spmpaddr60
> +[ 	]+[0-9a-f]+:[ 	]+9fc59073[ 	]+csrw[ 	]+spmpaddr60,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fd02573[ 	]+csrr[ 	]+a0,spmpaddr61
> +[ 	]+[0-9a-f]+:[ 	]+9fd59073[ 	]+csrw[ 	]+spmpaddr61,a1
> +[ 	]+[0-9a-f]+:[ 	]+9fe02573[ 	]+csrr[ 	]+a0,spmpaddr62
> +[ 	]+[0-9a-f]+:[ 	]+9fe59073[ 	]+csrw[ 	]+spmpaddr62,a1
> +[ 	]+[0-9a-f]+:[ 	]+9ff02573[ 	]+csrr[ 	]+a0,spmpaddr63
> +[ 	]+[0-9a-f]+:[ 	]+9ff59073[ 	]+csrw[ 	]+spmpaddr63,a1
>  [ 	]+[0-9a-f]+:[ 	]+14d02573[ 	]+csrr[ 	]+a0,stimecmp
>  [ 	]+[0-9a-f]+:[ 	]+14d59073[ 	]+csrw[ 	]+stimecmp,a1
>  [ 	]+[0-9a-f]+:[ 	]+15d02573[ 	]+csrr[ 	]+a0,stimecmph
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> index c65d0b48e414..bceb315f576d 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> @@ -777,6 +777,188 @@
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
>  .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
>  .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg1', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg3', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg5', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg7', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg9', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg11', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg13', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpcfg15', needs rv32i extension
> +.*Warning: invalid CSR `spmpcfg15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpswitch1', needs rv32i extension
> +.*Warning: invalid CSR `spmpswitch1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr0', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr1', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr2', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr3', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr4', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr5', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr6', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr7', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr8', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr9', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr10', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr11', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr12', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr13', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr14', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr15', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr16', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr17', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr18', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr19', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr20', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr21', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr22', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr23', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr24', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr25', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr26', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr27', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr28', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr29', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr30', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr31', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr32', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr33', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr34', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr35', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr36', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr37', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr38', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr39', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr40', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr41', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr42', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr43', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr44', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr45', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr46', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr47', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr48', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr49', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr50', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr51', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr52', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr53', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr54', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr55', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr56', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr57', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr58', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr59', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr60', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr61', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr62', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
> +.*Warning: invalid CSR `spmpaddr63', needs `sspmp' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmp', needs `sstc' extension
>  .*Warning: invalid CSR `stimecmph', needs rv32i extension
> diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s
> index c7406ce34c2e..ec1b91950228 100644
> --- a/gas/testsuite/gas/riscv/csr.s
> +++ b/gas/testsuite/gas/riscv/csr.s
> @@ -427,6 +427,90 @@
>  	csr mhpmevent30h
>  	csr mhpmevent31h
>
> +	# Sspmp extension
> +	csr spmpcfg0
> +	csr spmpcfg1
> +	csr spmpcfg2
> +	csr spmpcfg3
> +	csr spmpcfg4
> +	csr spmpcfg5
> +	csr spmpcfg6
> +	csr spmpcfg7
> +	csr spmpcfg8
> +	csr spmpcfg9
> +	csr spmpcfg10
> +	csr spmpcfg11
> +	csr spmpcfg12
> +	csr spmpcfg13
> +	csr spmpcfg14
> +	csr spmpcfg15
> +	csr spmpswitch0
> +	csr spmpswitch1
> +	csr spmpaddr0
> +	csr spmpaddr1
> +	csr spmpaddr2
> +	csr spmpaddr3
> +	csr spmpaddr4
> +	csr spmpaddr5
> +	csr spmpaddr6
> +	csr spmpaddr7
> +	csr spmpaddr8
> +	csr spmpaddr9
> +	csr spmpaddr10
> +	csr spmpaddr11
> +	csr spmpaddr12
> +	csr spmpaddr13
> +	csr spmpaddr14
> +	csr spmpaddr15
> +	csr spmpaddr16
> +	csr spmpaddr17
> +	csr spmpaddr18
> +	csr spmpaddr19
> +	csr spmpaddr20
> +	csr spmpaddr21
> +	csr spmpaddr22
> +	csr spmpaddr23
> +	csr spmpaddr24
> +	csr spmpaddr25
> +	csr spmpaddr26
> +	csr spmpaddr27
> +	csr spmpaddr28
> +	csr spmpaddr29
> +	csr spmpaddr30
> +	csr spmpaddr31
> +	csr spmpaddr32
> +	csr spmpaddr33
> +	csr spmpaddr34
> +	csr spmpaddr35
> +	csr spmpaddr36
> +	csr spmpaddr37
> +	csr spmpaddr38
> +	csr spmpaddr39
> +	csr spmpaddr40
> +	csr spmpaddr41
> +	csr spmpaddr42
> +	csr spmpaddr43
> +	csr spmpaddr44
> +	csr spmpaddr45
> +	csr spmpaddr46
> +	csr spmpaddr47
> +	csr spmpaddr48
> +	csr spmpaddr49
> +	csr spmpaddr50
> +	csr spmpaddr51
> +	csr spmpaddr52
> +	csr spmpaddr53
> +	csr spmpaddr54
> +	csr spmpaddr55
> +	csr spmpaddr56
> +	csr spmpaddr57
> +	csr spmpaddr58
> +	csr spmpaddr59
> +	csr spmpaddr60
> +	csr spmpaddr61
> +	csr spmpaddr62
> +	csr spmpaddr63
> +
>  	# Sstc extension
>  	csr stimecmp
>  	csr stimecmph
> diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
> index 06e3df0f5a63..fc839454f7d3 100644
> --- a/include/opcode/riscv-opc.h
> +++ b/include/opcode/riscv-opc.h
> @@ -2747,6 +2747,89 @@
>  #define CSR_MHPMEVENT29H 0x73d
>  #define CSR_MHPMEVENT30H 0x73e
>  #define CSR_MHPMEVENT31H 0x73f
> +/* Sspmp extension CSR addresses.  */
> +#define CSR_SPMPCFG0 0x5c0      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG1 0x5c1      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG2 0x5c2      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG3 0x5c3      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG4 0x5c4      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG5 0x5c5      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG6 0x5c6      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG7 0x5c7      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG8 0x5c8      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG9 0x5c9      /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG10 0x5ca     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG11 0x5cb     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG12 0x5cc     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG13 0x5cd     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG14 0x5ce     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPCFG15 0x5cf     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPSWITCH0 0x5d0   /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPSWITCH1 0x5d1   /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR0 0x9c0     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR1 0x9c1     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR2 0x9c2     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR3 0x9c3     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR4 0x9c4     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR5 0x9c5     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR6 0x9c6     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR7 0x9c7     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR8 0x9c8     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR9 0x9c9     /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR10 0x9ca    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR11 0x9cb    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR12 0x9cc    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR13 0x9cd    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR14 0x9ce    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR15 0x9cf    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR16 0x9d0    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR17 0x9d1    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR18 0x9d2    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR19 0x9d3    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR20 0x9d4    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR21 0x9d5    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR22 0x9d6    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR23 0x9d7    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR24 0x9d8    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR25 0x9d9    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR26 0x9da    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR27 0x9db    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR28 0x9dc    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR29 0x9dd    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR30 0x9de    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR31 0x9df    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR32 0x9e0    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR33 0x9e1    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR34 0x9e2    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR35 0x9e3    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR36 0x9e4    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR37 0x9e5    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR38 0x9e6    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR39 0x9e7    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR40 0x9e8    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR41 0x9e9    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR42 0x9ea    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR43 0x9eb    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR44 0x9ec    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR45 0x9ed    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR46 0x9ee    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR47 0x9ef    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR48 0x9f0    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR49 0x9f1    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR50 0x9f2    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR51 0x9f3    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR52 0x9f4    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR53 0x9f5    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR54 0x9f6    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR55 0x9f7    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR56 0x9f8    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR57 0x9f9    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR58 0x9fa    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR59 0x9fb    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR60 0x9fc    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR61 0x9fd    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR62 0x9fe    /* TENTATIVELY use custom CSR address.  */
> +#define CSR_SPMPADDR63 0x9ff    /* TENTATIVELY use custom CSR address.  */
>  /* Sstc extension */
>  #define CSR_STIMECMP 0x14d
>  #define CSR_STIMECMPH 0x15d
> @@ -3624,6 +3707,89 @@ DECLARE_CSR(mhpmevent28h, CSR_MHPMEVENT28H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLA
>  DECLARE_CSR(mhpmevent29h, CSR_MHPMEVENT29H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(mhpmevent30h, CSR_MHPMEVENT30H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(mhpmevent31h, CSR_MHPMEVENT31H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +/* Sspmp extension CSRs.  */
> +DECLARE_CSR(spmpcfg0, CSR_SPMPCFG0, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg1, CSR_SPMPCFG1, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg2, CSR_SPMPCFG2, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg3, CSR_SPMPCFG3, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg4, CSR_SPMPCFG4, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg5, CSR_SPMPCFG5, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg6, CSR_SPMPCFG6, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg7, CSR_SPMPCFG7, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg8, CSR_SPMPCFG8, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg9, CSR_SPMPCFG9, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg10, CSR_SPMPCFG10, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg11, CSR_SPMPCFG11, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg12, CSR_SPMPCFG12, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg13, CSR_SPMPCFG13, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg14, CSR_SPMPCFG14, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpcfg15, CSR_SPMPCFG15, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpswitch0, CSR_SPMPSWITCH0, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpswitch1, CSR_SPMPSWITCH1, CSR_CLASS_SSPMP_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr0, CSR_SPMPADDR0, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr1, CSR_SPMPADDR1, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr2, CSR_SPMPADDR2, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr3, CSR_SPMPADDR3, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr4, CSR_SPMPADDR4, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr5, CSR_SPMPADDR5, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr6, CSR_SPMPADDR6, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr7, CSR_SPMPADDR7, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr8, CSR_SPMPADDR8, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr9, CSR_SPMPADDR9, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr10, CSR_SPMPADDR10, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr11, CSR_SPMPADDR11, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr12, CSR_SPMPADDR12, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr13, CSR_SPMPADDR13, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr14, CSR_SPMPADDR14, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr15, CSR_SPMPADDR15, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr16, CSR_SPMPADDR16, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr17, CSR_SPMPADDR17, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr18, CSR_SPMPADDR18, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr19, CSR_SPMPADDR19, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr20, CSR_SPMPADDR20, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr21, CSR_SPMPADDR21, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr22, CSR_SPMPADDR22, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr23, CSR_SPMPADDR23, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr24, CSR_SPMPADDR24, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr25, CSR_SPMPADDR25, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr26, CSR_SPMPADDR26, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr27, CSR_SPMPADDR27, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr28, CSR_SPMPADDR28, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr29, CSR_SPMPADDR29, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr30, CSR_SPMPADDR30, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr31, CSR_SPMPADDR31, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr32, CSR_SPMPADDR32, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr33, CSR_SPMPADDR33, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr34, CSR_SPMPADDR34, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr35, CSR_SPMPADDR35, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr36, CSR_SPMPADDR36, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr37, CSR_SPMPADDR37, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr38, CSR_SPMPADDR38, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr39, CSR_SPMPADDR39, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr40, CSR_SPMPADDR40, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr41, CSR_SPMPADDR41, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr42, CSR_SPMPADDR42, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr43, CSR_SPMPADDR43, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr44, CSR_SPMPADDR44, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr45, CSR_SPMPADDR45, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr46, CSR_SPMPADDR46, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr47, CSR_SPMPADDR47, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr48, CSR_SPMPADDR48, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr49, CSR_SPMPADDR49, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr50, CSR_SPMPADDR50, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr51, CSR_SPMPADDR51, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr52, CSR_SPMPADDR52, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr53, CSR_SPMPADDR53, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr54, CSR_SPMPADDR54, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr55, CSR_SPMPADDR55, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr56, CSR_SPMPADDR56, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr57, CSR_SPMPADDR57, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr58, CSR_SPMPADDR58, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr59, CSR_SPMPADDR59, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr60, CSR_SPMPADDR60, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr61, CSR_SPMPADDR61, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr62, CSR_SPMPADDR62, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(spmpaddr63, CSR_SPMPADDR63, CSR_CLASS_SSPMP, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  /* Sstc extension */
>  DECLARE_CSR(stimecmp, CSR_STIMECMP, CSR_CLASS_SSTC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(stimecmph, CSR_STIMECMPH, CSR_CLASS_SSTC_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)

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

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-29  1:20 [REVIEW ONLY 0/2] " Tsukasa OI
2022-11-29  1:20 ` [REVIEW ONLY 1/2] " Tsukasa OI
2022-11-29  2:22   ` Palmer Dabbelt [this message]
2022-11-29  1:20 ` [REVIEW ONLY 2/2] TEST: Add instantiation script on CSR allocation Tsukasa OI
2022-11-29  2:22   ` Palmer Dabbelt
2022-11-29  2:32     ` Tsukasa OI
2022-11-29  2:39       ` Palmer Dabbelt

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-e7bd7b9a-bac5-4c41-8d05-6c6161a1ecdb@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).