summaryrefslogtreecommitdiff
path: root/lang/mono/files/patch-mono_utils_mono-context.h
diff options
context:
space:
mode:
Diffstat (limited to 'lang/mono/files/patch-mono_utils_mono-context.h')
-rw-r--r--lang/mono/files/patch-mono_utils_mono-context.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/lang/mono/files/patch-mono_utils_mono-context.h b/lang/mono/files/patch-mono_utils_mono-context.h
new file mode 100644
index 000000000000..e08b5ea2e9b7
--- /dev/null
+++ b/lang/mono/files/patch-mono_utils_mono-context.h
@@ -0,0 +1,42 @@
+--- mono/utils/mono-context.h.orig 2018-04-13 23:37:57 UTC
++++ mono/utils/mono-context.h
+@@ -24,23 +24,30 @@
+
+ #if defined(TARGET_X86)
+ #if defined(__APPLE__)
++#define MONO_HAVE_SIMD_REG
+ typedef struct __darwin_xmm_reg MonoContextSimdReg;
+ #endif
+ #elif defined(TARGET_AMD64)
+ #if defined(__APPLE__)
++#define MONO_HAVE_SIMD_REG
+ typedef struct __darwin_xmm_reg MonoContextSimdReg;
+ #elif defined(__linux__) && defined(__GLIBC__)
++#define MONO_HAVE_SIMD_REG
+ typedef struct _libc_xmmreg MonoContextSimdReg;
+ #elif defined(HOST_WIN32)
++#define MONO_HAVE_SIMD_REG
+ #include <emmintrin.h>
+ typedef __m128d MonoContextSimdReg;
+ #elif defined(HOST_ANDROID)
++#define MONO_HAVE_SIMD_REG
+ typedef struct _libc_xmmreg MonoContextSimdReg;
+ #elif defined(__linux__)
++#define MONO_HAVE_SIMD_REG
+ #include <emmintrin.h>
+ typedef __m128d MonoContextSimdReg;
+ #endif
+ #elif defined(TARGET_ARM64)
++#define MONO_HAVE_SIMD_REG
+ typedef __uint128_t MonoContextSimdReg;
+ #endif
+
+@@ -255,7 +262,7 @@ typedef struct {
+
+ typedef struct {
+ mgreg_t gregs [AMD64_NREG];
+-#if defined(__APPLE__) || (defined(__linux__) && defined(__GLIBC__)) || defined(HOST_WIN32)
++#if defined(MONO_HAVE_SIMD_REG)
+ MonoContextSimdReg fregs [AMD64_XMM_NREG];
+ #else
+ double fregs [AMD64_XMM_NREG];