From a341fc0c61de749767534ed01d82817cf67b9d36 Mon Sep 17 00:00:00 2001
From: pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Sep 2006 17:29:25 +0000
Subject: [PATCH] 2006-09-20  Paul Brook  <paul@codesourcery.com>

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



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117087 138bc75d-0d04-0410-961f-82ee72b054a4
---
 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