fix bug in previous delta
authorNick Clifton <nickc@redhat.com>
Fri, 20 Aug 1999 07:56:08 +0000 (07:56 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 20 Aug 1999 07:56:08 +0000 (07:56 +0000)
bfd/elf32-arm.h

index 0dc397bd9dca153b1339d49d832dfae1164a9595..fe7fa82cb88bd755d293557ac95cf8d4b63c4b6c 100644 (file)
@@ -1607,13 +1607,23 @@ arm_add_to_rel (abfd, address, howto, increment)
     }
 
   /* Add in the increment, (which is a byte value).  */
-  addend <<= howto->size;
-  addend +=  increment;
+  switch (howto->type)
+    {
+    case R_ARM_THM_PC22:
+    default:
+      addend += increment;
+      break;
       
-  /* Should we check for overflow here ?  */
+    case R_ARM_PC24:
+      addend <<= howto->size;
+      addend +=  increment;
+      
+      /* Should we check for overflow here ?  */
 
-  /* Drop any undesired bits.  */
-  addend >>= howto->rightshift;
+      /* Drop any undesired bits.  */
+      addend >>= howto->rightshift;
+      break;
+    }
   
   contents = (contents & ~ howto->dst_mask) | (addend & howto->dst_mask);