42 lines · plain
1#RUN: llc -mtriple=aarch64-- -run-pass prologepilog %s -o - | FileCheck %s2# Check that we use the frame pointer to address the emergency spill slot.3# Using the base pointer will result in an assert with "Emergency spill slot is4# out of reach".5---6name: hugeStack7# CHECK-LABEL: name: hugeStack8tracksRegLiveness: true9frameInfo:10 localFrameSize: 25611stack:12 - { id: 0, type: variable-sized, alignment: 1 }13 - { id: 1, name: '', size: 32761, alignment: 8 }14body: |15 bb.0:16 liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x2817 18 STRXui undef $x8, %stack.0, 019 ; CHECK: STRXui undef $x8, $fp, 020 B %bb.121 bb.1:22 liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x2823 24 RET_ReallyLR implicit $x19, implicit $x20, implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27, implicit $x2825...26---27name: fpDoesNotFit28# CHECK-LABEL: name: fpDoesNotFit29tracksRegLiveness: true30frameInfo:31 hasStackMap: true32# set to true to force hasFP to true.33stack:34 - { id: 0, name: '', size: 4096, alignment: 8 }35 - { id: 1, name: '', size: 32761, alignment: 8 }36body: |37 bb.0:38 STRXui undef $x8, %stack.0, -3439 ; Pick SP here. Picking FP will require scavenging a register.40 ; CHECK: STRXui undef $x8, $sp, 406241 RET_ReallyLR42