Superseds https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636795.html.
Requires https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636946.html. Changes: - Rebase on top of "Add LoongarchV1.1 instructions support". - Not to translate loongarch-def.c C++. Use int64_t instead of HOST_WIDE_INT in loongarch-def.h. - In genopts, also generates cpucfg_useful_idx[] and N_CPUCFG_WORDS. Use decimals instead of hexidecimals for CPUCFG word index to make awk happy to perform numerical comparision. - Dump arch and feature info as comments in generated assembly if -fverbose-asm. It's helpful for testing and debugging. Xi Ruoyao (6): LoongArch: Fix internal error running "gcc -march=native" on LA664 LoongArch: genopts: Add infrastructure to generate code for new features in ISA evolution LoongArch: Add evolution features of base ISA revisions LoongArch: Take the advantage of -mdiv32 if it's enabled LoongArch: Don't emit dbar 0x700 if -mld-seq-sa LoongArch: Add fine-grained control for LAM_BH and LAMCAS gcc/config/loongarch/genopts/genstr.sh | 92 ++++++++++++++- gcc/config/loongarch/genopts/isa-evolution.in | 4 + .../loongarch/genopts/loongarch-strings | 1 + gcc/config/loongarch/genopts/loongarch.opt.in | 10 ++ gcc/config/loongarch/loongarch-cpu.cc | 105 +++++++++++------- gcc/config/loongarch/loongarch-cpucfg-map.h | 50 +++++++++ gcc/config/loongarch/loongarch-def.c | 1 + gcc/config/loongarch/loongarch-def.h | 12 ++ gcc/config/loongarch/loongarch-opts.cc | 3 + gcc/config/loongarch/loongarch-str.h | 10 +- gcc/config/loongarch/loongarch.cc | 35 +++++- gcc/config/loongarch/loongarch.md | 31 +++++- gcc/config/loongarch/loongarch.opt | 31 +++++- gcc/config/loongarch/sync.md | 25 +++-- gcc/config/loongarch/t-loongarch | 21 +++- .../gcc.target/loongarch/div-div32.c | 31 ++++++ .../gcc.target/loongarch/div-no-div32.c | 11 ++ 17 files changed, 403 insertions(+), 70 deletions(-) create mode 100644 gcc/config/loongarch/genopts/isa-evolution.in create mode 100644 gcc/config/loongarch/loongarch-cpucfg-map.h create mode 100644 gcc/testsuite/gcc.target/loongarch/div-div32.c create mode 100644 gcc/testsuite/gcc.target/loongarch/div-no-div32.c -- 2.42.1