aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/IntrinsicsARM.td
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2010-08-03 21:31:55 +0000
committerNate Begeman <natebegeman@mac.com>2010-08-03 21:31:55 +0000
commitd1fb583128c6682bb8a7c74eafa810a9270cc8df (patch)
treed009b76a09bad20fb173a61081cecd9a4ac8cb6a /include/llvm/IntrinsicsARM.td
parent6fc24467e91a2c515fa5347e90071573c454bcca (diff)
downloadexternal_llvm-d1fb583128c6682bb8a7c74eafa810a9270cc8df.zip
external_llvm-d1fb583128c6682bb8a7c74eafa810a9270cc8df.tar.gz
external_llvm-d1fb583128c6682bb8a7c74eafa810a9270cc8df.tar.bz2
Add support for getting & setting the FPSCR application register on ARM when VFP is enabled.
Add support for using the FPSCR in conjunction with the vcvtr instruction, for controlling fp to int rounding. Add support for the FLT_ROUNDS_ node now that the FPSCR is exposed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110152 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/IntrinsicsARM.td')
-rw-r--r--include/llvm/IntrinsicsARM.td14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/IntrinsicsARM.td b/include/llvm/IntrinsicsARM.td
index 7e909b7..2589de2 100644
--- a/include/llvm/IntrinsicsARM.td
+++ b/include/llvm/IntrinsicsARM.td
@@ -36,6 +36,20 @@ let TargetPrefix = "arm" in { // All intrinsics start with "llvm.arm.".
}
//===----------------------------------------------------------------------===//
+// VFP
+
+let TargetPrefix = "arm" in { // All intrinsics start with "llvm.arm.".
+ def int_arm_get_fpscr : GCCBuiltin<"__builtin_arm_get_fpscr">,
+ Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>;
+ def int_arm_set_fpscr : GCCBuiltin<"__builtin_arm_set_fpscr">,
+ Intrinsic<[], [llvm_i32_ty], [IntrWriteMem]>;
+ def int_arm_vcvtr : Intrinsic<[llvm_float_ty], [llvm_anyfloat_ty],
+ [IntrNoMem]>;
+ def int_arm_vcvtru : Intrinsic<[llvm_float_ty], [llvm_anyfloat_ty],
+ [IntrNoMem]>;
+}
+
+//===----------------------------------------------------------------------===//
// Advanced SIMD (NEON)
let TargetPrefix = "arm" in { // All intrinsics start with "llvm.arm.".