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