[PATCH 0/6] Add support for nanoMIPS architecture
Tsing
lei.wang@oss.cipunited.com
Fri Jul 17 10:38:52 GMT 2026
From: tsing <lei.wang@oss.cipunited.com>
This series of patches mainly provides support for the nanomips architecture in the Gas, BFD and Opcodes.
tsing (6):
Gas changes for nanoMIPS support.
BFD changes for nanoMIPS support.
Opcodes changes for nanoMIPS support.
Readelf for nanoMIPS.
Add nanoMIPS documentation.
Add nanoMIPS tests.
bfd/Makefile.am | 17 +
bfd/Makefile.in | 20 +
bfd/archures.c | 5 +
bfd/bfd-in2.h | 72 +
bfd/config.bfd | 11 +
bfd/configure | 4 +
bfd/configure.ac | 4 +
bfd/cpu-nanomips.c | 61 +
bfd/elf-bfd.h | 1 +
bfd/elfnn-nanomips.c | 1535 ++
bfd/elfxx-nanomips.c | 449 +
bfd/elfxx-nanomips.h | 46 +
bfd/libbfd.h | 67 +
bfd/reloc.c | 138 +
bfd/targets.c | 11 +
binutils/doc/binutils.texi | 7 +
binutils/readelf.c | 422 +
binutils/testsuite/binutils-all/objdump.exp | 3 +-
config/mt-nanomips | 3 +
configure | 9 +
configure.ac | 9 +
gas/Makefile.am | 2 +
gas/Makefile.in | 5 +
gas/config.in | 9 +
gas/config/obj-elf.h | 5 +
gas/config/tc-nanomips.c | 11667 ++++++++++++++++
gas/config/tc-nanomips.h | 187 +
gas/configure | 54 +
gas/configure.ac | 45 +
gas/configure.tgt | 5 +
gas/doc/all.texi | 1 +
gas/doc/as.texi | 189 +
gas/doc/c-nanomips-aliases.texi | 1527 ++
gas/doc/c-nanomips-macros.texi | 3136 +++++
gas/doc/c-nanomips.texi | 1499 ++
gas/read.c | 2 +-
gas/testsuite/gas/all/gas.exp | 6 +-
gas/testsuite/gas/cfi/cfi-nanomips-1.d | 29 +
gas/testsuite/gas/cfi/cfi.exp | 5 +-
gas/testsuite/gas/elf/elf.exp | 6 +
gas/testsuite/gas/elf/section2.e-nanomips | 8 +
gas/testsuite/gas/nanomips/abi32-pic.d | 94 +
gas/testsuite/gas/nanomips/abi32-pic.s | 38 +
gas/testsuite/gas/nanomips/abi32.d | 79 +
gas/testsuite/gas/nanomips/abi32.s | 70 +
gas/testsuite/gas/nanomips/abs.d | 17 +
gas/testsuite/gas/nanomips/abs.s | 4 +
gas/testsuite/gas/nanomips/add.d | 24 +
gas/testsuite/gas/nanomips/add.s | 13 +
gas/testsuite/gas/nanomips/addu.d | 23 +
gas/testsuite/gas/nanomips/addu.s | 9 +
gas/testsuite/gas/nanomips/aent.d | 13 +
gas/testsuite/gas/nanomips/aent.s | 16 +
gas/testsuite/gas/nanomips/and.d | 35 +
gas/testsuite/gas/nanomips/and.s | 23 +
gas/testsuite/gas/nanomips/baddata1.l | 3 +
gas/testsuite/gas/nanomips/baddata1.s | 9 +
gas/testsuite/gas/nanomips/beq.d | 39 +
gas/testsuite/gas/nanomips/beq.s | 22 +
gas/testsuite/gas/nanomips/bge.d | 53 +
gas/testsuite/gas/nanomips/bge.s | 24 +
gas/testsuite/gas/nanomips/bgeu.d | 44 +
gas/testsuite/gas/nanomips/bgeu.s | 21 +
gas/testsuite/gas/nanomips/blt.d | 52 +
gas/testsuite/gas/nanomips/blt.s | 24 +
gas/testsuite/gas/nanomips/bltu.d | 44 +
gas/testsuite/gas/nanomips/bltu.s | 21 +
.../gas/nanomips/cp0-names-numeric.d | 44 +
gas/testsuite/gas/nanomips/cp0-names.d | 43 +
gas/testsuite/gas/nanomips/cp0-names.s | 38 +
.../gas/nanomips/cp0sel-names-numeric.d | 236 +
gas/testsuite/gas/nanomips/cp0sel-names.d | 235 +
gas/testsuite/gas/nanomips/cp0sel-names.s | 236 +
gas/testsuite/gas/nanomips/ctc.d | 87 +
gas/testsuite/gas/nanomips/ctc.s | 66 +
gas/testsuite/gas/nanomips/debug-dis.d | 18 +
gas/testsuite/gas/nanomips/debug-dis.s | 12 +
gas/testsuite/gas/nanomips/div.d | 45 +
gas/testsuite/gas/nanomips/div.s | 31 +
gas/testsuite/gas/nanomips/empty.s | 3 +
gas/testsuite/gas/nanomips/expr-const.d | 11 +
gas/testsuite/gas/nanomips/expr-const.s | 24 +
gas/testsuite/gas/nanomips/expr-ill.l | 7 +
gas/testsuite/gas/nanomips/expr-ill.s | 20 +
gas/testsuite/gas/nanomips/expr-sym.d | 71 +
gas/testsuite/gas/nanomips/expr-sym.s | 36 +
gas/testsuite/gas/nanomips/expr-vol.d | 17 +
gas/testsuite/gas/nanomips/expr-vol.s | 17 +
gas/testsuite/gas/nanomips/expr1.d | 18 +
gas/testsuite/gas/nanomips/expr1.s | 9 +
.../gas/nanomips/gpr-names-numeric.d | 44 +
gas/testsuite/gas/nanomips/gpr-names.d | 44 +
gas/testsuite/gas/nanomips/gpr-names.s | 38 +
.../gas/nanomips/hwr-names-numeric.d | 59 +
.../gas/nanomips/hwr-names-numeric.s | 53 +
.../gas/nanomips/insn-suffix-error.l | 20 +
.../gas/nanomips/insn-suffix-error.s | 22 +
gas/testsuite/gas/nanomips/isa-errors.l | 7 +
gas/testsuite/gas/nanomips/isa-errors.s | 9 +
gas/testsuite/gas/nanomips/jal.d | 21 +
gas/testsuite/gas/nanomips/jal.s | 11 +
gas/testsuite/gas/nanomips/jalr.l | 3 +
gas/testsuite/gas/nanomips/jalr.s | 15 +
gas/testsuite/gas/nanomips/la-lpic-mclarge.d | 116 +
gas/testsuite/gas/nanomips/la-lpic-mcmedium.d | 116 +
gas/testsuite/gas/nanomips/la-mclarge-pcrel.d | 116 +
gas/testsuite/gas/nanomips/la-mclarge.d | 115 +
gas/testsuite/gas/nanomips/la-pcrel.d | 116 +
gas/testsuite/gas/nanomips/la-pic-mclarge.d | 116 +
gas/testsuite/gas/nanomips/la-pic.d | 156 +
gas/testsuite/gas/nanomips/la.d | 115 +
gas/testsuite/gas/nanomips/la.s | 82 +
gas/testsuite/gas/nanomips/lb.d | 176 +
gas/testsuite/gas/nanomips/lb.s | 72 +
gas/testsuite/gas/nanomips/ld-reloc.d | 86 +
gas/testsuite/gas/nanomips/ld-reloc.s | 34 +
gas/testsuite/gas/nanomips/ld.d | 174 +
gas/testsuite/gas/nanomips/ld.s | 145 +
gas/testsuite/gas/nanomips/li.d | 16 +
gas/testsuite/gas/nanomips/li.s | 9 +
gas/testsuite/gas/nanomips/lif-pic.d | 16 +
gas/testsuite/gas/nanomips/lifloat-mem.d | 20 +
gas/testsuite/gas/nanomips/lifloat-nms.d | 20 +
gas/testsuite/gas/nanomips/lifloat.d | 15 +
gas/testsuite/gas/nanomips/lifloat.s | 6 +
gas/testsuite/gas/nanomips/lineno.d | 86 +
gas/testsuite/gas/nanomips/lineno.s | 54 +
gas/testsuite/gas/nanomips/linkrelax-dis.d | 30 +
gas/testsuite/gas/nanomips/linkrelax-dis.s | 14 +
gas/testsuite/gas/nanomips/linkrelax-relocs.d | 79 +
gas/testsuite/gas/nanomips/linkrelax.d | 17 +
gas/testsuite/gas/nanomips/linkrelax.s | 54 +
gas/testsuite/gas/nanomips/mcmodel-err.l | 3 +
gas/testsuite/gas/nanomips/mcmodel-err.s | 2 +
gas/testsuite/gas/nanomips/mcmodel.l | 0
gas/testsuite/gas/nanomips/mcmodel.s | 3 +
gas/testsuite/gas/nanomips/move.d | 14 +
gas/testsuite/gas/nanomips/move.s | 3 +
gas/testsuite/gas/nanomips/mt-ase.d | 651 +
gas/testsuite/gas/nanomips/mt-ase.s | 656 +
gas/testsuite/gas/nanomips/mvh.d | 16 +
gas/testsuite/gas/nanomips/mvh.s | 12 +
gas/testsuite/gas/nanomips/nanomips-error.l | 26 +
gas/testsuite/gas/nanomips/nanomips-error.s | 46 +
.../gas/nanomips/nanomips-exc-noalias.d | 254 +
gas/testsuite/gas/nanomips/nanomips-exc.s | 282 +
gas/testsuite/gas/nanomips/nanomips-exc32.d | 198 +
gas/testsuite/gas/nanomips/nanomips-subset.d | 37 +
gas/testsuite/gas/nanomips/nanomips-subset.s | 23 +
gas/testsuite/gas/nanomips/nanomips.d | 2317 +++
gas/testsuite/gas/nanomips/nanomips.exp | 557 +
gas/testsuite/gas/nanomips/nanomips.l | 10 +
gas/testsuite/gas/nanomips/nanomips.s | 2034 +++
gas/testsuite/gas/nanomips/nanomips32.d | 2309 +++
.../gas/nanomips/nanomips64@nanomips.d | 2318 +++
.../gas/nanomips/nanomips64@nanomips32.d | 2309 +++
.../gas/nanomips/nms@la-lpic-mclarge.d | 206 +
.../gas/nanomips/nms@la-lpic-mcmedium.d | 206 +
.../gas/nanomips/nms@la-mclarge-pcrel.d | 206 +
gas/testsuite/gas/nanomips/nms@la-mclarge.d | 206 +
gas/testsuite/gas/nanomips/nms@la-pcrel.d | 176 +
.../gas/nanomips/nms@la-pic-mclarge.d | 156 +
gas/testsuite/gas/nanomips/nms@la.d | 175 +
gas/testsuite/gas/nanomips/nms@lif-pic-mem.d | 23 +
gas/testsuite/gas/nanomips/nms@lif-pic.d | 21 +
gas/testsuite/gas/nanomips/nms@save-error.l | 10 +
gas/testsuite/gas/nanomips/nms@save-error.s | 26 +
.../gas/nanomips/nolinkrelax-relocs.d | 14 +
gas/testsuite/gas/nanomips/nolinkrelax.d | 17 +
gas/testsuite/gas/nanomips/rol.d | 28 +
gas/testsuite/gas/nanomips/rol.s | 22 +
gas/testsuite/gas/nanomips/save-error.l | 16 +
gas/testsuite/gas/nanomips/save-error.s | 42 +
gas/testsuite/gas/nanomips/save-relocs.d | 22 +
gas/testsuite/gas/nanomips/save.d | 64 +
gas/testsuite/gas/nanomips/save.s | 94 +
gas/testsuite/gas/nanomips/sb.d | 175 +
gas/testsuite/gas/nanomips/sb.s | 71 +
include/dis-asm.h | 1 +
include/elf/common.h | 1 +
include/elf/nanomips.h | 211 +
include/opcode/nanomips.h | 1238 ++
ld/configure.tgt | 2 +
ld/gen-doc.texi | 1 +
ld/ld.texi | 37 +
opcodes/Makefile.am | 2 +
opcodes/Makefile.in | 4 +
opcodes/configure | 1 +
opcodes/configure.ac | 1 +
opcodes/disassemble.c | 14 +
opcodes/disassemble.h | 1 +
opcodes/nanomips-dis.c | 1394 ++
opcodes/nanomips-formats.h | 265 +
opcodes/nanomips-opc.c | 807 ++
194 files changed, 45967 insertions(+), 5 deletions(-)
create mode 100644 bfd/cpu-nanomips.c
create mode 100644 bfd/elfnn-nanomips.c
create mode 100644 bfd/elfxx-nanomips.c
create mode 100644 bfd/elfxx-nanomips.h
create mode 100644 config/mt-nanomips
create mode 100644 gas/config/tc-nanomips.c
create mode 100644 gas/config/tc-nanomips.h
create mode 100644 gas/doc/c-nanomips-aliases.texi
create mode 100644 gas/doc/c-nanomips-macros.texi
create mode 100644 gas/doc/c-nanomips.texi
create mode 100644 gas/testsuite/gas/cfi/cfi-nanomips-1.d
create mode 100644 gas/testsuite/gas/elf/section2.e-nanomips
create mode 100644 gas/testsuite/gas/nanomips/abi32-pic.d
create mode 100644 gas/testsuite/gas/nanomips/abi32-pic.s
create mode 100644 gas/testsuite/gas/nanomips/abi32.d
create mode 100644 gas/testsuite/gas/nanomips/abi32.s
create mode 100644 gas/testsuite/gas/nanomips/abs.d
create mode 100644 gas/testsuite/gas/nanomips/abs.s
create mode 100644 gas/testsuite/gas/nanomips/add.d
create mode 100644 gas/testsuite/gas/nanomips/add.s
create mode 100644 gas/testsuite/gas/nanomips/addu.d
create mode 100644 gas/testsuite/gas/nanomips/addu.s
create mode 100644 gas/testsuite/gas/nanomips/aent.d
create mode 100644 gas/testsuite/gas/nanomips/aent.s
create mode 100644 gas/testsuite/gas/nanomips/and.d
create mode 100644 gas/testsuite/gas/nanomips/and.s
create mode 100644 gas/testsuite/gas/nanomips/baddata1.l
create mode 100644 gas/testsuite/gas/nanomips/baddata1.s
create mode 100644 gas/testsuite/gas/nanomips/beq.d
create mode 100644 gas/testsuite/gas/nanomips/beq.s
create mode 100644 gas/testsuite/gas/nanomips/bge.d
create mode 100644 gas/testsuite/gas/nanomips/bge.s
create mode 100644 gas/testsuite/gas/nanomips/bgeu.d
create mode 100644 gas/testsuite/gas/nanomips/bgeu.s
create mode 100644 gas/testsuite/gas/nanomips/blt.d
create mode 100644 gas/testsuite/gas/nanomips/blt.s
create mode 100644 gas/testsuite/gas/nanomips/bltu.d
create mode 100644 gas/testsuite/gas/nanomips/bltu.s
create mode 100644 gas/testsuite/gas/nanomips/cp0-names-numeric.d
create mode 100644 gas/testsuite/gas/nanomips/cp0-names.d
create mode 100644 gas/testsuite/gas/nanomips/cp0-names.s
create mode 100644 gas/testsuite/gas/nanomips/cp0sel-names-numeric.d
create mode 100644 gas/testsuite/gas/nanomips/cp0sel-names.d
create mode 100644 gas/testsuite/gas/nanomips/cp0sel-names.s
create mode 100644 gas/testsuite/gas/nanomips/ctc.d
create mode 100644 gas/testsuite/gas/nanomips/ctc.s
create mode 100644 gas/testsuite/gas/nanomips/debug-dis.d
create mode 100644 gas/testsuite/gas/nanomips/debug-dis.s
create mode 100644 gas/testsuite/gas/nanomips/div.d
create mode 100644 gas/testsuite/gas/nanomips/div.s
create mode 100644 gas/testsuite/gas/nanomips/empty.s
create mode 100644 gas/testsuite/gas/nanomips/expr-const.d
create mode 100644 gas/testsuite/gas/nanomips/expr-const.s
create mode 100644 gas/testsuite/gas/nanomips/expr-ill.l
create mode 100644 gas/testsuite/gas/nanomips/expr-ill.s
create mode 100644 gas/testsuite/gas/nanomips/expr-sym.d
create mode 100644 gas/testsuite/gas/nanomips/expr-sym.s
create mode 100644 gas/testsuite/gas/nanomips/expr-vol.d
create mode 100644 gas/testsuite/gas/nanomips/expr-vol.s
create mode 100644 gas/testsuite/gas/nanomips/expr1.d
create mode 100644 gas/testsuite/gas/nanomips/expr1.s
create mode 100644 gas/testsuite/gas/nanomips/gpr-names-numeric.d
create mode 100644 gas/testsuite/gas/nanomips/gpr-names.d
create mode 100644 gas/testsuite/gas/nanomips/gpr-names.s
create mode 100644 gas/testsuite/gas/nanomips/hwr-names-numeric.d
create mode 100644 gas/testsuite/gas/nanomips/hwr-names-numeric.s
create mode 100644 gas/testsuite/gas/nanomips/insn-suffix-error.l
create mode 100644 gas/testsuite/gas/nanomips/insn-suffix-error.s
create mode 100644 gas/testsuite/gas/nanomips/isa-errors.l
create mode 100644 gas/testsuite/gas/nanomips/isa-errors.s
create mode 100644 gas/testsuite/gas/nanomips/jal.d
create mode 100644 gas/testsuite/gas/nanomips/jal.s
create mode 100644 gas/testsuite/gas/nanomips/jalr.l
create mode 100644 gas/testsuite/gas/nanomips/jalr.s
create mode 100644 gas/testsuite/gas/nanomips/la-lpic-mclarge.d
create mode 100644 gas/testsuite/gas/nanomips/la-lpic-mcmedium.d
create mode 100644 gas/testsuite/gas/nanomips/la-mclarge-pcrel.d
create mode 100644 gas/testsuite/gas/nanomips/la-mclarge.d
create mode 100644 gas/testsuite/gas/nanomips/la-pcrel.d
create mode 100644 gas/testsuite/gas/nanomips/la-pic-mclarge.d
create mode 100644 gas/testsuite/gas/nanomips/la-pic.d
create mode 100644 gas/testsuite/gas/nanomips/la.d
create mode 100644 gas/testsuite/gas/nanomips/la.s
create mode 100644 gas/testsuite/gas/nanomips/lb.d
create mode 100644 gas/testsuite/gas/nanomips/lb.s
create mode 100644 gas/testsuite/gas/nanomips/ld-reloc.d
create mode 100644 gas/testsuite/gas/nanomips/ld-reloc.s
create mode 100644 gas/testsuite/gas/nanomips/ld.d
create mode 100644 gas/testsuite/gas/nanomips/ld.s
create mode 100644 gas/testsuite/gas/nanomips/li.d
create mode 100644 gas/testsuite/gas/nanomips/li.s
create mode 100644 gas/testsuite/gas/nanomips/lif-pic.d
create mode 100644 gas/testsuite/gas/nanomips/lifloat-mem.d
create mode 100644 gas/testsuite/gas/nanomips/lifloat-nms.d
create mode 100644 gas/testsuite/gas/nanomips/lifloat.d
create mode 100644 gas/testsuite/gas/nanomips/lifloat.s
create mode 100644 gas/testsuite/gas/nanomips/lineno.d
create mode 100644 gas/testsuite/gas/nanomips/lineno.s
create mode 100644 gas/testsuite/gas/nanomips/linkrelax-dis.d
create mode 100644 gas/testsuite/gas/nanomips/linkrelax-dis.s
create mode 100644 gas/testsuite/gas/nanomips/linkrelax-relocs.d
create mode 100644 gas/testsuite/gas/nanomips/linkrelax.d
create mode 100644 gas/testsuite/gas/nanomips/linkrelax.s
create mode 100644 gas/testsuite/gas/nanomips/mcmodel-err.l
create mode 100644 gas/testsuite/gas/nanomips/mcmodel-err.s
create mode 100644 gas/testsuite/gas/nanomips/mcmodel.l
create mode 100644 gas/testsuite/gas/nanomips/mcmodel.s
create mode 100644 gas/testsuite/gas/nanomips/move.d
create mode 100644 gas/testsuite/gas/nanomips/move.s
create mode 100644 gas/testsuite/gas/nanomips/mt-ase.d
create mode 100644 gas/testsuite/gas/nanomips/mt-ase.s
create mode 100644 gas/testsuite/gas/nanomips/mvh.d
create mode 100644 gas/testsuite/gas/nanomips/mvh.s
create mode 100644 gas/testsuite/gas/nanomips/nanomips-error.l
create mode 100644 gas/testsuite/gas/nanomips/nanomips-error.s
create mode 100644 gas/testsuite/gas/nanomips/nanomips-exc-noalias.d
create mode 100644 gas/testsuite/gas/nanomips/nanomips-exc.s
create mode 100644 gas/testsuite/gas/nanomips/nanomips-exc32.d
create mode 100644 gas/testsuite/gas/nanomips/nanomips-subset.d
create mode 100644 gas/testsuite/gas/nanomips/nanomips-subset.s
create mode 100644 gas/testsuite/gas/nanomips/nanomips.d
create mode 100644 gas/testsuite/gas/nanomips/nanomips.exp
create mode 100644 gas/testsuite/gas/nanomips/nanomips.l
create mode 100644 gas/testsuite/gas/nanomips/nanomips.s
create mode 100644 gas/testsuite/gas/nanomips/nanomips32.d
create mode 100644 gas/testsuite/gas/nanomips/nanomips64@nanomips.d
create mode 100644 gas/testsuite/gas/nanomips/nanomips64@nanomips32.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la-lpic-mclarge.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la-lpic-mcmedium.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la-mclarge-pcrel.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la-mclarge.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la-pcrel.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la-pic-mclarge.d
create mode 100644 gas/testsuite/gas/nanomips/nms@la.d
create mode 100644 gas/testsuite/gas/nanomips/nms@lif-pic-mem.d
create mode 100644 gas/testsuite/gas/nanomips/nms@lif-pic.d
create mode 100644 gas/testsuite/gas/nanomips/nms@save-error.l
create mode 100644 gas/testsuite/gas/nanomips/nms@save-error.s
create mode 100644 gas/testsuite/gas/nanomips/nolinkrelax-relocs.d
create mode 100644 gas/testsuite/gas/nanomips/nolinkrelax.d
create mode 100644 gas/testsuite/gas/nanomips/rol.d
create mode 100644 gas/testsuite/gas/nanomips/rol.s
create mode 100644 gas/testsuite/gas/nanomips/save-error.l
create mode 100644 gas/testsuite/gas/nanomips/save-error.s
create mode 100644 gas/testsuite/gas/nanomips/save-relocs.d
create mode 100644 gas/testsuite/gas/nanomips/save.d
create mode 100644 gas/testsuite/gas/nanomips/save.s
create mode 100644 gas/testsuite/gas/nanomips/sb.d
create mode 100644 gas/testsuite/gas/nanomips/sb.s
create mode 100644 include/elf/nanomips.h
create mode 100644 include/opcode/nanomips.h
create mode 100644 opcodes/nanomips-dis.c
create mode 100644 opcodes/nanomips-formats.h
create mode 100644 opcodes/nanomips-opc.c
--
2.39.5
More information about the Binutils
mailing list