2004-11-05 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / mini / ChangeLog
index 00523b045c177e4e008b0da3a6ae49f32a7f7456..018b860ca87dad617330d8fbe57ebc4dea913281 100644 (file)
@@ -1,5 +1,400 @@
+2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.h mini.c tramp-*.c: Moved xp parts of JIT trampoline creation
+       into a new function mono_create_jit_trampoline ().
+
+2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * trace.c (get_spec): Allow tracing of classes without a namespace.
+
+2004-11-02  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * mini.c: Fix pointer overwrite in mini_method_compile.
+
+2004-11-2  Geoff Norton  <gnorton@customerdna.com>
+
+       * inssel-ppc.brg (OP_OUTARG_VT (CEE_LDOBJ (base))):
+       The darwin ABI needs some special handling for 1 and 2 byte structs
+       Lets use lbz/lhz instead of lwz everywhere.
+       * mini-ppc.c (calculate_sizes):  The Darwin ABI needs from special handling
+       for 1 and 2 byte structs and struct which are size >= 3 || size % 4 != 0.
+       Use stb/sth for the former, and put the latter always on stack instead of in
+       argument registers.
+
+2004-10-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * trace.c (is_filenamechar): Add '_'.
+
+2004-10-29  Neale Ferguson  <Neale.Ferguson@SoftwareAG-usa.com>
+
+       * mini-s390.c: Fix prolog length to allow for large trace requirements.
+
+       * exceptions-s390.c: Remove dwarf unwinding stuff that was unused.
+
+2004-10-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Makefile.am (libgc_libs): Do some automake magic so libmono/mono
+       depends on libmonogc. Fixes #68805.
+
+2004-10-26  Miguel de Icaza  <miguel@ximian.com>
+
+       * mini.c (mono_jit_free_method): Provide extra information for
+       this error.  Currently this leaks, but will be turned into a
+       developer option in the future.
+
+2004-10-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * driver.c (mono_main): Applied patch from Willibald Krenn <willibald.krenn@gmx.at>. Make --graph work for icalls and pinvoke methods.
+
+2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
+
+       * aot.c (mono_aot_load_method): Align PATCH_INFO_R8 on an 8 byte 
+       boundary. Fixes reading of PATCH_INFO_R4 and R8.
+       (mono_aot_load_method): Do not allocate MonoAotMethod in the GC heap.
+
+2004-10-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_patch_code): Fix patching of class init
+       trampolines for AOT code.
+
+2004-10-22    <vargaz@freemail.hu>
+
+       * aot.c (mono_compile_assembly): Disable AOT for methods containing calls to methods of
+       constructed types. Fixes #68136.
+
+2004-10-21  Martin Baulig  <martin@ximian.com>
+
+       * exceptions-x86.c (throw_exception): Call mono_debugger_throw_exception();
+       if it returns true, unwind the stack to the call instruction.
+
+2004-10-21    <vargaz@freemail.hu>
+
+       * aot.c: Reorganize the AOT file format to avoid relocations. Fix warnings.
+
+       * mini.h: Bump AOT version number.
+
+       * objects.cs: Add another test for unbox trampolines.
+
+       * tramp-amd64.c (amd64_magic_trampoline): Disable patching of trampolines for 
+       valuetype methods.
+
+2004-10-20    <vargaz@freemail.hu>
+
+       * driver.c: Add SHARED to the set of optimizations tested.
+
+       * tramp-amd64.c (amd64_magic_trampoline): Patch trampoline code as well.
+
+       * mini.c (mono_method_to_ir): Mark the domainvar as volatile when it is implicitly
+       used by CEE_NEWARR.
+
+       * ssa.c (mono_ssa_deadce): Do not optimize away accesses to volatile variables.
+
+2004-10-20  Martin Baulig  <martin@ximian.com>
+
+       * mini-exceptions.c (mono_handle_exception): Call
+       mono_debugger_handle_exception() to tell the debugger about
+       catch/finally clauses.
+
+2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions-amd64.c (mono_arch_find_jit_info): Pop arguments of the stack.
+
+       * mini-amd64.c (mono_amd64_get_vcall_slot_addr): Handle extended registers. Fixes
+       #68447.
+
+2004-10-15  Geoff Norton  <gnorton@customerdna.com>
+
+       * mini-ppc.c (calculate_sizes): Marshal valuetypes for pinvoke
+       methods as their native size, fixed bug #57543, #57545.
+       * mini-ppc.c (mono_arch_output_basic_block): Use mulli for imm16 types
+       This saves a temporary register and mullw call down into 1 (minor perf
+       increase for cases like sum = sum * 5;  This use to translate into:
+           li r11,5
+           mullw r28,r28,r11
+       It now translates to
+           mulli r28,r28,5
+
+2004-10-15  Zoltan Varga  <vargaz@freemail.hu>
+
+       * trace.c (mono_trace_eval): Use mono_method_desc_full_match. Fixes
+       #68388.
+
+2004-10-11  Martin Baulig  <martin@ximian.com>
+
+       * mini.c (mono_method_to_ir): If we're a generic method, get the
+       MonoGenericContainer from our MonoMethodNormal and create a
+       MonoGenericContext from it.
+
+2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
+
+       * inssel-long32.brg (OP_LCONV_TO_OVF_I2): Fix CONV_I1 -> CONV_I2.
+
+       * basic-long.cs: Add test for checked i8->i2 cast.
+
+Wed Oct 6 12:40:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-ppc.brg: added a couple of speedup rules.
+
+2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Makefile.am (genmdesc_LDADD): Don't link this against libmetadata
+       to speed up rebuilds.
+
+2004-10-04  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
+
+       * mini-s390.c: Minor fix to OP_OR_IMM.
+
+2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-sparc.c (sparc_magic_trampoline): Handle appdomain stuff
+       better. Fixes appdomain-unload.exe on sparc.
+
+2004-10-02  Massimiliano Mantione  <massi@ximian.com>
+
+       * ssa.c: Fixed casts to unsigned where the value was of 64 bits in
+       simulate_long_compare, patch by will@exomi.com (Ville-Pertti Keinonen),
+       see bug 67324.
+
+2004-10-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * jit-icalls.c: Handle a nonexisting trunc function more correctly.
+
+2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
+
+       * mini.c: Always generate a field read/write wrapper for members
+       of the class MarshalByRefObject since the actual instance could
+       be a CBO.
+
+2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
+
+       * mini.c: Use mono_thread_exit() to stop threads, instead of ExitThread.
+
+2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
+
+       * driver.c mini.h trace.c: Move the setting of the main assembly into
+       a separate function called mono_trace_set_assembly () and call it after
+       actually loading the main assembly. Fixes #66872.
+
+2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.h mini-amd64.c tramp-amd64.c: Allocate trampoline memory
+       using the code manager.
+
+2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-amd64.c mini-amd64.h: Add support for MONO_ARCH_HAVE_INVALIDATE_METHOD.
+
+2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
+
+       * cpu-amd64.md: Fix bug in previous patch.
+       
+       * cpu-amd64.md: Fix instruction lengths of membase opcodes. Fixes
+       #66650.
+
+Wed Sep 22 19:03:20 CEST 2004 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
+       mini-exceptions.c: updates for changed stack walk interface.
+
+2004-09-21  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
+
+       * mini-s390.c, cpu-s390.md: Minor changes to OP_ARGLIST handling
+
+2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_method_to_ir): Fix LDSTR in dynamic methods. Fixes #66132.
+
+2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * driver.c (mini_regression_list): Do not call mono_assembly_close 
+       since assemblies can't be unloaded.
+       
+2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * cpu-amd64.md: Fix more instruction lengths.
+
+       * cpu-amd64.md: Fix lengths of some instructions.
+
+2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * inssel.brg: Make the array ldelema check aot friendly.
+
+2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_get_argument_info): Fix stack_unwind test.
+
+       * cpu-amd64.md inssel-long.brg inssel-amd64.brg: Small optimizations.
+
+2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c: Fix build.
+
+       * mini-sparc.c mini-x86.c mini-amd64.c: Use the new 
+       mono_type_get_underlying_type () helper function to simplify code.
+       
+2004-09-09  Martin Baulig  <martin@ximian.com>
+
+       * mini-amd64.c: Don't access `type->data.klass' directly, call
+       mono_class_from_mono_type() instead since the type may be a
+       generic instance.
+
+2004-09-09  Martin Baulig  <martin@ximian.com>
+
+       * mini-amd64.c (get_call_info): Fix support for generic instances.
+       (add_valuetype): Use mono_class_from_mono_type() to get the class
+       since we can be a generic instance.
+
+Thu Sep 9 01:43:53 PDT 2004 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.c, mini.h, regalloc.c, regalloc.h: powerpc speedups.
+
+2004-09-07 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * liveness.c: reset spill costs on each scan: bug 62107
+
+2004-09-07  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * exceptions-sparc.c (mono_arch_find_jit_info): remove
+       unnecessary line that doesn't compile
+
+2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c mini.h mini-x86.h tramp-x86.c: Instead of freeing delegate
+       trampolines, make them call an error function so people can fix their
+       code.
+
+2004-09-06  Martin Baulig  <martin@ximian.com>
+
+       * mini.c (mono_method_to_ir): When initializing locals, handle a
+       generic instances like a valuetype if it's a valuetype and like a
+       class if it's a class.
+
+2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions-x86.c (mono_arch_find_jit_info): Pop arguments off the
+       stack. Fixes #64674.
+
+       * exceptions.cs: Add test for unwinding of call arguments.
+
+Mon Sep 6 05:50:02 PDT 2004 Paolo Molaro <lupus@ximian.com>
+
+       * mini-*.c, mini-ops.h, inssel-long32.brg: introduced
+       OP_ADDCC_IMM and OP_SUBCC_IMM (add/sub immediate that will
+       set the carry/borrow flag). The sparc and s390 implementations
+       can now use optimized versions (and simplify the code). ppc bugfixes.
+
+2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions-ppc.c (mono_arch_find_jit_info): Fix memory leak.
+
+2004-09-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * inssel-amd64.brg: Remove leftover 32 bit rule.
+
+       * mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support.
+
+2004-09-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-exceptions.c (mono_find_jit_info): Refactor common code from
+       mono_arch_find_jit_info functions into a new function. Fix a memory
+       leak.
+
+       * exceptions-x86.c exceptions-amd64.c exceptions-sparc.c: Remove
+       refactored code.
+       
+2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions.cs inssel-long32.brg: Handle the OP_LCONV_TO_OVF_I2 case
+       as well.
+       
+       * exceptions.cs: Add array size tests.
+
+       * mini.c: Allocate a separate icall wrapper for each arity of 
+       mono_array_new_va. Fixes #59509.
+
+       * exceptions.cs: Add testcase for 64578.
+
+       * inssel-long32.brg: Fix OP_LCONV_TO_OVF_I1 rule. Fixes #64578.
+
+       * trace.c (is_filenamechar): Allow 0..9 in strings. Fixes #65094.
+       
+2004-09-02  Martin Baulig  <martin@ximian.com>
+
+       * mini.c (mono_method_to_ir): When initializing the locals, call
+       handle_initobj() on the generic instance itself, not its
+       underlying type.
+
+2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.h (MonoJitDynamicMethodInfo): New structure, extension of 
+       MonoJitInfo for dynamic methods.
+
+       * mini.c: Rename trampoline_hash_mutex to jit_mutex.
+
+       * mini.c: Add support for freeing JIT data for dynamic methods.
+       
+2004-09-01  Martin Baulig  <martin@ximian.com>
+
+       * mini-x86.c (is_regsize_var): Added support for generic
+       instances.
+       (mono_arch_emit_prolog): Make this compile again, use
+       `x86_push_imm_template (code)'.
+
+2004-08-30 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * mini-x86.c: make all push_imm instructions that get
+       patched always emit the long form
+
+2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_create_jump_trampoline): Store the jump trampolines 
+       in a per-domain hash.
+
+       * mini-amd64.c (merge_argument_class_from_type): Handle generic
+       types.
+
+2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: Ongoing SSE
+       work.
+       
+       * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: More SSE
+       work.
+
+       * mini-amd64.c cpu-amd64.md: Implement checked int<->uint casts.
+       Beginnings of SSE2 support.
+
+       * exceptions.cs: Add more tests for checked int<->uint casts.
+
+2004-08-28  Martin Baulig  <martin@ximian.com>
+
+       * mini-x86.c (mono_arch_instrument_epilog): Added support for
+       generic instances.
+
+       * mini.c
+       (mono_type_to_ldind, mono_type_to_stind, type_to_eval_stack_type):
+       Handle generic instances recursively.
+
+2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * iltests.il: test for conv.u8 on a constant
+
+2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * inssel-long32.brg: c&p rules for LCONV_x4 (membase) and
+       LCONV_x4 (shrun_32 (membase)).
+
+2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * inssel-x86.brg: c&p rules for push/setret of long
+
 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
 
+       * inssel-x86.brg: c&p rules for compare (base, regvar) and
+       compare (regvar, base)
+
+       * inssel-x86.brg: more burg love
+
        * inssel.brg: more cleanup
 
        * inssel-x86.brg, inssel-long32.brg: burg cleanup.