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)
next prev parent 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).