xref: /llvm-project/llvm/test/CodeGen/M68k/gcc_except_table.ll (revision ebbc5de7db45b2fc81564a6c870a57f4b95d0477)
1058f7449SMin-Yih Hsu; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2058f7449SMin-Yih Hsu; RUN: llc -mtriple=m68k < %s | FileCheck %s
3058f7449SMin-Yih Hsu
4058f7449SMin-Yih Hsu; (Copied from test/CodeGen/X86/gcc_except_table.ll)
5058f7449SMin-Yih Hsu; Testing whether exception pointer register (d0) and exception selector
6058f7449SMin-Yih Hsu; register (d1) are correctly used by landing and EH pad, respectively.
7058f7449SMin-Yih Hsu@_ZTIi = external constant ptr
8058f7449SMin-Yih Hsu
9058f7449SMin-Yih Hsudefine i32 @foo() uwtable ssp personality ptr @__gxx_personality_v0 {
10058f7449SMin-Yih Hsu; CHECK-LABEL: foo:
11058f7449SMin-Yih Hsu; CHECK:       .Lfunc_begin0:
12058f7449SMin-Yih Hsu; CHECK-NEXT:    .cfi_startproc
13058f7449SMin-Yih Hsu; CHECK-NEXT:    .cfi_personality 0, __gxx_personality_v0
14058f7449SMin-Yih Hsu; CHECK-NEXT:    .cfi_lsda 0, .Lexception0
15058f7449SMin-Yih Hsu; CHECK-NEXT:  ; %bb.0: ; %entry
16058f7449SMin-Yih Hsu; CHECK-NEXT:    suba.l #4, %sp
17058f7449SMin-Yih Hsu; CHECK-NEXT:    .cfi_def_cfa_offset -8
18058f7449SMin-Yih Hsu; CHECK-NEXT:  .Ltmp0:
19*ebbc5de7SPeter Lafreniere; CHECK-NEXT:    jsr _Z1fv
20058f7449SMin-Yih Hsu; CHECK-NEXT:  .Ltmp1:
21058f7449SMin-Yih Hsu; CHECK-NEXT:  ; %bb.1: ; %try.cont
22c4c9d4f3SPeter Lafreniere; CHECK-NEXT:    moveq #0, %d0
23058f7449SMin-Yih Hsu; CHECK-NEXT:    adda.l #4, %sp
24058f7449SMin-Yih Hsu; CHECK-NEXT:    rts
25058f7449SMin-Yih Hsu; CHECK-NEXT:  .LBB0_2: ; %lpad
26058f7449SMin-Yih Hsu; CHECK-NEXT:  .Ltmp2:
27058f7449SMin-Yih Hsu; CHECK-NEXT:    move.l %d0, (%sp)
28*ebbc5de7SPeter Lafreniere; CHECK-NEXT:    jsr _Unwind_Resume
29058f7449SMin-Yih Hsuentry:
30058f7449SMin-Yih Hsu  invoke void @_Z1fv() optsize
31058f7449SMin-Yih Hsu          to label %try.cont unwind label %lpad
32058f7449SMin-Yih Hsu
33058f7449SMin-Yih Hsulpad:
34058f7449SMin-Yih Hsu  %0 = landingpad { ptr, i32 }
35058f7449SMin-Yih Hsu          cleanup
36058f7449SMin-Yih Hsu          catch ptr @_ZTIi
37058f7449SMin-Yih Hsu  br label %eh.resume
38058f7449SMin-Yih Hsu
39058f7449SMin-Yih Hsutry.cont:
40058f7449SMin-Yih Hsu  ret i32 0
41058f7449SMin-Yih Hsu
42058f7449SMin-Yih Hsueh.resume:
43058f7449SMin-Yih Hsu  resume { ptr, i32 } %0
44058f7449SMin-Yih Hsu}
45058f7449SMin-Yih Hsu
46058f7449SMin-Yih Hsudeclare void @_Z1fv() optsize
47058f7449SMin-Yih Hsu
48058f7449SMin-Yih Hsudeclare i32 @__gxx_personality_v0(...)
49