Enable MONO_ARCH_EMULATE_FCONV_TO_U4 on PPC (mono/mono#15991)
authorCalvin Buckley <calvin@cmpct.info>
Fri, 2 Aug 2019 23:00:02 +0000 (20:00 -0300)
committerZoltan Varga <vargaz@gmail.com>
Fri, 2 Aug 2019 23:00:02 +0000 (19:00 -0400)
Fixes regression related to floating point introduced in mono/mono#15930.

This does mean we have to take a slower path instead of using the
PPC instruction, but it provides consistent results. Other CPUs
have to do this too, so it's not like PPC is impacted unfairly.
(i.e, NaN gives an inconsistent result, at least with POWER7 and
some amd64 CPUs tested)

Fixes mono/mono#15990.

Commit migrated from https://github.com/mono/mono/commit/e70ac8c6ae7ff3f03517be90babb8f7c25d18b97

src/mono/mono/mini/mini-ppc.h

index 243286d..b4dd1f1 100644 (file)
@@ -103,6 +103,7 @@ typedef struct MonoCompileArch {
 #define MONO_ARCH_EMULATE_LCONV_TO_R4 1
 #endif
 
+#define MONO_ARCH_EMULATE_FCONV_TO_U4 1
 #define MONO_ARCH_EMULATE_FCONV_TO_U8 1
 #define MONO_ARCH_EMULATE_LCONV_TO_R8_UN 1
 #define MONO_ARCH_EMULATE_FREM 1