+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.
+
+2008-07-21 Raja R Harinath <harinath@hurrynot.org>
+
+ * Makefile.am (version.h): Allow a trailing '/' in the repository URL.
+
+2008-07-21 Bill Holmes <billholmes54@gmail.com>
+
+ * mini-amd64.c (get_call_info): Correcting the case for MONO_TYPE_TYPEDBYREF
+ on Winx64. This type will not be passed on the stack (ArgOnStack), but
+ ArgValuetypeAddrInIReg instead.
+
+ Contributed under MIT/X11 license.
+
+2008-07-21 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-codegen.c (get_register_spilling): Fix a warning.
+
+2008-07-17 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * mini.c: Use mono_runtime_class_init_full to avoid leaking memory
+ for types which the initialization fails. Raises the provided exception
+ at the right stop after cleanup.
+
+2008-07-16 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c: Free most of the memory allocated during compilation.
+
+ * mini.c (mini_parse_debug_options): Fix a leak.
+
+ * mini.c (mini_method_compile): Don't add the method to the jit info tables
+ during aot compilation.
+
+2008-07-14 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (mono_method_to_ir): Disable aot for code using CCASTCLASS on x86 as
+ it has too much register pressure.
+
+2008-07-13 Zoltan Varga <vargaz@gmail.com>
+
+ * inssel.brg (CEE_CASTCLASS): Remove some dead code.
+
+2008-07-12 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-x86.h aot-compiler.c aot-runtime.c: Store the plt info offset inline
+ on x86.
+
+ * mini-amd64.h aot-compiler.c aot-runtime.c: Store the plt info offset inline
+ on amd64 similar to the way it is done on arm.
+
+ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version.
+
+ * aot-runtime.c (load_aot_module): Rename 'info' to 'amodule' for
+ consistency, normalize error messages, avoid loading aot-only modules in
+ normal mode.
+
+ * driver.c (mono_main): Rename --aot-only command line option to --full-aot
+ for consistency.
+
+ * aot-compiler.c aot-runtime.c tramp-arm.c: Implement aot-only support.
+
+2008-07-11 Martin Baulig <martin@ximian.com>
+
+ * debug-debugger.h
+ (MonoDebuggerInfo): Add `interruption_request'.
+
+2008-07-12 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c (emit_plt): Remove some dead code.
+
+ * exceptions-arm.c (mono_arch_get_call_filter_full): Initialize ji.
+
+ * aot-runtime.c (mono_aot_get_plt_info_offset): New helper function to
+ return the plt info offset belonging to a given plt entry.
+
+ * mini-trampolines.c (mono_aot_plt_trampoline): Use
+ mono_aot_get_plt_info_offset.
+
+ * aot-runtime.c aot-compiler.c tramp-arm.c: Change the arm plt code to be
+ similar to the amd64 code by makeing jumps through a separate jump table
+ instead of embedding the jump addresses into the code.
+
+2008-07-11 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (mono_method_to_ir): Disable aot for calling ldtoken in a generic
+ method.
+
+2008-07-10 Martin Baulig <martin@ximian.com>
+
+ * mini.c (mini_method_compile): Disable generics sharing when
+ running in the debugger.
+
+2008-07-10 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (mono_method_to_ir): Create the got var in CEE_REFANYVAL.
+
+ * inssel.brg (CEE_CASTCLASS): Avoid reusing temporary registers to prevent
+ the local register allocator from running out of registers on x86 when
+ using aot.
+
+2008-07-10 Bill Holmes <billholmes54@gmail.com>
+
+ * inssel-long.brg For OP_LCONV_TO_OVF_I4 an int cast is needed when
+ expressing IntMin for the VS Compiler. See Compiler Warning (level 2)
+ C4146.
+
+ Contributed under MIT/X11 license.
+
+2008-07-10 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c: Get rid of whitespace in the generated assembly file to
+ speed up the assembler.
+
+2008-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-arm.h tramp-arm.c exceptions-arm.c aot-compiler.c: Beginnings of aot-only
+ support.
+
+ * mini.c: Move the soft float handling macros a bit earlier, add
+ NEW_TEMPSTORE_SOFT_FLOAT macro, fix warnings, add soft-float support in one
+ place.
+
+ * mini.h: Add prototype for mono_arch_fixup_jinfo.
+
+ * mini.c (mini_init): In aot-only mode, set the root domain code manager to
+ read-only to help catch code allocation requests.
+
+ * mini.c inssel.brg aot-compiler.c: Make the use of IMT runtime configurable,
+ and turn it off when using --aot-only or when compiling with --aot=full.
+
+ * mini.c (mono_resolve_patch_target): In aot-only mode, allocate the
+ jump table for switches from the normal domain mempool, not the code
+ manager.
+
+ * mini-trampolines.c (get_unbox_trampoline): New function to return an
+ unbox trampoline which handles aot-only mode too.
+
+ * aot-runtime.c (mono_aot_get_unbox_trampoline): New function to lookup
+ an AOTed unbox trampoline.
+
+ * aot-compiler.c (emit_trampolines): Emit unbox trampolines.
+
+2008-07-09 Bill Holmes <billholmes54@gmail.com>
+
+ * wapihandles.c: Fixing MSVC builds. Include statement changed from <> to
+ ""
+
+ Contributed under MIT/X11 license.
+
+2008-07-09 Bill Holmes <billholmes54@gmail.com>
+
+ * mini.c (mono_codegen): Allocate space at the end of the code block and store
+ the unwind information for the method at the end of the allocated block.
+
+ * mini-amd64.h: Added declarations for the unwind routines and adding field to
+ MonoCompileArch to hold the unwind info for SEH on Winx64
+
+ * mini-amd64.c (mono_arch_emit_prolog): Calls to the unwind routines added to store
+ frame pointer info for the method being compiled.
+
+ * exceptions-amd64.c (mono_arch_get_throw_corlib_exception): Added a stack adjustment before
+ the call to mono_exception_from_token.
+
+ * exceptions-amd64.c: Added mono_arch_unwindinfo* implementations. This code is responsible
+ storing the method prolog information in a format that the Winx64 SEH can understand. This
+ information is stored a the end of the method block because it is all 32-bit offset based.
+
+ Contributed under MIT/X11 license.
+
+2008-07-09 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.h: Remove duplicate definitions of the mini_wapi_ functions.
+
+ * wapihandles.c: Fix warnings.
+
+ * aot-runtime.c (load_aot_module): Add a missing error message in aot-only
+ mode.
+
+ * mini-trampolines.c (mono_create_jit_trampoline_in_domain): Avoid calling
+ mono_jit_compile_method in aot-only mode since that calls the type
+ initializer.
+
+ * mini-trampolines.c (mono_create_delegate_trampoline): Avoid calling
+ get_delegate_invoke_impl in aot-only mode.
+
+ * mini.c (mono_global_codeman_reserve): Reenable the aot-only check.
+
+2008-07-08 Zoltan Varga <vargaz@gmail.com>
+
+ * trace.c (mono_trace_enter_method): Fix printing of Type instances.
+
+ * aot-compiler.c (compile_method): Disable the check for GSHARED since it
+ is on by default.
+
+ * inssel-long.brg (reg): Add a rule for LCALL_REG (OP_I8CONST).
+
+ * tramp-amd64.c (mono_arch_nullify_plt_entry): Read the nullified class
+ init trampoline from the AOT file as well.
+
+ * mini-amd64.c (mono_arch_register_lowlevel_calls): Register
+ mono_amd64_throw_exception as a jit icall since it is needed by the aot-only
+ code.
+
+ * mini.c (mini_init): Move the call to mono_exceptions_init () after
+ mono_init.
+
+ * exceptions-amd64.c: Add _full variants for the remaining exception code
+ creation functions as well, allow emission of relocatable code, remove
+ caching since that is now done by the caller.
+
+ * mini-exceptions.c: Add _full variants for the remaining exception code
+ creation functions as well, add aot-only support.
+
+ * aot-compiler.c (compile_method): Allow calls to methods of constructed types
+ if we can determine a proper token for them.
+ (add_wrappers): Add a few more wrappers.
+ (emit_method_code): Remove some dead code.
+ (emit_trampolines): Emit exception code too.
+
+ * mini.c (mono_method_to_ir): Call mono_array_new_2 if possible.
+
+ * jit-icalls.c (mono_array_new_2): New jit icall, specialized version of
+ mono_array_new_va which avoids varargs.
+
+ * mini-exceptions.c (mono_exceptions_init): Fix the ppc build.
+
+ * mini-trampolines.c: Call mono_create_specific_trampoline () instead of
+ mono_arch_create_specific_trampoline () in all places.
+
+ * aot-compiler.c aot-runtime.c: Refactor the trampoline emitting/loading code
+ a bit so it can be used for other things as well.
+
+ * mini-exceptions.c (mono_exceptions_init): Initialize throw_exception_by_name
+ on demand as well.
+
+ * exceptions-amd64.c: Rename the caching from the exception code creation
+ functions, it is done by the caller instead.
+
+ * exceptions-amd64.c: Change the signature of the exception code creation
+ functions to allow the creation of relocatable code later.
+
+ * mini-exceptions.c: Add a set of functions to query the various
+ runtime-generated exception functions.
+
+ * mini.c mini-exceptions.c: Use the newly added functions instead of the
+ mono_arch_.. () functions.
+
+2008-07-07 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-trampolines.c (mono_aot_get_trampoline_code): Removed, no longer used.
+
+ * aot-runtime.c aot-compiler.c: AOT the generic trampolines in aot-only mode.
+
+ * mini.c (mini_get_imt_trampoline): Call mono_create_specific_trampoline ().
+ (mini_get_vtable_trampoline): Ditto.
+
+ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Create relocatable
+ code in the AOT case by returning the code size and a list of relocations to
+ the caller.
+
+ * mini-trampolines.c (mono_create_specific_trampoline): New helper function.
+
+2008-07-07 Bill Holmes <billholmes54@gmail.com>
+
+ * mini-amd64.c: On Winx64 the calling convention always requires the caller to
+ clean the stack.
+
+ Contributed under MIT/X11 license.
+
+2008-07-07 Zoltan Varga <vargaz@gmail.com>
+
+ * aot-compiler.c (emit_exception_debug_info): Serialize the debug info first
+ so the buffer size can be computed correctly. Fixes #404735.
+
+ * debug-mini.c (mono_debug_serialize_debug_info): Lookup the debug info
+ normally as cfg->debug_info is already freed.
+
+2008-07-06 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-amd64.c: For calls returning vtypes in registers, don't store
+ the return address on the stack, instead allocate a separate local for
+ it. Fixes #404729.
+
+2008-07-05 Mark Probst <mark.probst@gmail.com>
+
+ * mini-trampolines.c, mini.h: Add an argument to
+ mono_create_jit_trampoline_in_domain() for turning off the adding
+ of the sync wrapper.
+
+ * mini.c: Use the JIT trampoline without sync instead of
+ ldftn_nosync in static RGCTX invoke wrappers so that the call can
+ be patched.
+
+2008-07-04 Mark Probst <mark.probst@gmail.com>
+
+ * driver.c: Turn on GSHARED optimization by default.
+
+2008-07-04 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-trampolines.c mini.c mini.h tramp-<ARCH>.c: Rename MONO_TRAMPOLINE_GENERIC
+ to MONO_TRAMPOLINE_JIT since it better reflects what it does.
+
+ * mini-trampolines.c (mono_get_aot_trampoline_code): New internal function to
+ create a variant of the generic trampoline code callable from AOTed trampolines.
+
+ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Add support for generic
+ trampoline code callable from AOTed trampolines.
+
+ * aot-compiler.c aot-runtime.c: Add support for AOTing trampolines.
+
+2008-07-04 Mark Probst <mark.probst@gmail.com>
+
+ * inssel.brg, mini-ops.h: New opcode for doing CHECK_THIS in a
+ pass-through manner.
+
+ * mini.c: Generic method sharing. Pass MRGCTX to generic methods
+ and don't fail sharing for them anymore.
+
+ * mini-exceptions.c: Handle exceptions in shared generic methods.
+
+ * generic-sharing.c: When checking the context of a generic
+ method, also check its class's context. Don't treat wrappers as
+ sharable.
+
+ * mini-trampolines.c: Some code factored out to
+ metadata/generic-sharing.c. Handle the MRGCTX case.
+
+ * jit-icalls.c, jit-icalls.h: ldvirtfn icall for generic sharing -
+ we must deal with the method being of another instantiation of the
+ class. Add static rgctx invoke wrappers to generic methods.
+
+2008-07-04 Mark Probst <mark.probst@gmail.com>
+
+ * mini.c: Provide all jit infos of generic shared methods with a
+ generic jit info.
+
+ * mini-exceptions.c: Handle the new situation that a generic info
+ might be available, but not info about the this/vtable/mrgctx
+ variable.
+
+2008-07-03 Mark Probst <mark.probst@gmail.com>
+
+ * mini.c: Don't accept ldftn and ldvirtftn with uninstantiated
+ generic methods.
+
2008-07-03 Zoltan Varga <vargaz@gmail.com>
+ * dominators.c (check_dominance_frontier): Fix a warning.
+
+ * mini.h: Add some missing prototypes.
+
+ * ssa.c local-propagation.c debug-debuger.c: Fix warnings.
+
* driver.c (mono_jit_init_version): Correct the comments since the first
argument should be the name of the root domain, not a filename.
+
+
+
+