[v4,00/12] Add LoongArch support.

Message ID 20211224092817.728490-1-chenglulu@loongson.cn
Headers
Series Add LoongArch support. |

Message

Lulu Cheng Dec. 24, 2021, 9:28 a.m. UTC
  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)


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.

Add LoongArch support.

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 +-
 .../config/loongarch/loongarch-common.c       |   63 +
 gcc/config.gcc                                |  400 +-
 gcc/config/host-linux.c                       |    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               |   78 +
 gcc/config/loongarch/la464.md                 |  132 +
 gcc/config/loongarch/larchintrin.h            |  413 ++
 gcc/config/loongarch/linux.h                  |   50 +
 gcc/config/loongarch/loongarch-builtins.c     |  511 ++
 gcc/config/loongarch/loongarch-c.c            |  111 +
 gcc/config/loongarch/loongarch-cpu.c          |  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.c       |  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.c         |  582 ++
 gcc/config/loongarch/loongarch-opts.h         |   86 +
 gcc/config/loongarch/loongarch-protos.h       |  242 +
 gcc/config/loongarch/loongarch-str.h          |   57 +
 gcc/config/loongarch/loongarch-tune.h         |   72 +
 gcc/config/loongarch/loongarch.c              | 6461 +++++++++++++++++
 gcc/config/loongarch/loongarch.h              | 1291 ++++
 gcc/config/loongarch/loongarch.md             | 3829 ++++++++++
 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              |   59 +
 gcc/configure                                 |   85 +-
 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/lib2funcs.c           |    0
 libgcc/config/loongarch/linux-unwind.h        |   80 +
 libgcc/config/loongarch/sfp-machine.h         |  152 +
 libgcc/config/loongarch/t-crtstuff            |    2 +
 libgcc/config/loongarch/t-elf                 |    3 +
 libgcc/config/loongarch/t-loongarch           |    9 +
 libgcc/config/loongarch/t-loongarch64         |    1 +
 libgcc/config/loongarch/t-softfp-tf           |    3 +
 libgcc/configure                              |    5 +-
 libgcc/configure.ac                           |    2 +-
 libgomp/configure.tgt                         |    4 +
 70 files changed, 18363 insertions(+), 28 deletions(-)
 create mode 100644 gcc/common/config/loongarch/loongarch-common.c
 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.c
 create mode 100644 gcc/config/loongarch/loongarch-c.c
 create mode 100644 gcc/config/loongarch/loongarch-cpu.c
 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.c
 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.c
 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.c
 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/lib2funcs.c
 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-elf
 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
  

Comments

Paul Hua Jan. 5, 2022, 2:13 p.m. UTC | #1
Hi all,

Ping?

By the way, the LoongArch machine is already connected to the Cfarm
and will be announced soon.
You can login through ssh.
ssh -l your-cfarm-user-name -p 25469 114.242.206.180


On Fri, Dec 24, 2021 at 5:28 PM chenglulu <chenglulu@loongson.cn> wrote:
>
> 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)
>
>
> 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.
>
> Add LoongArch support.
>
> 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 +-
>  .../config/loongarch/loongarch-common.c       |   63 +
>  gcc/config.gcc                                |  400 +-
>  gcc/config/host-linux.c                       |    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               |   78 +
>  gcc/config/loongarch/la464.md                 |  132 +
>  gcc/config/loongarch/larchintrin.h            |  413 ++
>  gcc/config/loongarch/linux.h                  |   50 +
>  gcc/config/loongarch/loongarch-builtins.c     |  511 ++
>  gcc/config/loongarch/loongarch-c.c            |  111 +
>  gcc/config/loongarch/loongarch-cpu.c          |  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.c       |  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.c         |  582 ++
>  gcc/config/loongarch/loongarch-opts.h         |   86 +
>  gcc/config/loongarch/loongarch-protos.h       |  242 +
>  gcc/config/loongarch/loongarch-str.h          |   57 +
>  gcc/config/loongarch/loongarch-tune.h         |   72 +
>  gcc/config/loongarch/loongarch.c              | 6461 +++++++++++++++++
>  gcc/config/loongarch/loongarch.h              | 1291 ++++
>  gcc/config/loongarch/loongarch.md             | 3829 ++++++++++
>  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              |   59 +
>  gcc/configure                                 |   85 +-
>  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/lib2funcs.c           |    0
>  libgcc/config/loongarch/linux-unwind.h        |   80 +
>  libgcc/config/loongarch/sfp-machine.h         |  152 +
>  libgcc/config/loongarch/t-crtstuff            |    2 +
>  libgcc/config/loongarch/t-elf                 |    3 +
>  libgcc/config/loongarch/t-loongarch           |    9 +
>  libgcc/config/loongarch/t-loongarch64         |    1 +
>  libgcc/config/loongarch/t-softfp-tf           |    3 +
>  libgcc/configure                              |    5 +-
>  libgcc/configure.ac                           |    2 +-
>  libgomp/configure.tgt                         |    4 +
>  70 files changed, 18363 insertions(+), 28 deletions(-)
>  create mode 100644 gcc/common/config/loongarch/loongarch-common.c
>  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.c
>  create mode 100644 gcc/config/loongarch/loongarch-c.c
>  create mode 100644 gcc/config/loongarch/loongarch-cpu.c
>  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.c
>  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.c
>  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.c
>  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/lib2funcs.c
>  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-elf
>  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
>