| 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 | ||||