Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.3 KiB

  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. #ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H
  10. #define LLVM_MC_MCWINCOFFOBJECTWRITER_H
  11. namespace llvm {
  12. class MCFixup;
  13. class MCObjectWriter;
  14. class MCValue;
  15. class raw_ostream;
  16. class MCWinCOFFObjectTargetWriter {
  17. const unsigned Machine;
  18. protected:
  19. MCWinCOFFObjectTargetWriter(unsigned Machine_);
  20. public:
  21. virtual ~MCWinCOFFObjectTargetWriter() {}
  22. unsigned getMachine() const { return Machine; }
  23. virtual unsigned getRelocType(const MCValue &Target,
  24. const MCFixup &Fixup,
  25. bool IsCrossSection) const = 0;
  26. };
  27. /// \brief Construct a new Win COFF writer instance.
  28. ///
  29. /// \param MOTW - The target specific WinCOFF writer subclass.
  30. /// \param OS - The stream to write to.
  31. /// \returns The constructed object writer.
  32. MCObjectWriter *createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
  33. raw_ostream &OS);
  34. } // End llvm namespace
  35. #endif