ARM 'adr' fixups don't need the interworking addend tweaking.
authorJim Grosbach <grosbach@apple.com>
Thu, 12 Apr 2012 01:19:35 +0000 (01:19 +0000)
committerJim Grosbach <grosbach@apple.com>
Thu, 12 Apr 2012 01:19:35 +0000 (01:19 +0000)
They reference the PC directly, so things work properly that way.

rdar://11231229

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154576 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp

index 5f2138d5de994d73f0051d7812be26c2a07fef0f..d10bfc104a3c64285f067de9432c3adc8c40510b 100644 (file)
@@ -116,6 +116,9 @@ public:
     // twiddled.
     if ((unsigned)Fixup.getKind() != ARM::fixup_arm_ldst_pcrel_12 &&
         (unsigned)Fixup.getKind() != ARM::fixup_t2_ldst_pcrel_12 &&
+        (unsigned)Fixup.getKind() != ARM::fixup_arm_adr_pcrel_12 &&
+        (unsigned)Fixup.getKind() != ARM::fixup_thumb_adr_pcrel_10 &&
+        (unsigned)Fixup.getKind() != ARM::fixup_t2_adr_pcrel_12 &&
         (unsigned)Fixup.getKind() != ARM::fixup_arm_thumb_cp) {
       if (A) {
         const MCSymbol &Sym = A->getSymbol().AliasedSymbol();