> As per: > , > the 'Zcf' extension does not exist on RV64. This is reflected on the > version 1.0.4-1 of the code size reduction specification: > . > > This commit prohibits the combination: RV64 (or any ISA with XLEN > 32) > and the 'Zcf' extension. > > bfd/ChangeLog: > > * elfxx-riscv.c (riscv_parse_check_conflicts): Prohibit > combination of RV64 and 'Zcf'. > > gas/ChangeLog: > > * testsuite/gas/riscv/march-fail-rv64i_zcf.d: New test. > * testsuite/gas/riscv/march-fail-rv64i_zcf.l: Likewise. > --- > bfd/elfxx-riscv.c | 7 +++++++ > gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d | 3 +++ > gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l | 2 ++ > 3 files changed, 12 insertions(+) > create mode 100644 gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d > create mode 100644 gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l > > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c > index ee96608358e8..eaf496649db1 100644 > --- a/bfd/elfxx-riscv.c > +++ b/bfd/elfxx-riscv.c > @@ -1946,6 +1946,13 @@ 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)) > { > diff --git a/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d > new file mode 100644 > index 000000000000..1b70a9e280f0 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d > @@ -0,0 +1,3 @@ > +#as: -march=rv64i_zcf > +#source: empty.s > +#error_output: march-fail-rv64i_zcf.l > diff --git a/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l > new file mode 100644 > index 000000000000..b9e07c64d52f > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l > @@ -0,0 +1,2 @@ > +.*Assembler messages: > +.*Error: .*rv64 does not support the `zcf' extension > -- > 2.41.0 LGTM, thanks for your work!