This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v3 00/15] Binutils/gas/ld port for PRU


This patch series adds support for the Texas Instruments PRU I/O core. This port targets version 3 of the PRU core, which is found in the popular Beaglebone line of boards. The older core revisions are not supported.

Changes since the last patch series:

v3
  - Added 2016 as copyright year for bfd/cpu-pru.c and gas/doc/c-pru.texi.
  - Whitespace fixes.

v2
  - BFD: Removed HI16/LO16 relocations as they were non-standard and not
    supported by the TI proprietary toolchain.
  - BFD: Added LDI32 relocation as supported by the TI proprietary toolchain.
  - AS,BFD: Removed leading symbol underscore in order to be compatible with
    TI's ABI.
  - BFD: Assigned relocation numbers in order to be compatible with
    TI's toolchain.
  - Fixed changelog snippets.
  - Removed auto-generated files from patches.
  - LD: Fix default linker script for 'ld -r'
  - Switch to r3.w2 as return address for the call and ret pseudos. This will
    help keeping the same ABI with TI's C compiler.
  - BFD: Use EM_TI_PRU for ELF machine ID.
  - GAS: Make use of bfd_check_overflow.
  - BFD: Set src_mask=0 because PRU has USE_RELA.
  - BFD: Get rid of unneeded PRU hash.
  - LD: Remove gc-sections flag as we do not support it. Update the testsuite
    accordingly.

v1
  Initial submission: https://sourceware.org/ml/binutils/2016-12/msg00066.html



