42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
|
#RUN: llc -mtriple=aarch64-- -run-pass prologepilog %s -o - | FileCheck %s
|
||
|
# Check that we use the frame pointer to address the emergency spill slot.
|
||
|
# Using the base pointer will result in an assert with "Emergency spill slot is
|
||
|
# out of reach".
|
||
|
---
|
||
|
name: hugeStack
|
||
|
# CHECK-LABEL: name: hugeStack
|
||
|
tracksRegLiveness: true
|
||
|
frameInfo:
|
||
|
localFrameSize: 256
|
||
|
stack:
|
||
|
- { id: 0, type: variable-sized, alignment: 1 }
|
||
|
- { id: 1, name: '', size: 32761, alignment: 8 }
|
||
|
body: |
|
||
|
bb.0:
|
||
|
liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28
|
||
|
|
||
|
STRXui undef $x8, %stack.0, 0
|
||
|
; CHECK: STRXui undef $x8, $fp, 0
|
||
|
B %bb.1
|
||
|
bb.1:
|
||
|
liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28
|
||
|
|
||
|
RET_ReallyLR implicit $x19, implicit $x20, implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27, implicit $x28
|
||
|
...
|
||
|
---
|
||
|
name: fpDoesNotFit
|
||
|
# CHECK-LABEL: name: fpDoesNotFit
|
||
|
tracksRegLiveness: true
|
||
|
frameInfo:
|
||
|
hasStackMap: true
|
||
|
# set to true to force hasFP to true.
|
||
|
stack:
|
||
|
- { id: 0, name: '', size: 4096, alignment: 8 }
|
||
|
- { id: 1, name: '', size: 32761, alignment: 8 }
|
||
|
body: |
|
||
|
bb.0:
|
||
|
STRXui undef $x8, %stack.0, -34
|
||
|
; Pick SP here. Picking FP will require scavenging a register.
|
||
|
; CHECK: STRXui undef $x8, $sp, 4062
|
||
|
RET_ReallyLR
|