MCWinCOFFObjectWriter.h revision 5a364c5561ec04e33a6f5d52c14f1bac6f247ea0
1//===-- llvm/MC/MCWinCOFFObjectWriter.h - Win COFF Object Writer *- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H 11#define LLVM_MC_MCWINCOFFOBJECTWRITER_H 12 13namespace llvm { 14 class MCFixup; 15 class MCObjectWriter; 16 class MCValue; 17 class raw_ostream; 18 19 class MCWinCOFFObjectTargetWriter { 20 const unsigned Machine; 21 22 virtual void anchor(); 23 24 protected: 25 MCWinCOFFObjectTargetWriter(unsigned Machine_); 26 27 public: 28 virtual ~MCWinCOFFObjectTargetWriter() {} 29 30 unsigned getMachine() const { return Machine; } 31 virtual unsigned getRelocType(const MCValue &Target, 32 const MCFixup &Fixup, 33 bool IsCrossSection) const = 0; 34 }; 35 36 /// \brief Construct a new Win COFF writer instance. 37 /// 38 /// \param MOTW - The target specific WinCOFF writer subclass. 39 /// \param OS - The stream to write to. 40 /// \returns The constructed object writer. 41 MCObjectWriter *createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW, 42 raw_ostream &OS); 43} // End llvm namespace 44 45#endif 46