[PATCH] D86924: [ARM] Fix so immediates and pc relative checks

Simon Wallis via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 1 03:17:20 PDT 2020


simonwallis2 created this revision.
simonwallis2 added reviewers: dmgreen, efriedma.
Herald added subscribers: llvm-commits, danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.
simonwallis2 requested review of this revision.

An SoImm 32 bit immediate constant is an 8 bit value 0 to 255
rotated right by a 4-bit even count,  0, 2, . . 28, 30.

Most negative values that are multiple of 4 in the range -1020 to -4 cannot be represent by an SoImm.

This commit stops considering an SoImm encoding for a negative offset to a constant island.


https://reviews.llvm.org/D86924

Files:
  llvm/lib/Target/ARM/ARMConstantIslandPass.cpp


Index: llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
===================================================================
--- llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
+++ llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
@@ -782,7 +782,6 @@
             // displacements that fits in a SoImm as well.
             Bits = 8;
             Scale = 4;
-            NegOk = true;
             IsSoImm = true;
             break;
           case ARM::t2LEApcrel:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86924.289116.patch
Type: text/x-patch
Size: 457 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200901/63c05b43/attachment.bin>


More information about the llvm-commits mailing list