• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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