2003-09-15 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / mini / ChangeLog
1 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
2
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.
6
7 2003-09-14  Zoltan Varga  <vargaz@freemail.hu>
8
9         * TODO: Fix todo item && remove another.
10
11 2003-09-12  Zoltan Varga  <vargaz@freemail.hu>
12
13         * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
14         previous checkin.
15
16         * aot.c: Moved the check for MONO_LASTAOT into the initialization
17         function of the module.
18
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.
22
23 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
24
25         * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
26         by Bernie Solomon (bernard@ugsolutions.com).
27
28         * inssel.brg: Refactor the interface offset table related code into
29         its separate functions and add support for the AOT case.
30
31 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
32
33         * aot.c (mono_aot_get_method_inner): Fix memory leak.
34         
35         * aot.c: Added mono_aot_verbose variable and made all debugging
36         output depend on the value of this variable.
37
38         * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
39         method_label and info_label.
40
41         * mini.h mini-x86.c aot.c: Added a new relocation type 
42         MONO_PATCH_INFO_IID for klass->interface_id.
43
44         * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
45         the MonoJitInfo structure.
46
47         * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
48         a non-root appdomain in shared mode.
49
50 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
51
52         * aot.c: make aot loader less verbose. Remove free of unused variable.
53
54 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
55
56         * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
57
58         * .cvsignore: Added *.dll.
59
60         * mini.c (mono_print_tree_nl): New function callable while debugging.
61
62         * mini.c (mono_print_code): Export this.
63
64         * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
65         patched code.
66
67 2003-09-05  Zoltan Varga  <vargaz@freemail.hu>
68
69         * mini.h (MonoCompile): Added 'jit_info' field.
70
71         * mini.c (mini_method_compile): Save the generated MonoJitInfo into
72         the cfg structure, since it is needed by the AOT compiler.
73
74         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
75
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 
79         to g_module_symbol.
80         - reworked the file format so it is now much smaller and needs
81         fewer relocation entries.
82         
83 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
84
85         * aot.c (load_aot_module): Fix build bustage on platforms without
86         Boehm GC.
87
88 2003-09-04  Martin Baulig  <martin@ximian.com>
89
90         * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
91
92 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
93
94         * TODO: Some new optimization ideas.
95
96         * aot.c: Move AOT module loading logic here from mono_assembly_open.
97
98         * aot.c: Save the optimization flags used to compile the code into
99         the AOT module.
100
101         * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
102         support emitting domain specific code.
103         
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.
107
108         * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
109         between appdomains.
110
111         * driver.c mini.h mini.c: New --no-aot debugging option which disables
112         loading of AOT code.
113
114         * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
115         
116         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
117         if there is no domain neutrality information.
118
119 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
120
121         * aot.c (mono_compile_assembly): Emit a symbol containing the file 
122         format version into the generated library.
123
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.
126
127         * mini.h mini-x86.c aot.c: Added two new relocations so throwing
128         system exceptions from AOT code now works.
129
130         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
131         method if it is domain neutral and the callee is not.
132
133         * graph.c (cfg_emit_one_loop_level): Fix warning.
134
135 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
136
137         * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
138         last checkin.
139
140 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
141
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.
145         
146         * mini.c (mono_thread_abort): Fix warning.
147         (mono_jit_compile_method): Call static constructor in the AOT case too.
148
149         * aot.c (mono_compile_assembly): Fix warning.
150
151 2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
152
153         * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
154
155 2003-08-28  Zoltan Varga  <vargaz@freemail.hu>
156
157         * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
158
159         * cpu-pentium.md: Fix the length of call opcodes so they include the
160         ESP restoring instruction. Fixes #47968.
161
162 2003-08-28  Martin Baulig  <martin@ximian.com>
163
164         * mini-x86.c (mono_arch_call_opcode): Added support for
165         MONO_TYPE_GENERICINST.
166
167         * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.       
168
169 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
170
171         * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
172         a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
173
174         * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
175         metadata_section.
176
177 2003-08-26  Martin Baulig  <martin@ximian.com>
178
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.
183
184 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
185
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.
189
190 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
191
192         * driver.c mini.c: Use an environment variable instead of a global 
193         variable. Also fix the build.
194
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 
197         reporting this. 
198
199         * driver.c mini.c: Added --with-valgrind option to turn off some
200         code which prevents mono from running under valgrind.
201
202         * mini.c (mono_emit_call_args): Fixed warning.
203
204         * mini.c (mono_emulate_opcode): Fixed warning.
205
206 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
207
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 
212         <l_m@pacbell.net>)
213
214 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
215
216         * mini.c: mono_thread_current() can be called only after
217         mono_runtime_init(): rearrange code to not call it early on.
218
219 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
220
221         * mini.c: allocate jump tables in the code mempools.
222
223 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
224
225         * mini.c, mini.h: make sure per-thread data allocated by the jit is
226         freed.
227
228 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
229
230         * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
231         12 to 16.  This fixes bug #47453.
232
233
234 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
235
236         * mini-ppc.c: fixed indexed load and unsigned compares.
237
238 2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>
239
240         * mini.c: reenabled installation of handler for
241           thread abort signal.
242
243 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
244
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.
248
249 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
250
251         * inssel-long32.brg: couple more opcodes implemented.
252
253 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
254         
255         * mini-sparc.c: Even more opcodes implemeted.
256
257 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
258
259         * mini-sparc.c: More opcodes implemented.
260
261 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
262
263         * mini-sparc.c: More opcodes implemented.
264
265 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
266
267         * inssel-sparc.brg: Add some needed rules.  Direct
268         copy from PPC.
269         * Makefile.am: Use inssel-sparc.brg
270         * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
271         an assert happy for now.
272
273 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
274
275         * mini-sparc.c: Fixed compile errors.
276         * exceptions-sparc.c: Same.  We now produce a mono binary 
277         on sparc-linux.  Yea.
278
279 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
280
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.
284
285 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
286
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
290         (ct@gentoo.org).
291
292 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
293
294         * mini.c: more opcodes implemented and better support for generics.
295
296 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
297
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.
301
302 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
303
304         * mini.c: Removed definition of metadata_shared mutex here.
305
306 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
307
308         * mini-x86.c: make vararg calls work for instance methods.
309
310 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
311
312         * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
313         returns the arguments in a separte list, now.
314
315 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
316
317         * aot.c, mini.c: updates for array type representation changes.
318
319 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
320
321         * mini.c: register function to perform jit shutdown.
322
323 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
324
325         * mini.c: use a faster allocator if possible.
326
327 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
328
329         * aot.c: some cleanups and portability changes.
330
331 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
332
333         * mini.c: use faster allocation for CEE_BOX if possible.
334
335 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
336
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.
341
342 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
343
344         * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
345
346 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
347
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.
351
352 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
353
354         * mini.c: disable some optimizations if we can guess they'll cost too
355         much for a given method.
356
357 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
358
359         * mini.h mini.c: Rework last patch based on suggestions by Paolo.
360         
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.
364
365 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
366
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.
370
371 2003-06-15  Nick Drochak <ndrochak@gol.com>
372
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
381
382 2003-06-13  Dietmar Maurer  <dietmar@ximian.com>
383
384         * mini.c (optimize_branches): improved to handle all kinds of
385         conditional branches.
386
387 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
388
389         * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
390         don't raise exceptions.
391
392 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
393
394         * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
395         to arch-specific files.
396
397 2003-06-09  Martin Baulig  <martin@ximian.com>
398
399         * Makefile.am (libs): Added $(LIBGC_LIBS).
400
401 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
402
403         * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
404         and OP_ATAN (fixes bug#44293).
405
406 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
407
408         * Makefile.am, mini-x86.c: rename cpu description array to
409         pentium_desc, since some compilers define the 'pentium' preprocessor
410         symbol.
411
412 2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
413
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
417
418         * mini.c (optimize_branches): bug fixes
419
420 2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
421
422         * mini.c (mono_method_to_ir): inline static readonly fields
423
424         * ssa.c (fold_tree): start cfold support for long (very simple
425         cases only)
426
427         * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
428
429 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
430
431         * inssel.brg: fixed memcpy (bug #44219).
432
433 2003-06-05  Dick Porter  <dick@ximian.com>
434
435         * driver.c: Set the glib log levels to not abort if g_message
436         recurses.
437
438         g_set_prgname() has to happen before mini_init() so that the
439         process handle gets the info.
440         
441 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
442
443         * driver.c: add intrins to the default optimizations to get wider
444         exposure.
445
446 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
447
448         * mini.h: some large basic blocks will overflow a 16-bit
449         integers for symbolic registers.
450
451 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
452
453         * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
454         (mono_arch_output_basic_block): fix bug 43499 
455
456 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
457
458         * mini.c: kill duplicated definition of mono_debug_format.
459
460 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
461
462         * mini-x86.c, arrays.cs: fixed register allocation bug.
463
464 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
465
466         * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
467
468         * mini.c (mini_get_opcode_for_method): inline IEEERemainder
469
470 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
471
472         * mini.c:
473         (print_method_from_ip): also print source location information if
474         available.
475
476 2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
477
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.
481
482 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
483
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.
488
489 2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
490
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).
494
495 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
496
497         * driver.c, debug-mini.c: warning fixes.
498
499 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
500
501         * Makefile.am, jit.h, mini.h: install header for embedding mono.
502
503 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
504
505         * mini.c: thread-static fields are registered in mono_class_vtable(),
506         so ensure the function is called before checking for them.
507
508 2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
509
510         * mini.c (optimize_branches): fix for bug 43586
511
512         * jit-icalls.c (mono_llmult_ovf): added an additional check for
513         overflow (fixes Bug #43639)
514
515 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
516
517         * mini.c, objects.cs: allow the use of stobj for primitive types.
518
519 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
520
521         * mini.c: be less strict about argument checking until we support
522         running the verifier.
523
524 2003-05-27  Nick Drochak <ndrochak@gol.com>
525
526         * basic-long.cs: tests for (ulong)int * (ulong)int also
527         * mini.c: use the same trick for (ulong)int * (ulong)int
528
529 2003-05-27  Nick Drochak <ndrochak@gol.com>
530
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
536         in EAX.
537         * mini.c: substitute special BIGMUL opcode in the tree for 
538         (long)int * (long)int
539
540 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
541
542         * jit-icalls.c: call the type ctor on field access if needed.
543
544 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
545
546         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
547         to a method (including results of ldelema, bug#43207).
548
549 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
550
551         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
552         colors to show exception handler blocks.
553
554         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
555         (fix for pinvoke7.cs).
556
557 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
558
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.
562
563 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
564
565         * mini-x86.c: better register restoring code and profiling
566         support for tail calls.
567
568 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
569
570         * mini.h, driver.c: prepare for leaf methods optimization.
571
572 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
573
574         * mini.c: get targets of branches before converting a method.
575
576 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
577
578         * mini.c (optimize_branches): added some experimental code (disbaled) 
579
580 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
581
582         * mini.c (optimize_branches): fix branch to branch optimization 
583
584         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
585
586         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
587
588         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
589
590         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
591         if needed.
592
593 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
594
595         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
596         enable use of interface variables again.
597
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.
601
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.
605
606 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
607
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.
611
612 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
613
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
617         of CEE_JMP.
618         * tramp-x86.c: new trampoline code to handle methods
619         reached through a jump.
620
621 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
622
623         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
624         bit values to registers
625
626 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
627
628         * mini.c (mono_compile_get_interface_var): share interface
629         variables if possible.
630
631 2003-05-16  Martin Baulig  <martin@ximian.com>
632
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.
636
637 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
638
639         * mini.c (mono_method_to_ir): inlining fixes/cleanups
640
641 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
642
643         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
644         for value type handling.
645
646 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
647
648         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
649         (mono_method_check_inlining): enable inlining of all kinds of wrappers
650
651 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
652
653         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
654           the constructor through a proxy.
655
656 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
657
658         * jit-icalls.c, inssel.brg: fixes to array element address
659         calculations.
660
661 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
662
663         * mini-x86.c (is_regsize_var): allocate pointer to registers
664
665 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
666
667         * driver.c: fixed typo, added intrins to the set of optimizations
668         tested with regressions.
669
670 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
671
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
674         test case.
675
676 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
677
678         * inssel.brg: remove some common pop instructions without side effects
679
680 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
681
682         * inssel-x86.brg: fixed thinko in int to double conversions.
683
684 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
685
686         * mini.c, jit-icalls.c: added runtime thread-static variable support.
687
688 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
689
690         * inssel-long32.brg: two more missing instructions.
691
692 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
693
694         * mini.c (mono_emit_call_args): set the cil_code for all arguments
695         if not already set.
696
697 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
698
699         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
700         correctly.
701
702         * basic-float.cs: Added tests for negative zero.
703
704 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
705
706         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
707         a couple of missing operations for long casts, with test cases.
708
709 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
710
711         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
712
713 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
714
715         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
716         code size estimation.
717
718 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
719
720         * mini.c (mono_jit_create_remoting_trampoline): make it work with
721         abstract methods (fix bug 42542)
722
723         * aot.c: add ability to handle array types
724         
725 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
726
727         * mini.c: Call the _specific versions of the object allocation
728         functions if possible.
729
730 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
731
732         * driver.c: call setlocale ().
733
734 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
735
736         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
737         windows build.
738
739 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
740
741         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
742
743         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
744         wrappers (fix bug 42122)
745
746 2003-05-04  Martin Baulig  <martin@ximian.com>
747
748         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
749
750         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
751         s/mini_set_defaults/mono_set_defaults/g.
752
753 2003-05-04  Martin Baulig  <martin@ximian.com>
754
755         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
756
757 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
758
759         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
760         (reported by Don Roberts).
761
762 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
763
764         * mini.c: temporarily work around two bugs for this release.
765
766 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
767
768         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
769         that contains -export-dynamic and it makes using the ld script
770         useless.
771         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
772
773 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
774
775         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
776         specific cpu.
777
778 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
779
780         * mini.c: make sure leave calls all the needed finally blocks,
781         even when the target jumps out of multiple exception clauses.
782
783 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
784
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).
788
789 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
790
791         * driver.c (mini_main): Avoid assertion when no file name is given on 
792         the command line.
793
794 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
795
796         * driver.c: added --version/-V command line option.
797         Added the inline optimization in the regression tests.
798
799 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
800
801         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
802         to the type in the method signature (fixes bug#42134).
803
804 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
805
806         * mini.c: when inlining, check this is not null only when needed (bug #42135).
807
808 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
809
810         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
811
812 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
813
814         * driver.c: fixed bug #42100.
815
816 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
817
818         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
819
820 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
821
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.
824
825 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
826
827         * Makefile.am: Link with -export-dynamic so shared libs loaded by
828         the runtime can call mono API functions.
829
830 2003-04-27  Martin Baulig  <martin@ximian.com>
831
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.
835
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().
839
840         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
841
842 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
843
844         * mini.c: allow some more unsafe compares.
845
846 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
847
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.
851
852 2003-04-25  Dick Porter  <dick@ximian.com>
853
854         * driver.c: Usage reports the name as 'mono' not 'mini'
855         * exceptions-x86.c: Build and run on freebsd
856
857 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
858
859         * Makefile.am: install the program with the 'mono' name and
860         the library as libmono instead of mini and libmini.
861
862 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
863
864         * driver.c: provide the APIs for the embedding interface of the old jit.
865
866 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
867
868         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
869
870 2003-04-23  Martin Baulig  <martin@ximian.com>
871
872         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
873
874         * driver.c: Added `--debug' command line argument to enable
875         debugging support.
876
877 2003-04-23  Martin Baulig  <martin@ximian.com>
878
879         * debug.[ch]: Removed.  The code is now in
880         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
881
882         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
883         last six months.
884
885 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
886
887         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
888
889 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
890
891         * mini.c:
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
895         enabled.
896
897 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
898
899         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
900         methods with their wrapper.
901
902         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
903         methods with their wrapper.
904
905         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
906         their wrapper.
907
908         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
909         wrapper.
910
911         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
912         methods.
913
914 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
915
916         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
917
918 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
919
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
922
923 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
924
925         * mini.c: avoid O(n) allocation for variables.
926
927 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
928
929         * mini.c: handle items on the stack after inlining methods.
930
931 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
932
933         * mini.c: make the method->opcode optimization dependent
934         on MONO_OPT_INSTRINS and do it lazily.
935
936 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
937
938         * driver.c: print overall results at the end of regression run.
939
940 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
941
942         * inssel.brg: don't overwrite symbolic registers.
943
944 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
945
946         * inssel-x86.brg: fix conversion from long to float.
947
948 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
949
950         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
951
952 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
953
954         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
955
956         * driver.c: Added --print-vtable option as in the old JIT.
957
958 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
959
960         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
961
962 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
963
964         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
965
966 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
967
968         * mini.c regalloc.c regalloc.h: Fix memory leak.
969
970 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
971
972         * aot.c (mono_aot_get_method): register all used strings
973
974 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
975
976         * mini.c: always intern strings references with ldstr at compile time.
977
978 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
979
980         * Makefile.am: add BUILT_SOURCES.
981
982 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
983
984         * driver.c: give a better error message when the assembly to execute
985         doesn't have an entry point.
986
987 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
988
989         * Makefile.am: added hack for automake
990
991         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
992         correct sematics.
993
994         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
995
996 22003-04-07  Martin Baulig  <martin@ximian.com>
997
998         * Makefile.am: Added Makefile.am.
999
1000         * debugger-main.c: Removed, this is now in the debugger where it
1001         belongs.
1002
1003         * mini.pc.in: Call this package `mini' for the moment.
1004
1005
1006