Derek Schuff | 1804b57 | 2013-06-14 16:15:29 +0000 | [diff] [blame] | 1 | ; RUN: llc -mtriple=armv7-unknown-linux-gnueabi < %s | FileCheck %s |
| 2 | ; Check that all callee-saved registers are saved and restored in functions |
| 3 | ; that call __builtin_unwind_init(). This is its undocumented behavior in gcc, |
| 4 | ; and it is used in compiling libgcc_eh. |
| 5 | ; See also PR8541 |
| 6 | |
| 7 | declare void @llvm.eh.unwind.init() |
| 8 | |
| 9 | define void @calls_unwind_init() { |
| 10 | call void @llvm.eh.unwind.init() |
| 11 | ret void |
| 12 | } |
| 13 | |
Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame^] | 14 | ; CHECK-LABEL: calls_unwind_init: |
Derek Schuff | 1804b57 | 2013-06-14 16:15:29 +0000 | [diff] [blame] | 15 | ; CHECK: push {r4, r5, r6, r7, r8, r9, r10, r11, lr} |
| 16 | ; CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} |
| 17 | ; CHECK: vpop {d8, d9, d10, d11, d12, d13, d14, d15} |
| 18 | ; CHECK: pop {r4, r5, r6, r7, r8, r9, r10, r11, pc} |