forked from OSchip/llvm-project
457 lines
8.2 KiB
ArmAsm
Executable File
457 lines
8.2 KiB
ArmAsm
Executable File
.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
|