mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-23 11:04:32 +00:00
* elf32-mips.c (mips_info_to_howto_rel): Split out switch to ...
(mips_rtype_to_howto): ... new function. (_bfd_mips_elf_relocate_section): Use it.
This commit is contained in:
parent
b77ad1d4c9
commit
c9b3cbf33c
@ -1,3 +1,9 @@
|
||||
1999-07-29 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* elf32-mips.c (mips_info_to_howto_rel): Split out switch to ...
|
||||
(mips_rtype_to_howto): ... new function.
|
||||
(_bfd_mips_elf_relocate_section): Use it.
|
||||
|
||||
1999-07-28 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* elf32-mips.c (_bfd_mips_elf_relocate_section): Fix typo.
|
||||
|
@ -98,6 +98,8 @@ static bfd_reloc_status_type mips32_64bit_reloc
|
||||
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
|
||||
PARAMS ((bfd *, bfd_reloc_code_real_type));
|
||||
static reloc_howto_type *mips_rtype_to_howto
|
||||
PARAMS ((unsigned int));
|
||||
static void mips_info_to_howto_rel
|
||||
PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
|
||||
static void mips_info_to_howto_rela
|
||||
@ -1890,6 +1892,34 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
||||
|
||||
/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure. */
|
||||
|
||||
static reloc_howto_type *
|
||||
mips_rtype_to_howto (r_type)
|
||||
unsigned int r_type;
|
||||
{
|
||||
switch (r_type)
|
||||
{
|
||||
case R_MIPS16_26:
|
||||
return &elf_mips16_jump_howto;
|
||||
break;
|
||||
case R_MIPS16_GPREL:
|
||||
return &elf_mips16_gprel_howto;
|
||||
break;
|
||||
case R_MIPS_GNU_VTINHERIT:
|
||||
return &elf_mips_gnu_vtinherit_howto;
|
||||
break;
|
||||
case R_MIPS_GNU_VTENTRY:
|
||||
return &elf_mips_gnu_vtentry_howto;
|
||||
break;
|
||||
|
||||
default:
|
||||
BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
|
||||
return &elf_mips_howto_table[r_type];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure. */
|
||||
|
||||
static void
|
||||
mips_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
bfd *abfd;
|
||||
@ -1899,26 +1929,7 @@ mips_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
unsigned int r_type;
|
||||
|
||||
r_type = ELF32_R_TYPE (dst->r_info);
|
||||
switch (r_type)
|
||||
{
|
||||
case R_MIPS16_26:
|
||||
cache_ptr->howto = &elf_mips16_jump_howto;
|
||||
break;
|
||||
case R_MIPS16_GPREL:
|
||||
cache_ptr->howto = &elf_mips16_gprel_howto;
|
||||
break;
|
||||
case R_MIPS_GNU_VTINHERIT:
|
||||
cache_ptr->howto = &elf_mips_gnu_vtinherit_howto;
|
||||
break;
|
||||
case R_MIPS_GNU_VTENTRY:
|
||||
cache_ptr->howto = &elf_mips_gnu_vtentry_howto;
|
||||
break;
|
||||
|
||||
default:
|
||||
BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
|
||||
cache_ptr->howto = &elf_mips_howto_table[r_type];
|
||||
break;
|
||||
}
|
||||
cache_ptr->howto = mips_rtype_to_howto (r_type);
|
||||
|
||||
/* The addend for a GPREL16 or LITERAL relocation comes from the GP
|
||||
value for the object file. We get the addend now, rather than
|
||||
@ -6461,7 +6472,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
stored value is sign-extended to 64 bits. */
|
||||
howto = elf_mips_howto_table + R_MIPS_32;
|
||||
else
|
||||
howto = elf_mips_howto_table + r_type;
|
||||
howto = mips_rtype_to_howto (r_type);
|
||||
|
||||
if (!use_saved_addend_p)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user