72ab5396fc68fd7159b9130f4db547216fb3b9eb
[mono.git] / mono / mini / ChangeLog
1
2 Sun Jun 13 15:59:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
3
4         * driver.c: don't include abcrem in the all optimization specifier
5         since it slows down jit compilation too much for now.
6
7 2004-06-12 Ben Maurer  <bmaurer@users.sourceforge.net>
8
9         * mini.c: use BIGMUL only if both operands have the same signage.
10         * iltests.il: Test for bug 60056. (errors related to signage in
11         BIGMUL).
12
13         r=lupus.
14
15 Thu Jun 10 16:06:42 CEST 2004 Paolo Molaro <lupus@ximian.com>
16
17         * mini.c, aot.c: memory leak fixes.
18
19 Tue Jun 8 16:37:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
20
21         * inssel-long32.brg: implemented a few missing ulong cast opcodes.
22
23 Tue Jun 8 15:36:30 CEST 2004 Paolo Molaro <lupus@ximian.com>
24
25         * Makefile.am: remove the -static hack completely, it links in
26         statically glib as well.
27
28 Sat Jun 5 16:32:33 CEST 2004 Paolo Molaro <lupus@ximian.com>
29
30         * iltests.il, mini.c: fixed bug#59580 in branch optimization.
31         * exceptions.cs: make it compile with new mcs/csc.
32
33 2004-06-03 Massimiliano Mantione <massi@ximian.com>
34         * cpu-pentium.md basic-float.cs Fixed bug on fpu spills (see bug 54467),
35         and added relevant test case.
36
37 Mon May 31 19:41:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
38
39         * mini.c revert Zoltan's fix to bug#58863 on ppc, since it causes
40         regressions in gtk-sharp.
41
42 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
43
44         * exceptions.cs: New regression tests.
45
46         * jit-icalls.c (mono_llmult_ovf): Fix some boundary conditions.
47
48 Sat May 29 10:45:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
49
50         * mini.c: emit castclass/isinst in their own trees (bug #54209/59057).
51
52 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
53
54         * mini-sparc.h (MONO_ARCH_NEED_DIV_CHECK): Define this.
55
56         * cpu-sparc.md mini-sparc.c: Add overflow detection to div opcodes.
57
58 2004-05-28      Patrik Torstensson <totte@hiddenpeaks.com>
59
60         * mini.c (mono_jit_runtime_invoke): Init class in this
61         method instead of trusting mono_jit_compile_method to
62         do the work (because wrappers can be in object class)
63
64 2004-05-27  Zoltan Varga  <vargaz@freemail.hu>
65
66         * mini-sparc.c (mono_arch_output_basic_block): Fix sub.imm.
67
68         * basic-long.cs: New regression test.
69
70 Thu May 27 15:50:52 CEST 2004 Paolo Molaro <lupus@ximian.com>
71
72         * cpu-g4.md, mini-ppc.c: fixes to long add/sub ovf opcodes
73         and div/rem checks.
74
75 Thu May 27 12:36:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
76
77         * Makefile.am: fix miguel's change to build mono statically against
78         libmono (track build dependencies).
79
80 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
81
82         * cfold.c: Some glib versions do not have G_MININT32.
83
84 2004-05-26  Massimiliano Mantione  <massi@ximian.com>
85
86         * mini-x86.c cpu-pentium.md Makefile.am basic-math.cs: Fixed problem
87         with precision of tan, atan, sin and cos, and implemented related
88         regressions tests (fixes bug 54467, but one new problem appeared and
89         is not fixed yet).
90
91 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
92
93         * cfold.c (FOLD_BINOPZ): Avoid division by zero.
94
95         * exceptions.cs: Add test for constant folding && division by zero.
96
97         * driver.c mini.h mini.c mini-x86.c: Revert most of the previous patch
98         since driver.c is in libmono too, so the optimization was useless.
99
100         * driver.c mini.h mini.c mini-x86.c: Moved the mono_lmf_addr TLS 
101         variable to driver.c so the compiler can emit more efficient code to
102         access them.
103
104 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
105
106         * Makefile.am: don't distribute generated inssel.[ch] files.
107
108 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
109
110         * mini.c (mono_jit_compile_method_with_opt): Really emit icall wrappers
111         into the default appdomain. Fixes #58707.
112
113         * jit-icalls.c: Remove the broken approximation for truncl, doing
114         no conversion is better.
115
116         * mini.c (handle_stack_args): Avoid reusing variables for stack slots.
117         Fixes #58863.
118
119 Tue May 25 14:33:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
120
121         * mini-ops.h, mini-ppc.c, cpu-g4.md, inssel-ppc.brg: eliminate the use
122         of the mcrxr instruction which is not available on some processors
123         even if it's documented to be. Implement add and sub overflow correctly
124         (still not complete for long unsigned). Speed up icalls a bit.
125
126 2004-05-25 13:01 CET Patrik Torstenson <totte@hiddenpeaks.com>
127
128         * mini.c (mono_jit_compile_method_with_opt): Make sure that
129         we run .cctor in the current domain instead of target_domain.
130         
131         Fixes bug #58558, .cctor not being called in -O=shared.
132
133 Tue May 25 12:46:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
134
135         * mini-ppc.h, jit-icalls.c: added explicit checks for divide by zero.
136
137 2004-05-24 Ben Maurer  <bmaurer@users.sourceforge.net>
138
139         * mini-x86.c (EMIT_COND_BRANCH): If an OP_LABEL has an offset
140         which can be done with an imm8, do it that way.
141         (mono_arch_output_basic_block): ditto for a jmp
142         (mono_arch_emit_prolog): Computate maximum offset of a label.
143
144 2004-05-24 18:18 CET Patrik Torstenson <totte@hiddenpeaks.com>
145
146         * mini-x86.c (mono_arch_local_regalloc): the reg allocator
147         now tries to allocate prefered physical reg's for virtual
148         regs. This reduces the number of emited spills/loads with
149         20-30% on our core assemblies.
150
151 Mon May 24 18:21:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
152
153         * jit-icalls.c: truncl() is not needed and trunc() is
154         the correct thing to do anyway (bug #58287).
155
156 2004-05-24  Zoltan Varga  <vargaz@freemail.hu>
157
158         * mini-sparc.c (mono_arch_flush_icache): Call sync_instruction_memory
159         if available.
160
161 Mon May 24 12:49:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
162
163         * driver.c: enable loop optimizations by default.
164
165 Mon May 24 11:13:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
166
167         * mini-x86.c: fix calc of max loop size when aligning loops start.
168
169 2004-05-23  Zoltan Varga  <vargaz@freemail.hu>
170
171         * ssa.c (mono_ssa_cprop): Allocate carray dynamically instead of on
172         the stack.
173
174 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
175
176         * mini-sparc.c (mono_arch_output_basic_block): ADD_IMM and SUB_IMM
177         should set carry.
178
179         * basic-long.cs: Add tests for add/subtract of immediates with carry.
180
181         * mini.c exceptions-x86.c: Remove MONO_USE_EXC_TABLES stuff.
182         
183         * mini.c (inline_method): Allways inline some wrappers even if the cost
184         is too large. Fixes #58785.
185
186         * mini.c: Add support for MARSHAL_CONV_FTN_DEL.
187         
188 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
189
190         * mini-sparc.c exceptions-sparc.c: Applied patch from Mark Crichton
191         (crichton@gimp.org). Beginning of support for sparc/linux.
192
193         * mini-sparc.c: Optimize retrieval of LMF address.
194
195 Fri May 21 08:00:12 EDT 2004 Paolo Molaro <lupus@ximian.com>
196
197         * exceptions-ppc.c:  handle alloca in methods with clauses.
198
199 Fri May 21 07:35:30 EDT 2004 Paolo Molaro <lupus@ximian.com>
200
201         * mini-ppc.c: cleanups, off-by-one fixes, avoid recursive thunks.
202
203 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
204
205         * mini.c: Delegate most of the abort signal work to 
206           mono_thread_request_interruption, which also handles Stop and Suspend
207           states.
208
209 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
210
211         * mini.c mini.h: Allow inlining of icall wrappers if the backend 
212         supports the save/restore lmf opcodes.
213
214 2004-05-19  Zoltan Varga  <vargaz@freemail.hu>
215
216         * mini-x86.c (mono_arch_setup_jit_tls_data): Handle code generated
217         by gcc-3.4 as well.
218
219         * mini-x86.h mini-x86.c tramp-x86.c: Optimize lmf restoring code.
220
221 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
222
223         * mini.h mini.c (mini_method_compile): Only run abc removal pass on 
224         methods which contain array accesses.
225
226         * mini.c (CEE_LDTOKEN): Handle this instruction correctly on bb
227         boundaries. Fixes #58537.
228
229         * iltests.il: Add regression test for #58537.
230
231 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
232
233         * mini-x86.c (mono_arch_local_regalloc): Last part of
234         fix for bug #58633 (releasing register to early).
235
236 2004-05-18  Miguel de Icaza  <miguel@ximian.com>
237
238         * basic-long.cs: Add new regression test.
239
240 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
241
242         * mini-x86.c (mono_arch_local_regalloc): Avoid releasing a
243         register too early on the chain.
244
245 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
246
247         * mini.c (create_helper_signature): Use a helper function to reduce
248         the code which needs to be written. Also set the calling convention of
249         icalls on windows. Fixes #57840.
250
251 Tue May 18 11:05:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
252
253         * mini.h, exceptions-x86.c, exceptions-sparc.c, exceptions-s390.c,
254         exceptions-ppc.c: added helper function to get the instruction address
255         from a signal handler context.
256
257 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
258
259         * helpers.c: use g_get_tmp_dir. Invokes happyness 
260         from gonzalo.
261
262 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
263
264         * helpers.c: Add new env variable to pass args to objdump.
265         Specifically for those of us who love -Mintel. r=miguel, gonzalo.
266
267 2004-05-17  Radek Doulik  <rodo@ximian.com>
268
269         * Makefile.am (common_sources): added abcremoval.h so it get
270         disted and daily mono packages on go-mono.com will build again
271
272 2004-05-17  Massimiliano Mantione  <massi@ximian.com>
273
274         * abcremoval.c: Fixed coding style, added copyright header.
275
276         * abcremoval.h: Fixed style and moved prototype to mini.h, added copyright header.
277
278         * mini.h: Added prototype for abc removal main function.
279
280         * build_relations_propagation_table.pl: Added copyright header.
281
282 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
283
284         * basic-long.cs: reg test for complex ceq_long bug.
285
286 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
287
288         * mini-x86.c (mono_arch_local_regalloc): Correctly free 
289         reg in long and clob case (bug #58343). Fixed/added comments.
290
291 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
292
293         * mini.c (mono_jit_runtime_invoke): Follow new convention
294         of calling the invoke method with an function pointer.
295
296 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
297
298         * ChangeLog: Fix author of memory leak patch.
299
300 Fri May 14 15:13:06 CEST 2004 Paolo Molaro <lupus@ximian.com>
301
302         * Makefile.am: fix make dist as well...
303
304
305 2004-05-14  Massimiliano Mantione  <massi@ximian.com>
306
307         * cfold.c: Made so that conversions from pointer to int4 are no-ops
308         on archs where pointers are 4 bytes long.
309
310         * Makefile.am: Added abcremoval.c source file.
311
312         * abcremoval.c: Added abcremoval.c.
313
314         * abcremoval.h: Added abcremoval.h.
315
316         * build_relations_propagation_table.pl: Added build_relations_propagation_table.pl.
317
318         * inssel.brg: Enabled bounds check removal.
319
320         * mini.c: Added support for abcrem optimization.
321
322         * mini.h: Added abcrem optimization label.
323
324         * driver.c: Added support for abcrem optimization.
325
326         * propagated_relations_table.def: Added propagated_relations_table.def.
327
328 Fri May 14 14:30:13 CEST 2004 Paolo Molaro <lupus@ximian.com>
329
330         * mini.c, cfold.c: fix style.
331
332 Fri May 14 14:28:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
333
334         * mini.c: handle issue with the low-level implementation of
335         some long opcodes (bug #54209).
336
337 2004-05-13 Ben Maurer  <bmaurer@users.sourceforge.net>
338
339         * basic.cs: test for my new cmov stuff.
340
341 2004-05-13      Patrik Torstensson
342
343         * mini-x86.c: added OP_X86_COMPARE_MEMBASE_IMM peephole
344         opt and added peephole documentation.
345
346 Thu May 13 11:41:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
347
348         * tramp-ppc.c: rewrote the generic trampoline code.
349
350 2004-05-11      Patrik Torstensson
351
352         * mini-x86.c: optimize long shl/shr asm code (one less branch)
353
354 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
355
356         * basic.cs basic-long.cs objects.cs: Make these compile under MS csc.
357
358         * mini.h mini.c dominators.c: Applied patch from Derek Woo
359         (derek@eecg.toronto.edu): Fix memory leaks in loop optimizations.
360
361         * mini.c: Add new icalls for AsAny marshalling.
362
363 Tue May 11 16:00:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
364
365         * tramp-ppc.c, mini-ppc.c: more cleanups.
366
367 2004-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
368
369         * mini.c: no warnings.
370
371 Tue May 11 13:59:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
372
373         * mini-ppc.c, mini.c: use mono_resolve_patch_target ().
374
375 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
376
377         * mini.c: In the thread abort signal handler, if the thread is in the
378         process of being stoped, don't throw the Abort exception, just stop the
379         thread.
380
381 Tue May 11 12:15:24 CEST 2004 Paolo Molaro <lupus@ximian.com>
382
383         * tramp-ppc.c: removed old code.
384
385 Tue May 11 12:02:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
386
387         * mini.h, mini-ppc.c, cfold.c: export mono_is_power_of_two().
388         do some simple speed optimizations on ppc.
389
390 Mon May 10 17:21:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
391
392         * mini-ppc.c, cpu-g4.md: fixes to handle large stack frames
393         and large offsets in load/store.
394
395 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
396
397         * mini-x86.c (mono_arch_local_regalloc): Remove the previous fix, since
398         it causes regressions.
399
400 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
401
402         * mini-sparc.c: Fix vararg support + add beginnings of sigaltstack
403         support.
404
405 Fri May 7 13:25:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
406
407         * jit-icalls.c: remove warnings.
408         * inssel-x86.brg, inssel.brg, mini-x86.c, cfold.c: some simple
409         speedups for unsafe code.
410
411 2004-05-07 Ben Maurer  <bmaurer@users.sourceforge.net>
412
413         * inssel.brg: Optimize Stind.[ui][12]. r=zoltan.
414
415 2004-05-06  Zoltan Varga  <vargaz@freemail.hu>
416
417         * basic-calls.cs: Add new regression test.
418
419         * mini.c (mono_runtime_install_handlers): Use SA_ONSTACK since it is
420         more portable.
421
422         * mini.c (mono_method_to_ir): Handle opcode emulation for *_OVF opcodes.
423
424         * mini-x86.c (mono_arch_local_regalloc): Free new_dest register when it
425         is no longer used.
426
427 2004-05-06      Patrik Torstensson
428
429         * mini-x86.[c|h], inssel-x86.brg, cpu-pentium.md, mini.c: enabled
430         long reg allocation in any reg (not only eax:edx) and implemented 
431         long shl/shr ops in asm instead of helpers.
432
433 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
434
435         * mini-sparc.h: Fix warnings.
436
437         * exceptions-sparc.c (mono_arch_find_jit_info): Pop unused lfm off the
438         stack.
439
440         * mini-exceptions.c (mono_handle_exception): Call the filter in a
441         separate statement for clarity.
442
443         * mini-sparc.c: Update status.
444
445 2004-05-04  Zoltan Varga  <vargaz@freemail.hu>
446
447         * mini-exceptions.c (ves_icall_get_frame_info): Flush register windows
448         here.
449
450 Mon May 3 22:58:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
451
452         * inssel-ppc.brg: another small pre-release workaround:
453         we don't do overflow detection for long_sub_un.
454
455 Sun May 2 20:12:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
456
457         * mini.c, mini-ops, inssel-long32.brg: speedup ulong >> 32
458         (also works around a weird ppc bug: 57957).
459
460 Sat May 1 16:56:10 EDT 2004 Paolo Molaro <lupus@ximian.com>
461
462         * tramp-ppc.c: trampoline fixes.
463
464 Fri Apr 30 15:54:26 EDT 2004    Paolo Molaro <lupus@ximian.com>
465
466         * mini-ppc.c: fixed typos.
467
468 Thu Apr 29 20:15:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
469
470         * mini-ppc.c, exceptions-ppc.c: more code saves registers
471         at the top of the stack. Fixed typos. Use a frame registers
472         for all the methods with exception clauses.
473
474 Thu Apr 29 18:52:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
475
476         * exceptions-ppc.c: restore fp registers.
477
478 Thu Apr 29 18:26:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
479
480         * mini-ppc.c, exceptions-ppc.c: save the registers in reverse
481         order from the stack top (moved the stack room to save the
482         return value for trace after the param area). Fixed corruption
483         in restoring registers on unwind.
484
485 Thu Apr 29 16:47:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
486
487         * mini-ppc.c, cpu-g4.md: fixed unisgned -> double conversion.
488
489 Thu Apr 29 13:50:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
490
491         * exceptions-ppc.c, mini-ppc.h, mini-ppc.c: fixed localloc
492         and prolog/epilog for methods that use it. Allow
493         enough param area room for varargs methods. Fix miguel's
494         breakage in exception handling.
495
496 Thu Apr 29 12:06:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
497
498         * Makefile.am: run genmdesc only on current arch.
499
500 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
501
502         * exceptions-x86.c:
503         * mini-x86.h: fix the build on windows.
504
505 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
506
507         * Makefile.am mini.h mini-exceptions.c mini-x86.h mini-sparc.h exceptions-sparc.c: Move parts of the sparc exception handling code to XP code.
508
509         * exceptions-sparc.c exceptions-ppc.c exceptions-s390.c mini-ppc.h mini-s390.h mini-sparc.h: Fix up ports after changes.
510
511         * mini-exceptions.c: New file.
512         
513         * mini.c mini-exceptions.c mini-x86.h exceptions-x86.c Makefile.am:
514         Move some parts of the x86 exception handling code to an 
515         arch-independent file so it can be shared with other ports.
516
517 Tue Apr 27 12:15:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
518
519         * trace.c, cpu-g4.md, inssel-ppc.brg, mini-ppc.c: some fixes for FP code.
520
521 2004-04-26  David Waite  <mass@akuma.org>
522
523         * driver.c: remove comma from end of enumeration declaration
524
525 2004-04-26  Jackson Harper  <jackson@ximian.com>
526
527         * driver.c: parse config file before loading first assembly. This
528         allows the user gac to be enabled/disabled. 
529         
530 2004-04-23  Miguel de Icaza  <miguel@ximian.com>
531
532         * mini-ppc.c (ppc_patch): Replaced the branch code patching with a
533         simpler mechanism: we do not care what is encoded initially
534         (branch absolute or relative), we care about the code and its
535         target.  I kept the old code for reference for now.
536
537         The new code tries first to determine if the jump is anywhere in
538         the -/+32 absolute meg range, if it succeeds, it encodes using the
539         absolute branch;  If not, it tried to find something in the
540         relative range, if not, it uses the handle_thunk code. 
541
542 Fri Apr 23 14:20:40 EDT 2004 Paolo Molaro <lupus@ximian.com>
543
544         * exceptions-ppc.c: use the correct ip register on macosx.
545
546 Thu Apr 22 13:23:16 EDT 2004 Paolo Molaro <lupus@ximian.com>
547
548         * exceptions.c, mini.c, mini-ppc.h: adapt code to macosx.
549
550 Thu Apr 22 18:08:37 CEST 2004 Paolo Molaro <lupus@ximian.com>
551
552         * mini-ppc.c, cpu-g4.md: made the branch macros more flexible.
553         Raise exception on integer divide by zero by hand since the hw
554         doesn't support it. Handle NaNs in FP compares.
555
556 Thu Apr 22 16:10:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
557
558         * exceptions-ppc.c, mini-ppc.h, mini.c: simplified some
559         code reducing duplication between the platforms and enabled
560         signal exception handling (on linux for now).
561
562 Wed Apr 21 12:27:48 EDT 2004 Paolo Molaro <lupus@ximian.com>
563
564         * exceptions-ppc.c: more macosx support.
565
566 Wed Apr 21 16:38:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
567
568         * mini-ppc.h, mini-ppc.c, cpu-g4.md: enable bigmul optimization.
569
570 Wed Apr 21 16:20:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
571
572         * mini.h, mini-ppc.c, cpu-g4.md: support for implicit exceptions.
573
574 2004-04-19 Ben Maurer  <bmaurer@users.sourceforge.net>
575
576         * iltests.il: more tests.
577
578 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
579
580         * mini-*.c (mono_arch_get_allocatable_int_vars): Skip written-only
581         vars as well.
582
583 Mon Apr 19 19:39:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
584
585         * mini-ppc.c: some fixes to bootstrap mcs/corlib/etc.
586
587 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
588
589         * liveness.c: Mark variables as volatile in all basic blocks reachable
590         from exception clauses.
591
592 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
593
594         * exceptions.cs (test_0_rethow_stacktrace): Make this work with
595         inlining.
596
597 2004-04-18 Ben Maurer  <bmaurer@users.sourceforge.net>
598
599         * iltests.il, basic.cs: more tests for regalloc.
600
601 2004-04-17 Ben Maurer  <bmaurer@users.sourceforge.net>
602
603         * iltests.il: Some tests for register allocation modifications
604         I have locally.
605
606 2004-04-16  Zoltan Varga  <vargaz@freemail.hu>
607
608         * exceptions.cs: Add regression test for bug #56782.
609
610         * exceptions-*.c (mono_arch_handle_exception): Do not overwrite the
611         original stack trace if an exception is rethrown. Fixes #56782. Oh,
612         the beauty of fixing the same thing in 5 different files...
613
614 2004-04-15  Zoltan Varga  <vargaz@freemail.hu>
615
616         * mini.c (mono_method_to_ir): Do not compute coverage for inlined
617         methods.
618
619 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
620
621         * mini.c: Add support for STRWLPARRAY marshalling convention.
622
623 Wed Apr 14 18:15:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
624
625         * exceptions-ppc.c: missing fixes in mono_jit_walk_stack (need
626         to init the context to setup the regs pointer).
627
628 Wed Apr 14 17:59:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
629
630         * exceptions-ppc.c: more exceptions work.
631
632 Wed Apr 14 17:46:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
633
634         * mini.c: avoid reusing the same MonoInst on multiple trees: this is
635         not allowed.
636
637 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
638
639         * inssel-x86.brg (reg): Add new rules for add, sub and mul that
640         can use the memory directly.
641
642         * cpu-pentium.md: Update documentation from a post from Zoltan. 
643
644         add x86_add_membase, x86_sub_membase, x86_mul_membase
645
646 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
647
648         * mini-ppc.c: Remove unused definitions FLOAT_REGS and
649         GENERAL_REGS they were also hardcoded for all PPC ports.
650
651         (add_general): Use PPC_NUM_REG_ARGS instead of GENERAL_REGS.
652
653         Remove hard-coded limit for floating point registers, use
654         PPC_LAST_FPARG_REG instead in MONO_TYPE_R4 and MONO_TYPE_R8.
655
656         Notice that in MacOS X calling conventions you can fit a lot more
657         floating point values in registers, so I should update the PInvoke
658         test to excercise the passing of floating point values on the
659         stack (currently broken).
660         
661 2004-04-06  Miguel de Icaza  <miguel@ximian.com>
662
663         * tramp-ppc.c (create_trampoline_code): Added
664         JUMP_TRAMPOLINE_SIZE. 
665         (ppc_magic_trampoline): Follow the pattern from
666         x86_magic_trampoline: if code is set to zero, return. 
667         (create_trampoline_code): Always pass MonoMethod to the jump
668         trampoline, before it was passing a null.
669         (mono_arch_create_jump_trampoline): Implement the jump stub, could
670         share the code with mono_arch_create_jit_trampoline. 
671
672         * mini-ppc.c (mono_arch_output_basic_block): CEE_JMP opcode
673         implemented.
674         (mono_arch_patch_code): MONO_PATCH_INFO_METHOD_JUMP patch type
675         implemented.  
676
677         * cpu-g4.md: Added length for jmp instruction, the worst case
678         scenario is 92 bytes (4 mandatory bytes, potential 19 registers
679         for save_lmf).
680
681 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
682
683         * aot.c (mono_compile_assembly): Add back unlink removed by mistake.
684
685 2004-04-07  Zoltan Varga  <vargaz@freemail.hu>
686
687         * mini.c: Only set bblock->real_offset when adding a new bblock, and
688         before each IL instruction.
689
690         * mini.c (CEE_BOX): Fix warnings.
691
692 2004-04-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
693
694         * mini.c: removed a few unused vars and extra whitespace.
695
696 2004-04-05 Ben Maurer  <bmaurer@users.sourceforge.net>
697
698         * inssel.brg (MONO_EMIT_BOUNDS_CHECK): a new macro to emit bounds
699         checks.
700         (MONO_EMIT_BOUNDS_CHECK_IMM): the above, but when you know the
701         index.
702         (OP_GETCHR): use the above
703         (CEE_LDELEMA): use the above.
704
705         * inseel-x86.brg (MONO_EMIT_BOUNDS_CHECK): a faster and smaller
706         version of the generic impl.
707         (MONO_EMIT_BOUNDS_CHECK_IMM): the same
708         (CEE_LDELEMA): use the above.
709
710 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
711
712         * inssel-long32.brg (CEE_CONV_OVF_I8): Sign extend the i4 value to i8.
713         Fixes #56317.
714
715         * iltests.il: Added new regression test for #56317.
716
717 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
718
719         * mini-x86.c (mono_arch_setup_jit_tls_data): Use pthread_attr_get_np
720         under NetBSD. Fixes #56450.
721
722         * liveness.c (update_gen_kill_set): Fix previous patch.
723
724 2004-04-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
725
726         * mini-x86.h: SA_STACK defined as SA_ONSTACK. Fixed build under NetBSD.
727
728 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
729
730         * mini.c (mono_method_to_ir): Avoid handle_loaded_temps in
731         ldsfld and ldsflda.
732
733         * inssel-sparc.brg: Add more optimizations.
734
735         * mini-sparc.c: Replace multiply/divide with shifts if possible.
736
737 2004-04-01  Martin Baulig  <martin@ximian.com>
738
739         * mini.c (handle_box): New static function; moved the
740         implementation of CEE_BOX here.
741         (mono_method_to_ir): Added `constrained_call' variable.
742         (mono_method_to_ir:CEE_CONSTRAINED_): Set it.
743         (mono_method_to_ir:CEE_CALL): If `constrained_call' is set, use
744         mono_method_get_constrained() to get the method.
745
746 2004-04-01  Martin Baulig  <martin@ximian.com>
747
748         * mini.c (TYPE_PARAM_TO_TYPE, TYPE_PARAM_TO_CLASS): Removed.
749         (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): Removed.
750         (mono_method_to_ir): We don't need these macros anymore since
751         mono_class_get_full() already takes care of it. 
752
753 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
754
755         * aot.c: set aot_verbose to 0, fixed format string that caused sigsegv,
756         use @function (as doesn't accept #function here) and check the return
757         value of system and stop if fails.
758
759 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
760
761         * mini.c: set the timeout to 2s when calling mono_domain_finalize.
762
763 2004-03-31  Zoltan Varga  <vargaz@freemail.hu>
764
765         * mini-ppc.c (mono_arch_patch_code): Fix ppc build.
766
767         * inssel-sparc.brg mini-sparc.c aot.c: Implement AOT support.
768
769         * inssel-long32.brg (OP_LNEG): Use ADC instead of ADD here. Fixes
770         #56223.
771
772         * basic-long.cs: Add test for negation of Int64.MinValue.
773
774 2004-03-30  Zoltan Varga  <vargaz@freemail.hu>
775
776         * mini-sparc.c: Update status.
777
778         * mini-sparc.c tramp-sparc.c: Save lmf in trampolines.
779
780         * exceptions-sparc.c: Fix return value in filters.
781
782         * inssel-sparc.brg: Fix register allocation in some rules.
783
784 2004-03-28  Martin Baulig  <martin@ximian.com>
785
786         * mini.c (mmono_method_to_ir): In CEE_STELEM, do a handle_stobj()
787         if neccessary.  
788
789 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
790
791         * mini-x86.c (mono_arch_patch_code): Fix warnings.
792         
793         * mini-x86.c (mono_arch_output_basic_block): Fix CEE_MUL_OVF_UN if 
794         dreg is not EAX. Thanks to Willibard Krenn for spotting this. Also
795         remove unused conv_u4 opcode.
796
797         * mini-x86.c: Remove valgrind workaround since it slows down things
798         even when mono is not run under valgrind.
799
800 2004-03-26  Zoltan Varga  <vargaz@freemail.hu>
801
802         * mini-sparc.c: Update status.
803
804         * inssel-sparc.brg: Add some optimizations.
805
806         * inssel-sparc.brg mini-sparc.c: Rework branch instructions to allow
807         future delay slot filling. Add support for varargs, tail calls and JMP.
808
809         * inssel.brg mini-ops.h mini.c: Use OP_REFANYTYPE instead of 
810         CEE_REFANYTYPE, since CEE_REFANYTYPE needs a prefix to be unique.
811
812         * inssel.brg: Fix register allocation in OP_ARGLIST.
813
814         * inssel.brg: Fix warnings.
815
816 2004-03-25  Martin Baulig  <martin@ximian.com>
817
818         * mini.c (inflate_generic_field): Removed.
819         (mini_get_method): Removed, use mono_get_method_full(),
820         (mini_get_class): Removed, use mono_class_get_full().
821         (mono_method_to_ir): Pass our generic context to
822         mono_field_from_token().        
823
824 2004-03-25  Martin Baulig  <martin@ximian.com>
825
826         * mini.c (mini_get_class): Take a `MonoGenericContext *' instead
827         of a `MonoMethod *'.
828         (mini_get_method): Take a `MonoGenericContext *' instead
829         of a `MonoMethod *'.
830         (TYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_TYPE): mono_method_to_ir() has
831         a new local variable called `generic_context' which holds the
832         current `MonoGenericContext *'; use it to lookup things.
833
834 2004-03-24  Martin Baulig  <martin@ximian.com>
835
836         * mini.c (mini_get_class): New static method; if we're inside a
837         generic instance, inflate the class if neccessary.
838         (mono_method_to_ir): Use mini_get_class() instead of mono_class_get().
839
840 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
841
842         * iltests.il: New regression test for #55976.
843
844         * mini.c (mono_method_to_ir): Empty the stack in endfinally. Fixes
845         #55976.
846
847 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
848
849         * exceptions-sparc.c (mono_sparc_handle_exception): Remove debugging
850         output.
851
852 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
853
854         * liveness.c: Consider SSA stores as well as loads when making vars
855         volatile.
856
857         * exceptions.cs: New regression tests for register allocation.
858         
859 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
860
861         * mini-ppc.c, tramp-ppc.c: Added lock for accessing the domain code manager.
862         * mini.c: Removed domain lock from mono_jit_compile_method_with_opt. Use
863           domain lock only to protect puntual access to data structures.
864           Added access lock for sighash, jit_icall_hash_name, 
865           jit_icall_hash_addr and domain->code_mp.
866
867 2004-03-20  Zoltan Varga  <vargaz@freemail.hu>
868
869         * driver.c: Print SIGSEGV handling method.
870
871         * mini-x86.c (mono_arch_free_jit_tls_data): Add missing ifdef.
872
873         * mini.c (setup_jit_tls_data): Handle case when this is called
874         multiple times for a thread.
875
876         * mini-x86.c cpu-pentium.md: Fix floating point branch opcodes so fbxx 
877         is different from fbxx_un. Fixes #54303. Also use constants instead of
878         magic numbers in a lot of places.
879
880 2004-03-19  Zoltan Varga  <vargaz@freemail.hu>
881
882         * exceptions.cs: Fix cctor test when --regression is used.
883
884 Thu Mar 18 19:57:56 CET 2004 Paolo Molaro <lupus@ximian.com>
885
886         * mini-ppc.c, exceptions-ppc.c: basic exceptions support 
887         for Linux/ppc.
888
889 Thu Mar 18 19:56:19 CET 2004 Paolo Molaro <lupus@ximian.com>
890
891         * inssel-ppc.brg: fixed register assignments for some rules.
892
893 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
894
895         * exceptions.cs: Add test for exceptions in static constructors.
896
897         * mini.c (mono_jit_compile_method_with_out): Move the calling of
898         static constructors outside the domain lock. Fixes #55720.
899
900 2004-03-17  Martin Baulig  <martin@ximian.com>
901
902         * mini.c (get_generic_field_inst): Removed, this'll never happen.
903         (inflate_generic_field): Take the `MonoMethod *' instead of the
904         `MonoClass *' and added support for generic method.
905         (mono_method_to_ir): In CEE_LDSFLD and CEE_STSFLD, assert we never
906         have a `field->parent->gen_params', only inflate the field if it's
907         an open constructed type.
908
909 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
910
911         * exceptions-x86.c (mono_arch_handle_exception): Allocate a new
912         exception object instead of the preconstructed ones.
913
914 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
915
916         * mini.c: reverted changed to sigsegv_signal_handler commited
917         accidentally in the previous patch.
918
919 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
920
921         * mini.c:
922         (mono_method_to_ir): CEE_CALLVIRT, abort if no method. It hanged when
923         running --aot with an old assembly.
924
925 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
926
927         * mini-sparc.c (mono_arch_instrument_epilog): Fix handling of floating
928         point values.
929
930         * mini-sparc.c: Add support for v9 branches with prediction.
931
932 2004-03-15  Bernie Solomon  <bernard@ugsolutions.com>
933
934         * mini.c (mini_init): #warning is GNUC only
935
936         * mini-sparc.h: implement __builtin_frame_address
937         and __builtin_return_address for Sun C compiler
938
939 2004-03-15  Zoltan Varga  <vargaz@freemail.hu>
940
941         * exceptions-sparc.c (mono_arch_has_unwind_info): Add missing function.
942
943 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
944
945         * basic-calls.cs: Add test for unaligned byref long argument passing.
946
947         * mini-ops.h: Add sparcv9 compare and branch instructions.
948
949         * inssel-sparc.brg mini-sparc.h mini-sparc.c cpu-sparc.md: Use some
950         v9 instructions if we have a v9 cpu.
951
952         * mini-sparc.c (mono_arch_get_global_int_regs): Use unused input
953         registers for global allocation.
954
955         * exceptions-sparc.c: Fixes.
956         
957 2004-03-11  Zoltan Varga  <vargaz@freemail.hu>
958
959         * liveness.c (mono_analyze_liveness): Optimized version.
960
961         * inssel-sparc.brg cpu-sparc.md: Ongoing sparc work.
962
963         * mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Ongoing
964         sparc work.
965
966         * basic-float.cs basic-calls.cs: New regression tests.
967
968 2004-03-10  Zoltan Varga  <vargaz@freemail.hu>
969
970         * mini-x86.h: Define SIGSEGV_ON_ALTSTACK only if we have a working
971         sigaltstack implementation.
972
973         * mini-x86.c (mono_arch_setup_jit_tls_data): Fix previous patch.
974         
975         * mini-x86.c (mono_arch_setup_jit_tls_data): Turn off the sigaltstack
976         stuff if SIGSEGV_ON_ALTSTACK is not defined.
977
978 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
979
980         * mini.c: Fix warnings.
981         
982         * mini.c (mono_resolve_patch_target): New function which contains the
983         arch independent part of the patching process.
984
985         * mini-x86.c (mono_arch_patch_code): Move arch independent parts of the
986         patching code to a separate function.
987
988 2004-03-09  Bernie Solomon  <bernard@ugsolutions.com>
989
990         * mini.c (add_signal_handler): ifdef out on Windows
991
992 2004-03-08  Zoltan Varga  <vargaz@freemail.hu>
993
994         * mini-sparc.h mini-sparc.c inssel-sparc.brg exceptions-sparc.c 
995         cpu-sparc.md: Add exception handling support + other fixes.
996
997         * driver.c: Print --help output to stdout. Fixes #55261. Also fix
998         typed GC detection in --version.
999
1000         * basic.cs exceptions.cs: New regression tests.
1001
1002         * mini.h mini-x86.h mini-ppc.h: Add MonoCompileArch structure where
1003         the arch specific code can store data during a compilation.
1004
1005         * mini-ops.h: Add OP_SETFRET.
1006
1007         * mini.c (mini_get_ldelema_ins): Instead of allways calling the same
1008         function, register a separate icall for each arity, so the icalls can
1009         get a wrapper.
1010         
1011         * mini.c (mono_print_tree): Print negative offsets in a more readable
1012         form.
1013         
1014         * mini.c: Make signal handling work on sparc.
1015         
1016         * mini.c (mini_init): Add emulation for lconv_to_r8_un.
1017
1018         * inssel-long32.brg: Fix OP_LSUB_OVF_UN rule.
1019
1020         * jit-icalls.c: Emulate truncl by aintl on solaris.
1021
1022         * jit-icalls.c (mono_lconv_to_r8_un): New icall emulation function.
1023
1024 2004-03-05  Zoltan Varga  <vargaz@freemail.hu>
1025
1026         * mini.c (mini_init): fconv_to_ovf can raise exceptions.
1027
1028 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
1029
1030         * mini.c: In CEE_ISINST and CEE_CASTCLASS, if the type is an interface or
1031         a MarshalByRef type, inline a method that performs the check, taking into
1032         account that the object can be a proxy. Also implemented tow new opcodes:
1033         CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
1034         * inssel.brg: Implemented two new opcodes, mini-ops.h: OP_CISINST and 
1035         OP_CCASTCLASS, which implement CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
1036
1037 Tue Mar 2 17:23:48 CET 2004 Paolo Molaro <lupus@ximian.com>
1038
1039         * mini-ppc.c: if a relative branch displacement is too big
1040         but it points to and area reachable with an absolute branch, 
1041         avoid the thunks.
1042
1043 Tue Mar 2 16:59:40 CET 2004 Paolo Molaro <lupus@ximian.com>
1044
1045         * mini.c: optimize small copies in cpblk.
1046
1047 2004-03-01  Zoltan Varga  <vargaz@freemail.hu>
1048
1049         * basic-calls.cs basic-float.cs: New regression tests.
1050
1051         * mini-sparc.c inssel-sparc.brg mini-ops.h: Access local variables at 
1052         negative offsets from %fp. Implement localloc. Fix local register 
1053         allocation. Fix the case when the this argument needs to be saved to
1054         the stack. Implement some missing opcodes.
1055
1056 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
1057
1058         * mini.c (mini_method_compile): Reenable global regalloc in methods
1059         with exception handlers.
1060
1061         * linear-scan.c (mono_varlist_sort): Fix warning.
1062
1063         * linear-scan.c (mono_linear_scan): Fix computation of used_regs.
1064
1065         * mini-x86.c (mono_arch_regalloc_cost): Reenable precise computation of
1066         regalloc costs.
1067
1068         * liveness.c: Make all variables uses in exception clauses volatile, to
1069         prevent them from being allocated to registers. Fixes #42136.
1070
1071 2004-02-25  Zoltan Varga  <vargaz@freemail.hu>
1072
1073         * mini-x86.c (mono_arch_regalloc_cost): Revert this change since it
1074         causes regressions.
1075
1076         * mini.h linear-scan.c mini-x86.c mini-sparc.c mini-ppc.c: Add 'cfg'
1077         argument to mono_arch_regalloc_cost.
1078
1079         * mini-x86.c (mono_arch_regalloc_cost): Compute regalloc costs 
1080         precisely.
1081
1082 2004-02-24  Zoltan Varga  <vargaz@freemail.hu>
1083
1084         * mini.h mini-x86.c mini-ppc.c mini-sparc.c linear-scan.c: 
1085         Make the cost of allocating a variable to a register arch dependent.
1086
1087         * basic-calls.cs: Fix compilation of tests.
1088         
1089         * mini.h mini.c tramp-x86.c mini-x86.c: Add mono_running_on_valgrind ()
1090         helper function to cut back on the number of #ifdefs needed.
1091
1092         * mini-ppc.c: Fix compilation.
1093
1094         * basic-calls.cs: New regression tests.
1095
1096         * mini-sparc.c (mono_sparc_is_virtual_call): New helper function.
1097
1098         * tramp-sparc.c (create_specific_trampoline): Use g5 register instead
1099         of l0 since that is callee saved.
1100
1101         * tramp-sparc.c (sparc_magic_trampoline): Apply unbox trampoline only
1102         to virtual calls.
1103
1104         * mini-sparc.c: Ongoing work + flag virtual calls with a special kind 
1105         of delay instruction.
1106
1107         * inssel.brg (OP_CHECK_THIS): Set tree->sreg1 and dreg correctly.
1108
1109         * mini.h (MonoCallInst): Add 'virtual' flag.
1110
1111         * inssel.brg (mini_emit_virtual_call): Set 'virtual' flag.
1112
1113 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
1114
1115         * *.cs: New regression tests.
1116
1117         * mini-sparc.c inssel-sparc.brg: Update after latest changes. Ongoing sparc 
1118         work.
1119
1120         * mini.c (mono_runtime_install_handlers): Fix build.
1121
1122         * mini.h (MonoJitTlsData): Add 'stack_size', 'signal_stack' and
1123         'signal_stack_size' members.
1124
1125         * mini.h mini.c mini-x86.h mini-x86.c: Run sigsegv handlers on an 
1126         alternate signal stack.
1127
1128         * exceptions-x86.c: Add stack overflow handling.
1129
1130         * mini.h mini.c mini-x86.c mini-ppc.c trace.h trace.c: Move tracing 
1131         functions to arch independent code.
1132
1133         * mini.c (mono_print_tree): Print more detailed info for load_membase
1134         opcodes.
1135         
1136 2004-02-23  Martin Baulig  <martin@ximian.com>
1137
1138         * mini.c (mini_get_method): Set `gmethod->generic_inst'.
1139
1140 Sun Feb 22 22:25:19 CET 2004 Paolo Molaro <lupus@ximian.com>
1141
1142         * mini-x86.c: fixed reg allocation for div/rem.
1143
1144 2004-02-22  Miguel de Icaza  <miguel@ximian.com>
1145
1146         * driver.c (mono_main): Report some configuratio options on --version.
1147
1148 Fri Feb 20 11:01:44 PST 2004 Paolo Molaro <lupus@ximian.com>
1149
1150         * mini-ppc.c: fixed clt.un, cgt.un. Optimized calls to functions
1151         low in the address space. Correctly flush memory in thunks where we
1152         output native code.
1153
1154 2004-02-20  Martin Baulig  <martin@ximian.com>
1155
1156         * mini.c (mini_get_method): New static method; inflate all generic
1157         methods and methods in open generic instances.
1158         (mono_method_to_ir): Use mini_get_method() instead of mono_get_method().
1159         (ret_type_to_call_opcode): Added support for MONO_TYPE_GENERICINST.
1160
1161 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
1162
1163         * mini-sparc.c (mono_arch_patch_code): Update after domain->code_mp changes.
1164
1165         * tramp-sparc.c (mono_arch_create_jump_trampoline): Set ji->method.
1166
1167 2004-02-19  Bernie Solomon  <bernard@ugsolutions.com>
1168
1169         * helpers.c (mono_disassemble_code): use Sun's dis if not using gcc
1170
1171         * mini-sparc.c (flushi mono_arch_output_basic_block): make
1172         it compile using Sun's compiler.
1173
1174 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
1175
1176         * mini-ops.h inssel-sparc.brg cpu-sparc.md mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Sparc port, part I.
1177
1178         * basic-calls.cs basic-float.cs basic-long.cs objects.cs: New regression tests.
1179
1180 Tue Feb 17 21:41:20 CET 2004 Paolo Molaro <lupus@ximian.com>
1181
1182         * aot.c, mini-x86.c, mini.c: use the code manager instead of a mempool to hold native
1183         code.
1184         * mini-ppc.c: handle calls outside of the allowed range with thunks
1185         allocated using the code manager.
1186         * tramp-ppc.c: use the code manager to hold generated native code.
1187         Fixed the magic trampoline to just patch vtable entries.
1188
1189 2004-02-17  Zoltan Varga  <vargaz@freemail.hu>
1190
1191         * inssel.brg inssel-x86.brg: Move call(immediate) rules to the platform
1192         independent file.
1193
1194 2004-02-16  Zoltan Varga  <vargaz@freemail.hu>
1195
1196         * tramp-ppc.c (mono_arch_create_jump_trampoline): Fix compilation on
1197         PPC.
1198
1199         * mini-x86.c: Call mono_arch_get_lmf_addr instead of mono_get_lmf_addr
1200         if we have a working __thread implementation.
1201
1202         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Remove 
1203         OP_CALL_IMM opcodes, since the CALL opcodes handles immediates as well.
1204
1205 2004-02-15  Zoltan Varga  <vargaz@freemail.hu>
1206
1207         * mini-x86.c: Fix compilation under gcc 2.
1208         
1209 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
1210
1211         * mini.c (mono_codegen): Avoid infinite loop when an icall wrapper
1212         contains a call to the wrapped function.
1213
1214         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Add 
1215         OP_<CALL>_IMM opcodes, and use them under X86.
1216         
1217         * mini.c (mono_jit_find_compiled_method): Fix warning.
1218
1219         * cpu-pentium.md: Fix length of opcodes which use x86_alu_membase_imm.
1220
1221         * jit-icalls.c (mono_ldftn_nosync): New JIT icall.
1222
1223         * tramp-x86.c (mono_arch_create_jump_trampoline): Move arch independent
1224         functionality to mini.c.
1225
1226         * mini.c (mono_create_jump_trampoline): New function to create a jump
1227         trampoline. Return a compiled method instead of a trampoline if it
1228         exists. Add a cache for jump trampolines.
1229
1230         * mini.c (mono_jit_find_compiled_method): New function to return a
1231         compiled method if it exists.
1232
1233         * mini-x86.c: Call mono_create_jump_trampoline instead of 
1234         mono_arch_create_jit_trampoline.
1235
1236         * jit-icalls.c (mono_ldftn): Do not compile the method. Instead, return
1237         a jump trampoline. Fixes #52092.
1238         
1239 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
1240
1241         * debug-mini.c (mono_init_debugger): Remove call to mono_verify_corlib,
1242         which is not up-to-date. Add check_corlib_version () instead.
1243
1244         * mini.c (mini_init): Call mono_thread_attach () so embedders do not 
1245         have to call it.
1246         
1247         * mini.c (mono_runtime_install_handlers): Remove check for valgrind
1248         since newer valgrind versions do not need it.
1249
1250         * mini.c (mono_jit_compile_method_with_opt): New helper function to
1251         compile a method with a given set of optimizations.
1252
1253         * mini.c: Compile icall wrappers on-demand instead of at startup.
1254
1255         * mini-sparc.c mini-ppc.c: Call mono_icall_get_wrapper to obtain the
1256         wrapper for an icall.
1257
1258 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
1259
1260         * mini.c (mono_method_to_ir): Handle switch with non-empty stack. Fixes
1261         #54063.
1262
1263         * iltests.il: Add test for non-empty stack before switch instruction.
1264
1265 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
1266
1267         * mini.c: Add support for new stringbuilder marshalling conventions.
1268
1269         * mini.c (mono_method_to_ir): Fix stack management of generic CEE_BOX.
1270
1271 2004-02-01  Martin Baulig  <martin@ximian.com>
1272
1273         * mini.c (MTYPE_PARAM_TO_TYPE): Method type arguments are stored
1274         in `ginst->mtype_argv'.
1275
1276 2004-01-31  Miguel de Icaza  <miguel@ximian.com>
1277
1278         * mini.c: Add comments, replace CEE_XXX+128 with OP_XXX to
1279         facilitate grepping.
1280
1281 Wed Jan 28 14:04:58 CET 2004 Paolo Molaro <lupus@ximian.com>
1282
1283         * mini.c: fixed buglet in initobj generic implementation for references.
1284
1285 Fri Jan 23 16:10:44 EST 2004 Paolo Molaro <lupus@ximian.com>
1286
1287         * Makefile.am: make the version script conditional.
1288         * jit-icalls.c: handle missing truncl().
1289
1290 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
1291
1292         * exceptions.cs: Add more tests for double->int conversion.
1293
1294         * jit-icalls.c (mono_fconv_ovf_i8): Call truncl before comparison, so
1295         we don't throw exceptions when converting 1.1 to a long. Fixes #53250.
1296
1297 Fri Jan 23 17:12:08 CET 2004 Paolo Molaro <lupus@ximian.com>
1298
1299         * driver.c: make --verbose --version emit an error
1300         if the loaded corlib doesn't match the runtime version.
1301
1302 Mon Jan 19 17:44:50 CET 2004 Paolo Molaro <lupus@ximian.com>
1303
1304         * mini-ppc.h: export ppc_patch().
1305         * mini-ppc.c: call convention fixes. Added assert in ppc_patch().
1306         * tramp-ppc.c: call convention fixes: Linux/PPC support should be
1307         on par or better than on MacOSX.
1308
1309 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
1310
1311         * mini.c tramp-x86.c tramp-sparc.c: Updated after changes to
1312         mono_lookup_pinvoke_call.
1313
1314         * mini-x86.c: Under windows, the default pinvoke calling convention is
1315         stdcall. Fixes #52834.
1316
1317         * mini.c (optimize_branches): Add an upper bound to the number of
1318         iterations to prevent infinite loops on strange loops. Fixes #53003.
1319
1320 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
1321
1322         * inssel.brg: Add vectors<->one dimensional array checking to CASTCLASS
1323         and ISINST. Fixes #52093.
1324
1325         * objects.cs (test_0_vector_array_cast): New tests.
1326         
1327 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
1328
1329         * jit-icalls.c (helper_stelem_ref_check): New jit icall for array type
1330         checking in Array.Set ().
1331
1332         * mini.c (method_to_ir): Add array type checking in Array.Set (). Fixes
1333         #52590.
1334
1335         * object.cs (test_0_multi_array_cast): New regression test.
1336
1337 Thu Jan 15 16:30:24 CET 2004 Paolo Molaro <lupus@ximian.com>
1338
1339         * exceptions-ppc.c: fix build on Linux/PPC.
1340
1341 2004-01-14  Zoltan Varga  <vargaz@freemail.hu>
1342
1343         * tramp-x86.c (x86_magic_trampoline): Disable code patching when
1344         running under valgrind.
1345         (x86_magic_trampoline): Fix build bustage.
1346
1347         * debug-mini.c: Modify the debug info serialize/deserialize code so it handles
1348         negative values as well. This is needed for the encoding of the line number
1349         info, since sometimes the line numbers are not in increasing order.
1350
1351 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
1352
1353         * cpu-pentium.md (localloc): Increase the size of the localloc 
1354         instruction since it is a loop under Win32.
1355
1356         * debug-mini.c (record_line_number): Get rid of unneccesary memory
1357         allocation.
1358
1359 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
1360
1361         * exceptions-ppc.c exceptions-x86.c exceptions-sparc.c 
1362         tramp-x86.c tramp-ppc.c tramp-sparc.c: Applied patch from 
1363         Max Horn (max@quendi.de). Fix file names in comments.
1364
1365 2004-01-03  Zoltan Varga  <vargaz@freemail.hu>
1366
1367         * ssa.c (mono_ssa_rename_vars): Allocate new_stack on the heap to
1368         avoid stack overflow.
1369         (replace_usage): Avoid uninitialized variable warnings.
1370
1371         * mini.c (mono_method_to_ir): Avoid disabling SSA for array operations
1372         and taking the address of valuetype variables.
1373
1374 2004-01-03  Patrik Torstensson
1375
1376         * mini-x86.c: renamed fpflags to flags in RegTrack, going to be used
1377         for other purposes than FP later on.
1378
1379 2004-01-02  Zoltan Varga  <vargaz@freemail.hu>
1380
1381         * mini.c (mono_method_to_ir): Prevent register allocation for arguments
1382         of tail calls.
1383
1384 Fri Jan 2 13:37:25 CET 2004 Paolo Molaro <lupus@ximian.com>
1385
1386         * mini-ops.h, mini.c, inssel.brg: Object.GetType () speedup.
1387
1388 2003-12-30  Patrik Torstensson <p@rxc.se>
1389
1390         * mini-x86.h: Decreased number of availiable fp regs.
1391         Solves corner cases with FP spilling.
1392
1393 2003-12-23  Patrik Torstensson <p@rxc.se>
1394
1395         * mini-x86.c, mini-ops.h, cpu-pentium.md: Added support
1396         for floating point stack tracking / spilling on x86. 
1397         Fixes bug #49012.
1398         
1399         * basic-float.cs: added float mul overflow test.
1400
1401 2003-12-23  Zoltan Varga  <vargaz@freemail.hu>
1402
1403         * mini.c (mono_method_to_ir): Add workaround for bug #51126.
1404
1405 Sun Dec 21 19:53:16 CET 2003 Paolo Molaro <lupus@ximian.com>
1406
1407         * mini.h, mini-ppc.c, mini-ppc.h: small cleanups and
1408         supports for cond branches that overflow the immediate
1409         overflow offset. mcs can compile simple programs.
1410
1411 Fri Dec 19 21:17:16 CET 2003 Paolo Molaro <lupus@ximian.com>
1412
1413         * exceptions-ppc.c: exception handling support wip:
1414         finally handlers get run on exception.
1415
1416 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
1417
1418         * aot.c (mono_aot_get_method_inner): Avoid loading AOT code while 
1419         profiling.
1420
1421 Fri Dec 19 17:58:28 CET 2003 Paolo Molaro <lupus@ximian.com>
1422
1423         * cpu-g4.md, mini-ppc.c, exceptions-ppc.c, mini-ppc.h:
1424         initial support for stack walking and unwinding.
1425
1426 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
1427
1428         * driver.c (mono_main): Make corlib-out-of-sync message more 
1429         descriptive. Also remove verify_corlib call.
1430
1431 Wed Dec 17 15:31:41 CET 2003 Paolo Molaro <lupus@ximian.com>
1432
1433         * mini.c: make CEE_NEWARR calls and other emulated opcodes 
1434         not overlap with other call's arguments, too.
1435
1436 Wed Dec 17 12:49:23 CET 2003 Paolo Molaro <lupus@ximian.com>
1437
1438         * mini.h, mini.c, mini-ppc.c, mini-sparc.c, mini-x86.c: 
1439         move to arch-specific code the choice of arch-specific
1440         intrinsics (from Laurent Morichetti (l_m@pacbell.net)).
1441         * mini.c: ensure emulation calls will not interleave
1442         with other calls.
1443
1444 Wed Dec 17 12:27:26 CET 2003 Paolo Molaro <lupus@ximian.com>
1445
1446         * tramp-ppc.c, basic-calls.cs: rework trampolines so that
1447         the magic trampoline stack frame is dropped before executing
1448         the new method.
1449
1450 Mon Dec 15 18:13:57 CET 2003 Paolo Molaro <lupus@ximian.com>
1451
1452         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed some opcode lengths
1453         and integer to fp conversions. Added support for overflowing
1454         arguments on the stack. Reserve a couple more registers as temps.
1455         Added support for aot compilation (as output still needs to be
1456         tweaked, though).
1457
1458 Sat Dec 13 17:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
1459
1460         * mini-ppc.c, basic-long.cs: fix jumps to known labels.
1461         Don't overwrite return register in some corner cases.
1462
1463 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
1464
1465         * mini.h mini.c driver.c mini-x86.c mini-ppc.c aot.c: Do not run
1466         static constructors when AOT compiling.
1467
1468         * driver.c (mono_main): Call mono_check_corlib_version.
1469
1470 Sat Dec 13 10:31:12 CET 2003 Paolo Molaro <lupus@ximian.com>
1471
1472         * cpu-g4.md, basic.cs: fixed div target register.
1473
1474 Sat Dec 13 09:45:56 CET 2003 Paolo Molaro <lupus@ximian.com>
1475
1476         * mini-ppc.c, basic.cs: shl_imm fix with test.
1477
1478 Fri Dec 12 21:25:14 CET 2003 Paolo Molaro <lupus@ximian.com>
1479
1480         * inssel-ppc.brg, mini-ppc.h, mini-ppc.c: support for passing 
1481         structures by value. Misc fixes.
1482         * objects.cs: more tests.
1483
1484 Fri Dec 12 10:11:49 CET 2003 Paolo Molaro <lupus@ximian.com>
1485
1486         * mini-ppc.c: lconv.ovf.i implemented.
1487
1488 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1489
1490         * mini.c:
1491         (mini_init): don't error out if someone already called g_thread_init.
1492
1493 Tue Dec 9 17:27:14 CET 2003 Paolo Molaro <lupus@ximian.com>
1494
1495         * exceptions-x86.c, exceptions-ppc.c: allow the exception object
1496         to be any type per the spec. Fix abnormal memory usage when
1497         the same object is repeatedly thrown.
1498
1499 Tue Dec 9 15:39:54 CET 2003 Paolo Molaro <lupus@ximian.com>
1500
1501         * mini.c: check for overruns in IL code.
1502
1503 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
1504
1505         * TODO: Add/remove some todo entries.
1506
1507 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
1508
1509         * driver.c (mono_main): Call mono_verify_corlib.
1510
1511 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
1512
1513         * inssel.brg: In CEE_ISINST and CEE_CASTCLASS, removed check for proxy. 
1514         This has been moved to mini.c
1515         * mini.c: in mono_method_to_ir, CEE_ISINST and CEE_CASTCLASS cases, if the
1516         type being casted is marshalbyref it could be a proxy, so instead of
1517         emitting the type check code, emit a call to a runtime method that will
1518         perform the check by calling CanCastTo if needed.
1519
1520 2003-12-06  Zoltan Varga  <vargaz@freemail.hu>
1521
1522         * mini-x86.c (mono_arch_emit_prolog): Fix stack space allocation for
1523         methods with large stack frames under Win32.
1524
1525 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
1526
1527         * Makefile.am: Distribute regression tests.
1528
1529         * mini-x86.c (mono_arch_get_allocatable_int_vars): Sort the var list
1530         at the end instead of inserting each variable into the sorted list.
1531
1532         * linear-scan.c (mono_varlist_sort): New helper function.
1533         
1534 Wed Dec 3 20:46:28 CET 2003 Paolo Molaro <lupus@ximian.com>
1535
1536         * mini.c: ensure arguments and locals are within bounds.
1537
1538 Wed Dec 3 17:59:10 CET 2003 Paolo Molaro <lupus@ximian.com>
1539
1540         * mini-ppc.c, cpu-g4.md, basic.cs, basic-long.cs: more tests and 
1541         related fixes.
1542
1543 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
1544
1545         * mini.c (mono_cprop_copy_values): Fix crash.
1546
1547         * aot.c: Set verbosity back to 0.
1548         
1549 Wed Dec 3 15:42:27 CET 2003 Paolo Molaro <lupus@ximian.com>
1550
1551         * regalloc.c: complete memory leak fix by Laurent Morichetti
1552         (l_m@pacbell.net).
1553
1554 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
1555
1556         * driver.c (main_thread_handler): Revert the previous patch.
1557
1558         * tramp-x86.c (x86_class_init_trampoline): Avoid patching when running
1559         under valgrind.
1560
1561         * mini-x86.c (mono_arch_local_regalloc): Do not allocate transient
1562         memory from the memory pool.
1563
1564         * driver.c (main_thread_handler): Turn on all optimizations when
1565         --aot is used.
1566
1567         * mini.c (mono_find_jit_opcode_emulation): Turn emul_opcode_hash into
1568         an array for better performance.
1569
1570         * regalloc.c (mono_regstate_assign): Fix memory leak.
1571
1572         * debug-mini.c (mono_debug_serialize_debug_info): New function to
1573         serialize the debug info.
1574
1575         * debug-mini.c (mono_debug_add_aot_method): New function to load the
1576         debug info from the serialized representation.
1577
1578         * aot.c: Save debug info into the generated file and load it when 
1579         loading a method.
1580
1581         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
1582
1583 Mon Dec 1 16:54:05 CET 2003 Paolo Molaro <lupus@ximian.com>
1584
1585         * mini-ppc.c, tramp-ppc.c: save FP arguments in the trampoline.
1586         More FP-related fixes.
1587
1588 Sun Nov 30 19:13:52 CET 2003 Paolo Molaro <lupus@ximian.com>
1589
1590         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed finally handlers
1591         and register allocation buglet. Hello world now runs.
1592
1593 Fri Nov 28 23:03:05 CET 2003 Paolo Molaro <lupus@ximian.com>
1594
1595         * cpu-g4.md, inssel-ppc.brg, mini-ppc.c: better long return support.
1596         * tramp-ppc.c: fixed class init trampoline.
1597         * inssel-ppc.brg, mini.c, jit-icalls.c, mini-ppc.h: more emulation.
1598
1599 Fri Nov 28 16:36:29 CET 2003 Paolo Molaro <lupus@ximian.com>
1600
1601         * cpu-g4.md, inssel-ppc.brg, jit-icalls.c, mini-ppc.c, mini-ppc.h,
1602         mini.c: more ppc changes/fixes.
1603
1604 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
1605
1606         * mini.c (mono_method_to_ir): Fix tail calls with valuetype arguments.
1607         Also optimize the case when the arguments are the same in the caller 
1608         and in the callee.
1609
1610         * iltests.il: Add tests for tail calls with valuetype arguments.
1611
1612 Thu Nov 27 21:06:37 CET 2003 Paolo Molaro <lupus@ximian.com>
1613
1614         * mini-ppc.c: fixes for struct return type.
1615
1616 Thu Nov 27 19:02:07 CET 2003 Paolo Molaro <lupus@ximian.com>
1617
1618         * mini.h, mini.c, mini-x86.c, mini-ppc.c, mini-sparc.c: move 
1619         mono_spillvar_offset() to arch-specific code.
1620
1621 Thu Nov 27 18:30:42 CET 2003 Paolo Molaro <lupus@ximian.com>
1622
1623         * mini-ppc.h, mini-ppc.c: handle some different ABI call convention issues.
1624
1625 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
1626
1627         * exceptions-x86.c: Fix stack space leaks.
1628         
1629         * exceptions-x86.c (mono_arch_find_jit_info): Restore callee saved
1630         registers from the lmf if the method has save_lmf set.
1631
1632 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
1633
1634         * tramp-x86.c (x86_magic_trampoline): Avoid patching in the addresses
1635         of icall wrappers into InvokeInDomain, since these are now per-domain.
1636
1637 Wed Nov 26 20:15:04 CET 2003 Paolo Molaro <lupus@ximian.com>
1638
1639         * mini-ppc.h, mini-x86.h, mini.c, inssel-ppc.brg, jit-icalls.c:
1640         make some opcode emulation and intrinsic ops enabled/disabled 
1641         according to the architecture. More fixes.
1642
1643 Wed Nov 26 19:59:09 CET 2003 Paolo Molaro <lupus@ximian.com>
1644
1645         * mini-ppc.c, mini-sparc.c, cpu-g4.md: more bug fixes.
1646
1647 Wed Nov 26 19:18:29 CET 2003 Paolo Molaro <lupus@ximian.com>
1648
1649         * mini.h, inssel.brg, mini-x86.c, mini-ppc.c, mini-sparc.c: move
1650         arch-specific handling for 'this' and struct return type to
1651         arch-specific code.
1652
1653 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1654
1655         * aot.c: prevent divide by zero error when reporting (it happened with
1656         Accessibility.dll).
1657
1658 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
1659
1660         * mini.h (inst_switch): Remove unused macro.
1661
1662 2003-11-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1663
1664         * aot.c:
1665         (load_aot_module): free 'info->methods' and 'info' properly. No more
1666         "free(): invalid pointer blah" messages when you have an old aot
1667         compiled assembly.
1668
1669 2003-11-21  Lluis Sanchez Gual <lluis@ximian.com>
1670
1671         * jit-icalls.c, mini.c: Added support for context static fields.
1672
1673 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
1674
1675         * mini.c (mono_method_blittable): Methods which set LastError are not 
1676         blittable either. Fixes #51108.
1677         
1678 Tue Nov 18 16:41:37 CET 2003 Paolo Molaro <lupus@ximian.com>
1679
1680         * mini.c: flush icache.
1681         * cpu-g4.md, mini-ppc.c, inssel.brg: more fixes. Trace support.
1682
1683 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
1684
1685         * mini.c (mono_type_blittable): OBJECT is not blittable. Fixes #47842.
1686
1687 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
1688
1689         * tramp-x86.c (x86_class_init_trampoline): Make code patching thread
1690         safe on IA32.
1691
1692         * mini-x86.c (mono_arch_call_opcode): Disable AOT for methods with 
1693         vararg calls.
1694
1695         * inssel.brg (CEE_MKREFANY): Fix AOT case.
1696
1697 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
1698
1699         * mini-x86.c (mono_arch_local_regalloc): Fix regalloc for div 
1700         instruction when the result is discarded.
1701
1702         * iltests.il (test_0_div_regalloc): New regression test.
1703
1704         * arrays.cs: Fix compilation error.
1705
1706 Fri Nov 14 21:34:06 CET 2003 Paolo Molaro <lupus@ximian.com>
1707
1708         * inssel-x86.brg, inssel-float.brg, mini-ops.h: move x86-specific
1709         float rules to inssel-x86.brg: sane architectures with FP registers
1710         don't need to implement these rules.
1711
1712 Fri Nov 14 20:52:12 CET 2003 Paolo Molaro <lupus@ximian.com>
1713
1714         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: updates and fixes to the ppc port.
1715
1716 Fri Nov 14 17:58:27 CET 2003 Paolo Molaro <lupus@ximian.com>
1717
1718         * mini.h, inssel-long32.brg: fixed endianess issues in int64
1719         implementation of 32 bit systems.
1720
1721 Thu Nov 13 16:14:41 CET 2003 Paolo Molaro <lupus@ximian.com>
1722
1723         * exceptions-ppc.c: fix build on Linux/ppc from Jeroen@xs4all.nl
1724         (Jeroen Zwartepoorte).
1725
1726 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
1727
1728         * mini.c (mono_method_to_ir): Use CEE_JMP only if the signature of
1729         the caller and the callee matches.
1730         
1731         * mini.c (mono_method_to_ir): Add comment.
1732
1733         * mini-x86.c (mono_arch_output_basic_block): Use mono_signbit, since
1734         signbit is missing on some platforms.
1735
1736 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
1737
1738         * mini.h (mono_arch_setup_jit_tls_data): New arch specific function.
1739
1740         * mini.c (setup_jit_tls_data): Call the new function.
1741         
1742         * mini-x86.c mini-ppc.c mini-sparc.c: Define the new function.
1743
1744         * mini-x86.c: Add experimental support for fast access to the lmf
1745         structure under NPTL/Linux 2.6.x.
1746
1747 2003-11-06  Martin Baulig  <martin@ximian.com>
1748
1749         * ldscript: Make `GC_push_all_stack', `GC_start_blocking',
1750         `GC_end_blocking' and 'gc_thread_vtable' public; they're used by
1751         the debugger.
1752
1753 2003-11-02  Martin Baulig  <martin@ximian.com>
1754
1755         * mini.c (inflate_generic_field): New static method.
1756         (mono_method_to_ir): In CEE_LDFLD and CEE_LDSFLD: if we're a
1757         generic instance and the field is declared in a generic type, call
1758         inflate_generic_field() to inflate it.  Fixes gen-28.cs.
1759
1760 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
1761
1762         * mini.h mini.c (mono_method_same_domain): New function to return
1763         whenever the caller and the callee are in the same domain.
1764
1765         * tramp-x86.c (x86_magic_trampoline): Use the new function.     
1766
1767 2003-10-30  Martin Baulig  <martin@ximian.com>
1768
1769         * mini.c (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): New macros;
1770         similar to TYPE_PARAM_TO_TYPE and TYPE_PARAM_TO_CLASS, but for
1771         method parameters.
1772         (mono_method_to_ir): Added support for MONO_TYPE_MVAR; similar to
1773         MONO_TYPE_VAR, we the actual types from MTYPE_PARAM_TO_CLASS(). 
1774
1775 2003-10-29  Zoltan Varga  <vargaz@freemail.hu>
1776
1777         * mini.c mini-ops.h inssel.brg: Implement undeniable exception 
1778         propagation.
1779
1780         * mini.c (sigusr1_signal_handler): Move creation of the thread abort
1781         object here, so it is in the correct appdomain etc.
1782
1783 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
1784
1785         * mini.c (mono_jit_compile_method_inner): Lookup icalls here if not
1786         already done.
1787         (mono_method_to_ir): Avoid freeing the type created returned from
1788         mono_type_create_from_typespec, since it is put into an internal cache
1789         by the function. Fixes pointer.exe.
1790
1791         * mini.c tramp-x86.c tramp-sparc.c tramp-ppc.c: Use the normal 
1792         trampolines for icalls and pinvokes as well. Fixes #33569.
1793
1794 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
1795
1796         * mini.c: Update after appdomain changes.
1797
1798         * mini.c (mono_jit_compile_method_inner): Allways compile native
1799         method wrappers in the root domain, since there can only be one
1800         instance of them, whose address is stored in method->info.
1801
1802 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
1803
1804         * mini.c (mono_runtime_install_handlers): Get rid of the MONO_VALGRIND
1805         environment variable. Instead detect automatically whenever running
1806         under valgrind using the magic macro RUNNING_ON_VALGRIND from
1807         valgrind.h.
1808
1809 2003-10-16  Miguel de Icaza  <miguel@ximian.com>
1810
1811         * trace.c, trace.h: New files that implement the new trace option
1812         parsing. 
1813
1814         * driver.c: Document new --trace options.
1815
1816         * exceptions-ppc.c, exceptions-x86.c, mini-ppc.c, mini-sparc.c,
1817         mini-x86.c: Apply:
1818
1819         -       if (mono_jit_trace_calls)
1820         +       if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
1821
1822         * mini.h: prototypes.
1823         
1824 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
1825
1826         * mini.c (mono_method_to_ir): Fix initialization of typedbyref locals.
1827
1828         * mini.c inssel.brg: Implement typedefbyref opcodes.
1829
1830         * mini.c (mono_jit_compile_method): Remove unused local variable.
1831
1832         * mini.c (mono_jit_compile_method_inner): Ditto.
1833         
1834 2003-10-12  Zoltan Varga  <vargaz@freemail.hu>
1835
1836         * tramp-x86.c (x86_class_init_trampoline): Fix build.
1837         
1838         * tramp-x86.c (x86_class_init_trampoline): Thread safety fixes.
1839
1840 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
1841
1842         * mini.c (mono_no_aot): Remove unused global variable.
1843
1844         * mini.c: Thread safety fixes.
1845
1846 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
1847
1848         * mini.c (mono_create_class_init_trampoline): Add a lock around
1849         class_init_hash_addr.
1850
1851         * arrays.cs (test_0_newarr_emulation): Add new regression test for
1852         #30073.
1853
1854         * mini.c: Decompose the NEWARR instruction before decomposing its
1855         arguments. Fixes #30073.
1856
1857 2003-10-08  Zoltan Varga  <vargaz@freemail.hu>
1858
1859         * mini-x86.c (mono_arch_emit_epilog): Add support for stdcall calling
1860         convention.
1861
1862 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
1863
1864         * mini.c (mono_method_to_ir): Allow wrapper data for CEE_LDELEMA.
1865
1866         * inssel-x86.brg (OP_LOCALLOC): Fix register assignment for localloc.
1867
1868         * driver.c: Add support for compiling icall wrappers to --compile.
1869
1870 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
1871
1872         * inssel.brg: The empty value in class->interface_offsets is -1, not
1873         0. Fixes #49287.
1874
1875 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
1876
1877         * objects.cs: New test for 'is' operator on an array of interfaces.
1878
1879 Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
1880
1881         * tramp-ppc.c: update trampoline code to support jumps
1882         and class initialization.
1883
1884 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
1885
1886         * mini.c (mono_jit_compile_method): Fix reading of freed memory.
1887
1888         * inssel.brg (OP_UNBOXCAST): Fix #46027.
1889
1890         * inssel.brg (OP_UNBOX): Remove unused rule.
1891
1892         * mini.h mini.c inssel-x86.brg: Allocate one SP variable for each
1893         region instead of one for each method. Fixes #47813.
1894
1895 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
1896
1897         * exceptions.cs (test_0_nested_finally): New regression test for
1898         nested exception handlers.
1899
1900         * mini.c (mono_jit_runtime_invoke): Fix for the previous fix.
1901
1902         * mini.c (mono_method_to_ir): Avoid inlining tail calls.
1903
1904         * mini.c (mono_method_to_ir): Fix tail recursion in the presence of 
1905         inlining.
1906
1907         * mini.c (mono_method_check_inlining): Make the inlining limit 
1908         configurable by an environment variable.
1909         
1910         * mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545.
1911
1912         * mini.h: Bump AOT file version.
1913
1914         * mini.h mini.c aot.c mini-x86.c: For relocations which refer to a 
1915         token, store the image along with the token, since the token might not 
1916         refer to the same image as the method containing the relocation, 
1917         because of inlining.
1918
1919 2003-09-27  Zoltan Varga  <vargaz@freemail.hu>
1920
1921         * mini.c (mono_precompile_assemblies): New function to compile
1922         all methods in all loaded assemblies.
1923
1924         * mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP.
1925
1926         * regalloc.h regalloc.c (MonoRegState): Change the type of 
1927         iassign and fassign to int*, since they can contain large negative
1928         values if the register is spilled. Also added some comments. Fixes
1929         #45817.
1930
1931         * exceptions-x86.c (seh_handler): Fix handling of system exceptions
1932         under Win32. Fixes #42964.
1933
1934 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
1935
1936         * mini.h (MONO_PATCH_INFO_WRAPPER): New patch type.
1937
1938         * aot.c: Added support for AOT compiling methods which contain calls
1939         to wrappers. Currently, only remoting-invoke-with-check wrappers are
1940         handled.
1941         
1942         * driver.c (compile_all_methods): Run the compilation in a thread
1943         managed by mono. Fixes #44023.
1944
1945         * mini.c (mono_codegen): Print full method name in verbose output.
1946
1947         * mini-x86.c (mono_arch_patch_code): Fix warning.
1948         
1949         * mini-x86.c (mono_arch_patch_code): Allways create a trampoline for
1950         jumps, since the method we are jumping to might be domain-specific.
1951
1952         * aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP.
1953
1954 Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
1955
1956         * inssel.brg: string chars are unsigned.
1957
1958 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
1959
1960         * TODO: New todo item.
1961
1962         * tramp-x86.c (x86_class_init_trampoline): New trampoline function
1963         which calls mono_runtime_class_init and patches the call site to
1964         avoid further calls.
1965         (mono_arch_create_class_init_trampoline): New arch specific function 
1966         to create a class init trampoline.
1967         (create_trampoline_code): Generalized so it can create
1968         class init trampolines as well.
1969
1970         * mini.c (helper_sig_class_init_trampoline): New helper variable.
1971         (mono_create_class_init_trampoline): New function to create and cache
1972         class init trampolines.
1973         (mono_find_class_init_trampoline_by_addr): New function to lookup the
1974         vtable given the address of a class init trampoline. Used by the
1975         patching process.
1976         (mono_codegen): Generate a call to a trampoline instead of
1977         mono_runtime_class_init in LDSFLD[A].
1978         (mono_codegen): Add relocations for the new trampoline.
1979         
1980         * mini.h mini-x86.c aot.c: Added a new relocation type: 
1981         MONO_PATCH_INFO_CLASS_INIT.
1982
1983         * mini.h: Bump AOT version number.
1984
1985         * aot.c: Create a copy of the loaded code instead of using the original
1986         so methods which call each other will be close in memory, improving
1987         cache behaviour.
1988         
1989         * exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous
1990         patch since it breaks the regression tests.
1991         
1992         * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
1993         for the register saving instruction sequence since the 
1994         frame_state_for function in glibc 2.3.2 don't seem to detect it.
1995
1996 2003-09-14  Zoltan Varga  <vargaz@freemail.hu>
1997
1998         * TODO: Fix todo item && remove another.
1999
2000 2003-09-12  Zoltan Varga  <vargaz@freemail.hu>
2001
2002         * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
2003         previous checkin.
2004
2005         * aot.c: Moved the check for MONO_LASTAOT into the initialization
2006         function of the module.
2007
2008         * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
2009         turning on/off the usage of AOT code. Got rid of mono_no_aot and the
2010         --no-aot command line option.
2011
2012 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
2013
2014         * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
2015         by Bernie Solomon (bernard@ugsolutions.com).
2016
2017         * inssel.brg: Refactor the interface offset table related code into
2018         its separate functions and add support for the AOT case.
2019
2020 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
2021
2022         * aot.c (mono_aot_get_method_inner): Fix memory leak.
2023         
2024         * aot.c: Added mono_aot_verbose variable and made all debugging
2025         output depend on the value of this variable.
2026
2027         * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
2028         method_label and info_label.
2029
2030         * mini.h mini-x86.c aot.c: Added a new relocation type 
2031         MONO_PATCH_INFO_IID for klass->interface_id.
2032
2033         * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
2034         the MonoJitInfo structure.
2035
2036         * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
2037         a non-root appdomain in shared mode.
2038
2039 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
2040
2041         * aot.c: make aot loader less verbose. Remove free of unused variable.
2042
2043 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
2044
2045         * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
2046
2047         * .cvsignore: Added *.dll.
2048
2049         * mini.c (mono_print_tree_nl): New function callable while debugging.
2050
2051         * mini.c (mono_print_code): Export this.
2052
2053         * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
2054         patched code.
2055
2056 2003-09-05  Zoltan Varga  <vargaz@freemail.hu>
2057
2058         * mini.h (MonoCompile): Added 'jit_info' field.
2059
2060         * mini.c (mini_method_compile): Save the generated MonoJitInfo into
2061         the cfg structure, since it is needed by the AOT compiler.
2062
2063         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
2064
2065         * aot.c: A major rewrite. Changes include:
2066         - save exception tables for methods which have them.
2067         - cache failed lookups in aot_get_method () to avoid the (slow) calls 
2068         to g_module_symbol.
2069         - reworked the file format so it is now much smaller and needs
2070         fewer relocation entries.
2071         
2072 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
2073
2074         * aot.c (load_aot_module): Fix build bustage on platforms without
2075         Boehm GC.
2076
2077 2003-09-04  Martin Baulig  <martin@ximian.com>
2078
2079         * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
2080
2081 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
2082
2083         * TODO: Some new optimization ideas.
2084
2085         * aot.c: Move AOT module loading logic here from mono_assembly_open.
2086
2087         * aot.c: Save the optimization flags used to compile the code into
2088         the AOT module.
2089
2090         * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
2091         support emitting domain specific code.
2092         
2093         * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is 
2094         no longer domain neutral. It can be made domain neutral by compiling 
2095         with --optimize=shared.
2096
2097         * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
2098         between appdomains.
2099
2100         * driver.c mini.h mini.c: New --no-aot debugging option which disables
2101         loading of AOT code.
2102
2103         * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
2104         
2105         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
2106         if there is no domain neutrality information.
2107
2108 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
2109
2110         * aot.c (mono_compile_assembly): Emit a symbol containing the file 
2111         format version into the generated library.
2112
2113         * mini-x86.c (mono_arch_patch_code): Do not emit the address of the
2114         callee method into the caller since one of them could be shared.
2115
2116         * mini.h mini-x86.c aot.c: Added two new relocations so throwing
2117         system exceptions from AOT code now works.
2118
2119         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
2120         method if it is domain neutral and the callee is not.
2121
2122         * graph.c (cfg_emit_one_loop_level): Fix warning.
2123
2124 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
2125
2126         * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
2127         last checkin.
2128
2129 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
2130
2131         * mini.c (mini_init): Call mono_marshal_init () explicitly since it
2132         is needed  by code which is executed before mono_runtime_init ().
2133         Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
2134         
2135         * mini.c (mono_thread_abort): Fix warning.
2136         (mono_jit_compile_method): Call static constructor in the AOT case too.
2137
2138         * aot.c (mono_compile_assembly): Fix warning.
2139
2140 2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2141
2142         * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
2143
2144 2003-08-28  Zoltan Varga  <vargaz@freemail.hu>
2145
2146         * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
2147
2148         * cpu-pentium.md: Fix the length of call opcodes so they include the
2149         ESP restoring instruction. Fixes #47968.
2150
2151 2003-08-28  Martin Baulig  <martin@ximian.com>
2152
2153         * mini-x86.c (mono_arch_call_opcode): Added support for
2154         MONO_TYPE_GENERICINST.
2155
2156         * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.       
2157
2158 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
2159
2160         * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
2161         a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
2162
2163         * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
2164         metadata_section.
2165
2166 2003-08-26  Martin Baulig  <martin@ximian.com>
2167
2168         * mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
2169         when reporting an error, set this to the actual error location.
2170         (mono_method_to_ir): Report the correct error location if
2171         get_basic_blocks() returned an error.
2172
2173 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
2174
2175         * mini.c (mono_type_blittable): OBJECT is not blittable.
2176         (mono_method_blittable): Methods which have marshalling descriptors
2177         are not blittable either. Fixes #47842.
2178
2179 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
2180
2181         * driver.c mini.c: Use an environment variable instead of a global 
2182         variable. Also fix the build.
2183
2184         * mini.c (mini_init): Call g_thread_init () to make glib thread-safe. 
2185         Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
2186         reporting this. 
2187
2188         * driver.c mini.c: Added --with-valgrind option to turn off some
2189         code which prevents mono from running under valgrind.
2190
2191         * mini.c (mono_emit_call_args): Fixed warning.
2192
2193         * mini.c (mono_emulate_opcode): Fixed warning.
2194
2195 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2196
2197         * inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
2198         * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
2199         regalloc.c, regalloc.h: specify available registers in arch-specific
2200         code and support floats in the regallocator (patch by Laurent Morichetti 
2201         <l_m@pacbell.net>)
2202
2203 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
2204
2205         * mini.c: mono_thread_current() can be called only after
2206         mono_runtime_init(): rearrange code to not call it early on.
2207
2208 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
2209
2210         * mini.c: allocate jump tables in the code mempools.
2211
2212 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
2213
2214         * mini.c, mini.h: make sure per-thread data allocated by the jit is
2215         freed.
2216
2217 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
2218
2219         * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
2220         12 to 16.  This fixes bug #47453.
2221
2222
2223 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
2224
2225         * mini-ppc.c: fixed indexed load and unsigned compares.
2226
2227 2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>
2228
2229         * mini.c: reenabled installation of handler for
2230           thread abort signal.
2231
2232 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2233
2234         * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
2235         by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
2236         until it's fixed and actually useful.
2237
2238 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
2239
2240         * inssel-long32.brg: couple more opcodes implemented.
2241
2242 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
2243         
2244         * mini-sparc.c: Even more opcodes implemeted.
2245
2246 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
2247
2248         * mini-sparc.c: More opcodes implemented.
2249
2250 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
2251
2252         * mini-sparc.c: More opcodes implemented.
2253
2254 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
2255
2256         * inssel-sparc.brg: Add some needed rules.  Direct
2257         copy from PPC.
2258         * Makefile.am: Use inssel-sparc.brg
2259         * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
2260         an assert happy for now.
2261
2262 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
2263
2264         * mini-sparc.c: Fixed compile errors.
2265         * exceptions-sparc.c: Same.  We now produce a mono binary 
2266         on sparc-linux.  Yea.
2267
2268 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
2269
2270         * mini-sparc.c: Renamed registers.  Also some macro cleanups.
2271         * exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
2272         They compile, but do not work.
2273
2274 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
2275
2276         * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
2277         mini-sparc.h, tramp-sparc.c: Beginning of sparc support
2278         from Mark Crichton <crichton@gimp.org> and Christopher Taylor
2279         (ct@gentoo.org).
2280
2281 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2282
2283         * mini.c: more opcodes implemented and better support for generics.
2284
2285 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
2286
2287         * cpu-g4.md, cpu-pentium.md: updates for new instructions.
2288         * mini.c, mini.h: first cut at generics support: some new instructions 
2289         added and changed the behaviour of some of the existing ones.
2290
2291 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
2292
2293         * mini.c: Removed definition of metadata_shared mutex here.
2294
2295 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
2296
2297         * mini-x86.c: make vararg calls work for instance methods.
2298
2299 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
2300
2301         * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
2302         returns the arguments in a separte list, now.
2303
2304 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
2305
2306         * aot.c, mini.c: updates for array type representation changes.
2307
2308 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
2309
2310         * mini.c: register function to perform jit shutdown.
2311
2312 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
2313
2314         * mini.c: use a faster allocator if possible.
2315
2316 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
2317
2318         * aot.c: some cleanups and portability changes.
2319
2320 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
2321
2322         * mini.c: use faster allocation for CEE_BOX if possible.
2323
2324 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
2325
2326         * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
2327         Moved inlined mempcy code to its own function so that is can be
2328         reused. Added an inline memset function as well (optimized initobj).
2329         * cpu-pentium.md, inssel-x86.brg: add and use lea_membase.
2330
2331 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
2332
2333         * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
2334
2335 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
2336
2337         * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
2338         arch code can setup the cpu for CLR execution, if needed.
2339         We use it on x86 to set the precision of FP operations.
2340
2341 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
2342
2343         * mini.c: disable some optimizations if we can guess they'll cost too
2344         much for a given method.
2345
2346 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
2347
2348         * mini.h mini.c: Rework last patch based on suggestions by Paolo.
2349         
2350 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
2351         * mini.h mini.c mini-x86.c: Added instruction level coverage 
2352         info collection support.
2353
2354 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
2355
2356         * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
2357         is now implemented in the profiling API. Get rid of a couple of
2358         unnecessary global variables.
2359
2360 2003-06-15  Nick Drochak <ndrochak@gol.com>
2361
2362         * basic-long.cs: tests for negative values for bigmul, and unsigned.
2363         * cpu-g4.md: add op_bigmul and op_bigmul_un
2364         * cpu_pentium.md: add op_bigmul_un
2365         * inssel-long32.brg: add rule for unsigned bigmul
2366         * mini-ops.h: define OP_BIGMUL_UN
2367         * mini-x86.c: THE BUG: handle (un)signed properly
2368         * mini.c: choose unsigned opcode if needed.
2369         This set of patches fixes bug #44291
2370
2371 2003-06-13  Dietmar Maurer  <dietmar@ximian.com>
2372
2373         * mini.c (optimize_branches): improved to handle all kinds of
2374         conditional branches.
2375
2376 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
2377
2378         * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
2379         don't raise exceptions.
2380
2381 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
2382
2383         * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
2384         to arch-specific files.
2385
2386 2003-06-09  Martin Baulig  <martin@ximian.com>
2387
2388         * Makefile.am (libs): Added $(LIBGC_LIBS).
2389
2390 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
2391
2392         * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
2393         and OP_ATAN (fixes bug#44293).
2394
2395 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
2396
2397         * Makefile.am, mini-x86.c: rename cpu description array to
2398         pentium_desc, since some compilers define the 'pentium' preprocessor
2399         symbol.
2400
2401 2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
2402
2403         * mini.c (mini_select_instructions): add explicit branch if the
2404         following block is not the false target of a conditional branch -
2405         we need this with any optimization that reorder or remove bblocks
2406
2407         * mini.c (optimize_branches): bug fixes
2408
2409 2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
2410
2411         * mini.c (mono_method_to_ir): inline static readonly fields
2412
2413         * ssa.c (fold_tree): start cfold support for long (very simple
2414         cases only)
2415
2416         * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
2417
2418 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
2419
2420         * inssel.brg: fixed memcpy (bug #44219).
2421
2422 2003-06-05  Dick Porter  <dick@ximian.com>
2423
2424         * driver.c: Set the glib log levels to not abort if g_message
2425         recurses.
2426
2427         g_set_prgname() has to happen before mini_init() so that the
2428         process handle gets the info.
2429         
2430 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
2431
2432         * driver.c: add intrins to the default optimizations to get wider
2433         exposure.
2434
2435 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
2436
2437         * mini.h: some large basic blocks will overflow a 16-bit
2438         integers for symbolic registers.
2439
2440 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
2441
2442         * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
2443         (mono_arch_output_basic_block): fix bug 43499 
2444
2445 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
2446
2447         * mini.c: kill duplicated definition of mono_debug_format.
2448
2449 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
2450
2451         * mini-x86.c, arrays.cs: fixed register allocation bug.
2452
2453 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
2454
2455         * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
2456
2457         * mini.c (mini_get_opcode_for_method): inline IEEERemainder
2458
2459 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2460
2461         * mini.c:
2462         (print_method_from_ip): also print source location information if
2463         available.
2464
2465 2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
2466
2467         * mini.c (mono_find_block_region): bug fix in region code
2468         (mini_method_compile): enable removing unreachable code again, but
2469         only in methods without exception clauses.
2470
2471 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
2472
2473         * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
2474         Implemented arglist opcode and handling of TypedReference type.
2475         Fixed x86 call convention when a structure is returned.
2476         Minimal support for calling static vararg methods.
2477
2478 2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
2479
2480         * mini.c (mini_method_compile):  always remove unreachable code,
2481         because the code in them may be inconsistent  (access to dead
2482         variables for example).
2483
2484 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
2485
2486         * driver.c, debug-mini.c: warning fixes.
2487
2488 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
2489
2490         * Makefile.am, jit.h, mini.h: install header for embedding mono.
2491
2492 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
2493
2494         * mini.c: thread-static fields are registered in mono_class_vtable(),
2495         so ensure the function is called before checking for them.
2496
2497 2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
2498
2499         * mini.c (optimize_branches): fix for bug 43586
2500
2501         * jit-icalls.c (mono_llmult_ovf): added an additional check for
2502         overflow (fixes Bug #43639)
2503
2504 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
2505
2506         * mini.c, objects.cs: allow the use of stobj for primitive types.
2507
2508 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
2509
2510         * mini.c: be less strict about argument checking until we support
2511         running the verifier.
2512
2513 2003-05-27  Nick Drochak <ndrochak@gol.com>
2514
2515         * basic-long.cs: tests for (ulong)int * (ulong)int also
2516         * mini.c: use the same trick for (ulong)int * (ulong)int
2517
2518 2003-05-27  Nick Drochak <ndrochak@gol.com>
2519
2520         * basic-long.cs: add regression test for (long)int * (long)int
2521         * cpu-pentium.md: add op_bigmul specification
2522         * inssel-long32.brg: add OP_BIGMUL rule
2523         * mini-ops.h: add OP_BIGMUL
2524         * mini-x86.c: register allocator: handle case where src1 needs to be
2525         in EAX.
2526         * mini.c: substitute special BIGMUL opcode in the tree for 
2527         (long)int * (long)int
2528
2529 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
2530
2531         * jit-icalls.c: call the type ctor on field access if needed.
2532
2533 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
2534
2535         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
2536         to a method (including results of ldelema, bug#43207).
2537
2538 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
2539
2540         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
2541         colors to show exception handler blocks.
2542
2543         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
2544         (fix for pinvoke7.cs).
2545
2546 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
2547
2548         * mini.h, mini.c: ensure correct initialization order for types that
2549         require it. Prepare for lazy compilation of jit icall wrappers.
2550         Provide a name for opcode emulation to reduce unneeded mallocing.
2551
2552 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
2553
2554         * mini-x86.c: better register restoring code and profiling
2555         support for tail calls.
2556
2557 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
2558
2559         * mini.h, driver.c: prepare for leaf methods optimization.
2560
2561 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
2562
2563         * mini.c: get targets of branches before converting a method.
2564
2565 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
2566
2567         * mini.c (optimize_branches): added some experimental code (disbaled) 
2568
2569 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
2570
2571         * mini.c (optimize_branches): fix branch to branch optimization 
2572
2573         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
2574
2575         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
2576
2577         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
2578
2579         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
2580         if needed.
2581
2582 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
2583
2584         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
2585         enable use of interface variables again.
2586
2587         * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
2588         I1 to registers because there is no simply way to sign extend 8bit
2589         quantities in caller saved registers on x86.
2590
2591         * inssel-float.brg: set costs of some rules to 2 so
2592         that monobure always select the arch. specific ones if supplied,
2593         regardless of the order we pass the files to monoburg.
2594
2595 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
2596
2597         * mini.c, mini-x86.c: since the magic trampoline for jumps
2598         can't patch the code directly, we do it as soon as the
2599         method gets compiled.
2600
2601 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
2602
2603         * mini-x86.c, mini.h: introduce a new patching method
2604         to support CEE_JMP and tail calls.
2605         * mini.c: obey tail.call. Don't precompile methods target
2606         of CEE_JMP.
2607         * tramp-x86.c: new trampoline code to handle methods
2608         reached through a jump.
2609
2610 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
2611
2612         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
2613         bit values to registers
2614
2615 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
2616
2617         * mini.c (mono_compile_get_interface_var): share interface
2618         variables if possible.
2619
2620 2003-05-16  Martin Baulig  <martin@ximian.com>
2621
2622         * debug-mini.c (mono_init_debugger): New function to initialize
2623         the debugger.  This is not in the debugger since it needs to
2624         access some of mini's internals.
2625
2626 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
2627
2628         * mini.c (mono_method_to_ir): inlining fixes/cleanups
2629
2630 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
2631
2632         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
2633         for value type handling.
2634
2635 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
2636
2637         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
2638         (mono_method_check_inlining): enable inlining of all kinds of wrappers
2639
2640 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
2641
2642         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
2643           the constructor through a proxy.
2644
2645 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
2646
2647         * jit-icalls.c, inssel.brg: fixes to array element address
2648         calculations.
2649
2650 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
2651
2652         * mini-x86.c (is_regsize_var): allocate pointer to registers
2653
2654 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
2655
2656         * driver.c: fixed typo, added intrins to the set of optimizations
2657         tested with regressions.
2658
2659 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
2660
2661         * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
2662         * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
2663         test case.
2664
2665 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
2666
2667         * inssel.brg: remove some common pop instructions without side effects
2668
2669 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
2670
2671         * inssel-x86.brg: fixed thinko in int to double conversions.
2672
2673 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
2674
2675         * mini.c, jit-icalls.c: added runtime thread-static variable support.
2676
2677 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
2678
2679         * inssel-long32.brg: two more missing instructions.
2680
2681 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
2682
2683         * mini.c (mono_emit_call_args): set the cil_code for all arguments
2684         if not already set.
2685
2686 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
2687
2688         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
2689         correctly.
2690
2691         * basic-float.cs: Added tests for negative zero.
2692
2693 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
2694
2695         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
2696         a couple of missing operations for long casts, with test cases.
2697
2698 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2699
2700         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
2701
2702 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
2703
2704         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
2705         code size estimation.
2706
2707 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
2708
2709         * mini.c (mono_jit_create_remoting_trampoline): make it work with
2710         abstract methods (fix bug 42542)
2711
2712         * aot.c: add ability to handle array types
2713         
2714 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
2715
2716         * mini.c: Call the _specific versions of the object allocation
2717         functions if possible.
2718
2719 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
2720
2721         * driver.c: call setlocale ().
2722
2723 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
2724
2725         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
2726         windows build.
2727
2728 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
2729
2730         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
2731
2732         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
2733         wrappers (fix bug 42122)
2734
2735 2003-05-04  Martin Baulig  <martin@ximian.com>
2736
2737         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
2738
2739         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
2740         s/mini_set_defaults/mono_set_defaults/g.
2741
2742 2003-05-04  Martin Baulig  <martin@ximian.com>
2743
2744         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
2745
2746 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2747
2748         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
2749         (reported by Don Roberts).
2750
2751 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
2752
2753         * mini.c: temporarily work around two bugs for this release.
2754
2755 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
2756
2757         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
2758         that contains -export-dynamic and it makes using the ld script
2759         useless.
2760         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
2761
2762 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
2763
2764         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
2765         specific cpu.
2766
2767 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
2768
2769         * mini.c: make sure leave calls all the needed finally blocks,
2770         even when the target jumps out of multiple exception clauses.
2771
2772 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
2773
2774         * ldscript, Makefile.am: add linker script to reduce the number of
2775         exported symbols (should also fix the issues with libwine defining
2776         some of the same symbols in io-layer).
2777
2778 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
2779
2780         * driver.c (mini_main): Avoid assertion when no file name is given on 
2781         the command line.
2782
2783 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
2784
2785         * driver.c: added --version/-V command line option.
2786         Added the inline optimization in the regression tests.
2787
2788 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
2789
2790         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
2791         to the type in the method signature (fixes bug#42134).
2792
2793 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
2794
2795         * mini.c: when inlining, check this is not null only when needed (bug #42135).
2796
2797 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
2798
2799         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
2800
2801 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2802
2803         * driver.c: fixed bug #42100.
2804
2805 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
2806
2807         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
2808
2809 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
2810
2811         * mini.c: moved most of the code required to do inlining to its own
2812         function so it can be reused. Inline also ctors if appropriate.
2813
2814 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
2815
2816         * Makefile.am: Link with -export-dynamic so shared libs loaded by
2817         the runtime can call mono API functions.
2818
2819 2003-04-27  Martin Baulig  <martin@ximian.com>
2820
2821         * debug-mini.c (mono_debug_init_method): Added
2822         `guint32 breakpoint_id' argument; if the method has a breakpoint,
2823         send a notification to the debugger.
2824
2825         * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
2826         running in the Mono Debugger, just pass the breakpoint number to
2827         mono_debug_init_method().
2828
2829         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
2830
2831 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
2832
2833         * mini.c: allow some more unsafe compares.
2834
2835 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
2836
2837         * mini-x86.c, Makefile.am: make distcheck works (partially from
2838         a patch by Richard Lee <r.h.lee@attbi.com>).
2839         * regset.c, regset.h: removed, they are unused.
2840
2841 2003-04-25  Dick Porter  <dick@ximian.com>
2842
2843         * driver.c: Usage reports the name as 'mono' not 'mini'
2844         * exceptions-x86.c: Build and run on freebsd
2845
2846 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
2847
2848         * Makefile.am: install the program with the 'mono' name and
2849         the library as libmono instead of mini and libmini.
2850
2851 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
2852
2853         * driver.c: provide the APIs for the embedding interface of the old jit.
2854
2855 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
2856
2857         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
2858
2859 2003-04-23  Martin Baulig  <martin@ximian.com>
2860
2861         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
2862
2863         * driver.c: Added `--debug' command line argument to enable
2864         debugging support.
2865
2866 2003-04-23  Martin Baulig  <martin@ximian.com>
2867
2868         * debug.[ch]: Removed.  The code is now in
2869         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
2870
2871         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
2872         last six months.
2873
2874 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
2875
2876         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
2877
2878 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2879
2880         * mini.c:
2881         (mini_cleanup): moved mono_runtime_cleanup call after the call to
2882         mono_domain_finalize.
2883         (mini_method_compile): use mono_method_profile* if the the option is
2884         enabled.
2885
2886 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
2887
2888         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
2889         methods with their wrapper.
2890
2891         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
2892         methods with their wrapper.
2893
2894         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
2895         their wrapper.
2896
2897         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
2898         wrapper.
2899
2900         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
2901         methods.
2902
2903 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
2904
2905         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
2906
2907 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
2908
2909         * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
2910         of the mempool. This is slightly faster and uses less memory
2911
2912 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
2913
2914         * mini.c: avoid O(n) allocation for variables.
2915
2916 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
2917
2918         * mini.c: handle items on the stack after inlining methods.
2919
2920 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
2921
2922         * mini.c: make the method->opcode optimization dependent
2923         on MONO_OPT_INSTRINS and do it lazily.
2924
2925 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
2926
2927         * driver.c: print overall results at the end of regression run.
2928
2929 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
2930
2931         * inssel.brg: don't overwrite symbolic registers.
2932
2933 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
2934
2935         * inssel-x86.brg: fix conversion from long to float.
2936
2937 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
2938
2939         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
2940
2941 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
2942
2943         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
2944
2945         * driver.c: Added --print-vtable option as in the old JIT.
2946
2947 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
2948
2949         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
2950
2951 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
2952
2953         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
2954
2955 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
2956
2957         * mini.c regalloc.c regalloc.h: Fix memory leak.
2958
2959 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
2960
2961         * aot.c (mono_aot_get_method): register all used strings
2962
2963 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
2964
2965         * mini.c: always intern strings references with ldstr at compile time.
2966
2967 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
2968
2969         * Makefile.am: add BUILT_SOURCES.
2970
2971 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
2972
2973         * driver.c: give a better error message when the assembly to execute
2974         doesn't have an entry point.
2975
2976 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
2977
2978         * Makefile.am: added hack for automake
2979
2980         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
2981         correct sematics.
2982
2983         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
2984
2985 22003-04-07  Martin Baulig  <martin@ximian.com>
2986
2987         * Makefile.am: Added Makefile.am.
2988
2989         * debugger-main.c: Removed, this is now in the debugger where it
2990         belongs.
2991
2992         * mini.pc.in: Call this package `mini' for the moment.
2993
2994
2995
2996