diff options
author | James Bowman <jamesb@excamera.com> | 2017-10-12 18:37:40 -0700 |
---|---|---|
committer | James Bowman <jamesb@excamera.com> | 2017-10-12 18:41:29 -0700 |
commit | 3b4b0a629a972bf80fc0ac6202f89681fab1df37 (patch) | |
tree | c8cde198a64de3a48b1de08dbf65f68dbbc9a13d /bfd/elf32-ft32.c | |
parent | d268bbaff7da90caf5fbc94456ae58315ffa1802 (diff) | |
download | gdb-3b4b0a629a972bf80fc0ac6202f89681fab1df37.zip gdb-3b4b0a629a972bf80fc0ac6202f89681fab1df37.tar.gz gdb-3b4b0a629a972bf80fc0ac6202f89681fab1df37.tar.bz2 |
FT32: support for FT32B processor - part 1
FT32B is a new FT32 family member. It has a code
compression scheme, which requires the use of linker
relaxations. The change is quite large, so submission
is in several parts.
Part 1 adds a 15-bit instruction field, and CPU-specific functions for
the code compression that are used in binutils and GDB.
bfd/ChangeLog:
2017-10-12 James Bowman <james.bowman@ftdichip.com>
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf32-ft32.c: Add HOWTO R_FT32_15.
* reloc.c: Add BFD_RELOC_FT32_15.
gas/ChangeLog:
2017-10-12 James Bowman <james.bowman@ftdichip.com>
* config/tc-ft32.c (md_assemble): Replace FT32_FLD_K8 with
K15.
(md_apply_fix, tc_gen_reloc): Add BFD_RELOC_FT32_15.
include/ChangeLog:
2017-10-12 James Bowman <james.bowman@ftdichip.com>
* elf/ft32.h: Add R_FT32_15.
* opcode/ft32.h: Replace FT32_FLD_K8 with K15.
(ft32_shortcode, sc_compar, ft32_split_shortcode,
ft32_merge_shortcode, ft32_merge_shortcode): New functions.
opcodes/ChangeLog:
2017-10-12 James Bowman <james.bowman@ftdichip.com>
* opcodes/ft32-dis.c (print_insn_ft32): Replace FT32_FLD_K8 with K15.
* opcodes/ft32-opc.c (ft32_opc_info): Replace FT32_FLD_K8 with
K15. Add jmpix pattern.
sim/ChangeLog:
2017-10-12 James Bowman <james.bowman@ftdichip.com>
* sim/ft32/interp.c (step_once): Replace FT32_FLD_K8 with K15.
Diffstat (limited to 'bfd/elf32-ft32.c')
-rw-r--r-- | bfd/elf32-ft32.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/bfd/elf32-ft32.c b/bfd/elf32-ft32.c index 233c5a1..2ee691c 100644 --- a/bfd/elf32-ft32.c +++ b/bfd/elf32-ft32.c @@ -147,6 +147,19 @@ static reloc_howto_type ft32_elf_howto_table [] = 0x0003ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + HOWTO (R_FT32_15, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 15, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_FT32_15", /* name */ + FALSE, /* partial_inplace */ + 0x00000000, /* src_mask */ + 0x00007fff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to FT32 ELF reloc types. */ @@ -167,6 +180,7 @@ static const struct ft32_reloc_map ft32_reloc_map [] = { BFD_RELOC_FT32_20, R_FT32_20 }, { BFD_RELOC_FT32_17, R_FT32_17 }, { BFD_RELOC_FT32_18, R_FT32_18 }, + { BFD_RELOC_FT32_15, R_FT32_15 }, }; static reloc_howto_type * |