diff options
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 @@ -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} }; |