2004-09-24 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / mini / ChangeLog
index e862ea4151dbeb4264c16e82e221e6b7ec7a7c34..9372d44625184e934864f4b71dc9472d9aa84c97 100644 (file)
@@ -1,5 +1,369 @@
+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.
+
+2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * basic-long.cs, basic-calls.cs: new tests for optimization.
+
+2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (read_tls_offset_from_method): Fix typo in previous
+       patch.
+
+2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (read_tls_offset_from_method): Add another case.
+       
+2004-08-25  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * inssel.brg (mini_emit_memcpy): use 
+       NO_UNALIGNED_ACCESS to disable memcpy optimization
+
+2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c: Handle generic types in various places.
+
+       * mini.c (mono_method_to_ir): Handle generic types in init locals.
+
+2004-08-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (handle_box): Fix warning.
+
+       * mini-amd64.c (mono_arch_local_regalloc): Fix regalloc problem.
+
+       * mini-amd64.h: Enable the emit_state optimization.
+
+       * mini-ops.h cpu-amd64.md: Add new amd64_test_null opcode.
+
+       * mini-amd64.c: Add some new 64 bit peephole opts.
+
+       * inssel.brg (mini_emit_memcpy): Optimize for 64 bit architectures.
+
+       * cpu-amd64.md: sreg1 of div instructions must be %rax.
+
+       * mini-amd64.c: Register allocator fixes.
+
+       * mini.c: Add an optimization to emit_state to avoid allocation of new
+       registers on some platforms.
+
+2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
+
+       * inssel-x86.brg inssel-amd64: Add yet another missing tree->dreg assignment.
+
+       * mini-x86.c (mono_arch_local_regalloc): Fix bug in long register
+       allocation. Fixes #63085.
+
+       * basic-long.cs: Add new regression test.
+
+       * mini-amd64.c: Register allocator improvements.
+
+2004-08-21  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (read_tls_offset_from_method): Add another code
+       sequence.
+
+       * tramp-amd64.c (amd64_class_init_trampoline): Use a more efficient
+       instruction sequence for nullifying class init trampolines.
+
+       * objects.cs: Add new regalloc test.
+
+       * mini-amd64.c inssel-amd64.brg: Optimize parameter passing.
+
+2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_call_opcode): Refactor this a little.
+       
+       * mini-amd64.c (mono_arch_regalloc_cost): Adjust regalloc costs for
+       arguments.
+
+       * driver.c: Fix profiling after TLS changes.
+       
+       * driver.c (mono_main): Set mono_stats.enabled if needed.
+
+       * mini.c (handle_alloc): New helper function used by CEE_NEWOBJ and
+       CEE_BOX.
+
+2004-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * mini-x86.c: use a 1 op rather than a 2 op tls access
+       instruction -> faster.
+
+2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from
+       x86 backend.
+
+2004-08-19 Bernie Solomon <bernard@ugsolutions.com>
+
+       * exceptions-sparc.c (throw_exception): fix typo
+
+2004-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * mini-x86.c, cpu-pentium.md, inssel-x86.brg:
+       set tree->dreg correctly with tls. Allow any
+       register to be used.
+
+       * mini-x86.c (read_tls_offset_from_method): add new code
+       generation pattern seen with GCC.
+
+
+Thu Aug 19 17:26:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
+
+       * mini-exceptions.c, exceptions-x86.c, exceptions-amd64.c,
+       exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
+       exceptions-sparc.c: fix some performance issues in exception
+       handling and setting of the stack trace for exceptions that were
+       already thrown.
+
+2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from 
+       x86 backend.
+       
+       * mini-amd64.c (mono_arch_is_int_overflow): Handle all possible 
+       registers.
+
+2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       This patch inlines tls access, when possible.
+       
+       * mini.h: new arch functions for TLS intrinsics.
+       All platforms updated with a stub.
+
+       * mini.c: use the new intrinsics
+
+       * mini-x86.c, cpu-pentium.md, inssel-x86.brg, mini-ops.h:
+       arch specific intrinsic for tls variables
+
+2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Makefile.am (libmono_la_LDFLAGS): Enable creating of libmono dll
+       under windows.
+
+2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * mini.c: thread local allocation
+
 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
 
+       * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Enable.
+
        * Makefile.am: Link against the static version of libmonogc.
        
        * Makefile.am: Link the static versions of the convenience libraries