2010-04-24 Mark Probst <mark.probst@gmail.com>
[mono.git] / mono / mini / ChangeLog
index f15d2766719ae83251c72edf337762e4ddc51537..2d614f908e7483b641b5a10c0221f6575c36a1d1 100755 (executable)
@@ -1,3 +1,381 @@
+2010-04-24  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c, driver.c: Initialize mono_use_llvm in mono_main(), not
+       in the initializer, because it's non-constant.
+
+2010-04-23  Miguel de Icaza  <miguel@novell.com>
+
+       * mini.c: Use MONO_USE_LLVM as an environment flag to turn the use
+       of LLVM on by default.   Used for buildbots and other setups.
+
+2010-04-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c: Set mono_use_llvm to FALSE even if mono is compiled with LLVM.
+
+2010-04-23  Kornel Pal  <kornelpal@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir): Enable inlining of pointer-sized unmanaged
+       initonly static fields when using moving GC.
+
+       Contributed under MIT/X11 license.
+
+2010-04-23  Geoff Norton  <gnorton@novell.com>
+
+       * mini-amd64.h: Darwin x86_64 support.
+
+2010-04-20  Jonathan Pryor  <jpryor@novell.com>
+
+       * exceptions-arm.c: Remove platform checks in favor of configure checks.
+
+2010-04-19  Jonathan Pryor  <jpryor@novell.com>
+
+       * exceptions-arm.c: Add Android support for sigcontext structure.
+
+2010-04-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_jit_compile_method_inner): Implement the check for native func
+       wrappers correctly now that their wrapper info is NULL.
+
+2010-04-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_jit_compile_method_inner): Avoid calling
+       mono_marshal_method_from_wrapper () for native func wrappers. Fixes #597189.
+
+2010-04-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * genmdesc.c (inst_name): Define this as a copy of mono_inst_name in helpers.c,
+       so the latter can be #ifndef DISABLE_JIT-ed.
+
+       * helpers.c: Comment out the opstr array if DISABLE_JIT is set.
+
+2010-04-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c driver.c: Disable a few more things when DISABLE_JIT is set.
+
+2010-04-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c (emit_entry_bb): Fix support for simd arguments passed on the
+       stack.
+
+2010-04-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (type_commands): Call mono_class_setup_methods () before
+       calling mono_class_num_methods (). Fixes #592244.
+
+2010-04-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.c (mono_arch_get_llvm_call_info): Handle empty structures correctly.
+
+       * mini-llvm.c: Disable LLVM for calls with non-default calling conventions.
+
+2010-04-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (handle_box_inst): Merge into handle_box, simplify the merged
+       version.
+       * (handle_alloc): Ditto.
+       (mono_method_to_ir): Remove the constrained call restriction added by a previous
+       change, its not needed anymore.
+
+2010-04-12 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-posix.c (sigusr1_signal_handler): Fix build on
+       non x86/amd64 systems.
+
+2010-04-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir): Disable generic sharing for constrained
+       calls where the constrained class needs a context. Fixes #595863.
+
+       * iltests.il.in: Add a test.
+
+2010-04-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mini_method_compile): Disable llvm+methods with clauses again, llvm
+       2.6/SVN seems to have broken support for them.
+
+2010-04-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c: Fix support for LLVM 2.6.
+
+2010-04-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (thread_commands): Add a GET_ID command to get the
+       MonoInternalThread belonging to the thread.
+
+Fri Apr 9 15:28:01 CEST 2010 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c, optflags-def.h, ir-emit.h: introduce an unsupported
+       unsafe optimization that will remove bound checks.
+
+2010-04-08  Kornel Pal  <kornelpal@gmail.com>
+
+       * method-to-ir.c (mini_emit_inst_for_method): Fix a typo that caused
+       CompareExchange not to be inlined for I8.
+
+       Contributed under MIT/X11 license.
+
+2010-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * array.cs: Add tests for cast between primitive array types.
+
+2010-04-07 Andreia Gaita  <avidigal@novell.com>
+
+       * Makefile.am: create a convenience library for moon to link with
+
+2010-04-07 Paolo Molaro <lupus@ximian.com>
+
+       * method-to-ir.c: optimize array accesses from generic interfaces.
+
+2010-04-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c: Update after the memset/memcpy intrinsics changes in LLVM SVN.
+
+2010-04-05 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * method-to-ir.c (mono_method_to_ir): Handle call to virtual final methods
+       of marshalbyref classes.
+
+       Fixes #515884.
+
+2010-04-05 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * aot-compiler.c (emit_exception_debug_info): Encode try holes
+       information.
+
+       * aot-runtime.c (decode_exception_debug_info): Decode try holes
+       information.
+
+       * mini.h: Increase AOT version.
+
+2010-04-04  Andreas Faerber  <andreas.faerber@web.de>
+
+       * mini-x86.h: Only enable soft debugger when using sigaction or on
+       Windows. Fixes build on Haiku (lacks siginfo_t).
+
+       Code is contributed under MIT/X11 license.
+
+2010-04-02  Andreas Faerber  <andreas.faerber@web.de>
+
+       * mini.h, mini-x86.h: Suppress sigaction for Haiku, add support for
+       BeOS-style signal handlers.
+
+       Code is contributed under MIT/X11 license.
+       
+2010-04-02  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-posix.c (sigusr1_signal_handler): Fix openbsd support.
+
+2010-04-01 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-exceptions.c: Fix win32 build.
+
+2010-04-01  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c, driver.c: Call mono_gc_base_init() before
+       mono_debug_init().
+
+2010-04-01  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * method-to-ir.c (ensure_method_is_allowed_to_[access_field|
+       call_method]): Delegate the actual work in security-core-clr.c
+       to ease code sharing.
+
+2010-04-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * decompose.c (mono_decompose_opcode): Set the cfg exception if the unsupported
+       float conv.ovf.un opcodes are encountered, instead of asserting later.
+       Fixes #566296.
+
+2010-04-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * decompose.c (mono_decompose_opcode): Add OP_ICONV_TO_U4_UN as a no-op.
+
+       * iltests.il.in: Add a test.
+
+2010-04-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (mono_arch_emit_call): Fail compilation if an argument is too
+       large. Fixes #567040.
+
+       * method-to-ir.c: Call CHECK_CFG_EXCEPTION after emitting a call.
+
+2010-04-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (handle_ccastclass): Call save_cast_details (). Fixes
+       #592711.
+
+2010-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
+
+       * mini-trampolines.c: Surround mono_handler_block_guard_trampoline and
+       mono_create_handler_block_trampoline with the proper #ifdef so that it
+       compiles on amd64.
+
+2010-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-exceptions.c: Introduce mono_walk_stack_full, which
+       allows to select if it's new or old context that is passed to 
+       the callback.
+
+       * mini-exceptions.c (mono_handle_exception_internal): Handle the
+       case when executing a guarded handler from the EH machinery.
+
+       * mini-exceptions.c (mono_install_handler_block_guard): New function
+       responsible for checking for handler blocks, installing the guard and
+       clearing abort state.
+
+       * mini-posix.c (sigusr1_signal_handler): Call mono_install_handler_block_guard
+       to check for handler blocks and skip interruption logic if one was found.
+
+       * mini-trampolines.c (mono_handler_block_guard_trampoline): Function called
+       by the handler block guard trampoline. Resumes interruption by raising the
+       pending ThreadAbortException.
+
+       * mini.c (create_jit_info): Calculate the end address of a finally block.
+
+       * mini-x86.c (mono_arch_install_handler_block_guard): Patch the return address
+       of a finally block to a specified address and return the old one.
+
+       * tramp-x86.c (mono_arch_create_handler_block_trampoline): The handler block
+       trampoline patches the original return address and calls the trampoline function.
+
+2010-03-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-trampolines.c (mono_aot_trampoline): Remove some dead code.
+
+       * aot-runtime.c (mono_aot_patch_plt_entry): New helper function, which only
+       does the patching if the callee is in the same domain.
+
+       * aot-runtime.c mini-trampolines.c: Call mono_aot_patch_plt_entry instead
+       of mono_arch_patch_plt_entry ().
+
+2010-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c (create_jit_info): Fix try block hole length encoding.
+
+2010-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c (create_jit_info): Emit saner debug spew. Now it doesn't
+       duplicate information and print offsets instead of absolute addresses.
+
+2010-03-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (jit_end): Send type loads for types loaded before the VMStart
+       event is sent. Fixes #591733.
+
+2010-03-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-posix.c (SIG_HANDLER_SIGNATURE): Handle the case when ctx is NULL on
+       OpenBSD.
+
+2010-03-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (mono_debugger_agent_init): Set the GC type of the
+       thread_to_tls hash table.
+
+       * image-writer.c (bin_writer_emit_writeout): Fix the size of the got.plt
+       section. Fixes #591000.
+
+2010-03-26  Andreas Faerber  <andreas.faerber@web.de>
+
+       * Makefile.am (version.h): Check for pure .git directory only,
+       fixes SVN revision when using git without git-svn.
+
+       Contributed under MIT/X11 license.
+
+2010-03-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c: Apply some openbsd changes from openbsd ports.
+
+2010-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Test for vector x scalar binary operators.
+
+2010-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * simd-intrincs.c (simd_intrinsic_emit_binary): Support binary
+       intrinsics with expanded scalar arguments.
+
+2010-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-exceptions.c (get_exception_catch_class): Non catch clauses
+       don't have an exception class, so don't decode it. This would crash
+       with filter clauses.
+
+2010-03-24  U-anarquia\miguel  <miguel@anarquia>
+
+       Make sure that trunk builds with DISABLE_JIT, an update to the
+       PlayStation 3 port.
+       
+       * mini.c (mini_get_shared_method): this code seems to be necessary
+       regardless of whether DISABLE_JIT has been defined.
+
+       (mono_jit_compile_method_inner): it seems that this method is
+       required even in full AOT mode, so ifdef out only the pieces that
+       try to genrate code (the body of code that applies patches to the
+       code).  
+
+       (mini_method_compile): do not compile when using DISABLE_JIT.
+
+       * mini-ppc.c (mono_arch_get_allocatable_int_vars)
+       (mono_arch_output_basic_block, mono-arch_emit_exceptions): Do not
+       compile when DISABLE_JIT is set.
+
+2010-03-24  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c (mono_create_tls_get): Only create a TLS operation if the
+       arch really supports it.
+
+2010-03-24  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-x86.c, mini-x86.h, mini.c: CEE_MONO_TLS support for Darwin/x86.
+
+2010-03-23  Neale Ferguson <neale@sinenomine.net>
+
+       * exceptions-s390x.c: Add support for
+       mono_arch_get_throw_corlib_exception and fix throw by name.
+
+       * mini-s390x.c: Add IMT support; Fix stack parameter passing
+       logic (especially for varargs); Correct localloc sizing; Add
+       mono_arch_get_this_arg_from_call and
+       mono_arch_get_this_arg_from_call.
+
+       * mini-s390x.h: Add support for facility list extraction;
+       Correct/update MONO_ARCH_xxx settings.
+
+       * mini-s390.c: Minor corrections to instruction output for
+       varargs. No IMT implementation - I think it's time to deprecate
+       s390 and just leave s390x.
+
+       * tramp-s390x.c: Correct creation of trampoline instruction
+
+
+       * cpu-s390x.md: Update some instruction lengths
+
+2010-03-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-generic-sharing.c (fill_in_rgctx_template_slot): Remove an assert which
+       can be hit with partial sharing.
+
+       * mini-generic-sharing.c (get_shared_class): Handle partially shared methods
+       in non-shared classes correctly.
+       (generic_inst_is_sharable): Allow all primitive types in partial sharing.
+       Turn on partial sharing.
+
+2010-03-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.h: Put back MONO_ARCH_NOMAP32BIT for OpenBSD which was removed
+       by mistake.
+
+2010-03-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir): Handle the failure of
+       mono_method_signature ().
+
+       * mini-trampolines.c (mono_delegate_trampoline): Ditto.
+
+       * mini.c (mini_method_compile): Get the signature of cfg->method early with
+       error checking, so later calls do not need error checking.
+
 2010-03-22  Zoltan Varga  <vargaz@gmail.com>
 
        * exceptions-amd64.c: Add support for OpenBSD which has no UCONTEXT_GREGS.