aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/elfxx-riscv.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index 6b34c2f..e9852ef 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -2463,6 +2463,10 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
case INSN_CLASS_ZFH_AND_ZFA:
return riscv_subset_supports (rps, "zfh")
&& riscv_subset_supports (rps, "zfa");
+ case INSN_CLASS_ZFH_OR_ZVFH_AND_ZFA:
+ return (riscv_subset_supports (rps, "zfh")
+ || riscv_subset_supports (rps, "zvfh"))
+ && riscv_subset_supports (rps, "zfa");
case INSN_CLASS_ZBA:
return riscv_subset_supports (rps, "zba");
case INSN_CLASS_ZBB:
@@ -2704,6 +2708,17 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
return "zfh";
else
return "zfa";
+ case INSN_CLASS_ZFH_OR_ZVFH_AND_ZFA:
+ if (!riscv_subset_supports (rps, "zfa"))
+ {
+ if (!riscv_subset_supports (rps, "zfh")
+ && !riscv_subset_supports (rps, "zvfh"))
+ return _("zfh' and `zfa', or `zvfh' and `zfa");
+ else
+ return "zfa";
+ }
+ else
+ return _("zfh' or `zvfh");
case INSN_CLASS_ZBA:
return "zba";
case INSN_CLASS_ZBB: