ARM: fix t2am_imm8_offset operand printing for imm=#-0
authorAmaury de la Vieuville <amaury.dlv@gmail.com>
Thu, 13 Jun 2013 16:40:51 +0000 (16:40 +0000)
committerAmaury de la Vieuville <amaury.dlv@gmail.com>
Thu, 13 Jun 2013 16:40:51 +0000 (16:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183913 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
test/MC/ARM/basic-thumb2-instructions.s

index 7fef795b23e41c662555afcdabf701cebc977364..0b3d266db7558c337466dfc8e19fcc2efbd988a5 100644 (file)
@@ -1148,7 +1148,9 @@ void ARMInstPrinter::printT2AddrModeImm8OffsetOperand(const MCInst *MI,
   const MCOperand &MO1 = MI->getOperand(OpNum);
   int32_t OffImm = (int32_t)MO1.getImm();
   O << ", " << markup("<imm:");
-  if (OffImm < 0)
+  if (OffImm == INT32_MIN)
+    O << "#-0";
+  else if (OffImm < 0)
     O << "#-" << -OffImm;
   else
     O << "#" << OffImm;
index 98eb7f243fed112ee3f82c462e1f1fe3f8a084c9..978ec8298de2af4c381f3cfb0f777ffa5ac8387f 100644 (file)
@@ -2616,6 +2616,7 @@ _func:
         strb r9, [r2], #4
         strb r3, [sp], #-4
         strb r4, [r8, #-0]!
+        strb r1, [r0], #-0
 
 @ CHECK: strb  r5, [r5, #-4]           @ encoding: [0x05,0xf8,0x04,0x5c]
 @ CHECK: strb.w        r5, [r6, #32]           @ encoding: [0x86,0xf8,0x20,0x50]
@@ -2629,6 +2630,7 @@ _func:
 @ CHECK: strb  r9, [r2], #4            @ encoding: [0x02,0xf8,0x04,0x9b]
 @ CHECK: strb  r3, [sp], #-4           @ encoding: [0x0d,0xf8,0x04,0x39]
 @ CHECK: strb  r4, [r8, #-0]!          @ encoding: [0x08,0xf8,0x00,0x4d]
+@ CHECK: strb  r1, [r0], #-0           @ encoding: [0x00,0xf8,0x00,0x19]
 
 
 @------------------------------------------------------------------------------