1// REQUIRES: arm-registered-target 2// RUN: llvm-mc -filetype=obj -triple thumbv7-windows-gnu %s -o %t.o 3// RUN: llvm-readobj --unwind %t.o | FileCheck --strict-whitespace %s 4 5// CHECK: RuntimeFunction { 6// CHECK-NEXT: Function: func6 7// CHECK-NEXT: Fragment: No 8// CHECK-NEXT: FunctionLength: 8 9// CHECK-NEXT: ReturnType: bx <reg> 10// CHECK-NEXT: HomedParameters: No 11// CHECK-NEXT: Reg: 7 12// CHECK-NEXT: R: 1 13// CHECK-NEXT: LinkRegister: No 14// CHECK-NEXT: Chaining: No 15// CHECK-NEXT: StackAdjustment: 0 16// CHECK-NEXT: Prologue [ 17// CHECK-NEXT: ] 18// CHECK-NEXT: Epilogue [ 19// CHECK-NEXT: bx <reg> 20// CHECK-NEXT: ] 21// CHECK-NEXT: } 22// CHECK-NEXT: RuntimeFunction { 23// CHECK-NEXT: Function: func7 24// CHECK-NEXT: Fragment: No 25// CHECK-NEXT: FunctionLength: 8 26// CHECK-NEXT: ReturnType: bx <reg> 27// CHECK-NEXT: HomedParameters: No 28// CHECK-NEXT: Reg: 0 29// CHECK-NEXT: R: 0 30// CHECK-NEXT: LinkRegister: No 31// CHECK-NEXT: Chaining: No 32// CHECK-NEXT: StackAdjustment: 0 33// CHECK-NEXT: Prologue [ 34// CHECK-NEXT: push {r4} 35// CHECK-NEXT: ] 36// CHECK-NEXT: Epilogue [ 37// CHECK-NEXT: pop {r4} 38// CHECK-NEXT: bx <reg> 39// CHECK-NEXT: ] 40// CHECK-NEXT: } 41// CHECK-NEXT: RuntimeFunction { 42// CHECK-NEXT: Function: func8 43// CHECK-NEXT: Fragment: No 44// CHECK-NEXT: FunctionLength: 10 45// CHECK-NEXT: ReturnType: bx <reg> 46// CHECK-NEXT: HomedParameters: No 47// CHECK-NEXT: Reg: 0 48// CHECK-NEXT: R: 0 49// CHECK-NEXT: LinkRegister: Yes 50// CHECK-NEXT: Chaining: No 51// CHECK-NEXT: StackAdjustment: 0 52// CHECK-NEXT: Prologue [ 53// CHECK-NEXT: push {r4, lr} 54// CHECK-NEXT: ] 55// CHECK-NEXT: Epilogue [ 56// CHECK-NEXT: pop {r4, lr} 57// CHECK-NEXT: bx <reg> 58// CHECK-NEXT: ] 59// CHECK-NEXT: } 60// CHECK-NEXT: RuntimeFunction { 61// CHECK-NEXT: Function: func9 62// CHECK-NEXT: Fragment: No 63// CHECK-NEXT: FunctionLength: 24 64// CHECK-NEXT: ReturnType: b.w <target> 65// CHECK-NEXT: HomedParameters: No 66// CHECK-NEXT: Reg: 0 67// CHECK-NEXT: R: 1 68// CHECK-NEXT: LinkRegister: Yes 69// CHECK-NEXT: Chaining: No 70// CHECK-NEXT: StackAdjustment: 32 71// CHECK-NEXT: Prologue [ 72// CHECK-NEXT: sub sp, sp, #32 73// CHECK-NEXT: vpush {d8} 74// CHECK-NEXT: push {lr} 75// CHECK-NEXT: ] 76// CHECK-NEXT: Epilogue [ 77// CHECK-NEXT: add sp, sp, #32 78// CHECK-NEXT: vpop {d8} 79// CHECK-NEXT: pop {lr} 80// CHECK-NEXT: b.w <target> 81// CHECK-NEXT: ] 82// CHECK-NEXT: } 83// CHECK-NEXT: RuntimeFunction { 84// CHECK-NEXT: Function: func10 85// CHECK-NEXT: Fragment: No 86// CHECK-NEXT: FunctionLength: 26 87// CHECK-NEXT: ReturnType: bx <reg> 88// CHECK-NEXT: HomedParameters: No 89// CHECK-NEXT: Reg: 1 90// CHECK-NEXT: R: 1 91// CHECK-NEXT: LinkRegister: Yes 92// CHECK-NEXT: Chaining: Yes 93// CHECK-NEXT: StackAdjustment: 16 94// CHECK-NEXT: Prologue [ 95// CHECK-NEXT: sub sp, sp, #16 96// CHECK-NEXT: vpush {d8-d9} 97// CHECK-NEXT: mov r11, sp 98// CHECK-NEXT: push {r11, lr} 99// CHECK-NEXT: ] 100// CHECK-NEXT: Epilogue [ 101// CHECK-NEXT: add sp, sp, #16 102// CHECK-NEXT: vpop {d8-d9} 103// CHECK-NEXT: pop {r11, lr} 104// CHECK-NEXT: bx <reg> 105// CHECK-NEXT: ] 106// CHECK-NEXT: } 107// CHECK-NEXT: RuntimeFunction { 108// CHECK-NEXT: Function: func11 109// CHECK-NEXT: Fragment: No 110// CHECK-NEXT: FunctionLength: 24 111// CHECK-NEXT: ReturnType: pop {pc} 112// CHECK-NEXT: HomedParameters: No 113// CHECK-NEXT: Reg: 1 114// CHECK-NEXT: R: 1 115// CHECK-NEXT: LinkRegister: Yes 116// CHECK-NEXT: Chaining: Yes 117// CHECK-NEXT: StackAdjustment: 16 118// CHECK-NEXT: Prologue [ 119// CHECK-NEXT: sub sp, sp, #16 120// CHECK-NEXT: vpush {d8-d9} 121// CHECK-NEXT: mov r11, sp 122// CHECK-NEXT: push {r11, lr} 123// CHECK-NEXT: ] 124// CHECK-NEXT: Epilogue [ 125// CHECK-NEXT: add sp, sp, #16 126// CHECK-NEXT: vpop {d8-d9} 127// CHECK-NEXT: pop {r11, pc} 128// CHECK-NEXT: ] 129// CHECK-NEXT: } 130// CHECK-NEXT: RuntimeFunction { 131// CHECK-NEXT: Function: func12 132// CHECK-NEXT: Fragment: No 133// CHECK-NEXT: FunctionLength: 18 134// CHECK-NEXT: ReturnType: b.w <target> 135// CHECK-NEXT: HomedParameters: No 136// CHECK-NEXT: Reg: 6 137// CHECK-NEXT: R: 1 138// CHECK-NEXT: LinkRegister: No 139// CHECK-NEXT: Chaining: No 140// CHECK-NEXT: StackAdjustment: 16 141// CHECK-NEXT: Prologue [ 142// CHECK-NEXT: sub sp, sp, #16 143// CHECK-NEXT: vpush {d8-d14} 144// CHECK-NEXT: ] 145// CHECK-NEXT: Epilogue [ 146// CHECK-NEXT: add sp, sp, #16 147// CHECK-NEXT: vpop {d8-d14} 148// CHECK-NEXT: b.w <target> 149// CHECK-NEXT: ] 150// CHECK-NEXT: } 151// CHECK-NEXT: RuntimeFunction { 152// CHECK-NEXT: Function: func13 153// CHECK-NEXT: Fragment: No 154// CHECK-NEXT: FunctionLength: 18 155// CHECK-NEXT: ReturnType: pop {pc} 156// CHECK-NEXT: HomedParameters: No 157// CHECK-NEXT: Reg: 6 158// CHECK-NEXT: R: 0 159// CHECK-NEXT: LinkRegister: Yes 160// CHECK-NEXT: Chaining: Yes 161// CHECK-NEXT: StackAdjustment: 20 162// CHECK-NEXT: Prologue [ 163// CHECK-NEXT: sub sp, sp, #20 164// CHECK-NEXT: add.w r11, sp, #28 165// CHECK-NEXT: push {r4-r11, lr} 166// CHECK-NEXT: ] 167// CHECK-NEXT: Epilogue [ 168// CHECK-NEXT: add sp, sp, #20 169// CHECK-NEXT: pop {r4-r11, pc} 170// CHECK-NEXT: ] 171// CHECK-NEXT: } 172// CHECK-NEXT: RuntimeFunction { 173// CHECK-NEXT: Function: func14 174// CHECK-NEXT: Fragment: No 175// CHECK-NEXT: FunctionLength: 14 176// CHECK-NEXT: ReturnType: pop {pc} 177// CHECK-NEXT: HomedParameters: No 178// CHECK-NEXT: Reg: 7 179// CHECK-NEXT: R: 0 180// CHECK-NEXT: LinkRegister: Yes 181// CHECK-NEXT: Chaining: No 182// CHECK-NEXT: StackAdjustment: 20 183// CHECK-NEXT: Prologue [ 184// CHECK-NEXT: sub sp, sp, #20 185// CHECK-NEXT: push {r4-r11, lr} 186// CHECK-NEXT: ] 187// CHECK-NEXT: Epilogue [ 188// CHECK-NEXT: add sp, sp, #20 189// CHECK-NEXT: pop {r4-r11, pc} 190// CHECK-NEXT: ] 191// CHECK-NEXT: } 192// CHECK-NEXT: RuntimeFunction { 193// CHECK-NEXT: Function: func15 194// CHECK-NEXT: Fragment: No 195// CHECK-NEXT: FunctionLength: 20 196// CHECK-NEXT: ReturnType: pop {pc} 197// CHECK-NEXT: HomedParameters: Yes 198// CHECK-NEXT: Reg: 0 199// CHECK-NEXT: R: 0 200// CHECK-NEXT: LinkRegister: Yes 201// CHECK-NEXT: Chaining: No 202// CHECK-NEXT: StackAdjustment: 512 203// CHECK-NEXT: Prologue [ 204// CHECK-NEXT: sub sp, sp, #512 205// CHECK-NEXT: push {r4, lr} 206// CHECK-NEXT: push {r0-r3} 207// CHECK-NEXT: ] 208// CHECK-NEXT: Epilogue [ 209// CHECK-NEXT: add sp, sp, #512 210// CHECK-NEXT: pop {r4} 211// CHECK-NEXT: ldr pc, [sp], #20 212// CHECK-NEXT: ] 213// CHECK-NEXT: } 214// CHECK-NEXT: RuntimeFunction { 215// CHECK-NEXT: Function: func16 216// CHECK-NEXT: Fragment: No 217// CHECK-NEXT: FunctionLength: 20 218// CHECK-NEXT: ReturnType: b.w <target> 219// CHECK-NEXT: HomedParameters: Yes 220// CHECK-NEXT: Reg: 7 221// CHECK-NEXT: R: 1 222// CHECK-NEXT: LinkRegister: Yes 223// CHECK-NEXT: Chaining: Yes 224// CHECK-NEXT: StackAdjustment: 0 225// CHECK-NEXT: Prologue [ 226// CHECK-NEXT: mov r11, sp 227// CHECK-NEXT: push {r11, lr} 228// CHECK-NEXT: push {r0-r3} 229// CHECK-NEXT: ] 230// CHECK-NEXT: Epilogue [ 231// CHECK-NEXT: pop {r11, lr} 232// CHECK-NEXT: add sp, sp, #16 233// CHECK-NEXT: b.w <target> 234// CHECK-NEXT: ] 235// CHECK-NEXT: } 236// CHECK-NEXT: RuntimeFunction { 237// CHECK-NEXT: Function: func17 238// CHECK-NEXT: Fragment: No 239// CHECK-NEXT: FunctionLength: 20 240// CHECK-NEXT: ReturnType: bx <reg> 241// CHECK-NEXT: HomedParameters: Yes 242// CHECK-NEXT: Reg: 0 243// CHECK-NEXT: R: 0 244// CHECK-NEXT: LinkRegister: No 245// CHECK-NEXT: Chaining: No 246// CHECK-NEXT: StackAdjustment: 512 247// CHECK-NEXT: Prologue [ 248// CHECK-NEXT: sub sp, sp, #512 249// CHECK-NEXT: push {r4} 250// CHECK-NEXT: push {r0-r3} 251// CHECK-NEXT: ] 252// CHECK-NEXT: Epilogue [ 253// CHECK-NEXT: add sp, sp, #512 254// CHECK-NEXT: pop {r4} 255// CHECK-NEXT: add sp, sp, #16 256// CHECK-NEXT: bx <reg> 257// CHECK-NEXT: ] 258// CHECK-NEXT: } 259// CHECK-NEXT: RuntimeFunction { 260// CHECK-NEXT: Function: func18 261// CHECK-NEXT: Fragment: No 262// CHECK-NEXT: FunctionLength: 6 263// CHECK-NEXT: ReturnType: pop {pc} 264// CHECK-NEXT: HomedParameters: No 265// CHECK-NEXT: Reg: 7 266// CHECK-NEXT: R: 1 267// CHECK-NEXT: LinkRegister: Yes 268// CHECK-NEXT: Chaining: No 269// CHECK-NEXT: StackAdjustment: 4 270// CHECK-NEXT: Prologue [ 271// CHECK-NEXT: push {r3, lr} 272// CHECK-NEXT: ] 273// CHECK-NEXT: Epilogue [ 274// CHECK-NEXT: pop {r3, pc} 275// CHECK-NEXT: ] 276// CHECK-NEXT: } 277// CHECK-NEXT: RuntimeFunction { 278// CHECK-NEXT: Function: func19 279// CHECK-NEXT: Fragment: No 280// CHECK-NEXT: FunctionLength: 12 281// CHECK-NEXT: ReturnType: bx <reg> 282// CHECK-NEXT: HomedParameters: Yes 283// CHECK-NEXT: Reg: 0 284// CHECK-NEXT: R: 0 285// CHECK-NEXT: LinkRegister: No 286// CHECK-NEXT: Chaining: No 287// CHECK-NEXT: StackAdjustment: 16 288// CHECK-NEXT: Prologue [ 289// CHECK-NEXT: push {r0-r4} 290// CHECK-NEXT: push {r0-r3} 291// CHECK-NEXT: ] 292// CHECK-NEXT: Epilogue [ 293// CHECK-NEXT: pop {r0-r4} 294// CHECK-NEXT: add sp, sp, #16 295// CHECK-NEXT: bx <reg> 296// CHECK-NEXT: ] 297// CHECK-NEXT: } 298// CHECK-NEXT: RuntimeFunction { 299// CHECK-NEXT: Function: func20 300// CHECK-NEXT: Fragment: No 301// CHECK-NEXT: FunctionLength: 14 302// CHECK-NEXT: ReturnType: bx <reg> 303// CHECK-NEXT: HomedParameters: Yes 304// CHECK-NEXT: Reg: 0 305// CHECK-NEXT: R: 0 306// CHECK-NEXT: LinkRegister: No 307// CHECK-NEXT: Chaining: No 308// CHECK-NEXT: StackAdjustment: 16 309// CHECK-NEXT: Prologue [ 310// CHECK-NEXT: push {r0-r4} 311// CHECK-NEXT: push {r0-r3} 312// CHECK-NEXT: ] 313// CHECK-NEXT: Epilogue [ 314// CHECK-NEXT: add sp, sp, #16 315// CHECK-NEXT: pop {r4} 316// CHECK-NEXT: add sp, sp, #16 317// CHECK-NEXT: bx <reg> 318// CHECK-NEXT: ] 319// CHECK-NEXT: } 320// CHECK-NEXT: RuntimeFunction { 321// CHECK-NEXT: Function: func21 322// CHECK-NEXT: Fragment: No 323// CHECK-NEXT: FunctionLength: 14 324// CHECK-NEXT: ReturnType: bx <reg> 325// CHECK-NEXT: HomedParameters: Yes 326// CHECK-NEXT: Reg: 0 327// CHECK-NEXT: R: 0 328// CHECK-NEXT: LinkRegister: No 329// CHECK-NEXT: Chaining: No 330// CHECK-NEXT: StackAdjustment: 16 331// CHECK-NEXT: Prologue [ 332// CHECK-NEXT: sub sp, sp, #16 333// CHECK-NEXT: push {r4} 334// CHECK-NEXT: push {r0-r3} 335// CHECK-NEXT: ] 336// CHECK-NEXT: Epilogue [ 337// CHECK-NEXT: pop {r0-r4} 338// CHECK-NEXT: add sp, sp, #16 339// CHECK-NEXT: bx <reg> 340// CHECK-NEXT: ] 341// CHECK-NEXT: } 342// CHECK-NEXT: RuntimeFunction { 343// CHECK-NEXT: Function: func22 344// CHECK-NEXT: Fragment: Yes 345// CHECK-NEXT: FunctionLength: 14 346// CHECK-NEXT: ReturnType: pop {pc} 347// CHECK-NEXT: HomedParameters: Yes 348// CHECK-NEXT: Reg: 0 349// CHECK-NEXT: R: 0 350// CHECK-NEXT: LinkRegister: Yes 351// CHECK-NEXT: Chaining: No 352// CHECK-NEXT: StackAdjustment: 512 353// CHECK-NEXT: Prologue [ 354// CHECK-NEXT: sub sp, sp, #512 355// CHECK-NEXT: push {r4, lr} 356// CHECK-NEXT: push {r0-r3} 357// CHECK-NEXT: ] 358// CHECK-NEXT: Epilogue [ 359// CHECK-NEXT: add sp, sp, #512 360// CHECK-NEXT: pop {r4} 361// CHECK-NEXT: ldr pc, [sp], #20 362// CHECK-NEXT: ] 363// CHECK-NEXT: } 364// CHECK-NEXT: RuntimeFunction { 365// CHECK-NEXT: Function: func23 366// CHECK-NEXT: Fragment: No 367// CHECK-NEXT: FunctionLength: 12 368// CHECK-NEXT: ReturnType: (no epilogue) 369// CHECK-NEXT: HomedParameters: Yes 370// CHECK-NEXT: Reg: 0 371// CHECK-NEXT: R: 0 372// CHECK-NEXT: LinkRegister: Yes 373// CHECK-NEXT: Chaining: No 374// CHECK-NEXT: StackAdjustment: 512 375// CHECK-NEXT: Prologue [ 376// CHECK-NEXT: sub sp, sp, #512 377// CHECK-NEXT: push {r4, lr} 378// CHECK-NEXT: push {r0-r3} 379// CHECK-NEXT: ] 380// CHECK-NEXT: } 381// CHECK-NEXT: RuntimeFunction { 382// CHECK-NEXT: Function: func24 383// CHECK-NEXT: Fragment: No 384// CHECK-NEXT: FunctionLength: 16 385// CHECK-NEXT: ReturnType: pop {pc} 386// CHECK-NEXT: HomedParameters: No 387// CHECK-NEXT: Reg: 3 388// CHECK-NEXT: R: 0 389// CHECK-NEXT: LinkRegister: Yes 390// CHECK-NEXT: Chaining: Yes 391// CHECK-NEXT: StackAdjustment: 8 392// CHECK-NEXT: Prologue [ 393// CHECK-NEXT: add.w r11, sp, #24 394// CHECK-NEXT: push {r2-r7, r11, lr} 395// CHECK-NEXT: ] 396// CHECK-NEXT: Epilogue [ 397// CHECK-NEXT: add sp, sp, #8 398// CHECK-NEXT: pop {r4-r7, r11, pc} 399// CHECK-NEXT: ] 400// CHECK-NEXT: } 401// CHECK-NEXT: RuntimeFunction { 402// CHECK-NEXT: Function: func25 403// CHECK-NEXT: Fragment: No 404// CHECK-NEXT: FunctionLength: 16 405// CHECK-NEXT: ReturnType: pop {pc} 406// CHECK-NEXT: HomedParameters: No 407// CHECK-NEXT: Reg: 3 408// CHECK-NEXT: R: 0 409// CHECK-NEXT: LinkRegister: Yes 410// CHECK-NEXT: Chaining: Yes 411// CHECK-NEXT: StackAdjustment: 8 412// CHECK-NEXT: Prologue [ 413// CHECK-NEXT: sub sp, sp, #8 414// CHECK-NEXT: add.w r11, sp, #16 415// CHECK-NEXT: push {r4-r7, r11, lr} 416// CHECK-NEXT: ] 417// CHECK-NEXT: Epilogue [ 418// CHECK-NEXT: pop {r2-r7, r11, pc} 419// CHECK-NEXT: ] 420// CHECK-NEXT: } 421// CHECK-NEXT: RuntimeFunction { 422// CHECK-NEXT: Function: func26 423// CHECK-NEXT: Fragment: No 424// CHECK-NEXT: FunctionLength: 8 425// CHECK-NEXT: ReturnType: bx <reg> 426// CHECK-NEXT: HomedParameters: No 427// CHECK-NEXT: Reg: 7 428// CHECK-NEXT: R: 1 429// CHECK-NEXT: LinkRegister: No 430// CHECK-NEXT: Chaining: No 431// CHECK-NEXT: StackAdjustment: 12 432// CHECK-NEXT: Prologue [ 433// CHECK-NEXT: push {r1-r3} 434// CHECK-NEXT: ] 435// CHECK-NEXT: Epilogue [ 436// CHECK-NEXT: add sp, sp, #12 437// CHECK-NEXT: bx <reg> 438// CHECK-NEXT: ] 439// CHECK-NEXT: } 440// CHECK-NEXT: RuntimeFunction { 441// CHECK-NEXT: Function: func27 442// CHECK-NEXT: Fragment: No 443// CHECK-NEXT: FunctionLength: 8 444// CHECK-NEXT: ReturnType: bx <reg> 445// CHECK-NEXT: HomedParameters: No 446// CHECK-NEXT: Reg: 7 447// CHECK-NEXT: R: 1 448// CHECK-NEXT: LinkRegister: No 449// CHECK-NEXT: Chaining: No 450// CHECK-NEXT: StackAdjustment: 12 451// CHECK-NEXT: Prologue [ 452// CHECK-NEXT: sub sp, sp, #12 453// CHECK-NEXT: ] 454// CHECK-NEXT: Epilogue [ 455// CHECK-NEXT: pop {r1-r3} 456// CHECK-NEXT: bx <reg> 457// CHECK-NEXT: ] 458// CHECK-NEXT: } 459// CHECK-NEXT: RuntimeFunction { 460// CHECK-NEXT: Function: func28 461// CHECK-NEXT: Fragment: No 462// CHECK-NEXT: FunctionLength: 8 463// CHECK-NEXT: ReturnType: bx <reg> 464// CHECK-NEXT: HomedParameters: No 465// CHECK-NEXT: Reg: 0 466// CHECK-NEXT: R: 1 467// CHECK-NEXT: LinkRegister: No 468// CHECK-NEXT: Chaining: No 469// CHECK-NEXT: StackAdjustment: 4 470// CHECK-NEXT: Prologue [ 471// CHECK-NEXT: vpush {d8} 472// CHECK-NEXT: push {r3} 473// CHECK-NEXT: ] 474// CHECK-NEXT: Epilogue [ 475// CHECK-NEXT: vpop {d8} 476// CHECK-NEXT: pop {r3} 477// CHECK-NEXT: bx <reg> 478// CHECK-NEXT: ] 479// CHECK-NEXT: } 480// CHECK-NEXT: RuntimeFunction { 481// CHECK-NEXT: Function: func29 482// CHECK-NEXT: Fragment: Yes 483// CHECK-NEXT: FunctionLength: 6 484// CHECK-NEXT: ReturnType: pop {pc} 485// CHECK-NEXT: HomedParameters: No 486// CHECK-NEXT: Reg: 2 487// CHECK-NEXT: R: 0 488// CHECK-NEXT: LinkRegister: Yes 489// CHECK-NEXT: Chaining: No 490// CHECK-NEXT: StackAdjustment: 16 491// CHECK-NEXT: Prologue [ 492// CHECK-NEXT: sub sp, sp, #16 493// CHECK-NEXT: push {r4-r6, lr} 494// CHECK-NEXT: ] 495// CHECK-NEXT: Epilogue [ 496// CHECK-NEXT: add sp, sp, #16 497// CHECK-NEXT: pop {r4-r6, pc} 498// CHECK-NEXT: ] 499// CHECK-NEXT: } 500 501 .thumb 502 .syntax unified 503 504func6: 505 nop 506 nop 507 nop 508 bx lr 509 510func7: 511 push {r4} 512 nop 513 pop {r4} 514 bx lr 515 516func8: 517 push {r4,lr} 518 nop 519 pop {r4,lr} 520 bx lr 521 522func9: 523 push {lr} 524 vpush {d8} 525 sub sp, sp, #32 526 nop 527 add sp, sp, #32 528 vpop {d8} 529 pop {lr} 530 b tailcall 531 532func10: 533 push {r11,lr} 534 mov r11, sp 535 vpush {d8-d9} 536 sub sp, sp, #16 537 nop 538 add sp, sp, #16 539 vpop {d8-d9} 540 pop {r11,lr} 541 bx lr 542 543func11: 544 push {r11,lr} 545 mov r11, sp 546 vpush {d8-d9} 547 sub sp, sp, #16 548 nop 549 add sp, sp, #16 550 vpop {d8-d9} 551 pop {r11,pc} 552 553func12: 554 vpush {d8-d14} 555 sub sp, sp, #16 556 nop 557 add sp, sp, #16 558 vpop {d8-d14} 559 b tailcall 560 561func13: 562 push {r4-r11,lr} 563 add r11, sp, #0x1c 564 sub sp, sp, #20 565 nop 566 add sp, sp, #20 567 pop {r4-r11,pc} 568 569func14: 570 push {r4-r11,lr} 571 sub sp, sp, #20 572 nop 573 add sp, sp, #20 574 pop {r4-r11,pc} 575 576func15: 577 push {r0-r3} 578 push {r4,lr} 579 sub sp, sp, #512 580 nop 581 add sp, sp, #512 582 pop {r4} 583 ldr pc, [sp], #20 584 585func16: 586 push {r0-r3} 587 push {r11,lr} 588 mov r11, sp 589 nop 590 pop {r11, lr} 591 add sp, sp, #16 592 b tailcall 593 594func17: 595 push {r0-r3} 596 push {r4} 597 sub sp, sp, #512 598 nop 599 add sp, sp, #512 600 pop {r4} 601 add sp, sp, #16 602 bx lr 603 604func18: 605 push {r3,lr} 606 nop 607 pop {r3,pc} 608 609func19: 610 push {r0-r3} 611 push {r0-r4} 612 nop 613 pop {r0-r4} 614 add sp, sp, #16 615 bx lr 616 617func20: 618 push {r0-r3} 619 push {r0-r4} 620 nop 621 add sp, sp, #16 622 pop {r4} 623 add sp, sp, #16 624 bx lr 625 626func21: 627 push {r0-r3} 628 push {r4} 629 sub sp, sp, #16 630 nop 631 pop {r0-r4} 632 add sp, sp, #16 633 bx lr 634 635func22: 636 nop 637 nop 638 add sp, sp, #512 639 pop {r4} 640 ldr pc, [sp], #20 641 642func23: 643 push {r0-r3} 644 push {r4,lr} 645 sub sp, sp, #512 646 nop 647 nop 648 649func24: 650 push {r2-r7,r11,lr} 651 add r11, sp, #24 652 nop 653 add sp, sp, #8 654 pop {r4-r7,r11,pc} 655 656func25: 657 push {r4-r7,r11,lr} 658 add r11, sp, #16 659 sub sp, sp, #8 660 nop 661 pop {r2-r7,r11,pc} 662 663func26: 664 push {r1-r3} 665 nop 666 add sp, sp, #12 667 bx lr 668 669func27: 670 sub sp, sp, #12 671 nop 672 pop {r1-r3} 673 bx lr 674 675func28: 676 push {r3} 677 vpush {d8} 678 nop 679 vpop {d8} 680 pop {r3} 681 bx lr 682 683func29: 684 nop 685 pop {r4-r11,pc} 686 687 .section .pdata,"dr" 688 .rva func6 689 .long 0x000f2011 690 .rva func7 691 .long 0x00002011 692 .rva func8 693 .long 0x00102015 694 .rva func9 695 .long 0x02184031 696 .rva func10 697 .long 0x01392035 698 .rva func11 699 .long 0x01390031 700 .rva func12 701 .long 0x010e4025 702 .rva func13 703 .long 0x01760025 704 .rva func14 705 .long 0x0157001d 706 .rva func15 707 .long 0x20108029 708 .rva func16 709 .long 0x003fc029 710 .rva func17 711 .long 0x2000a029 712 .rva func18 713 .long 0xff1f000d 714 .rva func19 715 .long 0xffc0a019 716 .rva func20 717 .long 0xfdc0a01d 718 .rva func21 719 .long 0xfec0a01d 720 .rva func22 721 .long 0x2010801e 722 .rva func23 723 .long 0x2010e019 724 .rva func24 725 .long 0xfd730021 726 .rva func25 727 .long 0xfe730021 728 .rva func26 729 .long 0xfd8f2011 730 .rva func27 731 .long 0xfe8f2011 732 .rva func28 733 .long 0xff082011 734 .rva func29 735 .long 0x0112000e 736