From ed92815cb0267839b4a31d9224848f24fe9c1b42 Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Wed, 5 Dec 2012 19:52:05 +0000 Subject: [PATCH] [ms-inline asm] Add more tests. llvm-svn: 169411 --- clang/test/CodeGen/ms-inline-asm.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/clang/test/CodeGen/ms-inline-asm.c b/clang/test/CodeGen/ms-inline-asm.c index 7f43da8..d0e9a7b 100644 --- a/clang/test/CodeGen/ms-inline-asm.c +++ b/clang/test/CodeGen/ms-inline-asm.c @@ -200,3 +200,32 @@ void t20() { // CHECK: t20 // CHECK: call void asm sideeffect inteldialect "mov eax, $$4", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind } + + +void t21() { + __asm { + __asm push ebx + __asm mov ebx, 0x07 + __asm pop ebx + } +// CHECK: t21 +// CHECK: call void asm sideeffect inteldialect "push ebx\0A\09mov ebx, $$0x07\0A\09pop ebx", "~{ebx},~{dirflag},~{fpsr},~{flags}"() nounwind +} + +extern void t22_helper(int x); +void t22() { + int x = 0; + __asm { + __asm push ebx + __asm mov ebx, esp + } + t22_helper(x); + __asm { + __asm mov esp, ebx + __asm pop ebx + } +// CHECK: t22 +// CHECK: call void asm sideeffect inteldialect "push ebx\0A\09mov ebx, esp", "~{ebx},~{dirflag},~{fpsr},~{flags}"() nounwind +// CHECK: call void @t22_helper +// CHECK: call void asm sideeffect inteldialect "mov esp, ebx\0A\09pop ebx", "~{ebx},~{esp},~{dirflag},~{fpsr},~{flags}"() nounwind +} -- 2.7.4