brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.9 KiB · 5b86ab4 Raw
1160 lines · plain
1// Check that we generate the packed unwind info format whe possible.2 3// For tests that don't generate packed unwind info, we still check that4// the epilog was packed (so that the testcase otherwise had all other5// preconditions for possibly making packed unwind info).6 7// REQUIRES: aarch64-registered-target8// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o %t.o9// RUN: llvm-readobj --unwind %t.o | FileCheck %s10 11// CHECK:      UnwindInformation [12// CHECK-NEXT:   RuntimeFunction {13// CHECK-NEXT:     Function: func114// CHECK-NEXT:     Fragment: No15// CHECK-NEXT:     FunctionLength: 8816// CHECK-NEXT:     RegF: 717// CHECK-NEXT:     RegI: 1018// CHECK-NEXT:     HomedParameters: No19// CHECK-NEXT:     CR: 020// CHECK-NEXT:     FrameSize: 16021// CHECK-NEXT:     Prologue [22// CHECK-NEXT:       sub sp, sp, #1623// CHECK-NEXT:       stp d14, d15, [sp, #128]24// CHECK-NEXT:       stp d12, d13, [sp, #112]25// CHECK-NEXT:       stp d10, d11, [sp, #96]26// CHECK-NEXT:       stp d8, d9, [sp, #80]27// CHECK-NEXT:       stp x27, x28, [sp, #64]28// CHECK-NEXT:       stp x25, x26, [sp, #48]29// CHECK-NEXT:       stp x23, x24, [sp, #32]30// CHECK-NEXT:       stp x21, x22, [sp, #16]31// CHECK-NEXT:       stp x19, x20, [sp, #-144]!32// CHECK-NEXT:       end33// CHECK-NEXT:     ]34// CHECK-NEXT:   }35// CHECK-NEXT:   RuntimeFunction {36// CHECK-NEXT:     Function: func237// CHECK-NEXT:     Fragment: No38// CHECK-NEXT:     FunctionLength: 4839// CHECK-NEXT:     RegF: 240// CHECK-NEXT:     RegI: 341// CHECK-NEXT:     HomedParameters: No42// CHECK-NEXT:     CR: 043// CHECK-NEXT:     FrameSize: 4844// CHECK-NEXT:     Prologue [45// CHECK-NEXT:       str d10, [sp, #40]46// CHECK-NEXT:       stp d8, d9, [sp, #24]47// CHECK-NEXT:       str x21, [sp, #16]48// CHECK-NEXT:       stp x19, x20, [sp, #-48]!49// CHECK-NEXT:       end50// CHECK-NEXT:     ]51// CHECK-NEXT:   }52// CHECK-NEXT:   RuntimeFunction {53// CHECK-NEXT:     Function: func354// CHECK-NEXT:     Fragment: No55// CHECK-NEXT:     FunctionLength: 3256// CHECK-NEXT:     RegF: 357// CHECK-NEXT:     RegI: 158// CHECK-NEXT:     HomedParameters: No59// CHECK-NEXT:     CR: 060// CHECK-NEXT:     FrameSize: 4861// CHECK-NEXT:     Prologue [62// CHECK-NEXT:       stp d10, d11, [sp, #24]63// CHECK-NEXT:       stp d8, d9, [sp, #8]64// CHECK-NEXT:       str x19, [sp, #-48]!65// CHECK-NEXT:       end66// CHECK-NEXT:     ]67// CHECK-NEXT:   }68// CHECK-NEXT:   RuntimeFunction {69// CHECK-NEXT:     Function: func470// CHECK-NEXT:     Fragment: No71// CHECK-NEXT:     FunctionLength: 2472// CHECK-NEXT:     RegF: 173// CHECK-NEXT:     RegI: 074// CHECK-NEXT:     HomedParameters: No75// CHECK-NEXT:     CR: 076// CHECK-NEXT:     FrameSize: 4877// CHECK-NEXT:     Prologue [78// CHECK-NEXT:       sub sp, sp, #3279// CHECK-NEXT:       stp d8, d9, [sp, #-16]!80// CHECK-NEXT:       end81// CHECK-NEXT:     ]82// CHECK-NEXT:   }83// CHECK-NEXT:   RuntimeFunction {84// CHECK-NEXT:     Function: notpacked_func585// CHECK-NEXT:     ExceptionRecord:86// CHECK-NEXT:     ExceptionData {87// CHECK:        RuntimeFunction {88// CHECK-NEXT:     Function: func689// CHECK-NEXT:     Fragment: No90// CHECK-NEXT:     FunctionLength: 2491// CHECK-NEXT:     RegF: 092// CHECK-NEXT:     RegI: 093// CHECK-NEXT:     HomedParameters: No94// CHECK-NEXT:     CR: 195// CHECK-NEXT:     FrameSize: 3296// CHECK-NEXT:     Prologue [97// CHECK-NEXT:       sub sp, sp, #1698// CHECK-NEXT:       str lr, [sp, #-16]!99// CHECK-NEXT:       end100// CHECK-NEXT:     ]101// CHECK-NEXT:   }102// CHECK-NEXT:   RuntimeFunction {103// CHECK-NEXT:     Function: func7104// CHECK-NEXT:     Fragment: No105// CHECK-NEXT:     FunctionLength: 24106// CHECK-NEXT:     RegF: 0107// CHECK-NEXT:     RegI: 2108// CHECK-NEXT:     HomedParameters: No109// CHECK-NEXT:     CR: 1110// CHECK-NEXT:     FrameSize: 32111// CHECK-NEXT:     Prologue [112// CHECK-NEXT:       str lr, [sp, #16]113// CHECK-NEXT:       stp x19, x20, [sp, #-32]!114// CHECK-NEXT:       end115// CHECK-NEXT:     ]116// CHECK-NEXT:   }117// CHECK-NEXT:   RuntimeFunction {118// CHECK-NEXT:     Function: func8119// CHECK-NEXT:     Fragment: No120// CHECK-NEXT:     FunctionLength: 32121// CHECK-NEXT:     RegF: 0122// CHECK-NEXT:     RegI: 3123// CHECK-NEXT:     HomedParameters: No124// CHECK-NEXT:     CR: 1125// CHECK-NEXT:     FrameSize: 48126// CHECK-NEXT:     Prologue [127// CHECK-NEXT:       sub sp, sp, #16128// CHECK-NEXT:       stp x21, lr, [sp, #16]129// CHECK-NEXT:       stp x19, x20, [sp, #-32]!130// CHECK-NEXT:       end131// CHECK-NEXT:     ]132// CHECK-NEXT:   }133// CHECK-NEXT:   RuntimeFunction {134// CHECK-NEXT:     Function: func9135// CHECK-NEXT:     Fragment: No136// CHECK-NEXT:     FunctionLength: 32137// CHECK-NEXT:     RegF: 0138// CHECK-NEXT:     RegI: 2139// CHECK-NEXT:     HomedParameters: No140// CHECK-NEXT:     CR: 3141// CHECK-NEXT:     FrameSize: 48142// CHECK-NEXT:     Prologue [143// CHECK-NEXT:       mov x29, sp144// CHECK-NEXT:       stp x29, lr, [sp, #-32]!145// CHECK-NEXT:       stp x19, x20, [sp, #-16]!146// CHECK-NEXT:       end147// CHECK-NEXT:     ]148// CHECK-NEXT:   }149// CHECK-NEXT:   RuntimeFunction {150// CHECK-NEXT:     Function: func10151// CHECK-NEXT:     Fragment: No152// CHECK-NEXT:     FunctionLength: 24153// CHECK-NEXT:     RegF: 0154// CHECK-NEXT:     RegI: 0155// CHECK-NEXT:     HomedParameters: No156// CHECK-NEXT:     CR: 3157// CHECK-NEXT:     FrameSize: 32158// CHECK-NEXT:     Prologue [159// CHECK-NEXT:       mov x29, sp160// CHECK-NEXT:       stp x29, lr, [sp, #-32]!161// CHECK-NEXT:       end162// CHECK-NEXT:     ]163// CHECK-NEXT:   }164// CHECK-NEXT:   RuntimeFunction {165// CHECK-NEXT:     Function: func11166// CHECK-NEXT:     Fragment: No167// CHECK-NEXT:     FunctionLength: 40168// CHECK-NEXT:     RegF: 0169// CHECK-NEXT:     RegI: 2170// CHECK-NEXT:     HomedParameters: No171// CHECK-NEXT:     CR: 3172// CHECK-NEXT:     FrameSize: 544173// CHECK-NEXT:     Prologue [174// CHECK-NEXT:       mov x29, sp175// CHECK-NEXT:       stp x29, lr, [sp, #0]176// CHECK-NEXT:       sub sp, sp, #528177// CHECK-NEXT:       stp x19, x20, [sp, #-16]!178// CHECK-NEXT:       end179// CHECK-NEXT:     ]180// CHECK-NEXT:   }181// CHECK-NEXT:   RuntimeFunction {182// CHECK-NEXT:     Function: func12183// CHECK-NEXT:     Fragment: No184// CHECK-NEXT:     FunctionLength: 48185// CHECK-NEXT:     RegF: 0186// CHECK-NEXT:     RegI: 2187// CHECK-NEXT:     HomedParameters: No188// CHECK-NEXT:     CR: 3189// CHECK-NEXT:     FrameSize: 4112190// CHECK-NEXT:     Prologue [191// CHECK-NEXT:       mov x29, sp192// CHECK-NEXT:       stp x29, lr, [sp, #0]193// CHECK-NEXT:       sub sp, sp, #16194// CHECK-NEXT:       sub sp, sp, #4080195// CHECK-NEXT:       stp x19, x20, [sp, #-16]!196// CHECK-NEXT:       end197// CHECK-NEXT:     ]198// CHECK-NEXT:   }199// CHECK-NEXT:   RuntimeFunction {200// CHECK-NEXT:     Function: func13201// CHECK-NEXT:     Fragment: No202// CHECK-NEXT:     FunctionLength: 32203// CHECK-NEXT:     RegF: 0204// CHECK-NEXT:     RegI: 2205// CHECK-NEXT:     HomedParameters: No206// CHECK-NEXT:     CR: 0207// CHECK-NEXT:     FrameSize: 4112208// CHECK-NEXT:     Prologue [209// CHECK-NEXT:       sub sp, sp, #16210// CHECK-NEXT:       sub sp, sp, #4080211// CHECK-NEXT:       stp x19, x20, [sp, #-16]!212// CHECK-NEXT:       end213// CHECK-NEXT:     ]214// CHECK-NEXT:   }215// CHECK-NEXT:   RuntimeFunction {216// CHECK-NEXT:     Function: func14217// CHECK-NEXT:     Fragment: No218// CHECK-NEXT:     FunctionLength: 32219// CHECK-NEXT:     RegF: 2220// CHECK-NEXT:     RegI: 0221// CHECK-NEXT:     HomedParameters: No222// CHECK-NEXT:     CR: 1223// CHECK-NEXT:     FrameSize: 32224// CHECK-NEXT:     Prologue [225// CHECK-NEXT:       str d10, [sp, #24]226// CHECK-NEXT:       stp d8, d9, [sp, #8]227// CHECK-NEXT:       str lr, [sp, #-32]!228// CHECK-NEXT:       end229// CHECK-NEXT:     ]230// CHECK-NEXT:   }231// CHECK-NEXT:   RuntimeFunction {232// CHECK-NEXT:     Function: func15233// CHECK-NEXT:     Fragment: No234// CHECK-NEXT:     FunctionLength: 20235// CHECK-NEXT:     RegF: 0236// CHECK-NEXT:     RegI: 0237// CHECK-NEXT:     HomedParameters: No238// CHECK-NEXT:     CR: 3239// CHECK-NEXT:     FrameSize: 32240// CHECK-NEXT:     Prologue [241// CHECK-NEXT:       mov x29, sp242// CHECK-NEXT:       stp x29, lr, [sp, #-32]!243// CHECK-NEXT:       end244// CHECK-NEXT:     ]245// CHECK-NEXT:   }246// CHECK-NEXT:   RuntimeFunction {247// CHECK-NEXT:     Function: func16248// CHECK-NEXT:     Fragment: No249// CHECK-NEXT:     FunctionLength: 28250// CHECK-NEXT:     RegF: 0251// CHECK-NEXT:     RegI: 0252// CHECK-NEXT:     HomedParameters: No253// CHECK-NEXT:     CR: 2254// CHECK-NEXT:     FrameSize: 32255// CHECK-NEXT:     Prologue [256// CHECK-NEXT:       mov x29, sp257// CHECK-NEXT:       stp x29, lr, [sp, #-32]!258// CHECK-NEXT:       pacibsp259// CHECK-NEXT:       end260// CHECK-NEXT:     ]261// CHECK-NEXT:   }262// CHECK-NEXT:   RuntimeFunction {263// CHECK-NEXT:     Function: func17264// CHECK-NEXT:     Fragment: No265// CHECK-NEXT:     FunctionLength: 40266// CHECK-NEXT:     RegF: 0267// CHECK-NEXT:     RegI: 2268// CHECK-NEXT:     HomedParameters: No269// CHECK-NEXT:     CR: 2270// CHECK-NEXT:     FrameSize: 48271// CHECK-NEXT:     Prologue [272// CHECK-NEXT:       mov x29, sp273// CHECK-NEXT:       stp x29, lr, [sp, #-32]!274// CHECK-NEXT:       stp x19, x20, [sp, #-16]!275// CHECK-NEXT:       pacibsp276// CHECK-NEXT:       end277// CHECK-NEXT:     ]278// CHECK-NEXT:   }279// CHECK-NEXT:   RuntimeFunction {280// CHECK-NEXT:     Function: func18281// CHECK-NEXT:     Fragment: No282// CHECK-NEXT:     FunctionLength: 56283// CHECK-NEXT:     RegF: 0284// CHECK-NEXT:     RegI: 2285// CHECK-NEXT:     HomedParameters: No286// CHECK-NEXT:     CR: 2287// CHECK-NEXT:     FrameSize: 4112288// CHECK-NEXT:     Prologue [289// CHECK-NEXT:       mov x29, sp290// CHECK-NEXT:       stp x29, lr, [sp, #0]291// CHECK-NEXT:       sub sp, sp, #16292// CHECK-NEXT:       sub sp, sp, #4080293// CHECK-NEXT:       stp x19, x20, [sp, #-16]!294// CHECK-NEXT:       pacibsp295// CHECK-NEXT:       end296// CHECK-NEXT:     ]297// CHECK-NEXT:   }298// CHECK:        RuntimeFunction {299// CHECK-NEXT:     Function: nonpacked1300// CHECK-NEXT:     ExceptionRecord:301// CHECK-NEXT:     ExceptionData {302// CHECK:            EpiloguePacked: Yes303// CHECK:        RuntimeFunction {304// CHECK-NEXT:     Function: nonpacked2305// CHECK-NEXT:     ExceptionRecord:306// CHECK-NEXT:     ExceptionData {307// CHECK:            EpiloguePacked: Yes308// CHECK:        RuntimeFunction {309// CHECK-NEXT:     Function: nonpacked3310// CHECK-NEXT:     ExceptionRecord:311// CHECK-NEXT:     ExceptionData {312// CHECK:            EpiloguePacked: Yes313// CHECK:        RuntimeFunction {314// CHECK-NEXT:     Function: nonpacked4315// CHECK-NEXT:     ExceptionRecord:316// CHECK-NEXT:     ExceptionData {317// CHECK:            EpiloguePacked: Yes318// CHECK:        RuntimeFunction {319// CHECK-NEXT:     Function: nonpacked5320// CHECK-NEXT:     ExceptionRecord:321// CHECK-NEXT:     ExceptionData {322// CHECK:            EpiloguePacked: Yes323// CHECK:        RuntimeFunction {324// CHECK-NEXT:     Function: nonpacked6325// CHECK-NEXT:     ExceptionRecord:326// CHECK-NEXT:     ExceptionData {327// CHECK:            EpiloguePacked: Yes328// CHECK:        RuntimeFunction {329// CHECK-NEXT:     Function: nonpacked7330// CHECK-NEXT:     ExceptionRecord:331// CHECK-NEXT:     ExceptionData {332// CHECK:            EpiloguePacked: Yes333// CHECK:        RuntimeFunction {334// CHECK-NEXT:     Function: nonpacked8335// CHECK-NEXT:     ExceptionRecord:336// CHECK-NEXT:     ExceptionData {337// CHECK:            EpiloguePacked: Yes338// CHECK:        RuntimeFunction {339// CHECK-NEXT:     Function: nonpacked9340// CHECK-NEXT:     ExceptionRecord:341// CHECK-NEXT:     ExceptionData {342// CHECK:            EpiloguePacked: Yes343// CHECK:        RuntimeFunction {344// CHECK-NEXT:     Function: nonpacked10345// CHECK-NEXT:     ExceptionRecord:346// CHECK-NEXT:     ExceptionData {347// CHECK:            EpiloguePacked: Yes348// CHECK:        RuntimeFunction {349// CHECK-NEXT:     Function: nonpacked11350// CHECK-NEXT:     ExceptionRecord:351// CHECK-NEXT:     ExceptionData {352// CHECK:            EpiloguePacked: Yes353// CHECK:        RuntimeFunction {354// CHECK-NEXT:     Function: nonpacked12355// CHECK-NEXT:     ExceptionRecord:356// CHECK-NEXT:     ExceptionData {357// CHECK:            EpiloguePacked: Yes358// CHECK:        RuntimeFunction {359// CHECK-NEXT:     Function: nonpacked13360// CHECK-NEXT:     ExceptionRecord:361// CHECK-NEXT:     ExceptionData {362// CHECK:            EpiloguePacked: Yes363// CHECK:        RuntimeFunction {364// CHECK-NEXT:     Function: nonpacked14365// CHECK-NEXT:     ExceptionRecord:366// CHECK-NEXT:     ExceptionData {367// CHECK:            EpiloguePacked: Yes368// CHECK:        RuntimeFunction {369// CHECK-NEXT:     Function: nonpacked15370// CHECK-NEXT:     ExceptionRecord:371// CHECK-NEXT:     ExceptionData {372// CHECK:            EpiloguePacked: Yes373// CHECK:        RuntimeFunction {374// CHECK-NEXT:     Function: nonpacked16375// CHECK-NEXT:     ExceptionRecord:376// CHECK-NEXT:     ExceptionData {377// CHECK:            EpiloguePacked: Yes378 379 380    .text381func1:382    .seh_proc func1383    stp x19, x20, [sp, #-144]!384    .seh_save_r19r20_x 144385    stp x21, x22, [sp, #16]386    .seh_save_regp x21, 16387    stp x23, x24, [sp, #32]388    .seh_save_next389    stp x25, x26, [sp, #48]390    .seh_save_next391    stp x27, x28, [sp, #64]392    .seh_save_next393    stp d8,  d9,  [sp, #80]394    .seh_save_fregp d8, 80395    stp d10, d11, [sp, #96]396    .seh_save_fregp d10, 96397    stp d12, d13, [sp, #112]398    .seh_save_fregp d12, 112399    stp d14, d15, [sp, #128]400    .seh_save_fregp d14, 128401    sub sp,  sp,  #16402    .seh_stackalloc 16403    .seh_endprologue404    nop405    .seh_startepilogue406    add sp,  sp,  #16407    .seh_stackalloc 16408    ldp d14, d15, [sp, #128]409    .seh_save_fregp d14, 128410    ldp d12, d13, [sp, #112]411    .seh_save_fregp d12, 112412    ldp d10, d11, [sp, #96]413    .seh_save_fregp d10, 96414    ldp d8,  d9,  [sp, #80]415    .seh_save_fregp d8, 80416    ldp x27, x28, [sp, #64]417    .seh_save_next418    ldp x25, x26, [sp, #48]419    .seh_save_next420    ldp x23, x24, [sp, #32]421    .seh_save_next422    ldp x21, x22, [sp, #16]423    .seh_save_next424    ldp x19, x20, [sp], #144425    .seh_save_regp_x x19, 144426    .seh_endepilogue427    ret428    .seh_endproc429 430func2:431    .seh_proc func2432    stp x19, x20, [sp, #-48]!433    .seh_save_r19r20_x 48434    str x21,      [sp, #16]435    .seh_save_reg x21, 16436    stp d8,  d9,  [sp, #24]437    .seh_save_fregp d8, 24438    str d10,      [sp, #40]439    .seh_save_freg d10, 40440    sub sp,  sp,  #0441    .seh_stackalloc 0442    .seh_endprologue443    nop444    .seh_startepilogue445    add sp,  sp,  #0446    .seh_stackalloc 0447    ldr d10,      [sp, #40]448    .seh_save_freg d10, 40449    ldp d8,  d9,  [sp, #24]450    .seh_save_fregp d8, 24451    ldr x21,      [sp, #16]452    .seh_save_reg x21, 16453    ldp x19, x20, [sp], #48454    .seh_save_r19r20_x 48455    .seh_endepilogue456    ret457    .seh_endproc458 459func3:460    .seh_proc func3461    str x19,      [sp, #-48]!462    .seh_save_reg_x x19, 48463    stp d8,  d9,  [sp, #8]464    .seh_save_fregp d8, 8465    stp d10, d11, [sp, #24]466    .seh_save_fregp d10, 24467    .seh_endprologue468    nop469    .seh_startepilogue470    ldp d10, d11, [sp, #24]471    .seh_save_fregp d10, 24472    ldp d8,  d9,  [sp, #8]473    .seh_save_fregp d8, 8474    ldr x19,      [sp], #48475    .seh_save_reg_x x19, 48476    .seh_endepilogue477    ret478    .seh_endproc479 480func4:481    .seh_proc func4482    stp d8,  d9,  [sp, #-16]!483    .seh_save_fregp_x d8, 16484    sub sp,  sp,  #32485    .seh_stackalloc 32486    .seh_endprologue487    nop488    .seh_startepilogue489    add sp,  sp,  #32490    .seh_stackalloc 32491    ldp d8,  d9,  [sp], #16492    .seh_save_fregp_x d8, 16493    .seh_endepilogue494    ret495    .seh_endproc496 497notpacked_func5:498    .seh_proc notpacked_func5499    str x19, [sp, #-80]!500    .seh_save_reg_x x19, 80501    stp x0,  x1,  [sp, #16]502    .seh_nop503    stp x2,  x3,  [sp, #32]504    .seh_nop505    stp x4,  x5,  [sp, #48]506    .seh_nop507    stp x6,  x7,  [sp, #64]508    .seh_nop509    sub sp,  sp,  #32510    .seh_stackalloc 32511    .seh_endprologue512    nop513    .seh_startepilogue514    add sp,  sp,  #32515    .seh_stackalloc 32516    nop517    .seh_nop518    nop519    .seh_nop520    nop521    .seh_nop522    nop523    .seh_nop524    ldr x19, [sp], #80525    .seh_save_reg_x x19, 80526    .seh_endepilogue527    ret528    .seh_endproc529 530func6:531    .seh_proc func6532    str lr,       [sp, #-16]!533    .seh_save_reg_x lr, 16534    sub sp,  sp,  #16535    .seh_stackalloc 16536    .seh_endprologue537    nop538    .seh_startepilogue539    add sp,  sp,  #16540    .seh_stackalloc 16541    ldr lr,       [sp], #16542    .seh_save_reg_x lr, 16543    .seh_endepilogue544    ret545    .seh_endproc546 547func7:548    .seh_proc func7549    stp x19, x20, [sp, #-32]!550    .seh_save_r19r20_x 32551    str lr,       [sp, #16]552    .seh_save_reg lr, 16553    .seh_endprologue554    nop555    .seh_startepilogue556    ldr lr,       [sp, #16]557    .seh_save_reg lr, 16558    ldp x19, x20, [sp], #32559    .seh_save_r19r20_x 32560    .seh_endepilogue561    ret562    .seh_endproc563 564func8:565    .seh_proc func8566    stp x19, x20, [sp, #-32]!567    .seh_save_r19r20_x 32568    stp x21, lr,  [sp, #16]569    .seh_save_lrpair x21, 16570    sub sp,  sp,  #16571    .seh_stackalloc 16572    .seh_endprologue573    nop574    .seh_startepilogue575    add sp,  sp,  #16576    .seh_stackalloc 16577    ldp x21, lr,  [sp, #16]578    .seh_save_lrpair x21, 16579    ldp x19, x20, [sp], #32580    .seh_save_r19r20_x 32581    .seh_endepilogue582    ret583    .seh_endproc584 585func9:586    .seh_proc func9587    stp x19, x20, [sp, #-16]!588    .seh_save_r19r20_x 16589    stp x29, lr,  [sp, #-32]!590    .seh_save_fplr_x 32591    mov x29, sp592    .seh_set_fp593    .seh_endprologue594    nop595    .seh_startepilogue596    mov sp,  x29597    .seh_set_fp598    ldp x29, lr,  [sp], #32599    .seh_save_fplr_x 32600    ldp x19, x20, [sp], #16601    .seh_save_r19r20_x 16602    .seh_endepilogue603    ret604    .seh_endproc605 606func10:607    .seh_proc func10608    stp x29, lr,  [sp, #-32]!609    .seh_save_fplr_x 32610    mov x29, sp611    .seh_set_fp612    .seh_endprologue613    nop614    .seh_startepilogue615    mov sp,  x29616    .seh_set_fp617    ldp x29, lr,  [sp], #32618    .seh_save_fplr_x 32619    .seh_endepilogue620    ret621    .seh_endproc622 623func11:624    .seh_proc func11625    stp x19, x20, [sp, #-16]!626    .seh_save_r19r20_x 16627    sub sp,  sp,  #528628    .seh_stackalloc 528629    stp x29, lr,  [sp, #0]630    .seh_save_fplr 0631    mov x29, sp632    .seh_set_fp633    .seh_endprologue634    nop635    .seh_startepilogue636    mov sp,  x29637    .seh_set_fp638    ldp x29, lr,  [sp, #0]639    .seh_save_fplr 0640    add sp,  sp,  #528641    .seh_stackalloc 528642    ldp x19, x20, [sp], #16643    .seh_save_r19r20_x 16644    .seh_endepilogue645    ret646    .seh_endproc647 648func12:649    .seh_proc func12650    stp x19, x20, [sp, #-16]!651    .seh_save_r19r20_x 16652    sub sp,  sp,  #4080653    .seh_stackalloc 4080654    sub sp,  sp,  #16655    .seh_stackalloc 16656    stp x29, lr,  [sp, #0]657    .seh_save_fplr 0658    mov x29, sp659    .seh_set_fp660    .seh_endprologue661    nop662    .seh_startepilogue663    mov sp,  x29664    .seh_set_fp665    ldp x29, lr,  [sp, #0]666    .seh_save_fplr 0667    add sp,  sp,  #16668    .seh_stackalloc 16669    add sp,  sp,  #4080670    .seh_stackalloc 4080671    ldp x19, x20, [sp], #16672    .seh_save_r19r20_x 16673    .seh_endepilogue674    ret675    .seh_endproc676 677func13:678    .seh_proc func13679    stp x19, x20, [sp, #-16]!680    .seh_save_r19r20_x 16681    sub sp,  sp,  #4080682    .seh_stackalloc 4080683    sub sp,  sp,  #16684    .seh_stackalloc 16685    .seh_endprologue686    nop687    .seh_startepilogue688    add sp,  sp,  #16689    .seh_stackalloc 16690    add sp,  sp,  #4080691    .seh_stackalloc 4080692    ldp x19, x20, [sp], #16693    .seh_save_r19r20_x 16694    .seh_endepilogue695    ret696    .seh_endproc697 698func14:699    .seh_proc func14700    str lr,       [sp, #-32]!701    .seh_save_reg_x lr, 32702    stp d8,  d9,  [sp, #8]703    .seh_save_fregp d8, 8704    str d10,      [sp, #24]705    .seh_save_freg d10, 24706    .seh_endprologue707    nop708    .seh_startepilogue709    ldr d10,      [sp, #24]710    .seh_save_freg d10, 24711    ldp d8,  d9,  [sp, #8]712    .seh_save_fregp d8, 8713    ldr lr,       [sp], #32714    .seh_save_reg_x lr, 32715    .seh_endepilogue716    ret717    .seh_endproc718 719func15:720    .seh_proc func15721    stp x29, lr,  [sp, #-32]!722    .seh_save_fplr_x 32723    mov x29, sp724    .seh_set_fp725    .seh_endprologue726    nop727    .seh_startepilogue728    // Epilogue missing the .seh_set_fp, but still generating packed info.729    ldp x29, lr,  [sp], #32730    .seh_save_fplr_x 32731    .seh_endepilogue732    ret733    .seh_endproc734 735func16:736    .seh_proc func16737    pacibsp738    .seh_pac_sign_lr739    stp x29, lr,  [sp, #-32]!740    .seh_save_fplr_x 32741    mov x29, sp742    .seh_set_fp743    .seh_endprologue744    nop745    .seh_startepilogue746    ldp x29, lr, [sp], #32747    .seh_save_fplr_x 32748    autibsp749    .seh_pac_sign_lr750    .seh_endepilogue751    ret752    .seh_endproc753 754func17:755    .seh_proc func17756    pacibsp757    .seh_pac_sign_lr758    stp x19, x20, [sp, #-16]!759    .seh_save_r19r20_x 16760    stp x29, lr,  [sp, #-32]!761    .seh_save_fplr_x 32762    mov x29, sp763    .seh_set_fp764    .seh_endprologue765    nop766    .seh_startepilogue767    mov sp,  x29768    .seh_set_fp769    ldp x29, lr,  [sp], #32770    .seh_save_fplr_x 32771    ldp x19, x20, [sp], #16772    .seh_save_r19r20_x 16773    autibsp774    .seh_pac_sign_lr775    .seh_endepilogue776    ret777    .seh_endproc778 779func18:780    .seh_proc func18781    pacibsp782    .seh_pac_sign_lr783    stp x19, x20, [sp, #-16]!784    .seh_save_r19r20_x 16785    sub sp,  sp,  #4080786    .seh_stackalloc 4080787    sub sp,  sp,  #16788    .seh_stackalloc 16789    stp x29, lr,  [sp, #0]790    .seh_save_fplr 0791    mov x29, sp792    .seh_set_fp793    .seh_endprologue794    nop795    .seh_startepilogue796    mov sp,  x29797    .seh_set_fp798    ldp x29, lr,  [sp, #0]799    .seh_save_fplr 0800    add sp,  sp,  #16801    .seh_stackalloc 16802    add sp,  sp,  #4080803    .seh_stackalloc 4080804    ldp x19, x20, [sp], #16805    .seh_save_r19r20_x 16806    autibsp807    .seh_pac_sign_lr808    .seh_endepilogue809    ret810    .seh_endproc811 812nonpacked1:813    .seh_proc nonpacked1814    // Can't be packed; can't save integer registers after float registers.815    stp d8,  d9,  [sp, #-32]!816    .seh_save_fregp_x d8, 32817    stp x19, x20, [sp, #16]!818    .seh_save_regp x19, 16819    .seh_endprologue820    nop821    .seh_startepilogue822    ldp x19, x20, [sp, #16]823    .seh_save_regp x19, 16824    ldp d8,  d9,  [sp], #32825    .seh_save_fregp_x d8, 32826    .seh_endepilogue827    ret828    .seh_endproc829 830nonpacked2:831    .seh_proc nonpacked2832    // Can't be packed; x21/x22 aren't saved in the expected spot833    stp x19, x20, [sp, #-48]!834    .seh_save_r19r20_x 48835    stp x21, x22, [sp, #32]836    .seh_save_regp x21, 32837    .seh_endprologue838    nop839    .seh_startepilogue840    ldp x21, x22, [sp, #32]841    .seh_save_regp x21, 32842    ldp x19, x20, [sp], #48843    .seh_save_r19r20_x 48844    .seh_endepilogue845    ret846    .seh_endproc847 848nonpacked3:849    .seh_proc nonpacked3850    // Can't be packed; x29/x30 can't be treated as the other saved registers851    stp x19, x20, [sp, #-96]!852    .seh_save_r19r20_x 96853    stp x21, x22, [sp, #16]854    .seh_save_next855    stp x23, x24, [sp, #32]856    .seh_save_next857    stp x25, x26, [sp, #48]858    .seh_save_next859    stp x27, x28, [sp, #64]860    .seh_save_next861    stp x29, x30, [sp, #80]862    .seh_save_next863    .seh_endprologue864    nop865    .seh_startepilogue866    ldp x29, x30, [sp, #80]867    .seh_save_next868    ldp x27, x28, [sp, #64]869    .seh_save_next870    ldp x25, x26, [sp, #48]871    .seh_save_next872    ldp x23, x24, [sp, #32]873    .seh_save_next874    ldp x21, x22, [sp, #16]875    .seh_save_next876    ldp x19, x20, [sp], #96877    .seh_save_r19r20_x 96878    .seh_endepilogue879    ret880    .seh_endproc881 882nonpacked4:883    .seh_proc nonpacked4884    // Can't be packed; more predecrement for x19/x20 than used for885    // corresponding RegI/RegF/LR saves886    stp x19, x20, [sp, #-32]!887    .seh_save_r19r20_x 32888    .seh_endprologue889    nop890    .seh_startepilogue891    ldp x19, x20, [sp], #32892    .seh_save_r19r20_x 32893    .seh_endepilogue894    ret895    .seh_endproc896 897nonpacked5:898    .seh_proc nonpacked5899    // Can't be packed; can't save LR twice900    stp x19, x20, [sp, #-32]!901    .seh_save_r19r20_x 32902    str lr, [sp, #16]903    .seh_save_reg lr, 16904    str lr, [sp, #24]905    .seh_save_reg lr, 24906    .seh_endprologue907    nop908    .seh_startepilogue909    ldr lr, [sp, #24]910    .seh_save_reg lr, 24911    ldr lr, [sp, #16]912    .seh_save_reg lr, 16913    ldp x19, x20, [sp], #32914    .seh_save_r19r20_x 32915    .seh_endepilogue916    ret917    .seh_endproc918 919nonpacked6:920    .seh_proc nonpacked6921    // Can't be packed; can't save LR both standalone (CR 1) and as FPLR (CR 3)922    stp x19, x20, [sp, #-32]!923    .seh_save_r19r20_x 32924    str lr, [sp, #16]925    .seh_save_reg lr, 16926    stp x29, lr,  [sp, #-16]!927    .seh_save_fplr_x 16928    mov x29, sp929    .seh_set_fp930    .seh_endprologue931    nop932    .seh_startepilogue933    mov sp,  x29934    .seh_set_fp935    ldp x29, lr,  [sp], #32936    .seh_save_fplr_x 16937    ldr lr, [sp, #16]938    .seh_save_reg lr, 16939    ldp x19, x20, [sp], #32940    .seh_save_r19r20_x 32941    .seh_endepilogue942    ret943    .seh_endproc944 945nonpacked7:946    .seh_proc nonpacked7947    // Can't be packed; too many saved FP regs948    stp d8,  d9,  [sp, #-80]!949    .seh_save_fregp_x d8, 80950    stp d10, d11, [sp, #16]951    .seh_save_fregp d10, 16952    stp d12, d13, [sp, #32]953    .seh_save_fregp d12, 32954    stp d14, d15, [sp, #48]955    .seh_save_fregp d14, 48956    stp d16, d17, [sp, #64]957    .seh_save_next958    .seh_endprologue959    nop960    .seh_startepilogue961    ldp d16, d17, [sp, #64]962    .seh_save_next963    ldp d14, d15, [sp, #48]964    .seh_save_fregp d14, 48965    ldp d12, d13, [sp, #32]966    .seh_save_fregp d12, 32967    ldp d10, d11, [sp, #16]968    .seh_save_fregp d10, 16969    ldp d8,  d9,  [sp], #80970    .seh_save_fregp_x d8, 80971    .seh_endepilogue972    ret973    .seh_endproc974 975nonpacked8:976    .seh_proc nonpacked8977    // Can't be packed; Can't handle only a single FP reg978    str d8,  [sp, #-16]!979    .seh_save_freg_x d8, 16980    .seh_endprologue981    nop982    .seh_startepilogue983    ldr d8,  [sp], #16984    .seh_save_freg_x d8, 16985    .seh_endepilogue986    ret987    .seh_endproc988 989nonpacked9:990    .seh_proc nonpacked9991    // Can't be packed; can't have a separate stack adjustment with save_fplr_x992    sub sp, sp, #32993    .seh_stackalloc 32994    stp x29, lr,  [sp, #-16]!995    .seh_save_fplr_x 16996    mov x29, sp997    .seh_set_fp998    .seh_endprologue999    nop1000    .seh_startepilogue1001    mov sp,  x291002    .seh_set_fp1003    ldp x29, lr,  [sp], #321004    .seh_save_fplr_x 161005    add sp, sp, #321006    .seh_stackalloc 321007    .seh_endepilogue1008    ret1009    .seh_endproc1010 1011nonpacked10:1012    .seh_proc nonpacked101013    // Can't be packed; wrong predecrement1014    stp x19, x20, [sp, #-16]!1015    .seh_save_r19r20_x 161016    stp x21, x22, [sp, #16]1017    .seh_save_next1018    .seh_endprologue1019    nop1020    .seh_startepilogue1021    ldp x21, x22, [sp, #16]1022    .seh_save_next1023    ldp x19, x20, [sp], #161024    .seh_save_r19r20_x 161025    .seh_endepilogue1026    ret1027    .seh_endproc1028 1029nonpacked11:1030    .seh_proc nonpacked111031    // Can't be packed; too big stack allocation1032    sub sp, sp, #40801033    .seh_stackalloc 40801034    sub sp, sp, #81921035    .seh_stackalloc 81921036    .seh_endprologue1037    nop1038    .seh_startepilogue1039    add sp, sp, #81921040    .seh_stackalloc 81921041    add sp, sp, #40801042    .seh_stackalloc 40801043    .seh_endepilogue1044    ret1045    .seh_endproc1046 1047nonpacked12:1048    .seh_proc nonpacked121049    // Can't be packed; missing .seh_set_fp1050    stp x29, lr,  [sp, #-32]!1051    .seh_save_fplr_x 321052    .seh_endprologue1053    nop1054    .seh_startepilogue1055    ldp x29, lr,  [sp], #321056    .seh_save_fplr_x 321057    .seh_endepilogue1058    ret1059    .seh_endproc1060 1061nonpacked13:1062    .seh_proc nonpacked131063    // Can't be packed; not doing a packed info if .seh_handlerdata is used1064    sub sp, sp, #161065    .seh_stackalloc 161066    .seh_endprologue1067    nop1068    .seh_startepilogue1069    add sp, sp, #161070    .seh_stackalloc 161071    .seh_endepilogue1072    ret1073    .seh_endfunclet1074    .seh_handlerdata1075    .long 01076    .text1077    .seh_endproc1078 1079nonpacked14:1080    .seh_proc nonpacked141081    // Can't be packed; a signed return address can only be expressed if1082    // we save both x29 and lr on the stack.1083    pacibsp1084    .seh_pac_sign_lr1085    str lr,       [sp, #-32]!1086    .seh_save_reg_x lr, 321087    .seh_endprologue1088    nop1089    .seh_startepilogue1090    ldr lr,       [sp], #321091    .seh_save_reg_x lr, 321092    autibsp1093    .seh_pac_sign_lr1094    .seh_endepilogue1095    ret1096    .seh_endproc1097 1098nonpacked15:1099    .seh_proc nonpacked151100    // Can't be packed; a signed return address can only be expressed if1101    // we save both x29 and lr on the stack.1102    pacibsp1103    .seh_pac_sign_lr1104    stp x19, x20, [sp, #-32]!1105    .seh_save_r19r20_x 321106    stp x21, lr,  [sp, #16]1107    .seh_save_lrpair x21, 161108    sub sp,  sp,  #161109    .seh_stackalloc 161110    .seh_endprologue1111    nop1112    .seh_startepilogue1113    add sp,  sp,  #161114    .seh_stackalloc 161115    ldp x21, lr,  [sp, #16]1116    .seh_save_lrpair x21, 161117    ldp x19, x20, [sp], #321118    .seh_save_r19r20_x 321119    autibsp1120    .seh_pac_sign_lr1121    .seh_endepilogue1122    ret1123    .seh_endproc1124 1125nonpacked16:1126    .seh_proc nonpacked161127    // Make sure we correctly analyze .seh_save_any_reg_p1128    stp     x29, x30, [sp, #-176]!1129    .seh_save_fplr_x        1761130    stp     q6, q7, [sp, #16]1131    .seh_save_any_reg_p     q6, 161132    stp     q8, q9, [sp, #48]1133    .seh_save_any_reg_p     q8, 481134    stp     q10, q11, [sp, #80]1135    .seh_save_any_reg_p     q10, 801136    stp     q12, q13, [sp, #112]1137    .seh_save_any_reg_p     q12, 1121138    stp     q14, q15, [sp, #144]1139    .seh_save_any_reg_p     q14, 1441140    mov     x29, sp1141    .seh_set_fp1142    .seh_endprologue1143    nop1144    .seh_startepilogue1145    ldp     q14, q15, [sp, #144]1146    .seh_save_any_reg_p     q14, 1441147    ldp     q12, q13, [sp, #112]1148    .seh_save_any_reg_p     q12, 1121149    ldp     q10, q11, [sp, #80]1150    .seh_save_any_reg_p     q10, 801151    ldp     q8, q9, [sp, #48]1152    .seh_save_any_reg_p     q8, 481153    ldp     q6, q7, [sp, #16]1154    .seh_save_any_reg_p     q6, 161155    ldp     x29, x30, [sp], #1761156    .seh_save_fplr_x        1761157    .seh_endepilogue1158    br      x91159    .seh_endproc1160