2006-02-28 Bjoern Haase <bjoern.m.haase@web.de>
* include/elf/avr.h:
R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG: Add.
EF_AVR_LINKRELAX_PREPARED: Add.
* bfd/elf32-avr.c:
avr_reloc_map:
insert BFD_RELOC_AVR_MS8_LDI and R_AVR_MS8_LDI
bfd_elf_avr_final_write_processing:
set EF_AVR_LINKRELAX_PREPARED in e_flags field.
elf32_avr_relax_section: add.
elf32_avr_relax_delete_bytes: add.
elf32_avr_get_relocated_section_contents: add.
avr_pc_wrap_around: add.
avr_relative_distance_considering_wrap_around: add.
avr_final_link_relocate: Handle negative int8t_t immediate for R_AVR_LDI
* gas/config/tc-avr.c:
avr_mod_hash_value: Add.
md_apply_fix, exp_mod:
Use BFD_RELOC_HH8_LDI and BFD_RELOC_MS8_LDI for hlo8() and hhi8()
md_begin:
set linkrelax variable to 1, use avr_mod_hash_value instead of int
avr_ldi_expression: use avr_mod_hash_value instead of (int)
tc_gen_reloc:
handle substractions of symbols, if possible do fixups, abort otherwise
* gas/config/tc-avr.h:
TC_LINKRELAX_FIXUP, TC_VALIDATE_FIX, tc_fix_adjustable: add.
* bfd/bfd-in2.h: Add BFD_RELOC_AVR_MS8_LDI and BFD_RELOC_AVR_LDI_NEG
* bfd/libbfd.h: Ditto.
* bfd/reloc.c: Ditto.
* ld/scripttempl/avr.sc:
add *(.jumptables) *(.lowtext), add KEEP() directives
add *(.data*) *(.rodata) and *(.rodata*) and *(.bss*) to .data and .bss
output sections.