brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.5 KiB · e56abfb Raw
1096 lines · plain
1// This test checks various cases around generating packed unwind info.2 3// RUN: llvm-mc -triple thumbv7-pc-win32 -filetype=obj %s | llvm-readobj -u - | FileCheck %s4 5// CHECK:       RuntimeFunction {6// CHECK-NEXT:    Function: func67// CHECK-NEXT:    Fragment: No8// CHECK-NEXT:    FunctionLength: 89// CHECK-NEXT:    ReturnType: bx <reg>10// CHECK-NEXT:    HomedParameters: No11// CHECK-NEXT:    Reg: 712// CHECK-NEXT:    R: 113// CHECK-NEXT:    LinkRegister: No14// CHECK-NEXT:    Chaining: No15// CHECK-NEXT:    StackAdjustment: 016// 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: func724// CHECK-NEXT:    Fragment: No25// CHECK-NEXT:    FunctionLength: 826// CHECK-NEXT:    ReturnType: bx <reg>27// CHECK-NEXT:    HomedParameters: No28// CHECK-NEXT:    Reg: 029// CHECK-NEXT:    R: 030// CHECK-NEXT:    LinkRegister: No31// CHECK-NEXT:    Chaining: No32// CHECK-NEXT:    StackAdjustment: 033// 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: func843// CHECK-NEXT:    Fragment: No44// CHECK-NEXT:    FunctionLength: 1045// CHECK-NEXT:    ReturnType: bx <reg>46// CHECK-NEXT:    HomedParameters: No47// CHECK-NEXT:    Reg: 048// CHECK-NEXT:    R: 049// CHECK-NEXT:    LinkRegister: Yes50// CHECK-NEXT:    Chaining: No51// CHECK-NEXT:    StackAdjustment: 052// 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: func962// CHECK-NEXT:    Fragment: No63// CHECK-NEXT:    FunctionLength: 2464// CHECK-NEXT:    ReturnType: b.w <target>65// CHECK-NEXT:    HomedParameters: No66// CHECK-NEXT:    Reg: 067// CHECK-NEXT:    R: 168// CHECK-NEXT:    LinkRegister: Yes69// CHECK-NEXT:    Chaining: No70// CHECK-NEXT:    StackAdjustment: 3271// CHECK-NEXT:    Prologue [72// CHECK-NEXT:      sub sp, sp, #3273// CHECK-NEXT:      vpush {d8}74// CHECK-NEXT:      push {lr}75// CHECK-NEXT:    ]76// CHECK-NEXT:    Epilogue [77// CHECK-NEXT:      add sp, sp, #3278// 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: func1085// CHECK-NEXT:    Fragment: No86// CHECK-NEXT:    FunctionLength: 2687// CHECK-NEXT:    ReturnType: bx <reg>88// CHECK-NEXT:    HomedParameters: No89// CHECK-NEXT:    Reg: 190// CHECK-NEXT:    R: 191// CHECK-NEXT:    LinkRegister: Yes92// CHECK-NEXT:    Chaining: Yes93// CHECK-NEXT:    StackAdjustment: 1694// CHECK-NEXT:    Prologue [95// CHECK-NEXT:      sub sp, sp, #1696// CHECK-NEXT:      vpush {d8-d9}97// CHECK-NEXT:      mov r11, sp98// CHECK-NEXT:      push {r11, lr}99// CHECK-NEXT:    ]100// CHECK-NEXT:    Epilogue [101// CHECK-NEXT:      add sp, sp, #16102// 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: func11109// CHECK-NEXT:    Fragment: No110// CHECK-NEXT:    FunctionLength: 24111// CHECK-NEXT:    ReturnType: pop {pc}112// CHECK-NEXT:    HomedParameters: No113// CHECK-NEXT:    Reg: 1114// CHECK-NEXT:    R: 1115// CHECK-NEXT:    LinkRegister: Yes116// CHECK-NEXT:    Chaining: Yes117// CHECK-NEXT:    StackAdjustment: 16118// CHECK-NEXT:    Prologue [119// CHECK-NEXT:      sub sp, sp, #16120// CHECK-NEXT:      vpush {d8-d9}121// CHECK-NEXT:      mov r11, sp122// CHECK-NEXT:      push {r11, lr}123// CHECK-NEXT:    ]124// CHECK-NEXT:    Epilogue [125// CHECK-NEXT:      add sp, sp, #16126// 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: func12132// CHECK-NEXT:    Fragment: No133// CHECK-NEXT:    FunctionLength: 18134// CHECK-NEXT:    ReturnType: b.w <target>135// CHECK-NEXT:    HomedParameters: No136// CHECK-NEXT:    Reg: 6137// CHECK-NEXT:    R: 1138// CHECK-NEXT:    LinkRegister: No139// CHECK-NEXT:    Chaining: No140// CHECK-NEXT:    StackAdjustment: 16141// CHECK-NEXT:    Prologue [142// CHECK-NEXT:      sub sp, sp, #16143// CHECK-NEXT:      vpush {d8-d14}144// CHECK-NEXT:    ]145// CHECK-NEXT:    Epilogue [146// CHECK-NEXT:      add sp, sp, #16147// 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: func13153// CHECK-NEXT:    Fragment: No154// CHECK-NEXT:    FunctionLength: 18155// CHECK-NEXT:    ReturnType: pop {pc}156// CHECK-NEXT:    HomedParameters: No157// CHECK-NEXT:    Reg: 6158// CHECK-NEXT:    R: 0159// CHECK-NEXT:    LinkRegister: Yes160// CHECK-NEXT:    Chaining: Yes161// CHECK-NEXT:    StackAdjustment: 20162// CHECK-NEXT:    Prologue [163// CHECK-NEXT:      sub sp, sp, #20164// CHECK-NEXT:      add.w r11, sp, #28165// CHECK-NEXT:      push {r4-r11, lr}166// CHECK-NEXT:    ]167// CHECK-NEXT:    Epilogue [168// CHECK-NEXT:      add sp, sp, #20169// CHECK-NEXT:      pop {r4-r11, pc}170// CHECK-NEXT:    ]171// CHECK-NEXT:  }172// CHECK-NEXT:  RuntimeFunction {173// CHECK-NEXT:    Function: func14174// CHECK-NEXT:    Fragment: No175// CHECK-NEXT:    FunctionLength: 14176// CHECK-NEXT:    ReturnType: pop {pc}177// CHECK-NEXT:    HomedParameters: No178// CHECK-NEXT:    Reg: 7179// CHECK-NEXT:    R: 0180// CHECK-NEXT:    LinkRegister: Yes181// CHECK-NEXT:    Chaining: No182// CHECK-NEXT:    StackAdjustment: 20183// CHECK-NEXT:    Prologue [184// CHECK-NEXT:      sub sp, sp, #20185// CHECK-NEXT:      push {r4-r11, lr}186// CHECK-NEXT:    ]187// CHECK-NEXT:    Epilogue [188// CHECK-NEXT:      add sp, sp, #20189// CHECK-NEXT:      pop {r4-r11, pc}190// CHECK-NEXT:    ]191// CHECK-NEXT:  }192// CHECK-NEXT:  RuntimeFunction {193// CHECK-NEXT:    Function: func15194// CHECK-NEXT:    Fragment: No195// CHECK-NEXT:    FunctionLength: 20196// CHECK-NEXT:    ReturnType: pop {pc}197// CHECK-NEXT:    HomedParameters: Yes198// CHECK-NEXT:    Reg: 0199// CHECK-NEXT:    R: 0200// CHECK-NEXT:    LinkRegister: Yes201// CHECK-NEXT:    Chaining: No202// CHECK-NEXT:    StackAdjustment: 512203// CHECK-NEXT:    Prologue [204// CHECK-NEXT:      sub sp, sp, #512205// CHECK-NEXT:      push {r4, lr}206// CHECK-NEXT:      push {r0-r3}207// CHECK-NEXT:    ]208// CHECK-NEXT:    Epilogue [209// CHECK-NEXT:      add sp, sp, #512210// CHECK-NEXT:      pop {r4}211// CHECK-NEXT:      ldr pc, [sp], #20212// CHECK-NEXT:    ]213// CHECK-NEXT:  }214// CHECK-NEXT:  RuntimeFunction {215// CHECK-NEXT:    Function: func16216// CHECK-NEXT:    Fragment: No217// CHECK-NEXT:    FunctionLength: 20218// CHECK-NEXT:    ReturnType: b.w <target>219// CHECK-NEXT:    HomedParameters: Yes220// CHECK-NEXT:    Reg: 7221// CHECK-NEXT:    R: 1222// CHECK-NEXT:    LinkRegister: Yes223// CHECK-NEXT:    Chaining: Yes224// CHECK-NEXT:    StackAdjustment: 0225// CHECK-NEXT:    Prologue [226// CHECK-NEXT:      mov r11, sp227// 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, #16233// CHECK-NEXT:      b.w <target>234// CHECK-NEXT:    ]235// CHECK-NEXT:  }236// CHECK-NEXT:  RuntimeFunction {237// CHECK-NEXT:    Function: func17238// CHECK-NEXT:    Fragment: No239// CHECK-NEXT:    FunctionLength: 20240// CHECK-NEXT:    ReturnType: bx <reg>241// CHECK-NEXT:    HomedParameters: Yes242// CHECK-NEXT:    Reg: 0243// CHECK-NEXT:    R: 0244// CHECK-NEXT:    LinkRegister: No245// CHECK-NEXT:    Chaining: No246// CHECK-NEXT:    StackAdjustment: 512247// CHECK-NEXT:    Prologue [248// CHECK-NEXT:      sub sp, sp, #512249// CHECK-NEXT:      push {r4}250// CHECK-NEXT:      push {r0-r3}251// CHECK-NEXT:    ]252// CHECK-NEXT:    Epilogue [253// CHECK-NEXT:      add sp, sp, #512254// CHECK-NEXT:      pop {r4}255// CHECK-NEXT:      add sp, sp, #16256// CHECK-NEXT:      bx <reg>257// CHECK-NEXT:    ]258// CHECK-NEXT:  }259// CHECK-NEXT:  RuntimeFunction {260// CHECK-NEXT:    Function: func18261// CHECK-NEXT:    Fragment: No262// CHECK-NEXT:    FunctionLength: 6263// CHECK-NEXT:    ReturnType: pop {pc}264// CHECK-NEXT:    HomedParameters: No265// CHECK-NEXT:    Reg: 7266// CHECK-NEXT:    R: 1267// CHECK-NEXT:    LinkRegister: Yes268// CHECK-NEXT:    Chaining: No269// CHECK-NEXT:    StackAdjustment: 4270// 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: func19279// CHECK-NEXT:    Fragment: No280// CHECK-NEXT:    FunctionLength: 12281// CHECK-NEXT:    ReturnType: bx <reg>282// CHECK-NEXT:    HomedParameters: Yes283// CHECK-NEXT:    Reg: 0284// CHECK-NEXT:    R: 0285// CHECK-NEXT:    LinkRegister: No286// CHECK-NEXT:    Chaining: No287// CHECK-NEXT:    StackAdjustment: 16288// 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, #16295// CHECK-NEXT:      bx <reg>296// CHECK-NEXT:    ]297// CHECK-NEXT:  }298// CHECK-NEXT:  RuntimeFunction {299// CHECK-NEXT:    Function: func20300// CHECK-NEXT:    Fragment: No301// CHECK-NEXT:    FunctionLength: 14302// CHECK-NEXT:    ReturnType: bx <reg>303// CHECK-NEXT:    HomedParameters: Yes304// CHECK-NEXT:    Reg: 0305// CHECK-NEXT:    R: 0306// CHECK-NEXT:    LinkRegister: No307// CHECK-NEXT:    Chaining: No308// CHECK-NEXT:    StackAdjustment: 16309// 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, #16315// CHECK-NEXT:      pop {r4}316// CHECK-NEXT:      add sp, sp, #16317// CHECK-NEXT:      bx <reg>318// CHECK-NEXT:    ]319// CHECK-NEXT:  }320// CHECK-NEXT:  RuntimeFunction {321// CHECK-NEXT:    Function: func21322// CHECK-NEXT:    Fragment: No323// CHECK-NEXT:    FunctionLength: 14324// CHECK-NEXT:    ReturnType: bx <reg>325// CHECK-NEXT:    HomedParameters: Yes326// CHECK-NEXT:    Reg: 0327// CHECK-NEXT:    R: 0328// CHECK-NEXT:    LinkRegister: No329// CHECK-NEXT:    Chaining: No330// CHECK-NEXT:    StackAdjustment: 16331// CHECK-NEXT:    Prologue [332// CHECK-NEXT:      sub sp, sp, #16333// 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, #16339// CHECK-NEXT:      bx <reg>340// CHECK-NEXT:    ]341// CHECK-NEXT:  }342// CHECK-NEXT:  RuntimeFunction {343// CHECK-NEXT:    Function: func22344// CHECK-NEXT:    Fragment: Yes345// CHECK-NEXT:    FunctionLength: 14346// CHECK-NEXT:    ReturnType: pop {pc}347// CHECK-NEXT:    HomedParameters: Yes348// CHECK-NEXT:    Reg: 0349// CHECK-NEXT:    R: 0350// CHECK-NEXT:    LinkRegister: Yes351// CHECK-NEXT:    Chaining: No352// CHECK-NEXT:    StackAdjustment: 512353// CHECK-NEXT:    Prologue [354// CHECK-NEXT:      sub sp, sp, #512355// CHECK-NEXT:      push {r4, lr}356// CHECK-NEXT:      push {r0-r3}357// CHECK-NEXT:    ]358// CHECK-NEXT:    Epilogue [359// CHECK-NEXT:      add sp, sp, #512360// CHECK-NEXT:      pop {r4}361// CHECK-NEXT:      ldr pc, [sp], #20362// CHECK-NEXT:    ]363// CHECK-NEXT:  }364// CHECK-NEXT:  RuntimeFunction {365// CHECK-NEXT:    Function: func24366// CHECK-NEXT:    Fragment: No367// CHECK-NEXT:    FunctionLength: 16368// CHECK-NEXT:    ReturnType: pop {pc}369// CHECK-NEXT:    HomedParameters: No370// CHECK-NEXT:    Reg: 3371// CHECK-NEXT:    R: 0372// CHECK-NEXT:    LinkRegister: Yes373// CHECK-NEXT:    Chaining: Yes374// CHECK-NEXT:    StackAdjustment: 8375// CHECK-NEXT:    Prologue [376// CHECK-NEXT:      add.w r11, sp, #24377// CHECK-NEXT:      push {r2-r7, r11, lr}378// CHECK-NEXT:    ]379// CHECK-NEXT:    Epilogue [380// CHECK-NEXT:      add sp, sp, #8381// CHECK-NEXT:      pop {r4-r7, r11, pc}382// CHECK-NEXT:    ]383// CHECK-NEXT:  }384// CHECK-NEXT:  RuntimeFunction {385// CHECK-NEXT:    Function: func25386// CHECK-NEXT:    Fragment: No387// CHECK-NEXT:    FunctionLength: 16388// CHECK-NEXT:    ReturnType: pop {pc}389// CHECK-NEXT:    HomedParameters: No390// CHECK-NEXT:    Reg: 3391// CHECK-NEXT:    R: 0392// CHECK-NEXT:    LinkRegister: Yes393// CHECK-NEXT:    Chaining: Yes394// CHECK-NEXT:    StackAdjustment: 8395// CHECK-NEXT:    Prologue [396// CHECK-NEXT:      sub sp, sp, #8397// CHECK-NEXT:      add.w r11, sp, #16398// CHECK-NEXT:      push {r4-r7, r11, lr}399// CHECK-NEXT:    ]400// CHECK-NEXT:    Epilogue [401// CHECK-NEXT:      pop {r2-r7, r11, pc}402// CHECK-NEXT:    ]403// CHECK-NEXT:  }404// CHECK-NEXT:  RuntimeFunction {405// CHECK-NEXT:    Function: func26406// CHECK-NEXT:    Fragment: No407// CHECK-NEXT:    FunctionLength: 8408// CHECK-NEXT:    ReturnType: bx <reg>409// CHECK-NEXT:    HomedParameters: No410// CHECK-NEXT:    Reg: 7411// CHECK-NEXT:    R: 1412// CHECK-NEXT:    LinkRegister: No413// CHECK-NEXT:    Chaining: No414// CHECK-NEXT:    StackAdjustment: 12415// CHECK-NEXT:    Prologue [416// CHECK-NEXT:      push {r1-r3}417// CHECK-NEXT:    ]418// CHECK-NEXT:    Epilogue [419// CHECK-NEXT:      add sp, sp, #12420// CHECK-NEXT:      bx <reg>421// CHECK-NEXT:    ]422// CHECK-NEXT:  }423// CHECK-NEXT:  RuntimeFunction {424// CHECK-NEXT:    Function: func27425// CHECK-NEXT:    Fragment: No426// CHECK-NEXT:    FunctionLength: 8427// CHECK-NEXT:    ReturnType: bx <reg>428// CHECK-NEXT:    HomedParameters: No429// CHECK-NEXT:    Reg: 7430// CHECK-NEXT:    R: 1431// CHECK-NEXT:    LinkRegister: No432// CHECK-NEXT:    Chaining: No433// CHECK-NEXT:    StackAdjustment: 12434// CHECK-NEXT:    Prologue [435// CHECK-NEXT:      sub sp, sp, #12436// CHECK-NEXT:    ]437// CHECK-NEXT:    Epilogue [438// CHECK-NEXT:      pop {r1-r3}439// CHECK-NEXT:      bx <reg>440// CHECK-NEXT:    ]441// CHECK-NEXT:  }442// CHECK-NEXT:  RuntimeFunction {443// CHECK-NEXT:    Function: func28444// CHECK-NEXT:    Fragment: No445// CHECK-NEXT:    FunctionLength: 8446// CHECK-NEXT:    ReturnType: bx <reg>447// CHECK-NEXT:    HomedParameters: Yes448// CHECK-NEXT:    Reg: 7449// CHECK-NEXT:    R: 1450// CHECK-NEXT:    LinkRegister: No451// CHECK-NEXT:    Chaining: No452// CHECK-NEXT:    StackAdjustment: 0453// CHECK-NEXT:    Prologue [454// CHECK-NEXT:      push {r0-r3}455// CHECK-NEXT:    ]456// CHECK-NEXT:    Epilogue [457// CHECK-NEXT:      add sp, sp, #16458// CHECK-NEXT:      bx <reg>459// CHECK-NEXT:    ]460// CHECK-NEXT:  }461// CHECK-NEXT:  RuntimeFunction {462// CHECK-NEXT:    Function: func29463// CHECK-NEXT:    Fragment: No464// CHECK-NEXT:    FunctionLength: 10465// CHECK-NEXT:    ReturnType: pop {pc}466// CHECK-NEXT:    HomedParameters: Yes467// CHECK-NEXT:    Reg: 7468// CHECK-NEXT:    R: 1469// CHECK-NEXT:    LinkRegister: Yes470// CHECK-NEXT:    Chaining: No471// CHECK-NEXT:    StackAdjustment: 0472// CHECK-NEXT:    Prologue [473// CHECK-NEXT:      push {lr}474// CHECK-NEXT:      push {r0-r3}475// CHECK-NEXT:    ]476// CHECK-NEXT:    Epilogue [477// CHECK-NEXT:      ldr pc, [sp], #20478// CHECK-NEXT:    ]479// CHECK-NEXT:  }480// CHECK-NEXT:  RuntimeFunction {481// CHECK-NEXT:    Function: func30482// CHECK-NEXT:    Fragment: No483// CHECK-NEXT:    FunctionLength: 6484// CHECK-NEXT:    ReturnType: pop {pc}485// CHECK-NEXT:    HomedParameters: No486// CHECK-NEXT:    Reg: 2487// CHECK-NEXT:    R: 0488// CHECK-NEXT:    LinkRegister: Yes489// CHECK-NEXT:    Chaining: No490// CHECK-NEXT:    StackAdjustment: 0491// CHECK-NEXT:    Prologue [492// CHECK-NEXT:      push {r4-r6, lr}493// CHECK-NEXT:    ]494// CHECK-NEXT:    Epilogue [495// CHECK-NEXT:      pop {r4-r6, pc}496// CHECK-NEXT:    ]497// CHECK-NEXT:  }498// CHECK-NEXT:  RuntimeFunction {499// CHECK-NEXT:    Function: func31500// CHECK-NEXT:    Fragment: No501// CHECK-NEXT:    FunctionLength: 4502// CHECK-NEXT:    ReturnType: (no epilogue)503// CHECK-NEXT:    HomedParameters: No504// CHECK-NEXT:    Reg: 2505// CHECK-NEXT:    R: 0506// CHECK-NEXT:    LinkRegister: Yes507// CHECK-NEXT:    Chaining: No508// CHECK-NEXT:    StackAdjustment: 0509// CHECK-NEXT:    Prologue [510// CHECK-NEXT:      push {r4-r6, lr}511// CHECK-NEXT:    ]512// CHECK-NEXT:  }513 514// CHECK:         Function: notpacked1515// CHECK-NEXT:    ExceptionRecord:516// CHECK:         Function: notpacked2517// CHECK-NEXT:    ExceptionRecord:518// CHECK:         Function: notpacked3519// CHECK-NEXT:    ExceptionRecord:520// CHECK:         Function: notpacked4521// CHECK-NEXT:    ExceptionRecord:522// CHECK:         Function: notpacked5523// CHECK-NEXT:    ExceptionRecord:524// CHECK:         Function: notpacked6525// CHECK-NEXT:    ExceptionRecord:526// CHECK:         Function: notpacked7527// CHECK-NEXT:    ExceptionRecord:528// CHECK:         Function: notpacked8529// CHECK-NEXT:    ExceptionRecord:530// CHECK:         Function: notpacked9531// CHECK-NEXT:    ExceptionRecord:532 533        .text534        .syntax unified535 536        .seh_proc func6537func6:538        .seh_endprologue539        nop540        nop541        nop542        .seh_startepilogue543        bx lr544        .seh_nop545        .seh_endepilogue546        .seh_endproc547 548        .seh_proc func7549func7:550        push {r4}551        .seh_save_regs {r4}552        .seh_endprologue553        nop554        .seh_startepilogue555        pop {r4}556        .seh_save_regs {r4}557        bx lr558        .seh_nop559        .seh_endepilogue560        .seh_endproc561 562        .seh_proc func8563func8:564        push {r4,lr}565        .seh_save_regs {r4,lr}566        .seh_endprologue567        nop568        .seh_startepilogue569        pop.w {r4,lr}570        .seh_save_regs_w {r4,lr}571        bx lr572        .seh_nop573        .seh_endepilogue574        .seh_endproc575 576        .seh_proc func9577func9:578        push {lr}579        .seh_save_regs {lr}580        vpush {d8}581        .seh_save_fregs {d8}582        sub sp, sp, #32583        .seh_stackalloc 32584        .seh_endprologue585        nop586        .seh_startepilogue587        add sp, sp, #32588        .seh_stackalloc 32589        vpop {d8}590        .seh_save_fregs {d8}591        pop.w {lr}592        .seh_save_regs_w {lr}593        b.w tailcall594        .seh_nop_w595        .seh_endepilogue596        .seh_endproc597 598        .seh_proc func10599func10:600        push.w {r11,lr}601        .seh_save_regs_w {r11,lr}602        mov r11, sp603        .seh_nop604        vpush {d8-d9}605        .seh_save_fregs {d8-d9}606        sub sp, sp, #16607        .seh_stackalloc 16608        .seh_endprologue609        nop610        .seh_startepilogue611        add sp, sp, #16612        .seh_stackalloc 16613        vpop {d8-d9}614        .seh_save_fregs {d8-d9}615        pop.w {r11,lr}616        .seh_save_regs_w {r11,lr}617        bx lr618        .seh_nop619        .seh_endepilogue620        .seh_endproc621 622        .seh_proc func11623func11:624        push.w {r11,lr}625        .seh_save_regs_w {r11,lr}626        mov r11, sp627        .seh_nop628        vpush {d8-d9}629        .seh_save_fregs {d8-d9}630        sub sp, sp, #16631        .seh_stackalloc 16632        .seh_endprologue633        nop634        .seh_startepilogue635        add sp, sp, #16636        .seh_stackalloc 16637        vpop {d8-d9}638        .seh_save_fregs {d8-d9}639        pop.w {r11,pc}640        .seh_save_regs_w {r11,pc}641        .seh_endepilogue642        .seh_endproc643 644        .seh_proc func12645func12:646        vpush {d8-d14}647        .seh_save_fregs {d8-d14}648        sub sp, sp, #16649        .seh_stackalloc 16650        .seh_endprologue651        nop652        .seh_startepilogue653        add sp, sp, #16654        .seh_stackalloc 16655        vpop {d8-d14}656        .seh_save_fregs {d8-d14}657        b.w tailcall658        .seh_nop_w659        .seh_endepilogue660        .seh_endproc661 662        .seh_proc func13663func13:664        push.w {r4-r11,lr}665        .seh_save_regs_w {r4-r11,lr}666        add.w r11, sp, #0x1c667        .seh_nop_w668        sub sp, sp, #20669        .seh_stackalloc 20670        .seh_endprologue671        nop672        .seh_startepilogue673        add sp, sp, #20674        .seh_stackalloc 20675        pop.w {r4-r11,pc}676        .seh_save_regs_w {r4-r11,lr}677        .seh_endepilogue678        .seh_endproc679 680        .seh_proc func14681func14:682        push.w {r4-r11,lr}683        .seh_save_regs_w {r4-r11,lr}684        sub sp, sp, #20685        .seh_stackalloc 20686        .seh_endprologue687        nop688        .seh_startepilogue689        add sp, sp, #20690        .seh_stackalloc 20691        pop.w {r4-r11,pc}692        .seh_save_regs_w {r4-r11,lr}693        .seh_endepilogue694        .seh_endproc695 696        .seh_proc func15697func15:698        push {r0-r3}699        .seh_save_regs {r0-r3}700        push {r4,lr}701        .seh_save_regs {r4,lr}702        sub.w sp, sp, #512703        .seh_stackalloc_w 512704        .seh_endprologue705        nop706        .seh_startepilogue707        add.w sp, sp, #512708        .seh_stackalloc_w 512709        pop {r4}710        .seh_save_regs {r4}711        ldr pc, [sp], #20712        .seh_save_lr 20713        .seh_endepilogue714        .seh_endproc715 716        .seh_proc func16717func16:718        push {r0-r3}719        .seh_save_regs {r0-r3}720        push.w {r11,lr}721        .seh_save_regs_w {r11,lr}722        mov r11, sp723        .seh_nop724        .seh_endprologue725        nop726        .seh_startepilogue727        pop.w {r11, lr}728        .seh_save_regs_w {r11,lr}729        add sp, sp, #16730        .seh_stackalloc 16731        b.w tailcall732        .seh_nop_w733        .seh_endepilogue734        .seh_endproc735 736        .seh_proc func17737func17:738        push {r0-r3}739        .seh_save_regs {r0-r3}740        push {r4}741        .seh_save_regs {r4}742        sub.w sp, sp, #512743        .seh_stackalloc_w 512744        .seh_endprologue745        nop746        .seh_startepilogue747        add.w sp, sp, #512748        .seh_stackalloc_w 512749        pop {r4}750        .seh_save_regs {r4}751        add sp, sp, #16752        .seh_stackalloc 16753        bx lr754        .seh_nop755        .seh_endepilogue756        .seh_endproc757 758        .seh_proc func18759func18:760        push {r3,lr}761        .seh_save_regs {r3,lr}762        .seh_endprologue763        nop764        .seh_startepilogue765        pop {r3,pc}766        .seh_save_regs {r3,pc}767        .seh_endepilogue768        .seh_endproc769 770        .seh_proc func19771func19:772        push {r0-r3}773        .seh_save_regs {r0-r3}774        push {r0-r4}775        .seh_save_regs {r0-r4}776        .seh_endprologue777        nop778        .seh_startepilogue779        pop {r0-r4}780        .seh_save_regs {r0-r4}781        add sp, sp, #16782        .seh_stackalloc 16783        bx lr784        .seh_nop785        .seh_endepilogue786        .seh_endproc787 788        .seh_proc func20789func20:790        push {r0-r3}791        .seh_save_regs {r0-r3}792        push {r0-r4}793        .seh_save_regs {r0-r4}794        .seh_endprologue795        nop796        .seh_startepilogue797        add sp, sp, #16798        .seh_stackalloc 16799        pop {r4}800        .seh_save_regs {r4}801        add sp, sp, #16802        .seh_stackalloc 16803        bx lr804        .seh_nop805        .seh_endepilogue806        .seh_endproc807 808        .seh_proc func21809func21:810        push {r0-r3}811        .seh_save_regs {r0-r3}812        push {r4}813        .seh_save_regs {r4}814        sub sp, sp, #16815        .seh_stackalloc 16816        .seh_endprologue817        nop818        .seh_startepilogue819        pop {r0-r4}820        .seh_save_regs {r0-r4}821        add sp, sp, #16822        .seh_stackalloc 16823        bx lr824        .seh_nop825        .seh_endepilogue826        .seh_endproc827 828        .seh_proc func22829func22:830        .seh_save_regs {r0-r3}831        .seh_save_regs {r4,lr}832        .seh_stackalloc_w 512833        .seh_endprologue_fragment834        nop835        nop836        .seh_startepilogue837        add.w sp, sp, #512838        .seh_stackalloc_w 512839        pop {r4}840        .seh_save_regs {r4}841        ldr pc, [sp], #20842        .seh_save_lr 20843        .seh_endepilogue844        .seh_endproc845 846        .seh_proc func24847func24:848        push.w {r2-r7,r11,lr}849        .seh_save_regs_w {r2-r7,r11,lr}850        add.w r11, sp, #24851        .seh_nop_w852        .seh_endprologue853        nop854        .seh_startepilogue855        add sp, sp, #8856        .seh_stackalloc 8857        pop.w {r4-r7,r11,pc}858        .seh_save_regs_w {r4-r7,r11,pc}859        .seh_endepilogue860        .seh_endproc861 862        .seh_proc func25863func25:864        push.w {r4-r7,r11,lr}865        .seh_save_regs_w {r4-r7,r11,lr}866        add.w r11, sp, #16867        .seh_nop_w868        sub sp, sp, #8869        .seh_stackalloc 8870        .seh_endprologue871        nop872        .seh_startepilogue873        pop.w {r2-r7,r11,pc}874        .seh_save_regs_w {r2-r7,r11,pc}875        .seh_endepilogue876        .seh_endproc877 878        .seh_proc func26879func26:880        push {r1-r3}881        .seh_save_regs {r1-r3}882        .seh_endprologue883        nop884        .seh_startepilogue885        add sp, sp, #12886        .seh_stackalloc 12887        bx lr888        .seh_nop889        .seh_endepilogue890        .seh_endproc891 892        .seh_proc func27893func27:894        sub sp, sp, #12895        .seh_stackalloc 12896        .seh_endprologue897        nop898        .seh_startepilogue899        pop {r1-r3}900        .seh_save_regs {r1-r3}901        bx lr902        .seh_nop903        .seh_endepilogue904        .seh_endproc905 906        .seh_proc func28907func28:908        push {r0-r3}909        .seh_save_regs {r0-r3}910        .seh_endprologue911        nop912        .seh_startepilogue913        add sp, sp, #16914        .seh_stackalloc 16915        bx lr916        .seh_nop917        .seh_endepilogue918        .seh_endproc919 920        .seh_proc func29921func29:922        push {r0-r3}923        .seh_save_regs {r0-r3}924        push {lr}925        .seh_save_regs {lr}926        .seh_endprologue927        nop928        .seh_startepilogue929        ldr pc, [sp], #20930        .seh_save_lr 20931        .seh_endepilogue932        .seh_endproc933 934        .seh_proc func30935func30:936        push {r4-r6,lr}937        .seh_save_regs {r4-r6,lr}938        .seh_endprologue939        nop940        .seh_startepilogue941        pop {r4-r6,pc}942        .seh_save_regs {r4-r6,pc}943        .seh_endepilogue944        .seh_endproc945 946        .seh_proc func31947func31:948        push {r4-r6,lr}949        .seh_save_regs {r4-r6,lr}950        .seh_endprologue951        nop952        .seh_endproc953 954        .seh_proc notpacked1955notpacked1:956        push {r1-r3}957        .seh_save_regs {r1-r3}958        .seh_endprologue959        nop960        .seh_startepilogue961        // Mismatch with the folded prologue962        add sp, sp, #8963        .seh_stackalloc 8964        bx lr965        .seh_nop966        .seh_endepilogue967        .seh_endproc968 969        .seh_proc notpacked2970notpacked2:971        sub sp, sp, #8972        .seh_stackalloc 8973        .seh_endprologue974        nop975        .seh_startepilogue976        // Folded epilogue is a mismatch to the regular stack adjust in the prologue977        pop {r1-r3}978        .seh_save_regs {r1-r3}979        bx lr980        .seh_nop981        .seh_endepilogue982        .seh_endproc983 984        .seh_proc notpacked3985notpacked3:986        // Can't represent d8-d15 in the packed form987        vpush {d8-d15}988        .seh_save_fregs {d8-d15}989        .seh_endprologue990        nop991        .seh_startepilogue992        vpop {d8-d15}993        .seh_save_fregs {d8-d15}994        bx lr995        .seh_nop996        .seh_endepilogue997        .seh_endproc998 999        .seh_proc notpacked41000notpacked4:1001        push {r2-r7}1002        .seh_save_regs {r2-r7}1003        sub sp, sp, #161004        .seh_stackalloc 161005        // Can't have both a folded stack adjustment and a separate one1006        .seh_endprologue1007        nop1008        .seh_startepilogue1009        add sp, sp, #161010        .seh_stackalloc 161011        pop {r2-r7}1012        .seh_save_regs {r2-r7}1013        bx lr1014        .seh_nop1015        .seh_endepilogue1016        .seh_endproc1017 1018        .seh_proc notpacked51019notpacked5:1020        // Can't represent r11 in packed form when it's not contiguous1021        // with the rest and when it's not chained (missing "add.w r11, sp, #.."1022        // and .seh_nop_w).1023        push.w {r4-r7,r11,lr}1024        .seh_save_regs_w {r4-r7,r11,lr}1025        sub sp, sp, #81026        .seh_stackalloc 81027        .seh_endprologue1028        nop1029        .seh_startepilogue1030        pop.w {r2-r7,r11,pc}1031        .seh_save_regs_w {r2-r7,r11,pc}1032        .seh_endepilogue1033        .seh_endproc1034 1035        .seh_proc notpacked61036notpacked6:1037        // Can't pack non-contiguous registers1038        push {r4,r7}1039        .seh_save_regs {r4,r7}1040        .seh_endprologue1041        nop1042        .seh_startepilogue1043        pop {r4,r7}1044        .seh_save_regs {r4,r7}1045        bx lr1046        .seh_nop1047        .seh_endepilogue1048        .seh_endproc1049 1050        .seh_proc notpacked71051notpacked7:1052        // Can't pack float registers ouside of d8-d141053        vpush {d0-d3}1054        .seh_save_fregs {d0-d3}1055        .seh_endprologue1056        nop1057        .seh_startepilogue1058        vpop {d0-d3}1059        .seh_save_fregs {d0-d3}1060        bx lr1061        .seh_nop1062        .seh_endepilogue1063        .seh_endproc1064 1065        .seh_proc notpacked81066notpacked8:1067        push {r4-r7,lr}1068        .seh_save_regs {r4-r7,lr}1069        .seh_endprologue1070        nop1071        .seh_startepilogue1072        pop {r4-r7,pc}1073        .seh_save_regs {r4-r7,pc}1074        .seh_endepilogue1075        // Epilogue isn't at the end of the function; can't be packed.1076        nop1077        .seh_endproc1078 1079        .seh_proc notpacked91080notpacked9:1081        push {r4-r7,lr}1082        .seh_save_regs {r4-r7,lr}1083        .seh_endprologue1084        nop1085        .seh_startepilogue1086        pop {r4-r7,pc}1087        .seh_save_regs {r4-r7,pc}1088        .seh_endepilogue1089        // Multiple epilogues, can't be packed1090        nop1091        .seh_startepilogue1092        pop {r4-r7,pc}1093        .seh_save_regs {r4-r7,pc}1094        .seh_endepilogue1095        .seh_endproc1096