The LoongArch architecture (LoongArch) is an Instruction Set Architecture (ISA) that has a Reduced Instruction Set Computer (RISC) style. The documents are on https://loongson.github.io/LoongArch-Documentation/README-EN.html
The ELF ABI Documents are on: https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html The binutils has been merged into trunk: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=560b3fe208255ae909b4b1c88ba9c28b09043307 Note: We split -mabi= into -mabi=lp64d/f/s, the new options not support by upstream binutils yet, this GCC port requires the following patch applied to binutils to build. https://github.com/loongson/binutils-gdb/commit/aacb0bf860f02aa5a7dcb76dd0e392bf871c7586 (will be submitted to upstream after gcc side comfirmed) We have compiled more than 300 CLFS packages with this compiler. The CLFS are currently used on Cfarm machines gcc400 and gcc401. changelog: v1 -> v2 1. Split patch set. 2. Change some code style. 3. Add -mabi=lp64d/f/s options. 4. Change GLIBC_DYNAMIC_LINKER_LP64 name. v2 -> v3 1. Change some code style. 2. Bug fix. v3 -> v4 1. Change some code style. 2. Bug fix. 3. Delete some builtin macros. v4 -> v5 1. delete wrong insn zero_extendsidi2_internal. 2. Adjust some build options. 3. Change some .c files to .cc. v5 -> v6 1. Fix compilation issues. The generated files *.opt and *.h are generated to $(objdir). chenglulu (12): LoongArch Port: Regenerate configure LoongArch Port: gcc build LoongArch Port: Regenerate gcc/configure. LoongArch Port: Machine Decsription files. LoongArch Port: Machine description C files and .h files. LoongArch Port: Builtin functions. LoongArch Port: Builtin macros. LoongArch Port: libgcc LoongArch Port: Regenerate libgcc/configure. LoongArch Port: libgomp LoongArch Port: gcc/testsuite LoongArch Port: Add doc. config/picflag.m4 | 3 + configure | 10 +- configure.ac | 10 +- contrib/config-list.mk | 5 +- contrib/gcc_update | 2 + .../config/loongarch/loongarch-common.cc | 73 + gcc/config.gcc | 410 +- gcc/config/host-linux.cc | 2 + gcc/config/loongarch/constraints.md | 212 + gcc/config/loongarch/generic.md | 132 + gcc/config/loongarch/genopts/genstr.sh | 91 + .../loongarch/genopts/loongarch-strings | 58 + gcc/config/loongarch/genopts/loongarch.opt.in | 189 + gcc/config/loongarch/gnu-user.h | 84 + gcc/config/loongarch/la464.md | 132 + gcc/config/loongarch/larchintrin.h | 413 ++ gcc/config/loongarch/linux.h | 50 + gcc/config/loongarch/loongarch-builtins.cc | 511 ++ gcc/config/loongarch/loongarch-c.cc | 109 + gcc/config/loongarch/loongarch-cpu.cc | 206 + gcc/config/loongarch/loongarch-cpu.h | 30 + gcc/config/loongarch/loongarch-def.c | 164 + gcc/config/loongarch/loongarch-def.h | 151 + gcc/config/loongarch/loongarch-driver.cc | 187 + gcc/config/loongarch/loongarch-driver.h | 69 + gcc/config/loongarch/loongarch-ftypes.def | 106 + gcc/config/loongarch/loongarch-modes.def | 29 + gcc/config/loongarch/loongarch-opts.cc | 580 ++ gcc/config/loongarch/loongarch-opts.h | 86 + gcc/config/loongarch/loongarch-protos.h | 241 + gcc/config/loongarch/loongarch-str.h | 57 + gcc/config/loongarch/loongarch-tune.h | 72 + gcc/config/loongarch/loongarch.cc | 6330 +++++++++++++++++ gcc/config/loongarch/loongarch.h | 1271 ++++ gcc/config/loongarch/loongarch.md | 3702 ++++++++++ gcc/config/loongarch/loongarch.opt | 189 + gcc/config/loongarch/predicates.md | 553 ++ gcc/config/loongarch/sync.md | 574 ++ gcc/config/loongarch/t-linux | 53 + gcc/config/loongarch/t-loongarch | 68 + gcc/configure | 66 +- gcc/configure.ac | 33 +- gcc/doc/install.texi | 47 +- gcc/doc/invoke.texi | 201 + gcc/doc/md.texi | 55 + gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C | 2 +- gcc/testsuite/g++.old-deja/g++.abi/ptrmem.C | 2 +- gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C | 2 +- gcc/testsuite/gcc.dg/20020312-2.c | 2 + gcc/testsuite/gcc.dg/loop-8.c | 2 +- .../torture/stackalign/builtin-apply-2.c | 2 +- gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c | 2 +- .../gcc.target/loongarch/loongarch.exp | 40 + .../gcc.target/loongarch/tst-asm-const.c | 16 + gcc/testsuite/go.test/go-test.exp | 3 + gcc/testsuite/lib/target-supports.exp | 14 + libgcc/config.host | 28 +- libgcc/config/loongarch/crtfastmath.c | 52 + libgcc/config/loongarch/crti.S | 43 + libgcc/config/loongarch/crtn.S | 39 + libgcc/config/loongarch/linux-unwind.h | 80 + libgcc/config/loongarch/sfp-machine.h | 152 + libgcc/config/loongarch/t-crtstuff | 5 + libgcc/config/loongarch/t-loongarch | 7 + libgcc/config/loongarch/t-loongarch64 | 1 + libgcc/config/loongarch/t-softfp-tf | 3 + libgcc/configure | 5 +- libgcc/configure.ac | 2 +- libgomp/configure.tgt | 4 + 69 files changed, 18096 insertions(+), 28 deletions(-) create mode 100644 gcc/common/config/loongarch/loongarch-common.cc create mode 100644 gcc/config/loongarch/constraints.md create mode 100644 gcc/config/loongarch/generic.md create mode 100755 gcc/config/loongarch/genopts/genstr.sh create mode 100644 gcc/config/loongarch/genopts/loongarch-strings create mode 100644 gcc/config/loongarch/genopts/loongarch.opt.in create mode 100644 gcc/config/loongarch/gnu-user.h create mode 100644 gcc/config/loongarch/la464.md create mode 100644 gcc/config/loongarch/larchintrin.h create mode 100644 gcc/config/loongarch/linux.h create mode 100644 gcc/config/loongarch/loongarch-builtins.cc create mode 100644 gcc/config/loongarch/loongarch-c.cc create mode 100644 gcc/config/loongarch/loongarch-cpu.cc create mode 100644 gcc/config/loongarch/loongarch-cpu.h create mode 100644 gcc/config/loongarch/loongarch-def.c create mode 100644 gcc/config/loongarch/loongarch-def.h create mode 100644 gcc/config/loongarch/loongarch-driver.cc create mode 100644 gcc/config/loongarch/loongarch-driver.h create mode 100644 gcc/config/loongarch/loongarch-ftypes.def create mode 100644 gcc/config/loongarch/loongarch-modes.def create mode 100644 gcc/config/loongarch/loongarch-opts.cc create mode 100644 gcc/config/loongarch/loongarch-opts.h create mode 100644 gcc/config/loongarch/loongarch-protos.h create mode 100644 gcc/config/loongarch/loongarch-str.h create mode 100644 gcc/config/loongarch/loongarch-tune.h create mode 100644 gcc/config/loongarch/loongarch.cc create mode 100644 gcc/config/loongarch/loongarch.h create mode 100644 gcc/config/loongarch/loongarch.md create mode 100644 gcc/config/loongarch/loongarch.opt create mode 100644 gcc/config/loongarch/predicates.md create mode 100644 gcc/config/loongarch/sync.md create mode 100644 gcc/config/loongarch/t-linux create mode 100644 gcc/config/loongarch/t-loongarch create mode 100644 gcc/testsuite/gcc.target/loongarch/loongarch.exp create mode 100644 gcc/testsuite/gcc.target/loongarch/tst-asm-const.c create mode 100644 libgcc/config/loongarch/crtfastmath.c create mode 100644 libgcc/config/loongarch/crti.S create mode 100644 libgcc/config/loongarch/crtn.S create mode 100644 libgcc/config/loongarch/linux-unwind.h create mode 100644 libgcc/config/loongarch/sfp-machine.h create mode 100644 libgcc/config/loongarch/t-crtstuff create mode 100644 libgcc/config/loongarch/t-loongarch create mode 100644 libgcc/config/loongarch/t-loongarch64 create mode 100644 libgcc/config/loongarch/t-softfp-tf -- 2.27.0