unwind_test_x86_64_frameless.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 _test_rbx
.quad _test_rbx_r12
.quad _test_rbx_r12_r13
.quad _test_rbx_r12_r13_r14
.quad _test_rbx_r12_r13_r14_r15
.quad _test_rbx_rbp
.quad _test_rbx_rbp_r12
.quad _test_rbx_rbp_r12_r13
.quad _test_rbx_rbp_r12_r13_r14
.quad _test_rbx_rbp_r12_r13_r14_r15
.quad 0
.text
.globl _test_no_reg
_test_no_reg:
LFB13:
subq $8, %rsp
LCFI0:
call _uwind_to_main
addq $8, %rsp
ret
LFE13:
.globl _test_rbx
_test_rbx:
LFB10:
pushq %rbx
LCFI3:
movq $0, %rbx
call _uwind_to_main
popq %rbx
ret
LFE10:
.globl _test_rbx_r12
_test_rbx_r12:
LFB8:
movq %rbx, -16(%rsp)
LCFI5:
movq %r12, -8(%rsp)
LCFI6:
subq $24, %rsp
LCFI7:
movq $0, %rbx
movq $0, %r12
call _uwind_to_main
movq 8(%rsp), %rbx
movq 16(%rsp), %r12
addq $24, %rsp
ret
LFE8:
.globl _test_rbx_rbp
_test_rbx_rbp:
LFB7:
movq %rbx, -16(%rsp)
LCFI8:
movq %rbp, -8(%rsp)
LCFI9:
subq $24, %rsp
LCFI10:
movq $0, %rbp
movq $0, %rbx
call _uwind_to_main
movq 8(%rsp), %rbx
movq 16(%rsp), %rbp
addq $24, %rsp
ret
LFE7:
.globl _test_rbx_r12_r13
_test_rbx_r12_r13:
LFB6:
movq %rbx, -24(%rsp)
LCFI11:
movq %r12, -16(%rsp)
LCFI12:
movq %r13, -8(%rsp)
LCFI13:
subq $24, %rsp
LCFI14:
movq $0, %rbx
movq $0, %r12
movq $0, %r13
call _uwind_to_main
movq (%rsp), %rbx
movq 8(%rsp), %r12
movq 16(%rsp), %r13
addq $24, %rsp
ret
LFE6:
.globl _test_rbx_r12_r13_r14
_test_rbx_r12_r13_r14:
LFB4:
movq %rbx, -32(%rsp)
LCFI19:
movq %r12, -24(%rsp)
LCFI20:
movq %r13, -16(%rsp)
LCFI21:
movq %r14, -8(%rsp)
LCFI22:
subq $40, %rsp
LCFI23:
movq $0, %rbx
movq $0, %r12
movq $0, %r13
movq $0, %r14
call _uwind_to_main
movq 8(%rsp), %rbx
movq 16(%rsp), %r12
movq 24(%rsp), %r13
movq 32(%rsp), %r14
addq $40, %rsp
ret
LFE4:
.globl _test_rbx_r12_r13_r14_r15
_test_rbx_r12_r13_r14_r15:
LFB3:
movq %rbx, -40(%rsp)
LCFI24:
movq %r12, -32(%rsp)
LCFI25:
movq %r13, -24(%rsp)
LCFI26:
movq %r14, -16(%rsp)
LCFI27:
movq %r15, -8(%rsp)
LCFI28:
subq $40, %rsp
LCFI29:
movq $0, %rbx
movq $0, %r12
movq $0, %r13
movq $0, %r14
movq $0, %r15
call _uwind_to_main
movq (%rsp), %rbx
movq 8(%rsp), %r12
movq 16(%rsp), %r13
movq 24(%rsp), %r14
movq 32(%rsp), %r15
addq $40, %rsp
ret
LFE3:
.globl _test_rbx_rbp_r12_r13_r14_r15
_test_rbx_rbp_r12_r13_r14_r15:
LFB2:
movq %rbx, -48(%rsp)
LCFI30:
movq %rbp, -40(%rsp)
LCFI31:
movq %r12, -32(%rsp)
LCFI32:
movq %r13, -24(%rsp)
LCFI33:
movq %r14, -16(%rsp)
LCFI34:
movq %r15, -8(%rsp)
LCFI35:
subq $72, %rsp
LCFI36:
movq $0, %rbx
movq $0, %rbp
movq $0, %r12
movq $0, %r13
movq $0, %r14
movq $0, %r15
call _uwind_to_main
movq 24(%rsp), %rbx
movq 32(%rsp), %rbp
movq 40(%rsp), %r12
movq 48(%rsp), %r13
movq 56(%rsp), %r14
movq 64(%rsp), %r15
addq $72, %rsp
ret
LFE2:
.globl _test_rbx_rbp_r12
_test_rbx_rbp_r12:
LFB11:
movq %rbx, -24(%rsp)
movq %rbp, -16(%rsp)
movq %r12, -8(%rsp)
subq $24, %rsp
LCFI11a:
movq $0, %rbx
movq $0, %rbp
movq $0, %r12
call _uwind_to_main
movq (%rsp), %rbx
movq 8(%rsp), %rbp
movq 16(%rsp), %r12
addq $24, %rsp
ret
LFE11:
.globl _test_rbx_rbp_r12_r13
_test_rbx_rbp_r12_r13:
LFB457:
movq %rbx, -32(%rsp)
movq %rbp, -24(%rsp)
movq %r12, -16(%rsp)
movq %r13, -8(%rsp)
subq $40, %rsp
LFB457a:
movq $0, %rbx
movq $0, %rbp
movq $0, %r12
movq $0, %r13
call _uwind_to_main
movq 8(%rsp), %rbx
movq 16(%rsp), %rbp
movq 24(%rsp), %r12
movq 32(%rsp), %r13
addq $40, %rsp
ret
LFE457:
.globl _test_rbx_rbp_r12_r13_r14
_test_rbx_rbp_r12_r13_r14:
LFB17:
movq %rbx, -40(%rsp)
movq %rbp, -32(%rsp)
movq %r12, -24(%rsp)
movq %r13, -16(%rsp)
movq %r14, -8(%rsp)
subq $40, %rsp
LFB17a:
movq $0, %rbx
movq $0, %rbp
movq $0, %r12
movq $0, %r13
movq $0, %r14
call _uwind_to_main
movq (%rsp), %rbx
movq 8(%rsp), %rbp
movq 16(%rsp), %r12
movq 24(%rsp), %r13
movq 32(%rsp), %r14
addq $40, %rsp
ret
LFE17:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0 # Length of Common Information Entry
LSCIE1:
.long 0x0 # CIE Identifier Tag
.byte 0x1 # CIE Version
.ascii "zR\0" # CIE Augmentation
.byte 0x1 # uleb128 0x1 .byte 0x10 # CIE RA Column
.byte 0x1 # uleb128 0x1 .byte 0xc # DW_CFA_def_cfa
.byte 0x7 # uleb128 0x7
.byte 0x8 # uleb128 0x8
.byte 0x90 # DW_CFA_offset, column 0x10
.byte 0x1 # uleb128 0x1
.align 3
LECIE1:
.globl _test_no_reg.eh
_test_no_reg.eh:
LSFDE3:
.set L$set$3,LEFDE3-LASFDE3
.long L$set$3 # FDE Length
LASFDE3:
.long LASFDE3-EH_frame1 # FDE CIE offset
.quad LFB13-. # FDE initial location
.set L$set$4,LFE13-LFB13
.quad L$set$4 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$5,LCFI0-LFB13
.long L$set$5
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x10 # uleb128 0x10
.align 3
LEFDE3:
.globl _test_rbx.eh
_test_rbx.eh:
LSFDE9:
.set L$set$12,LEFDE9-LASFDE9
.long L$set$12 # FDE Length
LASFDE9:
.long LASFDE9-EH_frame1 # FDE CIE offset
.quad LFB10-. # FDE initial location
.set L$set$13,LFE10-LFB10
.quad L$set$13 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$14,LCFI3-LFB10
.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
.align 3
LEFDE9:
.globl _test_rbx_r12.eh
_test_rbx_r12.eh:
LSFDE13:
.set L$set$18,LEFDE13-LASFDE13
.long L$set$18 # FDE Length
LASFDE13:
.long LASFDE13-EH_frame1 # FDE CIE offset
.quad LFB8-. # FDE initial location
.set L$set$19,LFE8-LFB8
.quad L$set$19 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$20,LCFI7-LFB8
.long L$set$20
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x20 # uleb128 0x20
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x2 # uleb128 0x2
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x3 # uleb128 0x3
.align 3
LEFDE13:
.globl _test_rbx_rbp.eh
_test_rbx_rbp.eh:
LSFDE14:
.set L$set$21,LEFDE14-LASFDE14
.long L$set$21 # FDE Length
LASFDE14:
.long LASFDE14-EH_frame1 # FDE CIE offset
.quad LFB7-. # FDE initial location
.set L$set$22,LFE7-LFB7
.quad L$set$22 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$23,LCFI10-LFB7
.long L$set$23
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x20 # uleb128 0x20
.byte 0x86 # DW_CFA_offset, column 0x6
.byte 0x2 # uleb128 0x2
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x3 # uleb128 0x3
.align 3
LEFDE14:
.globl _test_rbx_r12_r13.eh
_test_rbx_r12_r13.eh:
LSFDE17:
.set L$set$24,LEFDE17-LASFDE17
.long L$set$24 # FDE Length
LASFDE17:
.long LASFDE17-EH_frame1 # FDE CIE offset
.quad LFB6-. # FDE initial location
.set L$set$25,LFE6-LFB6
.quad L$set$25 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$26,LCFI14-LFB6
.long L$set$26
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x20 # uleb128 0x20
.byte 0x8d # DW_CFA_offset, column 0xd
.byte 0x2 # uleb128 0x2
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x3 # uleb128 0x3
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x4 # uleb128 0x4
.align 3
LEFDE17:
.globl _test_rbx_r12_r13_r14.eh
_test_rbx_r12_r13_r14.eh:
LSFDE21:
.set L$set$30,LEFDE21-LASFDE21
.long L$set$30 # FDE Length
LASFDE21:
.long LASFDE21-EH_frame1 # FDE CIE offset
.quad LFB4-. # FDE initial location
.set L$set$31,LFE4-LFB4
.quad L$set$31 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$32,LCFI23-LFB4
.long L$set$32
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x30 # uleb128 0x30
.byte 0x8e # DW_CFA_offset, column 0xe
.byte 0x2 # uleb128 0x2
.byte 0x8d # DW_CFA_offset, column 0xd
.byte 0x3 # uleb128 0x3
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x4 # uleb128 0x4
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x5 # uleb128 0x5
.align 3
LEFDE21:
.globl _test_rbx_r12_r13_r14_r15.eh
_test_rbx_r12_r13_r14_r15.eh:
LSFDE23:
.set L$set$33,LEFDE23-LASFDE23
.long L$set$33 # FDE Length
LASFDE23:
.long LASFDE23-EH_frame1 # FDE CIE offset
.quad LFB3-. # FDE initial location
.set L$set$34,LFE3-LFB3
.quad L$set$34 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$35,LCFI29-LFB3
.long L$set$35
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x30 # uleb128 0x30
.byte 0x8f # DW_CFA_offset, column 0xf
.byte 0x2 # uleb128 0x2
.byte 0x8e # DW_CFA_offset, column 0xe
.byte 0x3 # uleb128 0x3
.byte 0x8d # DW_CFA_offset, column 0xd
.byte 0x4 # uleb128 0x4
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x5 # uleb128 0x5
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x6 # uleb128 0x6
.align 3
LEFDE23:
.globl _test_rbx_rbp_r12_r13_r14_r15.eh
_test_rbx_rbp_r12_r13_r14_r15.eh:
LSFDE25:
.set L$set$36,LEFDE25-LASFDE25
.long L$set$36 # FDE Length
LASFDE25:
.long LASFDE25-EH_frame1 # FDE CIE offset
.quad LFB2-. # FDE initial location
.set L$set$37,LFE2-LFB2
.quad L$set$37 # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$38,LCFI36-LFB2
.long L$set$38
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x50 # uleb128 0x50
.byte 0x8f # DW_CFA_offset, column 0xf
.byte 0x2 # uleb128 0x2
.byte 0x8e # DW_CFA_offset, column 0xe
.byte 0x3 # uleb128 0x3
.byte 0x8d # DW_CFA_offset, column 0xd
.byte 0x4 # uleb128 0x4
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x5 # uleb128 0x5
.byte 0x86 # DW_CFA_offset, column 0x6
.byte 0x6 # uleb128 0x6
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x7 # uleb128 0x7
.align 3
LEFDE25:
.globl _test_rbx_rbp_r12.eh
_test_rbx_rbp_r12.eh:
LSFDE11:
.set L$set$24a,LEFDE11-LASFDE11
.long L$set$24a # FDE Length
LASFDE11:
.long LASFDE11-EH_frame1 # FDE CIE offset
.quad LFB11-. # FDE initial location
.set L$set$25a,LFE11-LFB11
.quad L$set$25a # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$26a,LCFI11a-LFB11
.long L$set$26a
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x20 # uleb128 0x20
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x2 # uleb128 0x2
.byte 0x86 # DW_CFA_offset, column 0x6
.byte 0x3 # uleb128 0x3
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x4 # uleb128 0x4
.align 3
LEFDE11:
.globl _test_rbx_rbp_r12_r13.eh
_test_rbx_rbp_r12_r13.eh:
.set L$set$30a,LEFDE457-LASFDE457
.long L$set$30a # FDE Length
LASFDE457:
.long LASFDE457-EH_frame1 # FDE CIE offset
.quad LFB457-. # FDE initial location
.set L$set$31a,LFE457-LFB457
.quad L$set$31a # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$32a,LCFI23-LFB4
.long L$set$32a
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x30 # uleb128 0x30
.byte 0x8d # DW_CFA_offset, column 0xd
.byte 0x2 # uleb128 0x2
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x3 # uleb128 0x3
.byte 0x86 # DW_CFA_offset, column 0x6
.byte 0x4 # uleb128 0x4
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x5 # uleb128 0x5
.align 3
LEFDE457:
.globl _test_rbx_rbp_r12_r13_r14.eh
_test_rbx_rbp_r12_r13_r14.eh:
.set L$set$33a,LEFDE117-LASFDE117
.long L$set$33a # FDE Length
LASFDE117:
.long LASFDE117-EH_frame1 # FDE CIE offset
.quad LFB17-. # FDE initial location
.set L$set$34a,LFE17-LFB17
.quad L$set$34a # FDE address range
.byte 0x0 # uleb128 0x0 .set L$set$35a,LCFI29-LFB3
.long L$set$35a
.byte 0xe # DW_CFA_def_cfa_offset
.byte 0x30 # uleb128 0x30
.byte 0x8e # DW_CFA_offset, column 0xe
.byte 0x2 # uleb128 0x2
.byte 0x8d # DW_CFA_offset, column 0xd
.byte 0x3 # uleb128 0x3
.byte 0x8c # DW_CFA_offset, column 0xc
.byte 0x4 # uleb128 0x4
.byte 0x86 # DW_CFA_offset, column 0x6
.byte 0x5 # uleb128 0x5
.byte 0x83 # DW_CFA_offset, column 0x3
.byte 0x6 # uleb128 0x6
.align 3
LEFDE117:
.subsections_via_symbols