blob: 6804766b28957bd003c6d68859ad284ba2ec1cbb [file] [log] [blame]
Chris Lattnerb1622902010-07-11 22:07:02 +00001//===-- llvm/MC/WinCOFFObjectWriter.cpp -------------------------*- 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// This file contains an implementation of a Win32 COFF object file writer.
11//
12//===----------------------------------------------------------------------===//
13
14#define DEBUG_TYPE "WinCOFFObjectWriter"
15#include "llvm/MC/MCObjectWriter.h"
16#include "llvm/MC/MCValue.h"
17#include "llvm/MC/MCAssembler.h"
18#include "llvm/MC/MCAsmLayout.h"
19using namespace llvm;
20
21namespace {
22
23 class WinCOFFObjectWriter : public MCObjectWriter {
24 public:
25 WinCOFFObjectWriter(raw_ostream &OS);
26
27 // MCObjectWriter interface implementation.
28
29 void ExecutePostLayoutBinding(MCAssembler &Asm);
30
31 void RecordRelocation(const MCAssembler &Asm,
32 const MCAsmLayout &Layout,
33 const MCFragment *Fragment,
34 const MCFixup &Fixup,
35 MCValue Target,
36 uint64_t &FixedValue);
37
38 void WriteObject(const MCAssembler &Asm, const MCAsmLayout &Layout);
39 };
40}
41
42WinCOFFObjectWriter::WinCOFFObjectWriter(raw_ostream &OS)
43 : MCObjectWriter(OS, true) {
44}
45
46////////////////////////////////////////////////////////////////////////////////
47// MCObjectWriter interface implementations
48
49void WinCOFFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm) {
50}
51
52void WinCOFFObjectWriter::RecordRelocation(const MCAssembler &Asm,
53 const MCAsmLayout &Layout,
54 const MCFragment *Fragment,
55 const MCFixup &Fixup,
56 MCValue Target,
57 uint64_t &FixedValue) {
58}
59
60void WinCOFFObjectWriter::WriteObject(const MCAssembler &Asm,
61 const MCAsmLayout &Layout) {
62}
63
64//------------------------------------------------------------------------------
65// WinCOFFObjectWriter factory function
66
67namespace llvm {
68 MCObjectWriter *createWinCOFFObjectWriter(raw_ostream &OS) {
69 return new WinCOFFObjectWriter(OS);
70 }
71}