diff options
author | Nick Clifton <nickc@redhat.com> | 2023-08-02 09:23:36 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2023-08-02 09:23:36 +0100 |
commit | 675b9d612cc59446e84e2c6d89b45500cb603a8d (patch) | |
tree | ad4ae6b4b1f1f81aceb945f15c5c12ea2b379689 /bfd/elfxx-riscv.c | |
parent | 69c37f53e20dc3e0b3c179b511ff786db6ae114e (diff) | |
download | gdb-675b9d612cc59446e84e2c6d89b45500cb603a8d.zip gdb-675b9d612cc59446e84e2c6d89b45500cb603a8d.tar.gz gdb-675b9d612cc59446e84e2c6d89b45500cb603a8d.tar.bz2 |
2.41 Release sourcesbinutils-2_41-release
Diffstat (limited to 'bfd/elfxx-riscv.c')
-rw-r--r-- | bfd/elfxx-riscv.c | 84 |
1 files changed, 23 insertions, 61 deletions
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index ba51657..b34898a 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1132,8 +1132,6 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvl256b", "zvl128b", check_implicit_always}, {"zvl128b", "zvl64b", check_implicit_always}, {"zvl64b", "zvl32b", check_implicit_always}, - {"zcd", "d", check_implicit_always}, - {"zcf", "f", check_implicit_always}, {"zfa", "f", check_implicit_always}, {"d", "f", check_implicit_always}, {"zfh", "zfhmin", check_implicit_always}, @@ -1175,9 +1173,6 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvksg", "zvkg", check_implicit_always}, {"zvksc", "zvks", check_implicit_always}, {"zvksc", "zvbc", check_implicit_always}, - {"zcf", "zca", check_implicit_always}, - {"zcd", "zca", check_implicit_always}, - {"zcb", "zca", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1312,10 +1307,6 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvl32768b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl65536b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"ztso", ISA_SPEC_CLASS_DRAFT, 0, 1, 0 }, - {"zca", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, - {"zcb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, - {"zcf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, - {"zcd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {NULL, 0, 0, 0, 0} }; @@ -1951,13 +1942,6 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps) rps->error_handler (_("rv%d does not support the `q' extension"), xlen); no_conflict = false; } - if (riscv_lookup_subset (rps->subset_list, "zcf", &subset) - && xlen > 32) - { - rps->error_handler - (_("rv%d does not support the `zcf' extension"), xlen); - no_conflict = false; - } if (riscv_lookup_subset (rps->subset_list, "zfinx", &subset) && riscv_lookup_subset (rps->subset_list, "f", &subset)) { @@ -2403,16 +2387,13 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, case INSN_CLASS_Q: return riscv_subset_supports (rps, "q"); case INSN_CLASS_C: - return (riscv_subset_supports (rps, "c") - || riscv_subset_supports (rps, "zca")); + return riscv_subset_supports (rps, "c"); case INSN_CLASS_F_AND_C: return (riscv_subset_supports (rps, "f") - && (riscv_subset_supports (rps, "c") - || riscv_subset_supports (rps, "zcf"))); + && riscv_subset_supports (rps, "c")); case INSN_CLASS_D_AND_C: return (riscv_subset_supports (rps, "d") - && (riscv_subset_supports (rps, "c") - || riscv_subset_supports (rps, "zcd"))); + && riscv_subset_supports (rps, "c")); case INSN_CLASS_F_INX: return (riscv_subset_supports (rps, "f") || riscv_subset_supports (rps, "zfinx")); @@ -2501,6 +2482,10 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, return riscv_subset_supports (rps, "zvkg"); case INSN_CLASS_ZVKNED: return riscv_subset_supports (rps, "zvkned"); + case INSN_CLASS_ZVKNHA: + return riscv_subset_supports (rps, "zvknha"); + case INSN_CLASS_ZVKNHB: + return riscv_subset_supports (rps, "zvknhb"); case INSN_CLASS_ZVKNHA_OR_ZVKNHB: return (riscv_subset_supports (rps, "zvknha") || riscv_subset_supports (rps, "zvknhb")); @@ -2508,17 +2493,6 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, return riscv_subset_supports (rps, "zvksed"); case INSN_CLASS_ZVKSH: return riscv_subset_supports (rps, "zvksh"); - case INSN_CLASS_ZCB: - return riscv_subset_supports (rps, "zcb"); - case INSN_CLASS_ZCB_AND_ZBB: - return (riscv_subset_supports (rps, "zcb") - && riscv_subset_supports (rps, "zbb")); - case INSN_CLASS_ZCB_AND_ZBA: - return (riscv_subset_supports (rps, "zcb") - && riscv_subset_supports (rps, "zba")); - case INSN_CLASS_ZCB_AND_ZMMUL: - return (riscv_subset_supports (rps, "zcb") - && riscv_subset_supports (rps, "zmmul")); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2598,27 +2572,21 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, case INSN_CLASS_C: return "c"; case INSN_CLASS_F_AND_C: - if (!riscv_subset_supports (rps, "f")) - { - if (!riscv_subset_supports (rps, "c") - && !riscv_subset_supports (rps, "zcf")) - return _("f' and `c', or `f' and `zcf"); - else - return "f"; - } + if (!riscv_subset_supports (rps, "f") + && !riscv_subset_supports (rps, "c")) + return _("f' and `c"); + else if (!riscv_subset_supports (rps, "f")) + return "f"; else - return _("c' or `zcf"); + return "c"; case INSN_CLASS_D_AND_C: - if (!riscv_subset_supports (rps, "d")) - { - if (!riscv_subset_supports (rps, "c") - && !riscv_subset_supports (rps, "zcd")) - return _("d' and `c', or `d' and `zcd"); - else - return "d"; - } + if (!riscv_subset_supports (rps, "d") + && !riscv_subset_supports (rps, "c")) + return _("d' and `c"); + else if (!riscv_subset_supports (rps, "d")) + return "d"; else - return _("c' or `zcd"); + return "c"; case INSN_CLASS_F_INX: return _("f' or `zfinx"); case INSN_CLASS_D_INX: @@ -2721,20 +2689,14 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("zvkg"); case INSN_CLASS_ZVKNED: return _("zvkned"); - case INSN_CLASS_ZVKNHA_OR_ZVKNHB: - return _("zvknha' or `zvknhb"); + case INSN_CLASS_ZVKNHA: + return _("zvknha"); + case INSN_CLASS_ZVKNHB: + return _("zvknhb"); case INSN_CLASS_ZVKSED: return _("zvksed"); case INSN_CLASS_ZVKSH: return _("zvksh"); - case INSN_CLASS_ZCB: - return "zcb"; - case INSN_CLASS_ZCB_AND_ZBA: - return _("zcb' and `zba"); - case INSN_CLASS_ZCB_AND_ZBB: - return _("zcb' and `zbb"); - case INSN_CLASS_ZCB_AND_ZMMUL: - return _("zcb' and `zmmul', or `zcb' and `m"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: |