svn commit: r292870 - head/contrib/binutils/bfd

Ian Lepore ian at FreeBSD.org
Tue Dec 29 15:23:04 UTC 2015


Author: ian
Date: Tue Dec 29 15:23:03 2015
New Revision: 292870
URL: https://svnweb.freebsd.org/changeset/base/292870

Log:
  Correct the code for sign-extending a 16 bit value.  As near as I can tell
  this is effectively a no-op -- the addend term in MOVT/MOVW relocations
  always seems to be zero.  But this is correct and the old code wasn't.

Modified:
  head/contrib/binutils/bfd/elf32-arm.c

Modified: head/contrib/binutils/bfd/elf32-arm.c
==============================================================================
--- head/contrib/binutils/bfd/elf32-arm.c	Tue Dec 29 12:38:04 2015	(r292869)
+++ head/contrib/binutils/bfd/elf32-arm.c	Tue Dec 29 15:23:03 2015	(r292870)
@@ -5800,7 +5800,7 @@ elf32_arm_final_link_relocate (reloc_how
 	if (globals->use_rel)
 	  {
 	    addend = ((insn >> 4) & 0xf000) | (insn & 0xfff);
-	    signed_addend = (addend ^ 0x10000) - 0x10000;
+	    signed_addend = (addend ^ 0x8000) - 0x8000;
 	  }
 
 	value += signed_addend;


More information about the svn-src-head mailing list