SHA256
1
0
forked from pool/mono-core
mono-core/ppc.patch

39 lines
1.6 KiB
Diff

Index: mono-3.0.2/mono/mini/mini.c
===================================================================
--- mono-3.0.2.orig/mono/mini/mini.c
+++ mono-3.0.2/mono/mini/mini.c
@@ -6240,7 +6240,7 @@ mini_create_ftnptr (MonoDomain *domain,
desc [0] = addr;
desc [1] = NULL;
# elif defined(__ppc64__) || defined(__powerpc64__)
- gpointer *desc;
+ //gpointer *desc;
desc = mono_domain_alloc0 (domain, 3 * sizeof (gpointer));
Index: mono-3.0.2/mono/mini/mini-ppc.h
===================================================================
--- mono-3.0.2.orig/mono/mini/mini-ppc.h
+++ mono-3.0.2/mono/mini/mini-ppc.h
@@ -96,6 +96,7 @@ typedef struct MonoCompileArch {
#define MONO_ARCH_EMULATE_FREM 1
#define MONO_ARCH_BIGMUL_INTRINS 1
#define MONO_ARCH_HAVE_ATOMIC_CAS 1
+#define MONO_ARCH_GC_MAPS_SUPPORTED 1
/* Parameters used by the register allocator */
#define MONO_ARCH_CALLEE_REGS ((0xff << ppc_r3) | (1 << ppc_r11) | (1 << ppc_r12))
Index: mono-3.0.2/mono/mini/mini-gc.c
===================================================================
--- mono-3.0.2.orig/mono/mini/mini-gc.c
+++ mono-3.0.2/mono/mini/mini-gc.c
@@ -438,6 +438,8 @@ static int callee_saved_regs [] = { X86_
static int callee_saved_regs [] = { ARMREG_V1, ARMREG_V2, ARMREG_V3, ARMREG_V4, ARMREG_V5, ARMREG_V7, ARMREG_FP };
#elif defined(TARGET_S390X)
static int callee_saved_regs [] = { s390_r6, s390_r7, s390_r8, s390_r9, s390_r10, s390_r11, s390_r12, s390_r13, s390_r14 };
+#elif defined(TARGET_POWERPC)
+static int callee_saved_regs [] = { ppc_r6, ppc_r7, ppc_r8, ppc_r9, ppc_r10, ppc_r11, ppc_r12, ppc_r13, ppc_r14 };
#endif
static guint32