Index: include/llvm/MC/MCStreamer.h =================================================================== --- include/llvm/MC/MCStreamer.h +++ include/llvm/MC/MCStreamer.h @@ -682,6 +682,7 @@ virtual void EmitWinEHHandler(const MCSymbol *Sym, bool Unwind, bool Except); virtual void EmitWinEHHandlerData(); + virtual void EmitSyntaxDirective(); /// \brief Emit the given \p Instruction into the current section. virtual void EmitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI); Index: lib/MC/MCAsmStreamer.cpp =================================================================== --- lib/MC/MCAsmStreamer.cpp +++ lib/MC/MCAsmStreamer.cpp @@ -78,6 +78,7 @@ } EmitCommentsAndEOL(); } + virtual void EmitSyntaxDirective(); void EmitCommentsAndEOL(); /// isVerboseAsm - Return true if this streamer supports verbose assembly at @@ -479,6 +480,13 @@ OS << ',' << DescValue; EmitEOL(); } +void MCAsmStreamer::EmitSyntaxDirective(){ + if (MAI->getAssemblerDialect() == 1) + OS << "\t.intel_syntax noprefix\n"; + // FIXME: Currently emit unprefix'ed registers. + // The intel_syntax directive has one optional argument + // with may have a value of prefix or noprefix. +} void MCAsmStreamer::BeginCOFFSymbolDef(const MCSymbol *Symbol) { OS << "\t.def\t "; Index: lib/MC/MCStreamer.cpp =================================================================== --- lib/MC/MCStreamer.cpp +++ lib/MC/MCStreamer.cpp @@ -467,6 +467,7 @@ report_fatal_error("Chained unwind areas can't have handlers!"); } +void MCStreamer::EmitSyntaxDirective() {} void MCStreamer::EmitWinCFIPushReg(unsigned Register) { EnsureValidWinFrameInfo(); Index: lib/Target/X86/X86AsmPrinter.cpp =================================================================== --- lib/Target/X86/X86AsmPrinter.cpp +++ lib/Target/X86/X86AsmPrinter.cpp @@ -535,6 +535,7 @@ S, MCConstantExpr::create(int64_t(1), MMI->getContext())); } } + OutStreamer->EmitSyntaxDirective(); } static void Index: test/MC/X86/intel-syntax-print-negative.ll =================================================================== --- test/MC/X86/intel-syntax-print-negative.ll +++ test/MC/X86/intel-syntax-print-negative.ll @@ -0,0 +1,8 @@ +; RUN: llc -x86-asm-syntax=att < %s | FileCheck %s + +; CHECK-NOT: .intel_syntax + +define i32 @test() { +entry: + ret i32 0 +} Index: test/MC/X86/intel-syntax-print.ll =================================================================== --- test/MC/X86/intel-syntax-print.ll +++ test/MC/X86/intel-syntax-print.ll @@ -0,0 +1,8 @@ +; RUN: llc -x86-asm-syntax=intel < %s | FileCheck %s + +; CHECK: .intel_syntax noprefix + +define i32 @test() { +entry: + ret i32 0 +}