DJ Delorie 6d55bc5c8a [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.
2011-12-23 01:49:37 +00:00
..
2010-04-15 10:26:09 +00:00
2010-01-06 05:25:24 +00:00
2011-06-02 13:43:23 +00:00
2011-12-23 01:49:37 +00:00
2011-12-16 10:23:01 +00:00
2010-04-15 10:26:09 +00:00
2011-12-08 20:47:27 +00:00
2010-06-10 08:31:20 +00:00
2011-10-19 04:13:27 +00:00
2010-04-15 10:26:09 +00:00
2011-11-08 16:01:51 +00:00
[.]
2011-11-02 03:09:07 +00:00
2011-07-22 20:37:50 +00:00
2009-06-01 19:40:32 +00:00
2009-06-01 19:40:32 +00:00
2011-01-03 21:05:50 +00:00
2010-06-10 18:30:17 +00:00
2010-04-15 10:26:09 +00:00
2011-09-28 20:01:37 +00:00
2009-10-07 02:57:27 +00:00
2010-04-15 10:26:09 +00:00
2011-09-27 00:01:35 +00:00
2010-04-15 10:26:09 +00:00
2010-04-15 10:26:09 +00:00
2010-11-17 02:03:39 +00:00
2010-06-10 18:30:17 +00:00
2011-09-28 20:01:37 +00:00
2005-07-12 10:34:51 +00:00
2011-07-25 17:11:44 +00:00
2011-01-03 21:05:50 +00:00
2010-04-15 10:26:09 +00:00