X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Fseh-safe-div.ll;h=80b15b601020dceabdfbda4112d72002d3eeb391;hb=828f5b807cc2cec7dc3e25730e3c6bac965d17e2;hp=ba54f1cca60650c09ce2365cbe75dc0738dc5996;hpb=32b845d223393d9f5e7317b9e754a52b79543de2;p=oota-llvm.git diff --git a/test/CodeGen/X86/seh-safe-div.ll b/test/CodeGen/X86/seh-safe-div.ll index ba54f1cca60..80b15b60102 100644 --- a/test/CodeGen/X86/seh-safe-div.ll +++ b/test/CodeGen/X86/seh-safe-div.ll @@ -71,46 +71,34 @@ __try.cont: ; CHECK: leaq [[rloc:.*\(%rsp\)]], %rcx ; CHECK: callq try_body ; CHECK-NEXT: .Ltmp1 -; CHECK: .LBB0_7: +; CHECK: [[cont_bb:\.LBB0_[0-9]+]]: ; CHECK: movl [[rloc]], %eax ; CHECK: retq ; Landing pad code -; CHECK: .Ltmp3: -; CHECK: movl $1, %[[sel:[a-z]+]] -; CHECK: .Ltmp4 -; CHECK: movl $2, %[[sel]] -; CHECK: .L{{.*}}: -; CHECK: cmpl $1, %[[sel]] - +; CHECK: [[handler0:\.Ltmp[0-9]+]]: # Block address taken ; CHECK: # %handler0 ; CHECK: callq puts ; CHECK: movl $-1, [[rloc]] -; CHECK: jmp .LBB0_7 - -; CHECK: cmpl $2, %[[sel]] +; CHECK: jmp [[cont_bb]] +; CHECK: [[handler1:\.Ltmp[0-9]+]]: # Block address taken ; CHECK: # %handler1 ; CHECK: callq puts ; CHECK: movl $-2, [[rloc]] -; CHECK: jmp .LBB0_7 - -; FIXME: EH preparation should eliminate the 'resume' instr and we should not do -; the previous 'cmp;jeq'. -; CHECK-NOT: _Unwind_Resume -; CHECK: ud2 +; CHECK: jmp [[cont_bb]] ; CHECK: .seh_handlerdata -; CHECK: .long 2 -; CHECK: .long .Ltmp0@IMGREL -; CHECK: .long .Ltmp1@IMGREL+1 -; CHECK: .long safe_div_filt0@IMGREL -; CHECK: .long .Ltmp3@IMGREL -; CHECK: .long .Ltmp0@IMGREL -; CHECK: .long .Ltmp1@IMGREL+1 -; CHECK: .long safe_div_filt1@IMGREL -; CHECK: .long .Ltmp4@IMGREL +; CHECK-NEXT: .long 2 +; CHECK-NEXT: .long .Ltmp0@IMGREL +; CHECK-NEXT: .long .Ltmp1@IMGREL+1 +; CHECK-NEXT: .long safe_div_filt0@IMGREL +; CHECK-NEXT: .long [[handler0]]@IMGREL +; CHECK-NEXT: .long .Ltmp0@IMGREL +; CHECK-NEXT: .long .Ltmp1@IMGREL+1 +; CHECK-NEXT: .long safe_div_filt1@IMGREL +; CHECK-NEXT: .long [[handler1]]@IMGREL ; CHECK: .text ; CHECK: .seh_endproc @@ -185,11 +173,6 @@ define i32 @main() { ret i32 0 } -define void @_Unwind_Resume() { - call void @abort() - unreachable -} - declare i32 @__C_specific_handler(...) declare i32 @llvm.eh.typeid.for(i8*) readnone nounwind declare void @puts(i8*)