Skip to content
  • Walter Lee's avatar
    Add big-endian support for tilegx. · fb6cedde
    Walter Lee authored
    bfd/
    	* config.bfd (tilegx-*-*): rename little endian vector; add big
    	endian vector.
    	(tilegxbe-*-*): New case.
    	* configure.in (bfd_elf32_tilegx_vec): Rename...
    	(bfd_elf32_tilegx_le_vec): ... to this.
    	(bfd_elf32_tilegx_be_vec): New vector.
    	(bfd_elf64_tilegx_vec): Rename...
    	(bfd_elf64_tilegx_le_vec): ... to this.
    	(bfd_elf64_tilegx_be_vec): New vector.
    	* configure: Regenerate.
    	* elf32-tilegx.c (TARGET_LITTLE_SYM): Rename.
    	(TARGET_LITTLE_NAME): Ditto.
    	(TARGET_BIG_SYM): Define.
    	(TARGET_BIG_NAME): Define.
    	* elf64-tilegx.c (TARGET_LITTLE_SYM): Rename.
    	(TARGET_LITTLE_NAME): Ditto.
    	(TARGET_BIG_SYM): Define.
    	(TARGET_BIG_NAME): Define.
    	* targets.c (bfd_elf32_tilegx_vec): Rename...
    	(bfd_elf32_tilegx_le_vec): ... to this.
    	(bfd_elf32_tilegx_be_vec): Declare.
    	(bfd_elf64_tilegx_vec): Rename...
    	(bfd_elf64_tilegx_le_vec): ... to this.
    	(bfd_elf64_tilegx_be_vec): Declare.
    	(_bfd_target_vector): Add / rename above vectors.
    
    binutils/testsuite/
    	* binutils-all/objdump.exp (cpus_expected): Add tilegx.
    
    gas/
    	* tc-tilegx.c (tilegx_target_format): Handle big endian.
    	(OPTION_EB): Define.
    	(OPTION_EL): Define.
    	(md_longopts): Add entries for "EB" and "EL".
    	(md_parse_option): Handle OPTION_EB and OPTION_EL.
    	(md_show_usage): Add -EB and -EL.
    	(md_number_to_chars): New.
    	* tc-tilegx.h (TARGET_BYTES_BIG_ENDIAN): Guard definition with
    	ifndef.
    	(md_number_to_chars): Delete.
    	* configure.tgt (tilegx*be): Handle.
    	* doc/as.texinfo [TILE-Gx]: Document -EB and -EL.
    	* doc/c-tilegx.texi: Ditto.
    
    ld/
    	* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32tilegx_be.c.
    	(ALL_64_EMULATION_SOURCES): Add eelf64tilegx_be.c.
    	(eelf32tilegx_be.c): Add rule to build this file.
    	(eelf64tilegx_be.c): Ditto.
    	* Makefile.in: Regenerate.
    	* configure.tgt (tilegx-*-*): Support big endian.
    	(tilegxbe-*-*): New.
    	* emulparams/elf32tilegx.sh (OUTPUT_FORMAT): Rename.
    	(BIG_OUTPUT_FORMAT): Define.
    	(LITTLE_OUTPUT_FORMAT): Define.
    	* emulparams/elf32tilegx_be.sh: New.
    	* emulparams/elf64tilegx.sh (OUTPUT_FORMAT): Rename.
    	(BIG_OUTPUT_FORMAT): Define.
    	(LITTLE_OUTPUT_FORMAT): Define.
    	* emulparams/elf64tilegx_be.sh: New.
    
    ld/testsuite/
    	* ld-tilegx/reloc-be.d: New.
    	* ld-tilegx/reloc-le.d: New.
    	* ld-tilegx/reloc.d: Delete.
    	* ld-tilegx/tilegx.exp: Test big and little endian.
    fb6cedde