- Refresh patches

- Update to 3.4.0
  * Revamped HttpWebRequest/ServicePoint stack
    - Should properly reuse connections.
    - Uses the specified idle times
    - NTLM support has been improved.
    - SSL/TLS operations on via async APIs are now
      implemented using async patterns internally
      to greatly alleviate Thread Pool abuse.
  * Network stack
    - Now allows developers to control which cipher
      suites to use with TLS/SSL.
  * ARM
    - Emit shorter floating point operations when possible
    - Hard float support: Mono now should work on Linux
      distributions which uses a hard float (armhf) ABI,
      like the Raspberry PI.
      Notes: Homogeneous floating point aggregates are not
      yet supported on armhf.
  * Documentation
    - Updated documentation stubs to the 4.5 .NET API.
  * mono-api-html
    - Now supports regular expressions when specifying
      members to ignore (e.g. mono-api-html -i 'INSCopying$')

OBS-URL: https://build.opensuse.org/package/show/Mono:Factory/mono-core?expand=0&rev=129
This commit is contained in:
Stephen Shaw 2014-05-29 06:10:29 +00:00 committed by Git OBS Bridge
parent a12cde823f
commit d089493623
10 changed files with 202 additions and 150 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fdb48cad26149288dcb99a3d9b4ec89735706000242c50bdc21ce657af201a40
size 77515552

3
mono-3.4.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c9d509d82a9d340f216a7172d4884a772b22b16555386873b874f92e2d38fe37
size 83010187

View File

@ -1,6 +1,8 @@
--- a/mcs/Makefile
+++ b/mcs/Makefile
@@ -82,7 +82,7 @@
Index: mono-3.4.0/mcs/Makefile
===================================================================
--- mono-3.4.0.orig/mcs/Makefile
+++ mono-3.4.0/mcs/Makefile
@@ -83,7 +83,7 @@ all-local $(STD_TARGETS:=-local):
@:
dir-check:

View File

