unwind_test_x86_64_unusual.s [plain text]
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind
.data
.globl _unwind_tester_list
_unwind_tester_list:
.quad _test_no_reg
.quad Ltest_rbx
.quad _test_rbx_pad_r12
.quad _test_rbx_same_value
.quad _test_rbx_same_register
.quad 0
.text
.globl _test_big_frameless_stack_odd_dwarf
_test_big_frameless_stack_odd_dwarf:
L100:
subq $160016, %rsp
L102:
movq $0, %rbx
call _uwind_to_main
addq $160016, %rsp
ret
L103:
LFE14:
.globl _test_no_reg
_test_no_reg:
LFB13:
pushq %rbp
LCFI2:
movq %rsp, %rbp
LCFI3:
call _uwind_to_main
leave
ret
LFE13:
Ltest_rbx:
LFB10:
pushq %rbp
LCFI8:
movq %rsp, %rbp
LCFI9:
pushq %rbx
LCFI10:
subq $8, %rsp
LCFI11:
movq $0, %rbx
call _uwind_to_main
addq $8, %rsp
popq %rbx
leave
ret
LFE10:
.globl _test_rbx_pad_r12
_test_rbx_pad_r12:
LFB8:
pushq %rbp
LCFI16:
movq %rsp, %rbp
LCFI17:
movq %rbx, -56(%rbp)
LCFI18:
movq %r12, -8(%rbp)
LCFI19:
subq $64, %rsp
LCFI20:
movq $0, %rbx
movq $0, %r12
call _uwind_to_main
movq (%rsp), %rbx
movq 8(%rsp), %r12
leave
ret
LFE8:
.globl _test_rbx_same_value
_test_rbx_same_value:
LFB10b:
jmp L33
pushq %rbx
LCFI3b:
movq $0, %rbx
call _uwind_to_main
popq %rbx
ret
L33:
pushq $0
call _uwind_to_main
popq %rax
ret
LFE10b:
.globl _test_rbx_same_register
_test_rbx_same_register:
LFB10c:
jmp L34
pushq %rbx
LCFI3c:
movq $0, %rbx
call _uwind_to_main
popq %rbx
ret
L34:
pushq $0
call _uwind_to_main
popq %rax
ret
LFE10c:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0
LSCIE1:
.long 0x0
.byte 0x1
.ascii "zR\0"
.byte 0x1
.byte 0x78
.byte 0x10
.byte 0x1
.byte 0x10
.byte 0xc
.byte 0x7
.byte 0x8
.byte 0x90
.byte 0x1
.align 3
LECIE1:
.globl _test_no_reg.eh
_test_no_reg.eh:
LSFDE3:
.set L$set$5,LEFDE3-LASFDE3
.long L$set$5
LASFDE3:
.long LASFDE3-EH_frame1
.quad LFB13-.
.set L$set$6,LFE13-LFB13
.quad L$set$6
.byte 0x0
.byte 0x4
.set L$set$7,LCFI2-LFB13
.long L$set$7
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$8,LCFI3-LCFI2
.long L$set$8
.byte 0xd
.byte 0x6
.align 3
LEFDE3:
Ltest_rbx.eh:
LSFDE9:
.set L$set$17,LEFDE9-LASFDE9
.long L$set$17
LASFDE9:
.long LASFDE9-EH_frame1
.quad LFB10-.
.set L$set$18,LFE10-LFB10
.quad L$set$18
.byte 0x0
.byte 0x4
.set L$set$19,LCFI8-LFB10
.long L$set$19
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$20,LCFI9-LCFI8
.long L$set$20
.byte 0xd
.byte 0x6
.byte 0x4
.set L$set$21,LCFI11-LCFI9
.long L$set$21
.byte 0x83
.byte 0x3
.align 3
LEFDE9:
.globl _test_rbx_pad_r12.eh
_test_rbx_pad_r12.eh:
LSFDE13:
.set L$set$27,LEFDE13-LASFDE13
.long L$set$27
LASFDE13:
.long LASFDE13-EH_frame1
.quad LFB8-.
.set L$set$28,LFE8-LFB8
.quad L$set$28
.byte 0x0
.byte 0x4
.set L$set$29,LCFI16-LFB8
.long L$set$29
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$30,LCFI17-LCFI16
.long L$set$30
.byte 0xd
.byte 0x6
.byte 0x4
.set L$set$31,LCFI20-LCFI17
.long L$set$31
.byte 0x8c
.byte 0x3
.byte 0x83
.byte 0x9
.align 3
LEFDE13:
.globl _test_big_frameless_stack_odd_dwarf.eh
_test_big_frameless_stack_odd_dwarf.eh:
.set L$set$12a,LEFDE9a-LASFDE9a
.long L$set$12a # FDE Length
LASFDE9a:
.long LASFDE9a-EH_frame1 # FDE CIE offset
.quad L100-. # FDE initial location
.set L$set$13a,L103-L100
.quad L$set$13a # FDE address range
.byte 0x0 # uleb128 0x0 .long 7
.byte 0xc # DW_CFA_def_cfa
.byte 0x07 # uleb128 7
.byte 0x90,0xe2,0x9 # uleb128 0x27110
.align 3
LEFDE9a:
.globl _test_rbx_same_value.eh
_test_rbx_same_value.eh:
LSFDE9b:
.set L$set$12,LEFDE9b-LASFDE9b
.long L$set$12 # FDE Length
LASFDE9b:
.long LASFDE9b-EH_frame1 # FDE CIE offset
.quad LFB10b-. # FDE initial location
.set L$set$13,LFE10b-LFB10b
.quad L$set$13 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$14,LCFI3b-LFB10b
.long L$set$14
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x10 # uleb128 0x10
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x2 # uleb128 0x2
.byte 0x4 # DW_CFA_advance_loc4
.set L$set$15,L33-LCFI3b
.long L$set$15
.byte 0x08 # DW_CFA_same_value
.byte 0x3 # uleb128 0x3
.align 3
LEFDE9b:
.globl _test_rbx_same_register.eh
_test_rbx_same_register.eh:
LSFDE9c:
.set L$set$12c,LEFDE9c-LASFDE9c
.long L$set$12c # FDE Length
LASFDE9c:
.long LASFDE9c-EH_frame1 # FDE CIE offset
.quad LFB10c-. # FDE initial location
.set L$set$16c,LFE10c-LFB10c
.quad L$set$16c # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$17c,LCFI3c-LFB10c
.long L$set$17c
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x10 # uleb128 0x10
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x2 # uleb128 0x2
.byte 0x4 # DW_CFA_advance_loc4
.set L$set$18c,L34-LCFI3c
.long L$set$18c
.byte 0x09 # DW_CFA_register
.byte 0x3 # uleb128 0x3
.byte 0x3 # uleb128 0x3
.align 3
LEFDE9c: