+2010-07-29 Mark Mason <glowingpurple@gmail.com>
+
+ * mini-ops.h: Fix mips branch opcodes
+ * mini-mips.h: enable IMT for MIPS
+ * mini-mips.c: Use NULLIFY_INS(), fixup *_OVF expansions with extra move.
+ * tramp-mips.c: Some cleanups to trampoline handling
+
+2010-07-27 Mark Mason <glowingpurple@gmail.com>
+
+ * mini-mips.c: Fix compilation errors.
+
+2010-07-25 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-trampolines.c (common_call_trampoline): Fix a warning.
+
+2010-07-24 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-s390x.c: Change the calling convention to pass this as first as on other
+ architectures. Remove some dead code from the get_vcall_slot().
+
+2010-07-24 Geoff Norton <gnorton@novell.com>
+
+ * mini-darwin.c: Having reviewed xnu-1504.7.4 it is safe to call fork directly
+ here, it seems the old implementation was a hold over from the linux behaviour
+ This fixed gdb backtrace on amd64 and ppc.
+
+2010-07-23 Zoltan Varga <vargaz@gmail.com>
+
+ * xdebug.c (mono_save_trampoline_xdebug_info): Call
+ mono_loader_lock/unlock_if_inited () to avoid asserts on some platforms during
+ startup.
+
+2010-07-23 Marek Habersack <mhabersack@novell.com>
+
+ * Makefile.am (version.h): generate version using GIT commit info,
+ removed the old svn and git-svn code.
+
+2010-07-22 Jb Evain <jbevain@novell.com>
+
+ * method-to-ir.c (BRANCH_COST): set to 10.
+
+2010-07-20 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c (op_to_op_src2_membase): Reorganize the amd64 op->op membase
+ code, it was missing a few 'break's.
+
+2010-07-20 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c (mini_emit_inst_for_method): Add Array.GetLength/GetLowerBound ().
+ Fixes #618176.
+
+2010-07-16 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-arm.c: Fix the arm build by passing a MonoGenericSharingContext to get_call_info.
+
+2010-07-16 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c: Add more SIMD instructions.
+
+2010-07-15 Miguel de Icaza <miguel@novell.com>
+
+ * mini.c: Allow "casts" to be passed on MONO_DEBUG as well.
+
+2010-07-15 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-ia64.c: Change the calling convention to pass this as first as on other
+ architectures. Remove some dead code from the get_vcall_slot() and the implementation
+ of the CALL_MEMBASE opcodes as a result.
+
+2010-07-13 Miguel de Icaza <miguel@novell.com>
+
+ * mini.c: LLVM is disabled by default on LLVM builds. You can use
+ the MONO_ENV_OPTIONS to set the --llvm flag.
+
+2010-07-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * driver.c : windows build fix for --with-moonlight.
+
+2010-07-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
+
+ * mini.c|h:
+ * mini-exceptions.c: Add an option to MONO_DEBUG for tracking down exceptions
+ that reach native code from a reverse pinvoke.
+
+2010-07-11 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c (mono_method_to_ir): Kill some duplicated code.
+
+ * mini-<ARCH>.c (get_call_info): Call mini_type_get_underlying_type () before passing
+ a type to MONO_TYPE_IS_REFERENCE (), since the latter can't handle VAR/MVAR.
+ Fixes #620864.
+
+ * generics.cs: Add a test.
+
+2010-07-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * mini.c (mono_jit_compile_method_inner): Don't bomb out if we don't
+ support a given runtime implemented method.
+
+2010-07-10 Mark Probst <mark.probst@gmail.com>
+
+ * mini-darwin.c: Register the exception thread with the GC.
+
+2010-07-10 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (set_metadata_flag): Set metadata flags only when using the LLVM
+ mono branch.
+
+2010-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.h (MONO_INST_HAS_CONSTANT_LOAD): New instruction flag marking loads which load
+ from constant memory.
+
+ * ir-emit.h: Clean up the _FAULT macros a bit.
+
+ * decompose.c: Mark some loads as constant.
+
+ * mini-llvm.c: Pass the constant-ness of loads to LLVM using custom metadata.
+
+2010-07-09 Miguel de Icaza <miguel@novell.com>
+
+ * driver.c (mini_usage): Change the name of the --sgen flag to be
+ --gc=sgen and also support --gc=boehm. These flags can also be
+ set on MONO_ENV_OPTIONS to propagate this to children processes.
+
+ * main.c: Remove the MONO_VM_OPTIONS environment variable that
+ only supported "sgen" and "llvm" config options and instead parse
+ the MONO_ENV_OPTIONS as options that are parsed by the command
+ line parser. Any command line option that Mono supports can be
+ passed in this environment variable.
+
+2010-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * ir-emit.h mini-llvm.c: Fix support for explicit-null-checks +
+ LLVM.
+
+ * mini.c (mini_method_compile): Run abcrem uncoditionally when LLVM is used since
+ it can now eliminate more than just bounds checks.
+
+ * ir-emit.h: Add MAY_FAULT versions of the LOAD_MEMBASE macros which take
+ an extra 'fault' argument.
+
+ * method-to-ir.c: Set the MONO_INST_FAULT of the array opcodes which are decomposed
+ later.
+
+ * decompose.c: Propagate the MONO_INST_FAULT flag from the array opcodes to their
+ decomposition.
+
+ * mini-llvm.c: Remove support for the X86/AMD64 COMPARE_MEMBASE opcodes, they are
+ no longer generated when LLVM is used.
+
+ * abcremoval.c: Eliminate MONO_INST_FAULT flags if possible.
+
+2010-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * ir-emit.h mini-llvm.c: Fix support for explicit-null-checks + LLVM.
+
+2010-07-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
+
+ * driver.c: Moonlight: Force line buffering for stdout.
+
+2010-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (emit_load): Revert the last changes, the load/store intrinsics
+ are only callable using invoke.
+
+2010-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (process_bb): Use emit_load () in one more place.
+
+ * mini-llvm-cpp.cpp (force_pass_linking): Link in more function passes so
+ MONO_LLVM=xxx is actually usable.
+
+ * mini-llvm.c (emit_load): Use the mono specific load intrinsics even outside clauses
+ since LLVM might be able to hoist them out of loops.
+ (emit_store): Ditto.
+
+2010-07-08 Neale Ferguson <neale@sinenomine.net>
+
+ * mini-s390x.c: Correct setting value of header from cfg->header - fix crash
+ in typeload-unaligned test.
+
+2010-07-08 Zoltan Varga <vargaz@gmail.com>
+
+ * xdebug.c (mono_save_trampoline_xdebug_info): Make this receive a MonoTrampInfo.
+
+ * tramp-<ARCH>.c: Move the calls to save_trampoline_xdebug_info () into
+ mini-trampolines.c/mini-exceptions.c. Use a more human readable name for
+ generic trampolines+rgctx fetch trampolines.
+
+2010-07-08 Geoff Norton <gnorton@novell.com>
+
+ * genmdesc.pl: nacl is not a new inst slot, it just modifies the size slot.
+
+2010-07-07 Zoltan Varga <vargaz@gmail.com>
+
+ * tramp-arm.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Add xdebug info.
+
+ * method-to-ir.c (emit_imt_argument): Call add_outarg_reg even if MONO_ARCH_IMT_REG
+ is not defined in the LLVM case to keep the imt arg alive.
+
+2010-07-06 Zoltan Varga <vargaz@gmail.com>
+
+ * exceptions-<ARCH>.c mini-llvm.c: Clean up the naming of the llvm related trampoline
+ functions, now its 'llvm_<FOO>_trampoline'.
+
+ * method-to-ir.c (emit_imt_argument): Fix llvm support.
+
+ * mini-llvm.c: Use only one mono specific LLVM calling convention since imt/rgctx
+ cannot be passed in the same call.
+
+ * mini-amd64.h mini-amd64.c tramp-amd64.c aot-compiler.c: Change the IMT
+ register to be the same as the RGCTX register, the two can't be used together on
+ the same call.
+
+2010-07-05 Miguel de Icaza <miguel@novell.com>
+
+ * driver.c (mono_main), main.c: Add support for MONO_VM_CONFIG
+ that allows the user to force the VM to use llvm or sgen.
+
+2010-07-05 Zoltan Varga <vargaz@gmail.com>
+
+ * exceptions-ppc.c (mono_arch_handle_exception): Resume from the signal handler
+ before processing the exception on PPC too.
+
+ * mini-ppc.h (MONO_CONTEXT_SET_SP): Define this to fix the PPC build.
+
+ * mini-ppc.c tramp-ppc.c aot-compiler.c: Change the managed calling convention so
+ 'this' is always passed as the first argument, before the vtype ret arg. This
+ simplifies get_this_arg_reg () and LLVM integration.
+
+2010-07-05 Martin Baulig <martin@ximian.com>
+
+ * exceptions-x86.c (mono_arch_handle_exception): Port this to
+ Windows; apply my patch from r159782 in the mono-2-6 branch.
+
+2010-07-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
+
+ * Makefile.am: Don't build the debug assembler files if we're building without
+ debugger support.
+
+2010-07-05 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c (arch_emit_unbox_trampoline): Fix this after the callconv changes.
+
+2010-07-04 Zoltan Varga <vargaz@gmail.com>
+
+ * tramp-arm.c (mono_arch_create_generic_trampoline): Fix the max trampoline
+ length.
+
+ * mini-arm.h (MonoContext): Get rid of the 'ebp' field, use
+ regs [ARMREG_FP] instead.
+
+ * unwind.c (decode_lsda): Use read32 for reading 32 bit quantities.
+
+ * tramp-arm.c (mono_arch_create_generic_trampoline): Save the original sp to
+ lmf->iregs [ARMREG_IP] to be consistent with mono_arch_emit_prolog ().
+
+ * mini-arm.h (MonoLMF): Remove unused fregs field, add comments for other fields.
+
+ * exceptions-arm.c: Clean up the handling of LMFs. Add LLVM exception trampolines.
+
+ * mini-arm.c: Always use V5 for passing IMT/RGCTX when running under LLVM.
+
+ * method-to-ir.c (emit_imt_argument): Fix LLVM support for architectures
+ without IMT_REG defined (ARM).
+
+ * exceptions-arm.c: Add LLVM throw exception trampolines, add xdebug info for
+ the trampolines.
+
+2010-07-03 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (process_bb): Disable OP_MEMORY_BARRIER on arm.
+
+2010-07-02 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.h: Applied patch from Elijah Taylor (elijahtaylor@google.com). Fix some
+ definitions to match their declarations and vice-versa.
+
+2010-07-01 Zoltan Varga <vargaz@gmail.com>
+
+ * Makefile.am (common_sources): Add mini-llvm.h.
+
+ * unwind.c (mono_unwind_decode_fde): Fix the decoding of the lsda offset.
+
+2010-06-30 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (mini_cleanup): Avoid calling mono_runtime_shutdown () if cross
+ compiling.
+
+Wed Jun 30 12:10:57 CEST 2010 Paolo Molaro <lupus@ximian.com>
+
+ * Makefile.am, mini-llvm.h, mini-unwind.h, mini.c, mini.h, xdebug.c:
+ implemt the option of loading the llvm backend from a module so
+ that we can have a single binary and the bloat from llvm is
+ only experienced when it is actually loaded.
+
+Wed Jun 30 12:02:39 CEST 2010 Paolo Molaro <lupus@ximian.com>
+
+ * mini-llvm.c: remove direct access to mono_defaults.
+
+2010-06-29 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-arm.c (mono_arch_get_vcall_slot): This is no longer used on ARM, so make it
+ a no-op.
+
+ * mini-trampolines.c (mono_vcall_trampoline): Fix a warning.
+
+ * mini-x86.c (mono_arch_get_vcall_slot): Remove most cases as the only caller
+ is now mono_arch_nullify_class_init_trampoline ().
+ (mono_arch_output_basic_block): Remove the special casing from the CALL_MEMBASE
+ opcodes, they are no longer needed.
+
+ * mini-amd64.c (mono_arch_get_vcall_slot): Remove most cases as the only caller is
+ now mono_arch_nullify_class_init_trampoline ().
+ (mono_arch_output_basic_block): Remove the special casing from the CALL_MEMBASE
+ opcodes, they are no longer needed.
+
+ * mini-trampolines.c (mono_vcall_trampoline): Use the LLVM method of obtaining the
+ vtable on platforms which support it.
+
+ * driver.c: Print the full LLVM version we are compiled against in --version.
+
+ * aot-runtime.c (decode_exception_debug_info): Separate the LLVM and non-LLVM code
+ a bit better. Decode nesting information to fix eh support for llvm+aot.
+
+ * aot-compiler.c (emit_exception_debug_info): Encode nesting information for LLVM
+ methods.
+
+ * mini-llvm.c (mono_llvm_cleanup): Dispose the aot module too.
+
+ * mini-arm.c (get_call_info): Change the managed calling convention so 'this'
+ is always passed as the first argument, before the vtype ret arg. This simplifies
+ get_this_arg_reg () and LLVM integration.
+
+2010-06-28 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-trampolines.c mini.c: Rework the virtual call handling code by using a separate
+ vtable trampoline for each vtable slot for both the LLVM and non-LLVM cases. Move
+ most of the vcall specific code to mono_vcall_trampoline () from
+ common_call_trampoline ().
+
+2010-06-27 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-trampolines.c (common_call_trampoline): Remove the code which created static
+ rgctx trampolines when called from LLVM, they won't work for dynamic rgctx arguments
+ if the callsite is patched.
+
+ * mini-llvm.c (process_call): Disable calls which need an rgctx arg if not using
+ the llvm branch.
+
+ * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Fix the name of
+ the trampoline in the xdebug info.
+
+ * mini-trampolines.c (common_call_trampoline): Make the last change work for LLVM
+ as well.
+
+2010-06-26 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c: Fix a few problems exposed by make check.
+
+2010-06-25 Mark Probst <mark.probst@gmail.com>
+
+ * mini-trampolines.c (common_call_trampoline): An ugly hack to
+ work around a potentially very hard to fix problem with inflating
+ generic methods.
+
+2010-06-26 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c (mono_emit_wb_aware_memcpy): Remove the workaround as the core
+ problem has been fixes.
+
+2010-06-25 Zoltan Varga <vargaz@gmail.com>
+
+ * Makefile.am: Add an 'SGEN' make variable to allow tests to be run with SGEN.
+
+ * mini-gc.c (mini_gc_init_cfg): Use mono_gc_is_moving () instead of HAVE_SGEN_GC.
+ It might be be better to define a MonoGCJitOptions structure later and have the
+ GC return that.
+
+ * mini-darwin.c: Don't undefine pthread_ calls for SGEN, they are no longer defined.
+
+ * Makefile.am: Use libwapi.la for both sgen and non-sgen builds.
+
+ * debugger-agent.c (get_objref): Implement support for sgen.
+
+ * driver.c: Remove the unused gc_wrapper.h include.
+
+ * driver.c (mono_main): Delegate the --desktop mode optimizations to the GC
+ implementation.
+
+2010-06-25 Zoltan Varga <vargaz@gmail.com>
+
+ * driver.c (mono_main): Use mono_gc_get_description () to print the GC name.
+
+ * mini-gc.c (mini_gc_init_cfg): New function to initialize GC specific flags
+ in MonoCompile.
+
+ * method-to-ir.c mini.c: Remove usage of HAVE_SGEN_GC and use runtime checks
+ instead.
+
+2010-06-23 Miguel de Icaza <miguel@novell.com>
+
+ * Makefile.am: Build the mono-sgen binary a Mono VM with the Sgen
+ GC enabled as well as libmono-sgen-2.0 and libomonosgen-static
+
+ * driver.c: Do not depend on the USED_GC_NAME when using SGen, use
+ it only for Boehm diagnostics.
+
+ * Makefile.am: Make the file a bit more consistent.
+
+ * debug-debugger.c: Wrap the entire file with an #ifdef
+ MONO_DEBUGGER_SUPPORTED to simplify the build.
+
+ * Makefile.am: Fix the opcodes build issue by including the
+ source, not by including the .lo file directly
+
+ Always bring the MDB sources into the build, to drop the
+ dependency on the AM_CONDITIONAL from configure.in as the hard
+ debugger supports Boehm, but not Sgen, this simplifies the build.
+
+ * Renamed the *.s files into *.S
+
+2010-06-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * method-to-ir.c (mono_emit_wb_aware_memcpy): Don't emit bitmap
+ wb for now on 64bits systems while issues with valuetype returns
+ are not fixed.
+
+2010-06-24 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm-cpp.cpp (mono_llvm_create_ee): Add support for using a standard set of
+ passes by calling createStandardFunctionPasses ().
+
+2010-06-23 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.h (MONO_INS_HAS_NO_SIDE_EFFECT): Add OP_LDADDR.
+
+2010-06-22 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c (mono_method_to_ir): Don't mark loads from OP_LDADDR with
+ MONO_INST_FAULT.
+
+ * mini-llvm.c (mono_llvm_emit_method): Recalculate MONO_INST_INDIRECT flags to
+ allow better optimization if the OP_LDADDR which caused the flag to be set was
+ optimized away.
+
+ * exceptions-amd64.c (get_throw_trampoline): Align the stack properly.
+
+ * mini-amd64.c (mono_arch_emit_exceptions): Pass only the type token index, not
+ the type token.
+
+ * mini-llvm.c (emit_entry_bb): Save the this argument only in gshared methods.
+
+ * mini-llvm.c: Fix a couple memory leaks. Get rid of a few #ifdefs.
+
+2010-06-22 Zoltan Varga <vargaz@gmail.com>
+
+ * tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Call patch_callsite ()
+ to handle the code sequence generated for non-near calls. Fixes #616056.
+
+2010-06-21 Zoltan Varga <vargaz@gmail.com>
+
+ * exceptions-x86.c (mono_arch_find_jit_info_ext): Adjust eip in the lmf case too.
+
+ * exceptions-x86.c: Add a resume_unwind trampoline for LLVM.
+
+ * mini-llvm.c (exception_cb): For nested clauses, add the same try range to the
+ nesting clause too.
+ (mono_llvm_check_method_supported): Enable llvm for methods with nested clauses.
+ (mono_llvm_emit_method): Instead of calling 'mono_resume_unwind' directly, call a
+ trampoline which saves the context, so changes made to callee saved registers in
+ finally clauses are visible to a nesting catch clause.
+
+ * exceptions-amd64.c: Add a resume_unwind trampoline for LLVM.
+
+ * mini-exceptions.c (mono_handle_exception_internal): Fix support for nested clauses
+ in LLVM compiled code.
+ (mono_handle_exception_internal): Add a 'ctx' argument containing the state after
+ the finally handler has ran.
+
+ * mini.h (ResumeState): New structure containing information required to resume
+ exception handling after executing LLVM compiled finally clauses.
+
+ * exceptions-amd64.c (get_throw_trampoline): Clean up the amd64 throw trampolines a
+ bit, by passing all the registers as one argument.
+
+2010-06-19 Zoltan Varga <vargaz@gmail.com>
+
+ * tramp-amd64.c (mono_arch_create_generic_trampoline): Increase the buf len a little,
+ to avoid an assert.
+
+2010-06-18 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c (emit_klass_info): Mark unloadable classes properly.
+
+ * aot-compiler.c aot-runtime.c: Fix LLVM support.
+
+ * mini-llvm.c: When emitting OP_CALL_HANDLER, avoid branching directly to the landing
+ pad, branch to a new bblock instead.
+
+ * aot-compiler.c (emit_method_code): Use cfg->header instead of the header of
+ orig_method.
+
+ * exceptions-amd64.c (mono_arch_exceptions_init): Fix fullaot support.
+
+ * mini-llvm.c (process_bb): Add support for OP_SQRT when using the LLVM mono branch.
+
+2010-06-17 Geoff Norton <gnorton@novell.com>
+
+ * mini-arm.h:
+ * exceptions-arm.c: Move the UCONTEXT macros to mono-sigcontext.h so they
+ can be used by sgen.
+
+2010-06-17 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c (emit_klass_info): Handle type load exceptions.
+
+ * method-to-ir.c (mono_method_to_ir): Avoid a crash if mono_method_get_header ()
+ fails.
+
+ * exceptions-x86.c (mono_x86_throw_corlib_exception): Negate the decrement of
+ the ip done by throw_exception (), it is not needed for corlib exceptions.
+
+2010-06-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * method-to-ir.c (mono_emit_wb_aware_memcpy): Simplify this function.
+ Call new jit icall mono_gc_wbarrier_value_copy_bitmap for vt wbarrier
+ of size > 5 words. This support fast barriers for value types up to
+ 256/512 bytes which beyond that the copying itself is the major issue.
+
+ * method-to-ir.c (mini_emit_stobj): The intrinsic version is safe
+ for gsharing, so use it.
+
+ This eliminate all calls to mono_value_copy from managed code in
+ gmcs, fsharp and ipy.
+
+ This gives a 2% perf boost on ipy and 1% on gmcs over previous patches.
+
+ Even thou a lot of mono_value_copy calls were eliminated from fsharp,
+ performance kept
+
+ * mini.c (mini_init): Register new icall.
+
+2010-06-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * method-to-ir.c (mono_emit_wb_aware_memcpy): Handle nested valuetypes.
+ This eliminates 2% of mono_value_copy calls on ipy and 12% on fsharp.
+
+2010-06-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * method-to-ir.c (mini_emit_stobj): Don't call mono_value_copy for small
+ value types as the overhead is huge. Manually expand it up to 5 words to
+ avoid code bloat.
+
+ This improves gmcs times by 5% and unmodified binary-tree by 78%. The later
+ is an exception that performance is dominated by mono_value_copy.
+
+ This puts sgen about 5% ahead of boehm in terms of wall-clock on a Core2Quad.
+
+2010-06-17 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (process_call): Disable LLVM for calls to generic class init
+ trampolines on x86, since those have their own cconv.
+
+ * exceptions-x86.c (mono_arch_exceptions_init): Implement the llvm throw corlib
+ exception trampolines.
+
+ * tramp-x86.c: Add xdebug info for a few trampolines.
+
+ * mini-llvm.c: Set the name of the arguments.
+
+ * mini-llvm.c (emit_cond_system_exception): Pass the ip of to throw_corlib_trampoline
+ using a block address if using the LLVM mono branch.
+
+ * exceptions-amd64.c (mono_arch_exceptions_init): Add new LLVM throw corlib exception
+ trampolines.
+
+2010-06-15 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-ppc.c (mono_arch_get_cie_program): Define this for powerpc too.
+
+ * mini-llvm.c (process_bb): Add a missing CHECK_FAILURE.
+
+ * mini.c (mini_init): Remove some of the llvm restrictions, they are no longer needed.
+
+ * method-to-ir.c (mono_method_to_ir): Enable fast virtual calls when using llvm.
+
+ * mini-trampolines.c (mono_llvm_vcall_trampoline): Rewrite this to use one vtable
+ trampoline per vtable slot index. The slot, along with the 'this' argument is enough
+ to identify the vtable slot address plus the method which needs to be compiled.
+
+ * mini.c (mini_get_vtable_trampoline): Use one vtable trampoline per vtable slot when
+ using llvm.
+
+ * mini-x86.c (get_call_info_internal): Change the managed calling convention so
+ 'this' is always passed as the first argument, before the vtype ret arg. This
+ simplifies get_this_arg_reg () and LLVM integration.
+
+ * mini-amd64.c (get_call_info): Fix the handling of MONO_TYPE_TYPEDBYREF after
+ the latest changes.
+
+ * tramp-x86.c (mono_arch_create_generic_trampoline): Emit unwind info for
+ these trampolines.
+
+ * mini-x86.c (mono_arch_get_cie_program): Implement this for x86.
+
+ * mini-llvm.c: Fix compilation with llvm 2.6.
+
+ * mini-amd64.c (CallInfo): Fix the position of the vret_arg_index field.
+
+ * mini-llvm.c (mono_llvm_emit_method): Fix the build if LLVM_MONO_BRANCH is not
+ defined.
+
+ * mini-amd64.c (get_call_info): Change the managed calling convention so 'this'
+ is always passed as the first argument, before the vtype ret arg. This simplifies
+ get_this_arg_reg () and LLVM integration.
+
+2010-06-14 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * method-to-ir.c (mono_method_to_ir): Add support for .ctor intrinsics.
+
+ * method-to-ir.c (mini_emit_inst_for_ctor): New function for .ctor intrinsics.
+ For now just call simd intrinsics. This makes "x[0] = new Vector4f (10)"
+ translate into much nicer code.
+
+2010-06-14 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (sig_to_llvm_sig_full): Add a 'sinfo' out argument which returns
+ parameter index information. Use this to simplify a lot of code.
+
+ * unwind.c (mono_unwind_decode_fde): Handle augmentions using a loop.
+
+2010-06-12 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c (compile_method): Add a 'depth' parameter to add_generic_class too
+ to fix infinite generic recursion. Fixes #612702.
+
+2010-06-11 Zoltan Varga <vargaz@gmail.com>
+
+ * object.c: Use a callback to create IMT trampolines, allowing the usage of one
+ imt trampoline per imt slot when using LLVM.
+
+2010-06-10 Jonathan Pryor <jpryor@novell.com>
+
+ * mini.c (mini_cleanup): Call mono_runtime_shutdown(). Fixes #438454.
+
+2010-06-09 Levi Bard <levi@unity3d.com>
+
+ * debugger-agent.c: Clear unloaded types on appdomain unload.
+
+2010-06-08 Zoltan Varga <vargaz@gmail.com>
+
+ * liveness.c (visit_bb): Make the component vregs of long vars volatile as well.
+ Fixes #612206.
+
+ * exceptions.cs: Add a test.
+
+2010-06-06 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (mono_llvm_check_method_supported): Only disable llvm for nested clauses.
+
+ * mini.c (mini_method_compile): Move the LLVM checks to a function in mini-llvm.c.
+
+ * mini.c (mono_jit_runtime_invoke): Initialize *exc to NULL before calling the wrapper,
+ so it doesn't have to do it.
+
+ * helpers.c (mono_disassemble_code): Flush stdout, so the output from the spawned
+ process does not mix with ours.
+
+ * mini-llvm.c (mono_llvm_emit_method): Refactor this giant function into smaller
+ ones.
+
+ * mini-llvm.c method-to-ir.c ir-emit.h: When using the llvm mono branch, allow
+ loads/stores which can throw exceptions inside clauses.
+
+2010-06-05 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-llvm.c (mono_llvm_emit_method): Fix support for finally clauses with more than
+ one ENDFINALLY.
+
+ * mini.c (mini_init): Register mono_resume_unwind as an icall.
+
+2010-06-03 Zoltan Varga <vargaz@gmail.com>
+
+ * dwarfwriter.c: Update after the mono_debug_lookup_locals () changes.
+
+ * debugger-agent.c (method_commands_internal): Ditto. Return scope information for
+ locals.
+
+2010-06-03 Zoltan Varga <vargaz@gmail.com>
+
+ * debugger-agent.c (appdomain_unload): Clear all breakpoint instances in the dying
+ appdomain.
+
+2010-06-02 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c (set_rgctx_arg): New helper function to remove some duplicate code.
+ Use a separate generic class init trampoline for llvm, since it needs a different
+ signature.
+
+ * unwind.c (mono_unwind_decode_fde): Make this decode the mono specific LSDA which
+ includes the location of this/rgctx.
+
+ * mini-llvm.c aot-runtime.c: Enable generic sharing for llvm if using the LLVM mono
+ branch.
+
+2010-06-01 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (mini_method_compile): Enable llvm+exceptions on LLVM SVN.
+
+ * mini-llvm.c (emit_cond_system_exception): Disable llvm when this occurs in a
+ clause.
+
+2010-05-31 Zoltan Varga <vargaz@gmail.com>
+
+ * unwind.c (mono_unwind_decode_fde): The FDE only has an augmention if the CIE
+ says so.
+
+ * aot-runtime.c (decode_eh_frame): Fix an assert condition.
+
+ * aot-compiler.c (patch_to_string): New debugging helper function.
+
+2010-05-30 Zoltan Varga <vargaz@gmail.com>
+
+ * exceptions-amd64.c (get_throw_trampoline): Fix the xdebug name of the corlib
+ trampoline.
+
+ * exceptions-x86.c (mono_arch_exceptions_init): Create an llvm rethrow trampoline too.
+
+ * mini-llvm.c (mono_llvm_emit_method): Implement OP_RETHROW.
+
+ * method-to-ir.c (mono_method_to_ir): Emit a OP_NOT_REACHED after a rethrow.
+
+ * mini-llvm.c (emit_call): Compute the containing try clause correctly for nested
+ clauses.
+
+ * mini.c (create_jit_info): Print EH clause info for LLVM too.
+
+2010-05-28 Mark Probst <mark.probst@gmail.com>
+
+ * method-to-ir.c (mono_method_to_ir): Emit a write barrier for
+ cpobj with reference types.
+
+2010-05-28 Mark Probst <mark.probst@gmail.com>
+
+ * method-to-ir.c (mono_method_to_ir): Only explicitly add the
+ write barrier for reference types.
+
+2010-05-27 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-s390x.c (mono_arch_output_basic_block): Applied patch from Aurelien Minvielle
+ . Fix OP_ATOMIC_EXCHANGE_I4 on s390x. Fixes #609023.
+
+2010-05-31 Martin Baulig <martin@ximian.com>
+
+ Fix #608271.
+
+ * debugger-agent.c (breakpoints_cleanup): Iterate over `event_requests', call
+ clear_breakpoint() on all breakpoint events and remove them from the list.
+
+2010-05-27 Martin Baulig <martin@ximian.com>
+
+ Fix #605698.
+
+ * debugger-agent.c (method_commands, type_commands): Temporarily
+ set the appdomain while executing this method; do all metadata
+ calls in the debuggee's appdomain where user assemblies are loaded.
+
+2010-05-27 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-s390x.c (mono_arch_get_delegate_invoke_impls): Fix the s390x build.
+
+2010-05-26 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * method-to-ir.c (mono_method_to_ir): Add missing write barrier to stobj.
+
+2010-05-26 Zoltan Varga <vargaz@gmail.com>
+
+ * method-to-ir.c: Instead of freeing method headers immediately, save them in a list in
+ MonoCompile, and free them in mono_destroy_compile (), since the MonoType's in them could
+ be referenced even after the header is freed.
+
+ * aot-runtime.c: Remove the half finished support for decoding the .arm_exidx
+ section.
+
+2010-05-25 Zoltan Varga <vargaz@gmail.com>
+
+2010-05-25 Bill Holmes <billholmes54@gmail.com>
+
+ * genmdesc.c (main): Fixing the detection of the nacl switch.
+
+ Code is contributed under MIT/X11 license.
+
+2010-05-25 Zoltan Varga <vargaz@gmail.com>
+
+ * exceptions-amd64.c (mono_arch_find_jit_info_ext): Adjust the ip for LMF frames too.
+
+ * mini-llvm.c aot-compiler.c: More LLVM 2.8 updates.
+
+ * mini.h (LLVM_CHECK_VERSION): New helper macro.
+
+2010-05-25 Miguel de Icaza <miguel@novell.com>
+
+ * genmdesc.pl (build_spec): Add support for nacl: keyword also to
+ the Perl program
+
+ * genmdesc.c: Added support for nacl: key on the machine
+ description files to support the extra space required by Google
+ Native Client.
+
+2010-05-23 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (mono_jit_compile_method_inner): Propagate exceptions in one more place.
+
2010-05-23 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_jit_compile_method_inner): Propagate exceptions from
(mono_method_to_ir): Remove the constrained call restriction added by a previous
change, its not needed anymore.
-2010-04-12 Rodrigo Kumpera <rkumpera@novell.com>
+2010-04-12 Zoltan Varga Kumpera <rkumpera@novell.com>
* mini-posix.c (sigusr1_signal_handler): Fix build on
non x86/amd64 systems.
* tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Fix the LLVM support
by merging the LLVM and !MAP_32BIT cases.
+2009-12-14 Geoff Norton <gnorton@novell.com>
+
+ * debugger-agent.c: The end_runtime_invoke guard isn't working on
+ AMD64 as __builtin_frame_address (1) returns NULL. Disable the
+ behaviour by default, and make it runtime configurable.
+
2009-12-13 Jonathan Chambers <joncham@gmail.com>
* debugger-agent.c (mono_debugger_agent_thread_interrupt): Handle a NULL