diff options
author | Bill Wendling <isanbard@gmail.com> | 2010-12-09 00:39:08 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2010-12-09 00:39:08 +0000 |
commit | 09aa3f0ef35d9241c92439d74b8d5e9a81d814c2 (patch) | |
tree | b70785fac90f90c5eebe007ddb6c780adce8abbe /lib/Target/ARM/ARMCodeEmitter.cpp | |
parent | 8bce7cc3bfa7d5b47ca0b05f7c663068d1da592a (diff) | |
download | llvm-09aa3f0ef35d9241c92439d74b8d5e9a81d814c2.tar.gz llvm-09aa3f0ef35d9241c92439d74b8d5e9a81d814c2.tar.bz2 llvm-09aa3f0ef35d9241c92439d74b8d5e9a81d814c2.tar.xz |
The BLX instruction is encoded differently than the BL, because why not? In
particular, the immediate has 20-bits of value instead of 21. And bit 0 is '0'
always. Going through the BL fixup encoding was trashing the "bit 0 is '0'"
invariant.
Attempt to get the encoding at slightly more correct with this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121336 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMCodeEmitter.cpp')
-rw-r--r-- | lib/Target/ARM/ARMCodeEmitter.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMCodeEmitter.cpp b/lib/Target/ARM/ARMCodeEmitter.cpp index da806f77c5..3892948d62 100644 --- a/lib/Target/ARM/ARMCodeEmitter.cpp +++ b/lib/Target/ARM/ARMCodeEmitter.cpp @@ -173,6 +173,8 @@ namespace { const { return 0; } unsigned getThumbBLTargetOpValue(const MachineInstr &MI, unsigned Op) const { return 0; } + unsigned getThumbBLXTargetOpValue(const MachineInstr &MI, unsigned Op) + const { return 0; } unsigned getThumbBRTargetOpValue(const MachineInstr &MI, unsigned Op) const { return 0; } unsigned getBranchTargetOpValue(const MachineInstr &MI, unsigned Op) |