aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/MC/MCObjectStreamer.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/MC/MCObjectStreamer.h')
-rw-r--r--include/llvm/MC/MCObjectStreamer.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/include/llvm/MC/MCObjectStreamer.h b/include/llvm/MC/MCObjectStreamer.h
index 9fe2fda21353..d7775f27868c 100644
--- a/include/llvm/MC/MCObjectStreamer.h
+++ b/include/llvm/MC/MCObjectStreamer.h
@@ -59,7 +59,6 @@ public:
void EmitFrames(MCAsmBackend *MAB);
void EmitCFISections(bool EH, bool Debug) override;
-protected:
MCFragment *getCurrentFragment() const;
void insert(MCFragment *F) {
@@ -73,6 +72,7 @@ protected:
/// fragment is not a data fragment.
MCDataFragment *getOrCreateDataFragment();
+protected:
bool changeSectionImpl(MCSection *Section, const MCExpr *Subsection);
/// If any labels have been emitted but not assigned fragments, ensure that
@@ -122,11 +122,31 @@ public:
unsigned PointerSize);
void EmitDwarfAdvanceFrameAddr(const MCSymbol *LastLabel,
const MCSymbol *Label);
+ void EmitCVLocDirective(unsigned FunctionId, unsigned FileNo, unsigned Line,
+ unsigned Column, bool PrologueEnd, bool IsStmt,
+ StringRef FileName) override;
+ void EmitCVLinetableDirective(unsigned FunctionId, const MCSymbol *Begin,
+ const MCSymbol *End) override;
+ void EmitCVInlineLinetableDirective(
+ unsigned PrimaryFunctionId, unsigned SourceFileId, unsigned SourceLineNum,
+ const MCSymbol *FnStartSym, const MCSymbol *FnEndSym,
+ ArrayRef<unsigned> SecondaryFunctionIds) override;
+ void EmitCVDefRangeDirective(
+ ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges,
+ StringRef FixedSizePortion) override;
+ void EmitCVStringTableDirective() override;
+ void EmitCVFileChecksumsDirective() override;
void EmitGPRel32Value(const MCExpr *Value) override;
void EmitGPRel64Value(const MCExpr *Value) override;
bool EmitRelocDirective(const MCExpr &Offset, StringRef Name,
const MCExpr *Expr, SMLoc Loc) override;
- void EmitFill(uint64_t NumBytes, uint8_t FillValue) override;
+ using MCStreamer::emitFill;
+ void emitFill(uint64_t NumBytes, uint8_t FillValue) override;
+ void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
+ SMLoc Loc = SMLoc()) override;
+ void emitFill(const MCExpr &NumValues, int64_t Size, int64_t Expr,
+ SMLoc Loc = SMLoc()) override;
+
void FinishImpl() override;
/// Emit the absolute difference between two symbols if possible.