diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-10-19 19:56:26 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-10-19 19:56:26 +0000 | 
| commit | a2907788595fbd2da21fd066c0670af4b08c1215 (patch) | |
| tree | 48878b70d131216002270594cdeb69b0baa8b023 /llvm/lib/Target | |
| parent | 5db7b6a5d40b496e0a0a5eff7ddd49a513dbac3b (diff) | |
| download | bcm5719-llvm-a2907788595fbd2da21fd066c0670af4b08c1215.tar.gz bcm5719-llvm-a2907788595fbd2da21fd066c0670af4b08c1215.zip | |
stub out a minimal ARMInstPrinter.
llvm-svn: 84527
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp | 33 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h | 86 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/CMakeLists.txt | 3 | 
3 files changed, 121 insertions, 1 deletions
| diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp new file mode 100644 index 00000000000..6a3759da6eb --- /dev/null +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp @@ -0,0 +1,33 @@ +//===-- ARMInstPrinter.cpp - Convert ARM MCInst to assembly syntax --------===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This class prints an ARM MCInst to a .s file. +// +//===----------------------------------------------------------------------===// + +#define DEBUG_TYPE "asm-printer" +#include "ARMInstPrinter.h" +#include "llvm/MC/MCInst.h" +//#include "llvm/MC/MCAsmInfo.h" +//#include "llvm/MC/MCExpr.h" +//#include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/FormattedStream.h" +#include "ARMGenInstrNames.inc" +using namespace llvm; + +// Include the auto-generated portion of the assembly writer. +#define MachineInstr MCInst +#define ARMAsmPrinter ARMInstPrinter  // FIXME: REMOVE. +#define NO_ASM_WRITER_BOILERPLATE +#include "ARMGenAsmWriter.inc" +#undef MachineInstr +#undef ARMAsmPrinter + +void ARMInstPrinter::printInst(const MCInst *MI) { printInstruction(MI); } + diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h new file mode 100644 index 00000000000..15ce3b9bc30 --- /dev/null +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h @@ -0,0 +1,86 @@ +//===-- ARMInstPrinter.h - Convert ARM MCInst to assembly syntax ----------===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This class prints an ARM MCInst to a .s file. +// +//===----------------------------------------------------------------------===// + +#ifndef ARMINSTPRINTER_H +#define ARMINSTPRINTER_H + +#include "llvm/MC/MCInstPrinter.h" + +namespace llvm { +  class MCOperand; +   +class ARMInstPrinter : public MCInstPrinter { +public: +  ARMInstPrinter(raw_ostream &O, const MCAsmInfo &MAI) : MCInstPrinter(O, MAI){} + +  virtual void printInst(const MCInst *MI); +   +  // Autogenerated by tblgen. +  void printInstruction(const MCInst *MI); +  static const char *getRegisterName(unsigned RegNo); + + +  void printOperand(const MCInst *MI, unsigned OpNo, +                    const char *Modifier = 0) {} +     +  void printSOImmOperand(const MCInst *MI, unsigned OpNum) {} +  void printSOImm2PartOperand(const MCInst *MI, unsigned OpNum) {} +  void printSORegOperand(const MCInst *MI, unsigned OpNum) {} +  void printAddrMode2Operand(const MCInst *MI, unsigned OpNum) {} +  void printAddrMode2OffsetOperand(const MCInst *MI, unsigned OpNum) {} +  void printAddrMode3Operand(const MCInst *MI, unsigned OpNum) {} +  void printAddrMode3OffsetOperand(const MCInst *MI, unsigned OpNum) {} +  void printAddrMode4Operand(const MCInst *MI, unsigned OpNum, +                             const char *Modifier = 0) {} +  void printAddrMode5Operand(const MCInst *MI, unsigned OpNum, +                             const char *Modifier = 0) {} +  void printAddrMode6Operand(const MCInst *MI, unsigned OpNum) {} +  void printAddrModePCOperand(const MCInst *MI, unsigned OpNum, +                              const char *Modifier = 0) {} +  void printBitfieldInvMaskImmOperand (const MCInst *MI, unsigned OpNum) {} +   +  void printThumbITMask(const MCInst *MI, unsigned OpNum) {} +  void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum) {} +  void printThumbAddrModeRI5Operand(const MCInst *MI, unsigned OpNum, +                                    unsigned Scale) {} +  void printThumbAddrModeS1Operand(const MCInst *MI, unsigned OpNum) {} +  void printThumbAddrModeS2Operand(const MCInst *MI, unsigned OpNum) {} +  void printThumbAddrModeS4Operand(const MCInst *MI, unsigned OpNum) {} +  void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum) {} +   +  void printT2SOOperand(const MCInst *MI, unsigned OpNum) {} +  void printT2AddrModeImm12Operand(const MCInst *MI, unsigned OpNum) {} +  void printT2AddrModeImm8Operand(const MCInst *MI, unsigned OpNum) {} +  void printT2AddrModeImm8s4Operand(const MCInst *MI, unsigned OpNum) {} +  void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum) {} +  void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum) {} +   +  void printPredicateOperand(const MCInst *MI, unsigned OpNum) {} +  void printSBitModifierOperand(const MCInst *MI, unsigned OpNum) {} +  void printPCLabel(const MCInst *MI, unsigned OpNum) {} +  void printRegisterList(const MCInst *MI, unsigned OpNum) {} +  void printCPInstOperand(const MCInst *MI, unsigned OpNum, +                          const char *Modifier) {} +  void printJTBlockOperand(const MCInst *MI, unsigned OpNum) {} +  void printJT2BlockOperand(const MCInst *MI, unsigned OpNum) {} +  void printTBAddrMode(const MCInst *MI, unsigned OpNum) {} +  void printNoHashImmediate(const MCInst *MI, unsigned OpNum) {} +   +   +  // FIXME: +  void PrintSpecial(const MCInst *MI, const char *Kind) {} +}; +   +} + +#endif diff --git a/llvm/lib/Target/ARM/AsmPrinter/CMakeLists.txt b/llvm/lib/Target/ARM/AsmPrinter/CMakeLists.txt index a67fc8471a6..bfa0dc1fcb2 100644 --- a/llvm/lib/Target/ARM/AsmPrinter/CMakeLists.txt +++ b/llvm/lib/Target/ARM/AsmPrinter/CMakeLists.txt @@ -1,6 +1,7 @@  include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )  add_llvm_library(LLVMARMAsmPrinter +  ARMInstPrinter.cpp    ARMAsmPrinter.cpp    ) -add_dependencies(LLVMARMAsmPrinter ARMCodeGenTable_gen)
\ No newline at end of file +add_dependencies(LLVMARMAsmPrinter ARMCodeGenTable_gen) | 

