ARM: operands should be explicit when disassembled
authorAmaury de la Vieuville <amaury.dlv@gmail.com>
Wed, 26 Jun 2013 13:39:07 +0000 (13:39 +0000)
committerAmaury de la Vieuville <amaury.dlv@gmail.com>
Wed, 26 Jun 2013 13:39:07 +0000 (13:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184943 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
test/MC/Disassembler/ARM/thumb2.txt

index 8734e441978df249d94db72a4359cfee98b51960..1797c6c381455dc5e2f9148bab2b7177a0dcbd64 100644 (file)
@@ -1176,19 +1176,14 @@ void ARMInstPrinter::printT2AddrModeImm8s4OffsetOperand(const MCInst *MI,
 
   assert(((OffImm & 0x3) == 0) && "Not a valid immediate!");
 
-  // Don't print +0.
-  if (OffImm != 0)
-    O << ", ";
-  if (OffImm != 0 && UseMarkup)
-    O << "<imm:";
+  O << ", " << markup("<imm:");
   if (OffImm == INT32_MIN)
     O << "#-0";
   else if (OffImm < 0)
     O << "#-" << -OffImm;
-  else if (OffImm > 0)
+  else
     O << "#" << OffImm;
-  if (OffImm != 0 && UseMarkup)
-    O << ">";
+  O << markup(">");
 }
 
 void ARMInstPrinter::printT2AddrModeSoRegOperand(const MCInst *MI,
index b2c6fb88fcf69272350ca45060aef5b97c92fefa..110a4c0530e5b03a2675a56f7918bcb47f0bd522 100644 (file)
 # CHECK: ldrd r0, r1, [r2, #-0]!
 # CHECK: ldrd r0, r1, [r2, #0]!
 # CHECK: ldrd r0, r1, [r2, #-0]
+# CHECK: ldrd r1, r1, [r0], #0
 
 0xd6 0xe9 0x06 0x35
 0xf6 0xe9 0x06 0x35
 0x72 0xe9 0x00 0x01
 0xf2 0xe9 0x00 0x01
 0x52 0xe9 0x00 0x01
+0xf0 0xe8 0x00 0x11
 
 
 #------------------------------------------------------------------------------
 #------------------------------------------------------------------------------
 # STRD (immediate)
 #------------------------------------------------------------------------------
+# CHECK: strd r1, r1, [r0], #0
 # CHECK: strd r6, r3, [r5], #-8
 # CHECK: strd r8, r5, [r5], #-0
 # CHECK: strd r7, r4, [r5], #-4
 # CHECK: strd r0, r1, [r2, #0]!
 # CHECK: strd r0, r1, [r2, #-0]
 
+0xe0 0xe8 0x00 0x11
 0x65 0xe8 0x02 0x63
 0x65 0xe8 0x00 0x85
 0x65 0xe8 0x01 0x74