* reflection.c (method_encode_methodspec): Add a tripwire.
[mono.git] / mono / interpreter / ChangeLog
1 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2
3         * interp.c, interp.h (RuntimeMethod): Due to the jit_code_hash
4         change in MonoDomain this had to be changed slightly, too.
5
6 2006-05-09  Miguel de Icaza  <miguel@novell.com>
7
8         * interp.c (ves_exec_method_with_context): Pass a temporary to the
9         mono_load_remote_field routine, instead of passing a NULL.
10
11 Thu Aug 4 20:09:40 BST 2005 Paolo Molaro <lupus@ximian.com>
12
13         * interp.c: a real zombie is supposed to at least walk.
14         Compilation fix.
15
16 2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
17
18         * transform.c (generate): Add CEE_MONO_NOT_TAKEN.
19
20 2005-01-31  Bernie Solomon  <bernard@ugsolutions.com>
21
22         * interp.c: fix typo
23
24 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
25
26         * *: MonoMethod->signature might be NULL now. You *MUST* use
27         mono_method_signature.
28
29 2005-01-20 Bernie Solomon  <bernard@ugsolutions.com>
30
31         * interp.c: mono_init_icall got renamed
32
33 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
34
35         * transform.c (generate): Handle MONO_CLASSCONST.
36
37 2004-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
38
39         * interp.c: fix the build. Dunno if it's correct.
40
41 2004-12-02  Bernie Solomon  <bernard@ugsolutions.com>
42
43         * mintops.def:
44         * transform.c:
45         * interp.c: cope with new thread interruption icall
46
47 2004-11-12  Ben Maurer  <bmaurer@ximian.com>
48
49         * transform.c: Fix bug with delegates in interp.
50
51 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
52
53         * interp.c: Added MonoRemotingTarget parameter to signature
54         interp_create_remoting_trampoline.
55
56 Tue Nov 9 17:28:48 CET 2004 Paolo Molaro <lupus@ximian.com>
57
58         * interp.c: update to exception clause structure changes.
59
60 2004-11-08  Ben Maurer  <bmaurer@ximian.com>
61
62         * interp.c: warning free
63
64 2004-10-29  Zoltan Varga  <vargaz@freemail.hu>
65
66         * Makefile.am (libgc_libs): Do some automake magic so libmono/mono
67         depends on libmonogc.
68
69 Wed Sep 22 19:06:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
70
71         * interp.c: updates for stack walk interface.
72
73 2004-09-09  Lluis Sanchez Gual  <lluis@novell.com>
74
75         * interp.c: In interp_walk_stack, don't crash if the context is not set
76           (this may happen if the method is called by unmanaged code).
77
78 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
79
80         * interp.c: thread local alloc
81
82 2004-08-05  Bernie Solomon  <bernard@ugsolutions.com>
83
84         * interp.c: (mono_interp_init) use g_thread_supported
85         to stop multiple g_thread_init calls.
86         Also attach domain to thread like mono_jit_init
87
88 2004-07-31  Bernie Solomon  <bernard@ugsolutions.com>
89
90         * interp.h: add mono_interp_ftnptr_to_delegate 
91
92         * transform.c (generate): use mono_interp_ftnptr_to_delegate
93         as ical function.
94
95         * interp.c: add mono_interp_ftnptr_to_delegate to create
96         interpreter style delegate. fixes pinvoke3
97
98 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
99
100         * interp.c: Use mono_init_from_assembly instead of mono_init.
101
102 2004-07-27  Bernie Solomon  <bernard@ugsolutions.com>
103
104         * transform.c (mono_interp_transform_method):
105         quick fix to cope with the fake ptr classes
106
107 2004-07-26  Bernie Solomon  <bernard@ugsolutions.com>
108
109         * mintops.def: more options on ICALL op code
110
111         * interp.c: cope with exception in ICALL ops, more of them
112
113         * transforms.c: more ICALL opcodes
114
115 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
116
117         * mintops.def: rename the ICALL op codes to give a better
118         clue about their signature.
119
120         * transform.c (generate): use new ICALL types and add
121         a case for two args + a result
122
123         * interp.c (ves_exec_method_with_context): new ICALL
124         op codes.
125
126 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
127
128         * mintops.def: add MINT_DUP_VT
129
130         * transform.c (generate): cope with CEE_DUP on value type
131
132         * interp.c (ves_exec_method_with_context): implement MINT_DUP_VT
133         (interp_mono_runtime_invoke): don't unbox this for valuetypes
134         here as it is now done in the callers.
135
136 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
137         
138         * interp.c: register gc roots
139
140 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
141
142         * interp.c mintops.def transform.c: Replace CEE_MONO_PROC<x> with
143         CEE_MONO_ICALL.
144
145 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
146
147         * mintops.h: Applied patch from Marcin Krzyzanowski (krzak@pld-linux.org). Add support for unaligned access on little endian machines.
148
149         * interp.c:Applied patch from Marcin Krzyzanowski (krzak@pld-linux.org). Fix crash seen on amd64.
150
151 2004-06-24  David Waite  <mass@akuma.org>
152
153         * interp.c:  change to C90-style comments from C99/C++-style
154
155 Mon Jun 21 14:06:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
156
157         * interp.h: API updates.
158
159 2004-05-21  Bernie Solomon  <bernard@ugsolutions.com>
160
161         * transform.c: ignore new LMF opcodes 
162
163 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
164
165         * interp.c, interp.h: Use the new methods for handling thread.abort.
166
167 2004-05-04  Zoltan Varga  <vargaz@freemail.hu>
168
169         * interp.c (ves_exec_method_with_context): Disable explicit assignment
170         of 'esi' to the ip variable, since it causes register allocation errors
171         on some versions of gcc. Fixes #58010.
172
173 2004-04-29  Bernie Solomon  <bernard@ugsolutions.com>
174
175         * transform.c (generate): missed a couple
176         of places that should use ADD_CODE so buffer
177         gets grown properly.
178
179         * interp.c (interp_mono_runtime_invoke): 
180         restore state better on catching exception
181         via longjmp here
182
183 2004-04-29  Bernie Solomon  <bernard@ugsolutions.com>
184
185         * transform.c:
186         * interp.c:
187         Implement STARG for valuetypes as mcs needs it.
188
189 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
190
191         * transform.c: Make sure ENSURE_I4 is called on
192         32 bit machines too. 
193         (mono_interp_transform_method): allow some stack
194         space for tracing to work.
195
196 2004-04-26  David Waite  <mass@akuma.org>
197
198         * interp.h: remove comma from end of enumeration constants
199         declarations
200
201 2004-04-21  Bernie Solomon  <bernard@ugsolutions.com>
202
203         * interp.h: put in space for old type field
204         for PPC as tramp.c assumes it. Quick fix until that's fixed.
205
206         * interp.c: reenable instruction tracing for DEBUG_INTERP
207
208 2004-04-19  Bernie Solomon  <bernard@ugsolutions.com>
209
210         * Makefile.am:
211         * interp.h:
212         * interp.c: now interprets different VM code
213         * mintops.h:
214         * mintops.def:
215         * mintops.c: definition of new VM code
216         * transform.c: convert CIL to new VM code
217
218 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
219
220         * interp.c (ves_exec_method_with_context): Add support for STRWLPARRAY 
221         marshalling convention.
222
223 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
224
225         * interp.c interp.h: remove child from MonoInvocation
226         as it isn't used.
227
228 2004-03-25  Martin Baulig  <martin@ximian.com>
229
230         * interp.c (stackval_from_data): Added MONO_TYPE_GENERICINST.
231         (stackval_to_data): Added MONO_TYPE_GENERICINST.
232         (calc_offsets): Use mono_class_get_full() and mono_get_method_full().
233         (ves_exec_method_with_context): Likewise.
234
235 2004-03-04  Lluis Sanchez Gual <lluis@ximian.com>
236
237         * interp.c: Get the type of transparent proxies from its remote_class.
238
239 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
240
241         * interp.c (ves_exec_method_with_context): Add new marshalling 
242         conventions.
243
244 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
245
246         * interp.c (mono_main): Remove call to mono_verify_corlib (), since
247         the verification code is not up-to-date.
248
249 2004-01-19  Bernie Solomon  <bernard@ugsolutions.com>
250
251         * interp.c (ves_exec_method_with_context):
252         get_native_wrapper removed and  call 
253         mono_marshal_get_native_wrapper directly
254         with new DllNotFoundException handling
255
256 Mon Jan 19 17:52:33 CET 2004 Paolo Molaro <lupus@ximian.com>
257
258         * interp.c: eliminate CSIZE macro.
259
260 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
261
262         * interp.c (ves_array_set): Check for ArrayTypeMismatchException.
263
264 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
265
266         * interp.c: call setlocale (). Fixes bug #52100.
267
268 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
269
270         * embed.h, main.c: new files to enable embedding
271         the interpreter
272
273         * interp.c: make main callable from main.c
274         rearrange main for embedding
275
276         * Makefile.am: changes now most code is in a library
277
278 2003-11-21  Lluis Sanchez Gual <lluis@ximian.com>
279
280         * interp.c: Added support for context static fields.
281
282 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
283
284         * interp.c (mono_create_method_pointer): New function which contains
285         the arch independent part of method wrapper creation. Add a cache
286         for the wrapper code, since Delegate::Equals depends on the wrapper
287         address being constant for a method. Fixes #50366.
288
289 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
290
291         * interp.c: (ves_exec_method_with_context)
292         we need to lookup internal calls now.
293         don't free type in CEE_SIZEOF.
294         fix CEE_NEWOBJ inside wrapper methods
295
296 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
297
298         * interp.c: Update after appdomain changes.
299
300 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
301
302         * interp.c - set large stack size on HP 64bit
303
304 2003-10-02  Bernie Solomon  <bernard@ugsolutions.com>
305
306         * hacks.h - work round HP 64 bit problem with isunordered
307
308 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
309
310         * interp.c (dump_frame): Avoid crash on frames without a method. Patch
311         sam@superduper.net (sam clegg). Fixes #46197.
312         (ves_exec_method_with_context): Fix unbox casting.
313
314 2003-09-25  Bernie Solomon  <bernard@ugsolutions.com>
315
316         * interp.c - reinstate use of mono_marshal_get_delegate_invoke
317         for ordering and fix CALLI to handle wrapper. More wrapper handling
318         in CALL and LDSTR. Add another string conversion case.
319
320 2003-09-25  Zoltan Varga  <vargaz@freemail.hu>
321
322         * interp.c (ves_exec_method): Fix warning.
323         (ves_exec_method_with_context): Fix CGT_UN and CLT_UN. Patch by
324         David Waite (mass@akuma.org).
325
326 2003-9-24  Bernie Solomon  <bernard@ugsolutions.com>
327
328         * interp.c: I broke calling native delegates reinstate
329         old code for the moment.
330
331 2003-9-22  Bernie Solomon  <bernard@ugsolutions.com>
332
333         * interp.c: use mono_marshal_get_delegate_invoke to get delegate 
334         invocation order consistent. Fix THROW_EX, fix ip in overflow 
335         exceptions.
336
337 Fri Sep 12 10:42:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
338
339         * interp.c, interp.h: patch from Bernie Solomon <bernard@ugsolutions.com>:
340         64 bit/opcodes/exception handling fixes.
341
342 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
343
344         * interp.c: Use mono_field_from_token () in the appropriate places.
345         This simplifies the code and also fixes #48051.
346
347 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
348
349         * interp.c (main): Fix the order of initialization calls so it maches 
350         the order in the JIT.Patch by Bernie Solomon (bernard@ugsolutions.com).
351         Also remove the unused ms mutex.
352         
353         * interp.c: Get rid of metadata_section.
354         
355 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
356
357         * interp.c (main): Call g_thread_init () to make glib thread-safe. 
358         Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
359         reporting this.
360
361 2003-08-18  Zoltan Varga  <vargaz@freemail.hu>
362
363         * interp.c: Get rid of duplicate definition of CHECK_MUL_OVERFLOW.
364         * interp.h interp.c: Get rid of VAL_VALUETA, use VAL_MP instead. Fix
365         the INITOBJ opcode which was the only user of VALUETA.
366
367 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
368
369         * interp.c (ves_exec_method): Implemented mul.ovf correctly for int32
370         and int64. Implement the conv.ovf opcodes for all argument types.
371
372 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
373
374         * interp.c (ves_exec_method): Handle non-valuetypes in CEE_STOBJ.
375         Fixes #46781.
376         (ves_exec_method): Added support for the synchronized flag to the
377         interpreter. Also fixed the CALLI opcode, and made exception handling
378         work though the managed-unmanaged barrier.
379
380 Fri Jul 25 19:06:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
381
382         * interp.c: updates for new instructions.
383
384 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
385
386         * interp.c: Use the new metadata_section lock instead of metadata_lock.
387         Patch by Bernie Solomon (bernard@ugsolutions.com).
388
389 Fri Jul 18 15:11:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
390
391         * interp.c: 64 bit fixes from Laurent Morichetti <l_m@pacbell.net>.
392         Install cleanup function.
393
394 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
395
396         * interp.c: Keep alloca()-d data on a free list to prevent stack
397         overflow errors when valuetypes are allocated in a loop. Fixes
398         #27420. Is the new code still faster than using malloc/free ?
399
400         * interp.c (ves_array_get): Add index checking to ves_array_get/set.
401         Fixes decimal-array.exe.
402
403         * interp.c (interp_mono_runtime_invoke): Unbox value type instances
404         before calling the method. Fixes appdomain2.exe.
405
406         * interp.c: Fix warnings.
407         
408         * interp.c: Report unhandled exceptions correctly.
409
410         * interp.c: Implement CEE_ISINST and CEE_CASTCLASS using 
411         mono_object_isinst. Fixes bug #45539 and reflection-enum.exe.
412
413 Tue May 27 16:36:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
414
415         * interp.c: don't use relative numbering stuff.
416
417 Tue May 27 12:18:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
418
419         * interp.c: update for mono_class_vtable() changes.
420
421 Tue May 13 16:43:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
422
423         * interp.c: handle thread static fields.
424
425 Sun Apr 27 13:27:59 CEST 2003 Paolo Molaro <lupus@ximian.com>
426
427         * interp.c: check for arraytypemismatch.
428
429 2003-04-23  Martin Baulig  <martin@ximian.com>
430
431         * interp.c: When running with --dieonex, use the debugging code to
432         print source lines in the backtrace.
433
434 2003-02-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
435
436         * interp.c: added a dummy mono_runtime_install_handlers function to
437         avoid crashing when ves_pinvoke_method tries to call it.
438
439 2003-02-06  Piers Haken <piersh@friskit.com>
440
441         * interp.c: warning cleanups
442
443 2002-11-15  Dick Porter  <dick@ximian.com>
444
445         * interp.c: mono_runtime_init() now has an extra parameter for
446         thread attaching.
447
448 2002-10-31  Dick Porter  <dick@ximian.com>
449
450         * Makefile.am: The previous automake-1.6 fix broke automake-1.4 on
451         cygwin.  Try again.
452
453 2002-09-27  Dick Porter  <dick@ximian.com>
454
455         * interp.c: Tell glib what the program name is, by passing it the
456         name of the managed file we're executing
457
458 2002-08-28  Dick Porter  <dick@ximian.com>
459
460         * interp.c: mono_set_rootdir() doesnt take any args now
461
462         * Makefile.am: Export HOST_CC and turn on optimisation for w32 builds
463
464 2002-08-28  Nick Drochak  <ndrochak@gol.com>
465
466         * interp.c: check and throw exception if needed for overflow on 
467         multiplication of integer types.
468
469 2002-08-07  Dietmar Maurer  <dietmar@ximian.com>
470
471         * interp.c (interp_walk_stack): removed the createdelegate icall
472
473 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
474
475         * interp.c (get_virtual_method): support proxies
476         (ves_exec_method): impl. LDFLD/STFLD for proxies.
477
478 Fri Aug 2 13:00:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
479
480         * interp.c, interp.h: implemented exception trap for runtime_invoke
481         and handle exceptions across managed/unmanaged boundaries.
482
483 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
484
485         * interp.c (stackval_from_data): add pinvoke argument
486         (stackval_to_data): add pinvoke argument. We need consider the
487         fact that unmanages structures may have different sizes.
488         (ves_pinvoke_method): do not call stackval_from_data if the result
489         is a value type.
490
491 Wed Jul 31 17:47:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
492
493         * interp.c: simplified some more branch code.
494
495 Wed Jul 31 16:50:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
496
497         * interp.c: fixed indentation, simplified some code.
498
499 Wed Jul 31 14:29:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
500
501         * interp.c: fix so that mint can at least get to executing Main().
502
503 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
504
505         * interp.c: use the new marshaling code. better delegate/remoting 
506         support.
507         (ves_exec_method): bug fix - directly jump to handle_exception.
508
509 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
510
511         * interp.c (main): install compile_method handler
512
513 Wed Jul 24 13:02:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
514
515         * interp.c: implemented stack walking function.
516
517 Fri Jul 19 14:21:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
518
519         * interp.c: fix float boxing on LE systems.
520
521 Sat Jul 13 19:54:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
522
523         * interp.c: advance ip in conv.r.un.
524
525 2002-07-01  Dick Porter  <dick@ximian.com>
526
527         * interp.c (ves_exec): Removed unneeded argument to
528         mono_runtime_run_main()
529
530 2002-06-25  Dick Porter  <dick@ximian.com>
531
532         * interp.c (ves_exec): Pass the assembly to mono_runtime_run_main
533
534 Wed Jun 19 17:01:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
535
536         * interp.c: un-broke after stack trace changes.
537
538 Fri May 31 16:17:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
539
540         * interp.c, hacks.h: compiler compatibility fixes.
541
542 Fri May 31 13:25:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
543
544         * interp.c, mint.1: added --config command line option.
545
546 Thu May 30 14:14:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
547
548         * interp.c: lookup P/Invoke method addr only when needed.
549
550 2002-05-29  Dietmar Maurer  <dietmar@ximian.com>
551
552         * interp.c (ves_exec_method): free type in CEE_SIZEOF
553
554 Tue May 28 16:10:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
555
556         * interp.c: fixed SIZEOF to work with typedef/typeref.
557
558 Fri May 24 15:33:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
559
560         * interp.c: added partial async delegate and remoting support.
561
562 Thu May 23 18:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
563
564         * interp.c: special case string ctors in invoke.
565         Handle null object in throw. Misc integer type mismatch fixes.
566
567 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
568
569         * interp.c (ves_runtime_method): share more code with the jit.
570
571 Wed May 22 12:31:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
572
573         * interp.c: fixed finally handling. In trace mode show
574         exception handling operations and the contents of the stack in the same
575         line as the executing instruction.
576
577 2002-05-20  Miguel de Icaza  <miguel@ximian.com>
578
579         * interp.c: Updated help display.
580
581 2002-05-20  Radek Doulik  <rodo@ximian.com>
582
583         * interp.c (dump_stack): print boxed values for --noptr
584         (ves_exec_method): use stackval_to_data as pointed out by lupus
585
586 2002-05-17  Radek Doulik  <rodo@ximian.com>
587
588         * interp.c (dump_stack): if --noptr then print content of strings
589         in form [str:<printed string>]
590
591 2002-05-16  Radek Doulik  <rodo@ximian.com>
592
593         * interp.c (ves_exec_method): use data.i instead of data.l in i32
594         case
595         (ves_exec_method): set type in I64 <--> I32 conversions
596
597 2002-05-15  Radek Doulik  <rodo@ximian.com>
598
599         * interp.c (ves_runtime_method): moved stackval_from_data call
600         inside #else branch, consulted on irc with lupus
601
602 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
603
604         * interp.c (ves_exec_method): use new mono_unhandled_exception()
605
606 2002-05-14  Radek Doulik  <rodo@ximian.com>
607
608         * interp.c: introduced new --noptr option to suppres pointer
609         address printing. I find this useful for comparing trace outputs
610         while porting to ppc
611
612 Tue May 14 16:37:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
613
614         * interp.c: some finally handling fixes and compilation fixes for
615         changes in the runtime lib.
616
617 2002-04-30  Dick Porter  <dick@ximian.com>
618
619         * interp.c: Tell glib to not abort when g_log() etc print
620         recursively
621
622 Mon Apr 22 16:52:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
623
624         * interp.c: handle muslticast delegates. Implement a couple more
625         convert opcodes. Pretend we spend some time jitting...
626
627 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
628
629         * interp.c (ves_exec_method): support internalcall String constructors
630
631 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
632         
633         * interp.c: support for new szarray format.
634
635 Tue Apr 16 20:12:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
636
637         * interp.c: removed profiling code (moved to common library).
638         Implemented inlining for some special methods.
639
640 2002-04-15      Patrik Torstensson <patrik.torstensson@labs2.com>
641
642         * interp.c: Using fullnames when adding icall's (array)
643
644 Wed Apr 10 16:07:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
645
646         * interp.c: quick implementation for opcodes needed by the new parse
647         routines in corlib.
648
649 Tue Apr 9 13:08:26 CEST 2002 Paolo Molaro <lupus@ximian.com>
650
651         * interp.c: make the interp thread-safe wrt the metadata lib.
652
653 Mon Apr 8 17:15:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
654
655         * interp.c: display return value with --trace.
656         Call mono_runtime_init ().
657
658 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
659
660         * interp.c (interp_mono_runtime_invoke): handle more types,
661         removed runtime_exec_main
662
663 Thu Apr 4 11:36:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
664
665         * interp.c: don't try to get an IL opcode for runtime and internal
666         call methods.
667
668 Thu Mar 28 16:54:51 CET 2002 Paolo Molaro <lupus@ximian.com>
669
670         * interp.c: spring warning cleanup.
671
672 Thu Mar 28 12:03:28 CET 2002 Paolo Molaro <lupus@ximian.com>
673
674         * interp.c: check obj address in stfld.
675
676 2002-03-27  Dietmar Maurer  <dietmar@ximian.com>
677
678         * interp.c (ves_exec_method): CASTCLASS: fix for transparent proxy
679
680 Tue Mar 26 20:09:10 CET 2002 Paolo Molaro <lupus@ximian.com>
681
682         * interp.c: set frame->ip before dumping the stack trace.
683
684 Tue Mar 26 19:54:45 CET 2002 Paolo Molaro <lupus@ximian.com>
685
686         * interp.c: remove glib mem vtable code.
687
688 2002-03-26  Dick Porter  <dick@ximian.com>
689
690         * interp.c: Show thread ID's in trace output.
691                 
692         New option "--traceclassinit" to put debug output around
693         runtime_class_init().
694
695         Make sure all options are displayed in usage().
696
697 Tue Mar 26 17:03:14 CET 2002 Paolo Molaro <lupus@ximian.com>
698
699         * interp.c: support fieldrefs when accessing instance fields.
700
701 Mon Mar 25 12:59:52 CET 2002 Paolo Molaro <lupus@ximian.com>
702
703         * interp.c: allow tracing to be done on a per-method basis.
704         Fix interp_mono_runtime_invoke() to deal correcttly with the return
705         value. Disable glib mem vtable setting.
706
707 Thu Mar 21 18:08:37 CET 2002 Paolo Molaro <lupus@ximian.com>
708
709         * interp.c: set stack trace info when throwing an exception.
710
711 Thu Mar 21 17:32:46 CET 2002 Paolo Molaro <lupus@ximian.com>
712
713         * interp.c: intern strings before executing a method (and don't 
714         intern command line arguments anymore). Add sanity checks in alloca
715         use.
716
717 Sat Mar 16 19:15:18 CET 2002 Paolo Molaro <lupus@ximian.com>
718
719         * interp.c: restore frame on return from unmanaged calls.
720         Add support for continuing execution up to x IL insn.
721         Fix exception handling when an exception is raised in the catch
722         handler of the same method that issued the first one.
723
724 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
725
726         * interp.c (ves_runtime_method): set method_info field
727
728 Mon Mar 11 14:48:07 CET 2002 Paolo Molaro <lupus@ximian.com>
729
730         * interp.c: corlib consistency checls moved to libmetadata.
731
732 Mon Mar 11 11:27:27 CET 2002 Paolo Molaro <lupus@ximian.com>
733
734         * interp.c: use the new facilities in debug-helpers to
735         disassemble CIL code and match method names to MonoMethods.
736
737 Thu Mar 7 17:20:59 CET 2002 Paolo Molaro <lupus@ximian.com>
738
739         * interp.c: Boehm-GC enable. Fix some overflow opcodes.
740
741 Tue Mar 5 18:12:40 CET 2002 Paolo Molaro <lupus@ximian.com>
742
743         * interp.c: fix non-debug build and some more opcode work.
744
745 Mon Mar 4 11:21:44 CET 2002 Paolo Molaro <lupus@ximian.com>
746
747         * interp.c: print the address of 'this' in tracing mode.
748
749 Thu Feb 28 19:18:59 CET 2002 Paolo Molaro <lupus@ximian.com>
750
751         * interp.c: add checks for more binary consistency.
752
753 2002-02-27  Dietmar Maurer  <dietmar@ximian.com>
754
755         * interp.c (interp_mono_runtime_invoke): use alloca instead of g_new0
756
757 Tue Feb 26 11:43:34 CET 2002 Paolo Molaro <lupus@ximian.com>
758
759         * interp.c: added profiling for object creation.
760
761 Mon Feb 25 17:37:07 CET 2002 Paolo Molaro <lupus@ximian.com>
762
763         * interp.c: use correct value for guint64 max.
764
765 2002-02-22  Radek Doulik  <rodo@ximian.com>
766
767         * interp.c: s/gulong/guint64 as it differs on ppc
768
769 Wed Feb 20 22:18:40 CET 2002 Paolo Molaro <lupus@ximian.com>
770
771         * interp.c: more complete runtime_invoke () implementation.
772         Fixed castclass/isinst to work correctly with arrays.
773
774 Tue Feb 19 20:21:14 CET 2002 Paolo Molaro <lupus@ximian.com>
775
776         * interp.c: implement the runtime_invoke function.
777
778 Mon Feb 18 15:49:20 CET 2002 Paolo Molaro <lupus@ximian.com>
779
780         * interp.c: fix alignment code. Make sure to init classes
781         in more cases. Command-line arguments are interned.
782
783 2002-02-16  Radek Doulik  <rodo@ximian.com>
784
785         * interp.c (ves_exec_method): test type of sp [-1] instead of sp
786         [0], because sp [-1] is the value going to be shifted, fixed in
787         CEE_SHL, CEE_SHR, CEE_UN opcodes)
788
789 Sat Feb 16 12:00:24 CET 2002 Paolo Molaro <lupus@ximian.com>
790
791         * interp.c: fixed cut&paste error for ldind.r4 and ldind.r8.
792
793 Fri Feb 15 15:07:27 CET 2002 Paolo Molaro <lupus@ximian.com>
794
795         * interp.c: use strrchr instead of rindex. use _isnan and _finite on
796         win32 systems.
797
798 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
799
800         * interp.c (ves_exec_method): replace 
801         'g_assert (sp->type = VAL_VALUETA)' with 
802         'g_assert (sp->type == VAL_VALUETA)' otherwise
803         the assert always passes. FIXME: should the test have been !=?
804
805 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
806
807         * interp.c (stackval_from_data): fix for MONO_TYPE_PTR
808
809 Wed Feb 13 16:17:38 CET 2002 Paolo Molaro <lupus@ximian.com>
810
811         * interp.c: fixed newobj implementation for valuetypes bug found by
812         dietmar. sub.ovf dummy code.
813
814 Tue Feb 12 14:08:47 CET 2002 Paolo Molaro <lupus@ximian.com>
815
816         * hacks.h: check against redefining preprocessor symbol.
817         * interp.c: fix profile info to return more sensible results.
818
819 Mon Feb 11 13:05:29 CET 2002 Paolo Molaro <lupus@ximian.com>
820
821         * interp.c: added "die on exception" command line argument.
822         When we segfault, set the message in the exception to "Segmentation
823         fault" so people can recognise what's going on.
824
825 2002-02-10  Miguel de Icaza  <miguel@ximian.com>
826
827         * interp.c (ves_exec_method): Compare the element_class type token
828         in the class we got as well, instead of the element class vs the
829         toplevel class.
830
831         This fixes the invalid cast exceptions during unboxing
832
833 Fri Feb 8 13:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
834
835         * interp.c: use opcode information from libmetadata.
836
837 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
838
839         * interp.c (ves_exec_method): CEE_UNBOX: use element_class for
840         type check.
841
842 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
843
844         * interp.c (main): impl. __array_Address icall
845
846 Fri Feb 1 16:03:53 CET 2002 Paolo Molaro <lupus@ximian.com>
847
848         * interp.c: exception fixes. Use mono_method_pointer_get ()
849         to easy porting to other archs. Some support for overflow detection.
850
851 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
852
853         * interp.c, jit.c (main): install runtime_exec_main handler
854         (main): bug fix - call TlsAlloc () before we execute code
855
856 2002-01-23  Dick Porter  <dick@ximian.com>
857
858         * interp.c: Added some kludges to cope with CONV_OVF_I2,
859         CONV_OVF_I4 and ADD_OVF so that number formatting works.  Also
860         initialise and cleanup the network support.
861
862 Thu Jan 10 20:59:59 CET 2002 Paolo Molaro <lupus@ximian.com>
863
864         * interp.c, interp.h: add a flag to mono_create_trampoline ()
865         to handle runtime methods.
866
867 Sat Jan 5 15:45:14 CET 2002 Paolo Molaro <lupus@ximian.com>
868
869         * interp.c: allow classname:method name in --debug argument.
870         Fix box opcode for valuetypes. Fix a few opcode to take a 16 bit
871         index instead of 32 (stloc, ldloc, starg, etc.).
872
873 Thu Jan 3 23:19:27 CET 2002 Paolo Molaro <lupus@ximian.com>
874
875         * interp.c: temporary mul.ovf, mul.ovf.un, add.ovf.un implementations
876         to get the compiler going.
877
878 Mon Dec 24 17:23:45 CET 2001 Paolo Molaro <lupus@ximian.com>
879
880         * interp.c: fix ldc.i8.
881
882 Thu Dec 20 20:09:48 CET 2001 Paolo Molaro <lupus@ximian.com>
883
884         * interp.c: fix delegate method invocation to handle both
885         static and instance methods.
886
887 Tue Dec 18 18:48:50 CET 2001 Paolo Molaro <lupus@ximian.com>
888
889         * interp.c: make segv_handler static, handle runtime methods in stack
890         trace.
891
892 Thu Dec 13 20:24:28 CET 2001 Paolo Molaro <lupus@ximian.com>
893
894         * interp.c: correctly handle exceptions generated in C code.
895         Install an handler for SIGSEGV. Bare-bones profiler and hook for the
896         verifier.
897
898 Mon Dec 3 17:15:44 CET 2001 Paolo Molaro <lupus@ximian.com>
899
900         * interp.c: call mono_init() after registering internal calls.
901
902 2001-11-30  Dick Porter  <dick@ximian.com>
903
904         * interp.c: Replace get_named_exception() with
905         mono_exception_from_name()
906
907 Fri Nov 30 12:05:21 CET 2001 Paolo Molaro <lupus@ximian.com>
908
909         * interp.c: calculate locals and args offsets only once
910         per method call. Cache trampoline code as well.
911
912 2001-11-23  Dietmar Maurer  <dietmar@ximian.com>
913
914         * interp.c (ves_exec_method): bug fix for exception5.cs
915
916 Mon Nov 19 11:33:00 CET 2001 Paolo Molaro <lupus@ximian.com>
917
918         * interp.c: start adding support for handling exceptions across
919         managed/unmanaged boundaries. Cleanup Delegate method invocation.
920         Pass the correct target object in Delegate::Invoke and use the correct
921         'this' pointer in ldvirtftn (bugs pointed out by Dietmar).
922
923 Thu Nov 15 17:40:24 CET 2001 Paolo Molaro <lupus@ximian.com>
924
925         * interp.c: handle enums with underlying type different from int32.
926         More checks for C structs <-> C# objects consistency.
927
928 Wed Nov 14 19:23:00 CET 2001 Paolo Molaro <lupus@ximian.com>
929
930         * interp.c: move the stack frame dumping code to a function so it can
931         be called from the debugger. Fix virtual method lookup for interfaces.
932         Throw exceptions instead of aborting in more places.
933         Print also the message in an exception. Updates for field renames in
934         corlib.
935
936 2001-11-09  Dick Porter  <dick@ximian.com>
937
938         * Makefile.am (mint_LDADD): Don't need THREAD_LIBS any more
939
940 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
941
942         * interp.c: Include stdlib to kill warning.
943         (check_corlib): Adjust format encodings to remove warnings.
944
945 Wed Nov 7 15:47:36 CET 2001 Paolo Molaro <lupus@ximian.com>
946
947         * interp.c: updates for changes in array code.
948
949 Fri Nov 2 19:06:54 CET 2001 Paolo Molaro <lupus@ximian.com>
950
951         * interp.c: hanlde field refs. Throw an exception on NULL references.
952         Check consistency of corlib types with the C struct representation.
953
954 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
955
956         * interp.c (ves_exec_method): use relative numbering for runtime
957         type checks (and make it work with interfaces)
958
959 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
960
961         * interp.c: removed newobj()
962
963 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
964
965         * interp.c (get_virtual_method): use the vtable
966         (arch_compile_method): added to compute vtable entry
967
968 Mon Oct 8 16:14:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
969
970         * interp.c: use the accessors provided in object.h to deal with
971         MonoArrays. Updates for API renames in metadata. Throw exception
972         in ldelema if index is out of bounds.
973
974 Mon Oct 8 10:44:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
975
976         * interp.c: fixes for changes in metadata.
977
978 2001-10-04  Dick Porter  <dick@ximian.com>
979
980         * interp.c (ves_runtime_method): init_class() the
981         mono_defaults.delegate_class
982         Include mono-endian.h not endian.h
983
984 Tue Oct 2 18:51:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
985
986         * interp.c: set frame->ip in the leave opcode. Make db_methods static.
987
988 Sun Sep 30 11:57:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
989
990         * interp.c: compiler and ANSI C portability fixes.
991
992 Fri Sep 28 19:37:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
993
994         * interp.c: Implemented ldtoken, conv.ovf.i. Use MonoClass->byval_arg
995         (and remove related kludges). Don't choke on access to arrays of
996         references. Throw an exception when an internalcall or P/Invoke
997         function don't have an implementation. Throw and EngineException
998         for unimplemented opcodes.
999
1000 Tue Sep 25 11:12:35 CEST 2001 Paolo Molaro <lupus@ximian.com>
1001
1002         * interp.c: fixed get_virtual_method () to deal with interface
1003         methods better.
1004
1005 Mon Sep 24 18:50:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
1006
1007         * interp.c: catch a few more error conditions with exceptions instead of
1008         erroring out.
1009         Don't use g_print() in stack traces because it doesn't work with
1010         some float values.
1011         When we call an instance method of a valuetype class, unbox the 'this'
1012         argument if it is an object.
1013         Use mono_ldstr () to implement the ldstr opcode: it takes care of
1014         interning the string if necessary.
1015         Implemented new opcodes: ckfinite, cgt.un, clt.un, ldvirtftn, ldarga.
1016         Fixes to handle NaNs when comparing doubles.
1017         Make sure the loaded assembly has an entry point defined.
1018         Fixed portability bugs in neg and not opcodes.
1019
1020 2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
1021
1022         * interp.c (ves_exec_method): LDC_I4: 8bit constants are signed
1023         (ves_exec_method): bug fix for NOT/NEG
1024         (main): fix bug in parameter parsing
1025
1026 2001-09-23  Dick Porter  <dick@ximian.com>
1027
1028         * Makefile.am (mint_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
1029
1030 2001-09-23  Dick Porter  <dick@ximian.com>
1031
1032         * interp.c (main): Do some thread setup and cleanup around the
1033         call to ves_exec()
1034
1035 2001-09-21  Dick Porter  <dick@ximian.com>
1036
1037         * Makefile.am (mint_LDADD): Added PTHREAD_LIBS to the link line
1038
1039 Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>
1040
1041         * interp.c: implemented some more opcodes: calli, rem.un,
1042         shr.un, conv.u, cpobj, stobj, conv.r.un, conv.ovf.i1.un,
1043         conv.ovf.i2.un, conv.ovf.i4.un, conv.ovf.i8.un, conv.ovf.i.un,
1044         conv.ovf.u1.un, conv.ovf.u2.un, conv.ovf.u4.un, conv.ovf.u8.un,
1045         conv.ovf.u.un.
1046         Fix some 64 bit issues in the array element access code and a small bug.
1047         Throw an exception on index out of range instead of asserting.
1048         Throw an exception on a NULL array instead of dying.
1049         Stomped a memory corruption bug (.cctor methods were freed after
1050         executing them, but they are stores in MonoClass now...).
1051         Added a simple facility to invoke the debugger when a named
1052         function is entered (use the cmdline option --debug method_name).
1053         * interp.h: fix 64 bit issue.
1054
1055 Tue Sep 18 13:21:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
1056
1057         * interp.c: fix some 64 bit issues. Safer support for delegates.
1058
1059 2001-09-12  Miguel de Icaza  <miguel@ximian.com>
1060
1061         * interp.c (ves_exec_method): implement conv.u8 opcode. 
1062
1063 Mon Sep 10 20:20:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
1064
1065         * interp.c: endian fixes, comments.
1066
1067 Fri Sep 7 18:45:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
1068
1069         * interp.c, interp.h: make ves_exec_method () and stackval_from_data ()
1070         non static. Implement a couple of runtime methods needed to
1071         use delegates (ves_runtime_method ()).
1072         Implemented ldftn opcode.
1073
1074 Thu Sep 6 15:41:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
1075
1076         * Makefile.am: link to libmonoarch.
1077         * interp.h, interp.c: use mono_create_trampoline ().
1078         Pass the command line arguments to Main (String[]) methods.
1079
1080 2001-08-30  Dietmar Maurer  <dietmar@ximian.com>
1081
1082         * interp.c (ves_pinvoke_method): removed the libffi dependency
1083
1084 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
1085
1086         * interp.c (ves_array_set): moved from icall.c
1087         (ves_array_get): moved from icall.c
1088
1089         * icall.c: moved to metadata/icall.c
1090
1091 Wed Aug 29 12:46:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1092
1093         * interp.c: some small optimizations. Fixes to do signed
1094         compares when needed. Change C++ comments into C.
1095         Implemented cgt, clt. Added --opcode-count cmdline switch.
1096
1097 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1098
1099         * interp.c (ves_exec_method): better check for value types (get
1100         the class to detect if we have a value type), implemented CEE_CONV_U1,
1101         CEE_CONV_U2, CEE_CEQ
1102         
1103
1104 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1105
1106         * interp.c: warn and exit when Main () expects the cmdline arguments
1107         instead of creashing.
1108
1109 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
1110
1111         * interp.c: merge isinst/castclass handling. Hopefully implement
1112         the right semantics for handling callvirt correctly (changes
1113         here and there to support it). Integrate bugfix from Dietmar quickly
1114         so he needs to handle the cvs conflict:-)
1115
1116 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1117
1118         * interp.c: fix compilation and updates for changes in metadata/.
1119
1120 2001-08-26  Miguel de Icaza  <miguel@ximian.com>
1121
1122         * interp.c (main): Add option handling for the interpreter,
1123         support the `--trace' option.
1124
1125 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
1126
1127         * interp.c: get in a dummy virtual method dispatch.
1128         Added support for int64, native int and native uint as arguments.
1129         Added debug enter/leave for icall and pinvoke methods, too.
1130         Implement opcodes conv.i, conv.i8, ldelema.
1131
1132 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1133
1134         * interp.h, interp.c: load also a MonoClass pointer when we load
1135         an address on the stack. Implemented conv.i1, conv.i2, con.i4,
1136         conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
1137         and the name of the exception.
1138
1139 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
1140
1141         * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
1142         ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
1143
1144 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
1145
1146         * interp.c: handle enumerations specially (not as valuetypes).
1147
1148 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
1149
1150         * interp.h, interp.c: add support for valuetypes.
1151
1152 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
1153
1154         * interp.c: updates for merge of MonoParam in MonoType.
1155
1156 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
1157
1158         * interp.c: removed beforefieldinit check, it's a useless flag.
1159         Added a couple more test cases to tests/ dir.
1160
1161 2001-08-22  Miguel de Icaza  <miguel@ximian.com>
1162
1163         * interp.c (usage): Add version information
1164         (ves_pinvoke_method): Typo fix.
1165
1166 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
1167
1168         * interp.c: simplified init_class (). Make sure a class
1169         is fully initialized before executing a method in the class.
1170         Search for the class constructor only on beforefieldinit classes.
1171         Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
1172         bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
1173         ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
1174
1175 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
1176
1177         * interp.c: Updates for changes in metadata/. Better output in debug mode
1178         and in the stack trace. Completed rethrow handling
1179
1180 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
1181
1182         * interp.c: new macro INIT_FRAME() to properly
1183         initialize a MonoInvocation. Fixed a couple of buglets in exception code:
1184         increase stack pointer when pushing the exception for catch blocks,
1185         initialize frame->ex_handler to NULL, correctly try all the
1186         catch blocks (don't incorrectly fallback on filter handling).
1187         Added a couple more checks where we may need to throw an
1188         exception. Added more exception creation functions.
1189         Changed stackval_from_data() to take the target stackval as
1190         argument. Implemented a couple more opcodes.
1191         * interp.h: prepare stackval for value type code.
1192
1193 2001-08-21  Miguel de Icaza  <miguel@ximian.com>
1194
1195         * Makefile.am (mint_LDADD): Renamed interpreter to mint.
1196
1197 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
1198
1199         * interp.c (get_named_exception): use the right constructor.
1200
1201 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
1202
1203         * interp.c: fix buglet with the leave.s opcode.
1204
1205 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
1206
1207         * icall.c: changed everything to support the new calling convention
1208
1209         * hacks.h: added some macros for FreeBSD 
1210
1211         * interp.c (get_named_exception): use mono_object_new instead of
1212         newobj, initialize the stack before we call the constructor.
1213
1214 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
1215
1216         * interp.c, interp.h: added support code to create exceptions.
1217         Changed interncal calling convnetion over to MonoInvocation, to support
1218         exceptions, walking the stack back and forward and passing the 'this'
1219         pointer separately (remove the cludges required before to pass this on the
1220         stack). Use alloca heavily for both local vars and a copy of the incoming 
1221         arguments. Init local vars to zero.
1222         Simplify stackval_from_data() and stackval_to_data() to only take a pointer
1223         instead of pointer + offset.
1224         Implement a few exceptions-related opcodes and the code to run finally, fault and
1225         catch blocks as well as a stack trace if no handler is found.
1226         
1227 2001-08-16  Alex Graveley  <alex@ximian.com>
1228
1229         * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
1230         instead of ../../libffi/.libs/libffi.a.
1231
1232 2001-08-10  Dietmar Maurer  <dietmar@ximian.com>
1233
1234         * interp.c (ves_exec_method): impl CASTCLASS
1235
1236         * icall.c: moved the internal call stuff to this file
1237
1238         * interp.c (ves_exec_method): impl. BOX/UNBOX
1239         (ves_icall_System_Array_GetValue): impl.
1240         (ves_icall_System_Array_SetValue): impl.
1241         added myself to Authors
1242
1243 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
1244
1245         * implemented arrays, but you will need a modified version of 
1246         Array.cs to get arrays working (will commit soon)
1247         
1248         * interp.c (ves_icall_array_Set): impl.
1249         (ves_icall_array_Get): impl.
1250         (ves_icall_array_ctor): impl.
1251         (ves_icall_System_Array_GetRank): impl.
1252         (ves_icall_System_Array_GetLength): impl.
1253         (ves_icall_System_Array_GetLowerBound): impl.
1254         (mono_lookup_internal_call): impl.
1255
1256 2001-08-06  Dietmar Maurer  <dietmar@ximian.com>
1257
1258         * interp.c (ves_exec_method): impl. NEWARR
1259         (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
1260         (newarr): impl.
1261         (mono_get_ansi_string): impl.
1262         (mono_lookup_internal_call): impl.
1263         (ves_exec_method): implemented internal calls
1264
1265 2001-08-05  Dietmar Maurer  <dietmar@ximian.com>
1266
1267         * interp.c (ves_pinvoke_method): removed all static vars.
1268
1269 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
1270
1271         * interp.c (ves_exec_method): found a way to do unordered
1272         compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S, 
1273         CEE_BLE_UN_S, CEE_BLT_UN_S
1274         
1275 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
1276
1277         * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
1278         Change locals to be a memory blob, instead of the structured
1279         (but wrong) stackval. Implement bne.un.s opcode. Make the program
1280         exit with the error code from Main().
1281
1282 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
1283
1284         * interp.c (ves_exec_method): implemented LDSTR
1285
1286 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
1287
1288         * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
1289         m_i type.  Maybe we should rename the types to be m_i_t instead of
1290         m_i alone.
1291         
1292         Make the code compile after I broke it.
1293
1294 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
1295
1296         * interp.c: fix cleanup.
1297         * Makefile.am: don't link with disassembler library.
1298
1299 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
1300
1301         (ves_exec_method): Cleanup of the source code.
1302
1303 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
1304
1305         * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
1306         Provide better tracing with DEBUG_INTERP.
1307
1308 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
1309
1310         * interp.c: massive namespace cleanup.
1311
1312 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
1313
1314         * interp.c: update to use mono_method->name.
1315
1316 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1317
1318         * interp.c: start implementing callvirt. Classes with
1319         class constructors are properly initialized when needed.
1320         Fix error introduced in version 1.17.
1321
1322 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
1323
1324         * interp.c: implement static field loading and storing.
1325
1326 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
1327
1328         * interp.c (ves_pinvoke_method): impl.
1329
1330 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
1331
1332         * interp.c: Removed some debugging printouts. Made stackval_to_data
1333         static. Handle also instance methods in CALL opcode. Fix ret to properly
1334         deal with void functions. Fixed constructor to leave the object on
1335         the stack.
1336
1337 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
1338
1339         * interp.c: ves_exec_method () doesn't take a MonoImage arg
1340         anymore. Use the method cache in MonoImage. Updates to
1341         mache recent changes in metadata. 
1342         Fix newobj code to use new metadata features. Call the class
1343         constructor after allocationg the object. Implemented load field
1344         and store field opcodes (the support functions need to be finished).
1345         
1346 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
1347
1348         * interp.c, hacks.h: moved a few ugly macros out of the code.
1349         Implemented switch opcode.
1350
1351 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
1352
1353         * interp.c (newobj): Added function to handle newobj opcode.
1354
1355 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
1356
1357         * interp.c (ves_exec_method): Make the interpreter abort with more
1358         information than it currently does.
1359
1360         Enable the slow processor, as it is easier to debug.
1361
1362 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1363
1364         * Started changelog.
1365         * interp.c: use new mono_get_method () function to get the complete
1366         info on a method invocation: we support now method invocation with
1367         multiple (or zero) simple arguments and with or without a return value.
1368         Implement also a couple more opcodes.