[jit] Move the ppc sigctx<->monoctx conversion code to mono-context.c.
authorZoltan Varga <vargaz@gmail.com>
Mon, 10 Nov 2014 10:22:04 +0000 (05:22 -0500)
committerZoltan Varga <vargaz@gmail.com>
Mon, 10 Nov 2014 10:22:04 +0000 (05:22 -0500)
mono/mini/exceptions-ppc.c
mono/utils/mono-context.c

index 6c3878e97b8e4df6102126330851adae5cea167f..9b9dbef15d588924db7b87bc1f2d2db65e17b271 100644 (file)
@@ -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
index c52d0442f465395e66d78eb019fff6c0e634fb0a..689bf86a47d6310bc548099d14da501a8769318b 100644 (file)
@@ -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__) */