diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-14 20:02:39 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-14 20:02:39 +0000 |
commit | 0d1b7d9e3dd8512b47655af7d8ea738ea1d4ac51 (patch) | |
tree | d8c5b46f9497a3469b213e0e536f8823334f1651 /lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h | |
parent | 293ef9ae0fd533429dc54d94c895c39a564466f7 (diff) | |
download | external_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.h | 11 |
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) {} |