1 2# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 3 4 5 .data 6.globl _unwind_tester_list 7_unwind_tester_list: 8 .quad _test_no_reg 9 .quad _test_rbx 10 .quad _test_rbx_r12 11 .quad _test_rbx_r14 12 .quad _test_rbx_r12_r13 13 .quad _test_rbx_r12_r13_r14 14 .quad _test_r14_r13_r12_rbx 15 .quad _test_rbx_r12_r13_r14_r15 16 .quad _test_r13_rbx_r14_r15_r12 17 .quad 0 18 19 20 .text 21 22LFE14: 23.globl _test_no_reg 24_test_no_reg: 25LFB13: 26 pushq %rbp 27LCFI2: 28 movq %rsp, %rbp 29LCFI3: 30 call _uwind_to_main 31 leave 32 ret 33LFE13: 34 35 36.globl _test_rbx 37_test_rbx: 38LFB10: 39 pushq %rbp 40LCFI8: 41 movq %rsp, %rbp 42LCFI9: 43 pushq %rbx 44LCFI10: 45 subq $8, %rsp 46LCFI11: 47 movq $0, %rbx 48 call _uwind_to_main 49 addq $8, %rsp 50 popq %rbx 51 leave 52 ret 53LFE10: 54 55 56.globl _test_rbx_r12 57_test_rbx_r12: 58LFB8: 59 pushq %rbp 60LCFI16: 61 movq %rsp, %rbp 62LCFI17: 63 movq %rbx, -16(%rbp) 64LCFI18: 65 movq %r12, -8(%rbp) 66LCFI19: 67 subq $16, %rsp 68LCFI20: 69 movq $0, %rbx 70 movq $0, %r12 71 call _uwind_to_main 72 movq (%rsp), %rbx 73 movq 8(%rsp), %r12 74 leave 75 ret 76LFE8: 77 78 79.globl _test_rbx_r14 80_test_rbx_r14: 81LFB8a: 82 pushq %rbp 83LCFI16a: 84 movq %rsp, %rbp 85LCFI17a: 86 movq %rbx, -16(%rbp) 87LCFI18a: 88 movq %r14, -8(%rbp) 89LCFI19a: 90 subq $16, %rsp 91LCFI20a: 92 movq $0, %rbx 93 movq $0, %r14 94 call _uwind_to_main 95 movq (%rsp), %rbx 96 movq 8(%rsp), %r14 97 leave 98 ret 99LFE8a: 100 101 102.globl _test_rbx_r12_r13 103_test_rbx_r12_r13: 104LFB6: 105 pushq %rbp 106LCFI26: 107 movq %rsp, %rbp 108LCFI27: 109 movq %rbx, -24(%rbp) 110LCFI28: 111 movq %r12, -16(%rbp) 112LCFI29: 113 movq %r13, -8(%rbp) 114LCFI30: 115 subq $32, %rsp 116LCFI31: 117 movq $0, %rbx 118 movq $0, %r12 119 movq $0, %r13 120 call _uwind_to_main 121 movq -24(%rbp), %rbx 122 movq -16(%rbp), %r12 123 movq -8(%rbp), %r13 124 leave 125 ret 126LFE6: 127 128.globl _test_rbx_r12_r13_r14 129_test_rbx_r12_r13_r14: 130LFB4: 131 pushq %rbp 132LCFI38: 133 movq %rsp, %rbp 134LCFI39: 135 movq %rbx, -32(%rbp) 136LCFI40: 137 movq %r12, -24(%rbp) 138LCFI41: 139 movq %r13, -16(%rbp) 140LCFI42: 141 movq %r14, -8(%rbp) 142LCFI43: 143 subq $32, %rsp 144LCFI44: 145 movq $0, %rbx 146 movq $0, %r12 147 movq $0, %r13 148 movq $0, %r14 149 call _uwind_to_main 150 movq (%rsp), %rbx 151 movq 8(%rsp), %r12 152 movq 16(%rsp), %r13 153 movq 24(%rsp), %r14 154 leave 155 ret 156LFE4: 157 158.globl _test_r14_r13_r12_rbx 159_test_r14_r13_r12_rbx: 160LFB4a: 161 pushq %rbp 162LCFI38a: 163 movq %rsp, %rbp 164LCFI39a: 165 movq %r14, -32(%rbp) 166LCFI40a: 167 movq %r13, -24(%rbp) 168LCFI41a: 169 movq %r12, -16(%rbp) 170LCFI42a: 171 movq %rbx, -8(%rbp) 172LCFI43a: 173 subq $32, %rsp 174LCFI44a: 175 movq $0, %r14 176 movq $0, %r13 177 movq $0, %r12 178 movq $0, %rbx 179 call _uwind_to_main 180 movq -32(%rbp), %r14 181 movq -24(%rbp), %r13 182 movq -16(%rbp), %r12 183 movq -8(%rbp), %rbx 184 leave 185 ret 186LFE4a: 187 188 189.globl _test_rbx_r12_r13_r14_r15 190_test_rbx_r12_r13_r14_r15: 191LFB3: 192 pushq %rbp 193LCFI45: 194 movq %rsp, %rbp 195LCFI46: 196 movq %rbx, -40(%rbp) 197LCFI47: 198 movq %r12, -32(%rbp) 199LCFI48: 200 movq %r13, -24(%rbp) 201LCFI49: 202 movq %r14, -16(%rbp) 203LCFI50: 204 movq %r15, -8(%rbp) 205LCFI51: 206 subq $48, %rsp 207LCFI52: 208 movq $0, %rbx 209 movq $0, %r12 210 movq $0, %r13 211 movq $0, %r14 212 call _uwind_to_main 213 movq -40(%rbp), %rbx 214 movq -32(%rbp), %r12 215 movq -24(%rbp), %r13 216 movq -16(%rbp), %r14 217 movq -8(%rbp), %r15 218 leave 219 ret 220LFE3: 221 222 223.globl _test_r13_rbx_r14_r15_r12 224_test_r13_rbx_r14_r15_r12: 225LFB3a: 226 pushq %rbp 227LCFI45a: 228 movq %rsp, %rbp 229LCFI46a: 230 movq %r13, -40(%rbp) 231LCFI47a: 232 movq %rbx, -32(%rbp) 233LCFI48a: 234 movq %r14, -24(%rbp) 235LCFI49a: 236 movq %r15, -16(%rbp) 237LCFI50a: 238 movq %r12, -8(%rbp) 239LCFI51a: 240 subq $48, %rsp 241LCFI52a: 242 movq $0, %rbx 243 movq $0, %r12 244 movq $0, %r13 245 movq $0, %r14 246 movq $0, %r15 247 call _uwind_to_main 248 movq -40(%rbp), %r13 249 movq -32(%rbp), %rbx 250 movq -24(%rbp), %r14 251 movq -16(%rbp), %r15 252 movq -8(%rbp), %r12 253 leave 254 ret 255LFE3a: 256 257 258 259 260 .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support 261EH_frame1: 262 .set L$set$0,LECIE1-LSCIE1 263 .long L$set$0 264LSCIE1: 265 .long 0x0 266 .byte 0x1 267 .ascii "zR\0" 268 .byte 0x1 269 .byte 0x78 270 .byte 0x10 271 .byte 0x1 272 .byte 0x10 273 .byte 0xc 274 .byte 0x7 275 .byte 0x8 276 .byte 0x90 // DW_CFA_offset(ret_addr, -8) 277 .byte 0x1 278 .byte 0x90 // DW_CFA_offset(ret_addr, -8) 279 .byte 0x1 // this repeat is idiom that means don't create compact unwind info 280 .align 3 281LECIE1: 282 283.globl _test_no_reg.eh 284_test_no_reg.eh: 285LSFDE3: 286 .set L$set$5,LEFDE3-LASFDE3 287 .long L$set$5 288LASFDE3: 289 .long LASFDE3-EH_frame1 290 .quad LFB13-. 291 .set L$set$6,LFE13-LFB13 292 .quad L$set$6 293 .byte 0x0 294 .byte 0x4 295 .set L$set$7,LCFI2-LFB13 296 .long L$set$7 297 .byte 0xe 298 .byte 0x10 299 .byte 0x86 300 .byte 0x2 301 .byte 0x4 302 .set L$set$8,LCFI3-LCFI2 303 .long L$set$8 304 .byte 0xd 305 .byte 0x6 306 .align 3 307LEFDE3: 308 309.globl _test_rbx.eh 310_test_rbx.eh: 311LSFDE9: 312 .set L$set$17,LEFDE9-LASFDE9 313 .long L$set$17 314LASFDE9: 315 .long LASFDE9-EH_frame1 316 .quad LFB10-. 317 .set L$set$18,LFE10-LFB10 318 .quad L$set$18 319 .byte 0x0 320 .byte 0x4 321 .set L$set$19,LCFI8-LFB10 322 .long L$set$19 323 .byte 0xe 324 .byte 0x10 325 .byte 0x86 326 .byte 0x2 327 .byte 0x4 328 .set L$set$20,LCFI9-LCFI8 329 .long L$set$20 330 .byte 0xd 331 .byte 0x6 332 .byte 0x4 333 .set L$set$21,LCFI11-LCFI9 334 .long L$set$21 335 .byte 0x83 336 .byte 0x3 337 .align 3 338LEFDE9: 339 340.globl _test_rbx_r12.eh 341_test_rbx_r12.eh: 342LSFDE13: 343 .set L$set$27,LEFDE13-LASFDE13 344 .long L$set$27 345LASFDE13: 346 .long LASFDE13-EH_frame1 347 .quad LFB8-. 348 .set L$set$28,LFE8-LFB8 349 .quad L$set$28 350 .byte 0x0 351 .byte 0x4 352 .set L$set$29,LCFI16-LFB8 353 .long L$set$29 354 .byte 0xe 355 .byte 0x10 356 .byte 0x86 357 .byte 0x2 358 .byte 0x4 359 .set L$set$30,LCFI17-LCFI16 360 .long L$set$30 361 .byte 0xd 362 .byte 0x6 363 .byte 0x4 364 .set L$set$31,LCFI20-LCFI17 365 .long L$set$31 366 .byte 0x8c 367 .byte 0x3 368 .byte 0x83 369 .byte 0x4 370 .align 3 371LEFDE13: 372 373.globl _test_rbx_r14.eh 374_test_rbx_r14.eh: 375LSFDE13a: 376 .set L$set$27a,LEFDE13a-LASFDE13a 377 .long L$set$27a 378LASFDE13a: 379 .long LASFDE13a-EH_frame1 380 .quad LFB8a-. 381 .set L$set$28a,LFE8a-LFB8a 382 .quad L$set$28a 383 .byte 0x0 384 .byte 0x4 385 .set L$set$29a,LCFI16a-LFB8a 386 .long L$set$29a 387 .byte 0xe 388 .byte 0x10 389 .byte 0x86 390 .byte 0x2 391 .byte 0x4 392 .set L$set$30a,LCFI17a-LCFI16a 393 .long L$set$30a 394 .byte 0xd 395 .byte 0x6 396 .byte 0x4 397 .set L$set$31a,LCFI20a-LCFI17a 398 .long L$set$31a 399 .byte 0x8e 400 .byte 0x3 401 .byte 0x83 402 .byte 0x4 403 .align 3 404LEFDE13a: 405 406 407.globl _test_rbx_r12_r13.eh 408_test_rbx_r12_r13.eh: 409LSFDE17: 410 .set L$set$37,LEFDE17-LASFDE17 411 .long L$set$37 412LASFDE17: 413 .long LASFDE17-EH_frame1 414 .quad LFB6-. 415 .set L$set$38,LFE6-LFB6 416 .quad L$set$38 417 .byte 0x0 418 .byte 0x4 419 .set L$set$39,LCFI26-LFB6 420 .long L$set$39 421 .byte 0xe 422 .byte 0x10 423 .byte 0x86 424 .byte 0x2 425 .byte 0x4 426 .set L$set$40,LCFI27-LCFI26 427 .long L$set$40 428 .byte 0xd 429 .byte 0x6 430 .byte 0x4 431 .set L$set$41,LCFI31-LCFI27 432 .long L$set$41 433 .byte 0x8d 434 .byte 0x3 435 .byte 0x8c 436 .byte 0x4 437 .byte 0x83 438 .byte 0x5 439 .align 3 440LEFDE17: 441 442 443.globl _test_rbx_r12_r13_r14.eh 444_test_rbx_r12_r13_r14.eh: 445LSFDE21: 446 .set L$set$47,LEFDE21-LASFDE21 447 .long L$set$47 448LASFDE21: 449 .long LASFDE21-EH_frame1 450 .quad LFB4-. 451 .set L$set$48,LFE4-LFB4 452 .quad L$set$48 453 .byte 0x0 454 .byte 0x4 455 .set L$set$49,LCFI38-LFB4 456 .long L$set$49 457 .byte 0xe 458 .byte 0x10 459 .byte 0x86 460 .byte 0x2 461 .byte 0x4 462 .set L$set$50,LCFI39-LCFI38 463 .long L$set$50 464 .byte 0xd 465 .byte 0x6 466 .byte 0x4 467 .set L$set$51,LCFI44-LCFI39 468 .long L$set$51 469 .byte 0x8e 470 .byte 0x3 471 .byte 0x8d 472 .byte 0x4 473 .byte 0x8c 474 .byte 0x5 475 .byte 0x83 476 .byte 0x6 477 .align 3 478LEFDE21: 479 480.globl _test_r14_r13_r12_rbx.eh 481_test_r14_r13_r12_rbx.eh: 482LSFDE21a: 483 .set L$set$47a,LEFDE21a-LASFDE21a 484 .long L$set$47a 485LASFDE21a: 486 .long LASFDE21a-EH_frame1 487 .quad LFB4a-. 488 .set L$set$48a,LFE4a-LFB4a 489 .quad L$set$48a 490 .byte 0x0 491 .byte 0x4 492 .set L$set$49a,LCFI38a-LFB4a 493 .long L$set$49a 494 .byte 0xe 495 .byte 0x10 496 .byte 0x86 497 .byte 0x2 498 .byte 0x4 499 .set L$set$50a,LCFI39a-LCFI38a 500 .long L$set$50a 501 .byte 0xd 502 .byte 0x6 503 .byte 0x4 504 .set L$set$51a,LCFI44a-LCFI39a 505 .long L$set$51a 506 .byte 0x8e 507 .byte 0x6 508 .byte 0x8d 509 .byte 0x5 510 .byte 0x8c 511 .byte 0x4 512 .byte 0x83 513 .byte 0x3 514 .align 3 515LEFDE21a: 516 517 518.globl _test_rbx_r12_r13_r14_r15.eh 519_test_rbx_r12_r13_r14_r15.eh: 520LSFDE23: 521 .set L$set$52,LEFDE23-LASFDE23 522 .long L$set$52 523LASFDE23: 524 .long LASFDE23-EH_frame1 525 .quad LFB3-. 526 .set L$set$53,LFE3-LFB3 527 .quad L$set$53 528 .byte 0x0 529 .byte 0x4 530 .set L$set$54,LCFI45-LFB3 531 .long L$set$54 532 .byte 0xe 533 .byte 0x10 534 .byte 0x86 535 .byte 0x2 536 .byte 0x4 537 .set L$set$55,LCFI46-LCFI45 538 .long L$set$55 539 .byte 0xd 540 .byte 0x6 541 .byte 0x4 542 .set L$set$56,LCFI52-LCFI46 543 .long L$set$56 544 .byte 0x8f 545 .byte 0x3 546 .byte 0x8e 547 .byte 0x4 548 .byte 0x8d 549 .byte 0x5 550 .byte 0x8c 551 .byte 0x6 552 .byte 0x83 553 .byte 0x7 554 .align 3 555LEFDE23: 556 557 558.globl _test_r13_rbx_r14_r15_r12.eh 559_test_r13_rbx_r14_r15_r12.eh: 560LSFDE23a: 561 .set L$set$52a,LEFDE23a-LASFDE23a 562 .long L$set$52a 563LASFDE23a: 564 .long LASFDE23a-EH_frame1 565 .quad LFB3a-. 566 .set L$set$53a,LFE3a-LFB3a 567 .quad L$set$53a 568 .byte 0x0 569 .byte 0x4 570 .set L$set$54a,LCFI45a-LFB3a 571 .long L$set$54a 572 .byte 0xe 573 .byte 0x10 574 .byte 0x86 575 .byte 0x2 576 .byte 0x4 577 .set L$set$55a,LCFI46a-LCFI45a 578 .long L$set$55a 579 .byte 0xd 580 .byte 0x6 581 .byte 0x4 582 .set L$set$56a,LCFI52a-LCFI46a 583 .long L$set$56a 584 .byte 0x8c 585 .byte 0x3 586 .byte 0x8f 587 .byte 0x4 588 .byte 0x8e 589 .byte 0x5 590 .byte 0x83 591 .byte 0x6 592 .byte 0x8d 593 .byte 0x7 594 .align 3 595LEFDE23a: 596 597 598 599 .subsections_via_symbols 600