diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMConstantIslandPass.cpp | 6 | ||||
-rw-r--r-- | lib/Target/ARM/README.txt | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMConstantIslandPass.cpp b/lib/Target/ARM/ARMConstantIslandPass.cpp index 1f584d4..48db39b 100644 --- a/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -696,13 +696,11 @@ bool ARMConstantIslands::OffsetIsInRange(unsigned UserOffset, // User before the Trial. if (TrialOffset - UserOffset <= MaxDisp) return true; - if (IsSoImm && ARM_AM::getSOImmVal(TrialOffset - UserOffset) != -1) - return true; + // FIXME: Make use full range of soimm values. } else if (NegativeOK) { if (UserOffset - TrialOffset <= MaxDisp) return true; - if (IsSoImm && ARM_AM::getSOImmVal(~(TrialOffset - UserOffset)) != -1) - return true; + // FIXME: Make use full range of soimm values. } return false; } diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt index 3e8c54a..a587a2b 100644 --- a/lib/Target/ARM/README.txt +++ b/lib/Target/ARM/README.txt @@ -541,3 +541,8 @@ while ARMConstantIslandPass only need to worry about LDR (literal). //===---------------------------------------------------------------------===// We need to fix constant isel for ARMv6t2 to use MOVT. + +//===---------------------------------------------------------------------===// + +Constant island pass should make use of full range SoImm values for LEApcrel. +Be careful though as the last attempt caused infinite looping on lencod. |