MCWinCOFFObjectWriter.h revision 263508
190075Sobrien//===-- llvm/MC/MCWinCOFFObjectWriter.h - Win COFF Object Writer *- C++ -*-===// 290075Sobrien// 3132718Skan// The LLVM Compiler Infrastructure 490075Sobrien// 590075Sobrien// This file is distributed under the University of Illinois Open Source 6132718Skan// License. See LICENSE.TXT for details. 790075Sobrien// 8132718Skan//===----------------------------------------------------------------------===// 9132718Skan 10132718Skan#ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H 11132718Skan#define LLVM_MC_MCWINCOFFOBJECTWRITER_H 1290075Sobrien 13132718Skannamespace llvm { 14132718Skan class MCFixup; 15132718Skan class MCObjectWriter; 16132718Skan class MCValue; 1790075Sobrien class raw_ostream; 18132718Skan 19132718Skan class MCWinCOFFObjectTargetWriter { 20132718Skan virtual void anchor(); 21132718Skan const unsigned Machine; 2290075Sobrien 2390075Sobrien protected: 2490075Sobrien MCWinCOFFObjectTargetWriter(unsigned Machine_); 2590075Sobrien 2690075Sobrien public: 2790075Sobrien virtual ~MCWinCOFFObjectTargetWriter() {} 2890075Sobrien 2990075Sobrien unsigned getMachine() const { return Machine; } 3090075Sobrien virtual unsigned getRelocType(const MCValue &Target, 3190075Sobrien const MCFixup &Fixup, 3290075Sobrien bool IsCrossSection) const = 0; 3390075Sobrien }; 3490075Sobrien 3590075Sobrien /// \brief Construct a new Win COFF writer instance. 3690075Sobrien /// 3790075Sobrien /// \param MOTW - The target specific WinCOFF writer subclass. 3890075Sobrien /// \param OS - The stream to write to. 3990075Sobrien /// \returns The constructed object writer. 4090075Sobrien MCObjectWriter *createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW, 4190075Sobrien raw_ostream &OS); 4290075Sobrien} // End llvm namespace 4390075Sobrien 4490075Sobrien#endif 4590075Sobrien