2002-04-30 Dick Porter <dick@ximian.com>
[mono.git] / mono / interpreter / ChangeLog
1 2002-04-30  Dick Porter  <dick@ximian.com>
2
3         * interp.c: Tell glib to not abort when g_log() etc print
4         recursively
5
6 Mon Apr 22 16:52:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
7
8         * interp.c: handle muslticast delegates. Implement a couple more
9         convert opcodes. Pretend we spend some time jitting...
10
11 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
12
13         * interp.c (ves_exec_method): support internalcall String constructors
14
15 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
16         
17         * interp.c: support for new szarray format.
18
19 Tue Apr 16 20:12:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
20
21         * interp.c: removed profiling code (moved to common library).
22         Implemented inlining for some special methods.
23
24 2002-04-15      Patrik Torstensson <patrik.torstensson@labs2.com>
25
26         * interp.c: Using fullnames when adding icall's (array)
27
28 Wed Apr 10 16:07:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29
30         * interp.c: quick implementation for opcodes needed by the new parse
31         routines in corlib.
32
33 Tue Apr 9 13:08:26 CEST 2002 Paolo Molaro <lupus@ximian.com>
34
35         * interp.c: make the interp thread-safe wrt the metadata lib.
36
37 Mon Apr 8 17:15:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
38
39         * interp.c: display return value with --trace.
40         Call mono_runtime_init ().
41
42 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
43
44         * interp.c (interp_mono_runtime_invoke): handle more types,
45         removed runtime_exec_main
46
47 Thu Apr 4 11:36:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
48
49         * interp.c: don't try to get an IL opcode for runtime and internal
50         call methods.
51
52 Thu Mar 28 16:54:51 CET 2002 Paolo Molaro <lupus@ximian.com>
53
54         * interp.c: spring warning cleanup.
55
56 Thu Mar 28 12:03:28 CET 2002 Paolo Molaro <lupus@ximian.com>
57
58         * interp.c: check obj address in stfld.
59
60 2002-03-27  Dietmar Maurer  <dietmar@ximian.com>
61
62         * interp.c (ves_exec_method): CASTCLASS: fix for transparent proxy
63
64 Tue Mar 26 20:09:10 CET 2002 Paolo Molaro <lupus@ximian.com>
65
66         * interp.c: set frame->ip before dumping the stack trace.
67
68 Tue Mar 26 19:54:45 CET 2002 Paolo Molaro <lupus@ximian.com>
69
70         * interp.c: remove glib mem vtable code.
71
72 2002-03-26  Dick Porter  <dick@ximian.com>
73
74         * interp.c: Show thread ID's in trace output.
75                 
76         New option "--traceclassinit" to put debug output around
77         runtime_class_init().
78
79         Make sure all options are displayed in usage().
80
81 Tue Mar 26 17:03:14 CET 2002 Paolo Molaro <lupus@ximian.com>
82
83         * interp.c: support fieldrefs when accessing instance fields.
84
85 Mon Mar 25 12:59:52 CET 2002 Paolo Molaro <lupus@ximian.com>
86
87         * interp.c: allow tracing to be done on a per-method basis.
88         Fix interp_mono_runtime_invoke() to deal correcttly with the return
89         value. Disable glib mem vtable setting.
90
91 Thu Mar 21 18:08:37 CET 2002 Paolo Molaro <lupus@ximian.com>
92
93         * interp.c: set stack trace info when throwing an exception.
94
95 Thu Mar 21 17:32:46 CET 2002 Paolo Molaro <lupus@ximian.com>
96
97         * interp.c: intern strings before executing a method (and don't 
98         intern command line arguments anymore). Add sanity checks in alloca
99         use.
100
101 Sat Mar 16 19:15:18 CET 2002 Paolo Molaro <lupus@ximian.com>
102
103         * interp.c: restore frame on return from unmanaged calls.
104         Add support for continuing execution up to x IL insn.
105         Fix exception handling when an exception is raised in the catch
106         handler of the same method that issued the first one.
107
108 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
109
110         * interp.c (ves_runtime_method): set method_info field
111
112 Mon Mar 11 14:48:07 CET 2002 Paolo Molaro <lupus@ximian.com>
113
114         * interp.c: corlib consistency checls moved to libmetadata.
115
116 Mon Mar 11 11:27:27 CET 2002 Paolo Molaro <lupus@ximian.com>
117
118         * interp.c: use the new facilities in debug-helpers to
119         disassemble CIL code and match method names to MonoMethods.
120
121 Thu Mar 7 17:20:59 CET 2002 Paolo Molaro <lupus@ximian.com>
122
123         * interp.c: Boehm-GC enable. Fix some overflow opcodes.
124
125 Tue Mar 5 18:12:40 CET 2002 Paolo Molaro <lupus@ximian.com>
126
127         * interp.c: fix non-debug build and some more opcode work.
128
129 Mon Mar 4 11:21:44 CET 2002 Paolo Molaro <lupus@ximian.com>
130
131         * interp.c: print the address of 'this' in tracing mode.
132
133 Thu Feb 28 19:18:59 CET 2002 Paolo Molaro <lupus@ximian.com>
134
135         * interp.c: add checks for more binary consistency.
136
137 2002-02-27  Dietmar Maurer  <dietmar@ximian.com>
138
139         * interp.c (interp_mono_runtime_invoke): use alloca instead of g_new0
140
141 Tue Feb 26 11:43:34 CET 2002 Paolo Molaro <lupus@ximian.com>
142
143         * interp.c: added profiling for object creation.
144
145 Mon Feb 25 17:37:07 CET 2002 Paolo Molaro <lupus@ximian.com>
146
147         * interp.c: use correct value for guint64 max.
148
149 2002-02-22  Radek Doulik  <rodo@ximian.com>
150
151         * interp.c: s/gulong/guint64 as it differs on ppc
152
153 Wed Feb 20 22:18:40 CET 2002 Paolo Molaro <lupus@ximian.com>
154
155         * interp.c: more complete runtime_invoke () implementation.
156         Fixed castclass/isinst to work correctly with arrays.
157
158 Tue Feb 19 20:21:14 CET 2002 Paolo Molaro <lupus@ximian.com>
159
160         * interp.c: implement the runtime_invoke function.
161
162 Mon Feb 18 15:49:20 CET 2002 Paolo Molaro <lupus@ximian.com>
163
164         * interp.c: fix alignment code. Make sure to init classes
165         in more cases. Command-line arguments are interned.
166
167 2002-02-16  Radek Doulik  <rodo@ximian.com>
168
169         * interp.c (ves_exec_method): test type of sp [-1] instead of sp
170         [0], because sp [-1] is the value going to be shifted, fixed in
171         CEE_SHL, CEE_SHR, CEE_UN opcodes)
172
173 Sat Feb 16 12:00:24 CET 2002 Paolo Molaro <lupus@ximian.com>
174
175         * interp.c: fixed cut&paste error for ldind.r4 and ldind.r8.
176
177 Fri Feb 15 15:07:27 CET 2002 Paolo Molaro <lupus@ximian.com>
178
179         * interp.c: use strrchr instead of rindex. use _isnan and _finite on
180         win32 systems.
181
182 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
183
184         * interp.c (ves_exec_method): replace 
185         'g_assert (sp->type = VAL_VALUETA)' with 
186         'g_assert (sp->type == VAL_VALUETA)' otherwise
187         the assert always passes. FIXME: should the test have been !=?
188
189 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
190
191         * interp.c (stackval_from_data): fix for MONO_TYPE_PTR
192
193 Wed Feb 13 16:17:38 CET 2002 Paolo Molaro <lupus@ximian.com>
194
195         * interp.c: fixed newobj implementation for valuetypes bug found by
196         dietmar. sub.ovf dummy code.
197
198 Tue Feb 12 14:08:47 CET 2002 Paolo Molaro <lupus@ximian.com>
199
200         * hacks.h: check against redefining preprocessor symbol.
201         * interp.c: fix profile info to return more sensible results.
202
203 Mon Feb 11 13:05:29 CET 2002 Paolo Molaro <lupus@ximian.com>
204
205         * interp.c: added "die on exception" command line argument.
206         When we segfault, set the message in the exception to "Segmentation
207         fault" so people can recognise what's going on.
208
209 2002-02-10  Miguel de Icaza  <miguel@ximian.com>
210
211         * interp.c (ves_exec_method): Compare the element_class type token
212         in the class we got as well, instead of the element class vs the
213         toplevel class.
214
215         This fixes the invalid cast exceptions during unboxing
216
217 Fri Feb 8 13:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
218
219         * interp.c: use opcode information from libmetadata.
220
221 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
222
223         * interp.c (ves_exec_method): CEE_UNBOX: use element_class for
224         type check.
225
226 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
227
228         * interp.c (main): impl. __array_Address icall
229
230 Fri Feb 1 16:03:53 CET 2002 Paolo Molaro <lupus@ximian.com>
231
232         * interp.c: exception fixes. Use mono_method_pointer_get ()
233         to easy porting to other archs. Some support for overflow detection.
234
235 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
236
237         * interp.c, jit.c (main): install runtime_exec_main handler
238         (main): bug fix - call TlsAlloc () before we execute code
239
240 2002-01-23  Dick Porter  <dick@ximian.com>
241
242         * interp.c: Added some kludges to cope with CONV_OVF_I2,
243         CONV_OVF_I4 and ADD_OVF so that number formatting works.  Also
244         initialise and cleanup the network support.
245
246 Thu Jan 10 20:59:59 CET 2002 Paolo Molaro <lupus@ximian.com>
247
248         * interp.c, interp.h: add a flag to mono_create_trampoline ()
249         to handle runtime methods.
250
251 Sat Jan 5 15:45:14 CET 2002 Paolo Molaro <lupus@ximian.com>
252
253         * interp.c: allow classname:method name in --debug argument.
254         Fix box opcode for valuetypes. Fix a few opcode to take a 16 bit
255         index instead of 32 (stloc, ldloc, starg, etc.).
256
257 Thu Jan 3 23:19:27 CET 2002 Paolo Molaro <lupus@ximian.com>
258
259         * interp.c: temporary mul.ovf, mul.ovf.un, add.ovf.un implementations
260         to get the compiler going.
261
262 Mon Dec 24 17:23:45 CET 2001 Paolo Molaro <lupus@ximian.com>
263
264         * interp.c: fix ldc.i8.
265
266 Thu Dec 20 20:09:48 CET 2001 Paolo Molaro <lupus@ximian.com>
267
268         * interp.c: fix delegate method invocation to handle both
269         static and instance methods.
270
271 Tue Dec 18 18:48:50 CET 2001 Paolo Molaro <lupus@ximian.com>
272
273         * interp.c: make segv_handler static, handle runtime methods in stack
274         trace.
275
276 Thu Dec 13 20:24:28 CET 2001 Paolo Molaro <lupus@ximian.com>
277
278         * interp.c: correctly handle exceptions generated in C code.
279         Install an handler for SIGSEGV. Bare-bones profiler and hook for the
280         verifier.
281
282 Mon Dec 3 17:15:44 CET 2001 Paolo Molaro <lupus@ximian.com>
283
284         * interp.c: call mono_init() after registering internal calls.
285
286 2001-11-30  Dick Porter  <dick@ximian.com>
287
288         * interp.c: Replace get_named_exception() with
289         mono_exception_from_name()
290
291 Fri Nov 30 12:05:21 CET 2001 Paolo Molaro <lupus@ximian.com>
292
293         * interp.c: calculate locals and args offsets only once
294         per method call. Cache trampoline code as well.
295
296 2001-11-23  Dietmar Maurer  <dietmar@ximian.com>
297
298         * interp.c (ves_exec_method): bug fix for exception5.cs
299
300 Mon Nov 19 11:33:00 CET 2001 Paolo Molaro <lupus@ximian.com>
301
302         * interp.c: start adding support for handling exceptions across
303         managed/unmanaged boundaries. Cleanup Delegate method invocation.
304         Pass the correct target object in Delegate::Invoke and use the correct
305         'this' pointer in ldvirtftn (bugs pointed out by Dietmar).
306
307 Thu Nov 15 17:40:24 CET 2001 Paolo Molaro <lupus@ximian.com>
308
309         * interp.c: handle enums with underlying type different from int32.
310         More checks for C structs <-> C# objects consistency.
311
312 Wed Nov 14 19:23:00 CET 2001 Paolo Molaro <lupus@ximian.com>
313
314         * interp.c: move the stack frame dumping code to a function so it can
315         be called from the debugger. Fix virtual method lookup for interfaces.
316         Throw exceptions instead of aborting in more places.
317         Print also the message in an exception. Updates for field renames in
318         corlib.
319
320 2001-11-09  Dick Porter  <dick@ximian.com>
321
322         * Makefile.am (mint_LDADD): Don't need THREAD_LIBS any more
323
324 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
325
326         * interp.c: Include stdlib to kill warning.
327         (check_corlib): Adjust format encodings to remove warnings.
328
329 Wed Nov 7 15:47:36 CET 2001 Paolo Molaro <lupus@ximian.com>
330
331         * interp.c: updates for changes in array code.
332
333 Fri Nov 2 19:06:54 CET 2001 Paolo Molaro <lupus@ximian.com>
334
335         * interp.c: hanlde field refs. Throw an exception on NULL references.
336         Check consistency of corlib types with the C struct representation.
337
338 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
339
340         * interp.c (ves_exec_method): use relative numbering for runtime
341         type checks (and make it work with interfaces)
342
343 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
344
345         * interp.c: removed newobj()
346
347 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
348
349         * interp.c (get_virtual_method): use the vtable
350         (arch_compile_method): added to compute vtable entry
351
352 Mon Oct 8 16:14:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
353
354         * interp.c: use the accessors provided in object.h to deal with
355         MonoArrays. Updates for API renames in metadata. Throw exception
356         in ldelema if index is out of bounds.
357
358 Mon Oct 8 10:44:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
359
360         * interp.c: fixes for changes in metadata.
361
362 2001-10-04  Dick Porter  <dick@ximian.com>
363
364         * interp.c (ves_runtime_method): init_class() the
365         mono_defaults.delegate_class
366         Include mono-endian.h not endian.h
367
368 Tue Oct 2 18:51:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
369
370         * interp.c: set frame->ip in the leave opcode. Make db_methods static.
371
372 Sun Sep 30 11:57:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
373
374         * interp.c: compiler and ANSI C portability fixes.
375
376 Fri Sep 28 19:37:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
377
378         * interp.c: Implemented ldtoken, conv.ovf.i. Use MonoClass->byval_arg
379         (and remove related kludges). Don't choke on access to arrays of
380         references. Throw an exception when an internalcall or P/Invoke
381         function don't have an implementation. Throw and EngineException
382         for unimplemented opcodes.
383
384 Tue Sep 25 11:12:35 CEST 2001 Paolo Molaro <lupus@ximian.com>
385
386         * interp.c: fixed get_virtual_method () to deal with interface
387         methods better.
388
389 Mon Sep 24 18:50:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
390
391         * interp.c: catch a few more error conditions with exceptions instead of
392         erroring out.
393         Don't use g_print() in stack traces because it doesn't work with
394         some float values.
395         When we call an instance method of a valuetype class, unbox the 'this'
396         argument if it is an object.
397         Use mono_ldstr () to implement the ldstr opcode: it takes care of
398         interning the string if necessary.
399         Implemented new opcodes: ckfinite, cgt.un, clt.un, ldvirtftn, ldarga.
400         Fixes to handle NaNs when comparing doubles.
401         Make sure the loaded assembly has an entry point defined.
402         Fixed portability bugs in neg and not opcodes.
403
404 2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
405
406         * interp.c (ves_exec_method): LDC_I4: 8bit constants are signed
407         (ves_exec_method): bug fix for NOT/NEG
408         (main): fix bug in parameter parsing
409
410 2001-09-23  Dick Porter  <dick@ximian.com>
411
412         * Makefile.am (mint_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
413
414 2001-09-23  Dick Porter  <dick@ximian.com>
415
416         * interp.c (main): Do some thread setup and cleanup around the
417         call to ves_exec()
418
419 2001-09-21  Dick Porter  <dick@ximian.com>
420
421         * Makefile.am (mint_LDADD): Added PTHREAD_LIBS to the link line
422
423 Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>
424
425         * interp.c: implemented some more opcodes: calli, rem.un,
426         shr.un, conv.u, cpobj, stobj, conv.r.un, conv.ovf.i1.un,
427         conv.ovf.i2.un, conv.ovf.i4.un, conv.ovf.i8.un, conv.ovf.i.un,
428         conv.ovf.u1.un, conv.ovf.u2.un, conv.ovf.u4.un, conv.ovf.u8.un,
429         conv.ovf.u.un.
430         Fix some 64 bit issues in the array element access code and a small bug.
431         Throw an exception on index out of range instead of asserting.
432         Throw an exception on a NULL array instead of dying.
433         Stomped a memory corruption bug (.cctor methods were freed after
434         executing them, but they are stores in MonoClass now...).
435         Added a simple facility to invoke the debugger when a named
436         function is entered (use the cmdline option --debug method_name).
437         * interp.h: fix 64 bit issue.
438
439 Tue Sep 18 13:21:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
440
441         * interp.c: fix some 64 bit issues. Safer support for delegates.
442
443 2001-09-12  Miguel de Icaza  <miguel@ximian.com>
444
445         * interp.c (ves_exec_method): implement conv.u8 opcode. 
446
447 Mon Sep 10 20:20:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
448
449         * interp.c: endian fixes, comments.
450
451 Fri Sep 7 18:45:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
452
453         * interp.c, interp.h: make ves_exec_method () and stackval_from_data ()
454         non static. Implement a couple of runtime methods needed to
455         use delegates (ves_runtime_method ()).
456         Implemented ldftn opcode.
457
458 Thu Sep 6 15:41:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
459
460         * Makefile.am: link to libmonoarch.
461         * interp.h, interp.c: use mono_create_trampoline ().
462         Pass the command line arguments to Main (String[]) methods.
463
464 2001-08-30  Dietmar Maurer  <dietmar@ximian.com>
465
466         * interp.c (ves_pinvoke_method): removed the libffi dependency
467
468 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
469
470         * interp.c (ves_array_set): moved from icall.c
471         (ves_array_get): moved from icall.c
472
473         * icall.c: moved to metadata/icall.c
474
475 Wed Aug 29 12:46:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
476
477         * interp.c: some small optimizations. Fixes to do signed
478         compares when needed. Change C++ comments into C.
479         Implemented cgt, clt. Added --opcode-count cmdline switch.
480
481 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
482
483         * interp.c (ves_exec_method): better check for value types (get
484         the class to detect if we have a value type), implemented CEE_CONV_U1,
485         CEE_CONV_U2, CEE_CEQ
486         
487
488 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
489
490         * interp.c: warn and exit when Main () expects the cmdline arguments
491         instead of creashing.
492
493 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
494
495         * interp.c: merge isinst/castclass handling. Hopefully implement
496         the right semantics for handling callvirt correctly (changes
497         here and there to support it). Integrate bugfix from Dietmar quickly
498         so he needs to handle the cvs conflict:-)
499
500 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
501
502         * interp.c: fix compilation and updates for changes in metadata/.
503
504 2001-08-26  Miguel de Icaza  <miguel@ximian.com>
505
506         * interp.c (main): Add option handling for the interpreter,
507         support the `--trace' option.
508
509 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
510
511         * interp.c: get in a dummy virtual method dispatch.
512         Added support for int64, native int and native uint as arguments.
513         Added debug enter/leave for icall and pinvoke methods, too.
514         Implement opcodes conv.i, conv.i8, ldelema.
515
516 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
517
518         * interp.h, interp.c: load also a MonoClass pointer when we load
519         an address on the stack. Implemented conv.i1, conv.i2, con.i4,
520         conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
521         and the name of the exception.
522
523 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
524
525         * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
526         ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
527
528 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
529
530         * interp.c: handle enumerations specially (not as valuetypes).
531
532 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
533
534         * interp.h, interp.c: add support for valuetypes.
535
536 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
537
538         * interp.c: updates for merge of MonoParam in MonoType.
539
540 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
541
542         * interp.c: removed beforefieldinit check, it's a useless flag.
543         Added a couple more test cases to tests/ dir.
544
545 2001-08-22  Miguel de Icaza  <miguel@ximian.com>
546
547         * interp.c (usage): Add version information
548         (ves_pinvoke_method): Typo fix.
549
550 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
551
552         * interp.c: simplified init_class (). Make sure a class
553         is fully initialized before executing a method in the class.
554         Search for the class constructor only on beforefieldinit classes.
555         Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
556         bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
557         ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
558
559 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
560
561         * interp.c: Updates for changes in metadata/. Better output in debug mode
562         and in the stack trace. Completed rethrow handling
563
564 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
565
566         * interp.c: new macro INIT_FRAME() to properly
567         initialize a MonoInvocation. Fixed a couple of buglets in exception code:
568         increase stack pointer when pushing the exception for catch blocks,
569         initialize frame->ex_handler to NULL, correctly try all the
570         catch blocks (don't incorrectly fallback on filter handling).
571         Added a couple more checks where we may need to throw an
572         exception. Added more exception creation functions.
573         Changed stackval_from_data() to take the target stackval as
574         argument. Implemented a couple more opcodes.
575         * interp.h: prepare stackval for value type code.
576
577 2001-08-21  Miguel de Icaza  <miguel@ximian.com>
578
579         * Makefile.am (mint_LDADD): Renamed interpreter to mint.
580
581 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
582
583         * interp.c (get_named_exception): use the right constructor.
584
585 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
586
587         * interp.c: fix buglet with the leave.s opcode.
588
589 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
590
591         * icall.c: changed everything to support the new calling convention
592
593         * hacks.h: added some macros for FreeBSD 
594
595         * interp.c (get_named_exception): use mono_object_new instead of
596         newobj, initialize the stack before we call the constructor.
597
598 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
599
600         * interp.c, interp.h: added support code to create exceptions.
601         Changed interncal calling convnetion over to MonoInvocation, to support
602         exceptions, walking the stack back and forward and passing the 'this'
603         pointer separately (remove the cludges required before to pass this on the
604         stack). Use alloca heavily for both local vars and a copy of the incoming 
605         arguments. Init local vars to zero.
606         Simplify stackval_from_data() and stackval_to_data() to only take a pointer
607         instead of pointer + offset.
608         Implement a few exceptions-related opcodes and the code to run finally, fault and
609         catch blocks as well as a stack trace if no handler is found.
610         
611 2001-08-16  Alex Graveley  <alex@ximian.com>
612
613         * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
614         instead of ../../libffi/.libs/libffi.a.
615
616 2001-08-10  Dietmar Maurer  <dietmar@ximian.com>
617
618         * interp.c (ves_exec_method): impl CASTCLASS
619
620         * icall.c: moved the internal call stuff to this file
621
622         * interp.c (ves_exec_method): impl. BOX/UNBOX
623         (ves_icall_System_Array_GetValue): impl.
624         (ves_icall_System_Array_SetValue): impl.
625         added myself to Authors
626
627 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
628
629         * implemented arrays, but you will need a modified version of 
630         Array.cs to get arrays working (will commit soon)
631         
632         * interp.c (ves_icall_array_Set): impl.
633         (ves_icall_array_Get): impl.
634         (ves_icall_array_ctor): impl.
635         (ves_icall_System_Array_GetRank): impl.
636         (ves_icall_System_Array_GetLength): impl.
637         (ves_icall_System_Array_GetLowerBound): impl.
638         (mono_lookup_internal_call): impl.
639
640 2001-08-06  Dietmar Maurer  <dietmar@ximian.com>
641
642         * interp.c (ves_exec_method): impl. NEWARR
643         (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
644         (newarr): impl.
645         (mono_get_ansi_string): impl.
646         (mono_lookup_internal_call): impl.
647         (ves_exec_method): implemented internal calls
648
649 2001-08-05  Dietmar Maurer  <dietmar@ximian.com>
650
651         * interp.c (ves_pinvoke_method): removed all static vars.
652
653 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
654
655         * interp.c (ves_exec_method): found a way to do unordered
656         compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S, 
657         CEE_BLE_UN_S, CEE_BLT_UN_S
658         
659 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
660
661         * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
662         Change locals to be a memory blob, instead of the structured
663         (but wrong) stackval. Implement bne.un.s opcode. Make the program
664         exit with the error code from Main().
665
666 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
667
668         * interp.c (ves_exec_method): implemented LDSTR
669
670 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
671
672         * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
673         m_i type.  Maybe we should rename the types to be m_i_t instead of
674         m_i alone.
675         
676         Make the code compile after I broke it.
677
678 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
679
680         * interp.c: fix cleanup.
681         * Makefile.am: don't link with disassembler library.
682
683 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
684
685         (ves_exec_method): Cleanup of the source code.
686
687 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
688
689         * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
690         Provide better tracing with DEBUG_INTERP.
691
692 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
693
694         * interp.c: massive namespace cleanup.
695
696 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
697
698         * interp.c: update to use mono_method->name.
699
700 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
701
702         * interp.c: start implementing callvirt. Classes with
703         class constructors are properly initialized when needed.
704         Fix error introduced in version 1.17.
705
706 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
707
708         * interp.c: implement static field loading and storing.
709
710 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
711
712         * interp.c (ves_pinvoke_method): impl.
713
714 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
715
716         * interp.c: Removed some debugging printouts. Made stackval_to_data
717         static. Handle also instance methods in CALL opcode. Fix ret to properly
718         deal with void functions. Fixed constructor to leave the object on
719         the stack.
720
721 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
722
723         * interp.c: ves_exec_method () doesn't take a MonoImage arg
724         anymore. Use the method cache in MonoImage. Updates to
725         mache recent changes in metadata. 
726         Fix newobj code to use new metadata features. Call the class
727         constructor after allocationg the object. Implemented load field
728         and store field opcodes (the support functions need to be finished).
729         
730 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
731
732         * interp.c, hacks.h: moved a few ugly macros out of the code.
733         Implemented switch opcode.
734
735 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
736
737         * interp.c (newobj): Added function to handle newobj opcode.
738
739 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
740
741         * interp.c (ves_exec_method): Make the interpreter abort with more
742         information than it currently does.
743
744         Enable the slow processor, as it is easier to debug.
745
746 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
747
748         * Started changelog.
749         * interp.c: use new mono_get_method () function to get the complete
750         info on a method invocation: we support now method invocation with
751         multiple (or zero) simple arguments and with or without a return value.
752         Implement also a couple more opcodes.