public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v2 00/14] LoongArch: Add loongarch32 and ilp32 abi
@ 2023-08-09 11:46 Jiajie Chen
  2023-08-09 11:46 ` [PATCH v2 01/14] LoongArch: Introduce loongarch32 target Jiajie Chen
                   ` (13 more replies)
  0 siblings, 14 replies; 17+ messages in thread
From: Jiajie Chen @ 2023-08-09 11:46 UTC (permalink / raw)
  To: gcc-patches; +Cc: xry111, xuchenghua, Jiajie Chen

The patch series add loongarch32 and ilp32 abi support to gcc. One can
build libgcc, libatomic and glibc etc and generate a complete
loongarch32-unknown-linux-gnu-toolchain with minimal patches at:

- binutils: https://github.com/jiegec/binutils-gdb/tree/loongarch32
- glibc: https://github.com/jiegec/glibc/tree/loongarch32
- crosstool-ng: https://github.com/jiegec/crosstool-ng/tree/loongarch32

We will wait for folks at Loongson to complete abi documentation of
ilp32d abi.

Changes since v1:

- Can build a complete toolchain with glibc
- Fix sizeof(long double) in ilp32 abi
- Fix ftintrz generation for loongarch32

Full changes:

Jiajie Chen (14):
  LoongArch: Introduce loongarch32 target
  LoongArch: Fix default ISA setting
  LoongArch: Fix SI division for loongarch32 target
  LoongArch: Fix movgr2frh.w operand order
  LoongArch: Fix 64-bit move for loongarch32 target
  LoongArch: Fix 64-bit immediate move for loongarch32 target
  LoongArch: Fix signed 32-bit overflow for loongarch32 target
  LoongArch: Disable SF/DF -> unsigned DI expand in loongarch32
  LoongArch: Add -march=loongarch64 to tests with -mabi=lp64d
  LoongArch: Forbid ADDRESS_REG_REG in loongarch32
  LoongArch: Mark am* instructions as LA64-only
  LoongArch: Set long double width to 128 in la32
  LoongArch: Fix ilp32 detection
  LoongArch: Allow ftintrz for DF->DI in loongarch32

 contrib/config-list.mk                        |  1 +
 gcc/config.gcc                                | 61 ++++++++++++++++---
 .../loongarch/genopts/loongarch-strings       |  5 ++
 gcc/config/loongarch/genopts/loongarch.opt.in | 12 ++++
 gcc/config/loongarch/gnu-user.h               |  3 +
 gcc/config/loongarch/linux.h                  |  8 ++-
 gcc/config/loongarch/loongarch-c.cc           | 12 ++++
 gcc/config/loongarch/loongarch-def.c          | 33 ++++++++++
 gcc/config/loongarch/loongarch-def.h          | 25 +++++---
 gcc/config/loongarch/loongarch-driver.h       |  4 ++
 gcc/config/loongarch/loongarch-opts.cc        | 27 ++++++--
 gcc/config/loongarch/loongarch-opts.h         | 20 ++++--
 gcc/config/loongarch/loongarch-str.h          |  5 ++
 gcc/config/loongarch/loongarch.cc             |  7 ++-
 gcc/config/loongarch/loongarch.h              |  2 +-
 gcc/config/loongarch/loongarch.md             | 39 ++++++------
 gcc/config/loongarch/loongarch.opt            | 12 ++++
 gcc/config/loongarch/sync.md                  | 10 +--
 gcc/config/loongarch/t-linux                  | 16 ++++-
 gcc/testsuite/g++.target/loongarch/bytepick.C |  2 +-
 gcc/testsuite/g++.target/loongarch/pr106828.C |  2 +-
 .../gcc.target/loongarch/add-const.c          |  2 +-
 gcc/testsuite/gcc.target/loongarch/arch-1.c   |  5 ++
 gcc/testsuite/gcc.target/loongarch/arch-2.c   |  5 ++
 .../gcc.target/loongarch/array-ldx.c          |  6 ++
 .../gcc.target/loongarch/attr-model-1.c       |  2 +-
 .../gcc.target/loongarch/attr-model-2.c       |  2 +-
 .../gcc.target/loongarch/flt-abi-isa-1.c      |  2 +-
 gcc/testsuite/gcc.target/loongarch/fscaleb.c  |  2 +-
 .../gcc.target/loongarch/ftint-no-inexact.c   |  2 +-
 gcc/testsuite/gcc.target/loongarch/ftint.c    |  2 +-
 .../gcc.target/loongarch/func-call-1.c        |  2 +-
 .../gcc.target/loongarch/func-call-2.c        |  2 +-
 .../gcc.target/loongarch/func-call-3.c        |  2 +-
 .../gcc.target/loongarch/func-call-4.c        |  2 +-
 .../gcc.target/loongarch/func-call-5.c        |  2 +-
 .../gcc.target/loongarch/func-call-6.c        |  2 +-
 .../gcc.target/loongarch/func-call-7.c        |  2 +-
 .../gcc.target/loongarch/func-call-8.c        |  2 +-
 .../loongarch/func-call-extreme-1.c           |  2 +-
 .../loongarch/func-call-extreme-2.c           |  2 +-
 .../gcc.target/loongarch/func-call-medium-1.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-2.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-3.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-4.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-5.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-6.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-7.c |  2 +-
 .../gcc.target/loongarch/func-call-medium-8.c |  2 +-
 gcc/testsuite/gcc.target/loongarch/imm-load.c |  2 +-
 .../gcc.target/loongarch/imm-load1.c          |  2 +-
 gcc/testsuite/gcc.target/loongarch/mulw_d_w.c |  2 +-
 .../gcc.target/loongarch/pr109465-1.c         |  2 +-
 .../gcc.target/loongarch/pr109465-2.c         |  2 +-
 .../gcc.target/loongarch/pr109465-3.c         |  2 +-
 .../gcc.target/loongarch/prolog-opt.c         |  2 +-
 .../loongarch/relocs-symbol-noaddend.c        |  2 +-
 .../loongarch/zero-size-field-pass.c          |  2 +-
 .../loongarch/zero-size-field-ret.c           |  2 +-
 libitm/config/loongarch/asm.h                 |  2 +-
 60 files changed, 298 insertions(+), 96 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/loongarch/arch-1.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/arch-2.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/array-ldx.c

