[cfe-commits] r166310 - in /cfe/trunk: lib/Sema/SemaStmtAsm.cpp test/CodeGen/ms-inline-asm.c

Chad Rosier mcrosier at apple.com
Fri Oct 19 13:36:37 PDT 2012


Author: mcrosier
Date: Fri Oct 19 15:36:37 2012
New Revision: 166310

URL: http://llvm.org/viewvc/llvm-project?rev=166310&view=rev
Log:
[ms-inline asm] Set the SemaCallback in the TargetAsmParser.

Modified:
    cfe/trunk/lib/Sema/SemaStmtAsm.cpp
    cfe/trunk/test/CodeGen/ms-inline-asm.c

Modified: cfe/trunk/lib/Sema/SemaStmtAsm.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmtAsm.cpp?rev=166310&r1=166309&r2=166310&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaStmtAsm.cpp (original)
+++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp Fri Oct 19 15:36:37 2012
@@ -462,13 +462,15 @@
   Parser->setParsingInlineAsm(true);
   TargetParser->setParsingInlineAsm(true);
 
+  MCAsmParserSemaCallbackImpl MCAPSI(this);
+  TargetParser->setSemaCallback(&MCAPSI);
+
   unsigned NumOutputs;
   unsigned NumInputs;
   std::string AsmStringIR;
   SmallVector<void *, 4> OpDecls;
   SmallVector<std::string, 4> Constraints;
   SmallVector<std::string, 4> Clobbers;
-  MCAsmParserSemaCallbackImpl MCAPSI(this);
   if (Parser->ParseMSInlineAsm(AsmLoc.getPtrEncoding(), AsmStringIR,
                                NumOutputs, NumInputs, OpDecls, Constraints,
                                Clobbers, MII, IP, MCAPSI))

Modified: cfe/trunk/test/CodeGen/ms-inline-asm.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ms-inline-asm.c?rev=166310&r1=166309&r2=166310&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/ms-inline-asm.c (original)
+++ cfe/trunk/test/CodeGen/ms-inline-asm.c Fri Oct 19 15:36:37 2012
@@ -1,6 +1,6 @@
 // REQUIRES: x86-64-registered-target
 // RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -O0 -fms-extensions -fenable-experimental-ms-inline-asm -w -emit-llvm -o - | FileCheck %s
-
+#if 0
 void t1() {
 // CHECK: @t1
 // CHECK: call void asm sideeffect inteldialect "", "~{dirflag},~{fpsr},~{flags}"() nounwind
@@ -114,3 +114,26 @@
 // CHECK: t12
 // CHECK: call void asm sideeffect inteldialect "mov eax, $2\0A\09mov $0, eax\0A\09mov eax, $3\0A\09mov $1, eax", "=*m,=*m,*m,*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}}, i32* %{{.*}}, i32* %{{.*}}, i32* %{{.*}}) nounwind
 }
+#endif
+void t13() {
+  char i = 1;
+  short j = 2;
+  __asm movzx eax, i
+  __asm movzx eax, j
+}
+#if 0
+void t13() {
+  unsigned i = 1, j = 2;
+//  __asm mov eax, [ebx]
+//  __asm mov eax, [4*ecx]
+//  __asm mov eax, [4]
+//  __asm mov eax, [ebx + 4*ecx]
+//  __asm mov eax, [ebx + 4*ecx + 4]
+  __asm mov eax, [i]
+//  __asm mov eax, [i + 4*ecx]
+//  __asm mov eax, [i + 4*ecx + 4]
+//  __asm mov eax, [4*i]
+//  __asm mov eax, [ebx + 4*i]
+//  __asm mov eax, [ebx + 4*i + 4]
+}
+#endif





More information about the cfe-commits mailing list