Add support for Andes NDS32:
BFD: * Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Add nds32 files. * Makefile.in: Regenerate. * archures.c (bfd_nds32_arch): Add nds32 target. * bfd-in2.h: Regenerate. * config.bfd (nds32*le-*-linux): Add bfd_elf32_nds32lelin_vec and bfd_elf32_nds32belin_vec. (nds32*be-*-linux*): Likewise. (nds32*le-*-*): Add bfd_elf32_nds32le_vec and bfd_elf32_nds32be_vec. (nds32*be-*-*): Likewise. * configure.in (bfd_elf32_nds32be_vec): Add elf32-nds32.lo. (bfd_elf32_nds32le_vec): Likewise. (bfd_elf32_nds32belin_vec): Likewise. (bfd_elf32_nds32lelin_vec): Likewise. * configure: Regenerate. * cpu-nds32.c: New file for nds32. * elf-bfd.h: Add NDS32_ELF_DATA. * elf32-nds32.c: New file for nds32. * elf32-nds32.h: New file for nds32. * libbfd.h: Regenerate. * reloc.c: Add relocations for nds32. * targets.c (bfd_elf32_nds32be_vec): New declaration for nds32. (bfd_elf32_nds32le_vec): Likewise. (bfd_elf32_nds32belin_vec): Likewise. (bfd_elf32_nds32lelin_vec): Likewise. BINUTILS: * readelf.c: Include elf/nds32.h (guess_is_rela): Add case for EM_NDS32. (dump_relocations): Add case for EM_NDS32. (decode_NDS32_machine_flags): New. (get_machine_flags): Add case for EM_NDS32. (is_32bit_abs_reloc): Likewise. (is_16bit_abs_reloc): Likewise. (process_nds32_specific): New. (process_arch_specific): Add case for EM_NDS32. * NEWS: Announce Andes nds32 support. * MAINTAINERS: Add nds32 maintainers. TESTSUITE: * binutils-all/objdump.exp: Add NDS32 cpu. * binutils-all/readelf.r: Skip extra reloc created by NDS32. GAS: * Makefile.am (TARGET_CPU_CFILES): Add config/tc-nds32.c. (TARGET_CPU_HFILES): Add config/tc-nds32.h. * Makefile.in: Regenerate. * configure.in (nds32): Add nds32 target extension config support. * configure.tgt : Add case for nds32-*-elf* and nds32-*-linux*. * configure: Regenerate. * config/tc-nds32.c: New file for nds32. * config/tc-nds32.h: New file for nds32. * doc/Makefile.am (CPU_DOCS): Add c-nds32.texi. * doc/Makefile.in: Regenerate. * doc/as.texinfo: Add nds32 options. * doc/all.texi: Set NDS32. * doc/c-nds32.texi: New file dor nds32 document. * NEWS: Announce Andes nds32 support. TESTSUITE: * gas/all/gas.exp: Add expected failures for NDS32. * gas/elf/elf.exp: Likewise. * gas/lns/lns.exp: Use alternate test. * gas/macros/irp.d: Skip for NDS32. * gas/macros/macros.exp: Skip some tests for the NDS32. * gas/macros/rept.d: Skip for NDS32. * gas/macros/test3.d: Skip for NDS32. * gas/nds32: New directory. * gas/nds32/alu-1.s: New test. * gas/nds32/alu-1.d: Likewise. * gas/nds32/alu-2.s: Likewise. * gas/nds32/alu-2.d: Likewise. * gas/nds32/br-1.d: Likewise. * gas/nds32/br-1.s: Likewise. * gas/nds32/br-2.d: Likewise. * gas/nds32/br-2.s: Likewise. * gas/nds32/ji-jr.d: Likewise. * gas/nds32/ji-jr.s: Likewise. * gas/nds32/ls.d: Likewise. * gas/nds32/ls.s: Likewise. * gas/nds32/lsi.d: Likewise. * gas/nds32/lsi.s: Likewise. * gas/nds32/to-16bit-v1.d: Likewise. * gas/nds32/to-16bit-v1.s: Likewise. * gas/nds32/to-16bit-v2.d: Likewise. * gas/nds32/to-16bit-v2.s: Likewise. * gas/nds32/to-16bit-v3.d: Likewise. * gas/nds32/to-16bit-v3.s: Likewise. * gas/nds32/nds32.exp: New test driver. LD: * Makefile.am (ALL_EMULATION_SOURCES): Add nds32 target. * Makefile.in: Regenerate. * configure.tgt: Add case for nds32*le-*-elf*, nds32*be-*-elf*, nds32*le-*-linux-gnu*, and nds32*be-*-linux-gnu*. * emulparams/nds32belf.sh: New file for nds32. * emulparams/nds32belf_linux.sh: Likewise. * emulparams/nds32belf16m.sh: Likewise. * emulparams/nds32elf.sh: Likewise. * emulparams/nds32elf_linux.sh: Likewise. * emulparams/nds32elf16m.sh: Likewise. * emultempl/nds32elf.em: Likewise. * scripttempl/nds32elf.sc}: Likewise. * gen-doc.texi: Set NDS32. * ld.texinfo: Set NDS32. * NEWS: Announce Andes nds32 support. TESTSUITE: * lib/ld-lib.exp: Add NDS32 to list of targets that do not support shared library generation. * ld-nds32: New directory. * ld-nds32/branch.d: New test. * ld-nds32/branch.ld: New test. * ld-nds32/branch.s: New test. * ld-nds32/diff.d: New test. * ld-nds32/diff.ld: New test. * ld-nds32/diff.s: New test. * ld-nds32/gp.d: New test. * ld-nds32/gp.ld: New test. * ld-nds32/gp.s: New test. * ld-nds32/imm.d: New test. * ld-nds32/imm.ld: New test. * ld-nds32/imm.s: New test. * ld-nds32/imm_symbol.s: New test. * ld-nds32/relax_jmp.d: New test. * ld-nds32/relax_jmp.ld: New test. * ld-nds32/relax_jmp.s: New test. * ld-nds32/relax_load_store.d: New test. * ld-nds32/relax_load_store.ld: New test. * ld-nds32/relax_load_store.s: New test. * ld-nds32/nds32.exp: New file. OPCODES: * Makefile.am (TARGET_LIBOPCODES_CFILES): Add nds32-asm.c and nds32-dis.c. * Makefile.in: Regenerate. * configure.in: Add case for bfd_nds32_arch. * configure: Regenerate. * disassemble.c (ARCH_nds32): Define. * nds32-asm.c: New file for nds32. * nds32-asm.h: New file for nds32. * nds32-dis.c: New file for nds32. * nds32-opc.h: New file for nds32. INCLUDE: * dis-asm.h (print_insn_nds32): Add nds32 target. * elf/nds32.h: New file for nds32. * opcode/nds32.h: New file for nds32.
This commit is contained in:
parent
8a48ac9579
commit
35c081572f
119 changed files with 28734 additions and 18 deletions
268
bfd/reloc.c
268
bfd/reloc.c
|
@ -3838,6 +3838,274 @@ ENUMDOC
|
|||
For PIC.
|
||||
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_20
|
||||
ENUMDOC
|
||||
NDS32 relocs.
|
||||
This is a 20 bit absolute address.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_9_PCREL
|
||||
ENUMDOC
|
||||
This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_WORD_9_PCREL
|
||||
ENUMDOC
|
||||
This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_15_PCREL
|
||||
ENUMDOC
|
||||
This is an 15-bit reloc with the right 1 bit assumed to be 0.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_17_PCREL
|
||||
ENUMDOC
|
||||
This is an 17-bit reloc with the right 1 bit assumed to be 0.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_25_PCREL
|
||||
ENUMDOC
|
||||
This is a 25-bit reloc with the right 1 bit assumed to be 0.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_HI20
|
||||
ENUMDOC
|
||||
This is a 20-bit reloc containing the high 20 bits of an address
|
||||
used with the lower 12 bits
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_LO12S3
|
||||
ENUMDOC
|
||||
This is a 12-bit reloc containing the lower 12 bits of an address
|
||||
then shift right by 3. This is used with ldi,sdi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_LO12S2
|
||||
ENUMDOC
|
||||
This is a 12-bit reloc containing the lower 12 bits of an address
|
||||
then shift left by 2. This is used with lwi,swi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_LO12S1
|
||||
ENUMDOC
|
||||
This is a 12-bit reloc containing the lower 12 bits of an address
|
||||
then shift left by 1. This is used with lhi,shi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_LO12S0
|
||||
ENUMDOC
|
||||
This is a 12-bit reloc containing the lower 12 bits of an address
|
||||
then shift left by 0. This is used with lbisbi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_LO12S0_ORI
|
||||
ENUMDOC
|
||||
This is a 12-bit reloc containing the lower 12 bits of an address
|
||||
then shift left by 0. This is only used with branch relaxations
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA15S3
|
||||
ENUMDOC
|
||||
This is a 15-bit reloc containing the small data area 18-bit signed offset
|
||||
and shift left by 3 for use in ldi, sdi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA15S2
|
||||
ENUMDOC
|
||||
This is a 15-bit reloc containing the small data area 17-bit signed offset
|
||||
and shift left by 2 for use in lwi, swi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA15S1
|
||||
ENUMDOC
|
||||
This is a 15-bit reloc containing the small data area 16-bit signed offset
|
||||
and shift left by 1 for use in lhi, shi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA15S0
|
||||
ENUMDOC
|
||||
This is a 15-bit reloc containing the small data area 15-bit signed offset
|
||||
and shift left by 0 for use in lbi, sbi...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA16S3
|
||||
ENUMDOC
|
||||
This is a 16-bit reloc containing the small data area 16-bit signed offset
|
||||
and shift left by 3
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA17S2
|
||||
ENUMDOC
|
||||
This is a 17-bit reloc containing the small data area 17-bit signed offset
|
||||
and shift left by 2 for use in lwi.gp, swi.gp...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA18S1
|
||||
ENUMDOC
|
||||
This is a 18-bit reloc containing the small data area 18-bit signed offset
|
||||
and shift left by 1 for use in lhi.gp, shi.gp...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA19S0
|
||||
ENUMDOC
|
||||
This is a 19-bit reloc containing the small data area 19-bit signed offset
|
||||
and shift left by 0 for use in lbi.gp, sbi.gp...
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_GOT20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_9_PLTREL
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_25_PLTREL
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_COPY
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GLOB_DAT
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_JMP_SLOT
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_RELATIVE
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTOFF_HI20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTOFF_LO12
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTPC20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT_HI20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT_LO12
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTPC_HI20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTPC_LO12
|
||||
ENUMDOC
|
||||
for PIC
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_INSN16
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LABEL
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LONGCALL1
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LONGCALL2
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LONGCALL3
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LONGJUMP1
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LONGJUMP2
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LONGJUMP3
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LOADSTORE
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_9_FIXED
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_15_FIXED
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_17_FIXED
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_25_FIXED
|
||||
ENUMDOC
|
||||
for relax
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_PLTREL_HI20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLTREL_LO12
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLT_GOTREL_HI20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLT_GOTREL_LO12
|
||||
ENUMDOC
|
||||
for PIC
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA12S2_DP
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_SDA12S2_SP
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LO12S2_DP
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_LO12S2_SP
|
||||
ENUMDOC
|
||||
for floating point
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_DWARF2_OP1
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DWARF2_OP2
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DWARF2_LEB
|
||||
ENUMDOC
|
||||
for dwarf2 debug_line.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_UPDATE_TA
|
||||
ENUMDOC
|
||||
for eliminate 16-bit instructions
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_PLT_GOTREL_LO20
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLT_GOTREL_LO15
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLT_GOTREL_LO19
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT_LO15
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT_LO19
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTOFF_LO15
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTOFF_LO19
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT15S2
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT17S2
|
||||
ENUMDOC
|
||||
for PIC object relaxation
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_5
|
||||
ENUMDOC
|
||||
NDS32 relocs.
|
||||
This is a 5 bit absolute address.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_10_UPCREL
|
||||
ENUMDOC
|
||||
This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_SDA_FP7U2_RELA
|
||||
ENUMDOC
|
||||
If fp were omitted, fp can used as another gp.
|
||||
ENUM
|
||||
BFD_RELOC_NDS32_RELAX_ENTRY
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOT_SUFF
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_GOTOFF_SUFF
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLT_GOT_SUFF
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_MULCALL_SUFF
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PTR
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PTR_COUNT
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PTR_RESOLVED
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_PLTBLOCK
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_RELAX_REGION_BEGIN
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_RELAX_REGION_END
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_MINUEND
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_SUBTRAHEND
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DIFF8
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DIFF16
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DIFF32
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DIFF_ULEB128
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_25_ABS
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_DATA
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_TRAN
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_17IFC_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_NDS32_10IFCU_PCREL
|
||||
ENUMDOC
|
||||
relaxation relative relocation types
|
||||
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_V850_9_PCREL
|
||||
ENUMDOC
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue