aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-11-14 20:02:39 +0000
committerChris Lattner <sabre@nondot.org>2010-11-14 20:02:39 +0000
commit0d1b7d9e3dd8512b47655af7d8ea738ea1d4ac51 (patch)
treed8c5b46f9497a3469b213e0e536f8823334f1651 /lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
parent293ef9ae0fd533429dc54d94c895c39a564466f7 (diff)
downloadexternal_llvm-0d1b7d9e3dd8512b47655af7d8ea738ea1d4ac51.zip
external_llvm-0d1b7d9e3dd8512b47655af7d8ea738ea1d4ac51.tar.gz
external_llvm-0d1b7d9e3dd8512b47655af7d8ea738ea1d4ac51.tar.bz2
Implement support for printing register and immediate operands,
add support for darwin vs aix syntax. We now can print instructions like this: add r3, r3, r4 blr and (in aix mode): add 3, 3, 4 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119062 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h')
-rw-r--r--lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h b/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
index 1c59e5f..8176a1b 100644
--- a/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
+++ b/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
@@ -20,8 +20,15 @@ namespace llvm {
class MCOperand;
class PPCInstPrinter : public MCInstPrinter {
+ // 0 -> AIX, 1 -> Darwin.
+ unsigned SyntaxVariant;
public:
- PPCInstPrinter(const MCAsmInfo &MAI) : MCInstPrinter(MAI) {}
+ PPCInstPrinter(const MCAsmInfo &MAI, unsigned syntaxVariant)
+ : MCInstPrinter(MAI), SyntaxVariant(syntaxVariant) {}
+
+ bool isDarwinSyntax() const {
+ return SyntaxVariant == 1;
+ }
virtual void printInst(const MCInst *MI, raw_ostream &O);
virtual StringRef getOpcodeName(unsigned Opcode) const;
@@ -33,7 +40,7 @@ public:
static const char *getRegisterName(unsigned RegNo);
- void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O) {}
+ void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
void printPredicateOperand(const MCInst *MI, unsigned OpNo,
raw_ostream &O, const char *Modifier) {}