1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00

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
This commit is contained in:
Owen Anderson 2011-03-22 22:52:54 +00:00
parent 28ebc380f6
commit 7785f055b9

View File

@ -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.