2005-04-09 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / mini / ChangeLog
index 08f5450a5159c468f78c753bc6e8391cbf203b40..6fcc50e8861ec58ce657b7e8e136e3d0a9cbb9d9 100644 (file)
@@ -1,3 +1,336 @@
+2005-04-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (print_method_from_ip): Fix debugging support.
+
+2005-2-1  Massimiliano Mantione  <massi@ximian.com>
+
+       * ssapre.c: Fix a subtle bug about availability, and limit SSAPRE
+       so that expressions that don't give much gain are not reduced.
+       * ssapre.h: Likewise.
+
+2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions-x86.c (mono_arch_find_jit_info): Remove last SC_EBP reference.
+
+       * mini-x86.c (mono_emit_stack_alloc): Fix localloc under windows.
+
+       * mini-x86.h exceptions-x86.c: Hopefully fix compilation on *BSD.
+
+2005-04-01  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-sparc.c mini-sparc.h: Add asserts when running with sigaltstack.
+
+       * exceptions-x86.c (mono_arch_monoctx_to_sigctx): Fix cygwin build.
+
+2005-03-31  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c: If sigaltstack support is enabled, perform win32 style
+       stack touching.
+
+       * mini.h (mono_arch_sigctx_to_monoctx): New arch-specific function.
+
+       * mini.h (mono_arch_monoctx_to_sigctx): New arch-specific function.
+
+       * mini.c: sigaltstack support requires MONO_ARCH_USE_SIGACTION.
+
+       * mini-x86.h mini-x86.c exceptions-x86.c: Add support for 
+       MONO_ARCH_USE_SIGACTION. Fixes #74252.
+
+       * mini-x86.h: Enable MONO_ARCH_USE_SIGACTION on linux.
+
+       * mini-x86.c: Fix up stack overflow handling.   
+
+       * exceptions.cs: Add new regression test.
+
+2005-03-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c (mono_arch_emit_prolog): Adjust stack after calls to
+       mono_jit_thread_attach.
+
+       * mini.c (mono_method_to_ir): Verify called method is not abstract.
+
+2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_method_to_ir): Applied Ben's patch from bug #61441 to
+       avoid calling constructors using callvirt.
+
+       * inssel.brg: Fix #74073.
+
+2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * aot.c, mini.h: Added mono-compiler.h header to allow/ease 
+       compilation with non-GCC compilers.
+       * mini-exceptions.c, mini-x86.c|h: Patches to make compilation of mono
+       possible using VS.NET. Adapted from the work of J Lothian (for VC6).
+
+Tue Mar 29 11:43:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg, arrays.cs: fix long standing 64 bit issue in access to
+       klass->interface_offsets (will likely fix bug#74073).
+
+2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_is_int_overflow): Fix rex handling.
+
+2005-03-28  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_output_basic_block): Fix order of parameters
+       to amd64_div_reg_size ().
+       
+       * mini-amd64.c (mono_arch_emit_exceptions): Emit a near call here too.
+
+2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
+
+       * cpu-amd64.md (store_membase_reg): Fix length of storer8 opcodes.
+
+2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * driver.c: Turn off automatic command line globbing under windows. Fixes #73763.
+
+2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_method_to_ir): Remove debugging stuff left in by mistake.
+       
+       * mini.c (mono_precompile_assembly): Load and precompile referenced
+       assemblies as well. Fixes #74015.
+
+2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
+
+       * cpu-amd64.md (sin): Fix up maximum lengths of some opcodes.
+
+2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * declsec.c: Skip linkdemand checks for intra-corlib calls. This skips
+       a lot of checks and (anyway) permissions cannot work until corlib is 
+       loaded.
+
+Wed Mar 23 14:29:49 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.c: fixed ABI issue on sysv/ppc.
+
+Tue Mar 22 19:03:17 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * tramp-ppc.c, exceptions-ppc.c: added missing icache flush
+       calls (fixes bug#72824).
+
+Tue Mar 22 16:28:48 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: fix tail recursion elimination (see test in bug#73936).
+
+2005-03-21  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_output_basic_block): Add inline versions of
+       some fp functions in sse2 mode.
+
+2005-03-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c (emit_tls_get): Move tls handling into a separate helper function.
+
+2005-03-19  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.h mini.c: Add mono_get_jit_tls_key ().
+
+       * mini-x86.c: Enable fast TLS support on windows.
+
+2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * declsec.c: Renamed aptc to allowpartiallytrustedcallers.
+       * mini.c: Check for p/invoke method when generating code. If a
+       p/invoke method, or it's class, isn't decorated with [Suppress
+       UnmanagedCodeSecurity] then generate code to call System.Security.
+       UnmanagedDemand (only if the security manager is active).
+
+2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-amd64.c (create_specific_trampoline): Revert parts of the 
+       last change as it seems to cause strange crashes.
+       
+Wed Mar 16 16:24:11 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * *.c: handle unsafe function pointers where needed.
+
+2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_jit_free_method): Remove the fixme too.
+
+2005-03-15  Miguel de Icaza  <miguel@novell.com>
+
+       * mini.c: As discussed, make the code actually free the delegate
+       thunk now, to enable the debugging of delegate problems, use
+       MONO_DEBUG=1 when running Mono. 
+
+       This takes also care of parts of the leaks as seen by Joe.
+
+2005-03-15  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_setup_jit_tls_data): Enable 
+       thread_tls_offset calculation.
+
+2005-03-14  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * declsec.c: Reworked linkdemand checks for icall. The previous code
+       was using the declaration code (untrusted) and didn't work as expected
+       with the CLR 2.0. We're now more compatible with 2.0 than 1.x for this
+       specific case.
+
+2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * iltests.il: Add new localloc test.
+
+       * mini-amd64.c: Handle large stack allocations the same way as on
+       windows if stack overflow handling is working.
+       
+       * mini-amd64.c: Allocate the signal stack using mmap.
+
+       * mini.c (sigsegv_signal_handler): Fix reading of context.
+
+       * mini-exceptions.c: Fix up stack overflow handling.
+
+       * mini-amd64.h mini-amd64.c: Fix up stack overflow handling.
+
+       * tramp-amd64.c (create_specific_trampoline): Optimize trampoline size.
+
+       * exceptions-amd64.c (mono_amd64_exceptions_init): Remove this.
+
+       * mini.h mini.c tramp-*.c: Move common trampoline code to mini.c.
+
+       * mini-x86.h mini-x86.c mini-amd64.h mini-amd64.c: Get rid of the
+       tramp_init functions as they are no longer needed.
+
+2005-03-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-amd64.c (mono_amd64_tramp_init): Fix typo.
+       
+       * tramp-amd64.c (mono_amd64_tramp_init): Init AOT trampoline as well.
+
+       * mini-amd64.h mini-amd64.c (mono_amd64_exceptions_init): Remove this.
+       
+       * mini.c mini-*.h: Remove OUT_OF_LINE_BBLOCK defines since all arches
+       support that now.
+
+       * mini-ops.h: Add OP_LMUL_IMM.
+
+       * mini.c jit-icalls.cmini-amd64.h mini-amd64.c cpu-amd64.md: Implement
+       long mul/div opcodes as intrinsic.
+
+       * mini-amd64.c (emit_call): Handle the case when the callee might be
+       an AOT method.
+
+2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_get_vcall_slot_addr): Reorder cases to be
+       extra safe.
+       
+       * mini-amd64.c (mono_arch_get_vcall_slot_addr): Fix ordering of cases.
+
+       * aot.c (mono_aot_load_method): Get rid of bogus make_writable call.
+
+2005-03-09  Ben Maurer  <bmaurer@ximian.com>
+
+       * mini.c (mono_codegen): Don't leak here, to help people running
+       monogrind.
+
+2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_output_basic_block): Fix int->float 
+       conversions in sse2 mode.
+
+       * basic-float.cs: Add regression test.
+       
+       * mini-amd64.c: Reenable sse2.
+
+2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c: Disable sse2 until some regressions are fixed.
+
+2005-03-07     Joerg Rosenkranz <joergr@voelcker.com>
+
+       * driver.c: Copyright text should include 2005.
+       
+2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * cpu-amd64.md (load_membase): Fix more max lengths.
+
+2005-03-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * cpu-amd64.md (load_membase): Fix max length.
+
+       * mini-ops.h: Add OP_F<xx>_MEMBASE opcodes.
+
+       * inssel.brg: Add MONO_EMIT_BIALU_MEMBASE macro.
+
+       * cpu-amd64.md inssel-amd64.brg mini-amd64.h mini-amd64.brg: Finish SSE2
+       support and enable it by default. Also add OP_F<xxx>_MEMBASE opcodes.
+
+       * basic-float.cs: Add rounding regression test.
+
+       * mini-amd64.c (INST_IGNORES_CFLAGS): Add more instructions.
+
+2005-03-04  Neale Ferguson <NealeFerguson@earthlink.net>
+
+       * inssel-s390.brg, mini-s390.c: Add support for passing/returning small
+        structures in registers for pinvoke wrappers.
+
+2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-exceptions.c (ves_icall_get_trace): Return wrapper info as well.
+
+2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.h mini.c mini-x86.c: Pass the domain of the native->managed
+       wrapper to mono_jit_thread_attach.
+
+       * mini.c (mini_jit_thread_attach): New jit icall.
+
+       * mini-x86.c (mono_arch_emit_prolog): Attach to the VM in 
+       native->managed wrappers.
+
+       * exceptions.cs: Add new regression test.
+
+       * mini.c (optimize_branches): Check regions in the cbranch to throw
+       block case as well. Fixes #73242.
+
+Tue Mar 1 18:35:27 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: thread safety fixes.
+
+2005-02-27  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-amd64.c (amd64_magic_trampoline): Disable the method_ptr
+       patching stuff, since delegates use jump trampolines so there is
+       no caller.
+
+       * tramp-amd64.c (create_trampoline_code): Pass NULL as 'code' in 
+       jump trampolines.
+       
+       * tramp-amd64.c: Fix build.
+
+       * mini-x86.c tramp-x86.c: Moved get_vtable_slot_addr into mini-x86.c and rename
+       it to mono_arch_.... Add get_delegate_method_ptr implementation for x86.
+
+       * mini-amd64.h mini.h mini-amd64.c tramp-amd64.c (mono_amd64_get_vcall_slot_addr):
+       Rename this to mono_arch....
+       (mono_amd64_get_delegate_method_ptr_addr): Ditto.
+
+       * mini-amd64.c (mono_amd64_get_delegate_method_ptr_addr): New helper function.
+
+       * mini-amd64.c (emit_call): If both the caller and the callee is
+       guaranteed to have 32 bit addresses, emit a normal call.
+
+       * tramp-amd64.c: Adapt to changes in mini-amd64.c.
+
+       * tramp-amd64.c (amd64_magic_trampoline): Remove patching of trampolines. 
+       * tramp-amd64.c (amd64_magic_trampoline): Add support for patching the
+       method_ptr inside delegates.
+
+2005-02-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_jit_free_method): Free the method info even if the native code is
+       invalidated. Fixes #73001.
+
+       * mini.c: Add a proper icall wrapper for mono_delegate_ctor.
+
+       * mini-x86.c: Only use stdcall for pinvokes on windows.
 
 Thu Feb 24 15:22:30 CET 2005 Paolo Molaro <lupus@ximian.com>