1*750ecec7SAkira Hatanaka //===-- MipsMCCodeEmitter.cpp - Convert Mips code to machine code ---------===// 2*750ecec7SAkira Hatanaka // 3*750ecec7SAkira Hatanaka // The LLVM Compiler Infrastructure 4*750ecec7SAkira Hatanaka // 5*750ecec7SAkira Hatanaka // This file is distributed under the University of Illinois Open Source 6*750ecec7SAkira Hatanaka // License. See LICENSE.TXT for details. 7*750ecec7SAkira Hatanaka // 8*750ecec7SAkira Hatanaka //===----------------------------------------------------------------------===// 9*750ecec7SAkira Hatanaka // 10*750ecec7SAkira Hatanaka // This file implements the MipsMCCodeEmitter class. 11*750ecec7SAkira Hatanaka // 12*750ecec7SAkira Hatanaka //===----------------------------------------------------------------------===// 13*750ecec7SAkira Hatanaka // 14*750ecec7SAkira Hatanaka #define DEBUG_TYPE "mccodeemitter" 15*750ecec7SAkira Hatanaka #include "llvm/MC/MCCodeEmitter.h" 16*750ecec7SAkira Hatanaka #include "llvm/MC/MCExpr.h" 17*750ecec7SAkira Hatanaka #include "llvm/MC/MCInst.h" 18*750ecec7SAkira Hatanaka #include "llvm/MC/MCInstrInfo.h" 19*750ecec7SAkira Hatanaka #include "llvm/MC/MCRegisterInfo.h" 20*750ecec7SAkira Hatanaka #include "llvm/MC/MCSubtargetInfo.h" 21*750ecec7SAkira Hatanaka #include "llvm/ADT/APFloat.h" 22*750ecec7SAkira Hatanaka #include "llvm/ADT/Statistic.h" 23*750ecec7SAkira Hatanaka #include "llvm/Support/raw_ostream.h" 24*750ecec7SAkira Hatanaka #include "MCTargetDesc/MipsMCTargetDesc.h" 25*750ecec7SAkira Hatanaka 26*750ecec7SAkira Hatanaka using namespace llvm; 27*750ecec7SAkira Hatanaka 28*750ecec7SAkira Hatanaka namespace { 29*750ecec7SAkira Hatanaka class MipsMCCodeEmitter : public MCCodeEmitter { 30*750ecec7SAkira Hatanaka MipsMCCodeEmitter(const MipsMCCodeEmitter &); // DO NOT IMPLEMENT 31*750ecec7SAkira Hatanaka void operator=(const MipsMCCodeEmitter &); // DO NOT IMPLEMENT 32*750ecec7SAkira Hatanaka const MCInstrInfo &MCII; 33*750ecec7SAkira Hatanaka const MCSubtargetInfo &STI; 34*750ecec7SAkira Hatanaka 35*750ecec7SAkira Hatanaka public: 36*750ecec7SAkira Hatanaka MipsMCCodeEmitter(const MCInstrInfo &mcii, const MCSubtargetInfo &sti, 37*750ecec7SAkira Hatanaka MCContext &ctx) 38*750ecec7SAkira Hatanaka : MCII(mcii), STI(sti) {} 39*750ecec7SAkira Hatanaka 40*750ecec7SAkira Hatanaka ~MipsMCCodeEmitter() {} 41*750ecec7SAkira Hatanaka 42*750ecec7SAkira Hatanaka void EncodeInstruction(const MCInst &MI, raw_ostream &OS, 43*750ecec7SAkira Hatanaka SmallVectorImpl<MCFixup> &Fixups) const { 44*750ecec7SAkira Hatanaka } 45*750ecec7SAkira Hatanaka }; // class MipsMCCodeEmitter 46*750ecec7SAkira Hatanaka } // namespace 47*750ecec7SAkira Hatanaka 48*750ecec7SAkira Hatanaka MCCodeEmitter *llvm::createMipsMCCodeEmitter(const MCInstrInfo &MCII, 49*750ecec7SAkira Hatanaka const MCSubtargetInfo &STI, 50*750ecec7SAkira Hatanaka MCContext &Ctx) { 51*750ecec7SAkira Hatanaka return new MipsMCCodeEmitter(MCII, STI, Ctx); 52*750ecec7SAkira Hatanaka } 53