diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-01-29 19:24:12 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-01-29 19:24:12 +0000 |
commit | 6fcbd7e909b9e8bc35d51b58faed52b10e39eb75 (patch) | |
tree | 7b07a7d1a345d0d97976c53d3fe2f46cc0af3dfb /llvm/lib/MC/MCObjectStreamer.cpp | |
parent | ad0e791e0b9e8ec77d8cbd0383b8ebf4caa17ef5 (diff) | |
download | bcm5719-llvm-6fcbd7e909b9e8bc35d51b58faed52b10e39eb75.tar.gz bcm5719-llvm-6fcbd7e909b9e8bc35d51b58faed52b10e39eb75.zip |
[CodeView] Implement .cv_inline_linetable
This support is _very_ rudimentary, just enough to get some basic data
into the CodeView debug section.
Left to do is:
- Use the combined opcodes to save space.
- Do something about code offsets.
llvm-svn: 259230
Diffstat (limited to 'llvm/lib/MC/MCObjectStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCObjectStreamer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp index 71d578aca9d..4f0b597b434 100644 --- a/llvm/lib/MC/MCObjectStreamer.cpp +++ b/llvm/lib/MC/MCObjectStreamer.cpp @@ -384,6 +384,16 @@ void MCObjectStreamer::EmitCVLinetableDirective(unsigned FunctionId, this->MCStreamer::EmitCVLinetableDirective(FunctionId, Begin, End); } +void MCObjectStreamer::EmitCVInlineLinetableDirective( + unsigned PrimaryFunctionId, unsigned SourceFileId, unsigned SourceLineNum, + ArrayRef<unsigned> SecondaryFunctionIds) { + getContext().getCVContext().emitInlineLineTableForFunction( + *this, PrimaryFunctionId, SourceFileId, SourceLineNum, + SecondaryFunctionIds); + this->MCStreamer::EmitCVInlineLinetableDirective( + PrimaryFunctionId, SourceFileId, SourceLineNum, SecondaryFunctionIds); +} + void MCObjectStreamer::EmitCVStringTableDirective() { getContext().getCVContext().emitStringTable(*this); } |