Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame^] | 1 | ; RUN: llc < %s -verify-coalescing |
2 | ; <rdar://problem/11522048> | ||||
3 | target triple = "arm64-apple-macosx10.8.0" | ||||
4 | |||||
5 | ; Verify that we can handle spilling the stack pointer without attempting | ||||
6 | ; spilling it directly. | ||||
7 | ; CHECK: f | ||||
8 | ; CHECK: mov [[X0:x[0-9]+]], sp | ||||
9 | ; CHECK: str [[X0]] | ||||
10 | ; CHECK: inlineasm | ||||
11 | define void @f() nounwind ssp { | ||||
12 | entry: | ||||
13 | %savedstack = call i8* @llvm.stacksave() nounwind | ||||
14 | call void asm sideeffect "; inlineasm", "~{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},~{sp},~{memory}"() nounwind | ||||
15 | call void @llvm.stackrestore(i8* %savedstack) nounwind | ||||
16 | ret void | ||||
17 | } | ||||
18 | |||||
19 | declare i8* @llvm.stacksave() nounwind | ||||
20 | declare void @llvm.stackrestore(i8*) nounwind |