|
@@ -1,92 +0,0 @@
|
|
|
-From bf8e3967e4809923d99159ebfa294daf897b5c29 Mon Sep 17 00:00:00 2001
|
|
|
-From: Zoltan Varga <vargaz@gmail.com>
|
|
|
-Date: Mon, 10 Nov 2014 05:22:04 -0500
|
|
|
-Subject: [PATCH] [jit] Move the ppc sigctx<->monoctx conversion code to
|
|
|
- mono-context.c.
|
|
|
-
|
|
|
-Backported from upstream commit
|
|
|
-7e056cd346ccab104715e19d51d0ceccd51b696d by Thomas Petazzoni
|
|
|
-<thomas.petazzoni@free-electrons.com>.
|
|
|
-
|
|
|
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
----
|
|
|
- mono/mini/exceptions-ppc.c | 22 ++--------------------
|
|
|
- mono/utils/mono-context.c | 26 ++++++++++++++++++++++++++
|
|
|
- 2 files changed, 28 insertions(+), 20 deletions(-)
|
|
|
-
|
|
|
-diff --git a/mono/mini/exceptions-ppc.c b/mono/mini/exceptions-ppc.c
|
|
|
-index 6c3878e..9b9dbef 100644
|
|
|
---- a/mono/mini/exceptions-ppc.c
|
|
|
-+++ b/mono/mini/exceptions-ppc.c
|
|
|
-@@ -600,31 +600,13 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
|
|
|
- void
|
|
|
- mono_arch_sigctx_to_monoctx (void *ctx, MonoContext *mctx)
|
|
|
- {
|
|
|
--#ifdef MONO_CROSS_COMPILE
|
|
|
-- g_assert_not_reached ();
|
|
|
--#else
|
|
|
-- os_ucontext *uc = ctx;
|
|
|
--
|
|
|
-- mctx->sc_ir = UCONTEXT_REG_NIP(uc);
|
|
|
-- mctx->sc_sp = UCONTEXT_REG_Rn(uc, 1);
|
|
|
-- memcpy (&mctx->regs, &UCONTEXT_REG_Rn(uc, 13), sizeof (mgreg_t) * MONO_SAVED_GREGS);
|
|
|
-- memcpy (&mctx->fregs, &UCONTEXT_REG_FPRn(uc, 14), sizeof (double) * MONO_SAVED_FREGS);
|
|
|
--#endif
|
|
|
-+ return mono_sigctx_to_monoctx (ctx, mctx);
|
|
|
- }
|
|
|
-
|
|
|
- void
|
|
|
- mono_arch_monoctx_to_sigctx (MonoContext *mctx, void *ctx)
|
|
|
- {
|
|
|
--#ifdef MONO_CROSS_COMPILE
|
|
|
-- g_assert_not_reached ();
|
|
|
--#else
|
|
|
-- os_ucontext *uc = ctx;
|
|
|
--
|
|
|
-- UCONTEXT_REG_NIP(uc) = mctx->sc_ir;
|
|
|
-- UCONTEXT_REG_Rn(uc, 1) = mctx->sc_sp;
|
|
|
-- memcpy (&UCONTEXT_REG_Rn(uc, 13), &mctx->regs, sizeof (mgreg_t) * MONO_SAVED_GREGS);
|
|
|
-- memcpy (&UCONTEXT_REG_FPRn(uc, 14), &mctx->fregs, sizeof (double) * MONO_SAVED_FREGS);
|
|
|
--#endif
|
|
|
-+ return mono_monoctx_to_sigctx (mctx, ctx);
|
|
|
- }
|
|
|
-
|
|
|
- gpointer
|
|
|
-diff --git a/mono/utils/mono-context.c b/mono/utils/mono-context.c
|
|
|
-index c52d044..689bf86 100644
|
|
|
---- a/mono/utils/mono-context.c
|
|
|
-+++ b/mono/utils/mono-context.c
|
|
|
-@@ -421,4 +421,30 @@ mono_monoctx_to_sigctx (MonoContext *mctx, void *sigctx)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-+#elif (((defined(__ppc__) || defined(__powerpc__) || defined(__ppc64__)) && !defined(MONO_CROSS_COMPILE))) || (defined(TARGET_POWERPC))
|
|
|
-+
|
|
|
-+#include <mono/utils/mono-context.h>
|
|
|
-+
|
|
|
-+void
|
|
|
-+mono_sigctx_to_monoctx (void *sigctx, MonoContext *mctx)
|
|
|
-+{
|
|
|
-+ os_ucontext *uc = sigctx;
|
|
|
-+
|
|
|
-+ mctx->sc_ir = UCONTEXT_REG_NIP(uc);
|
|
|
-+ mctx->sc_sp = UCONTEXT_REG_Rn(uc, 1);
|
|
|
-+ memcpy (&mctx->regs, &UCONTEXT_REG_Rn(uc, 13), sizeof (mgreg_t) * MONO_SAVED_GREGS);
|
|
|
-+ memcpy (&mctx->fregs, &UCONTEXT_REG_FPRn(uc, 14), sizeof (double) * MONO_SAVED_FREGS);
|
|
|
-+}
|
|
|
-+
|
|
|
-+void
|
|
|
-+mono_monoctx_to_sigctx (MonoContext *mctx, void *sigctx)
|
|
|
-+{
|
|
|
-+ os_ucontext *uc = sigctx;
|
|
|
-+
|
|
|
-+ UCONTEXT_REG_NIP(uc) = mctx->sc_ir;
|
|
|
-+ UCONTEXT_REG_Rn(uc, 1) = mctx->sc_sp;
|
|
|
-+ memcpy (&UCONTEXT_REG_Rn(uc, 13), &mctx->regs, sizeof (mgreg_t) * MONO_SAVED_GREGS);
|
|
|
-+ memcpy (&UCONTEXT_REG_FPRn(uc, 14), &mctx->fregs, sizeof (double) * MONO_SAVED_FREGS);
|
|
|
-+}
|
|
|
-+
|
|
|
- #endif /* #if defined(__i386__) */
|
|
|
---
|
|
|
-2.1.0
|
|
|
-
|