2 Wed Feb 20 22:18:40 CET 2002 Paolo Molaro <lupus@ximian.com>
4 * interp.c: more complete runtime_invoke () implementation.
5 Fixed castclass/isinst to work correctly with arrays.
7 Tue Feb 19 20:21:14 CET 2002 Paolo Molaro <lupus@ximian.com>
9 * interp.c: implement the runtime_invoke function.
11 Mon Feb 18 15:49:20 CET 2002 Paolo Molaro <lupus@ximian.com>
13 * interp.c: fix alignment code. Make sure to init classes
14 in more cases. Command-line arguments are interned.
16 2002-02-16 Radek Doulik <rodo@ximian.com>
18 * interp.c (ves_exec_method): test type of sp [-1] instead of sp
19 [0], because sp [-1] is the value going to be shifted, fixed in
20 CEE_SHL, CEE_SHR, CEE_UN opcodes)
22 Sat Feb 16 12:00:24 CET 2002 Paolo Molaro <lupus@ximian.com>
24 * interp.c: fixed cut&paste error for ldind.r4 and ldind.r8.
26 Fri Feb 15 15:07:27 CET 2002 Paolo Molaro <lupus@ximian.com>
28 * interp.c: use strrchr instead of rindex. use _isnan and _finite on
31 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
33 * interp.c (ves_exec_method): replace
34 'g_assert (sp->type = VAL_VALUETA)' with
35 'g_assert (sp->type == VAL_VALUETA)' otherwise
36 the assert always passes. FIXME: should the test have been !=?
38 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
40 * interp.c (stackval_from_data): fix for MONO_TYPE_PTR
42 Wed Feb 13 16:17:38 CET 2002 Paolo Molaro <lupus@ximian.com>
44 * interp.c: fixed newobj implementation for valuetypes bug found by
45 dietmar. sub.ovf dummy code.
47 Tue Feb 12 14:08:47 CET 2002 Paolo Molaro <lupus@ximian.com>
49 * hacks.h: check against redefining preprocessor symbol.
50 * interp.c: fix profile info to return more sensible results.
52 Mon Feb 11 13:05:29 CET 2002 Paolo Molaro <lupus@ximian.com>
54 * interp.c: added "die on exception" command line argument.
55 When we segfault, set the message in the exception to "Segmentation
56 fault" so people can recognise what's going on.
58 2002-02-10 Miguel de Icaza <miguel@ximian.com>
60 * interp.c (ves_exec_method): Compare the element_class type token
61 in the class we got as well, instead of the element class vs the
64 This fixes the invalid cast exceptions during unboxing
66 Fri Feb 8 13:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
68 * interp.c: use opcode information from libmetadata.
70 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
72 * interp.c (ves_exec_method): CEE_UNBOX: use element_class for
75 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
77 * interp.c (main): impl. __array_Address icall
79 Fri Feb 1 16:03:53 CET 2002 Paolo Molaro <lupus@ximian.com>
81 * interp.c: exception fixes. Use mono_method_pointer_get ()
82 to easy porting to other archs. Some support for overflow detection.
84 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
86 * interp.c, jit.c (main): install runtime_exec_main handler
87 (main): bug fix - call TlsAlloc () before we execute code
89 2002-01-23 Dick Porter <dick@ximian.com>
91 * interp.c: Added some kludges to cope with CONV_OVF_I2,
92 CONV_OVF_I4 and ADD_OVF so that number formatting works. Also
93 initialise and cleanup the network support.
95 Thu Jan 10 20:59:59 CET 2002 Paolo Molaro <lupus@ximian.com>
97 * interp.c, interp.h: add a flag to mono_create_trampoline ()
98 to handle runtime methods.
100 Sat Jan 5 15:45:14 CET 2002 Paolo Molaro <lupus@ximian.com>
102 * interp.c: allow classname:method name in --debug argument.
103 Fix box opcode for valuetypes. Fix a few opcode to take a 16 bit
104 index instead of 32 (stloc, ldloc, starg, etc.).
106 Thu Jan 3 23:19:27 CET 2002 Paolo Molaro <lupus@ximian.com>
108 * interp.c: temporary mul.ovf, mul.ovf.un, add.ovf.un implementations
109 to get the compiler going.
111 Mon Dec 24 17:23:45 CET 2001 Paolo Molaro <lupus@ximian.com>
113 * interp.c: fix ldc.i8.
115 Thu Dec 20 20:09:48 CET 2001 Paolo Molaro <lupus@ximian.com>
117 * interp.c: fix delegate method invocation to handle both
118 static and instance methods.
120 Tue Dec 18 18:48:50 CET 2001 Paolo Molaro <lupus@ximian.com>
122 * interp.c: make segv_handler static, handle runtime methods in stack
125 Thu Dec 13 20:24:28 CET 2001 Paolo Molaro <lupus@ximian.com>
127 * interp.c: correctly handle exceptions generated in C code.
128 Install an handler for SIGSEGV. Bare-bones profiler and hook for the
131 Mon Dec 3 17:15:44 CET 2001 Paolo Molaro <lupus@ximian.com>
133 * interp.c: call mono_init() after registering internal calls.
135 2001-11-30 Dick Porter <dick@ximian.com>
137 * interp.c: Replace get_named_exception() with
138 mono_exception_from_name()
140 Fri Nov 30 12:05:21 CET 2001 Paolo Molaro <lupus@ximian.com>
142 * interp.c: calculate locals and args offsets only once
143 per method call. Cache trampoline code as well.
145 2001-11-23 Dietmar Maurer <dietmar@ximian.com>
147 * interp.c (ves_exec_method): bug fix for exception5.cs
149 Mon Nov 19 11:33:00 CET 2001 Paolo Molaro <lupus@ximian.com>
151 * interp.c: start adding support for handling exceptions across
152 managed/unmanaged boundaries. Cleanup Delegate method invocation.
153 Pass the correct target object in Delegate::Invoke and use the correct
154 'this' pointer in ldvirtftn (bugs pointed out by Dietmar).
156 Thu Nov 15 17:40:24 CET 2001 Paolo Molaro <lupus@ximian.com>
158 * interp.c: handle enums with underlying type different from int32.
159 More checks for C structs <-> C# objects consistency.
161 Wed Nov 14 19:23:00 CET 2001 Paolo Molaro <lupus@ximian.com>
163 * interp.c: move the stack frame dumping code to a function so it can
164 be called from the debugger. Fix virtual method lookup for interfaces.
165 Throw exceptions instead of aborting in more places.
166 Print also the message in an exception. Updates for field renames in
169 2001-11-09 Dick Porter <dick@ximian.com>
171 * Makefile.am (mint_LDADD): Don't need THREAD_LIBS any more
173 2001-11-07 Miguel de Icaza <miguel@ximian.com>
175 * interp.c: Include stdlib to kill warning.
176 (check_corlib): Adjust format encodings to remove warnings.
178 Wed Nov 7 15:47:36 CET 2001 Paolo Molaro <lupus@ximian.com>
180 * interp.c: updates for changes in array code.
182 Fri Nov 2 19:06:54 CET 2001 Paolo Molaro <lupus@ximian.com>
184 * interp.c: hanlde field refs. Throw an exception on NULL references.
185 Check consistency of corlib types with the C struct representation.
187 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
189 * interp.c (ves_exec_method): use relative numbering for runtime
190 type checks (and make it work with interfaces)
192 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
194 * interp.c: removed newobj()
196 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
198 * interp.c (get_virtual_method): use the vtable
199 (arch_compile_method): added to compute vtable entry
201 Mon Oct 8 16:14:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
203 * interp.c: use the accessors provided in object.h to deal with
204 MonoArrays. Updates for API renames in metadata. Throw exception
205 in ldelema if index is out of bounds.
207 Mon Oct 8 10:44:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
209 * interp.c: fixes for changes in metadata.
211 2001-10-04 Dick Porter <dick@ximian.com>
213 * interp.c (ves_runtime_method): init_class() the
214 mono_defaults.delegate_class
215 Include mono-endian.h not endian.h
217 Tue Oct 2 18:51:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
219 * interp.c: set frame->ip in the leave opcode. Make db_methods static.
221 Sun Sep 30 11:57:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
223 * interp.c: compiler and ANSI C portability fixes.
225 Fri Sep 28 19:37:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
227 * interp.c: Implemented ldtoken, conv.ovf.i. Use MonoClass->byval_arg
228 (and remove related kludges). Don't choke on access to arrays of
229 references. Throw an exception when an internalcall or P/Invoke
230 function don't have an implementation. Throw and EngineException
231 for unimplemented opcodes.
233 Tue Sep 25 11:12:35 CEST 2001 Paolo Molaro <lupus@ximian.com>
235 * interp.c: fixed get_virtual_method () to deal with interface
238 Mon Sep 24 18:50:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
240 * interp.c: catch a few more error conditions with exceptions instead of
242 Don't use g_print() in stack traces because it doesn't work with
244 When we call an instance method of a valuetype class, unbox the 'this'
245 argument if it is an object.
246 Use mono_ldstr () to implement the ldstr opcode: it takes care of
247 interning the string if necessary.
248 Implemented new opcodes: ckfinite, cgt.un, clt.un, ldvirtftn, ldarga.
249 Fixes to handle NaNs when comparing doubles.
250 Make sure the loaded assembly has an entry point defined.
251 Fixed portability bugs in neg and not opcodes.
253 2001-09-24 Dietmar Maurer <dietmar@ximian.com>
255 * interp.c (ves_exec_method): LDC_I4: 8bit constants are signed
256 (ves_exec_method): bug fix for NOT/NEG
257 (main): fix bug in parameter parsing
259 2001-09-23 Dick Porter <dick@ximian.com>
261 * Makefile.am (mint_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
263 2001-09-23 Dick Porter <dick@ximian.com>
265 * interp.c (main): Do some thread setup and cleanup around the
268 2001-09-21 Dick Porter <dick@ximian.com>
270 * Makefile.am (mint_LDADD): Added PTHREAD_LIBS to the link line
272 Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>
274 * interp.c: implemented some more opcodes: calli, rem.un,
275 shr.un, conv.u, cpobj, stobj, conv.r.un, conv.ovf.i1.un,
276 conv.ovf.i2.un, conv.ovf.i4.un, conv.ovf.i8.un, conv.ovf.i.un,
277 conv.ovf.u1.un, conv.ovf.u2.un, conv.ovf.u4.un, conv.ovf.u8.un,
279 Fix some 64 bit issues in the array element access code and a small bug.
280 Throw an exception on index out of range instead of asserting.
281 Throw an exception on a NULL array instead of dying.
282 Stomped a memory corruption bug (.cctor methods were freed after
283 executing them, but they are stores in MonoClass now...).
284 Added a simple facility to invoke the debugger when a named
285 function is entered (use the cmdline option --debug method_name).
286 * interp.h: fix 64 bit issue.
288 Tue Sep 18 13:21:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
290 * interp.c: fix some 64 bit issues. Safer support for delegates.
292 2001-09-12 Miguel de Icaza <miguel@ximian.com>
294 * interp.c (ves_exec_method): implement conv.u8 opcode.
296 Mon Sep 10 20:20:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
298 * interp.c: endian fixes, comments.
300 Fri Sep 7 18:45:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
302 * interp.c, interp.h: make ves_exec_method () and stackval_from_data ()
303 non static. Implement a couple of runtime methods needed to
304 use delegates (ves_runtime_method ()).
305 Implemented ldftn opcode.
307 Thu Sep 6 15:41:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
309 * Makefile.am: link to libmonoarch.
310 * interp.h, interp.c: use mono_create_trampoline ().
311 Pass the command line arguments to Main (String[]) methods.
313 2001-08-30 Dietmar Maurer <dietmar@ximian.com>
315 * interp.c (ves_pinvoke_method): removed the libffi dependency
317 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
319 * interp.c (ves_array_set): moved from icall.c
320 (ves_array_get): moved from icall.c
322 * icall.c: moved to metadata/icall.c
324 Wed Aug 29 12:46:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
326 * interp.c: some small optimizations. Fixes to do signed
327 compares when needed. Change C++ comments into C.
328 Implemented cgt, clt. Added --opcode-count cmdline switch.
330 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
332 * interp.c (ves_exec_method): better check for value types (get
333 the class to detect if we have a value type), implemented CEE_CONV_U1,
337 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
339 * interp.c: warn and exit when Main () expects the cmdline arguments
340 instead of creashing.
342 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
344 * interp.c: merge isinst/castclass handling. Hopefully implement
345 the right semantics for handling callvirt correctly (changes
346 here and there to support it). Integrate bugfix from Dietmar quickly
347 so he needs to handle the cvs conflict:-)
349 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
351 * interp.c: fix compilation and updates for changes in metadata/.
353 2001-08-26 Miguel de Icaza <miguel@ximian.com>
355 * interp.c (main): Add option handling for the interpreter,
356 support the `--trace' option.
358 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
360 * interp.c: get in a dummy virtual method dispatch.
361 Added support for int64, native int and native uint as arguments.
362 Added debug enter/leave for icall and pinvoke methods, too.
363 Implement opcodes conv.i, conv.i8, ldelema.
365 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
367 * interp.h, interp.c: load also a MonoClass pointer when we load
368 an address on the stack. Implemented conv.i1, conv.i2, con.i4,
369 conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
370 and the name of the exception.
372 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
374 * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
375 ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
377 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
379 * interp.c: handle enumerations specially (not as valuetypes).
381 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
383 * interp.h, interp.c: add support for valuetypes.
385 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
387 * interp.c: updates for merge of MonoParam in MonoType.
389 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
391 * interp.c: removed beforefieldinit check, it's a useless flag.
392 Added a couple more test cases to tests/ dir.
394 2001-08-22 Miguel de Icaza <miguel@ximian.com>
396 * interp.c (usage): Add version information
397 (ves_pinvoke_method): Typo fix.
399 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
401 * interp.c: simplified init_class (). Make sure a class
402 is fully initialized before executing a method in the class.
403 Search for the class constructor only on beforefieldinit classes.
404 Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
405 bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
406 ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
408 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
410 * interp.c: Updates for changes in metadata/. Better output in debug mode
411 and in the stack trace. Completed rethrow handling
413 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
415 * interp.c: new macro INIT_FRAME() to properly
416 initialize a MonoInvocation. Fixed a couple of buglets in exception code:
417 increase stack pointer when pushing the exception for catch blocks,
418 initialize frame->ex_handler to NULL, correctly try all the
419 catch blocks (don't incorrectly fallback on filter handling).
420 Added a couple more checks where we may need to throw an
421 exception. Added more exception creation functions.
422 Changed stackval_from_data() to take the target stackval as
423 argument. Implemented a couple more opcodes.
424 * interp.h: prepare stackval for value type code.
426 2001-08-21 Miguel de Icaza <miguel@ximian.com>
428 * Makefile.am (mint_LDADD): Renamed interpreter to mint.
430 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
432 * interp.c (get_named_exception): use the right constructor.
434 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
436 * interp.c: fix buglet with the leave.s opcode.
438 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
440 * icall.c: changed everything to support the new calling convention
442 * hacks.h: added some macros for FreeBSD
444 * interp.c (get_named_exception): use mono_object_new instead of
445 newobj, initialize the stack before we call the constructor.
447 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
449 * interp.c, interp.h: added support code to create exceptions.
450 Changed interncal calling convnetion over to MonoInvocation, to support
451 exceptions, walking the stack back and forward and passing the 'this'
452 pointer separately (remove the cludges required before to pass this on the
453 stack). Use alloca heavily for both local vars and a copy of the incoming
454 arguments. Init local vars to zero.
455 Simplify stackval_from_data() and stackval_to_data() to only take a pointer
456 instead of pointer + offset.
457 Implement a few exceptions-related opcodes and the code to run finally, fault and
458 catch blocks as well as a stack trace if no handler is found.
460 2001-08-16 Alex Graveley <alex@ximian.com>
462 * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
463 instead of ../../libffi/.libs/libffi.a.
465 2001-08-10 Dietmar Maurer <dietmar@ximian.com>
467 * interp.c (ves_exec_method): impl CASTCLASS
469 * icall.c: moved the internal call stuff to this file
471 * interp.c (ves_exec_method): impl. BOX/UNBOX
472 (ves_icall_System_Array_GetValue): impl.
473 (ves_icall_System_Array_SetValue): impl.
474 added myself to Authors
476 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
478 * implemented arrays, but you will need a modified version of
479 Array.cs to get arrays working (will commit soon)
481 * interp.c (ves_icall_array_Set): impl.
482 (ves_icall_array_Get): impl.
483 (ves_icall_array_ctor): impl.
484 (ves_icall_System_Array_GetRank): impl.
485 (ves_icall_System_Array_GetLength): impl.
486 (ves_icall_System_Array_GetLowerBound): impl.
487 (mono_lookup_internal_call): impl.
489 2001-08-06 Dietmar Maurer <dietmar@ximian.com>
491 * interp.c (ves_exec_method): impl. NEWARR
492 (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
494 (mono_get_ansi_string): impl.
495 (mono_lookup_internal_call): impl.
496 (ves_exec_method): implemented internal calls
498 2001-08-05 Dietmar Maurer <dietmar@ximian.com>
500 * interp.c (ves_pinvoke_method): removed all static vars.
502 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
504 * interp.c (ves_exec_method): found a way to do unordered
505 compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S,
506 CEE_BLE_UN_S, CEE_BLT_UN_S
508 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
510 * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
511 Change locals to be a memory blob, instead of the structured
512 (but wrong) stackval. Implement bne.un.s opcode. Make the program
513 exit with the error code from Main().
515 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
517 * interp.c (ves_exec_method): implemented LDSTR
519 2001-07-31 Miguel de Icaza <miguel@ximian.com>
521 * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
522 m_i type. Maybe we should rename the types to be m_i_t instead of
525 Make the code compile after I broke it.
527 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
529 * interp.c: fix cleanup.
530 * Makefile.am: don't link with disassembler library.
532 2001-07-31 Miguel de Icaza <miguel@ximian.com>
534 (ves_exec_method): Cleanup of the source code.
536 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
538 * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
539 Provide better tracing with DEBUG_INTERP.
541 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
543 * interp.c: massive namespace cleanup.
545 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
547 * interp.c: update to use mono_method->name.
549 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
551 * interp.c: start implementing callvirt. Classes with
552 class constructors are properly initialized when needed.
553 Fix error introduced in version 1.17.
555 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
557 * interp.c: implement static field loading and storing.
559 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
561 * interp.c (ves_pinvoke_method): impl.
563 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
565 * interp.c: Removed some debugging printouts. Made stackval_to_data
566 static. Handle also instance methods in CALL opcode. Fix ret to properly
567 deal with void functions. Fixed constructor to leave the object on
570 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
572 * interp.c: ves_exec_method () doesn't take a MonoImage arg
573 anymore. Use the method cache in MonoImage. Updates to
574 mache recent changes in metadata.
575 Fix newobj code to use new metadata features. Call the class
576 constructor after allocationg the object. Implemented load field
577 and store field opcodes (the support functions need to be finished).
579 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
581 * interp.c, hacks.h: moved a few ugly macros out of the code.
582 Implemented switch opcode.
584 2001-07-23 Miguel de Icaza <miguel@ximian.com>
586 * interp.c (newobj): Added function to handle newobj opcode.
588 2001-07-18 Miguel de Icaza <miguel@ximian.com>
590 * interp.c (ves_exec_method): Make the interpreter abort with more
591 information than it currently does.
593 Enable the slow processor, as it is easier to debug.
595 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
598 * interp.c: use new mono_get_method () function to get the complete
599 info on a method invocation: we support now method invocation with
600 multiple (or zero) simple arguments and with or without a return value.
601 Implement also a couple more opcodes.