mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
159ccc8f51
Add support to allow a target specific COFF object writer to restrict the recorded resolutions in the emitted object files. This is motivated by the need in Windows on ARM, where an intermediate relocation needs to be prevented from being emitted in the object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209336 91177308-0d34-0410-b5e6-96231b3b80d8
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
//===-- llvm/MC/MCWinCOFFObjectWriter.h - Win COFF Object Writer *- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H
|
|
#define LLVM_MC_MCWINCOFFOBJECTWRITER_H
|
|
|
|
namespace llvm {
|
|
class MCFixup;
|
|
class MCObjectWriter;
|
|
class MCValue;
|
|
class raw_ostream;
|
|
|
|
class MCWinCOFFObjectTargetWriter {
|
|
virtual void anchor();
|
|
const unsigned Machine;
|
|
|
|
protected:
|
|
MCWinCOFFObjectTargetWriter(unsigned Machine_);
|
|
|
|
public:
|
|
virtual ~MCWinCOFFObjectTargetWriter() {}
|
|
|
|
unsigned getMachine() const { return Machine; }
|
|
virtual unsigned getRelocType(const MCValue &Target,
|
|
const MCFixup &Fixup,
|
|
bool IsCrossSection) const = 0;
|
|
virtual bool recordRelocation(const MCFixup &) const { return true; }
|
|
};
|
|
|
|
/// \brief Construct a new Win COFF writer instance.
|
|
///
|
|
/// \param MOTW - The target specific WinCOFF writer subclass.
|
|
/// \param OS - The stream to write to.
|
|
/// \returns The constructed object writer.
|
|
MCObjectWriter *createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
|
|
raw_ostream &OS);
|
|
} // End llvm namespace
|
|
|
|
#endif
|