diff options
author | Dale Johannesen <dalej@apple.com> | 2007-04-02 20:31:06 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2007-04-02 20:31:06 +0000 |
commit | d13786dd8265bfcc4933d95459fc61ff4a7c1f0b (patch) | |
tree | f8236a8db11158e5bcf074ee0198fb86122fa927 /llvm/lib/Target/ARM/ARMConstantIslandPass.cpp | |
parent | 8e168a4f36bee9a2b7727d488db4455ff8652edc (diff) | |
download | bcm5719-llvm-d13786dd8265bfcc4933d95459fc61ff4a7c1f0b.tar.gz bcm5719-llvm-d13786dd8265bfcc4933d95459fc61ff4a7c1f0b.zip |
fix off by 1 error in displacement computation
llvm-svn: 35602
Diffstat (limited to 'llvm/lib/Target/ARM/ARMConstantIslandPass.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMConstantIslandPass.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp index 27e6cc08a39..efe354f63d9 100644 --- a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -593,6 +593,11 @@ bool ARMConstantIslands::WaterIsInRange(unsigned UserOffset, Water->begin()->getOpcode() != ARM::CONSTPOOL_ENTRY)) CPEOffset += 2; + // If the CPE is to be inserted before the instruction, that will raise + // the offset of the instruction. + if (CPEOffset < UserOffset) + UserOffset += isThumb ? 2 : 4; + return OffsetIsInRange (UserOffset, CPEOffset, MaxDisp, !isThumb); } |