Index: lib/MC/MCAsmStreamer.cpp
===================================================================
--- lib/MC/MCAsmStreamer.cpp	(revision 131411)
+++ lib/MC/MCAsmStreamer.cpp	(working copy)
@@ -208,6 +208,14 @@
   virtual void EmitCFIRelOffset(int64_t Register, int64_t Offset);
   virtual void EmitCFIAdjustCfaOffset(int64_t Adjustment);
 
+  virtual void EmitWin64EHFrame(MCSymbol *Symbol, MCSymbol *EHandler = 0);
+  virtual void EmitWin64EHPushReg(int64_t Register);
+  virtual void EmitWin64EHSetFrame(int64_t Register, int64_t Offset);
+  virtual void EmitWin64EHAllocStack(int64_t Size);
+  virtual void EmitWin64EHSaveReg(int64_t Register, int64_t Offset);
+  virtual void EmitWin64EHPushFrame(bool Code);
+  virtual void EmitWin64EHEndProlog(void);
+
   virtual void EmitFnStart();
   virtual void EmitFnEnd();
   virtual void EmitCantUnwind();
@@ -915,6 +923,66 @@
   EmitEOL();
 }
 
+void MCAsmStreamer::EmitWin64EHFrame(MCSymbol *Symbol, MCSymbol *EHandler)
+{
+  //MCStreamer::EmitWin64EHFrame(Symbol, EHandler);
+
+  OS << ".frame " << *Symbol;
+  if (EHandler)
+    OS << ", " << *EHandler;
+  EmitEOL();
+}
+
+void MCAsmStreamer::EmitWin64EHPushReg(int64_t Register)
+{
+  //MCStreamer::EmitWin64EHPushReg(Register);
+
+  OS << "\t.pushreg " << Register;
+  EmitEOL();
+}
+
+void MCAsmStreamer::EmitWin64EHSetFrame(int64_t Register, int64_t Offset)
+{
+  //MCStreamer::EmitWin64EHSetFrame(Register, Offset);
+
+  OS << "\t.setframe " << Register << ", " << Offset;
+  EmitEOL();
+}
+
+void MCAsmStreamer::EmitWin64EHAllocStack(int64_t Size)
+{
+  //MCStremaer::EmitWin64EHAllocStack(Size);
+
+  OS << "\t.allocstack " << Size;
+  EmitEOL();
+}
+
+void MCAsmStreamer::EmitWin64EHSaveReg(int64_t Register, int64_t Offset)
+{
+  //MCStreamer::EmitWin64EHSaveReg(Register, Offset)
+
+  OS << "\t.savereg " << Register << ", " << Offset;
+  EmitEOL();
+}
+
+void MCAsmStreamer::EmitWin64EHPushFrame(bool Code)
+{
+  //MCStreamer::EmitWin64EHPushFrame(Code);
+
+  OS << "\t.pushframe";
+  if (Code)
+    OS << " " << "code";
+  EmitEOL();
+}
+
+void MCAsmStreamer::EmitWin64EHEndProlog(void)
+{
+  //MCStreamer::EmitWin64EHEndProlog();
+
+  OS << "\t.endprolog";
+  EmitEOL();
+}
+
 void MCAsmStreamer::AddEncodingComment(const MCInst &Inst) {
   raw_ostream &OS = GetCommentOS();
   SmallString<256> Code;
