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 |