1# RUN: llc -o - %s -mtriple=thumbv7-- -run-pass=stack-protector -run-pass=prologepilog | FileCheck %s 2--- 3# This should trigger an emergency spill in the register scavenger because the 4# frame offset into the large argument is too large. 5# CHECK-LABEL: name: func0 6# CHECK: t2STRi12 killed %r7, %sp, 0, 14, _ :: (store 4 into %stack.0) 7# CHECK: %r7 = t2ADDri killed %sp, 4096, 14, _, _ 8# CHECK: %r11 = t2LDRi12 killed %r7, 36, 14, _ :: (load 4) 9# CHECK: %r7 = t2LDRi12 %sp, 0, 14, _ :: (load 4 from %stack.0) 10name: func0 11tracksRegLiveness: true 12fixedStack: 13 - { id: 0, offset: 4084, size: 4, alignment: 4, isImmutable: true, 14 isAliased: false } 15 - { id: 1, offset: -12, size: 4096, alignment: 4, isImmutable: false, 16 isAliased: false } 17body: | 18 bb.0: 19 %r0 = IMPLICIT_DEF 20 %r1 = IMPLICIT_DEF 21 %r2 = IMPLICIT_DEF 22 %r3 = IMPLICIT_DEF 23 %r4 = IMPLICIT_DEF 24 %r5 = IMPLICIT_DEF 25 %r6 = IMPLICIT_DEF 26 %r8 = IMPLICIT_DEF 27 %r9 = IMPLICIT_DEF 28 %r10 = IMPLICIT_DEF 29 %r11 = IMPLICIT_DEF 30 %r12 = IMPLICIT_DEF 31 %lr = IMPLICIT_DEF 32 33 %r11 = t2LDRi12 %fixed-stack.0, 0, 14, _ :: (load 4) 34 35 KILL %r0 36 KILL %r1 37 KILL %r2 38 KILL %r3 39 KILL %r4 40 KILL %r5 41 KILL %r6 42 KILL %r8 43 KILL %r9 44 KILL %r10 45 KILL %r11 46 KILL %r12 47 KILL %lr 48... 49--- 50# This should not trigger an emergency spill yet. 51# CHECK-LABEL: name: func1 52# CHECK-NOT: t2STRi12 53# CHECK-NOT: t2ADDri 54# CHECK: %r11 = t2LDRi12 %sp, 4092, 14, _ :: (load 4) 55# CHECK-NOT: t2LDRi12 56name: func1 57tracksRegLiveness: true 58fixedStack: 59 - { id: 0, offset: 4044, size: 4, alignment: 4, isImmutable: true, 60 isAliased: false } 61 - { id: 1, offset: -12, size: 4056, alignment: 4, isImmutable: false, 62 isAliased: false } 63body: | 64 bb.0: 65 %r0 = IMPLICIT_DEF 66 %r1 = IMPLICIT_DEF 67 %r2 = IMPLICIT_DEF 68 %r3 = IMPLICIT_DEF 69 %r4 = IMPLICIT_DEF 70 %r5 = IMPLICIT_DEF 71 %r6 = IMPLICIT_DEF 72 %r8 = IMPLICIT_DEF 73 %r9 = IMPLICIT_DEF 74 %r10 = IMPLICIT_DEF 75 %r11 = IMPLICIT_DEF 76 %r12 = IMPLICIT_DEF 77 %lr = IMPLICIT_DEF 78 79 %r11 = t2LDRi12 %fixed-stack.0, 0, 14, _ :: (load 4) 80 81 KILL %r0 82 KILL %r1 83 KILL %r2 84 KILL %r3 85 KILL %r4 86 KILL %r5 87 KILL %r6 88 KILL %r8 89 KILL %r9 90 KILL %r10 91 KILL %r11 92 KILL %r12 93 KILL %lr 94... 95