Implement the EndProlog Win64 EH method on the base MCStreamer.

llvm-svn: 131679
This commit is contained in:
Charles Davis 2011-05-19 21:24:54 +00:00
parent 8b76e01c4b
commit de745ba396
2 changed files with 7 additions and 5 deletions

View File

@ -59,15 +59,15 @@ namespace llvm {
struct MCWin64EHUnwindInfo {
MCWin64EHUnwindInfo() : Begin(0), End(0), ExceptionHandler(0),
Function(0), UnwindOnly(false),
PrologSize(0), LastFrameInst(-1), ChainedParent(0),
Function(0), PrologEnd(0), UnwindOnly(false),
LastFrameInst(-1), ChainedParent(0),
Instructions() {}
MCSymbol *Begin;
MCSymbol *End;
const MCSymbol *ExceptionHandler;
const MCSymbol *Function;
MCSymbol *PrologEnd;
bool UnwindOnly;
unsigned PrologSize;
int LastFrameInst;
MCWin64EHUnwindInfo *ChainedParent;
std::vector<MCWin64EHInstruction> Instructions;

View File

@ -425,8 +425,10 @@ void MCStreamer::EmitWin64EHPushFrame(bool Code) {
}
void MCStreamer::EmitWin64EHEndProlog() {
errs() << "Not implemented yet\n";
abort();
EnsureValidW64UnwindInfo();
MCWin64EHUnwindInfo *CurFrame = CurrentW64UnwindInfo;
CurFrame->PrologEnd = getContext().CreateTempSymbol();
EmitLabel(CurFrame->PrologEnd);
}
void MCStreamer::EmitFnStart() {