[ARM] Fix Machine Outliner LDRD/STRD handling in Thumb mode.
authorYvan Roux <yvan.roux@linaro.org>
Wed, 9 Jun 2021 13:30:50 +0000 (15:30 +0200)
committerYvan Roux <yvan.roux@linaro.org>
Wed, 9 Jun 2021 13:37:21 +0000 (15:37 +0200)
commit6c78dbd4ca1f2c25cdc276d646c7920afe856ca3
tree0f0135607c26e9be0b652f4cdbc690eb4d637268
parentef8df920fbbc945dce6aeec717629ddde90a8ebe
[ARM] Fix Machine Outliner LDRD/STRD handling in Thumb mode.

This is a fix for PR50481

Immediate values for AddrModeT2_i8s4 are already scaled in MCinst operand.
This patch changes the number of bits and scale factor to reflect that
state when checking stack offset status. AddrModeT2_i7s[2|4] also have
this particularity but since MVE instructions are not outlined, just move
these cases to the unhandled ones.

Differential Revision: https://reviews.llvm.org/D103167
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
llvm/test/CodeGen/ARM/machine-outliner-stack-fixup-thumb.mir