diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-12-10 18:21:33 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-12-10 18:21:33 +0000 |
commit | e246717c3a36a913fd4200776ed621649bb2b624 (patch) | |
tree | c9ff576e9945e3cb3106315c452234a7467fc2bd /lib/Target/ARM/ARMAsmBackend.cpp | |
parent | 01086451393ef33e82b6fad623989dd97dd70edf (diff) |
Thumb unconditional branch binary encoding. rdar://8754994
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121496 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMAsmBackend.cpp')
-rw-r--r-- | lib/Target/ARM/ARMAsmBackend.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMAsmBackend.cpp b/lib/Target/ARM/ARMAsmBackend.cpp index de05472f90..536d282d0a 100644 --- a/lib/Target/ARM/ARMAsmBackend.cpp +++ b/lib/Target/ARM/ARMAsmBackend.cpp @@ -200,6 +200,9 @@ static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) { uint32_t Binary = (Value - 4) >> 1; return ((Binary & 0x20) << 9) | ((Binary & 0x1f) << 3); } + case ARM::fixup_arm_thumb_br: + // Offset by 4 and don't encode the lower bit, which is always 0. + return ((Value - 4) >> 1) & 0x7ff; case ARM::fixup_arm_thumb_bcc: // Offset by 4 and don't encode the lower bit, which is always 0. return ((Value - 4) >> 1) & 0xff; @@ -317,6 +320,7 @@ static unsigned getFixupKindNumBytes(unsigned Kind) { case ARM::fixup_arm_thumb_cp: return 1; + case ARM::fixup_arm_thumb_br: case ARM::fixup_arm_thumb_cb: return 2; |