diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/win-catchpad.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/win-catchpad.ll | 53 |
1 files changed, 43 insertions, 10 deletions
diff --git a/llvm/test/CodeGen/X86/win-catchpad.ll b/llvm/test/CodeGen/X86/win-catchpad.ll index f9a5c7ca2f2..597f0e8ae80 100644 --- a/llvm/test/CodeGen/X86/win-catchpad.ll +++ b/llvm/test/CodeGen/X86/win-catchpad.ll @@ -119,12 +119,14 @@ catchendblock: ; preds = %catch, %catch.2, %c ; X86-NEXT: .long [[catch2bb]] ; X64-LABEL: try_catch_catch: +; X64: Lfunc_begin0: ; X64: pushq %rbp ; X64: .seh_pushreg 5 ; X64: subq $48, %rsp ; X64: .seh_stackalloc 48 ; X64: leaq 48(%rsp), %rbp ; X64: .seh_setframe 5, 48 +; X64: .Ltmp0 ; X64-DAG: leaq -[[local_offs:[0-9]+]](%rbp), %rdx ; X64-DAG: movl $1, %ecx ; X64: callq f @@ -138,6 +140,7 @@ catchendblock: ; preds = %catch, %catch.2, %c ; X64: pushq %rbp ; X64: movq %rdx, %rbp ; X64: subq $32, %rsp +; X64-DAG: .Ltmp4 ; X64-DAG: leaq -[[local_offs]](%rbp), %rdx ; X64-DAG: movl [[e_addr:[-0-9]+]](%rbp), %ecx ; X64: callq f @@ -154,20 +157,50 @@ catchendblock: ; preds = %catch, %catch.2, %c ; X64-DAG: leaq -[[local_offs]](%rbp), %rdx ; X64-DAG: movl $3, %ecx ; X64: callq f +; X64: .Ltmp3 ; X64: addq $32, %rsp ; X64-NEXT: popq %rbp ; X64-NEXT: leaq [[contbb]](%rip), %rax ; X64-NEXT: retq +; X64: $cppxdata$try_catch_catch: +; X64-NEXT: .long 429065506 +; X64-NEXT: .long 2 +; X64-NEXT: .long ($stateUnwindMap$try_catch_catch)@IMGREL +; X64-NEXT: .long 1 +; X64-NEXT: .long ($tryMap$try_catch_catch)@IMGREL +; X64-NEXT: .long 4 +; X64-NEXT: .long ($ip2state$try_catch_catch)@IMGREL +; X64-NEXT: .long 32 +; X64-NEXT: .long 0 +; X64-NEXT: .long 1 + +; X64: $tryMap$try_catch_catch: +; X64-NEXT: .long 0 +; X64-NEXT: .long 0 +; X64-NEXT: .long 1 +; X64-NEXT: .long 2 +; X64-NEXT: .long ($handlerMap$0$try_catch_catch)@IMGREL + ; X64: $handlerMap$0$try_catch_catch: -; X64: .long 0 -; X64: .long "??_R0H@8"@IMGREL +; X64-NEXT: .long 0 +; X64-NEXT: .long "??_R0H@8"@IMGREL ; FIXME: This should probably be offset from rsp, not rbp. -; X64: .long [[e_addr]] -; X64: .long [[catch1bb]]@IMGREL -; X64: .long 56 -; X64: .long 64 -; X64: .long 0 -; X64: .long 0 -; X64: .long [[catch2bb]]@IMGREL -; X64: .long 56 +; X64-NEXT: .long [[e_addr]] +; X64-NEXT: .long [[catch1bb]]@IMGREL +; X64-NEXT: .long 56 +; X64-NEXT: .long 64 +; X64-NEXT: .long 0 +; X64-NEXT: .long 0 +; X64-NEXT: .long [[catch2bb]]@IMGREL +; X64-NEXT: .long 56 + +; X64: $ip2state$try_catch_catch: +; X64-NEXT: .long .Lfunc_begin0@IMGREL +; X64-NEXT: .long -1 +; X64-NEXT: .long .Ltmp0@IMGREL +; X64-NEXT: .long 0 +; X64-NEXT: .long .Ltmp4@IMGREL +; X64-NEXT: .long 1 +; X64-NEXT: .long .Ltmp3@IMGREL+1 +; X64-NEXT: .long -1 |

