[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