From 889294f6ffb380eb37b1f1f3bd22807fa9204c14 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Fri, 30 Dec 2016 12:39:46 +0200 Subject: PRU BFD support include/ * elf/common.h: Add PRU ELF. * elf/pru.h: New file. * opcode/pru.h: New file. * dis-asm.h (print_insn_pru): Declare. bfd/ * archures.c: Add bfd_arch_pru. * Makefile.am: Add PRU target. * config.bfd: Ditto. * configure.ac: Ditto. * elf-bfd.h (enum elf_target_id): Add PRU_ELF_DATA. * targets.c: Add pru_elf32_vec. * reloc.c: Add PRU relocations. * cpu-pru.c: New file. * elf32-pru.c: New file. * Makefile.in: Regenerate. * configure: Regenerate. * po/SRC-POTFILES.in: Regenerate. * bfd-in2.h: Regenerate * libbfd.h: Regenerate. Signed-off-by: Dimitar Dimitrov --- bfd/reloc.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'bfd/reloc.c') diff --git a/bfd/reloc.c b/bfd/reloc.c index 3c7b6060b0..4a79a230fd 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -6516,6 +6516,54 @@ ENUMX ENUMDOC Relocations used by the Altera Nios II core. +ENUM + BFD_RELOC_PRU_U16 +ENUMDOC + PRU LDI 16-bit unsigned data-memory relocation. +ENUM + BFD_RELOC_PRU_U16_PMEMIMM +ENUMDOC + PRU LDI 16-bit unsigned instruction-memory relocation. +ENUM + BFD_RELOC_PRU_LDI32 +ENUMDOC + PRU relocation for two consecutive LDI load instructions that load a + 32 bit value into a register. If the higher bits are all zero, then + the second instruction may be relaxed. +ENUM + BFD_RELOC_PRU_S10_PCREL +ENUMDOC + PRU QBBx 10-bit signed PC-relative relocation. +ENUM + BFD_RELOC_PRU_U8_PCREL +ENUMDOC + PRU 8-bit unsigned relocation used for the LOOP instruction. +ENUM + BFD_RELOC_PRU_32_PMEM +ENUMX + BFD_RELOC_PRU_16_PMEM +ENUMDOC + PRU Program Memory relocations. Used to convert from byte addressing to + 32-bit word addressing. +ENUM + BFD_RELOC_PRU_GNU_DIFF8 +ENUMX + BFD_RELOC_PRU_GNU_DIFF16 +ENUMX + BFD_RELOC_PRU_GNU_DIFF32 +ENUMX + BFD_RELOC_PRU_GNU_DIFF16_PMEM +ENUMX + BFD_RELOC_PRU_GNU_DIFF32_PMEM +ENUMDOC + PRU relocations to mark the difference of two local symbols. + These are only needed to support linker relaxation and can be ignored + when not relaxing. The field is set to the value of the difference + assuming no relaxation. The relocation encodes the position of the + second symbol so the linker can determine whether to adjust the field + value. The PMEM variants encode the word difference, instead of byte + difference between symbols. + ENUM BFD_RELOC_IQ2000_OFFSET_16 ENUMX -- cgit v1.2.3