55 lines · plain
1; RUN: llc < %s -O0 -mtriple=thumbv7-apple-ios | FileCheck %s2 3; Radar 10567930: Make sure that all the caller-saved registers are saved and4; restored in a function with setjmp/longjmp EH. In particular, r6 was not5; being saved here.6; CHECK: push.w {r4, r5, r6, r7, r8, r10, r11, lr}7 8%0 = type opaque9%struct.NSConstantString = type { ptr, i32, ptr, i32 }10 11define i32 @asdf(i32 %a, i32 %b, ptr %c, ptr %d) personality ptr @__objc_personality_v0 {12bb:13 %tmp = alloca i32, align 414 %tmp1 = alloca i32, align 415 %tmp2 = alloca ptr, align 416 %tmp3 = alloca i117 %myException = alloca ptr, align 418 %tmp4 = alloca ptr19 %tmp5 = alloca i3220 %exception = alloca ptr, align 421 store i32 %a, ptr %tmp, align 422 store i32 %b, ptr %tmp1, align 423 store ptr %d, ptr %tmp2, align 424 store i1 false, ptr %tmp325 %tmp7 = load ptr, ptr %c26 %tmp10 = invoke ptr @objc_msgSend(ptr %tmp7, ptr %d, ptr null)27 to label %bb11 unwind label %bb1528 29bb11: ; preds = %bb30 store ptr %tmp10, ptr %myException, align 431 %tmp12 = load ptr, ptr %myException, align 432 invoke void @objc_exception_throw(ptr %tmp12) noreturn33 to label %bb14 unwind label %bb1534 35bb14: ; preds = %bb1136 unreachable37 38bb15: ; preds = %bb11, %bb39 %tmp16 = landingpad { ptr, i32 }40 catch ptr null41 %tmp17 = extractvalue { ptr, i32 } %tmp16, 042 store ptr %tmp17, ptr %tmp443 %tmp18 = extractvalue { ptr, i32 } %tmp16, 144 store i32 %tmp18, ptr %tmp545 store i1 true, ptr %tmp346 br label %bb5647 48bb56:49 unreachable50}51 52declare ptr @objc_msgSend(ptr, ptr, ...) nonlazybind53declare i32 @__objc_personality_v0(...)54declare void @objc_exception_throw(ptr)55