2009-05-12 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index 18bed311080bc63b53518eb6cfea1d719db2aecd..b120b0d3abb42a64b3569796b0d1227b72f25317 100644 (file)
@@ -1,5 +1,232 @@
+2009-05-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (mono_compile_assembly): Don't emit imt thunk if the
+       arch doesn't support it.
+
+       * mini.c (mini_init): Don't disable IMT for full aot if the
+       architecture supports it.
+
+       * mini.h (MonoAotTrampoline): New enum containing the different types
+       of 'numerous' trampolines.
+       (MONO_AOT_FILE_VERSION): Bump this.
+
+       * aot-compiler.c aot-runtime.c: Unify the handling of specific and
+       static rgctx trampolines. Add support for full-aot IMT thunks.
+
+       * mini-amd64.h: Enable IMT for full aot.
+
+       * TestDriver.cs: Add a CategoryAttribute class and an --exclude option
+       to exclude tests belonging to a category.
+
+       * generics.cs: Mark some tests with a !FULLAOT category.
+
+       * Makefile.am (fullaotcheck): Run tests with --exclude !FULLAOT. Include
+       generics tests.
+
+2009-05-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (emit_and_reloc_code): Move the implementation of
+       MONO_PATCH_INFO_GOT_OFFSET to a separate arch-specific function.
+       (emit_plt): Fix a warning.
+
+2009-05-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c aot-runtime.c: Fix the build by moving is_shared_got_patch
+       back into aot-compiler.c to a place where the other functions shared by
+       the runtime and aot compiler are.
+       
+       * aot-compiler.c aot-runtime.c: Emit the got addr using a separate symbol,
+       as done previously, instead of in MonoAotFileInfo, since pointers might have
+       alignment requirements.
+
+       * mini.h: Bump AOT file format version.
+
+2009-05-10  Miguel de Icaza  <miguel@novell.com>
+
+       * aot-runtime.c (mono_aot_is_shared_got_patch): Move this routine
+       that is used at runtime from the aot-compiler.c, this makes it
+       work on setups that remove the AOT compiler from the output
+       image. 
+
+2009-05-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-<ARCH>.h: Kill the MONO_ARCH_ENABLE_EMIT_STATE_OPT define.
+
+       * decompose.c (mono_decompose_long_opts): Move the ppc/sparc specific 
+       stuff to mono_arch_decompose_long_opts ().
+       (mono_decompose_opcode): Remove some dead code.
+
+2009-05-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * method-to-ir.c (mono_method_to_ir): Fix boostrap of non amd64 builds
+       cmethod can be null for quite a some reasons.
+
+2009-05-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * method-to-ir.c (mono_method_to_ir): Fix non amd64 builds.
+
+2009-05-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (arch_emit_got_access): Fix the aot-not-supported build.
+
+2009-05-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_emit_call_args): Add a 'tail' flag argument.
+       (mono_method_to_ir): Use MONO_ARCH_USE_OP_TAIL_CALL macro to determine
+       whenever to make tail calls using OP_TAIL_CALL. Enable support for tail
+       calls returning structures by addr on amd64.
+
+       * mini-amd64.h (MONO_ARCH_USE_OP_TAIL_CALL): New arch-specific macro.
+
+       * iltests.il.in: Restructure the tail call tests a bit.
+       
+2009-05-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (add_wrappers): Add remoting-invoke-with-check wrappers
+       for virtual methods too.
+
+2009-05-06  Raja R Harinath  <harinath@hurrynot.org>
+
+       * method-to-ir.c (mono_method_to_ir): Revert change of 2009-05-02
+       due to regression in verifying System.dll.
+
+2009-05-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * debug-mini.c (mono_debugger_method_has_breakpoint): Allow breakpoints
+       in dynamic methods.
+
+       * dwarfwriter.c (emit_class_dwarf_info): Add support for generic
+       instances.
+
+       * aot-compiler.c aot-runtime.c: Use our own hash function instead of
+       g_str_hash () which can change.
+
+       * driver.c (mini_regression): Disable optimizations not supported by
+       the cpu. Fixes #500019.
+
+       * aot-runtime.c (mono_aot_get_unwind_info): Fix the --enable-minimal=aot
+       build.
+
+2009-05-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c (mono_llvm_emit_method): Update the OP_TLS_GET implementation
+       to the latest LLVM code.
+
+2009-05-05  Zoltan Varga  <vargaz@gmail.com>
+
+       * genmdesc.pl (load_opcodes): Fix this after the TARGET_... changes.
+
+2009-05-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c (mono_llvm_emit_method): Implement TLS support on 
+       x86/amd64.
+
+       * aot-compiler.c (encode_patch_list): Simplify this considerably as we are
+       no longer saving offsets, so just save the patch types along with the other
+       info.
+       * aot-runtime.c (load_patch_info): Update after the changes to 
+       encode_patch_list ().
+       (decode_got_entry): Removed, merged into load_patch_info ().
+       (is_shared_got_patch): Removed, call the same function from
+       aot-compiler.c.
+
+       * mini.h: Bump aot file format version.
+       
+       * aot-compiler.c aot-runtime.c: Resurrect static linking support. Kill the
+       half-finished no-dlsym code.
+
+       * aot-runtime.c (load_method): Kill the old and bit-rotten use_loaded_code
+       option.
+
+       * mini-<ARCH>.h mini-trampolines.c aot-runtime.c: Kill the 
+       MONO_ARCH_HAVE_CREATE_TRAMPOLINE_FROM_TOKEN define.
+
+2009-05-02  Zoltan Varga  <vargaz@gmail.com>
+
+       * tramp-amd64.c (mono_arch_get_static_rgctx_trampoline): Increase the
+       buffer length to work with AOT code.
+
+       * method-to-ir.c (mono_method_to_ir): Handle loading errors in the
+       ldfld/stfld opcodes.
+
+       * exceptions-x86.c (mono_arch_get_throw_exception_by_name): Simplify this
+       as it is not used.
+
+       * mini-llvm.c mini-x86.c: Implement 32 bit and x86 support.
+
+       * ssa.c (mono_ssa_compute): Don't skip I8 values when using LLVM.
+
+       * mini-llvm-cpp.cpp (mono_llvm_create_ee): Update to the latest
+       LLVM API.
+
+       * mini.c (mini_method_compile): Set the from_llvm flag in MonoJitInfo
+       if needed. Don't decompose long operations when using llvm.
+
+2009-05-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c aot-runtime.c: Use mono_pagesize () instead of the
+       PAGESIZE constant.
+
+       * aot-runtime.c (load_aot_module): Get rid of another mprotect call.
+
+2009-05-03  Martin Baulig  <martin@ximian.com>
+
+       * debug-debugger.c (debugger_insert_source_breakpoint): Don't call
+       mono_debugger_insert_method_breakpoint() since the class init
+       handler we're inserting at the top of the method already gives us
+       a notification.
+
+2009-04-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * decompose.c (mono_decompose_long_opts): Move the implementation of LNEG
+       to mono_arch_decompose_long_opts () for x86 and arm.
+
+2009-04-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-codegen.c (mono_regstate_alloc_int): Use __x86_64__ instead of
+       TARGET_AMD64 here.
+
+2009-04-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * *.h *.c: Use TARGET_<ARCH> defines instead of __<arch>__ defines in the
+       JIT code.
+
+2009-04-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c (mono_aot_create_specific_trampoline): Add a stat for the
+       number of trampolines used in full-aot mode.
+
+       * aot-compiler.c: Add an ntrampolines option to set the number of 
+       trampolines emitted in full-aot mode.
+
+2009-04-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c (mono_llvm_emit_method): Implement OP_CHECK_THIS using
+       a volatile load. Get rid of get_tempname (), llvm assigns names
+       automatically.
+
+       * mini-llvm-cpp.cpp (mono_llvm_build_volatile_load): New instruction
+       builder function.
+
+       * mini-llvm.c (mono_llvm_emit_method): Don't call LLVMGetParam on
+       a value.
+
+       * abcremoval.c (REPORT_ABC_REMOVAL): Don't output messages at verbose
+       level 1.
+
+       * mini-codegen.c (mono_local_regalloc): Prevent sreg1/dreg to be allocated
+       to the same register as a fixed sreg2. Fixes #497271.
+
+       * iltests.il.in: Add a new test.
+
 2009-04-26  Zoltan Varga  <vargaz@gmail.com>
 
+       * mini-amd64.c: Use moves instead of pushes for passing arguments on the
+       stack, since pushes complicate exception handling.
+
+       * exceptions-amd64.c (mono_arch_find_jit_info): Don't pop the arguments of
+       the stack if they are passed using moves.
+
        * mini-trampolines.c (mono_llvm_vcall_trampoline): Add an assert.
 
        * method-to-ir.c (mono_method_to_ir): Disable fast virtual generic methods