2008-07-26 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index fcfd84ef198640ea5ab2d513e965a381ecf46aa2..e16ea6952a5445a2c48b2d0b7500acd250fe7782 100644 (file)
@@ -1,3 +1,172 @@
+2008-07-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * cpu-x86.md (fcall_membase): Increase the size of the fcall opcodes.
+
+       * mini.c (mono_jit_compile_method_inner): Add support for 
+       MONO_EXCEPTION_BAD_IMAGE.
+
+       * method-to-ir.c (mono_method_to_ir2): Avoid a crash if 
+       mini_method_get_context () returns NULL. Fixes #356531.
+
+       * mini.c (mono_method_to_ir): Ditto.
+       
+       * method-to-ir.c (mono_method_to_ir2): Create a variable if needed when
+       accessing a field of a valuetype in LDFLD/STFLD. Fixes #412399.
+
+2008-07-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir2): Initialize an uninitialized variable
+       in the LDFTN implementation.
+
+2008-07-25  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-trampolines.c (mono_magic_trampoline): When sharing generic
+       code, patch calls to icalls, too, even if they're not in the
+       shared generic code hash.  Fixes #411962.
+
+2008-07-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * cpu-x86.md: Increase the length of the fcall opcodes.
+
+       * mini-x86.c (emit_move_return_value): Avoid some precision issues for
+       calls returning floats.
+
+       * method-to-ir.c (mono_method_to_ir2): Remove the generic sharing restrictions
+       on NEWARR.
+       
+       * method-to-ir.c (mono_method_to_ir2): Merge some LDFTN gsharing changes
+       missed earlier.
+
+       * method-to-ir.c (handle_delegate_ctor): Avoid putting dynamic methods
+       into the domain->method_code_hash.
+
+       * aot-compiler.c: Fix win32 build.
+
+       * method-to-ir.c (EMIT_GET_RGCTX): Call EMIT_NEW_LDARG in emit_get_rgctx ().
+       
+       * method-to-ir.c (mono_method_to_ir2): Use mono_array_new_specific in the
+       gshared NEWARR implementation.
+
+       * cpu-sparc.md: Remove duplicate localloc_imm opcode.
+
+       * ir-emit.h (NEW_ARGLOAD): Use cfg->args and cfg->arg_types so this macro
+       can be used outside of method_to_ir.
+
+       * mini.h (MonoCompile): Add arg_types field.
+
+       * method-to-ir.c (inline_method): Save/Restore cfg->args and cfg->arg_types.
+       
+       * method-to-ir.c (mono_method_to_ir2): Set cfg->args and cfg->arg_types to
+       the values of the local arg_array and param_types array.
+
+2008-07-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir2): Allocate a GOT var for NEWOBJ, since
+       got accesses might only get generated later when NEWOBJ is decomposed.
+       
+       * method-to-ir.c (handle_delegate_ctor): Add an optimization to avoid
+       looking up the native code of the target method when a delegate is called
+       for the first time.
+
+       * mini-trampolines.c (mono_delegate_trampoline): Add the other half of the
+       optimization.
+
+       * debug-debugger.c (MONO_DEBUGGER__debugger_info): Fix a warning.
+
+       * aot-runtime.c aot-compiler.c: Add a new option 'no-dlsym' which makes
+       AOT work on platforms without a working dlsym implementation.
+
+       * mini.h: Bump AOT image format version.
+       
+2008-07-24  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-exceptions.c: Free a MonoType with
+       mono_metadata_free_type() instead of g_free().
+
+       * aot-runtime.c: Free a MonoType.
+
+2008-07-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir2): Add a comment for the box+brtrue
+       optimization.
+
+       * mini-codegen.c (mono_local_regalloc): Remove the remaining items from the
+       fp stack on x86.
+
+2008-07-23  Massimiliano Mantione  <massi@ximian.com>
+       * mini.c (sigprof_signal_handler): call the new "runtime initialized"
+       profiler hook.
+
+2008-07-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir2): Set the stack type properly for
+       NEWOBJ calls on valuetypes.
+
+       * iltests.il.in: Add new test.
+
+       * mini-x86.c (mono_arch_emit_call): Use mini_type_stack_size ().
+
+2008-07-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c: Fix some warnings. Remove one ia64 special case as it
+       is no longer needed.
+
+       * mini-ia64.c (mono_arch_emit_prolog): In native-to-managed wrappers, widen
+       non register sized integer arguments.
+       (mono_arch_call_opcode): Add support for ArgInFloatRegR4.
+       (mono_arch_emit_outarg_vt): Pass a more reasonable alignment to 
+       emit_memcpy2 ().
+
+       * method-to-ir.c (mono_method_to_ir2): Handle the ret_var_is_local case in
+       CEE_MONO_RETOBJ.
+       
+       * method-to-ir.c (ADD_WIDEN_OP): New macro to insert a widening op when
+       two a binop with different sized arguments is emitted.
+
+       * mini.c (mono_bblock_insert_after_ins): Properly link up with the next
+       instruction in the ins==NULL case.
+
+2008-07-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-ops.h: Add OP_X86_OUTARG_ALIGN_STACK.
+
+       * mini-x86.c: Fix osx build.
+
+       * mini-amd64.c (mono_arch_output_basic_block): Handle varargs in the CALL_REG
+       opcodes as well.
+
+       * method-to-ir.c (mono_spill_global_vars): Avoid fusing a load+store into the
+       instruction for non int sized variables.
+
+       * method-to-ir.c (mono_method_to_ir2): Fix an assert in the LDFLD
+       implementation.
+
+2008-07-23  Robert Jordan  <robertj@gmx.net>
+
+       * method-to-ir.c: Fix MSVC build.
+
+2008-07-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir2): When calling native code which returns
+       a non int sized type, widen it to an int since newer versions of gcc seem to
+       generate code which needs this.
+
+       * ssa2.c abcremoval2.c: Fix warnings.
+
+       * *: Merge the Linear IR branch.
+
+       The original branch is at trunk/branches/vargaz/mini-linear-il, and
+       the ChangeLog file there describes all the changes done over the years. 
+       Further documentation can be found at www.mono-project.com/Linear_IL.
+
+2008-07-21  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini-amd64.c (get_call_info): Winx64 fix for passing floats.
+         The float param registers and other param registers must be the 
+         same index on Windows x64.
+
+       Contributed under MIT/X11 license.
+
 2008-07-21  Rodrigo Kumpera  <rkumpera@novell.com>
 
        * mini.c: Make the previous fix GC safe.
@@ -14313,3 +14482,4 @@ Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
 
 
+