Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
somewhat.
(mn10200_elf_relax_section): Correctly compute a symbol's value
when the symbol is local, but not in the same section as we are
relaxing. Implement abs24 -> abs16, imm24 -> imm16 and d24 -> d16
relaxing.
Another 1.3% size reduction for hello world. Only relaxing left todo is
imm16 -> imm8 and d16 -> d8 where applicable.
|
|
|
|
|
|
(mn10200_elf_relax_delete_bytes): Likewise.
(mn10200_elf_symbol_address_p): Likewise.
(mn10200_elf_get_relocated_section_contents): Likewise.
(bfd_elf32_bfd_relax_section): Define.
(bfd_elf32_bfd_get_relocated_section_contents): Likewise.
First cut at relaxing linker for the mn10200:
jsr:24 -> jsr:16
jmp:24 -> jmp:16
jmp:16 -> bra:8
bCC .+4;bra:8 -> bCC':8
Reduces code size by about 2.5% for hello world.
|
|
(mn10200_elf_relocate_section): Likewise.
(elf_backend_relocate_section): Define.
New style linker for the mn10200.
|
|
(elf_mn10200_howto_table): Likewise.
(mn10200_reloc_map): Likewise.
How did I miss the 16bit pc-relative relocs?!?
|
|
Use bfd_elf_generic_reloc as special function for all relocs.
(bfd_elf32_mn10200_reloc): Remove unnecessary function.
Working on relocs for the mn10200.
|
|
24bit pc-relative reloc.
|
|
* elf32-mn10200.c (enum reloc_type): Add 24bit and pcrel relocs.
(elf_mn10200_howto, mn10200_reloc_map): Corresponding changes.
* bfd-in2.h, libbfd.h: Rebuilt.
Starting on relocs for the mn10200.
|
|
32 bit relocs.
(elf_mn10200_howto_table): Likewise.
(mn10200_reloc_map): Likewise.
To keep the assembler quiet.
|
|
variants.
(elf32_mn10300_howto_table, mn10300_reloc_map): Likewise.
(bfd_elf32_mn10300_reloc): Write data in little endian format.
* reloc.c: Remove mn10300 big endian relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
* elf32-mn10200.c: Update from elf32-mn10300.c.
|
|
with a single generic configuration. So break them up into two different
configurations. See the individual ChangeLogs for additional detail.
|