1 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
3 * interp.c (ves_exec_method): better check for value types (get
4 the class to detect if we have a value type), implemented CEE_CONV_U1,
8 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
10 * interp.c: warn and exit when Main () expects the cmdline arguments
13 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
15 * interp.c: merge isinst/castclass handling. Hopefully implement
16 the right semantics for handling callvirt correctly (changes
17 here and there to support it). Integrate bugfix from Dietmar quickly
18 so he needs to handle the cvs conflict:-)
20 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22 * interp.c: fix compilation and updates for changes in metadata/.
24 2001-08-26 Miguel de Icaza <miguel@ximian.com>
26 * interp.c (main): Add option handling for the interpreter,
27 support the `--trace' option.
29 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
31 * interp.c: get in a dummy virtual method dispatch.
32 Added support for int64, native int and native uint as arguments.
33 Added debug enter/leave for icall and pinvoke methods, too.
34 Implement opcodes conv.i, conv.i8, ldelema.
36 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
38 * interp.h, interp.c: load also a MonoClass pointer when we load
39 an address on the stack. Implemented conv.i1, conv.i2, con.i4,
40 conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
41 and the name of the exception.
43 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
45 * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
46 ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
48 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
50 * interp.c: handle enumerations specially (not as valuetypes).
52 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
54 * interp.h, interp.c: add support for valuetypes.
56 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
58 * interp.c: updates for merge of MonoParam in MonoType.
60 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
62 * interp.c: removed beforefieldinit check, it's a useless flag.
63 Added a couple more test cases to tests/ dir.
65 2001-08-22 Miguel de Icaza <miguel@ximian.com>
67 * interp.c (usage): Add version information
68 (ves_pinvoke_method): Typo fix.
70 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
72 * interp.c: simplified init_class (). Make sure a class
73 is fully initialized before executing a method in the class.
74 Search for the class constructor only on beforefieldinit classes.
75 Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
76 bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
77 ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
79 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
81 * interp.c: Updates for changes in metadata/. Better output in debug mode
82 and in the stack trace. Completed rethrow handling
84 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
86 * interp.c: new macro INIT_FRAME() to properly
87 initialize a MonoInvocation. Fixed a couple of buglets in exception code:
88 increase stack pointer when pushing the exception for catch blocks,
89 initialize frame->ex_handler to NULL, correctly try all the
90 catch blocks (don't incorrectly fallback on filter handling).
91 Added a couple more checks where we may need to throw an
92 exception. Added more exception creation functions.
93 Changed stackval_from_data() to take the target stackval as
94 argument. Implemented a couple more opcodes.
95 * interp.h: prepare stackval for value type code.
97 2001-08-21 Miguel de Icaza <miguel@ximian.com>
99 * Makefile.am (mint_LDADD): Renamed interpreter to mint.
101 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
103 * interp.c (get_named_exception): use the right constructor.
105 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
107 * interp.c: fix buglet with the leave.s opcode.
109 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
111 * icall.c: changed everything to support the new calling convention
113 * hacks.h: added some macros for FreeBSD
115 * interp.c (get_named_exception): use mono_object_new instead of
116 newobj, initialize the stack before we call the constructor.
118 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
120 * interp.c, interp.h: added support code to create exceptions.
121 Changed interncal calling convnetion over to MonoInvocation, to support
122 exceptions, walking the stack back and forward and passing the 'this'
123 pointer separately (remove the cludges required before to pass this on the
124 stack). Use alloca heavily for both local vars and a copy of the incoming
125 arguments. Init local vars to zero.
126 Simplify stackval_from_data() and stackval_to_data() to only take a pointer
127 instead of pointer + offset.
128 Implement a few exceptions-related opcodes and the code to run finally, fault and
129 catch blocks as well as a stack trace if no handler is found.
131 2001-08-16 Alex Graveley <alex@ximian.com>
133 * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
134 instead of ../../libffi/.libs/libffi.a.
136 2001-08-10 Dietmar Maurer <dietmar@ximian.com>
138 * interp.c (ves_exec_method): impl CASTCLASS
140 * icall.c: moved the internal call stuff to this file
142 * interp.c (ves_exec_method): impl. BOX/UNBOX
143 (ves_icall_System_Array_GetValue): impl.
144 (ves_icall_System_Array_SetValue): impl.
145 added myself to Authors
147 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
149 * implemented arrays, but you will need a modified version of
150 Array.cs to get arrays working (will commit soon)
152 * interp.c (ves_icall_array_Set): impl.
153 (ves_icall_array_Get): impl.
154 (ves_icall_array_ctor): impl.
155 (ves_icall_System_Array_GetRank): impl.
156 (ves_icall_System_Array_GetLength): impl.
157 (ves_icall_System_Array_GetLowerBound): impl.
158 (mono_lookup_internal_call): impl.
160 2001-08-06 Dietmar Maurer <dietmar@ximian.com>
162 * interp.c (ves_exec_method): impl. NEWARR
163 (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
165 (mono_get_ansi_string): impl.
166 (mono_lookup_internal_call): impl.
167 (ves_exec_method): implemented internal calls
169 2001-08-05 Dietmar Maurer <dietmar@ximian.com>
171 * interp.c (ves_pinvoke_method): removed all static vars.
173 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
175 * interp.c (ves_exec_method): found a way to do unordered
176 compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S,
177 CEE_BLE_UN_S, CEE_BLT_UN_S
179 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
181 * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
182 Change locals to be a memory blob, instead of the structured
183 (but wrong) stackval. Implement bne.un.s opcode. Make the program
184 exit with the error code from Main().
186 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
188 * interp.c (ves_exec_method): implemented LDSTR
190 2001-07-31 Miguel de Icaza <miguel@ximian.com>
192 * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
193 m_i type. Maybe we should rename the types to be m_i_t instead of
196 Make the code compile after I broke it.
198 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
200 * interp.c: fix cleanup.
201 * Makefile.am: don't link with disassembler library.
203 2001-07-31 Miguel de Icaza <miguel@ximian.com>
205 (ves_exec_method): Cleanup of the source code.
207 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
209 * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
210 Provide better tracing with DEBUG_INTERP.
212 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
214 * interp.c: massive namespace cleanup.
216 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
218 * interp.c: update to use mono_method->name.
220 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
222 * interp.c: start implementing callvirt. Classes with
223 class constructors are properly initialized when needed.
224 Fix error introduced in version 1.17.
226 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
228 * interp.c: implement static field loading and storing.
230 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
232 * interp.c (ves_pinvoke_method): impl.
234 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
236 * interp.c: Removed some debugging printouts. Made stackval_to_data
237 static. Handle also instance methods in CALL opcode. Fix ret to properly
238 deal with void functions. Fixed constructor to leave the object on
241 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
243 * interp.c: ves_exec_method () doesn't take a MonoImage arg
244 anymore. Use the method cache in MonoImage. Updates to
245 mache recent changes in metadata.
246 Fix newobj code to use new metadata features. Call the class
247 constructor after allocationg the object. Implemented load field
248 and store field opcodes (the support functions need to be finished).
250 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
252 * interp.c, hacks.h: moved a few ugly macros out of the code.
253 Implemented switch opcode.
255 2001-07-23 Miguel de Icaza <miguel@ximian.com>
257 * interp.c (newobj): Added function to handle newobj opcode.
259 2001-07-18 Miguel de Icaza <miguel@ximian.com>
261 * interp.c (ves_exec_method): Make the interpreter abort with more
262 information than it currently does.
264 Enable the slow processor, as it is easier to debug.
266 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
269 * interp.c: use new mono_get_method () function to get the complete
270 info on a method invocation: we support now method invocation with
271 multiple (or zero) simple arguments and with or without a return value.
272 Implement also a couple more opcodes.