[llvm-commits] [llvm] r163550 - in /llvm/trunk: lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp test/CodeGen/X86/ms-inline-asm.ll
Chad Rosier
mcrosier at apple.com
Mon Sep 10 14:36:05 PDT 2012
Author: mcrosier
Date: Mon Sep 10 16:36:05 2012
New Revision: 163550
URL: http://llvm.org/viewvc/llvm-project?rev=163550&view=rev
Log:
[ms-inline asm] Properly emit the asm directives when the AsmPrinterVariant
and InlineAsmVariant don't match.
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
llvm/trunk/test/CodeGen/X86/ms-inline-asm.ll
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp?rev=163550&r1=163549&r2=163550&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Mon Sep 10 16:36:05 2012
@@ -200,7 +200,15 @@
// The variant of the current asmprinter.
int AsmPrinterVariant = MAI->getAssemblerDialect();
int InlineAsmVariant = MI->getInlineAsmDialect();
-
+
+ // Switch to the inline assembly variant.
+ if (AsmPrinterVariant != InlineAsmVariant) {
+ if (InlineAsmVariant == 0)
+ OS << ".att_syntax\n\t";
+ else
+ OS << ".intel_syntax\n\t";
+ }
+
int CurVariant = -1; // The number of the {.|.|.} region we are in.
const char *LastEmitted = AsmStr; // One past the last character emitted.
@@ -365,6 +373,14 @@
}
}
}
+ // Switch to the AsmPrinter variant.
+ if (AsmPrinterVariant != InlineAsmVariant) {
+ if (AsmPrinterVariant == 0)
+ OS << "\n\t.att_syntax";
+ else
+ OS << "\n\t.intel_syntax";
+ }
+
OS << '\n' << (char)0; // null terminate string.
EmitInlineAsm(OS.str(), LocMD, MI->getInlineAsmDialect());
Modified: llvm/trunk/test/CodeGen/X86/ms-inline-asm.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/ms-inline-asm.ll?rev=163550&r1=163549&r2=163550&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/ms-inline-asm.ll (original)
+++ llvm/trunk/test/CodeGen/X86/ms-inline-asm.ll Mon Sep 10 16:36:05 2012
@@ -6,9 +6,9 @@
ret i32 %0
; CHECK: t1
; CHECK: ## InlineAsm Start
-; FIXME: .intel_syntax
+; CHECK: .intel_syntax
; CHECK: mov eax, ecx
; CHECK: mov ecx, eax
-; FIXME: .att_syntax
+; CHECK: .att_syntax
; CHECK: ## InlineAsm End
}
More information about the llvm-commits
mailing list