
Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* tramp-ppc.c: update trampoline code to support jumps
	and class initialization.

2003-09-30  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c (mono_jit_compile_method): Fix reading of freed memory.

	* inssel.brg (OP_UNBOXCAST): Fix #46027.

	* inssel.brg (OP_UNBOX): Remove unused rule.

	* mini.h mini.c inssel-x86.brg: Allocate one SP variable for each
	region instead of one for each method. Fixes #47813.

2003-09-29  Zoltan Varga  <vargaz@freemail.hu>

	* exceptions.cs (test_0_nested_finally): New regression test for
	nested exception handlers.

	* mini.c (mono_jit_runtime_invoke): Fix for the previous fix.

	* mini.c (mono_method_to_ir): Avoid inlining tail calls.

	* mini.c (mono_method_to_ir): Fix tail recursion in the presence of 
	inlining.

	* mini.c (mono_method_check_inlining): Make the inlining limit 
	configurable by an environment variable.
	
	* mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545.

	* mini.h: Bump AOT file version.

	* mini.h mini.c aot.c mini-x86.c: For relocations which refer to a 
	token, store the image along with the token, since the token might not 
	refer to the same image as the method containing the relocation, 
	because of inlining.

2003-09-27  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c (mono_precompile_assemblies): New function to compile
	all methods in all loaded assemblies.

	* mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP.

	* regalloc.h regalloc.c (MonoRegState): Change the type of 
	iassign and fassign to int*, since they can contain large negative
	values if the register is spilled. Also added some comments. Fixes
	#45817.

	* exceptions-x86.c (seh_handler): Fix handling of system exceptions
	under Win32. Fixes #42964.

2003-09-26  Zoltan Varga  <vargaz@freemail.hu>

	* mini.h (MONO_PATCH_INFO_WRAPPER): New patch type.

	* aot.c: Added support for AOT compiling methods which contain calls
	to wrappers. Currently, only remoting-invoke-with-check wrappers are
	handled.
	
	* driver.c (compile_all_methods): Run the compilation in a thread
	managed by mono. Fixes #44023.

	* mini.c (mono_codegen): Print full method name in verbose output.

	* mini-x86.c (mono_arch_patch_code): Fix warning.
	
	* mini-x86.c (mono_arch_patch_code): Allways create a trampoline for
	jumps, since the method we are jumping to might be domain-specific.

	* aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP.

Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel.brg: string chars are unsigned.

2003-09-15  Zoltan Varga  <vargaz@freemail.hu>

	* TODO: New todo item.

	* tramp-x86.c (x86_class_init_trampoline): New trampoline function
	which calls mono_runtime_class_init and patches the call site to
	avoid further calls.
	(mono_arch_create_class_init_trampoline): New arch specific function 
	to create a class init trampoline.
	(create_trampoline_code): Generalized so it can create
	class init trampolines as well.

	* mini.c (helper_sig_class_init_trampoline): New helper variable.
	(mono_create_class_init_trampoline): New function to create and cache
	class init trampolines.
	(mono_find_class_init_trampoline_by_addr): New function to lookup the
	vtable given the address of a class init trampoline. Used by the
	patching process.
	(mono_codegen): Generate a call to a trampoline instead of
	mono_runtime_class_init in LDSFLD[A].
	(mono_codegen): Add relocations for the new trampoline.
	
	* mini.h mini-x86.c aot.c: Added a new relocation type: 
	MONO_PATCH_INFO_CLASS_INIT.

	* mini.h: Bump AOT version number.

	* aot.c: Create a copy of the loaded code instead of using the original
	so methods which call each other will be close in memory, improving
	cache behaviour.
	
	* exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous
	patch since it breaks the regression tests.
	
	* exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
	for the register saving instruction sequence since the 
	frame_state_for function in glibc 2.3.2 don't seem to detect it.

2003-09-14  Zoltan Varga  <vargaz@freemail.hu>

	* TODO: Fix todo item && remove another.

2003-09-12  Zoltan Varga  <vargaz@freemail.hu>

	* mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
	previous checkin.

	* aot.c: Moved the check for MONO_LASTAOT into the initialization
	function of the module.

	* mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
	turning on/off the usage of AOT code. Got rid of mono_no_aot and the
	--no-aot command line option.

