From ddda4409ceacecadef5f33c10b6719a04348b514 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 20 Aug 1999 07:56:08 +0000 Subject: [PATCH] fix bug in previous delta --- bfd/elf32-arm.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index 0dc397bd9dc..fe7fa82cb88 100644 --- a/bfd/elf32-arm.h +++ b/bfd/elf32-arm.h @@ -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); -- 2.30.2