exception_32bit_lsda.s [plain text]
// TEST-OPTIONS: -arch x86_64 -lstdc++ -Wl,-no_compact_unwind
.section __TEXT,__text,regular,pure_instructions
.globl __Z3foov
.align 4, 0x90
__Z3foov:
Leh_func_begin1:
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
subq $16, %rsp
Ltmp2:
movabsq $4, %rax
movq %rax, %rdi
callq ___cxa_allocate_exception
movq %rax, -16(%rbp)
movq -16(%rbp), %rax
movl $10, (%rax)
movq -16(%rbp), %rax
movq __ZTIi@GOTPCREL(%rip), %rcx
leaq (%rcx), %rcx
movabsq $0, %rdx
movq %rax, %rdi
movq %rcx, %rsi
callq ___cxa_throw
Leh_func_end1:
.globl _main
.align 4, 0x90
_main:
Leh_func_begin2:
pushq %rbp
Ltmp6:
movq %rsp, %rbp
Ltmp7:
subq $48, %rsp
Ltmp8:
movl $1, -28(%rbp)
movl $2, -28(%rbp)
Ltmp3:
callq __Z3foov
Ltmp4:
jmp LBB2_1
LBB2_1:
movl $3, -28(%rbp)
jmp LBB2_10
LBB2_2:
movq -40(%rbp), %rax
movq %rax, %rdi
callq ___cxa_begin_catch
movq %rax, -24(%rbp)
movq -24(%rbp), %rax
movl (%rax), %eax
movl %eax, -32(%rbp)
movl -28(%rbp), %eax
cmpl $2, %eax
je LBB2_4
movl $1, -12(%rbp)
movl -12(%rbp), %eax
movl %eax, -12(%rbp)
movl -12(%rbp), %eax
movl %eax, -12(%rbp)
movl $0, -8(%rbp)
jmp LBB2_7
LBB2_4:
movl -32(%rbp), %eax
cmpl $10, %eax
je LBB2_6
movl $1, -12(%rbp)
movl -12(%rbp), %eax
movl %eax, -12(%rbp)
movl -12(%rbp), %eax
movl %eax, -12(%rbp)
movl $0, -8(%rbp)
jmp LBB2_7
LBB2_6:
movl $4, -28(%rbp)
movl $1, -8(%rbp)
LBB2_7:
callq ___cxa_end_catch
movl -8(%rbp), %eax
cmpl $1, %eax
jne LBB2_9
jmp LBB2_10
LBB2_9:
jmp LBB2_13
LBB2_10:
movl -28(%rbp), %eax
cmpl $4, %eax
jne LBB2_12
movl $0, -12(%rbp)
jmp LBB2_13
LBB2_12:
movl $1, -12(%rbp)
LBB2_13:
movl -12(%rbp), %eax
movl %eax, -4(%rbp)
movl -4(%rbp), %eax
addq $48, %rsp
popq %rbp
ret
LBB2_15:
Ltmp5:
movq %rax, -40(%rbp)
movq -40(%rbp), %rax
movl %edx, %eax
movl %eax, -44(%rbp)
movl $2, %eax
movl -44(%rbp), %ecx
cmpl %eax, %ecx
je LBB2_2
movq -40(%rbp), %rax
movq %rax, %rdi
callq __Unwind_Resume_or_Rethrow
Leh_func_end2:
.section __TEXT,__gcc_except_tab
.align 2
GCC_except_table2:
Lexception2:
.byte 255
.byte 155
.byte 168
.space 1
.byte 3
.byte 26
Lset0 = Ltmp3-Leh_func_begin2
.long Lset0
Lset1 = Ltmp4-Ltmp3
.long Lset1
Lset2 = Ltmp5-Leh_func_begin2
.long Lset2
.byte 3
Lset3 = Ltmp4-Leh_func_begin2
.long Lset3
Lset4 = Leh_func_end2-Ltmp4
.long Lset4
.long 0
.byte 0
.byte 1
.byte 0
.byte 2
.byte 125
.long __ZTIi@GOTPCREL+4
.long 0
.align 2
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame0:
Lsection_eh_frame:
Leh_frame_common:
Lset5 = Leh_frame_common_end-Leh_frame_common_begin
.long Lset5
Leh_frame_common_begin:
.long 0
.byte 1
.asciz "zPLR"
.byte 1
.byte 120
.byte 16
.byte 7
.byte 155
.long ___gxx_personality_v0@GOTPCREL+4
.byte 0x1B // lsda encoding DW_EH_PE_pcrel + DW_EH_PE_sdata4
.byte 16
.byte 12
.byte 7
.byte 8
.byte 144
.byte 1
.align 3
Leh_frame_common_end:
.globl __Z3foov.eh
__Z3foov.eh:
Lset6 = Leh_frame_end1-Leh_frame_begin1
.long Lset6
Leh_frame_begin1:
Lset7 = Leh_frame_begin1-Leh_frame_common
.long Lset7
Ltmp9:
.quad Leh_func_begin1-Ltmp9
Lset8 = Leh_func_end1-Leh_func_begin1
.quad Lset8
.byte 4
.long 0
.byte 4
Lset9 = Ltmp0-Leh_func_begin1
.long Lset9
.byte 14
.byte 16
.byte 134
.byte 2
.byte 4
Lset10 = Ltmp1-Ltmp0
.long Lset10
.byte 13
.byte 6
.align 3
Leh_frame_end1:
.globl _main.eh
_main.eh:
Lset11 = Leh_frame_end2-Leh_frame_begin2
.long Lset11
Leh_frame_begin2:
Lset12 = Leh_frame_begin2-Leh_frame_common
.long Lset12
Ltmp10:
.quad Leh_func_begin2-Ltmp10
Lset13 = Leh_func_end2-Leh_func_begin2
.quad Lset13
.byte 4
Ltmp11:
.long Lexception2-Ltmp11
.byte 4
Lset14 = Ltmp6-Leh_func_begin2
.long Lset14
.byte 14
.byte 16
.byte 134
.byte 2
.byte 4
Lset15 = Ltmp7-Ltmp6
.long Lset15
.byte 13
.byte 6
.align 3
Leh_frame_end2:
.subsections_via_symbols