2003-09-11  Zoltan Varga  <vargaz@freemail.hu>

	* helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
	by Bernie Solomon (bernard@ugsolutions.com).

	* inssel.brg: Refactor the interface offset table related code into
	its separate functions and add support for the AOT case.

2003-09-10  Zoltan Varga  <vargaz@freemail.hu>

	* aot.c (mono_aot_get_method_inner): Fix memory leak.
	
	* aot.c: Added mono_aot_verbose variable and made all debugging
	output depend on the value of this variable.

	* aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
	method_label and info_label.

	* mini.h mini-x86.c aot.c: Added a new relocation type 
	MONO_PATCH_INFO_IID for klass->interface_id.

	* mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
	the MonoJitInfo structure.

	* mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
	a non-root appdomain in shared mode.

Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* aot.c: make aot loader less verbose. Remove free of unused variable.

2003-09-08  Zoltan Varga  <vargaz@freemail.hu>

	* aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.

	* .cvsignore: Added *.dll.

	* mini.c (mono_print_tree_nl): New function callable while debugging.

	* mini.c (mono_print_code): Export this.

	* tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
	patched code.

2003-09-05  Zoltan Varga  <vargaz@freemail.hu>

	* mini.h (MonoCompile): Added 'jit_info' field.

	* mini.c (mini_method_compile): Save the generated MonoJitInfo into
	the cfg structure, since it is needed by the AOT compiler.

	* mini.h (MONO_AOT_FILE_VERSION): Bump version number.

	* aot.c: A major rewrite. Changes include:
	- save exception tables for methods which have them.
	- cache failed lookups in aot_get_method () to avoid the (slow) calls 
	to g_module_symbol.
	- reworked the file format so it is now much smaller and needs
	fewer relocation entries.
	
2003-09-04  Zoltan Varga  <vargaz@freemail.hu>

	* aot.c (load_aot_module): Fix build bustage on platforms without
	Boehm GC.

2003-09-04  Martin Baulig  <martin@ximian.com>

	* Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).

2003-09-04  Zoltan Varga  <vargaz@freemail.hu>

	* TODO: Some new optimization ideas.

	* aot.c: Move AOT module loading logic here from mono_assembly_open.

	* aot.c: Save the optimization flags used to compile the code into
	the AOT module.

	* mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
	support emitting domain specific code.
	
	* mini.h mini.c aot.c: Modified the JIT so the generated AOT code is 
	no longer domain neutral. It can be made domain neutral by compiling 
	with --optimize=shared.

	* aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
	between appdomains.

	* driver.c mini.h mini.c: New --no-aot debugging option which disables
	loading of AOT code.

	* inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
	
	* tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
	if there is no domain neutrality information.

2003-09-01  Zoltan Varga  <vargaz@freemail.hu>

	* aot.c (mono_compile_assembly): Emit a symbol containing the file 
	format version into the generated library.

	* mini-x86.c (mono_arch_patch_code): Do not emit the address of the
	callee method into the caller since one of them could be shared.

	* mini.h mini-x86.c aot.c: Added two new relocations so throwing
	system exceptions from AOT code now works.

	* tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
	method if it is domain neutral and the callee is not.

	* graph.c (cfg_emit_one_loop_level): Fix warning.

2003-08-30  Zoltan Varga  <vargaz@freemail.hu>

	* aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
	last checkin.

2003-08-29  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c (mini_init): Call mono_marshal_init () explicitly since it
	is needed  by code which is executed before mono_runtime_init ().
	Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
	
	* mini.c (mono_thread_abort): Fix warning.
	(mono_jit_compile_method): Call static constructor in the AOT case too.

	* aot.c (mono_compile_assembly): Fix warning.

2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* mini.c: register a SIGINT handler if MONO_DEBUG is defined.

2003-08-28  Zoltan Varga  <vargaz@freemail.hu>

	* inssel.brg (OP_UNBOXCAST): Add support for the AOT case.

	* cpu-pentium.md: Fix the length of call opcodes so they include the
	ESP restoring instruction. Fixes #47968.

2003-08-28  Martin Baulig  <martin@ximian.com>

	* mini-x86.c (mono_arch_call_opcode): Added support for
	MONO_TYPE_GENERICINST.

	* mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.	

2003-08-27  Zoltan Varga  <vargaz@freemail.hu>

	* Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
	a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).

	* mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
	metadata_section.

2003-08-26  Martin Baulig  <martin@ximian.com>

	* mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
	when reporting an error, set this to the actual error location.
	(mono_method_to_ir): Report the correct error location if
	get_basic_blocks() returned an error.

2003-08-25  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c (mono_type_blittable): OBJECT is not blittable.
	(mono_method_blittable): Methods which have marshalling descriptors
	are not blittable either. Fixes #47842.

2003-08-22  Zoltan Varga  <vargaz@freemail.hu>

	* driver.c mini.c: Use an environment variable instead of a global 
	variable. Also fix the build.

	* mini.c (mini_init): Call g_thread_init () to make glib thread-safe. 
	Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
	reporting this.	

	* driver.c mini.c: Added --with-valgrind option to turn off some
	code which prevents mono from running under valgrind.

	* mini.c (mono_emit_call_args): Fixed warning.

	* mini.c (mono_emulate_opcode): Fixed warning.

Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
	* linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
	regalloc.c, regalloc.h: specify available registers in arch-specific
	code and support floats in the regallocator (patch by Laurent Morichetti 
	<l_m@pacbell.net>)

Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: mono_thread_current() can be called only after
	mono_runtime_init(): rearrange code to not call it early on.

Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: allocate jump tables in the code mempools.

Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini.h: make sure per-thread data allocated by the jit is
	freed.

2003-08-10  Miguel de Icaza  <miguel@ximian.com>

	* cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
	12 to 16.  This fixes bug #47453.


Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-ppc.c: fixed indexed load and unsigned compares.

2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>

	* mini.c: reenabled installation of handler for
	  thread abort signal.

Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
	by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
	until it's fixed and actually useful.

Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-long32.brg: couple more opcodes implemented.

Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
	
	* mini-sparc.c: Even more opcodes implemeted.

Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>

	* mini-sparc.c: More opcodes implemented.

Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>

	* mini-sparc.c: More opcodes implemented.

Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>

	* inssel-sparc.brg: Add some needed rules.  Direct
	copy from PPC.
	* Makefile.am: Use inssel-sparc.brg
	* exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
	an assert happy for now.

Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>

	* mini-sparc.c: Fixed compile errors.
	* exceptions-sparc.c: Same.  We now produce a mono binary 
	on sparc-linux.  Yea.

Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>

	* mini-sparc.c: Renamed registers.  Also some macro cleanups.
	* exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
	They compile, but do not work.

Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
	mini-sparc.h, tramp-sparc.c: Beginning of sparc support
	from Mark Crichton <crichton@gimp.org> and Christopher Taylor
	(ct@gentoo.org).

Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: more opcodes implemented and better support for generics.

Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* cpu-g4.md, cpu-pentium.md: updates for new instructions.
	* mini.c, mini.h: first cut at generics support: some new instructions 
	added and changed the behaviour of some of the existing ones.

2003-07-21  Miguel de Icaza  <miguel@ximian.com>

	* mini.c: Removed definition of metadata_shared mutex here.

Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-x86.c: make vararg calls work for instance methods.

Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
	returns the arguments in a separte list, now.

Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* aot.c, mini.c: updates for array type representation changes.

Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: register function to perform jit shutdown.

Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: use a faster allocator if possible.

Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* aot.c: some cleanups and portability changes.

Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: use faster allocation for CEE_BOX if possible.

Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
	Moved inlined mempcy code to its own function so that is can be
	reused. Added an inline memset function as well (optimized initobj).
	* cpu-pentium.md, inssel-x86.brg: add and use lea_membase.

Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.

Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
	arch code can setup the cpu for CLR execution, if needed.
	We use it on x86 to set the precision of FP operations.

Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: disable some optimizations if we can guess they'll cost too
	much for a given method.

2003-06-17  Zoltan Varga  <vargaz@freemail.hu>

	* mini.h mini.c: Rework last patch based on suggestions by Paolo.
	
2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
	* mini.h mini.c mini-x86.c: Added instruction level coverage 
	info collection support.

Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
	is now implemented in the profiling API. Get rid of a couple of
	unnecessary global variables.

2003-06-15  Nick Drochak <ndrochak@gol.com>

	* basic-long.cs: tests for negative values for bigmul, and unsigned.
	* cpu-g4.md: add op_bigmul and op_bigmul_un
	* cpu_pentium.md: add op_bigmul_un
	* inssel-long32.brg: add rule for unsigned bigmul
	* mini-ops.h: define OP_BIGMUL_UN
	* mini-x86.c: THE BUG: handle (un)signed properly
	* mini.c: choose unsigned opcode if needed.
	This set of patches fixes bug #44291

2003-06-13  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (optimize_branches): improved to handle all kinds of
	conditional branches.

Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
	don't raise exceptions.

Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
	to arch-specific files.

2003-06-09  Martin Baulig  <martin@ximian.com>

	* Makefile.am (libs): Added $(LIBGC_LIBS).

Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
	and OP_ATAN (fixes bug#44293).

Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* Makefile.am, mini-x86.c: rename cpu description array to
	pentium_desc, since some compilers define the 'pentium' preprocessor
	symbol.

2003-05-28  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mini_select_instructions): add explicit branch if the
	following block is not the false target of a conditional branch -
	we need this with any optimization that reorder or remove bblocks

	* mini.c (optimize_branches): bug fixes

2003-06-06  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_method_to_ir): inline static readonly fields

	* ssa.c (fold_tree): start cfold support for long (very simple
	cases only)

	* cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)

Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel.brg: fixed memcpy (bug #44219).

2003-06-05  Dick Porter  <dick@ximian.com>

	* driver.c: Set the glib log levels to not abort if g_message
	recurses.

	g_set_prgname() has to happen before mini_init() so that the
	process handle gets the info.
	
Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: add intrins to the default optimizations to get wider
	exposure.

Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.h: some large basic blocks will overflow a 16-bit
	integers for symbolic registers.

2003-06-04  Dietmar Maurer  <dietmar@ximian.com>

	* mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
	(mono_arch_output_basic_block): fix bug 43499 

Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: kill duplicated definition of mono_debug_format.

Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-x86.c, arrays.cs: fixed register allocation bug.

2003-06-04  Dietmar Maurer  <dietmar@ximian.com>

	* mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1

	* mini.c (mini_get_opcode_for_method): inline IEEERemainder

2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* mini.c:
	(print_method_from_ip): also print source location information if
	available.

2003-06-02  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_find_block_region): bug fix in region code
	(mini_method_compile): enable removing unreachable code again, but
	only in methods without exception clauses.

Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
	Implemented arglist opcode and handling of TypedReference type.
	Fixed x86 call convention when a structure is returned.
	Minimal support for calling static vararg methods.

2003-05-30  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mini_method_compile):  always remove unreachable code,
	because the code in them may be inconsistent  (access to dead
	variables for example).

Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c, debug-mini.c: warning fixes.

Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* Makefile.am, jit.h, mini.h: install header for embedding mono.

Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: thread-static fields are registered in mono_class_vtable(),
	so ensure the function is called before checking for them.

2003-05-27  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (optimize_branches): fix for bug 43586

	* jit-icalls.c (mono_llmult_ovf): added an additional check for
	overflow (fixes Bug #43639)

Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, objects.cs: allow the use of stobj for primitive types.

Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: be less strict about argument checking until we support
	running the verifier.

2003-05-27  Nick Drochak <ndrochak@gol.com>

	* basic-long.cs: tests for (ulong)int * (ulong)int also
	* mini.c: use the same trick for (ulong)int * (ulong)int

2003-05-27  Nick Drochak <ndrochak@gol.com>

	* basic-long.cs: add regression test for (long)int * (long)int
	* cpu-pentium.md: add op_bigmul specification
	* inssel-long32.brg: add OP_BIGMUL rule
	* mini-ops.h: add OP_BIGMUL
	* mini-x86.c: register allocator: handle case where src1 needs to be
	in EAX.
	* mini.c: substitute special BIGMUL opcode in the tree for 
	(long)int * (long)int

Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* jit-icalls.c: call the type ctor on field access if needed.

Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
	to a method (including results of ldelema, bug#43207).

2003-05-26  Dietmar Maurer  <dietmar@ximian.com>

	* graph.c (cfg_emit_one_loop_level): loop over all blocks. use
	colors to show exception handler blocks.

	* inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
	(fix for pinvoke7.cs).

Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.h, mini.c: ensure correct initialization order for types that
	require it. Prepare for lazy compilation of jit icall wrappers.
	Provide a name for opcode emulation to reduce unneeded mallocing.

Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-x86.c: better register restoring code and profiling
	support for tail calls.

Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.h, driver.c: prepare for leaf methods optimization.

Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: get targets of branches before converting a method.

2003-05-23  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (optimize_branches): added some experimental code (disbaled) 

2003-05-22  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (optimize_branches): fix branch to branch optimization 

	* exceptions-x86.c (mono_arch_handle_exception): bug fix.

	* mini-x86.c (mono_arch_output_basic_block): cleanup up exception code

	* inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER

	* mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
	if needed.

2003-05-21  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
	enable use of interface variables again.

	* mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
	I1 to registers because there is no simply way to sign extend 8bit
	quantities in caller saved registers on x86.

	* inssel-float.brg: set costs of some rules to 2 so
	that monobure always select the arch. specific ones if supplied,
	regardless of the order we pass the files to monoburg.

Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini-x86.c: since the magic trampoline for jumps
	can't patch the code directly, we do it as soon as the
	method gets compiled.

Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-x86.c, mini.h: introduce a new patching method
	to support CEE_JMP and tail calls.
	* mini.c: obey tail.call. Don't precompile methods target
	of CEE_JMP.
	* tramp-x86.c: new trampoline code to handle methods
	reached through a jump.

2003-05-20  Dietmar Maurer  <dietmar@ximian.com>

	* mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
	bit values to registers

2003-05-19  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_compile_get_interface_var): share interface
	variables if possible.

2003-05-16  Martin Baulig  <martin@ximian.com>

	* debug-mini.c (mono_init_debugger): New function to initialize
	the debugger.  This is not in the debugger since it needs to
	access some of mini's internals.

2003-05-16  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_method_to_ir): inlining fixes/cleanups

Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, mini-opts.h, inssel.brg: inline small memcpy
	for value type handling.

2003-05-16  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
	(mono_method_check_inlining): enable inlining of all kinds of wrappers

2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>

	* mini.c: fixed little bug in CEE_NEWOBJ case when calling
	  the constructor through a proxy.

Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* jit-icalls.c, inssel.brg: fixes to array element address
	calculations.

2003-05-15  Dietmar Maurer  <dietmar@ximian.com>

	* mini-x86.c (is_regsize_var): allocate pointer to registers

Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: fixed typo, added intrins to the set of optimizations
	tested with regressions.

Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
	* jit-icalls.c, exceptions.cs: fixed index out of range checks, added
	test case.

2003-05-14  Dietmar Maurer  <dietmar@ximian.com>

	* inssel.brg: remove some common pop instructions without side effects

Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-x86.brg: fixed thinko in int to double conversions.

Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, jit-icalls.c: added runtime thread-static variable support.

Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-long32.brg: two more missing instructions.

2003-05-13  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_emit_call_args): set the cil_code for all arguments
	if not already set.

2003-05-12  Zoltan Varga  <vargaz@freemail.hu>

	* mini-x86.c (mono_arch_output_basic_block): Handle negative zero
	correctly.

	* basic-float.cs: Added tests for negative zero.

Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-long32.brg, basic-long.cs, exceptions.cs: handle
	a couple of missing operations for long casts, with test cases.

2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.

2003-05-09  Dietmar Maurer  <dietmar@ximian.com>

	* mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
	code size estimation.

2003-05-08  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_jit_create_remoting_trampoline): make it work with
	abstract methods (fix bug 42542)

	* aot.c: add ability to handle array types
	
2003-05-08  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c: Call the _specific versions of the object allocation
	functions if possible.

Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: call setlocale ().

Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
	windows build.

2003-05-05  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)

	* exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
	wrappers (fix bug 42122)

2003-05-04  Martin Baulig  <martin@ximian.com>

	* mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.

	* driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
	s/mini_set_defaults/mono_set_defaults/g.

2003-05-04  Martin Baulig  <martin@ximian.com>

	* driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.

Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
	(reported by Don Roberts).

Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: temporarily work around two bugs for this release.

Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* Makefile.am: avoid linking libmono with GMODULE_LIBS, because
	that contains -export-dynamic and it makes using the ld script
	useless.
	* mini.h, main.c, driver.c: s/mini_main/mono_main/g.

Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.h, mini-x86.c, driver.c: disable optimizations not available on a
	specific cpu.

Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: make sure leave calls all the needed finally blocks,
	even when the target jumps out of multiple exception clauses.

Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* ldscript, Makefile.am: add linker script to reduce the number of
	exported symbols (should also fix the issues with libwine defining
	some of the same symbols in io-layer).

