[WinEH] Store pointers to the LSDA in the exception registration object
[oota-llvm.git] / test / CodeGen / X86 / win32-eh.ll
index 875949740ec9a0b0f7afd3d00062eb0b6468eead..4d3c34ed6c175154e261b86ffddf4f373e61a0aa 100644 (file)
@@ -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