add supprort for the 'sbit' operand, MOVi apparently has one.
authorChris Lattner <sabre@nondot.org>
Tue, 20 Oct 2009 00:46:11 +0000 (00:46 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 20 Oct 2009 00:46:11 +0000 (00:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84577 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
lib/Target/ARM/AsmPrinter/ARMInstPrinter.h

index 446287d1f38399de3d138c34fddbdc97bbb75a20..48f34859c55c6fcab537381c2fccec1e0ba2d90c 100644 (file)
@@ -1392,6 +1392,8 @@ void ARMAsmPrinter::printInstructionThroughMCStreamer(const MachineInstr *MI) {
       // Predicate.
       TmpInst.addOperand(MCOperand::CreateImm(MI->getOperand(2).getImm()));
       TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(3).getReg()));
+
+      TmpInst.addOperand(MCOperand::CreateReg(0));          // cc_out
       printMCInst(&TmpInst);
       O << '\n';
     }
index 65c541472874236354a2d101f9c08f9c6a708a1b..788304ea0c220b0bd9cf9f4b19913a199333aca2 100644 (file)
@@ -186,6 +186,14 @@ void ARMInstPrinter::printPredicateOperand(const MCInst *MI, unsigned OpNum) {
     O << ARMCondCodeToString(CC);
 }
 
+void ARMInstPrinter::printSBitModifierOperand(const MCInst *MI, unsigned OpNum){
+  if (unsigned Reg = MI->getOperand(OpNum).getReg()) {
+    assert(Reg == ARM::CPSR && "Expect ARM CPSR register!");
+    O << 's';
+  }
+}
+
+
 
 void ARMInstPrinter::printCPInstOperand(const MCInst *MI, unsigned OpNum,
                                         const char *Modifier) {
index 332addea921a7140a5ac40423f1e031ca8cb6edb..700e02b221a4aaaaee003b0fbad0ca96c9a5a8df 100644 (file)
@@ -69,7 +69,7 @@ public:
   void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum) {}
   
   void printPredicateOperand(const MCInst *MI, unsigned OpNum);
-  void printSBitModifierOperand(const MCInst *MI, unsigned OpNum) {}
+  void printSBitModifierOperand(const MCInst *MI, unsigned OpNum);
   void printRegisterList(const MCInst *MI, unsigned OpNum);
   void printCPInstOperand(const MCInst *MI, unsigned OpNum,
                           const char *Modifier);