brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · 098efe8 Raw
133 lines · plain
1# RUN: llc -o - %s -mtriple=aarch64-windows -start-after=prologepilog \2# RUN:    -filetype=obj | llvm-readobj --unwind - | FileCheck %s3# Check save_fplr_x, set_fp, alloc_s4 5# CHECK: 	ExceptionData {6# CHECK-NEXT:      FunctionLength: 927# CHECK-NEXT:      Version: 08# CHECK-NEXT:      ExceptionData: No9# CHECK-NEXT:      EpiloguePacked: Yes10# CHECK-NEXT:      EpilogueOffset: 111# CHECK-NEXT:      ByteCodeLength: 412# CHECK-NEXT:      Prologue [13# CHECK-NEXT:        0x02                ; sub sp, #3214# CHECK-NEXT:        0xe1                ; mov fp, sp15# CHECK-NEXT:        0x81                ; stp x29, x30, [sp, #-16]!16# CHECK-NEXT:        0xe4                ; end17# CHECK-NEXT:      ]18# CHECK-NEXT:      Epilogue [19# CHECK-NEXT:        0xe1                ; mov sp, fp20# CHECK-NEXT:        0x81                ; ldp x29, x30, [sp], #1621# CHECK-NEXT:        0xe4                ; end22# CHECK-NEXT:      ]23# CHECK-NEXT:    }24...25---26name:            '?func@@YAHHHHH@Z'27alignment:       828exposesReturnsTwice: false29legalized:       false30regBankSelected: false31selected:        false32failedISel:      false33tracksRegLiveness: true34hasWinCFI: true35registers:36liveins:37  - { reg: '$w0', virtual-reg: '' }38  - { reg: '$w1', virtual-reg: '' }39  - { reg: '$w2', virtual-reg: '' }40  - { reg: '$w3', virtual-reg: '' }41frameInfo:42  isFrameAddressTaken: false43  isReturnAddressTaken: false44  hasStackMap:     false45  hasPatchPoint:   false46  stackSize:       4847  offsetAdjustment: 048  maxAlignment:    849  adjustsStack:    true50  hasCalls:        true51  stackProtector:  ''52  maxCallFrameSize: 053  hasOpaqueSPAdjustment: false54  hasVAStart:      false55  hasMustTailInVarArgFunc: false56  localFrameSize:  2457  savePoint:       []58  restorePoint:    []59fixedStack:60stack:61  - { id: 0, name: '', type: default, offset: -20, size: 4, alignment: 4,62      stack-id: default, callee-saved-register: '', callee-saved-restored: true,63      local-offset: -4, debug-info-variable: '', debug-info-expression: '',64      debug-info-location: '' }65  - { id: 1, name: '', type: default, offset: -24, size: 4, alignment: 4,66      stack-id: default, callee-saved-register: '', callee-saved-restored: true,67      local-offset: -8, debug-info-variable: '', debug-info-expression: '',68      debug-info-location: '' }69  - { id: 2, name: '', type: default, offset: -28, size: 4, alignment: 4,70      stack-id: default, callee-saved-register: '', callee-saved-restored: true,71      local-offset: -12, debug-info-variable: '', debug-info-expression: '',72      debug-info-location: '' }73  - { id: 3, name: '', type: default, offset: -32, size: 4, alignment: 4,74      stack-id: default, callee-saved-register: '', callee-saved-restored: true,75      local-offset: -16, debug-info-variable: '', debug-info-expression: '',76      debug-info-location: '' }77  - { id: 4, name: '', type: default, offset: -40, size: 8, alignment: 8,78      stack-id: default, callee-saved-register: '', callee-saved-restored: true,79      local-offset: -24, debug-info-variable: '', debug-info-expression: '',80      debug-info-location: '' }81  - { id: 5, name: '', type: variable-sized, offset: -40,82      alignment: 1, stack-id: default, callee-saved-register: '', callee-saved-restored: true,83      local-offset: -24, debug-info-variable: '', debug-info-expression: '',84      debug-info-location: '' }85  - { id: 6, name: '', type: spill-slot, offset: -48, size: 8, alignment: 8,86      stack-id: default, callee-saved-register: '', callee-saved-restored: true,87      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }88  - { id: 7, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8,89      stack-id: default, callee-saved-register: '$fp', callee-saved-restored: true,90      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }91  - { id: 8, name: '', type: spill-slot, offset: -16, size: 8, alignment: 8,92      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,93      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }94constants:95body:             |96  bb.0.entry:97    liveins: $w0, $w1, $w2, $w3, $lr98 99    early-clobber $sp = frame-setup STPXpre killed $fp, killed $lr, $sp, -2 :: (store (s64) into %stack.7), (store (s64) into %stack.8)100    frame-setup SEH_SaveFPLR_X -16101    $fp = frame-setup ADDXri $sp, 0, 0102    frame-setup SEH_SetFP103    $sp = frame-setup SUBXri $sp, 32, 0104    frame-setup SEH_StackAlloc 32105    frame-setup SEH_PrologEnd106    STURWi killed renamable $w3, $fp, -4107    STURWi killed renamable $w2, $fp, -8108    STURWi killed renamable $w1, $fp, -12109    STURWi killed renamable $w0, $fp, -16110    renamable $x8 = LDURSWi $fp, -16111    renamable $x8 = ADDXri killed renamable $x8, 15, 0112    renamable $x8 = UBFMXri killed renamable $x8, 4, 63113    $x15 = COPY renamable $x8114    STURXi killed $x8, $fp, -32 :: (store (s64) into %stack.6)115    BL &__chkstk, csr_aarch64_stackprobe_windows, implicit-def dead $lr, implicit $sp, implicit killed $x15116    renamable $x8 = COPY $sp117    $x15 = LDURXi $fp, -32 :: (load (s64) from %stack.6)118    renamable $x8 = SUBSXrs killed renamable $x8, killed renamable $x15, 4, implicit-def dead $nzcv119    $sp = COPY renamable $x8120    STURXi killed renamable $x8, $fp, -24121    renamable $x0 = LDURXi $fp, -24122    renamable $w1 = COPY $wzr123    $w0 = COPY killed renamable $w1124    frame-destroy SEH_EpilogStart125    $sp = frame-destroy ADDXri $fp, 0, 0126    frame-destroy SEH_SetFP127    early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2128    frame-destroy SEH_SaveFPLR_X -16129    frame-destroy SEH_EpilogEnd130    RET_ReallyLR implicit killed $w0131 132...133