1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=m68k < %s | FileCheck %s 3 4; (Copied from test/CodeGen/X86/gcc_except_table.ll) 5; Testing whether exception pointer register (d0) and exception selector 6; register (d1) are correctly used by landing and EH pad, respectively. 7@_ZTIi = external constant ptr 8 9define i32 @foo() uwtable ssp personality ptr @__gxx_personality_v0 { 10; CHECK-LABEL: foo: 11; CHECK: .Lfunc_begin0: 12; CHECK-NEXT: .cfi_startproc 13; CHECK-NEXT: .cfi_personality 0, __gxx_personality_v0 14; CHECK-NEXT: .cfi_lsda 0, .Lexception0 15; CHECK-NEXT: ; %bb.0: ; %entry 16; CHECK-NEXT: suba.l #4, %sp 17; CHECK-NEXT: .cfi_def_cfa_offset -8 18; CHECK-NEXT: .Ltmp0: 19; CHECK-NEXT: jsr _Z1fv 20; CHECK-NEXT: .Ltmp1: 21; CHECK-NEXT: ; %bb.1: ; %try.cont 22; CHECK-NEXT: moveq #0, %d0 23; CHECK-NEXT: adda.l #4, %sp 24; CHECK-NEXT: rts 25; CHECK-NEXT: .LBB0_2: ; %lpad 26; CHECK-NEXT: .Ltmp2: 27; CHECK-NEXT: move.l %d0, (%sp) 28; CHECK-NEXT: jsr _Unwind_Resume 29entry: 30 invoke void @_Z1fv() optsize 31 to label %try.cont unwind label %lpad 32 33lpad: 34 %0 = landingpad { ptr, i32 } 35 cleanup 36 catch ptr @_ZTIi 37 br label %eh.resume 38 39try.cont: 40 ret i32 0 41 42eh.resume: 43 resume { ptr, i32 } %0 44} 45 46declare void @_Z1fv() optsize 47 48declare i32 @__gxx_personality_v0(...) 49