public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Nelson Chu <nelson.chu@sifive.com>
To: "Patrick O'Neill" <patrick@rivosinc.com>
Cc: Binutils <binutils@sourceware.org>,
	palmer@gcc.gnu.org, nelsonc1225@sourceware.org
Subject: Re: [PATCH] add missing extension info to 'invalid CSR' error
Date: Wed, 23 Feb 2022 19:22:08 +0800	[thread overview]
Message-ID: <CAJYME4FeXgs6bX1UJCJ6PX9wyY1h-jpkzDR4g3kUXi7UY36-4w@mail.gmail.com> (raw)
In-Reply-To: <20220121172200.2052299-1-patrick@rivosinc.com>

Hi Patrick,

On Sat, Jan 22, 2022 at 1:22 AM Patrick O'Neill <patrick@rivosinc.com> wrote:
>
> PR 28733
>
> Currently we report errors as "invalid CSR 'fscr' for the current ISA"
> when the instruction isn't valid.
> This patch expands that error message to include the missing extension
> information. For example, now the error message would be "invalid CSR
> 'fscr' for the current ISA, CSR 'fscr' needs 'f' extension".

Looks good to me, thanks.  But I get "needs 'i' extension" for the
rv32-only CSRs when using rv64, I think the report "needs 'rv32i'
extension" is better.  Therefore, this patch is committed with the
minor update.

Thanks
Nelson

