From d0cd71a0e67f1b347ce25a7ee4594ba4d94198bc Mon Sep 17 00:00:00 2001
From: Paul Brook <paul@codesourcery.com>
Date: Wed, 20 Sep 2006 17:29:25 +0000
Subject: [PATCH] unwind-arm.c (selfrel_offset31): Clear top bit for positive
 offsets.

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               | 6 ++++++
 gcc/config/arm/unwind-arm.c | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 86217ace1366..5cc050226b57 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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,
diff --git a/gcc/config/arm/unwind-arm.c b/gcc/config/arm/unwind-arm.c
index b3f8a00dcb59..9d2513b68979 100644
--- a/gcc/config/arm/unwind-arm.c
+++ b/gcc/config/arm/unwind-arm.c
@@ -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;
 }
-- 
GitLab