-- 
2.41.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-08-09 14:08 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-09 11:46 [PATCH v2 00/14] LoongArch: Add loongarch32 and ilp32 abi Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 01/14] LoongArch: Introduce loongarch32 target Jiajie Chen
2023-08-09 14:03   ` Xi Ruoyao
2023-08-09 11:46 ` [PATCH v2 02/14] LoongArch: Fix default ISA setting Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 03/14] LoongArch: Fix SI division for loongarch32 target Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 04/14] LoongArch: Fix movgr2frh.w operand order Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 05/14] LoongArch: Fix 64-bit move for loongarch32 target Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 06/14] LoongArch: Fix 64-bit immediate " Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 07/14] LoongArch: Fix signed 32-bit overflow " Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 08/14] LoongArch: Disable SF/DF -> unsigned DI expand in loongarch32 Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 09/14] LoongArch: Add -march=loongarch64 to tests with -mabi=lp64d Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 10/14] LoongArch: Forbid ADDRESS_REG_REG in loongarch32 Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 11/14] LoongArch: Mark am* instructions as LA64-only Jiajie Chen
2023-08-09 14:08   ` Xi Ruoyao
2023-08-09 11:46 ` [PATCH v2 12/14] LoongArch: Set long double width to 128 in la32 Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 13/14] LoongArch: Fix ilp32 detection Jiajie Chen
2023-08-09 11:46 ` [PATCH v2 14/14] LoongArch: Allow ftintrz for DF->DI in loongarch32 Jiajie Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).