version 1.1.1.2, 2016/10/26 17:02:28 |
version 1.1.1.3, 2018/04/14 15:36:10 |
|
|
/* BFD back-end for Renesas H8/300 COFF binaries. |
/* BFD back-end for Renesas H8/300 COFF binaries. |
Copyright (C) 1990-2015 Free Software Foundation, Inc. |
Copyright (C) 1990-2016 Free Software Foundation, Inc. |
Written by Steve Chamberlain, <sac@cygnus.com>. |
Written by Steve Chamberlain, <sac@cygnus.com>. |
|
|
This file is part of BFD, the Binary File Descriptor library. |
This file is part of BFD, the Binary File Descriptor library. |
Line 647 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 647 h8300_reloc16_extra_cases (bfd *abfd, st |
|
|
|
/* Sanity check. */ |
/* Sanity check. */ |
if (gap < -128 || gap > 126) |
if (gap < -128 || gap > 126) |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
|
|
/* Everything looks OK. Apply the relocation and update the |
/* Everything looks OK. Apply the relocation and update the |
src/dst address appropriately. */ |
src/dst address appropriately. */ |
Line 679 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 675 h8300_reloc16_extra_cases (bfd *abfd, st |
|
|
|
/* Sanity check. */ |
/* Sanity check. */ |
if (gap > 32766 || gap < -32768) |
if (gap > 32766 || gap < -32768) |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
|
|
/* Everything looks OK. Apply the relocation and update the |
/* Everything looks OK. Apply the relocation and update the |
src/dst address appropriately. */ |
src/dst address appropriately. */ |
Line 769 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 761 h8300_reloc16_extra_cases (bfd *abfd, st |
|
src_address += 4; |
src_address += 4; |
} |
} |
else |
else |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
break; |
break; |
|
|
/* A 16-bit absolute branch that is now an 8-bit pc-relative branch. */ |
/* A 16-bit absolute branch that is now an 8-bit pc-relative branch. */ |
Line 793 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 781 h8300_reloc16_extra_cases (bfd *abfd, st |
|
|
|
/* Sanity check. */ |
/* Sanity check. */ |
if (gap < -128 || gap > 126) |
if (gap < -128 || gap > 126) |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
|
|
/* Now fix the instruction itself. */ |
/* Now fix the instruction itself. */ |
switch (data[dst_address - 1]) |
switch (data[dst_address - 1]) |
Line 840 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 824 h8300_reloc16_extra_cases (bfd *abfd, st |
|
|
|
/* Sanity check. */ |
/* Sanity check. */ |
if (gap < -128 || gap > 126) |
if (gap < -128 || gap > 126) |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
|
|
/* Now fix the instruction. */ |
/* Now fix the instruction. */ |
switch (data[dst_address - 2]) |
switch (data[dst_address - 2]) |
Line 1040 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 1020 h8300_reloc16_extra_cases (bfd *abfd, st |
|
|
|
/* Sanity check. */ |
/* Sanity check. */ |
if (gap < -128 || gap > 126) |
if (gap < -128 || gap > 126) |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
|
|
/* Everything looks OK. Fix the condition in the instruction, apply |
/* Everything looks OK. Fix the condition in the instruction, apply |
the relocation, and update the src/dst address appropriately. */ |
the relocation, and update the src/dst address appropriately. */ |
Line 1123 h8300_reloc16_extra_cases (bfd *abfd, st |
|
Line 1099 h8300_reloc16_extra_cases (bfd *abfd, st |
|
src_address += 1; |
src_address += 1; |
} |
} |
else |
else |
{ |
(*link_info->callbacks->reloc_overflow) |
if (! ((*link_info->callbacks->reloc_overflow) |
(link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), |
(link_info, NULL, |
reloc->howto->name, reloc->addend, input_section->owner, |
bfd_asymbol_name (*reloc->sym_ptr_ptr), |
input_section, reloc->address); |
reloc->howto->name, reloc->addend, input_section->owner, |
|
input_section, reloc->address))) |
|
abort (); |
|
} |
|
break; |
break; |
} |
} |
|
|