122 lines · plain
1# RUN: llc -o - %s -mtriple=aarch64-windows -start-after=prologepilog \2# RUN: -filetype=obj | llvm-readobj --unwind - | FileCheck %s3# Check AddFP4 5# CHECK: ExceptionData {6# CHECK-NEXT: FunctionLength: 727# CHECK-NEXT: Version: 08# CHECK-NEXT: ExceptionData: No9# CHECK-NEXT: EpiloguePacked: Yes10# CHECK-NEXT: EpilogueOffset: 011# CHECK-NEXT: ByteCodeLength: 812# CHECK-NEXT: Prologue [13# CHECK-NEXT: 0xe204 ; add fp, sp, #3214# CHECK-NEXT: 0x44 ; stp x29, x30, [sp, #32]15# CHECK-NEXT: 0xc802 ; stp x19, x20, [sp, #16]16# CHECK-NEXT: 0xcc85 ; stp x21, x22, [sp, #-48]!17# CHECK-NEXT: 0xe4 ; end18# CHECK-NEXT: ]19# CHECK-NEXT: }20# CHECK-NEXT: }21 22...23---24name: '?func@@YAHHHHH@Z'25alignment: 826exposesReturnsTwice: false27legalized: false28regBankSelected: false29selected: false30failedISel: false31tracksRegLiveness: true32hasWinCFI: true33registers:34liveins:35 - { reg: '$w0', virtual-reg: '' }36 - { reg: '$w1', virtual-reg: '' }37 - { reg: '$w2', virtual-reg: '' }38 - { reg: '$w3', virtual-reg: '' }39frameInfo:40 isFrameAddressTaken: false41 isReturnAddressTaken: false42 hasStackMap: false43 hasPatchPoint: false44 stackSize: 4845 offsetAdjustment: 046 maxAlignment: 847 adjustsStack: true48 hasCalls: true49 stackProtector: ''50 maxCallFrameSize: 051 hasOpaqueSPAdjustment: false52 hasVAStart: false53 hasMustTailInVarArgFunc: false54 localFrameSize: 055 savePoint: []56 restorePoint: []57fixedStack:58stack:59 - { id: 0, name: '', type: variable-sized, offset: -48,60 alignment: 1, stack-id: default, callee-saved-register: '', callee-saved-restored: true,61 local-offset: 0, debug-info-variable: '', debug-info-expression: '',62 debug-info-location: '' }63 - { id: 1, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8,64 stack-id: default, callee-saved-register: '$fp', callee-saved-restored: true,65 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }66 - { id: 2, name: '', type: spill-slot, offset: -16, size: 8, alignment: 8,67 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,68 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }69 - { id: 3, name: '', type: spill-slot, offset: -24, size: 8, alignment: 8,70 stack-id: default, callee-saved-register: '$x19', callee-saved-restored: true,71 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }72 - { id: 4, name: '', type: spill-slot, offset: -32, size: 8, alignment: 8,73 stack-id: default, callee-saved-register: '$x20', callee-saved-restored: true,74 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }75 - { id: 5, name: '', type: spill-slot, offset: -40, size: 8, alignment: 8,76 stack-id: default, callee-saved-register: '$x21', callee-saved-restored: true,77 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }78 - { id: 6, name: '', type: spill-slot, offset: -48, size: 8, alignment: 8,79 stack-id: default, callee-saved-register: '$x22', callee-saved-restored: true,80 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }81constants:82body: |83 bb.0.entry:84 liveins: $w0, $w1, $w2, $w3, $x21, $x22, $x19, $x20, $lr85 86 early-clobber $sp = frame-setup STPXpre killed $x21, killed $x22, $sp, -6 :: (store (s64) into %stack.5), (store (s64) into %stack.6)87 frame-setup SEH_SaveRegP_X 21, 22, -4888 frame-setup STPXi killed $x19, killed $x20, $sp, 2 :: (store (s64) into %stack.3), (store (s64) into %stack.4)89 frame-setup SEH_SaveRegP 19, 20, 1690 frame-setup STPXi killed $fp, killed $lr, $sp, 4 :: (store (s64) into %stack.1), (store (s64) into %stack.2)91 frame-setup SEH_SaveFPLR 3292 $fp = frame-setup ADDXri $sp, 32, 093 frame-setup SEH_AddFP 3294 frame-setup SEH_PrologEnd95 renamable $w19 = COPY $w396 renamable $w0 = KILL $w0, implicit-def $x097 renamable $w20 = COPY $w298 renamable $w21 = COPY $w199 renamable $x8 = SBFMXri killed renamable $x0, 0, 31100 renamable $x9 = ADDXri killed renamable $x8, 15, 0101 renamable $x15 = UBFMXri killed renamable $x9, 4, 63102 renamable $x8 = COPY $sp103 renamable $x22 = SUBXrs killed renamable $x8, killed renamable $x15, 4104 $sp = COPY renamable $x22105 $x0 = COPY renamable $x22106 renamable $w8 = LDRWroW killed renamable $x22, killed renamable $w21, 1, 1107 renamable $w9 = ADDWrr killed renamable $w19, killed renamable $w20108 renamable $w0 = ADDWrr killed renamable $w9, killed renamable $w8109 frame-destroy SEH_EpilogStart110 $sp = frame-destroy SUBXri $fp, 32, 0111 frame-destroy SEH_AddFP 32112 $fp, $lr = frame-destroy LDPXi $sp, 4 :: (load (s64) from %stack.1), (load (s64) from %stack.2)113 frame-destroy SEH_SaveFPLR 32114 $x19, $x20 = frame-destroy LDPXi $sp, 2 :: (load (s64) from %stack.3), (load (s64) from %stack.4)115 frame-destroy SEH_SaveRegP 19, 20, 16116 early-clobber $sp, $x21, $x22 = frame-destroy LDPXpost $sp, 6 :: (load (s64) from %stack.5), (load (s64) from %stack.6)117 frame-destroy SEH_SaveRegP_X 21, 22, -48118 frame-destroy SEH_EpilogEnd119 RET_ReallyLR implicit $w0120 121...122