1# RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \ 2# RUN: -stop-after=prologepilog | FileCheck %s 3# Check save_freg_x, save_frep, save_reg 4 5# CHECK: early-clobber $sp = frame-setup STRXpre killed $x19, $sp, -48 6# CHECK-NEXT: frame-setup SEH_SaveReg_X 19, -48 7# CHECK-NEXT: frame-setup STPDi killed $d8, killed $d9, $sp, 1 8# CHECK-NEXT: frame-setup SEH_SaveFRegP 8, 9, 8 9# CHECK-NEXT: frame-setup STPDi killed $d10, killed $d11, $sp, 3 10# CHECK-NEXT: frame-setup SEH_SaveFRegP 10, 11, 24 11# CHECK-NEXT: frame-setup STRDui killed $d12, $sp, 5 12# CHECK-NEXT: frame-setup SEH_SaveFReg 12, 40 13# CHECK-NEXT: frame-setup SEH_PrologEnd 14# CHECK: frame-destroy SEH_EpilogStart 15# CHECK-NEXT: $d12 = frame-destroy LDRDui $sp, 5 16# CHECK-NEXT: frame-destroy SEH_SaveFReg 12, 40 17# CHECK-NEXT: $d10, $d11 = frame-destroy LDPDi $sp, 3 18# CHECK-NEXT: frame-destroy SEH_SaveFRegP 10, 11, 24 19# CHECK-NEXT: $d8, $d9 = frame-destroy LDPDi $sp, 1 20# CHECK-NEXT: frame-destroy SEH_SaveFRegP 8, 9, 8 21# CHECK-NEXT: early-clobber $sp, $x19 = frame-destroy LDRXpost $sp, 48 22# CHECK-NEXT: frame-destroy SEH_SaveReg_X 19, -48 23# CHECK-NEXT: frame-destroy SEH_EpilogEnd 24# CHECK-NEXT: RET_ReallyLR implicit $x0 25... 26--- 27name: test 28alignment: 4 29exposesReturnsTwice: false 30legalized: false 31regBankSelected: false 32selected: false 33failedISel: false 34tracksRegLiveness: true 35hasWinCFI: true 36registers: 37liveins: 38 - { reg: '$w0', virtual-reg: '' } 39frameInfo: 40 isFrameAddressTaken: false 41 isReturnAddressTaken: false 42 hasStackMap: false 43 hasPatchPoint: false 44 stackSize: 112 45 offsetAdjustment: 0 46 maxAlignment: 8 47 adjustsStack: false 48 hasCalls: false 49 stackProtector: '' 50 maxCallFrameSize: 0 51 hasOpaqueSPAdjustment: true 52 hasVAStart: false 53 hasMustTailInVarArgFunc: false 54 localFrameSize: 0 55 savePoint: '' 56 restorePoint: '' 57fixedStack: 58stack: 59constants: 60body: | 61 bb.0.entry: 62 liveins: $x0, $x1, $d0, $d1, $d10, $d11, $d8, $d9 63 $x19 = ADDXrr $x0, killed $x1 64 $d8 = FADDDrr killed $d0, $d1 65 $d9 = FADDDrr $d8, $d1 66 $d10 = FADDDrr $d9, $d8 67 $d11 = FADDDrr killed $d9, $d10 68 $d12 = FADDDrr $d11, killed $d11 69 $x0 = COPY $d12 70 RET_ReallyLR implicit $x0 71 72... 73