2001-09-21  Dick Porter  <dick@ximian.com>

	* Makefile.am (mint_LDADD): Added PTHREAD_LIBS to the link line

Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: implemented some more opcodes: calli, rem.un,
	shr.un, conv.u, cpobj, stobj, conv.r.un, conv.ovf.i1.un,
	conv.ovf.i2.un, conv.ovf.i4.un, conv.ovf.i8.un, conv.ovf.i.un,
	conv.ovf.u1.un, conv.ovf.u2.un, conv.ovf.u4.un, conv.ovf.u8.un,
	conv.ovf.u.un.
	Fix some 64 bit issues in the array element access code and a small bug.
	Throw an exception on index out of range instead of asserting.
	Throw an exception on a NULL array instead of dying.
	Stomped a memory corruption bug (.cctor methods were freed after
	executing them, but they are stores in MonoClass now...).
	Added a simple facility to invoke the debugger when a named
	function is entered (use the cmdline option --debug method_name).
	* interp.h: fix 64 bit issue.

Tue Sep 18 13:21:33 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: fix some 64 bit issues. Safer support for delegates.

2001-09-12  Miguel de Icaza  <miguel@ximian.com>

	* interp.c (ves_exec_method): implement conv.u8 opcode. 

Mon Sep 10 20:20:36 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: endian fixes, comments.

Fri Sep 7 18:45:38 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c, interp.h: make ves_exec_method () and stackval_from_data ()
	non static. Implement a couple of runtime methods needed to
	use delegates (ves_runtime_method ()).
	Implemented ldftn opcode.

Thu Sep 6 15:41:24 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* Makefile.am: link to libmonoarch.
	* interp.h, interp.c: use mono_create_trampoline ().
	Pass the command line arguments to Main (String[]) methods.

2001-08-30  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_pinvoke_method): removed the libffi dependency

2001-08-29  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_array_set): moved from icall.c
	(ves_array_get): moved from icall.c

	* icall.c: moved to metadata/icall.c

Wed Aug 29 12:46:06 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: some small optimizations. Fixes to do signed
	compares when needed. Change C++ comments into C.
	Implemented cgt, clt. Added --opcode-count cmdline switch.

2001-08-28  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_exec_method): better check for value types (get
	the class to detect if we have a value type), implemented CEE_CONV_U1,
	CEE_CONV_U2, CEE_CEQ
	

Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: warn and exit when Main () expects the cmdline arguments
	instead of creashing.

Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: merge isinst/castclass handling. Hopefully implement
	the right semantics for handling callvirt correctly (changes
	here and there to support it). Integrate bugfix from Dietmar quickly
	so he needs to handle the cvs conflict:-)

Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: fix compilation and updates for changes in metadata/.

