blob: a424de3068d9e5b4d5c3751c7332dc1cb965d148 [file]
; RUN: llc -mtriple s390x-zos -filetype=obj %s -o %t.o
; RUN: llc -mtriple s390x-zos < %s | FileCheck %s
define { ptr, i32 } @fn_with_lpad() personality ptr @__zos_cxx_personality_v2 {
start:
%_0 = invoke double null(double 0.0, double 0.0, double 0.0)
to label %bb1 unwind label %terminate
terminate:
%0 = landingpad { ptr, i32 }
filter [0 x ptr] zeroinitializer
ret { ptr, i32 } %0
bb1:
ret { ptr, i32 } zeroinitializer
}
define double @fn_with_const_pool() {
start:
ret double 1.0 ; forces a constant pool entry (L#CPI1_0)
}
declare i32 @__zos_cxx_personality_v2(...)
; CHECK: C_WSA64 CATTR ALIGN(2),FILL(0),NOTEXECUTABLE,RMODE(64),PART(.gcc_excepti
; CHECK-NEXT: ion_table.fn_with_lpad)
; CHECK-NEXT: .gcc_exception_table.fn_with_lpad XATTR LINKAGE(XPLINK),REFERENCE(DATA),
; CHECK-NEXT: ,SCOPE(SECTION)
; CHECK-NEXT: DS 0B
; CHECK-NEXT: * @LPStart Encoding = omit
; CHECK-NEXT: DC XL1'FF'
; CHECK-NEXT: * @TType Encoding = absptr
; CHECK-NEXT: DC XL1'00'
; CHECK-NEXT: * Call site Encoding = uleb128
; CHECK-NEXT: DC XL1'01'
; CHECK-NEXT: * >> Call Site 1 <<
; CHECK-NEXT: * Call between L#tmp0 and L#tmp1
; CHECK-NEXT: * jumps to L#tmp2
; CHECK-NEXT: * On action: 1
; CHECK-NEXT: DC XL1'01'
; CHECK-NEXT: * >> Action Record 1 <<
; CHECK-NEXT: * Filter TypeInfo -1
; CHECK-NEXT: DC XL1'7F'
; CHECK-NEXT: * No further actions
; CHECK-NEXT: DC XL1'00'
; CHECK-NEXT: DS 0B
; CHECK-NEXT: * >> Filter TypeInfos <<
; CHECK-NEXT: DC XL1'00'
; CHECK-NEXT: DS 0B