The assert was off-by-one, resulting in failures for valid input.
Thanks to Asiri Rathnayake for pointing out the failure!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224432
91177308-0d34-0410-b5e6-
96231b3b80d8
static bool getARMStoreDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI,
std::string &Info) {
- assert(MI.getNumOperands() > 4 && "expected >4 arguments");
+ if (STI.getFeatureBits() & llvm::ARM::ModeThumb)
+ return false;
+
+ assert(MI.getNumOperands() >= 4 && "expected >= 4 arguments");
for (unsigned OI = 4, OE = MI.getNumOperands(); OI < OE; ++OI) {
assert(MI.getOperand(OI).isReg() && "expected register");
if (MI.getOperand(OI).getReg() == ARM::SP ||
@ CHECK: push {sp}
@ CHECK: ^
+ .global single
+ .type single,%function
+single:
+ stmdaeq r0, {r0}
+@ CHECK-NOT: warning
+