#ifndef LLVM_MC_MCCODEEMITTER_H
#define LLVM_MC_MCCODEEMITTER_H
#include "llvm/Support/Compiler.h"
namespace llvm {
class MCFixup;
class MCInst;
class MCSubtargetInfo;
class raw_ostream;
template<typename T> class SmallVectorImpl;
class MCCodeEmitter {
private:
MCCodeEmitter(const MCCodeEmitter &) LLVM_DELETED_FUNCTION;
void operator=(const MCCodeEmitter &) LLVM_DELETED_FUNCTION;
protected: MCCodeEmitter();
public:
virtual ~MCCodeEmitter();
virtual void reset() { }
virtual void EncodeInstruction(const MCInst &Inst, raw_ostream &OS,
SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const = 0;
};
}
#endif