diff options
author | Simon Wallis <simon.wallis2@arm.com> | 2020-09-14 08:52:59 +0100 |
---|---|---|
committer | Simon Wallis <simon.wallis2@arm.com> | 2020-09-14 08:52:59 +0100 |
commit | 4946802c5f406b050cbb1524d0fd03cf3fd7b0dc (patch) | |
tree | 08a490584217eb3b5273118fa91cb785fc6f93cf /llvm/lib/Transforms/Utils/UnifyLoopExits.cpp | |
parent | 15bff4dec4360985a6a058a7e42a4ffd590dc665 (diff) | |
download | llvm-4946802c5f406b050cbb1524d0fd03cf3fd7b0dc.zip llvm-4946802c5f406b050cbb1524d0fd03cf3fd7b0dc.tar.gz llvm-4946802c5f406b050cbb1524d0fd03cf3fd7b0dc.tar.bz2 |
[ARM] Fix so immediates and pc relative checks
Treating an SoImm offset as a multiple of 4 between -1020 and 1020
mis-handles the second of a pair of 16-bit constants where the offset is a multiple of 2 but not a multiple of 4,
leading to an LLVM ERROR: out of range pc-relative fixup value
For 32-bit and larger (64-bit) constants, continue to treat an SoImm offset as a multiple of 4 between -1020 and 1020.
For smaller (16-bit) constants, treat an SoImm offset as a multiple of 1 between -255 and 255.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D86949
Diffstat (limited to 'llvm/lib/Transforms/Utils/UnifyLoopExits.cpp')
0 files changed, 0 insertions, 0 deletions