[PATCH LoongArch v3 0/5] Add LoongArch support.

Chenghua Xu xuchenghua@loongson.cn
Fri Oct 22 08:39:22 GMT 2021


This is the v3 version of patch set to support LoongArch.
The v1 patch are on:
https://sourceware.org/pipermail/binutils/2021-August/117697.html
The v2 patch are on:
https://sourceware.org/pipermail/binutils/2021-September/117976.html

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 testsuite status:
                === binutils Summary ===

# of expected passes            230
# of unsupported tests          9

                === gas Summary ===

# of expected passes            256
# of expected failures          2
# of unsupported tests          3

                === ld Summary ===

# of expected passes            1147
# of unexpected failures        13
# of unexpected successes       1
# of expected failures          7
# of unsupported tests          345

The patch set changelog:
v1 -> v2
1. Change code style.
2. Add gas and ld testsuite.
3. Build with -fsanitize=address,undefined, Fix failure.
4. Change '64/ lib64' to 64 in LIBPATH_SUFFI.
5. Some bug fix.

v2 -> v3
1. Add elf32 emulparams.
2. Change -mabi=lp32 to -mabi=ilp32.
3. Some bug fix.



liuzhensong (5):
  bfd: LoongArch BFD support.
  opcodes: LoongArch Opcodes Port.
  binutils: LoongArch Binutils Port.
  gas: LoongArch GAS Port.
  ld: LoongArch LD Port.

 bfd/Makefile.am                               |   17 +-
 bfd/Makefile.in                               |   21 +-
 bfd/archures.c                                |    5 +
 bfd/bfd-in2.h                                 |   48 +
 bfd/config.bfd                                |   15 +
 bfd/configure                                 |    2 +
 bfd/configure.ac                              |    2 +
 bfd/cpu-loongarch.c                           |   61 +
 bfd/elf-bfd.h                                 |    9 +
 bfd/elf.c                                     |  109 +
 bfd/elfnn-loongarch.c                         | 3267 +++++++++++++++++
 bfd/elfxx-loongarch.c                         |  661 ++++
 bfd/elfxx-loongarch.h                         |   31 +
 bfd/libbfd.h                                  |   43 +
 bfd/po/BLD-POTFILES.in                        |    2 +
 bfd/po/SRC-POTFILES.in                        |    1 +
 bfd/reloc.c                                   |   89 +
 bfd/targets.c                                 |    8 +
 binutils/NEWS                                 |    2 +
 binutils/readelf.c                            |   24 +
 binutils/testsuite/binutils-all/objdump.exp   |    1 +
 gas/Makefile.am                               |   17 +-
 gas/Makefile.in                               |   28 +-
 gas/NEWS                                      |    2 +
 gas/config/loongarch-lex-wrapper.c            |   20 +
 gas/config/loongarch-lex.h                    |   34 +
 gas/config/loongarch-lex.l                    |   61 +
 gas/config/loongarch-parse.y                  |  441 +++
 gas/config/tc-loongarch.c                     | 1381 +++++++
 gas/config/tc-loongarch.h                     |   91 +
 gas/configure                                 |   17 +
 gas/configure.ac                              |   13 +
 gas/configure.tgt                             |    6 +-
 gas/doc/as.texi                               |   31 +
 gas/doc/c-loongarch.texi                      |   39 +
 gas/po/POTFILES.in                            |    1 +
 gas/testsuite/gas/all/gas.exp                 |    5 +-
 gas/testsuite/gas/elf/elf.exp                 |    1 +
 gas/testsuite/gas/loongarch/4opt_op.d         |   70 +
 gas/testsuite/gas/loongarch/4opt_op.s         |   61 +
 gas/testsuite/gas/loongarch/fix_op.d          |  134 +
 gas/testsuite/gas/loongarch/fix_op.s          |  125 +
 gas/testsuite/gas/loongarch/float_op.d        |   85 +
 gas/testsuite/gas/loongarch/float_op.s        |   76 +
 gas/testsuite/gas/loongarch/imm_op.d          |   48 +
 gas/testsuite/gas/loongarch/imm_op.s          |   39 +
 gas/testsuite/gas/loongarch/jmp_op.d          |   68 +
 gas/testsuite/gas/loongarch/jmp_op.s          |   22 +
 gas/testsuite/gas/loongarch/load_store_op.d   |  178 +
 gas/testsuite/gas/loongarch/load_store_op.s   |  169 +
 gas/testsuite/gas/loongarch/loongarch.exp     |   23 +
 gas/testsuite/gas/loongarch/macro_op.d        |  733 ++++
 gas/testsuite/gas/loongarch/macro_op.s        |   29 +
 gas/testsuite/gas/loongarch/nop.d             |   10 +
 gas/testsuite/gas/loongarch/nop.s             |    2 +
 gas/testsuite/gas/loongarch/privilege_op.d    |   44 +
 gas/testsuite/gas/loongarch/privilege_op.s    |   35 +
 gas/testsuite/gas/loongarch/syscall.d         |   11 +
 gas/testsuite/gas/loongarch/syscall.s         |    2 +
 gas/testsuite/lib/gas-defs.exp                |    4 +
 include/dis-asm.h                             |    1 +
 include/elf/common.h                          |   12 +-
 include/elf/loongarch.h                       |  119 +
 include/opcode/loongarch.h                    |  239 ++
 ld/Makefile.am                                |    4 +
 ld/Makefile.in                                |    5 +
 ld/NEWS                                       |    2 +
 ld/configure.tgt                              |    4 +
 ld/emulparams/elf32loongarch-defs.sh          |   36 +
 ld/emulparams/elf32loongarch.sh               |   11 +
 ld/emulparams/elf64loongarch-defs.sh          |   39 +
 ld/emulparams/elf64loongarch.sh               |   11 +
 ld/emultempl/loongarchelf.em                  |   87 +
 ld/po/BLD-POTFILES.in                         |    2 +
 ld/testsuite/ld-loongarch-elf/disas-jirl.d    |   14 +
 ld/testsuite/ld-loongarch-elf/disas-jirl.s    |    5 +
 ld/testsuite/ld-loongarch-elf/jmp_op.d        |   68 +
 ld/testsuite/ld-loongarch-elf/jmp_op.s        |   22 +
 .../ld-loongarch-elf/ld-loongarch-elf.exp     |   34 +
 ld/testsuite/ld-loongarch-elf/macro_op.d      |  732 ++++
 ld/testsuite/ld-loongarch-elf/macro_op.s      |   29 +
 ld/testsuite/ld-loongarch-elf/syscall-0.s     |    9 +
 ld/testsuite/ld-loongarch-elf/syscall-1.s     |   20 +
 ld/testsuite/ld-loongarch-elf/syscall.d       |    5 +
 ld/testsuite/ld-srec/srec.exp                 |    6 +
 ld/testsuite/ld-unique/pr21529.d              |    2 +-
 opcodes/Makefile.am                           |    3 +
 opcodes/Makefile.in                           |    6 +
 opcodes/configure                             |    1 +
 opcodes/configure.ac                          |    1 +
 opcodes/disassemble.c                         |    9 +
 opcodes/disassemble.h                         |    1 +
 opcodes/loongarch-coder.c                     |  472 +++
 opcodes/loongarch-dis.c                       |  342 ++
 opcodes/loongarch-opc.c                       |  814 ++++
 opcodes/po/POTFILES.in                        |    3 +
 96 files changed, 11735 insertions(+), 9 deletions(-)
 create mode 100644 bfd/cpu-loongarch.c
 create mode 100644 bfd/elfnn-loongarch.c
 create mode 100644 bfd/elfxx-loongarch.c
 create mode 100644 bfd/elfxx-loongarch.h
 create mode 100644 gas/config/loongarch-lex-wrapper.c
 create mode 100644 gas/config/loongarch-lex.h
 create mode 100644 gas/config/loongarch-lex.l
 create mode 100644 gas/config/loongarch-parse.y
 create mode 100644 gas/config/tc-loongarch.c
 create mode 100644 gas/config/tc-loongarch.h
 create mode 100644 gas/doc/c-loongarch.texi
 create mode 100644 gas/testsuite/gas/loongarch/4opt_op.d
 create mode 100644 gas/testsuite/gas/loongarch/4opt_op.s
 create mode 100644 gas/testsuite/gas/loongarch/fix_op.d
 create mode 100644 gas/testsuite/gas/loongarch/fix_op.s
 create mode 100644 gas/testsuite/gas/loongarch/float_op.d
 create mode 100644 gas/testsuite/gas/loongarch/float_op.s
 create mode 100644 gas/testsuite/gas/loongarch/imm_op.d
 create mode 100644 gas/testsuite/gas/loongarch/imm_op.s
 create mode 100644 gas/testsuite/gas/loongarch/jmp_op.d
 create mode 100644 gas/testsuite/gas/loongarch/jmp_op.s
 create mode 100644 gas/testsuite/gas/loongarch/load_store_op.d
 create mode 100644 gas/testsuite/gas/loongarch/load_store_op.s
 create mode 100644 gas/testsuite/gas/loongarch/loongarch.exp
 create mode 100644 gas/testsuite/gas/loongarch/macro_op.d
 create mode 100644 gas/testsuite/gas/loongarch/macro_op.s
 create mode 100644 gas/testsuite/gas/loongarch/nop.d
 create mode 100644 gas/testsuite/gas/loongarch/nop.s
 create mode 100644 gas/testsuite/gas/loongarch/privilege_op.d
 create mode 100644 gas/testsuite/gas/loongarch/privilege_op.s
 create mode 100644 gas/testsuite/gas/loongarch/syscall.d
 create mode 100644 gas/testsuite/gas/loongarch/syscall.s
 create mode 100644 include/elf/loongarch.h
 create mode 100644 include/opcode/loongarch.h
 create mode 100644 ld/emulparams/elf32loongarch-defs.sh
 create mode 100644 ld/emulparams/elf32loongarch.sh
 create mode 100644 ld/emulparams/elf64loongarch-defs.sh
 create mode 100644 ld/emulparams/elf64loongarch.sh
 create mode 100644 ld/emultempl/loongarchelf.em
 create mode 100644 ld/testsuite/ld-loongarch-elf/disas-jirl.d
 create mode 100644 ld/testsuite/ld-loongarch-elf/disas-jirl.s
 create mode 100644 ld/testsuite/ld-loongarch-elf/jmp_op.d
 create mode 100644 ld/testsuite/ld-loongarch-elf/jmp_op.s
 create mode 100644 ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
 create mode 100644 ld/testsuite/ld-loongarch-elf/macro_op.d
 create mode 100644 ld/testsuite/ld-loongarch-elf/macro_op.s
 create mode 100644 ld/testsuite/ld-loongarch-elf/syscall-0.s
 create mode 100644 ld/testsuite/ld-loongarch-elf/syscall-1.s
 create mode 100644 ld/testsuite/ld-loongarch-elf/syscall.d
 create mode 100644 opcodes/loongarch-coder.c
 create mode 100644 opcodes/loongarch-dis.c
 create mode 100644 opcodes/loongarch-opc.c

-- 
2.27.0



More information about the Binutils mailing list