aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-sh.c
AgeCommit message (Collapse)AuthorFilesLines
2001-05-23Change PLT code to avoid using r2 - it used by GCC to return large starturesNick Clifton1-0/+110
2001-03-13* elf32-sh.c (sh_elf_relocate_section): Only relocationDJ Delorie1-5/+37
R_SH_DIR8WP* relocs if they're against external symbols, else they're just for relaxing. Validate the reloc values.
2001-03-08Update copyright noticesNick Clifton1-1/+2
2001-01-232001-01-23 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-1/+0
* coff64-rs6000.c: Fix formatting. * coff-arm.c: Likewise. * coffgen.c: Likewise. * cofflink.c: Likewise. * coff-mcore.c: Likewise. * coff-mips.c: Likewise. * coff-pmac.c: Likewise. * coff-ppc.c: Likewise. * coff-rs6000.c: Likewise. * elf32.c: Likewise. * elf32-fr30.c: Likewise. * elf32-i370.c: Likewise. * elf32-i860.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68k.c: Likewise. * elf32-mcore.c: Likewise. * elf32-ppc.c: Likewise. * elf32-sh.c: Likewise. * elf32-v850.c: Likewise. * elf64-alpha.c: Likewise. * elf64-sparc.c: Likewise. * elflink.c: Likewise. * elflink.h: Likewise. * elf-m10200.c: Likewise. * elf-m10300.c: Likewise. * elfxx-ia64.c: Likewise.
2000-12-12Fix formatting.Nick Clifton1-18/+28
2000-12-082000-12-08 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-114/+101
* coffgen.c: Fix formatting. * elf32-i386.c: Likewise. * elf32-i960.c: Likewise. * elf32-m68k.c: Likewise. * elf32-mcore.c: Likewise. * elf32-ppc.c: Likewise. * elf32-sh.c: Likewise. * elf32-sparc.c: Likewise. * elf32-v850.c: Likewise. * elf64-sparc.c: Likewise. * elf-m10300.c: Likewise.
2000-11-21Fix compile time warning, and remove possibility of infinite loop.Nick Clifton1-1/+1
2000-11-11* elf32-sh.c (sh_elf_relocate_section): Ignore R_SH_NONE relocs.Alexandre Oliva1-0/+2
2000-09-18* elf32-sh.c (sh_elf_relocate_section): UseAlexandre Oliva1-19/+19
_bfd_final_link_relocate to apply the relocation against a section symbol, when doing relocatable links.
2000-09-16* elf32-sh.c (ELF_MAXPAGESIZE): Define to 128, to matchAlexandre Oliva1-1/+1
ld/emulparams/shelf.sh.
2000-09-14* elf32-sh.c (sh_elf_howto_table): Moved R_SH_GOT32, R_SH_PLT32,Alexandre Oliva1-113/+247
R_SH_COPY, R_SH_GLOB_DAT, R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC) to the range from 160 to 167. Replaced the original entries with EMPTY_HOWTOs, and added new ones to fill in the gap. (sh_elf_info_to_howto): Make sure the new gap isn't used. (sh_elf_relocate_section): Likewise.
2000-09-07* config.bfd (sh-*-linux*): Added.Alexandre Oliva1-0/+2
* configure.in (bfd_elf32_shlin_vec, bfd_elf32_shblin_vec): New. * targets.c: Declare them. * elf32-sh-lin.c: New file. * Makefile.am: Compile it. * elf32-sh.c: Don't override defines from elf32-sh-lin.c. * configure, Makefile.in: Rebuilt.
2000-09-02* elf32-sh.c (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,Alexandre Oliva1-14/+1820
R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): New. (sh_reloc_map): Add new relocs. (sh_elf_check_relocs, sh_elf_link_hash_newfunc, sh_elf_link_hash_table_create, sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections, sh_elf_finish_dynamic_symbol, sh_elf_finishe_dynamic_sections, sh_elf_discard_copies): New functions. (ELF_DYNAMIC_INTERPRETER, PLT_ENTRY_SIZE): Define. (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le, elf_sh_plt_entry_be, elf_sh_plt_entry_le, elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le): New array constants. (elf_sh_plt0_entry, elf_sh_plt_entry, elf_sh_pic_plt_entry): New variables. (elf_sh_sizeof_plt, elf_sh_plt_plt0_offset, elf_sh_plt0_linker_offset, elf_sh_plt0_gotid_offset, elf_sh_plt_temp_offset, elf_sh_plt_symbol_offset, elf_sh_plt_reloc_offset): Define. (elf_sh_pcrel_relocs_copied, elf_sh_link_hash_entry, elf_sh_link_hash_table): New structs. (sh_elf_link_hash_traverse, sh_elf_hash_table): New macros. (sh_elf_relocate_section, sh_elf_check_relocs): Handle new relocation types. (elf_backend_create_dynamic_sections, bfd_elf32_bfd_link_hash_table_create, elf_backend_adjust_dynamic_symbol, elf_backend_size_dynamic_sections, elf_backend_finish_dynamic_symbol, elf_backend_finish_dynamic_sections, elf_backend_want_got_plt, elf_backend_plt_readonly, elf_backend_want_plt_sym, elf_backend_got_header_size, elf_backend_plt_header_size): Define. * reloc.c (BFD_RELOC_SH_COPY, BFD_RELOC_SH_GLOB_DAT, BFD_RELOC_SH_JMP_SLOT, BFD_RELOC_SH_RELATIVE, BFD_RELOC_SH_GOTPC): New relocs. * bfd-in2.h, libbfd.h: Rebuilt.
2000-08-31 * elf32-sh.c (sh_elf_merge_private_data): If ibfd's elf header flagsJoern Rennecke1-1/+2
not initialized, set them to indicate the SH1 instruction set.
2000-08-22* elf32-sh.c (sh_elf_relocate_section) [R_SH_IND12W,Alexandre Oliva1-21/+22
R_SH_DIR8WPN, R_SH_DIR8WPZ, R_SH_DIR8WPL]: Handle them explicitly. Improve validation of r_type.
2000-08-11* elf32-sh.c (sh_elf_set_mach_from_flags): Make it static.Alexandre Oliva1-2/+2
2000-08-10Fix bug in sh_elf_reloc_loopBernd Schmidt1-1/+1
2000-08-03* elf32-sh.c (sh_elf_reloc_loop): Warning removal.Alexandre Oliva1-3/+3
2000-05-15 * elf32-sh.c (sh_elf_relax_delete_bytes): Handle R_SH_SWITCH8.Joern Rennecke1-0/+7
2000-04-05sh-dsp REPEAT support:Joern Rennecke1-21/+180
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.
2000-03-01Fix building with --enable-targets=allNick Clifton1-1/+1
2000-03-012000-03-01 H.J. Lu <hjl@gnu.org>H.J. Lu1-1/+1
* aoutx.h (aout_link_input_section_std): Pass "true" to the undefined_symbol callback. (aout_link_input_section_ext): Likewise. * bout.c (get_value): Likewise. * coff-a29k.c (coff_a29k_relocate_section): Likewise. * coff-alpha.c (alpha_ecoff_get_relocated_section_conten): Likewise. (alpha_relocate_section): Likewise. * coff-arm.c (coff_arm_relocate_section): Likewise. * coff-i960.c (coff_i960_relocate_section): Likewise. * coff-mcore.c (coff_mcore_relocate_section): Likewise. * coff-mips.c (mips_relocate_section): Likewise. * coff-ppc.c (coff_ppc_relocate_section): Likewise. * coff-sh.c (sh_relocate_section): Likewise. * coff-tic80.c (coff_tic80_relocate_section): Likewise. * cofflink.c (_bfd_coff_generic_relocate_section): Likewise. * elf-m10200.c (mn10200_elf_relocate_section): Likewise. * elf-m10300.c (mn10300_elf_relocate_section): Likewise. * elf32-d10v.c (elf32_d10v_relocate_section): Likewise. * elf32-fr30.c (fr30_elf_relocate_section): Likewise. * elf32-hppa.c (elf32_hppa_relocate_section): Likewise. * elf32-i370.c (i370_elf_relocate_section): Likewise. * elf32-m32r.c (m32r_elf_relocate_section): Likewise. * elf32-mcore.c (mcore_elf_relocate_section): Likewise. * elf32-sh.c (sh_elf_relocate_section): Likewise. * elf32-v850.c (v850_elf_relocate_section): Likewise. * elflink.c (_bfd_elf_link_record_dynamic_symbol): Likewise. * elflink.h (elf_link_output_extsym): Likewise. * pe-mips.c (coff_pe_mips_relocate_section): Likewise. * reloc.c (bfd_generic_get_relocated_section_conten): Likewise. * reloc16.c (_bfd_ppc_xcoff_relocate_section): Likewise. * elf-hppa.h (elf_hppa_relocate_section): Pass "false" to the undefined_symbol callback when building shared library with -Bsymbolic and undefined symbols are allowed. Otherwise, pass "true". * elf32-arm.h (elf32_arm_relocate_section): Likewise. * elf32-i386.c (elf_i386_relocate_section): Likewise. * elf32-m68k.c (elf_m68k_relocate_section): Likewise. * elf32-mips.c (mips_elf_calculate_relocation): Likewise. (elf32_mips_get_relocated_section_content): Likewise. * elf32-ppc.c (ppc_elf_relocate_section): Likewise. * elf32-sparc.c (elf32_sparc_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_relocate_section): Likewise. * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
2000-02-17bfd:Joern Rennecke1-2/+118
Reinstate bits of sh4 support that got accidentally deleted. Add sh-dsp support. bfd: * archures.c (bfd_mach_sh2, bfd_mach_sh_dsp): New macros. (bfd_mach_sh3_dsp): Likewise. (bfd_mach_sh4): Reinstate. (bfd_default_scan): Recognize 7410, 7708, 7729 and 7750. * bfd-in2.h: Regenerate. * coff-sh.c (struct sh_opcode): flags is no longer short. (USESAS, USESAS_REG, USESR8, SETSAS, SETSAS_REG): New macros. (sh_opcode41, sh_opcode42): Integrate as sh_opcode41. (sh_opcode01, sh_opcode02, sh_opcode40): Add sh-dsp opcodes. (sh_opcode41, sh_opcode4, sh_opcode80): Likewise. (sh_opcodes): No longer const. (sh_dsp_opcodef0, sh_dsp_opcodef): New arrays. (sh_insn_uses_reg): Check for USESAS and USESR8. (sh_insn_sets_reg, sh_insns_conflict): Check for SETSAS. (_bfd_sh_align_load_span): Return early for SH4. Modify sh_opcodes lookup table for sh-dsp / sh3-dsp. Take into account that field b of a parallel processing insn could be mistaken for a separate insn. * cpu-sh.c (arch_info_struct): New array elements for sh2, sh-dsp and sh3-dsp. Reinstate element for sh4. (SH2_NEXT, SH_DSP_NEXT, SH3_DSP_NEXT): New macros. (SH4_NEXT): Reinstate. (SH3_NEXT, SH3E_NEXT): Adjust. * elf-bfd.h (_sh_elf_set_mach_from_flags): Declare. * elf32-sh.c (sh_elf_set_private_flags): New function. (sh_elf_copy_private_data, sh_elf_set_mach_from_flags): Likewise. (sh_elf_merge_private_data): New function. (elf_backend_object_p, bfd_elf32_bfd_set_private_bfd_flags): Define. (bfd_elf32_bfd_copy_private_bfd_data): Define. (bfd_elf32_bfd_merge_private_bfd_data): Change to sh_elf_merge_private_data. gas: * config/tc-sh.c ("elf/sh.h"): Include. (sh_dsp, valid_arch, reg_x, reg_y, reg_efg): New static variables. (md.begin): Initialize target_arch. Only include opcodes in has table that match selected architecture. (parse_reg): Recognize register names for sh-dsp. (parse_at): Recognize post-modify addressing. (get_operands): The leading space is now optional. (get_specific): Remove FDREG_N support. Add support for sh-dsp arguments. Update valid_arch. (build_Mytes): Add support for SDT_REG_N. (find_cooked_opcode): New function, broken out of md_assemble. (assemble_ppi, sh_elf_final_processing): New functions. (md_assemble): Use find_cooked_opcode and assemble_ppi. (md_longopts, md_parse_option): New option: -dsp. * config/tc-sh.h (elf_tc_final_processing): Define. (sh_elf_final_processing): Declare. include/elf: * sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros. (EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise. (EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise. opcodes: * sh-dis.c (print_movxy, print_insn_ddt, print_dsp_reg): New functions. (print_insn_ppi): Likewise. (print_insn_shx): Use info->mach to select appropriate insn set. Add support for sh-dsp. Remove FD_REG_N support. * sh-opc.h (sh_nibble_type): Add new values for sh-dsp support. (sh_arg_type): Likewise. Remove FD_REG_N. (sh_dsp_reg_nums): New enum. (arch_sh1, arch_sh2, arch_sh3, arch_sh3e, arch_sh4): New macros. (arch_sh_dsp, arch_sh3_dsp, arch_sh1_up, arch_sh2_up): Likewise. (arch_sh3_up, arch_sh3e_up, arch_sh4_up, arch_sh_dsp_up): Likewise. (arch_sh3_dsp_up): Likewise. (sh_opcode_info): New field: arch. (sh_table): Split up insn with FD_REG_N into ones with F_REG_N and D_REG_N. Fill in arch field. Add sh-dsp insns.
1999-07-12 * Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSEDIan Lance Taylor1-28/+28
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.
1999-07-12 * Many files: Changes to avoid gcc warnings: Remove unused localIan Lance Taylor1-1/+4
variables. Add default case to enum switches. * coff-arm.c (bfd_arm_allocate_interworking_sections): Only compile if not COFF_IMAGE_WITH_PE. (record_arm_to_thumb_glue, record_thumb_to_arm_glue): Likewise. (bfd_arm_get_bfd_for_interworking): Likewise. (bfd_arm_process_before_allocation): Likewise. * epoc-pei-arm.c: Don't rename bfd_arm functions. * pei-arm.c: Likewise. * elf32-mips.c (mips_elf_link_hash_table_create): Don't declare. (MIPS_ELF_ADD_DYNAMIC_ENTRY): Correct last change. (mips_elf_got16_entry): Put parens around & in body of ==. (mips_elf_calculate_relocation): Correct test for empty string. * vms-gsd.c: Use _bfd_error_handler rather than fprintf to stderr. * vms-misc.c (_bfd_vms_length_hash_symbol): Correct sprintf format.
1999-06-03 * elf32-sh.c (sh_elf_relax_delete_bytes): Fix setting ofJoern Rennecke1-6/+6
start / stop for recalculating of r_addend of R_SH_SWITCH*.
1999-06-03 * elf32-sh.c (sh_elf_relax_delete_bytes): Handle R_SH_SWITCH32Joern Rennecke1-0/+50
in other text sections.
1999-06-03 * libbfd.c (_bfd_generic_verify_endian_match): New function.Joern Rennecke1-0/+2
* libbfd-in.h (_bfd_generic_verify_endian_match): Declare. * libbfd.h: Regenerate. * coff-sh.c (sh_merge_private_data): Delete. (coff_bfd_merge_private_bfd_data): Change to _bfd_generic_verify_endian_match. (elf32-sh.c): bfd_elf32_bfd_merge_private_bfd_data: Define.
1999-05-0319990502 sourceware importbinu_ss_19990502Richard Henderson1-0/+2059