diff options
author | Owen Anderson <resistor@mac.com> | 2011-03-22 22:52:54 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2011-03-22 22:52:54 +0000 |
commit | 6149a341026a985d90c4bb9ac2031f7ab27c8e57 (patch) | |
tree | 0538356e18054126a96b112d5265174b24819674 /llvm/lib/MC/MachObjectWriter.cpp | |
parent | 678f396d2061eaabdaf118fe2858f73d29ee21a8 (diff) | |
download | bcm5719-llvm-6149a341026a985d90c4bb9ac2031f7ab27c8e57.tar.gz bcm5719-llvm-6149a341026a985d90c4bb9ac2031f7ab27c8e57.zip |
RIT_ARM_ThumbBranch32Bit relocations are not used and should never be generated.
This fixes kimwitu++, bullet, and tramp3dv4 with the ARM integrated assembler.
Fixes <rdar://problem/9165738>.
llvm-svn: 128117
Diffstat (limited to 'llvm/lib/MC/MachObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index bd294c27e8a..f2e91c26719 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/lib/MC/MachObjectWriter.cpp @@ -821,7 +821,7 @@ public: // 1 - :upper16: for movt instructions // high bit of r_length: // 0 - arm instructions - // 1 - thumb instructions + // 1 - thumb instructions // the other half of the relocated expression is in the following pair // relocation entry in the the low 16 bits of r_address field. unsigned ThumbBit = 0; @@ -949,15 +949,11 @@ public: // Handle Thumb branches. case ARM::fixup_arm_thumb_br: + case ARM::fixup_arm_thumb_bl: RelocType = unsigned(macho::RIT_ARM_ThumbBranch22Bit); Log2Size = llvm::Log2_32(2); return true; - case ARM::fixup_arm_thumb_bl: - RelocType = unsigned(macho::RIT_ARM_ThumbBranch32Bit); - Log2Size = llvm::Log2_32(4); - return true; - case ARM::fixup_arm_thumb_blx: RelocType = unsigned(macho::RIT_ARM_ThumbBranch22Bit); // Report as 'long', even though that is not quite accurate. |