Update floatdouble and floatsingle to use `floatcontrol(precise, value push)` and...
authorTanner Gooding <tagoo@outlook.com>
Wed, 29 Aug 2018 20:08:33 +0000 (13:08 -0700)
committerTanner Gooding <tagoo@outlook.com>
Wed, 29 Aug 2018 23:31:27 +0000 (16:31 -0700)
Commit migrated from https://github.com/dotnet/coreclr/commit/13c4ab0742ee7f80fb1cb98bef95e106b0f9c83a

src/coreclr/src/classlibnative/float/floatdouble.cpp
src/coreclr/src/classlibnative/float/floatsingle.cpp

index abce73d..b27ef61 100644 (file)
@@ -39,6 +39,7 @@
 ////////////////////////////////////////////////////////////////////////////////////
 
 #ifdef _MSC_VER
+#pragma float_control(push)
 #pragma float_control(precise, off)
 #endif
 
@@ -125,7 +126,9 @@ FCIMPLEND
 
 #if defined(_MSC_VER) && defined(_TARGET_AMD64_)
 // The /fp:fast form of `ceil` for AMD64 does not correctly handle: `-1.0 < value <= -0.0`
-#pragma float_control(precise, on )
+// https://github.com/dotnet/coreclr/issues/19739
+#pragma float_control(push)
+#pragma float_control(precise, on)
 #endif
 
 /*====================================Ceil======================================
@@ -138,7 +141,7 @@ FCIMPL1_V(double, COMDouble::Ceil, double x)
 FCIMPLEND
 
 #if defined(_MSC_VER) && defined(_TARGET_AMD64_)
-#pragma float_control(precise, off)
+#pragma float_control(pop)
 #endif
 
 /*=====================================Cos======================================
@@ -170,7 +173,9 @@ FCIMPLEND
 
 #if defined(_MSC_VER) && defined(_TARGET_X86_)
 // The /fp:fast form of `floor` for x86 does not correctly handle: `-0.0`
-#pragma float_control(precise, on )
+// https://github.com/dotnet/coreclr/issues/19739
+#pragma float_control(push)
+#pragma float_control(precise, on)
 #endif
 
 /*====================================Floor=====================================
@@ -183,7 +188,7 @@ FCIMPL1_V(double, COMDouble::Floor, double x)
 FCIMPLEND
 
 #if defined(_MSC_VER) && defined(_TARGET_X86_)
-#pragma float_control(precise, off)
+#pragma float_control(pop)
 #endif
 
 /*=====================================FMod=====================================
@@ -277,7 +282,7 @@ FCIMPL1_V(double, COMDouble::Tanh, double x)
 FCIMPLEND
 
 #ifdef _MSC_VER
-#pragma float_control(precise, on )
+#pragma float_control(pop)
 #endif
 
 ////////////////////////////////////////////////////////////////////////////////////
index 2fac42f..3903bc9 100644 (file)
@@ -37,6 +37,7 @@
 ////////////////////////////////////////////////////////////////////////////////////
 
 #ifdef _MSC_VER
+#pragma float_control(push)
 #pragma float_control(precise, off)
 #endif
 
@@ -123,7 +124,9 @@ FCIMPLEND
 
 #if defined(_MSC_VER) && defined(_TARGET_AMD64_)
 // The /fp:fast form of `ceilf` for AMD64 does not correctly handle: `-1.0 < value <= -0.0`
-#pragma float_control(precise, on )
+// https://github.com/dotnet/coreclr/issues/19739
+#pragma float_control(push)
+#pragma float_control(precise, on)
 #endif
 
 /*====================================Ceil======================================
@@ -136,7 +139,7 @@ FCIMPL1_V(float, COMSingle::Ceil, float x)
 FCIMPLEND
 
 #if defined(_MSC_VER) && defined(_TARGET_AMD64_)
-#pragma float_control(precise, off)
+#pragma float_control(pop)
 #endif
 
 /*=====================================Cos======================================
@@ -266,7 +269,7 @@ FCIMPL1_V(float, COMSingle::Tanh, float x)
 FCIMPLEND
 
 #ifdef _MSC_VER
-#pragma float_control(precise, on )
+#pragma float_control(pop)
 #endif
 
 ////////////////////////////////////////////////////////////////////////////////////