diff options
-rw-r--r-- | test/CodeGen/ms-inline-asm.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/CodeGen/ms-inline-asm.c b/test/CodeGen/ms-inline-asm.c index 7f43da891e..d0e9a7b115 100644 --- a/test/CodeGen/ms-inline-asm.c +++ b/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 +} |