llvm/bolt/test/X86/Inputs/exc_args.s

	.file	"exc_args.cpp"
	.text
	.globl	_Z3fooiiiiiiii
	.type	_Z3fooiiiiiiii, @function
_Z3fooiiiiiiii:
.LFB15:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -4(%rbp)
	movl	%esi, -8(%rbp)
	movl	%edx, -12(%rbp)
	movl	%ecx, -16(%rbp)
	movl	%r8d, -20(%rbp)
	movl	%r9d, -24(%rbp)
	cmpl	$1, -4(%rbp)
	jle	.L2
	movl	$1, %edi
	call	__cxa_allocate_exception
	movl	$0, %edx
	movl	$_ZTI4ExcG, %esi
	movq	%rax, %rdi
	call	__cxa_throw
.L2:
	movl	$1, %edi
	call	__cxa_allocate_exception
	movl	$0, %edx
	movl	$_ZTI4ExcC, %esi
	movq	%rax, %rdi
	call	__cxa_throw
	.cfi_endproc
.LFE15:
	.size	_Z3fooiiiiiiii, .-_Z3fooiiiiiiii
	.globl	_Z11filter_onlyi
	.type	_Z11filter_onlyi, @function
_Z11filter_onlyi:
.LFB16:
	.cfi_startproc
	.cfi_personality 0x3,__gxx_personality_v0
	.cfi_lsda 0x3,.LLSDA16
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movl	%edi, -4(%rbp)
	movl	-4(%rbp), %eax
	pushq	$7
	pushq	$6
	movl	$5, %r9d
	movl	$4, %r8d
	movl	$3, %ecx
	movl	$2, %edx
	movl	$1, %esi
	movl	%eax, %edi
.LEHB0:
	.cfi_escape 0x2e,0x10
	call	_Z3fooiiiiiiii
.LEHE0:
	addq	$16, %rsp
	jmp	.L7
.L6:
	cmpq	$-1, %rdx
	je	.L5
	movq	%rax, %rdi
.LEHB1:
	call	_Unwind_Resume
.L5:
	movq	%rax, %rdi
	call	__cxa_call_unexpected
.LEHE1:
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table,"a",@progbits
	.align 4
.LLSDA16:
	.byte	0xff
	.byte	0x3
	.uleb128 .LLSDATT16-.LLSDATTD16
.LLSDATTD16:
	.byte	0x1
	.uleb128 .LLSDACSE16-.LLSDACSB16
.LLSDACSB16:
	.uleb128 .LEHB0-.LFB16
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L6-.LFB16
	.uleb128 0x1
	.uleb128 .LEHB1-.LFB16
	.uleb128 .LEHE1-.LEHB1
	.uleb128 0
	.uleb128 0
.LLSDACSE16:
	.byte	0x7f
	.byte	0
	.align 4
	.long	_ZTI4ExcA
	.long	_ZTI4ExcB
	.long	_ZTI4ExcC
	.long	_ZTI4ExcD
	.long	_ZTI4ExcE
	.long	_ZTI4ExcF
.LLSDATT16:
	.byte	0x1
	.byte	0x2
	.byte	0x3
	.byte	0x4
	.byte	0x5
	.byte	0x6
	.byte	0
	.text
	.size	_Z11filter_onlyi, .-_Z11filter_onlyi
	.section	.rodata
	.align 8
.LC0:
	.string	"this statement is cold and should be outlined"
	.text
	.globl	_Z12never_throwsv
	.type	_Z12never_throwsv, @function
_Z12never_throwsv:
.LFB17:
	.cfi_startproc
	.cfi_personality 0x3,__gxx_personality_v0
	.cfi_lsda 0x3,.LLSDA17
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	$.LC0, %edi
.LEHB2:
	call	puts
.LEHE2:
	jmp	.L12
.L11:
	cmpq	$-1, %rdx
	je	.L10
	movq	%rax, %rdi
.LEHB3:
	call	_Unwind_Resume
.L10:
	movq	%rax, %rdi
	call	__cxa_call_unexpected
.LEHE3:
.L12:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.section	.gcc_except_table,"a",@progbits
	.align 4
.LLSDA17:
	.byte	0xff
	.byte	0x3
	.uleb128 .LLSDATT17-.LLSDATTD17
.LLSDATTD17:
	.byte	0x1
	.uleb128 .LLSDACSE17-.LLSDACSB17
