2008-06-16 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index e0d429aaf9d74f13aca17177167ad31420c86f44..ce1b0d12120da59c0eb4b68d06b8260794eea5eb 100644 (file)
@@ -1,7 +1,302 @@
+2008-06-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (ADD_BINOP): When operating on a native int and an int32, insert
+       a widening op.
+
+2008-06-16  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.h: Removed class relations enum that's not used anymore.
+
+2008-06-16  Mark Probst  <mark.probst@gmail.com>
+
+       * tramp-x86.c, tramp-amd64.c: Slot access code for MRGCTXs.
+
+       * mini-trampolines.c: Distinguish between RGCTXs and MRGCTXs in
+       the lazy fetch trampoline access code.
+
+2008-06-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-codegen.c (mono_local_regalloc): Add some micro optimizations.
+
+2008-06-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c: Fix some soft-float bugs. Fixes #378735 and #398348.
+
+       * mini.h (MONO_INST_LIST_ENTRY): Fix warnings on arm.
+
+       * mini.c (mono_method_to_ir): Check call signature for NEWOBJ as well.
+
+2008-06-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.c inssel-x86.brg cpu-x86.md: Implement unsigned min/max
+       intrinsics.
+
+       * mini-ops.h: Add MIN/MAX_UN opcodes.
+
+       * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Implement unsigned min/max
+       intrinsics.
+
+       * basic-math.cs: Add more min/max tests.
+
+       * inssel.brg: Remove the OP_MIN/OP_MAX rules. Fix a warning.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Small fix in the prologue of emit_castclass.
+
+2008-06-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * inssel.brg: Remove the OP_MIN/OP_MAX rules. Fix a warning.
+
+       * mini.c (mini_get_inst_for_method): Remove the Min/Max intrinsics, they
+       do not work even for unsigned types. Fixes #400014.
+
+       * basic-math.cs: Add regression tests for unsigned Min/Max.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Added additional context_used argument to several
+       functions, which will be needed for sharing generic methods.  Use
+       GET_RGCTX macro wherever appropriate.  Declare only one
+       context_used in mono_method_to_ir().
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c, generic-sharing.c: Removed generic class relations.
+
+       * mini.c, tramp-amd64.c, tramp-x86.c: Additional arguments to
+       functions due to MRGCTX changes.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * inssel.brg, inssel-long.brg, inssel-long32.brg, mini-ops.h,
+       graph.c, local-propagation.c, aliasing.c: New opcodes for calls
+       with calculated IMT.
+
+       * mini.c: Generic sharing of calls via generic interfaces.
+
+       * jit-icalls.c, jit-icalls.h: Helper function for compiling a
+       generic method with non-constant MonoGenericContext*.  Instead,
+       the context is taken out of the method itself.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Generic sharing of ldvirtftn.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Generic sharing of ldftn.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Do pass VTable/RGCTX argument to static generic methods.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Generic sharing of the special case of ldtoken followed
+       by a call to GetTypeFromHandle.
+
+2008-06-13  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Generic sharing of box for nullable types.
+
+2008-06-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-s390x.c (add_stackParm): Fix computation of offsets when arguments
+       are passed on the stack. Fixes #324807.
+
+2008-06-12  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini-amd64.c:add_valuetype: Adding Winx64 code to fill the ArgInfo
+       for the ArgValuetypeAddrInIReg case.
+
+       * mini-amd64.c:mono_arch_allocate_vars:  Adding a case for 
+       ArgValuetypeAddrInIReg to avoid asserts.  Code needs to be added here.
+
+       * mini-amd64.c: mono_arch_call_opcode:  Adding Winx64 code for an ArgInfo of 
+       type ArgValuetypeAddrInIReg.  The code emitted will copy the argument to a 
+       local variable and pass the local variable by reference to the called method.
+         
+       * mini-amd64.c: mono_arch_emit_prolog:  Adjust the stack for calls to
+       mono_jit_thread_attach and mono_get_lmf_addr for Winx64.
+
+       Contributed under MIT/X11 license.
+
+2008-06-10  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * debug-mini.c (mono_debug_free_method_jit_info): Moved to metadata/mono-debug.c.
+
+       * debug-mini.c (mono_debug_print_vars): Release memory after printing
+       everything.
+
+2008-06-10  Martin Baulig  <martin@ximian.com>
+
+       * debug-mini.c
+       (mono_debug_close_method): Check whether `cfg->epilogue_begin != NULL'.
+
+2008-06-09  Kornél Pál  <kornelpal@gmail.com>
+
+       * main.c: Add and set argv [argc] to NULL to match C specification that fixes
+       possible error when no arguments are passed.
+
+       Contributed under MIT/X11 license.
+
+2008-06-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-exceptions.c (ves_icall_get_trace): Skip source locations
+       where the file name is NULL.
+
+2008-06-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c: Fix s390 build.
+
+2008-06-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * trace.c (mono_trace_parse_options): Fix warnings.
+
+       * mini-amd64.c: Revert most of the last patch for now as it breaks the build.
+
+2008-06-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (remove_block_if_useless): Avoid printing the method name.
+       
+       * mini.c: Remove needless setting of ins->cil_code which is now done by 
+       MONO_INST_NEW.
+
+       * mini-amd64.c: Add some code to avoid saving callee saved registers in the
+       LMF. Not yet used.
+
+       * tramp-amd64.c (mono_arch_patch_callsite): Tell valgrind to discard the
+       translated code after it has been patched.
+
+2008-06-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (emit_call_body): Align the call displacement to 4 bytes to
+       avoid problems during code patching on SMP systems.
+       (emit_call): Avoid adding a patch info which is already added by 
+       emit_call_body.
+       (mono_arch_emit_exceptions): Ditto.
+
+2008-06-05  Zoltan Varga  <vargaz@gmail.com>
+
+       * tramp-*.c (mono_arch_get_unbox_trampoline): No need to check for ret->byref,
+       MONO_TYPE_ISSTRUCT already checks for it.
+
+2008-06-05  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini-amd64.c:merge_argument_class_from_type: When marshaling 
+         structs with floats on Winx64 the float registers are not used.  
+         The integer registers are always used..
+       * mini-amd64.c:add_valuetype:  When marshaling structs on Winx64 
+         only one register will be used and only if the size of the struct 
+         is 1,2,4, or 8 bytes.
+
+       * tramp-amd64.c :  Adjusting size used for mono_global_codeman_reserve
+         to work for Winx64.
+
+       Contributed under MIT/X11 license.
+
+2008-06-05  Martin Baulig  <martin@ximian.com>
+
+       * debug-debugger.c (debugger_lookup_class): Also call
+       mono_class_setup_methods() here; we're only called from RTI.
+
+2008-06-05  Andreas Färber  <andreas.faerber@web.de>
+
+       * mini.c (mini_init): Add DTrace probes ves-init-{begin,end}.
+       (mini_method_compile) Add DTrace probes method-compile-{begin,end}.
+       * Makefile.am (libmono_la_LIBADD,libmono_static_la_LIBADD,mono_LDADD):
+       Post-process object files and add dtrace-generated object, if necessary.
+
+       Contributed under MIT/X11 license.
+
+2008-06-04  Mark Probst  <mark.probst@gmail.com>
+
+       * inssel.brg, mini-ops.h: Added opcode for unboxcast with computed
+       element class.
+
+       * mini.c: Generic sharing for unbox.any and castclass.
+
+2008-06-04  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Ignore tailcall prefix in shared generic code and when
+       doing calls which require a vtable/rgctx argument.
+
+2008-06-04  Mark Probst  <mark.probst@gmail.com>
+
+       * mini.c: Don't free the JIT info.
+
+       * driver.c: Changes in the JIT info table testing code.
+
+2008-06-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * tramp-arm.c (mono_arch_create_trampoline_code): Check for thread 
+       interruption. Fix some warnings.
+
+       * tramp-*.c (mono_arch_create_trampoline_code): Call the _force_ variant of
+       interruption_checkpoint.
+
+Tue Jun 3 13:07:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
+
+       * jit.h, mini.h, trace.c, driver.c: introduce an API to enable tracing
+       from embedding applications.
+
+2008-06-02  William Holmes  <billholmes54@gmail.com>
+
+       * mini-amd64.c :  Correcting some of the issues for Winx64 dealing with
+         reserving 32 bytes on the stack when making calls. 
+
+       Contributed under MIT/X11 license.
+
+2008-06-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.c (mono_arch_output_basic_block): Merge some small fixes from
+       the linear IL branch.
+
+       * driver.c: Print out more information for --version on arm.
+
+2008-05-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (mono_arch_emit_prolog): Increase max_offset when processing
+       bb_exit instead, since out of line bblocks might not actually be emitted
+       out-of-line.
+       
+       * mini-amd64.c (mono_arch_emit_prolog): Increase bb->max_offset by the
+       maximum epilog size for out of line bblocks if tracing is enabled.
+
+       * iltests.il.in: Merge tests/long-shift.regalloc.il into this file.
+
+2008-05-28  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * arrays.cs: Regression tests for allocating arrays with negative sizes.
+
+2008-05-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.h mini-x86.c inssel-x86.brg cpu-x86.md: Add support for
+       CAS instrinsics. Optimize the implementation of the ATOMIC_EXCHANGE 
+       opcodes.
+
+2008-05-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mini_get_inst_for_method): Add support for CAS instrinsics when
+       the 'value' to store is a constant.
+
+       * mini-ops.h: Add OP_ATOMIC_CAS_IMM opcodes.
+
+       * mini-amd64.c (mono_arch_output_basic_block): Optimize the the implementation
+       of ATOMIC_EXCHANGE opcodes, add support for the CAS opcodes.
+
+2008-05-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c generic-sharing.c jit-icalls.c aot-compiler.c: Use accessor functions
+       for accessing method->generic_container.
+
 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
 
-       * mini.c (SIG_HANDLER_SIGNATURE): Fix sparc build too.
+       * mini.c (mono_method_check_inlining): Avoid creating vtables if possible.
        
+       * mini.c (SIG_HANDLER_SIGNATURE): Fix sparc build too.
+
        * mini.c (SIG_HANDLER_SIGNATURE): Fix IA64 build.
 
        * mini.c (mono_jit_compile_method_inner): Avoid a crash if mono_class_vtable ()
@@ -13467,3 +13762,5 @@ Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
 
 
+
+