diff options
author | DJ Delorie <dj@redhat.com> | 2011-12-23 01:49:37 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2011-12-23 01:49:37 +0000 |
commit | 9cea966c22d3db4ed4d7008241103b05105c17d3 (patch) | |
tree | 8359d5706f5393400b3b021d84095e357fac9f81 /gas/config/rl78-defs.h | |
parent | 23cb30dead402c95346474691469528cb199767b (diff) | |
download | gdb-9cea966c22d3db4ed4d7008241103b05105c17d3.zip gdb-9cea966c22d3db4ed4d7008241103b05105c17d3.tar.gz gdb-9cea966c22d3db4ed4d7008241103b05105c17d3.tar.bz2 |
[bfd]
* elf32-rl78.c (rl78_elf_howto_table): Add R_RL78_RH_RELAX.
(rl78_reloc_map): Add BFD_RELOC_RL78_RELAX.
(rl78_elf_relocate_section): Add R_RL78_RH_RELAX, R_RL78_RH_SFR,
and R_RL78_RH_SADDR.
(rl78_elf_finish_dynamic_sections): Only validate PLT section if
we didn't relax anything, as relaxing might remove a PLT reference
after we've set up the table.
(elf32_rl78_relax_delete_bytes): New.
(reloc_bubblesort): New.
(rl78_offset_for_reloc): New.
(relax_addr16): New.
(rl78_elf_relax_section): Add support for relaxing long
instructions into short ones.
[gas]
* config/rl78-defs.h (rl78_linkrelax_addr16): Add.
(rl78_linkrelax_dsp, rl78_linkrelax_imm): Remove.
* config/rl78-parse.y: Tag all addr16 and branch patterns with
relaxation markers.
* config/tc-rl78.c (rl78_linkrelax_addr16): New.
(rl78_linkrelax_branch): New.
(OPTION_RELAX): New.
(md_longopts): Add relax option.
(md_parse_option): Add OPTION_RELAX.
(rl78_frag_init): Support relaxation.
(rl78_handle_align): New.
(md_assemble): Support relaxation.
(md_apply_fix): Likewise.
(md_convert_frag): Likewise.
* config/tc-rl78.h (MAX_MEM_FOR_RS_ALIGN_CODE): New.
(HANDLE_ALIGN): New.
(rl78_handle_align): Declare.
* config/rl78-parse.y (rl78_bit_insn): New. Set it for all bit
insn patterns.
(find_bit_index): New. Strip .BIT suffix off relevent
expressions for bit insns.
(rl78_lex): Exclude bit suffixes from expression parsing.
[include/elf]
* rl78.h (R_RL78_RH_RELAX, R_RL78_RH_SFR, R_RL78_RH_SADDR): New.
(RL78_RELAXA_BRA, RL78_RELAXA_ADDR16: New.
Diffstat (limited to 'gas/config/rl78-defs.h')
-rw-r--r-- | gas/config/rl78-defs.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gas/config/rl78-defs.h b/gas/config/rl78-defs.h index 1afbd9d..ebe19a9 100644 --- a/gas/config/rl78-defs.h +++ b/gas/config/rl78-defs.h @@ -40,8 +40,7 @@ extern void rl78_disp3 (expressionS, int); extern void rl78_field5s (expressionS); extern void rl78_field5s2 (expressionS); extern void rl78_relax (int, int); -extern void rl78_linkrelax_dsp (int); -extern void rl78_linkrelax_imm (int); +extern void rl78_linkrelax_addr16 (void); extern void rl78_linkrelax_branch (void); extern int rl78_parse (void); extern int rl78_wrap (void); |