.LLSDACSB17:
	.uleb128 .LEHB2-.LFB17
	.uleb128 .LEHE2-.LEHB2
	.uleb128 .L11-.LFB17
	.uleb128 0x1
	.uleb128 .LEHB3-.LFB17
	.uleb128 .LEHE3-.LEHB3
	.uleb128 0
	.uleb128 0
.LLSDACSE17:
	.byte	0x7f
	.byte	0
	.align 4
.LLSDATT17:
	.byte	0
	.text
	.size	_Z12never_throwsv, .-_Z12never_throwsv
	.section	.rodata
.LC1:
	.string	"caught exception"
.LC2:
	.string	"caught ExcC"
	.text
	.globl	main
	.type	main, @function
main:
.LFB18:
	.cfi_startproc
	.cfi_personality 0x3,__gxx_personality_v0
	.cfi_lsda 0x3,.LLSDA18
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$40, %rsp
	.cfi_offset 3, -24
	movl	%edi, -36(%rbp)
	movq	%rsi, -48(%rbp)
	movl	$1768710518, -26(%rbp)
	movw	$100, -22(%rbp)
	movl	$0, -20(%rbp)
.L17:
	cmpl	$999999, -20(%rbp)
	ja	.L14
	cmpl	$2, -36(%rbp)
	jne	.L15
	call	_Z12never_throwsv
.L15:
	cmpl	$2, -36(%rbp)
	jne	.L16
	movl	-36(%rbp), %eax
	movl	%eax, %edi
.LEHB4:
	call	_Z11filter_onlyi
.LEHE4:
.L16:
	movl	-36(%rbp), %eax
	pushq	$7
	pushq	$6
	movl	$5, %r9d
	movl	$4, %r8d
	movl	$3, %ecx
	movl	$2, %edx
	movl	$1, %esi
	movl	%eax, %edi
.LEHB5:
	.cfi_escape 0x2e,0x10
	call	_Z3fooiiiiiiii
.LEHE5:
	addq	$16, %rsp
.L25:
	addl	$1, -20(%rbp)
	jmp	.L17
.L14:
	movl	$0, %eax
	jmp	.L31
.L27:
	movq	%rax, %rdi
	call	__cxa_begin_catch
	movl	$.LC1, %edi
	movl	$0, %eax
.LEHB6:
	.cfi_escape 0x2e,0
	call	printf
.LEHE6:
.LEHB7:
	call	__cxa_end_catch
.LEHE7:
	jmp	.L16
.L28:
	movq	%rax, %rbx
	call	__cxa_end_catch
	movq	%rbx, %rax
	movq	%rax, %rdi
.LEHB8:
	call	_Unwind_Resume
.L29:
	cmpq	$2, %rdx
	je	.L22
	movq	%rax, %rdi
	call	_Unwind_Resume
.LEHE8:
.L22:
	movq	%rax, %rdi
	call	__cxa_begin_catch
	movzbl	-26(%rbp), %eax
	cmpb	$118, %al
	je	.L23
	call	abort
.L23:
	movzbl	-25(%rbp), %eax
	cmpb	$97, %al
	je	.L24
	call	abort
.L24:
	movl	$.LC2, %edi
.LEHB9:
	call	puts
.LEHE9:
	call	__cxa_end_catch
	jmp	.L25
.L30:
	movq	%rax, %rbx
	call	__cxa_end_catch
	movq	%rbx, %rax
	movq	%rax, %rdi
.LEHB10:
	call	_Unwind_Resume
.LEHE10:
.L31:
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.section	.gcc_except_table,"a",@progbits
	.align 4
.LLSDA18:
	.byte	0xff
	.byte	0x3
	.uleb128 .LLSDATT18-.LLSDATTD18
.LLSDATTD18:
	.byte	0x1
	.uleb128 .LLSDACSE18-.LLSDACSB18
.LLSDACSB18:
	.uleb128 .LEHB4-.LFB18
	.uleb128 .LEHE4-.LEHB4
	.uleb128 .L27-.LFB18
	.uleb128 0x1
	.uleb128 .LEHB5-.LFB18
	.uleb128 .LEHE5-.LEHB5
	.uleb128 .L29-.LFB18
	.uleb128 0x3
	.uleb128 .LEHB6-.LFB18
	.uleb128 .LEHE6-.LEHB6
	.uleb128 .L28-.LFB18
	.uleb128 0
	.uleb128 .LEHB7-.LFB18
	.uleb128 .LEHE7-.LEHB7
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB8-.LFB18
	.uleb128 .LEHE8-.LEHB8
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB9-.LFB18
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L30-.LFB18
	.uleb128 0
	.uleb128 .LEHB10-.LFB18
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE18:
	.byte	0x1
	.byte	0
	.byte	0x2
	.byte	0
	.align 4
	.long	_ZTI4ExcC
	.long	0

