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