diff options
author | Shih-wei Liao <sliao@google.com> | 2012-03-17 01:11:12 -0700 |
---|---|---|
committer | Shih-wei Liao <sliao@google.com> | 2012-03-17 01:11:12 -0700 |
commit | 8b8825ac164c2e7cce8b6987cea78cd8b301360d (patch) | |
tree | 7e9bcf2a69a7e098bafffc5bd8c2fafb31eac6aa /include/llvm/MC/MCAssembler.h | |
parent | 06a2e67b00e6a7758c4e19aca02a1e90e9511f65 (diff) | |
download | external_llvm-8b8825ac164c2e7cce8b6987cea78cd8b301360d.zip external_llvm-8b8825ac164c2e7cce8b6987cea78cd8b301360d.tar.gz external_llvm-8b8825ac164c2e7cce8b6987cea78cd8b301360d.tar.bz2 |
Integrated linker.
Change-Id: Iec22c1b717750cb428c61c5319cdd77378e4af1e
Diffstat (limited to 'include/llvm/MC/MCAssembler.h')
-rw-r--r-- | include/llvm/MC/MCAssembler.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/include/llvm/MC/MCAssembler.h b/include/llvm/MC/MCAssembler.h index 2566241..2df94e7 100644 --- a/include/llvm/MC/MCAssembler.h +++ b/include/llvm/MC/MCAssembler.h @@ -21,6 +21,10 @@ #include "llvm/Support/DataTypes.h" #include <vector> // FIXME: Shouldn't be needed. +namespace mcld { +class Layout; +} + namespace llvm { class raw_ostream; class MCAsmLayout; @@ -40,6 +44,7 @@ class MCAsmBackend; class MCFragment : public ilist_node<MCFragment> { friend class MCAsmLayout; + friend class mcld::Layout; MCFragment(const MCFragment&); // DO NOT IMPLEMENT void operator=(const MCFragment&); // DO NOT IMPLEMENT @@ -53,10 +58,13 @@ public: FT_Org, FT_Dwarf, FT_DwarfFrame, - FT_LEB + FT_LEB, + FT_Region, + FT_Reloc, + FT_Target }; -private: +protected: FragmentType Kind; /// Parent - The data for the section this fragment is in. @@ -453,7 +461,7 @@ public: typedef FragmentListType::const_reverse_iterator const_reverse_iterator; typedef FragmentListType::reverse_iterator reverse_iterator; -private: +protected: FragmentListType Fragments; const MCSection *Section; @@ -481,6 +489,7 @@ public: // Only for use as sentinel. MCSectionData(); MCSectionData(const MCSection &Section, MCAssembler *A = 0); + virtual ~MCSectionData() {} const MCSection &getSection() const { return *Section; } @@ -679,7 +688,7 @@ private: MCCodeEmitter &Emitter; - MCObjectWriter &Writer; + MCObjectWriter *m_pWriter; raw_ostream &OS; @@ -807,7 +816,9 @@ public: MCCodeEmitter &getEmitter() const { return Emitter; } - MCObjectWriter &getWriter() const { return Writer; } + MCObjectWriter &getWriter() const { return *m_pWriter; } + + void setWriter(MCObjectWriter &pObjectWriter); /// Finish - Do final processing and write the object to the output stream. /// \arg Writer is used for custom object writer (as the MCJIT does), |