]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
MIPS/BFD: Use helper function for LO relocation sign-extension
authorMaciej W. Rozycki <macro@orcam.me.uk>
Sat, 12 Jul 2025 00:25:53 +0000 (01:25 +0100)
committerMaciej W. Rozycki <macro@orcam.me.uk>
Sat, 12 Jul 2025 00:25:53 +0000 (01:25 +0100)
A calculation for LO relocations has been recently fixed with commit
ce08b3bb19b3 ("MIPS/BFD: Fix RELA handling of borrow in the generic
linker"), however it was missed that for the updated arithmetic we
already have a helper function available, `_bfd_mips_elf_sign_extend'.

Replace the open-coded statement then with an equivalent call to said
function.  No functional change.

bfd/elfxx-mips.c

index 530e8d63ddc753dd4898ba9577854716de0b848a..6f323289ad613948d8208909ebabe1342b398ea5 100644 (file)
@@ -2605,7 +2605,7 @@ _bfd_mips_elf_lo16_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
      and we want to apply (symbol + addend + 0x8000) >> 16 to the
      high insn (the +0x8000 adjusting for when the applied low part is
      negative).  */
-  vallo = ((bfd_get_32 (abfd, location) & 0xffff) ^ 0x8000) - 0x8000;
+  vallo = _bfd_mips_elf_sign_extend (bfd_get_32 (abfd, location) & 0xffff, 16);
   _bfd_mips_elf_reloc_shuffle (abfd, reloc_entry->howto->type, false,
                               location);