* 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. |
||
|---|---|---|
| .. | ||
| ChangeLog | ||
| ChangeLog-9103 | ||
| alpha.h | ||
| arc.h | ||
| arm.h | ||
| avr.h | ||
| bfin.h | ||
| common.h | ||
| cr16.h | ||
| cr16c.h | ||
| cris.h | ||
| crx.h | ||
| d10v.h | ||
| d30v.h | ||
| dlx.h | ||
| dwarf.h | ||
| epiphany.h | ||
| external.h | ||
| fr30.h | ||
| frv.h | ||
| h8.h | ||
| hppa.h | ||
| i370.h | ||
| i386.h | ||
| i860.h | ||
| i960.h | ||
| ia64.h | ||
| internal.h | ||
| ip2k.h | ||
| iq2000.h | ||
| lm32.h | ||
| m32c.h | ||
| m32r.h | ||
| m68hc11.h | ||
| m68k.h | ||
| mcore.h | ||
| mep.h | ||
| microblaze.h | ||
| mips.h | ||
| mmix.h | ||
| mn10200.h | ||
| mn10300.h | ||
| moxie.h | ||
| msp430.h | ||
| mt.h | ||
| openrisc.h | ||
| or32.h | ||
| pj.h | ||
| ppc.h | ||
| ppc64.h | ||
| reloc-macros.h | ||
| rl78.h | ||
| rx.h | ||
| s390.h | ||
| score.h | ||
| sh.h | ||
| sparc.h | ||
| spu.h | ||
| tic6x-attrs.h | ||
| tic6x.h | ||
| tilegx.h | ||
| tilepro.h | ||
| v850.h | ||
| vax.h | ||
| vxworks.h | ||
| x86-64.h | ||
| xc16x.h | ||
| xstormy16.h | ||
| xtensa.h | ||