> Signed-off-by: Patrick O'Neill <patrick@rivosinc.com>
> ---
>  gas/config/tc-riscv.c                       |  22 +-
>  gas/testsuite/gas/riscv/csr-version-1p10.l  | 312 ++++++++++----------
>  gas/testsuite/gas/riscv/csr-version-1p11.l  | 312 ++++++++++----------
>  gas/testsuite/gas/riscv/csr-version-1p12.l  | 312 ++++++++++----------
>  gas/testsuite/gas/riscv/csr-version-1p9p1.l | 312 ++++++++++----------
>  5 files changed, 640 insertions(+), 630 deletions(-)
>
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 390aaf1710b..ebad2e0b0a1 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -884,25 +884,31 @@ riscv_csr_address (const char *csr_name,
>    enum riscv_csr_class csr_class = entry->csr_class;
>    bool need_check_version = true;
>    bool result = true;
> +  const char* extension = NULL;
>
>    switch (csr_class)
>      {
>      case CSR_CLASS_I:
> -      result = riscv_subset_supports (&riscv_rps_as, "i");
> +      extension = "i";
> +      result = riscv_subset_supports (&riscv_rps_as, extension);
>        break;
>      case CSR_CLASS_I_32:
> -      result = (xlen == 32 && riscv_subset_supports (&riscv_rps_as, "i"));
> +      extension = "i";
> +      result = (xlen == 32 && riscv_subset_supports (&riscv_rps_as, extension));
>        break;
>      case CSR_CLASS_F:
> -      result = riscv_subset_supports (&riscv_rps_as, "f");
> +      extension = "f";
> +      result = riscv_subset_supports (&riscv_rps_as, extension);
>        need_check_version = false;
>        break;
>      case CSR_CLASS_ZKR:
> -      result = riscv_subset_supports (&riscv_rps_as, "zkr");
> +      extension = "zkr";
> +      result = riscv_subset_supports (&riscv_rps_as, extension);
>        need_check_version = false;
>        break;
>      case CSR_CLASS_V:
> -      result = riscv_subset_supports (&riscv_rps_as, "v");
> +      extension = "v";
> +      result = riscv_subset_supports (&riscv_rps_as, extension);
>        need_check_version = false;
>        break;
>      case CSR_CLASS_DEBUG:
> @@ -913,7 +919,11 @@ riscv_csr_address (const char *csr_name,
>      }
>
>    if (riscv_opts.csr_check && !result)
> -    as_warn (_("invalid CSR `%s' for the current ISA"), csr_name);
> +    {
> +      assert(extension != NULL);
> +      as_warn (_("invalid CSR `%s' for the current ISA, CSR `%s' needs "
> +                "`%s' extension"), csr_name, csr_name, extension);
> +    }
>
>    while (entry != NULL)
>      {
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
> index ed6773e637c..4037cb2aca6 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> @@ -31,172 +31,172 @@
>  .*Warning: read-only CSR is written `csrw hpmcounter29,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter30,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter31,a1'
> -.*Warning: invalid CSR `cycleh' for the current ISA
> -.*Warning: invalid CSR `cycleh' for the current ISA
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw cycleh,a1'
> -.*Warning: invalid CSR `timeh' for the current ISA
> -.*Warning: invalid CSR `timeh' for the current ISA
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw timeh,a1'
> -.*Warning: invalid CSR `instreth' for the current ISA
> -.*Warning: invalid CSR `instreth' for the current ISA
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
>  .*Warning: read-only CSR is written `csrw instreth,a1'
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter3h,a1'
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter4h,a1'
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter5h,a1'
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter6h,a1'
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter7h,a1'
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter8h,a1'
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter9h,a1'
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter10h,a1'
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter11h,a1'
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter12h,a1'
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter13h,a1'
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter14h,a1'
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter15h,a1'
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter16h,a1'
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter17h,a1'
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter18h,a1'
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter19h,a1'
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter20h,a1'
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter21h,a1'
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter22h,a1'
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter23h,a1'
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter24h,a1'
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter25h,a1'
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter26h,a1'
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter27h,a1'
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter28h,a1'
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter29h,a1'
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter30h,a1'
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter31h,a1'
>  .*Warning: read-only CSR is written `csrw mvendorid,a1'
>  .*Warning: read-only CSR is written `csrw marchid,a1'
>  .*Warning: read-only CSR is written `csrw mimpid,a1'
>  .*Warning: read-only CSR is written `csrw mhartid,a1'
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
>  .*Warning: invalid CSR `mcountinhibit' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mcountinhibit' for the privileged spec `1.10'
>  .*Warning: invalid CSR `hstatus' for the privileged spec `1.10'
> @@ -224,9 +224,9 @@
>  .*Warning: read-only CSR is written `csrw hgeip,a1'
>  .*Warning: invalid CSR `henvcfg' for the privileged spec `1.10'
>  .*Warning: invalid CSR `henvcfg' for the privileged spec `1.10'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
>  .*Warning: invalid CSR `henvcfgh' for the privileged spec `1.10'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
>  .*Warning: invalid CSR `henvcfgh' for the privileged spec `1.10'
>  .*Warning: invalid CSR `hgatp' for the privileged spec `1.10'
>  .*Warning: invalid CSR `hgatp' for the privileged spec `1.10'
> @@ -234,9 +234,9 @@
>  .*Warning: invalid CSR `hcontext' for the privileged spec `1.10'
>  .*Warning: invalid CSR `htimedelta' for the privileged spec `1.10'
>  .*Warning: invalid CSR `htimedelta' for the privileged spec `1.10'
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `htimedeltah' for the privileged spec `1.10'
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `htimedeltah' for the privileged spec `1.10'
>  .*Warning: invalid CSR `vsstatus' for the privileged spec `1.10'
>  .*Warning: invalid CSR `vsstatus' for the privileged spec `1.10'
> @@ -282,28 +282,28 @@
>  .*Warning: invalid CSR `mscounteren' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mhcounteren' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mhcounteren' for the privileged spec `1.10'
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vl,a1'
> -.*Warning: invalid CSR `vtype' for the current ISA
> -.*Warning: invalid CSR `vtype' for the current ISA
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vtype,a1'
> -.*Warning: invalid CSR `vlenb' for the current ISA
> -.*Warning: invalid CSR `vlenb' for the current ISA
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vlenb,a1'
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
> index 44d9611fe49..2806f1c9523 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> @@ -31,172 +31,172 @@
>  .*Warning: read-only CSR is written `csrw hpmcounter29,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter30,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter31,a1'
> -.*Warning: invalid CSR `cycleh' for the current ISA
> -.*Warning: invalid CSR `cycleh' for the current ISA
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw cycleh,a1'
> -.*Warning: invalid CSR `timeh' for the current ISA
> -.*Warning: invalid CSR `timeh' for the current ISA
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw timeh,a1'
> -.*Warning: invalid CSR `instreth' for the current ISA
> -.*Warning: invalid CSR `instreth' for the current ISA
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
>  .*Warning: read-only CSR is written `csrw instreth,a1'
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter3h,a1'
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter4h,a1'
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter5h,a1'
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter6h,a1'
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter7h,a1'
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter8h,a1'
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter9h,a1'
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter10h,a1'
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter11h,a1'
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter12h,a1'
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter13h,a1'
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter14h,a1'
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter15h,a1'
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter16h,a1'
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter17h,a1'
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter18h,a1'
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter19h,a1'
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter20h,a1'
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter21h,a1'
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter22h,a1'
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter23h,a1'
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter24h,a1'
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter25h,a1'
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter26h,a1'
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter27h,a1'
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter28h,a1'
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter29h,a1'
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter30h,a1'
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter31h,a1'
>  .*Warning: read-only CSR is written `csrw mvendorid,a1'
>  .*Warning: read-only CSR is written `csrw marchid,a1'
>  .*Warning: read-only CSR is written `csrw mimpid,a1'
>  .*Warning: read-only CSR is written `csrw mhartid,a1'
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
>  .*Warning: invalid CSR `hstatus' for the privileged spec `1.11'
>  .*Warning: invalid CSR `hstatus' for the privileged spec `1.11'
>  .*Warning: invalid CSR `hedeleg' for the privileged spec `1.11'
> @@ -222,9 +222,9 @@
>  .*Warning: read-only CSR is written `csrw hgeip,a1'
>  .*Warning: invalid CSR `henvcfg' for the privileged spec `1.11'
>  .*Warning: invalid CSR `henvcfg' for the privileged spec `1.11'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
>  .*Warning: invalid CSR `henvcfgh' for the privileged spec `1.11'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
>  .*Warning: invalid CSR `henvcfgh' for the privileged spec `1.11'
>  .*Warning: invalid CSR `hgatp' for the privileged spec `1.11'
>  .*Warning: invalid CSR `hgatp' for the privileged spec `1.11'
> @@ -232,9 +232,9 @@
>  .*Warning: invalid CSR `hcontext' for the privileged spec `1.11'
>  .*Warning: invalid CSR `htimedelta' for the privileged spec `1.11'
>  .*Warning: invalid CSR `htimedelta' for the privileged spec `1.11'
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `htimedeltah' for the privileged spec `1.11'
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `htimedeltah' for the privileged spec `1.11'
>  .*Warning: invalid CSR `vsstatus' for the privileged spec `1.11'
>  .*Warning: invalid CSR `vsstatus' for the privileged spec `1.11'
> @@ -280,28 +280,28 @@
>  .*Warning: invalid CSR `mscounteren' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mhcounteren' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mhcounteren' for the privileged spec `1.11'
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vl,a1'
> -.*Warning: invalid CSR `vtype' for the current ISA
> -.*Warning: invalid CSR `vtype' for the current ISA
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vtype,a1'
> -.*Warning: invalid CSR `vlenb' for the current ISA
> -.*Warning: invalid CSR `vlenb' for the current ISA
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vlenb,a1'
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
> index 237cb8a1699..c9e1393e6b8 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> @@ -31,177 +31,177 @@
>  .*Warning: read-only CSR is written `csrw hpmcounter29,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter30,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter31,a1'
> -.*Warning: invalid CSR `cycleh' for the current ISA
> -.*Warning: invalid CSR `cycleh' for the current ISA
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw cycleh,a1'
> -.*Warning: invalid CSR `timeh' for the current ISA
> -.*Warning: invalid CSR `timeh' for the current ISA
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw timeh,a1'
> -.*Warning: invalid CSR `instreth' for the current ISA
> -.*Warning: invalid CSR `instreth' for the current ISA
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
>  .*Warning: read-only CSR is written `csrw instreth,a1'
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter3h,a1'
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter4h,a1'
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter5h,a1'
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter6h,a1'
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter7h,a1'
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter8h,a1'
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter9h,a1'
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter10h,a1'
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter11h,a1'
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter12h,a1'
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter13h,a1'
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter14h,a1'
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter15h,a1'
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter16h,a1'
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter17h,a1'
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter18h,a1'
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter19h,a1'
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter20h,a1'
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter21h,a1'
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter22h,a1'
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter23h,a1'
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter24h,a1'
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter25h,a1'
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter26h,a1'
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter27h,a1'
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter28h,a1'
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter29h,a1'
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter30h,a1'
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter31h,a1'
>  .*Warning: read-only CSR is written `csrw mvendorid,a1'
>  .*Warning: read-only CSR is written `csrw marchid,a1'
>  .*Warning: read-only CSR is written `csrw mimpid,a1'
>  .*Warning: read-only CSR is written `csrw mhartid,a1'
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hgeip,a1'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.12'
>  .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.12'
>  .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.12'
> @@ -228,28 +228,28 @@
>  .*Warning: invalid CSR `mscounteren' for the privileged spec `1.12'
>  .*Warning: invalid CSR `mhcounteren' for the privileged spec `1.12'
>  .*Warning: invalid CSR `mhcounteren' for the privileged spec `1.12'
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vl,a1'
> -.*Warning: invalid CSR `vtype' for the current ISA
> -.*Warning: invalid CSR `vtype' for the current ISA
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vtype,a1'
> -.*Warning: invalid CSR `vlenb' for the current ISA
> -.*Warning: invalid CSR `vlenb' for the current ISA
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vlenb,a1'
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> index 00d46f509de..d29a4d9da99 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> @@ -33,101 +33,101 @@
>  .*Warning: read-only CSR is written `csrw hpmcounter29,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter30,a1'
>  .*Warning: read-only CSR is written `csrw hpmcounter31,a1'
> -.*Warning: invalid CSR `cycleh' for the current ISA
> -.*Warning: invalid CSR `cycleh' for the current ISA
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
> +.*Warning: invalid CSR `cycleh' for the current ISA, CSR `cycleh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw cycleh,a1'
> -.*Warning: invalid CSR `timeh' for the current ISA
> -.*Warning: invalid CSR `timeh' for the current ISA
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
> +.*Warning: invalid CSR `timeh' for the current ISA, CSR `timeh' needs `i' extension
>  .*Warning: read-only CSR is written `csrw timeh,a1'
> -.*Warning: invalid CSR `instreth' for the current ISA
> -.*Warning: invalid CSR `instreth' for the current ISA
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
> +.*Warning: invalid CSR `instreth' for the current ISA, CSR `instreth' needs `i' extension
>  .*Warning: read-only CSR is written `csrw instreth,a1'
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter3h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter3h' for the current ISA, CSR `hpmcounter3h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter3h,a1'
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter4h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter4h' for the current ISA, CSR `hpmcounter4h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter4h,a1'
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter5h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter5h' for the current ISA, CSR `hpmcounter5h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter5h,a1'
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter6h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter6h' for the current ISA, CSR `hpmcounter6h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter6h,a1'
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter7h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter7h' for the current ISA, CSR `hpmcounter7h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter7h,a1'
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter8h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter8h' for the current ISA, CSR `hpmcounter8h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter8h,a1'
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter9h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter9h' for the current ISA, CSR `hpmcounter9h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter9h,a1'
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter10h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter10h' for the current ISA, CSR `hpmcounter10h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter10h,a1'
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter11h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter11h' for the current ISA, CSR `hpmcounter11h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter11h,a1'
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter12h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter12h' for the current ISA, CSR `hpmcounter12h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter12h,a1'
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter13h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter13h' for the current ISA, CSR `hpmcounter13h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter13h,a1'
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter14h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter14h' for the current ISA, CSR `hpmcounter14h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter14h,a1'
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter15h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter15h' for the current ISA, CSR `hpmcounter15h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter15h,a1'
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter16h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter16h' for the current ISA, CSR `hpmcounter16h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter16h,a1'
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter17h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter17h' for the current ISA, CSR `hpmcounter17h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter17h,a1'
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter18h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter18h' for the current ISA, CSR `hpmcounter18h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter18h,a1'
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter19h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter19h' for the current ISA, CSR `hpmcounter19h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter19h,a1'
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter20h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter20h' for the current ISA, CSR `hpmcounter20h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter20h,a1'
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter21h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter21h' for the current ISA, CSR `hpmcounter21h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter21h,a1'
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter22h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter22h' for the current ISA, CSR `hpmcounter22h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter22h,a1'
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter23h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter23h' for the current ISA, CSR `hpmcounter23h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter23h,a1'
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter24h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter24h' for the current ISA, CSR `hpmcounter24h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter24h,a1'
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter25h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter25h' for the current ISA, CSR `hpmcounter25h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter25h,a1'
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter26h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter26h' for the current ISA, CSR `hpmcounter26h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter26h,a1'
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter27h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter27h' for the current ISA, CSR `hpmcounter27h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter27h,a1'
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter28h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter28h' for the current ISA, CSR `hpmcounter28h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter28h,a1'
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter29h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter29h' for the current ISA, CSR `hpmcounter29h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter29h,a1'
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter30h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter30h' for the current ISA, CSR `hpmcounter30h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter30h,a1'
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `hpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `hpmcounter31h' for the current ISA, CSR `hpmcounter31h' needs `i' extension
>  .*Warning: read-only CSR is written `csrw hpmcounter31h,a1'
>  .*Warning: invalid CSR `scounteren' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `scounteren' for the privileged spec `1.9.1'
> @@ -145,15 +145,15 @@
>  .*Warning: invalid CSR `mtval' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpcfg0' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpcfg0' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
>  .*Warning: invalid CSR `pmpcfg1' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `pmpcfg1' for the current ISA
> +.*Warning: invalid CSR `pmpcfg1' for the current ISA, CSR `pmpcfg1' needs `i' extension
>  .*Warning: invalid CSR `pmpcfg1' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpcfg2' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpcfg2' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
>  .*Warning: invalid CSR `pmpcfg3' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `pmpcfg3' for the current ISA
> +.*Warning: invalid CSR `pmpcfg3' for the current ISA, CSR `pmpcfg3' needs `i' extension
>  .*Warning: invalid CSR `pmpcfg3' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpaddr0' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpaddr0' for the privileged spec `1.9.1'
> @@ -187,68 +187,68 @@
>  .*Warning: invalid CSR `pmpaddr14' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpaddr15' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `pmpaddr15' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `mcycleh' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `minstreth' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter3h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter4h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter5h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter6h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter7h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter8h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter9h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter10h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter11h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter12h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter13h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter14h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter15h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter16h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter17h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter18h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter19h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter20h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter21h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter22h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter23h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter24h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter25h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter26h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter27h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter28h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter29h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter30h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> -.*Warning: invalid CSR `mhpmcounter31h' for the current ISA
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `mcycleh' for the current ISA, CSR `mcycleh' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `minstreth' for the current ISA, CSR `minstreth' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter3h' for the current ISA, CSR `mhpmcounter3h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter4h' for the current ISA, CSR `mhpmcounter4h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter5h' for the current ISA, CSR `mhpmcounter5h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter6h' for the current ISA, CSR `mhpmcounter6h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter7h' for the current ISA, CSR `mhpmcounter7h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter8h' for the current ISA, CSR `mhpmcounter8h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter9h' for the current ISA, CSR `mhpmcounter9h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter10h' for the current ISA, CSR `mhpmcounter10h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter11h' for the current ISA, CSR `mhpmcounter11h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter12h' for the current ISA, CSR `mhpmcounter12h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter13h' for the current ISA, CSR `mhpmcounter13h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter14h' for the current ISA, CSR `mhpmcounter14h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter15h' for the current ISA, CSR `mhpmcounter15h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter16h' for the current ISA, CSR `mhpmcounter16h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter17h' for the current ISA, CSR `mhpmcounter17h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter18h' for the current ISA, CSR `mhpmcounter18h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter19h' for the current ISA, CSR `mhpmcounter19h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter20h' for the current ISA, CSR `mhpmcounter20h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter21h' for the current ISA, CSR `mhpmcounter21h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter22h' for the current ISA, CSR `mhpmcounter22h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter23h' for the current ISA, CSR `mhpmcounter23h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter24h' for the current ISA, CSR `mhpmcounter24h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter25h' for the current ISA, CSR `mhpmcounter25h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter26h' for the current ISA, CSR `mhpmcounter26h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter27h' for the current ISA, CSR `mhpmcounter27h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter28h' for the current ISA, CSR `mhpmcounter28h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter29h' for the current ISA, CSR `mhpmcounter29h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter30h' for the current ISA, CSR `mhpmcounter30h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
> +.*Warning: invalid CSR `mhpmcounter31h' for the current ISA, CSR `mhpmcounter31h' needs `i' extension
>  .*Warning: invalid CSR `mcountinhibit' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `mcountinhibit' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `hstatus' for the privileged spec `1.9.1'
> @@ -276,9 +276,9 @@
>  .*Warning: read-only CSR is written `csrw hgeip,a1'
>  .*Warning: invalid CSR `henvcfg' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `henvcfg' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
>  .*Warning: invalid CSR `henvcfgh' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `henvcfgh' for the current ISA
> +.*Warning: invalid CSR `henvcfgh' for the current ISA, CSR `henvcfgh' needs `i' extension
>  .*Warning: invalid CSR `henvcfgh' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `hgatp' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `hgatp' for the privileged spec `1.9.1'
> @@ -286,9 +286,9 @@
>  .*Warning: invalid CSR `hcontext' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `htimedelta' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `htimedelta' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `htimedeltah' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `htimedeltah' for the current ISA
> +.*Warning: invalid CSR `htimedeltah' for the current ISA, CSR `htimedeltah' needs `i' extension
>  .*Warning: invalid CSR `htimedeltah' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `vsstatus' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `vsstatus' for the privileged spec `1.9.1'
> @@ -308,28 +308,28 @@
>  .*Warning: invalid CSR `vsip' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `vsatp' for the privileged spec `1.9.1'
>  .*Warning: invalid CSR `vsatp' for the privileged spec `1.9.1'
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `fflags' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `frm' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `fcsr' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `seed' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vstart' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxsat' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vxrm' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vcsr' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> -.*Warning: invalid CSR `vl' for the current ISA
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `fflags' for the current ISA, CSR `fflags' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `frm' for the current ISA, CSR `frm' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `fcsr' for the current ISA, CSR `fcsr' needs `f' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `seed' for the current ISA, CSR `seed' needs `zkr' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vstart' for the current ISA, CSR `vstart' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxsat' for the current ISA, CSR `vxsat' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vxrm' for the current ISA, CSR `vxrm' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vcsr' for the current ISA, CSR `vcsr' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
> +.*Warning: invalid CSR `vl' for the current ISA, CSR `vl' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vl,a1'
> -.*Warning: invalid CSR `vtype' for the current ISA
> -.*Warning: invalid CSR `vtype' for the current ISA
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
> +.*Warning: invalid CSR `vtype' for the current ISA, CSR `vtype' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vtype,a1'
> -.*Warning: invalid CSR `vlenb' for the current ISA
> -.*Warning: invalid CSR `vlenb' for the current ISA
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
> +.*Warning: invalid CSR `vlenb' for the current ISA, CSR `vlenb' needs `v' extension
>  .*Warning: read-only CSR is written `csrw vlenb,a1'
> --
> 2.25.1
>

      reply	other threads:[~2022-02-23 11:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-21 17:22 Patrick O'Neill
2022-02-23 11:22 ` Nelson Chu [this message]

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=CAJYME4FeXgs6bX1UJCJ6PX9wyY1h-jpkzDR4g3kUXi7UY36-4w@mail.gmail.com \
    --to=nelson.chu@sifive.com \
    --cc=binutils@sourceware.org \
    --cc=nelsonc1225@sourceware.org \
    --cc=palmer@gcc.gnu.org \
    --cc=patrick@rivosinc.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).