aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-10-20 00:42:49 +0000
committerChris Lattner <sabre@nondot.org>2009-10-20 00:42:49 +0000
commit19c52201bdeba6537a1ec642f694da3b34f46a81 (patch)
tree4b31c45ab75b35c4ddd258baeed909837ce7f888 /llvm/lib
parent2f69ed8f4cdcf20b39a7972c986975bdd58e7af6 (diff)
downloadllvm-19c52201bdeba6537a1ec642f694da3b34f46a81.zip
llvm-19c52201bdeba6537a1ec642f694da3b34f46a81.tar.gz
llvm-19c52201bdeba6537a1ec642f694da3b34f46a81.tar.bz2
add support for instruction predicates.
llvm-svn: 84575
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp9
-rw-r--r--llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h2
2 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
index abb0399..65c5414 100644
--- a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
@@ -12,14 +12,13 @@
//===----------------------------------------------------------------------===//
#define DEBUG_TYPE "asm-printer"
+#include "ARM.h" // FIXME: FACTOR ENUMS BETTER.
#include "ARMInstPrinter.h"
#include "ARMAddressingModes.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/Support/raw_ostream.h"
-#include "ARMGenInstrNames.inc"
-#include "ARMGenRegisterNames.inc"
using namespace llvm;
// Include the auto-generated portion of the assembly writer.
@@ -181,6 +180,12 @@ void ARMInstPrinter::printRegisterList(const MCInst *MI, unsigned OpNum) {
O << "}";
}
+void ARMInstPrinter::printPredicateOperand(const MCInst *MI, unsigned OpNum) {
+ ARMCC::CondCodes CC = (ARMCC::CondCodes)MI->getOperand(OpNum).getImm();
+ if (CC != ARMCC::AL)
+ O << ARMCondCodeToString(CC);
+}
+
void ARMInstPrinter::printCPInstOperand(const MCInst *MI, unsigned OpNum,
const char *Modifier) {
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
index 99388e0..332adde 100644
--- a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
@@ -68,7 +68,7 @@ public:
void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum) {}
void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum) {}
- void printPredicateOperand(const MCInst *MI, unsigned OpNum) {}
+ void printPredicateOperand(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,