From eaddc5d650f87a861ebdc6d3c49fb155ec791306 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 25 Feb 2014 19:22:12 -0800 Subject: Implement llvm.flt.rounds and disable the createRewriteLLVMIntrinsicsPass pass. --- lib/Target/JSBackend/CallHandlers.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/Target') diff --git a/lib/Target/JSBackend/CallHandlers.h b/lib/Target/JSBackend/CallHandlers.h index ec17f905d1..93275b9637 100644 --- a/lib/Target/JSBackend/CallHandlers.h +++ b/lib/Target/JSBackend/CallHandlers.h @@ -362,6 +362,12 @@ DEF_CALL_HANDLER(llvm_prefetch, { return ""; }) +DEF_CALL_HANDLER(llvm_flt_rounds, { + // FLT_ROUNDS helper. We don't support setting the rounding mode dynamically, + // so it's always round-to-nearest (1). + return getAssign(CI) + "1"; +}) + DEF_CALL_HANDLER(bitshift64Lshr, { return CH___default__(CI, "_bitshift64Lshr", 3); }) @@ -735,6 +741,7 @@ void setupCallHandlers() { SETUP_CALL_HANDLER(llvm_invariant_start); SETUP_CALL_HANDLER(llvm_invariant_end); SETUP_CALL_HANDLER(llvm_prefetch); + SETUP_CALL_HANDLER(llvm_flt_rounds); SETUP_CALL_HANDLER(bitshift64Lshr); SETUP_CALL_HANDLER(bitshift64Ashr); SETUP_CALL_HANDLER(bitshift64Shl); -- cgit v1.2.3-70-g09d2