OLD | NEW |
1 //===- MCELFStreamer.h - MCStreamer ELF Object File Interface ---*- C++ -*-===// | 1 //===- MCELFStreamer.h - MCStreamer ELF Object File Interface ---*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 | 9 |
10 #ifndef LLVM_MC_MCELFSTREAMER_H | 10 #ifndef LLVM_MC_MCELFSTREAMER_H |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 void EmitBundleAlignMode(unsigned AlignPow2) override; | 93 void EmitBundleAlignMode(unsigned AlignPow2) override; |
94 void EmitBundleLock(bool AlignToEnd) override; | 94 void EmitBundleLock(bool AlignToEnd) override; |
95 void EmitBundleUnlock() override; | 95 void EmitBundleUnlock() override; |
96 | 96 |
97 private: | 97 private: |
98 void EmitInstToFragment(const MCInst &Inst, const MCSubtargetInfo &) override; | 98 void EmitInstToFragment(const MCInst &Inst, const MCSubtargetInfo &) override; |
99 void EmitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override; | 99 void EmitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override; |
100 | 100 |
101 void fixSymbolsInTLSFixups(const MCExpr *expr); | 101 void fixSymbolsInTLSFixups(const MCExpr *expr); |
102 | 102 |
| 103 /// \brief Merge the content of the fragment \p EF into the fragment \p DF. |
| 104 void mergeFragment(MCDataFragment *, MCEncodedFragmentWithFixups *); |
| 105 |
103 bool SeenIdent; | 106 bool SeenIdent; |
104 | 107 |
105 struct LocalCommon { | 108 struct LocalCommon { |
106 MCSymbolData *SD; | 109 MCSymbolData *SD; |
107 uint64_t Size; | 110 uint64_t Size; |
108 unsigned ByteAlignment; | 111 unsigned ByteAlignment; |
109 }; | 112 }; |
110 | 113 |
111 std::vector<LocalCommon> LocalCommons; | 114 std::vector<LocalCommon> LocalCommons; |
112 | 115 |
113 SmallPtrSet<MCSymbol *, 16> BindingExplicitlySet; | 116 SmallPtrSet<MCSymbol *, 16> BindingExplicitlySet; |
| 117 |
| 118 /// BundleGroups - The stack of fragments holding the bundle-locked |
| 119 /// instructions. |
| 120 llvm::SmallVector<MCDataFragment *, 4> BundleGroups; |
114 }; | 121 }; |
115 | 122 |
116 MCELFStreamer *createARMELFStreamer(MCContext &Context, MCAsmBackend &TAB, | 123 MCELFStreamer *createARMELFStreamer(MCContext &Context, MCAsmBackend &TAB, |
117 raw_ostream &OS, MCCodeEmitter *Emitter, | 124 raw_ostream &OS, MCCodeEmitter *Emitter, |
118 bool RelaxAll, bool IsThumb); | 125 bool RelaxAll, bool IsThumb); |
119 | 126 |
120 } // end namespace llvm | 127 } // end namespace llvm |
121 | 128 |
122 #endif | 129 #endif |
OLD | NEW |