[Pkg-mono-svn-commits] [mono] 01/01: [utils] Fix amd64 version of MONO_CONTEXT_GET_CURRENT. (closes: #818329)
Mirco Bauer
meebey at moszumanska.debian.org
Sun Apr 10 10:09:07 UTC 2016
This is an automated email from the git hooks/post-receive script.
meebey pushed a commit to branch master-patches/fix_environment_exit_hang
in repository mono.
commit 609e2d79816e54a68267027c30a7205a3fe2fa79
Author: Rodrigo Kumpera <kumpera at gmail.com>
Date: Tue Sep 22 15:37:07 2015 -0400
[utils] Fix amd64 version of MONO_CONTEXT_GET_CURRENT. (closes: #818329)
Registers must be saved in MonoContext in the same order as mono_sigctx_to_monoctx.
This caused crashes on linux when unified suspend was enabled.
https://bugzilla.xamarin.com/show_bug.cgi?id=33020
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=818329
(cherry picked from upstream commit 23e34d77f2fd23ab5d61f6ba4aa905817f57668a)
---
mono/utils/mono-context.h | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/mono/utils/mono-context.h b/mono/utils/mono-context.h
index 55d75bd..d56e7eb 100644
--- a/mono/utils/mono-context.h
+++ b/mono/utils/mono-context.h
@@ -183,11 +183,11 @@ extern void mono_context_get_current (void *);
#define MONO_CONTEXT_GET_CURRENT(ctx) \
__asm__ __volatile__( \
"movq $0x0, %%nacl:0x00(%%r15, %0, 1)\n" \
- "movq %%rbx, %%nacl:0x08(%%r15, %0, 1)\n" \
- "movq %%rcx, %%nacl:0x10(%%r15, %0, 1)\n" \
- "movq %%rdx, %%nacl:0x18(%%r15, %0, 1)\n" \
- "movq %%rbp, %%nacl:0x20(%%r15, %0, 1)\n" \
- "movq %%rsp, %%nacl:0x28(%%r15, %0, 1)\n" \
+ "movq %%rcx, %%nacl:0x08(%%r15, %0, 1)\n" \
+ "movq %%rdx, %%nacl:0x10(%%r15, %0, 1)\n" \
+ "movq %%rbx, %%nacl:0x18(%%r15, %0, 1)\n" \
+ "movq %%rsp, %%nacl:0x20(%%r15, %0, 1)\n" \
+ "movq %%rbp, %%nacl:0x28(%%r15, %0, 1)\n" \
"movq %%rsi, %%nacl:0x30(%%r15, %0, 1)\n" \
"movq %%rdi, %%nacl:0x38(%%r15, %0, 1)\n" \
"movq %%r8, %%nacl:0x40(%%r15, %0, 1)\n" \
@@ -204,14 +204,15 @@ extern void mono_context_get_current (void *);
: "a" ((int64_t)&(ctx)) \
: "rdx", "memory")
#else
+
#define MONO_CONTEXT_GET_CURRENT(ctx) \
__asm__ __volatile__( \
"movq $0x0, 0x00(%0)\n" \
- "movq %%rbx, 0x08(%0)\n" \
- "movq %%rcx, 0x10(%0)\n" \
- "movq %%rdx, 0x18(%0)\n" \
- "movq %%rbp, 0x20(%0)\n" \
- "movq %%rsp, 0x28(%0)\n" \
+ "movq %%rcx, 0x08(%0)\n" \
+ "movq %%rdx, 0x10(%0)\n" \
+ "movq %%rbx, 0x18(%0)\n" \
+ "movq %%rsp, 0x20(%0)\n" \
+ "movq %%rbp, 0x28(%0)\n" \
"movq %%rsi, 0x30(%0)\n" \
"movq %%rdi, 0x38(%0)\n" \
"movq %%r8, 0x40(%0)\n" \
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mono/packages/mono.git
More information about the Pkg-mono-svn-commits
mailing list