[PATCH] ARM: operands should be explicit when disassembled

Amaury de la Vieuville amaury.dlv at gmail.com
Fri Jun 21 08:36:51 PDT 2013


Hi rengolin, t.p.northover,

http://llvm-reviews.chandlerc.com/D1019

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

Index: lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
===================================================================
--- lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
+++ lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
@@ -1185,19 +1185,14 @@
 
   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: test/MC/Disassembler/ARM/thumb2.txt
===================================================================
--- test/MC/Disassembler/ARM/thumb2.txt
+++ test/MC/Disassembler/ARM/thumb2.txt
@@ -683,6 +683,7 @@
 # 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
@@ -694,6 +695,7 @@
 0x72 0xe9 0x00 0x01
 0xf2 0xe9 0x00 0x01
 0x52 0xe9 0x00 0x01
+0xf0 0xe8 0x00 0x11
 
 
 #------------------------------------------------------------------------------
@@ -1904,13 +1906,15 @@
 #------------------------------------------------------------------------------
 # 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]!
 # CHECK: strd r0, r1, [r2, #-0]
 
+0xe0 0xe8 0x00 0x11
 0x65 0xe8 0x02 0x63
 0x65 0xe8 0x00 0x85
 0x65 0xe8 0x01 0x74
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1019.1.patch
Type: text/x-patch
Size: 1848 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130621/8e6f29c3/attachment.bin>


More information about the llvm-commits mailing list