.LLSDATT18:
	.text
	.size	main, .-main
	.weak	_ZTI4ExcF
	.section	.rodata._ZTI4ExcF,"aG",@progbits,_ZTI4ExcF,comdat
	.align 8
	.type	_ZTI4ExcF, @object
	.size	_ZTI4ExcF, 16
_ZTI4ExcF:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcF
	.weak	_ZTS4ExcF
	.section	.rodata._ZTS4ExcF,"aG",@progbits,_ZTS4ExcF,comdat
	.type	_ZTS4ExcF, @object
	.size	_ZTS4ExcF, 6
_ZTS4ExcF:
	.string	"4ExcF"
	.weak	_ZTI4ExcE
	.section	.rodata._ZTI4ExcE,"aG",@progbits,_ZTI4ExcE,comdat
	.align 8
	.type	_ZTI4ExcE, @object
	.size	_ZTI4ExcE, 16
_ZTI4ExcE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcE
	.weak	_ZTS4ExcE
	.section	.rodata._ZTS4ExcE,"aG",@progbits,_ZTS4ExcE,comdat
	.type	_ZTS4ExcE, @object
	.size	_ZTS4ExcE, 6
_ZTS4ExcE:
	.string	"4ExcE"
	.weak	_ZTI4ExcD
	.section	.rodata._ZTI4ExcD,"aG",@progbits,_ZTI4ExcD,comdat
	.align 8
	.type	_ZTI4ExcD, @object
	.size	_ZTI4ExcD, 16
_ZTI4ExcD:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcD
	.weak	_ZTS4ExcD
	.section	.rodata._ZTS4ExcD,"aG",@progbits,_ZTS4ExcD,comdat
	.type	_ZTS4ExcD, @object
	.size	_ZTS4ExcD, 6
_ZTS4ExcD:
	.string	"4ExcD"
	.weak	_ZTI4ExcB
	.section	.rodata._ZTI4ExcB,"aG",@progbits,_ZTI4ExcB,comdat
	.align 8
	.type	_ZTI4ExcB, @object
	.size	_ZTI4ExcB, 16
_ZTI4ExcB:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcB
	.weak	_ZTS4ExcB
	.section	.rodata._ZTS4ExcB,"aG",@progbits,_ZTS4ExcB,comdat
	.type	_ZTS4ExcB, @object
	.size	_ZTS4ExcB, 6
_ZTS4ExcB:
	.string	"4ExcB"
	.weak	_ZTI4ExcA
	.section	.rodata._ZTI4ExcA,"aG",@progbits,_ZTI4ExcA,comdat
	.align 8
	.type	_ZTI4ExcA, @object
	.size	_ZTI4ExcA, 16
_ZTI4ExcA:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcA
	.weak	_ZTS4ExcA
	.section	.rodata._ZTS4ExcA,"aG",@progbits,_ZTS4ExcA,comdat
	.type	_ZTS4ExcA, @object
	.size	_ZTS4ExcA, 6
_ZTS4ExcA:
	.string	"4ExcA"
	.weak	_ZTI4ExcC
	.section	.rodata._ZTI4ExcC,"aG",@progbits,_ZTI4ExcC,comdat
	.align 8
	.type	_ZTI4ExcC, @object
	.size	_ZTI4ExcC, 16
_ZTI4ExcC:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcC
	.weak	_ZTS4ExcC
	.section	.rodata._ZTS4ExcC,"aG",@progbits,_ZTS4ExcC,comdat
	.type	_ZTS4ExcC, @object
	.size	_ZTS4ExcC, 6
_ZTS4ExcC:
	.string	"4ExcC"
	.weak	_ZTI4ExcG
	.section	.rodata._ZTI4ExcG,"aG",@progbits,_ZTI4ExcG,comdat
	.align 8
	.type	_ZTI4ExcG, @object
	.size	_ZTI4ExcG, 16
_ZTI4ExcG:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTS4ExcG
	.weak	_ZTS4ExcG
	.section	.rodata._ZTS4ExcG,"aG",@progbits,_ZTS4ExcG,comdat
	.type	_ZTS4ExcG, @object
	.size	_ZTS4ExcG, 6
_ZTS4ExcG:
	.string	"4ExcG"
	.ident	"GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-3)"
	.section	.note.GNU-stack,"",@progbits