Dimitar Dimitrov (15):
  PRU BFD support
  PRU Binutils port
  PRU GAS Port
  PRU LD Port
  PRU Opcode Port
  Add PRU ELF ID to elfcpp
  ld: testsuite: Mark PRU as elf target that does not support shared
    libraries
  ld: testsuite: Mark sec64k case as too big for PRU
  ld: testsuite: Fix srec test setup for PRU
  gas: testsuite: Mark lns-common-1-alt variant for PRU
  ld: testsuite: PRU assembler does not support diff expressions mixing
    data and text labels.
  ld: testsuite: PRU LD does not support arbitrary .text base addresses.
  ld: testsuite: Disable endsym test case
  ld: testsuite: Sanitize output from ld
  ld: testsuite: Mark --gc-sections as unsupported for PRU

 bfd/Makefile.am                          |    4 +
 bfd/archures.c                           |    4 +
 bfd/config.bfd                           |    6 +
 bfd/configure.ac                         |    1 +
 bfd/cpu-pru.c                            |   43 +
 bfd/elf-bfd.h                            |    1 +
 bfd/elf32-pru.c                          | 1469 ++++++++++++++++++++++
 bfd/reloc.c                              |   48 +
 bfd/targets.c                            |    3 +
 binutils/readelf.c                       |   16 +
 elfcpp/elfcpp.h                          |    1 +
 gas/Makefile.am                          |    2 +
 gas/NEWS                                 |    2 +
 gas/config/obj-elf.c                     |    4 +
 gas/config/tc-pru.c                      | 1946 ++++++++++++++++++++++++++++++
 gas/config/tc-pru.h                      |  154 +++
 gas/configure.tgt                        |    2 +
 gas/doc/Makefile.am                      |    1 +
 gas/doc/all.texi                         |    1 +
 gas/doc/as.texinfo                       |   32 +
 gas/doc/c-pru.texi                       |  150 +++
 gas/testsuite/gas/lns/lns.exp            |    1 +
 gas/testsuite/gas/pru/alu.d              |   32 +
 gas/testsuite/gas/pru/alu.s              |   30 +
 gas/testsuite/gas/pru/branch.d           |   63 +
 gas/testsuite/gas/pru/branch.s           |   42 +
 gas/testsuite/gas/pru/illegal.l          |    5 +
 gas/testsuite/gas/pru/illegal.s          |   11 +
 gas/testsuite/gas/pru/ldi.d              |   17 +
 gas/testsuite/gas/pru/ldi.s              |    9 +
 gas/testsuite/gas/pru/ldst.d             |   33 +
 gas/testsuite/gas/pru/ldst.s             |   37 +
 gas/testsuite/gas/pru/loop.d             |   15 +
 gas/testsuite/gas/pru/loop.s             |   10 +
 gas/testsuite/gas/pru/misc.d             |   11 +
 gas/testsuite/gas/pru/misc.s             |    6 +
 gas/testsuite/gas/pru/pru.exp            |   26 +
 gas/testsuite/gas/pru/pseudo.d           |   15 +
 gas/testsuite/gas/pru/pseudo.s           |   10 +
 gas/testsuite/gas/pru/warn_reglabel.l    |    3 +
 gas/testsuite/gas/pru/warn_reglabel.s    |    6 +
 gas/testsuite/gas/pru/xfr.d              |   44 +
 gas/testsuite/gas/pru/xfr.s              |   52 +
 include/dis-asm.h                        |    1 +
 include/elf/common.h                     |    2 +-
 include/elf/pru.h                        |   55 +
 include/opcode/pru.h                     |  411 +++++++
 ld/Makefile.am                           |    6 +
 ld/NEWS                                  |    2 +
 ld/configure.tgt                         |    1 +
 ld/emulparams/pruelf.sh                  |   19 +
 ld/emultempl/pruelf.em                   |   50 +
 ld/scripttempl/pru.sc                    |  179 +++
 ld/testsuite/ld-elf/eh-frame-hdr.d       |    2 +-
 ld/testsuite/ld-elf/endsym.d             |    1 +
 ld/testsuite/ld-elf/group8a.d            |    2 +-
 ld/testsuite/ld-elf/group8b.d            |    2 +-
 ld/testsuite/ld-elf/group9a.d            |    2 +-
 ld/testsuite/ld-elf/group9b.d            |    2 +-
 ld/testsuite/ld-elf/merge.d              |    2 +-
 ld/testsuite/ld-elf/pr12851.d            |    2 +-
 ld/testsuite/ld-elf/pr14926.d            |    2 +-
 ld/testsuite/ld-elf/sec-to-seg.exp       |    1 +
 ld/testsuite/ld-elf/sec64k.exp           |    3 +-
 ld/testsuite/ld-pru/emit-relocs-1.d      |   37 +
 ld/testsuite/ld-pru/emit-relocs-1.ld     |   20 +
 ld/testsuite/ld-pru/emit-relocs-1a.s     |   24 +
 ld/testsuite/ld-pru/emit-relocs-1b.s     |   18 +
 ld/testsuite/ld-pru/ldi32.d              |   12 +
 ld/testsuite/ld-pru/ldi32.s              |    6 +
 ld/testsuite/ld-pru/ldi32_symbol.s       |    2 +
 ld/testsuite/ld-pru/norelax_ldi32-data.d |   20 +
 ld/testsuite/ld-pru/norelax_ldi32-dis.d  |   29 +
 ld/testsuite/ld-pru/pcrel_s10.d          |   18 +
 ld/testsuite/ld-pru/pcrel_s10.s          |    7 +
 ld/testsuite/ld-pru/pcrel_s10_label.s    |    9 +
 ld/testsuite/ld-pru/pcrel_u8-illegal.d   |    7 +
 ld/testsuite/ld-pru/pcrel_u8-illegal.s   |    9 +
 ld/testsuite/ld-pru/pcrel_u8-illegal2.d  |    7 +
 ld/testsuite/ld-pru/pcrel_u8-illegal2.s  |    7 +
 ld/testsuite/ld-pru/pcrel_u8-illegal3.d  |    7 +
 ld/testsuite/ld-pru/pcrel_u8-illegal3.s  |    7 +
 ld/testsuite/ld-pru/pcrel_u8.d           |   15 +
 ld/testsuite/ld-pru/pcrel_u8.s           |    9 +
 ld/testsuite/ld-pru/pcrel_u8_label.s     |    4 +
 ld/testsuite/ld-pru/pmem.d               |   15 +
 ld/testsuite/ld-pru/pmem.s               |   15 +
 ld/testsuite/ld-pru/pmem_symbol.s        |   13 +
 ld/testsuite/ld-pru/pru.exp              |    8 +
 ld/testsuite/ld-pru/relax_ldi32-data.d   |   19 +
 ld/testsuite/ld-pru/relax_ldi32-dis.d    |   27 +
 ld/testsuite/ld-pru/relax_ldi32.s        |   30 +
 ld/testsuite/ld-pru/relax_ldi32_symbol.s |    5 +
 ld/testsuite/ld-pru/reloc.d              |   14 +
 ld/testsuite/ld-pru/reloc.s              |    9 +
 ld/testsuite/ld-pru/reloc_symbol.s       |   24 +
 ld/testsuite/ld-pru/u16.d                |   11 +
 ld/testsuite/ld-pru/u16.s                |    4 +
 ld/testsuite/ld-pru/u16_symbol.s         |    2 +
 ld/testsuite/ld-srec/srec.exp            |    5 +
 ld/testsuite/lib/ld-lib.exp              |    8 +-
 opcodes/Makefile.am                      |    2 +
 opcodes/configure.ac                     |    1 +
 opcodes/disassemble.c                    |    7 +-
 opcodes/pru-dis.c                        |  286 +++++
 opcodes/pru-opc.c                        |  236 ++++
 106 files changed, 6116 insertions(+), 14 deletions(-)
 create mode 100644 bfd/cpu-pru.c
 create mode 100644 bfd/elf32-pru.c
 create mode 100644 gas/config/tc-pru.c
 create mode 100644 gas/config/tc-pru.h
 create mode 100644 gas/doc/c-pru.texi
 create mode 100644 gas/testsuite/gas/pru/alu.d
 create mode 100644 gas/testsuite/gas/pru/alu.s
 create mode 100644 gas/testsuite/gas/pru/branch.d
 create mode 100644 gas/testsuite/gas/pru/branch.s
 create mode 100644 gas/testsuite/gas/pru/illegal.l
 create mode 100644 gas/testsuite/gas/pru/illegal.s
 create mode 100644 gas/testsuite/gas/pru/ldi.d
 create mode 100644 gas/testsuite/gas/pru/ldi.s
 create mode 100644 gas/testsuite/gas/pru/ldst.d
 create mode 100644 gas/testsuite/gas/pru/ldst.s
 create mode 100644 gas/testsuite/gas/pru/loop.d
 create mode 100644 gas/testsuite/gas/pru/loop.s
 create mode 100644 gas/testsuite/gas/pru/misc.d
 create mode 100644 gas/testsuite/gas/pru/misc.s
 create mode 100644 gas/testsuite/gas/pru/pru.exp
 create mode 100644 gas/testsuite/gas/pru/pseudo.d
 create mode 100644 gas/testsuite/gas/pru/pseudo.s
 create mode 100644 gas/testsuite/gas/pru/warn_reglabel.l
 create mode 100644 gas/testsuite/gas/pru/warn_reglabel.s
 create mode 100644 gas/testsuite/gas/pru/xfr.d
 create mode 100644 gas/testsuite/gas/pru/xfr.s
 create mode 100644 include/elf/pru.h
 create mode 100644 include/opcode/pru.h
 create mode 100644 ld/emulparams/pruelf.sh
 create mode 100644 ld/emultempl/pruelf.em
 create mode 100644 ld/scripttempl/pru.sc
 create mode 100644 ld/testsuite/ld-pru/emit-relocs-1.d
 create mode 100644 ld/testsuite/ld-pru/emit-relocs-1.ld
 create mode 100644 ld/testsuite/ld-pru/emit-relocs-1a.s
 create mode 100644 ld/testsuite/ld-pru/emit-relocs-1b.s
 create mode 100644 ld/testsuite/ld-pru/ldi32.d
 create mode 100644 ld/testsuite/ld-pru/ldi32.s
 create mode 100644 ld/testsuite/ld-pru/ldi32_symbol.s
 create mode 100644 ld/testsuite/ld-pru/norelax_ldi32-data.d
 create mode 100644 ld/testsuite/ld-pru/norelax_ldi32-dis.d
 create mode 100644 ld/testsuite/ld-pru/pcrel_s10.d
 create mode 100644 ld/testsuite/ld-pru/pcrel_s10.s
 create mode 100644 ld/testsuite/ld-pru/pcrel_s10_label.s
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8-illegal.d
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8-illegal.s
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8-illegal2.d
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8-illegal2.s
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8-illegal3.d
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8-illegal3.s
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8.d
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8.s
 create mode 100644 ld/testsuite/ld-pru/pcrel_u8_label.s
 create mode 100644 ld/testsuite/ld-pru/pmem.d
 create mode 100644 ld/testsuite/ld-pru/pmem.s
 create mode 100644 ld/testsuite/ld-pru/pmem_symbol.s
 create mode 100644 ld/testsuite/ld-pru/pru.exp
 create mode 100644 ld/testsuite/ld-pru/relax_ldi32-data.d
 create mode 100644 ld/testsuite/ld-pru/relax_ldi32-dis.d
 create mode 100644 ld/testsuite/ld-pru/relax_ldi32.s
 create mode 100644 ld/testsuite/ld-pru/relax_ldi32_symbol.s
 create mode 100644 ld/testsuite/ld-pru/reloc.d
 create mode 100644 ld/testsuite/ld-pru/reloc.s
 create mode 100644 ld/testsuite/ld-pru/reloc_symbol.s
 create mode 100644 ld/testsuite/ld-pru/u16.d
 create mode 100644 ld/testsuite/ld-pru/u16.s
 create mode 100644 ld/testsuite/ld-pru/u16_symbol.s
 create mode 100644 opcodes/pru-dis.c
 create mode 100644 opcodes/pru-opc.c

-- 
2.11.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]