@ -10,10 +10,11 @@ with one destination register we also need to make some additional
calls use r12. We probably should convert all calls that currently
use r0 to use r12 if no other conflicts arise but this is enough to build.
diff -u mono-3.2.3/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-ppc.c
--- mono-3.2.3/mono/mini/exceptions-ppc.c 2014-01-04 19:04:35.000000000 +0000
+++ mono-3.2.3/mono/mini/exceptions-ppc.c 2014-01-04 19:32:51.000000000 +0000
@@ -395,8 +395,8 @@
Index: mono-3.4.0/mono/mini/exceptions-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/exceptions-ppc.c
+++ mono-3.4.0/mono/mini/exceptions-ppc.c
@@ -391,8 +391,8 @@ mono_arch_get_throw_exception_generic (i
ppc_bcctrl (code, PPC_BR_ALWAYS, 0);
} else {
ppc_load (code, ppc_r3, (gulong)mono_defaults.corlib);
@ -24,7 +25,7 @@ diff -u mono-3.2.3/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-pp
ppc_bcctrl (code, PPC_BR_ALWAYS, 0);
}
}
@@ -430,8 +430,8 @@
@@ -426,8 +426,8 @@ mono_arch_get_throw_exception_generic (i
ppc_mtctr (code, ppc_r12);
ppc_bcctrl (code, PPC_BR_ALWAYS, 0);
} else {
@ -35,10 +36,11 @@ diff -u mono-3.2.3/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-pp
ppc_bcctrl (code, PPC_BR_ALWAYS, 0);
}
/* we should never reach this breakpoint */
diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
--- mono-3.2.3/mono/mini/mini-ppc.c 2014-01-04 19:16:23.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-ppc.c 2014-01-04 19:58:06.000000000 +0000
@@ -1783,8 +1783,8 @@
Index: mono-3.4.0/mono/mini/mini-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.c
+++ mono-3.4.0/mono/mini/mini-ppc.c
@@ -1782,8 +1782,8 @@ mono_arch_instrument_prolog (MonoCompile
ppc_load_ptr (code, ppc_r3, cfg->method);
ppc_li (code, ppc_r4, 0); /* NULL ebp for now */
@ -49,7 +51,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
return code;
}
@@ -1881,8 +1881,8 @@
@@ -1880,8 +1880,8 @@ mono_arch_instrument_epilog_full (MonoCo
}
ppc_load_ptr (code, ppc_r3, cfg->method);
@ -60,7 +62,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
switch (save_mode) {
@@ -2923,7 +2923,7 @@
@@ -2922,7 +2922,7 @@ ppc_patch_full (guchar *code, const guch
if (!is_fd) {
guint8 *buf = (guint8*)&seq [5];
@ -69,7 +71,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_nop (buf);
}
} else {
@@ -2936,7 +2936,7 @@
@@ -2935,7 +2935,7 @@ ppc_patch_full (guchar *code, const guch
/* FIXME: we're assuming we're using r12 here */
ppc_load_ptr_sequence (code, ppc_r12, target);
#else
@ -78,7 +80,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
#endif
mono_arch_flush_icache ((guint8*)seq, 28);
#else
@@ -2952,8 +2952,8 @@
@@ -2951,8 +2951,8 @@ ppc_patch_full (guchar *code, const guch
g_assert ((seq [2] >> 26) == 31);
g_assert (seq [3] == 0x4e800021 || seq [3] == 0x4e800020 || seq [3] == 0x4e800420);
/* FIXME: make this thread safe */
@ -89,7 +91,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
mono_arch_flush_icache (code - 8, 8);
#endif
} else {
@@ -3371,8 +3371,8 @@
@@ -3370,8 +3370,8 @@ mono_arch_output_basic_block (MonoCompil
mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
(gpointer)"mono_break");
if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) {
@ -100,7 +102,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
} else {
ppc_bl (code, 0);
@@ -3819,8 +3819,8 @@
@@ -3818,8 +3818,8 @@ mono_arch_output_basic_block (MonoCompil
else
mono_add_patch_info (cfg, offset, MONO_PATCH_INFO_ABS, call->fptr);
if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) {
@ -111,7 +113,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
} else {
ppc_bl (code, 0);
@@ -3913,8 +3913,8 @@
@@ -3912,8 +3912,8 @@ mono_arch_output_basic_block (MonoCompil
mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
(gpointer)"mono_arch_throw_exception");
if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) {
@ -122,7 +124,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
} else {
ppc_bl (code, 0);
@@ -3927,8 +3927,8 @@
@@ -3926,8 +3926,8 @@ mono_arch_output_basic_block (MonoCompil
mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
(gpointer)"mono_arch_rethrow_exception");
if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) {
@ -133,7 +135,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
} else {
ppc_bl (code, 0);
@@ -5070,8 +5070,8 @@
@@ -5070,8 +5070,8 @@ mono_arch_emit_prolog (MonoCompile *cfg)
mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
(gpointer)"mono_get_lmf_addr");
if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) {
@ -144,7 +146,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_blrl (code);
} else {
ppc_bl (code, 0);
@@ -5380,8 +5380,8 @@
@@ -5380,8 +5380,8 @@ mono_arch_emit_exceptions (MonoCompile *
patch_info->data.name = "mono_arch_throw_corlib_exception";
patch_info->ip.i = code - cfg->native_code;
if (FORCE_INDIR_CALL || cfg->method->dynamic) {
@ -155,10 +157,11 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
ppc_bcctr (code, PPC_BR_ALWAYS, 0);
} else {
ppc_bl (code, 0);
diff -u mono-3.2.3/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h
--- mono-3.2.3/mono/mini/mini-ppc.h 2014-01-04 19:04:36.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-ppc.h 2014-01-04 19:27:07.000000000 +0000
@@ -172,6 +172,8 @@
Index: mono-3.4.0/mono/mini/mini-ppc.h
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.h
+++ mono-3.4.0/mono/mini/mini-ppc.h
@@ -172,6 +172,8 @@ typedef struct MonoCompileArch {
#define PPC_FIRST_FPARG_REG ppc_f1
#endif
@ -167,10 +170,11 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h
#if defined(HAVE_WORKING_SIGALTSTACK) && !defined(__APPLE__)
#define MONO_ARCH_SIGSEGV_ON_ALTSTACK 1
#define MONO_ARCH_SIGNAL_STACK_SIZE (12 * 1024)
diff -u mono-3.2.3/mono/mini/tramp-ppc.c mono-3.2.3/mono/mini/tramp-ppc.c
--- mono-3.2.3/mono/mini/tramp-ppc.c 2014-01-04 19:16:53.000000000 +0000
+++ mono-3.2.3/mono/mini/tramp-ppc.c 2014-01-04 19:35:16.000000000 +0000
@@ -309,8 +309,8 @@
Index: mono-3.4.0/mono/mini/tramp-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/tramp-ppc.c
+++ mono-3.4.0/mono/mini/tramp-ppc.c
@@ -306,8 +306,8 @@ mono_arch_create_generic_trampoline (Mon
ppc_mtlr (code, ppc_r12);
ppc_blrl (code);
} else {
@ -181,7 +185,7 @@ diff -u mono-3.2.3/mono/mini/tramp-ppc.c mono-3.2.3/mono/mini/tramp-ppc.c
ppc_blrl (code);
}
/* we build the MonoLMF structure on the stack - see mini-ppc.h
@@ -371,8 +371,8 @@
@@ -368,8 +368,8 @@ mono_arch_create_generic_trampoline (Mon
ppc_blrl (code);
} else {
tramp_handler = mono_get_trampoline_func (tramp_type);

View File

@ -7,9 +7,10 @@ to pass around values to functions outside the normal argument registers
(ugh!), so there's a conflict. This mechanical (by sed) patch simply switches
ppc_r11 and ppc_r12 everywhere, r11 doesn't have any special use in the ABI.
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h mono-3.2.3/mono/arch/ppc/ppc-codegen.h
--- mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h 2014-01-04 04:16:29.000000000 +0000
+++ mono-3.2.3/mono/arch/ppc/ppc-codegen.h 2014-01-04 19:04:29.000000000 +0000
Index: mono-3.4.0/mono/arch/ppc/ppc-codegen.h
===================================================================
--- mono-3.4.0.orig/mono/arch/ppc/ppc-codegen.h
+++ mono-3.4.0/mono/arch/ppc/ppc-codegen.h
@@ -810,9 +810,9 @@ my and Ximian's copyright to this code.
#define ppc_load_func(c,D,V) ppc_load_sequence ((c), (D), (V))
#else
@ -23,10 +24,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/pp
} G_STMT_END
#endif
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/aot-compiler.c mono-3.2.3/mono/mini/aot-compiler.c
--- mono-3.2.3.orig/mono/mini/aot-compiler.c 2013-09-13 22:38:21.000000000 +0000
+++ mono-3.2.3/mono/mini/aot-compiler.c 2014-01-04 19:17:32.000000000 +0000
@@ -1830,14 +1830,14 @@ arch_emit_imt_thunk (MonoAotCompile *acf
Index: mono-3.4.0/mono/mini/aot-compiler.c
===================================================================
--- mono-3.4.0.orig/mono/mini/aot-compiler.c
+++ mono-3.4.0/mono/mini/aot-compiler.c
@@ -1842,14 +1842,14 @@ arch_emit_imt_thunk (MonoAotCompile *acf
code = buf;
/* Load the mscorlib got address */
@ -44,7 +46,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/aot-co
ppc_cmp (code, 0, sizeof (gpointer) == 8 ? 1 : 0, ppc_r0, MONO_ARCH_IMT_REG);
labels [2] = code;
ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 0);
@@ -1848,18 +1848,18 @@ arch_emit_imt_thunk (MonoAotCompile *acf
@@ -1860,18 +1860,18 @@ arch_emit_imt_thunk (MonoAotCompile *acf
ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 0);
/* Loop footer */
@ -68,10 +70,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/aot-co
ppc_bcctr (code, PPC_BR_ALWAYS, 0);
/* Fail */
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-ppc.c
--- mono-3.2.3.orig/mono/mini/exceptions-ppc.c 2013-09-13 22:22:23.000000000 +0000
+++ mono-3.2.3/mono/mini/exceptions-ppc.c 2014-01-04 19:04:35.000000000 +0000
@@ -385,13 +385,13 @@ mono_arch_get_throw_exception_generic (i
Index: mono-3.4.0/mono/mini/exceptions-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/exceptions-ppc.c
+++ mono-3.4.0/mono/mini/exceptions-ppc.c
@@ -381,13 +381,13 @@ mono_arch_get_throw_exception_generic (i
if (aot) {
code = mono_arch_emit_load_aotconst (start, code, &ji, MONO_PATCH_INFO_IMAGE, mono_defaults.corlib);
@ -89,7 +92,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/except
ppc_bcctrl (code, PPC_BR_ALWAYS, 0);
} else {
ppc_load (code, ppc_r3, (gulong)mono_defaults.corlib);
@@ -424,10 +424,10 @@ mono_arch_get_throw_exception_generic (i
@@ -420,10 +420,10 @@ mono_arch_get_throw_exception_generic (i
code = mono_arch_emit_load_got_addr (start, code, NULL, &ji);
code = mono_arch_emit_load_aotconst (start, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_ppc_throw_exception");
#ifdef PPC_USES_FUNCTION_DESCRIPTOR
@ -103,10 +106,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/except
ppc_bcctrl (code, PPC_BR_ALWAYS, 0);
} else {
ppc_load_func (code, ppc_r0, mono_ppc_throw_exception);
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-mips.c mono-3.2.3/mono/mini/mini-mips.c
--- mono-3.2.3.orig/mono/mini/mini-mips.c 2013-09-13 22:22:14.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-mips.c 2014-01-04 19:04:36.000000000 +0000
@@ -3299,8 +3299,8 @@ emit_reserve_param_area (MonoCompile *cf
Index: mono-3.4.0/mono/mini/mini-mips.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-mips.c
+++ mono-3.4.0/mono/mini/mini-mips.c
@@ -3298,8 +3298,8 @@ emit_reserve_param_area (MonoCompile *cf
if (ppc_is_imm16 (-size)) {
ppc_stwu (code, ppc_r0, -size, ppc_sp);
} else {
@ -117,7 +121,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-m
}
#endif
return code;
@@ -3321,8 +3321,8 @@ emit_unreserve_param_area (MonoCompile *
@@ -3320,8 +3320,8 @@ emit_unreserve_param_area (MonoCompile *
if (ppc_is_imm16 (size)) {
ppc_stwu (code, ppc_r0, size, ppc_sp);
} else {
@ -128,7 +132,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-m
}
#endif
return code;
@@ -3713,8 +3713,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3712,8 +3712,8 @@ mono_arch_output_basic_block (MonoCompil
case OP_DIV_IMM:
g_assert_not_reached ();
#if 0
@ -139,10 +143,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-m
ppc_mfspr (code, ppc_r0, ppc_xer);
ppc_andisd (code, ppc_r0, ppc_r0, (1<<14));
/* FIXME: use OverflowException for 0x80000000/-1 */
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
--- mono-3.2.3.orig/mono/mini/mini-ppc.c 2014-01-04 04:16:29.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-ppc.c 2014-01-04 19:16:23.000000000 +0000
@@ -104,11 +104,11 @@ offsets_from_pthread_key (guint32 key, i
Index: mono-3.4.0/mono/mini/mini-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.c
+++ mono-3.4.0/mono/mini/mini-ppc.c
@@ -103,11 +103,11 @@ offsets_from_pthread_key (guint32 key, i
/* FIXME: ensure the sc call preserves all but r3 */
#define emit_darwing4_tls(code,dreg,key) do {\
int off1 = 0x48 + key * sizeof (gpointer); \
@ -156,7 +161,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} while (0);
#ifdef PPC_THREAD_PTR_REG
@@ -119,8 +119,8 @@ offsets_from_pthread_key (guint32 key, i
@@ -118,8 +118,8 @@ offsets_from_pthread_key (guint32 key, i
ppc_ldptr ((code), (dreg), off1, PPC_THREAD_PTR_REG); \
} else { \
int off3 = (off2 + 1) > 1; \
@ -167,7 +172,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} \
} while (0);
#else
@@ -191,29 +191,29 @@ emit_memcpy (guint8 *code, int size, int
@@ -190,29 +190,29 @@ emit_memcpy (guint8 *code, int size, int
ppc_load (code, ppc_r0, shifted);
ppc_mtctr (code, ppc_r0);
@ -206,7 +211,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
size -= 16;
soffset += 16;
doffset += 16;
@@ -227,12 +227,12 @@ emit_memcpy (guint8 *code, int size, int
@@ -226,12 +226,12 @@ emit_memcpy (guint8 *code, int size, int
doffset += 8;
}
#else
@ -222,7 +227,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
size -= 8;
soffset += 8;
doffset += 8;
@@ -738,7 +738,7 @@ mono_arch_get_global_int_regs (MonoCompi
@@ -737,7 +737,7 @@ mono_arch_get_global_int_regs (MonoCompi
for (i = 14; i < top; ++i) {
/*
* Reserve r29 for holding the vtable address for virtual calls in AOT mode,
@ -231,7 +236,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
*/
if (!(cfg->compile_aot && i == 29))
regs = g_list_prepend (regs, GUINT_TO_POINTER (i));
@@ -2923,7 +2923,7 @@ ppc_patch_full (guchar *code, const guch
@@ -2922,7 +2922,7 @@ ppc_patch_full (guchar *code, const guch
if (!is_fd) {
guint8 *buf = (guint8*)&seq [5];
@ -240,7 +245,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
ppc_nop (buf);
}
} else {
@@ -2933,8 +2933,8 @@ ppc_patch_full (guchar *code, const guch
@@ -2932,8 +2932,8 @@ ppc_patch_full (guchar *code, const guch
/* FIXME: make this thread safe */
#ifdef PPC_USES_FUNCTION_DESCRIPTOR
@ -251,7 +256,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
#else
ppc_load_ptr_sequence (code, ppc_r0, target);
#endif
@@ -3010,8 +3010,8 @@ emit_reserve_param_area (MonoCompile *cf
@@ -3009,8 +3009,8 @@ emit_reserve_param_area (MonoCompile *cf
if (ppc_is_imm16 (-size)) {
ppc_stptr_update (code, ppc_r0, -size, ppc_sp);
} else {
@ -262,7 +267,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
return code;
@@ -3032,8 +3032,8 @@ emit_unreserve_param_area (MonoCompile *
@@ -3031,8 +3031,8 @@ emit_unreserve_param_area (MonoCompile *
if (ppc_is_imm16 (size)) {
ppc_stptr_update (code, ppc_r0, size, ppc_sp);
} else {
@ -273,7 +278,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
return code;
@@ -3107,8 +3107,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3106,8 +3106,8 @@ mono_arch_output_basic_block (MonoCompil
* a breakpoint is hit will step to the next IL offset.
*/
if (ins->flags & MONO_INST_SINGLE_STEP_LOC) {
@ -284,7 +289,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
mono_add_seq_point (cfg, bb, ins, code - cfg->native_code);
@@ -3142,8 +3142,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3141,8 +3141,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_stb (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -295,7 +300,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} else {
ppc_load (code, ppc_r0, ins->inst_offset);
ppc_stbx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0);
@@ -3155,8 +3155,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3154,8 +3154,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_sth (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -306,7 +311,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} else {
ppc_load (code, ppc_r0, ins->inst_offset);
ppc_sthx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0);
@@ -3168,8 +3168,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3167,8 +3167,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_stptr (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -317,7 +322,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} else {
ppc_load (code, ppc_r0, ins->inst_offset);
ppc_stptr_indexed (code, ins->sreg1, ins->inst_destbasereg, ppc_r0);
@@ -3725,7 +3725,7 @@ mono_arch_output_basic_block (MonoCompil
@@ -3724,7 +3724,7 @@ mono_arch_output_basic_block (MonoCompil
*/
g_assert (!cfg->method->save_lmf);
/*
@ -326,7 +331,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
* we're leaving the method.
*/
if (1 || cfg->flags & MONO_CFG_HAS_CALLS) {
@@ -3733,26 +3733,26 @@ mono_arch_output_basic_block (MonoCompil
@@ -3732,26 +3732,26 @@ mono_arch_output_basic_block (MonoCompil
if (ppc_is_imm16 (ret_offset)) {
ppc_ldptr (code, ppc_r0, ret_offset, cfg->frame_reg);
} else {
@ -359,7 +364,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
}
} else {
@@ -3761,27 +3761,27 @@ mono_arch_output_basic_block (MonoCompil
@@ -3760,27 +3760,27 @@ mono_arch_output_basic_block (MonoCompil
/* Copy arguments on the stack to our argument area */
if (call->stack_usage) {
@ -395,7 +400,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
#else
ppc_ldptr_indexed (code, ppc_r0, ppc_r30, ppc_r0);
#endif
@@ -3853,7 +3853,7 @@ mono_arch_output_basic_block (MonoCompil
@@ -3852,7 +3852,7 @@ mono_arch_output_basic_block (MonoCompil
case OP_VCALL2_MEMBASE:
case OP_VOIDCALL_MEMBASE:
case OP_CALL_MEMBASE:
@ -404,7 +409,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
/* The trampolines clobber this */
ppc_mr (code, ppc_r29, ins->sreg1);
ppc_ldptr (code, ppc_r0, ins->inst_offset, ppc_r29);
@@ -3871,9 +3871,9 @@ mono_arch_output_basic_block (MonoCompil
@@ -3870,9 +3870,9 @@ mono_arch_output_basic_block (MonoCompil
int alloca_waste = PPC_STACK_PARAM_OFFSET + cfg->param_area + 31;
int area_offset = alloca_waste;
area_offset &= ~31;
@ -416,7 +421,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
/* use ctr to store the number of words to 0 if needed */
if (ins->flags & MONO_INST_INIT) {
/* we zero 4 bytes at a time:
@@ -3886,8 +3886,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3885,8 +3885,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_mtctr (code, ppc_r0);
}
ppc_ldptr (code, ppc_r0, 0, ppc_sp);
@ -427,7 +432,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
/* FIXME: make this loop work in 8 byte
increments on PPC64 */
@@ -3897,9 +3897,9 @@ mono_arch_output_basic_block (MonoCompil
@@ -3896,9 +3896,9 @@ mono_arch_output_basic_block (MonoCompil
* run at least once
*/
ppc_addi (code, ins->dreg, ppc_sp, (area_offset - 8));
@ -439,7 +444,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
zero_loop_jump = code;
ppc_bc (code, PPC_BR_DEC_CTR_NONZERO, 0, 0);
ppc_patch (zero_loop_jump, zero_loop_start);
@@ -3943,8 +3943,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3942,8 +3942,8 @@ mono_arch_output_basic_block (MonoCompil
if (ppc_is_imm16 (spvar->inst_offset)) {
ppc_stptr (code, ppc_r0, spvar->inst_offset, spvar->inst_basereg);
} else {
@ -450,7 +455,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
break;
}
@@ -3957,8 +3957,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -3956,8 +3956,8 @@ mono_arch_output_basic_block (MonoCompil
if (ppc_is_imm16 (spvar->inst_offset)) {
ppc_ldptr (code, ppc_r0, spvar->inst_offset, spvar->inst_basereg);
} else {
@ -461,7 +466,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
ppc_mtlr (code, ppc_r0);
ppc_blr (code);
@@ -4064,11 +4064,11 @@ mono_arch_output_basic_block (MonoCompil
@@ -4063,11 +4063,11 @@ mono_arch_output_basic_block (MonoCompil
/* FIXME: Optimize this */
ppc_bl (code, 1);
@ -475,7 +480,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
break;
case OP_R4CONST:
g_assert_not_reached ();
@@ -4078,8 +4078,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -4077,8 +4077,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_stfd (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -486,7 +491,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} else {
ppc_load (code, ppc_r0, ins->inst_offset);
ppc_stfdx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0);
@@ -4091,8 +4091,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -4090,8 +4090,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_lfd (code, ins->dreg, ins->inst_offset, ins->inst_basereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -497,7 +502,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} else {
ppc_load (code, ppc_r0, ins->inst_offset);
ppc_lfdx (code, ins->dreg, ins->inst_destbasereg, ppc_r0);
@@ -4105,8 +4105,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -4104,8 +4104,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_stfs (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -508,7 +513,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
} else {
ppc_load (code, ppc_r0, ins->inst_offset);
ppc_stfsx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0);
@@ -4118,8 +4118,8 @@ mono_arch_output_basic_block (MonoCompil
@@ -4117,8 +4117,8 @@ mono_arch_output_basic_block (MonoCompil
ppc_lfs (code, ins->dreg, ins->inst_offset, ins->inst_basereg);
} else {
if (ppc_is_imm32 (ins->inst_offset)) {
@ -924,7 +929,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
}
@@ -5630,15 +5630,15 @@ mono_arch_build_imt_thunk (MonoVTable *v
@@ -5618,15 +5618,15 @@ mono_arch_build_imt_thunk (MonoVTable *v
start = code;
/*
@ -944,7 +949,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
for (i = 0; i < count; ++i) {
MonoIMTCheckItem *item = imt_entries [i];
@@ -5654,8 +5654,8 @@ mono_arch_build_imt_thunk (MonoVTable *v
@@ -5642,8 +5642,8 @@ mono_arch_build_imt_thunk (MonoVTable *v
if (item->has_target_code) {
ppc_load_ptr (code, ppc_r0, item->value.target_code);
} else {
@ -955,7 +960,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
}
ppc_mtctr (code, ppc_r0);
ppc_bcctr (code, PPC_BR_ALWAYS, 0);
@@ -5687,8 +5687,8 @@ mono_arch_build_imt_thunk (MonoVTable *v
@@ -5675,8 +5675,8 @@ mono_arch_build_imt_thunk (MonoVTable *v
item->jmp_code = code;
ppc_bc (code, PPC_BR_FALSE, PPC_BR_EQ, 0);
#endif
@ -966,7 +971,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
ppc_mtctr (code, ppc_r0);
ppc_bcctr (code, PPC_BR_ALWAYS, 0);
#if ENABLE_WRONG_METHOD_CHECK
@@ -5827,17 +5827,17 @@ mono_arch_emit_load_got_addr (guint8 *st
@@ -5802,17 +5802,17 @@ mono_arch_emit_load_got_addr (guint8 *st
* Emit code to load the contents of the GOT slot identified by TRAMP_TYPE and
* TARGET from the mscorlib GOT in full-aot code.
* On PPC, the GOT address is assumed to be in r30, and the result is placed into
@ -987,7 +992,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
return code;
}
@@ -5860,8 +5860,8 @@ mono_arch_set_breakpoint (MonoJitInfo *j
@@ -5835,8 +5835,8 @@ mono_arch_set_breakpoint (MonoJitInfo *j
guint8 *code = ip;
guint8 *orig_code = code;
@ -998,9 +1003,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
g_assert (code - orig_code == BREAKPOINT_SIZE);
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h
--- mono-3.2.3.orig/mono/mini/mini-ppc.h 2014-01-04 04:16:29.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-ppc.h 2014-01-04 19:04:36.000000000 +0000
Index: mono-3.4.0/mono/mini/mini-ppc.h
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.h
+++ mono-3.4.0/mono/mini/mini-ppc.h
@@ -105,7 +105,7 @@ typedef struct MonoCompileArch {
#define MONO_ARCH_GC_MAPS_SUPPORTED 1
@ -1022,10 +1028,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
#define MONO_ARCH_RGCTX_REG MONO_ARCH_IMT_REG
#define MONO_ARCH_NO_IOV_CHECK 1
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-ppc.c mono-3.2.3/mono/mini/tramp-ppc.c
--- mono-3.2.3.orig/mono/mini/tramp-ppc.c 2013-09-13 22:22:19.000000000 +0000
+++ mono-3.2.3/mono/mini/tramp-ppc.c 2014-01-04 19:16:53.000000000 +0000
@@ -303,10 +303,10 @@ mono_arch_create_generic_trampoline (Mon
Index: mono-3.4.0/mono/mini/tramp-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/tramp-ppc.c
+++ mono-3.4.0/mono/mini/tramp-ppc.c
@@ -300,10 +300,10 @@ mono_arch_create_generic_trampoline (Mon
if (aot) {
code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_get_lmf_addr");
#ifdef PPC_USES_FUNCTION_DESCRIPTOR
@ -1039,7 +1046,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-
ppc_blrl (code);
} else {
ppc_load_func (code, ppc_r0, mono_get_lmf_addr);
@@ -314,33 +314,33 @@ mono_arch_create_generic_trampoline (Mon
@@ -311,33 +311,33 @@ mono_arch_create_generic_trampoline (Mon
ppc_blrl (code);
}
/* we build the MonoLMF structure on the stack - see mini-ppc.h
@ -1083,7 +1090,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-
/*
* Now we're ready to call trampoline (mgreg_t *regs, guint8 *code, gpointer value, guint8 *tramp)
@@ -364,10 +364,10 @@ mono_arch_create_generic_trampoline (Mon
@@ -361,10 +361,10 @@ mono_arch_create_generic_trampoline (Mon
if (aot) {
code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, g_strdup_printf ("trampoline_func_%d", tramp_type));
#ifdef PPC_USES_FUNCTION_DESCRIPTOR
@ -1097,7 +1104,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-
ppc_blrl (code);
} else {
tramp_handler = mono_get_trampoline_func (tramp_type);
@@ -392,20 +392,20 @@ mono_arch_create_generic_trampoline (Mon
@@ -389,20 +389,20 @@ mono_arch_create_generic_trampoline (Mon
* Now we restore the MonoLMF (see emit_epilogue in mini-ppc.c)
* and the rest of the registers, so the method called will see
* the same state as before we executed.
@ -1124,7 +1131,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-
/* restore the volatile registers, we skip r1, of course */
offset = STACK - sizeof (MonoLMF) - (14 * sizeof (double));
@@ -427,8 +427,8 @@ mono_arch_create_generic_trampoline (Mon
@@ -424,8 +424,8 @@ mono_arch_create_generic_trampoline (Mon
*/
/* Restore stack pointer and LR and jump to the code */
ppc_ldr (code, ppc_r1, 0, ppc_r1);
@ -1135,7 +1142,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-
if (MONO_TRAMPOLINE_TYPE_MUST_RETURN (tramp_type))
ppc_blr (code);
else
@@ -604,9 +604,9 @@ mono_arch_create_rgctx_lazy_fetch_trampo
@@ -596,9 +596,9 @@ mono_arch_create_rgctx_lazy_fetch_trampo
code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, g_strdup_printf ("specific_trampoline_lazy_fetch_%u", slot));
/* Branch to the trampoline */
#ifdef PPC_USES_FUNCTION_DESCRIPTOR
@ -1147,7 +1154,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-
ppc_bcctr (code, PPC_BR_ALWAYS, 0);
} else {
tramp = mono_arch_create_specific_trampoline (GUINT_TO_POINTER (slot),
@@ -666,9 +666,9 @@ mono_arch_create_generic_class_init_tram
@@ -658,9 +658,9 @@ mono_arch_create_generic_class_init_tram
code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_generic_class_init");
/* Branch to the trampoline */
#ifdef PPC_USES_FUNCTION_DESCRIPTOR

View File

@ -10,9 +10,10 @@ This adds initial support for ppc64le to the ppc64 port. That is:
It also corrects the list of registers for the precise GC, but that isn't
used in mini at all on any architecture currently.
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h mono-3.2.3/mono/arch/ppc/ppc-codegen.h
--- mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h 2013-09-13 22:21:32.000000000 +0000
+++ mono-3.2.3/mono/arch/ppc/ppc-codegen.h 2014-01-03 18:39:09.000000000 +0000
Index: mono-3.4.0/mono/arch/ppc/ppc-codegen.h
===================================================================
--- mono-3.4.0.orig/mono/arch/ppc/ppc-codegen.h
+++ mono-3.4.0/mono/arch/ppc/ppc-codegen.h
@@ -123,7 +123,7 @@ enum {
PPC_TRAP_GE_UN = 16 + PPC_TRAP_EQ
};
@ -38,9 +39,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/pp
#define ppc_load_multiple_regs(c,D,d,A) G_STMT_START { \
int __i, __o = (d); \
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/metadata/sgen-marksweep.c mono-3.2.3/mono/metadata/sgen-marksweep.c
--- mono-3.2.3.orig/mono/metadata/sgen-marksweep.c 2013-09-13 22:21:52.000000000 +0000
+++ mono-3.2.3/mono/metadata/sgen-marksweep.c 2014-01-03 19:13:37.000000000 +0000
Index: mono-3.4.0/mono/metadata/sgen-marksweep.c
===================================================================
--- mono-3.4.0.orig/mono/metadata/sgen-marksweep.c
+++ mono-3.4.0/mono/metadata/sgen-marksweep.c
@@ -45,8 +45,10 @@
#define SGEN_HAVE_CONCURRENT_MARK
#endif
@ -54,9 +56,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/metadata/sg
#define MAJOR_SECTION_SIZE MS_BLOCK_SIZE
#define CARDS_PER_BLOCK (MS_BLOCK_SIZE / CARD_SIZE_IN_BYTES)
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-gc.c mono-3.2.3/mono/mini/mini-gc.c
--- mono-3.2.3.orig/mono/mini/mini-gc.c 2013-12-22 03:29:45.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-gc.c 2014-01-03 18:44:54.000000000 +0000
Index: mono-3.4.0/mono/mini/mini-gc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-gc.c
+++ mono-3.4.0/mono/mini/mini-gc.c
@@ -439,7 +439,12 @@ static int callee_saved_regs [] = { ARMR
#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 };
@ -71,10 +74,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-g
#endif
static guint32
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c
--- mono-3.2.3.orig/mono/mini/mini-ppc.c 2013-09-13 22:22:23.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-ppc.c 2014-01-03 18:54:20.000000000 +0000
@@ -2812,14 +2812,14 @@ handle_thunk (int absolute, guchar *code
Index: mono-3.4.0/mono/mini/mini-ppc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.c
+++ mono-3.4.0/mono/mini/mini-ppc.c
@@ -2811,14 +2811,14 @@ handle_thunk (int absolute, guchar *code
static void
patch_ins (guint8 *code, guint32 ins)
{
@ -91,7 +95,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
guint32 prim = ins >> 26;
guint32 ovf;
@@ -2902,7 +2902,13 @@ ppc_patch_full (guchar *code, const guch
@@ -2901,7 +2901,13 @@ ppc_patch_full (guchar *code, const guch
else
code -= 24;
} else {
@ -106,7 +110,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
branch_ins = seq + 8;
else
branch_ins = seq + 6;
@@ -2926,8 +2932,12 @@ ppc_patch_full (guchar *code, const guch
@@ -2925,8 +2931,12 @@ ppc_patch_full (guchar *code, const guch
}
/* FIXME: make this thread safe */
@ -119,7 +123,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
mono_arch_flush_icache ((guint8*)seq, 28);
#else
guint32 *seq;
@@ -4482,6 +4492,16 @@ mono_arch_register_lowlevel_calls (void)
@@ -4481,6 +4491,16 @@ mono_arch_register_lowlevel_calls (void)
}
#ifdef __mono_ppc64__
@ -136,7 +140,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
#define patch_load_sequence(ip,val) do {\
guint16 *__load = (guint16*)(ip); \
g_assert (sizeof (val) == sizeof (gsize)); \
@@ -4491,6 +4511,9 @@ mono_arch_register_lowlevel_calls (void)
@@ -4490,6 +4510,9 @@ mono_arch_register_lowlevel_calls (void)
__load [9] = ((guint64)(gsize)(val)) & 0xffff; \
} while (0)
#else
@ -146,9 +150,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
#define patch_load_sequence(ip,val) do {\
guint16 *__lis_ori = (guint16*)(ip); \
__lis_ori [1] = (((gulong)(val)) >> 16) & 0xffff; \
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h
--- mono-3.2.3.orig/mono/mini/mini-ppc.h 2013-12-22 03:29:45.000000000 +0000
+++ mono-3.2.3/mono/mini/mini-ppc.h 2014-01-03 18:17:41.000000000 +0000
Index: mono-3.4.0/mono/mini/mini-ppc.h
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.h
+++ mono-3.4.0/mono/mini/mini-ppc.h
@@ -69,7 +69,13 @@ typedef struct MonoCompileArch {
#define MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS
#define MONO_ARCH_NO_EMULATE_LONG_MUL_OPTS
@ -163,10 +168,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p
#ifndef __mono_ilp32__
#define MONO_ARCH_HAVE_TLS_GET 1
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini.c mono-3.2.3/mono/mini/mini.c
--- mono-3.2.3.orig/mono/mini/mini.c 2013-12-22 03:29:45.000000000 +0000
+++ mono-3.2.3/mono/mini/mini.c 2014-01-03 19:06:17.000000000 +0000
@@ -6752,10 +6752,9 @@ mini_get_debug_options (void)
Index: mono-3.4.0/mono/mini/mini.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini.c
+++ mono-3.4.0/mono/mini/mini.c
@@ -7004,10 +7004,9 @@ mini_get_debug_options (void)
static gpointer
mini_create_ftnptr (MonoDomain *domain, gpointer addr)
{
@ -178,7 +184,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini.c
gpointer* desc = NULL;
if ((desc = g_hash_table_lookup (domain->ftnptrs_hash, addr)))
@@ -6782,7 +6781,7 @@ mini_create_ftnptr (MonoDomain *domain,
@@ -7033,7 +7032,7 @@ mini_create_ftnptr (MonoDomain *domain,
static gpointer
mini_get_addr_from_ftnptr (gpointer descr)
{
@ -187,9 +193,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini.c
return *(gpointer*)descr;
#else
return descr;
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/lock-free-alloc.c mono-3.2.3/mono/utils/lock-free-alloc.c
--- mono-3.2.3.orig/mono/utils/lock-free-alloc.c 2013-09-13 22:21:38.000000000 +0000
+++ mono-3.2.3/mono/utils/lock-free-alloc.c 2014-01-03 19:11:56.000000000 +0000
Index: mono-3.4.0/mono/utils/lock-free-alloc.c
===================================================================
--- mono-3.4.0.orig/mono/utils/lock-free-alloc.c
+++ mono-3.4.0/mono/utils/lock-free-alloc.c
@@ -123,7 +123,9 @@ struct _MonoLockFreeAllocDescriptor {
#define NUM_DESC_BATCH 64
@ -201,9 +208,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/lock-
#define SB_HEADER_SIZE 16
#define SB_USABLE_SIZE (SB_SIZE - SB_HEADER_SIZE)
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/mono-mmap.c mono-3.2.3/mono/utils/mono-mmap.c
--- mono-3.2.3.orig/mono/utils/mono-mmap.c 2013-09-13 22:21:38.000000000 +0000
+++ mono-3.2.3/mono/utils/mono-mmap.c 2014-01-03 17:57:28.000000000 +0000
Index: mono-3.4.0/mono/utils/mono-mmap.c
===================================================================
--- mono-3.4.0.orig/mono/utils/mono-mmap.c
+++ mono-3.4.0/mono/utils/mono-mmap.c
@@ -332,6 +332,11 @@ mono_valloc (void *addr, size_t length,
int
mono_vfree (void *addr, size_t length)
@ -216,9 +224,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/mono-
return munmap (addr, length);
}
diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/strtod.c mono-3.2.3/mono/utils/strtod.c
--- mono-3.2.3.orig/mono/utils/strtod.c 2013-09-13 22:21:37.000000000 +0000
+++ mono-3.2.3/mono/utils/strtod.c 2014-01-03 18:26:43.000000000 +0000
Index: mono-3.4.0/mono/utils/strtod.c
===================================================================
--- mono-3.4.0.orig/mono/utils/strtod.c
+++ mono-3.4.0/mono/utils/strtod.c
@@ -173,6 +173,12 @@
* #define NO_ERRNO if strtod should not assign errno = ERANGE when
* the result overflows to +-Infinity or underflows to 0.

View File

@ -1,17 +1,17 @@
Index: mono-3.0.3/data/mono-nunit.pc.in
Index: mono-3.4.0/data/mono-nunit.pc.in
===================================================================
--- mono-3.0.3.orig/data/mono-nunit.pc.in
+++ mono-3.0.3/data/mono-nunit.pc.in
--- mono-3.4.0.orig/data/mono-nunit.pc.in
+++ mono-3.4.0/data/mono-nunit.pc.in
@@ -6,4 +6,4 @@ libdir=${exec_prefix}/lib
Name: Mono NUnit
Description: Mono's version of NUnit
Version: @VERSION@
-Libs: -r:${libdir}/mono/2.0/nunit.core.dll -r:${libdir}/mono/2.0/nunit.core.interfaces.dll -r:${libdir}/mono/2.0/nunit.core.extensions.dll -r:${libdir}/mono/2.0/nunit.framework.dll -r:${libdir}/mono/2.0/nunit.framework.extensions.dll -r:${libdir}/mono/2.0/nunit.mocks.dll -r:${libdir}/mono/2.0/nunit.util.dll -r:${libdir}/mono/2.0/nunit-console-runner.dll
+Libs: -r:${libdir}/mono/4.0/nunit.core.dll -r:${libdir}/mono/4.0/nunit.core.interfaces.dll -r:${libdir}/mono/4.0/nunit.core.extensions.dll -r:${libdir}/mono/4.0/nunit.framework.dll -r:${libdir}/mono/4.0/nunit.framework.extensions.dll -r:${libdir}/mono/4.0/nunit.mocks.dll -r:${libdir}/mono/4.0/nunit.util.dll -r:${libdir}/mono/4.0/nunit-console-runner.dll
Index: mono-3.0.3/data/mono.web.pc.in
Index: mono-3.4.0/data/mono.web.pc.in
===================================================================
--- mono-3.0.3.orig/data/mono.web.pc.in
+++ mono-3.0.3/data/mono.web.pc.in
--- mono-3.4.0.orig/data/mono.web.pc.in
+++ mono-3.4.0/data/mono.web.pc.in
@@ -1,4 +1,4 @@
Name: Mono.Web
Description: Mono ASP.NET extension classes

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Thu May 29 05:49:24 UTC 2014 - sshaw@decriptor.com
- Refresh patches
- Update to 3.4.0
* Revamped HttpWebRequest/ServicePoint stack
- Should properly reuse connections.
- Uses the specified idle times
- NTLM support has been improved.
- SSL/TLS operations on via async APIs are now
implemented using async patterns internally
to greatly alleviate Thread Pool abuse.
* Network stack
- Now allows developers to control which cipher
suites to use with TLS/SSL.
* ARM
- Emit shorter floating point operations when possible
- Hard float support: Mono now should work on Linux
distributions which uses a hard float (armhf) ABI,
like the Raspberry PI.
Notes: Homogeneous floating point aggregates are not
yet supported on armhf.
* Documentation
- Updated documentation stubs to the 4.5 .NET API.
* mono-api-html
- Now supports regular expressions when specifying
members to ignore (e.g. mono-api-html -i 'INSCopying$')
-------------------------------------------------------------------
Mon Mar 10 17:20:57 CET 2014 - ro@suse.de

View File

@ -21,7 +21,7 @@
%define sgen yes
Name: mono-core
Version: 3.2.8
Version: 3.4.0
Release: 0
Summary: Cross-platform, Open Source, .NET development framework
License: LGPL-2.1 and MIT and MS-PL

View File

@ -1,8 +1,8 @@
Index: mono-3.0.2/mono/mini/mini.c
================================================================================
--- mono-3.2.8/mono/mini/mini-gc.c
+++ mono-3.2.8/mono/mini/mini-gc.c
@@ -438,6 +438,8 @@
Index: mono-3.4.0/mono/mini/mini-gc.c
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-gc.c
+++ mono-3.4.0/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 };
@ -11,9 +11,11 @@ Index: mono-3.0.2/mono/mini/mini.c
#endif
static guint32
--- mono-3.2.8/mono/mini/mini-ppc.h
+++ mono-3.2.8/mono/mini/mini-ppc.h
@@ -96,6 +96,7 @@
Index: mono-3.4.0/mono/mini/mini-ppc.h
===================================================================
--- mono-3.4.0.orig/mono/mini/mini-ppc.h
+++ mono-3.4.0/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