summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-05-11 21:33:49 +0000
committerChad Rosier <mcrosier@apple.com>2012-05-11 21:33:49 +0000
commitaa9cb9df591f4270bcb56154b07425e0232e64b0 (patch)
treeaf67311c439008c74bb9dcb7df61b06c32538c9c
parent5edcf8822d1063d290eee11883678c168f36d521 (diff)
downloadbcm5719-llvm-aa9cb9df591f4270bcb56154b07425e0232e64b0.tar.gz
bcm5719-llvm-aa9cb9df591f4270bcb56154b07425e0232e64b0.zip
[fast-isel] Add support for selecting @llvm.trap().
llvm-svn: 156646
-rw-r--r--llvm/lib/Target/ARM/ARMFastISel.cpp4
-rw-r--r--llvm/test/CodeGen/ARM/fast-isel.ll12
2 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp
index 9dff0171c3f..97131cd6987 100644
--- a/llvm/lib/Target/ARM/ARMFastISel.cpp
+++ b/llvm/lib/Target/ARM/ARMFastISel.cpp
@@ -2443,6 +2443,10 @@ bool ARMFastISel::SelectIntrinsicCall(const IntrinsicInst &I) {
return SelectCall(&I, "memset");
}
+ case Intrinsic::trap: {
+ BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(ARM::TRAP));
+ return true;
+ }
}
}
diff --git a/llvm/test/CodeGen/ARM/fast-isel.ll b/llvm/test/CodeGen/ARM/fast-isel.ll
index 417e2d9e410..ecd5fe27a4b 100644
--- a/llvm/test/CodeGen/ARM/fast-isel.ll
+++ b/llvm/test/CodeGen/ARM/fast-isel.ll
@@ -226,3 +226,15 @@ define i32 @urem_fold(i32 %a) nounwind {
%rem = urem i32 %a, 32
ret i32 %rem
}
+
+define i32 @test7() noreturn nounwind {
+entry:
+; ARM: @test7
+; THUMB: @test7
+; ARM: trap
+; THUMB: trap
+ tail call void @llvm.trap( )
+ unreachable
+}
+
+declare void @llvm.trap() nounwind
OpenPOWER on IntegriCloud