diff options
Diffstat (limited to 'bfd/elf32-iq2000.c')
-rw-r--r-- | bfd/elf32-iq2000.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/bfd/elf32-iq2000.c b/bfd/elf32-iq2000.c index 079a962..8cf4775 100644 --- a/bfd/elf32-iq2000.c +++ b/bfd/elf32-iq2000.c @@ -290,7 +290,7 @@ iq2000_elf_relocate_hi16 (bfd *input_bfd, bfd_vma insn; insn = bfd_get_32 (input_bfd, contents + relhi->r_offset); - + value += relhi->r_addend; value &= 0x7fffffff; /* Mask off top-bit which is Harvard mask bit. */ @@ -299,7 +299,7 @@ iq2000_elf_relocate_hi16 (bfd *input_bfd, if (value & 0x8000) value += 0x10000; - value >>= 16; + value >>= 16; insn = ((insn & ~0xFFFF) | value); bfd_put_32 (input_bfd, insn, contents + relhi->r_offset); @@ -444,7 +444,7 @@ iq2000_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ - + static bfd_boolean iq2000_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, @@ -456,19 +456,19 @@ iq2000_elf_check_relocs (bfd *abfd, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; bfd_boolean changed = FALSE; - + if (info->relocatable) return TRUE; - + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); - + rel_end = relocs + sec->reloc_count; for (rel = relocs; rel < rel_end; rel++) { struct elf_link_hash_entry *h; unsigned long r_symndx; - + r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx < symtab_hdr->sh_info) h = NULL; @@ -479,7 +479,7 @@ iq2000_elf_check_relocs (bfd *abfd, || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; } - + switch (ELF32_R_TYPE (rel->r_info)) { /* This relocation describes the C++ object vtable @@ -488,7 +488,7 @@ iq2000_elf_check_relocs (bfd *abfd, if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) return FALSE; break; - + /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_IQ2000_GNU_VTENTRY: @@ -584,20 +584,20 @@ iq2000_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED, bfd_reloc_status_type r; const char * name = NULL; int r_type; - + r_type = ELF32_R_TYPE (rel->r_info); - + if ( r_type == R_IQ2000_GNU_VTINHERIT || r_type == R_IQ2000_GNU_VTENTRY) continue; - + r_symndx = ELF32_R_SYM (rel->r_info); howto = iq2000_elf_howto_table + ELF32_R_TYPE (rel->r_info); h = NULL; sym = NULL; sec = NULL; - + if (r_symndx < symtab_hdr->sh_info) { asection *osec; @@ -615,7 +615,7 @@ iq2000_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED, relocation = (sec->output_section->vma + sec->output_offset + sym->st_value); - + name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name); name = (name == NULL) ? bfd_section_name (input_bfd, osec) : name; @@ -674,12 +674,12 @@ iq2000_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED, (info, (h ? &h->root : NULL), name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset); break; - + case bfd_reloc_undefined: r = info->callbacks->undefined_symbol (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; - + case bfd_reloc_outofrange: msg = _("internal error: out of range error"); break; @@ -836,7 +836,7 @@ iq2000_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd) break; } } - + /* Print out any mismatches from above. */ if (new_opt[0]) { |