2001-08-26  Miguel de Icaza  <miguel@ximian.com>

	* interp.c (main): Add option handling for the interpreter,
	support the `--trace' option.

Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: get in a dummy virtual method dispatch.
	Added support for int64, native int and native uint as arguments.
	Added debug enter/leave for icall and pinvoke methods, too.
	Implement opcodes conv.i, conv.i8, ldelema.

Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.h, interp.c: load also a MonoClass pointer when we load
	an address on the stack. Implemented conv.i1, conv.i2, con.i4,
	conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
	and the name of the exception.

Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
	ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.

Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: handle enumerations specially (not as valuetypes).

Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.h, interp.c: add support for valuetypes.

Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: updates for merge of MonoParam in MonoType.

Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: removed beforefieldinit check, it's a useless flag.
	Added a couple more test cases to tests/ dir.

2001-08-22  Miguel de Icaza  <miguel@ximian.com>

	* interp.c (usage): Add version information
	(ves_pinvoke_method): Typo fix.

Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: simplified init_class (). Make sure a class
	is fully initialized before executing a method in the class.
	Search for the class constructor only on beforefieldinit classes.
	Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
	bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
	ldflda, ldsflda, ldelem.i8, stelem.i8, leave.

Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: Updates for changes in metadata/. Better output in debug mode
	and in the stack trace. Completed rethrow handling

Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: new macro INIT_FRAME() to properly
	initialize a MonoInvocation. Fixed a couple of buglets in exception code:
	increase stack pointer when pushing the exception for catch blocks,
	initialize frame->ex_handler to NULL, correctly try all the
	catch blocks (don't incorrectly fallback on filter handling).
	Added a couple more checks where we may need to throw an
	exception. Added more exception creation functions.
	Changed stackval_from_data() to take the target stackval as
	argument. Implemented a couple more opcodes.
	* interp.h: prepare stackval for value type code.

2001-08-21  Miguel de Icaza  <miguel@ximian.com>

	* Makefile.am (mint_LDADD): Renamed interpreter to mint.

2001-08-21  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (get_named_exception): use the right constructor.

Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: fix buglet with the leave.s opcode.

2001-08-20  Dietmar Maurer  <dietmar@ximian.com>

	* icall.c: changed everything to support the new calling convention

	* hacks.h: added some macros for FreeBSD 

	* interp.c (get_named_exception): use mono_object_new instead of
	newobj, initialize the stack before we call the constructor.

Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c, interp.h: added support code to create exceptions.
	Changed interncal calling convnetion over to MonoInvocation, to support
	exceptions, walking the stack back and forward and passing the 'this'
	pointer separately (remove the cludges required before to pass this on the
	stack). Use alloca heavily for both local vars and a copy of the incoming 
	arguments. Init local vars to zero.
	Simplify stackval_from_data() and stackval_to_data() to only take a pointer
	instead of pointer + offset.
	Implement a few exceptions-related opcodes and the code to run finally, fault and
	catch blocks as well as a stack trace if no handler is found.
	
2001-08-16  Alex Graveley  <alex@ximian.com>

	* Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
	instead of ../../libffi/.libs/libffi.a.

2001-08-10  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_exec_method): impl CASTCLASS

	* icall.c: moved the internal call stuff to this file

	* interp.c (ves_exec_method): impl. BOX/UNBOX
	(ves_icall_System_Array_GetValue): impl.
	(ves_icall_System_Array_SetValue): impl.
	added myself to Authors

2001-08-09  Dietmar Maurer  <dietmar@ximian.com>

	* implemented arrays, but you will need a modified version of 
	Array.cs to get arrays working (will commit soon)
	
	* interp.c (ves_icall_array_Set): impl.
	(ves_icall_array_Get): impl.
	(ves_icall_array_ctor): impl.
	(ves_icall_System_Array_GetRank): impl.
	(ves_icall_System_Array_GetLength): impl.
	(ves_icall_System_Array_GetLowerBound): impl.
	(mono_lookup_internal_call): impl.

2001-08-06  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_exec_method): impl. NEWARR
	(ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
	(newarr): impl.
	(mono_get_ansi_string): impl.
	(mono_lookup_internal_call): impl.
	(ves_exec_method): implemented internal calls

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

	* interp.c (ves_pinvoke_method): removed all static vars.

2001-08-02  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_exec_method): found a way to do unordered
	compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S, 
	CEE_BLE_UN_S, CEE_BLT_UN_S
	
Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: handle also MONO_TYPE_CLASS to/from the stack.
	Change locals to be a memory blob, instead of the structured
	(but wrong) stackval. Implement bne.un.s opcode. Make the program
	exit with the error code from Main().

2001-08-01  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_exec_method): implemented LDSTR

2001-07-31  Miguel de Icaza  <miguel@ximian.com>

	* interp.c (GET_NATI): Switched from using nati_t to cli/types.h
	m_i type.  Maybe we should rename the types to be m_i_t instead of
	m_i alone.
	
	Make the code compile after I broke it.

Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: fix cleanup.
	* Makefile.am: don't link with disassembler library.

2001-07-31  Miguel de Icaza  <miguel@ximian.com>

	(ves_exec_method): Cleanup of the source code.

Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
	Provide better tracing with DEBUG_INTERP.

Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: massive namespace cleanup.

Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: update to use mono_method->name.

Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: start implementing callvirt. Classes with
	class constructors are properly initialized when needed.
	Fix error introduced in version 1.17.

Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: implement static field loading and storing.

2001-07-27  Dietmar Maurer  <dietmar@ximian.com>

	* interp.c (ves_pinvoke_method): impl.

Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: Removed some debugging printouts. Made stackval_to_data
	static. Handle also instance methods in CALL opcode. Fix ret to properly
	deal with void functions. Fixed constructor to leave the object on
	the stack.

Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c: ves_exec_method () doesn't take a MonoImage arg
	anymore. Use the method cache in MonoImage. Updates to
	mache recent changes in metadata. 
	Fix newobj code to use new metadata features. Call the class
	constructor after allocationg the object. Implemented load field
	and store field opcodes (the support functions need to be finished).
	
Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* interp.c, hacks.h: moved a few ugly macros out of the code.
	Implemented switch opcode.

2001-07-23  Miguel de Icaza  <miguel@ximian.com>

	* interp.c (newobj): Added function to handle newobj opcode.

2001-07-18  Miguel de Icaza  <miguel@ximian.com>

	* interp.c (ves_exec_method): Make the interpreter abort with more
	information than it currently does.

	Enable the slow processor, as it is easier to debug.

Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* Started changelog.
	* interp.c: use new mono_get_method () function to get the complete
	info on a method invocation: we support now method invocation with
	multiple (or zero) simple arguments and with or without a return value.
	Implement also a couple more opcodes.
