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 liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28 17 18 STRXui undef $x8, %stack.0, 0 19 ; CHECK: STRXui undef $x8, $fp, 0 20 B %bb.1 21 bb.1: 22 liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28 23 24 RET_ReallyLR implicit $x19, implicit $x20, implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27, implicit $x28 25... 26--- 27name: fpDoesNotFit 28# CHECK-LABEL: name: fpDoesNotFit 29tracksRegLiveness: true 30frameInfo: 31 hasStackMap: true 32# 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, -34 39 ; Pick SP here. Picking FP will require scavenging a register. 40 ; CHECK: STRXui undef $x8, $sp, 4062 41 RET_ReallyLR 42