2003-05-01  Zoltan Varga  <vargaz@freemail.hu>

	* driver.c (mini_main): Avoid assertion when no file name is given on 
	the command line.

Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: added --version/-V command line option.
	Added the inline optimization in the regression tests.

Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c, basic-calls.cs: when inlining, save arguments to locals according 
	to the type in the method signature (fixes bug#42134).

Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: when inlining, check this is not null only when needed (bug #42135).

Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.

2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* driver.c: fixed bug #42100.

2003-04-29  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_method_to_ir): UNBOX need to CAST objects first

Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: moved most of the code required to do inlining to its own
	function so it can be reused. Inline also ctors if appropriate.

2003-04-28  Zoltan Varga  <vargaz@freemail.hu>

	* Makefile.am: Link with -export-dynamic so shared libs loaded by
	the runtime can call mono API functions.

2003-04-27  Martin Baulig  <martin@ximian.com>

	* debug-mini.c (mono_debug_init_method): Added
	`guint32 breakpoint_id' argument; if the method has a breakpoint,
	send a notification to the debugger.

	* mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
	running in the Mono Debugger, just pass the breakpoint number to
	mono_debug_init_method().

	* tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.

Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: allow some more unsafe compares.

Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini-x86.c, Makefile.am: make distcheck works (partially from
	a patch by Richard Lee <r.h.lee@attbi.com>).
	* regset.c, regset.h: removed, they are unused.

2003-04-25  Dick Porter  <dick@ximian.com>

	* driver.c: Usage reports the name as 'mono' not 'mini'
	* exceptions-x86.c: Build and run on freebsd

Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* Makefile.am: install the program with the 'mono' name and
	the library as libmono instead of mini and libmini.

Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: provide the APIs for the embedding interface of the old jit.

2003-04-23  Dietmar Maurer  <dietmar@ximian.com>

	* jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)

2003-04-23  Martin Baulig  <martin@ximian.com>

	* tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.

	* driver.c: Added `--debug' command line argument to enable
	debugging support.

2003-04-23  Martin Baulig  <martin@ximian.com>

	* debug.[ch]: Removed.  The code is now in
	../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].

	* debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
	last six months.

2003-04-22  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)

2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* mini.c:
	(mini_cleanup): moved mono_runtime_cleanup call after the call to
	mono_domain_finalize.
	(mini_method_compile): use mono_method_profile* if the the option is
	enabled.

2003-04-17  Zoltan Varga  <vargaz@freemail.hu>

	* tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
	methods with their wrapper.

	* tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
	methods with their wrapper.

	* jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
	their wrapper.

	* mini.c (mono_method_to_ir): Subsitute synchronized methods with their
	wrapper.

	* mini.c (mono_method_check_inlining): Avoid inlining synchronized
	methods.

2003-04-17  Dietmar Maurer  <dietmar@ximian.com>

	* exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252

2003-04-16  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
	of the mempool. This is slightly faster and uses less memory

Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: avoid O(n) allocation for variables.

Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: handle items on the stack after inlining methods.

Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: make the method->opcode optimization dependent
	on MONO_OPT_INSTRINS and do it lazily.

Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: print overall results at the end of regression run.

Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel.brg: don't overwrite symbolic registers.

Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-x86.brg: fix conversion from long to float.

2003-04-11  Dietmar Maurer  <dietmar@ximian.com>

	* mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)

2003-04-10  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.

	* driver.c: Added --print-vtable option as in the old JIT.

Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel-long32.brg, exceptions.cs: fix conversions from long, too.

Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* inssel.brg, basic.cs: fixed checked conversions to byte and short.

2003-04-09  Zoltan Varga  <vargaz@freemail.hu>

	* mini.c regalloc.c regalloc.h: Fix memory leak.

2003-04-09  Dietmar Maurer  <dietmar@ximian.com>

	* aot.c (mono_aot_get_method): register all used strings

Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* mini.c: always intern strings references with ldstr at compile time.

Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* Makefile.am: add BUILT_SOURCES.

Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* driver.c: give a better error message when the assembly to execute
	doesn't have an entry point.

2003-04-07  Dietmar Maurer  <dietmar@ximian.com>

	* Makefile.am: added hack for automake

	* mono/mini/mini.c (mono_save_args): always copy arguments to keep
	correct sematics.

	* mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls

22003-04-07  Martin Baulig  <martin@ximian.com>

	* Makefile.am: Added Makefile.am.

	* debugger-main.c: Removed, this is now in the debugger where it
	belongs.

	* mini.pc.in: Call this package `mini' for the moment.



