brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · d9953cc Raw
333 lines · plain
1## Check interpretation of the packed unwind info format.2 3// REQUIRES: aarch64-registered-target4// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o %t.o5// RUN: llvm-readobj --unwind %t.o | FileCheck %s6 7// CHECK:      UnwindInformation [8// CHECK-NEXT:   RuntimeFunction {9// CHECK-NEXT:     Function: func110// CHECK-NEXT:     Fragment: No11// CHECK-NEXT:     FunctionLength: 8812// CHECK-NEXT:     RegF: 713// CHECK-NEXT:     RegI: 1014// CHECK-NEXT:     HomedParameters: No15// CHECK-NEXT:     CR: 016// CHECK-NEXT:     FrameSize: 16017// CHECK-NEXT:     Prologue [18// CHECK-NEXT:       sub sp, sp, #1619// CHECK-NEXT:       stp d14, d15, [sp, #128]20// CHECK-NEXT:       stp d12, d13, [sp, #112]21// CHECK-NEXT:       stp d10, d11, [sp, #96]22// CHECK-NEXT:       stp d8, d9, [sp, #80]23// CHECK-NEXT:       stp x27, x28, [sp, #64]24// CHECK-NEXT:       stp x25, x26, [sp, #48]25// CHECK-NEXT:       stp x23, x24, [sp, #32]26// CHECK-NEXT:       stp x21, x22, [sp, #16]27// CHECK-NEXT:       stp x19, x20, [sp, #-144]!28// CHECK-NEXT:       end29// CHECK-NEXT:     ]30// CHECK-NEXT:   }31// CHECK-NEXT:   RuntimeFunction {32// CHECK-NEXT:     Function: func233// CHECK-NEXT:     Fragment: No34// CHECK-NEXT:     FunctionLength: 4835// CHECK-NEXT:     RegF: 236// CHECK-NEXT:     RegI: 337// CHECK-NEXT:     HomedParameters: No38// CHECK-NEXT:     CR: 039// CHECK-NEXT:     FrameSize: 4840// CHECK-NEXT:     Prologue [41// CHECK-NEXT:       str d10, [sp, #40]42// CHECK-NEXT:       stp d8, d9, [sp, #24]43// CHECK-NEXT:       str x21, [sp, #16]44// CHECK-NEXT:       stp x19, x20, [sp, #-48]!45// CHECK-NEXT:       end46// CHECK-NEXT:     ]47// CHECK-NEXT:   }48// CHECK-NEXT:   RuntimeFunction {49// CHECK-NEXT:     Function: func350// CHECK-NEXT:     Fragment: No51// CHECK-NEXT:     FunctionLength: 4052// CHECK-NEXT:     RegF: 353// CHECK-NEXT:     RegI: 154// CHECK-NEXT:     HomedParameters: No55// CHECK-NEXT:     CR: 056// CHECK-NEXT:     FrameSize: 4857// CHECK-NEXT:     Prologue [58// CHECK-NEXT:       stp d10, d11, [sp, #24]59// CHECK-NEXT:       stp d8, d9, [sp, #8]60// CHECK-NEXT:       str x19, [sp, #-48]!61// CHECK-NEXT:       end62// CHECK-NEXT:     ]63// CHECK-NEXT:   }64// CHECK-NEXT:   RuntimeFunction {65// CHECK-NEXT:     Function: func466// CHECK-NEXT:     Fragment: No67// CHECK-NEXT:     FunctionLength: 2468// CHECK-NEXT:     RegF: 169// CHECK-NEXT:     RegI: 070// CHECK-NEXT:     HomedParameters: No71// CHECK-NEXT:     CR: 072// CHECK-NEXT:     FrameSize: 4873// CHECK-NEXT:     Prologue [74// CHECK-NEXT:       sub sp, sp, #3275// CHECK-NEXT:       stp d8, d9, [sp, #-16]!76// CHECK-NEXT:       end77// CHECK-NEXT:     ]78// CHECK-NEXT:   }79// CHECK-NEXT:   RuntimeFunction {80// CHECK-NEXT:     Function: func581// CHECK-NEXT:     Fragment: No82// CHECK-NEXT:     FunctionLength: 5683// CHECK-NEXT:     RegF: 084// CHECK-NEXT:     RegI: 185// CHECK-NEXT:     HomedParameters: Yes86// CHECK-NEXT:     CR: 087// CHECK-NEXT:     FrameSize: 11288// CHECK-NEXT:     Prologue [89// CHECK-NEXT:       sub sp, sp, #3290// CHECK-NEXT:       stp x6, x7, [sp, #64]91// CHECK-NEXT:       stp x4, x5, [sp, #48]92// CHECK-NEXT:       stp x2, x3, [sp, #32]93// CHECK-NEXT:       stp x0, x1, [sp, #16]94// CHECK-NEXT:       str x19, [sp, #-80]!95// CHECK-NEXT:       end96// CHECK-NEXT:     ]97// CHECK-NEXT:   }98// CHECK-NEXT:   RuntimeFunction {99// CHECK-NEXT:     Function: func6100// CHECK-NEXT:     Fragment: No101// CHECK-NEXT:     FunctionLength: 48102// CHECK-NEXT:     RegF: 0103// CHECK-NEXT:     RegI: 0104// CHECK-NEXT:     HomedParameters: Yes105// CHECK-NEXT:     CR: 0106// CHECK-NEXT:     FrameSize: 112107// CHECK-NEXT:     Prologue [108// CHECK-NEXT:       sub sp, sp, #48109// CHECK-NEXT:       stp x6, x7, [sp, #48]110// CHECK-NEXT:       stp x4, x5, [sp, #32]111// CHECK-NEXT:       stp x2, x3, [sp, #16]112// CHECK-NEXT:       stp x0, x1, [sp, #-64]!113// CHECK-NEXT:       end114// CHECK-NEXT:     ]115// CHECK-NEXT:   }116// CHECK-NEXT:   RuntimeFunction {117// CHECK-NEXT:     Function: func7118// CHECK-NEXT:     Fragment: No119// CHECK-NEXT:     FunctionLength: 24120// CHECK-NEXT:     RegF: 0121// CHECK-NEXT:     RegI: 0122// CHECK-NEXT:     HomedParameters: No123// CHECK-NEXT:     CR: 1124// CHECK-NEXT:     FrameSize: 32125// CHECK-NEXT:     Prologue [126// CHECK-NEXT:       sub sp, sp, #16127// CHECK-NEXT:       str lr, [sp, #-16]!128// CHECK-NEXT:       end129// CHECK-NEXT:     ]130// CHECK-NEXT:   }131// CHECK-NEXT:   RuntimeFunction {132// CHECK-NEXT:     Function: func8133// CHECK-NEXT:     Fragment: No134// CHECK-NEXT:     FunctionLength: 24135// CHECK-NEXT:     RegF: 0136// CHECK-NEXT:     RegI: 1137// CHECK-NEXT:     HomedParameters: No138// CHECK-NEXT:     CR: 1139// CHECK-NEXT:     FrameSize: 32140// CHECK-NEXT:     Prologue [141// CHECK-NEXT:       sub sp, sp, #16142// CHECK-NEXT:       INVALID!143// CHECK-NEXT:       end144// CHECK-NEXT:     ]145// CHECK-NEXT:   }146// CHECK-NEXT:   RuntimeFunction {147// CHECK-NEXT:     Function: func9148// CHECK-NEXT:     Fragment: No149// CHECK-NEXT:     FunctionLength: 32150// CHECK-NEXT:     RegF: 0151// CHECK-NEXT:     RegI: 2152// CHECK-NEXT:     HomedParameters: No153// CHECK-NEXT:     CR: 1154// CHECK-NEXT:     FrameSize: 32155// CHECK-NEXT:     Prologue [156// CHECK-NEXT:       str lr, [sp, #16]157// CHECK-NEXT:       stp x19, x20, [sp, #-32]!158// CHECK-NEXT:       end159// CHECK-NEXT:     ]160// CHECK-NEXT:   }161// CHECK-NEXT:   RuntimeFunction {162// CHECK-NEXT:     Function: func10163// CHECK-NEXT:     Fragment: No164// CHECK-NEXT:     FunctionLength: 32165// CHECK-NEXT:     RegF: 0166// CHECK-NEXT:     RegI: 3167// CHECK-NEXT:     HomedParameters: No168// CHECK-NEXT:     CR: 1169// CHECK-NEXT:     FrameSize: 48170// CHECK-NEXT:     Prologue [171// CHECK-NEXT:       sub sp, sp, #16172// CHECK-NEXT:       stp x21, lr, [sp, #16]173// CHECK-NEXT:       stp x19, x20, [sp, #-32]!174// CHECK-NEXT:       end175// CHECK-NEXT:     ]176// CHECK-NEXT:   }177// CHECK-NEXT:   RuntimeFunction {178// CHECK-NEXT:     Function: func11179// CHECK-NEXT:     Fragment: No180// CHECK-NEXT:     FunctionLength: 32181// CHECK-NEXT:     RegF: 0182// CHECK-NEXT:     RegI: 2183// CHECK-NEXT:     HomedParameters: No184// CHECK-NEXT:     CR: 3185// CHECK-NEXT:     FrameSize: 48186// CHECK-NEXT:     Prologue [187// CHECK-NEXT:       mov x29, sp188// CHECK-NEXT:       stp x29, lr, [sp, #-32]!189// CHECK-NEXT:       stp x19, x20, [sp, #-16]!190// CHECK-NEXT:       end191// CHECK-NEXT:     ]192// CHECK-NEXT:   }193// CHECK-NEXT:   RuntimeFunction {194// CHECK-NEXT:     Function: func12195// CHECK-NEXT:     Fragment: No196// CHECK-NEXT:     FunctionLength: 40197// CHECK-NEXT:     RegF: 0198// CHECK-NEXT:     RegI: 2199// CHECK-NEXT:     HomedParameters: No200// CHECK-NEXT:     CR: 3201// CHECK-NEXT:     FrameSize: 544202// CHECK-NEXT:     Prologue [203// CHECK-NEXT:       mov x29, sp204// CHECK-NEXT:       stp x29, lr, [sp, #0]205// CHECK-NEXT:       sub sp, sp, #528206// CHECK-NEXT:       stp x19, x20, [sp, #-16]!207// CHECK-NEXT:       end208// CHECK-NEXT:     ]209// CHECK-NEXT:   }210// CHECK-NEXT:   RuntimeFunction {211// CHECK-NEXT:     Function: func13212// CHECK-NEXT:     Fragment: No213// CHECK-NEXT:     FunctionLength: 48214// CHECK-NEXT:     RegF: 0215// CHECK-NEXT:     RegI: 2216// CHECK-NEXT:     HomedParameters: No217// CHECK-NEXT:     CR: 3218// CHECK-NEXT:     FrameSize: 4112219// CHECK-NEXT:     Prologue [220// CHECK-NEXT:       mov x29, sp221// CHECK-NEXT:       stp x29, lr, [sp, #0]222// CHECK-NEXT:       sub sp, sp, #16223// CHECK-NEXT:       sub sp, sp, #4080224// CHECK-NEXT:       stp x19, x20, [sp, #-16]!225// CHECK-NEXT:       end226// CHECK-NEXT:     ]227// CHECK-NEXT:   }228// CHECK-NEXT:   RuntimeFunction {229// CHECK-NEXT:     Function: func14230// CHECK-NEXT:     Fragment: No231// CHECK-NEXT:     FunctionLength: 32232// CHECK-NEXT:     RegF: 0233// CHECK-NEXT:     RegI: 2234// CHECK-NEXT:     HomedParameters: No235// CHECK-NEXT:     CR: 0236// CHECK-NEXT:     FrameSize: 4112237// CHECK-NEXT:     Prologue [238// CHECK-NEXT:       sub sp, sp, #16239// CHECK-NEXT:       sub sp, sp, #4080240// CHECK-NEXT:       stp x19, x20, [sp, #-16]!241// CHECK-NEXT:       end242// CHECK-NEXT:     ]243// CHECK-NEXT:   }244// CHECK-NEXT:   RuntimeFunction {245// CHECK-NEXT:     Function: func15246// CHECK-NEXT:     Fragment: No247// CHECK-NEXT:     FunctionLength: 24248// CHECK-NEXT:     RegF: 0249// CHECK-NEXT:     RegI: 2250// CHECK-NEXT:     HomedParameters: No251// CHECK-NEXT:     CR: 0252// CHECK-NEXT:     FrameSize: 560253// CHECK-NEXT:     Prologue [254// CHECK-NEXT:       sub sp, sp, #544255// CHECK-NEXT:       stp x19, x20, [sp, #-16]!256// CHECK-NEXT:       end257// CHECK-NEXT:     ]258// CHECK-NEXT:   }259// CHECK-NEXT:   RuntimeFunction {260// CHECK-NEXT:     Function: func16261// CHECK-NEXT:     Fragment: No262// CHECK-NEXT:     FunctionLength: 56263// CHECK-NEXT:     RegF: 0264// CHECK-NEXT:     RegI: 0265// CHECK-NEXT:     HomedParameters: Yes266// CHECK-NEXT:     CR: 1267// CHECK-NEXT:     FrameSize: 112268// CHECK-NEXT:     Prologue [269// CHECK-NEXT:       sub sp, sp, #32270// CHECK-NEXT:       stp x6, x7, [sp, #64]271// CHECK-NEXT:       stp x4, x5, [sp, #48]272// CHECK-NEXT:       stp x2, x3, [sp, #32]273// CHECK-NEXT:       stp x0, x1, [sp, #16]274// CHECK-NEXT:       str lr, [sp, #-80]!275// CHECK-NEXT:       end276// CHECK-NEXT:     ]277// CHECK-NEXT:   }278// CHECK-NEXT: ]279 280        .text281        .globl func1282func1:283func2:284func3:285func4:286func5:287func6:288func7:289func8:290func9:291func10:292func11:293func12:294func13:295func14:296func15:297func16:298        ret299 300        .section .pdata,"dr"301        .long func1@IMGREL302        .long 0x050ae059 // FunctionLength=22 RegF=7 RegI=10 H=0 CR=0 FrameSize=10303        .long func2@IMGREL304        .long 0x01834031 // FunctionLength=12 RegF=2 RegI=3 H=0 CR=0 FrameSize=3305        .long func3@IMGREL306        .long 0x01816029 // FunctionLength=10 RegF=3 RegI=1 H=0 CR=0 FrameSize=3307        .long func4@IMGREL308        .long 0x01802019 // FunctionLength=6  RegF=1 RegI=0 H=0 CR=0 FrameSize=3309        .long func5@IMGREL310        .long 0x03910039 // FunctionLength=14 RegF=0 RegI=1 H=1 CR=0 FrameSize=7311        .long func6@IMGREL312        .long 0x03900031 // FunctionLength=12 RegF=0 RegI=0 H=1 CR=0 FrameSize=7313        .long func7@IMGREL314        .long 0x01200019 // FunctionLength=6  RegF=0 RegI=0 H=0 CR=1 FrameSize=2315        .long func8@IMGREL316        .long 0x01210019 // FunctionLength=6  RegF=0 RegI=1 H=0 CR=1 FrameSize=2317        .long func9@IMGREL318        .long 0x01220021 // FunctionLength=8  RegF=0 RegI=2 H=0 CR=1 FrameSize=2319        .long func10@IMGREL320        .long 0x01a30021 // FunctionLength=8  RegF=0 RegI=3 H=0 CR=1 FrameSize=3321        .long func11@IMGREL322        .long 0x01e20021 // FunctionLength=8  RegF=0 RegI=2 H=0 CR=3 FrameSize=3323        .long func12@IMGREL324        .long 0x11620029 // FunctionLength=10 RegF=0 RegI=2 H=0 CR=3 FrameSize=34325        .long func13@IMGREL326        .long 0x80e20031 // FunctionLength=12 RegF=0 RegI=2 H=0 CR=3 FrameSize=257327        .long func14@IMGREL328        .long 0x80820021 // FunctionLength=8  RegF=0 RegI=2 H=0 CR=0 FrameSize=257329        .long func15@IMGREL330        .long 0x11820019 // FunctionLength=6  RegF=0 RegI=2 H=0 CR=0 FrameSize=34331        .long func16@IMGREL332        .long 0x03b00039 // FunctionLength=14 RegF=0 RegI=0 H=1 CR=1 FrameSize=7333