2 Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>
4 * interp.c: implemented some more opcodes: calli, rem.un,
5 shr.un, conv.u, cpobj, stobj, conv.r.un, conv.ovf.i1.un,
6 conv.ovf.i2.un, conv.ovf.i4.un, conv.ovf.i8.un, conv.ovf.i.un,
7 conv.ovf.u1.un, conv.ovf.u2.un, conv.ovf.u4.un, conv.ovf.u8.un,
9 Fix some 64 bit issues in the array element access code and a small bug.
10 Throw an exception on index out of range instead of asserting.
11 Throw an exception on a NULL array instead of dying.
12 Stomped a memory corruption bug (.cctor methods were freed after
13 executing them, but they are stores in MonoClass now...).
14 Added a simple facility to invoke the debugger when a named
15 function is entered (use the cmdline option --debug method_name).
16 * interp.h: fix 64 bit issue.
18 Tue Sep 18 13:21:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
20 * interp.c: fix some 64 bit issues. Safer support for delegates.
22 2001-09-12 Miguel de Icaza <miguel@ximian.com>
24 * interp.c (ves_exec_method): implement conv.u8 opcode.
26 Mon Sep 10 20:20:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
28 * interp.c: endian fixes, comments.
30 Fri Sep 7 18:45:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
32 * interp.c, interp.h: make ves_exec_method () and stackval_from_data ()
33 non static. Implement a couple of runtime methods needed to
34 use delegates (ves_runtime_method ()).
35 Implemented ldftn opcode.
37 Thu Sep 6 15:41:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
39 * Makefile.am: link to libmonoarch.
40 * interp.h, interp.c: use mono_create_trampoline ().
41 Pass the command line arguments to Main (String[]) methods.
43 2001-08-30 Dietmar Maurer <dietmar@ximian.com>
45 * interp.c (ves_pinvoke_method): removed the libffi dependency
47 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
49 * interp.c (ves_array_set): moved from icall.c
50 (ves_array_get): moved from icall.c
52 * icall.c: moved to metadata/icall.c
54 Wed Aug 29 12:46:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
56 * interp.c: some small optimizations. Fixes to do signed
57 compares when needed. Change C++ comments into C.
58 Implemented cgt, clt. Added --opcode-count cmdline switch.
60 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
62 * interp.c (ves_exec_method): better check for value types (get
63 the class to detect if we have a value type), implemented CEE_CONV_U1,
67 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
69 * interp.c: warn and exit when Main () expects the cmdline arguments
72 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
74 * interp.c: merge isinst/castclass handling. Hopefully implement
75 the right semantics for handling callvirt correctly (changes
76 here and there to support it). Integrate bugfix from Dietmar quickly
77 so he needs to handle the cvs conflict:-)
79 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
81 * interp.c: fix compilation and updates for changes in metadata/.
83 2001-08-26 Miguel de Icaza <miguel@ximian.com>
85 * interp.c (main): Add option handling for the interpreter,
86 support the `--trace' option.
88 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
90 * interp.c: get in a dummy virtual method dispatch.
91 Added support for int64, native int and native uint as arguments.
92 Added debug enter/leave for icall and pinvoke methods, too.
93 Implement opcodes conv.i, conv.i8, ldelema.
95 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
97 * interp.h, interp.c: load also a MonoClass pointer when we load
98 an address on the stack. Implemented conv.i1, conv.i2, con.i4,
99 conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
100 and the name of the exception.
102 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
104 * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
105 ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
107 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
109 * interp.c: handle enumerations specially (not as valuetypes).
111 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
113 * interp.h, interp.c: add support for valuetypes.
115 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
117 * interp.c: updates for merge of MonoParam in MonoType.
119 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
121 * interp.c: removed beforefieldinit check, it's a useless flag.
122 Added a couple more test cases to tests/ dir.
124 2001-08-22 Miguel de Icaza <miguel@ximian.com>
126 * interp.c (usage): Add version information
127 (ves_pinvoke_method): Typo fix.
129 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
131 * interp.c: simplified init_class (). Make sure a class
132 is fully initialized before executing a method in the class.
133 Search for the class constructor only on beforefieldinit classes.
134 Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
135 bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
136 ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
138 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
140 * interp.c: Updates for changes in metadata/. Better output in debug mode
141 and in the stack trace. Completed rethrow handling
143 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
145 * interp.c: new macro INIT_FRAME() to properly
146 initialize a MonoInvocation. Fixed a couple of buglets in exception code:
147 increase stack pointer when pushing the exception for catch blocks,
148 initialize frame->ex_handler to NULL, correctly try all the
149 catch blocks (don't incorrectly fallback on filter handling).
150 Added a couple more checks where we may need to throw an
151 exception. Added more exception creation functions.
152 Changed stackval_from_data() to take the target stackval as
153 argument. Implemented a couple more opcodes.
154 * interp.h: prepare stackval for value type code.
156 2001-08-21 Miguel de Icaza <miguel@ximian.com>
158 * Makefile.am (mint_LDADD): Renamed interpreter to mint.
160 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
162 * interp.c (get_named_exception): use the right constructor.
164 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
166 * interp.c: fix buglet with the leave.s opcode.
168 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
170 * icall.c: changed everything to support the new calling convention
172 * hacks.h: added some macros for FreeBSD
174 * interp.c (get_named_exception): use mono_object_new instead of
175 newobj, initialize the stack before we call the constructor.
177 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
179 * interp.c, interp.h: added support code to create exceptions.
180 Changed interncal calling convnetion over to MonoInvocation, to support
181 exceptions, walking the stack back and forward and passing the 'this'
182 pointer separately (remove the cludges required before to pass this on the
183 stack). Use alloca heavily for both local vars and a copy of the incoming
184 arguments. Init local vars to zero.
185 Simplify stackval_from_data() and stackval_to_data() to only take a pointer
186 instead of pointer + offset.
187 Implement a few exceptions-related opcodes and the code to run finally, fault and
188 catch blocks as well as a stack trace if no handler is found.
190 2001-08-16 Alex Graveley <alex@ximian.com>
192 * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
193 instead of ../../libffi/.libs/libffi.a.
195 2001-08-10 Dietmar Maurer <dietmar@ximian.com>
197 * interp.c (ves_exec_method): impl CASTCLASS
199 * icall.c: moved the internal call stuff to this file
201 * interp.c (ves_exec_method): impl. BOX/UNBOX
202 (ves_icall_System_Array_GetValue): impl.
203 (ves_icall_System_Array_SetValue): impl.
204 added myself to Authors
206 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
208 * implemented arrays, but you will need a modified version of
209 Array.cs to get arrays working (will commit soon)
211 * interp.c (ves_icall_array_Set): impl.
212 (ves_icall_array_Get): impl.
213 (ves_icall_array_ctor): impl.
214 (ves_icall_System_Array_GetRank): impl.
215 (ves_icall_System_Array_GetLength): impl.
216 (ves_icall_System_Array_GetLowerBound): impl.
217 (mono_lookup_internal_call): impl.
219 2001-08-06 Dietmar Maurer <dietmar@ximian.com>
221 * interp.c (ves_exec_method): impl. NEWARR
222 (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
224 (mono_get_ansi_string): impl.
225 (mono_lookup_internal_call): impl.
226 (ves_exec_method): implemented internal calls
228 2001-08-05 Dietmar Maurer <dietmar@ximian.com>
230 * interp.c (ves_pinvoke_method): removed all static vars.
232 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
234 * interp.c (ves_exec_method): found a way to do unordered
235 compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S,
236 CEE_BLE_UN_S, CEE_BLT_UN_S
238 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
240 * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
241 Change locals to be a memory blob, instead of the structured
242 (but wrong) stackval. Implement bne.un.s opcode. Make the program
243 exit with the error code from Main().
245 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
247 * interp.c (ves_exec_method): implemented LDSTR
249 2001-07-31 Miguel de Icaza <miguel@ximian.com>
251 * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
252 m_i type. Maybe we should rename the types to be m_i_t instead of
255 Make the code compile after I broke it.
257 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
259 * interp.c: fix cleanup.
260 * Makefile.am: don't link with disassembler library.
262 2001-07-31 Miguel de Icaza <miguel@ximian.com>
264 (ves_exec_method): Cleanup of the source code.
266 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
268 * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
269 Provide better tracing with DEBUG_INTERP.
271 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
273 * interp.c: massive namespace cleanup.
275 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
277 * interp.c: update to use mono_method->name.
279 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
281 * interp.c: start implementing callvirt. Classes with
282 class constructors are properly initialized when needed.
283 Fix error introduced in version 1.17.
285 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
287 * interp.c: implement static field loading and storing.
289 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
291 * interp.c (ves_pinvoke_method): impl.
293 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
295 * interp.c: Removed some debugging printouts. Made stackval_to_data
296 static. Handle also instance methods in CALL opcode. Fix ret to properly
297 deal with void functions. Fixed constructor to leave the object on
300 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
302 * interp.c: ves_exec_method () doesn't take a MonoImage arg
303 anymore. Use the method cache in MonoImage. Updates to
304 mache recent changes in metadata.
305 Fix newobj code to use new metadata features. Call the class
306 constructor after allocationg the object. Implemented load field
307 and store field opcodes (the support functions need to be finished).
309 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
311 * interp.c, hacks.h: moved a few ugly macros out of the code.
312 Implemented switch opcode.
314 2001-07-23 Miguel de Icaza <miguel@ximian.com>
316 * interp.c (newobj): Added function to handle newobj opcode.
318 2001-07-18 Miguel de Icaza <miguel@ximian.com>
320 * interp.c (ves_exec_method): Make the interpreter abort with more
321 information than it currently does.
323 Enable the slow processor, as it is easier to debug.
325 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
328 * interp.c: use new mono_get_method () function to get the complete
329 info on a method invocation: we support now method invocation with
330 multiple (or zero) simple arguments and with or without a return value.
331 Implement also a couple more opcodes.