summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2016-11-07 13:38:21 +0000
committerJames Molloy <james.molloy@arm.com>2016-11-07 13:38:21 +0000
commitb03e0879fccd3e5fedd51df18a9e7055fee8db95 (patch)
treec5d3f2d8d3dba4d5fa5dbc54f3b617fca21a1a52 /llvm/lib/Target/ARM/ARMConstantPoolValue.cpp
parent2158fa6f204af503c77fd3cd8c7b53245ac9ffaf (diff)
downloadbcm5719-llvm-b03e0879fccd3e5fedd51df18a9e7055fee8db95.tar.gz
bcm5719-llvm-b03e0879fccd3e5fedd51df18a9e7055fee8db95.zip
[Thumb1] Move padding earlier when synthesizing TBBs off of the PC
When the base register (register pointing to the jump table) is the PC, we expect the jump table to directly follow the jump sequence with no intervening padding. If there is intervening padding, the calculated offsets will not be correct. One solution would be to account for any padding in the emitted LDRB instruction, but at the moment we don't support emitting MCExprs for the load offset. In the meantime, it's correct and only a slight amount worse to just move the padding up, from just before the jump table to just before the jump instruction sequence. We can do that by emitting code alignment before the jump sequence, as we know the number of instructions in the sequence is always 4. llvm-svn: 286107
Diffstat (limited to 'llvm/lib/Target/ARM/ARMConstantPoolValue.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud