xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/ehframe-indirect.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-gnu < %s -asm-verbose -relocation-model=pic | FileCheck -check-prefixes=ALL,O32 %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-android < %s -asm-verbose -relocation-model=pic | FileCheck -check-prefixes=ALL,O32 %s
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mips64el-linux-gnu -target-abi=n32 < %s -asm-verbose -relocation-model=pic | FileCheck -check-prefixes=ALL,N32 %s
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mips64el-linux-android -target-abi=n32 < %s -asm-verbose -relocation-model=pic | FileCheck -check-prefixes=ALL,N32 %s
5*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mips64el-linux-gnu < %s -asm-verbose -relocation-model=pic | FileCheck -check-prefixes=ALL,N64 %s
6*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mips64el-linux-android < %s -asm-verbose -relocation-model=pic | FileCheck -check-prefixes=ALL,N64 %s
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker@_ZTISt9exception = external constant i8*
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine i32 @main() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
11*9880d681SAndroid Build Coastguard Worker; ALL: .cfi_startproc
12*9880d681SAndroid Build Coastguard Worker; ALL: .cfi_personality 128, DW.ref.__gxx_personality_v0
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerentry:
15*9880d681SAndroid Build Coastguard Worker  invoke void @foo() to label %cont unwind label %lpad
16*9880d681SAndroid Build Coastguard Worker; ALL: foo
17*9880d681SAndroid Build Coastguard Worker; ALL: jalr
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerlpad:
20*9880d681SAndroid Build Coastguard Worker  %0 = landingpad { i8*, i32 }
21*9880d681SAndroid Build Coastguard Worker    catch i8* null
22*9880d681SAndroid Build Coastguard Worker    catch i8* bitcast (i8** @_ZTISt9exception to i8*)
23*9880d681SAndroid Build Coastguard Worker  ret i32 0
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workercont:
26*9880d681SAndroid Build Coastguard Worker  ret i32 0
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker; ALL: .cfi_endproc
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerdeclare void @foo()
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Worker; ALL: GCC_except_table{{[0-9]+}}:
35*9880d681SAndroid Build Coastguard Worker; ALL: .byte 155 # @TType Encoding = indirect pcrel sdata4
36*9880d681SAndroid Build Coastguard Worker; ALL: $[[PC_LABEL:tmp[0-9]+]]:
37*9880d681SAndroid Build Coastguard Worker; ALL: .4byte	($_ZTISt9exception.DW.stub)-($[[PC_LABEL]])
38*9880d681SAndroid Build Coastguard Worker; ALL: $_ZTISt9exception.DW.stub:
39*9880d681SAndroid Build Coastguard Worker; O32: .4byte _ZTISt9exception
40*9880d681SAndroid Build Coastguard Worker; N32: .4byte _ZTISt9exception
41*9880d681SAndroid Build Coastguard Worker; N64: .8byte _ZTISt9exception
42*9880d681SAndroid Build Coastguard Worker; ALL: .hidden DW.ref.__gxx_personality_v0
43*9880d681SAndroid Build Coastguard Worker; ALL: .weak DW.ref.__gxx_personality_v0
44*9880d681SAndroid Build Coastguard Worker; ALL: .section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
45*9880d681SAndroid Build Coastguard Worker; O32: .p2align 2
46*9880d681SAndroid Build Coastguard Worker; N32: .p2align 2
47*9880d681SAndroid Build Coastguard Worker; N64: .p2align 3
48*9880d681SAndroid Build Coastguard Worker; ALL: .type DW.ref.__gxx_personality_v0,@object
49*9880d681SAndroid Build Coastguard Worker; O32: .size DW.ref.__gxx_personality_v0, 4
50*9880d681SAndroid Build Coastguard Worker; N32: .size DW.ref.__gxx_personality_v0, 4
51*9880d681SAndroid Build Coastguard Worker; N64: .size DW.ref.__gxx_personality_v0, 8
52*9880d681SAndroid Build Coastguard Worker; ALL: DW.ref.__gxx_personality_v0:
53*9880d681SAndroid Build Coastguard Worker; O32: .4byte __gxx_personality_v0
54*9880d681SAndroid Build Coastguard Worker; N32: .4byte __gxx_personality_v0
55*9880d681SAndroid Build Coastguard Worker; N64: .8byte __gxx_personality_v0
56