1 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
3 * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
4 for the register saving instruction sequence since the
5 frame_state_for function in glibc 2.3.2 don't seem to detect it.
7 2003-09-14 Zoltan Varga <vargaz@freemail.hu>
9 * TODO: Fix todo item && remove another.
11 2003-09-12 Zoltan Varga <vargaz@freemail.hu>
13 * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
16 * aot.c: Moved the check for MONO_LASTAOT into the initialization
17 function of the module.
19 * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
20 turning on/off the usage of AOT code. Got rid of mono_no_aot and the
21 --no-aot command line option.
23 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
25 * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
26 by Bernie Solomon (bernard@ugsolutions.com).
28 * inssel.brg: Refactor the interface offset table related code into
29 its separate functions and add support for the AOT case.
31 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
33 * aot.c (mono_aot_get_method_inner): Fix memory leak.
35 * aot.c: Added mono_aot_verbose variable and made all debugging
36 output depend on the value of this variable.
38 * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
39 method_label and info_label.
41 * mini.h mini-x86.c aot.c: Added a new relocation type
42 MONO_PATCH_INFO_IID for klass->interface_id.
44 * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
45 the MonoJitInfo structure.
47 * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
48 a non-root appdomain in shared mode.
50 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
52 * aot.c: make aot loader less verbose. Remove free of unused variable.
54 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
56 * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
58 * .cvsignore: Added *.dll.
60 * mini.c (mono_print_tree_nl): New function callable while debugging.
62 * mini.c (mono_print_code): Export this.
64 * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
67 2003-09-05 Zoltan Varga <vargaz@freemail.hu>
69 * mini.h (MonoCompile): Added 'jit_info' field.
71 * mini.c (mini_method_compile): Save the generated MonoJitInfo into
72 the cfg structure, since it is needed by the AOT compiler.
74 * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
76 * aot.c: A major rewrite. Changes include:
77 - save exception tables for methods which have them.
78 - cache failed lookups in aot_get_method () to avoid the (slow) calls
80 - reworked the file format so it is now much smaller and needs
81 fewer relocation entries.
83 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
85 * aot.c (load_aot_module): Fix build bustage on platforms without
88 2003-09-04 Martin Baulig <martin@ximian.com>
90 * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
92 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
94 * TODO: Some new optimization ideas.
96 * aot.c: Move AOT module loading logic here from mono_assembly_open.
98 * aot.c: Save the optimization flags used to compile the code into
101 * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
102 support emitting domain specific code.
104 * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is
105 no longer domain neutral. It can be made domain neutral by compiling
106 with --optimize=shared.
108 * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
111 * driver.c mini.h mini.c: New --no-aot debugging option which disables
114 * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
116 * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
117 if there is no domain neutrality information.
119 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
121 * aot.c (mono_compile_assembly): Emit a symbol containing the file
122 format version into the generated library.
124 * mini-x86.c (mono_arch_patch_code): Do not emit the address of the
125 callee method into the caller since one of them could be shared.
127 * mini.h mini-x86.c aot.c: Added two new relocations so throwing
128 system exceptions from AOT code now works.
130 * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling
131 method if it is domain neutral and the callee is not.
133 * graph.c (cfg_emit_one_loop_level): Fix warning.
135 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
137 * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
140 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
142 * mini.c (mini_init): Call mono_marshal_init () explicitly since it
143 is needed by code which is executed before mono_runtime_init ().
144 Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
146 * mini.c (mono_thread_abort): Fix warning.
147 (mono_jit_compile_method): Call static constructor in the AOT case too.
149 * aot.c (mono_compile_assembly): Fix warning.
151 2003-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
153 * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
155 2003-08-28 Zoltan Varga <vargaz@freemail.hu>
157 * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
159 * cpu-pentium.md: Fix the length of call opcodes so they include the
160 ESP restoring instruction. Fixes #47968.
162 2003-08-28 Martin Baulig <martin@ximian.com>
164 * mini-x86.c (mono_arch_call_opcode): Added support for
165 MONO_TYPE_GENERICINST.
167 * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.
169 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
171 * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
172 a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
174 * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
177 2003-08-26 Martin Baulig <martin@ximian.com>
179 * mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
180 when reporting an error, set this to the actual error location.
181 (mono_method_to_ir): Report the correct error location if
182 get_basic_blocks() returned an error.
184 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
186 * mini.c (mono_type_blittable): OBJECT is not blittable.
187 (mono_method_blittable): Methods which have marshalling descriptors
188 are not blittable either. Fixes #47842.
190 2003-08-22 Zoltan Varga <vargaz@freemail.hu>
192 * driver.c mini.c: Use an environment variable instead of a global
193 variable. Also fix the build.
195 * mini.c (mini_init): Call g_thread_init () to make glib thread-safe.
196 Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for
199 * driver.c mini.c: Added --with-valgrind option to turn off some
200 code which prevents mono from running under valgrind.
202 * mini.c (mono_emit_call_args): Fixed warning.
204 * mini.c (mono_emulate_opcode): Fixed warning.
206 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
208 * inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
209 * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
210 regalloc.c, regalloc.h: specify available registers in arch-specific
211 code and support floats in the regallocator (patch by Laurent Morichetti
214 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
216 * mini.c: mono_thread_current() can be called only after
217 mono_runtime_init(): rearrange code to not call it early on.
219 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
221 * mini.c: allocate jump tables in the code mempools.
223 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
225 * mini.c, mini.h: make sure per-thread data allocated by the jit is
228 2003-08-10 Miguel de Icaza <miguel@ximian.com>
230 * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
231 12 to 16. This fixes bug #47453.
234 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
236 * mini-ppc.c: fixed indexed load and unsigned compares.
238 2003-08-06 Lluis Sanchez Gual <lluis@ximian.com>
240 * mini.c: reenabled installation of handler for
243 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
245 * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
246 by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
247 until it's fixed and actually useful.
249 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
251 * inssel-long32.brg: couple more opcodes implemented.
253 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
255 * mini-sparc.c: Even more opcodes implemeted.
257 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
259 * mini-sparc.c: More opcodes implemented.
261 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
263 * mini-sparc.c: More opcodes implemented.
265 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
267 * inssel-sparc.brg: Add some needed rules. Direct
269 * Makefile.am: Use inssel-sparc.brg
270 * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
271 an assert happy for now.
273 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
275 * mini-sparc.c: Fixed compile errors.
276 * exceptions-sparc.c: Same. We now produce a mono binary
279 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
281 * mini-sparc.c: Renamed registers. Also some macro cleanups.
282 * exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
283 They compile, but do not work.
285 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
287 * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
288 mini-sparc.h, tramp-sparc.c: Beginning of sparc support
289 from Mark Crichton <crichton@gimp.org> and Christopher Taylor
292 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
294 * mini.c: more opcodes implemented and better support for generics.
296 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
298 * cpu-g4.md, cpu-pentium.md: updates for new instructions.
299 * mini.c, mini.h: first cut at generics support: some new instructions
300 added and changed the behaviour of some of the existing ones.
302 2003-07-21 Miguel de Icaza <miguel@ximian.com>
304 * mini.c: Removed definition of metadata_shared mutex here.
306 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
308 * mini-x86.c: make vararg calls work for instance methods.
310 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
312 * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
313 returns the arguments in a separte list, now.
315 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
317 * aot.c, mini.c: updates for array type representation changes.
319 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
321 * mini.c: register function to perform jit shutdown.
323 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
325 * mini.c: use a faster allocator if possible.
327 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
329 * aot.c: some cleanups and portability changes.
331 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
333 * mini.c: use faster allocation for CEE_BOX if possible.
335 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
337 * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
338 Moved inlined mempcy code to its own function so that is can be
339 reused. Added an inline memset function as well (optimized initobj).
340 * cpu-pentium.md, inssel-x86.brg: add and use lea_membase.
342 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
344 * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
346 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
348 * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
349 arch code can setup the cpu for CLR execution, if needed.
350 We use it on x86 to set the precision of FP operations.
352 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
354 * mini.c: disable some optimizations if we can guess they'll cost too
355 much for a given method.
357 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
359 * mini.h mini.c: Rework last patch based on suggestions by Paolo.
361 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
362 * mini.h mini.c mini-x86.c: Added instruction level coverage
363 info collection support.
365 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
367 * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
368 is now implemented in the profiling API. Get rid of a couple of
369 unnecessary global variables.
371 2003-06-15 Nick Drochak <ndrochak@gol.com>
373 * basic-long.cs: tests for negative values for bigmul, and unsigned.
374 * cpu-g4.md: add op_bigmul and op_bigmul_un
375 * cpu_pentium.md: add op_bigmul_un
376 * inssel-long32.brg: add rule for unsigned bigmul
377 * mini-ops.h: define OP_BIGMUL_UN
378 * mini-x86.c: THE BUG: handle (un)signed properly
379 * mini.c: choose unsigned opcode if needed.
380 This set of patches fixes bug #44291
382 2003-06-13 Dietmar Maurer <dietmar@ximian.com>
384 * mini.c (optimize_branches): improved to handle all kinds of
385 conditional branches.
387 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
389 * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
390 don't raise exceptions.
392 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
394 * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
395 to arch-specific files.
397 2003-06-09 Martin Baulig <martin@ximian.com>
399 * Makefile.am (libs): Added $(LIBGC_LIBS).
401 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
403 * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
404 and OP_ATAN (fixes bug#44293).
406 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
408 * Makefile.am, mini-x86.c: rename cpu description array to
409 pentium_desc, since some compilers define the 'pentium' preprocessor
412 2003-05-28 Dietmar Maurer <dietmar@ximian.com>
414 * mini.c (mini_select_instructions): add explicit branch if the
415 following block is not the false target of a conditional branch -
416 we need this with any optimization that reorder or remove bblocks
418 * mini.c (optimize_branches): bug fixes
420 2003-06-06 Dietmar Maurer <dietmar@ximian.com>
422 * mini.c (mono_method_to_ir): inline static readonly fields
424 * ssa.c (fold_tree): start cfold support for long (very simple
427 * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
429 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
431 * inssel.brg: fixed memcpy (bug #44219).
433 2003-06-05 Dick Porter <dick@ximian.com>
435 * driver.c: Set the glib log levels to not abort if g_message
438 g_set_prgname() has to happen before mini_init() so that the
439 process handle gets the info.
441 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
443 * driver.c: add intrins to the default optimizations to get wider
446 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
448 * mini.h: some large basic blocks will overflow a 16-bit
449 integers for symbolic registers.
451 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
453 * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
454 (mono_arch_output_basic_block): fix bug 43499
456 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
458 * mini.c: kill duplicated definition of mono_debug_format.
460 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
462 * mini-x86.c, arrays.cs: fixed register allocation bug.
464 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
466 * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
468 * mini.c (mini_get_opcode_for_method): inline IEEERemainder
470 2003-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
473 (print_method_from_ip): also print source location information if
476 2003-06-02 Dietmar Maurer <dietmar@ximian.com>
478 * mini.c (mono_find_block_region): bug fix in region code
479 (mini_method_compile): enable removing unreachable code again, but
480 only in methods without exception clauses.
482 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
484 * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
485 Implemented arglist opcode and handling of TypedReference type.
486 Fixed x86 call convention when a structure is returned.
487 Minimal support for calling static vararg methods.
489 2003-05-30 Dietmar Maurer <dietmar@ximian.com>
491 * mini.c (mini_method_compile): always remove unreachable code,
492 because the code in them may be inconsistent (access to dead
493 variables for example).
495 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
497 * driver.c, debug-mini.c: warning fixes.
499 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
501 * Makefile.am, jit.h, mini.h: install header for embedding mono.
503 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
505 * mini.c: thread-static fields are registered in mono_class_vtable(),
506 so ensure the function is called before checking for them.
508 2003-05-27 Dietmar Maurer <dietmar@ximian.com>
510 * mini.c (optimize_branches): fix for bug 43586
512 * jit-icalls.c (mono_llmult_ovf): added an additional check for
513 overflow (fixes Bug #43639)
515 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
517 * mini.c, objects.cs: allow the use of stobj for primitive types.
519 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
521 * mini.c: be less strict about argument checking until we support
522 running the verifier.
524 2003-05-27 Nick Drochak <ndrochak@gol.com>
526 * basic-long.cs: tests for (ulong)int * (ulong)int also
527 * mini.c: use the same trick for (ulong)int * (ulong)int
529 2003-05-27 Nick Drochak <ndrochak@gol.com>
531 * basic-long.cs: add regression test for (long)int * (long)int
532 * cpu-pentium.md: add op_bigmul specification
533 * inssel-long32.brg: add OP_BIGMUL rule
534 * mini-ops.h: add OP_BIGMUL
535 * mini-x86.c: register allocator: handle case where src1 needs to be
537 * mini.c: substitute special BIGMUL opcode in the tree for
538 (long)int * (long)int
540 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
542 * jit-icalls.c: call the type ctor on field access if needed.
544 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
546 * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
547 to a method (including results of ldelema, bug#43207).
549 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
551 * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
552 colors to show exception handler blocks.
554 * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
555 (fix for pinvoke7.cs).
557 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
559 * mini.h, mini.c: ensure correct initialization order for types that
560 require it. Prepare for lazy compilation of jit icall wrappers.
561 Provide a name for opcode emulation to reduce unneeded mallocing.
563 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
565 * mini-x86.c: better register restoring code and profiling
566 support for tail calls.
568 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
570 * mini.h, driver.c: prepare for leaf methods optimization.
572 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
574 * mini.c: get targets of branches before converting a method.
576 2003-05-23 Dietmar Maurer <dietmar@ximian.com>
578 * mini.c (optimize_branches): added some experimental code (disbaled)
580 2003-05-22 Dietmar Maurer <dietmar@ximian.com>
582 * mini.c (optimize_branches): fix branch to branch optimization
584 * exceptions-x86.c (mono_arch_handle_exception): bug fix.
586 * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
588 * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
590 * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
593 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
595 * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
596 enable use of interface variables again.
598 * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
599 I1 to registers because there is no simply way to sign extend 8bit
600 quantities in caller saved registers on x86.
602 * inssel-float.brg: set costs of some rules to 2 so
603 that monobure always select the arch. specific ones if supplied,
604 regardless of the order we pass the files to monoburg.
606 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
608 * mini.c, mini-x86.c: since the magic trampoline for jumps
609 can't patch the code directly, we do it as soon as the
610 method gets compiled.
612 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
614 * mini-x86.c, mini.h: introduce a new patching method
615 to support CEE_JMP and tail calls.
616 * mini.c: obey tail.call. Don't precompile methods target
618 * tramp-x86.c: new trampoline code to handle methods
619 reached through a jump.
621 2003-05-20 Dietmar Maurer <dietmar@ximian.com>
623 * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
624 bit values to registers
626 2003-05-19 Dietmar Maurer <dietmar@ximian.com>
628 * mini.c (mono_compile_get_interface_var): share interface
629 variables if possible.
631 2003-05-16 Martin Baulig <martin@ximian.com>
633 * debug-mini.c (mono_init_debugger): New function to initialize
634 the debugger. This is not in the debugger since it needs to
635 access some of mini's internals.
637 2003-05-16 Dietmar Maurer <dietmar@ximian.com>
639 * mini.c (mono_method_to_ir): inlining fixes/cleanups
641 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
643 * mini.c, mini-opts.h, inssel.brg: inline small memcpy
644 for value type handling.
646 2003-05-16 Dietmar Maurer <dietmar@ximian.com>
648 * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
649 (mono_method_check_inlining): enable inlining of all kinds of wrappers
651 2003-05-15 Lluis Sanchez Gual <lluis@ideary.com>
653 * mini.c: fixed little bug in CEE_NEWOBJ case when calling
654 the constructor through a proxy.
656 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
658 * jit-icalls.c, inssel.brg: fixes to array element address
661 2003-05-15 Dietmar Maurer <dietmar@ximian.com>
663 * mini-x86.c (is_regsize_var): allocate pointer to registers
665 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
667 * driver.c: fixed typo, added intrins to the set of optimizations
668 tested with regressions.
670 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
672 * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
673 * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
676 2003-05-14 Dietmar Maurer <dietmar@ximian.com>
678 * inssel.brg: remove some common pop instructions without side effects
680 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
682 * inssel-x86.brg: fixed thinko in int to double conversions.
684 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
686 * mini.c, jit-icalls.c: added runtime thread-static variable support.
688 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
690 * inssel-long32.brg: two more missing instructions.
692 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
694 * mini.c (mono_emit_call_args): set the cil_code for all arguments
697 2003-05-12 Zoltan Varga <vargaz@freemail.hu>
699 * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
702 * basic-float.cs: Added tests for negative zero.
704 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
706 * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
707 a couple of missing operations for long casts, with test cases.
709 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
711 * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
713 2003-05-09 Dietmar Maurer <dietmar@ximian.com>
715 * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
716 code size estimation.
718 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
720 * mini.c (mono_jit_create_remoting_trampoline): make it work with
721 abstract methods (fix bug 42542)
723 * aot.c: add ability to handle array types
725 2003-05-08 Zoltan Varga <vargaz@freemail.hu>
727 * mini.c: Call the _specific versions of the object allocation
728 functions if possible.
730 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
732 * driver.c: call setlocale ().
734 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
736 * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
739 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
741 * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
743 * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
744 wrappers (fix bug 42122)
746 2003-05-04 Martin Baulig <martin@ximian.com>
748 * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
750 * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
751 s/mini_set_defaults/mono_set_defaults/g.
753 2003-05-04 Martin Baulig <martin@ximian.com>
755 * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
757 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
759 * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
760 (reported by Don Roberts).
762 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
764 * mini.c: temporarily work around two bugs for this release.
766 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
768 * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
769 that contains -export-dynamic and it makes using the ld script
771 * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
773 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
775 * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
778 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
780 * mini.c: make sure leave calls all the needed finally blocks,
781 even when the target jumps out of multiple exception clauses.
783 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
785 * ldscript, Makefile.am: add linker script to reduce the number of
786 exported symbols (should also fix the issues with libwine defining
787 some of the same symbols in io-layer).
789 2003-05-01 Zoltan Varga <vargaz@freemail.hu>
791 * driver.c (mini_main): Avoid assertion when no file name is given on
794 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
796 * driver.c: added --version/-V command line option.
797 Added the inline optimization in the regression tests.
799 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
801 * mini.c, basic-calls.cs: when inlining, save arguments to locals according
802 to the type in the method signature (fixes bug#42134).
804 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
806 * mini.c: when inlining, check this is not null only when needed (bug #42135).
808 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
810 * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
812 2003-04-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
814 * driver.c: fixed bug #42100.
816 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
818 * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
820 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
822 * mini.c: moved most of the code required to do inlining to its own
823 function so it can be reused. Inline also ctors if appropriate.
825 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
827 * Makefile.am: Link with -export-dynamic so shared libs loaded by
828 the runtime can call mono API functions.
830 2003-04-27 Martin Baulig <martin@ximian.com>
832 * debug-mini.c (mono_debug_init_method): Added
833 `guint32 breakpoint_id' argument; if the method has a breakpoint,
834 send a notification to the debugger.
836 * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
837 running in the Mono Debugger, just pass the breakpoint number to
838 mono_debug_init_method().
840 * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
842 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
844 * mini.c: allow some more unsafe compares.
846 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
848 * mini-x86.c, Makefile.am: make distcheck works (partially from
849 a patch by Richard Lee <r.h.lee@attbi.com>).
850 * regset.c, regset.h: removed, they are unused.
852 2003-04-25 Dick Porter <dick@ximian.com>
854 * driver.c: Usage reports the name as 'mono' not 'mini'
855 * exceptions-x86.c: Build and run on freebsd
857 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
859 * Makefile.am: install the program with the 'mono' name and
860 the library as libmono instead of mini and libmini.
862 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
864 * driver.c: provide the APIs for the embedding interface of the old jit.
866 2003-04-23 Dietmar Maurer <dietmar@ximian.com>
868 * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
870 2003-04-23 Martin Baulig <martin@ximian.com>
872 * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
874 * driver.c: Added `--debug' command line argument to enable
877 2003-04-23 Martin Baulig <martin@ximian.com>
879 * debug.[ch]: Removed. The code is now in
880 ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
882 * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
885 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
887 * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
889 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
892 (mini_cleanup): moved mono_runtime_cleanup call after the call to
893 mono_domain_finalize.
894 (mini_method_compile): use mono_method_profile* if the the option is
897 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
899 * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
900 methods with their wrapper.
902 * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
903 methods with their wrapper.
905 * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
908 * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
911 * mini.c (mono_method_check_inlining): Avoid inlining synchronized
914 2003-04-17 Dietmar Maurer <dietmar@ximian.com>
916 * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
918 2003-04-16 Dietmar Maurer <dietmar@ximian.com>
920 * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
921 of the mempool. This is slightly faster and uses less memory
923 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
925 * mini.c: avoid O(n) allocation for variables.
927 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
929 * mini.c: handle items on the stack after inlining methods.
931 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
933 * mini.c: make the method->opcode optimization dependent
934 on MONO_OPT_INSTRINS and do it lazily.
936 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
938 * driver.c: print overall results at the end of regression run.
940 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
942 * inssel.brg: don't overwrite symbolic registers.
944 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
946 * inssel-x86.brg: fix conversion from long to float.
948 2003-04-11 Dietmar Maurer <dietmar@ximian.com>
950 * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
952 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
954 * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
956 * driver.c: Added --print-vtable option as in the old JIT.
958 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
960 * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
962 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
964 * inssel.brg, basic.cs: fixed checked conversions to byte and short.
966 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
968 * mini.c regalloc.c regalloc.h: Fix memory leak.
970 2003-04-09 Dietmar Maurer <dietmar@ximian.com>
972 * aot.c (mono_aot_get_method): register all used strings
974 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
976 * mini.c: always intern strings references with ldstr at compile time.
978 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
980 * Makefile.am: add BUILT_SOURCES.
982 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
984 * driver.c: give a better error message when the assembly to execute
985 doesn't have an entry point.
987 2003-04-07 Dietmar Maurer <dietmar@ximian.com>
989 * Makefile.am: added hack for automake
991 * mono/mini/mini.c (mono_save_args): always copy arguments to keep
994 * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
996 22003-04-07 Martin Baulig <martin@ximian.com>
998 * Makefile.am: Added Makefile.am.
1000 * debugger-main.c: Removed, this is now in the debugger where it
1003 * mini.pc.in: Call this package `mini' for the moment.