aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/cpu-riscv.c1
-rw-r--r--bfd/cpu-riscv.h1
-rw-r--r--bfd/elfxx-riscv.c15
-rw-r--r--bfd/version.h2
-rw-r--r--binutils/doc/binutils.texi2
-rw-r--r--gas/NEWS6
-rw-r--r--gas/config/tc-riscv.c103
-rwxr-xr-xgas/configure2
-rw-r--r--gas/configure.ac2
-rw-r--r--gas/doc/c-riscv.texi21
-rw-r--r--gas/testsuite/gas/riscv/attribute-15.d8
-rw-r--r--gas/testsuite/gas/riscv/attribute-16.d6
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p10.d4
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p10.l16
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p11.d4
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p11.l16
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p12.d4
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p12.l16
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p13.d941
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p13.l1495
-rw-r--r--gas/testsuite/gas/riscv/csr.s4
-rw-r--r--gas/testsuite/gas/riscv/imply.d1
-rw-r--r--gas/testsuite/gas/riscv/imply.s2
-rw-r--r--gas/testsuite/gas/riscv/march-help.l5
-rw-r--r--gas/testsuite/gas/riscv/mips-insns.d31
-rw-r--r--gas/testsuite/gas/riscv/mips-insns.s42
-rw-r--r--gdb/auto-load.c67
-rw-r--r--include/opcode/riscv-opc.h33
-rw-r--r--include/opcode/riscv.h40
-rw-r--r--opcodes/riscv-dis.c36
-rw-r--r--opcodes/riscv-opc.c12
31 files changed, 2888 insertions, 50 deletions
diff --git a/bfd/cpu-riscv.c b/bfd/cpu-riscv.c
index ea25e78..67ee601 100644
--- a/bfd/cpu-riscv.c
+++ b/bfd/cpu-riscv.c
@@ -118,6 +118,7 @@ const struct riscv_spec riscv_priv_specs[] =
{"1.10", PRIV_SPEC_CLASS_1P10},
{"1.11", PRIV_SPEC_CLASS_1P11},
{"1.12", PRIV_SPEC_CLASS_1P12},
+ {"1.13", PRIV_SPEC_CLASS_1P13},
};
/* Get the corresponding CSR version class by giving privilege
diff --git a/bfd/cpu-riscv.h b/bfd/cpu-riscv.h
index 93a3f52..b07fcf8 100644
--- a/bfd/cpu-riscv.h
+++ b/bfd/cpu-riscv.h
@@ -33,6 +33,7 @@ enum riscv_spec_class
PRIV_SPEC_CLASS_1P10,
PRIV_SPEC_CLASS_1P11,
PRIV_SPEC_CLASS_1P12,
+ PRIV_SPEC_CLASS_1P13,
PRIV_SPEC_CLASS_DRAFT,
};
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index ec25491..83e237c 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1223,6 +1223,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zicfilp", "+zicsr", check_implicit_always},
{"zicfiss", "+zimop,+zicsr", check_implicit_always},
+ {"sha", "+h,+ssstateen,+shcounterenw,+shvstvala,+shtvala,+shvstvecd,+shvsatpa,+shgatpa", check_implicit_always},
+
{"shcounterenw", "+h", check_implicit_always},
{"shgatpa", "+h", check_implicit_always},
{"shtvala", "+h", check_implicit_always},
@@ -1447,6 +1449,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{
+ {"sha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shcounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shgatpa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shtvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1523,6 +1526,10 @@ static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
{"xsfvqmaccqoq", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
{"xsfvqmaccdod", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
{"xsfvfnrclipxfqf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
+ {"xmipscbop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipscmov", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipsexectl", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipslsp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
@@ -2863,6 +2870,14 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
return riscv_subset_supports (rps, "xsfvqmaccdod");
case INSN_CLASS_XSFVFNRCLIPXFQF:
return riscv_subset_supports (rps, "xsfvfnrclipxfqf");
+ case INSN_CLASS_XMIPSCBOP:
+ return riscv_subset_supports (rps, "xmipscbop");
+ case INSN_CLASS_XMIPSCMOV:
+ return riscv_subset_supports (rps, "xmipscmov");
+ case INSN_CLASS_XMIPSEXECTL:
+ return riscv_subset_supports (rps, "xmipsexectl");
+ case INSN_CLASS_XMIPSLSP:
+ return riscv_subset_supports (rps, "xmipslsp");
default:
rps->error_handler
(_("internal: unreachable INSN_CLASS_*"));
diff --git a/bfd/version.h b/bfd/version.h
index ae6f7c7..f66dfdc 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -16,7 +16,7 @@
In releases, the date is not included in either version strings or
sonames. */
-#define BFD_VERSION_DATE 20250508
+#define BFD_VERSION_DATE 20250509
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index c74526e..7f041d9 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -2720,7 +2720,7 @@ instructions will be represented as such (@code{addi sp,sp,-128} will be
@item priv-spec=@var{SPEC}
Print the CSR according to the chosen privilege spec version (e.g.,
-@code{1.10}, @code{1.11}, @code{1.12}).
+@code{1.10}, @code{1.11}, @code{1.12}, @code{1.13}).
@end table
For MIPS, this option controls the printing of instruction mnemonic
diff --git a/gas/NEWS b/gas/NEWS
index b4fc2e9..9d845a8 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -8,11 +8,15 @@
to have the same ISA as elf architecture attribute. Once used .option arch
directives, the file need to be rebuilt since 2.45.
+* Add support for RISC-V privileged version 1.13.
+
* Add support for RISC-V standard extensions:
- ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0.
+ ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0,
+ sha v1.0.
* Add support for RISC-V vendor extensions:
T-Head: xtheadvdot v1.0.
+ MIPS: xmipscbop v1.0, xmipscmov v1.0, xmipsexectl v1.0, xmipslsp v1.0.
* Add support for the x86 Zhaoxin PadLock XMODX instructions.
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 8485ad4..ca4030d 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -1752,6 +1752,21 @@ validate_riscv_insn (const struct riscv_opcode *opc, int length)
goto unknown_validate_operand;
}
break;
+ case 'm': /* Vendor-specific (MIPS) operands. */
+ switch (*++oparg)
+ {
+ case '@': USE_BITS (OP_MASK_MIPS_HINT, OP_SH_MIPS_HINT);
+ break;
+ case '#': USE_BITS (OP_MASK_MIPS_IMM9, OP_SH_MIPS_IMM9);
+ break;
+ case '$': used_bits |= ENCODE_MIPS_LDP_IMM (-1U); break;
+ case '%': used_bits |= ENCODE_MIPS_LWP_IMM (-1U); break;
+ case '^': used_bits |= ENCODE_MIPS_SDP_IMM (-1U); break;
+ case '&': used_bits |= ENCODE_MIPS_SWP_IMM (-1U); break;
+ default:
+ goto unknown_validate_operand;
+ }
+ break;
default:
goto unknown_validate_operand;
}
@@ -4173,6 +4188,92 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
#undef ENCODE_UIMM_BIT_FIELD
break;
+ case 'm': /* Vendor-specific (MIPS) operands. */
+ switch (*++oparg)
+ {
+ case '@': /* hint 0 - 31. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number > 31)
+ as_bad(_("Improper hint amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_HINT, *ip, imm_expr->X_add_number);
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '#': /* immediate 0 - 511. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number > 511)
+ as_bad(_("Improper immediate amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_IMM9, *ip, imm_expr->X_add_number);
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '$': /* LDP offset 0 to (1<<7)-8. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x7) != 0)
+ as_bad(_("Improper LDP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_LDP_OFFSET, *ip,
+ (imm_expr->X_add_number >> 3));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '%': /* LWP offset 0 to (1<<7)-4. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x3) != 0)
+ as_bad(_("Improper LWP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_LWP_OFFSET, *ip,
+ (imm_expr->X_add_number >> 2));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '^': /* SDP offset 0 to (1<<7)-8. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x7) != 0)
+ as_bad(_("Improper SDP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_SDP_OFFSET10, *ip,
+ (imm_expr->X_add_number >> 3));
+ INSERT_OPERAND(MIPS_SDP_OFFSET25, *ip,
+ (imm_expr->X_add_number >> 5));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '&': /* SWP offset 0 to (1<<7)-4. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x3) != 0)
+ as_bad(_("Improper SWP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_SWP_OFFSET9, *ip,
+ (imm_expr->X_add_number >> 2));
+ INSERT_OPERAND(MIPS_SWP_OFFSET25, *ip,
+ (imm_expr->X_add_number >> 5));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ default:
+ goto unknown_riscv_ip_operand;
+ }
+ break;
+
default:
goto unknown_riscv_ip_operand;
}
@@ -5367,7 +5468,7 @@ RISC-V options:\n\
-fno-pic don't generate position-independent code (default)\n\
-march=ISA set the RISC-V architecture\n\
-misa-spec=ISAspec set the RISC-V ISA spec (2.2, 20190608, 20191213)\n\
- -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12)\n\
+ -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12, 1.13)\n\
-mabi=ABI set the RISC-V ABI\n\
-mrelax enable relax (default)\n\
-mno-relax disable relax\n\
diff --git a/gas/configure b/gas/configure
index 16a8937..e39c965 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12609,7 +12609,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_isa_spec" >&5
$as_echo "$with_isa_spec" >&6; }
- # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
+ # --with-priv-spec=[1.9.1|1.10|1.11|1.12|1.13].
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default configuration of --with-priv-spec" >&5
$as_echo_n "checking for default configuration of --with-priv-spec... " >&6; }
if test "x${with_priv_spec}" != x; then
diff --git a/gas/configure.ac b/gas/configure.ac
index e97ec59..e1d32c3 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -653,7 +653,7 @@ changequote([,])dnl
fi
AC_MSG_RESULT($with_isa_spec)
- # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
+ # --with-priv-spec=[1.9.1|1.10|1.11|1.12|1.13].
AC_MSG_CHECKING(for default configuration of --with-priv-spec)
if test "x${with_priv_spec}" != x; then
AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
diff --git a/gas/doc/c-riscv.texi b/gas/doc/c-riscv.texi
index 0a92e78..28ccfb2 100644
--- a/gas/doc/c-riscv.texi
+++ b/gas/doc/c-riscv.texi
@@ -892,4 +892,25 @@ XSfCease provides an instruction to instigates power-down sequence.
It is documented in @url{https://sifive.cdn.prismic.io/sifive/767804da-53b2-4893-97d5-b7c030ae0a94_s76mc_core_complex_manual_21G3.pdf}.
+@item XMipsCbop
+The XMipsCbop extension provides instruction mips.pref.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
+@item XMipsCmov
+The XMipsCmov extension provides instruction mips.ccmov.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
+@item XMipsExectl
+The XMipsExectl extension provides instructions mips.ehb, mips.ihb and mips.pause.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
+@item XMipsSlsp
+
+The XMipsSlsp extension provides instructions mips.ldp, mips.lwp, mips.sdp and mips.swp.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
@end table
diff --git a/gas/testsuite/gas/riscv/attribute-15.d b/gas/testsuite/gas/riscv/attribute-15.d
new file mode 100644
index 0000000..929631a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-15.d
@@ -0,0 +1,8 @@
+#as: -march-attr -mpriv-spec=1.13
+#readelf: -A
+#source: attribute-11.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+ Tag_RISCV_priv_spec: 1
+ Tag_RISCV_priv_spec_minor: 13
diff --git a/gas/testsuite/gas/riscv/attribute-16.d b/gas/testsuite/gas/riscv/attribute-16.d
new file mode 100644
index 0000000..928d8d7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-16.d
@@ -0,0 +1,6 @@
+#as: -march-attr -mpriv-spec=1.13
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: [a-zA-Z0-9_\"].*
diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d
index 6896e7b..ba2fa9e 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
@@ -175,6 +175,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,0x312
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+0x312,a1
[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
@@ -555,6 +557,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,0x612
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+0x612,a1
[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
index 46d1e4e..0f8e0ec 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
@@ -273,6 +273,14 @@
.*Info: macro .*
.*Warning: read-only CSR is written `csrw mconfigptr,a1'
.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.10'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.10'
+.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
.*Info: macro .*
.*Warning: invalid CSR `mstatush' for the privileged spec `1.10'
@@ -721,6 +729,14 @@
.*Info: macro .*
.*Warning: invalid CSR `hedeleg', needs `h' extension
.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d
index 308140a..ed84898 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
@@ -175,6 +175,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,0x312
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+0x312,a1
[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
@@ -555,6 +557,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,0x612
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+0x612,a1
[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
index 9e813e2..69e6c53 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
@@ -273,6 +273,14 @@
.*Info: macro .*
.*Warning: read-only CSR is written `csrw mconfigptr,a1'
.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.11'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.11'
+.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
.*Info: macro .*
.*Warning: invalid CSR `mstatush' for the privileged spec `1.11'
@@ -717,6 +725,14 @@
.*Info: macro .*
.*Warning: invalid CSR `hedeleg', needs `h' extension
.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d
index 5fe3316..dfbb243 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
@@ -175,6 +175,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,0x312
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+0x312,a1
[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
@@ -555,6 +557,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,0x612
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+0x612,a1
[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
index ff60ec0..7214841 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
@@ -265,6 +265,14 @@
.*Info: macro .*
.*Warning: read-only CSR is written `csrw mconfigptr,a1'
.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.12'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.12'
+.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
@@ -441,6 +449,14 @@
.*Info: macro .*
.*Warning: invalid CSR `hedeleg', needs `h' extension
.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
diff --git a/gas/testsuite/gas/riscv/csr-version-1p13.d b/gas/testsuite/gas/riscv/csr-version-1p13.d
new file mode 100644
index 0000000..1309030
--- /dev/null
+++ b/gas/testsuite/gas/riscv/csr-version-1p13.d
@@ -0,0 +1,941 @@
+#as: -march=rv64i_zicsr -mcsr-check -mpriv-spec=1.13
+#source: csr.s
+#warning_output: csr-version-1p13.l
+#objdump: -dr -Mpriv-spec=1.13
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[ ]+[0-9a-f]+:[ ]+c0002573[ ]+rdcycle[ ]+a0
+[ ]+[0-9a-f]+:[ ]+c0059073[ ]+csrw[ ]+cycle,a1
+[ ]+[0-9a-f]+:[ ]+c0102573[ ]+rdtime[ ]+a0
+[ ]+[0-9a-f]+:[ ]+c0159073[ ]+csrw[ ]+time,a1
+[ ]+[0-9a-f]+:[ ]+c0202573[ ]+rdinstret[ ]+a0
+[ ]+[0-9a-f]+:[ ]+c0259073[ ]+csrw[ ]+instret,a1
+[ ]+[0-9a-f]+:[ ]+c0302573[ ]+csrr[ ]+a0,hpmcounter3
+[ ]+[0-9a-f]+:[ ]+c0359073[ ]+csrw[ ]+hpmcounter3,a1
+[ ]+[0-9a-f]+:[ ]+c0402573[ ]+csrr[ ]+a0,hpmcounter4
+[ ]+[0-9a-f]+:[ ]+c0459073[ ]+csrw[ ]+hpmcounter4,a1
+[ ]+[0-9a-f]+:[ ]+c0502573[ ]+csrr[ ]+a0,hpmcounter5
+[ ]+[0-9a-f]+:[ ]+c0559073[ ]+csrw[ ]+hpmcounter5,a1
+[ ]+[0-9a-f]+:[ ]+c0602573[ ]+csrr[ ]+a0,hpmcounter6
+[ ]+[0-9a-f]+:[ ]+c0659073[ ]+csrw[ ]+hpmcounter6,a1
+[ ]+[0-9a-f]+:[ ]+c0702573[ ]+csrr[ ]+a0,hpmcounter7
+[ ]+[0-9a-f]+:[ ]+c0759073[ ]+csrw[ ]+hpmcounter7,a1
+[ ]+[0-9a-f]+:[ ]+c0802573[ ]+csrr[ ]+a0,hpmcounter8
+[ ]+[0-9a-f]+:[ ]+c0859073[ ]+csrw[ ]+hpmcounter8,a1
+[ ]+[0-9a-f]+:[ ]+c0902573[ ]+csrr[ ]+a0,hpmcounter9
+[ ]+[0-9a-f]+:[ ]+c0959073[ ]+csrw[ ]+hpmcounter9,a1
+[ ]+[0-9a-f]+:[ ]+c0a02573[ ]+csrr[ ]+a0,hpmcounter10
+[ ]+[0-9a-f]+:[ ]+c0a59073[ ]+csrw[ ]+hpmcounter10,a1
+[ ]+[0-9a-f]+:[ ]+c0b02573[ ]+csrr[ ]+a0,hpmcounter11
+[ ]+[0-9a-f]+:[ ]+c0b59073[ ]+csrw[ ]+hpmcounter11,a1
+[ ]+[0-9a-f]+:[ ]+c0c02573[ ]+csrr[ ]+a0,hpmcounter12
+[ ]+[0-9a-f]+:[ ]+c0c59073[ ]+csrw[ ]+hpmcounter12,a1
+[ ]+[0-9a-f]+:[ ]+c0d02573[ ]+csrr[ ]+a0,hpmcounter13
+[ ]+[0-9a-f]+:[ ]+c0d59073[ ]+csrw[ ]+hpmcounter13,a1
+[ ]+[0-9a-f]+:[ ]+c0e02573[ ]+csrr[ ]+a0,hpmcounter14
+[ ]+[0-9a-f]+:[ ]+c0e59073[ ]+csrw[ ]+hpmcounter14,a1
+[ ]+[0-9a-f]+:[ ]+c0f02573[ ]+csrr[ ]+a0,hpmcounter15
+[ ]+[0-9a-f]+:[ ]+c0f59073[ ]+csrw[ ]+hpmcounter15,a1
+[ ]+[0-9a-f]+:[ ]+c1002573[ ]+csrr[ ]+a0,hpmcounter16
+[ ]+[0-9a-f]+:[ ]+c1059073[ ]+csrw[ ]+hpmcounter16,a1
+[ ]+[0-9a-f]+:[ ]+c1102573[ ]+csrr[ ]+a0,hpmcounter17
+[ ]+[0-9a-f]+:[ ]+c1159073[ ]+csrw[ ]+hpmcounter17,a1
+[ ]+[0-9a-f]+:[ ]+c1202573[ ]+csrr[ ]+a0,hpmcounter18
+[ ]+[0-9a-f]+:[ ]+c1259073[ ]+csrw[ ]+hpmcounter18,a1
+[ ]+[0-9a-f]+:[ ]+c1302573[ ]+csrr[ ]+a0,hpmcounter19
+[ ]+[0-9a-f]+:[ ]+c1359073[ ]+csrw[ ]+hpmcounter19,a1
+[ ]+[0-9a-f]+:[ ]+c1402573[ ]+csrr[ ]+a0,hpmcounter20
+[ ]+[0-9a-f]+:[ ]+c1459073[ ]+csrw[ ]+hpmcounter20,a1
+[ ]+[0-9a-f]+:[ ]+c1502573[ ]+csrr[ ]+a0,hpmcounter21
+[ ]+[0-9a-f]+:[ ]+c1559073[ ]+csrw[ ]+hpmcounter21,a1
+[ ]+[0-9a-f]+:[ ]+c1602573[ ]+csrr[ ]+a0,hpmcounter22
+[ ]+[0-9a-f]+:[ ]+c1659073[ ]+csrw[ ]+hpmcounter22,a1
+[ ]+[0-9a-f]+:[ ]+c1702573[ ]+csrr[ ]+a0,hpmcounter23
+[ ]+[0-9a-f]+:[ ]+c1759073[ ]+csrw[ ]+hpmcounter23,a1
+[ ]+[0-9a-f]+:[ ]+c1802573[ ]+csrr[ ]+a0,hpmcounter24
+[ ]+[0-9a-f]+:[ ]+c1859073[ ]+csrw[ ]+hpmcounter24,a1
+[ ]+[0-9a-f]+:[ ]+c1902573[ ]+csrr[ ]+a0,hpmcounter25
+[ ]+[0-9a-f]+:[ ]+c1959073[ ]+csrw[ ]+hpmcounter25,a1
+[ ]+[0-9a-f]+:[ ]+c1a02573[ ]+csrr[ ]+a0,hpmcounter26
+[ ]+[0-9a-f]+:[ ]+c1a59073[ ]+csrw[ ]+hpmcounter26,a1
+[ ]+[0-9a-f]+:[ ]+c1b02573[ ]+csrr[ ]+a0,hpmcounter27
+[ ]+[0-9a-f]+:[ ]+c1b59073[ ]+csrw[ ]+hpmcounter27,a1
+[ ]+[0-9a-f]+:[ ]+c1c02573[ ]+csrr[ ]+a0,hpmcounter28
+[ ]+[0-9a-f]+:[ ]+c1c59073[ ]+csrw[ ]+hpmcounter28,a1
+[ ]+[0-9a-f]+:[ ]+c1d02573[ ]+csrr[ ]+a0,hpmcounter29
+[ ]+[0-9a-f]+:[ ]+c1d59073[ ]+csrw[ ]+hpmcounter29,a1
+[ ]+[0-9a-f]+:[ ]+c1e02573[ ]+csrr[ ]+a0,hpmcounter30
+[ ]+[0-9a-f]+:[ ]+c1e59073[ ]+csrw[ ]+hpmcounter30,a1
+[ ]+[0-9a-f]+:[ ]+c1f02573[ ]+csrr[ ]+a0,hpmcounter31
+[ ]+[0-9a-f]+:[ ]+c1f59073[ ]+csrw[ ]+hpmcounter31,a1
+[ ]+[0-9a-f]+:[ ]+c8002573[ ]+csrr[ ]+a0,cycleh
+[ ]+[0-9a-f]+:[ ]+c8059073[ ]+csrw[ ]+cycleh,a1
+[ ]+[0-9a-f]+:[ ]+c8102573[ ]+csrr[ ]+a0,timeh
+[ ]+[0-9a-f]+:[ ]+c8159073[ ]+csrw[ ]+timeh,a1
+[ ]+[0-9a-f]+:[ ]+c8202573[ ]+csrr[ ]+a0,instreth
+[ ]+[0-9a-f]+:[ ]+c8259073[ ]+csrw[ ]+instreth,a1
+[ ]+[0-9a-f]+:[ ]+c8302573[ ]+csrr[ ]+a0,hpmcounter3h
+[ ]+[0-9a-f]+:[ ]+c8359073[ ]+csrw[ ]+hpmcounter3h,a1
+[ ]+[0-9a-f]+:[ ]+c8402573[ ]+csrr[ ]+a0,hpmcounter4h
+[ ]+[0-9a-f]+:[ ]+c8459073[ ]+csrw[ ]+hpmcounter4h,a1
+[ ]+[0-9a-f]+:[ ]+c8502573[ ]+csrr[ ]+a0,hpmcounter5h
+[ ]+[0-9a-f]+:[ ]+c8559073[ ]+csrw[ ]+hpmcounter5h,a1
+[ ]+[0-9a-f]+:[ ]+c8602573[ ]+csrr[ ]+a0,hpmcounter6h
+[ ]+[0-9a-f]+:[ ]+c8659073[ ]+csrw[ ]+hpmcounter6h,a1
+[ ]+[0-9a-f]+:[ ]+c8702573[ ]+csrr[ ]+a0,hpmcounter7h
+[ ]+[0-9a-f]+:[ ]+c8759073[ ]+csrw[ ]+hpmcounter7h,a1
+[ ]+[0-9a-f]+:[ ]+c8802573[ ]+csrr[ ]+a0,hpmcounter8h
+[ ]+[0-9a-f]+:[ ]+c8859073[ ]+csrw[ ]+hpmcounter8h,a1
+[ ]+[0-9a-f]+:[ ]+c8902573[ ]+csrr[ ]+a0,hpmcounter9h
+[ ]+[0-9a-f]+:[ ]+c8959073[ ]+csrw[ ]+hpmcounter9h,a1
+[ ]+[0-9a-f]+:[ ]+c8a02573[ ]+csrr[ ]+a0,hpmcounter10h
+[ ]+[0-9a-f]+:[ ]+c8a59073[ ]+csrw[ ]+hpmcounter10h,a1
+[ ]+[0-9a-f]+:[ ]+c8b02573[ ]+csrr[ ]+a0,hpmcounter11h
+[ ]+[0-9a-f]+:[ ]+c8b59073[ ]+csrw[ ]+hpmcounter11h,a1
+[ ]+[0-9a-f]+:[ ]+c8c02573[ ]+csrr[ ]+a0,hpmcounter12h
+[ ]+[0-9a-f]+:[ ]+c8c59073[ ]+csrw[ ]+hpmcounter12h,a1
+[ ]+[0-9a-f]+:[ ]+c8d02573[ ]+csrr[ ]+a0,hpmcounter13h
+[ ]+[0-9a-f]+:[ ]+c8d59073[ ]+csrw[ ]+hpmcounter13h,a1
+[ ]+[0-9a-f]+:[ ]+c8e02573[ ]+csrr[ ]+a0,hpmcounter14h
+[ ]+[0-9a-f]+:[ ]+c8e59073[ ]+csrw[ ]+hpmcounter14h,a1
+[ ]+[0-9a-f]+:[ ]+c8f02573[ ]+csrr[ ]+a0,hpmcounter15h
+[ ]+[0-9a-f]+:[ ]+c8f59073[ ]+csrw[ ]+hpmcounter15h,a1
+[ ]+[0-9a-f]+:[ ]+c9002573[ ]+csrr[ ]+a0,hpmcounter16h
+[ ]+[0-9a-f]+:[ ]+c9059073[ ]+csrw[ ]+hpmcounter16h,a1
+[ ]+[0-9a-f]+:[ ]+c9102573[ ]+csrr[ ]+a0,hpmcounter17h
+[ ]+[0-9a-f]+:[ ]+c9159073[ ]+csrw[ ]+hpmcounter17h,a1
+[ ]+[0-9a-f]+:[ ]+c9202573[ ]+csrr[ ]+a0,hpmcounter18h
+[ ]+[0-9a-f]+:[ ]+c9259073[ ]+csrw[ ]+hpmcounter18h,a1
+[ ]+[0-9a-f]+:[ ]+c9302573[ ]+csrr[ ]+a0,hpmcounter19h
+[ ]+[0-9a-f]+:[ ]+c9359073[ ]+csrw[ ]+hpmcounter19h,a1
+[ ]+[0-9a-f]+:[ ]+c9402573[ ]+csrr[ ]+a0,hpmcounter20h
+[ ]+[0-9a-f]+:[ ]+c9459073[ ]+csrw[ ]+hpmcounter20h,a1
+[ ]+[0-9a-f]+:[ ]+c9502573[ ]+csrr[ ]+a0,hpmcounter21h
+[ ]+[0-9a-f]+:[ ]+c9559073[ ]+csrw[ ]+hpmcounter21h,a1
+[ ]+[0-9a-f]+:[ ]+c9602573[ ]+csrr[ ]+a0,hpmcounter22h
+[ ]+[0-9a-f]+:[ ]+c9659073[ ]+csrw[ ]+hpmcounter22h,a1
+[ ]+[0-9a-f]+:[ ]+c9702573[ ]+csrr[ ]+a0,hpmcounter23h
+[ ]+[0-9a-f]+:[ ]+c9759073[ ]+csrw[ ]+hpmcounter23h,a1
+[ ]+[0-9a-f]+:[ ]+c9802573[ ]+csrr[ ]+a0,hpmcounter24h
+[ ]+[0-9a-f]+:[ ]+c9859073[ ]+csrw[ ]+hpmcounter24h,a1
+[ ]+[0-9a-f]+:[ ]+c9902573[ ]+csrr[ ]+a0,hpmcounter25h
+[ ]+[0-9a-f]+:[ ]+c9959073[ ]+csrw[ ]+hpmcounter25h,a1
+[ ]+[0-9a-f]+:[ ]+c9a02573[ ]+csrr[ ]+a0,hpmcounter26h
+[ ]+[0-9a-f]+:[ ]+c9a59073[ ]+csrw[ ]+hpmcounter26h,a1
+[ ]+[0-9a-f]+:[ ]+c9b02573[ ]+csrr[ ]+a0,hpmcounter27h
+[ ]+[0-9a-f]+:[ ]+c9b59073[ ]+csrw[ ]+hpmcounter27h,a1
+[ ]+[0-9a-f]+:[ ]+c9c02573[ ]+csrr[ ]+a0,hpmcounter28h
+[ ]+[0-9a-f]+:[ ]+c9c59073[ ]+csrw[ ]+hpmcounter28h,a1
+[ ]+[0-9a-f]+:[ ]+c9d02573[ ]+csrr[ ]+a0,hpmcounter29h
+[ ]+[0-9a-f]+:[ ]+c9d59073[ ]+csrw[ ]+hpmcounter29h,a1
+[ ]+[0-9a-f]+:[ ]+c9e02573[ ]+csrr[ ]+a0,hpmcounter30h
+[ ]+[0-9a-f]+:[ ]+c9e59073[ ]+csrw[ ]+hpmcounter30h,a1
+[ ]+[0-9a-f]+:[ ]+c9f02573[ ]+csrr[ ]+a0,hpmcounter31h
+[ ]+[0-9a-f]+:[ ]+c9f59073[ ]+csrw[ ]+hpmcounter31h,a1
+[ ]+[0-9a-f]+:[ ]+10002573[ ]+csrr[ ]+a0,sstatus
+[ ]+[0-9a-f]+:[ ]+10059073[ ]+csrw[ ]+sstatus,a1
+[ ]+[0-9a-f]+:[ ]+10402573[ ]+csrr[ ]+a0,sie
+[ ]+[0-9a-f]+:[ ]+10459073[ ]+csrw[ ]+sie,a1
+[ ]+[0-9a-f]+:[ ]+10502573[ ]+csrr[ ]+a0,stvec
+[ ]+[0-9a-f]+:[ ]+10559073[ ]+csrw[ ]+stvec,a1
+[ ]+[0-9a-f]+:[ ]+10602573[ ]+csrr[ ]+a0,scounteren
+[ ]+[0-9a-f]+:[ ]+10659073[ ]+csrw[ ]+scounteren,a1
+[ ]+[0-9a-f]+:[ ]+10a02573[ ]+csrr[ ]+a0,senvcfg
+[ ]+[0-9a-f]+:[ ]+10a59073[ ]+csrw[ ]+senvcfg,a1
+[ ]+[0-9a-f]+:[ ]+14002573[ ]+csrr[ ]+a0,sscratch
+[ ]+[0-9a-f]+:[ ]+14059073[ ]+csrw[ ]+sscratch,a1
+[ ]+[0-9a-f]+:[ ]+14102573[ ]+csrr[ ]+a0,sepc
+[ ]+[0-9a-f]+:[ ]+14159073[ ]+csrw[ ]+sepc,a1
+[ ]+[0-9a-f]+:[ ]+14202573[ ]+csrr[ ]+a0,scause
+[ ]+[0-9a-f]+:[ ]+14259073[ ]+csrw[ ]+scause,a1
+[ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval
+[ ]+[0-9a-f]+:[ ]+14359073[ ]+csrw[ ]+stval,a1
+[ ]+[0-9a-f]+:[ ]+14402573[ ]+csrr[ ]+a0,sip
+[ ]+[0-9a-f]+:[ ]+14459073[ ]+csrw[ ]+sip,a1
+[ ]+[0-9a-f]+:[ ]+18002573[ ]+csrr[ ]+a0,satp
+[ ]+[0-9a-f]+:[ ]+18059073[ ]+csrw[ ]+satp,a1
+[ ]+[0-9a-f]+:[ ]+f1102573[ ]+csrr[ ]+a0,mvendorid
+[ ]+[0-9a-f]+:[ ]+f1159073[ ]+csrw[ ]+mvendorid,a1
+[ ]+[0-9a-f]+:[ ]+f1202573[ ]+csrr[ ]+a0,marchid
+[ ]+[0-9a-f]+:[ ]+f1259073[ ]+csrw[ ]+marchid,a1
+[ ]+[0-9a-f]+:[ ]+f1302573[ ]+csrr[ ]+a0,mimpid
+[ ]+[0-9a-f]+:[ ]+f1359073[ ]+csrw[ ]+mimpid,a1
+[ ]+[0-9a-f]+:[ ]+f1402573[ ]+csrr[ ]+a0,mhartid
+[ ]+[0-9a-f]+:[ ]+f1459073[ ]+csrw[ ]+mhartid,a1
+[ ]+[0-9a-f]+:[ ]+f1502573[ ]+csrr[ ]+a0,mconfigptr
+[ ]+[0-9a-f]+:[ ]+f1559073[ ]+csrw[ ]+mconfigptr,a1
+[ ]+[0-9a-f]+:[ ]+30002573[ ]+csrr[ ]+a0,mstatus
+[ ]+[0-9a-f]+:[ ]+30059073[ ]+csrw[ ]+mstatus,a1
+[ ]+[0-9a-f]+:[ ]+30102573[ ]+csrr[ ]+a0,misa
+[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
+[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
+[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,medelegh
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+medelegh,a1
+[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
+[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
+[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
+[ ]+[0-9a-f]+:[ ]+30459073[ ]+csrw[ ]+mie,a1
+[ ]+[0-9a-f]+:[ ]+30502573[ ]+csrr[ ]+a0,mtvec
+[ ]+[0-9a-f]+:[ ]+30559073[ ]+csrw[ ]+mtvec,a1
+[ ]+[0-9a-f]+:[ ]+30602573[ ]+csrr[ ]+a0,mcounteren
+[ ]+[0-9a-f]+:[ ]+30659073[ ]+csrw[ ]+mcounteren,a1
+[ ]+[0-9a-f]+:[ ]+31002573[ ]+csrr[ ]+a0,mstatush
+[ ]+[0-9a-f]+:[ ]+31059073[ ]+csrw[ ]+mstatush,a1
+[ ]+[0-9a-f]+:[ ]+34002573[ ]+csrr[ ]+a0,mscratch
+[ ]+[0-9a-f]+:[ ]+34059073[ ]+csrw[ ]+mscratch,a1
+[ ]+[0-9a-f]+:[ ]+34102573[ ]+csrr[ ]+a0,mepc
+[ ]+[0-9a-f]+:[ ]+34159073[ ]+csrw[ ]+mepc,a1
+[ ]+[0-9a-f]+:[ ]+34202573[ ]+csrr[ ]+a0,mcause
+[ ]+[0-9a-f]+:[ ]+34259073[ ]+csrw[ ]+mcause,a1
+[ ]+[0-9a-f]+:[ ]+34302573[ ]+csrr[ ]+a0,mtval
+[ ]+[0-9a-f]+:[ ]+34359073[ ]+csrw[ ]+mtval,a1
+[ ]+[0-9a-f]+:[ ]+34402573[ ]+csrr[ ]+a0,mip
+[ ]+[0-9a-f]+:[ ]+34459073[ ]+csrw[ ]+mip,a1
+[ ]+[0-9a-f]+:[ ]+34a02573[ ]+csrr[ ]+a0,mtinst
+[ ]+[0-9a-f]+:[ ]+34a59073[ ]+csrw[ ]+mtinst,a1
+[ ]+[0-9a-f]+:[ ]+34b02573[ ]+csrr[ ]+a0,mtval2
+[ ]+[0-9a-f]+:[ ]+34b59073[ ]+csrw[ ]+mtval2,a1
+[ ]+[0-9a-f]+:[ ]+30a02573[ ]+csrr[ ]+a0,menvcfg
+[ ]+[0-9a-f]+:[ ]+30a59073[ ]+csrw[ ]+menvcfg,a1
+[ ]+[0-9a-f]+:[ ]+31a02573[ ]+csrr[ ]+a0,menvcfgh
+[ ]+[0-9a-f]+:[ ]+31a59073[ ]+csrw[ ]+menvcfgh,a1
+[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg
+[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1
+[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh
+[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1
+[ ]+[0-9a-f]+:[ ]+3a002573[ ]+csrr[ ]+a0,pmpcfg0
+[ ]+[0-9a-f]+:[ ]+3a059073[ ]+csrw[ ]+pmpcfg0,a1
+[ ]+[0-9a-f]+:[ ]+3a102573[ ]+csrr[ ]+a0,pmpcfg1
+[ ]+[0-9a-f]+:[ ]+3a159073[ ]+csrw[ ]+pmpcfg1,a1
+[ ]+[0-9a-f]+:[ ]+3a202573[ ]+csrr[ ]+a0,pmpcfg2
+[ ]+[0-9a-f]+:[ ]+3a259073[ ]+csrw[ ]+pmpcfg2,a1
+[ ]+[0-9a-f]+:[ ]+3a302573[ ]+csrr[ ]+a0,pmpcfg3
+[ ]+[0-9a-f]+:[ ]+3a359073[ ]+csrw[ ]+pmpcfg3,a1
+[ ]+[0-9a-f]+:[ ]+3a402573[ ]+csrr[ ]+a0,pmpcfg4
+[ ]+[0-9a-f]+:[ ]+3a459073[ ]+csrw[ ]+pmpcfg4,a1
+[ ]+[0-9a-f]+:[ ]+3a502573[ ]+csrr[ ]+a0,pmpcfg5
+[ ]+[0-9a-f]+:[ ]+3a559073[ ]+csrw[ ]+pmpcfg5,a1
+[ ]+[0-9a-f]+:[ ]+3a602573[ ]+csrr[ ]+a0,pmpcfg6
+[ ]+[0-9a-f]+:[ ]+3a659073[ ]+csrw[ ]+pmpcfg6,a1
+[ ]+[0-9a-f]+:[ ]+3a702573[ ]+csrr[ ]+a0,pmpcfg7
+[ ]+[0-9a-f]+:[ ]+3a759073[ ]+csrw[ ]+pmpcfg7,a1
+[ ]+[0-9a-f]+:[ ]+3a802573[ ]+csrr[ ]+a0,pmpcfg8
+[ ]+[0-9a-f]+:[ ]+3a859073[ ]+csrw[ ]+pmpcfg8,a1
+[ ]+[0-9a-f]+:[ ]+3a902573[ ]+csrr[ ]+a0,pmpcfg9
+[ ]+[0-9a-f]+:[ ]+3a959073[ ]+csrw[ ]+pmpcfg9,a1
+[ ]+[0-9a-f]+:[ ]+3aa02573[ ]+csrr[ ]+a0,pmpcfg10
+[ ]+[0-9a-f]+:[ ]+3aa59073[ ]+csrw[ ]+pmpcfg10,a1
+[ ]+[0-9a-f]+:[ ]+3ab02573[ ]+csrr[ ]+a0,pmpcfg11
+[ ]+[0-9a-f]+:[ ]+3ab59073[ ]+csrw[ ]+pmpcfg11,a1
+[ ]+[0-9a-f]+:[ ]+3ac02573[ ]+csrr[ ]+a0,pmpcfg12
+[ ]+[0-9a-f]+:[ ]+3ac59073[ ]+csrw[ ]+pmpcfg12,a1
+[ ]+[0-9a-f]+:[ ]+3ad02573[ ]+csrr[ ]+a0,pmpcfg13
+[ ]+[0-9a-f]+:[ ]+3ad59073[ ]+csrw[ ]+pmpcfg13,a1
+[ ]+[0-9a-f]+:[ ]+3ae02573[ ]+csrr[ ]+a0,pmpcfg14
+[ ]+[0-9a-f]+:[ ]+3ae59073[ ]+csrw[ ]+pmpcfg14,a1
+[ ]+[0-9a-f]+:[ ]+3af02573[ ]+csrr[ ]+a0,pmpcfg15
+[ ]+[0-9a-f]+:[ ]+3af59073[ ]+csrw[ ]+pmpcfg15,a1
+[ ]+[0-9a-f]+:[ ]+3b002573[ ]+csrr[ ]+a0,pmpaddr0
+[ ]+[0-9a-f]+:[ ]+3b059073[ ]+csrw[ ]+pmpaddr0,a1
+[ ]+[0-9a-f]+:[ ]+3b102573[ ]+csrr[ ]+a0,pmpaddr1
+[ ]+[0-9a-f]+:[ ]+3b159073[ ]+csrw[ ]+pmpaddr1,a1
+[ ]+[0-9a-f]+:[ ]+3b202573[ ]+csrr[ ]+a0,pmpaddr2
+[ ]+[0-9a-f]+:[ ]+3b259073[ ]+csrw[ ]+pmpaddr2,a1
+[ ]+[0-9a-f]+:[ ]+3b302573[ ]+csrr[ ]+a0,pmpaddr3
+[ ]+[0-9a-f]+:[ ]+3b359073[ ]+csrw[ ]+pmpaddr3,a1
+[ ]+[0-9a-f]+:[ ]+3b402573[ ]+csrr[ ]+a0,pmpaddr4
+[ ]+[0-9a-f]+:[ ]+3b459073[ ]+csrw[ ]+pmpaddr4,a1
+[ ]+[0-9a-f]+:[ ]+3b502573[ ]+csrr[ ]+a0,pmpaddr5
+[ ]+[0-9a-f]+:[ ]+3b559073[ ]+csrw[ ]+pmpaddr5,a1
+[ ]+[0-9a-f]+:[ ]+3b602573[ ]+csrr[ ]+a0,pmpaddr6
+[ ]+[0-9a-f]+:[ ]+3b659073[ ]+csrw[ ]+pmpaddr6,a1
+[ ]+[0-9a-f]+:[ ]+3b702573[ ]+csrr[ ]+a0,pmpaddr7
+[ ]+[0-9a-f]+:[ ]+3b759073[ ]+csrw[ ]+pmpaddr7,a1
+[ ]+[0-9a-f]+:[ ]+3b802573[ ]+csrr[ ]+a0,pmpaddr8
+[ ]+[0-9a-f]+:[ ]+3b859073[ ]+csrw[ ]+pmpaddr8,a1
+[ ]+[0-9a-f]+:[ ]+3b902573[ ]+csrr[ ]+a0,pmpaddr9
+[ ]+[0-9a-f]+:[ ]+3b959073[ ]+csrw[ ]+pmpaddr9,a1
+[ ]+[0-9a-f]+:[ ]+3ba02573[ ]+csrr[ ]+a0,pmpaddr10
+[ ]+[0-9a-f]+:[ ]+3ba59073[ ]+csrw[ ]+pmpaddr10,a1
+[ ]+[0-9a-f]+:[ ]+3bb02573[ ]+csrr[ ]+a0,pmpaddr11
+[ ]+[0-9a-f]+:[ ]+3bb59073[ ]+csrw[ ]+pmpaddr11,a1
+[ ]+[0-9a-f]+:[ ]+3bc02573[ ]+csrr[ ]+a0,pmpaddr12
+[ ]+[0-9a-f]+:[ ]+3bc59073[ ]+csrw[ ]+pmpaddr12,a1
+[ ]+[0-9a-f]+:[ ]+3bd02573[ ]+csrr[ ]+a0,pmpaddr13
+[ ]+[0-9a-f]+:[ ]+3bd59073[ ]+csrw[ ]+pmpaddr13,a1
+[ ]+[0-9a-f]+:[ ]+3be02573[ ]+csrr[ ]+a0,pmpaddr14
+[ ]+[0-9a-f]+:[ ]+3be59073[ ]+csrw[ ]+pmpaddr14,a1
+[ ]+[0-9a-f]+:[ ]+3bf02573[ ]+csrr[ ]+a0,pmpaddr15
+[ ]+[0-9a-f]+:[ ]+3bf59073[ ]+csrw[ ]+pmpaddr15,a1
+[ ]+[0-9a-f]+:[ ]+3c002573[ ]+csrr[ ]+a0,pmpaddr16
+[ ]+[0-9a-f]+:[ ]+3c059073[ ]+csrw[ ]+pmpaddr16,a1
+[ ]+[0-9a-f]+:[ ]+3c102573[ ]+csrr[ ]+a0,pmpaddr17
+[ ]+[0-9a-f]+:[ ]+3c159073[ ]+csrw[ ]+pmpaddr17,a1
+[ ]+[0-9a-f]+:[ ]+3c202573[ ]+csrr[ ]+a0,pmpaddr18
+[ ]+[0-9a-f]+:[ ]+3c259073[ ]+csrw[ ]+pmpaddr18,a1
+[ ]+[0-9a-f]+:[ ]+3c302573[ ]+csrr[ ]+a0,pmpaddr19
+[ ]+[0-9a-f]+:[ ]+3c359073[ ]+csrw[ ]+pmpaddr19,a1
+[ ]+[0-9a-f]+:[ ]+3c402573[ ]+csrr[ ]+a0,pmpaddr20
+[ ]+[0-9a-f]+:[ ]+3c459073[ ]+csrw[ ]+pmpaddr20,a1
+[ ]+[0-9a-f]+:[ ]+3c502573[ ]+csrr[ ]+a0,pmpaddr21
+[ ]+[0-9a-f]+:[ ]+3c559073[ ]+csrw[ ]+pmpaddr21,a1
+[ ]+[0-9a-f]+:[ ]+3c602573[ ]+csrr[ ]+a0,pmpaddr22
+[ ]+[0-9a-f]+:[ ]+3c659073[ ]+csrw[ ]+pmpaddr22,a1
+[ ]+[0-9a-f]+:[ ]+3c702573[ ]+csrr[ ]+a0,pmpaddr23
+[ ]+[0-9a-f]+:[ ]+3c759073[ ]+csrw[ ]+pmpaddr23,a1
+[ ]+[0-9a-f]+:[ ]+3c802573[ ]+csrr[ ]+a0,pmpaddr24
+[ ]+[0-9a-f]+:[ ]+3c859073[ ]+csrw[ ]+pmpaddr24,a1
+[ ]+[0-9a-f]+:[ ]+3c902573[ ]+csrr[ ]+a0,pmpaddr25
+[ ]+[0-9a-f]+:[ ]+3c959073[ ]+csrw[ ]+pmpaddr25,a1
+[ ]+[0-9a-f]+:[ ]+3ca02573[ ]+csrr[ ]+a0,pmpaddr26
+[ ]+[0-9a-f]+:[ ]+3ca59073[ ]+csrw[ ]+pmpaddr26,a1
+[ ]+[0-9a-f]+:[ ]+3cb02573[ ]+csrr[ ]+a0,pmpaddr27
+[ ]+[0-9a-f]+:[ ]+3cb59073[ ]+csrw[ ]+pmpaddr27,a1
+[ ]+[0-9a-f]+:[ ]+3cc02573[ ]+csrr[ ]+a0,pmpaddr28
+[ ]+[0-9a-f]+:[ ]+3cc59073[ ]+csrw[ ]+pmpaddr28,a1
+[ ]+[0-9a-f]+:[ ]+3cd02573[ ]+csrr[ ]+a0,pmpaddr29
+[ ]+[0-9a-f]+:[ ]+3cd59073[ ]+csrw[ ]+pmpaddr29,a1
+[ ]+[0-9a-f]+:[ ]+3ce02573[ ]+csrr[ ]+a0,pmpaddr30
+[ ]+[0-9a-f]+:[ ]+3ce59073[ ]+csrw[ ]+pmpaddr30,a1
+[ ]+[0-9a-f]+:[ ]+3cf02573[ ]+csrr[ ]+a0,pmpaddr31
+[ ]+[0-9a-f]+:[ ]+3cf59073[ ]+csrw[ ]+pmpaddr31,a1
+[ ]+[0-9a-f]+:[ ]+3d002573[ ]+csrr[ ]+a0,pmpaddr32
+[ ]+[0-9a-f]+:[ ]+3d059073[ ]+csrw[ ]+pmpaddr32,a1
+[ ]+[0-9a-f]+:[ ]+3d102573[ ]+csrr[ ]+a0,pmpaddr33
+[ ]+[0-9a-f]+:[ ]+3d159073[ ]+csrw[ ]+pmpaddr33,a1
+[ ]+[0-9a-f]+:[ ]+3d202573[ ]+csrr[ ]+a0,pmpaddr34
+[ ]+[0-9a-f]+:[ ]+3d259073[ ]+csrw[ ]+pmpaddr34,a1
+[ ]+[0-9a-f]+:[ ]+3d302573[ ]+csrr[ ]+a0,pmpaddr35
+[ ]+[0-9a-f]+:[ ]+3d359073[ ]+csrw[ ]+pmpaddr35,a1
+[ ]+[0-9a-f]+:[ ]+3d402573[ ]+csrr[ ]+a0,pmpaddr36
+[ ]+[0-9a-f]+:[ ]+3d459073[ ]+csrw[ ]+pmpaddr36,a1
+[ ]+[0-9a-f]+:[ ]+3d502573[ ]+csrr[ ]+a0,pmpaddr37
+[ ]+[0-9a-f]+:[ ]+3d559073[ ]+csrw[ ]+pmpaddr37,a1
+[ ]+[0-9a-f]+:[ ]+3d602573[ ]+csrr[ ]+a0,pmpaddr38
+[ ]+[0-9a-f]+:[ ]+3d659073[ ]+csrw[ ]+pmpaddr38,a1
+[ ]+[0-9a-f]+:[ ]+3d702573[ ]+csrr[ ]+a0,pmpaddr39
+[ ]+[0-9a-f]+:[ ]+3d759073[ ]+csrw[ ]+pmpaddr39,a1
+[ ]+[0-9a-f]+:[ ]+3d802573[ ]+csrr[ ]+a0,pmpaddr40
+[ ]+[0-9a-f]+:[ ]+3d859073[ ]+csrw[ ]+pmpaddr40,a1
+[ ]+[0-9a-f]+:[ ]+3d902573[ ]+csrr[ ]+a0,pmpaddr41
+[ ]+[0-9a-f]+:[ ]+3d959073[ ]+csrw[ ]+pmpaddr41,a1
+[ ]+[0-9a-f]+:[ ]+3da02573[ ]+csrr[ ]+a0,pmpaddr42
+[ ]+[0-9a-f]+:[ ]+3da59073[ ]+csrw[ ]+pmpaddr42,a1
+[ ]+[0-9a-f]+:[ ]+3db02573[ ]+csrr[ ]+a0,pmpaddr43
+[ ]+[0-9a-f]+:[ ]+3db59073[ ]+csrw[ ]+pmpaddr43,a1
+[ ]+[0-9a-f]+:[ ]+3dc02573[ ]+csrr[ ]+a0,pmpaddr44
+[ ]+[0-9a-f]+:[ ]+3dc59073[ ]+csrw[ ]+pmpaddr44,a1
+[ ]+[0-9a-f]+:[ ]+3dd02573[ ]+csrr[ ]+a0,pmpaddr45
+[ ]+[0-9a-f]+:[ ]+3dd59073[ ]+csrw[ ]+pmpaddr45,a1
+[ ]+[0-9a-f]+:[ ]+3de02573[ ]+csrr[ ]+a0,pmpaddr46
+[ ]+[0-9a-f]+:[ ]+3de59073[ ]+csrw[ ]+pmpaddr46,a1
+[ ]+[0-9a-f]+:[ ]+3df02573[ ]+csrr[ ]+a0,pmpaddr47
+[ ]+[0-9a-f]+:[ ]+3df59073[ ]+csrw[ ]+pmpaddr47,a1
+[ ]+[0-9a-f]+:[ ]+3e002573[ ]+csrr[ ]+a0,pmpaddr48
+[ ]+[0-9a-f]+:[ ]+3e059073[ ]+csrw[ ]+pmpaddr48,a1
+[ ]+[0-9a-f]+:[ ]+3e102573[ ]+csrr[ ]+a0,pmpaddr49
+[ ]+[0-9a-f]+:[ ]+3e159073[ ]+csrw[ ]+pmpaddr49,a1
+[ ]+[0-9a-f]+:[ ]+3e202573[ ]+csrr[ ]+a0,pmpaddr50
+[ ]+[0-9a-f]+:[ ]+3e259073[ ]+csrw[ ]+pmpaddr50,a1
+[ ]+[0-9a-f]+:[ ]+3e302573[ ]+csrr[ ]+a0,pmpaddr51
+[ ]+[0-9a-f]+:[ ]+3e359073[ ]+csrw[ ]+pmpaddr51,a1
+[ ]+[0-9a-f]+:[ ]+3e402573[ ]+csrr[ ]+a0,pmpaddr52
+[ ]+[0-9a-f]+:[ ]+3e459073[ ]+csrw[ ]+pmpaddr52,a1
+[ ]+[0-9a-f]+:[ ]+3e502573[ ]+csrr[ ]+a0,pmpaddr53
+[ ]+[0-9a-f]+:[ ]+3e559073[ ]+csrw[ ]+pmpaddr53,a1
+[ ]+[0-9a-f]+:[ ]+3e602573[ ]+csrr[ ]+a0,pmpaddr54
+[ ]+[0-9a-f]+:[ ]+3e659073[ ]+csrw[ ]+pmpaddr54,a1
+[ ]+[0-9a-f]+:[ ]+3e702573[ ]+csrr[ ]+a0,pmpaddr55
+[ ]+[0-9a-f]+:[ ]+3e759073[ ]+csrw[ ]+pmpaddr55,a1
+[ ]+[0-9a-f]+:[ ]+3e802573[ ]+csrr[ ]+a0,pmpaddr56
+[ ]+[0-9a-f]+:[ ]+3e859073[ ]+csrw[ ]+pmpaddr56,a1
+[ ]+[0-9a-f]+:[ ]+3e902573[ ]+csrr[ ]+a0,pmpaddr57
+[ ]+[0-9a-f]+:[ ]+3e959073[ ]+csrw[ ]+pmpaddr57,a1
+[ ]+[0-9a-f]+:[ ]+3ea02573[ ]+csrr[ ]+a0,pmpaddr58
+[ ]+[0-9a-f]+:[ ]+3ea59073[ ]+csrw[ ]+pmpaddr58,a1
+[ ]+[0-9a-f]+:[ ]+3eb02573[ ]+csrr[ ]+a0,pmpaddr59
+[ ]+[0-9a-f]+:[ ]+3eb59073[ ]+csrw[ ]+pmpaddr59,a1
+[ ]+[0-9a-f]+:[ ]+3ec02573[ ]+csrr[ ]+a0,pmpaddr60
+[ ]+[0-9a-f]+:[ ]+3ec59073[ ]+csrw[ ]+pmpaddr60,a1
+[ ]+[0-9a-f]+:[ ]+3ed02573[ ]+csrr[ ]+a0,pmpaddr61
+[ ]+[0-9a-f]+:[ ]+3ed59073[ ]+csrw[ ]+pmpaddr61,a1
+[ ]+[0-9a-f]+:[ ]+3ee02573[ ]+csrr[ ]+a0,pmpaddr62
+[ ]+[0-9a-f]+:[ ]+3ee59073[ ]+csrw[ ]+pmpaddr62,a1
+[ ]+[0-9a-f]+:[ ]+3ef02573[ ]+csrr[ ]+a0,pmpaddr63
+[ ]+[0-9a-f]+:[ ]+3ef59073[ ]+csrw[ ]+pmpaddr63,a1
+[ ]+[0-9a-f]+:[ ]+b0002573[ ]+csrr[ ]+a0,mcycle
+[ ]+[0-9a-f]+:[ ]+b0059073[ ]+csrw[ ]+mcycle,a1
+[ ]+[0-9a-f]+:[ ]+b0202573[ ]+csrr[ ]+a0,minstret
+[ ]+[0-9a-f]+:[ ]+b0259073[ ]+csrw[ ]+minstret,a1
+[ ]+[0-9a-f]+:[ ]+b0302573[ ]+csrr[ ]+a0,mhpmcounter3
+[ ]+[0-9a-f]+:[ ]+b0359073[ ]+csrw[ ]+mhpmcounter3,a1
+[ ]+[0-9a-f]+:[ ]+b0402573[ ]+csrr[ ]+a0,mhpmcounter4
+[ ]+[0-9a-f]+:[ ]+b0459073[ ]+csrw[ ]+mhpmcounter4,a1
+[ ]+[0-9a-f]+:[ ]+b0502573[ ]+csrr[ ]+a0,mhpmcounter5
+[ ]+[0-9a-f]+:[ ]+b0559073[ ]+csrw[ ]+mhpmcounter5,a1
+[ ]+[0-9a-f]+:[ ]+b0602573[ ]+csrr[ ]+a0,mhpmcounter6
+[ ]+[0-9a-f]+:[ ]+b0659073[ ]+csrw[ ]+mhpmcounter6,a1
+[ ]+[0-9a-f]+:[ ]+b0702573[ ]+csrr[ ]+a0,mhpmcounter7
+[ ]+[0-9a-f]+:[ ]+b0759073[ ]+csrw[ ]+mhpmcounter7,a1
+[ ]+[0-9a-f]+:[ ]+b0802573[ ]+csrr[ ]+a0,mhpmcounter8
+[ ]+[0-9a-f]+:[ ]+b0859073[ ]+csrw[ ]+mhpmcounter8,a1
+[ ]+[0-9a-f]+:[ ]+b0902573[ ]+csrr[ ]+a0,mhpmcounter9
+[ ]+[0-9a-f]+:[ ]+b0959073[ ]+csrw[ ]+mhpmcounter9,a1
+[ ]+[0-9a-f]+:[ ]+b0a02573[ ]+csrr[ ]+a0,mhpmcounter10
+[ ]+[0-9a-f]+:[ ]+b0a59073[ ]+csrw[ ]+mhpmcounter10,a1
+[ ]+[0-9a-f]+:[ ]+b0b02573[ ]+csrr[ ]+a0,mhpmcounter11
+[ ]+[0-9a-f]+:[ ]+b0b59073[ ]+csrw[ ]+mhpmcounter11,a1
+[ ]+[0-9a-f]+:[ ]+b0c02573[ ]+csrr[ ]+a0,mhpmcounter12
+[ ]+[0-9a-f]+:[ ]+b0c59073[ ]+csrw[ ]+mhpmcounter12,a1
+[ ]+[0-9a-f]+:[ ]+b0d02573[ ]+csrr[ ]+a0,mhpmcounter13
+[ ]+[0-9a-f]+:[ ]+b0d59073[ ]+csrw[ ]+mhpmcounter13,a1
+[ ]+[0-9a-f]+:[ ]+b0e02573[ ]+csrr[ ]+a0,mhpmcounter14
+[ ]+[0-9a-f]+:[ ]+b0e59073[ ]+csrw[ ]+mhpmcounter14,a1
+[ ]+[0-9a-f]+:[ ]+b0f02573[ ]+csrr[ ]+a0,mhpmcounter15
+[ ]+[0-9a-f]+:[ ]+b0f59073[ ]+csrw[ ]+mhpmcounter15,a1
+[ ]+[0-9a-f]+:[ ]+b1002573[ ]+csrr[ ]+a0,mhpmcounter16
+[ ]+[0-9a-f]+:[ ]+b1059073[ ]+csrw[ ]+mhpmcounter16,a1
+[ ]+[0-9a-f]+:[ ]+b1102573[ ]+csrr[ ]+a0,mhpmcounter17
+[ ]+[0-9a-f]+:[ ]+b1159073[ ]+csrw[ ]+mhpmcounter17,a1
+[ ]+[0-9a-f]+:[ ]+b1202573[ ]+csrr[ ]+a0,mhpmcounter18
+[ ]+[0-9a-f]+:[ ]+b1259073[ ]+csrw[ ]+mhpmcounter18,a1
+[ ]+[0-9a-f]+:[ ]+b1302573[ ]+csrr[ ]+a0,mhpmcounter19
+[ ]+[0-9a-f]+:[ ]+b1359073[ ]+csrw[ ]+mhpmcounter19,a1
+[ ]+[0-9a-f]+:[ ]+b1402573[ ]+csrr[ ]+a0,mhpmcounter20
+[ ]+[0-9a-f]+:[ ]+b1459073[ ]+csrw[ ]+mhpmcounter20,a1
+[ ]+[0-9a-f]+:[ ]+b1502573[ ]+csrr[ ]+a0,mhpmcounter21
+[ ]+[0-9a-f]+:[ ]+b1559073[ ]+csrw[ ]+mhpmcounter21,a1
+[ ]+[0-9a-f]+:[ ]+b1602573[ ]+csrr[ ]+a0,mhpmcounter22
+[ ]+[0-9a-f]+:[ ]+b1659073[ ]+csrw[ ]+mhpmcounter22,a1
+[ ]+[0-9a-f]+:[ ]+b1702573[ ]+csrr[ ]+a0,mhpmcounter23
+[ ]+[0-9a-f]+:[ ]+b1759073[ ]+csrw[ ]+mhpmcounter23,a1
+[ ]+[0-9a-f]+:[ ]+b1802573[ ]+csrr[ ]+a0,mhpmcounter24
+[ ]+[0-9a-f]+:[ ]+b1859073[ ]+csrw[ ]+mhpmcounter24,a1
+[ ]+[0-9a-f]+:[ ]+b1902573[ ]+csrr[ ]+a0,mhpmcounter25
+[ ]+[0-9a-f]+:[ ]+b1959073[ ]+csrw[ ]+mhpmcounter25,a1
+[ ]+[0-9a-f]+:[ ]+b1a02573[ ]+csrr[ ]+a0,mhpmcounter26
+[ ]+[0-9a-f]+:[ ]+b1a59073[ ]+csrw[ ]+mhpmcounter26,a1
+[ ]+[0-9a-f]+:[ ]+b1b02573[ ]+csrr[ ]+a0,mhpmcounter27
+[ ]+[0-9a-f]+:[ ]+b1b59073[ ]+csrw[ ]+mhpmcounter27,a1
+[ ]+[0-9a-f]+:[ ]+b1c02573[ ]+csrr[ ]+a0,mhpmcounter28
+[ ]+[0-9a-f]+:[ ]+b1c59073[ ]+csrw[ ]+mhpmcounter28,a1
+[ ]+[0-9a-f]+:[ ]+b1d02573[ ]+csrr[ ]+a0,mhpmcounter29
+[ ]+[0-9a-f]+:[ ]+b1d59073[ ]+csrw[ ]+mhpmcounter29,a1
+[ ]+[0-9a-f]+:[ ]+b1e02573[ ]+csrr[ ]+a0,mhpmcounter30
+[ ]+[0-9a-f]+:[ ]+b1e59073[ ]+csrw[ ]+mhpmcounter30,a1
+[ ]+[0-9a-f]+:[ ]+b1f02573[ ]+csrr[ ]+a0,mhpmcounter31
+[ ]+[0-9a-f]+:[ ]+b1f59073[ ]+csrw[ ]+mhpmcounter31,a1
+[ ]+[0-9a-f]+:[ ]+b8002573[ ]+csrr[ ]+a0,mcycleh
+[ ]+[0-9a-f]+:[ ]+b8059073[ ]+csrw[ ]+mcycleh,a1
+[ ]+[0-9a-f]+:[ ]+b8202573[ ]+csrr[ ]+a0,minstreth
+[ ]+[0-9a-f]+:[ ]+b8259073[ ]+csrw[ ]+minstreth,a1
+[ ]+[0-9a-f]+:[ ]+b8302573[ ]+csrr[ ]+a0,mhpmcounter3h
+[ ]+[0-9a-f]+:[ ]+b8359073[ ]+csrw[ ]+mhpmcounter3h,a1
+[ ]+[0-9a-f]+:[ ]+b8402573[ ]+csrr[ ]+a0,mhpmcounter4h
+[ ]+[0-9a-f]+:[ ]+b8459073[ ]+csrw[ ]+mhpmcounter4h,a1
+[ ]+[0-9a-f]+:[ ]+b8502573[ ]+csrr[ ]+a0,mhpmcounter5h
+[ ]+[0-9a-f]+:[ ]+b8559073[ ]+csrw[ ]+mhpmcounter5h,a1
+[ ]+[0-9a-f]+:[ ]+b8602573[ ]+csrr[ ]+a0,mhpmcounter6h
+[ ]+[0-9a-f]+:[ ]+b8659073[ ]+csrw[ ]+mhpmcounter6h,a1
+[ ]+[0-9a-f]+:[ ]+b8702573[ ]+csrr[ ]+a0,mhpmcounter7h
+[ ]+[0-9a-f]+:[ ]+b8759073[ ]+csrw[ ]+mhpmcounter7h,a1
+[ ]+[0-9a-f]+:[ ]+b8802573[ ]+csrr[ ]+a0,mhpmcounter8h
+[ ]+[0-9a-f]+:[ ]+b8859073[ ]+csrw[ ]+mhpmcounter8h,a1
+[ ]+[0-9a-f]+:[ ]+b8902573[ ]+csrr[ ]+a0,mhpmcounter9h
+[ ]+[0-9a-f]+:[ ]+b8959073[ ]+csrw[ ]+mhpmcounter9h,a1
+[ ]+[0-9a-f]+:[ ]+b8a02573[ ]+csrr[ ]+a0,mhpmcounter10h
+[ ]+[0-9a-f]+:[ ]+b8a59073[ ]+csrw[ ]+mhpmcounter10h,a1
+[ ]+[0-9a-f]+:[ ]+b8b02573[ ]+csrr[ ]+a0,mhpmcounter11h
+[ ]+[0-9a-f]+:[ ]+b8b59073[ ]+csrw[ ]+mhpmcounter11h,a1
+[ ]+[0-9a-f]+:[ ]+b8c02573[ ]+csrr[ ]+a0,mhpmcounter12h
+[ ]+[0-9a-f]+:[ ]+b8c59073[ ]+csrw[ ]+mhpmcounter12h,a1
+[ ]+[0-9a-f]+:[ ]+b8d02573[ ]+csrr[ ]+a0,mhpmcounter13h
+[ ]+[0-9a-f]+:[ ]+b8d59073[ ]+csrw[ ]+mhpmcounter13h,a1
+[ ]+[0-9a-f]+:[ ]+b8e02573[ ]+csrr[ ]+a0,mhpmcounter14h
+[ ]+[0-9a-f]+:[ ]+b8e59073[ ]+csrw[ ]+mhpmcounter14h,a1
+[ ]+[0-9a-f]+:[ ]+b8f02573[ ]+csrr[ ]+a0,mhpmcounter15h
+[ ]+[0-9a-f]+:[ ]+b8f59073[ ]+csrw[ ]+mhpmcounter15h,a1
+[ ]+[0-9a-f]+:[ ]+b9002573[ ]+csrr[ ]+a0,mhpmcounter16h
+[ ]+[0-9a-f]+:[ ]+b9059073[ ]+csrw[ ]+mhpmcounter16h,a1
+[ ]+[0-9a-f]+:[ ]+b9102573[ ]+csrr[ ]+a0,mhpmcounter17h
+[ ]+[0-9a-f]+:[ ]+b9159073[ ]+csrw[ ]+mhpmcounter17h,a1
+[ ]+[0-9a-f]+:[ ]+b9202573[ ]+csrr[ ]+a0,mhpmcounter18h
+[ ]+[0-9a-f]+:[ ]+b9259073[ ]+csrw[ ]+mhpmcounter18h,a1
+[ ]+[0-9a-f]+:[ ]+b9302573[ ]+csrr[ ]+a0,mhpmcounter19h
+[ ]+[0-9a-f]+:[ ]+b9359073[ ]+csrw[ ]+mhpmcounter19h,a1
+[ ]+[0-9a-f]+:[ ]+b9402573[ ]+csrr[ ]+a0,mhpmcounter20h
+[ ]+[0-9a-f]+:[ ]+b9459073[ ]+csrw[ ]+mhpmcounter20h,a1
+[ ]+[0-9a-f]+:[ ]+b9502573[ ]+csrr[ ]+a0,mhpmcounter21h
+[ ]+[0-9a-f]+:[ ]+b9559073[ ]+csrw[ ]+mhpmcounter21h,a1
+[ ]+[0-9a-f]+:[ ]+b9602573[ ]+csrr[ ]+a0,mhpmcounter22h
+[ ]+[0-9a-f]+:[ ]+b9659073[ ]+csrw[ ]+mhpmcounter22h,a1
+[ ]+[0-9a-f]+:[ ]+b9702573[ ]+csrr[ ]+a0,mhpmcounter23h
+[ ]+[0-9a-f]+:[ ]+b9759073[ ]+csrw[ ]+mhpmcounter23h,a1
+[ ]+[0-9a-f]+:[ ]+b9802573[ ]+csrr[ ]+a0,mhpmcounter24h
+[ ]+[0-9a-f]+:[ ]+b9859073[ ]+csrw[ ]+mhpmcounter24h,a1
+[ ]+[0-9a-f]+:[ ]+b9902573[ ]+csrr[ ]+a0,mhpmcounter25h
+[ ]+[0-9a-f]+:[ ]+b9959073[ ]+csrw[ ]+mhpmcounter25h,a1
+[ ]+[0-9a-f]+:[ ]+b9a02573[ ]+csrr[ ]+a0,mhpmcounter26h
+[ ]+[0-9a-f]+:[ ]+b9a59073[ ]+csrw[ ]+mhpmcounter26h,a1
+[ ]+[0-9a-f]+:[ ]+b9b02573[ ]+csrr[ ]+a0,mhpmcounter27h
+[ ]+[0-9a-f]+:[ ]+b9b59073[ ]+csrw[ ]+mhpmcounter27h,a1
+[ ]+[0-9a-f]+:[ ]+b9c02573[ ]+csrr[ ]+a0,mhpmcounter28h
+[ ]+[0-9a-f]+:[ ]+b9c59073[ ]+csrw[ ]+mhpmcounter28h,a1
+[ ]+[0-9a-f]+:[ ]+b9d02573[ ]+csrr[ ]+a0,mhpmcounter29h
+[ ]+[0-9a-f]+:[ ]+b9d59073[ ]+csrw[ ]+mhpmcounter29h,a1
+[ ]+[0-9a-f]+:[ ]+b9e02573[ ]+csrr[ ]+a0,mhpmcounter30h
+[ ]+[0-9a-f]+:[ ]+b9e59073[ ]+csrw[ ]+mhpmcounter30h,a1
+[ ]+[0-9a-f]+:[ ]+b9f02573[ ]+csrr[ ]+a0,mhpmcounter31h
+[ ]+[0-9a-f]+:[ ]+b9f59073[ ]+csrw[ ]+mhpmcounter31h,a1
+[ ]+[0-9a-f]+:[ ]+32002573[ ]+csrr[ ]+a0,mcountinhibit
+[ ]+[0-9a-f]+:[ ]+32059073[ ]+csrw[ ]+mcountinhibit,a1
+[ ]+[0-9a-f]+:[ ]+32302573[ ]+csrr[ ]+a0,mhpmevent3
+[ ]+[0-9a-f]+:[ ]+32359073[ ]+csrw[ ]+mhpmevent3,a1
+[ ]+[0-9a-f]+:[ ]+32402573[ ]+csrr[ ]+a0,mhpmevent4
+[ ]+[0-9a-f]+:[ ]+32459073[ ]+csrw[ ]+mhpmevent4,a1
+[ ]+[0-9a-f]+:[ ]+32502573[ ]+csrr[ ]+a0,mhpmevent5
+[ ]+[0-9a-f]+:[ ]+32559073[ ]+csrw[ ]+mhpmevent5,a1
+[ ]+[0-9a-f]+:[ ]+32602573[ ]+csrr[ ]+a0,mhpmevent6
+[ ]+[0-9a-f]+:[ ]+32659073[ ]+csrw[ ]+mhpmevent6,a1
+[ ]+[0-9a-f]+:[ ]+32702573[ ]+csrr[ ]+a0,mhpmevent7
+[ ]+[0-9a-f]+:[ ]+32759073[ ]+csrw[ ]+mhpmevent7,a1
+[ ]+[0-9a-f]+:[ ]+32802573[ ]+csrr[ ]+a0,mhpmevent8
+[ ]+[0-9a-f]+:[ ]+32859073[ ]+csrw[ ]+mhpmevent8,a1
+[ ]+[0-9a-f]+:[ ]+32902573[ ]+csrr[ ]+a0,mhpmevent9
+[ ]+[0-9a-f]+:[ ]+32959073[ ]+csrw[ ]+mhpmevent9,a1
+[ ]+[0-9a-f]+:[ ]+32a02573[ ]+csrr[ ]+a0,mhpmevent10
+[ ]+[0-9a-f]+:[ ]+32a59073[ ]+csrw[ ]+mhpmevent10,a1
+[ ]+[0-9a-f]+:[ ]+32b02573[ ]+csrr[ ]+a0,mhpmevent11
+[ ]+[0-9a-f]+:[ ]+32b59073[ ]+csrw[ ]+mhpmevent11,a1
+[ ]+[0-9a-f]+:[ ]+32c02573[ ]+csrr[ ]+a0,mhpmevent12
+[ ]+[0-9a-f]+:[ ]+32c59073[ ]+csrw[ ]+mhpmevent12,a1
+[ ]+[0-9a-f]+:[ ]+32d02573[ ]+csrr[ ]+a0,mhpmevent13
+[ ]+[0-9a-f]+:[ ]+32d59073[ ]+csrw[ ]+mhpmevent13,a1
+[ ]+[0-9a-f]+:[ ]+32e02573[ ]+csrr[ ]+a0,mhpmevent14
+[ ]+[0-9a-f]+:[ ]+32e59073[ ]+csrw[ ]+mhpmevent14,a1
+[ ]+[0-9a-f]+:[ ]+32f02573[ ]+csrr[ ]+a0,mhpmevent15
+[ ]+[0-9a-f]+:[ ]+32f59073[ ]+csrw[ ]+mhpmevent15,a1
+[ ]+[0-9a-f]+:[ ]+33002573[ ]+csrr[ ]+a0,mhpmevent16
+[ ]+[0-9a-f]+:[ ]+33059073[ ]+csrw[ ]+mhpmevent16,a1
+[ ]+[0-9a-f]+:[ ]+33102573[ ]+csrr[ ]+a0,mhpmevent17
+[ ]+[0-9a-f]+:[ ]+33159073[ ]+csrw[ ]+mhpmevent17,a1
+[ ]+[0-9a-f]+:[ ]+33202573[ ]+csrr[ ]+a0,mhpmevent18
+[ ]+[0-9a-f]+:[ ]+33259073[ ]+csrw[ ]+mhpmevent18,a1
+[ ]+[0-9a-f]+:[ ]+33302573[ ]+csrr[ ]+a0,mhpmevent19
+[ ]+[0-9a-f]+:[ ]+33359073[ ]+csrw[ ]+mhpmevent19,a1
+[ ]+[0-9a-f]+:[ ]+33402573[ ]+csrr[ ]+a0,mhpmevent20
+[ ]+[0-9a-f]+:[ ]+33459073[ ]+csrw[ ]+mhpmevent20,a1
+[ ]+[0-9a-f]+:[ ]+33502573[ ]+csrr[ ]+a0,mhpmevent21
+[ ]+[0-9a-f]+:[ ]+33559073[ ]+csrw[ ]+mhpmevent21,a1
+[ ]+[0-9a-f]+:[ ]+33602573[ ]+csrr[ ]+a0,mhpmevent22
+[ ]+[0-9a-f]+:[ ]+33659073[ ]+csrw[ ]+mhpmevent22,a1
+[ ]+[0-9a-f]+:[ ]+33702573[ ]+csrr[ ]+a0,mhpmevent23
+[ ]+[0-9a-f]+:[ ]+33759073[ ]+csrw[ ]+mhpmevent23,a1
+[ ]+[0-9a-f]+:[ ]+33802573[ ]+csrr[ ]+a0,mhpmevent24
+[ ]+[0-9a-f]+:[ ]+33859073[ ]+csrw[ ]+mhpmevent24,a1
+[ ]+[0-9a-f]+:[ ]+33902573[ ]+csrr[ ]+a0,mhpmevent25
+[ ]+[0-9a-f]+:[ ]+33959073[ ]+csrw[ ]+mhpmevent25,a1
+[ ]+[0-9a-f]+:[ ]+33a02573[ ]+csrr[ ]+a0,mhpmevent26
+[ ]+[0-9a-f]+:[ ]+33a59073[ ]+csrw[ ]+mhpmevent26,a1
+[ ]+[0-9a-f]+:[ ]+33b02573[ ]+csrr[ ]+a0,mhpmevent27
+[ ]+[0-9a-f]+:[ ]+33b59073[ ]+csrw[ ]+mhpmevent27,a1
+[ ]+[0-9a-f]+:[ ]+33c02573[ ]+csrr[ ]+a0,mhpmevent28
+[ ]+[0-9a-f]+:[ ]+33c59073[ ]+csrw[ ]+mhpmevent28,a1
+[ ]+[0-9a-f]+:[ ]+33d02573[ ]+csrr[ ]+a0,mhpmevent29
+[ ]+[0-9a-f]+:[ ]+33d59073[ ]+csrw[ ]+mhpmevent29,a1
+[ ]+[0-9a-f]+:[ ]+33e02573[ ]+csrr[ ]+a0,mhpmevent30
+[ ]+[0-9a-f]+:[ ]+33e59073[ ]+csrw[ ]+mhpmevent30,a1
+[ ]+[0-9a-f]+:[ ]+33f02573[ ]+csrr[ ]+a0,mhpmevent31
+[ ]+[0-9a-f]+:[ ]+33f59073[ ]+csrw[ ]+mhpmevent31,a1
+[ ]+[0-9a-f]+:[ ]+60002573[ ]+csrr[ ]+a0,hstatus
+[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
+[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
+[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,hedelegh
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+hedelegh,a1
+[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
+[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
+[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
+[ ]+[0-9a-f]+:[ ]+60459073[ ]+csrw[ ]+hie,a1
+[ ]+[0-9a-f]+:[ ]+60602573[ ]+csrr[ ]+a0,hcounteren
+[ ]+[0-9a-f]+:[ ]+60659073[ ]+csrw[ ]+hcounteren,a1
+[ ]+[0-9a-f]+:[ ]+60702573[ ]+csrr[ ]+a0,hgeie
+[ ]+[0-9a-f]+:[ ]+60759073[ ]+csrw[ ]+hgeie,a1
+[ ]+[0-9a-f]+:[ ]+64302573[ ]+csrr[ ]+a0,htval
+[ ]+[0-9a-f]+:[ ]+64359073[ ]+csrw[ ]+htval,a1
+[ ]+[0-9a-f]+:[ ]+64402573[ ]+csrr[ ]+a0,hip
+[ ]+[0-9a-f]+:[ ]+64459073[ ]+csrw[ ]+hip,a1
+[ ]+[0-9a-f]+:[ ]+64502573[ ]+csrr[ ]+a0,hvip
+[ ]+[0-9a-f]+:[ ]+64559073[ ]+csrw[ ]+hvip,a1
+[ ]+[0-9a-f]+:[ ]+64a02573[ ]+csrr[ ]+a0,htinst
+[ ]+[0-9a-f]+:[ ]+64a59073[ ]+csrw[ ]+htinst,a1
+[ ]+[0-9a-f]+:[ ]+e1202573[ ]+csrr[ ]+a0,hgeip
+[ ]+[0-9a-f]+:[ ]+e1259073[ ]+csrw[ ]+hgeip,a1
+[ ]+[0-9a-f]+:[ ]+60a02573[ ]+csrr[ ]+a0,henvcfg
+[ ]+[0-9a-f]+:[ ]+60a59073[ ]+csrw[ ]+henvcfg,a1
+[ ]+[0-9a-f]+:[ ]+61a02573[ ]+csrr[ ]+a0,henvcfgh
+[ ]+[0-9a-f]+:[ ]+61a59073[ ]+csrw[ ]+henvcfgh,a1
+[ ]+[0-9a-f]+:[ ]+68002573[ ]+csrr[ ]+a0,hgatp
+[ ]+[0-9a-f]+:[ ]+68059073[ ]+csrw[ ]+hgatp,a1
+[ ]+[0-9a-f]+:[ ]+60502573[ ]+csrr[ ]+a0,htimedelta
+[ ]+[0-9a-f]+:[ ]+60559073[ ]+csrw[ ]+htimedelta,a1
+[ ]+[0-9a-f]+:[ ]+61502573[ ]+csrr[ ]+a0,htimedeltah
+[ ]+[0-9a-f]+:[ ]+61559073[ ]+csrw[ ]+htimedeltah,a1
+[ ]+[0-9a-f]+:[ ]+20002573[ ]+csrr[ ]+a0,vsstatus
+[ ]+[0-9a-f]+:[ ]+20059073[ ]+csrw[ ]+vsstatus,a1
+[ ]+[0-9a-f]+:[ ]+20402573[ ]+csrr[ ]+a0,vsie
+[ ]+[0-9a-f]+:[ ]+20459073[ ]+csrw[ ]+vsie,a1
+[ ]+[0-9a-f]+:[ ]+20502573[ ]+csrr[ ]+a0,vstvec
+[ ]+[0-9a-f]+:[ ]+20559073[ ]+csrw[ ]+vstvec,a1
+[ ]+[0-9a-f]+:[ ]+24002573[ ]+csrr[ ]+a0,vsscratch
+[ ]+[0-9a-f]+:[ ]+24059073[ ]+csrw[ ]+vsscratch,a1
+[ ]+[0-9a-f]+:[ ]+24102573[ ]+csrr[ ]+a0,vsepc
+[ ]+[0-9a-f]+:[ ]+24159073[ ]+csrw[ ]+vsepc,a1
+[ ]+[0-9a-f]+:[ ]+24202573[ ]+csrr[ ]+a0,vscause
+[ ]+[0-9a-f]+:[ ]+24259073[ ]+csrw[ ]+vscause,a1
+[ ]+[0-9a-f]+:[ ]+24302573[ ]+csrr[ ]+a0,vstval
+[ ]+[0-9a-f]+:[ ]+24359073[ ]+csrw[ ]+vstval,a1
+[ ]+[0-9a-f]+:[ ]+24402573[ ]+csrr[ ]+a0,vsip
+[ ]+[0-9a-f]+:[ ]+24459073[ ]+csrw[ ]+vsip,a1
+[ ]+[0-9a-f]+:[ ]+28002573[ ]+csrr[ ]+a0,vsatp
+[ ]+[0-9a-f]+:[ ]+28059073[ ]+csrw[ ]+vsatp,a1
+[ ]+[0-9a-f]+:[ ]+35002573[ ]+csrr[ ]+a0,miselect
+[ ]+[0-9a-f]+:[ ]+35059073[ ]+csrw[ ]+miselect,a1
+[ ]+[0-9a-f]+:[ ]+35102573[ ]+csrr[ ]+a0,mireg
+[ ]+[0-9a-f]+:[ ]+35159073[ ]+csrw[ ]+mireg,a1
+[ ]+[0-9a-f]+:[ ]+35c02573[ ]+csrr[ ]+a0,mtopei
+[ ]+[0-9a-f]+:[ ]+35c59073[ ]+csrw[ ]+mtopei,a1
+[ ]+[0-9a-f]+:[ ]+fb002573[ ]+csrr[ ]+a0,mtopi
+[ ]+[0-9a-f]+:[ ]+fb059073[ ]+csrw[ ]+mtopi,a1
+[ ]+[0-9a-f]+:[ ]+30802573[ ]+csrr[ ]+a0,mvien
+[ ]+[0-9a-f]+:[ ]+30859073[ ]+csrw[ ]+mvien,a1
+[ ]+[0-9a-f]+:[ ]+30902573[ ]+csrr[ ]+a0,mvip
+[ ]+[0-9a-f]+:[ ]+30959073[ ]+csrw[ ]+mvip,a1
+[ ]+[0-9a-f]+:[ ]+31302573[ ]+csrr[ ]+a0,midelegh
+[ ]+[0-9a-f]+:[ ]+31359073[ ]+csrw[ ]+midelegh,a1
+[ ]+[0-9a-f]+:[ ]+31402573[ ]+csrr[ ]+a0,mieh
+[ ]+[0-9a-f]+:[ ]+31459073[ ]+csrw[ ]+mieh,a1
+[ ]+[0-9a-f]+:[ ]+31802573[ ]+csrr[ ]+a0,mvienh
+[ ]+[0-9a-f]+:[ ]+31859073[ ]+csrw[ ]+mvienh,a1
+[ ]+[0-9a-f]+:[ ]+31902573[ ]+csrr[ ]+a0,mviph
+[ ]+[0-9a-f]+:[ ]+31959073[ ]+csrw[ ]+mviph,a1
+[ ]+[0-9a-f]+:[ ]+35402573[ ]+csrr[ ]+a0,miph
+[ ]+[0-9a-f]+:[ ]+35459073[ ]+csrw[ ]+miph,a1
+[ ]+[0-9a-f]+:[ ]+35002573[ ]+csrr[ ]+a0,miselect
+[ ]+[0-9a-f]+:[ ]+35059073[ ]+csrw[ ]+miselect,a1
+[ ]+[0-9a-f]+:[ ]+35102573[ ]+csrr[ ]+a0,mireg
+[ ]+[0-9a-f]+:[ ]+35159073[ ]+csrw[ ]+mireg,a1
+[ ]+[0-9a-f]+:[ ]+35202573[ ]+csrr[ ]+a0,mireg2
+[ ]+[0-9a-f]+:[ ]+35259073[ ]+csrw[ ]+mireg2,a1
+[ ]+[0-9a-f]+:[ ]+35302573[ ]+csrr[ ]+a0,mireg3
+[ ]+[0-9a-f]+:[ ]+35359073[ ]+csrw[ ]+mireg3,a1
+[ ]+[0-9a-f]+:[ ]+35502573[ ]+csrr[ ]+a0,mireg4
+[ ]+[0-9a-f]+:[ ]+35559073[ ]+csrw[ ]+mireg4,a1
+[ ]+[0-9a-f]+:[ ]+35602573[ ]+csrr[ ]+a0,mireg5
+[ ]+[0-9a-f]+:[ ]+35659073[ ]+csrw[ ]+mireg5,a1
+[ ]+[0-9a-f]+:[ ]+35702573[ ]+csrr[ ]+a0,mireg6
+[ ]+[0-9a-f]+:[ ]+35759073[ ]+csrw[ ]+mireg6,a1
+[ ]+[0-9a-f]+:[ ]+32102573[ ]+csrr[ ]+a0,mcyclecfg
+[ ]+[0-9a-f]+:[ ]+32159073[ ]+csrw[ ]+mcyclecfg,a1
+[ ]+[0-9a-f]+:[ ]+32202573[ ]+csrr[ ]+a0,minstretcfg
+[ ]+[0-9a-f]+:[ ]+32259073[ ]+csrw[ ]+minstretcfg,a1
+[ ]+[0-9a-f]+:[ ]+72102573[ ]+csrr[ ]+a0,mcyclecfgh
+[ ]+[0-9a-f]+:[ ]+72159073[ ]+csrw[ ]+mcyclecfgh,a1
+[ ]+[0-9a-f]+:[ ]+72202573[ ]+csrr[ ]+a0,minstretcfgh
+[ ]+[0-9a-f]+:[ ]+72259073[ ]+csrw[ ]+minstretcfgh,a1
+[ ]+[0-9a-f]+:[ ]+74102573[ ]+csrr[ ]+a0,mnepc
+[ ]+[0-9a-f]+:[ ]+74159073[ ]+csrw[ ]+mnepc,a1
+[ ]+[0-9a-f]+:[ ]+74202573[ ]+csrr[ ]+a0,mncause
+[ ]+[0-9a-f]+:[ ]+74259073[ ]+csrw[ ]+mncause,a1
+[ ]+[0-9a-f]+:[ ]+74002573[ ]+csrr[ ]+a0,mnscratch
+[ ]+[0-9a-f]+:[ ]+74059073[ ]+csrw[ ]+mnscratch,a1
+[ ]+[0-9a-f]+:[ ]+74402573[ ]+csrr[ ]+a0,mnstatus
+[ ]+[0-9a-f]+:[ ]+74459073[ ]+csrw[ ]+mnstatus,a1
+[ ]+[0-9a-f]+:[ ]+30c02573[ ]+csrr[ ]+a0,mstateen0
+[ ]+[0-9a-f]+:[ ]+30c59073[ ]+csrw[ ]+mstateen0,a1
+[ ]+[0-9a-f]+:[ ]+30d02573[ ]+csrr[ ]+a0,mstateen1
+[ ]+[0-9a-f]+:[ ]+30d59073[ ]+csrw[ ]+mstateen1,a1
+[ ]+[0-9a-f]+:[ ]+30e02573[ ]+csrr[ ]+a0,mstateen2
+[ ]+[0-9a-f]+:[ ]+30e59073[ ]+csrw[ ]+mstateen2,a1
+[ ]+[0-9a-f]+:[ ]+30f02573[ ]+csrr[ ]+a0,mstateen3
+[ ]+[0-9a-f]+:[ ]+30f59073[ ]+csrw[ ]+mstateen3,a1
+[ ]+[0-9a-f]+:[ ]+10c02573[ ]+csrr[ ]+a0,sstateen0
+[ ]+[0-9a-f]+:[ ]+10c59073[ ]+csrw[ ]+sstateen0,a1
+[ ]+[0-9a-f]+:[ ]+10d02573[ ]+csrr[ ]+a0,sstateen1
+[ ]+[0-9a-f]+:[ ]+10d59073[ ]+csrw[ ]+sstateen1,a1
+[ ]+[0-9a-f]+:[ ]+10e02573[ ]+csrr[ ]+a0,sstateen2
+[ ]+[0-9a-f]+:[ ]+10e59073[ ]+csrw[ ]+sstateen2,a1
+[ ]+[0-9a-f]+:[ ]+10f02573[ ]+csrr[ ]+a0,sstateen3
+[ ]+[0-9a-f]+:[ ]+10f59073[ ]+csrw[ ]+sstateen3,a1
+[ ]+[0-9a-f]+:[ ]+60c02573[ ]+csrr[ ]+a0,hstateen0
+[ ]+[0-9a-f]+:[ ]+60c59073[ ]+csrw[ ]+hstateen0,a1
+[ ]+[0-9a-f]+:[ ]+60d02573[ ]+csrr[ ]+a0,hstateen1
+[ ]+[0-9a-f]+:[ ]+60d59073[ ]+csrw[ ]+hstateen1,a1
+[ ]+[0-9a-f]+:[ ]+60e02573[ ]+csrr[ ]+a0,hstateen2
+[ ]+[0-9a-f]+:[ ]+60e59073[ ]+csrw[ ]+hstateen2,a1
+[ ]+[0-9a-f]+:[ ]+60f02573[ ]+csrr[ ]+a0,hstateen3
+[ ]+[0-9a-f]+:[ ]+60f59073[ ]+csrw[ ]+hstateen3,a1
+[ ]+[0-9a-f]+:[ ]+31c02573[ ]+csrr[ ]+a0,mstateen0h
+[ ]+[0-9a-f]+:[ ]+31c59073[ ]+csrw[ ]+mstateen0h,a1
+[ ]+[0-9a-f]+:[ ]+31d02573[ ]+csrr[ ]+a0,mstateen1h
+[ ]+[0-9a-f]+:[ ]+31d59073[ ]+csrw[ ]+mstateen1h,a1
+[ ]+[0-9a-f]+:[ ]+31e02573[ ]+csrr[ ]+a0,mstateen2h
+[ ]+[0-9a-f]+:[ ]+31e59073[ ]+csrw[ ]+mstateen2h,a1
+[ ]+[0-9a-f]+:[ ]+31f02573[ ]+csrr[ ]+a0,mstateen3h
+[ ]+[0-9a-f]+:[ ]+31f59073[ ]+csrw[ ]+mstateen3h,a1
+[ ]+[0-9a-f]+:[ ]+61c02573[ ]+csrr[ ]+a0,hstateen0h
+[ ]+[0-9a-f]+:[ ]+61c59073[ ]+csrw[ ]+hstateen0h,a1
+[ ]+[0-9a-f]+:[ ]+61d02573[ ]+csrr[ ]+a0,hstateen1h
+[ ]+[0-9a-f]+:[ ]+61d59073[ ]+csrw[ ]+hstateen1h,a1
+[ ]+[0-9a-f]+:[ ]+61e02573[ ]+csrr[ ]+a0,hstateen2h
+[ ]+[0-9a-f]+:[ ]+61e59073[ ]+csrw[ ]+hstateen2h,a1
+[ ]+[0-9a-f]+:[ ]+61f02573[ ]+csrr[ ]+a0,hstateen3h
+[ ]+[0-9a-f]+:[ ]+61f59073[ ]+csrw[ ]+hstateen3h,a1
+[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
+[ ]+[0-9a-f]+:[ ]+15059073[ ]+csrw[ ]+siselect,a1
+[ ]+[0-9a-f]+:[ ]+15102573[ ]+csrr[ ]+a0,sireg
+[ ]+[0-9a-f]+:[ ]+15159073[ ]+csrw[ ]+sireg,a1
+[ ]+[0-9a-f]+:[ ]+15c02573[ ]+csrr[ ]+a0,stopei
+[ ]+[0-9a-f]+:[ ]+15c59073[ ]+csrw[ ]+stopei,a1
+[ ]+[0-9a-f]+:[ ]+db002573[ ]+csrr[ ]+a0,stopi
+[ ]+[0-9a-f]+:[ ]+db059073[ ]+csrw[ ]+stopi,a1
+[ ]+[0-9a-f]+:[ ]+11402573[ ]+csrr[ ]+a0,sieh
+[ ]+[0-9a-f]+:[ ]+11459073[ ]+csrw[ ]+sieh,a1
+[ ]+[0-9a-f]+:[ ]+15402573[ ]+csrr[ ]+a0,siph
+[ ]+[0-9a-f]+:[ ]+15459073[ ]+csrw[ ]+siph,a1
+[ ]+[0-9a-f]+:[ ]+60802573[ ]+csrr[ ]+a0,hvien
+[ ]+[0-9a-f]+:[ ]+60859073[ ]+csrw[ ]+hvien,a1
+[ ]+[0-9a-f]+:[ ]+60902573[ ]+csrr[ ]+a0,hvictl
+[ ]+[0-9a-f]+:[ ]+60959073[ ]+csrw[ ]+hvictl,a1
+[ ]+[0-9a-f]+:[ ]+64602573[ ]+csrr[ ]+a0,hviprio1
+[ ]+[0-9a-f]+:[ ]+64659073[ ]+csrw[ ]+hviprio1,a1
+[ ]+[0-9a-f]+:[ ]+64702573[ ]+csrr[ ]+a0,hviprio2
+[ ]+[0-9a-f]+:[ ]+64759073[ ]+csrw[ ]+hviprio2,a1
+[ ]+[0-9a-f]+:[ ]+25002573[ ]+csrr[ ]+a0,vsiselect
+[ ]+[0-9a-f]+:[ ]+25059073[ ]+csrw[ ]+vsiselect,a1
+[ ]+[0-9a-f]+:[ ]+25102573[ ]+csrr[ ]+a0,vsireg
+[ ]+[0-9a-f]+:[ ]+25159073[ ]+csrw[ ]+vsireg,a1
+[ ]+[0-9a-f]+:[ ]+25c02573[ ]+csrr[ ]+a0,vstopei
+[ ]+[0-9a-f]+:[ ]+25c59073[ ]+csrw[ ]+vstopei,a1
+[ ]+[0-9a-f]+:[ ]+eb002573[ ]+csrr[ ]+a0,vstopi
+[ ]+[0-9a-f]+:[ ]+eb059073[ ]+csrw[ ]+vstopi,a1
+[ ]+[0-9a-f]+:[ ]+61302573[ ]+csrr[ ]+a0,hidelegh
+[ ]+[0-9a-f]+:[ ]+61359073[ ]+csrw[ ]+hidelegh,a1
+[ ]+[0-9a-f]+:[ ]+61802573[ ]+csrr[ ]+a0,hvienh
+[ ]+[0-9a-f]+:[ ]+61859073[ ]+csrw[ ]+hvienh,a1
+[ ]+[0-9a-f]+:[ ]+65502573[ ]+csrr[ ]+a0,hviph
+[ ]+[0-9a-f]+:[ ]+65559073[ ]+csrw[ ]+hviph,a1
+[ ]+[0-9a-f]+:[ ]+65602573[ ]+csrr[ ]+a0,hviprio1h
+[ ]+[0-9a-f]+:[ ]+65659073[ ]+csrw[ ]+hviprio1h,a1
+[ ]+[0-9a-f]+:[ ]+65702573[ ]+csrr[ ]+a0,hviprio2h
+[ ]+[0-9a-f]+:[ ]+65759073[ ]+csrw[ ]+hviprio2h,a1
+[ ]+[0-9a-f]+:[ ]+21402573[ ]+csrr[ ]+a0,vsieh
+[ ]+[0-9a-f]+:[ ]+21459073[ ]+csrw[ ]+vsieh,a1
+[ ]+[0-9a-f]+:[ ]+25402573[ ]+csrr[ ]+a0,vsiph
+[ ]+[0-9a-f]+:[ ]+25459073[ ]+csrw[ ]+vsiph,a1
+[ ]+[0-9a-f]+:[ ]+01102573[ ]+csrr[ ]+a0,ssp
+[ ]+[0-9a-f]+:[ ]+01159073[ ]+csrw[ ]+ssp,a1
+[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
+[ ]+[0-9a-f]+:[ ]+15059073[ ]+csrw[ ]+siselect,a1
+[ ]+[0-9a-f]+:[ ]+15102573[ ]+csrr[ ]+a0,sireg
+[ ]+[0-9a-f]+:[ ]+15159073[ ]+csrw[ ]+sireg,a1
+[ ]+[0-9a-f]+:[ ]+15202573[ ]+csrr[ ]+a0,sireg2
+[ ]+[0-9a-f]+:[ ]+15259073[ ]+csrw[ ]+sireg2,a1
+[ ]+[0-9a-f]+:[ ]+15302573[ ]+csrr[ ]+a0,sireg3
+[ ]+[0-9a-f]+:[ ]+15359073[ ]+csrw[ ]+sireg3,a1
+[ ]+[0-9a-f]+:[ ]+15502573[ ]+csrr[ ]+a0,sireg4
+[ ]+[0-9a-f]+:[ ]+15559073[ ]+csrw[ ]+sireg4,a1
+[ ]+[0-9a-f]+:[ ]+15602573[ ]+csrr[ ]+a0,sireg5
+[ ]+[0-9a-f]+:[ ]+15659073[ ]+csrw[ ]+sireg5,a1
+[ ]+[0-9a-f]+:[ ]+15702573[ ]+csrr[ ]+a0,sireg6
+[ ]+[0-9a-f]+:[ ]+15759073[ ]+csrw[ ]+sireg6,a1
+[ ]+[0-9a-f]+:[ ]+25002573[ ]+csrr[ ]+a0,vsiselect
+[ ]+[0-9a-f]+:[ ]+25059073[ ]+csrw[ ]+vsiselect,a1
+[ ]+[0-9a-f]+:[ ]+25102573[ ]+csrr[ ]+a0,vsireg
+[ ]+[0-9a-f]+:[ ]+25159073[ ]+csrw[ ]+vsireg,a1
+[ ]+[0-9a-f]+:[ ]+25202573[ ]+csrr[ ]+a0,vsireg2
+[ ]+[0-9a-f]+:[ ]+25259073[ ]+csrw[ ]+vsireg2,a1
+[ ]+[0-9a-f]+:[ ]+25302573[ ]+csrr[ ]+a0,vsireg3
+[ ]+[0-9a-f]+:[ ]+25359073[ ]+csrw[ ]+vsireg3,a1
+[ ]+[0-9a-f]+:[ ]+25502573[ ]+csrr[ ]+a0,vsireg4
+[ ]+[0-9a-f]+:[ ]+25559073[ ]+csrw[ ]+vsireg4,a1
+[ ]+[0-9a-f]+:[ ]+25602573[ ]+csrr[ ]+a0,vsireg5
+[ ]+[0-9a-f]+:[ ]+25659073[ ]+csrw[ ]+vsireg5,a1
+[ ]+[0-9a-f]+:[ ]+25702573[ ]+csrr[ ]+a0,vsireg6
+[ ]+[0-9a-f]+:[ ]+25759073[ ]+csrw[ ]+vsireg6,a1
+[ ]+[0-9a-f]+:[ ]+da002573[ ]+csrr[ ]+a0,scountovf
+[ ]+[0-9a-f]+:[ ]+da059073[ ]+csrw[ ]+scountovf,a1
+[ ]+[0-9a-f]+:[ ]+72302573[ ]+csrr[ ]+a0,mhpmevent3h
+[ ]+[0-9a-f]+:[ ]+72359073[ ]+csrw[ ]+mhpmevent3h,a1
+[ ]+[0-9a-f]+:[ ]+72402573[ ]+csrr[ ]+a0,mhpmevent4h
+[ ]+[0-9a-f]+:[ ]+72459073[ ]+csrw[ ]+mhpmevent4h,a1
+[ ]+[0-9a-f]+:[ ]+72502573[ ]+csrr[ ]+a0,mhpmevent5h
+[ ]+[0-9a-f]+:[ ]+72559073[ ]+csrw[ ]+mhpmevent5h,a1
+[ ]+[0-9a-f]+:[ ]+72602573[ ]+csrr[ ]+a0,mhpmevent6h
+[ ]+[0-9a-f]+:[ ]+72659073[ ]+csrw[ ]+mhpmevent6h,a1
+[ ]+[0-9a-f]+:[ ]+72702573[ ]+csrr[ ]+a0,mhpmevent7h
+[ ]+[0-9a-f]+:[ ]+72759073[ ]+csrw[ ]+mhpmevent7h,a1
+[ ]+[0-9a-f]+:[ ]+72802573[ ]+csrr[ ]+a0,mhpmevent8h
+[ ]+[0-9a-f]+:[ ]+72859073[ ]+csrw[ ]+mhpmevent8h,a1
+[ ]+[0-9a-f]+:[ ]+72902573[ ]+csrr[ ]+a0,mhpmevent9h
+[ ]+[0-9a-f]+:[ ]+72959073[ ]+csrw[ ]+mhpmevent9h,a1
+[ ]+[0-9a-f]+:[ ]+72a02573[ ]+csrr[ ]+a0,mhpmevent10h
+[ ]+[0-9a-f]+:[ ]+72a59073[ ]+csrw[ ]+mhpmevent10h,a1
+[ ]+[0-9a-f]+:[ ]+72b02573[ ]+csrr[ ]+a0,mhpmevent11h
+[ ]+[0-9a-f]+:[ ]+72b59073[ ]+csrw[ ]+mhpmevent11h,a1
+[ ]+[0-9a-f]+:[ ]+72c02573[ ]+csrr[ ]+a0,mhpmevent12h
+[ ]+[0-9a-f]+:[ ]+72c59073[ ]+csrw[ ]+mhpmevent12h,a1
+[ ]+[0-9a-f]+:[ ]+72d02573[ ]+csrr[ ]+a0,mhpmevent13h
+[ ]+[0-9a-f]+:[ ]+72d59073[ ]+csrw[ ]+mhpmevent13h,a1
+[ ]+[0-9a-f]+:[ ]+72e02573[ ]+csrr[ ]+a0,mhpmevent14h
+[ ]+[0-9a-f]+:[ ]+72e59073[ ]+csrw[ ]+mhpmevent14h,a1
+[ ]+[0-9a-f]+:[ ]+72f02573[ ]+csrr[ ]+a0,mhpmevent15h
+[ ]+[0-9a-f]+:[ ]+72f59073[ ]+csrw[ ]+mhpmevent15h,a1
+[ ]+[0-9a-f]+:[ ]+73002573[ ]+csrr[ ]+a0,mhpmevent16h
+[ ]+[0-9a-f]+:[ ]+73059073[ ]+csrw[ ]+mhpmevent16h,a1
+[ ]+[0-9a-f]+:[ ]+73102573[ ]+csrr[ ]+a0,mhpmevent17h
+[ ]+[0-9a-f]+:[ ]+73159073[ ]+csrw[ ]+mhpmevent17h,a1
+[ ]+[0-9a-f]+:[ ]+73202573[ ]+csrr[ ]+a0,mhpmevent18h
+[ ]+[0-9a-f]+:[ ]+73259073[ ]+csrw[ ]+mhpmevent18h,a1
+[ ]+[0-9a-f]+:[ ]+73302573[ ]+csrr[ ]+a0,mhpmevent19h
+[ ]+[0-9a-f]+:[ ]+73359073[ ]+csrw[ ]+mhpmevent19h,a1
+[ ]+[0-9a-f]+:[ ]+73402573[ ]+csrr[ ]+a0,mhpmevent20h
+[ ]+[0-9a-f]+:[ ]+73459073[ ]+csrw[ ]+mhpmevent20h,a1
+[ ]+[0-9a-f]+:[ ]+73502573[ ]+csrr[ ]+a0,mhpmevent21h
+[ ]+[0-9a-f]+:[ ]+73559073[ ]+csrw[ ]+mhpmevent21h,a1
+[ ]+[0-9a-f]+:[ ]+73602573[ ]+csrr[ ]+a0,mhpmevent22h
+[ ]+[0-9a-f]+:[ ]+73659073[ ]+csrw[ ]+mhpmevent22h,a1
+[ ]+[0-9a-f]+:[ ]+73702573[ ]+csrr[ ]+a0,mhpmevent23h
+[ ]+[0-9a-f]+:[ ]+73759073[ ]+csrw[ ]+mhpmevent23h,a1
+[ ]+[0-9a-f]+:[ ]+73802573[ ]+csrr[ ]+a0,mhpmevent24h
+[ ]+[0-9a-f]+:[ ]+73859073[ ]+csrw[ ]+mhpmevent24h,a1
+[ ]+[0-9a-f]+:[ ]+73902573[ ]+csrr[ ]+a0,mhpmevent25h
+[ ]+[0-9a-f]+:[ ]+73959073[ ]+csrw[ ]+mhpmevent25h,a1
+[ ]+[0-9a-f]+:[ ]+73a02573[ ]+csrr[ ]+a0,mhpmevent26h
+[ ]+[0-9a-f]+:[ ]+73a59073[ ]+csrw[ ]+mhpmevent26h,a1
+[ ]+[0-9a-f]+:[ ]+73b02573[ ]+csrr[ ]+a0,mhpmevent27h
+[ ]+[0-9a-f]+:[ ]+73b59073[ ]+csrw[ ]+mhpmevent27h,a1
+[ ]+[0-9a-f]+:[ ]+73c02573[ ]+csrr[ ]+a0,mhpmevent28h
+[ ]+[0-9a-f]+:[ ]+73c59073[ ]+csrw[ ]+mhpmevent28h,a1
+[ ]+[0-9a-f]+:[ ]+73d02573[ ]+csrr[ ]+a0,mhpmevent29h
+[ ]+[0-9a-f]+:[ ]+73d59073[ ]+csrw[ ]+mhpmevent29h,a1
+[ ]+[0-9a-f]+:[ ]+73e02573[ ]+csrr[ ]+a0,mhpmevent30h
+[ ]+[0-9a-f]+:[ ]+73e59073[ ]+csrw[ ]+mhpmevent30h,a1
+[ ]+[0-9a-f]+:[ ]+73f02573[ ]+csrr[ ]+a0,mhpmevent31h
+[ ]+[0-9a-f]+:[ ]+73f59073[ ]+csrw[ ]+mhpmevent31h,a1
+[ ]+[0-9a-f]+:[ ]+14d02573[ ]+csrr[ ]+a0,stimecmp
+[ ]+[0-9a-f]+:[ ]+14d59073[ ]+csrw[ ]+stimecmp,a1
+[ ]+[0-9a-f]+:[ ]+15d02573[ ]+csrr[ ]+a0,stimecmph
+[ ]+[0-9a-f]+:[ ]+15d59073[ ]+csrw[ ]+stimecmph,a1
+[ ]+[0-9a-f]+:[ ]+24d02573[ ]+csrr[ ]+a0,vstimecmp
+[ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1
+[ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph
+[ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1
+[ ]+[0-9a-f]+:[ ]+14e02573[ ]+csrr[ ]+a0,sctrctl
+[ ]+[0-9a-f]+:[ ]+14e59073[ ]+csrw[ ]+sctrctl,a1
+[ ]+[0-9a-f]+:[ ]+14f02573[ ]+csrr[ ]+a0,sctrstatus
+[ ]+[0-9a-f]+:[ ]+14f59073[ ]+csrw[ ]+sctrstatus,a1
+[ ]+[0-9a-f]+:[ ]+15f02573[ ]+csrr[ ]+a0,sctrdepth
+[ ]+[0-9a-f]+:[ ]+15f59073[ ]+csrw[ ]+sctrdepth,a1
+[ ]+[0-9a-f]+:[ ]+24e02573[ ]+csrr[ ]+a0,vsctrctl
+[ ]+[0-9a-f]+:[ ]+24e59073[ ]+csrw[ ]+vsctrctl,a1
+[ ]+[0-9a-f]+:[ ]+34e02573[ ]+csrr[ ]+a0,mctrctl
+[ ]+[0-9a-f]+:[ ]+34e59073[ ]+csrw[ ]+mctrctl,a1
+[ ]+[0-9a-f]+:[ ]+00002573[ ]+csrr[ ]+a0,0x0
+[ ]+[0-9a-f]+:[ ]+00059073[ ]+csrw[ ]+0x0,a1
+[ ]+[0-9a-f]+:[ ]+00402573[ ]+csrr[ ]+a0,0x4
+[ ]+[0-9a-f]+:[ ]+00459073[ ]+csrw[ ]+0x4,a1
+[ ]+[0-9a-f]+:[ ]+00502573[ ]+csrr[ ]+a0,0x5
+[ ]+[0-9a-f]+:[ ]+00559073[ ]+csrw[ ]+0x5,a1
+[ ]+[0-9a-f]+:[ ]+04002573[ ]+csrr[ ]+a0,0x40
+[ ]+[0-9a-f]+:[ ]+04059073[ ]+csrw[ ]+0x40,a1
+[ ]+[0-9a-f]+:[ ]+04102573[ ]+csrr[ ]+a0,0x41
+[ ]+[0-9a-f]+:[ ]+04159073[ ]+csrw[ ]+0x41,a1
+[ ]+[0-9a-f]+:[ ]+04202573[ ]+csrr[ ]+a0,0x42
+[ ]+[0-9a-f]+:[ ]+04259073[ ]+csrw[ ]+0x42,a1
+[ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,0x43
+[ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+0x43,a1
+[ ]+[0-9a-f]+:[ ]+04402573[ ]+csrr[ ]+a0,0x44
+[ ]+[0-9a-f]+:[ ]+04459073[ ]+csrw[ ]+0x44,a1
+[ ]+[0-9a-f]+:[ ]+10202573[ ]+csrr[ ]+a0,0x102
+[ ]+[0-9a-f]+:[ ]+10259073[ ]+csrw[ ]+0x102,a1
+[ ]+[0-9a-f]+:[ ]+10302573[ ]+csrr[ ]+a0,0x103
+[ ]+[0-9a-f]+:[ ]+10359073[ ]+csrw[ ]+0x103,a1
+[ ]+[0-9a-f]+:[ ]+00102573[ ]+csrr[ ]+a0,fflags
+[ ]+[0-9a-f]+:[ ]+00159073[ ]+csrw[ ]+fflags,a1
+[ ]+[0-9a-f]+:[ ]+00202573[ ]+csrr[ ]+a0,frm
+[ ]+[0-9a-f]+:[ ]+00259073[ ]+csrw[ ]+frm,a1
+[ ]+[0-9a-f]+:[ ]+00302573[ ]+csrr[ ]+a0,fcsr
+[ ]+[0-9a-f]+:[ ]+00359073[ ]+csrw[ ]+fcsr,a1
+[ ]+[0-9a-f]+:[ ]+7b002573[ ]+csrr[ ]+a0,dcsr
+[ ]+[0-9a-f]+:[ ]+7b059073[ ]+csrw[ ]+dcsr,a1
+[ ]+[0-9a-f]+:[ ]+7b102573[ ]+csrr[ ]+a0,dpc
+[ ]+[0-9a-f]+:[ ]+7b159073[ ]+csrw[ ]+dpc,a1
+[ ]+[0-9a-f]+:[ ]+7b202573[ ]+csrr[ ]+a0,dscratch0
+[ ]+[0-9a-f]+:[ ]+7b259073[ ]+csrw[ ]+dscratch0,a1
+[ ]+[0-9a-f]+:[ ]+7b302573[ ]+csrr[ ]+a0,dscratch1
+[ ]+[0-9a-f]+:[ ]+7b359073[ ]+csrw[ ]+dscratch1,a1
+[ ]+[0-9a-f]+:[ ]+7b202573[ ]+csrr[ ]+a0,dscratch0
+[ ]+[0-9a-f]+:[ ]+7b259073[ ]+csrw[ ]+dscratch0,a1
+[ ]+[0-9a-f]+:[ ]+7a002573[ ]+csrr[ ]+a0,tselect
+[ ]+[0-9a-f]+:[ ]+7a059073[ ]+csrw[ ]+tselect,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a202573[ ]+csrr[ ]+a0,tdata2
+[ ]+[0-9a-f]+:[ ]+7a259073[ ]+csrw[ ]+tdata2,a1
+[ ]+[0-9a-f]+:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
+[ ]+[0-9a-f]+:[ ]+7a359073[ ]+csrw[ ]+tdata3,a1
+[ ]+[0-9a-f]+:[ ]+7a402573[ ]+csrr[ ]+a0,tinfo
+[ ]+[0-9a-f]+:[ ]+7a459073[ ]+csrw[ ]+tinfo,a1
+[ ]+[0-9a-f]+:[ ]+7a502573[ ]+csrr[ ]+a0,tcontrol
+[ ]+[0-9a-f]+:[ ]+7a559073[ ]+csrw[ ]+tcontrol,a1
+[ ]+[0-9a-f]+:[ ]+6a802573[ ]+csrr[ ]+a0,hcontext
+[ ]+[0-9a-f]+:[ ]+6a859073[ ]+csrw[ ]+hcontext,a1
+[ ]+[0-9a-f]+:[ ]+5a802573[ ]+csrr[ ]+a0,scontext
+[ ]+[0-9a-f]+:[ ]+5a859073[ ]+csrw[ ]+scontext,a1
+[ ]+[0-9a-f]+:[ ]+7a802573[ ]+csrr[ ]+a0,mcontext
+[ ]+[0-9a-f]+:[ ]+7a859073[ ]+csrw[ ]+mcontext,a1
+[ ]+[0-9a-f]+:[ ]+7aa02573[ ]+csrr[ ]+a0,mscontext
+[ ]+[0-9a-f]+:[ ]+7aa59073[ ]+csrw[ ]+mscontext,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
+[ ]+[0-9a-f]+:[ ]+7a359073[ ]+csrw[ ]+tdata3,a1
+[ ]+[0-9a-f]+:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
+[ ]+[0-9a-f]+:[ ]+7a359073[ ]+csrw[ ]+tdata3,a1
+[ ]+[0-9a-f]+:[ ]+01502573[ ]+csrr[ ]+a0,seed
+[ ]+[0-9a-f]+:[ ]+01559073[ ]+csrw[ ]+seed,a1
+[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart
+[ ]+[0-9a-f]+:[ ]+00859073[ ]+csrw[ ]+vstart,a1
+[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat
+[ ]+[0-9a-f]+:[ ]+00959073[ ]+csrw[ ]+vxsat,a1
+[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm
+[ ]+[0-9a-f]+:[ ]+00a59073[ ]+csrw[ ]+vxrm,a1
+[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr
+[ ]+[0-9a-f]+:[ ]+00f59073[ ]+csrw[ ]+vcsr,a1
+[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl
+[ ]+[0-9a-f]+:[ ]+c2059073[ ]+csrw[ ]+vl,a1
+[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype
+[ ]+[0-9a-f]+:[ ]+c2159073[ ]+csrw[ ]+vtype,a1
+[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb
+[ ]+[0-9a-f]+:[ ]+c2259073[ ]+csrw[ ]+vlenb,a1
+[ ]+[0-9a-f]+:[ ]+01702573[ ]+csrr[ ]+a0,jvt
+[ ]+[0-9a-f]+:[ ]+01759073[ ]+csrw[ ]+jvt,a1
+[ ]+[0-9a-f]+:[ ]+18102573[ ]+csrr[ ]+a0,srmcfg
+[ ]+[0-9a-f]+:[ ]+18159073[ ]+csrw[ ]+srmcfg,a1
diff --git a/gas/testsuite/gas/riscv/csr-version-1p13.l b/gas/testsuite/gas/riscv/csr-version-1p13.l
new file mode 100644
index 0000000..42c8523
--- /dev/null
+++ b/gas/testsuite/gas/riscv/csr-version-1p13.l
@@ -0,0 +1,1495 @@
+.*Assembler messages:
+.*Warning: read-only CSR is written `csrw cycle,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw time,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw instret,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter3,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter4,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter5,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter6,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter7,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter8,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter9,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter10,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter11,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter12,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter13,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter14,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter15,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter16,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter17,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter18,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter19,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter20,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter21,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter22,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter23,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter24,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter25,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter26,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter27,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter28,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter29,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter30,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter31,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `cycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `cycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw cycleh,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `timeh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `timeh', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw timeh,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `instreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `instreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw instreth,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter3h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter4h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter5h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter6h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter7h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter8h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter9h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter10h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter11h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter12h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter13h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter14h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter15h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter16h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter17h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter18h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter19h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter20h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter21h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter22h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter23h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter24h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter25h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter26h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter27h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter28h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter29h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter30h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter31h,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mvendorid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw marchid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mimpid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mhartid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mconfigptr,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstatush', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstatush', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `menvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `menvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mseccfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mseccfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg1', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg1', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg3', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg3', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg5', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg5', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg7', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg7', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg9', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg9', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg11', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg11', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg13', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg13', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg15', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg15', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedeleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedeleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hideleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hideleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hcounteren', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hcounteren', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htinst', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htinst', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeip', needs `h' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hgeip,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedelta', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedelta', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstvec', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstvec', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsscratch', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsscratch', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsepc', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsepc', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vscause', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vscause', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mtopi,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnepc', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnepc', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mncause', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mncause', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnscratch', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnscratch', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnstatus', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnstatus', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw stopi,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vstopi,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `ssp', needs `zicfiss' extension
+.*Info: macro .*
+.*Warning: invalid CSR `ssp', needs `zicfiss' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw scountovf,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrstatus', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrstatus', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrdepth', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrdepth', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mctrctl', needs `smctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mctrctl', needs `smctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `ustatus' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `ustatus' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uie' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uie' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utvec' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utvec' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uscratch' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uscratch' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uepc' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uepc' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `ucause' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `ucause' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utval' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utval' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uip' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uip' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sedeleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sedeleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sideleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sideleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `fflags', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `fflags', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `frm', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `frm', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `fcsr', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `fcsr', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `seed', needs `zkr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `seed', needs `zkr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstart', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstart', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxsat', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxsat', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxrm', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxrm', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vcsr', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vcsr', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vl', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vl', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vl,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `vtype', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vtype', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vtype,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `vlenb', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vlenb', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vlenb,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `jvt', needs `zcmt' extension
+.*Info: macro .*
+.*Warning: invalid CSR `jvt', needs `zcmt' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s
index 6244bd7..f4c215d 100644
--- a/gas/testsuite/gas/riscv/csr.s
+++ b/gas/testsuite/gas/riscv/csr.s
@@ -3,7 +3,7 @@
csrw \val, a1
.endm
- # Supported privileged specs, 1.10, 1.11 and 1.12.
+ # Supported privileged specs, 1.10, 1.11, 1.12 and 1.13.
# User Counter/Timers
csr cycle
@@ -101,6 +101,7 @@
csr mstatus
csr misa
csr medeleg
+ csr medelegh # Added in 1.13
csr mideleg
csr mie
csr mtvec
@@ -303,6 +304,7 @@
# Hypervisor Trap Setup
csr hstatus
csr hedeleg
+ csr hedelegh # Added in 1.13
csr hideleg
csr hie
csr hcounteren
diff --git a/gas/testsuite/gas/riscv/imply.d b/gas/testsuite/gas/riscv/imply.d
index 78ff200..bce97dd 100644
--- a/gas/testsuite/gas/riscv/imply.d
+++ b/gas/testsuite/gas/riscv/imply.d
@@ -51,6 +51,7 @@ SYMBOL TABLE:
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zca1p0_zcmt1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicfilp1p0_zicsr2p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicfiss1p0_zicsr2p0_zimop1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_sha1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssstateen1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shcounterenw1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shgatpa1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shtvala1p0
diff --git a/gas/testsuite/gas/riscv/imply.s b/gas/testsuite/gas/riscv/imply.s
index d696b52..c047ed6 100644
--- a/gas/testsuite/gas/riscv/imply.s
+++ b/gas/testsuite/gas/riscv/imply.s
@@ -57,6 +57,8 @@ imply zcmt
imply zicfilp
imply zicfiss
+imply sha
+
imply shcounterenw
imply shgatpa
imply shtvala
diff --git a/gas/testsuite/gas/riscv/march-help.l b/gas/testsuite/gas/riscv/march-help.l
index d77472f..bcc3a8f 100644
--- a/gas/testsuite/gas/riscv/march-help.l
+++ b/gas/testsuite/gas/riscv/march-help.l
@@ -107,6 +107,7 @@ All available -march extensions for RISC-V:
zcmop 1.0
zcmp 1.0
zcmt 1.0
+ sha 1.0
shcounterenw 1.0
shgatpa 1.0
shtvala 1.0
@@ -173,3 +174,7 @@ All available -march extensions for RISC-V:
xsfvqmaccqoq 1.0
xsfvqmaccdod 1.0
xsfvfnrclipxfqf 1.0
+ xmipscbop 1.0
+ xmipscmov 1.0
+ xmipsexectl 1.0
+ xmipslsp 1.0
diff --git a/gas/testsuite/gas/riscv/mips-insns.d b/gas/testsuite/gas/riscv/mips-insns.d
new file mode 100644
index 0000000..999c433
--- /dev/null
+++ b/gas/testsuite/gas/riscv/mips-insns.d
@@ -0,0 +1,31 @@
+#as:
+#objdump: -dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[ ]+[0-9a-f]+:[ ]+0003000b[ ]+mips.pref[ ]+0x0,0x0\(t1\)
+[ ]+[0-9a-f]+:[ ]+1ff38f8b[ ]+mips.pref[ ]+0x1f,0x1ff\(t2\)
+[ ]+[0-9a-f]+:[ ]+6eb6350b[ ]+mips.ccmov[ ]+a0,a1,a2,a3
+[ ]+[0-9a-f]+:[ ]+00301013[ ]+mips.ehb
+[ ]+[0-9a-f]+:[ ]+00101013[ ]+mips.ihb
+[ ]+[0-9a-f]+:[ ]+00501013[ ]+mips.pause
+[ ]+[0-9a-f]+:[ ]+e80f4e0b[ ]+mips.ldp[ ]+t3,t4,0\(t5\)
+[ ]+[0-9a-f]+:[ ]+e88f4e0b[ ]+mips.ldp[ ]+t3,t4,8\(t5\)
+[ ]+[0-9a-f]+:[ ]+1f00cf8b[ ]+mips.ldp[ ]+t6,gp,112\(ra\)
+[ ]+[0-9a-f]+:[ ]+1f80cf8b[ ]+mips.ldp[ ]+t6,gp,120\(ra\)
+[ ]+[0-9a-f]+:[ ]+5816450b[ ]+mips.lwp[ ]+a0,a1,0\(a2\)
+[ ]+[0-9a-f]+:[ ]+5856450b[ ]+mips.lwp[ ]+a0,a1,4\(a2\)
+[ ]+[0-9a-f]+:[ ]+7797c68b[ ]+mips.lwp[ ]+a3,a4,120\(a5\)
+[ ]+[0-9a-f]+:[ ]+77d7c68b[ ]+mips.lwp[ ]+a3,a4,124\(a5\)
+[ ]+[0-9a-f]+:[ ]+e9cf500b[ ]+mips.sdp[ ]+t3,t4,0\(t5\)
+[ ]+[0-9a-f]+:[ ]+e9cf540b[ ]+mips.sdp[ ]+t3,t4,8\(t5\)
+[ ]+[0-9a-f]+:[ ]+1ff0d80b[ ]+mips.sdp[ ]+t6,gp,112\(ra\)
+[ ]+[0-9a-f]+:[ ]+1ff0dc0b[ ]+mips.sdp[ ]+t6,gp,120\(ra\)
+[ ]+[0-9a-f]+:[ ]+58a6508b[ ]+mips.swp[ ]+a0,a1,0\(a2\)
+[ ]+[0-9a-f]+:[ ]+58a6528b[ ]+mips.swp[ ]+a0,a1,4\(a2\)
+[ ]+[0-9a-f]+:[ ]+76d7dc8b[ ]+mips.swp[ ]+a3,a4,120\(a5\)
+[ ]+[0-9a-f]+:[ ]+76d7de8b[ ]+mips.swp[ ]+a3,a4,124\(a5\)
diff --git a/gas/testsuite/gas/riscv/mips-insns.s b/gas/testsuite/gas/riscv/mips-insns.s
new file mode 100644
index 0000000..793c6ef
--- /dev/null
+++ b/gas/testsuite/gas/riscv/mips-insns.s
@@ -0,0 +1,42 @@
+ .attribute arch, "rv64i"
+ # xmipscbop
+ .option push
+ .option arch, +xmipscbop
+ mips.pref 0, 0(t1)
+ mips.pref 31, 511(t2)
+ .option pop
+
+ # xmipscmov
+ .option push
+ .option arch, +xmipscmov
+ mips.ccmov a0,a1,a2,a3
+ .option pop
+
+ # xmipsexectl
+ .option push
+ .option arch, +xmipsexectl
+ mips.ehb
+ mips.ihb
+ mips.pause
+ .option pop
+
+ # xmipslsp
+ .option push
+ .option arch, +xmipslsp
+ mips.ldp t3, t4, 0(t5)
+ mips.ldp t3, t4, 8(t5)
+ mips.ldp t6, gp, 112(ra)
+ mips.ldp t6, gp, 120(ra)
+ mips.lwp a0, a1, 0(a2)
+ mips.lwp a0, a1, 4(a2)
+ mips.lwp a3, a4, 120(a5)
+ mips.lwp a3, a4, 124(a5)
+ mips.sdp t3, t4, 0(t5)
+ mips.sdp t3, t4, 8(t5)
+ mips.sdp t6, gp, 112(ra)
+ mips.sdp t6, gp, 120(ra)
+ mips.swp a0, a1, 0(a2)
+ mips.swp a0, a1, 4(a2)
+ mips.swp a3, a4, 120(a5)
+ mips.swp a3, a4, 124(a5)
+ .option pop
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index c5178d3..f33a8d0 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -163,49 +163,33 @@ show_auto_load_dir (struct ui_file *file, int from_tty,
value);
}
-/* Substitute all occurrences of string FROM by string TO in *STRINGP. *STRINGP
- must come from xrealloc-compatible allocator and it may be updated. FROM
- needs to be delimited by IS_DIR_SEPARATOR or DIRNAME_SEPARATOR (or be
- located at the start or end of *STRINGP. */
+/* Substitute all occurrences of string FROM by string TO in STRING.
+ STRING will be updated in place as needed. FROM needs to be
+ delimited by IS_DIR_SEPARATOR or DIRNAME_SEPARATOR (or be located
+ at the start or end of STRING. */
static void
-substitute_path_component (char **stringp, const char *from, const char *to)
+substitute_path_component (std::string &string, std::string_view from,
+ std::string_view to)
{
- char *string = *stringp, *s;
- const size_t from_len = strlen (from);
- const size_t to_len = strlen (to);
-
- for (s = string;;)
+ for (size_t s = 0;;)
{
- s = strstr (s, from);
- if (s == NULL)
+ s = string.find (from, s);
+ if (s == std::string::npos)
break;
- if ((s == string || IS_DIR_SEPARATOR (s[-1])
- || s[-1] == DIRNAME_SEPARATOR)
- && (s[from_len] == '\0' || IS_DIR_SEPARATOR (s[from_len])
- || s[from_len] == DIRNAME_SEPARATOR))
+ if ((s == 0 || IS_DIR_SEPARATOR (string[s - 1])
+ || string[s - 1] == DIRNAME_SEPARATOR)
+ && (s + from.size () == string.size ()
+ || IS_DIR_SEPARATOR (string[s + from.size ()])
+ || string[s + from.size ()] == DIRNAME_SEPARATOR))
{
- char *string_new;
-
- string_new
- = (char *) xrealloc (string, (strlen (string) + to_len + 1));
-
- /* Relocate the current S pointer. */
- s = s - string + string_new;
- string = string_new;
-
- /* Replace from by to. */
- memmove (&s[to_len], &s[from_len], strlen (&s[from_len]) + 1);
- memcpy (s, to, to_len);
-
- s += to_len;
+ string.replace (s, from.size (), to);
+ s += to.size ();
}
else
s++;
}
-
- *stringp = string;
}
#if GDB_SELF_TEST
@@ -219,10 +203,8 @@ test_substitute_path_component ()
auto test = [] (std::string s, const char *from, const char *to,
const char *expected)
{
- char *temp = xstrdup (s.c_str ());
- substitute_path_component (&temp, from, to);
- SELF_CHECK (strcmp (temp, expected) == 0);
- xfree (temp);
+ substitute_path_component (s, from, to);
+ SELF_CHECK (s == expected);
};
test ("/abc/$def/g", "abc", "xyz", "/xyz/$def/g");
@@ -258,16 +240,15 @@ static std::vector<gdb::unique_xmalloc_ptr<char>> auto_load_safe_path_vec;
static std::vector<gdb::unique_xmalloc_ptr<char>>
auto_load_expand_dir_vars (const char *string)
{
- char *s = xstrdup (string);
- substitute_path_component (&s, "$datadir", gdb_datadir.c_str ());
- substitute_path_component (&s, "$debugdir", debug_file_directory.c_str ());
+ std::string s = string;
+ substitute_path_component (s, "$datadir", gdb_datadir.c_str ());
+ substitute_path_component (s, "$debugdir", debug_file_directory.c_str ());
- if (debug_auto_load && strcmp (s, string) != 0)
- auto_load_debug_printf ("Expanded $-variables to \"%s\".", s);
+ if (debug_auto_load && s != string)
+ auto_load_debug_printf ("Expanded $-variables to \"%s\".", s.c_str ());
std::vector<gdb::unique_xmalloc_ptr<char>> dir_vec
- = dirnames_to_char_ptr_vec (s);
- xfree(s);
+ = dirnames_to_char_ptr_vec (s.c_str ());
return dir_vec;
}
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
index fea4948..c20cb20 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -3804,6 +3804,25 @@
#define MASK_SFVFNRCLIPXUFQF 0xfe00707f
#define MATCH_SFVFNRCLIPXFQF 0x8e00505b
#define MASK_SFVFNRCLIPXFQF 0xfe00707f
+/* MIPS custom instruction. */
+#define MATCH_MIPS_CCMOV 0x600300b
+#define MASK_MIPS_CCMOV 0x600707f
+#define MATCH_MIPS_LWP 0x0010400b
+#define MASK_MIPS_LWP 0x0030707f
+#define MATCH_MIPS_LDP 0x0000400b
+#define MASK_MIPS_LDP 0x0070707f
+#define MATCH_MIPS_SWP 0x0000508b
+#define MASK_MIPS_SWP 0x000071ff
+#define MATCH_MIPS_SDP 0x0000500b
+#define MASK_MIPS_SDP 0x000073ff
+#define MATCH_MIPS_EHB 0x00301013
+#define MASK_MIPS_EHB 0xffffffff
+#define MATCH_MIPS_IHB 0x00101013
+#define MASK_MIPS_IHB 0xffffffff
+#define MATCH_MIPS_PAUSE 0x00501013
+#define MASK_MIPS_PAUSE 0xffffffff
+#define MATCH_MIPS_PREF 0x0000000b
+#define MASK_MIPS_PREF 0xe000707f
/* Unprivileged Counter/Timers CSR addresses. */
#define CSR_CYCLE 0xc00
#define CSR_TIME 0xc01
@@ -3895,6 +3914,7 @@
#define CSR_MTVEC 0x305
#define CSR_MCOUNTEREN 0x306
#define CSR_MSTATUSH 0x310
+#define CSR_MEDELEGH 0x312
#define CSR_MSCRATCH 0x340
#define CSR_MEPC 0x341
#define CSR_MCAUSE 0x342
@@ -4085,6 +4105,7 @@
#define CSR_HIE 0x604
#define CSR_HCOUNTEREN 0x606
#define CSR_HGEIE 0x607
+#define CSR_HEDELEGH 0x612
#define CSR_HTVAL 0x643
#define CSR_HIP 0x644
#define CSR_HVIP 0x645
@@ -4945,6 +4966,16 @@ DECLARE_INSN(ssamoswap_w, MATCH_SSAMOSWAP_W, MASK_SSAMOSWAP_W)
DECLARE_INSN(ssamoswap_d, MATCH_SSAMOSWAP_D, MASK_SSAMOSWAP_D)
/* Zicfilp instructions. */
DECLARE_INSN(lpad, MATCH_LPAD, MASK_LPAD)
+/* MIPS custom instructions. */
+DECLARE_INSN(mips_ccmov, MATCH_MIPS_CCMOV, MASK_MIPS_CCMOV)
+DECLARE_INSN(mips_lwp, MATCH_MIPS_LWP, MASK_MIPS_LWP)
+DECLARE_INSN(mips_ldp, MATCH_MIPS_LDP, MASK_MIPS_LDP)
+DECLARE_INSN(mips_swp, MATCH_MIPS_SWP, MASK_MIPS_SWP)
+DECLARE_INSN(mips_sdp, MATCH_MIPS_SDP, MASK_MIPS_SDP)
+DECLARE_INSN(mips_ehb, MATCH_MIPS_EHB, MASK_MIPS_EHB)
+DECLARE_INSN(mips_ihb, MATCH_MIPS_IHB, MASK_MIPS_IHB)
+DECLARE_INSN(mips_pause, MATCH_MIPS_PAUSE, MASK_MIPS_PAUSE)
+DECLARE_INSN(mips_pref, MATCH_MIPS_PREF, MASK_MIPS_PREF)
#endif /* DECLARE_INSN */
#ifdef DECLARE_CSR
/* Unprivileged Counter/Timers CSRs. */
@@ -5033,6 +5064,7 @@ DECLARE_CSR(mconfigptr, CSR_MCONFIGPTR, CSR_CLASS_I, PRIV_SPEC_CLASS_1P12, PRIV_
DECLARE_CSR(mstatus, CSR_MSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(misa, CSR_MISA, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(medeleg, CSR_MEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(medelegh, CSR_MEDELEGH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P13, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(mideleg, CSR_MIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(mie, CSR_MIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(mtvec, CSR_MTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
@@ -5224,6 +5256,7 @@ DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRI
/* Privileged Hypervisor CSRs. */
DECLARE_CSR(hstatus, CSR_HSTATUS, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(hedeleg, CSR_HEDELEG, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hedelegh, CSR_HEDELEGH, CSR_CLASS_H_32, PRIV_SPEC_CLASS_1P13, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(hideleg, CSR_HIDELEG, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(hie, CSR_HIE, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(hcounteren, CSR_HCOUNTEREN, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h
index d76bcdb..c5dd546 100644
--- a/include/opcode/riscv.h
+++ b/include/opcode/riscv.h
@@ -132,6 +132,15 @@ static inline unsigned int riscv_insn_length (insn_t insn)
((RV_X(x, 25, 1)) | (RV_X(x, 20, 5) << 1) | (RV_IMM_SIGN_N(x, 20, 5) << 5))
#define EXTRACT_CV_SIMD_UIMM6(x) \
((RV_X(x, 25, 1)) | (RV_X(x, 20, 5) << 1))
+/* Vendor-specific (MIPS) extract macros. */
+#define EXTRACT_MIPS_LWP_IMM(x) \
+ (RV_X(x, 22, 5) << 2)
+#define EXTRACT_MIPS_LDP_IMM(x) \
+ (RV_X(x, 23, 4) << 3)
+#define EXTRACT_MIPS_SWP_IMM(x) \
+ ((RV_X(x, 25, 2) << 5) | (RV_X(x, 9, 3) << 2))
+#define EXTRACT_MIPS_SDP_IMM(x) \
+ ((RV_X(x, 25, 2) << 5) | (RV_X(x, 10, 2) << 3))
#define ENCODE_ITYPE_IMM(x) \
(RV_X(x, 0, 12) << 20)
@@ -200,6 +209,15 @@ static inline unsigned int riscv_insn_length (insn_t insn)
((RV_X(x, 0, 1) << 25) | (RV_X(x, 1, 5) << 20))
#define ENCODE_CV_SIMD_UIMM6(x) \
((RV_X(x, 0, 1) << 25) | (RV_X(x, 1, 5) << 20))
+/* Vendor-specific (MIPS) encode macros. */
+#define ENCODE_MIPS_LWP_IMM(x) \
+ (RV_X(x, 2, 5) << 22)
+#define ENCODE_MIPS_LDP_IMM(x) \
+ (RV_X(x, 3, 4) << 23)
+#define ENCODE_MIPS_SWP_IMM(x) \
+ ((RV_X(x, 5, 2) << 25) | (RV_X(x, 2, 3) << 9))
+#define ENCODE_MIPS_SDP_IMM(x) \
+ ((RV_X(x, 5, 2) << 25) | (RV_X(x, 3, 2) << 10))
#define VALID_ITYPE_IMM(x) (EXTRACT_ITYPE_IMM(ENCODE_ITYPE_IMM(x)) == (x))
#define VALID_STYPE_IMM(x) (EXTRACT_STYPE_IMM(ENCODE_STYPE_IMM(x)) == (x))
@@ -383,6 +401,24 @@ static inline unsigned int riscv_insn_length (insn_t insn)
#define OP_MASK_XSO1 0x1
#define OP_SH_XSO1 26
+/* MIPS fields. */
+#define OP_MASK_MIPS_IMM9 0x1ff
+#define OP_SH_MIPS_IMM9 20
+#define OP_MASK_MIPS_HINT 0x1f
+#define OP_SH_MIPS_HINT 7
+#define OP_MASK_MIPS_LWP_OFFSET 0x1f
+#define OP_SH_MIPS_LWP_OFFSET 22
+#define OP_MASK_MIPS_LDP_OFFSET 0xf
+#define OP_SH_MIPS_LDP_OFFSET 23
+#define OP_MASK_MIPS_SWP_OFFSET9 0x7
+#define OP_SH_MIPS_SWP_OFFSET9 9
+#define OP_MASK_MIPS_SWP_OFFSET25 0x3
+#define OP_SH_MIPS_SWP_OFFSET25 25
+#define OP_MASK_MIPS_SDP_OFFSET10 0x3
+#define OP_SH_MIPS_SDP_OFFSET10 10
+#define OP_MASK_MIPS_SDP_OFFSET25 0x3
+#define OP_SH_MIPS_SDP_OFFSET25 25
+
/* ABI names for selected x-registers. */
#define X_RA 1
@@ -563,6 +599,10 @@ enum riscv_insn_class
INSN_CLASS_XSFVQMACCQOQ,
INSN_CLASS_XSFVQMACCDOD,
INSN_CLASS_XSFVFNRCLIPXFQF,
+ INSN_CLASS_XMIPSCBOP,
+ INSN_CLASS_XMIPSCMOV,
+ INSN_CLASS_XMIPSEXECTL,
+ INSN_CLASS_XMIPSLSP,
};
/* This structure holds information for a particular instruction. */
diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 277b8fd..9c3158a 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -513,6 +513,11 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
print (info->stream, dis_style_immediate, "0");
break;
+ case 'r':
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_gpr_names[EXTRACT_OPERAND (RS3, l)]);
+ break;
+
case 's':
if ((l & MASK_JALR) == MATCH_JALR)
maybe_print_address (pd, rs1, EXTRACT_ITYPE_IMM (l), 0);
@@ -881,6 +886,37 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
break;
}
break;
+ case 'm': /* Vendor-specific (MIPS) operands. */
+ switch (*++oparg)
+ {
+ case '@':
+ print (info->stream, dis_style_register, "0x%x",
+ (unsigned) EXTRACT_OPERAND (MIPS_HINT, l));
+ break;
+ case '#':
+ print (info->stream, dis_style_register, "0x%x",
+ (unsigned) EXTRACT_OPERAND (MIPS_IMM9, l));
+ break;
+ case '$':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_LDP_IMM (l));
+ break;
+ case '%':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_LWP_IMM (l));
+ break;
+ case '^':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_SDP_IMM (l));
+ break;
+ case '&':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_SWP_IMM (l));
+ break;
+ default:
+ goto undefined_modifier;
+ }
+ break;
default:
goto undefined_modifier;
}
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index 6f49fdb..340d125 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -532,6 +532,10 @@ const struct riscv_opcode riscv_opcodes[] =
{"la.tls.gd", 0, INSN_CLASS_I, "d,A", 0, (int) M_LA_TLS_GD, NULL, INSN_MACRO },
{"la.tls.ie", 0, INSN_CLASS_I, "d,A", 0, (int) M_LA_TLS_IE, match_rd_nonzero, INSN_MACRO },
{"neg", 0, INSN_CLASS_I, "d,t", MATCH_SUB, MASK_SUB|MASK_RS1, match_opcode, INSN_ALIAS }, /* sub 0 */
+/* Put MIPS custom instructions: mips.ehb, mips.ihb, and mips.pause before slli. */
+{"mips.ehb", 0, INSN_CLASS_XMIPSEXECTL, "", MATCH_MIPS_EHB, MASK_MIPS_EHB, match_opcode, 0 },
+{"mips.ihb", 0, INSN_CLASS_XMIPSEXECTL, "", MATCH_MIPS_IHB, MASK_MIPS_IHB, match_opcode, 0 },
+{"mips.pause", 0, INSN_CLASS_XMIPSEXECTL, "", MATCH_MIPS_PAUSE, MASK_MIPS_PAUSE, match_opcode, 0 },
{"slli", 0, INSN_CLASS_C, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
{"slli", 0, INSN_CLASS_I, "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, 0 },
{"sll", 0, INSN_CLASS_C, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
@@ -3522,6 +3526,14 @@ const struct riscv_opcode riscv_opcodes[] =
{"sf.vfnrclip.xu.f.qf", 0, INSN_CLASS_XSFVFNRCLIPXFQF, "Vd,Vt,S", MATCH_SFVFNRCLIPXUFQF, MASK_SFVFNRCLIPXUFQF, match_opcode, 0},
{"sf.vfnrclip.x.f.qf", 0, INSN_CLASS_XSFVFNRCLIPXFQF, "Vd,Vt,S", MATCH_SFVFNRCLIPXFQF, MASK_SFVFNRCLIPXFQF, match_opcode, 0},
+/* MIPS custom instructions. */
+{"mips.ccmov", 0, INSN_CLASS_XMIPSCMOV, "d,t,s,r", MATCH_MIPS_CCMOV, MASK_MIPS_CCMOV, match_opcode, 0},
+{"mips.ldp", 0, INSN_CLASS_XMIPSLSP, "d,r,Xm$(s)", MATCH_MIPS_LDP, MASK_MIPS_LDP, match_opcode, 0 },
+{"mips.lwp", 0, INSN_CLASS_XMIPSLSP, "d,r,Xm%(s)", MATCH_MIPS_LWP, MASK_MIPS_LWP, match_opcode, 0 },
+{"mips.pref", 0, INSN_CLASS_XMIPSCBOP, "Xm@,Xm#(s)", MATCH_MIPS_PREF, MASK_MIPS_PREF, match_opcode, 0 },
+{"mips.sdp", 0, INSN_CLASS_XMIPSLSP, "t,r,Xm^(s)", MATCH_MIPS_SDP, MASK_MIPS_SDP, match_opcode, 0 },
+{"mips.swp", 0, INSN_CLASS_XMIPSLSP, "t,r,Xm&(s)", MATCH_MIPS_SWP, MASK_MIPS_SWP, match_opcode, 0 },
+
/* Terminate the list. */
{0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}
};