1 2# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 3# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind 4 5 6 .data 7.globl _unwind_tester_list 8_unwind_tester_list: 9 .quad _test_no_reg 10 .quad Ltest_rbx 11 .quad _test_rbx_pad_r12 12 .quad _test_rbx_same_value 13 .quad _test_rbx_same_register 14 .quad 0 15 16 17 .text 18 19 20.globl _test_big_frameless_stack_odd_dwarf 21_test_big_frameless_stack_odd_dwarf: 22L100: 23 subq $160016, %rsp 24L102: 25 movq $0, %rbx 26 call _uwind_to_main 27 addq $160016, %rsp 28 ret 29L103: 30 31 32LFE14: 33.globl _test_no_reg 34_test_no_reg: 35LFB13: 36 pushq %rbp 37LCFI2: 38 movq %rsp, %rbp 39LCFI3: 40 call _uwind_to_main 41 leave 42 ret 43LFE13: 44 45 46Ltest_rbx: 47LFB10: 48 pushq %rbp 49LCFI8: 50 movq %rsp, %rbp 51LCFI9: 52 pushq %rbx 53LCFI10: 54 subq $8, %rsp 55LCFI11: 56 movq $0, %rbx 57 call _uwind_to_main 58 addq $8, %rsp 59 popq %rbx 60 leave 61 ret 62LFE10: 63 64 65.globl _test_rbx_pad_r12 66_test_rbx_pad_r12: 67LFB8: 68 pushq %rbp 69LCFI16: 70 movq %rsp, %rbp 71LCFI17: 72 movq %rbx, -56(%rbp) 73LCFI18: 74 movq %r12, -8(%rbp) 75LCFI19: 76 subq $64, %rsp 77LCFI20: 78 movq $0, %rbx 79 movq $0, %r12 80 call _uwind_to_main 81 movq (%rsp), %rbx 82 movq 8(%rsp), %r12 83 leave 84 ret 85LFE8: 86 87 88.globl _test_rbx_same_value 89_test_rbx_same_value: 90LFB10b: 91 jmp L33 92 pushq %rbx 93LCFI3b: 94 movq $0, %rbx 95 call _uwind_to_main 96 popq %rbx 97 ret 98L33: 99 pushq $0 100 call _uwind_to_main 101 popq %rax 102 ret 103LFE10b: 104 105 106.globl _test_rbx_same_register 107_test_rbx_same_register: 108LFB10c: 109 jmp L34 110 pushq %rbx 111LCFI3c: 112 movq $0, %rbx 113 call _uwind_to_main 114 popq %rbx 115 ret 116L34: 117 pushq $0 118 call _uwind_to_main 119 popq %rax 120 ret 121LFE10c: 122 123 124 125 126 .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support 127EH_frame1: 128 .set L$set$0,LECIE1-LSCIE1 129 .long L$set$0 130LSCIE1: 131 .long 0x0 132 .byte 0x1 133 .ascii "zR\0" 134 .byte 0x1 135 .byte 0x78 136 .byte 0x10 137 .byte 0x1 138 .byte 0x10 139 .byte 0xc 140 .byte 0x7 141 .byte 0x8 142 .byte 0x90 143 .byte 0x1 144 .align 3 145LECIE1: 146 147.globl _test_no_reg.eh 148_test_no_reg.eh: 149LSFDE3: 150 .set L$set$5,LEFDE3-LASFDE3 151 .long L$set$5 152LASFDE3: 153 .long LASFDE3-EH_frame1 154 .quad LFB13-. 155 .set L$set$6,LFE13-LFB13 156 .quad L$set$6 157 .byte 0x0 158 .byte 0x4 159 .set L$set$7,LCFI2-LFB13 160 .long L$set$7 161 .byte 0xe 162 .byte 0x10 163 .byte 0x86 164 .byte 0x2 165 .byte 0x4 166 .set L$set$8,LCFI3-LCFI2 167 .long L$set$8 168 .byte 0xd 169 .byte 0x6 170 .align 3 171LEFDE3: 172 173Ltest_rbx.eh: 174LSFDE9: 175 .set L$set$17,LEFDE9-LASFDE9 176 .long L$set$17 177LASFDE9: 178 .long LASFDE9-EH_frame1 179 .quad LFB10-. 180 .set L$set$18,LFE10-LFB10 181 .quad L$set$18 182 .byte 0x0 183 .byte 0x4 184 .set L$set$19,LCFI8-LFB10 185 .long L$set$19 186 .byte 0xe 187 .byte 0x10 188 .byte 0x86 189 .byte 0x2 190 .byte 0x4 191 .set L$set$20,LCFI9-LCFI8 192 .long L$set$20 193 .byte 0xd 194 .byte 0x6 195 .byte 0x4 196 .set L$set$21,LCFI11-LCFI9 197 .long L$set$21 198 .byte 0x83 199 .byte 0x3 200 .align 3 201LEFDE9: 202 203.globl _test_rbx_pad_r12.eh 204_test_rbx_pad_r12.eh: 205LSFDE13: 206 .set L$set$27,LEFDE13-LASFDE13 207 .long L$set$27 208LASFDE13: 209 .long LASFDE13-EH_frame1 210 .quad LFB8-. 211 .set L$set$28,LFE8-LFB8 212 .quad L$set$28 213 .byte 0x0 214 .byte 0x4 215 .set L$set$29,LCFI16-LFB8 216 .long L$set$29 217 .byte 0xe 218 .byte 0x10 219 .byte 0x86 220 .byte 0x2 221 .byte 0x4 222 .set L$set$30,LCFI17-LCFI16 223 .long L$set$30 224 .byte 0xd 225 .byte 0x6 226 .byte 0x4 227 .set L$set$31,LCFI20-LCFI17 228 .long L$set$31 229 .byte 0x8c 230 .byte 0x3 231 .byte 0x83 232 .byte 0x9 233 .align 3 234LEFDE13: 235 236 237 238.globl _test_big_frameless_stack_odd_dwarf.eh 239_test_big_frameless_stack_odd_dwarf.eh: 240 .set L$set$12a,LEFDE9a-LASFDE9a 241 .long L$set$12a # FDE Length 242LASFDE9a: 243 .long LASFDE9a-EH_frame1 # FDE CIE offset 244 .quad L100-. # FDE initial location 245 .set L$set$13a,L103-L100 246 .quad L$set$13a # FDE address range 247 .byte 0x0 # uleb128 0x0; Augmentation size 248 .byte 0x4 # DW_CFA_advance_loc4 249 .long 7 250 .byte 0xc # DW_CFA_def_cfa 251 .byte 0x07 # uleb128 7 252 .byte 0x90,0xe2,0x9 # uleb128 0x27110 253 .align 3 254LEFDE9a: 255 256 257.globl _test_rbx_same_value.eh 258_test_rbx_same_value.eh: 259LSFDE9b: 260 .set L$set$12,LEFDE9b-LASFDE9b 261 .long L$set$12 # FDE Length 262LASFDE9b: 263 .long LASFDE9b-EH_frame1 # FDE CIE offset 264 .quad LFB10b-. # FDE initial location 265 .set L$set$13,LFE10b-LFB10b 266 .quad L$set$13 # FDE address range 267 .byte 0x0 # uleb128 0x0; Augmentation size 268 .byte 0x4 # DW_CFA_advance_loc4 269 .set L$set$14,LCFI3b-LFB10b 270 .long L$set$14 271 .byte 0xe # DW_CFA_def_cfa_offset 272 .byte 0x10 # uleb128 0x10 273 .byte 0x83 # DW_CFA_offset, column 0x3 274 .byte 0x2 # uleb128 0x2 275 .byte 0x4 # DW_CFA_advance_loc4 276 .set L$set$15,L33-LCFI3b 277 .long L$set$15 278 .byte 0x08 # DW_CFA_same_value 279 .byte 0x3 # uleb128 0x3 280 .align 3 281LEFDE9b: 282 283 284.globl _test_rbx_same_register.eh 285_test_rbx_same_register.eh: 286LSFDE9c: 287 .set L$set$12c,LEFDE9c-LASFDE9c 288 .long L$set$12c # FDE Length 289LASFDE9c: 290 .long LASFDE9c-EH_frame1 # FDE CIE offset 291 .quad LFB10c-. # FDE initial location 292 .set L$set$16c,LFE10c-LFB10c 293 .quad L$set$16c # FDE address range 294 .byte 0x0 # uleb128 0x0; Augmentation size 295 .byte 0x4 # DW_CFA_advance_loc4 296 .set L$set$17c,LCFI3c-LFB10c 297 .long L$set$17c 298 .byte 0xe # DW_CFA_def_cfa_offset 299 .byte 0x10 # uleb128 0x10 300 .byte 0x83 # DW_CFA_offset, column 0x3 301 .byte 0x2 # uleb128 0x2 302 .byte 0x4 # DW_CFA_advance_loc4 303 .set L$set$18c,L34-LCFI3c 304 .long L$set$18c 305 .byte 0x09 # DW_CFA_register 306 .byte 0x3 # uleb128 0x3 307 .byte 0x3 # uleb128 0x3 308 .align 3 309LEFDE9c: 310 311 312