mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-27 05:50:43 +00:00
* Makefile.am (ALL_MACHINES): Add cpu-tilegx.lo and cpu-tilepro.lo.
(ALL_MACHINE_CFILES): Add cpu-tilegx.c and cpu-tilepro.c. (BFD32_BACKENDS): Add elf32-tilegx.lo, elf32-tilepro.lo, and elfxx-tilegx.lo. (BFD32_BACKENDS_CFILES): Add elf32-tilegx.c elf32-tilepro.c, and elfxx-tilegx.c. (BFD64_BACKENDS): Add elf64-tilegx.lo. (BFD64_BACKENDS_CFILES): Add elf64-tilegx.c. * Makefile.in: Regenerate. * arctures.c (bfd_architecture): Define bfd_arch_tilepro, bfd_arch_tilegx, bfd_mach_tilepro, bfd_mach_tilegx. (bfd_arch_info): Add bfd_tilegx_arch, bfd_tilepro_arch. (bfd_archures_list): Add bfd_tilegx_arch, bfd_tilepro_arch. bfd-in2.h: Regenerate. * config.bfd: Handle tilegx-*-* and tilepro-*-*. * configure.in: Handle bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec, and bfd_elf64_tilegx_vec. * configure: Regenerate. * elf-bfd.h (enum elf_target_id): Define TILEGX_ELF_DATA and TILEPRO_ELF_DATA. * libbfd.h: Regenerate. * reloc.c: Add BFD_RELOC_TILEPRO_{COPY, GLOB_DAT, JMP_SLOT, RELATIVE, BROFF_X1, JOFFLONG_X1, JOFFLONG_X1_PLT, IMM8_X0, IMM8_Y0, IMM8_X1, IMM8_Y1, DEST_IMM8_X1, MT_IMM15_X1, MF_IMM15_X1, IMM16_X0, IMM16_X1, IMM16_X0_LO, IMM16_X1_LO, IMM16_X0_HI, IMM16_X1_HI, IMM16_X0_HA, IMM16_X1_HA, IMM16_X0_PCREL, IMM16_X1_PCREL, IMM16_X0_LO_PCREL, IMM16_X1_LO_PCREL, IMM16_X0_HI_PCREL, IMM16_X1_HI_PCREL, IMM16_X0_HA_PCREL, IMM16_X1_HA_PCREL, IMM16_X0_GOT, IMM16_X1_GOT, IMM16_X0_GOT_LO, IMM16_X1_GOT_LO, IMM16_X0_GOT_HI, IMM16_X1_GOT_HI, IMM16_X0_GOT_HA, IMM16_X1_GOT_HA, MMSTART_X0, MMEND_X0, MMSTART_X1, MMEND_X1, SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1, IMM16_X0_TLS_GD, IMM16_X1_TLS_GD, IMM16_X0_TLS_GD_LO, IMM16_X1_TLS_GD_LO, IMM16_X0_TLS_GD_HI, IMM16_X1_TLS_GD_HI, IMM16_X0_TLS_GD_HA, IMM16_X1_TLS_GD_HA, IMM16_X0_TLS_IE, IMM16_X1_TLS_IE, IMM16_X0_TLS_IE_LO, IMM16_X1_TLS_IE_LO, IMM16_X0_TLS_IE_HI, IMM16_X1_TLS_IE_HI, IMM16_X0_TLS_IE_HA, IMM16_X1_TLS_IE_HA, TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32} Add BFD_RELOC_TILEGX_{HW0, HW1, HW2, HW3, HW0_LAST, HW1_LAST, HW2_LAST, COPY, GLOB_DAT, JMP_SLOT, RELATIVE, BROFF_X1, JUMPOFF_X1, JUMPOFF_X1_PLT, IMM8_X0, IMM8_Y0, IMM8_X1, IMM8_Y1, DEST_IMM8_X1, MT_IMM14_X1, MF_IMM14_X1, MMSTART_X0, MMEND_X0, SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1, IMM16_X0_HW0, IMM16_X1_HW0, IMM16_X0_HW1, IMM16_X1_HW1, IMM16_X0_HW2, IMM16_X1_HW2, IMM16_X0_HW3, IMM16_X1_HW3, IMM16_X0_HW0_LAST, IMM16_X1_HW0_LAST, IMM16_X0_HW1_LAST, IMM16_X1_HW1_LAST, IMM16_X0_HW2_LAST, IMM16_X1_HW2_LAST, IMM16_X0_HW0_PCREL, IMM16_X1_HW0_PCREL, IMM16_X0_HW1_PCREL, IMM16_X1_HW1_PCREL, IMM16_X0_HW2_PCREL, IMM16_X1_HW2_PCREL, IMM16_X0_HW3_PCREL, IMM16_X1_HW3_PCREL, IMM16_X0_HW0_LAST_PCREL, IMM16_X1_HW0_LAST_PCREL, IMM16_X0_HW1_LAST_PCREL, IMM16_X1_HW1_LAST_PCREL, IMM16_X0_HW2_LAST_PCREL, IMM16_X1_HW2_LAST_PCREL, IMM16_X0_HW0_GOT, IMM16_X1_HW0_GOT, IMM16_X0_HW1_GOT, IMM16_X1_HW1_GOT, IMM16_X0_HW2_GOT, IMM16_X1_HW2_GOT, IMM16_X0_HW3_GOT, IMM16_X1_HW3_GOT, IMM16_X0_HW0_LAST_GOT, IMM16_X1_HW0_LAST_GOT, IMM16_X0_HW1_LAST_GOT, IMM16_X1_HW1_LAST_GOT, IMM16_X0_HW2_LAST_GOT, IMM16_X1_HW2_LAST_GOT, IMM16_X0_HW0_TLS_GD, IMM16_X1_HW0_TLS_GD, IMM16_X0_HW1_TLS_GD, IMM16_X1_HW1_TLS_GD, IMM16_X0_HW2_TLS_GD, IMM16_X1_HW2_TLS_GD, IMM16_X0_HW3_TLS_GD, IMM16_X1_HW3_TLS_GD, IMM16_X0_HW0_LAST_TLS_GD, IMM16_X1_HW0_LAST_TLS_GD, IMM16_X0_HW1_LAST_TLS_GD, IMM16_X1_HW1_LAST_TLS_GD, IMM16_X0_HW2_LAST_TLS_GD, IMM16_X1_HW2_LAST_TLS_GD, IMM16_X0_HW0_TLS_IE, IMM16_X1_HW0_TLS_IE, IMM16_X0_HW1_TLS_IE, IMM16_X1_HW1_TLS_IE, IMM16_X0_HW2_TLS_IE, IMM16_X1_HW2_TLS_IE, IMM16_X0_HW3_TLS_IE, IMM16_X1_HW3_TLS_IE, IMM16_X0_HW0_LAST_TLS_IE, IMM16_X1_HW0_LAST_TLS_IE, IMM16_X0_HW1_LAST_TLS_IE, IMM16_X1_HW1_LAST_TLS_IE, IMM16_X0_HW2_LAST_TLS_IE, IMM16_X1_HW2_LAST_TLS_IE, TLS_DTPMOD64, TLS_DTPOFF64, TLS_TPOFF64, TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32} * targets.c (bfd_elf32_tilegx_vec): Declare. (bfd_elf32_tilepro_vec): Declare. (bfd_elf64_tilegx_vec): Declare. (bfd_target_vector): Add bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec, and bfd_elf64_tilegx_vec. * cpu-tilegx.c: New file. * cpu-tilepro.c: New file. * elf32-tilepro.h: New file. * elf32-tilepro.c: New file. * elf32-tilegx.c: New file. * elf32-tilegx.h: New file. * elf64-tilegx.c: New file. * elf64-tilegx.h: New file. * elfxx-tilegx.c: New file. * elfxx-tilegx.h: New file. * Makefile.am (TARGET_CPU_CFILES): Add config/tc-tilegx.c and config/tc-tilepro.c. (TARGET_CPU_HFILES): Add config/tc-tilegx.h and config/tc-tilepro.h. * Makefile.in: Regenerate. * configure.tgt (tilepro-*-*): New. (tilegx-*-*): Likewise. * config/tc-tilegx.c: New file. * config/tc-tilegx.h: Likewise. * config/tc-tilepro.h: Likewise. * config/tc-tilepro.c: Likewise. * doc/Makefile.am (CPU_DOCS): Add c-tilegx.texi and c-tilepro.texi. * doc/Makefile.in: Regenerate. * doc/all.texi (TILEGX): Define. (TILEPRO): Define. * doc/as.texinfo: Add Tile-Gx and TILEPro documentation. Include c-tilegx.texi and c-tilepro.texi. * doc/c-tilegx.texi: New. * doc/c-tilepro.texi: New. * gas/tilepro/t_constants.s: New file. * gas/tilepro/t_constants.d: Likewise. * gas/tilepro/t_insns.s: Likewise. * gas/tilepro/tilepro.exp: Likewise. * gas/tilepro/t_insns.d: Likewise. * gas/tilegx/tilegx.exp: Likewise. * gas/tilegx/t_insns.d: Likewise. * gas/tilegx/t_insns.s: Likewise. * dis-asm.h (print_insn_tilegx): Declare. (print_insn_tilepro): Likewise. * tilegx.h: New file. * tilepro.h: New file. * common.h: Add EM_TILEGX. * tilegx.h: New file. * tilepro.h: New file. * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32tilegx.c and eelf32tilepro.c. (ALL_64_EMULATION_SOURCES): Add eelf64tilegx.c. (eelf32tilegx.c): New target. (eelf32tilepro.c): Likewise. (eelf64tilegx.c): Likewise. * Makefile.in: Regenerate. * configure.tgt: Handle tilegx-*-* and tilepro-*-*. * emulparams/elf32tilegx.sh: New file. * emulparams/elf64tilegx.sh: New file. * emulparams/elf32tilepro.sh: New file. * ld-elf/eh5.d: Don't run on tile*. * ld-srec/srec.exp: xfail on tile*. * ld-tilegx/external.s: New file. * ld-tilegx/reloc.d: New file. * ld-tilegx/reloc.s: New file. * ld-tilegx/tilegx.exp: New file. * ld-tilepro/external.s: New file. * ld-tilepro/reloc.d: New file. * ld-tilepro/reloc.s: New file. * ld-tilepro/tilepro.exp: New file. * Makefile.am (TARGET_LIBOPCODES_CFILES): Add tilegx-dis.c, tilegx-opc.c, tilepro-dis.c, and tilepro-opc.c. * Makefile.in: Regenerate. * configure.in: Handle bfd_tilegx_arch and bfd_tilepro_arch. * configure: Regenerate. * disassemble.c (disassembler): Add ARCH_tilegx and ARCH_tilepro. * po/POTFILES.in: Regenerate. * tilegx-dis.c: New file. * tilegx-opc.c: New file. * tilepro-dis.c: New file. * tilepro-opc.c: New file.
This commit is contained in:
parent
af199b0601
commit
aa137e4d51
@ -1,3 +1,92 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* Makefile.am (ALL_MACHINES): Add cpu-tilegx.lo and cpu-tilepro.lo.
|
||||
(ALL_MACHINE_CFILES): Add cpu-tilegx.c and cpu-tilepro.c.
|
||||
(BFD32_BACKENDS): Add elf32-tilegx.lo, elf32-tilepro.lo,
|
||||
and elfxx-tilegx.lo.
|
||||
(BFD32_BACKENDS_CFILES): Add elf32-tilegx.c elf32-tilepro.c, and
|
||||
elfxx-tilegx.c.
|
||||
(BFD64_BACKENDS): Add elf64-tilegx.lo.
|
||||
(BFD64_BACKENDS_CFILES): Add elf64-tilegx.c.
|
||||
* Makefile.in: Regenerate.
|
||||
* arctures.c (bfd_architecture): Define bfd_arch_tilepro,
|
||||
bfd_arch_tilegx, bfd_mach_tilepro, bfd_mach_tilegx.
|
||||
(bfd_arch_info): Add bfd_tilegx_arch, bfd_tilepro_arch.
|
||||
(bfd_archures_list): Add bfd_tilegx_arch, bfd_tilepro_arch.
|
||||
bfd-in2.h: Regenerate.
|
||||
* config.bfd: Handle tilegx-*-* and tilepro-*-*.
|
||||
* configure.in: Handle bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec,
|
||||
and bfd_elf64_tilegx_vec.
|
||||
* configure: Regenerate.
|
||||
* elf-bfd.h (enum elf_target_id): Define TILEGX_ELF_DATA and
|
||||
TILEPRO_ELF_DATA.
|
||||
* libbfd.h: Regenerate.
|
||||
* reloc.c: Add BFD_RELOC_TILEPRO_{COPY, GLOB_DAT, JMP_SLOT,
|
||||
RELATIVE, BROFF_X1, JOFFLONG_X1, JOFFLONG_X1_PLT, IMM8_X0,
|
||||
IMM8_Y0, IMM8_X1, IMM8_Y1, DEST_IMM8_X1, MT_IMM15_X1, MF_IMM15_X1,
|
||||
IMM16_X0, IMM16_X1, IMM16_X0_LO, IMM16_X1_LO, IMM16_X0_HI,
|
||||
IMM16_X1_HI, IMM16_X0_HA, IMM16_X1_HA, IMM16_X0_PCREL,
|
||||
IMM16_X1_PCREL, IMM16_X0_LO_PCREL, IMM16_X1_LO_PCREL,
|
||||
IMM16_X0_HI_PCREL, IMM16_X1_HI_PCREL, IMM16_X0_HA_PCREL,
|
||||
IMM16_X1_HA_PCREL, IMM16_X0_GOT, IMM16_X1_GOT, IMM16_X0_GOT_LO,
|
||||
IMM16_X1_GOT_LO, IMM16_X0_GOT_HI, IMM16_X1_GOT_HI,
|
||||
IMM16_X0_GOT_HA, IMM16_X1_GOT_HA, MMSTART_X0, MMEND_X0,
|
||||
MMSTART_X1, MMEND_X1, SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1,
|
||||
IMM16_X0_TLS_GD, IMM16_X1_TLS_GD, IMM16_X0_TLS_GD_LO,
|
||||
IMM16_X1_TLS_GD_LO, IMM16_X0_TLS_GD_HI, IMM16_X1_TLS_GD_HI,
|
||||
IMM16_X0_TLS_GD_HA, IMM16_X1_TLS_GD_HA, IMM16_X0_TLS_IE,
|
||||
IMM16_X1_TLS_IE, IMM16_X0_TLS_IE_LO, IMM16_X1_TLS_IE_LO,
|
||||
IMM16_X0_TLS_IE_HI, IMM16_X1_TLS_IE_HI, IMM16_X0_TLS_IE_HA,
|
||||
IMM16_X1_TLS_IE_HA, TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32}
|
||||
Add BFD_RELOC_TILEGX_{HW0, HW1, HW2, HW3, HW0_LAST, HW1_LAST,
|
||||
HW2_LAST, COPY, GLOB_DAT, JMP_SLOT, RELATIVE, BROFF_X1,
|
||||
JUMPOFF_X1, JUMPOFF_X1_PLT, IMM8_X0, IMM8_Y0, IMM8_X1, IMM8_Y1,
|
||||
DEST_IMM8_X1, MT_IMM14_X1, MF_IMM14_X1, MMSTART_X0, MMEND_X0,
|
||||
SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1, IMM16_X0_HW0,
|
||||
IMM16_X1_HW0, IMM16_X0_HW1, IMM16_X1_HW1, IMM16_X0_HW2,
|
||||
IMM16_X1_HW2, IMM16_X0_HW3, IMM16_X1_HW3, IMM16_X0_HW0_LAST,
|
||||
IMM16_X1_HW0_LAST, IMM16_X0_HW1_LAST, IMM16_X1_HW1_LAST,
|
||||
IMM16_X0_HW2_LAST, IMM16_X1_HW2_LAST, IMM16_X0_HW0_PCREL,
|
||||
IMM16_X1_HW0_PCREL, IMM16_X0_HW1_PCREL, IMM16_X1_HW1_PCREL,
|
||||
IMM16_X0_HW2_PCREL, IMM16_X1_HW2_PCREL, IMM16_X0_HW3_PCREL,
|
||||
IMM16_X1_HW3_PCREL, IMM16_X0_HW0_LAST_PCREL,
|
||||
IMM16_X1_HW0_LAST_PCREL, IMM16_X0_HW1_LAST_PCREL,
|
||||
IMM16_X1_HW1_LAST_PCREL, IMM16_X0_HW2_LAST_PCREL,
|
||||
IMM16_X1_HW2_LAST_PCREL, IMM16_X0_HW0_GOT, IMM16_X1_HW0_GOT,
|
||||
IMM16_X0_HW1_GOT, IMM16_X1_HW1_GOT, IMM16_X0_HW2_GOT,
|
||||
IMM16_X1_HW2_GOT, IMM16_X0_HW3_GOT, IMM16_X1_HW3_GOT,
|
||||
IMM16_X0_HW0_LAST_GOT, IMM16_X1_HW0_LAST_GOT,
|
||||
IMM16_X0_HW1_LAST_GOT, IMM16_X1_HW1_LAST_GOT,
|
||||
IMM16_X0_HW2_LAST_GOT, IMM16_X1_HW2_LAST_GOT, IMM16_X0_HW0_TLS_GD,
|
||||
IMM16_X1_HW0_TLS_GD, IMM16_X0_HW1_TLS_GD, IMM16_X1_HW1_TLS_GD,
|
||||
IMM16_X0_HW2_TLS_GD, IMM16_X1_HW2_TLS_GD, IMM16_X0_HW3_TLS_GD,
|
||||
IMM16_X1_HW3_TLS_GD, IMM16_X0_HW0_LAST_TLS_GD,
|
||||
IMM16_X1_HW0_LAST_TLS_GD, IMM16_X0_HW1_LAST_TLS_GD,
|
||||
IMM16_X1_HW1_LAST_TLS_GD, IMM16_X0_HW2_LAST_TLS_GD,
|
||||
IMM16_X1_HW2_LAST_TLS_GD, IMM16_X0_HW0_TLS_IE,
|
||||
IMM16_X1_HW0_TLS_IE, IMM16_X0_HW1_TLS_IE, IMM16_X1_HW1_TLS_IE,
|
||||
IMM16_X0_HW2_TLS_IE, IMM16_X1_HW2_TLS_IE, IMM16_X0_HW3_TLS_IE,
|
||||
IMM16_X1_HW3_TLS_IE, IMM16_X0_HW0_LAST_TLS_IE,
|
||||
IMM16_X1_HW0_LAST_TLS_IE, IMM16_X0_HW1_LAST_TLS_IE,
|
||||
IMM16_X1_HW1_LAST_TLS_IE, IMM16_X0_HW2_LAST_TLS_IE,
|
||||
IMM16_X1_HW2_LAST_TLS_IE, TLS_DTPMOD64, TLS_DTPOFF64, TLS_TPOFF64,
|
||||
TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32}
|
||||
* targets.c (bfd_elf32_tilegx_vec): Declare.
|
||||
(bfd_elf32_tilepro_vec): Declare.
|
||||
(bfd_elf64_tilegx_vec): Declare.
|
||||
(bfd_target_vector): Add bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec,
|
||||
and bfd_elf64_tilegx_vec.
|
||||
* cpu-tilegx.c: New file.
|
||||
* cpu-tilepro.c: New file.
|
||||
* elf32-tilepro.h: New file.
|
||||
* elf32-tilepro.c: New file.
|
||||
* elf32-tilegx.c: New file.
|
||||
* elf32-tilegx.h: New file.
|
||||
* elf64-tilegx.c: New file.
|
||||
* elf64-tilegx.h: New file.
|
||||
* elfxx-tilegx.c: New file.
|
||||
* elfxx-tilegx.h: New file.
|
||||
|
||||
2011-06-13 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* linker.c (bfd_link_hash_traverse): Follow warning symbol link.
|
||||
|
@ -132,6 +132,8 @@ ALL_MACHINES = \
|
||||
cpu-tic54x.lo \
|
||||
cpu-tic6x.lo \
|
||||
cpu-tic80.lo \
|
||||
cpu-tilegx.lo \
|
||||
cpu-tilepro.lo \
|
||||
cpu-v850.lo \
|
||||
cpu-vax.lo \
|
||||
cpu-w65.lo \
|
||||
@ -204,6 +206,8 @@ ALL_MACHINES_CFILES = \
|
||||
cpu-tic54x.c \
|
||||
cpu-tic6x.c \
|
||||
cpu-tic80.c \
|
||||
cpu-tilegx.c \
|
||||
cpu-tilepro.c \
|
||||
cpu-v850.c \
|
||||
cpu-vax.c \
|
||||
cpu-w65.c \
|
||||
@ -319,6 +323,8 @@ BFD32_BACKENDS = \
|
||||
elf32-sparc.lo \
|
||||
elf32-spu.lo \
|
||||
elf32-tic6x.lo \
|
||||
elf32-tilegx.lo \
|
||||
elf32-tilepro.lo \
|
||||
elf32-v850.lo \
|
||||
elf32-vax.lo \
|
||||
elf32-xc16x.lo \
|
||||
@ -328,6 +334,7 @@ BFD32_BACKENDS = \
|
||||
elflink.lo \
|
||||
elfxx-mips.lo \
|
||||
elfxx-sparc.lo \
|
||||
elfxx-tilegx.lo \
|
||||
epoc-pe-arm.lo \
|
||||
epoc-pei-arm.lo \
|
||||
hp300bsd.lo \
|
||||
@ -500,6 +507,8 @@ BFD32_BACKENDS_CFILES = \
|
||||
elf32-sparc.c \
|
||||
elf32-spu.c \
|
||||
elf32-tic6x.c \
|
||||
elf32-tilegx.c \
|
||||
elf32-tilepro.c \
|
||||
elf32-v850.c \
|
||||
elf32-vax.c \
|
||||
elf32-xc16x.c \
|
||||
@ -509,6 +518,7 @@ BFD32_BACKENDS_CFILES = \
|
||||
elflink.c \
|
||||
elfxx-mips.c \
|
||||
elfxx-sparc.c \
|
||||
elfxx-tilegx.c \
|
||||
epoc-pe-arm.c \
|
||||
epoc-pei-arm.c \
|
||||
hp300bsd.c \
|
||||
@ -602,6 +612,7 @@ BFD64_BACKENDS = \
|
||||
elf64-s390.lo \
|
||||
elf64-sh64.lo \
|
||||
elf64-sparc.lo \
|
||||
elf64-tilegx.lo \
|
||||
elf64-x86-64.lo \
|
||||
elf64.lo \
|
||||
elfn32-mips.lo \
|
||||
@ -635,6 +646,7 @@ BFD64_BACKENDS_CFILES = \
|
||||
elf64-s390.c \
|
||||
elf64-sh64.c \
|
||||
elf64-sparc.c \
|
||||
elf64-tilegx.c \
|
||||
elf64-x86-64.c \
|
||||
elf64.c \
|
||||
elfn32-mips.c \
|
||||
|
@ -431,6 +431,8 @@ ALL_MACHINES = \
|
||||
cpu-tic54x.lo \
|
||||
cpu-tic6x.lo \
|
||||
cpu-tic80.lo \
|
||||
cpu-tilegx.lo \
|
||||
cpu-tilepro.lo \
|
||||
cpu-v850.lo \
|
||||
cpu-vax.lo \
|
||||
cpu-w65.lo \
|
||||
@ -503,6 +505,8 @@ ALL_MACHINES_CFILES = \
|
||||
cpu-tic54x.c \
|
||||
cpu-tic6x.c \
|
||||
cpu-tic80.c \
|
||||
cpu-tilegx.c \
|
||||
cpu-tilepro.c \
|
||||
cpu-v850.c \
|
||||
cpu-vax.c \
|
||||
cpu-w65.c \
|
||||
@ -619,6 +623,8 @@ BFD32_BACKENDS = \
|
||||
elf32-sparc.lo \
|
||||
elf32-spu.lo \
|
||||
elf32-tic6x.lo \
|
||||
elf32-tilegx.lo \
|
||||
elf32-tilepro.lo \
|
||||
elf32-v850.lo \
|
||||
elf32-vax.lo \
|
||||
elf32-xc16x.lo \
|
||||
@ -628,6 +634,7 @@ BFD32_BACKENDS = \
|
||||
elflink.lo \
|
||||
elfxx-mips.lo \
|
||||
elfxx-sparc.lo \
|
||||
elfxx-tilegx.lo \
|
||||
epoc-pe-arm.lo \
|
||||
epoc-pei-arm.lo \
|
||||
hp300bsd.lo \
|
||||
@ -800,6 +807,8 @@ BFD32_BACKENDS_CFILES = \
|
||||
elf32-sparc.c \
|
||||
elf32-spu.c \
|
||||
elf32-tic6x.c \
|
||||
elf32-tilegx.c \
|
||||
elf32-tilepro.c \
|
||||
elf32-v850.c \
|
||||
elf32-vax.c \
|
||||
elf32-xc16x.c \
|
||||
@ -809,6 +818,7 @@ BFD32_BACKENDS_CFILES = \
|
||||
elflink.c \
|
||||
elfxx-mips.c \
|
||||
elfxx-sparc.c \
|
||||
elfxx-tilegx.c \
|
||||
epoc-pe-arm.c \
|
||||
epoc-pei-arm.c \
|
||||
hp300bsd.c \
|
||||
@ -903,6 +913,7 @@ BFD64_BACKENDS = \
|
||||
elf64-s390.lo \
|
||||
elf64-sh64.lo \
|
||||
elf64-sparc.lo \
|
||||
elf64-tilegx.lo \
|
||||
elf64-x86-64.lo \
|
||||
elf64.lo \
|
||||
elfn32-mips.lo \
|
||||
@ -936,6 +947,7 @@ BFD64_BACKENDS_CFILES = \
|
||||
elf64-s390.c \
|
||||
elf64-sh64.c \
|
||||
elf64-sparc.c \
|
||||
elf64-tilegx.c \
|
||||
elf64-x86-64.c \
|
||||
elf64.c \
|
||||
elfn32-mips.c \
|
||||
|
@ -437,6 +437,10 @@ DESCRIPTION
|
||||
. bfd_arch_lm32, {* Lattice Mico32 *}
|
||||
.#define bfd_mach_lm32 1
|
||||
. bfd_arch_microblaze,{* Xilinx MicroBlaze. *}
|
||||
. bfd_arch_tilepro, {* Tilera TILEPro *}
|
||||
. bfd_arch_tilegx, {* Tilera TILE-Gx *}
|
||||
.#define bfd_mach_tilepro 1
|
||||
.#define bfd_mach_tilegx 1
|
||||
. bfd_arch_last
|
||||
. };
|
||||
*/
|
||||
@ -537,6 +541,8 @@ extern const bfd_arch_info_type bfd_tic4x_arch;
|
||||
extern const bfd_arch_info_type bfd_tic54x_arch;
|
||||
extern const bfd_arch_info_type bfd_tic6x_arch;
|
||||
extern const bfd_arch_info_type bfd_tic80_arch;
|
||||
extern const bfd_arch_info_type bfd_tilegx_arch;
|
||||
extern const bfd_arch_info_type bfd_tilepro_arch;
|
||||
extern const bfd_arch_info_type bfd_v850_arch;
|
||||
extern const bfd_arch_info_type bfd_vax_arch;
|
||||
extern const bfd_arch_info_type bfd_w65_arch;
|
||||
@ -611,6 +617,8 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
|
||||
&bfd_tic54x_arch,
|
||||
&bfd_tic6x_arch,
|
||||
&bfd_tic80_arch,
|
||||
&bfd_tilegx_arch,
|
||||
&bfd_tilepro_arch,
|
||||
&bfd_v850_arch,
|
||||
&bfd_vax_arch,
|
||||
&bfd_w65_arch,
|
||||
|
176
bfd/bfd-in2.h
176
bfd/bfd-in2.h
@ -2133,6 +2133,10 @@ enum bfd_architecture
|
||||
bfd_arch_lm32, /* Lattice Mico32 */
|
||||
#define bfd_mach_lm32 1
|
||||
bfd_arch_microblaze,/* Xilinx MicroBlaze. */
|
||||
bfd_arch_tilepro, /* Tilera TILEPro */
|
||||
bfd_arch_tilegx, /* Tilera TILE-Gx */
|
||||
#define bfd_mach_tilepro 1
|
||||
#define bfd_mach_tilegx 1
|
||||
bfd_arch_last
|
||||
};
|
||||
|
||||
@ -4799,6 +4803,178 @@ value in a word. The relocation is relative offset from */
|
||||
/* This is used to tell the dynamic linker to copy the value out of
|
||||
the dynamic object into the runtime process image. */
|
||||
BFD_RELOC_MICROBLAZE_COPY,
|
||||
|
||||
/* Tilera TILEPro Relocations. */
|
||||
BFD_RELOC_TILEPRO_COPY,
|
||||
BFD_RELOC_TILEPRO_GLOB_DAT,
|
||||
BFD_RELOC_TILEPRO_JMP_SLOT,
|
||||
BFD_RELOC_TILEPRO_RELATIVE,
|
||||
BFD_RELOC_TILEPRO_BROFF_X1,
|
||||
BFD_RELOC_TILEPRO_JOFFLONG_X1,
|
||||
BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT,
|
||||
BFD_RELOC_TILEPRO_IMM8_X0,
|
||||
BFD_RELOC_TILEPRO_IMM8_Y0,
|
||||
BFD_RELOC_TILEPRO_IMM8_X1,
|
||||
BFD_RELOC_TILEPRO_IMM8_Y1,
|
||||
BFD_RELOC_TILEPRO_DEST_IMM8_X1,
|
||||
BFD_RELOC_TILEPRO_MT_IMM15_X1,
|
||||
BFD_RELOC_TILEPRO_MF_IMM15_X1,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HA,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HA,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA,
|
||||
BFD_RELOC_TILEPRO_MMSTART_X0,
|
||||
BFD_RELOC_TILEPRO_MMEND_X0,
|
||||
BFD_RELOC_TILEPRO_MMSTART_X1,
|
||||
BFD_RELOC_TILEPRO_MMEND_X1,
|
||||
BFD_RELOC_TILEPRO_SHAMT_X0,
|
||||
BFD_RELOC_TILEPRO_SHAMT_X1,
|
||||
BFD_RELOC_TILEPRO_SHAMT_Y0,
|
||||
BFD_RELOC_TILEPRO_SHAMT_Y1,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI,
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA,
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA,
|
||||
BFD_RELOC_TILEPRO_TLS_DTPMOD32,
|
||||
BFD_RELOC_TILEPRO_TLS_DTPOFF32,
|
||||
BFD_RELOC_TILEPRO_TLS_TPOFF32,
|
||||
|
||||
/* Tilera TILE-Gx Relocations. */
|
||||
BFD_RELOC_TILEGX_HW0,
|
||||
BFD_RELOC_TILEGX_HW1,
|
||||
BFD_RELOC_TILEGX_HW2,
|
||||
BFD_RELOC_TILEGX_HW3,
|
||||
BFD_RELOC_TILEGX_HW0_LAST,
|
||||
BFD_RELOC_TILEGX_HW1_LAST,
|
||||
BFD_RELOC_TILEGX_HW2_LAST,
|
||||
BFD_RELOC_TILEGX_COPY,
|
||||
BFD_RELOC_TILEGX_GLOB_DAT,
|
||||
BFD_RELOC_TILEGX_JMP_SLOT,
|
||||
BFD_RELOC_TILEGX_RELATIVE,
|
||||
BFD_RELOC_TILEGX_BROFF_X1,
|
||||
BFD_RELOC_TILEGX_JUMPOFF_X1,
|
||||
BFD_RELOC_TILEGX_JUMPOFF_X1_PLT,
|
||||
BFD_RELOC_TILEGX_IMM8_X0,
|
||||
BFD_RELOC_TILEGX_IMM8_Y0,
|
||||
BFD_RELOC_TILEGX_IMM8_X1,
|
||||
BFD_RELOC_TILEGX_IMM8_Y1,
|
||||
BFD_RELOC_TILEGX_DEST_IMM8_X1,
|
||||
BFD_RELOC_TILEGX_MT_IMM14_X1,
|
||||
BFD_RELOC_TILEGX_MF_IMM14_X1,
|
||||
BFD_RELOC_TILEGX_MMSTART_X0,
|
||||
BFD_RELOC_TILEGX_MMEND_X0,
|
||||
BFD_RELOC_TILEGX_SHAMT_X0,
|
||||
BFD_RELOC_TILEGX_SHAMT_X1,
|
||||
BFD_RELOC_TILEGX_SHAMT_Y0,
|
||||
BFD_RELOC_TILEGX_SHAMT_Y1,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE,
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE,
|
||||
BFD_RELOC_TILEGX_TLS_DTPMOD64,
|
||||
BFD_RELOC_TILEGX_TLS_DTPOFF64,
|
||||
BFD_RELOC_TILEGX_TLS_TPOFF64,
|
||||
BFD_RELOC_TILEGX_TLS_DTPMOD32,
|
||||
BFD_RELOC_TILEGX_TLS_DTPOFF32,
|
||||
BFD_RELOC_TILEGX_TLS_TPOFF32,
|
||||
BFD_RELOC_UNUSED };
|
||||
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
|
||||
reloc_howto_type *bfd_reloc_type_lookup
|
||||
|
@ -100,6 +100,8 @@ s390*) targ_archs=bfd_s390_arch ;;
|
||||
sh*) targ_archs=bfd_sh_arch ;;
|
||||
sparc*) targ_archs=bfd_sparc_arch ;;
|
||||
spu*) targ_archs=bfd_spu_arch ;;
|
||||
tilegx*) targ_archs=bfd_tilegx_arch ;;
|
||||
tilepro*) targ_archs=bfd_tilepro_arch ;;
|
||||
v850*) targ_archs=bfd_v850_arch ;;
|
||||
x86_64*) targ_archs=bfd_i386_arch ;;
|
||||
xtensa*) targ_archs=bfd_xtensa_arch ;;
|
||||
@ -1480,6 +1482,17 @@ case "${targ}" in
|
||||
targ_underscore=yes
|
||||
;;
|
||||
|
||||
#ifdef BFD64
|
||||
tilegx-*-*)
|
||||
targ_defvec=bfd_elf64_tilegx_vec
|
||||
targ_selvecs=bfd_elf32_tilegx_vec
|
||||
;;
|
||||
#endif
|
||||
|
||||
tilepro-*-*)
|
||||
targ_defvec=bfd_elf32_tilepro_vec
|
||||
;;
|
||||
|
||||
v850*-*-*)
|
||||
targ_defvec=bfd_elf32_v850_vec
|
||||
;;
|
||||
|
3
bfd/configure
vendored
3
bfd/configure
vendored
@ -15298,6 +15298,8 @@ do
|
||||
bfd_elf32_tic6x_linux_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tic6x_elf_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tic6x_elf_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tilegx_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
|
||||
bfd_elf32_tilepro_vec) tb="$tb elf32-tilepro.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tradbigmips_vec | bfd_elf32_tradbigmips_freebsd_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_tradlittlemips_vec | bfd_elf32_tradlittlemips_freebsd_vec)
|
||||
@ -15334,6 +15336,7 @@ do
|
||||
bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_sparc_freebsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_sparc_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_tilegx_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
|
||||
bfd_elf64_tradbigmips_vec | bfd_elf64_tradbigmips_freebsd_vec)
|
||||
tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
|
||||
bfd_elf64_tradlittlemips_vec | bfd_elf64_tradlittlemips_freebsd_vec)
|
||||
|
@ -797,6 +797,8 @@ do
|
||||
bfd_elf32_tic6x_linux_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tic6x_elf_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tic6x_elf_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tilegx_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
|
||||
bfd_elf32_tilepro_vec) tb="$tb elf32-tilepro.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_tradbigmips_vec | bfd_elf32_tradbigmips_freebsd_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_tradlittlemips_vec | bfd_elf32_tradlittlemips_freebsd_vec)
|
||||
@ -833,6 +835,7 @@ do
|
||||
bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_sparc_freebsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_sparc_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_tilegx_vec) tb="$tb elf64-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
|
||||
bfd_elf64_tradbigmips_vec | bfd_elf64_tradbigmips_freebsd_vec)
|
||||
tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
|
||||
bfd_elf64_tradlittlemips_vec | bfd_elf64_tradlittlemips_freebsd_vec)
|
||||
|
39
bfd/cpu-tilegx.c
Normal file
39
bfd/cpu-tilegx.c
Normal file
@ -0,0 +1,39 @@
|
||||
/* BFD support for the TILE-Gx processor.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
const bfd_arch_info_type bfd_tilegx_arch =
|
||||
{
|
||||
64, /* 64 bits in a word */
|
||||
64, /* 64 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_tilegx,
|
||||
bfd_mach_tilegx,
|
||||
"tilegx",
|
||||
"tilegx",
|
||||
3,
|
||||
TRUE,
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan,
|
||||
0,
|
||||
};
|
39
bfd/cpu-tilepro.c
Normal file
39
bfd/cpu-tilepro.c
Normal file
@ -0,0 +1,39 @@
|
||||
/* BFD support for the TILEPro processor.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
const bfd_arch_info_type bfd_tilepro_arch =
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_tilepro,
|
||||
bfd_mach_tilepro,
|
||||
"tilepro",
|
||||
"tilepro",
|
||||
3,
|
||||
TRUE,
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan,
|
||||
0,
|
||||
};
|
@ -428,6 +428,8 @@ enum elf_target_id
|
||||
TIC6X_ELF_DATA,
|
||||
X86_64_ELF_DATA,
|
||||
XTENSA_ELF_DATA,
|
||||
TILEGX_ELF_DATA,
|
||||
TILEPRO_ELF_DATA,
|
||||
GENERIC_ELF_DATA
|
||||
};
|
||||
|
||||
|
132
bfd/elf32-tilegx.c
Normal file
132
bfd/elf32-tilegx.c
Normal file
@ -0,0 +1,132 @@
|
||||
/* TILE-Gx-specific support for 32-bit ELF.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "sysdep.h"
|
||||
#include "bfd.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "elfxx-tilegx.h"
|
||||
#include "elf32-tilegx.h"
|
||||
|
||||
|
||||
/* Support for core dump NOTE sections. */
|
||||
|
||||
static bfd_boolean
|
||||
tilegx_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
|
||||
{
|
||||
int offset;
|
||||
size_t size;
|
||||
|
||||
if (note->descsz != TILEGX_PRSTATUS_SIZEOF)
|
||||
return FALSE;
|
||||
|
||||
/* pr_cursig */
|
||||
elf_tdata (abfd)->core_signal =
|
||||
bfd_get_16 (abfd, note->descdata + TILEGX_PRSTATUS_OFFSET_PR_CURSIG);
|
||||
|
||||
/* pr_pid */
|
||||
elf_tdata (abfd)->core_pid =
|
||||
bfd_get_32 (abfd, note->descdata + TILEGX_PRSTATUS_OFFSET_PR_PID);
|
||||
|
||||
/* pr_reg */
|
||||
offset = TILEGX_PRSTATUS_OFFSET_PR_REG;
|
||||
size = TILEGX_GREGSET_T_SIZE;
|
||||
|
||||
/* Make a ".reg/999" section. */
|
||||
return _bfd_elfcore_make_pseudosection (abfd, ".reg",
|
||||
size, note->descpos + offset);
|
||||
}
|
||||
|
||||
static bfd_boolean
|
||||
tilegx_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
|
||||
{
|
||||
if (note->descsz != TILEGX_PRPSINFO_SIZEOF)
|
||||
return FALSE;
|
||||
|
||||
elf_tdata (abfd)->core_program
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + TILEGX_PRPSINFO_OFFSET_PR_FNAME, 16);
|
||||
elf_tdata (abfd)->core_command
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + TILEGX_PRPSINFO_OFFSET_PR_PSARGS, ELF_PR_PSARGS_SIZE);
|
||||
|
||||
|
||||
/* Note that for some reason, a spurious space is tacked
|
||||
onto the end of the args in some (at least one anyway)
|
||||
implementations, so strip it off if it exists. */
|
||||
{
|
||||
char *command = elf_tdata (abfd)->core_command;
|
||||
int n = strlen (command);
|
||||
|
||||
if (0 < n && command[n - 1] == ' ')
|
||||
command[n - 1] = '\0';
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
#define ELF_ARCH bfd_arch_tilegx
|
||||
#define ELF_TARGET_ID TILEGX_ELF_DATA
|
||||
#define ELF_MACHINE_CODE EM_TILEGX
|
||||
#define ELF_MAXPAGESIZE 0x10000
|
||||
#define ELF_COMMONPAGESIZE 0x10000
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elf32_tilegx_vec
|
||||
#define TARGET_LITTLE_NAME "elf32-tilegx"
|
||||
|
||||
#define elf_backend_reloc_type_class tilegx_reloc_type_class
|
||||
|
||||
#define bfd_elf32_bfd_reloc_name_lookup tilegx_reloc_name_lookup
|
||||
#define bfd_elf32_bfd_link_hash_table_create tilegx_elf_link_hash_table_create
|
||||
#define bfd_elf32_bfd_reloc_type_lookup tilegx_reloc_type_lookup
|
||||
#define bfd_elf32_bfd_merge_private_bfd_data \
|
||||
_bfd_tilegx_elf_merge_private_bfd_data
|
||||
|
||||
#define elf_backend_copy_indirect_symbol tilegx_elf_copy_indirect_symbol
|
||||
#define elf_backend_create_dynamic_sections tilegx_elf_create_dynamic_sections
|
||||
#define elf_backend_check_relocs tilegx_elf_check_relocs
|
||||
#define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol
|
||||
#define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym
|
||||
#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections
|
||||
#define elf_backend_relocate_section tilegx_elf_relocate_section
|
||||
#define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol
|
||||
#define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections
|
||||
#define elf_backend_gc_mark_hook tilegx_elf_gc_mark_hook
|
||||
#define elf_backend_gc_sweep_hook tilegx_elf_gc_sweep_hook
|
||||
#define elf_backend_plt_sym_val tilegx_elf_plt_sym_val
|
||||
#define elf_info_to_howto_rel NULL
|
||||
#define elf_info_to_howto tilegx_info_to_howto_rela
|
||||
#define elf_backend_grok_prstatus tilegx_elf_grok_prstatus
|
||||
#define elf_backend_grok_psinfo tilegx_elf_grok_psinfo
|
||||
#define elf_backend_additional_program_headers tilegx_additional_program_headers
|
||||
|
||||
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
|
||||
|
||||
#define elf_backend_can_gc_sections 1
|
||||
#define elf_backend_can_refcount 1
|
||||
#define elf_backend_want_got_plt 1
|
||||
#define elf_backend_plt_readonly 1
|
||||
/* Align PLT mod 64 byte L2 line size. */
|
||||
#define elf_backend_plt_alignment 6
|
||||
#define elf_backend_want_plt_sym 1
|
||||
#define elf_backend_got_header_size 4
|
||||
#define elf_backend_rela_normal 1
|
||||
#define elf_backend_default_execstack 0
|
||||
|
||||
#include "elf32-target.h"
|
38
bfd/elf32-tilegx.h
Normal file
38
bfd/elf32-tilegx.h
Normal file
@ -0,0 +1,38 @@
|
||||
/* TILE-Gx-specific support for 32-bit ELF.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _ELF32_TILEGX_H
|
||||
#define _ELF32_TILEGX_H
|
||||
|
||||
/* This file contains sizes and offsets of Linux data structures. */
|
||||
|
||||
#define TILEGX_PRSTATUS_SIZEOF 592
|
||||
#define TILEGX_PRSTATUS_OFFSET_PR_CURSIG 12
|
||||
#define TILEGX_PRSTATUS_OFFSET_PR_PID 24
|
||||
#define TILEGX_PRSTATUS_OFFSET_PR_REG 72
|
||||
|
||||
#define TILEGX_PRPSINFO_SIZEOF 128
|
||||
#define TILEGX_PRPSINFO_OFFSET_PR_FNAME 32
|
||||
#define TILEGX_PRPSINFO_OFFSET_PR_PSARGS 48
|
||||
#define ELF_PR_PSARGS_SIZE 80
|
||||
|
||||
#define TILEGX_GREGSET_T_SIZE 512
|
||||
|
||||
#endif /* _ELF32_TILEGX_H */
|
3616
bfd/elf32-tilepro.c
Normal file
3616
bfd/elf32-tilepro.c
Normal file
File diff suppressed because it is too large
Load Diff
38
bfd/elf32-tilepro.h
Normal file
38
bfd/elf32-tilepro.h
Normal file
@ -0,0 +1,38 @@
|
||||
/* TILEPro-specific support for 32-bit ELF.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _ELF32_TILEPRO_H
|
||||
#define _ELF32_TILEPRO_H
|
||||
|
||||
/* This file contains sizes and offsets of Linux data structures. */
|
||||
|
||||
#define TILEPRO_PRSTATUS_SIZEOF 332
|
||||
#define TILEPRO_PRSTATUS_OFFSET_PR_CURSIG 12
|
||||
#define TILEPRO_PRSTATUS_OFFSET_PR_PID 24
|
||||
#define TILEPRO_PRSTATUS_OFFSET_PR_REG 72
|
||||
|
||||
#define TILEPRO_PRPSINFO_SIZEOF 128
|
||||
#define TILEPRO_PRPSINFO_OFFSET_PR_FNAME 32
|
||||
#define TILEPRO_PRPSINFO_OFFSET_PR_PSARGS 48
|
||||
#define ELF_PR_PSARGS_SIZE 80
|
||||
|
||||
#define TILEPRO_GREGSET_T_SIZE 256
|
||||
|
||||
#endif /* _ELF32_TILEPRO_H */
|
132
bfd/elf64-tilegx.c
Normal file
132
bfd/elf64-tilegx.c
Normal file
@ -0,0 +1,132 @@
|
||||
/* TILE-Gx-specific support for 64-bit ELF.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "sysdep.h"
|
||||
#include "bfd.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "elfxx-tilegx.h"
|
||||
#include "elf64-tilegx.h"
|
||||
|
||||
|
||||
/* Support for core dump NOTE sections. */
|
||||
|
||||
static bfd_boolean
|
||||
tilegx_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
|
||||
{
|
||||
int offset;
|
||||
size_t size;
|
||||
|
||||
if (note->descsz != TILEGX_PRSTATUS_SIZEOF)
|
||||
return FALSE;
|
||||
|
||||
/* pr_cursig */
|
||||
elf_tdata (abfd)->core_signal =
|
||||
bfd_get_16 (abfd, note->descdata + TILEGX_PRSTATUS_OFFSET_PR_CURSIG);
|
||||
|
||||
/* pr_pid */
|
||||
elf_tdata (abfd)->core_pid =
|
||||
bfd_get_32 (abfd, note->descdata + TILEGX_PRSTATUS_OFFSET_PR_PID);
|
||||
|
||||
/* pr_reg */
|
||||
offset = TILEGX_PRSTATUS_OFFSET_PR_REG;
|
||||
size = TILEGX_GREGSET_T_SIZE;
|
||||
|
||||
/* Make a ".reg/999" section. */
|
||||
return _bfd_elfcore_make_pseudosection (abfd, ".reg",
|
||||
size, note->descpos + offset);
|
||||
}
|
||||
|
||||
static bfd_boolean
|
||||
tilegx_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
|
||||
{
|
||||
if (note->descsz != TILEGX_PRPSINFO_SIZEOF)
|
||||
return FALSE;
|
||||
|
||||
elf_tdata (abfd)->core_program
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + TILEGX_PRPSINFO_OFFSET_PR_FNAME, 16);
|
||||
elf_tdata (abfd)->core_command
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + TILEGX_PRPSINFO_OFFSET_PR_PSARGS, ELF_PR_PSARGS_SIZE);
|
||||
|
||||
|
||||
/* Note that for some reason, a spurious space is tacked
|
||||
onto the end of the args in some (at least one anyway)
|
||||
implementations, so strip it off if it exists. */
|
||||
{
|
||||
char *command = elf_tdata (abfd)->core_command;
|
||||
int n = strlen (command);
|
||||
|
||||
if (0 < n && command[n - 1] == ' ')
|
||||
command[n - 1] = '\0';
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
#define ELF_ARCH bfd_arch_tilegx
|
||||
#define ELF_TARGET_ID TILEGX_ELF_DATA
|
||||
#define ELF_MACHINE_CODE EM_TILEGX
|
||||
#define ELF_MAXPAGESIZE 0x10000
|
||||
#define ELF_COMMONPAGESIZE 0x10000
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elf64_tilegx_vec
|
||||
#define TARGET_LITTLE_NAME "elf64-tilegx"
|
||||
|
||||
#define elf_backend_reloc_type_class tilegx_reloc_type_class
|
||||
|
||||
#define bfd_elf64_bfd_reloc_name_lookup tilegx_reloc_name_lookup
|
||||
#define bfd_elf64_bfd_link_hash_table_create tilegx_elf_link_hash_table_create
|
||||
#define bfd_elf64_bfd_reloc_type_lookup tilegx_reloc_type_lookup
|
||||
#define bfd_elf64_bfd_merge_private_bfd_data \
|
||||
_bfd_tilegx_elf_merge_private_bfd_data
|
||||
|
||||
#define elf_backend_copy_indirect_symbol tilegx_elf_copy_indirect_symbol
|
||||
#define elf_backend_create_dynamic_sections tilegx_elf_create_dynamic_sections
|
||||
#define elf_backend_check_relocs tilegx_elf_check_relocs
|
||||
#define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol
|
||||
#define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym
|
||||
#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections
|
||||
#define elf_backend_relocate_section tilegx_elf_relocate_section
|
||||
#define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol
|
||||
#define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections
|
||||
#define elf_backend_gc_mark_hook tilegx_elf_gc_mark_hook
|
||||
#define elf_backend_gc_sweep_hook tilegx_elf_gc_sweep_hook
|
||||
#define elf_backend_plt_sym_val tilegx_elf_plt_sym_val
|
||||
#define elf_info_to_howto_rel NULL
|
||||
#define elf_info_to_howto tilegx_info_to_howto_rela
|
||||
#define elf_backend_grok_prstatus tilegx_elf_grok_prstatus
|
||||
#define elf_backend_grok_psinfo tilegx_elf_grok_psinfo
|
||||
#define elf_backend_additional_program_headers tilegx_additional_program_headers
|
||||
|
||||
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
|
||||
|
||||
#define elf_backend_can_gc_sections 1
|
||||
#define elf_backend_can_refcount 1
|
||||
#define elf_backend_want_got_plt 1
|
||||
#define elf_backend_plt_readonly 1
|
||||
/* Align PLT mod 64 byte L2 line size. */
|
||||
#define elf_backend_plt_alignment 6
|
||||
#define elf_backend_want_plt_sym 1
|
||||
#define elf_backend_got_header_size 8
|
||||
#define elf_backend_rela_normal 1
|
||||
#define elf_backend_default_execstack 0
|
||||
|
||||
#include "elf64-target.h"
|
38
bfd/elf64-tilegx.h
Normal file
38
bfd/elf64-tilegx.h
Normal file
@ -0,0 +1,38 @@
|
||||
/* TILE-Gx-specific support for 64-bit ELF.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _ELF64_TILEGX_H
|
||||
#define _ELF64_TILEGX_H
|
||||
|
||||
/* This file contains sizes and offsets of Linux data structures. */
|
||||
|
||||
#define TILEGX_PRSTATUS_SIZEOF 632
|
||||
#define TILEGX_PRSTATUS_OFFSET_PR_CURSIG 12
|
||||
#define TILEGX_PRSTATUS_OFFSET_PR_PID 32
|
||||
#define TILEGX_PRSTATUS_OFFSET_PR_REG 112
|
||||
|
||||
#define TILEGX_PRPSINFO_SIZEOF 136
|
||||
#define TILEGX_PRPSINFO_OFFSET_PR_FNAME 40
|
||||
#define TILEGX_PRPSINFO_OFFSET_PR_PSARGS 56
|
||||
#define ELF_PR_PSARGS_SIZE 80
|
||||
|
||||
#define TILEGX_GREGSET_T_SIZE 512
|
||||
|
||||
#endif /* _ELF64_TILEGX_H */
|
3971
bfd/elfxx-tilegx.c
Normal file
3971
bfd/elfxx-tilegx.c
Normal file
File diff suppressed because it is too large
Load Diff
97
bfd/elfxx-tilegx.h
Normal file
97
bfd/elfxx-tilegx.h
Normal file
@ -0,0 +1,97 @@
|
||||
/* TILE-Gx ELF specific backend routines.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "elf/common.h"
|
||||
#include "elf/internal.h"
|
||||
|
||||
extern enum elf_reloc_type_class
|
||||
tilegx_reloc_type_class (const Elf_Internal_Rela *);
|
||||
|
||||
extern reloc_howto_type *
|
||||
tilegx_reloc_name_lookup (bfd *, const char *);
|
||||
|
||||
extern struct bfd_link_hash_table *
|
||||
tilegx_elf_link_hash_table_create (bfd *);
|
||||
|
||||
extern reloc_howto_type *
|
||||
tilegx_reloc_type_lookup (bfd *, bfd_reloc_code_real_type);
|
||||
|
||||
extern void
|
||||
tilegx_elf_copy_indirect_symbol (struct bfd_link_info *,
|
||||
struct elf_link_hash_entry *,
|
||||
struct elf_link_hash_entry *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_create_dynamic_sections (bfd *, struct bfd_link_info *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_check_relocs (bfd *, struct bfd_link_info *,
|
||||
asection *, const Elf_Internal_Rela *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_adjust_dynamic_symbol (struct bfd_link_info *,
|
||||
struct elf_link_hash_entry *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_omit_section_dynsym (bfd *,
|
||||
struct bfd_link_info *,
|
||||
asection *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_relocate_section (bfd *, struct bfd_link_info *,
|
||||
bfd *, asection *,
|
||||
bfd_byte *, Elf_Internal_Rela *,
|
||||
Elf_Internal_Sym *,
|
||||
asection **);
|
||||
|
||||
extern asection *
|
||||
tilegx_elf_gc_mark_hook (asection *,
|
||||
struct bfd_link_info *,
|
||||
Elf_Internal_Rela *,
|
||||
struct elf_link_hash_entry *,
|
||||
Elf_Internal_Sym *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_gc_sweep_hook (bfd *, struct bfd_link_info *,
|
||||
asection *, const Elf_Internal_Rela *);
|
||||
|
||||
extern bfd_vma
|
||||
tilegx_elf_plt_sym_val (bfd_vma, const asection *, const arelent *);
|
||||
|
||||
extern void
|
||||
tilegx_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *);
|
||||
|
||||
extern int
|
||||
tilegx_additional_program_headers (bfd *, struct bfd_link_info *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_finish_dynamic_symbol (bfd *,
|
||||
struct bfd_link_info *,
|
||||
struct elf_link_hash_entry *,
|
||||
Elf_Internal_Sym *);
|
||||
|
||||
extern bfd_boolean
|
||||
tilegx_elf_finish_dynamic_sections (bfd *, struct bfd_link_info *);
|
||||
|
||||
extern bfd_boolean
|
||||
_bfd_tilegx_elf_merge_private_bfd_data (bfd *, bfd *);
|
168
bfd/libbfd.h
168
bfd/libbfd.h
@ -2268,6 +2268,174 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
||||
"BFD_RELOC_MICROBLAZE_64_GOTOFF",
|
||||
"BFD_RELOC_MICROBLAZE_32_GOTOFF",
|
||||
"BFD_RELOC_MICROBLAZE_COPY",
|
||||
"BFD_RELOC_TILEPRO_COPY",
|
||||
"BFD_RELOC_TILEPRO_GLOB_DAT",
|
||||
"BFD_RELOC_TILEPRO_JMP_SLOT",
|
||||
"BFD_RELOC_TILEPRO_RELATIVE",
|
||||
"BFD_RELOC_TILEPRO_BROFF_X1",
|
||||
"BFD_RELOC_TILEPRO_JOFFLONG_X1",
|
||||
"BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT",
|
||||
"BFD_RELOC_TILEPRO_IMM8_X0",
|
||||
"BFD_RELOC_TILEPRO_IMM8_Y0",
|
||||
"BFD_RELOC_TILEPRO_IMM8_X1",
|
||||
"BFD_RELOC_TILEPRO_IMM8_Y1",
|
||||
"BFD_RELOC_TILEPRO_DEST_IMM8_X1",
|
||||
"BFD_RELOC_TILEPRO_MT_IMM15_X1",
|
||||
"BFD_RELOC_TILEPRO_MF_IMM15_X1",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_HA",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_HA",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_GOT",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_GOT",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA",
|
||||
"BFD_RELOC_TILEPRO_MMSTART_X0",
|
||||
"BFD_RELOC_TILEPRO_MMEND_X0",
|
||||
"BFD_RELOC_TILEPRO_MMSTART_X1",
|
||||
"BFD_RELOC_TILEPRO_MMEND_X1",
|
||||
"BFD_RELOC_TILEPRO_SHAMT_X0",
|
||||
"BFD_RELOC_TILEPRO_SHAMT_X1",
|
||||
"BFD_RELOC_TILEPRO_SHAMT_Y0",
|
||||
"BFD_RELOC_TILEPRO_SHAMT_Y1",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA",
|
||||
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA",
|
||||
"BFD_RELOC_TILEPRO_TLS_DTPMOD32",
|
||||
"BFD_RELOC_TILEPRO_TLS_DTPOFF32",
|
||||
"BFD_RELOC_TILEPRO_TLS_TPOFF32",
|
||||
"BFD_RELOC_TILEGX_HW0",
|
||||
"BFD_RELOC_TILEGX_HW1",
|
||||
"BFD_RELOC_TILEGX_HW2",
|
||||
"BFD_RELOC_TILEGX_HW3",
|
||||
"BFD_RELOC_TILEGX_HW0_LAST",
|
||||
"BFD_RELOC_TILEGX_HW1_LAST",
|
||||
"BFD_RELOC_TILEGX_HW2_LAST",
|
||||
"BFD_RELOC_TILEGX_COPY",
|
||||
"BFD_RELOC_TILEGX_GLOB_DAT",
|
||||
"BFD_RELOC_TILEGX_JMP_SLOT",
|
||||
"BFD_RELOC_TILEGX_RELATIVE",
|
||||
"BFD_RELOC_TILEGX_BROFF_X1",
|
||||
"BFD_RELOC_TILEGX_JUMPOFF_X1",
|
||||
"BFD_RELOC_TILEGX_JUMPOFF_X1_PLT",
|
||||
"BFD_RELOC_TILEGX_IMM8_X0",
|
||||
"BFD_RELOC_TILEGX_IMM8_Y0",
|
||||
"BFD_RELOC_TILEGX_IMM8_X1",
|
||||
"BFD_RELOC_TILEGX_IMM8_Y1",
|
||||
"BFD_RELOC_TILEGX_DEST_IMM8_X1",
|
||||
"BFD_RELOC_TILEGX_MT_IMM14_X1",
|
||||
"BFD_RELOC_TILEGX_MF_IMM14_X1",
|
||||
"BFD_RELOC_TILEGX_MMSTART_X0",
|
||||
"BFD_RELOC_TILEGX_MMEND_X0",
|
||||
"BFD_RELOC_TILEGX_SHAMT_X0",
|
||||
"BFD_RELOC_TILEGX_SHAMT_X1",
|
||||
"BFD_RELOC_TILEGX_SHAMT_Y0",
|
||||
"BFD_RELOC_TILEGX_SHAMT_Y1",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW3",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW3",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE",
|
||||
"BFD_RELOC_TILEGX_TLS_DTPMOD64",
|
||||
"BFD_RELOC_TILEGX_TLS_DTPOFF64",
|
||||
"BFD_RELOC_TILEGX_TLS_TPOFF64",
|
||||
"BFD_RELOC_TILEGX_TLS_DTPMOD32",
|
||||
"BFD_RELOC_TILEGX_TLS_DTPOFF32",
|
||||
"BFD_RELOC_TILEGX_TLS_TPOFF32",
|
||||
"@@overflow: BFD_RELOC_UNUSED@@",
|
||||
};
|
||||
#endif
|
||||
|
342
bfd/reloc.c
342
bfd/reloc.c
@ -5551,6 +5551,348 @@ ENUMDOC
|
||||
This is used to tell the dynamic linker to copy the value out of
|
||||
the dynamic object into the runtime process image.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_TILEPRO_COPY
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_GLOB_DAT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_JMP_SLOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_RELATIVE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_BROFF_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_JOFFLONG_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM8_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM8_Y0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM8_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM8_Y1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_DEST_IMM8_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_MT_IMM15_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_MF_IMM15_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_MMSTART_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_MMEND_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_MMSTART_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_MMEND_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_SHAMT_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_SHAMT_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_SHAMT_Y0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_SHAMT_Y1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_TLS_DTPMOD32
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_TLS_DTPOFF32
|
||||
ENUMX
|
||||
BFD_RELOC_TILEPRO_TLS_TPOFF32
|
||||
ENUMDOC
|
||||
Tilera TILEPro Relocations.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_TILEGX_HW0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_HW1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_HW2
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_HW3
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_HW0_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_HW1_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_HW2_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_COPY
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_GLOB_DAT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_JMP_SLOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_RELATIVE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_BROFF_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_JUMPOFF_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM8_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM8_Y0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM8_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM8_Y1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_DEST_IMM8_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_MT_IMM14_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_MF_IMM14_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_MMSTART_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_MMEND_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_SHAMT_X0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_SHAMT_X1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_SHAMT_Y0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_SHAMT_Y1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_TLS_DTPMOD64
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_TLS_DTPOFF64
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_TLS_TPOFF64
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_TLS_DTPMOD32
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_TLS_DTPOFF32
|
||||
ENUMX
|
||||
BFD_RELOC_TILEGX_TLS_TPOFF32
|
||||
ENUMDOC
|
||||
Tilera TILE-Gx Relocations.
|
||||
|
||||
|
||||
ENDSENUM
|
||||
BFD_RELOC_UNUSED
|
||||
|
@ -692,6 +692,8 @@ extern const bfd_target bfd_elf32_tic6x_elf_be_vec;
|
||||
extern const bfd_target bfd_elf32_tic6x_elf_le_vec;
|
||||
extern const bfd_target bfd_elf32_tic6x_linux_be_vec;
|
||||
extern const bfd_target bfd_elf32_tic6x_linux_le_vec;
|
||||
extern const bfd_target bfd_elf32_tilegx_vec;
|
||||
extern const bfd_target bfd_elf32_tilepro_vec;
|
||||
extern const bfd_target bfd_elf32_tradbigmips_vec;
|
||||
extern const bfd_target bfd_elf32_tradlittlemips_vec;
|
||||
extern const bfd_target bfd_elf32_tradbigmips_freebsd_vec;
|
||||
@ -728,6 +730,7 @@ extern const bfd_target bfd_elf64_sh64nbsd_vec;
|
||||
extern const bfd_target bfd_elf64_sparc_vec;
|
||||
extern const bfd_target bfd_elf64_sparc_freebsd_vec;
|
||||
extern const bfd_target bfd_elf64_sparc_sol2_vec;
|
||||
extern const bfd_target bfd_elf64_tilegx_vec;
|
||||
extern const bfd_target bfd_elf64_tradbigmips_vec;
|
||||
extern const bfd_target bfd_elf64_tradlittlemips_vec;
|
||||
extern const bfd_target bfd_elf64_tradbigmips_freebsd_vec;
|
||||
@ -1051,6 +1054,8 @@ static const bfd_target * const _bfd_target_vector[] =
|
||||
&bfd_elf32_spu_vec,
|
||||
&bfd_elf32_tic6x_be_vec,
|
||||
&bfd_elf32_tic6x_le_vec,
|
||||
&bfd_elf32_tilegx_vec,
|
||||
&bfd_elf32_tilepro_vec,
|
||||
&bfd_elf32_tradbigmips_vec,
|
||||
&bfd_elf32_tradlittlemips_vec,
|
||||
&bfd_elf32_tradbigmips_freebsd_vec,
|
||||
@ -1088,6 +1093,7 @@ static const bfd_target * const _bfd_target_vector[] =
|
||||
&bfd_elf64_sparc_vec,
|
||||
&bfd_elf64_sparc_freebsd_vec,
|
||||
&bfd_elf64_sparc_sol2_vec,
|
||||
&bfd_elf64_tilegx_vec,
|
||||
&bfd_elf64_tradbigmips_vec,
|
||||
&bfd_elf64_tradlittlemips_vec,
|
||||
&bfd_elf64_tradbigmips_freebsd_vec,
|
||||
|
@ -1,3 +1,14 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* readelf.c: Include tilepro.h and tilegx.h.
|
||||
(guess_is_rela): Handle EM_TILEGX and EM_TILEPRO.
|
||||
(dump_relocations): Likewise.
|
||||
(get_machine_name): Likewise.
|
||||
(is_32bit_abs_reloc): Likewise.
|
||||
(is_32bit_pcerel_reloc): Likewise.
|
||||
(is_64bit_abs_reloc): Likewise.
|
||||
(is_64bit_pcrel_reloc): Likewise.
|
||||
|
||||
2011-06-09 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* od-xcoff.c (xcoff32_read_symbols): Allow missing string table
|
||||
|
@ -140,6 +140,8 @@
|
||||
#include "elf/sparc.h"
|
||||
#include "elf/spu.h"
|
||||
#include "elf/tic6x.h"
|
||||
#include "elf/tilegx.h"
|
||||
#include "elf/tilepro.h"
|
||||
#include "elf/v850.h"
|
||||
#include "elf/vax.h"
|
||||
#include "elf/x86-64.h"
|
||||
@ -598,6 +600,8 @@ guess_is_rela (unsigned int e_machine)
|
||||
case EM_SPARCV9:
|
||||
case EM_SPU:
|
||||
case EM_TI_C6000:
|
||||
case EM_TILEGX:
|
||||
case EM_TILEPRO:
|
||||
case EM_V850:
|
||||
case EM_CYGNUS_V850:
|
||||
case EM_VAX:
|
||||
@ -1219,6 +1223,14 @@ dump_relocations (FILE * file,
|
||||
case EM_TI_C6000:
|
||||
rtype = elf_tic6x_reloc_type (type);
|
||||
break;
|
||||
|
||||
case EM_TILEGX:
|
||||
rtype = elf_tilegx_reloc_type (type);
|
||||
break;
|
||||
|
||||
case EM_TILEPRO:
|
||||
rtype = elf_tilepro_reloc_type (type);
|
||||
break;
|
||||
}
|
||||
|
||||
if (rtype == NULL)
|
||||
@ -1965,6 +1977,7 @@ get_machine_name (unsigned e_machine)
|
||||
case EM_STM8: return "STMicroeletronics STM8 8-bit microcontroller";
|
||||
case EM_TILE64: return "Tilera TILE64 multicore architecture family";
|
||||
case EM_TILEPRO: return "Tilera TILEPro multicore architecture family";
|
||||
case EM_TILEGX: return "Tilera TILE-Gx multicore architecture family";
|
||||
case EM_CUDA: return "NVIDIA CUDA architecture";
|
||||
default:
|
||||
snprintf (buff, sizeof (buff), _("<unknown>: 0x%x"), e_machine);
|
||||
@ -9731,6 +9744,10 @@ is_32bit_abs_reloc (unsigned int reloc_type)
|
||||
return reloc_type == 6; /* R_SPU_ADDR32 */
|
||||
case EM_TI_C6000:
|
||||
return reloc_type == 1; /* R_C6000_ABS32. */
|
||||
case EM_TILEGX:
|
||||
return reloc_type == 2; /* R_TILEGX_32. */
|
||||
case EM_TILEPRO:
|
||||
return reloc_type == 1; /* R_TILEPRO_32. */
|
||||
case EM_CYGNUS_V850:
|
||||
case EM_V850:
|
||||
return reloc_type == 6; /* R_V850_ABS32. */
|
||||
@ -9790,6 +9807,10 @@ is_32bit_pcrel_reloc (unsigned int reloc_type)
|
||||
return reloc_type == 6; /* R_SPARC_DISP32. */
|
||||
case EM_SPU:
|
||||
return reloc_type == 13; /* R_SPU_REL32. */
|
||||
case EM_TILEGX:
|
||||
return reloc_type == 6; /* R_TILEGX_32_PCREL. */
|
||||
case EM_TILEPRO:
|
||||
return reloc_type == 4; /* R_TILEPRO_32_PCREL. */
|
||||
case EM_X86_64:
|
||||
case EM_L1OM:
|
||||
return reloc_type == 2; /* R_X86_64_PC32. */
|
||||
@ -9831,9 +9852,11 @@ is_64bit_abs_reloc (unsigned int reloc_type)
|
||||
return reloc_type == 1; /* R_X86_64_64. */
|
||||
case EM_S390_OLD:
|
||||
case EM_S390:
|
||||
return reloc_type == 22; /* R_S390_64 */
|
||||
return reloc_type == 22; /* R_S390_64. */
|
||||
case EM_TILEGX:
|
||||
return reloc_type == 1; /* R_TILEGX_64. */
|
||||
case EM_MIPS:
|
||||
return reloc_type == 18; /* R_MIPS_64 */
|
||||
return reloc_type == 18; /* R_MIPS_64. */
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
@ -9848,23 +9871,25 @@ is_64bit_pcrel_reloc (unsigned int reloc_type)
|
||||
switch (elf_header.e_machine)
|
||||
{
|
||||
case EM_ALPHA:
|
||||
return reloc_type == 11; /* R_ALPHA_SREL64 */
|
||||
return reloc_type == 11; /* R_ALPHA_SREL64. */
|
||||
case EM_IA_64:
|
||||
return reloc_type == 0x4f; /* R_IA64_PCREL64LSB */
|
||||
return reloc_type == 0x4f; /* R_IA64_PCREL64LSB. */
|
||||
case EM_PARISC:
|
||||
return reloc_type == 72; /* R_PARISC_PCREL64 */
|
||||
return reloc_type == 72; /* R_PARISC_PCREL64. */
|
||||
case EM_PPC64:
|
||||
return reloc_type == 44; /* R_PPC64_REL64 */
|
||||
return reloc_type == 44; /* R_PPC64_REL64. */
|
||||
case EM_SPARC32PLUS:
|
||||
case EM_SPARCV9:
|
||||
case EM_SPARC:
|
||||
return reloc_type == 46; /* R_SPARC_DISP64 */
|
||||
return reloc_type == 46; /* R_SPARC_DISP64. */
|
||||
case EM_X86_64:
|
||||
case EM_L1OM:
|
||||
return reloc_type == 24; /* R_X86_64_PC64 */
|
||||
return reloc_type == 24; /* R_X86_64_PC64. */
|
||||
case EM_S390_OLD:
|
||||
case EM_S390:
|
||||
return reloc_type == 23; /* R_S390_PC64 */
|
||||
return reloc_type == 23; /* R_S390_PC64. */
|
||||
case EM_TILEGX:
|
||||
return reloc_type == 5; /* R_TILEGX_64_PCREL. */
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
@ -9956,6 +9981,8 @@ is_none_reloc (unsigned int reloc_type)
|
||||
case EM_MOXIE: /* R_MOXIE_NONE. */
|
||||
case EM_M32R: /* R_M32R_NONE. */
|
||||
case EM_TI_C6000:/* R_C6000_NONE. */
|
||||
case EM_TILEGX: /* R_TILEGX_NONE. */
|
||||
case EM_TILEPRO: /* R_TILEPRO_NONE. */
|
||||
case EM_XC16X:
|
||||
case EM_C166: /* R_XC16X_NONE. */
|
||||
return reloc_type == 0;
|
||||
|
@ -1,3 +1,26 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-tilegx.c and
|
||||
config/tc-tilepro.c.
|
||||
(TARGET_CPU_HFILES): Add config/tc-tilegx.h and
|
||||
config/tc-tilepro.h.
|
||||
* Makefile.in: Regenerate.
|
||||
* configure.tgt (tilepro-*-*): New.
|
||||
(tilegx-*-*): Likewise.
|
||||
* config/tc-tilegx.c: New file.
|
||||
* config/tc-tilegx.h: Likewise.
|
||||
* config/tc-tilepro.h: Likewise.
|
||||
* config/tc-tilepro.c: Likewise.
|
||||
* doc/Makefile.am (CPU_DOCS): Add c-tilegx.texi and
|
||||
c-tilepro.texi.
|
||||
* doc/Makefile.in: Regenerate.
|
||||
* doc/all.texi (TILEGX): Define.
|
||||
(TILEPRO): Define.
|
||||
* doc/as.texinfo: Add Tile-Gx and TILEPro documentation. Include
|
||||
c-tilegx.texi and c-tilepro.texi.
|
||||
* doc/c-tilegx.texi: New.
|
||||
* doc/c-tilepro.texi: New.
|
||||
|
||||
2011-06-13 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR gas/12854
|
||||
|
@ -161,6 +161,8 @@ TARGET_CPU_CFILES = \
|
||||
config/tc-tic4x.c \
|
||||
config/tc-tic54x.c \
|
||||
config/tc-tic6x.c \
|
||||
config/tc-tilegx.c \
|
||||
config/tc-tilepro.c \
|
||||
config/tc-vax.c \
|
||||
config/tc-v850.c \
|
||||
config/tc-xstormy16.c \
|
||||
@ -224,6 +226,8 @@ TARGET_CPU_HFILES = \
|
||||
config/tc-tic4x.h \
|
||||
config/tc-tic54x.h \
|
||||
config/tc-tic6x.h \
|
||||
config/tc-tilegx.h \
|
||||
config/tc-tilepro.h \
|
||||
config/tc-vax.h \
|
||||
config/tc-v850.h \
|
||||
config/tc-xstormy16.h \
|
||||
|
@ -428,6 +428,8 @@ TARGET_CPU_CFILES = \
|
||||
config/tc-tic4x.c \
|
||||
config/tc-tic54x.c \
|
||||
config/tc-tic6x.c \
|
||||
config/tc-tilegx.c \
|
||||
config/tc-tilepro.c \
|
||||
config/tc-vax.c \
|
||||
config/tc-v850.c \
|
||||
config/tc-xstormy16.c \
|
||||
@ -491,6 +493,8 @@ TARGET_CPU_HFILES = \
|
||||
config/tc-tic4x.h \
|
||||
config/tc-tic54x.h \
|
||||
config/tc-tic6x.h \
|
||||
config/tc-tilegx.h \
|
||||
config/tc-tilepro.h \
|
||||
config/tc-vax.h \
|
||||
config/tc-v850.h \
|
||||
config/tc-xstormy16.h \
|
||||
@ -835,6 +839,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tic4x.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tic54x.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tic6x.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tilegx.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tilepro.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-v850.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-vax.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xc16x.Po@am__quote@
|
||||
@ -1623,6 +1629,34 @@ tc-tic6x.obj: config/tc-tic6x.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-tic6x.obj `if test -f 'config/tc-tic6x.c'; then $(CYGPATH_W) 'config/tc-tic6x.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-tic6x.c'; fi`
|
||||
|
||||
tc-tilegx.o: config/tc-tilegx.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-tilegx.o -MD -MP -MF $(DEPDIR)/tc-tilegx.Tpo -c -o tc-tilegx.o `test -f 'config/tc-tilegx.c' || echo '$(srcdir)/'`config/tc-tilegx.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-tilegx.Tpo $(DEPDIR)/tc-tilegx.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-tilegx.c' object='tc-tilegx.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-tilegx.o `test -f 'config/tc-tilegx.c' || echo '$(srcdir)/'`config/tc-tilegx.c
|
||||
|
||||
tc-tilegx.obj: config/tc-tilegx.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-tilegx.obj -MD -MP -MF $(DEPDIR)/tc-tilegx.Tpo -c -o tc-tilegx.obj `if test -f 'config/tc-tilegx.c'; then $(CYGPATH_W) 'config/tc-tilegx.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-tilegx.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-tilegx.Tpo $(DEPDIR)/tc-tilegx.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-tilegx.c' object='tc-tilegx.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-tilegx.obj `if test -f 'config/tc-tilegx.c'; then $(CYGPATH_W) 'config/tc-tilegx.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-tilegx.c'; fi`
|
||||
|
||||
tc-tilepro.o: config/tc-tilepro.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-tilepro.o -MD -MP -MF $(DEPDIR)/tc-tilepro.Tpo -c -o tc-tilepro.o `test -f 'config/tc-tilepro.c' || echo '$(srcdir)/'`config/tc-tilepro.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-tilepro.Tpo $(DEPDIR)/tc-tilepro.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-tilepro.c' object='tc-tilepro.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-tilepro.o `test -f 'config/tc-tilepro.c' || echo '$(srcdir)/'`config/tc-tilepro.c
|
||||
|
||||
tc-tilepro.obj: config/tc-tilepro.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-tilepro.obj -MD -MP -MF $(DEPDIR)/tc-tilepro.Tpo -c -o tc-tilepro.obj `if test -f 'config/tc-tilepro.c'; then $(CYGPATH_W) 'config/tc-tilepro.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-tilepro.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-tilepro.Tpo $(DEPDIR)/tc-tilepro.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-tilepro.c' object='tc-tilepro.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-tilepro.obj `if test -f 'config/tc-tilepro.c'; then $(CYGPATH_W) 'config/tc-tilepro.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-tilepro.c'; fi`
|
||||
|
||||
tc-vax.o: config/tc-vax.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-vax.o -MD -MP -MF $(DEPDIR)/tc-vax.Tpo -c -o tc-vax.o `test -f 'config/tc-vax.c' || echo '$(srcdir)/'`config/tc-vax.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-vax.Tpo $(DEPDIR)/tc-vax.Po
|
||||
|
1844
gas/config/tc-tilegx.c
Normal file
1844
gas/config/tc-tilegx.c
Normal file
File diff suppressed because it is too large
Load Diff
93
gas/config/tc-tilegx.h
Normal file
93
gas/config/tc-tilegx.h
Normal file
@ -0,0 +1,93 @@
|
||||
/* tc-tilegx.h - Macros and type defines for a TILE-Gx chip.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef TC_TILEGX
|
||||
|
||||
#include "opcode/tilegx.h"
|
||||
|
||||
#define TC_TILEGX
|
||||
|
||||
#define TARGET_BYTES_BIG_ENDIAN 0
|
||||
|
||||
#define WORKING_DOT_WORD
|
||||
|
||||
#define TARGET_ARCH bfd_arch_tilegx
|
||||
|
||||
extern const char * tilegx_target_format (void);
|
||||
#define TARGET_FORMAT tilegx_target_format ()
|
||||
|
||||
#define DWARF2_LINE_MIN_INSN_LENGTH 8
|
||||
|
||||
#define md_number_to_chars number_to_chars_littleendian
|
||||
|
||||
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
|
||||
|
||||
#define HANDLE_ALIGN(fragp) tilegx_handle_align (fragp)
|
||||
extern void tilegx_handle_align (struct frag *);
|
||||
|
||||
#define MAX_MEM_FOR_RS_ALIGN_CODE (7 + 8)
|
||||
|
||||
struct tilegx_operand;
|
||||
#define TC_FIX_TYPE const struct tilegx_operand *
|
||||
|
||||
/* Initialize the TC_FIX_TYPE field. */
|
||||
#define TC_INIT_FIX_DATA(FIX) \
|
||||
FIX->tc_fix_data = 0
|
||||
|
||||
extern void tilegx_cons_fix_new (struct frag *, int,
|
||||
int, struct expressionS *);
|
||||
#define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \
|
||||
tilegx_cons_fix_new (FRAG, WHERE, NBYTES, EXP)
|
||||
|
||||
extern int tilegx_parse_name (char *, expressionS *, char *);
|
||||
#define md_parse_name(name, e, m, nextP) tilegx_parse_name (name, e, nextP)
|
||||
|
||||
extern int tilegx_fix_adjustable (struct fix *);
|
||||
#define tc_fix_adjustable(FIX) tilegx_fix_adjustable (FIX)
|
||||
|
||||
extern int tilegx_unrecognized_line (int);
|
||||
#define tc_unrecognized_line(ch) tilegx_unrecognized_line (ch)
|
||||
|
||||
/* Values passed to md_apply_fix3 don't include the symbol value. */
|
||||
#define MD_APPLY_SYM_VALUE(FIX) 0
|
||||
|
||||
#define md_convert_frag(b,s,f) \
|
||||
as_fatal ("tilegx convert_frag called")
|
||||
#define md_estimate_size_before_relax(f,s) \
|
||||
(as_fatal ("tilegx estimate_size_before_relax called"),1)
|
||||
#define md_operand(x)
|
||||
|
||||
#define md_section_align(seg,size) (size)
|
||||
|
||||
/* We want .cfi_* pseudo-ops for generating unwind info. */
|
||||
#define TARGET_USE_CFIPOP 1
|
||||
|
||||
#define tc_cfi_frame_initial_instructions tilegx_cfi_frame_initial_instructions
|
||||
extern void tilegx_cfi_frame_initial_instructions (void);
|
||||
|
||||
#define tc_regname_to_dw2regnum tc_tilegx_regname_to_dw2regnum
|
||||
extern int tc_tilegx_regname_to_dw2regnum (char *);
|
||||
|
||||
extern int tilegx_cie_data_alignment;
|
||||
|
||||
#define DWARF2_DEFAULT_RETURN_COLUMN 55
|
||||
#define DWARF2_CIE_DATA_ALIGNMENT tilegx_cie_data_alignment
|
||||
|
||||
#endif /* TC_TILEGX */
|
1645
gas/config/tc-tilepro.c
Normal file
1645
gas/config/tc-tilepro.c
Normal file
File diff suppressed because it is too large
Load Diff
93
gas/config/tc-tilepro.h
Normal file
93
gas/config/tc-tilepro.h
Normal file
@ -0,0 +1,93 @@
|
||||
/* tc-tile.h - Macros and type defines for a TILEPro chip.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef TC_TILEPRO
|
||||
|
||||
#include "opcode/tilepro.h"
|
||||
|
||||
#define TC_TILEPRO
|
||||
|
||||
#define TARGET_BYTES_BIG_ENDIAN 0
|
||||
|
||||
#define WORKING_DOT_WORD
|
||||
|
||||
#define TARGET_ARCH bfd_arch_tilepro
|
||||
|
||||
#define TARGET_FORMAT "elf32-tilepro"
|
||||
|
||||
|
||||
#define DWARF2_LINE_MIN_INSN_LENGTH 8
|
||||
|
||||
#define md_number_to_chars number_to_chars_littleendian
|
||||
|
||||
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
|
||||
|
||||
#define HANDLE_ALIGN(fragp) tilepro_handle_align (fragp)
|
||||
extern void tilepro_handle_align (struct frag *);
|
||||
|
||||
#define MAX_MEM_FOR_RS_ALIGN_CODE (7 + 8)
|
||||
|
||||
struct tilepro_operand;
|
||||
#define TC_FIX_TYPE const struct tilepro_operand *
|
||||
|
||||
/* Initialize the TC_FIX_TYPE field. */
|
||||
#define TC_INIT_FIX_DATA(FIX) \
|
||||
FIX->tc_fix_data = 0
|
||||
|
||||
extern void tilepro_cons_fix_new (struct frag *, int,
|
||||
int, struct expressionS *);
|
||||
|
||||
#define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \
|
||||
tilepro_cons_fix_new (FRAG, WHERE, NBYTES, EXP)
|
||||
|
||||
extern int tilepro_parse_name (char *, expressionS *, char *);
|
||||
#define md_parse_name(name, e, m, nextP) tilepro_parse_name (name, e, nextP)
|
||||
|
||||
extern int tilepro_fix_adjustable (struct fix *);
|
||||
#define tc_fix_adjustable(FIX) tilepro_fix_adjustable (FIX)
|
||||
|
||||
extern int tilepro_unrecognized_line (int);
|
||||
#define tc_unrecognized_line(ch) tilepro_unrecognized_line (ch)
|
||||
|
||||
/* Values passed to md_apply_fix3 don't include the symbol value. */
|
||||
#define MD_APPLY_SYM_VALUE(FIX) 0
|
||||
|
||||
#define md_convert_frag(b,s,f) \
|
||||
as_fatal ("tilepro convert_frag called")
|
||||
#define md_estimate_size_before_relax(f,s) \
|
||||
(as_fatal ("tilepro estimate_size_before_relax called"),1)
|
||||
#define md_operand(x)
|
||||
|
||||
#define md_section_align(seg,size) (size)
|
||||
|
||||
/* We want .cfi_* pseudo-ops for generating unwind info. */
|
||||
#define TARGET_USE_CFIPOP 1
|
||||
|
||||
#define tc_cfi_frame_initial_instructions \
|
||||
tilepro_cfi_frame_initial_instructions
|
||||
extern void tilepro_cfi_frame_initial_instructions (void);
|
||||
|
||||
#define tc_regname_to_dw2regnum tc_tilepro_regname_to_dw2regnum
|
||||
extern int tc_tilepro_regname_to_dw2regnum (char *);
|
||||
|
||||
#define DWARF2_DEFAULT_RETURN_COLUMN 55
|
||||
#define DWARF2_CIE_DATA_ALIGNMENT (-4)
|
||||
|
||||
#endif /* TC_TILEPRO */
|
@ -399,6 +399,8 @@ case ${generic_target} in
|
||||
tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
|
||||
tic6x-*-*) fmt=elf ;;
|
||||
|
||||
tilepro-*-* | tilegx-*-*) fmt=elf ;;
|
||||
|
||||
v850*-*-*) fmt=elf ;;
|
||||
|
||||
vax-*-netbsdelf*) fmt=elf em=nbsd ;;
|
||||
|
@ -66,6 +66,8 @@ CPU_DOCS = \
|
||||
c-sparc.texi \
|
||||
c-tic54x.texi \
|
||||
c-tic6x.texi \
|
||||
c-tilegx.texi \
|
||||
c-tilepro.texi \
|
||||
c-vax.texi \
|
||||
c-v850.texi \
|
||||
c-xtensa.texi \
|
||||
|
@ -306,6 +306,8 @@ CPU_DOCS = \
|
||||
c-sparc.texi \
|
||||
c-tic54x.texi \
|
||||
c-tic6x.texi \
|
||||
c-tilegx.texi \
|
||||
c-tilepro.texi \
|
||||
c-vax.texi \
|
||||
c-v850.texi \
|
||||
c-xtensa.texi \
|
||||
|
@ -66,6 +66,8 @@
|
||||
@set SPARC
|
||||
@set TIC54X
|
||||
@set TIC6X
|
||||
@set TILEGX
|
||||
@set TILEPRO
|
||||
@set V850
|
||||
@set VAX
|
||||
@set XTENSA
|
||||
|
@ -487,6 +487,14 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
|
||||
[@b{-mdsbt}|@b{-mno-dsbt}] [@b{-mpid=no}|@b{-mpid=near}|@b{-mpid=far}]
|
||||
[@b{-mpic}|@b{-mno-pic}]
|
||||
@end ifset
|
||||
@ifset TILEGX
|
||||
|
||||
@emph{Target TILE-Gx options:}
|
||||
[@b{-m32}|@b{-m64}]
|
||||
@end ifset
|
||||
@ifset TILEPRO
|
||||
@c TILEPro has no machine-dependent assembler options
|
||||
@end ifset
|
||||
|
||||
@ifset XTENSA
|
||||
|
||||
@ -1364,6 +1372,25 @@ TMS320C6000 processor.
|
||||
|
||||
@end ifset
|
||||
|
||||
@ifset TILEGX
|
||||
|
||||
@ifclear man
|
||||
@xref{TILE-Gx Options}, for the options available when @value{AS} is configured
|
||||
for a TILE-Gx processor.
|
||||
@end ifclear
|
||||
|
||||
@ifset man
|
||||
@c man begin OPTIONS
|
||||
The following options are available when @value{AS} is configured for a TILE-Gx
|
||||
processor.
|
||||
@c man end
|
||||
@c man begin INCLUDE
|
||||
@include c-tilegx.texi
|
||||
@c ended inside the included file
|
||||
@end ifset
|
||||
|
||||
@end ifset
|
||||
|
||||
@ifset XTENSA
|
||||
|
||||
@ifclear man
|
||||
@ -6881,6 +6908,12 @@ subject, see the hardware manufacturer's manual.
|
||||
@ifset TIC6X
|
||||
* TIC6X-Dependent :: TI TMS320C6x Dependent Features
|
||||
@end ifset
|
||||
@ifset TILEGX
|
||||
* TILE-Gx-Dependent :: Tilera TILE-Gx Dependent Features
|
||||
@end ifset
|
||||
@ifset TILEPRO
|
||||
* TILEPro-Dependent :: Tilera TILEPro Dependent Features
|
||||
@end ifset
|
||||
@ifset V850
|
||||
* V850-Dependent:: V850 Dependent Features
|
||||
@end ifset
|
||||
@ -7076,6 +7109,14 @@ family.
|
||||
@include c-tic6x.texi
|
||||
@end ifset
|
||||
|
||||
@ifset TILEGX
|
||||
@include c-tilegx.texi
|
||||
@end ifset
|
||||
|
||||
@ifset TILEPRO
|
||||
@include c-tilepro.texi
|
||||
@end ifset
|
||||
|
||||
@ifset Z80
|
||||
@include c-z80.texi
|
||||
@end ifset
|
||||
|
369
gas/doc/c-tilegx.texi
Normal file
369
gas/doc/c-tilegx.texi
Normal file
@ -0,0 +1,369 @@
|
||||
@c Copyright 2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c This is part of the GAS manual.
|
||||
@c For copying conditions, see the file as.texinfo.
|
||||
@c man end
|
||||
|
||||
@ifset GENERIC
|
||||
@page
|
||||
@node TILE-Gx-Dependent
|
||||
@chapter TILE-Gx Dependent Features
|
||||
@end ifset
|
||||
@ifclear GENERIC
|
||||
@node Machine Dependencies
|
||||
@chapter TILE-Gx Dependent Features
|
||||
@end ifclear
|
||||
|
||||
@cindex TILE-Gx support
|
||||
@menu
|
||||
* TILE-Gx Options:: TILE-Gx Options
|
||||
* TILE-Gx Syntax:: TILE-Gx Syntax
|
||||
* TILE-Gx Directives:: TILE-Gx Directives
|
||||
@end menu
|
||||
|
||||
@node TILE-Gx Options
|
||||
@section Options
|
||||
|
||||
The following table lists all available TILE-Gx specific options:
|
||||
|
||||
@c man begin OPTIONS
|
||||
@table @gcctabopt
|
||||
@cindex @samp{-m32} option, TILE-Gx
|
||||
@cindex @samp{-m64} option, TILE-Gx
|
||||
@item -m32 | -m64
|
||||
Select the word size, either 32 bits or 64 bits.
|
||||
|
||||
@end table
|
||||
@c man end
|
||||
|
||||
@node TILE-Gx Syntax
|
||||
@section Syntax
|
||||
@cindex TILE-Gx syntax
|
||||
@cindex syntax, TILE-Gx
|
||||
|
||||
Block comments are delimited by @samp{/*} and @samp{*/}. End of line
|
||||
comments may be introduced by @samp{#}.
|
||||
|
||||
Instructions consist of a leading opcode or macro name followed by
|
||||
whitespace and an optional comma-separated list of operands:
|
||||
|
||||
@smallexample
|
||||
@var{opcode} [@var{operand}, @dots{}]
|
||||
@end smallexample
|
||||
|
||||
Instructions must be separated by a newline or semicolon.
|
||||
|
||||
There are two ways to write code: either write naked instructions,
|
||||
which the assembler is free to combine into VLIW bundles, or specify
|
||||
the VLIW bundles explicitly.
|
||||
|
||||
Bundles are specified using curly braces:
|
||||
|
||||
@smallexample
|
||||
@{ @var{add} r3,r4,r5 ; @var{add} r7,r8,r9 ; @var{lw} r10,r11 @}
|
||||
@end smallexample
|
||||
|
||||
A bundle can span multiple lines. If you want to put multiple
|
||||
instructions on a line, whether in a bundle or not, you need to
|
||||
separate them with semicolons as in this example.
|
||||
|
||||
A bundle may contain one or more instructions, up to the limit
|
||||
specified by the ISA (currently three). If fewer instructions are
|
||||
specified than the hardware supports in a bundle, the assembler
|
||||
inserts @code{fnop} instructions automatically.
|
||||
|
||||
The assembler will prefer to preserve the ordering of instructions
|
||||
within the bundle, putting the first instruction in a lower-numbered
|
||||
pipeline than the next one, etc. This fact, combined with the
|
||||
optional use of explicit @code{fnop} or @code{nop} instructions,
|
||||
allows precise control over which pipeline executes each instruction.
|
||||
|
||||
If the instructions cannot be bundled in the listed order, the
|
||||
assembler will automatically try to find a valid pipeline
|
||||
assignment. If there is no way to bundle the instructions together,
|
||||
the assembler reports an error.
|
||||
|
||||
The assembler does not yet auto-bundle (automatically combine multiple
|
||||
instructions into one bundle), but it reserves the right to do so in
|
||||
the future. If you want to force an instruction to run by itself, put
|
||||
it in a bundle explicitly with curly braces and use @code{nop}
|
||||
instructions (not @code{fnop}) to fill the remaining pipeline slots in
|
||||
that bundle.
|
||||
|
||||
@menu
|
||||
* TILE-Gx Opcodes:: Opcode Naming Conventions.
|
||||
* TILE-Gx Registers:: Register Naming.
|
||||
* TILE-Gx Modifiers:: Symbolic Operand Modifiers.
|
||||
@end menu
|
||||
|
||||
@node TILE-Gx Opcodes
|
||||
@subsection Opcode Names
|
||||
@cindex TILE-Gx opcode names
|
||||
@cindex opcode names, TILE-Gx
|
||||
|
||||
For a complete list of opcodes and descriptions of their semantics,
|
||||
see @cite{TILE-Gx Instruction Set Architecture}, available upon
|
||||
request at www.tilera.com.
|
||||
|
||||
@node TILE-Gx Registers
|
||||
@subsection Register Names
|
||||
@cindex TILE-Gx register names
|
||||
@cindex register names, TILE-Gx
|
||||
|
||||
General-purpose registers are represented by predefined symbols of the
|
||||
form @samp{r@var{N}}, where @var{N} represents a number between
|
||||
@code{0} and @code{63}. However, the following registers have
|
||||
canonical names that must be used instead:
|
||||
|
||||
@table @code
|
||||
@item r54
|
||||
sp
|
||||
|
||||
@item r55
|
||||
lr
|
||||
|
||||
@item r56
|
||||
sn
|
||||
|
||||
@item r57
|
||||
idn0
|
||||
|
||||
@item r58
|
||||
idn1
|
||||
|
||||
@item r59
|
||||
udn0
|
||||
|
||||
@item r60
|
||||
udn1
|
||||
|
||||
@item r61
|
||||
udn2
|
||||
|
||||
@item r62
|
||||
udn3
|
||||
|
||||
@item r63
|
||||
zero
|
||||
|
||||
@end table
|
||||
|
||||
The assembler will emit a warning if a numeric name is used instead of
|
||||
the non-numeric name. The @code{.no_require_canonical_reg_names}
|
||||
assembler pseudo-op turns off this
|
||||
warning. @code{.require_canonical_reg_names} turns it back on.
|
||||
|
||||
@node TILE-Gx Modifiers
|
||||
@subsection Symbolic Operand Modifiers
|
||||
@cindex TILE-Gx modifiers
|
||||
@cindex symbol modifiers, TILE-Gx
|
||||
|
||||
The assembler supports several modifiers when using symbol addresses
|
||||
in TILE-Gx instruction operands. The general syntax is the following:
|
||||
|
||||
@smallexample
|
||||
modifier(symbol)
|
||||
@end smallexample
|
||||
|
||||
The following modifiers are supported:
|
||||
|
||||
@table @code
|
||||
|
||||
@item hw0
|
||||
|
||||
This modifier is used to load bits 0-15 of the symbol's address.
|
||||
|
||||
@item hw1
|
||||
|
||||
This modifier is used to load bits 16-31 of the symbol's address.
|
||||
|
||||
@item hw2
|
||||
|
||||
This modifier is used to load bits 32-47 of the symbol's address.
|
||||
|
||||
@item hw3
|
||||
|
||||
This modifier is used to load bits 48-63 of the symbol's address.
|
||||
|
||||
@item hw0_last
|
||||
|
||||
This modifier yields the same value as @code{hw0}, but it also checks
|
||||
that the value does not overflow.
|
||||
|
||||
@item hw1_last
|
||||
|
||||
This modifier yields the same value as @code{hw1}, but it also checks
|
||||
that the value does not overflow.
|
||||
|
||||
@item hw2_last
|
||||
|
||||
This modifier yields the same value as @code{hw2}, but it also checks
|
||||
that the value does not overflow.
|
||||
|
||||
A 48-bit symbolic value is constructed by using the following idiom:
|
||||
|
||||
@smallexample
|
||||
moveli r0, hw2_last(sym)
|
||||
shl16insli r0, r0, hw1(sym)
|
||||
shl16insli r0, r0, hw0(sym)
|
||||
@end smallexample
|
||||
|
||||
@item hw0_got
|
||||
|
||||
This modifier is used to load bits 0-15 of the symbol's offset in the
|
||||
GOT entry corresponding to the symbol.
|
||||
|
||||
@item hw1_got
|
||||
|
||||
This modifier is used to load bits 16-31 of the symbol's offset in the
|
||||
GOT entry corresponding to the symbol.
|
||||
|
||||
@item hw2_got
|
||||
|
||||
This modifier is used to load bits 32-47 of the symbol's offset in the
|
||||
GOT entry corresponding to the symbol.
|
||||
|
||||
@item hw3_got
|
||||
|
||||
This modifier is used to load bits 48-63 of the symbol's offset in the
|
||||
GOT entry corresponding to the symbol.
|
||||
|
||||
@item hw0_last_got
|
||||
|
||||
This modifier yields the same value as @code{hw0_got}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw1_last_got
|
||||
|
||||
This modifier yields the same value as @code{hw1_got}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw2_last_got
|
||||
|
||||
This modifier yields the same value as @code{hw2_got}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item plt
|
||||
|
||||
This modifier is used for function symbols. It causes a
|
||||
@emph{procedure linkage table}, an array of code stubs, to be created
|
||||
at the time the shared object is created or linked against, together
|
||||
with a global offset table entry. The value is a pc-relative offset
|
||||
to the corresponding stub code in the procedure linkage table. This
|
||||
arrangement causes the run-time symbol resolver to be called to look
|
||||
up and set the value of the symbol the first time the function is
|
||||
called (at latest; depending environment variables). It is only safe
|
||||
to leave the symbol unresolved this way if all references are function
|
||||
calls.
|
||||
|
||||
@item hw0_tls_gd
|
||||
|
||||
This modifier is used to load bits 0-15 of the offset of the GOT entry
|
||||
of the symbol's TLS descriptor, to be used for general-dynamic TLS
|
||||
accesses.
|
||||
|
||||
@item hw1_tls_gd
|
||||
|
||||
This modifier is used to load bits 16-31 of the offset of the GOT
|
||||
entry of the symbol's TLS descriptor, to be used for general-dynamic
|
||||
TLS accesses.
|
||||
|
||||
@item hw2_tls_gd
|
||||
|
||||
This modifier is used to load bits 32-47 of the offset of the GOT
|
||||
entry of the symbol's TLS descriptor, to be used for general-dynamic
|
||||
TLS accesses.
|
||||
|
||||
@item hw3_tls_gd
|
||||
|
||||
This modifier is used to load bits 48-63 of the offset of the GOT
|
||||
entry of the symbol's TLS descriptor, to be used for general-dynamic
|
||||
TLS accesses.
|
||||
|
||||
@item hw0_last_tls_gd
|
||||
|
||||
This modifier yields the same value as @code{hw0_tls_gd}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw1_last_tls_gd
|
||||
|
||||
This modifier yields the same value as @code{hw1_tls_gd}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw2_last_tls_gd
|
||||
|
||||
This modifier yields the same value as @code{hw2_tls_gd}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw0_tls_ie
|
||||
|
||||
This modifier is used to load bits 0-15 of the offset of the GOT entry
|
||||
containing the offset of the symbol's address from the TCB, to be used
|
||||
for initial-exec TLS accesses.
|
||||
|
||||
@item hw1_tls_ie
|
||||
|
||||
This modifier is used to load bits 16-31 of the offset of the GOT
|
||||
entry containing the offset of the symbol's address from the TCB, to
|
||||
be used for initial-exec TLS accesses.
|
||||
|
||||
@item hw2_tls_ie
|
||||
|
||||
This modifier is used to load bits 32-47 of the offset of the GOT entry
|
||||
containing the offset of the symbol's address from the TCB, to be used
|
||||
for initial-exec TLS accesses.
|
||||
|
||||
@item hw3_tls_ie
|
||||
|
||||
This modifier is used to load bits 48-63 of the offset of the GOT
|
||||
entry containing the offset of the symbol's address from the TCB, to
|
||||
be used for initial-exec TLS accesses.
|
||||
|
||||
@item hw0_last_tls_ie
|
||||
|
||||
This modifier yields the same value as @code{hw0_tls_ie}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw1_last_tls_ie
|
||||
|
||||
This modifier yields the same value as @code{hw1_tls_ie}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@item hw2_last_tls_ie
|
||||
|
||||
This modifier yields the same value as @code{hw2_tls_ie}, but it also
|
||||
checks that the value does not overflow.
|
||||
|
||||
@end table
|
||||
|
||||
@node TILE-Gx Directives
|
||||
@section TILE-Gx Directives
|
||||
@cindex machine directives, TILE-Gx
|
||||
@cindex TILE-Gx machine directives
|
||||
|
||||
@table @code
|
||||
|
||||
@cindex @code{.align} directive, TILE-Gx
|
||||
@item .align @var{expression} [, @var{expression}]
|
||||
This is the generic @var{.align} directive. The first argument is the
|
||||
requested alignment in bytes.
|
||||
|
||||
@cindex @code{.allow_suspicious_bundles} directive, TILE-Gx
|
||||
@item .allow_suspicious_bundles
|
||||
Turns on error checking for combinations of instructions in a bundle
|
||||
that probably indicate a programming error. This is on by default.
|
||||
|
||||
@item .no_allow_suspicious_bundles
|
||||
Turns off error checking for combinations of instructions in a bundle
|
||||
that probably indicate a programming error.
|
||||
|
||||
@cindex @code{.require_canonical_reg_names} directive, TILE-Gx
|
||||
@item .require_canonical_reg_names
|
||||
Require that canonical register names be used, and emit a warning if
|
||||
the numeric names are used. This is on by default.
|
||||
|
||||
@item .no_require_canonical_reg_names
|
||||
Permit the use of numeric names for registers that have canonical
|
||||
names.
|
||||
|
||||
@end table
|
297
gas/doc/c-tilepro.texi
Normal file
297
gas/doc/c-tilepro.texi
Normal file
@ -0,0 +1,297 @@
|
||||
@c Copyright 2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c This is part of the GAS manual.
|
||||
@c For copying conditions, see the file as.texinfo.
|
||||
@ifset GENERIC
|
||||
@page
|
||||
@node TILEPro-Dependent
|
||||
@chapter TILEPro Dependent Features
|
||||
@end ifset
|
||||
@ifclear GENERIC
|
||||
@node Machine Dependencies
|
||||
@chapter TILEPro Dependent Features
|
||||
@end ifclear
|
||||
|
||||
@cindex TILEPro support
|
||||
@menu
|
||||
* TILEPro Options:: TILEPro Options
|
||||
* TILEPro Syntax:: TILEPro Syntax
|
||||
* TILEPro Directives:: TILEPro Directives
|
||||
@end menu
|
||||
|
||||
@node TILEPro Options
|
||||
@section Options
|
||||
|
||||
@code{@value{AS}} has no machine-dependent command-line options for
|
||||
TILEPro.
|
||||
|
||||
@node TILEPro Syntax
|
||||
@section Syntax
|
||||
@cindex TILEPro syntax
|
||||
@cindex syntax, TILEPro
|
||||
|
||||
Block comments are delimited by @samp{/*} and @samp{*/}. End of line
|
||||
comments may be introduced by @samp{#}.
|
||||
|
||||
Instructions consist of a leading opcode or macro name followed by
|
||||
whitespace and an optional comma-separated list of operands:
|
||||
|
||||
@smallexample
|
||||
@var{opcode} [@var{operand}, @dots{}]
|
||||
@end smallexample
|
||||
|
||||
Instructions must be separated by a newline or semicolon.
|
||||
|
||||
There are two ways to write code: either write naked instructions,
|
||||
which the assembler is free to combine into VLIW bundles, or specify
|
||||
the VLIW bundles explicitly.
|
||||
|
||||
Bundles are specified using curly braces:
|
||||
|
||||
@smallexample
|
||||
@{ @var{add} r3,r4,r5 ; @var{add} r7,r8,r9 ; @var{lw} r10,r11 @}
|
||||
@end smallexample
|
||||
|
||||
A bundle can span multiple lines. If you want to put multiple
|
||||
instructions on a line, whether in a bundle or not, you need to
|
||||
separate them with semicolons as in this example.
|
||||
|
||||
A bundle may contain one or more instructions, up to the limit
|
||||
specified by the ISA (currently three). If fewer instructions are
|
||||
specified than the hardware supports in a bundle, the assembler
|
||||
inserts @code{fnop} instructions automatically.
|
||||
|
||||
The assembler will prefer to preserve the ordering of instructions
|
||||
within the bundle, putting the first instruction in a lower-numbered
|
||||
pipeline than the next one, etc. This fact, combined with the
|
||||
optional use of explicit @code{fnop} or @code{nop} instructions,
|
||||
allows precise control over which pipeline executes each instruction.
|
||||
|
||||
If the instructions cannot be bundled in the listed order, the
|
||||
assembler will automatically try to find a valid pipeline
|
||||
assignment. If there is no way to bundle the instructions together,
|
||||
the assembler reports an error.
|
||||
|
||||
The assembler does not yet auto-bundle (automatically combine multiple
|
||||
instructions into one bundle), but it reserves the right to do so in
|
||||
the future. If you want to force an instruction to run by itself, put
|
||||
it in a bundle explicitly with curly braces and use @code{nop}
|
||||
instructions (not @code{fnop}) to fill the remaining pipeline slots in
|
||||
that bundle.
|
||||
|
||||
@menu
|
||||
* TILEPro Opcodes:: Opcode Naming Conventions.
|
||||
* TILEPro Registers:: Register Naming.
|
||||
* TILEPro Modifiers:: Symbolic Operand Modifiers.
|
||||
@end menu
|
||||
|
||||
@node TILEPro Opcodes
|
||||
@subsection Opcode Names
|
||||
@cindex TILEPro opcode names
|
||||
@cindex opcode names, TILEPro
|
||||
|
||||
For a complete list of opcodes and descriptions of their semantics,
|
||||
see @cite{TILE Processor User Architecture Manual}, available upon
|
||||
request at www.tilera.com.
|
||||
|
||||
@node TILEPro Registers
|
||||
@subsection Register Names
|
||||
@cindex TILEPro register names
|
||||
@cindex register names, TILEPro
|
||||
|
||||
General-purpose registers are represented by predefined symbols of the
|
||||
form @samp{r@var{N}}, where @var{N} represents a number between
|
||||
@code{0} and @code{63}. However, the following registers have
|
||||
canonical names that must be used instead:
|
||||
|
||||
@table @code
|
||||
@item r54
|
||||
sp
|
||||
|
||||
@item r55
|
||||
lr
|
||||
|
||||
@item r56
|
||||
sn
|
||||
|
||||
@item r57
|
||||
idn0
|
||||
|
||||
@item r58
|
||||
idn1
|
||||
|
||||
@item r59
|
||||
udn0
|
||||
|
||||
@item r60
|
||||
udn1
|
||||
|
||||
@item r61
|
||||
udn2
|
||||
|
||||
@item r62
|
||||
udn3
|
||||
|
||||
@item r63
|
||||
zero
|
||||
|
||||
@end table
|
||||
|
||||
The assembler will emit a warning if a numeric name is used instead of
|
||||
the canonical name. The @code{.no_require_canonical_reg_names}
|
||||
assembler pseudo-op turns off this
|
||||
warning. @code{.require_canonical_reg_names} turns it back on.
|
||||
|
||||
@node TILEPro Modifiers
|
||||
@subsection Symbolic Operand Modifiers
|
||||
@cindex TILEPro modifiers
|
||||
@cindex symbol modifiers, TILEPro
|
||||
|
||||
The assembler supports several modifiers when using symbol addresses
|
||||
in TILEPro instruction operands. The general syntax is the following:
|
||||
|
||||
@smallexample
|
||||
modifier(symbol)
|
||||
@end smallexample
|
||||
|
||||
The following modifiers are supported:
|
||||
|
||||
@table @code
|
||||
|
||||
@item lo16
|
||||
|
||||
This modifier is used to load the low 16 bits of the symbol's address,
|
||||
sign-extended to a 32-bit value (sign-extension allows it to be
|
||||
range-checked against signed 16 bit immediate operands without
|
||||
complaint).
|
||||
|
||||
@item hi16
|
||||
|
||||
This modifier is used to load the high 16 bits of the symbol's
|
||||
address, also sign-extended to a 32-bit value.
|
||||
|
||||
@item ha16
|
||||
|
||||
@code{ha16(N)} is identical to @code{hi16(N)}, except if
|
||||
@code{lo16(N)} is negative it adds one to the @code{hi16(N)}
|
||||
value. This way @code{lo16} and @code{ha16} can be added to create any
|
||||
32-bit value using @code{auli}. For example, here is how you move an
|
||||
arbitrary 32-bit address into r3:
|
||||
|
||||
@smallexample
|
||||
moveli r3, lo16(sym)
|
||||
auli r3, r3, ha16(sym)
|
||||
@end smallexample
|
||||
|
||||
@item got
|
||||
|
||||
This modifier is used to load the offset of the GOT entry
|
||||
corresponding to the symbol.
|
||||
|
||||
@item got_lo16
|
||||
|
||||
This modifier is used to load the sign-extended low 16 bits of the
|
||||
offset of the GOT entry corresponding to the symbol.
|
||||
|
||||
@item got_hi16
|
||||
|
||||
This modifier is used to load the sign-extended high 16 bits of the
|
||||
offset of the GOT entry corresponding to the symbol.
|
||||
|
||||
@item got_ha16
|
||||
|
||||
This modifier is like @code{got_hi16}, but it adds one if
|
||||
@code{got_lo16} of the input value is negative.
|
||||
|
||||
@item plt
|
||||
|
||||
This modifier is used for function symbols. It causes a
|
||||
@emph{procedure linkage table}, an array of code stubs, to be created
|
||||
at the time the shared object is created or linked against, together
|
||||
with a global offset table entry. The value is a pc-relative offset
|
||||
to the corresponding stub code in the procedure linkage table. This
|
||||
arrangement causes the run-time symbol resolver to be called to look
|
||||
up and set the value of the symbol the first time the function is
|
||||
called (at latest; depending environment variables). It is only safe
|
||||
to leave the symbol unresolved this way if all references are function
|
||||
calls.
|
||||
|
||||
@item tls_gd
|
||||
|
||||
This modifier is used to load the offset of the GOT entry of the
|
||||
symbol's TLS descriptor, to be used for general-dynamic TLS accesses.
|
||||
|
||||
@item tls_gd_lo16
|
||||
|
||||
This modifier is used to load the sign-extended low 16 bits of the
|
||||
offset of the GOT entry of the symbol's TLS descriptor, to be used for
|
||||
general dynamic TLS accesses.
|
||||
|
||||
@item tls_gd_hi16
|
||||
|
||||
This modifier is used to load the sign-extended high 16 bits of the
|
||||
offset of the GOT entry of the symbol's TLS descriptor, to be used for
|
||||
general dynamic TLS accesses.
|
||||
|
||||
@item tls_gd_ha16
|
||||
|
||||
This modifier is like @code{tls_gd_hi16}, but it adds one to the value
|
||||
if @code{tls_gd_lo16} of the input value is negative.
|
||||
|
||||
@item tls_ie
|
||||
|
||||
This modifier is used to load the offset of the GOT entry containing
|
||||
the offset of the symbol's address from the TCB, to be used for
|
||||
initial-exec TLS accesses.
|
||||
|
||||
@item tls_ie_lo16
|
||||
|
||||
This modifier is used to load the low 16 bits of the offset of the GOT
|
||||
entry containing the offset of the symbol's address from the TCB, to
|
||||
be used for initial-exec TLS accesses.
|
||||
|
||||
@item tls_ie_hi16
|
||||
|
||||
This modifier is used to load the high 16 bits of the offset of the
|
||||
GOT entry containing the offset of the symbol's address from the TCB,
|
||||
to be used for initial-exec TLS accesses.
|
||||
|
||||
@item tls_ie_ha16
|
||||
|
||||
This modifier is like @code{tls_ie_hi16}, but it adds one to the value
|
||||
if @code{tls_ie_lo16} of the input value is negative.
|
||||
|
||||
@end table
|
||||
|
||||
@node TILEPro Directives
|
||||
@section TILEPro Directives
|
||||
@cindex machine directives, TILEPro
|
||||
@cindex TILEPro machine directives
|
||||
|
||||
@table @code
|
||||
|
||||
@cindex @code{.align} directive, TILEPro
|
||||
@item .align @var{expression} [, @var{expression}]
|
||||
This is the generic @var{.align} directive. The first argument is the
|
||||
requested alignment in bytes.
|
||||
|
||||
@cindex @code{.allow_suspicious_bundles} directive, TILEPro
|
||||
@item .allow_suspicious_bundles
|
||||
Turns on error checking for combinations of instructions in a bundle
|
||||
that probably indicate a programming error. This is on by default.
|
||||
|
||||
@item .no_allow_suspicious_bundles
|
||||
Turns off error checking for combinations of instructions in a bundle
|
||||
that probably indicate a programming error.
|
||||
|
||||
@cindex @code{.require_canonical_reg_names} directive, TILEPro
|
||||
@item .require_canonical_reg_names
|
||||
Require that canonical register names be used, and emit a warning if
|
||||
the numeric names are used. This is on by default.
|
||||
|
||||
@item .no_require_canonical_reg_names
|
||||
Permit the use of numeric names for registers that have canonical
|
||||
names.
|
||||
|
||||
@end table
|
||||
|
@ -1,3 +1,14 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* gas/tilepro/t_constants.s: New file.
|
||||
* gas/tilepro/t_constants.d: Likewise.
|
||||
* gas/tilepro/t_insns.s: Likewise.
|
||||
* gas/tilepro/tilepro.exp: Likewise.
|
||||
* gas/tilepro/t_insns.d: Likewise.
|
||||
* gas/tilegx/tilegx.exp: Likewise.
|
||||
* gas/tilegx/t_insns.d: Likewise.
|
||||
* gas/tilegx/t_insns.s: Likewise.
|
||||
|
||||
2011-06-13 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR gas/12854
|
||||
|
10405
gas/testsuite/gas/tilegx/t_insns.d
Normal file
10405
gas/testsuite/gas/tilegx/t_insns.d
Normal file
File diff suppressed because it is too large
Load Diff
10430
gas/testsuite/gas/tilegx/t_insns.s
Normal file
10430
gas/testsuite/gas/tilegx/t_insns.s
Normal file
File diff suppressed because it is too large
Load Diff
23
gas/testsuite/gas/tilegx/tilegx.exp
Normal file
23
gas/testsuite/gas/tilegx/tilegx.exp
Normal file
@ -0,0 +1,23 @@
|
||||
# Expect script for TILE-Gx assembler tests.
|
||||
# Copyright 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
if [istarget tilegx-*-*] {
|
||||
run_dump_test "t_insns"
|
||||
}
|
262
gas/testsuite/gas/tilepro/t_constants.d
Normal file
262
gas/testsuite/gas/tilepro/t_constants.d
Normal file
@ -0,0 +1,262 @@
|
||||
#as:
|
||||
#objdump: --section .data -w -s -z
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Contents of section .data:
|
||||
0000 37000000 00000000 3839c600 00010203 .*
|
||||
0010 04050607 08090a0b 0c0d0e0f 10111213 .*
|
||||
0020 14151617 18191a1b 1c1d1e1f 20212223 .*
|
||||
0030 24252627 28292a2b 2c2d2e2f 30313233 .*
|
||||
0040 34353637 38393a3b 3c3d3e3f 40414243 .*
|
||||
0050 44454647 48494a4b 4c4d4e4f 50515253 .*
|
||||
0060 54555657 58595a5b 5c5d5e5f 60616263 .*
|
||||
0070 64656667 68696a6b 6c6d6e6f 70717273 .*
|
||||
0080 74757677 78797a7b 7c7d7e7f 80818283 .*
|
||||
0090 84858687 88898a8b 8c8d8e8f 90919293 .*
|
||||
00a0 94959697 98999a9b 9c9d9e9f a0a1a2a3 .*
|
||||
00b0 a4a5a6a7 a8a9aaab acadaeaf b0b1b2b3 .*
|
||||
00c0 b4b5b6b7 b8b9babb bcbdbebf c0c1c2c3 .*
|
||||
00d0 c4c5c6c7 c8c9cacb cccdcecf d0d1d2d3 .*
|
||||
00e0 d4d5d6d7 d8d9dadb dcdddedf e0e1e2e3 .*
|
||||
00f0 e4e5e6e7 e8e9eaeb ecedeeef f0f1f2f3 .*
|
||||
0100 f4f5f6f7 f8f9fafb fcfdfeff 00001100 .*
|
||||
0110 22003300 44005500 ed07fe07 0f082008 .*
|
||||
0120 31084208 da0feb0f fc0f0d10 1e102f10 .*
|
||||
0130 c717d817 e917fa17 0b181c18 b41fc51f .*
|
||||
0140 d61fe71f f81f0920 a127b227 c327d427 .*
|
||||
0150 e527f627 8e2f9f2f b02fc12f d22fe32f .*
|
||||
0160 7b378c37 9d37ae37 bf37d037 683f793f .*
|
||||
0170 8a3f9b3f ac3fbd3f 55476647 77478847 .*
|
||||
0180 9947aa47 424f534f 644f754f 864f974f .*
|
||||
0190 2f574057 51576257 73578457 1c5f2d5f .*
|
||||
01a0 3e5f4f5f 605f715f 09671a67 2b673c67 .*
|
||||
01b0 4d675e67 f66e076f 186f296f 3a6f4b6f .*
|
||||
01c0 e376f476 05771677 27773877 d07ee17e .*
|
||||
01d0 f27e037f 147f257f bd86ce86 df86f086 .*
|
||||
01e0 01871287 aa8ebb8e cc8edd8e ee8eff8e .*
|
||||
01f0 9796a896 b996ca96 db96ec96 849e959e .*
|
||||
0200 a69eb79e c89ed99e 71a682a6 93a6a4a6 .*
|
||||
0210 b5a6c6a6 5eae6fae 80ae91ae a2aeb3ae .*
|
||||
0220 4bb65cb6 6db67eb6 8fb6a0b6 38be49be .*
|
||||
0230 5abe6bbe 7cbe8dbe 25c636c6 47c658c6 .*
|
||||
0240 69c67ac6 12ce23ce 34ce45ce 56ce67ce .*
|
||||
0250 ffd510d6 21d632d6 43d654d6 ecddfddd .*
|
||||
0260 0ede1fde 30de41de d9e5eae5 fbe50ce6 .*
|
||||
0270 1de62ee6 c6edd7ed e8edf9ed 0aee1bee .*
|
||||
0280 b3f5c4f5 d5f5e6f5 f7f508f6 78563412 .*
|
||||
0290 5d2e2612 42061812 27de0912 3bf85f19 .*
|
||||
02a0 c8d45119 55b14319 e28d3519 fe998b20 .*
|
||||
02b0 337b7d20 685c6f20 9d3d6120 c13bb727 .*
|
||||
02c0 9e21a927 7b079b27 58ed8c27 84dde22e .*
|
||||
02d0 09c8d42e 8eb2c62e 139db82e 477f0e36 .*
|
||||
02e0 746e0036 a15df235 ce4ce435 0a213a3d .*
|
||||
02f0 df142c3d b4081e3d 89fc0f3d cdc26544 .*
|
||||
0300 4abb5744 c7b34944 44ac3b44 9064914b .*
|
||||
0310 b561834b da5e754b ff5b674b 5306bd52 .*
|
||||
0320 2008af52 ed09a152 ba0b9352 16a8e859 .*
|
||||
0330 8baeda59 00b5cc59 75bbbe59 d9491461 .*
|
||||
0340 f6540661 1360f860 306bea60 9ceb3f68 .*
|
||||
0350 61fb3168 260b2468 eb1a1668 5f8d6b6f .*
|
||||
0360 cca15d6f 39b64f6f a6ca416f 222f9776 .*
|
||||
0370 37488976 4c617b76 617a6d76 e5d0c27d .*
|
||||
0380 a2eeb47d 5f0ca77d 1c2a997d a872ee84 .*
|
||||
0390 0d95e084 72b7d284 d7d9c484 6b141a8c .*
|
||||
03a0 783b0c8c 8562fe8b 9289f08b 2eb64593 .*
|
||||
03b0 e3e13793 980d2a93 4d391c93 f157719a .*
|
||||
03c0 4e88639a abb8559a 08e9479a b4f99ca1 .*
|
||||
03d0 b92e8fa1 be6381a1 c39873a1 779bc8a8 .*
|
||||
03e0 24d5baa8 d10eada8 7e489fa8 3a3df4af .*
|
||||
03f0 8f7be6af e4b9d8af 39f8caaf fdde1fb7 .*
|
||||
0400 fa2112b7 f76404b7 f4a7f6b6 c0804bbe .*
|
||||
0410 65c83dbe 0a1030be af5722be 832277c5 .*
|
||||
0420 d06e69c5 1dbb5bc5 6a074ec5 46c4a2cc .*
|
||||
0430 3b1595cc 306687cc 25b779cc 0966ced3 .*
|
||||
0440 a6bbc0d3 4311b3d3 e066a5d3 cc07fada .*
|
||||
0450 1162ecda 56bcdeda 9b16d1da 8fa925e2 .*
|
||||
0460 7c0818e2 69670ae2 56c6fce1 524b51e9 .*
|
||||
0470 e7ae43e9 7c1236e9 117628e9 15ed7cf0 .*
|
||||
0480 52556ff0 8fbd61f0 cc2554f0 00010203 .*
|
||||
0490 04050607 08090a0b 0c0d0e0f 10111213 .*
|
||||
04a0 14151617 18191a1b 1c1d1e1f 20212223 .*
|
||||
04b0 24252627 28292a2b 2c2d2e2f 30313233 .*
|
||||
04c0 34353637 38393a3b 3c3d3e3f 40414243 .*
|
||||
04d0 44454647 48494a4b 4c4d4e4f 50515253 .*
|
||||
04e0 54555657 58595a5b 5c5d5e5f 60616263 .*
|
||||
04f0 64656667 68696a6b 6c6d6e6f 70717273 .*
|
||||
0500 74757677 78797a7b 7c7d7e7f 80818283 .*
|
||||
0510 84858687 88898a8b 8c8d8e8f 90919293 .*
|
||||
0520 94959697 98999a9b 9c9d9e9f a0a1a2a3 .*
|
||||
0530 a4a5a6a7 a8a9aaab acadaeaf b0b1b2b3 .*
|
||||
0540 b4b5b6b7 b8b9babb bcbdbebf c0c1c2c3 .*
|
||||
0550 c4c5c6c7 c8c9cacb cccdcecf d0d1d2d3 .*
|
||||
0560 d4d5d6d7 d8d9dadb dcdddedf e0e1e2e3 .*
|
||||
0570 e4e5e6e7 e8e9eaeb ecedeeef f0f1f2f3 .*
|
||||
0580 f4f5f6f7 f8f9fafb fcfdfeff 00001100 .*
|
||||
0590 22003300 44005500 ed07fe07 0f082008 .*
|
||||
05a0 31084208 da0feb0f fc0f0d10 1e102f10 .*
|
||||
05b0 c717d817 e917fa17 0b181c18 b41fc51f .*
|
||||
05c0 d61fe71f f81f0920 a127b227 c327d427 .*
|
||||
05d0 e527f627 8e2f9f2f b02fc12f d22fe32f .*
|
||||
05e0 7b378c37 9d37ae37 bf37d037 683f793f .*
|
||||
05f0 8a3f9b3f ac3fbd3f 55476647 77478847 .*
|
||||
0600 9947aa47 424f534f 644f754f 864f974f .*
|
||||
0610 2f574057 51576257 73578457 1c5f2d5f .*
|
||||
0620 3e5f4f5f 605f715f 09671a67 2b673c67 .*
|
||||
0630 4d675e67 f66e076f 186f296f 3a6f4b6f .*
|
||||
0640 e376f476 05771677 27773877 d07ee17e .*
|
||||
0650 f27e037f 147f257f bd86ce86 df86f086 .*
|
||||
0660 01871287 aa8ebb8e cc8edd8e ee8eff8e .*
|
||||
0670 9796a896 b996ca96 db96ec96 849e959e .*
|
||||
0680 a69eb79e c89ed99e 71a682a6 93a6a4a6 .*
|
||||
0690 b5a6c6a6 5eae6fae 80ae91ae a2aeb3ae .*
|
||||
06a0 4bb65cb6 6db67eb6 8fb6a0b6 38be49be .*
|
||||
06b0 5abe6bbe 7cbe8dbe 25c636c6 47c658c6 .*
|
||||
06c0 69c67ac6 12ce23ce 34ce45ce 56ce67ce .*
|
||||
06d0 ffd510d6 21d632d6 43d654d6 ecddfddd .*
|
||||
06e0 0ede1fde 30de41de d9e5eae5 fbe50ce6 .*
|
||||
06f0 1de62ee6 c6edd7ed e8edf9ed 0aee1bee .*
|
||||
0700 b3f5c4f5 d5f5e6f5 f7f508f6 78563412 .*
|
||||
0710 5d2e2612 42061812 27de0912 eb7a223d .*
|
||||
0720 554e143d bf21063d 29f5f73c 5e9f1068 .*
|
||||
0730 4d6e0268 3c3df467 2b0ce667 d1c3fe92 .*
|
||||
0740 458ef092 b958e292 2d23d492 44e8ecbd .*
|
||||
0750 3daedebd 3674d0bd 2f3ac2bd b70cdbe8 .*
|
||||
0760 35cecce8 b38fbee8 3151b0e8 2a31c913 .*
|
||||
0770 2deeba13 30abac13 33689e13 9d55b73e .*
|
||||
0780 250ea93e adc69a3e 357f8c3e 107aa569 .*
|
||||
0790 1d2e9769 2ae28869 37967a69 839e9394 .*
|
||||
07a0 154e8594 a7fd7694 39ad6894 f6c281bf .*
|
||||
07b0 0d6e73bf 241965bf 3bc456bf 69e76fea .*
|
||||
07c0 058e61ea a13453ea 3ddb44ea dc0b5e15 .*
|
||||
07d0 fdad4f15 1e504115 3ff23215 4f304c40 .*
|
||||
07e0 f5cd3d40 9b6b2f40 41092140 c2543a6b .*
|
||||
07f0 eded2b6b 18871d6b 43200f6b 35792896 .*
|
||||
0800 e50d1a96 95a20b96 4537fd95 a89d16c1 .*
|
||||
0810 dd2d08c1 12bef9c0 474eebc0 1bc204ec .*
|
||||
0820 d54df6eb 8fd9e7eb 4965d9eb 8ee6f216 .*
|
||||
0830 cd6de416 0cf5d516 4b7cc716 010be141 .*
|
||||
0840 c58dd241 8910c441 4d93b541 742fcf6c .*
|
||||
0850 bdadc06c 062cb26c 4faaa36c e753bd97 .*
|
||||
0860 b5cdae97 8347a097 51c19197 5a78abc2 .*
|
||||
0870 aded9cc2 00638ec2 53d87fc2 cd9c99ed .*
|
||||
0880 a50d8bed 7d7e7ced 55ef6ded 40c18718 .*
|
||||
0890 9d2d7918 fa996a18 57065c18 b3e57543 .*
|
||||
08a0 954d6743 77b55843 591d4a43 260a646e .*
|
||||
08b0 8d6d556e f4d0466e 5b34386e 992e5299 .*
|
||||
08c0 858d4399 71ec3499 5d4b2699 0c5340c4 .*
|
||||
08d0 7dad31c4 ee0723c4 5f6214c4 7f772eef .*
|
||||
08e0 75cd1fef 6b2311ef 617902ef f29b1c1a .*
|
||||
08f0 6ded0d1a e83eff19 6390f019 65c00a45 .*
|
||||
0900 650dfc44 655aed44 65a7de44 2241fc05 .*
|
||||
0910 d0f22bfa d0f22bfa 761afb05 6da739d4 .*
|
||||
0920 6da739d4 caf3f905 0a5c47ae 0a5c47ae .*
|
||||
0930 1ecdf805 a7105588 a7105588 52fe700c .*
|
||||
0940 bbafcef4 bbafcef4 82b1110c fd3ea6ce .*
|
||||
0950 fd3ea6ce b264b20b 3fce7da8 3fce7da8 .*
|
||||
0960 e217530b 815d5582 815d5582 82bbe512 .*
|
||||
0970 a66c71ef a66c71ef 8e482812 8dd612c9 .*
|
||||
0980 8dd612c9 9ad56a11 7440b4a2 7440b4a2 .*
|
||||
0990 a662ad10 5baa557c 5baa557c b2785a19 .*
|
||||
09a0 912914ea 912914ea 9adf3e18 1d6e7fc3 .*
|
||||
09b0 1d6e7fc3 82462317 a9b2ea9c a9b2ea9c .*
|
||||
09c0 6aad0716 35f75576 35f75576 e235cf1f .*
|
||||
09d0 7ce6b6e4 7ce6b6e4 a676551e ad05ecbd .*
|
||||
09e0 ad05ecbd 6ab7db1c de242197 de242197 .*
|
||||
09f0 2ef8611b 0f445670 0f445670 12f34326 .*
|
||||
0a00 67a359df 67a359df b20d6c24 3d9d58b8 .*
|
||||
0a10 3d9d58b8 52289422 13975791 13975791 .*
|
||||
0a20 f242bc20 e990566a e990566a 42b0b82c .*
|
||||
0a30 5260fcd9 5260fcd9 bea4822a cd34c5b2 .*
|
||||
0a40 cd34c5b2 3a994c28 48098e8b 48098e8b .*
|
||||
0a50 b68d1626 c3dd5664 c3dd5664 726d2d33 .*
|
||||
0a60 3d1d9fd4 3d1d9fd4 ca3b9930 5dcc31ad .*
|
||||
0a70 5dcc31ad 220a052e 7d7bc485 7d7bc485 .*
|
||||
0a80 7ad8702b 9d2a575e 9d2a575e a22aa239 .*
|
||||
0a90 28da41cf 28da41cf d6d2af36 ed639ea7 .*
|
||||
0aa0 ed639ea7 0a7bbd33 b2edfa7f b2edfa7f .*
|
||||
0ab0 3e23cb30 77775758 77775758 d2e71640 .*
|
||||
0ac0 1397e4c9 1397e4c9 e269c63c 7dfb0aa2 .*
|
||||
0ad0 7dfb0aa2 f2eb7539 e75f317a e75f317a .*
|
||||
0ae0 026e2536 51c45752 51c45752 02a58b46 .*
|
||||
0af0 fe5387c4 fe5387c4 ee00dd42 0d93779c .*
|
||||
0b00 0d93779c da5c2e3f 1cd26774 1cd26774 .*
|
||||
0b10 c6b87f3b 2b11584c 2b11584c 3262004d .*
|
||||
0b20 e9102abf e9102abf fa97f348 9d2ae496 .*
|
||||
0b30 9d2ae496 c2cde644 51449e6e 51449e6e .*
|
||||
0b40 8a03da40 055e5846 055e5846 621f7553 .*
|
||||
0b50 d4cdccb9 d4cdccb9 062f0a4f 2dc25091 .*
|
||||
0b60 2dc25091 aa3e9f4a 86b6d468 86b6d468 .*
|
||||
0b70 4e4e3446 dfaa5840 dfaa5840 92dce959 .*
|
||||
0b80 bf8a6fb4 bf8a6fb4 12c62055 bd59bd8b .*
|
||||
0b90 bd59bd8b 92af5750 bb280b63 bb280b63 .*
|
||||
0ba0 12998e4b b9f7583a b9f7583a c2995e60 .*
|
||||
0bb0 aa4712af aa4712af 1e5d375b 4df12986 .*
|
||||
0bc0 4df12986 7a201056 f09a415d f09a415d .*
|
||||
0bd0 d6e3e850 93445934 93445934 f256d366 .*
|
||||
0be0 9504b5a9 9504b5a9 2af44d61 dd889680 .*
|
||||
0bf0 dd889680 6291c85b 250d7857 250d7857 .*
|
||||
0c00 9a2e4356 6d91592e 6d91592e 2214486d .*
|
||||
0c10 80c157a4 80c157a4 368b6467 6d20037b .*
|
||||
0c20 6d20037b 4a028161 5a7fae51 5a7fae51 .*
|
||||
0c30 5e799d5b 47de5928 47de5928 52d1bc73 .*
|
||||
0c40 6b7efa9e 6b7efa9e 42227b6d fdb76f75 .*
|
||||
0c50 fdb76f75 32733967 8ff1e44b 8ff1e44b .*
|
||||
0c60 22c4f760 212b5a22 212b5a22 828e317a .*
|
||||
0c70 563b9d99 563b9d99 4eb99173 8d4fdc6f .*
|
||||
0c80 8d4fdc6f 1ae4f16c c4631b46 c4631b46 .*
|
||||
0c90 e60e5266 fb775a1c fb775a1c b24ba680 .*
|
||||
0ca0 41f83f94 41f83f94 5a50a879 1de7486a .*
|
||||
0cb0 1de7486a 0255aa72 f9d55140 f9d55140 .*
|
||||
0cc0 aa59ac6b d5c45a16 d5c45a16 e2081b87 .*
|
||||
0cd0 2cb5e28e 2cb5e28e 66e7be7f ad7eb564 .*
|
||||
0ce0 ad7eb564 eac56278 2e48883a 2e48883a .*
|
||||
0cf0 6ea40671 af115b10 af115b10 12c68f8d .*
|
||||
0d00 17728589 17728589 727ed585 3d16225f .*
|
||||
0d10 3d16225f d2361b7e 63babe34 63babe34 .*
|
||||
0d20 32ef6076 895e5b0a 895e5b0a 42830494 .*
|
||||
0d30 022f2884 022f2884 7e15ec8b cdad8e59 .*
|
||||
0d40 cdad8e59 baa7d383 982cf52e 982cf52e .*
|
||||
0d50 f639bb7b 63ab5b04 63ab5b04 7240799a .*
|
||||
0d60 edebca7e edebca7e 8aac0292 5d45fb53 .*
|
||||
0d70 5d45fb53 a2188c89 cd9e2b29 cd9e2b29 .*
|
||||
0d80 ba841581 3df85bfe 3df85bfe a2fdeda0 .*
|
||||
0d90 d8a86d79 d8a86d79 96431998 eddc674e .*
|
||||
0da0 eddc674e 8a89448f 02116223 02116223 .*
|
||||
0db0 7ecf6f86 17455cf8 17455cf8 d2ba62a7 .*
|
||||
0dc0 c3651074 c3651074 a2da2f9e 7d74d448 .*
|
||||
0dd0 7d74d448 72fafc94 3783981d 3783981d .*
|
||||
0de0 421aca8b f1915cf2 f1915cf2 0278d7ad .*
|
||||
0df0 ae22b36e ae22b36e ae7146a4 0d0c4143 .*
|
||||
0e00 0d0c4143 5a6bb59a 6cf5ce17 6cf5ce17 .*
|
||||
0e10 06652491 cbde5cec cbde5cec 32354cb4 .*
|
||||
0e20 99df5569 99df5569 ba085daa 9da3ad3d .*
|
||||
0e30 9da3ad3d 42dc6da0 a1670512 a1670512 .*
|
||||
0e40 caaf7e96 a52b5de6 a52b5de6 62f2c0ba .*
|
||||
0e50 849cf863 849cf863 c69f73b0 2d3b1a38 .*
|
||||
0e60 2d3b1a38 2a4d26a6 d6d93b0c d6d93b0c .*
|
||||
0e70 8efad89b 7f785de0 7f785de0 92af35c1 .*
|
||||
0e80 6f599b5e 6f599b5e d2368ab6 bdd28632 .*
|
||||
0e90 bdd28632 12bedeab 0b4c7206 0b4c7206 .*
|
||||
0ea0 524533a1 59c55dda 59c55dda c26caac7 .*
|
||||
0eb0 5a163e59 5a163e59 decda0bc 4d6af32c .*
|
||||
0ec0 4d6af32c fa2e97b1 40bea800 40bea800 .*
|
||||
0ed0 16908da6 33125ed4 33125ed4 f2291fce .*
|
||||
0ee0 45d3e053 45d3e053 ea64b7c2 dd016027 .*
|
||||
0ef0 dd016027 e29f4fb7 7530dffa 7530dffa .*
|
||||
0f00 dadae7ab 0d5f5ece 0d5f5ece 00000000 .*
|
||||
0f10 00000000 00000000 00000000 00000000 .*
|
||||
0f20 00000000 00000000 00000000 00000000 .*
|
||||
0f30 00000000 00000000 00000000 00000000 .*
|
||||
0f40 00000000 00000000 00000000 00000000 .*
|
||||
0f50 00000000 00000000 00000000 00000000 .*
|
||||
0f60 00000000 00000000 00000000 00000000 .*
|
||||
0f70 00000000 00000000 00000000 00000000 .*
|
||||
0f80 00000000 00000000 00000000 00000000 .*
|
||||
0f90 00000000 00000000 00000000 00000000 .*
|
||||
0fa0 00000000 00000000 00000000 00000000 .*
|
||||
0fb0 00000000 00000000 00000000 00000000 .*
|
||||
0fc0 00000000 00000000 00000000 00000000 .*
|
||||
0fd0 00000000 00000000 00000000 00000000 .*
|
||||
0fe0 00000000 00000000 00000000 00000000 .*
|
||||
0ff0 00000000 00000000 00000000 00000000 .*
|
639
gas/testsuite/gas/tilepro/t_constants.s
Normal file
639
gas/testsuite/gas/tilepro/t_constants.s
Normal file
@ -0,0 +1,639 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
.data
|
||||
.align 1024
|
||||
label_1:
|
||||
.byte 0x37
|
||||
.align 8
|
||||
.byte 0x38
|
||||
.byte 0x39
|
||||
.byte -0x3A
|
||||
.align 4
|
||||
label_2:
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
|
||||
.byte 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
|
||||
.byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
|
||||
.byte 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
|
||||
.byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27
|
||||
.byte 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F
|
||||
.byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
|
||||
.byte 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
|
||||
.byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47
|
||||
.byte 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F
|
||||
.byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57
|
||||
.byte 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F
|
||||
.byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67
|
||||
.byte 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F
|
||||
.byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
|
||||
.byte 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F
|
||||
.byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87
|
||||
.byte 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F
|
||||
.byte 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97
|
||||
.byte 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F
|
||||
.byte 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7
|
||||
.byte 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF
|
||||
.byte 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7
|
||||
.byte 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF
|
||||
.byte 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7
|
||||
.byte 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF
|
||||
.byte 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7
|
||||
.byte 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF
|
||||
.byte 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7
|
||||
.byte 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF
|
||||
.byte 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7
|
||||
.byte 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
|
||||
|
||||
.short 0x0000, 0x0011, 0x0022, 0x0033, 0x0044, 0x0055
|
||||
.short 0x07ED, 0x07FE, 0x080F, 0x0820, 0x0831, 0x0842
|
||||
.short 0x0FDA, 0x0FEB, 0x0FFC, 0x100D, 0x101E, 0x102F
|
||||
.short 0x17C7, 0x17D8, 0x17E9, 0x17FA, 0x180B, 0x181C
|
||||
.short 0x1FB4, 0x1FC5, 0x1FD6, 0x1FE7, 0x1FF8, 0x2009
|
||||
.short 0x27A1, 0x27B2, 0x27C3, 0x27D4, 0x27E5, 0x27F6
|
||||
.short 0x2F8E, 0x2F9F, 0x2FB0, 0x2FC1, 0x2FD2, 0x2FE3
|
||||
.short 0x377B, 0x378C, 0x379D, 0x37AE, 0x37BF, 0x37D0
|
||||
.short 0x3F68, 0x3F79, 0x3F8A, 0x3F9B, 0x3FAC, 0x3FBD
|
||||
.short 0x4755, 0x4766, 0x4777, 0x4788, 0x4799, 0x47AA
|
||||
.short 0x4F42, 0x4F53, 0x4F64, 0x4F75, 0x4F86, 0x4F97
|
||||
.short 0x572F, 0x5740, 0x5751, 0x5762, 0x5773, 0x5784
|
||||
.short 0x5F1C, 0x5F2D, 0x5F3E, 0x5F4F, 0x5F60, 0x5F71
|
||||
.short 0x6709, 0x671A, 0x672B, 0x673C, 0x674D, 0x675E
|
||||
.short 0x6EF6, 0x6F07, 0x6F18, 0x6F29, 0x6F3A, 0x6F4B
|
||||
.short 0x76E3, 0x76F4, 0x7705, 0x7716, 0x7727, 0x7738
|
||||
.short 0x7ED0, 0x7EE1, 0x7EF2, 0x7F03, 0x7F14, 0x7F25
|
||||
.short 0x86BD, 0x86CE, 0x86DF, 0x86F0, 0x8701, 0x8712
|
||||
.short 0x8EAA, 0x8EBB, 0x8ECC, 0x8EDD, 0x8EEE, 0x8EFF
|
||||
.short 0x9697, 0x96A8, 0x96B9, 0x96CA, 0x96DB, 0x96EC
|
||||
.short 0x9E84, 0x9E95, 0x9EA6, 0x9EB7, 0x9EC8, 0x9ED9
|
||||
.short 0xA671, 0xA682, 0xA693, 0xA6A4, 0xA6B5, 0xA6C6
|
||||
.short 0xAE5E, 0xAE6F, 0xAE80, 0xAE91, 0xAEA2, 0xAEB3
|
||||
.short 0xB64B, 0xB65C, 0xB66D, 0xB67E, 0xB68F, 0xB6A0
|
||||
.short 0xBE38, 0xBE49, 0xBE5A, 0xBE6B, 0xBE7C, 0xBE8D
|
||||
.short 0xC625, 0xC636, 0xC647, 0xC658, 0xC669, 0xC67A
|
||||
.short 0xCE12, 0xCE23, 0xCE34, 0xCE45, 0xCE56, 0xCE67
|
||||
.short 0xD5FF, 0xD610, 0xD621, 0xD632, 0xD643, 0xD654
|
||||
.short 0xDDEC, 0xDDFD, 0xDE0E, 0xDE1F, 0xDE30, 0xDE41
|
||||
.short 0xE5D9, 0xE5EA, 0xE5FB, 0xE60C, 0xE61D, 0xE62E
|
||||
.short 0xEDC6, 0xEDD7, 0xEDE8, 0xEDF9, 0xEE0A, 0xEE1B
|
||||
.short 0xF5B3, 0xF5C4, 0xF5D5, 0xF5E6, 0xF5F7, 0xF608
|
||||
|
||||
.word 0x12345678, 0x12262E5D, 0x12180642, 0x1209DE27
|
||||
.word 0x195FF83B, 0x1951D4C8, 0x1943B155, 0x19358DE2
|
||||
.word 0x208B99FE, 0x207D7B33, 0x206F5C68, 0x20613D9D
|
||||
.word 0x27B73BC1, 0x27A9219E, 0x279B077B, 0x278CED58
|
||||
.word 0x2EE2DD84, 0x2ED4C809, 0x2EC6B28E, 0x2EB89D13
|
||||
.word 0x360E7F47, 0x36006E74, 0x35F25DA1, 0x35E44CCE
|
||||
.word 0x3D3A210A, 0x3D2C14DF, 0x3D1E08B4, 0x3D0FFC89
|
||||
.word 0x4465C2CD, 0x4457BB4A, 0x4449B3C7, 0x443BAC44
|
||||
.word 0x4B916490, 0x4B8361B5, 0x4B755EDA, 0x4B675BFF
|
||||
.word 0x52BD0653, 0x52AF0820, 0x52A109ED, 0x52930BBA
|
||||
.word 0x59E8A816, 0x59DAAE8B, 0x59CCB500, 0x59BEBB75
|
||||
.word 0x611449D9, 0x610654F6, 0x60F86013, 0x60EA6B30
|
||||
.word 0x683FEB9C, 0x6831FB61, 0x68240B26, 0x68161AEB
|
||||
.word 0x6F6B8D5F, 0x6F5DA1CC, 0x6F4FB639, 0x6F41CAA6
|
||||
.word 0x76972F22, 0x76894837, 0x767B614C, 0x766D7A61
|
||||
.word 0x7DC2D0E5, 0x7DB4EEA2, 0x7DA70C5F, 0x7D992A1C
|
||||
.word 0x84EE72A8, 0x84E0950D, 0x84D2B772, 0x84C4D9D7
|
||||
.word 0x8C1A146B, 0x8C0C3B78, 0x8BFE6285, 0x8BF08992
|
||||
.word 0x9345B62E, 0x9337E1E3, 0x932A0D98, 0x931C394D
|
||||
.word 0x9A7157F1, 0x9A63884E, 0x9A55B8AB, 0x9A47E908
|
||||
.word 0xA19CF9B4, 0xA18F2EB9, 0xA18163BE, 0xA17398C3
|
||||
.word 0xA8C89B77, 0xA8BAD524, 0xA8AD0ED1, 0xA89F487E
|
||||
.word 0xAFF43D3A, 0xAFE67B8F, 0xAFD8B9E4, 0xAFCAF839
|
||||
.word 0xB71FDEFD, 0xB71221FA, 0xB70464F7, 0xB6F6A7F4
|
||||
.word 0xBE4B80C0, 0xBE3DC865, 0xBE30100A, 0xBE2257AF
|
||||
.word 0xC5772283, 0xC5696ED0, 0xC55BBB1D, 0xC54E076A
|
||||
.word 0xCCA2C446, 0xCC95153B, 0xCC876630, 0xCC79B725
|
||||
.word 0xD3CE6609, 0xD3C0BBA6, 0xD3B31143, 0xD3A566E0
|
||||
.word 0xDAFA07CC, 0xDAEC6211, 0xDADEBC56, 0xDAD1169B
|
||||
.word 0xE225A98F, 0xE218087C, 0xE20A6769, 0xE1FCC656
|
||||
.word 0xE9514B52, 0xE943AEE7, 0xE936127C, 0xE9287611
|
||||
.word 0xF07CED15, 0xF06F5552, 0xF061BD8F, 0xF05425CC
|
||||
|
||||
.byte 0, 1, 2, 3, 4, 5, 6, 7
|
||||
.byte 8, 9, 10, 11, 12, 13, 14, 15
|
||||
.byte 16, 17, 18, 19, 20, 21, 22, 23
|
||||
.byte 24, 25, 26, 27, 28, 29, 30, 31
|
||||
.byte 32, 33, 34, 35, 36, 37, 38, 39
|
||||
.byte 40, 41, 42, 43, 44, 45, 46, 47
|
||||
.byte 48, 49, 50, 51, 52, 53, 54, 55
|
||||
.byte 56, 57, 58, 59, 60, 61, 62, 63
|
||||
.byte 64, 65, 66, 67, 68, 69, 70, 71
|
||||
.byte 72, 73, 74, 75, 76, 77, 78, 79
|
||||
.byte 80, 81, 82, 83, 84, 85, 86, 87
|
||||
.byte 88, 89, 90, 91, 92, 93, 94, 95
|
||||
.byte 96, 97, 98, 99, 100, 101, 102, 103
|
||||
.byte 104, 105, 106, 107, 108, 109, 110, 111
|
||||
.byte 112, 113, 114, 115, 116, 117, 118, 119
|
||||
.byte 120, 121, 122, 123, 124, 125, 126, 127
|
||||
.byte -128, -127, -126, -125, -124, -123, -122, -121
|
||||
.byte -120, -119, -118, -117, -116, -115, -114, -113
|
||||
.byte -112, -111, -110, -109, -108, -107, -106, -105
|
||||
.byte -104, -103, -102, -101, -100, -99, -98, -97
|
||||
.byte -96, -95, -94, -93, -92, -91, -90, -89
|
||||
.byte -88, -87, -86, -85, -84, -83, -82, -81
|
||||
.byte -80, -79, -78, -77, -76, -75, -74, -73
|
||||
.byte -72, -71, -70, -69, -68, -67, -66, -65
|
||||
.byte -64, -63, -62, -61, -60, -59, -58, -57
|
||||
.byte -56, -55, -54, -53, -52, -51, -50, -49
|
||||
.byte -48, -47, -46, -45, -44, -43, -42, -41
|
||||
.byte -40, -39, -38, -37, -36, -35, -34, -33
|
||||
.byte -32, -31, -30, -29, -28, -27, -26, -25
|
||||
.byte -24, -23, -22, -21, -20, -19, -18, -17
|
||||
.byte -16, -15, -14, -13, -12, -11, -10, -9
|
||||
.byte -8, -7, -6, -5, -4, -3, -2, -1
|
||||
|
||||
.short 0, 17, 34, 51, 68, 85
|
||||
.short 2029, 2046, 2063, 2080, 2097, 2114
|
||||
.short 4058, 4075, 4092, 4109, 4126, 4143
|
||||
.short 6087, 6104, 6121, 6138, 6155, 6172
|
||||
.short 8116, 8133, 8150, 8167, 8184, 8201
|
||||
.short 10145, 10162, 10179, 10196, 10213, 10230
|
||||
.short 12174, 12191, 12208, 12225, 12242, 12259
|
||||
.short 14203, 14220, 14237, 14254, 14271, 14288
|
||||
.short 16232, 16249, 16266, 16283, 16300, 16317
|
||||
.short 18261, 18278, 18295, 18312, 18329, 18346
|
||||
.short 20290, 20307, 20324, 20341, 20358, 20375
|
||||
.short 22319, 22336, 22353, 22370, 22387, 22404
|
||||
.short 24348, 24365, 24382, 24399, 24416, 24433
|
||||
.short 26377, 26394, 26411, 26428, 26445, 26462
|
||||
.short 28406, 28423, 28440, 28457, 28474, 28491
|
||||
.short 30435, 30452, 30469, 30486, 30503, 30520
|
||||
.short 32464, 32481, 32498, 32515, 32532, 32549
|
||||
.short -31043, -31026, -31009, -30992, -30975, -30958
|
||||
.short -29014, -28997, -28980, -28963, -28946, -28929
|
||||
.short -26985, -26968, -26951, -26934, -26917, -26900
|
||||
.short -24956, -24939, -24922, -24905, -24888, -24871
|
||||
.short -22927, -22910, -22893, -22876, -22859, -22842
|
||||
.short -20898, -20881, -20864, -20847, -20830, -20813
|
||||
.short -18869, -18852, -18835, -18818, -18801, -18784
|
||||
.short -16840, -16823, -16806, -16789, -16772, -16755
|
||||
.short -14811, -14794, -14777, -14760, -14743, -14726
|
||||
.short -12782, -12765, -12748, -12731, -12714, -12697
|
||||
.short -10753, -10736, -10719, -10702, -10685, -10668
|
||||
.short -8724, -8707, -8690, -8673, -8656, -8639
|
||||
.short -6695, -6678, -6661, -6644, -6627, -6610
|
||||
.short -4666, -4649, -4632, -4615, -4598, -4581
|
||||
.short -2637, -2620, -2603, -2586, -2569, -2552
|
||||
|
||||
.word 305419896, 304492125, 303564354, 302636583
|
||||
.word 1025669867, 1024740949, 1023812031, 1022883113
|
||||
.word 1745919838, 1744989773, 1744059708, 1743129643
|
||||
.word -1828797487, -1829728699, -1830659911, -1831591123
|
||||
.word -1108547516, -1109479875, -1110412234, -1111344593
|
||||
.word -388297545, -389231051, -390164557, -391098063
|
||||
.word 331952426, 331017773, 330083120, 329148467
|
||||
.word 1052202397, 1051266597, 1050330797, 1049394997
|
||||
.word 1772452368, 1771515421, 1770578474, 1769641527
|
||||
.word -1802264957, -1803203051, -1804141145, -1805079239
|
||||
.word -1082014986, -1082954227, -1083893468, -1084832709
|
||||
.word -361765015, -362705403, -363645791, -364586179
|
||||
.word 358484956, 357543421, 356601886, 355660351
|
||||
.word 1078734927, 1077792245, 1076849563, 1075906881
|
||||
.word 1798984898, 1798041069, 1797097240, 1796153411
|
||||
.word -1775732427, -1776677403, -1777622379, -1778567355
|
||||
.word -1055482456, -1056428579, -1057374702, -1058320825
|
||||
.word -335232485, -336179755, -337127025, -338074295
|
||||
.word 385017486, 384069069, 383120652, 382172235
|
||||
.word 1105267457, 1104317893, 1103368329, 1102418765
|
||||
.word 1825517428, 1824566717, 1823616006, 1822665295
|
||||
.word -1749199897, -1750151755, -1751103613, -1752055471
|
||||
.word -1028949926, -1029902931, -1030855936, -1031808941
|
||||
.word -308699955, -309654107, -310608259, -311562411
|
||||
.word 411550016, 410594717, 409639418, 408684119
|
||||
.word 1131799987, 1130843541, 1129887095, 1128930649
|
||||
.word 1852049958, 1851092365, 1850134772, 1849177179
|
||||
.word -1722667367, -1723626107, -1724584847, -1725543587
|
||||
.word -1002417396, -1003377283, -1004337170, -1005297057
|
||||
.word -282167425, -283128459, -284089493, -285050527
|
||||
.word 438082546, 437120365, 436158184, 435196003
|
||||
.word 1158332517, 1157369189, 1156405861, 1155442533
|
||||
.int 1254161 + 99163665
|
||||
.word 1254161 - 99163665 + 126416
|
||||
.word 126416 - (99163665 - 1254161)
|
||||
.int 1206444 + 99135946
|
||||
.word 1206444 - 99135946 + -636489589
|
||||
.word -636489589 - (99135946 - 1206444)
|
||||
.int 1158727 + 99108227
|
||||
.word 1158727 - 99108227 + -1273105594
|
||||
.word -1273105594 - (99108227 - 1158727)
|
||||
.int 1111010 + 99080508
|
||||
.word 1111010 - 99080508 + -1909721599
|
||||
.word -1909721599 - (99080508 - 1111010)
|
||||
|
||||
.int 10371432 + 198360298
|
||||
.word 10371432 - 198360298 + 207677
|
||||
.word 207677 - (198360298 - 10371432)
|
||||
.int 10322568 + 192163578
|
||||
.word 10322568 - 192163578 + -646124689
|
||||
.word -646124689 - (192163578 - 10322568)
|
||||
.int 10273704 + 185966858
|
||||
.word 10273704 - 185966858 + -1292457055
|
||||
.word -1292457055 - (185966858 - 10273704)
|
||||
.int 10224840 + 179770138
|
||||
.word 10224840 - 179770138 + -1938789421
|
||||
.word -1938789421 - (179770138 - 10224840)
|
||||
|
||||
.int 19488703 + 297556931
|
||||
.word 19488703 - 297556931 + 288938
|
||||
.word 288938 - (297556931 - 19488703)
|
||||
.int 19438692 + 285191210
|
||||
.word 19438692 - 285191210 + -655759789
|
||||
.word -655759789 - (285191210 - 19438692)
|
||||
.int 19388681 + 272825489
|
||||
.word 19388681 - 272825489 + -1311808516
|
||||
.word -1311808516 - (272825489 - 19388681)
|
||||
.int 19338670 + 260459768
|
||||
.word 19338670 - 260459768 + -1967857243
|
||||
.word -1967857243 - (260459768 - 19338670)
|
||||
|
||||
.int 28605974 + 396753564
|
||||
.word 28605974 - 396753564 + 370199
|
||||
.word 370199 - (396753564 - 28605974)
|
||||
.int 28554816 + 378218842
|
||||
.word 28554816 - 378218842 + -665394889
|
||||
.word -665394889 - (378218842 - 28554816)
|
||||
.int 28503658 + 359684120
|
||||
.word 28503658 - 359684120 + -1331159977
|
||||
.word -1331159977 - (359684120 - 28503658)
|
||||
.int 28452500 + 341149398
|
||||
.word 28452500 - 341149398 + -1996925065
|
||||
.word -1996925065 - (341149398 - 28452500)
|
||||
|
||||
.int 37723245 + 495950197
|
||||
.word 37723245 - 495950197 + 451460
|
||||
.word 451460 - (495950197 - 37723245)
|
||||
.int 37670940 + 471246474
|
||||
.word 37670940 - 471246474 + -675029989
|
||||
.word -675029989 - (471246474 - 37670940)
|
||||
.int 37618635 + 446542751
|
||||
.word 37618635 - 446542751 + -1350511438
|
||||
.word -1350511438 - (446542751 - 37618635)
|
||||
.int 37566330 + 421839028
|
||||
.word 37566330 - 421839028 + -2025992887
|
||||
.word -2025992887 - (421839028 - 37566330)
|
||||
|
||||
.int 46840516 + 595146830
|
||||
.word 46840516 - 595146830 + 532721
|
||||
.word 532721 - (595146830 - 46840516)
|
||||
.int 46787064 + 564274106
|
||||
.word 46787064 - 564274106 + -684665089
|
||||
.word -684665089 - (564274106 - 46787064)
|
||||
.int 46733612 + 533401382
|
||||
.word 46733612 - 533401382 + -1369862899
|
||||
.word -1369862899 - (533401382 - 46733612)
|
||||
.int 46680160 + 502528658
|
||||
.word 46680160 - 502528658 + -2055060709
|
||||
.word -2055060709 - (502528658 - 46680160)
|
||||
|
||||
.int 55957787 + 694343463
|
||||
.word 55957787 - 694343463 + 613982
|
||||
.word 613982 - (694343463 - 55957787)
|
||||
.int 55903188 + 657301738
|
||||
.word 55903188 - 657301738 + -694300189
|
||||
.word -694300189 - (657301738 - 55903188)
|
||||
.int 55848589 + 620260013
|
||||
.word 55848589 - 620260013 + -1389214360
|
||||
.word -1389214360 - (620260013 - 55848589)
|
||||
.int 55793990 + 583218288
|
||||
.word 55793990 - 583218288 + -2084128531
|
||||
.word -2084128531 - (583218288 - 55793990)
|
||||
|
||||
.int 65075058 + 793540096
|
||||
.word 65075058 - 793540096 + 695243
|
||||
.word 695243 - (793540096 - 65075058)
|
||||
.int 65019312 + 750329370
|
||||
.word 65019312 - 750329370 + -703935289
|
||||
.word -703935289 - (750329370 - 65019312)
|
||||
.int 64963566 + 707118644
|
||||
.word 64963566 - 707118644 + -1408565821
|
||||
.word -1408565821 - (707118644 - 64963566)
|
||||
.int 64907820 + 663907918
|
||||
.word 64907820 - 663907918 + -2113196353
|
||||
.word -2113196353 - (663907918 - 64907820)
|
||||
|
||||
.int 74192329 + 892736729
|
||||
.word 74192329 - 892736729 + 776504
|
||||
.word 776504 - (892736729 - 74192329)
|
||||
.int 74135436 + 843357002
|
||||
.word 74135436 - 843357002 + -713570389
|
||||
.word -713570389 - (843357002 - 74135436)
|
||||
.int 74078543 + 793977275
|
||||
.word 74078543 - 793977275 + -1427917282
|
||||
.word -1427917282 - (793977275 - 74078543)
|
||||
.int 74021650 + 744597548
|
||||
.word 74021650 - 744597548 + -2142264175
|
||||
.word -2142264175 - (744597548 - 74021650)
|
||||
|
||||
.int 83309600 + 991933362
|
||||
.word 83309600 - 991933362 + 857765
|
||||
.word 857765 - (991933362 - 83309600)
|
||||
.int 83251560 + 936384634
|
||||
.word 83251560 - 936384634 + -723205489
|
||||
.word -723205489 - (936384634 - 83251560)
|
||||
.int 83193520 + 880835906
|
||||
.word 83193520 - 880835906 + -1447268743
|
||||
.word -1447268743 - (880835906 - 83193520)
|
||||
.int 83135480 + 825287178
|
||||
.word 83135480 - 825287178 + 2123635299
|
||||
.word 2123635299 - (825287178 - 83135480)
|
||||
|
||||
.int 92426871 + 1091129995
|
||||
.word 92426871 - 1091129995 + 939026
|
||||
.word 939026 - (1091129995 - 92426871)
|
||||
.int 92367684 + 1029412266
|
||||
.word 92367684 - 1029412266 + -732840589
|
||||
.word -732840589 - (1029412266 - 92367684)
|
||||
.int 92308497 + 967694537
|
||||
.word 92308497 - 967694537 + -1466620204
|
||||
.word -1466620204 - (967694537 - 92308497)
|
||||
.int 92249310 + 905976808
|
||||
.word 92249310 - 905976808 + 2094567477
|
||||
.word 2094567477 - (905976808 - 92249310)
|
||||
|
||||
.int 101544142 + 1190326628
|
||||
.word 101544142 - 1190326628 + 1020287
|
||||
.word 1020287 - (1190326628 - 101544142)
|
||||
.int 101483808 + 1122439898
|
||||
.word 101483808 - 1122439898 + -742475689
|
||||
.word -742475689 - (1122439898 - 101483808)
|
||||
.int 101423474 + 1054553168
|
||||
.word 101423474 - 1054553168 + -1485971665
|
||||
.word -1485971665 - (1054553168 - 101423474)
|
||||
.int 101363140 + 986666438
|
||||
.word 101363140 - 986666438 + 2065499655
|
||||
.word 2065499655 - (986666438 - 101363140)
|
||||
|
||||
.int 110661413 + 1289523261
|
||||
.word 110661413 - 1289523261 + 1101548
|
||||
.word 1101548 - (1289523261 - 110661413)
|
||||
.int 110599932 + 1215467530
|
||||
.word 110599932 - 1215467530 + -752110789
|
||||
.word -752110789 - (1215467530 - 110599932)
|
||||
.int 110538451 + 1141411799
|
||||
.word 110538451 - 1141411799 + -1505323126
|
||||
.word -1505323126 - (1141411799 - 110538451)
|
||||
.int 110476970 + 1067356068
|
||||
.word 110476970 - 1067356068 + 2036431833
|
||||
.word 2036431833 - (1067356068 - 110476970)
|
||||
|
||||
.int 119778684 + 1388719894
|
||||
.word 119778684 - 1388719894 + 1182809
|
||||
.word 1182809 - (1388719894 - 119778684)
|
||||
.int 119716056 + 1308495162
|
||||
.word 119716056 - 1308495162 + -761745889
|
||||
.word -761745889 - (1308495162 - 119716056)
|
||||
.int 119653428 + 1228270430
|
||||
.word 119653428 - 1228270430 + -1524674587
|
||||
.word -1524674587 - (1228270430 - 119653428)
|
||||
.int 119590800 + 1148045698
|
||||
.word 119590800 - 1148045698 + 2007364011
|
||||
.word 2007364011 - (1148045698 - 119590800)
|
||||
|
||||
.int 128895955 + 1487916527
|
||||
.word 128895955 - 1487916527 + 1264070
|
||||
.word 1264070 - (1487916527 - 128895955)
|
||||
.int 128832180 + 1401522794
|
||||
.word 128832180 - 1401522794 + -771380989
|
||||
.word -771380989 - (1401522794 - 128832180)
|
||||
.int 128768405 + 1315129061
|
||||
.word 128768405 - 1315129061 + -1544026048
|
||||
.word -1544026048 - (1315129061 - 128768405)
|
||||
.int 128704630 + 1228735328
|
||||
.word 128704630 - 1228735328 + 1978296189
|
||||
.word 1978296189 - (1228735328 - 128704630)
|
||||
|
||||
.int 138013226 + 1587113160
|
||||
.word 138013226 - 1587113160 + 1345331
|
||||
.word 1345331 - (1587113160 - 138013226)
|
||||
.int 137948304 + 1494550426
|
||||
.word 137948304 - 1494550426 + -781016089
|
||||
.word -781016089 - (1494550426 - 137948304)
|
||||
.int 137883382 + 1401987692
|
||||
.word 137883382 - 1401987692 + -1563377509
|
||||
.word -1563377509 - (1401987692 - 137883382)
|
||||
.int 137818460 + 1309424958
|
||||
.word 137818460 - 1309424958 + 1949228367
|
||||
.word 1949228367 - (1309424958 - 137818460)
|
||||
|
||||
.int 147130497 + 1686309793
|
||||
.word 147130497 - 1686309793 + 1426592
|
||||
.word 1426592 - (1686309793 - 147130497)
|
||||
.int 147064428 + 1587578058
|
||||
.word 147064428 - 1587578058 + -790651189
|
||||
.word -790651189 - (1587578058 - 147064428)
|
||||
.int 146998359 + 1488846323
|
||||
.word 146998359 - 1488846323 + -1582728970
|
||||
.word -1582728970 - (1488846323 - 146998359)
|
||||
.int 146932290 + 1390114588
|
||||
.word 146932290 - 1390114588 + 1920160545
|
||||
.word 1920160545 - (1390114588 - 146932290)
|
||||
|
||||
.int 156247768 + 1785506426
|
||||
.word 156247768 - 1785506426 + 1507853
|
||||
.word 1507853 - (1785506426 - 156247768)
|
||||
.int 156180552 + 1680605690
|
||||
.word 156180552 - 1680605690 + -800286289
|
||||
.word -800286289 - (1680605690 - 156180552)
|
||||
.int 156113336 + 1575704954
|
||||
.word 156113336 - 1575704954 + -1602080431
|
||||
.word -1602080431 - (1575704954 - 156113336)
|
||||
.int 156046120 + 1470804218
|
||||
.word 156046120 - 1470804218 + 1891092723
|
||||
.word 1891092723 - (1470804218 - 156046120)
|
||||
|
||||
.int 165365039 + 1884703059
|
||||
.word 165365039 - 1884703059 + 1589114
|
||||
.word 1589114 - (1884703059 - 165365039)
|
||||
.int 165296676 + 1773633322
|
||||
.word 165296676 - 1773633322 + -809921389
|
||||
.word -809921389 - (1773633322 - 165296676)
|
||||
.int 165228313 + 1662563585
|
||||
.word 165228313 - 1662563585 + -1621431892
|
||||
.word -1621431892 - (1662563585 - 165228313)
|
||||
.int 165159950 + 1551493848
|
||||
.word 165159950 - 1551493848 + 1862024901
|
||||
.word 1862024901 - (1551493848 - 165159950)
|
||||
|
||||
.int 174482310 + 1983899692
|
||||
.word 174482310 - 1983899692 + 1670375
|
||||
.word 1670375 - (1983899692 - 174482310)
|
||||
.int 174412800 + 1866660954
|
||||
.word 174412800 - 1866660954 + -819556489
|
||||
.word -819556489 - (1866660954 - 174412800)
|
||||
.int 174343290 + 1749422216
|
||||
.word 174343290 - 1749422216 + -1640783353
|
||||
.word -1640783353 - (1749422216 - 174343290)
|
||||
.int 174273780 + 1632183478
|
||||
.word 174273780 - 1632183478 + 1832957079
|
||||
.word 1832957079 - (1632183478 - 174273780)
|
||||
|
||||
.int 183599581 + 2083096325
|
||||
.word 183599581 - 2083096325 + 1751636
|
||||
.word 1751636 - (2083096325 - 183599581)
|
||||
.int 183528924 + 1959688586
|
||||
.word 183528924 - 1959688586 + -829191589
|
||||
.word -829191589 - (1959688586 - 183528924)
|
||||
.int 183458267 + 1836280847
|
||||
.word 183458267 - 1836280847 + -1660134814
|
||||
.word -1660134814 - (1836280847 - 183458267)
|
||||
.int 183387610 + 1712873108
|
||||
.word 183387610 - 1712873108 + 1803889257
|
||||
.word 1803889257 - (1712873108 - 183387610)
|
||||
|
||||
.int 192716852 + -2112674338
|
||||
.word 192716852 - -2112674338 + 1832897
|
||||
.word 1832897 - (-2112674338 - 192716852)
|
||||
.int 192645048 + 2052716218
|
||||
.word 192645048 - 2052716218 + -838826689
|
||||
.word -838826689 - (2052716218 - 192645048)
|
||||
.int 192573244 + 1923139478
|
||||
.word 192573244 - 1923139478 + -1679486275
|
||||
.word -1679486275 - (1923139478 - 192573244)
|
||||
.int 192501440 + 1793562738
|
||||
.word 192501440 - 1793562738 + 1774821435
|
||||
.word 1774821435 - (1793562738 - 192501440)
|
||||
|
||||
.int 201834123 + -2013477705
|
||||
.word 201834123 - -2013477705 + 1914158
|
||||
.word 1914158 - (-2013477705 - 201834123)
|
||||
.int 201761172 + 2145743850
|
||||
.word 201761172 - 2145743850 + -848461789
|
||||
.word -848461789 - (2145743850 - 201761172)
|
||||
.int 201688221 + 2009998109
|
||||
.word 201688221 - 2009998109 + -1698837736
|
||||
.word -1698837736 - (2009998109 - 201688221)
|
||||
.int 201615270 + 1874252368
|
||||
.word 201615270 - 1874252368 + 1745753613
|
||||
.word 1745753613 - (1874252368 - 201615270)
|
||||
|
||||
.int 210951394 + -1914281072
|
||||
.word 210951394 - -1914281072 + 1995419
|
||||
.word 1995419 - (-1914281072 - 210951394)
|
||||
.int 210877296 + -2056195814
|
||||
.word 210877296 - -2056195814 + -858096889
|
||||
.word -858096889 - (-2056195814 - 210877296)
|
||||
.int 210803198 + 2096856740
|
||||
.word 210803198 - 2096856740 + -1718189197
|
||||
.word -1718189197 - (2096856740 - 210803198)
|
||||
.int 210729100 + 1954941998
|
||||
.word 210729100 - 1954941998 + 1716685791
|
||||
.word 1716685791 - (1954941998 - 210729100)
|
||||
|
||||
.int 220068665 + -1815084439
|
||||
.word 220068665 - -1815084439 + 2076680
|
||||
.word 2076680 - (-1815084439 - 220068665)
|
||||
.int 219993420 + -1963168182
|
||||
.word 219993420 - -1963168182 + -867731989
|
||||
.word -867731989 - (-1963168182 - 219993420)
|
||||
.int 219918175 + -2111251925
|
||||
.word 219918175 - -2111251925 + -1737540658
|
||||
.word -1737540658 - (-2111251925 - 219918175)
|
||||
.int 219842930 + 2035631628
|
||||
.word 219842930 - 2035631628 + 1687617969
|
||||
.word 1687617969 - (2035631628 - 219842930)
|
||||
|
||||
.int 229185936 + -1715887806
|
||||
.word 229185936 - -1715887806 + 2157941
|
||||
.word 2157941 - (-1715887806 - 229185936)
|
||||
.int 229109544 + -1870140550
|
||||
.word 229109544 - -1870140550 + -877367089
|
||||
.word -877367089 - (-1870140550 - 229109544)
|
||||
.int 229033152 + -2024393294
|
||||
.word 229033152 - -2024393294 + -1756892119
|
||||
.word -1756892119 - (-2024393294 - 229033152)
|
||||
.int 228956760 + 2116321258
|
||||
.word 228956760 - 2116321258 + 1658550147
|
||||
.word 1658550147 - (2116321258 - 228956760)
|
||||
|
||||
.int 238303207 + -1616691173
|
||||
.word 238303207 - -1616691173 + 2239202
|
||||
.word 2239202 - (-1616691173 - 238303207)
|
||||
.int 238225668 + -1777112918
|
||||
.word 238225668 - -1777112918 + -887002189
|
||||
.word -887002189 - (-1777112918 - 238225668)
|
||||
.int 238148129 + -1937534663
|
||||
.word 238148129 - -1937534663 + -1776243580
|
||||
.word -1776243580 - (-1937534663 - 238148129)
|
||||
.int 238070590 + -2097956408
|
||||
.word 238070590 - -2097956408 + 1629482325
|
||||
.word 1629482325 - (-2097956408 - 238070590)
|
||||
|
||||
.int 247420478 + -1517494540
|
||||
.word 247420478 - -1517494540 + 2320463
|
||||
.word 2320463 - (-1517494540 - 247420478)
|
||||
.int 247341792 + -1684085286
|
||||
.word 247341792 - -1684085286 + -896637289
|
||||
.word -896637289 - (-1684085286 - 247341792)
|
||||
.int 247263106 + -1850676032
|
||||
.word 247263106 - -1850676032 + -1795595041
|
||||
.word -1795595041 - (-1850676032 - 247263106)
|
||||
.int 247184420 + -2017266778
|
||||
.word 247184420 - -2017266778 + 1600414503
|
||||
.word 1600414503 - (-2017266778 - 247184420)
|
||||
|
||||
.int 256537749 + -1418297907
|
||||
.word 256537749 - -1418297907 + 2401724
|
||||
.word 2401724 - (-1418297907 - 256537749)
|
||||
.int 256457916 + -1591057654
|
||||
.word 256457916 - -1591057654 + -906272389
|
||||
.word -906272389 - (-1591057654 - 256457916)
|
||||
.int 256378083 + -1763817401
|
||||
.word 256378083 - -1763817401 + -1814946502
|
||||
.word -1814946502 - (-1763817401 - 256378083)
|
||||
.int 256298250 + -1936577148
|
||||
.word 256298250 - -1936577148 + 1571346681
|
||||
.word 1571346681 - (-1936577148 - 256298250)
|
||||
|
||||
.int 265655020 + -1319101274
|
||||
.word 265655020 - -1319101274 + 2482985
|
||||
.word 2482985 - (-1319101274 - 265655020)
|
||||
.int 265574040 + -1498030022
|
||||
.word 265574040 - -1498030022 + -915907489
|
||||
.word -915907489 - (-1498030022 - 265574040)
|
||||
.int 265493060 + -1676958770
|
||||
.word 265493060 - -1676958770 + -1834297963
|
||||
.word -1834297963 - (-1676958770 - 265493060)
|
||||
.int 265412080 + -1855887518
|
||||
.word 265412080 - -1855887518 + 1542278859
|
||||
.word 1542278859 - (-1855887518 - 265412080)
|
||||
|
||||
.int 274772291 + -1219904641
|
||||
.word 274772291 - -1219904641 + 2564246
|
||||
.word 2564246 - (-1219904641 - 274772291)
|
||||
.int 274690164 + -1405002390
|
||||
.word 274690164 - -1405002390 + -925542589
|
||||
.word -925542589 - (-1405002390 - 274690164)
|
||||
.int 274608037 + -1590100139
|
||||
.word 274608037 - -1590100139 + -1853649424
|
||||
.word -1853649424 - (-1590100139 - 274608037)
|
||||
.int 274525910 + -1775197888
|
||||
.word 274525910 - -1775197888 + 1513211037
|
||||
.word 1513211037 - (-1775197888 - 274525910)
|
||||
|
||||
.int 283889562 + -1120708008
|
||||
.word 283889562 - -1120708008 + 2645507
|
||||
.word 2645507 - (-1120708008 - 283889562)
|
||||
.int 283806288 + -1311974758
|
||||
.word 283806288 - -1311974758 + -935177689
|
||||
.word -935177689 - (-1311974758 - 283806288)
|
||||
.int 283723014 + -1503241508
|
||||
.word 283723014 - -1503241508 + -1873000885
|
||||
.word -1873000885 - (-1503241508 - 283723014)
|
||||
.int 283639740 + -1694508258
|
||||
.word 283639740 - -1694508258 + 1484143215
|
||||
.word 1484143215 - (-1694508258 - 283639740)
|
||||
|
||||
.word label_1, label_2, label_3
|
||||
.word label_1 - 37
|
||||
.word label_1 - label_2 + label_3
|
||||
.word label_3 - (label_1 - label_2 + 47)
|
||||
.short lo16(label_1 - label_2)
|
||||
.short lo16(label_3 + 0x12345678 - label_1)
|
||||
.short hi16(label_3 + 0x12345678 - label_1)
|
||||
.short ha16(label_1 - label_3)
|
||||
.short ha16(label_3 - label_1)
|
||||
.short ha16(0x8000)
|
||||
.short ha16(0x7230000)
|
||||
.short ha16(0x723FFFF)
|
||||
label_3:
|
8177
gas/testsuite/gas/tilepro/t_insns.d
Normal file
8177
gas/testsuite/gas/tilepro/t_insns.d
Normal file
File diff suppressed because it is too large
Load Diff
8202
gas/testsuite/gas/tilepro/t_insns.s
Normal file
8202
gas/testsuite/gas/tilepro/t_insns.s
Normal file
File diff suppressed because it is too large
Load Diff
24
gas/testsuite/gas/tilepro/tilepro.exp
Normal file
24
gas/testsuite/gas/tilepro/tilepro.exp
Normal file
@ -0,0 +1,24 @@
|
||||
# Expect script for TILEPro assembler tests.
|
||||
# Copyright 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
if [istarget tilepro-*-*] {
|
||||
run_dump_test "t_insns"
|
||||
run_dump_test "t_constants"
|
||||
}
|
@ -1,11 +1,7 @@
|
||||
2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* opcode/s390.h: Replace S390_OPERAND_REG_EVEN with
|
||||
S390_OPERAND_REG_PAIR.
|
||||
|
||||
2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* opcode/s390.h: Add S390_OPCODE_REG_EVEN flag.
|
||||
* dis-asm.h (print_insn_tilegx): Declare.
|
||||
(print_insn_tilepro): Likewise.
|
||||
|
||||
2011-05-17 Alan Modra <amodra@gmail.com>
|
||||
|
||||
@ -96,20 +92,11 @@
|
||||
|
||||
* dwarf2.h: Update value for DW_AT_hi_user.
|
||||
|
||||
2010-11-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* opcode/s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU.
|
||||
|
||||
2010-11-16 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* simple-object.h (simple_object_attributes_merge): Declare,
|
||||
replacing simple_object_attributes_compare.
|
||||
|
||||
2010-11-16 Jie Zhang <jie.zhang@analog.com>
|
||||
|
||||
* elf/bfin.h (EF_BFIN_CODE_IN_L1): Define.
|
||||
(EF_BFIN_DATA_IN_L1): Define.
|
||||
|
||||
2010-11-04 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Go.
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Interface between the opcode library and its callers.
|
||||
|
||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010,
|
||||
2011 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -286,6 +286,8 @@ extern int print_insn_tic4x (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_tic54x (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_tic6x (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_tic80 (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_tilegx (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_tilepro (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_v850 (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_vax (bfd_vma, disassemble_info *);
|
||||
extern int print_insn_w65 (bfd_vma, disassemble_info *);
|
||||
|
@ -1,3 +1,9 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* common.h: Add EM_TILEGX.
|
||||
* tilegx.h: New file.
|
||||
* tilepro.h: New file.
|
||||
|
||||
2011-06-09 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* ia64.h (Elf64_External_VMS_ORIG_DYN_Note): New struct.
|
||||
@ -56,6 +62,11 @@
|
||||
R_ARM_TLS_DESCSEQ, T_ARM_THM_TLS_CALL, R_ARM_THM_TLS_DESCSEQ): New
|
||||
relocations.
|
||||
|
||||
2010-11-16 Jie Zhang <jie.zhang@analog.com>
|
||||
|
||||
* bfin.h (EF_BFIN_CODE_IN_L1): Define.
|
||||
(EF_BFIN_DATA_IN_L1): Define.
|
||||
|
||||
2010-11-11 Mingming Sun <mingm.sun@gmail.com>
|
||||
|
||||
* mips.h (E_MIPS_MACH_LS3A): Defined.
|
||||
|
@ -295,6 +295,7 @@
|
||||
#define EM_TILEPRO 188 /* Tilera TILEPro multicore architecture family */
|
||||
#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
|
||||
#define EM_CUDA 190 /* NVIDIA CUDA architecture */
|
||||
#define EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */
|
||||
|
||||
/* If it is necessary to assign new unofficial EM_* values, please pick large
|
||||
random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
|
||||
|
162
include/elf/tilegx.h
Normal file
162
include/elf/tilegx.h
Normal file
@ -0,0 +1,162 @@
|
||||
/* TILE-Gx ELF support for BFD.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _ELF_TILEGX_H
|
||||
#define _ELF_TILEGX_H
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_tilegx_reloc_type)
|
||||
RELOC_NUMBER (R_TILEGX_NONE, 0)
|
||||
|
||||
/* Standard relocations */
|
||||
RELOC_NUMBER (R_TILEGX_64, 1)
|
||||
RELOC_NUMBER (R_TILEGX_32, 2)
|
||||
RELOC_NUMBER (R_TILEGX_16, 3)
|
||||
RELOC_NUMBER (R_TILEGX_8, 4)
|
||||
RELOC_NUMBER (R_TILEGX_64_PCREL, 5)
|
||||
RELOC_NUMBER (R_TILEGX_32_PCREL, 6)
|
||||
RELOC_NUMBER (R_TILEGX_16_PCREL, 7)
|
||||
RELOC_NUMBER (R_TILEGX_8_PCREL, 8)
|
||||
|
||||
/* Custom relocations */
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_HW0, 9)
|
||||
RELOC_NUMBER (R_TILEGX_HW1, 10)
|
||||
RELOC_NUMBER (R_TILEGX_HW2, 11)
|
||||
RELOC_NUMBER (R_TILEGX_HW3, 12)
|
||||
RELOC_NUMBER (R_TILEGX_HW0_LAST, 13)
|
||||
RELOC_NUMBER (R_TILEGX_HW1_LAST, 14)
|
||||
RELOC_NUMBER (R_TILEGX_HW2_LAST, 15)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_COPY, 16)
|
||||
RELOC_NUMBER (R_TILEGX_GLOB_DAT, 17)
|
||||
RELOC_NUMBER (R_TILEGX_JMP_SLOT, 18)
|
||||
RELOC_NUMBER (R_TILEGX_RELATIVE, 19)
|
||||
|
||||
/* Branch/jump offsets */
|
||||
RELOC_NUMBER (R_TILEGX_BROFF_X1, 20)
|
||||
RELOC_NUMBER (R_TILEGX_JUMPOFF_X1, 21)
|
||||
RELOC_NUMBER (R_TILEGX_JUMPOFF_X1_PLT, 22)
|
||||
|
||||
/* Immediate operands. */
|
||||
RELOC_NUMBER (R_TILEGX_IMM8_X0, 23)
|
||||
RELOC_NUMBER (R_TILEGX_IMM8_Y0, 24)
|
||||
RELOC_NUMBER (R_TILEGX_IMM8_X1, 25)
|
||||
RELOC_NUMBER (R_TILEGX_IMM8_Y1, 26)
|
||||
RELOC_NUMBER (R_TILEGX_DEST_IMM8_X1, 27)
|
||||
RELOC_NUMBER (R_TILEGX_MT_IMM14_X1, 28)
|
||||
RELOC_NUMBER (R_TILEGX_MF_IMM14_X1, 29)
|
||||
RELOC_NUMBER (R_TILEGX_MMSTART_X0, 30)
|
||||
RELOC_NUMBER (R_TILEGX_MMEND_X0, 31)
|
||||
RELOC_NUMBER (R_TILEGX_SHAMT_X0, 32)
|
||||
RELOC_NUMBER (R_TILEGX_SHAMT_X1, 33)
|
||||
RELOC_NUMBER (R_TILEGX_SHAMT_Y0, 34)
|
||||
RELOC_NUMBER (R_TILEGX_SHAMT_Y1, 35)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0, 36)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0, 37)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1, 38)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1, 39)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2, 40)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2, 41)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3, 42)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3, 43)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST, 44)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST, 45)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST, 46)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST, 47)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST, 48)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST, 49)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_PCREL, 50)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_PCREL, 51)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_PCREL, 52)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_PCREL, 53)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_PCREL, 54)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_PCREL, 55)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_PCREL, 56)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_PCREL, 57)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_PCREL, 58)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_PCREL, 59)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_PCREL, 60)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_PCREL, 61)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_PCREL, 62)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_PCREL, 63)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_GOT, 64)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_GOT, 65)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_GOT, 66)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_GOT, 67)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_GOT, 68)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_GOT, 69)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_GOT, 70)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_GOT, 71)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 72)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 73)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 74)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 75)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_GOT, 76)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_GOT, 77)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_GD, 78)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_GD, 79)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_GD, 80)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_GD, 81)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_GD, 82)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_GD, 83)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_GD, 84)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_GD, 85)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 86)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 87)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 88)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 89)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD, 90)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD, 91)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_IE, 92)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_IE, 93)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_IE, 94)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_IE, 95)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_IE, 96)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_IE, 97)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_IE, 98)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_IE, 99)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 100)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 101)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 102)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 103)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE, 104)
|
||||
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE, 105)
|
||||
|
||||
RELOC_NUMBER (R_TILEGX_TLS_DTPMOD64, 106)
|
||||
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF64, 107)
|
||||
RELOC_NUMBER (R_TILEGX_TLS_TPOFF64, 108)
|
||||
RELOC_NUMBER (R_TILEGX_TLS_DTPMOD32, 109)
|
||||
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF32, 110)
|
||||
RELOC_NUMBER (R_TILEGX_TLS_TPOFF32, 111)
|
||||
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
RELOC_NUMBER (R_TILEGX_GNU_VTINHERIT, 128)
|
||||
RELOC_NUMBER (R_TILEGX_GNU_VTENTRY, 129)
|
||||
END_RELOC_NUMBERS (R_TILEGX_max)
|
||||
|
||||
#endif /* _ELF_TILEGX_H */
|
128
include/elf/tilepro.h
Normal file
128
include/elf/tilepro.h
Normal file
@ -0,0 +1,128 @@
|
||||
/* TILEPro ELF support for BFD.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _ELF_TILEPRO_H
|
||||
#define _ELF_TILEPRO_H
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_tilepro_reloc_type)
|
||||
RELOC_NUMBER (R_TILEPRO_NONE, 0)
|
||||
|
||||
/* Standard relocations */
|
||||
RELOC_NUMBER (R_TILEPRO_32, 1)
|
||||
RELOC_NUMBER (R_TILEPRO_16, 2)
|
||||
RELOC_NUMBER (R_TILEPRO_8, 3)
|
||||
RELOC_NUMBER (R_TILEPRO_32_PCREL, 4)
|
||||
RELOC_NUMBER (R_TILEPRO_16_PCREL, 5)
|
||||
RELOC_NUMBER (R_TILEPRO_8_PCREL, 6)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_LO16, 7)
|
||||
RELOC_NUMBER (R_TILEPRO_HI16, 8)
|
||||
RELOC_NUMBER (R_TILEPRO_HA16, 9)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_COPY, 10)
|
||||
RELOC_NUMBER (R_TILEPRO_GLOB_DAT, 11)
|
||||
RELOC_NUMBER (R_TILEPRO_JMP_SLOT, 12)
|
||||
RELOC_NUMBER (R_TILEPRO_RELATIVE, 13)
|
||||
|
||||
/* Branch/jump offsets */
|
||||
RELOC_NUMBER (R_TILEPRO_BROFF_X1, 14)
|
||||
RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1, 15)
|
||||
RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1_PLT, 16)
|
||||
|
||||
/* Immediate operands. */
|
||||
RELOC_NUMBER (R_TILEPRO_IMM8_X0, 17)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM8_Y0, 18)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM8_X1, 19)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM8_Y1, 20)
|
||||
RELOC_NUMBER (R_TILEPRO_MT_IMM15_X1, 21)
|
||||
RELOC_NUMBER (R_TILEPRO_MF_IMM15_X1, 22)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0, 23)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1, 24)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO, 25)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO, 26)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI, 27)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI, 28)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA, 29)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA, 30)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_PCREL, 31)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_PCREL, 32)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO_PCREL, 33)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO_PCREL, 34)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI_PCREL, 35)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI_PCREL, 36)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA_PCREL, 37)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA_PCREL, 38)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT, 39)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT, 40)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_LO, 41)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_LO, 42)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HI, 43)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HI, 44)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HA, 45)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HA, 46)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_MMSTART_X0, 47)
|
||||
RELOC_NUMBER (R_TILEPRO_MMEND_X0, 48)
|
||||
RELOC_NUMBER (R_TILEPRO_MMSTART_X1, 49)
|
||||
RELOC_NUMBER (R_TILEPRO_MMEND_X1, 50)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_SHAMT_X0, 51)
|
||||
RELOC_NUMBER (R_TILEPRO_SHAMT_X1, 52)
|
||||
RELOC_NUMBER (R_TILEPRO_SHAMT_Y0, 53)
|
||||
RELOC_NUMBER (R_TILEPRO_SHAMT_Y1, 54)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55)
|
||||
|
||||
/* Relocs 56-65 are currently not defined. */
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_LO, 68)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_LO, 69)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HI, 70)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HI, 71)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HA, 72)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HA, 73)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE, 74)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE, 75)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_LO, 76)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_LO, 77)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HI, 78)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HI, 79)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HA, 80)
|
||||
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HA, 81)
|
||||
|
||||
RELOC_NUMBER (R_TILEPRO_TLS_DTPMOD32, 82)
|
||||
RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83)
|
||||
RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84)
|
||||
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128)
|
||||
RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129)
|
||||
END_RELOC_NUMBERS (R_TILEPRO_max)
|
||||
|
||||
#endif /* _ELF_TILEPRO_H */
|
@ -1,6 +1,20 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* tilegx.h: New file.
|
||||
* tilepro.h: New file.
|
||||
|
||||
2011-05-31 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* opcode/arm.h (ARM_ARCH_V7R_IDIV): Define.
|
||||
* arm.h (ARM_ARCH_V7R_IDIV): Define.
|
||||
|
||||
2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* s390.h: Replace S390_OPERAND_REG_EVEN with
|
||||
S390_OPERAND_REG_PAIR.
|
||||
|
||||
2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* s390.h: Add S390_OPCODE_REG_EVEN flag.
|
||||
|
||||
2011-04-18 Julian Brown <julian@codesourcery.com>
|
||||
|
||||
@ -57,6 +71,10 @@
|
||||
(OP_*_RZ, OP_*_FZ, INSN2_M_FP_D, INSN2_WRITE_GPR_Z, INSN2_WRITE_FPR_Z)
|
||||
(INSN2_READ_GPR_Z, INSN2_READ_FPR_Z, INSN2_READ_GPR_D): Define.
|
||||
|
||||
2010-11-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU.
|
||||
|
||||
2010-11-23 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* mips.h: Fix previous commit.
|
||||
|
1302
include/opcode/tilegx.h
Normal file
1302
include/opcode/tilegx.h
Normal file
File diff suppressed because it is too large
Load Diff
1636
include/opcode/tilepro.h
Normal file
1636
include/opcode/tilepro.h
Normal file
File diff suppressed because it is too large
Load Diff
14
ld/ChangeLog
14
ld/ChangeLog
@ -1,3 +1,17 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32tilegx.c and
|
||||
eelf32tilepro.c.
|
||||
(ALL_64_EMULATION_SOURCES): Add eelf64tilegx.c.
|
||||
(eelf32tilegx.c): New target.
|
||||
(eelf32tilepro.c): Likewise.
|
||||
(eelf64tilegx.c): Likewise.
|
||||
* Makefile.in: Regenerate.
|
||||
* configure.tgt: Handle tilegx-*-* and tilepro-*-*.
|
||||
* emulparams/elf32tilegx.sh: New file.
|
||||
* emulparams/elf64tilegx.sh: New file.
|
||||
* emulparams/elf32tilepro.sh: New file.
|
||||
|
||||
2011-06-13 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ldlang.c (sort_def_symbol, lang_one_common): Don't handle
|
||||
|
@ -247,6 +247,8 @@ ALL_EMULATION_SOURCES = \
|
||||
eelf32ppcvxworks.c \
|
||||
eelf32ppcwindiss.c \
|
||||
eelf32rx.c \
|
||||
eelf32tilegx.c \
|
||||
eelf32tilepro.c \
|
||||
eelf32vax.c \
|
||||
eelf32xc16x.c \
|
||||
eelf32xc16xl.c \
|
||||
@ -476,6 +478,7 @@ ALL_64_EMULATION_SOURCES = \
|
||||
eelf64ltsmip_fbsd.c \
|
||||
eelf64mmix.c \
|
||||
eelf64ppc.c \
|
||||
eelf64tilegx.c \
|
||||
eelf_l1om.c \
|
||||
eelf_l1om_fbsd.c \
|
||||
eelf_x86_64.c \
|
||||
@ -909,6 +912,14 @@ eelf32_tic6x_elf_le.c: $(srcdir)/emulparams/elf32_tic6x_elf_le.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
|
||||
${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32_tic6x_elf_le "$(tdir_elf32_tic6x_elf_le)"
|
||||
eelf32tilegx.c: $(srcdir)/emulparams/elf32tilegx.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32tilegx "$(tdir_tilegx)"
|
||||
eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32tilepro "$(tdir_tilepro)"
|
||||
eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \
|
||||
$(srcdir)/emulparams/elf32am33lin.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
@ -1959,6 +1970,10 @@ eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \
|
||||
ldemul-list.h \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)"
|
||||
eelf64tilegx.c: $(srcdir)/emulparams/elf64tilegx.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf64tilegx "$(tdir_tilegx)"
|
||||
eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf_l1om "$(tdir_elf_l1om)"
|
||||
|
@ -553,6 +553,8 @@ ALL_EMULATION_SOURCES = \
|
||||
eelf32ppcvxworks.c \
|
||||
eelf32ppcwindiss.c \
|
||||
eelf32rx.c \
|
||||
eelf32tilegx.c \
|
||||
eelf32tilepro.c \
|
||||
eelf32vax.c \
|
||||
eelf32xc16x.c \
|
||||
eelf32xc16xl.c \
|
||||
@ -781,6 +783,7 @@ ALL_64_EMULATION_SOURCES = \
|
||||
eelf64ltsmip_fbsd.c \
|
||||
eelf64mmix.c \
|
||||
eelf64ppc.c \
|
||||
eelf64tilegx.c \
|
||||
eelf_l1om.c \
|
||||
eelf_l1om_fbsd.c \
|
||||
eelf_x86_64.c \
|
||||
@ -2582,6 +2585,14 @@ eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \
|
||||
eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32rx "$(tdir_elf32rx)"
|
||||
eelf32tilegx.c: $(srcdir)/emulparams/elf32tilegx.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32tilegx "$(tdir_tilegx)"
|
||||
eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32tilepro "$(tdir_tilepro)"
|
||||
eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf32vax "$(tdir_elf32vax)"
|
||||
@ -3389,6 +3400,10 @@ eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \
|
||||
ldemul-list.h \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)"
|
||||
eelf64tilegx.c: $(srcdir)/emulparams/elf64tilegx.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf64tilegx "$(tdir_tilegx)"
|
||||
eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \
|
||||
$(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \
|
||||
$(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
|
||||
|
@ -643,6 +643,10 @@ tic6x-*-uclinux) targ_emul=elf32_tic6x_linux_le
|
||||
;;
|
||||
tic80-*-*) targ_emul=tic80coff
|
||||
;;
|
||||
tilegx-*-*) targ_emul=elf64tilegx
|
||||
targ_extra_emuls="elf32tilegx"
|
||||
targ_extra_libpath=$targ_extra_emuls ;;
|
||||
tilepro-*-*) targ_emul=elf32tilepro ;;
|
||||
v850*-*-*) targ_emul=v850
|
||||
;;
|
||||
vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
|
||||
|
26
ld/emulparams/elf32tilegx.sh
Normal file
26
ld/emulparams/elf32tilegx.sh
Normal file
@ -0,0 +1,26 @@
|
||||
SCRIPT_NAME=elf
|
||||
OUTPUT_FORMAT="elf32-tilegx"
|
||||
TEXT_START_ADDR=0x10000
|
||||
NO_REL_RELOCS=yes
|
||||
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||
# See also `include/elf/tilegx.h'
|
||||
ARCH=tilegx
|
||||
ALIGNMENT=64
|
||||
MACHINE=
|
||||
NOP=0
|
||||
TEMPLATE_NAME=elf32
|
||||
GENERATE_SHLIB_SCRIPT=yes
|
||||
GENERATE_COMBRELOC_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=8
|
||||
# Look for 32 bit target libraries in /lib32, /usr/lib32 etc., first.
|
||||
LIBPATH_SUFFIX=32
|
||||
OTHER_SECTIONS="
|
||||
/* TILE architecture interrupt vector areas */
|
||||
.intrpt0 0xfc000000 : { KEEP(*(.intrpt0)) }
|
||||
.intrpt1 0xfd000000 : { KEEP(*(.intrpt1)) }
|
||||
.intrpt2 0xfe000000 : { KEEP(*(.intrpt2)) }
|
||||
.intrpt3 0xff000000 : { KEEP(*(.intrpt3)) }
|
||||
"
|
27
ld/emulparams/elf32tilepro.sh
Normal file
27
ld/emulparams/elf32tilepro.sh
Normal file
@ -0,0 +1,27 @@
|
||||
SCRIPT_NAME=elf
|
||||
if [ -z "$OUTPUT_FORMAT" ]; then
|
||||
# Allow overriding externally to "elf32-tile64" if desired
|
||||
OUTPUT_FORMAT=elf32-tilepro
|
||||
fi
|
||||
TEXT_START_ADDR=0x10000
|
||||
NO_REL_RELOCS=yes
|
||||
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||
# See also `include/elf/tilepro.h'
|
||||
ARCH=tilepro
|
||||
ALIGNMENT=64
|
||||
MACHINE=
|
||||
NOP=0
|
||||
TEMPLATE_NAME=elf32
|
||||
GENERATE_SHLIB_SCRIPT=yes
|
||||
GENERATE_COMBRELOC_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=8
|
||||
OTHER_SECTIONS="
|
||||
/* TILEPRO architecture interrupt vector areas */
|
||||
.intrpt0 0xfc000000 : { KEEP(*(.intrpt0)) }
|
||||
.intrpt1 0xfd000000 : { KEEP(*(.intrpt1)) }
|
||||
.intrpt2 0xfe000000 : { KEEP(*(.intrpt2)) }
|
||||
.intrpt3 0xff000000 : { KEEP(*(.intrpt3)) }
|
||||
"
|
25
ld/emulparams/elf64tilegx.sh
Normal file
25
ld/emulparams/elf64tilegx.sh
Normal file
@ -0,0 +1,25 @@
|
||||
SCRIPT_NAME=elf
|
||||
OUTPUT_FORMAT="elf64-tilegx"
|
||||
TEXT_START_ADDR=0x10000
|
||||
NO_REL_RELOCS=yes
|
||||
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||
# See also `include/elf/tilegx.h'
|
||||
ARCH=tilegx
|
||||
ALIGNMENT=64
|
||||
MACHINE=
|
||||
NOP=0
|
||||
# Note that "elf32.em" actually handles elf64 also.
|
||||
TEMPLATE_NAME=elf32
|
||||
GENERATE_SHLIB_SCRIPT=yes
|
||||
GENERATE_COMBRELOC_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=16
|
||||
OTHER_SECTIONS="
|
||||
/* TILE architecture interrupt vector areas */
|
||||
.intrpt0 0xfffffffffc000000 : { KEEP(*(.intrpt0)) }
|
||||
.intrpt1 0xfffffffffd000000 : { KEEP(*(.intrpt1)) }
|
||||
.intrpt2 0xfffffffffe000000 : { KEEP(*(.intrpt2)) }
|
||||
.intrpt3 0xffffffffff000000 : { KEEP(*(.intrpt3)) }
|
||||
"
|
@ -1,3 +1,16 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* ld-elf/eh5.d: Don't run on tile*.
|
||||
* ld-srec/srec.exp: xfail on tile*.
|
||||
* ld-tilegx/external.s: New file.
|
||||
* ld-tilegx/reloc.d: New file.
|
||||
* ld-tilegx/reloc.s: New file.
|
||||
* ld-tilegx/tilegx.exp: New file.
|
||||
* ld-tilepro/external.s: New file.
|
||||
* ld-tilepro/reloc.d: New file.
|
||||
* ld-tilepro/reloc.s: New file.
|
||||
* ld-tilepro/tilepro.exp: New file.
|
||||
|
||||
2011-06-10 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ld-elf/elf.exp: Add test for linking a shared library with a
|
||||
|
@ -4,7 +4,7 @@
|
||||
#ld:
|
||||
#readelf: -wf
|
||||
#target: cfi
|
||||
#notarget: alpha* hppa64*
|
||||
#notarget: alpha* hppa64* tile*
|
||||
|
||||
Contents of the .eh_frame section:
|
||||
|
||||
|
@ -364,6 +364,13 @@ setup_xfail "score-*-*"
|
||||
# The S-record linker doesn't support Blackfin ELF FDPIC ABI.
|
||||
setup_xfail "bfin-*-linux-uclibc"
|
||||
|
||||
# On tile, we appear to be getting some random-seeming zeroing or 24-bit
|
||||
# rightshifts (!) in the output when directly generating S-records from
|
||||
# the linker. Not clear what could be causing this but we don't
|
||||
# anticipate creating s-records (and could always use objcopy to
|
||||
# generate the format if need be).
|
||||
setup_xfail "tile*-*-*"
|
||||
|
||||
run_srec_test $test1 "tmpdir/sr1.o tmpdir/sr2.o"
|
||||
|
||||
# Now try linking a C++ program with global constructors and
|
||||
@ -393,5 +400,6 @@ setup_xfail "ia64-*-*"
|
||||
setup_xfail "*-*-cygwin*" "*-*-mingw*" "*-*-pe*" "*-*-winnt*"
|
||||
setup_xfail "score-*-*"
|
||||
setup_xfail "bfin-*-linux-uclibc"
|
||||
setup_xfail "tile*-*-*"
|
||||
|
||||
run_srec_test $test2 "tmpdir/sr3.o"
|
||||
|
43
ld/testsuite/ld-tilegx/external.s
Normal file
43
ld/testsuite/ld-tilegx/external.s
Normal file
@ -0,0 +1,43 @@
|
||||
.text
|
||||
.global external1
|
||||
external1:
|
||||
j external1
|
||||
|
||||
.global external2
|
||||
external2:
|
||||
j external1
|
||||
|
||||
.global external_5a
|
||||
external_5a = 19
|
||||
.global external_5b
|
||||
external_5b = 31
|
||||
|
||||
.global external_8a
|
||||
external_8a = 17
|
||||
.global external_8b
|
||||
external_8b = 119
|
||||
|
||||
.global external_16a
|
||||
external_16a = -32134
|
||||
.global external_16b
|
||||
external_16b = 19300
|
||||
|
||||
.global external_32a
|
||||
external_32a = 0x12345678
|
||||
.global external_32b
|
||||
external_32b = -0x76543210
|
||||
|
||||
.global external_48a
|
||||
external_48a = 0x123456789abc
|
||||
.global external_48b
|
||||
external_48b = 0x76543210fedc
|
||||
|
||||
.global external_64a
|
||||
external_64a = 0x123456789abcdef0
|
||||
.global external_64b
|
||||
external_64b = 0xfedcba9876543210
|
||||
|
||||
.data
|
||||
|
||||
.global external_data1
|
||||
external_data1:
|
70
ld/testsuite/ld-tilegx/reloc.d
Normal file
70
ld/testsuite/ld-tilegx/reloc.d
Normal file
@ -0,0 +1,70 @@
|
||||
|
||||
.*: file format elf64-tilegx.*
|
||||
|
||||
Contents of section .text:
|
||||
100b0 .*
|
||||
100c0 .*
|
||||
100d0 .*
|
||||
100e0 .*
|
||||
100f0 .*
|
||||
10100 .*
|
||||
10110 .*
|
||||
10120 .*
|
||||
10130 .*
|
||||
10140 .*
|
||||
10150 .*
|
||||
10160 .*
|
||||
10170 .*
|
||||
10180 .*
|
||||
10190 .*
|
||||
101a0 .*
|
||||
101b0 .*
|
||||
101c0 .*
|
||||
Contents of section .data:
|
||||
201e0 b8010100 c0010100 7a82644b 11773200 .*
|
||||
201f0 00002e00 2c7a8234 12785634 127856bc .*
|
||||
20200 9a341278 56bc9af0 de000000 00000000 .*
|
||||
20210 00000000 00000000 00000000 00000000 .*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00000000000100b0 <_start>:
|
||||
100b0: [0-9a-f]* { add r2, zero, zero }
|
||||
100b8: [0-9a-f]* { j 101b8 <external1> }
|
||||
100c0: [0-9a-f]* { add r3, r2, r2 }
|
||||
100c8: [0-9a-f]* { beqzt zero, 101c0 <external2> }
|
||||
100d0: [0-9a-f]* { movei r2, 17 ; movei r3, 119 }
|
||||
100d8: [0-9a-f]* { movei r2, 17 ; movei r3, 119 ; ld zero, zero }
|
||||
100e0: [0-9a-f]* { mtspr 17, zero }
|
||||
100e8: [0-9a-f]* { mfspr zero, 17 }
|
||||
100f0: [0-9a-f]* { moveli r2, -32134 ; moveli r3, 19300 }
|
||||
100f8: [0-9a-f]* { moveli r2, 4660 ; moveli r3, -30293 }
|
||||
10100: [0-9a-f]* { shl16insli r2, r2, 22136 ; shl16insli r3, r3, -12816 }
|
||||
10108: [0-9a-f]* { moveli r2, 4660 ; moveli r3, 30292 }
|
||||
10110: [0-9a-f]* { shl16insli r2, r2, 22136 ; shl16insli r3, r3, 12816 }
|
||||
10118: [0-9a-f]* { shl16insli r2, r2, -25924 ; shl16insli r3, r3, -292 }
|
||||
10120: [0-9a-f]* { moveli r2, 4660 ; moveli r3, -292 }
|
||||
10128: [0-9a-f]* { shl16insli r2, r2, 22136 ; shl16insli r3, r3, -17768 }
|
||||
10130: [0-9a-f]* { shl16insli r2, r2, -25924 ; shl16insli r3, r3, 30292 }
|
||||
10138: [0-9a-f]* { shl16insli r2, r2, -8464 ; shl16insli r3, r3, 12816 }
|
||||
10140: [0-9a-f]* { ld_add r0, r0, 17 }
|
||||
10148: [0-9a-f]* { st_add r0, r0, 17 }
|
||||
10150: [0-9a-f]* { mm r2, r3, 19, 31 }
|
||||
10158: [0-9a-f]* { shli r2, r3, 19 ; shli r4, r5, 31 }
|
||||
10160: [0-9a-f]* { shli r2, r3, 19 ; shli r4, r5, 31 ; ld zero, zero }
|
||||
10168: [0-9a-f]* { moveli r0, 80 ; moveli r1, 80 }
|
||||
10170: [0-9a-f]* { moveli r0, 1 ; moveli r1, 1 }
|
||||
10178: [0-9a-f]* { moveli r0, 168 ; moveli r1, 168 }
|
||||
10180: [0-9a-f]* { moveli r0, 4096 ; moveli r1, 4096 }
|
||||
10188: [0-9a-f]* { moveli r0, 1 ; moveli r1, 1 }
|
||||
10190: [0-9a-f]* { moveli r0, 144 ; moveli r1, 144 }
|
||||
10198: [0-9a-f]* { moveli r0, 4096 ; moveli r1, 4096 }
|
||||
101a0: [0-9a-f]* { moveli r0, 0 ; moveli r1, 0 }
|
||||
101a8: [0-9a-f]* { moveli r0, 1 ; moveli r1, 1 }
|
||||
101b0: [0-9a-f]* { moveli r0, 112 ; moveli r1, 112 }
|
||||
|
||||
00000000000101b8 <external1>:
|
||||
101b8: [0-9a-f]* { j 101b8 <external1> }
|
||||
|
||||
00000000000101c0 <external2>:
|
||||
101c0: [0-9a-f]* { j 101b8 <external1> }
|
77
ld/testsuite/ld-tilegx/reloc.s
Normal file
77
ld/testsuite/ld-tilegx/reloc.s
Normal file
@ -0,0 +1,77 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
add r2,zero,zero
|
||||
j external1
|
||||
|
||||
add r3,r2,r2
|
||||
beqzt zero,external2
|
||||
|
||||
{ movei r2,external_8a; movei r3,external_8b }
|
||||
{ movei r2,external_8a; movei r3,external_8b; ld zero,zero }
|
||||
{ mtspr external_8a,zero }
|
||||
{ mfspr zero,external_8a }
|
||||
{ moveli r2,external_16a; moveli r3,external_16b }
|
||||
|
||||
{ moveli r2,hw1_last(external_32a); moveli r3,hw1_last(external_32b) }
|
||||
{ shl16insli r2,r2,hw0(external_32a); shl16insli r3,r3,hw0(external_32b) }
|
||||
|
||||
{ moveli r2,hw2_last(external_48a); moveli r3,hw2_last(external_48b) }
|
||||
{ shl16insli r2,r2,hw1(external_48a); shl16insli r3,r3,hw1(external_48b) }
|
||||
{ shl16insli r2,r2,hw0(external_48a); shl16insli r3,r3,hw0(external_48b) }
|
||||
|
||||
{ moveli r2,hw3_last(external_64a); moveli r3,hw3_last(external_64b) }
|
||||
{ shl16insli r2,r2,hw2(external_64a); shl16insli r3,r3,hw2(external_64b) }
|
||||
{ shl16insli r2,r2,hw1(external_64a); shl16insli r3,r3,hw1(external_64b) }
|
||||
{ shl16insli r2,r2,hw0(external_64a); shl16insli r3,r3,hw0(external_64b) }
|
||||
|
||||
{ ld_add r0,r0,external_8a }
|
||||
{ st_add r0,r0,external_8a }
|
||||
{ mm r2,r3,external_5a,external_5b }
|
||||
{ shli r2,r3,external_5a; shli r4,r5,external_5b }
|
||||
{ shli r2,r3,external_5a; shli r4,r5,external_5b; ld zero,zero }
|
||||
|
||||
{ moveli r0, external1 - .; moveli r1, external1 - . }
|
||||
{ moveli r0, hw1_last(external_data1 - .)
|
||||
moveli r1, hw1_last(external_data1 - .) }
|
||||
{ moveli r0, hw0(external_data1 - .)
|
||||
moveli r1, hw0(external_data1 - .) }
|
||||
{ moveli r0, hw2_last(external_data1 - . + 0x100000000000)
|
||||
moveli r1, hw2_last(external_data1 - . + 0x100000000000) }
|
||||
{ moveli r0, hw1(external_data1 - . + 0x100000000000)
|
||||
moveli r1, hw1(external_data1 - . + 0x100000000000) }
|
||||
{ moveli r0, hw0(external_data1 - . + 0x100000000000)
|
||||
moveli r1, hw0(external_data1 - . + 0x100000000000) }
|
||||
{ moveli r0, hw3_last(external_data1 - . + 0x1000000000000000)
|
||||
moveli r1, hw3_last(external_data1 - . + 0x1000000000000000) }
|
||||
{ moveli r0, hw2(external_data1 - . + 0x1000000000000000)
|
||||
moveli r1, hw2(external_data1 - . + 0x1000000000000000) }
|
||||
{ moveli r0, hw1(external_data1 - . + 0x1000000000000000)
|
||||
moveli r1, hw1(external_data1 - . + 0x1000000000000000) }
|
||||
{ moveli r0, hw0(external_data1 - . + 0x1000000000000000)
|
||||
moveli r1, hw0(external_data1 - . + 0x1000000000000000) }
|
||||
|
||||
.data
|
||||
.align 0x20
|
||||
.int external1
|
||||
.int external2
|
||||
.short external_16a, external_16b
|
||||
.byte external_8a, external_8b
|
||||
|
||||
.int (external_data1-.)
|
||||
.short (external_data1-.)
|
||||
.byte (external_data1-.)
|
||||
|
||||
.short hw0_last(external_16a)
|
||||
|
||||
.short hw1_last(external_32a)
|
||||
.short hw0(external_32a)
|
||||
|
||||
.short hw2_last(external_48a)
|
||||
.short hw1(external_48a)
|
||||
.short hw0(external_48a)
|
||||
|
||||
.short hw3(external_64a)
|
||||
.short hw2(external_64a)
|
||||
.short hw1(external_64a)
|
||||
.short hw0(external_64a)
|
37
ld/testsuite/ld-tilegx/tilegx.exp
Normal file
37
ld/testsuite/ld-tilegx/tilegx.exp
Normal file
@ -0,0 +1,37 @@
|
||||
# Expect script for TILE-Gx linker tests.
|
||||
# Copyright 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
if {!([istarget "tilegx-*-*"]) } {
|
||||
return
|
||||
}
|
||||
|
||||
# Set up a list as described in ld-lib.exp
|
||||
|
||||
set tilepro_tests {
|
||||
{ "tilegx relocation resolution linker test"
|
||||
""
|
||||
""
|
||||
{ "reloc.s" "external.s" }
|
||||
{ {objdump -ds reloc.d} }
|
||||
"reloc"
|
||||
}
|
||||
}
|
||||
|
||||
run_ld_link_tests $tilepro_tests
|
33
ld/testsuite/ld-tilepro/external.s
Normal file
33
ld/testsuite/ld-tilepro/external.s
Normal file
@ -0,0 +1,33 @@
|
||||
.text
|
||||
.global external1
|
||||
external1:
|
||||
j external1
|
||||
|
||||
.global external2
|
||||
external2:
|
||||
j external1
|
||||
|
||||
.global external_5a
|
||||
external_5a = 19
|
||||
.global external_5b
|
||||
external_5b = 31
|
||||
|
||||
.global external_8a
|
||||
external_8a = 17
|
||||
.global external_8b
|
||||
external_8b = 119
|
||||
|
||||
.global external_16a
|
||||
external_16a = -32134
|
||||
.global external_16b
|
||||
external_16b = 19300
|
||||
|
||||
.global external_32a
|
||||
external_32a = 0x87654321
|
||||
.global external_32b
|
||||
external_32b = 0xfedcba98
|
||||
|
||||
.data
|
||||
|
||||
.global external_data1
|
||||
external_data1:
|
52
ld/testsuite/ld-tilepro/reloc.d
Normal file
52
ld/testsuite/ld-tilepro/reloc.d
Normal file
@ -0,0 +1,52 @@
|
||||
|
||||
.*: file format elf32-tilepro.*
|
||||
|
||||
Contents of section .text:
|
||||
10078 .*
|
||||
10088 .*
|
||||
10098 .*
|
||||
100a8 .*
|
||||
100b8 .*
|
||||
100c8 .*
|
||||
100d8 .*
|
||||
100e8 .*
|
||||
100f8 .*
|
||||
10108 .*
|
||||
10118 .*
|
||||
10128 .*
|
||||
Contents of section .data:
|
||||
20140 20010100 28010100 7a82644b 11773200 .*
|
||||
20150 00002e00 2c214398 ba6587dc fe6587dd .*
|
||||
20160 fe000000 00000000 00000000 00000000 .*
|
||||
20170 00000000 00000000 00000000 00000000 .*
|
||||
Disassembly of section .text:
|
||||
|
||||
00010078 <_start>:
|
||||
10078: [0-9a-f]* { add r2, zero, zero }
|
||||
10080: [0-9a-f]* { j 10120 <external1> }
|
||||
10088: [0-9a-f]* { add r3, r2, r2 }
|
||||
10090: [0-9a-f]* { bzt zero, 10128 <external2> }
|
||||
10098: [0-9a-f]* { movei r2, 17 ; movei r3, 119 }
|
||||
100a0: [0-9a-f]* { movei r2, 17 ; movei r3, 119 ; lw zero, zero }
|
||||
100a8: [0-9a-f]* { mtspr 17, zero }
|
||||
100b0: [0-9a-f]* { mfspr zero, 17 }
|
||||
100b8: [0-9a-f]* { moveli r2, -32134 ; moveli r3, 19300 }
|
||||
100c0: [0-9a-f]* { moveli r2, 17185 ; moveli r3, -17768 }
|
||||
100c8: [0-9a-f]* { addli r2, r2, -30875 ; addli r3, r3, -292 }
|
||||
100d0: [0-9a-f]* { auli r2, r2, -30875 ; auli r3, r3, -291 }
|
||||
100d8: [0-9a-f]* { swadd r0, r0, 17 }
|
||||
100e0: [0-9a-f]* { mm r2, r3, r4, 19, 31 }
|
||||
100e8: [0-9a-f]* { nop ; mm r5, r6, r7, 19, 31 }
|
||||
100f0: [0-9a-f]* { shli r2, r3, 19 ; shli r4, r5, 31 }
|
||||
100f8: [0-9a-f]* { shli r2, r3, 19 ; shli r4, r5, 31 ; lw zero, zero }
|
||||
10100: [0-9a-f]* { moveli r0, 32 }
|
||||
10108: [0-9a-f]* { moveli r0, 120 }
|
||||
10110: [0-9a-f]* { moveli r0, 1 }
|
||||
10118: [0-9a-f]* { moveli r0, 1 }
|
||||
|
||||
|
||||
00010120 <external1>:
|
||||
10120: [0-9a-f]* { j 10120 <external1> }
|
||||
|
||||
00010128 <external2>:
|
||||
10128: [0-9a-f]* { j 10120 <external1> }
|
47
ld/testsuite/ld-tilepro/reloc.s
Normal file
47
ld/testsuite/ld-tilepro/reloc.s
Normal file
@ -0,0 +1,47 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
add r2,zero,zero
|
||||
j external1
|
||||
|
||||
add r3,r2,r2
|
||||
bzt zero,external2
|
||||
|
||||
{ movei r2,external_8a; movei r3,external_8b }
|
||||
{ movei r2,external_8a; movei r3,external_8b; lw zero,zero }
|
||||
{ mtspr external_8a,zero }
|
||||
{ mfspr zero,external_8a }
|
||||
{ moveli r2,external_16a; moveli r3,external_16b }
|
||||
|
||||
{ moveli r2,lo16(external_32a); moveli r3,lo16(external_32b) }
|
||||
{ addli r2,r2,hi16(external_32a); addli r3,r3,hi16(external_32b) }
|
||||
{ auli r2,r2,ha16(external_32a); auli r3,r3,ha16(external_32b) }
|
||||
|
||||
{ swadd r0,r0,external_8a }
|
||||
{ mm r2,r3,r4,external_5a,external_5b }
|
||||
{ nop; mm r5,r6,r7,external_5a,external_5b }
|
||||
{ shli r2,r3,external_5a; shli r4,r5,external_5b }
|
||||
{ shli r2,r3,external_5a; shli r4,r5,external_5b; lw zero,zero }
|
||||
|
||||
moveli r0, external1 - .
|
||||
moveli r0, lo16(external_data1 - .)
|
||||
moveli r0, hi16(external_data1 - . + 30000)
|
||||
moveli r0, ha16(external_data1 - . + 30000)
|
||||
|
||||
.data
|
||||
.align 0x20
|
||||
.int external1
|
||||
.int external2
|
||||
.short external_16a, external_16b
|
||||
.byte external_8a, external_8b
|
||||
|
||||
.int (external_data1-.)
|
||||
.short (external_data1-.)
|
||||
.byte (external_data1-.)
|
||||
|
||||
.short lo16(external_32a)
|
||||
.short lo16(external_32b)
|
||||
.short hi16(external_32a)
|
||||
.short hi16(external_32b)
|
||||
.short ha16(external_32a)
|
||||
.short ha16(external_32b)
|
37
ld/testsuite/ld-tilepro/tilepro.exp
Normal file
37
ld/testsuite/ld-tilepro/tilepro.exp
Normal file
@ -0,0 +1,37 @@
|
||||
# Expect script for TILEPro linker tests.
|
||||
# Copyright 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
if {!([istarget "tilepro-*-*"]) } {
|
||||
return
|
||||
}
|
||||
|
||||
# Set up a list as described in ld-lib.exp
|
||||
|
||||
set tilepro_tests {
|
||||
{ "tilepro relocation resolution linker test"
|
||||
""
|
||||
""
|
||||
{ "reloc.s" "external.s" }
|
||||
{ {objdump -ds reloc.d} }
|
||||
"reloc"
|
||||
}
|
||||
}
|
||||
|
||||
run_ld_link_tests $tilepro_tests
|
@ -1,3 +1,17 @@
|
||||
2011-06-13 Walter Lee <walt@tilera.com>
|
||||
|
||||
* Makefile.am (TARGET_LIBOPCODES_CFILES): Add tilegx-dis.c,
|
||||
tilegx-opc.c, tilepro-dis.c, and tilepro-opc.c.
|
||||
* Makefile.in: Regenerate.
|
||||
* configure.in: Handle bfd_tilegx_arch and bfd_tilepro_arch.
|
||||
* configure: Regenerate.
|
||||
* disassemble.c (disassembler): Add ARCH_tilegx and ARCH_tilepro.
|
||||
* po/POTFILES.in: Regenerate.
|
||||
* tilegx-dis.c: New file.
|
||||
* tilegx-opc.c: New file.
|
||||
* tilepro-dis.c: New file.
|
||||
* tilepro-opc.c: New file.
|
||||
|
||||
2011-06-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
AVX Programming Reference (June, 2011)
|
||||
|
@ -206,6 +206,10 @@ TARGET_LIBOPCODES_CFILES = \
|
||||
tic6x-dis.c \
|
||||
tic80-dis.c \
|
||||
tic80-opc.c \
|
||||
tilegx-dis.c \
|
||||
tilegx-opc.c \
|
||||
tilepro-dis.c \
|
||||
tilepro-opc.c \
|
||||
v850-dis.c \
|
||||
v850-opc.c \
|
||||
vax-dis.c \
|
||||
|
@ -476,6 +476,10 @@ TARGET_LIBOPCODES_CFILES = \
|
||||
tic6x-dis.c \
|
||||
tic80-dis.c \
|
||||
tic80-opc.c \
|
||||
tilegx-dis.c \
|
||||
tilegx-opc.c \
|
||||
tilepro-dis.c \
|
||||
tilepro-opc.c \
|
||||
v850-dis.c \
|
||||
v850-opc.c \
|
||||
vax-dis.c \
|
||||
@ -847,6 +851,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tic6x-dis.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tic80-dis.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tic80-opc.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tilegx-dis.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tilepro-dis.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v850-dis.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v850-opc.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vax-dis.Plo@am__quote@
|
||||
|
2
opcodes/configure
vendored
2
opcodes/configure
vendored
@ -12482,6 +12482,8 @@ if test x${all_targets} = xfalse ; then
|
||||
bfd_tic54x_arch) ta="$ta tic54x-dis.lo tic54x-opc.lo" ;;
|
||||
bfd_tic6x_arch) ta="$ta tic6x-dis.lo" ;;
|
||||
bfd_tic80_arch) ta="$ta tic80-dis.lo tic80-opc.lo" ;;
|
||||
bfd_tilegx_arch) ta="$ta tilegx-dis.lo tilegx-opc.lo" ;;
|
||||
bfd_tilepro_arch) ta="$ta tilepro-dis.lo tilepro-opc.lo" ;;
|
||||
bfd_v850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
|
||||
bfd_v850e_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
|
||||
bfd_v850ea_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
|
||||
|
@ -296,6 +296,8 @@ if test x${all_targets} = xfalse ; then
|
||||
bfd_tic54x_arch) ta="$ta tic54x-dis.lo tic54x-opc.lo" ;;
|
||||
bfd_tic6x_arch) ta="$ta tic6x-dis.lo" ;;
|
||||
bfd_tic80_arch) ta="$ta tic80-dis.lo tic80-opc.lo" ;;
|
||||
bfd_tilegx_arch) ta="$ta tilegx-dis.lo tilegx-opc.lo" ;;
|
||||
bfd_tilepro_arch) ta="$ta tilepro-dis.lo tilepro-opc.lo" ;;
|
||||
bfd_v850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
|
||||
bfd_v850e_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
|
||||
bfd_v850ea_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Select disassembly routine for specified architecture.
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||||
2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU opcodes library.
|
||||
|
||||
@ -81,6 +81,8 @@
|
||||
#define ARCH_tic54x
|
||||
#define ARCH_tic6x
|
||||
#define ARCH_tic80
|
||||
#define ARCH_tilegx
|
||||
#define ARCH_tilepro
|
||||
#define ARCH_v850
|
||||
#define ARCH_vax
|
||||
#define ARCH_w65
|
||||
@ -466,6 +468,16 @@ disassembler (abfd)
|
||||
case bfd_arch_m32c:
|
||||
disassemble = print_insn_m32c;
|
||||
break;
|
||||
#endif
|
||||
#ifdef ARCH_tilegx
|
||||
case bfd_arch_tilegx:
|
||||
disassemble = print_insn_tilegx;
|
||||
break;
|
||||
#endif
|
||||
#ifdef ARCH_tilepro
|
||||
case bfd_arch_tilepro:
|
||||
disassemble = print_insn_tilepro;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return 0;
|
||||
|
@ -177,6 +177,10 @@ tic54x-opc.c
|
||||
tic6x-dis.c
|
||||
tic80-dis.c
|
||||
tic80-opc.c
|
||||
tilegx-dis.c
|
||||
tilegx-opc.c
|
||||
tilepro-dis.c
|
||||
tilepro-opc.c
|
||||
v850-dis.c
|
||||
v850-opc.c
|
||||
vax-dis.c
|
||||
|
135
opcodes/tilegx-dis.c
Normal file
135
opcodes/tilegx-dis.c
Normal file
@ -0,0 +1,135 @@
|
||||
/* tilegx-dis.c. Disassembly routines for the TILE-Gx architecture.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU opcodes library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include <stddef.h>
|
||||
#include <assert.h>
|
||||
#include "bfd.h"
|
||||
#include "elf/tilegx.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "dis-asm.h"
|
||||
#include "opcode/tilegx.h"
|
||||
|
||||
|
||||
int
|
||||
print_insn_tilegx (bfd_vma memaddr, disassemble_info *info)
|
||||
{
|
||||
struct tilegx_decoded_instruction
|
||||
decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE];
|
||||
bfd_byte opbuf[TILEGX_BUNDLE_SIZE_IN_BYTES];
|
||||
int status, i, num_instructions, num_printed;
|
||||
tilegx_mnemonic padding_mnemonic;
|
||||
|
||||
status = (*info->read_memory_func) (memaddr, opbuf,
|
||||
TILEGX_BUNDLE_SIZE_IN_BYTES, info);
|
||||
if (status != 0)
|
||||
{
|
||||
(*info->memory_error_func) (status, memaddr, info);
|
||||
return -1;
|
||||
}
|
||||
|
||||
info->bytes_per_line = TILEGX_BUNDLE_SIZE_IN_BYTES;
|
||||
info->bytes_per_chunk = TILEGX_BUNDLE_SIZE_IN_BYTES;
|
||||
info->octets_per_byte = 1;
|
||||
info->display_endian = BFD_ENDIAN_LITTLE;
|
||||
|
||||
/* Parse the instructions in the bundle. */
|
||||
num_instructions =
|
||||
parse_insn_tilegx (bfd_getl64 (opbuf), memaddr, decoded);
|
||||
|
||||
/* Print the instructions in the bundle. */
|
||||
info->fprintf_func (info->stream, "{ ");
|
||||
num_printed = 0;
|
||||
|
||||
/* Determine which nop opcode is used for padding and should be skipped. */
|
||||
padding_mnemonic = TILEGX_OPC_FNOP;
|
||||
for (i = 0; i < num_instructions; i++)
|
||||
{
|
||||
if (!decoded[i].opcode->can_bundle)
|
||||
{
|
||||
/* Instructions that cannot be bundled are padded out with nops,
|
||||
rather than fnops. Displaying them is always clutter. */
|
||||
padding_mnemonic = TILEGX_OPC_NOP;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < num_instructions; i++)
|
||||
{
|
||||
const struct tilegx_opcode *opcode = decoded[i].opcode;
|
||||
const char *name;
|
||||
int j;
|
||||
|
||||
/* Do not print out fnops, unless everything is an fnop, in
|
||||
which case we will print out just the last one. */
|
||||
if (opcode->mnemonic == padding_mnemonic
|
||||
&& (num_printed > 0 || i + 1 < num_instructions))
|
||||
continue;
|
||||
|
||||
if (num_printed > 0)
|
||||
info->fprintf_func (info->stream, " ; ");
|
||||
++num_printed;
|
||||
|
||||
name = opcode->name;
|
||||
if (name == NULL)
|
||||
name = "<invalid>";
|
||||
info->fprintf_func (info->stream, "%s", name);
|
||||
|
||||
for (j = 0; j < opcode->num_operands; j++)
|
||||
{
|
||||
bfd_vma num;
|
||||
const struct tilegx_operand *op;
|
||||
const char *spr_name;
|
||||
|
||||
if (j > 0)
|
||||
info->fprintf_func (info->stream, ",");
|
||||
info->fprintf_func (info->stream, " ");
|
||||
|
||||
num = decoded[i].operand_values[j];
|
||||
|
||||
op = decoded[i].operands[j];
|
||||
switch (op->type)
|
||||
{
|
||||
case TILEGX_OP_TYPE_REGISTER:
|
||||
info->fprintf_func (info->stream, "%s",
|
||||
tilegx_register_names[(int) num]);
|
||||
break;
|
||||
case TILEGX_OP_TYPE_SPR:
|
||||
spr_name = get_tilegx_spr_name (num);
|
||||
if (spr_name != NULL)
|
||||
info->fprintf_func (info->stream, "%s", spr_name);
|
||||
else
|
||||
info->fprintf_func (info->stream, "%d", (int)num);
|
||||
break;
|
||||
case TILEGX_OP_TYPE_IMMEDIATE:
|
||||
info->fprintf_func (info->stream, "%d", (int)num);
|
||||
break;
|
||||
case TILEGX_OP_TYPE_ADDRESS:
|
||||
info->print_address_func (num, info);
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
}
|
||||
info->fprintf_func (info->stream, " }");
|
||||
|
||||
return TILEGX_BUNDLE_SIZE_IN_BYTES;
|
||||
}
|
8055
opcodes/tilegx-opc.c
Normal file
8055
opcodes/tilegx-opc.c
Normal file
File diff suppressed because it is too large
Load Diff
232
opcodes/tilepro-dis.c
Normal file
232
opcodes/tilepro-dis.c
Normal file
@ -0,0 +1,232 @@
|
||||
/* tilepro-dis.c. Disassembly routines for the TILEPro architecture.
|
||||
Copyright 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU opcodes library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include <stddef.h>
|
||||
#include <assert.h>
|
||||
#include "bfd.h"
|
||||
#include "elf/tilepro.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "dis-asm.h"
|
||||
#include "opcode/tilepro.h"
|
||||
|
||||
|
||||
#define TREG_ZERO 63
|
||||
|
||||
static int
|
||||
contains_insn (tilepro_mnemonic expected_mnemonic,
|
||||
int expected_first_operand,
|
||||
int expected_second_operand,
|
||||
bfd_vma memaddr,
|
||||
int *last_operand_ret,
|
||||
disassemble_info *info)
|
||||
{
|
||||
struct tilepro_decoded_instruction
|
||||
decoded[TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE];
|
||||
bfd_byte opbuf[TILEPRO_BUNDLE_SIZE_IN_BYTES];
|
||||
int i, num_instructions;
|
||||
|
||||
if ((*info->read_memory_func) (memaddr, opbuf,
|
||||
TILEPRO_BUNDLE_SIZE_IN_BYTES, info) != 0)
|
||||
/* If we cannot even read the memory, it obviously does not have the
|
||||
instruction for which we are looking. */
|
||||
return 0;
|
||||
|
||||
/* Parse the instructions in the bundle. */
|
||||
num_instructions = parse_insn_tilepro (bfd_getl64 (opbuf), memaddr, decoded);
|
||||
|
||||
for (i = 0; i < num_instructions; i++)
|
||||
{
|
||||
const struct tilepro_opcode *opcode = decoded[i].opcode;
|
||||
|
||||
if (opcode->mnemonic != expected_mnemonic)
|
||||
continue;
|
||||
|
||||
if (expected_first_operand != -1
|
||||
&& decoded[i].operand_values[0] != expected_first_operand)
|
||||
continue;
|
||||
|
||||
if (expected_second_operand != -1
|
||||
&& decoded[i].operand_values[1] != expected_second_operand)
|
||||
continue;
|
||||
|
||||
*last_operand_ret = decoded[i].operand_values[opcode->num_operands - 1];
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* No match. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
print_insn_tilepro (bfd_vma memaddr, disassemble_info *info)
|
||||
{
|
||||
struct tilepro_decoded_instruction
|
||||
decoded[TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE];
|
||||
bfd_byte opbuf[TILEPRO_BUNDLE_SIZE_IN_BYTES];
|
||||
int status, i, num_instructions, num_printed;
|
||||
tilepro_mnemonic padding_mnemonic;
|
||||
|
||||
status = (*info->read_memory_func) (memaddr, opbuf,
|
||||
TILEPRO_BUNDLE_SIZE_IN_BYTES, info);
|
||||
if (status != 0)
|
||||
{
|
||||
(*info->memory_error_func) (status, memaddr, info);
|
||||
return -1;
|
||||
}
|
||||
|
||||
info->bytes_per_line = TILEPRO_BUNDLE_SIZE_IN_BYTES;
|
||||
info->bytes_per_chunk = TILEPRO_BUNDLE_SIZE_IN_BYTES;
|
||||
info->octets_per_byte = 1;
|
||||
info->display_endian = BFD_ENDIAN_LITTLE;
|
||||
|
||||
/* Parse the instructions in the bundle. */
|
||||
num_instructions = parse_insn_tilepro (bfd_getl64 (opbuf), memaddr, decoded);
|
||||
|
||||
/* Print the instructions in the bundle. */
|
||||
info->fprintf_func (info->stream, "{ ");
|
||||
num_printed = 0;
|
||||
|
||||
/* Determine which nop opcode is used for padding and should be skipped. */
|
||||
padding_mnemonic = TILEPRO_OPC_FNOP;
|
||||
for (i = 0; i < num_instructions; i++)
|
||||
{
|
||||
if (!decoded[i].opcode->can_bundle)
|
||||
{
|
||||
/* Instructions that cannot be bundled are padded out with nops,
|
||||
rather than fnops. Displaying them is always clutter. */
|
||||
padding_mnemonic = TILEPRO_OPC_NOP;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < num_instructions; i++)
|
||||
{
|
||||
const struct tilepro_opcode *opcode = decoded[i].opcode;
|
||||
const char *name;
|
||||
int j;
|
||||
|
||||
/* Do not print out fnops, unless everything is an fnop, in
|
||||
which case we will print out just the last one. */
|
||||
if (opcode->mnemonic == padding_mnemonic
|
||||
&& (num_printed > 0 || i + 1 < num_instructions))
|
||||
continue;
|
||||
|
||||
if (num_printed > 0)
|
||||
info->fprintf_func (info->stream, " ; ");
|
||||
++num_printed;
|
||||
|
||||
name = opcode->name;
|
||||
if (name == NULL)
|
||||
name = "<invalid>";
|
||||
info->fprintf_func (info->stream, "%s", name);
|
||||
|
||||
for (j = 0; j < opcode->num_operands; j++)
|
||||
{
|
||||
int num;
|
||||
const struct tilepro_operand *op;
|
||||
const char *spr_name;
|
||||
|
||||
if (j > 0)
|
||||
info->fprintf_func (info->stream, ",");
|
||||
info->fprintf_func (info->stream, " ");
|
||||
|
||||
num = decoded[i].operand_values[j];
|
||||
|
||||
op = decoded[i].operands[j];
|
||||
switch (op->type)
|
||||
{
|
||||
case TILEPRO_OP_TYPE_REGISTER:
|
||||
info->fprintf_func (info->stream, "%s",
|
||||
tilepro_register_names[num]);
|
||||
break;
|
||||
|
||||
case TILEPRO_OP_TYPE_SPR:
|
||||
spr_name = get_tilepro_spr_name(num);
|
||||
if (spr_name != NULL)
|
||||
info->fprintf_func (info->stream, "%s", spr_name);
|
||||
else
|
||||
info->fprintf_func (info->stream, "%d", num);
|
||||
break;
|
||||
|
||||
case TILEPRO_OP_TYPE_IMMEDIATE:
|
||||
{
|
||||
bfd_vma addr = 0;
|
||||
int found_addr = 0;
|
||||
int addr_piece;
|
||||
|
||||
switch (opcode->mnemonic)
|
||||
{
|
||||
case TILEPRO_OPC_ADDLI:
|
||||
if (contains_insn (TILEPRO_OPC_AULI,
|
||||
decoded[i].operand_values[1],
|
||||
TREG_ZERO,
|
||||
memaddr - TILEPRO_BUNDLE_SIZE_IN_BYTES,
|
||||
&addr_piece,
|
||||
info))
|
||||
{
|
||||
addr = num + (addr_piece << 16);
|
||||
found_addr = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case TILEPRO_OPC_AULI:
|
||||
if (contains_insn (TILEPRO_OPC_MOVELI,
|
||||
decoded[i].operand_values[1],
|
||||
-1,
|
||||
memaddr - TILEPRO_BUNDLE_SIZE_IN_BYTES,
|
||||
&addr_piece,
|
||||
info))
|
||||
{
|
||||
addr = (num << 16) + addr_piece;
|
||||
found_addr = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Operand does not look like a constructed address. */
|
||||
break;
|
||||
}
|
||||
|
||||
info->fprintf_func (info->stream, "%d", num);
|
||||
|
||||
if (found_addr)
|
||||
{
|
||||
info->fprintf_func (info->stream, " /* ");
|
||||
info->print_address_func (addr, info);
|
||||
info->fprintf_func (info->stream, " */");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case TILEPRO_OP_TYPE_ADDRESS:
|
||||
info->print_address_func ((bfd_vma)(unsigned int) num, info);
|
||||
break;
|
||||
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
}
|
||||
info->fprintf_func (info->stream, " }");
|
||||
|
||||
return TILEPRO_BUNDLE_SIZE_IN_BYTES;
|
||||
}
|
10183
opcodes/tilepro-opc.c
Normal file
10183
opcodes/tilepro-opc.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user