[Mono-devel-list] tramp-s390 changes
Neale.Ferguson at SoftwareAG-USA.com
Neale.Ferguson at SoftwareAG-USA.com
Mon Dec 6 18:47:23 EST 2004
I followed the changes made by Zoltan in:
tramp-x86.c (mono_arch_create_jit_trampoline): Remove code which is
now in the xp code.
Now, synchronized.exe fails:
Unhandled Exception: System.Threading.SynchronizationLockException: Not
locked
in (unmanaged) (wrapper managed-to-native)
System.Threading.Monitor:Monitor_exit (object)
in <0x00000050> (wrapper managed-to-native)
System.Threading.Monitor:Monitor_exit (object)
in <0x0000006e> System.Threading.Monitor:Exit (object)
in <0x0000001c> Test:test ()
in <0x000000a6> Test:Main (string[])
I've backed out that change and it's working again. Are there any
implications keeping the code as it was?
--- tramp-s390.c 2004-12-06 18:38:35.131265460 -0500
+++ tramp-s390.c 2004-12-02 17:09:07.000000000 -0500
@@ -549,16 +549,10 @@
{
guint8 *code, *buf;
static guint8 *vc = NULL;
gint32 displace;
- if (method->info)
- return (method->info);
-
- if (method->iflags & METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED)
- return (mono_arch_create_jit_trampoline
(mono_marshal_get_synchronized_wrapper (method)));
-
vc = create_trampoline_code (MONO_TRAMPOLINE_GENERIC);
/* This is the method-specific part of the trampoline. Its
purpose is
to provide the generic part with the MonoMethod *method pointer.
We'll
use r13 to keep that value, for instance. However, the generic
part of
@@ -577,13 +571,10 @@
mono_arch_flush_icache (code, buf - code);
/* Sanity check */
g_assert ((buf - code) <= METHOD_TRAMPOLINE_SIZE);
- method->info = code;
- mono_jit_stats.method_trampolines++;
-
return code;
}
Neale
More information about the Mono-devel-list
mailing list