brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.8 KiB · 5b364ef Raw
191 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \2; RUN:     -mattr=-altivec -simplifycfg-require-and-preserve-domtree=1 < %s | \3; RUN:   FileCheck --check-prefixes=ASM,ASMNFS,ASM32 %s4 5; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \6; RUN:     -mattr=-altivec -simplifycfg-require-and-preserve-domtree=1 < %s | \7; RUN:   FileCheck --check-prefixes=ASM,ASMNFS,ASM64 %s8 9; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \10; RUN:     -mattr=-altivec -simplifycfg-require-and-preserve-domtree=1 \11; RUN:     -function-sections < %s | \12; RUN:   FileCheck --check-prefixes=ASM,ASMFS,ASM32 %s13 14; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \15; RUN:     -mattr=-altivec -simplifycfg-require-and-preserve-domtree=1 \16; RUN:     -function-sections < %s | \17; RUN:   FileCheck --check-prefixes=ASM,ASMFS,ASM64 %s18 19@_ZTIi = external constant ptr20 21define void @_Z9throwFuncv() {22entry:23  %exception = call ptr @__cxa_allocate_exception(i32 4) #224  store i32 1, ptr %exception, align 1625  call void @__cxa_throw(ptr %exception, ptr @_ZTIi, ptr null) #326  unreachable27}28 29; ASMNFS: ._Z9throwFuncv:30; ASMFS:    .csect ._Z9throwFuncv[PR],531; ASM:      bl .__cxa_allocate_exception[PR]32; ASM:      nop33; ASM32:    lwz 4, L..C0(2)34; ASM64:    ld 4, L..C0(2)35; ASM:      bl .__cxa_throw[PR]36; ASM:      nop37 38define i32 @_Z9catchFuncv() personality ptr @__xlcxx_personality_v1 {39entry:40  %retval = alloca i32, align 441  %exn.slot = alloca ptr, align 442  %ehselector.slot = alloca i32, align 443  %0 = alloca i32, align 444  invoke void @_Z9throwFuncv()45          to label %invoke.cont unwind label %lpad46 47invoke.cont:                                      ; preds = %entry48  br label %try.cont49 50lpad:                                             ; preds = %entry51  %1 = landingpad { ptr, i32 }52          catch ptr @_ZTIi53  %2 = extractvalue { ptr, i32 } %1, 054  store ptr %2, ptr %exn.slot, align 455  %3 = extractvalue { ptr, i32 } %1, 156  store i32 %3, ptr %ehselector.slot, align 457  br label %catch.dispatch58 59catch.dispatch:                                   ; preds = %lpad60  %sel = load i32, ptr %ehselector.slot, align 461  %4 = call i32 @llvm.eh.typeid.for(ptr @_ZTIi) #262  %matches = icmp eq i32 %sel, %463  br i1 %matches, label %catch, label %eh.resume64 65catch:                                            ; preds = %catch.dispatch66  %exn = load ptr, ptr %exn.slot, align 467  %5 = call ptr @__cxa_begin_catch(ptr %exn) #268  %6 = load i32, ptr %5, align 469  store i32 %6, ptr %0, align 470  store i32 2, ptr %retval, align 471  call void @__cxa_end_catch() #272  br label %return73 74try.cont:                                         ; preds = %invoke.cont75  store i32 1, ptr %retval, align 476  br label %return77 78return:                                           ; preds = %try.cont, %catch79  %7 = load i32, ptr %retval, align 480  ret i32 %781 82eh.resume:                                        ; preds = %catch.dispatch83  %exn1 = load ptr, ptr %exn.slot, align 484  %sel2 = load i32, ptr %ehselector.slot, align 485  %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn1, 086  %lpad.val3 = insertvalue { ptr, i32 } %lpad.val, i32 %sel2, 187  resume { ptr, i32 } %lpad.val388}89 90; ASMNFS: ._Z9catchFuncv:91; ASMFS:        .csect ._Z9catchFuncv[PR],592; ASM:  L..func_begin0:93; ASM:  # %bb.0:                                # %entry94; ASM:  	mflr 095; ASM:  L..tmp0:96; ASM:  	bl ._Z9throwFuncv97; ASM:  	nop98; ASM:  L..tmp1:99; ASM:  # %bb.1:                                # %invoke.cont100; ASM:  	li 3, 1101; ASM:  L..BB1_2:                               # %return102; ASM:  	mtlr 0103; ASM:  	blr104; ASM:  L..BB1_3:                               # %lpad105; ASM:  L..tmp2:106; ASM:  	bl .__cxa_begin_catch[PR]107; ASM:  	nop108; ASM:  	bl .__cxa_end_catch[PR]109; ASM:  	nop110; ASM:  	b L..BB1_2111 112; ASM:  L.._Z9catchFuncv0:113; ASM:    .vbyte  4, 0x00000000                   # Traceback table begin114; ASM:    .byte   0x00                            # Version = 0115; ASM:    .byte   0x09                            # Language = CPlusPlus116; ASM:    .byte   0x20                            # -IsGlobalLinkage, -IsOutOfLineEpilogOrPrologue117; ASM:                                    # +HasTraceBackTableOffset, -IsInternalProcedure118; ASM:                                    # -HasControlledStorage, -IsTOCless119; ASM:                                    # -IsFloatingPointPresent120; ASM:                                    # -IsFloatingPointOperationLogOrAbortEnabled121; ASM:    .byte   0x41                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed122; ASM:                                    # OnConditionDirective = 0, -IsCRSaved, +IsLRSaved123; ASM:    .byte   0x80                            # +IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0124; ASM:    .byte   0x80                            # +HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0125; ASM:    .byte   0x00                            # NumberOfFixedParms = 0126; ASM:    .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack127; ASMNFS: .vbyte  4, L.._Z9catchFuncv0-._Z9catchFuncv # Function size128; ASMFS:  .vbyte  4, L.._Z9catchFuncv0-._Z9catchFuncv[PR] # Function size129; ASM:    .vbyte  2, 0x000d                       # Function name len = 13130; ASM:    .byte   "_Z9catchFuncv"                 # Function Name131; ASM:    .byte   0x08                            # ExtensionTableFlag = TB_EH_INFO132; ASM:    .align  2133; ASM32:  .vbyte  4, L..C1-TOC[TC0]               # EHInfo Table134; ASM64:  .vbyte  8, L..C1-TOC[TC0]               # EHInfo Table135; ASM:  L..func_end0:136 137; ASMNFS:  	.csect .gcc_except_table[RO],2138; ASMFS:  	.csect .gcc_except_table._Z9catchFuncv[RO],2139; ASM:  	.align	2140; ASM:  GCC_except_table1:141; ASM:  L..exception0:142; ASM:  	.byte	255                             # @LPStart Encoding = omit143; ASM32:	.byte	187                             # @TType Encoding = indirect datarel sdata4144; ASM64:  .byte	188                             # @TType Encoding = indirect datarel sdata8145; ASM32: 	.byte 37146; ASM64:  .byte	41147; ASM:  	.byte	3                               # Call site Encoding = udata4148; ASM:  	.byte 26149; ASM:  	.vbyte	4, L..tmp0-L..func_begin0       # >> Call Site 1 <<150; ASM:  	.vbyte	4, L..tmp1-L..tmp0              #   Call between L..tmp0 and L..tmp1151; ASM:  	.vbyte	4, L..tmp2-L..func_begin0       #     jumps to L..tmp2152; ASM:  	.byte	1                               #   On action: 1153; ASM:  	.vbyte	4, L..tmp1-L..func_begin0       # >> Call Site 2 <<154; ASM:  	.vbyte	4, L..func_end0-L..tmp1         #   Call between L..tmp1 and L..func_end0155; ASM:  	.vbyte	4, 0                            #     has no landing pad156; ASM:  	.byte	0                               #   On action: cleanup157; ASM:  L..cst_end0:158; ASM:  	.byte	1                               # >> Action Record 1 <<159; ASM:                                          #   Catch TypeInfo 1160; ASM:  	.byte	0                               #   No further actions161; ASM:  	.align	2162; ASM:                                          # >> Catch TypeInfos <<163; ASM32:	.vbyte	4, L..C0-TOC[TC0]               # TypeInfo 1164; ASM64: 	.vbyte	8, L..C0-TOC[TC0]               # TypeInfo 1165; ASM:  L..ttbase0:166; ASM:  	.align	2167 168; ASMNFS:  	.csect .eh_info_table[RW],2169; ASMFS:  	.csect .eh_info_table._Z9catchFuncv[RW],2170; ASM:  __ehinfo.1:171; ASM:  	.vbyte	4, 0172; ASM32:  .align  2173; ASM32:  .vbyte	4, GCC_except_table1174; ASM32:  .vbyte	4, __xlcxx_personality_v1[DS]175; ASM64:  .align	3176; ASM64:  .vbyte	8, GCC_except_table1177; ASM64:  .vbyte	8, __xlcxx_personality_v1[DS]178 179; ASM:    .toc180; ASM:  L..C0:181; ASM:    .tc _ZTIi[TC],_ZTIi[UA]182; ASM:  L..C1:183; ASM:    .tc __ehinfo.1[TE],__ehinfo.1184 185declare ptr @__cxa_allocate_exception(i32)186declare void @__cxa_throw(ptr, ptr, ptr)187declare i32 @__xlcxx_personality_v1(...)188declare i32 @llvm.eh.typeid.for(ptr)189declare ptr @__cxa_begin_catch(ptr)190declare void @__cxa_end_catch()191