[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