summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-01-27 17:20:25 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-01-27 17:20:25 +0000
commit0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6 (patch)
treeb25dec392a84f045a48e0d1d78c511cc7f0fa908 /include
parentbb0bb73da142c765506e2bcd18d68edbfb4e98e0 (diff)
downloadllvm-0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6.tar.gz
llvm-0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6.tar.bz2
llvm-0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6.tar.xz
MC: Add support for .cfi_startproc simple
This commit allows LLVM MC to process .cfi_startproc directives when they are followed by an additional `simple' identifier. This signals to elide the emission of target specific CFI instructions that would normally occur initially. This fixes PR16587. Differential Revision: http://llvm-reviews.chandlerc.com/D2624 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200227 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/MC/MCDwarf.h3
-rw-r--r--include/llvm/MC/MCStreamer.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/include/llvm/MC/MCDwarf.h b/include/llvm/MC/MCDwarf.h
index 65b920bf23..fd59280f67 100644
--- a/include/llvm/MC/MCDwarf.h
+++ b/include/llvm/MC/MCDwarf.h
@@ -438,7 +438,7 @@ struct MCDwarfFrameInfo {
MCDwarfFrameInfo()
: Begin(0), End(0), Personality(0), Lsda(0), Function(0), Instructions(),
PersonalityEncoding(), LsdaEncoding(0), CompactUnwindEncoding(0),
- IsSignalFrame(false) {}
+ IsSignalFrame(false), IsSimple(false) {}
MCSymbol *Begin;
MCSymbol *End;
const MCSymbol *Personality;
@@ -449,6 +449,7 @@ struct MCDwarfFrameInfo {
unsigned LsdaEncoding;
uint32_t CompactUnwindEncoding;
bool IsSignalFrame;
+ bool IsSimple;
};
class MCDwarfFrameEmitter {
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index 4055d2b1d6..9a4bafe3cd 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -626,7 +626,7 @@ public:
virtual void EmitCompactUnwindEncoding(uint32_t CompactUnwindEncoding);
virtual void EmitCFISections(bool EH, bool Debug);
- void EmitCFIStartProc();
+ void EmitCFIStartProc(bool IsSimple);
void EmitCFIEndProc();
virtual void EmitCFIDefCfa(int64_t Register, int64_t Offset);
virtual void EmitCFIDefCfaOffset(int64_t Offset);