summaryrefslogtreecommitdiff
path: root/gas/config/rl78-defs.h
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2011-12-23 01:49:37 +0000
committerDJ Delorie <dj@redhat.com>2011-12-23 01:49:37 +0000
commit9cea966c22d3db4ed4d7008241103b05105c17d3 (patch)
tree8359d5706f5393400b3b021d84095e357fac9f81 /gas/config/rl78-defs.h
parent23cb30dead402c95346474691469528cb199767b (diff)
downloadbinutils-gdb-9cea966c22d3db4ed4d7008241103b05105c17d3.tar.gz
[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.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/gas/config/rl78-defs.h b/gas/config/rl78-defs.h
index 1afbd9da809..ebe19a97ae0 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);