* powerpc.cc (Target_powerpc::relocate): Fix overflow check.
This commit is contained in:
Cary Coutant 2014-12-22 10:13:37 -08:00
parent f953163fe9
commit e30880c2ee
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2014-12-22 Cary Coutant <ccoutant@google.com>
* powerpc.cc (Target_powerpc::relocate): Fix overflow check.
2014-12-20 H.J. Lu <hongjiu.lu@intel.com>
PR gold/14608

View File

@ -7531,7 +7531,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
Insn* iview = reinterpret_cast<Insn*>(view - 2 * big_endian);
Insn insn = elfcpp::Swap<32, big_endian>::readval(iview);
overflow = Reloc::CHECK_SIGNED;
if ((insn & (0x3f << 26)) == 10u << 26 /* cmpli */)
overflow = Reloc::CHECK_BITFIELD;
else if (overflow == Reloc::CHECK_LOW_INSN
@ -7542,6 +7541,8 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
|| (insn & (0x3f << 26)) == 25u << 26 /* oris */
|| (insn & (0x3f << 26)) == 27u << 26 /* xoris */))
overflow = Reloc::CHECK_UNSIGNED;
else
overflow = Reloc::CHECK_SIGNED;
}
typename Powerpc_relocate_functions<size, big_endian>::Status status