]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Tie MUL and DIV masks to the M extension
authorDimitar Dimitrov <dimitar@dinux.eu>
Thu, 7 Nov 2024 18:13:02 +0000 (20:13 +0200)
committerDimitar Dimitrov <dimitar@dinux.eu>
Tue, 19 Nov 2024 17:08:15 +0000 (19:08 +0200)
commitc9530a0e24e35a6fdce91b2002b798f44b62fd44
tree07f00e1b168c1beb797d03cd25219e97a5996f80
parentceddd28d41f0b9cc797c3568544a114d60c1ba83
RISC-V: Tie MUL and DIV masks to the M extension

When configuring GCC for RV32EC with:
  ./configure                                     \
      --target=riscv32-none-elf                   \
      --with-multilib-generator="rv32ec-ilp32e--" \
      --with-abi=ilp32e                           \
      --with-arch=rv32ec

Then the build fails because division is erroneously left enabled:
   cc1: error: '-mdiv' requires '-march' to subsume the 'M' extension
   -fself-test: 8412281 pass(es) in 0.647173 seconds

Fix by disabling MASK_DIV if multiplication is not available and -mdiv
option has not been explicitly passed.

Tested the above RV32EC-only toolchain using the GNU simulator:
                 === gcc Summary ===

 # of expected passes            211635
 # of unexpected failures        3004
 # of expected failures          1061
 # of unresolved testcases       5651
 # of unsupported tests          18958

gcc/ChangeLog:

* config/riscv/riscv.cc (riscv_override_options_internal):
Set division option's default to disabled if multiplication
is not available.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
gcc/config/riscv/riscv.cc