MC/AsmParser: Move .section parsing to Darwin specific parser.
[oota-llvm.git] / lib / MC / WinCOFFObjectWriter.cpp
1 //===-- 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"
19 using namespace llvm;
20
21 namespace {
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
42 WinCOFFObjectWriter::WinCOFFObjectWriter(raw_ostream &OS)
43                                 : MCObjectWriter(OS, true) {
44 }
45
46 ////////////////////////////////////////////////////////////////////////////////
47 // MCObjectWriter interface implementations
48
49 void WinCOFFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm) {
50 }
51
52 void 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
60 void WinCOFFObjectWriter::WriteObject(const MCAssembler &Asm,
61                                       const MCAsmLayout &Layout) {
62 }
63
64 //------------------------------------------------------------------------------
65 // WinCOFFObjectWriter factory function
66
67 namespace llvm {
68   MCObjectWriter *createWinCOFFObjectWriter(raw_ostream &OS) {
69     return new WinCOFFObjectWriter(OS);
70   }
71 }