Simplify the handling of .cfi_endproc.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211651 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2014-06-25 00:13:59 +00:00
parent a68a4f0fd5
commit 49b52b35d4
6 changed files with 9 additions and 26 deletions

View File

@ -201,9 +201,7 @@ protected:
const MCExpr *ForceExpAbs(const MCExpr *Expr);
void RecordProcStart(MCDwarfFrameInfo &Frame);
virtual void EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame);
void RecordProcEnd(MCDwarfFrameInfo &Frame);
virtual void EmitCFIEndProcImpl(MCDwarfFrameInfo &CurFrame);
MCWin64EHUnwindInfo *getCurrentW64UnwindInfo() {

View File

@ -710,9 +710,6 @@ namespace {
unsigned char Value) override { return false; }
void EmitFileDirective(StringRef Filename) override {}
void FinishImpl() override {}
void EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) override {
RecordProcEnd(Frame);
}
};
} // end anonymous namespace

View File

@ -935,10 +935,7 @@ void MCAsmStreamer::EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) {
}
void MCAsmStreamer::EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) {
// Put a dummy non-null value in Frame.End to mark that this frame has been
// closed.
Frame.End = (MCSymbol *) 1;
MCStreamer::EmitCFIEndProcImpl(Frame);
OS << "\t.cfi_endproc";
EmitEOL();
}

View File

@ -81,10 +81,6 @@ namespace {
void EmitBundleUnlock() override {}
void FinishImpl() override {}
void EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) override {
RecordProcEnd(Frame);
}
};
}

View File

@ -136,11 +136,14 @@ void MCObjectStreamer::EmitValueImpl(const MCExpr *Value, unsigned Size,
}
void MCObjectStreamer::EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) {
RecordProcStart(Frame);
// We need to create a local symbol to avoid relocations.
Frame.Begin = getContext().CreateTempSymbol();
EmitLabel(Frame.Begin);
}
void MCObjectStreamer::EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) {
RecordProcEnd(Frame);
Frame.End = getContext().CreateTempSymbol();
EmitLabel(Frame.End);
}
void MCObjectStreamer::EmitLabel(MCSymbol *Symbol) {

View File

@ -264,12 +264,6 @@ void MCStreamer::EmitCFIStartProc(bool IsSimple) {
void MCStreamer::EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) {
}
void MCStreamer::RecordProcStart(MCDwarfFrameInfo &Frame) {
// We need to create a local symbol to avoid relocations.
Frame.Begin = getContext().CreateTempSymbol();
EmitLabel(Frame.Begin);
}
void MCStreamer::EmitCFIEndProc() {
EnsureValidFrame();
MCDwarfFrameInfo *CurFrame = getCurrentFrameInfo();
@ -277,11 +271,9 @@ void MCStreamer::EmitCFIEndProc() {
}
void MCStreamer::EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) {
}
void MCStreamer::RecordProcEnd(MCDwarfFrameInfo &Frame) {
Frame.End = getContext().CreateTempSymbol();
EmitLabel(Frame.End);
// Put a dummy non-null value in Frame.End to mark that this frame has been
// closed.
Frame.End = (MCSymbol *) 1;
}
MCSymbol *MCStreamer::EmitCFICommon() {