MSP430InstPrinter.h revision 31d157ae1ac2cd9c787dc3c1d28e64c682803844
131d157ae1ac2cd9c787dc3c1d28e64c682803844Jia Liu//= MSP430InstPrinter.h - Convert MSP430 MCInst to assembly syntax -*- C++ -*-// 2d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// 3d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// The LLVM Compiler Infrastructure 4d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// 5d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// This file is distributed under the University of Illinois Open Source 6d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// License. See LICENSE.TXT for details. 7d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// 8d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky//===----------------------------------------------------------------------===// 9d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// 10d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// This class prints a MSP430 MCInst to a .s file. 11d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky// 12d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky//===----------------------------------------------------------------------===// 13d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 14d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky#ifndef MSP430INSTPRINTER_H 15d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky#define MSP430INSTPRINTER_H 16d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 17d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky#include "llvm/MC/MCInstPrinter.h" 18d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 19d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewyckynamespace llvm { 20d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky class MCOperand; 21d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 22d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky class MSP430InstPrinter : public MCInstPrinter { 23d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky public: 24b262799d49891b036daa00eddf51947487346c98Evan Cheng MSP430InstPrinter(const MCAsmInfo &MAI) 25b950585cc5a0d665e9accfe5ce490cd269756f2eJames Molloy : MCInstPrinter(MAI) {} 26d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 2798c5ddabca1debf935a07d14d0cbc9732374bdb8Owen Anderson virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot); 28d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 29d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky // Autogenerated by tblgen. 30d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky void printInstruction(const MCInst *MI, raw_ostream &O); 31d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky static const char *getRegisterName(unsigned RegNo); 32d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 33d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O, 34d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky const char *Modifier = 0); 35d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky void printPCRelImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O); 36d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky void printSrcMemOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O, 37d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky const char *Modifier = 0); 38d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky void printCCOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O); 39d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 40d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky }; 41d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky} 42d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky 43d0669493b8d42544a94bddcd94d635e0701f6415Nick Lewycky#endif 44