1#RUN: llc -mtriple=aarch64-- -run-pass prologepilog %s -o - | FileCheck %s 2# 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 is 4# out of reach". 5--- 6name: hugeStack 7# CHECK-LABEL: name: hugeStack 8tracksRegLiveness: true 9frameInfo: 10 localFrameSize: 256 11stack: 12 - { id: 0, type: variable-sized, alignment: 1 } 13 - { id: 1, name: '', size: 32761, alignment: 8 } 14body: | 15 bb.0: 16 STRXui undef $x8, %stack.0, 0 17 ; CHECK: STURXi undef $x8, $fp, -24 18 B %bb.1 19 bb.1: 20 liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp, $lr 21 RET_ReallyLR implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27, implicit $x28 22... 23--- 24name: fpDoesNotFit 25# CHECK-LABEL: name: fpDoesNotFit 26tracksRegLiveness: true 27frameInfo: 28 hasStackMap: true 29# set to true to force hasFP to true. 30stack: 31 - { id: 0, name: '', size: 4096, alignment: 8 } 32 - { id: 1, name: '', size: 32761, alignment: 8 } 33body: | 34 bb.0: 35 STRXui undef $x8, %stack.0, -34 36 ; Pick SP here. Picking FP will require scavenging a register. 37 ; CHECK: STRXui undef $x8, $sp, 4062 38 RET_ReallyLR 39