opcodes:
* sh-opc.h (sh_nibble_type): Remove DISP_8 and DISP_4.
Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}. Add REPEAT.
(sh_arg_type): Add A_PC.
(sh_table): Update entries using immediates. Add repeat.
* sh-dis.c (print_insn_shx): Remove DISP_8 and DISP_4.
Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}. Add REPEAT.
gas:
* config/tc-sh.c (immediate): Delete.
(sh_operand_info): Add immediate member.
(parse_reg): Use A_PC for pc.
(parse_exp): Add second argument 'op'. All callers changed.
(parse_at): Expect pc to be coded as A_PC.
Use immediate field in *op.
(insert): Add fourth argument 'op'. All callers changed.
(build_relax): Add second argument 'op'. All callers changed.
(insert_loop_bounds): New function.
(build_Mytes): Remove DISP_4.
Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}. Add REPEAT.
(assemble_ppi): Use immediate field in *operand.
(sh_force_relocation): Handle BFD_RELOC_SH_LOOP_{START,END}.
(md_apply_fix): Likewise.
(tc_gen_reloc): Likewise. Check for a pcrel BFD_RELOC_SH_LABEL.
include/coff:
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define.
include/elf:
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
bfd:
* reloc.c (_bfd_relocate_contents): Add BFD_RELOC_SH_LOOP_START and
BFD_RELOC_SH_LOOP_END.
* elf32-sh.c (sh_elf_howto_tab): Change special_func to
sh_elf_ignore_reloc for all entries that sh_elf_reloc used to ignore.
Add entries for R_SH_LOOP_START and R_SH_LOOP_END.
(sh_elf_reloc_loop): New function.
(sh_elf_reloc): No need to test for always-to-be-ignored relocs
any more.
(sh_rel): Add entries for BFD_RELOC_SH_LOOP_{START,END}.
(sh_elf_relocate_section): Handle BFD_RELOC_SH_LOOP_{START,END}.
* bfd-in2.h, libbfd.h: Regenerate.
complain_overflow_bitfield doesn't complain) from -2**(n-1)..2**n-1 to
-2**n..2**n. This might mean that some reloc overflows are no longer
caught, but it solves the address wrap problem for 16-bit relocs
nicely. In any case, ports that rely on complain_overflow_bitfield
for reloc overflow checking were not getting a very good check
previously. A bitfield range in a machine instruction is typically
either the signed or unsigned n bit numbers, not the overlap of these
two ranges.
as appropriate. Use EMPTY_HOWTO as appropriate. Fill in
structure initializations. Add casts.
* reloc.c (EMPTY_HOWTO): Define.
* bfd-in2.h: Rebuild.
* coff-h8300.c (h8300_reloc16_extra_cases): Remove useless
comparisons against 0.
* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Change
previous_ibfd_e_flags to unsigned long.
* vms.h (struct vms_private_data_struct): Change section_count to
unsigned.
* vms-gsd.c (_bfd_vms_slurp_gsd): Change psect_idx to unsigned.
(_bfd_vms_write_gsd): Change symnum to unsigned.
* vms-hdr.c (_bfd_vms_write_hdr): Change symnum to unsigned.
* vms-tir.c (etir_sta): Change psect to unsigned.
(alloc_section): Change idx to unsigned.
(tir_sta, tir_ctl): Change psect to unsigned.
(_bfd_vms_write_tir): Change len and before to bfd_size_type.
* vms.c (priv_section_count): Change to unsigned.
as appropriate. Fill in structure initializations. Add variable
initializations. Add casts.
* dwarf1.c (parse_line_table): Change eachLine to unsigned long.
(dwarf1_unit_find_nearest_line): Change i to unsigned long.
(BFD_RELOC_MIPS_GOT_PAGE): Likewise.
(BFD_RELOC_MIPS_GOT_OFST): Likewise.
(BFD_RELOC_MIPS_GOT_DISP): Likewise.
* bfd-in2.h: Regenerated.
* libbfd.h: Likewise.
* elf32-mips.c (mips_info_to_howto_rela): New function.
(USE_REL): Adjust for new conventions.
(MINUS_ONE): New macro.
(elf_mips_howto_table): Add R_MIPS_SUB.
(mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE, MIPS_GOT_OFST,
and MIPS_GOT_DISP.
(mips_elf_final_write_processing): Set sh_link, not sh_info, for a
.MIPS.content section.
(_bfd_mips_elf_fake_sections): Treat all sections that begin
with .MIPS.content as .MIPS.content sections. Set
SHF_MNIPS_NOSTRIP for such section.
(elf_info_to_howto): Define to mips_info_to_howto_rela.
* elf64-mips.c (mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE,
MIPS_GOT_OFST, and MIPS_GOT_DISP.