unwind-arm.c (selfrel_offset31): Clear top bit for positive offsets.
authorPaul Brook <paul@codesourcery.com>
Wed, 20 Sep 2006 17:29:25 +0000 (17:29 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Wed, 20 Sep 2006 17:29:25 +0000 (17:29 +0000)
2006-09-20  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
positive offsets.

From-SVN: r117087

gcc/ChangeLog
gcc/config/arm/unwind-arm.c

index 86217ace13664097aada6078d81ee242c6fa1cc3..5cc050226b57e226b726615389693ead838c2712 100644 (file)
@@ -1,3 +1,9 @@
+2006-09-20  Paul Brook  <paul@codesourcery.com>
+
+       gcc/
+       * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
+       positive offsets.
+
 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
 
        * doc/extend.texi (Decimal Float): Update for latest draft TR,
index b3f8a00dcb59a87bf44aacd713c99561bb1e07a9..9d2513b689794c1f2c20867adc79aad420735846 100644 (file)
@@ -337,6 +337,8 @@ selfrel_offset31 (const _uw *p)
   /* Sign extend to 32 bits.  */
   if (offset & (1 << 30))
     offset |= 1u << 31;
+  else
+    offset &= ~(1u << 31);
 
   return offset + (_uw) p;
 }