mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
b8891f8d62
This patch series is a new binutils port for C-SKY processors, including support for both the V1 and V2 processor variants. V1 is derived from the MCore architecture while V2 is substantially different, with mixed 16- and 32-bit instructions, a larger register set, a different (but overlapping) ABI, etc. There is support for bare-metal ELF targets and Linux with both glibc and uClibc. This code is being contributed jointly by C-SKY Microsystems and Mentor Graphics. C-SKY is responsible for the technical content and has proposed Lifang Xia and Yunhai Shang as port maintainers. (Note that C-SKY does have a corporate copyright assignment on file with the FSF.) Mentor Graphics' role has been cleaning up the code, adding documentation and additional test cases, etc, to address issues we anticipated reviewers would complain about. bfd * Makefile.am (ALL_MACHINES, ALL_MACHINES_CFILES): Add C-SKY. (BFD32_BACKENDS, BFD_BACKENDS_CFILES): Likewise. * Makefile.in: Regenerated. * archures.c (enum bfd_architecture): Add bfd_arch_csky and related bfd_mach defines. (bfd_csky_arch): Declare. (bfd_archures_list): Add C-SKY. * bfd-in.h (elf32_csky_build_stubs): Declare. (elf32_csky_size_stubs): Declare. (elf32_csky_next_input_section: Declare. (elf32_csky_setup_section_lists): Declare. * bfd-in2.h: Regenerated. * config.bfd: Add C-SKY. * configure.ac: Likewise. * configure: Regenerated. * cpu-csky.c: New file. * elf-bfd.h (enum elf_target_id): Add C-SKY. * elf32-csky.c: New file. * libbfd.h: Regenerated. * reloc.c: Add C-SKY relocations. * targets.c (csky_elf32_be_vec, csky_elf32_le_vec): Declare. (_bfd_target_vector): Add C-SKY target vector entries. binutils* readelf.c: Include elf/csky.h. (guess_is_rela): Handle EM_CSKY. (dump_relocations): Likewise. (get_machine_name): Likewise. (is_32bit_abs_reloc): Likewise. include * dis-asm.h (csky_symbol_is_valid): Declare. * opcode/csky.h: New file. opcodes * Makefile.am (TARGET_LIBOPCODES_CFILES): Add csky-dis.c. * Makefile.in: Regenerated. * configure.ac: Add C-SKY. * configure: Regenerated. * csky-dis.c: New file. * csky-opc.h: New file. * disassemble.c (ARCH_csky): Define. (disassembler, disassemble_init_for_target): Add case for ARCH_csky. * disassemble.h (print_insn_csky, csky_get_disassembler): Declare. gas * Makefile.am (TARGET_CPU_CFILES): Add entry for C-SKY. (TARGET_CPU_HFILES, TARGET_ENV_HFILES): Likewise. * Makefile.in: Regenerated. * config/tc-csky.c: New file. * config/tc-csky.h: New file. * config/te-csky_abiv1.h: New file. * config/te-csky_abiv1_linux.h: New file. * config/te-csky_abiv2.h: New file. * config/te-csky_abiv2_linux.h: New file. * configure.tgt: Add C-SKY. * doc/Makefile.am (CPU_DOCS): Add entry for C-SKY. * doc/Makefile.in: Regenerated. * doc/all.texi: Set CSKY feature. * doc/as.texi (Overview): Add C-SKY options. (Machine Dependencies): Likewise. * doc/c-csky.texi: New file. * testsuite/gas/csky/*: New test cases. ld * Makefile.am (ALL_EMULATION_SOURCES): Add C-SKY emulations. (ecskyelf.c, ecskyelf_linux.c): New rules. * Makefile.in: Regenerated. * configure.tgt: Add C-SKY. * emulparams/cskyelf.sh: New file. * emulparams/cskyelf_linux.sh: New file. * emultempl/cskyelf.em: New file. * gen-doc.texi: Add C-SKY. * ld.texi: Likewise. (Options specific to C-SKY targets): New section. * testsuite/ld-csky/*: New tests.
38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
#name: Emit relocs 1
|
|
#source: emit-relocs-1a.s
|
|
#source: emit-relocs-1b.s
|
|
#ld: -q -T emit-relocs-1.ld
|
|
#objdump: -sr
|
|
|
|
.*: file format .*
|
|
|
|
RELOCATION RECORDS FOR \[\.data\]:
|
|
OFFSET TYPE VALUE *
|
|
00000000 R_CKCORE_ADDR32 \.data
|
|
00000004 R_CKCORE_ADDR32 \.data\+0x00001000
|
|
00000008 R_CKCORE_ADDR32 \.merge1\+0x00000002
|
|
0000000c R_CKCORE_ADDR32 \.merge2
|
|
00000010 R_CKCORE_ADDR32 \.merge3
|
|
00000014 R_CKCORE_ADDR32 \.merge3\+0x00000004
|
|
00000020 R_CKCORE_ADDR32 \.data\+0x00000020
|
|
00000024 R_CKCORE_ADDR32 \.data\+0x00001020
|
|
00000028 R_CKCORE_ADDR32 \.merge1
|
|
0000002c R_CKCORE_ADDR32 \.merge2\+0x00000002
|
|
00000030 R_CKCORE_ADDR32 \.merge3\+0x00000008
|
|
00000034 R_CKCORE_ADDR32 \.merge3\+0x00000004
|
|
|
|
|
|
Contents of section \.text:
|
|
80000 036c .*
|
|
Contents of section \.merge1:
|
|
80400 666c7574 74657200 flutter.*
|
|
Contents of section \.merge2:
|
|
80800 74617374 696e6700 tasting.*
|
|
Contents of section \.merge3:
|
|
80c00 00010000 00020000 00030000 .*
|
|
Contents of section \.data:
|
|
81000 00100800 00200800 02040800 00080800 .*
|
|
81010 000c0800 040c0800 00000000 00000000 .*
|
|
81020 20100800 20200800 00040800 02080800 .*
|
|
81030 080c0800 040c0800 .*
|