diff options
author | Jim Grosbach <grosbach@apple.com> | 2012-02-27 21:36:23 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2012-02-27 21:36:23 +0000 |
commit | 7b25ecf6adbf3c4709c48033acfeb6ebbb4452ab (patch) | |
tree | 649c04d8126e29b74b9881df0434fadd4aec39d9 /lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp | |
parent | 945c2b3965a5d327055f624dd5dab659551da108 (diff) |
ARM BL/BLX instruction fixups should use relocations.
We on the linker to resolve calls to the appropriate BL/BLX instruction
to make interworking function correctly. It uses the symbol in the
relocation to do that, so we need to be careful about being too clever.
To enable this for ARM mode, split the BL/BLX fixup kind off from the
unconditional-branch fixups.
rdar://10927209
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151571 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp')
-rw-r--r-- | lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp b/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp index a6a67e4af3..5476a46b71 100644 --- a/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp +++ b/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp @@ -177,6 +177,8 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target, break; } break; + case ARM::fixup_arm_bl: + case ARM::fixup_arm_blx: case ARM::fixup_arm_uncondbranch: switch (Modifier) { case MCSymbolRefExpr::VK_ARM_PLT: |