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