summaryrefslogtreecommitdiff
path: root/lang/mono/files/patch-mono_mini_tramp-amd64.c
diff options
context:
space:
mode:
Diffstat (limited to 'lang/mono/files/patch-mono_mini_tramp-amd64.c')
-rw-r--r--lang/mono/files/patch-mono_mini_tramp-amd64.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/lang/mono/files/patch-mono_mini_tramp-amd64.c b/lang/mono/files/patch-mono_mini_tramp-amd64.c
new file mode 100644
index 000000000000..c09b13cf0fec
--- /dev/null
+++ b/lang/mono/files/patch-mono_mini_tramp-amd64.c
@@ -0,0 +1,26 @@
+--- mono/mini/tramp-amd64.c.orig 2018-04-13 23:37:57 UTC
++++ mono/mini/tramp-amd64.c
+@@ -363,7 +363,11 @@ mono_arch_create_generic_trampoline (Mon
+ }
+ for (i = 0; i < AMD64_XMM_NREG; ++i)
+ if (AMD64_IS_ARGUMENT_XREG (i))
++#if defined(MONO_HAVE_SIMD_REG)
+ amd64_movdqu_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(MonoContextSimdReg)), i);
++#else
++ amd64_movsd_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(double)), i);
++#endif
+
+ /* Check that the stack is aligned */
+ amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof (mgreg_t));
+@@ -540,7 +544,11 @@ mono_arch_create_generic_trampoline (Mon
+ amd64_mov_reg_membase (code, i, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), sizeof(mgreg_t));
+ for (i = 0; i < AMD64_XMM_NREG; ++i)
+ if (AMD64_IS_ARGUMENT_XREG (i))
++#if defined(MONO_HAVE_SIMD_REG)
+ amd64_movdqu_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(MonoContextSimdReg)));
++#else
++ amd64_movsd_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(double)));
++#endif
+
+ /* Restore stack */
+ #if TARGET_WIN32