diff options
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/X86/win32-eh.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/win32-eh.ll b/llvm/test/CodeGen/X86/win32-eh.ll index 875949740ec..4d3c34ed6c1 100644 --- a/llvm/test/CodeGen/X86/win32-eh.ll +++ b/llvm/test/CodeGen/X86/win32-eh.ll @@ -20,6 +20,9 @@ catchall: ; CHECK-LABEL: _use_except_handler3: ; CHECK: subl ${{[0-9]+}}, %esp +; CHECK: movl $-1, 12(%esp) +; CHECK: movl $L__ehtable$use_except_handler3, 8(%esp) +; CHECK: movl $__except_handler3, 4(%esp) ; CHECK: movl %fs:0, %[[next:[^ ,]*]] ; CHECK: movl %[[next]], (%esp) ; CHECK: leal (%esp), %[[node:[^ ,]*]] @@ -42,7 +45,11 @@ catchall: ; CHECK-LABEL: _use_except_handler4: ; CHECK: subl ${{[0-9]+}}, %esp +; CHECK: movl %esp, (%esp) +; CHECK: movl $-2, 20(%esp) +; CHECK: movl $L__ehtable$use_except_handler4, 4(%esp) ; CHECK: leal 8(%esp), %[[node:[^ ,]*]] +; CHECK: movl $__except_handler4, 12(%esp) ; CHECK: movl %fs:0, %[[next:[^ ,]*]] ; CHECK: movl %[[next]], 8(%esp) ; CHECK: movl %[[node]], %fs:0 @@ -67,7 +74,10 @@ catchall: ; CHECK-LABEL: _use_CxxFrameHandler3: ; CHECK: subl ${{[0-9]+}}, %esp +; CHECK: movl %esp, (%esp) +; CHECK: movl $-1, 12(%esp) ; CHECK: leal 4(%esp), %[[node:[^ ,]*]] +; CHECK: movl $___ehhandler$use_CxxFrameHandler3, 8(%esp) ; CHECK: movl %fs:0, %[[next:[^ ,]*]] ; CHECK: movl %[[next]], 4(%esp) ; CHECK: movl %[[node]], %fs:0 @@ -75,3 +85,7 @@ catchall: ; CHECK: movl 4(%esp), %[[next:[^ ,]*]] ; CHECK: movl %[[next]], %fs:0 ; CHECK: retl + +; CHECK-LABEL: ___ehhandler$use_CxxFrameHandler3: +; CHECK: movl $L__ehtable$use_CxxFrameHandler3, %eax +; CHECK: jmp ___CxxFrameHandler3 # TAILCALL |