OLD | NEW |
| (Empty) |
1 ; RUN: llc -O0 < %s | FileCheck %s | |
2 target datalayout = "e-p:32:32-i64:64-n32" | |
3 target triple = "armv7-unknown-nacl-gnueabihf" | |
4 | |
5 declare void @llvm.eh.return.i32(i32, i8*) nounwind | |
6 declare void @llvm.eh.unwind.init() nounwind | |
7 | |
8 ; CHECK-LABEL: @raise_exception | |
9 ; CHECK: push {r0, r1, r4, r5, r6, r7, r8, r10, r11, lr} | |
10 define i32 @raise_exception(i32 %b) { | |
11 entry: | |
12 tail call void @llvm.eh.unwind.init() | |
13 %a = add i32 %b, 3 | |
14 %cmp = icmp slt i32 %a, 0 | |
15 br i1 %cmp, label %normal_ret, label %eh_ret | |
16 normal_ret: | |
17 ; CHECK: ldm sp!, {r12} | |
18 ; CHECK: ldm sp!, {r12} | |
19 ; CHECK: pop {r4, r5, r6, r7, r8, r10, r11, lr} | |
20 ret i32 %a | |
21 eh_ret: | |
22 ; CHECK: pop {r0, r1, r4, r5, r6, r7, r8, r10, r11, lr} | |
23 tail call void @llvm.eh.return.i32(i32 %a, i8* null) | |
24 unreachable | |
25 } | |
OLD | NEW |