788531ac48dedc2a53c4002a22b87c8541d26dee
[mono.git] / mono / mini / ChangeLog
1
2 Thu Jan 20 12:00:45 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * mini.c, cfold.c, basic-calls.cs: preserve side effects
5         on cond branch optimization (fixes bug# 71515).
6
7 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
8
9         abcremoval.c: Fixed bug 71062.
10         abcremoval.h: Likewise.
11
12 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
13
14         * mini.c: Added a new functionality to optimize_branches, the removal
15         of useless basic blocks, and fixed some problem in the removal of
16         critical edges; some utility functions added for both purposes.
17         * ssapre.c: Added complex expression support, and fixed bug 70637.
18         * ssapre.h: Likewise.
19         * ssapre-cee-ops.h: Added file with list of "CEE_*" opcodes
20         enabled in SSAPRE.
21         * ssapre-mini-ops.h: Likewise, but for "OP_*" opcodes.
22         * driver.c: Re-enabled SSAPRE.
23
24 2005-01-19  Martin Baulig  <martin@ximian.com>
25
26         * mini.c (mono_method_to_ir): Call mono_get_inflated_method() on
27         the result of mono_get_method_constrained().
28
29 2005-01-18  Neale Ferguson <NealeFerguson@earthlink.net>
30
31         * exceptions-s390.c tramp-s390.c: Allocate code using the global code
32         manager.
33
34 2005-01-18  Geoff Norton  <gnorton@customerdna.com>
35
36         * jit-icalls.c (mono_llmult_ovf): Fix other overflow conditions to
37         be detected.  Fixes #59296.
38
39 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
40
41         * mini-amd64.c (mono_arch_output_basic_block): Remove some assertions
42         which can happen. Fixes #71361.
43
44 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
45
46         * exceptions-sparc.c tramp-sparc.c: Allocate code using the global code
47         manager.
48
49 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
50
51         * mini.c (mono_create_jump_trampoline): Revert last change as it causes
52         appdomain-unload.exe to fail.
53         
54         * mini.c: Fix some memory leaks.
55
56 Mon Jan 17 16:16:23 CET 2005 Paolo Molaro <lupus@ximian.com>
57
58         * inssel.brg: handle the new size of rank, idepth, max_interface_id.
59         Fixed bug and sped up some codepaths.
60
61 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
62
63         * mini.c: Fix some memory leaks.
64
65         * exceptions.cs basic-long.cs: Add test for checked ulong->int 
66         conversion.
67
68         * inssel-long.brg: Implement long_conv_to_ovf_i4_un. Fixes #71319.
69
70         * inssel-long.brg: Fix conv.ovf.i8 when run on an int32. Fixes
71         #71320.
72
73         * iltests.il: Add regression test for #71320.
74
75 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
76
77         * mini.c (mono_codegen): Fix installation of profiler hooks.
78
79         * mini-sparc.c mini-amd64.c: Don't allocate stack space for dead vars.
80
81 Sun Jan 16 12:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
82
83         * mini.h, mini.c, cfold.c: optimize access to enum
84         readonly fields, too. Eval conditional branches if possible
85         to perform unreachable code removal in more cases.
86
87 2005-01-15  Zoltan Varga  <vargaz@freemail.hu>
88
89         * tramp-amd64.c exceptions-amd64.c: Use the new global code manager.
90
91         * mini.c (mono_global_codeman_reserve): New function to allocate code memory from a global
92         code manager.
93
94         * tramp-x86.c mini-x86.c exceptions-x86.c: Allocate all code memory so mono works with
95         WinXP DEP. Fixes #71244.
96
97 2005-01-14  Zoltan Varga  <vargaz@freemail.hu>
98
99         * inssel.brg: Allways convert CEE_CONV_OVF_I4 to a move on 64 bit platforms. Fixes #71236.
100
101 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
102
103         * mini-x86.c (mono_arch_output_basic_block): Fix OP_ATOMIC_ADD_NEW_I4.
104
105 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
106
107         * mini-exceptions.c exceptions-ppc.c aot.c: Cope with MonoJitInfo 
108         changes.
109
110         * mini.h: Bump AOT version.
111
112         * mini.h (MonoCompile): Change exvar to a hash table.
113
114         * mini.c: Allocate a separate exvar for each handler block.
115
116         * mini.c: Get rid of the computation of filter_lengths, its not needed.
117
118         * mini.c inssel.brg: Change OP_THROW_OR_NULL to compare the current
119         ex var with the pending exception and only throw if the two are equal.
120         Fixes #68552.
121         
122         * exceptions.cs: Add tests for rethrow and nested catch clauses.
123
124         * mini-x86.c: Fix warnings.
125
126         * Makefile.am (common_sources): Move mini-exceptions.c here as it is
127         used by all the ports now.
128
129         * aot.c: Add write-symbols and save-temps options.
130
131 2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
132
133         * mini-x86.c: Add support for returning structs in registers from pinvoke functions on WIN32.
134
135 Mon Jan 10 16:11:16 EST 2005 Neale Ferguson <nealeferguson@earthlink.net>
136
137         * mini-ops.h, inssel-s390.brg, cpu-s390.md: Support OP_ATOMIC__xxx 
138         operations.
139
140         * tramp-s390.c: Check vtable slot belongs to the domain.
141
142         * mini-exceptions.c, exceptions-s390.c: Standardize exception handling
143         as per other platforms.
144
145         * mini-s390.c, mini-s390.h: Enable out-of-line bblock support.
146
147 Mon Jan 10 18:53:05 CET 2005 Paolo Molaro <lupus@ximian.com>
148
149         * driver.c: we don't run the Main() code in a subthread anymore.
150
151 Mon Jan 10 17:54:16 CET 2005 Paolo Molaro <lupus@ximian.com>
152
153         * mini.c: added experimental rtc support in the statistical
154         profiler: if the user has the permission, more accurate statistics
155         are gathered. Run with: MONO_RTC=4096 mono --profiler=default:stat ....
156         The MONO_RTC value must be restricted to what the linux rtc allows:
157         power of two from 64 to 8192 Hz.
158
159 2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
160
161         * mini-x86.c (mono_arch_emit_exceptions): Fix #71121.
162
163 Mon Jan 10 05:20:49 EST 2005 Paolo Molaro <lupus@ximian.com>
164
165         * mini-ppc.c: better icache flush for smp.
166
167 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
168
169         * mini-amd64.c (emit_move_return_value): Fix memory leak.
170
171         * mini-x86.c (get_call_info): Add the get_call_info () code from the
172         amd64 port, not yet used.
173
174 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
175
176         * mini.c (mono_method_to_ir): Disable inlining of ldfld wrappers with
177         a struct type.
178
179 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
180
181         * driver.c: Added --security option to activate the security manager.
182         Right now this will allow code generation for declarative demands and
183         is disabled when AOT is specified.
184         * mini.c: Add code generation for declarative security demands.
185         * mini.h: Add mono_use_security_manager as an extern gboolean.
186
187 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
188
189         * aot.c (mono_compile_assembly): Speed up compilation a bit by
190         emitting more dense assembly code.
191
192         * mini-sparc.c mini-sparc.h exceptions-sparc.c: Enable optimized corlib
193         exception throwing stuff.
194
195 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
196
197         * mini-sparc.c (mono_arch_emit_exceptions): Fix typo in previous patch. Remove
198         dead code.
199
200         * mini-amd64.c (mono_arch_emit_exceptions): Remove duplicate epilog stuff
201         left in by mistake.
202
203         * driver.c (EXCLUDED_FROM_ALL): Disable SSAPRE until bug #70637 is 
204         fixed.
205
206         * mini-sparc.h mini-sparc.c: Enable out-of-line bblock support.
207
208         * tramp-*.c: Only patch vtable slots if the object is in the current
209         domain. Fixes appdomain-unload.exe.
210
211         * mini-amd64.c mini-amd64.h: Enable out-of-line bblock support.
212         
213         * mini-amd64.c (mono_arch_local_regalloc): Port regalloc fix from
214         x86 branch.
215
216 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
217
218         * mini.c (reverse_branch_op): New helper function.
219
220         * mini.c (optimize_branches): Run the new optimization only on 
221         platforms which support it. Also reverse all kinds of branches.
222
223         * mini.h (MonoBasicBlock): Add 'out_of_line' field.
224
225         * mini.c (mono_method_to_ir): Set 'out_of_line' for bblocks which have
226         a throw statement.
227
228         * mini.c (optimize_branches): Reverse not-equals branches if the false
229         bblock is a throw. This happens a lot of time with argument checking in
230         corlib.
231
232         * mini.c (mono_codegen): Add support for placing basic blocks after
233         the function epilogue.
234
235         * mini-x86.c mini-x86.h: Add support for placing basic blocks after the
236         function epilogue.
237         
238 2005-01-05  Miguel de Icaza  <miguel@ximian.com>
239
240         * mini.c (setup_stat_profiler): Only set this up if the platform
241         supports ITIMER_PROF.
242
243 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
244
245         * mini-x86.c (mono_arch_local_regalloc): Fix a bug introduced by the
246         previous patch.
247
248         * inssel.brg: Fix a warning.
249
250 Wed Jan 5 16:40:18 CET 2005 Paolo Molaro <lupus@ximian.com>
251
252         * mini.c: added support for statistical profiler 
253         (run with: --profile=default:stat).
254
255 2005-01-04  Zoltan Varga  <vargaz@freemail.hu>
256
257         * mini-x86.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Enable this on x86.
258
259         * mini-x86.c cpu-pentium.md: More fixes for usage of global registers.
260
261         * mini-amd64.c (mono_arch_local_regalloc): Port some regalloc fixes 
262         related to global registers from the amd64 port.
263
264 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
265
266         * mini.c (mono_method_to_ir): Handle MONO_CLASSCONST.
267
268         * mini-amd64.c (mono_arch_local_regalloc): Fix some regalloc problems
269         with global registers.
270         (mono_arch_output_basic_block): Fix SWITCH in the AOT case.
271
272         * aot.c (emit_method_code): Fix the 'method emitted as' messages.
273
274 2004-12-31  Zoltan Varga  <vargaz@freemail.hu>
275
276         * debug-mini.c (encode_value): Fix off-by-one.
277
278         * aot.c (encode_value): Likewise.
279
280         * mini.c (mono_method_to_ir): Disable AOT for methods containing LDPTR.
281
282 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
283
284         * mini.c linear-scan.c: Add a workaround for the mcs crash when using 
285         AOT.
286
287         * aot.c (mono_aot_load_method): Free up patch info if no longer needed.
288         
289         * aot.c (emit_method_info): Increase size of temp buffer.
290
291         * mini-x86.c cpu-pentium.md mini.c: Load fp constants differently in 
292         the AOT case.
293
294 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
295
296         * aot.c (emit_method_info): Fix build.
297         
298         * aot.c: Further rework of the AOT file format to reduce the size of
299         the method info data.
300
301         * mini.h: Bump AOT file format version.
302
303 2004-12-27  Martin Baulig  <martin@ximian.com>
304
305         * mini.c (mini_get_method): New static method; call
306         mono_get_method_full() and mono_get_inflated_method().
307         (mono_method_to_ir): Use mini_get_method() instead of
308         mono_get_method_full(). 
309
310 2004-12-26  Patrik Torstensson  <patrik.torstensson@gmail.com>
311
312         * mini-x86.c (atomic ops): fixed bug interlocked bug #70784. 
313
314 2004-12-25  Zoltan Varga  <vargaz@freemail.hu>
315
316         * inssel.brg (ldind_to_load_membase): Handle CEE_LDIND_I8.
317
318         * inssel-amd64.brg: Add some optimization rules.
319
320 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
321
322         * aot.c: Remove the use of MonoGHashTable and other GC stuff. The
323         standard not GC'd stuff is fine.
324
325 2004-12-24  Zoltan Varga  <vargaz@freemail.hu>
326
327         * aot.c: Rework the AOT file format to get rid of most of the global
328         symbols. This reduces the size of the mscorlib.dll.so by 1MB.
329
330         * mini.h: Bump AOT file format version.
331         
332 2004-12-23  Zoltan Varga  <vargaz@freemail.hu>
333
334         * mini.h: Bump AOT file format version.
335
336         * aot.c (mono_aot_is_got_entry): New function to determine if an 
337         address is inside a GOT.
338
339         * aot.c mini-x86.c tramp-x86.c: Make all patches use the GOT.
340
341         * cpu-pentium.md: Increase the maximum size of some instructions which
342         might involve a got access.
343         
344         * mini.c (get_method_from_ip): Another debug helper function.
345
346         * mini.c: Call mono_get_got_var () in a couple places. Handle the case
347         when got var accesses are created during the decompose phase.
348
349         * mini-sparc.c: Change mono_compile_aot to cfg->compile_aot.
350
351         * mini.h mini.c mini-x86.c aot.c mini-sparc.c: Add a 'compile_corlib'
352         argument mini_compile_method and to MonoCompile, and use this to
353         determine whenever a given method is compiled for AOT. This allows the
354         other methods compiled during AOT compilation to be free of AOT stuff,
355         so the backends does not need to add special support for them by
356         creating a fake GOT etc.
357
358         * mini-x86.c (mono_arch_patch_code): Remove fake got stuff as it is no
359         longer needed.
360
361 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
362
363         * mini.c (mono_method_to_ir): It turns out that some of the
364         x-appdomain wrappers are lax with types, so just ignore this for
365         all wrappers.
366
367         * inssel.brg (OP_CHECK_ARRAY_TYPE): Optimize this by only looking
368         at the vtable->klass. If it is non-shared code we can just use the
369         vtable.
370
371 Tue Dec 21 17:43:06 CET 2004 Paolo Molaro <lupus@ximian.com>
372
373         * mini-ppc.c: access MonoDomain from tls, too.
374
375 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com>
376
377         * declsec.c: Removed unused variable (and related warning ;-)
378
379 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
380
381         * iltests.il: New test for LDELEMA on an array of ref types.
382
383         * mini.c (CEE_LDELEMA): We need to emit OP_CHECK_ARRAY_TYPE for
384         all ldelema's on reftypes.
385         (check_call_signature): Remove the OP_CHECK_ARRAY_TYPE from here,
386         it was the wrong place to put it.
387
388         * mini-x86.c (mono_arch_output_basic_block): Just use ecx as the
389         register to pop to make this cleaner, at the request of Paolo.
390
391 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
392
393         * mini-ops.h (OP_GETHASHCODE): New op.
394
395         * inssel.brg (OP_GETHASHCODE): Emit code for the new opcode
396
397         * mini.c (mini_get_inst_for_method): Create the intrinsic hash
398         operation.
399
400         For a microbenchmark, this reduces the cost of Hashtable.get_Item
401         by 25%.
402         
403         * mini-x86.c (mono_arch_output_basic_block): Rather than
404
405         add ebp, 4
406
407         Emit
408
409         pop edx
410
411         The first is 3 bytes while the second is 1. This saves 36 kb on
412         mscorlib, quite a big saving. When bootstraping mcs, I was able to
413         see a small boost because of icache locality.
414
415         * cfold.c (FOLD_BINOPCOMM): Kill add foo, 0
416
417 Mon Dec 20 12:19:40 EST 2004 Paolo Molaro <lupus@ximian.com>
418
419         * Makefile.am, mini-ppc.h, mini-exceptions.c, exceptions-ppc.c:
420         started code sharing with the generic code.
421
422 Mon Dec 20 11:08:06 EST 2004 Paolo Molaro <lupus@ximian.com>
423
424         * mini-ppc.c, cpu-g4.md: added code for direct access to
425         tls data slots.
426
427 Mon Dec 20 10:58:28 EST 2004 Paolo Molaro <lupus@ximian.com>
428
429         * mini-ops.h, inssel-x86.brg, cpu-amd64.md, inssel.brg, inssel-amd64.brg,
430          mini-amd64.c, mini-x86.c, cpu-pentium.md: renamed OP_X86_TLS_GET
431         to OP_TLS_GET.
432
433 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
434
435         * declsec.c|h: Added functions to cache the declarative stack modifiers
436         in MonoJitInfo and to create a security frame from a MonoJitInfo 
437         structure.
438         * mini.c: Initialize jinfo->cas_inited to FALSE when MonoJitInfo is
439         created. Register internal calls for System.Security.SecurityFrame::
440         _GetSecurityFrame and _GetSecurityStack.
441         * mini.h: Added definition for new icalls (in mini-exceptions.c) and
442         the definitions for the new stack walk/callback mechanism.
443         * mini-exceptions.c: Added internal call GetSecurityFrame (to get the 
444         first security frame for LinkDemands and InheritanceDemands) and
445         GetSecurityStack for Demands. Both use the new mono_walk_stack code
446         from lupus.
447         * mini-x86.h, mini-amd64.h, mini-sparc.h: Architecture specific stack
448         walk initialization (lupus).
449
450 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
451
452         * mini.c (mono_method_to_ir): In CEE_DUP, handle the dup / stloc
453         idiom.
454         (handle_loaded_temps): Do not create a temporary variable for
455         things that we know are temps. They will never be modified.
456         (mono_spill_call): Set MONO_INST_IS_TEMP
457         (mono_emulate_opcode): ditto
458         (emit_tree): ditto
459         (mono_method_to_ir.CEE_DUP): ditto
460
461 2004-12-19  Ben Maurer  <bmaurer@ximian.com>
462
463         * mini.c (type_to_eval_stack_type): Make this handle the void type
464         (mono_emit_call_args): set the call->type with type_to_eval_stack_type
465         (emit_tree): use ip_in_bb to special case some common idioms
466         Update all callers to pass in the IP.
467         (mono_method_to_ir): Make CEE_CALL* do the above as well.
468
469         This gives us a nice 2% speedup in mcs bootstrap.
470
471         * mini-x86.c (peephole_pass): Peephole pass to make
472         mov  [foo], eax
473         push [foo]
474
475         into
476
477         mov [foo], eax
478         push eax
479
480         * mini.c (ip_in_bb): new method.
481         (mono_method_to_ir): use this method rather than doing the hash
482         lookup ourselves.
483
484         * linear-scan.c (mono_linear_scan): When expiring actives, you
485         don't need to keep around variables that expire on this
486         instruction. This makes it so that:
487              a = b + 1
488         will turn into:
489              store (ebx add (ebx, 1))
490         which will become
491              add ebx, 1
492
493 2004-12-19  Zoltan Varga  <vargaz@freemail.hu>
494
495         * mini.c (mono_method_to_ir): Optimize the common ldobj+stloc 
496         combination to avoid doing two copies. Fix up problems with previous
497         patch.
498
499         * mini.c: Fix 64 bit warnings.
500
501         * mini-x86.c (INST_IGNORES_CFLAGS): Add OP_STOREI4_MEMBASE_REG.
502
503 2004-12-17  Zoltan Varga  <vargaz@freemail.hu>
504
505         * mini-amd64.h mini-amd64.c exceptions-amd64.c: Port exception handling
506         changes from the x86 code.
507
508         * mini.h: Add prototype for mono_arch_get_throw_corlib_exception ().
509
510 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
511
512         * mini-x86.c (mono_arch_emit_epilog): Optimize the corlib exception
513         throwing code to reduce its size, unify the AOT and non-aot code and 
514         get rid of relocations in the AOT case.
515
516         * mini-x86.h mini.c exceptions-x86.c 
517         (mono_arch_get_throw_corlib_exception): New arch specific function to 
518         raise corlib exceptions which doesn't require relocations in the 
519         caller.
520
521         * aot.c (emit_method): Handle PATCH_INFO_NONE as well.
522
523 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
524
525         * mini.c (mono_emit_method_call): Only allocate the got var when it is
526         needed.
527
528         * mini-x86.c (mono_arch_patch_code): Add missing PATCH_INFO_METHOD_REL
529         in the AOT case.
530
531 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
532
533         * mini-x86.c, cpu-pentium.md, inssel-x86.brg: Fixed bug
534         with add function when used from Inc/dec atomic 
535         functions. Re-enabled optimization on x86.
536         * mini-ops.h: renamed atomic_add functions to
537         allow _add to match the Interlocked::Add and
538         _add_next to match Interlocked::Inc/Dec.
539
540 2004-12-15  Massimiliano Mantione  <massi@ximian.com>
541
542         * mini.c: Fixed a subtle bug in mono_method_to_ir, about the
543         linking of BBs to the end BB, and enabled SSAPRE also with
544         consprop and copyprop (which was prevented by that bug).
545
546 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
547
548         * mini-x86.c: disabling the Interlocked optimizing code. 
549
550 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
551
552         * aot.c (load_aot_module): Move reading of got_addr after the AOT
553         file version check.
554         
555 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
556
557         * mini-x86.c, inssel-x86.brg, cpu-pentium.md: removed _imm 
558         interlocked optimization due lack of support on x86, rewrote 
559         exchange to take into account that base may be in eax.
560         
561         xsp works again; activated Interlocked optimizing code.
562         
563 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
564
565         * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file version.
566
567 2004-12-13  Zoltan Varga  <vargaz@freemail.hu>
568
569         * mini-ops.h: Add new opcodes.
570
571         * mini.h: Add new patch types. Add got_var to MonoCompile.
572
573         * mini.h mini-x86.c mini-amd64.c aot.c: Rename 
574         mono_arch_get_aot_patch_offset () to mono_arch_get_patch_offset () and
575         make it work with all kinds of patchable code.
576
577         * inssel.brg inssel-x86.brg: Add new rules dealing with computing the
578         address of the GOT, and referencing entries in the GOT.
579
580         * mini.c: Add code to load the GOT address if needed by an opcode.
581
582         * aot.c mini-x86.h mini-x86.c cpu-pentium.md: Add support for position 
583         independent AOT code on the x86 using an elf-style Global Offset Table.
584
585 2004-12-14  Raja R Harinath  <rharinath@novell.com>
586
587         * Makefile.am (RUNTIME): Set MONO_SHARED_DIR.
588
589 2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
590
591         * mini-x86.c: disabling the Interlocked optimizing code. It segfaults
592         when running xsp.
593
594 2004-12-13  Patrik Torstensson  <patrik.torstensson@gmail.com>
595
596         * mini-x86.c,mini-ops.h,inssel-x86.brg,cpu-pentium.md: Implementation
597         of Interlocked:Increment/Decrement/Add as inline ops.
598         (mini-x86.c (mono_arch_get_inst_for_method and mono_arch_output_basic_block))
599
600 2004-12-12  Geoff Norton  <gnorton@customerdna.com>
601
602         * exceptions-ppc.c: Reorder code so gcc3.4 can compile it
603         * mini-ppc.c: Unify mono_arch_patch_code with changes in r37636.
604
605 2004-12-12  Duncan Mak  <duncan@ximian.com>
606
607         * mini-ppc.c (mono_arch_patch_code): Hopefully made this build
608         again. `patch_info->table_size' is no longer valid after Zoltan's
609         commit #37636.
610
611 2004-12-12  Martin Baulig  <martin@ximian.com>
612
613         * mini.c (mono_method_to_ir): Only call mono_debug_init_method()
614         if we are the "real" method, ie. not an inlined method inside it.
615
616 2004-12-11  Ben Maurer  <bmaurer@ximian.com>
617
618         * mini.c (CEE_LDSFLD): Make sure that the vtable has been init'd
619         before we look in the special fields table. This fixes
620         ../tests/thread-static-init.cs.
621
622 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
623
624         * mini.c: return immediately after setting OP_ARRAY_RANK or CEE_LDLEN
625         for Array get_Rank and get_Length. Fixes bug #70465.
626
627 2004-12-11  Zoltan Varga  <vargaz@freemail.hu>
628
629         * mini.h mini.c aot.c: Put the bblock table for a SWITCH patch into a
630         separate structure to reduce the size of MonoJumpInfo.
631
632 Fri Dec 10 18:09:22 CET 2004 Paolo Molaro <lupus@ximian.com>
633
634         * mini.c, mini.h, aot.c, driver.c: allow disabling the aot code.
635
636 2004-12-10  Patrik Torstensson  <patrik.torstensson@gmail.com>
637
638         * mini.c (mini_get_inst_for_method): Changed to allow ports
639         to return a MonoInst instead of opcode 
640         (renamed mini_get_opcode_for_method to better reflect the new functionality)
641         
642         * mini-[x86|s390|s390x|ppc|sparc].c (mono_arch_get_inst_for_method): 
643         Allow ports to return a created MonoInst instead of op-code, will enable
644         new optimizations.
645         (renamed mini_get_opcode_for_method to better reflected the functionality)
646
647 2004-12-09  Zoltan Varga  <vargaz@freemail.hu>
648
649         * mini.c (NEW_AOTCONST): Share some code between the different NEW_AOTCONST macros.
650
651 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
652
653         * mini.c jit-icalls.c: Pass generic_context to mono_ldtoken_wrapper.
654         Fixes #69985.
655
656 2004-12-08  Martin Baulig  <martin@ximian.com>
657
658         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use `fsig->signature'
659         if we're a CEE_CONSTRAINED call.  Fixes gen-118.cs.
660
661 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
662
663         * mini-sparc.c (mono_arch_output_basic_block): Implement OP_FCONV_TO_<X>
664         correctly.
665
666         * exceptions.cs: Disable some tests which depend on properties of x86 fp
667         arithmetic.
668
669 2004-12-08  Raja R Harinath  <rharinath@novell.com>
670
671         * Makefile.am (CLEANFILES): Add *.exe, *.dll.
672
673 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
674
675         * mini-sparc.c (mono_arch_output_basic_block): Fix LOCALLOC_IMM
676         bug introduced by the previous patch.
677
678 Tue Dec 7 11:44:39 CET 2004 Paolo Molaro <lupus@ximian.com>
679
680         * mini-ppc.c, objectc.cs: handle large structs passed by value
681         (fixes bug #69972).
682
683 Tue Dec 7 10:43:31 CET 2004 Paolo Molaro <lupus@ximian.com>
684
685         * mini-ppc.c: OP_ARGLIST implementation from
686         Geoff Norton  <gnorton@customerdna.com>.
687
688 Tue Dec 7 10:14:25 CET 2004 Paolo Molaro <lupus@ximian.com>
689
690         * inssel-x86.brg, inssel-ppc.brg: fix reference to register
691         in stmt: OP_OUTARG_VT (reg) (should fix bug #69785).
692
693 Tue Dec 7 10:06:39 CET 2004 Paolo Molaro <lupus@ximian.com>
694
695         * exceptions-ppc.c: avoid calling ppc_patch in exception trampolines.
696
697 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
698
699         * inssel-s390.brgi, mini-ops.h, mini-s390.c : Add stubs for support of tls offset
700         support.
701
702 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
703
704         * mini-sparc.c: Zero out localled-ed memory.
705
706         * iltests.il: Add tests for zeroing out localloc-ed memory.
707
708 2004-12-04  Martin Baulig  <martin@ximian.com>
709
710         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use the new
711         mono_method_get_signature_full().       
712
713 2004-12-03  Massimiliano Mantione  <massi@ximian.com>
714
715         * mini.c: Added removal of critical edges (prerequisite for SSAPRE),
716         and some utility functions (always for SSAPRE), integrated SSAPRE.
717         * mini.h: Likewise.
718         * driver.c: Added ssapre option.
719         * ssa.c: Small fix on OP_ARG handling.
720         * ssapre.c, ssapre.h: Added files containing SSAPRE implementation.
721         * Makefile.am: Likewise.
722
723 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
724
725         * tramp-x86.c (mono_arch_create_jit_trampoline): Remove code which is
726         now in the xp code.
727
728         * mini.c (mini_init): Register mono_thread_force_interruption_checkpoint
729         icall.
730
731 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
732
733         * inssel-s390.brg : Add OP_OUTARG_VT (OP_REFANYTYPE (reg)) rule.
734         
735         * cpu-s390.md : Increase instruction length of oparglist.
736
737         * mini-s390.c : Implement vararg and TYPEDEBYREF support.
738
739 2004-11-30  Martin Baulig  <martin@ximian.com>
740
741         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, added support for
742         virtual generic methods.  We call a special helper_compile_generic_method()
743         icall to retrieve the method from the vtable, inflate and compile
744         it and then do a CEE_CALLI.  Thanks a lot to Paolo for this idea.
745
746         * jit-icalls.c (helper_compile_generic_method): New JIT icall.
747
748 2004-11-30  Zoltan Varga  <vargaz@freemail.hu>
749
750         * mini-sparc.c: Fix up vararg corner cases. Fixes #70019.
751
752 2004-11-29  Zoltan Varga  <vargaz@freemail.hu>
753
754         * cpu-sparc.md mini-sparc.c (long_conv_to_ovf_i): Fill missing delay slot.
755         Fixes #69929.
756
757 2004-11-27  Ben Maurer  <bmaurer@ximian.com>
758
759         * inssel.brg (CEE_SWITCH): The AOT stuff Zoltan added is only for
760         platforms with PIC aot.
761
762 2004-11-28  Martin Baulig  <martin@ximian.com>
763
764         * mini.c (mono_method_to_ir): In CEE_DUP, added handle_stobj().
765         Fixes gen-112.cs.
766
767 2004-11-28  Martin Baulig  <martin@ximian.com>
768
769         * mini-x86.c (mono_arch_call_opcode): Use the original type, not
770         the result of mono_type_get_underlying_type() to check whether
771         we're byref.
772
773 2004-11-26  Martin Baulig  <martin@ximian.com>
774
775         * mini.c
776         (mono_method_to_ir): Use `!method->signature->has_type_parameters'
777         in the g_assert().
778
779 2004-11-26  Zoltan Varga  <vargaz@freemail.hu>
780
781         * mini-amd64.c (mono_arch_emit_this_vret_args): Handle this and vret
782         the same way as the other arguments so they won't get clobbered.
783
784         * mini-amd64.c (mono_arch_output_basic_block): Avoid doing virtual 
785         calls through R11 since it is clobbered by the trampoline code.
786
787 2004-11-26  Raja R Harinath  <rharinath@novell.com>
788
789         * Makefile.am: Consistently use $(RUNTIME) rather than ./mono to
790         pick up in-tree mscorlib.dll.
791
792 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
793
794         * aot.c: Rename MonoAOTModule->cleanup to out_of_date.
795
796         * mini-amd64.c aot.c: Switch to PIC relative AOT code. References to 
797         runtime data/code are now stored in a table similar to the GOT in ELF. 
798         This allows the code itself to be position independent.
799
800         * aot.c: Fix loading of referenced assemblies after the lazy assembly
801         loading changes.
802
803         * aot.c: Attach ELF type (object/function) directives to all global
804         symbols.
805
806         * tramp-amd64.c (amd64_magic_trampoline): Patch RIP relative calls too.
807
808         * inssel.brg (SWITCH): Emit an AOT_CONST in the aot case.
809
810         * mini-amd64.h: Turn on PIC AOT code.
811
812         * mini.h (mono_arch_get_aot_patch_offset): New arch specific function
813         returning the offset within an OP_AOTCONST instruction where the GOT
814         offset needs to be added.
815
816         * mini.h: Bump AOT file format version.
817
818 2004-11-25  Martin Baulig  <martin@ximian.com>
819
820         * mini.c (mono_method_to_ir): In CEE_CALL, don't allow calling any
821         uninflated generic methods.
822
823 2004-11-25  Martin Baulig  <martin@ximian.com>
824
825         * mini.c (mono_method_to_ir): Don't allow any uninflated generic methods.
826
827 2004-11-24  Martin Baulig  <martin@ximian.com>
828
829         * minit.c (type_to_eval_stack_type): Set `inst->klass' to the
830         original klass (this only applies for generic instances).
831
832 2004-11-24  Martin Baulig  <martin@ximian.com>
833
834         * mini.c (mono_method_to_ir): Use `STACK_OBJ' instead of
835         `ldind_type [CEE_LDIND_REF]' (which would be beyond the end of
836         that array).
837
838 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
839
840         * mini.c (mono_method_to_ir): Disable inlining for methods containing
841         localloc. Fixes #69678.
842
843         * iltests.il (test_0_localloc_inline): Add regression test for #69678.
844         
845 2004-11-23  Zoltan Varga  <vargaz@freemail.hu>
846
847         * mini-amd64.c (mono_arch_output_basic_block): Set %al to the number of
848         used SSE registers on pinvoke calls. Fixes #69774.
849
850 2004-11-23  Geoff Norton  <gnorton@customerdna.com>
851
852         * inssel-ppc.brg, mini-ppc.c: Use mono_class_from_mono_type instead of
853         vt->inst_vtype->data.klass.  This fixes generic structs and bug #69766
854
855 2004-11-23  Raja R Harinath  <rharinath@novell.com>
856
857         * Makefile.am (MCS,ILASM): Don't refer to runtime/ directory.
858         Refer directly to the mcs/ tree.
859
860 2004-11-19  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
861
862         * mini-s390.c, tramp-s390.c, mini-s390.h: Add LMF processing for trampolines.
863         Check if a trampoline for a synchronized method is required. 
864
865 Fri Nov 19 17:34:21 CET 2004 Paolo Molaro <lupus@ximian.com>
866
867         * mini-ppc.c, cpu-g4.md: set to zero the memory allocated
868         with localloc if needed. Throe arithmetric exception in
869         div an rem if needed. Implement ovf checks in OP_LCONV_TO_OVF_I.
870         Adapted from a patch by Geoff Norton  <gnorton@customerdna.com>.
871
872 2004-11-19  Geoff Norton  <gnorton@customerdna.com>
873
874         * mini-ppc.c: Call mono_type_get_underlying_type to unwrap generic
875         types before switching on type.  Fixes #69622.
876
877 2004-11-19  Raja R Harinath  <rharinath@novell.com>
878
879         * Makefile.am (check-local): New.  Integrate into 'make check'.
880         (MCS,RUNTIME): Define using in-tree mono and mcs.
881         (ILASM): New.
882         (%.exe): Use $(ILASM).
883
884 Fri Nov 19 14:54:07 CET 2004 Paolo Molaro <lupus@ximian.com>
885
886         * mini-ppc.c: adjust initial prolog size (bug #69691).
887
888 2004-11-18  Zoltan Varga  <vargaz@freemail.hu>
889
890         * cpu-pentium.md (localloc): Increase max instruction len. Fixes
891         #69664.
892
893 2004-11-17  Raja R Harinath  <rharinath@novell.com>
894
895         * Makefile.am (clean-local): Rename from 'clean'.
896
897 2004-11-15  Nelae Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
898
899         * mini.c, mini-x86.c, mini-amd64.c, exceptions-s390.c: Add siginfo_t parameter
900         to mono_arch_is_int_overflow. 
901         * exceptions-s390.c: Add mono_arch_is_int_overflow routine to discern between
902         SIGFPE events.
903
904 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
905
906         * declsec.c|h: New files to support declarative security attributes.
907         Added function to check if a method has (applicable) security.
908         * mini.c|h: Add check for declarative security attributes in
909         mono_method_check_inlining.
910         * Makefile.am: Added declsec.c and declsec.h to the build.
911
912 Mon Nov 15 11:53:46 CET 2004 Paolo Molaro <lupus@ximian.com>
913
914         * mini.c, mini.h: update to keep dynamic code info per-domain.
915
916 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
917
918         * mini.c mini-*.h: Get rid of MONO_ARCH_HAVE_RETHROW since all architectures support it now.
919         (mini_init): Get rid of it from here too.
920
921 Thu Nov 11 20:17:17 CET 2004 Paolo Molaro <lupus@ximian.com>
922
923         * mini-ppc.c, mini-ppc,h, cpu-g5.md, exceptions-ppc.c:
924         implemented OP_RETHROW (patch by Geoff Norton
925         <gnorton@customerdna.com>).
926
927 2004-11-10  Geoff Norton  <gnorton@customerdna.com>
928
929         * tramp-ppc.c (ppc_magic_trampoline): Don't trampoline methods
930         between appdomains.  Fixes appdomain-unload on PPC.
931
932 2004-10-26  Lluis Sanchez Gual  <lluis@novell.com>
933
934         * exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
935         mini-exceptions.c: handle the new wrapper types.
936         * mini.c: The CEE_ISINST and CEE_CASTCLASS opcodes now take the
937         token value as a MonoClass* when compiling a wrapper.
938         mono_jit_create_remoting_trampoline now takes an additional
939         MonoRemotingTarget parameter.
940         
941 2004-11-10  Martin Baulig  <martin@localhost>
942
943         * mini.c (mono_method_to_ir): Use `generic_container->context'
944         rather than creating a new one.
945
946 2004-11-09  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
947
948         * exceptions-s390.c, mini-s390, cpu-s390.md: Add support for OP_RETHROW.
949
950         * inssel-390.md, mini-s390.c: Correct register allocation for globals.
951
952 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
953
954         * aot.c (mono_aot_init): Add MONO_AOT_CACHE env variable to turn on
955         the experimental aot cache stuff.
956
957 Tue Nov 9 17:30:20 CET 2004 Paolo Molaro <lupus@ximian.com>
958
959         * aot.c, mini.c, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
960         mini-exceptions.c: update to exception clause structure changes.
961
962 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
963
964         * exceptions-x86.c (throw_exception): Fix warnings.
965
966         * mini-x86.h mini-x86.c cpu-pentium.md exceptions-x86.c: Add support 
967         for OP_RETHROW.
968
969 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
970
971         * exceptions-sparc.c (get_throw_exception): Really fix this.
972
973 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
974
975         * tramp-*.c: we no longer support icalls without wrappers, so
976         a bit of code can be removed here
977
978 2004-11-07  Zoltan Varga  <vargaz@freemail.hu>
979
980         * exceptions-sparc.c (get_throw_exception): Fix more bugs in previous
981         patch.
982
983         * cpu-sparc.md: Add op_rethrow.
984
985         * exceptions-sparc.c (get_throw_exception): Fix bug in previous patch.
986
987         * mini-sparc.h mini-sparc.c exceptions-sparc.c: Add support for OP_RETHROW.
988
989         * mini.h: Add mono_arch_get_rethrow_exception () arch specific function.
990         * mini-ops.h: Add OP_RETHROW.
991
992         * mini.c inssel.brg: Distinguish between THROW and RETHROW.
993
994         * cpu-amd64.c mini-amd64.c exceptions-amd64.c: Add support for OP_RETHROW.
995
996 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
997         
998         * helpers.c: Change otool arguments from -V -v -t to -v -t on Darwin
999         Makes the output much easier to read
1000
1001 2004-11-05  Ben Maurer  <bmaurer@ximian.com>
1002
1003         * ssa.c: allocate MonoMethodVar.uses from the mempool. First, this
1004         prevents another huge leak when compiling with ssa. Secondly, the
1005         performance of doing this rather than freeing the lists is much
1006         better. GList does a lock every time you allocate a list link,
1007         so that it can use a memory pool. So, it is better to just use
1008         a memory pool of our own.
1009         
1010         * ssa.c, linear-scan.c: replace g_list_remove_link with
1011         g_list_delete.  The remove one does not free the GList, so we were
1012         leaking memory. On -O=all --compile-all with corlib, this cut down
1013         3 MB of allocations.
1014
1015 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1016
1017         * tramp-sparc.c (mono_arch_create_jit_trampoline): Fix sparc build.
1018
1019         * tramp-amd64.c (mono_arch_create_jit_trampoline): Fix amd64 build.
1020
1021         * mini.h mini.c tramp-*.c: Moved xp parts of JIT trampoline creation
1022         into a new function mono_create_jit_trampoline ().
1023
1024 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1025
1026         * trace.c (get_spec): Allow tracing of classes without a namespace.
1027
1028 2004-11-02  Sebastien Pouliot  <sebastien@ximian.com>
1029
1030         * mini.c: Fix pointer overwrite in mini_method_compile.
1031
1032 2004-11-2  Geoff Norton  <gnorton@customerdna.com>
1033
1034         * inssel-ppc.brg (OP_OUTARG_VT (CEE_LDOBJ (base))):
1035         The darwin ABI needs some special handling for 1 and 2 byte structs
1036         Lets use lbz/lhz instead of lwz everywhere.
1037         * mini-ppc.c (calculate_sizes):  The Darwin ABI needs from special handling
1038         for 1 and 2 byte structs and struct which are size >= 3 || size % 4 != 0.
1039         Use stb/sth for the former, and put the latter always on stack instead of in
1040         argument registers.
1041
1042 2004-10-30  Zoltan Varga  <vargaz@freemail.hu>
1043
1044         * trace.c (is_filenamechar): Add '_'.
1045
1046 2004-10-29  Neale Ferguson  <Neale.Ferguson@SoftwareAG-usa.com>
1047
1048         * mini-s390.c: Fix prolog length to allow for large trace requirements.
1049
1050         * exceptions-s390.c: Remove dwarf unwinding stuff that was unused.
1051
1052 2004-10-29  Zoltan Varga  <vargaz@freemail.hu>
1053
1054         * Makefile.am (libgc_libs): Do some automake magic so libmono/mono
1055         depends on libmonogc. Fixes #68805.
1056
1057 2004-10-26  Miguel de Icaza  <miguel@ximian.com>
1058
1059         * mini.c (mono_jit_free_method): Provide extra information for
1060         this error.  Currently this leaks, but will be turned into a
1061         developer option in the future.
1062
1063 2004-10-26  Zoltan Varga  <vargaz@freemail.hu>
1064
1065         * driver.c (mono_main): Applied patch from Willibald Krenn <willibald.krenn@gmx.at>. Make --graph work for icalls and pinvoke methods.
1066
1067 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1068
1069         * aot.c (mono_aot_load_method): Align PATCH_INFO_R8 on an 8 byte 
1070         boundary. Fixes reading of PATCH_INFO_R4 and R8.
1071         (mono_aot_load_method): Do not allocate MonoAotMethod in the GC heap.
1072
1073 2004-10-24  Zoltan Varga  <vargaz@freemail.hu>
1074
1075         * mini-amd64.c (mono_arch_patch_code): Fix patching of class init
1076         trampolines for AOT code.
1077
1078 2004-10-22    <vargaz@freemail.hu>
1079
1080         * aot.c (mono_compile_assembly): Disable AOT for methods containing calls to methods of
1081         constructed types. Fixes #68136.
1082
1083 2004-10-21  Martin Baulig  <martin@ximian.com>
1084
1085         * exceptions-x86.c (throw_exception): Call mono_debugger_throw_exception();
1086         if it returns true, unwind the stack to the call instruction.
1087
1088 2004-10-21    <vargaz@freemail.hu>
1089
1090         * aot.c: Reorganize the AOT file format to avoid relocations. Fix warnings.
1091
1092         * mini.h: Bump AOT version number.
1093
1094         * objects.cs: Add another test for unbox trampolines.
1095
1096         * tramp-amd64.c (amd64_magic_trampoline): Disable patching of trampolines for 
1097         valuetype methods.
1098
1099 2004-10-20    <vargaz@freemail.hu>
1100
1101         * driver.c: Add SHARED to the set of optimizations tested.
1102
1103         * tramp-amd64.c (amd64_magic_trampoline): Patch trampoline code as well.
1104
1105         * mini.c (mono_method_to_ir): Mark the domainvar as volatile when it is implicitly
1106         used by CEE_NEWARR.
1107
1108         * ssa.c (mono_ssa_deadce): Do not optimize away accesses to volatile variables.
1109
1110 2004-10-20  Martin Baulig  <martin@ximian.com>
1111
1112         * mini-exceptions.c (mono_handle_exception): Call
1113         mono_debugger_handle_exception() to tell the debugger about
1114         catch/finally clauses.
1115
1116 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1117
1118         * exceptions-amd64.c (mono_arch_find_jit_info): Pop arguments of the stack.
1119
1120         * mini-amd64.c (mono_amd64_get_vcall_slot_addr): Handle extended registers. Fixes
1121         #68447.
1122
1123 2004-10-15  Geoff Norton  <gnorton@customerdna.com>
1124
1125         * mini-ppc.c (calculate_sizes): Marshal valuetypes for pinvoke
1126         methods as their native size, fixed bug #57543, #57545.
1127         * mini-ppc.c (mono_arch_output_basic_block): Use mulli for imm16 types
1128         This saves a temporary register and mullw call down into 1 (minor perf
1129         increase for cases like sum = sum * 5;  This use to translate into:
1130             li r11,5
1131             mullw r28,r28,r11
1132         It now translates to
1133             mulli r28,r28,5
1134
1135 2004-10-15  Zoltan Varga  <vargaz@freemail.hu>
1136
1137         * trace.c (mono_trace_eval): Use mono_method_desc_full_match. Fixes
1138         #68388.
1139
1140 2004-10-11  Martin Baulig  <martin@ximian.com>
1141
1142         * mini.c (mono_method_to_ir): If we're a generic method, get the
1143         MonoGenericContainer from our MonoMethodNormal and create a
1144         MonoGenericContext from it.
1145
1146 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1147
1148         * inssel-long32.brg (OP_LCONV_TO_OVF_I2): Fix CONV_I1 -> CONV_I2.
1149
1150         * basic-long.cs: Add test for checked i8->i2 cast.
1151
1152 Wed Oct 6 12:40:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
1153
1154         * inssel-ppc.brg: added a couple of speedup rules.
1155
1156 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1157
1158         * Makefile.am (genmdesc_LDADD): Don't link this against libmetadata
1159         to speed up rebuilds.
1160
1161 2004-10-04  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
1162
1163         * mini-s390.c: Minor fix to OP_OR_IMM.
1164
1165 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1166
1167         * tramp-sparc.c (sparc_magic_trampoline): Handle appdomain stuff
1168         better. Fixes appdomain-unload.exe on sparc.
1169
1170 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1171
1172         * ssa.c: Fixed casts to unsigned where the value was of 64 bits in
1173         simulate_long_compare, patch by will@exomi.com (Ville-Pertti Keinonen),
1174         see bug 67324.
1175
1176 2004-10-02  Zoltan Varga  <vargaz@freemail.hu>
1177
1178         * jit-icalls.c: Handle a nonexisting trunc function more correctly.
1179
1180 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1181
1182         * mini.c: Always generate a field read/write wrapper for members
1183         of the class MarshalByRefObject since the actual instance could
1184         be a CBO.
1185
1186 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1187
1188         * mini.c: Use mono_thread_exit() to stop threads, instead of ExitThread.
1189
1190 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1191
1192         * driver.c mini.h trace.c: Move the setting of the main assembly into
1193         a separate function called mono_trace_set_assembly () and call it after
1194         actually loading the main assembly. Fixes #66872.
1195
1196 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1197
1198         * mini-amd64.h mini-amd64.c tramp-amd64.c: Allocate trampoline memory
1199         using the code manager.
1200
1201 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1202
1203         * tramp-amd64.c mini-amd64.h: Add support for MONO_ARCH_HAVE_INVALIDATE_METHOD.
1204
1205 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1206
1207         * cpu-amd64.md: Fix bug in previous patch.
1208         
1209         * cpu-amd64.md: Fix instruction lengths of membase opcodes. Fixes
1210         #66650.
1211
1212 Wed Sep 22 19:03:20 CEST 2004 Paolo Molaro <lupus@ximian.com>
1213
1214         * mini.h, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
1215         mini-exceptions.c: updates for changed stack walk interface.
1216
1217 2004-09-21  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
1218
1219         * mini-s390.c, cpu-s390.md: Minor changes to OP_ARGLIST handling
1220
1221 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1222
1223         * mini.c (mono_method_to_ir): Fix LDSTR in dynamic methods. Fixes #66132.
1224
1225 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1226
1227         * driver.c (mini_regression_list): Do not call mono_assembly_close 
1228         since assemblies can't be unloaded.
1229         
1230 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1231
1232         * cpu-amd64.md: Fix more instruction lengths.
1233
1234         * cpu-amd64.md: Fix lengths of some instructions.
1235
1236 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
1237
1238         * inssel.brg: Make the array ldelema check aot friendly.
1239
1240 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1241
1242         * mini-amd64.c (mono_arch_get_argument_info): Fix stack_unwind test.
1243
1244         * cpu-amd64.md inssel-long.brg inssel-amd64.brg: Small optimizations.
1245
1246 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1247
1248         * mini-x86.c: Fix build.
1249
1250         * mini-sparc.c mini-x86.c mini-amd64.c: Use the new 
1251         mono_type_get_underlying_type () helper function to simplify code.
1252         
1253 2004-09-09  Martin Baulig  <martin@ximian.com>
1254
1255         * mini-amd64.c: Don't access `type->data.klass' directly, call
1256         mono_class_from_mono_type() instead since the type may be a
1257         generic instance.
1258
1259 2004-09-09  Martin Baulig  <martin@ximian.com>
1260
1261         * mini-amd64.c (get_call_info): Fix support for generic instances.
1262         (add_valuetype): Use mono_class_from_mono_type() to get the class
1263         since we can be a generic instance.
1264
1265 Thu Sep 9 01:43:53 PDT 2004 Paolo Molaro <lupus@ximian.com>
1266
1267         * mini-ppc.c, mini.h, regalloc.c, regalloc.h: powerpc speedups.
1268
1269 2004-09-07 Ben Maurer  <bmaurer@users.sourceforge.net>
1270
1271         * liveness.c: reset spill costs on each scan: bug 62107
1272
1273 2004-09-07  Bernie Solomon  <bernard@ugsolutions.com>
1274
1275         * exceptions-sparc.c (mono_arch_find_jit_info): remove
1276         unnecessary line that doesn't compile
1277
1278 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1279
1280         * mini.c mini.h mini-x86.h tramp-x86.c: Instead of freeing delegate
1281         trampolines, make them call an error function so people can fix their
1282         code.
1283
1284 2004-09-06  Martin Baulig  <martin@ximian.com>
1285
1286         * mini.c (mono_method_to_ir): When initializing locals, handle a
1287         generic instances like a valuetype if it's a valuetype and like a
1288         class if it's a class.
1289
1290 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1291
1292         * exceptions-x86.c (mono_arch_find_jit_info): Pop arguments off the
1293         stack. Fixes #64674.
1294
1295         * exceptions.cs: Add test for unwinding of call arguments.
1296
1297 Mon Sep 6 05:50:02 PDT 2004 Paolo Molaro <lupus@ximian.com>
1298
1299         * mini-*.c, mini-ops.h, inssel-long32.brg: introduced
1300         OP_ADDCC_IMM and OP_SUBCC_IMM (add/sub immediate that will
1301         set the carry/borrow flag). The sparc and s390 implementations
1302         can now use optimized versions (and simplify the code). ppc bugfixes.
1303
1304 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1305
1306         * exceptions-ppc.c (mono_arch_find_jit_info): Fix memory leak.
1307
1308 2004-09-05  Zoltan Varga  <vargaz@freemail.hu>
1309
1310         * inssel-amd64.brg: Remove leftover 32 bit rule.
1311
1312         * mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support.
1313
1314 2004-09-04  Zoltan Varga  <vargaz@freemail.hu>
1315
1316         * mini-exceptions.c (mono_find_jit_info): Refactor common code from
1317         mono_arch_find_jit_info functions into a new function. Fix a memory
1318         leak.
1319
1320         * exceptions-x86.c exceptions-amd64.c exceptions-sparc.c: Remove
1321         refactored code.
1322         
1323 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1324
1325         * exceptions.cs inssel-long32.brg: Handle the OP_LCONV_TO_OVF_I2 case
1326         as well.
1327         
1328         * exceptions.cs: Add array size tests.
1329
1330         * mini.c: Allocate a separate icall wrapper for each arity of 
1331         mono_array_new_va. Fixes #59509.
1332
1333         * exceptions.cs: Add testcase for 64578.
1334
1335         * inssel-long32.brg: Fix OP_LCONV_TO_OVF_I1 rule. Fixes #64578.
1336
1337         * trace.c (is_filenamechar): Allow 0..9 in strings. Fixes #65094.
1338         
1339 2004-09-02  Martin Baulig  <martin@ximian.com>
1340
1341         * mini.c (mono_method_to_ir): When initializing the locals, call
1342         handle_initobj() on the generic instance itself, not its
1343         underlying type.
1344
1345 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1346
1347         * mini.h (MonoJitDynamicMethodInfo): New structure, extension of 
1348         MonoJitInfo for dynamic methods.
1349
1350         * mini.c: Rename trampoline_hash_mutex to jit_mutex.
1351
1352         * mini.c: Add support for freeing JIT data for dynamic methods.
1353         
1354 2004-09-01  Martin Baulig  <martin@ximian.com>
1355
1356         * mini-x86.c (is_regsize_var): Added support for generic
1357         instances.
1358         (mono_arch_emit_prolog): Make this compile again, use
1359         `x86_push_imm_template (code)'.
1360
1361 2004-08-30 Ben Maurer  <bmaurer@users.sourceforge.net>
1362
1363         * mini-x86.c: make all push_imm instructions that get
1364         patched always emit the long form
1365
1366 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1367
1368         * mini.c (mono_create_jump_trampoline): Store the jump trampolines 
1369         in a per-domain hash.
1370
1371         * mini-amd64.c (merge_argument_class_from_type): Handle generic
1372         types.
1373
1374 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1375
1376         * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: Ongoing SSE
1377         work.
1378         
1379         * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: More SSE
1380         work.
1381
1382         * mini-amd64.c cpu-amd64.md: Implement checked int<->uint casts.
1383         Beginnings of SSE2 support.
1384
1385         * exceptions.cs: Add more tests for checked int<->uint casts.
1386
1387 2004-08-28  Martin Baulig  <martin@ximian.com>
1388
1389         * mini-x86.c (mono_arch_instrument_epilog): Added support for
1390         generic instances.
1391
1392         * mini.c
1393         (mono_type_to_ldind, mono_type_to_stind, type_to_eval_stack_type):
1394         Handle generic instances recursively.
1395
1396 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
1397
1398         * iltests.il: test for conv.u8 on a constant
1399
1400 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
1401
1402         * inssel-long32.brg: c&p rules for LCONV_x4 (membase) and
1403         LCONV_x4 (shrun_32 (membase)).
1404
1405 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
1406
1407         * inssel-x86.brg: c&p rules for push/setret of long
1408
1409 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
1410
1411         * inssel-x86.brg: c&p rules for compare (base, regvar) and
1412         compare (regvar, base)
1413
1414         * inssel-x86.brg: more burg love
1415
1416         * inssel.brg: more cleanup
1417
1418         * inssel-x86.brg, inssel-long32.brg: burg cleanup.
1419
1420 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
1421
1422         * basic-long.cs, basic-calls.cs: new tests for optimization.
1423
1424 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1425
1426         * mini-amd64.c (read_tls_offset_from_method): Fix typo in previous
1427         patch.
1428
1429 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1430
1431         * mini-amd64.c (read_tls_offset_from_method): Add another case.
1432         
1433 2004-08-25  Bernie Solomon  <bernard@ugsolutions.com>
1434
1435         * inssel.brg (mini_emit_memcpy): use 
1436         NO_UNALIGNED_ACCESS to disable memcpy optimization
1437
1438 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1439
1440         * mini-amd64.c: Handle generic types in various places.
1441
1442         * mini.c (mono_method_to_ir): Handle generic types in init locals.
1443
1444 2004-08-24  Zoltan Varga  <vargaz@freemail.hu>
1445
1446         * mini.c (handle_box): Fix warning.
1447
1448         * mini-amd64.c (mono_arch_local_regalloc): Fix regalloc problem.
1449
1450         * mini-amd64.h: Enable the emit_state optimization.
1451
1452         * mini-ops.h cpu-amd64.md: Add new amd64_test_null opcode.
1453
1454         * mini-amd64.c: Add some new 64 bit peephole opts.
1455
1456         * inssel.brg (mini_emit_memcpy): Optimize for 64 bit architectures.
1457
1458         * cpu-amd64.md: sreg1 of div instructions must be %rax.
1459
1460         * mini-amd64.c: Register allocator fixes.
1461
1462         * mini.c: Add an optimization to emit_state to avoid allocation of new
1463         registers on some platforms.
1464
1465 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1466
1467         * inssel-x86.brg inssel-amd64: Add yet another missing tree->dreg assignment.
1468
1469         * mini-x86.c (mono_arch_local_regalloc): Fix bug in long register
1470         allocation. Fixes #63085.
1471
1472         * basic-long.cs: Add new regression test.
1473
1474         * mini-amd64.c: Register allocator improvements.
1475
1476 2004-08-21  Zoltan Varga  <vargaz@freemail.hu>
1477
1478         * mini-amd64.c (read_tls_offset_from_method): Add another code
1479         sequence.
1480
1481         * tramp-amd64.c (amd64_class_init_trampoline): Use a more efficient
1482         instruction sequence for nullifying class init trampolines.
1483
1484         * objects.cs: Add new regalloc test.
1485
1486         * mini-amd64.c inssel-amd64.brg: Optimize parameter passing.
1487
1488 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1489
1490         * mini-amd64.c (mono_arch_call_opcode): Refactor this a little.
1491         
1492         * mini-amd64.c (mono_arch_regalloc_cost): Adjust regalloc costs for
1493         arguments.
1494
1495         * driver.c: Fix profiling after TLS changes.
1496         
1497         * driver.c (mono_main): Set mono_stats.enabled if needed.
1498
1499         * mini.c (handle_alloc): New helper function used by CEE_NEWOBJ and
1500         CEE_BOX.
1501
1502 2004-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
1503
1504         * mini-x86.c: use a 1 op rather than a 2 op tls access
1505         instruction -> faster.
1506
1507 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1508
1509         * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from
1510         x86 backend.
1511
1512 2004-08-19 Bernie Solomon <bernard@ugsolutions.com>
1513
1514         * exceptions-sparc.c (throw_exception): fix typo
1515
1516 2004-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
1517
1518         * mini-x86.c, cpu-pentium.md, inssel-x86.brg:
1519         set tree->dreg correctly with tls. Allow any
1520         register to be used.
1521
1522         * mini-x86.c (read_tls_offset_from_method): add new code
1523         generation pattern seen with GCC.
1524
1525
1526 Thu Aug 19 17:26:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
1527
1528         * mini-exceptions.c, exceptions-x86.c, exceptions-amd64.c,
1529         exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
1530         exceptions-sparc.c: fix some performance issues in exception
1531         handling and setting of the stack trace for exceptions that were
1532         already thrown.
1533
1534 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1535
1536         * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from 
1537         x86 backend.
1538         
1539         * mini-amd64.c (mono_arch_is_int_overflow): Handle all possible 
1540         registers.
1541
1542 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1543
1544         This patch inlines tls access, when possible.
1545         
1546         * mini.h: new arch functions for TLS intrinsics.
1547         All platforms updated with a stub.
1548
1549         * mini.c: use the new intrinsics
1550
1551         * mini-x86.c, cpu-pentium.md, inssel-x86.brg, mini-ops.h:
1552         arch specific intrinsic for tls variables
1553
1554 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1555
1556         * Makefile.am (libmono_la_LDFLAGS): Enable creating of libmono dll
1557         under windows.
1558
1559 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1560
1561         * mini.c: thread local allocation
1562
1563 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
1564
1565         * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Enable.
1566
1567         * Makefile.am: Link against the static version of libmonogc.
1568         
1569         * Makefile.am: Link the static versions of the convenience libraries
1570         into the mono executable.
1571
1572         * mini-x86.h mini-x86.c: Throw the correct exception on integer overflow.
1573
1574 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
1575
1576         * mini.h mini.c mini-amd64.h mini-amd64.c: Throw the correct exception
1577         on integer overflow.
1578
1579         * mini-amd64.c: Reorganize function call code.
1580
1581         * mini-amd64.c (peephole_pass): Merge changes from mini-x86.c.
1582
1583 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
1584
1585         * inssel-x86.brg: use xor eax,eax.
1586         
1587         * basic.cs: new tests
1588
1589 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1590
1591         * mini-amd64.c (mono_arch_emit_epilog): Use RIP relative addressing
1592         in exception throwing code.
1593         
1594 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
1595
1596         * inssel-x86.brg: use xor esi,esi.
1597
1598 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1599
1600         * driver.c (mono_main): Call mono_trace_parse_options earlier so it
1601         can trace methods compiled during mini_init () too.
1602
1603         * cpu-amd64.md mini-amd64.c (mono_arch_output_basic_block): Handle 
1604         CEE_CONV_U4.
1605
1606 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
1607
1608         * Makefile.am: static link on x86 (r=zoltan)
1609
1610 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1611
1612         * tramp-amd64.c (amd64_magic_trampoline): Avoid patching the trampoline
1613         code since it causes some programs to fail.
1614
1615 2004-08-12  Zoltan Varga  <vargaz@freemail.hu>
1616
1617         * mini-amd64.c (bb_is_loop_start): Merge changes from mini-x86.c.
1618
1619 2004-08-11  Bernie Solomon <bernard@ugsolutions.com>
1620
1621         * mini.c: ovfops_op_map - add STACK_OBJ case for
1622         CONV_I 
1623         * basic.cs: add test_0_pin_string as test
1624         case for above.
1625
1626 2004-08-11  Bernie Solomon <bernard@ugsolutions.com>
1627
1628         * Makefile.am: build C# if srcdir != builddir
1629
1630 Tue Aug 10 19:23:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
1631
1632         * dominators.c, mini.h, mini-x86.c: fix loop alignment with
1633         fall-through blocks.
1634
1635 Tue Aug 10 16:18:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
1636
1637         * driver.c: enable loop by default again and include abcrem in -O=all.
1638
1639 2004-08-08  Zoltan Varga  <vargaz@freemail.hu>
1640
1641         * iltests.il: Add some localloc tests.
1642
1643         * mini.c (mono_method_to_ir): Set stack type of LOCALLOC correctly.
1644
1645         * inssel-amd64.brg inssel-x86.brg: Set dreg of LOCALLOC correctly. 
1646         Fixes #62574.
1647
1648         * inssel-amd64.brg: Add some optimizations.
1649
1650         * mini-amd64.c (mono_arch_setup_jit_tls_data): Add tls offset detection
1651         for gcc-3.4.
1652
1653         * Makefile.am: Statically link mono against libmono on AMD64.
1654         
1655         * mini-amd64.c inssel-amd64.brg: Optimizations.
1656
1657 2004-08-07  Zoltan Varga  <vargaz@freemail.hu>
1658
1659         * mini-amd64.c (mono_arch_emit_prolog): Optimize lmf saving a bit.
1660
1661         * tramp-amd64.c: Patch calling code in trampolines.
1662
1663 2004-08-06  Zoltan Varga  <vargaz@freemail.hu>
1664
1665         * mini-amd64.c: pinvoke struct passing fixes.
1666
1667 2004-08-05  Bernie Solomon  <bernard@ugsolutions.com>
1668
1669         * mini-sparc.c: redo change, make mono_arch_cpu_init call
1670         mono_arch_cpu_optimizazions so sparcv9 is initialized when embedded
1671
1672 2004-08-05  Duncan Mak  <duncan@ximian.com>
1673
1674         * mini.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
1675         CEE_LDELEM_ANY.
1676
1677 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1678
1679         * mini-amd64.c (emit_move_return_value): Move return value for normal
1680         calls too.
1681
1682 2004-08-05  Martin Baulig  <martin@ximian.com>
1683
1684         * mini.c (ret_type_to_call_opcode): Don't use a `t' variable for
1685         `type->type'; just modify `type' itself when dealing with enums
1686         and generic instances.
1687         (check_call_signature): Make `simple_type' a `MonoType *'.
1688
1689 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1690
1691         * mini.c: Use OP_PADD to add offsets to addresses.
1692
1693         * mini-amd64.h: Disable SIGSEGV_ON_ALTSTACK.
1694
1695 2004-08-04  Bernie Solomon  <bernard@ugsolutions.com>
1696
1697         * mini-sparc.c (mono_arch_emit_epilog): fix check
1698         for folding last op into restore instruction
1699
1700 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1701
1702         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Allocate
1703         helper methods using the code manager.
1704         
1705         * exceptions-amd64.c (mono_arch_get_throw_exception): Fix maximum length.
1706
1707         * mini-amd64.c (mono_arch_allocate_vars): Fix tls offset detection.
1708
1709 Tue Aug 3 23:50:00 EST 2004 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
1710         
1711         * mini-s390x.c mini-s390x.h tramp-s390x.c inssel-s390x.brg
1712           cpu-s390x.md exceptions-s390x.c Makefile.am: S/390 64-bit JIT
1713
1714         * mini-s390.c: fix tail processing
1715
1716 Tue Aug 3 01:35:44 PDT 2004 Paolo Molaro <lupus@ximian.com>
1717
1718         * mini-ppc.c: mul.ovf.un exception name fix.
1719
1720 2004-08-03  Martin Baulig  <martin@ximian.com>
1721
1722         * mini-x86.c (mono_arch_call_opcode): Correctly handle generic
1723         instances; before jumping to `handle_enum', also modify `ptype'.
1724
1725 2004-08-02  Bernie Solomon  <bernard@ugsolutions.com>
1726
1727         * cpu-sparc.md: fcall maximal length too small.
1728
1729 2004-08-02  Zoltan Varga  <vargaz@freemail.hu>
1730
1731         * mini-amd64.c mini.h: Add initial support for passing/returning 
1732         structures to/from pinvoked methods.
1733
1734 Mon Aug 2 11:59:35 PDT 2004 Paolo Molaro <lupus@ximian.com>
1735
1736         * mini-ppc.c: reg allocator fix.
1737
1738 2004-07-31  Zoltan Varga  <vargaz@freemail.hu>
1739
1740         * mini-amd64.c (mono_arch_output_basic_block): Fix OP_X86_PUSH_OBJ.
1741
1742         * inssel.brg: Optimize memset on 64 bit machines.
1743
1744         * mini-amd64.c: Fix some vararg cases.
1745
1746 2004-07-30  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
1747
1748         * mini-s390.c: Corrected macro in emit_float_to_int
1749
1750         * s390-abi.cs: Tests to exercise the s390 ABI
1751
1752 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1753
1754         * exceptions-amd64.c (mono_arch_find_jit_info): Fix restoring of
1755         caller saved regs.
1756
1757         * basic.cs: Add a test for add.ovf.un.
1758
1759 2004-07-30  Bernie Solomon  <bernard@ugsolutions.com>
1760
1761         * mini-sparc.c: add case for OP_IDIV_UN
1762
1763 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1764
1765         * mini-amd64.c mini-amd64.h mini.c: Add support for vararg pinvoke calls.
1766         
1767         * mini-amd64.c cpu-amd64.md: Ongoing JIT work.
1768
1769 2004-07-30  Ben Maurer  <bmaurer@ximian.com>
1770
1771         * basic.cs: regression tests.
1772
1773         * inssel-x86.brg: Disable cmp BYTE PTR [eax], imm, it causes various
1774         regressions.
1775
1776 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1777
1778         * basic.cs: Add a new test.
1779
1780         * mini-amd64.c aot.c cpu-amd64.md: Add support for tracing, profiling 
1781         and AOT. Various fixes and optimizations.
1782
1783         * inssel.brg (CALL_REG): Add 64 bit versions of call_reg rules.
1784
1785 Fri Jul 30 15:49:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1786
1787         * mini-ppc.c: make sure temp regs are not used for global reg
1788         allocation.
1789
1790 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
1791
1792         * cpu-sparc.md: conv_i8 fix for 64bits
1793
1794         * mini-sparc.c: add cases for OP_IXXX codes for 64bits
1795
1796 2004-07-29  Ben Maurer  <bmaurer@ximian.com>
1797         
1798         * cpu-pentium.md, mini-x86.c, inssel-x86.brg, mini-ops.h:
1799         add opcode for cmp BYTE PTR [eax], imm.
1800
1801         * inssel.brg: Make memcpy and memset takes bases.
1802
1803 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
1804
1805         * *-amd64.*: More AMD64 work.
1806         
1807 2004-07-28  Ben Maurer  <bmaurer@ximian.com>
1808
1809         * cpu-pentium.md, inssel-x86.brg, mini-ops.h, mini-x86.c:
1810         add a compare-not-equal opcode.
1811         
1812 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
1813
1814         * mini.c: Use mono_init_from_assembly instead of mono_init.
1815         
1816 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
1817
1818         * mini.c: Fix opcode mapping for STACK_MP on 64 bit platforms.
1819
1820         * mini.c (CEE_NEWOBJ): Call mono_array_new_va using the correct signature.
1821
1822         * mini.c: Use MONO_ARCH_SIGACTION on AMD64 as well.
1823
1824         * inssel.brg: 64 bit fixes.
1825
1826         * mini.h (MonoCallInst): Add some AMD64 specific data.
1827
1828         * mini.h: Add some OP_P opcodes.
1829
1830 2004-07-28  Ben Maurer  <bmaurer@ximian.com>
1831
1832         * basic.cs: tests for 61797 and 61740
1833
1834 Tue Jul 27 16:05:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
1835
1836         * mini-ppc.c, mini-sparc.c, mini-s390.c: keep track of line
1837         numbers in the debug info (spotted by Geoff Norton, <gnorton@customerdna.com>).
1838
1839 2004-07-24  Zoltan Varga  <vargaz@freemail.hu>
1840
1841         * mini-sparc.c (mono_arch_output_basic_block): Add CEE_CONV_U8/I8.
1842
1843         * *-amd64*.*: Ongoing AMD64 work.
1844
1845 2004-07-23 Zoltan Varga <vargaz@freemail.hu>
1846
1847         * inssel-long.brg: Implement CONV_I8/CONV_U8 in the backends.
1848
1849         * *-amd64*: Ongoing AMD64 work.
1850
1851         * mini-arch.h: Add AMD64 support.
1852
1853         * mini-sparc.c (mono_arch_is_inst_imm): New arch dependent function.
1854
1855         * mini.h: Add new arch dependent function mono_arch_is_inst_imm.
1856
1857         * mini-ops.h: Add new opcodes.
1858
1859         * Makefile.am: Add AMD64 support.
1860
1861         * inssel.brg inssel-long32.brg inssel-long.brg: Move mul/div and shift
1862         rules into the inssel-long*.brg files.
1863
1864         * *-amd64.*: Add beginnings of AMD64 backend.
1865
1866 2004-07-22  Ben Maurer  <bmaurer@ximian.com>
1867
1868         * mini.c (print_dfn): commenting out the code that prints
1869         the cil. With -O=deadce, this makes -v -v crash.
1870         
1871         * cpu-pentium.md: make checkthis have a length of 2
1872
1873 2004-04-21  Bernie Solomon  <bernard@ugsolutions.com>
1874
1875         * mini-sparc.h: fix implementations of __builtin
1876         functions for Sun compiler for V9.
1877
1878 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
1879
1880         * mini.c: use the new stelem.ref wrapper
1881         * exceptions.cs, arrays.cs: new stelem.ref tests
1882
1883 Wed Jul 14 19:08:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
1884
1885         * mini-ppc.c, exceptions-ppc.c: cleanups and fixes (the
1886         new XSP should work with these changes).
1887
1888 2004-07-14  Ben Maurer  <bmaurer@ximain.com>
1889         
1890         * inssel-{long32,x86,}.brg: trivial optimizations.
1891         
1892 Mon Jul 12 20:25:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
1893
1894         * mini.c: load value when emitting box operation in
1895         constrained calls.
1896
1897 2004-07-12  Ben Maurer  <bmaurer@ximian.com>
1898
1899         * mini-x86.c (OP_CHECK_THIS): cmp DWORD PTR [eax], eax
1900         is one byte shorter than cmp DWORD PTR [eax], 0.
1901
1902 Mon Jul 12 17:47:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
1903
1904         * inssel-ppc.brg: arguments on the stack are always
1905         relative to the stack pointer (spotted by Neale Ferguson).
1906
1907 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1908
1909         * exceptions-x86.c: delay appending the method name to the trace until
1910         after mono_jit_info_table_find is called, as this gets the real
1911         MonoMethod.
1912
1913 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
1914
1915         * aot.c: register roots
1916
1917 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
1918
1919         * aot.c : I could just use PLATFORM_WIN32 flag.
1920
1921 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
1922
1923         * aot.c : Reverting the previous fix. This time it broke linux build.
1924
1925 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
1926
1927         * aot.c : quick cygwin build fix. mkdir() with two args does not exist.
1928
1929 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
1930
1931         * mini.c (handle_stack_args): Remove some more debugging code.
1932         
1933         * mini.c (handle_stack_args): Remove debug output left in by mistake.
1934
1935         * driver.c mini.h aot.c: Allow additional options to be specified with
1936         --aot and pass them to mono_compile_assembly.
1937
1938         * aot.c: Add experimental code to AOT compile all loaded assemblies
1939         on demand and save the code into a cache in the filesystem.
1940
1941         * aot.c: Add support for more wrapper methods.
1942         
1943         * mini.c (handle_stack_args): Handle some corner cases. Fixes 
1944         58863.
1945
1946         * cpu-*.md: Remove removed opcodes.
1947
1948         * mini.h mini.c: Move JIT icall handling to icall.c. Replace usage of
1949         CEE_MONO_PROC<x> with CEE_MONO_ICALL. Move registration of marshalling
1950         related icalls to marshal.c.
1951
1952 2004-07-06  Zoltan Varga  <vargaz@freemail.hu>
1953
1954         * mini-ops.h: Add OP_SAVE_LMF and OP_RESTORE_LMF.
1955
1956         * Makefile.am (EXTRA_DIST): Add inssel-long[32].brg.
1957
1958         * inssel.brg: Fix warning. Add rules for SAVE_LMF and RESTORE_LMF.
1959
1960 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
1961         * liveness.c: If liveness is recomputated we need to reset the information
1962         for each variable. This way, if the liveness range has been narrowed
1963         by optimizations that happened after the last computation, we can return
1964         a smaller range.
1965         
1966         For example, if you have
1967         
1968         {
1969                 int i = 0;
1970                 
1971                 // Tons of code that does not affect i
1972                 
1973                 i = foo ();
1974                 ...
1975         }
1976         
1977         i = 0 is dead code and will be removed by SSA. However, when
1978         linear scan gets to the code, i will still appear to be live
1979         throughout the entire block. This prevents good register allocation.
1980
1981 2004-07-06  Martin Baulig  <martin@ximian.com>
1982
1983         * debug-mini.c (mono_debug_init_method): Allow
1984         MONO_WRAPPER_MANAGED_TO_NATIVE wrappers.
1985         (mono_debug_add_icall_wrapper): New method.
1986
1987         * mini.c (mono_icall_get_wrapper): Call mono_debug_add_icall_wrapper().
1988
1989 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
1990
1991         * mini.c (optimize_branches): Fix linking of bblocks in branch->branch
1992         optimization.
1993
1994 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
1995
1996         * aot.c (mono_aot_load_method): Fix loading of debug info.
1997
1998 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
1999
2000         * aot.c: Add logging support.
2001
2002 2004-07-01  Zoltan Varga  <vargaz@freemail.hu>
2003
2004         * mini.h: Add prototype for mono_print_method_from_ip.
2005
2006         * mini.c: 64 bit fixes. Use LCOMPARE for comparing longs.
2007
2008         * inssel.brg: 64 bit fixes.
2009
2010         * inssel.brg inssel-long32.brg: Move 32 bit arithmetic rules to 
2011         inssel-long32.brg.
2012
2013         * Makefile.am: Add SPARC64 support.
2014
2015 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2016
2017         * aot.c: Fix alignment problems on 32 bit platforms.
2018
2019 2004-07-01  Zoltan Varga  <vargaz@freemail.hu>
2020
2021         * helpers.c (mono_disassemble_code): Pass -xarch=v9 to assembler on
2022         SPARC64.
2023
2024         * aot.c: Add SPARC64 support. Reorganize patch table to fix alignment
2025         problems.
2026
2027         * mini.h: Bump AOT file version. Some 64 bit fixes.
2028
2029 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2030
2031         * inssel-sparc.brg: Add new rule to avoid register moves.
2032
2033         * inssel.brg: Add ldind_to_load_membase helper function.
2034
2035 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2036
2037         * mini.c: OffsetToStringData intrinsic.
2038         
2039 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2040
2041         * ssa.c: Handle OP_LCOMPARE the same as OP_COMPARE.
2042
2043         * objects.cs exceptions.cs basic.cs basic-long.cs basic-calls.cs: New
2044         regression tests.
2045
2046         * mini-ops.h cpu-sparc.md mini-sparc.h mini-sparc.c exceptions-sparc.c tramp-sparc.c inssel-long.brg: Add SPARC64 support.
2047 Mon Jun 28 18:05:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
2048
2049         * mini.c: reinstated mono_compile_get_interface_var()
2050         on x86, too, since the change breaks the Gtk# build there as well.
2051
2052 Fri Jun 25 17:36:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2053
2054         * driver.c: remove loop from the default optimizations: it seems to
2055         interact badly with some of the other options (see bug #60613).
2056
2057 2004-06-25  Zoltan Varga  <vargaz@freemail.hu>
2058
2059         * mini.c mini-x86.h mini-x86.c: Applied patch from Guenter Feldmann 
2060         (fld@informatik.uni-bremen.de): Add Solaris x86 support.
2061
2062 Tue Jun 22 21:29:11 CEST 2004 Paolo Molaro <lupus@ximian.com>
2063
2064         * mini-ppc.c, cpu-g4.md: small updates to be able to compile
2065         vararg-using methods.
2066
2067 2004-06-21  Martin Baulig  <martin@ximian.com>
2068
2069         * mini/mini-exceptions.c
2070         (mono_handle_exception): Added `gpointer original_ip' argument.
2071         After calling mono_unhandled_exception(), call
2072         mono_debugger_unhandled_exception() and if that returns true,
2073         restore the context and return.
2074
2075 Mon Jun 21 19:26:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2076
2077         * mini-ppc.c: prefer the use of relative branches so
2078         they won't need to be patched in aot code (patch from Patrick Beard).
2079
2080 Mon Jun 21 19:03:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
2081
2082         * aot.c: patch from Patrick Beard to make the output assembly
2083         more correct for the MacOSX assembler. Small tweak to
2084         generate sane images on Linux/PPC, too.
2085
2086 Fri Jun 18 18:24:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2087
2088         * mini.c, mini.h, mini-ppc.c: handle varargs methods with a special
2089         case until bug #59509 is fixed (shows up in #60332).
2090
2091 Tue Jun 15 16:36:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
2092
2093         * mini.c: make sure the needed wrappers are compiled, too, with
2094         precomp.
2095
2096 Mon Jun 14 18:36:08 CEST 2004 Paolo Molaro <lupus@ximian.com>
2097
2098         * driver.c: remove NPTL reference in --version output.
2099
2100 Sun Jun 13 17:25:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2101
2102         * aot.c: patch from Patrick Beard (pcbeard@mac.com) to
2103         generate valid assembly for the Mach-O assembler.
2104
2105 Sun Jun 13 15:59:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
2106
2107         * driver.c: don't include abcrem in the all optimization specifier
2108         since it slows down jit compilation too much for now.
2109
2110 2004-06-12 Ben Maurer  <bmaurer@users.sourceforge.net>
2111
2112         * mini.c: use BIGMUL only if both operands have the same signage.
2113         * iltests.il: Test for bug 60056. (errors related to signage in
2114         BIGMUL).
2115
2116         r=lupus.
2117
2118 Thu Jun 10 16:06:42 CEST 2004 Paolo Molaro <lupus@ximian.com>
2119
2120         * mini.c, aot.c: memory leak fixes.
2121
2122 Tue Jun 8 16:37:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2123
2124         * inssel-long32.brg: implemented a few missing ulong cast opcodes.
2125
2126 Tue Jun 8 15:36:30 CEST 2004 Paolo Molaro <lupus@ximian.com>
2127
2128         * Makefile.am: remove the -static hack completely, it links in
2129         statically glib as well.
2130
2131 Sat Jun 5 16:32:33 CEST 2004 Paolo Molaro <lupus@ximian.com>
2132
2133         * iltests.il, mini.c: fixed bug#59580 in branch optimization.
2134         * exceptions.cs: make it compile with new mcs/csc.
2135
2136 2004-06-03 Massimiliano Mantione <massi@ximian.com>
2137         * cpu-pentium.md basic-float.cs Fixed bug on fpu spills (see bug 54467),
2138         and added relevant test case.
2139
2140 Mon May 31 19:41:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
2141
2142         * mini.c revert Zoltan's fix to bug#58863 on ppc, since it causes
2143         regressions in gtk-sharp.
2144
2145 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2146
2147         * exceptions.cs: New regression tests.
2148
2149         * jit-icalls.c (mono_llmult_ovf): Fix some boundary conditions.
2150
2151 Sat May 29 10:45:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2152
2153         * mini.c: emit castclass/isinst in their own trees (bug #54209/59057).
2154
2155 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2156
2157         * mini-sparc.h (MONO_ARCH_NEED_DIV_CHECK): Define this.
2158
2159         * cpu-sparc.md mini-sparc.c: Add overflow detection to div opcodes.
2160
2161 2004-05-28      Patrik Torstensson <totte@hiddenpeaks.com>
2162
2163         * mini.c (mono_jit_runtime_invoke): Init class in this
2164         method instead of trusting mono_jit_compile_method to
2165         do the work (because wrappers can be in object class)
2166
2167 2004-05-27  Zoltan Varga  <vargaz@freemail.hu>
2168
2169         * mini-sparc.c (mono_arch_output_basic_block): Fix sub.imm.
2170
2171         * basic-long.cs: New regression test.
2172
2173 Thu May 27 15:50:52 CEST 2004 Paolo Molaro <lupus@ximian.com>
2174
2175         * cpu-g4.md, mini-ppc.c: fixes to long add/sub ovf opcodes
2176         and div/rem checks.
2177
2178 Thu May 27 12:36:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2179
2180         * Makefile.am: fix miguel's change to build mono statically against
2181         libmono (track build dependencies).
2182
2183 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2184
2185         * cfold.c: Some glib versions do not have G_MININT32.
2186
2187 2004-05-26  Massimiliano Mantione  <massi@ximian.com>
2188
2189         * mini-x86.c cpu-pentium.md Makefile.am basic-math.cs: Fixed problem
2190         with precision of tan, atan, sin and cos, and implemented related
2191         regressions tests (fixes bug 54467, but one new problem appeared and
2192         is not fixed yet).
2193
2194 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2195
2196         * cfold.c (FOLD_BINOPZ): Avoid division by zero.
2197
2198         * exceptions.cs: Add test for constant folding && division by zero.
2199
2200         * driver.c mini.h mini.c mini-x86.c: Revert most of the previous patch
2201         since driver.c is in libmono too, so the optimization was useless.
2202
2203         * driver.c mini.h mini.c mini-x86.c: Moved the mono_lmf_addr TLS 
2204         variable to driver.c so the compiler can emit more efficient code to
2205         access them.
2206
2207 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2208
2209         * Makefile.am: don't distribute generated inssel.[ch] files.
2210
2211 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2212
2213         * mini.c (mono_jit_compile_method_with_opt): Really emit icall wrappers
2214         into the default appdomain. Fixes #58707.
2215
2216         * jit-icalls.c: Remove the broken approximation for truncl, doing
2217         no conversion is better.
2218
2219         * mini.c (handle_stack_args): Avoid reusing variables for stack slots.
2220         Fixes #58863.
2221
2222 Tue May 25 14:33:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
2223
2224         * mini-ops.h, mini-ppc.c, cpu-g4.md, inssel-ppc.brg: eliminate the use
2225         of the mcrxr instruction which is not available on some processors
2226         even if it's documented to be. Implement add and sub overflow correctly
2227         (still not complete for long unsigned). Speed up icalls a bit.
2228
2229 2004-05-25 13:01 CET Patrik Torstenson <totte@hiddenpeaks.com>
2230
2231         * mini.c (mono_jit_compile_method_with_opt): Make sure that
2232         we run .cctor in the current domain instead of target_domain.
2233         
2234         Fixes bug #58558, .cctor not being called in -O=shared.
2235
2236 Tue May 25 12:46:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2237
2238         * mini-ppc.h, jit-icalls.c: added explicit checks for divide by zero.
2239
2240 2004-05-24 Ben Maurer  <bmaurer@users.sourceforge.net>
2241
2242         * mini-x86.c (EMIT_COND_BRANCH): If an OP_LABEL has an offset
2243         which can be done with an imm8, do it that way.
2244         (mono_arch_output_basic_block): ditto for a jmp
2245         (mono_arch_emit_prolog): Computate maximum offset of a label.
2246
2247 2004-05-24 18:18 CET Patrik Torstenson <totte@hiddenpeaks.com>
2248
2249         * mini-x86.c (mono_arch_local_regalloc): the reg allocator
2250         now tries to allocate prefered physical reg's for virtual
2251         regs. This reduces the number of emited spills/loads with
2252         20-30% on our core assemblies.
2253
2254 Mon May 24 18:21:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
2255
2256         * jit-icalls.c: truncl() is not needed and trunc() is
2257         the correct thing to do anyway (bug #58287).
2258
2259 2004-05-24  Zoltan Varga  <vargaz@freemail.hu>
2260
2261         * mini-sparc.c (mono_arch_flush_icache): Call sync_instruction_memory
2262         if available.
2263
2264 Mon May 24 12:49:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2265
2266         * driver.c: enable loop optimizations by default.
2267
2268 Mon May 24 11:13:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
2269
2270         * mini-x86.c: fix calc of max loop size when aligning loops start.
2271
2272 2004-05-23  Zoltan Varga  <vargaz@freemail.hu>
2273
2274         * ssa.c (mono_ssa_cprop): Allocate carray dynamically instead of on
2275         the stack.
2276
2277 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
2278
2279         * mini-sparc.c (mono_arch_output_basic_block): ADD_IMM and SUB_IMM
2280         should set carry.
2281
2282         * basic-long.cs: Add tests for add/subtract of immediates with carry.
2283
2284         * mini.c exceptions-x86.c: Remove MONO_USE_EXC_TABLES stuff.
2285         
2286         * mini.c (inline_method): Allways inline some wrappers even if the cost
2287         is too large. Fixes #58785.
2288
2289         * mini.c: Add support for MARSHAL_CONV_FTN_DEL.
2290         
2291 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
2292
2293         * mini-sparc.c exceptions-sparc.c: Applied patch from Mark Crichton
2294         (crichton@gimp.org). Beginning of support for sparc/linux.
2295
2296         * mini-sparc.c: Optimize retrieval of LMF address.
2297
2298 Fri May 21 08:00:12 EDT 2004 Paolo Molaro <lupus@ximian.com>
2299
2300         * exceptions-ppc.c:  handle alloca in methods with clauses.
2301
2302 Fri May 21 07:35:30 EDT 2004 Paolo Molaro <lupus@ximian.com>
2303
2304         * mini-ppc.c: cleanups, off-by-one fixes, avoid recursive thunks.
2305
2306 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
2307
2308         * mini.c: Delegate most of the abort signal work to 
2309           mono_thread_request_interruption, which also handles Stop and Suspend
2310           states.
2311
2312 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
2313
2314         * mini.c mini.h: Allow inlining of icall wrappers if the backend 
2315         supports the save/restore lmf opcodes.
2316
2317 2004-05-19  Zoltan Varga  <vargaz@freemail.hu>
2318
2319         * mini-x86.c (mono_arch_setup_jit_tls_data): Handle code generated
2320         by gcc-3.4 as well.
2321
2322         * mini-x86.h mini-x86.c tramp-x86.c: Optimize lmf restoring code.
2323
2324 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
2325
2326         * mini.h mini.c (mini_method_compile): Only run abc removal pass on 
2327         methods which contain array accesses.
2328
2329         * mini.c (CEE_LDTOKEN): Handle this instruction correctly on bb
2330         boundaries. Fixes #58537.
2331
2332         * iltests.il: Add regression test for #58537.
2333
2334 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
2335
2336         * mini-x86.c (mono_arch_local_regalloc): Last part of
2337         fix for bug #58633 (releasing register to early).
2338
2339 2004-05-18  Miguel de Icaza  <miguel@ximian.com>
2340
2341         * basic-long.cs: Add new regression test.
2342
2343 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
2344
2345         * mini-x86.c (mono_arch_local_regalloc): Avoid releasing a
2346         register too early on the chain.
2347
2348 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
2349
2350         * mini.c (create_helper_signature): Use a helper function to reduce
2351         the code which needs to be written. Also set the calling convention of
2352         icalls on windows. Fixes #57840.
2353
2354 Tue May 18 11:05:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
2355
2356         * mini.h, exceptions-x86.c, exceptions-sparc.c, exceptions-s390.c,
2357         exceptions-ppc.c: added helper function to get the instruction address
2358         from a signal handler context.
2359
2360 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2361
2362         * helpers.c: use g_get_tmp_dir. Invokes happyness 
2363         from gonzalo.
2364
2365 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2366
2367         * helpers.c: Add new env variable to pass args to objdump.
2368         Specifically for those of us who love -Mintel. r=miguel, gonzalo.
2369
2370 2004-05-17  Radek Doulik  <rodo@ximian.com>
2371
2372         * Makefile.am (common_sources): added abcremoval.h so it get
2373         disted and daily mono packages on go-mono.com will build again
2374
2375 2004-05-17  Massimiliano Mantione  <massi@ximian.com>
2376
2377         * abcremoval.c: Fixed coding style, added copyright header.
2378
2379         * abcremoval.h: Fixed style and moved prototype to mini.h, added copyright header.
2380
2381         * mini.h: Added prototype for abc removal main function.
2382
2383         * build_relations_propagation_table.pl: Added copyright header.
2384
2385 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
2386
2387         * basic-long.cs: reg test for complex ceq_long bug.
2388
2389 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
2390
2391         * mini-x86.c (mono_arch_local_regalloc): Correctly free 
2392         reg in long and clob case (bug #58343). Fixed/added comments.
2393
2394 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
2395
2396         * mini.c (mono_jit_runtime_invoke): Follow new convention
2397         of calling the invoke method with an function pointer.
2398
2399 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
2400
2401         * ChangeLog: Fix author of memory leak patch.
2402
2403 Fri May 14 15:13:06 CEST 2004 Paolo Molaro <lupus@ximian.com>
2404
2405         * Makefile.am: fix make dist as well...
2406
2407
2408 2004-05-14  Massimiliano Mantione  <massi@ximian.com>
2409
2410         * cfold.c: Made so that conversions from pointer to int4 are no-ops
2411         on archs where pointers are 4 bytes long.
2412
2413         * Makefile.am: Added abcremoval.c source file.
2414
2415         * abcremoval.c: Added abcremoval.c.
2416
2417         * abcremoval.h: Added abcremoval.h.
2418
2419         * build_relations_propagation_table.pl: Added build_relations_propagation_table.pl.
2420
2421         * inssel.brg: Enabled bounds check removal.
2422
2423         * mini.c: Added support for abcrem optimization.
2424
2425         * mini.h: Added abcrem optimization label.
2426
2427         * driver.c: Added support for abcrem optimization.
2428
2429         * propagated_relations_table.def: Added propagated_relations_table.def.
2430
2431 Fri May 14 14:30:13 CEST 2004 Paolo Molaro <lupus@ximian.com>
2432
2433         * mini.c, cfold.c: fix style.
2434
2435 Fri May 14 14:28:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2436
2437         * mini.c: handle issue with the low-level implementation of
2438         some long opcodes (bug #54209).
2439
2440 2004-05-13 Ben Maurer  <bmaurer@users.sourceforge.net>
2441
2442         * basic.cs: test for my new cmov stuff.
2443
2444 2004-05-13      Patrik Torstensson
2445
2446         * mini-x86.c: added OP_X86_COMPARE_MEMBASE_IMM peephole
2447         opt and added peephole documentation.
2448
2449 Thu May 13 11:41:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
2450
2451         * tramp-ppc.c: rewrote the generic trampoline code.
2452
2453 2004-05-11      Patrik Torstensson
2454
2455         * mini-x86.c: optimize long shl/shr asm code (one less branch)
2456
2457 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
2458
2459         * basic.cs basic-long.cs objects.cs: Make these compile under MS csc.
2460
2461         * mini.h mini.c dominators.c: Applied patch from Derek Woo
2462         (derek@eecg.toronto.edu): Fix memory leaks in loop optimizations.
2463
2464         * mini.c: Add new icalls for AsAny marshalling.
2465
2466 Tue May 11 16:00:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
2467
2468         * tramp-ppc.c, mini-ppc.c: more cleanups.
2469
2470 2004-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2471
2472         * mini.c: no warnings.
2473
2474 Tue May 11 13:59:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2475
2476         * mini-ppc.c, mini.c: use mono_resolve_patch_target ().
2477
2478 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
2479
2480         * mini.c: In the thread abort signal handler, if the thread is in the
2481         process of being stoped, don't throw the Abort exception, just stop the
2482         thread.
2483
2484 Tue May 11 12:15:24 CEST 2004 Paolo Molaro <lupus@ximian.com>
2485
2486         * tramp-ppc.c: removed old code.
2487
2488 Tue May 11 12:02:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2489
2490         * mini.h, mini-ppc.c, cfold.c: export mono_is_power_of_two().
2491         do some simple speed optimizations on ppc.
2492
2493 Mon May 10 17:21:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
2494
2495         * mini-ppc.c, cpu-g4.md: fixes to handle large stack frames
2496         and large offsets in load/store.
2497
2498 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
2499
2500         * mini-x86.c (mono_arch_local_regalloc): Remove the previous fix, since
2501         it causes regressions.
2502
2503 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
2504
2505         * mini-sparc.c: Fix vararg support + add beginnings of sigaltstack
2506         support.
2507
2508 Fri May 7 13:25:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2509
2510         * jit-icalls.c: remove warnings.
2511         * inssel-x86.brg, inssel.brg, mini-x86.c, cfold.c: some simple
2512         speedups for unsafe code.
2513
2514 2004-05-07 Ben Maurer  <bmaurer@users.sourceforge.net>
2515
2516         * inssel.brg: Optimize Stind.[ui][12]. r=zoltan.
2517
2518 2004-05-06  Zoltan Varga  <vargaz@freemail.hu>
2519
2520         * basic-calls.cs: Add new regression test.
2521
2522         * mini.c (mono_runtime_install_handlers): Use SA_ONSTACK since it is
2523         more portable.
2524
2525         * mini.c (mono_method_to_ir): Handle opcode emulation for *_OVF opcodes.
2526
2527         * mini-x86.c (mono_arch_local_regalloc): Free new_dest register when it
2528         is no longer used.
2529
2530 2004-05-06      Patrik Torstensson
2531
2532         * mini-x86.[c|h], inssel-x86.brg, cpu-pentium.md, mini.c: enabled
2533         long reg allocation in any reg (not only eax:edx) and implemented 
2534         long shl/shr ops in asm instead of helpers.
2535
2536 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
2537
2538         * mini-sparc.h: Fix warnings.
2539
2540         * exceptions-sparc.c (mono_arch_find_jit_info): Pop unused lfm off the
2541         stack.
2542
2543         * mini-exceptions.c (mono_handle_exception): Call the filter in a
2544         separate statement for clarity.
2545
2546         * mini-sparc.c: Update status.
2547
2548 2004-05-04  Zoltan Varga  <vargaz@freemail.hu>
2549
2550         * mini-exceptions.c (ves_icall_get_frame_info): Flush register windows
2551         here.
2552
2553 Mon May 3 22:58:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
2554
2555         * inssel-ppc.brg: another small pre-release workaround:
2556         we don't do overflow detection for long_sub_un.
2557
2558 Sun May 2 20:12:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2559
2560         * mini.c, mini-ops, inssel-long32.brg: speedup ulong >> 32
2561         (also works around a weird ppc bug: 57957).
2562
2563 Sat May 1 16:56:10 EDT 2004 Paolo Molaro <lupus@ximian.com>
2564
2565         * tramp-ppc.c: trampoline fixes.
2566
2567 Fri Apr 30 15:54:26 EDT 2004    Paolo Molaro <lupus@ximian.com>
2568
2569         * mini-ppc.c: fixed typos.
2570
2571 Thu Apr 29 20:15:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2572
2573         * mini-ppc.c, exceptions-ppc.c: more code saves registers
2574         at the top of the stack. Fixed typos. Use a frame registers
2575         for all the methods with exception clauses.
2576
2577 Thu Apr 29 18:52:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
2578
2579         * exceptions-ppc.c: restore fp registers.
2580
2581 Thu Apr 29 18:26:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
2582
2583         * mini-ppc.c, exceptions-ppc.c: save the registers in reverse
2584         order from the stack top (moved the stack room to save the
2585         return value for trace after the param area). Fixed corruption
2586         in restoring registers on unwind.
2587
2588 Thu Apr 29 16:47:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2589
2590         * mini-ppc.c, cpu-g4.md: fixed unisgned -> double conversion.
2591
2592 Thu Apr 29 13:50:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
2593
2594         * exceptions-ppc.c, mini-ppc.h, mini-ppc.c: fixed localloc
2595         and prolog/epilog for methods that use it. Allow
2596         enough param area room for varargs methods. Fix miguel's
2597         breakage in exception handling.
2598
2599 Thu Apr 29 12:06:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
2600
2601         * Makefile.am: run genmdesc only on current arch.
2602
2603 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2604
2605         * exceptions-x86.c:
2606         * mini-x86.h: fix the build on windows.
2607
2608 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
2609
2610         * 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.
2611
2612         * exceptions-sparc.c exceptions-ppc.c exceptions-s390.c mini-ppc.h mini-s390.h mini-sparc.h: Fix up ports after changes.
2613
2614         * mini-exceptions.c: New file.
2615         
2616         * mini.c mini-exceptions.c mini-x86.h exceptions-x86.c Makefile.am:
2617         Move some parts of the x86 exception handling code to an 
2618         arch-independent file so it can be shared with other ports.
2619
2620 Tue Apr 27 12:15:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2621
2622         * trace.c, cpu-g4.md, inssel-ppc.brg, mini-ppc.c: some fixes for FP code.
2623
2624 2004-04-26  David Waite  <mass@akuma.org>
2625
2626         * driver.c: remove comma from end of enumeration declaration
2627
2628 2004-04-26  Jackson Harper  <jackson@ximian.com>
2629
2630         * driver.c: parse config file before loading first assembly. This
2631         allows the user gac to be enabled/disabled. 
2632         
2633 2004-04-23  Miguel de Icaza  <miguel@ximian.com>
2634
2635         * mini-ppc.c (ppc_patch): Replaced the branch code patching with a
2636         simpler mechanism: we do not care what is encoded initially
2637         (branch absolute or relative), we care about the code and its
2638         target.  I kept the old code for reference for now.
2639
2640         The new code tries first to determine if the jump is anywhere in
2641         the -/+32 absolute meg range, if it succeeds, it encodes using the
2642         absolute branch;  If not, it tried to find something in the
2643         relative range, if not, it uses the handle_thunk code. 
2644
2645 Fri Apr 23 14:20:40 EDT 2004 Paolo Molaro <lupus@ximian.com>
2646
2647         * exceptions-ppc.c: use the correct ip register on macosx.
2648
2649 Thu Apr 22 13:23:16 EDT 2004 Paolo Molaro <lupus@ximian.com>
2650
2651         * exceptions.c, mini.c, mini-ppc.h: adapt code to macosx.
2652
2653 Thu Apr 22 18:08:37 CEST 2004 Paolo Molaro <lupus@ximian.com>
2654
2655         * mini-ppc.c, cpu-g4.md: made the branch macros more flexible.
2656         Raise exception on integer divide by zero by hand since the hw
2657         doesn't support it. Handle NaNs in FP compares.
2658
2659 Thu Apr 22 16:10:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2660
2661         * exceptions-ppc.c, mini-ppc.h, mini.c: simplified some
2662         code reducing duplication between the platforms and enabled
2663         signal exception handling (on linux for now).
2664
2665 Wed Apr 21 12:27:48 EDT 2004 Paolo Molaro <lupus@ximian.com>
2666
2667         * exceptions-ppc.c: more macosx support.
2668
2669 Wed Apr 21 16:38:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2670
2671         * mini-ppc.h, mini-ppc.c, cpu-g4.md: enable bigmul optimization.
2672
2673 Wed Apr 21 16:20:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
2674
2675         * mini.h, mini-ppc.c, cpu-g4.md: support for implicit exceptions.
2676
2677 2004-04-19 Ben Maurer  <bmaurer@users.sourceforge.net>
2678
2679         * iltests.il: more tests.
2680
2681 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
2682
2683         * mini-*.c (mono_arch_get_allocatable_int_vars): Skip written-only
2684         vars as well.
2685
2686 Mon Apr 19 19:39:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2687
2688         * mini-ppc.c: some fixes to bootstrap mcs/corlib/etc.
2689
2690 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
2691
2692         * liveness.c: Mark variables as volatile in all basic blocks reachable
2693         from exception clauses.
2694
2695 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
2696
2697         * exceptions.cs (test_0_rethow_stacktrace): Make this work with
2698         inlining.
2699
2700 2004-04-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2701
2702         * iltests.il, basic.cs: more tests for regalloc.
2703
2704 2004-04-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2705
2706         * iltests.il: Some tests for register allocation modifications
2707         I have locally.
2708
2709 2004-04-16  Zoltan Varga  <vargaz@freemail.hu>
2710
2711         * exceptions.cs: Add regression test for bug #56782.
2712
2713         * exceptions-*.c (mono_arch_handle_exception): Do not overwrite the
2714         original stack trace if an exception is rethrown. Fixes #56782. Oh,
2715         the beauty of fixing the same thing in 5 different files...
2716
2717 2004-04-15  Zoltan Varga  <vargaz@freemail.hu>
2718
2719         * mini.c (mono_method_to_ir): Do not compute coverage for inlined
2720         methods.
2721
2722 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
2723
2724         * mini.c: Add support for STRWLPARRAY marshalling convention.
2725
2726 Wed Apr 14 18:15:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2727
2728         * exceptions-ppc.c: missing fixes in mono_jit_walk_stack (need
2729         to init the context to setup the regs pointer).
2730
2731 Wed Apr 14 17:59:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
2732
2733         * exceptions-ppc.c: more exceptions work.
2734
2735 Wed Apr 14 17:46:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2736
2737         * mini.c: avoid reusing the same MonoInst on multiple trees: this is
2738         not allowed.
2739
2740 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
2741
2742         * inssel-x86.brg (reg): Add new rules for add, sub and mul that
2743         can use the memory directly.
2744
2745         * cpu-pentium.md: Update documentation from a post from Zoltan. 
2746
2747         add x86_add_membase, x86_sub_membase, x86_mul_membase
2748
2749 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
2750
2751         * mini-ppc.c: Remove unused definitions FLOAT_REGS and
2752         GENERAL_REGS they were also hardcoded for all PPC ports.
2753
2754         (add_general): Use PPC_NUM_REG_ARGS instead of GENERAL_REGS.
2755
2756         Remove hard-coded limit for floating point registers, use
2757         PPC_LAST_FPARG_REG instead in MONO_TYPE_R4 and MONO_TYPE_R8.
2758
2759         Notice that in MacOS X calling conventions you can fit a lot more
2760         floating point values in registers, so I should update the PInvoke
2761         test to excercise the passing of floating point values on the
2762         stack (currently broken).
2763         
2764 2004-04-06  Miguel de Icaza  <miguel@ximian.com>
2765
2766         * tramp-ppc.c (create_trampoline_code): Added
2767         JUMP_TRAMPOLINE_SIZE. 
2768         (ppc_magic_trampoline): Follow the pattern from
2769         x86_magic_trampoline: if code is set to zero, return. 
2770         (create_trampoline_code): Always pass MonoMethod to the jump
2771         trampoline, before it was passing a null.
2772         (mono_arch_create_jump_trampoline): Implement the jump stub, could
2773         share the code with mono_arch_create_jit_trampoline. 
2774
2775         * mini-ppc.c (mono_arch_output_basic_block): CEE_JMP opcode
2776         implemented.
2777         (mono_arch_patch_code): MONO_PATCH_INFO_METHOD_JUMP patch type
2778         implemented.  
2779
2780         * cpu-g4.md: Added length for jmp instruction, the worst case
2781         scenario is 92 bytes (4 mandatory bytes, potential 19 registers
2782         for save_lmf).
2783
2784 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
2785
2786         * aot.c (mono_compile_assembly): Add back unlink removed by mistake.
2787
2788 2004-04-07  Zoltan Varga  <vargaz@freemail.hu>
2789
2790         * mini.c: Only set bblock->real_offset when adding a new bblock, and
2791         before each IL instruction.
2792
2793         * mini.c (CEE_BOX): Fix warnings.
2794
2795 2004-04-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2796
2797         * mini.c: removed a few unused vars and extra whitespace.
2798
2799 2004-04-05 Ben Maurer  <bmaurer@users.sourceforge.net>
2800
2801         * inssel.brg (MONO_EMIT_BOUNDS_CHECK): a new macro to emit bounds
2802         checks.
2803         (MONO_EMIT_BOUNDS_CHECK_IMM): the above, but when you know the
2804         index.
2805         (OP_GETCHR): use the above
2806         (CEE_LDELEMA): use the above.
2807
2808         * inseel-x86.brg (MONO_EMIT_BOUNDS_CHECK): a faster and smaller
2809         version of the generic impl.
2810         (MONO_EMIT_BOUNDS_CHECK_IMM): the same
2811         (CEE_LDELEMA): use the above.
2812
2813 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
2814
2815         * inssel-long32.brg (CEE_CONV_OVF_I8): Sign extend the i4 value to i8.
2816         Fixes #56317.
2817
2818         * iltests.il: Added new regression test for #56317.
2819
2820 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
2821
2822         * mini-x86.c (mono_arch_setup_jit_tls_data): Use pthread_attr_get_np
2823         under NetBSD. Fixes #56450.
2824
2825         * liveness.c (update_gen_kill_set): Fix previous patch.
2826
2827 2004-04-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2828
2829         * mini-x86.h: SA_STACK defined as SA_ONSTACK. Fixed build under NetBSD.
2830
2831 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
2832
2833         * mini.c (mono_method_to_ir): Avoid handle_loaded_temps in
2834         ldsfld and ldsflda.
2835
2836         * inssel-sparc.brg: Add more optimizations.
2837
2838         * mini-sparc.c: Replace multiply/divide with shifts if possible.
2839
2840 2004-04-01  Martin Baulig  <martin@ximian.com>
2841
2842         * mini.c (handle_box): New static function; moved the
2843         implementation of CEE_BOX here.
2844         (mono_method_to_ir): Added `constrained_call' variable.
2845         (mono_method_to_ir:CEE_CONSTRAINED_): Set it.
2846         (mono_method_to_ir:CEE_CALL): If `constrained_call' is set, use
2847         mono_method_get_constrained() to get the method.
2848
2849 2004-04-01  Martin Baulig  <martin@ximian.com>
2850
2851         * mini.c (TYPE_PARAM_TO_TYPE, TYPE_PARAM_TO_CLASS): Removed.
2852         (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): Removed.
2853         (mono_method_to_ir): We don't need these macros anymore since
2854         mono_class_get_full() already takes care of it. 
2855
2856 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2857
2858         * aot.c: set aot_verbose to 0, fixed format string that caused sigsegv,
2859         use @function (as doesn't accept #function here) and check the return
2860         value of system and stop if fails.
2861
2862 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2863
2864         * mini.c: set the timeout to 2s when calling mono_domain_finalize.
2865
2866 2004-03-31  Zoltan Varga  <vargaz@freemail.hu>
2867
2868         * mini-ppc.c (mono_arch_patch_code): Fix ppc build.
2869
2870         * inssel-sparc.brg mini-sparc.c aot.c: Implement AOT support.
2871
2872         * inssel-long32.brg (OP_LNEG): Use ADC instead of ADD here. Fixes
2873         #56223.
2874
2875         * basic-long.cs: Add test for negation of Int64.MinValue.
2876
2877 2004-03-30  Zoltan Varga  <vargaz@freemail.hu>
2878
2879         * mini-sparc.c: Update status.
2880
2881         * mini-sparc.c tramp-sparc.c: Save lmf in trampolines.
2882
2883         * exceptions-sparc.c: Fix return value in filters.
2884
2885         * inssel-sparc.brg: Fix register allocation in some rules.
2886
2887 2004-03-28  Martin Baulig  <martin@ximian.com>
2888
2889         * mini.c (mmono_method_to_ir): In CEE_STELEM, do a handle_stobj()
2890         if neccessary.  
2891
2892 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
2893
2894         * mini-x86.c (mono_arch_patch_code): Fix warnings.
2895         
2896         * mini-x86.c (mono_arch_output_basic_block): Fix CEE_MUL_OVF_UN if 
2897         dreg is not EAX. Thanks to Willibard Krenn for spotting this. Also
2898         remove unused conv_u4 opcode.
2899
2900         * mini-x86.c: Remove valgrind workaround since it slows down things
2901         even when mono is not run under valgrind.
2902
2903 2004-03-26  Zoltan Varga  <vargaz@freemail.hu>
2904
2905         * mini-sparc.c: Update status.
2906
2907         * inssel-sparc.brg: Add some optimizations.
2908
2909         * inssel-sparc.brg mini-sparc.c: Rework branch instructions to allow
2910         future delay slot filling. Add support for varargs, tail calls and JMP.
2911
2912         * inssel.brg mini-ops.h mini.c: Use OP_REFANYTYPE instead of 
2913         CEE_REFANYTYPE, since CEE_REFANYTYPE needs a prefix to be unique.
2914
2915         * inssel.brg: Fix register allocation in OP_ARGLIST.
2916
2917         * inssel.brg: Fix warnings.
2918
2919 2004-03-25  Martin Baulig  <martin@ximian.com>
2920
2921         * mini.c (inflate_generic_field): Removed.
2922         (mini_get_method): Removed, use mono_get_method_full(),
2923         (mini_get_class): Removed, use mono_class_get_full().
2924         (mono_method_to_ir): Pass our generic context to
2925         mono_field_from_token().        
2926
2927 2004-03-25  Martin Baulig  <martin@ximian.com>
2928
2929         * mini.c (mini_get_class): Take a `MonoGenericContext *' instead
2930         of a `MonoMethod *'.
2931         (mini_get_method): Take a `MonoGenericContext *' instead
2932         of a `MonoMethod *'.
2933         (TYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_TYPE): mono_method_to_ir() has
2934         a new local variable called `generic_context' which holds the
2935         current `MonoGenericContext *'; use it to lookup things.
2936
2937 2004-03-24  Martin Baulig  <martin@ximian.com>
2938
2939         * mini.c (mini_get_class): New static method; if we're inside a
2940         generic instance, inflate the class if neccessary.
2941         (mono_method_to_ir): Use mini_get_class() instead of mono_class_get().
2942
2943 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
2944
2945         * iltests.il: New regression test for #55976.
2946
2947         * mini.c (mono_method_to_ir): Empty the stack in endfinally. Fixes
2948         #55976.
2949
2950 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
2951
2952         * exceptions-sparc.c (mono_sparc_handle_exception): Remove debugging
2953         output.
2954
2955 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
2956
2957         * liveness.c: Consider SSA stores as well as loads when making vars
2958         volatile.
2959
2960         * exceptions.cs: New regression tests for register allocation.
2961         
2962 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
2963
2964         * mini-ppc.c, tramp-ppc.c: Added lock for accessing the domain code manager.
2965         * mini.c: Removed domain lock from mono_jit_compile_method_with_opt. Use
2966           domain lock only to protect puntual access to data structures.
2967           Added access lock for sighash, jit_icall_hash_name, 
2968           jit_icall_hash_addr and domain->code_mp.
2969
2970 2004-03-20  Zoltan Varga  <vargaz@freemail.hu>
2971
2972         * driver.c: Print SIGSEGV handling method.
2973
2974         * mini-x86.c (mono_arch_free_jit_tls_data): Add missing ifdef.
2975
2976         * mini.c (setup_jit_tls_data): Handle case when this is called
2977         multiple times for a thread.
2978
2979         * mini-x86.c cpu-pentium.md: Fix floating point branch opcodes so fbxx 
2980         is different from fbxx_un. Fixes #54303. Also use constants instead of
2981         magic numbers in a lot of places.
2982
2983 2004-03-19  Zoltan Varga  <vargaz@freemail.hu>
2984
2985         * exceptions.cs: Fix cctor test when --regression is used.
2986
2987 Thu Mar 18 19:57:56 CET 2004 Paolo Molaro <lupus@ximian.com>
2988
2989         * mini-ppc.c, exceptions-ppc.c: basic exceptions support 
2990         for Linux/ppc.
2991
2992 Thu Mar 18 19:56:19 CET 2004 Paolo Molaro <lupus@ximian.com>
2993
2994         * inssel-ppc.brg: fixed register assignments for some rules.
2995
2996 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
2997
2998         * exceptions.cs: Add test for exceptions in static constructors.
2999
3000         * mini.c (mono_jit_compile_method_with_out): Move the calling of
3001         static constructors outside the domain lock. Fixes #55720.
3002
3003 2004-03-17  Martin Baulig  <martin@ximian.com>
3004
3005         * mini.c (get_generic_field_inst): Removed, this'll never happen.
3006         (inflate_generic_field): Take the `MonoMethod *' instead of the
3007         `MonoClass *' and added support for generic method.
3008         (mono_method_to_ir): In CEE_LDSFLD and CEE_STSFLD, assert we never
3009         have a `field->parent->gen_params', only inflate the field if it's
3010         an open constructed type.
3011
3012 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
3013
3014         * exceptions-x86.c (mono_arch_handle_exception): Allocate a new
3015         exception object instead of the preconstructed ones.
3016
3017 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3018
3019         * mini.c: reverted changed to sigsegv_signal_handler commited
3020         accidentally in the previous patch.
3021
3022 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3023
3024         * mini.c:
3025         (mono_method_to_ir): CEE_CALLVIRT, abort if no method. It hanged when
3026         running --aot with an old assembly.
3027
3028 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
3029
3030         * mini-sparc.c (mono_arch_instrument_epilog): Fix handling of floating
3031         point values.
3032
3033         * mini-sparc.c: Add support for v9 branches with prediction.
3034
3035 2004-03-15  Bernie Solomon  <bernard@ugsolutions.com>
3036
3037         * mini.c (mini_init): #warning is GNUC only
3038
3039         * mini-sparc.h: implement __builtin_frame_address
3040         and __builtin_return_address for Sun C compiler
3041
3042 2004-03-15  Zoltan Varga  <vargaz@freemail.hu>
3043
3044         * exceptions-sparc.c (mono_arch_has_unwind_info): Add missing function.
3045
3046 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
3047
3048         * basic-calls.cs: Add test for unaligned byref long argument passing.
3049
3050         * mini-ops.h: Add sparcv9 compare and branch instructions.
3051
3052         * inssel-sparc.brg mini-sparc.h mini-sparc.c cpu-sparc.md: Use some
3053         v9 instructions if we have a v9 cpu.
3054
3055         * mini-sparc.c (mono_arch_get_global_int_regs): Use unused input
3056         registers for global allocation.
3057
3058         * exceptions-sparc.c: Fixes.
3059         
3060 2004-03-11  Zoltan Varga  <vargaz@freemail.hu>
3061
3062         * liveness.c (mono_analyze_liveness): Optimized version.
3063
3064         * inssel-sparc.brg cpu-sparc.md: Ongoing sparc work.
3065
3066         * mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Ongoing
3067         sparc work.
3068
3069         * basic-float.cs basic-calls.cs: New regression tests.
3070
3071 2004-03-10  Zoltan Varga  <vargaz@freemail.hu>
3072
3073         * mini-x86.h: Define SIGSEGV_ON_ALTSTACK only if we have a working
3074         sigaltstack implementation.
3075
3076         * mini-x86.c (mono_arch_setup_jit_tls_data): Fix previous patch.
3077         
3078         * mini-x86.c (mono_arch_setup_jit_tls_data): Turn off the sigaltstack
3079         stuff if SIGSEGV_ON_ALTSTACK is not defined.
3080
3081 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
3082
3083         * mini.c: Fix warnings.
3084         
3085         * mini.c (mono_resolve_patch_target): New function which contains the
3086         arch independent part of the patching process.
3087
3088         * mini-x86.c (mono_arch_patch_code): Move arch independent parts of the
3089         patching code to a separate function.
3090
3091 2004-03-09  Bernie Solomon  <bernard@ugsolutions.com>
3092
3093         * mini.c (add_signal_handler): ifdef out on Windows
3094
3095 2004-03-08  Zoltan Varga  <vargaz@freemail.hu>
3096
3097         * mini-sparc.h mini-sparc.c inssel-sparc.brg exceptions-sparc.c 
3098         cpu-sparc.md: Add exception handling support + other fixes.
3099
3100         * driver.c: Print --help output to stdout. Fixes #55261. Also fix
3101         typed GC detection in --version.
3102
3103         * basic.cs exceptions.cs: New regression tests.
3104
3105         * mini.h mini-x86.h mini-ppc.h: Add MonoCompileArch structure where
3106         the arch specific code can store data during a compilation.
3107
3108         * mini-ops.h: Add OP_SETFRET.
3109
3110         * mini.c (mini_get_ldelema_ins): Instead of allways calling the same
3111         function, register a separate icall for each arity, so the icalls can
3112         get a wrapper.
3113         
3114         * mini.c (mono_print_tree): Print negative offsets in a more readable
3115         form.
3116         
3117         * mini.c: Make signal handling work on sparc.
3118         
3119         * mini.c (mini_init): Add emulation for lconv_to_r8_un.
3120
3121         * inssel-long32.brg: Fix OP_LSUB_OVF_UN rule.
3122
3123         * jit-icalls.c: Emulate truncl by aintl on solaris.
3124
3125         * jit-icalls.c (mono_lconv_to_r8_un): New icall emulation function.
3126
3127 2004-03-05  Zoltan Varga  <vargaz@freemail.hu>
3128
3129         * mini.c (mini_init): fconv_to_ovf can raise exceptions.
3130
3131 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
3132
3133         * mini.c: In CEE_ISINST and CEE_CASTCLASS, if the type is an interface or
3134         a MarshalByRef type, inline a method that performs the check, taking into
3135         account that the object can be a proxy. Also implemented tow new opcodes:
3136         CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
3137         * inssel.brg: Implemented two new opcodes, mini-ops.h: OP_CISINST and 
3138         OP_CCASTCLASS, which implement CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
3139
3140 Tue Mar 2 17:23:48 CET 2004 Paolo Molaro <lupus@ximian.com>
3141
3142         * mini-ppc.c: if a relative branch displacement is too big
3143         but it points to and area reachable with an absolute branch, 
3144         avoid the thunks.
3145
3146 Tue Mar 2 16:59:40 CET 2004 Paolo Molaro <lupus@ximian.com>
3147
3148         * mini.c: optimize small copies in cpblk.
3149
3150 2004-03-01  Zoltan Varga  <vargaz@freemail.hu>
3151
3152         * basic-calls.cs basic-float.cs: New regression tests.
3153
3154         * mini-sparc.c inssel-sparc.brg mini-ops.h: Access local variables at 
3155         negative offsets from %fp. Implement localloc. Fix local register 
3156         allocation. Fix the case when the this argument needs to be saved to
3157         the stack. Implement some missing opcodes.
3158
3159 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
3160
3161         * mini.c (mini_method_compile): Reenable global regalloc in methods
3162         with exception handlers.
3163
3164         * linear-scan.c (mono_varlist_sort): Fix warning.
3165
3166         * linear-scan.c (mono_linear_scan): Fix computation of used_regs.
3167
3168         * mini-x86.c (mono_arch_regalloc_cost): Reenable precise computation of
3169         regalloc costs.
3170
3171         * liveness.c: Make all variables uses in exception clauses volatile, to
3172         prevent them from being allocated to registers. Fixes #42136.
3173
3174 2004-02-25  Zoltan Varga  <vargaz@freemail.hu>
3175
3176         * mini-x86.c (mono_arch_regalloc_cost): Revert this change since it
3177         causes regressions.
3178
3179         * mini.h linear-scan.c mini-x86.c mini-sparc.c mini-ppc.c: Add 'cfg'
3180         argument to mono_arch_regalloc_cost.
3181
3182         * mini-x86.c (mono_arch_regalloc_cost): Compute regalloc costs 
3183         precisely.
3184
3185 2004-02-24  Zoltan Varga  <vargaz@freemail.hu>
3186
3187         * mini.h mini-x86.c mini-ppc.c mini-sparc.c linear-scan.c: 
3188         Make the cost of allocating a variable to a register arch dependent.
3189
3190         * basic-calls.cs: Fix compilation of tests.
3191         
3192         * mini.h mini.c tramp-x86.c mini-x86.c: Add mono_running_on_valgrind ()
3193         helper function to cut back on the number of #ifdefs needed.
3194
3195         * mini-ppc.c: Fix compilation.
3196
3197         * basic-calls.cs: New regression tests.
3198
3199         * mini-sparc.c (mono_sparc_is_virtual_call): New helper function.
3200
3201         * tramp-sparc.c (create_specific_trampoline): Use g5 register instead
3202         of l0 since that is callee saved.
3203
3204         * tramp-sparc.c (sparc_magic_trampoline): Apply unbox trampoline only
3205         to virtual calls.
3206
3207         * mini-sparc.c: Ongoing work + flag virtual calls with a special kind 
3208         of delay instruction.
3209
3210         * inssel.brg (OP_CHECK_THIS): Set tree->sreg1 and dreg correctly.
3211
3212         * mini.h (MonoCallInst): Add 'virtual' flag.
3213
3214         * inssel.brg (mini_emit_virtual_call): Set 'virtual' flag.
3215
3216 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
3217
3218         * *.cs: New regression tests.
3219
3220         * mini-sparc.c inssel-sparc.brg: Update after latest changes. Ongoing sparc 
3221         work.
3222
3223         * mini.c (mono_runtime_install_handlers): Fix build.
3224
3225         * mini.h (MonoJitTlsData): Add 'stack_size', 'signal_stack' and
3226         'signal_stack_size' members.
3227
3228         * mini.h mini.c mini-x86.h mini-x86.c: Run sigsegv handlers on an 
3229         alternate signal stack.
3230
3231         * exceptions-x86.c: Add stack overflow handling.
3232
3233         * mini.h mini.c mini-x86.c mini-ppc.c trace.h trace.c: Move tracing 
3234         functions to arch independent code.
3235
3236         * mini.c (mono_print_tree): Print more detailed info for load_membase
3237         opcodes.
3238         
3239 2004-02-23  Martin Baulig  <martin@ximian.com>
3240
3241         * mini.c (mini_get_method): Set `gmethod->generic_inst'.
3242
3243 Sun Feb 22 22:25:19 CET 2004 Paolo Molaro <lupus@ximian.com>
3244
3245         * mini-x86.c: fixed reg allocation for div/rem.
3246
3247 2004-02-22  Miguel de Icaza  <miguel@ximian.com>
3248
3249         * driver.c (mono_main): Report some configuratio options on --version.
3250
3251 Fri Feb 20 11:01:44 PST 2004 Paolo Molaro <lupus@ximian.com>
3252
3253         * mini-ppc.c: fixed clt.un, cgt.un. Optimized calls to functions
3254         low in the address space. Correctly flush memory in thunks where we
3255         output native code.
3256
3257 2004-02-20  Martin Baulig  <martin@ximian.com>
3258
3259         * mini.c (mini_get_method): New static method; inflate all generic
3260         methods and methods in open generic instances.
3261         (mono_method_to_ir): Use mini_get_method() instead of mono_get_method().
3262         (ret_type_to_call_opcode): Added support for MONO_TYPE_GENERICINST.
3263
3264 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
3265
3266         * mini-sparc.c (mono_arch_patch_code): Update after domain->code_mp changes.
3267
3268         * tramp-sparc.c (mono_arch_create_jump_trampoline): Set ji->method.
3269
3270 2004-02-19  Bernie Solomon  <bernard@ugsolutions.com>
3271
3272         * helpers.c (mono_disassemble_code): use Sun's dis if not using gcc
3273
3274         * mini-sparc.c (flushi mono_arch_output_basic_block): make
3275         it compile using Sun's compiler.
3276
3277 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
3278
3279         * 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.
3280
3281         * basic-calls.cs basic-float.cs basic-long.cs objects.cs: New regression tests.
3282
3283 Tue Feb 17 21:41:20 CET 2004 Paolo Molaro <lupus@ximian.com>
3284
3285         * aot.c, mini-x86.c, mini.c: use the code manager instead of a mempool to hold native
3286         code.
3287         * mini-ppc.c: handle calls outside of the allowed range with thunks
3288         allocated using the code manager.
3289         * tramp-ppc.c: use the code manager to hold generated native code.
3290         Fixed the magic trampoline to just patch vtable entries.
3291
3292 2004-02-17  Zoltan Varga  <vargaz@freemail.hu>
3293
3294         * inssel.brg inssel-x86.brg: Move call(immediate) rules to the platform
3295         independent file.
3296
3297 2004-02-16  Zoltan Varga  <vargaz@freemail.hu>
3298
3299         * tramp-ppc.c (mono_arch_create_jump_trampoline): Fix compilation on
3300         PPC.
3301
3302         * mini-x86.c: Call mono_arch_get_lmf_addr instead of mono_get_lmf_addr
3303         if we have a working __thread implementation.
3304
3305         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Remove 
3306         OP_CALL_IMM opcodes, since the CALL opcodes handles immediates as well.
3307
3308 2004-02-15  Zoltan Varga  <vargaz@freemail.hu>
3309
3310         * mini-x86.c: Fix compilation under gcc 2.
3311         
3312 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
3313
3314         * mini.c (mono_codegen): Avoid infinite loop when an icall wrapper
3315         contains a call to the wrapped function.
3316
3317         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Add 
3318         OP_<CALL>_IMM opcodes, and use them under X86.
3319         
3320         * mini.c (mono_jit_find_compiled_method): Fix warning.
3321
3322         * cpu-pentium.md: Fix length of opcodes which use x86_alu_membase_imm.
3323
3324         * jit-icalls.c (mono_ldftn_nosync): New JIT icall.
3325
3326         * tramp-x86.c (mono_arch_create_jump_trampoline): Move arch independent
3327         functionality to mini.c.
3328
3329         * mini.c (mono_create_jump_trampoline): New function to create a jump
3330         trampoline. Return a compiled method instead of a trampoline if it
3331         exists. Add a cache for jump trampolines.
3332
3333         * mini.c (mono_jit_find_compiled_method): New function to return a
3334         compiled method if it exists.
3335
3336         * mini-x86.c: Call mono_create_jump_trampoline instead of 
3337         mono_arch_create_jit_trampoline.
3338
3339         * jit-icalls.c (mono_ldftn): Do not compile the method. Instead, return
3340         a jump trampoline. Fixes #52092.
3341         
3342 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
3343
3344         * debug-mini.c (mono_init_debugger): Remove call to mono_verify_corlib,
3345         which is not up-to-date. Add check_corlib_version () instead.
3346
3347         * mini.c (mini_init): Call mono_thread_attach () so embedders do not 
3348         have to call it.
3349         
3350         * mini.c (mono_runtime_install_handlers): Remove check for valgrind
3351         since newer valgrind versions do not need it.
3352
3353         * mini.c (mono_jit_compile_method_with_opt): New helper function to
3354         compile a method with a given set of optimizations.
3355
3356         * mini.c: Compile icall wrappers on-demand instead of at startup.
3357
3358         * mini-sparc.c mini-ppc.c: Call mono_icall_get_wrapper to obtain the
3359         wrapper for an icall.
3360
3361 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
3362
3363         * mini.c (mono_method_to_ir): Handle switch with non-empty stack. Fixes
3364         #54063.
3365
3366         * iltests.il: Add test for non-empty stack before switch instruction.
3367
3368 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
3369
3370         * mini.c: Add support for new stringbuilder marshalling conventions.
3371
3372         * mini.c (mono_method_to_ir): Fix stack management of generic CEE_BOX.
3373
3374 2004-02-01  Martin Baulig  <martin@ximian.com>
3375
3376         * mini.c (MTYPE_PARAM_TO_TYPE): Method type arguments are stored
3377         in `ginst->mtype_argv'.
3378
3379 2004-01-31  Miguel de Icaza  <miguel@ximian.com>
3380
3381         * mini.c: Add comments, replace CEE_XXX+128 with OP_XXX to
3382         facilitate grepping.
3383
3384 Wed Jan 28 14:04:58 CET 2004 Paolo Molaro <lupus@ximian.com>
3385
3386         * mini.c: fixed buglet in initobj generic implementation for references.
3387
3388 Fri Jan 23 16:10:44 EST 2004 Paolo Molaro <lupus@ximian.com>
3389
3390         * Makefile.am: make the version script conditional.
3391         * jit-icalls.c: handle missing truncl().
3392
3393 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
3394
3395         * exceptions.cs: Add more tests for double->int conversion.
3396
3397         * jit-icalls.c (mono_fconv_ovf_i8): Call truncl before comparison, so
3398         we don't throw exceptions when converting 1.1 to a long. Fixes #53250.
3399
3400 Fri Jan 23 17:12:08 CET 2004 Paolo Molaro <lupus@ximian.com>
3401
3402         * driver.c: make --verbose --version emit an error
3403         if the loaded corlib doesn't match the runtime version.
3404
3405 Mon Jan 19 17:44:50 CET 2004 Paolo Molaro <lupus@ximian.com>
3406
3407         * mini-ppc.h: export ppc_patch().
3408         * mini-ppc.c: call convention fixes. Added assert in ppc_patch().
3409         * tramp-ppc.c: call convention fixes: Linux/PPC support should be
3410         on par or better than on MacOSX.
3411
3412 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
3413
3414         * mini.c tramp-x86.c tramp-sparc.c: Updated after changes to
3415         mono_lookup_pinvoke_call.
3416
3417         * mini-x86.c: Under windows, the default pinvoke calling convention is
3418         stdcall. Fixes #52834.
3419
3420         * mini.c (optimize_branches): Add an upper bound to the number of
3421         iterations to prevent infinite loops on strange loops. Fixes #53003.
3422
3423 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
3424
3425         * inssel.brg: Add vectors<->one dimensional array checking to CASTCLASS
3426         and ISINST. Fixes #52093.
3427
3428         * objects.cs (test_0_vector_array_cast): New tests.
3429         
3430 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
3431
3432         * jit-icalls.c (helper_stelem_ref_check): New jit icall for array type
3433         checking in Array.Set ().
3434
3435         * mini.c (method_to_ir): Add array type checking in Array.Set (). Fixes
3436         #52590.
3437
3438         * object.cs (test_0_multi_array_cast): New regression test.
3439
3440 Thu Jan 15 16:30:24 CET 2004 Paolo Molaro <lupus@ximian.com>
3441
3442         * exceptions-ppc.c: fix build on Linux/PPC.
3443
3444 2004-01-14  Zoltan Varga  <vargaz@freemail.hu>
3445
3446         * tramp-x86.c (x86_magic_trampoline): Disable code patching when
3447         running under valgrind.
3448         (x86_magic_trampoline): Fix build bustage.
3449
3450         * debug-mini.c: Modify the debug info serialize/deserialize code so it handles
3451         negative values as well. This is needed for the encoding of the line number
3452         info, since sometimes the line numbers are not in increasing order.
3453
3454 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
3455
3456         * cpu-pentium.md (localloc): Increase the size of the localloc 
3457         instruction since it is a loop under Win32.
3458
3459         * debug-mini.c (record_line_number): Get rid of unneccesary memory
3460         allocation.
3461
3462 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
3463
3464         * exceptions-ppc.c exceptions-x86.c exceptions-sparc.c 
3465         tramp-x86.c tramp-ppc.c tramp-sparc.c: Applied patch from 
3466         Max Horn (max@quendi.de). Fix file names in comments.
3467
3468 2004-01-03  Zoltan Varga  <vargaz@freemail.hu>
3469
3470         * ssa.c (mono_ssa_rename_vars): Allocate new_stack on the heap to
3471         avoid stack overflow.
3472         (replace_usage): Avoid uninitialized variable warnings.
3473
3474         * mini.c (mono_method_to_ir): Avoid disabling SSA for array operations
3475         and taking the address of valuetype variables.
3476
3477 2004-01-03  Patrik Torstensson
3478
3479         * mini-x86.c: renamed fpflags to flags in RegTrack, going to be used
3480         for other purposes than FP later on.
3481
3482 2004-01-02  Zoltan Varga  <vargaz@freemail.hu>
3483
3484         * mini.c (mono_method_to_ir): Prevent register allocation for arguments
3485         of tail calls.
3486
3487 Fri Jan 2 13:37:25 CET 2004 Paolo Molaro <lupus@ximian.com>
3488
3489         * mini-ops.h, mini.c, inssel.brg: Object.GetType () speedup.
3490
3491 2003-12-30  Patrik Torstensson <p@rxc.se>
3492
3493         * mini-x86.h: Decreased number of availiable fp regs.
3494         Solves corner cases with FP spilling.
3495
3496 2003-12-23  Patrik Torstensson <p@rxc.se>
3497
3498         * mini-x86.c, mini-ops.h, cpu-pentium.md: Added support
3499         for floating point stack tracking / spilling on x86. 
3500         Fixes bug #49012.
3501         
3502         * basic-float.cs: added float mul overflow test.
3503
3504 2003-12-23  Zoltan Varga  <vargaz@freemail.hu>
3505
3506         * mini.c (mono_method_to_ir): Add workaround for bug #51126.
3507
3508 Sun Dec 21 19:53:16 CET 2003 Paolo Molaro <lupus@ximian.com>
3509
3510         * mini.h, mini-ppc.c, mini-ppc.h: small cleanups and
3511         supports for cond branches that overflow the immediate
3512         overflow offset. mcs can compile simple programs.
3513
3514 Fri Dec 19 21:17:16 CET 2003 Paolo Molaro <lupus@ximian.com>
3515
3516         * exceptions-ppc.c: exception handling support wip:
3517         finally handlers get run on exception.
3518
3519 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
3520
3521         * aot.c (mono_aot_get_method_inner): Avoid loading AOT code while 
3522         profiling.
3523
3524 Fri Dec 19 17:58:28 CET 2003 Paolo Molaro <lupus@ximian.com>
3525
3526         * cpu-g4.md, mini-ppc.c, exceptions-ppc.c, mini-ppc.h:
3527         initial support for stack walking and unwinding.
3528
3529 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
3530
3531         * driver.c (mono_main): Make corlib-out-of-sync message more 
3532         descriptive. Also remove verify_corlib call.
3533
3534 Wed Dec 17 15:31:41 CET 2003 Paolo Molaro <lupus@ximian.com>
3535
3536         * mini.c: make CEE_NEWARR calls and other emulated opcodes 
3537         not overlap with other call's arguments, too.
3538
3539 Wed Dec 17 12:49:23 CET 2003 Paolo Molaro <lupus@ximian.com>
3540
3541         * mini.h, mini.c, mini-ppc.c, mini-sparc.c, mini-x86.c: 
3542         move to arch-specific code the choice of arch-specific
3543         intrinsics (from Laurent Morichetti (l_m@pacbell.net)).
3544         * mini.c: ensure emulation calls will not interleave
3545         with other calls.
3546
3547 Wed Dec 17 12:27:26 CET 2003 Paolo Molaro <lupus@ximian.com>
3548
3549         * tramp-ppc.c, basic-calls.cs: rework trampolines so that
3550         the magic trampoline stack frame is dropped before executing
3551         the new method.
3552
3553 Mon Dec 15 18:13:57 CET 2003 Paolo Molaro <lupus@ximian.com>
3554
3555         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed some opcode lengths
3556         and integer to fp conversions. Added support for overflowing
3557         arguments on the stack. Reserve a couple more registers as temps.
3558         Added support for aot compilation (as output still needs to be
3559         tweaked, though).
3560
3561 Sat Dec 13 17:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
3562
3563         * mini-ppc.c, basic-long.cs: fix jumps to known labels.
3564         Don't overwrite return register in some corner cases.
3565
3566 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
3567
3568         * mini.h mini.c driver.c mini-x86.c mini-ppc.c aot.c: Do not run
3569         static constructors when AOT compiling.
3570
3571         * driver.c (mono_main): Call mono_check_corlib_version.
3572
3573 Sat Dec 13 10:31:12 CET 2003 Paolo Molaro <lupus@ximian.com>
3574
3575         * cpu-g4.md, basic.cs: fixed div target register.
3576
3577 Sat Dec 13 09:45:56 CET 2003 Paolo Molaro <lupus@ximian.com>
3578
3579         * mini-ppc.c, basic.cs: shl_imm fix with test.
3580
3581 Fri Dec 12 21:25:14 CET 2003 Paolo Molaro <lupus@ximian.com>
3582
3583         * inssel-ppc.brg, mini-ppc.h, mini-ppc.c: support for passing 
3584         structures by value. Misc fixes.
3585         * objects.cs: more tests.
3586
3587 Fri Dec 12 10:11:49 CET 2003 Paolo Molaro <lupus@ximian.com>
3588
3589         * mini-ppc.c: lconv.ovf.i implemented.
3590
3591 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3592
3593         * mini.c:
3594         (mini_init): don't error out if someone already called g_thread_init.
3595
3596 Tue Dec 9 17:27:14 CET 2003 Paolo Molaro <lupus@ximian.com>
3597
3598         * exceptions-x86.c, exceptions-ppc.c: allow the exception object
3599         to be any type per the spec. Fix abnormal memory usage when
3600         the same object is repeatedly thrown.
3601
3602 Tue Dec 9 15:39:54 CET 2003 Paolo Molaro <lupus@ximian.com>
3603
3604         * mini.c: check for overruns in IL code.
3605
3606 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
3607
3608         * TODO: Add/remove some todo entries.
3609
3610 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
3611
3612         * driver.c (mono_main): Call mono_verify_corlib.
3613
3614 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
3615
3616         * inssel.brg: In CEE_ISINST and CEE_CASTCLASS, removed check for proxy. 
3617         This has been moved to mini.c
3618         * mini.c: in mono_method_to_ir, CEE_ISINST and CEE_CASTCLASS cases, if the
3619         type being casted is marshalbyref it could be a proxy, so instead of
3620         emitting the type check code, emit a call to a runtime method that will
3621         perform the check by calling CanCastTo if needed.
3622
3623 2003-12-06  Zoltan Varga  <vargaz@freemail.hu>
3624
3625         * mini-x86.c (mono_arch_emit_prolog): Fix stack space allocation for
3626         methods with large stack frames under Win32.
3627
3628 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
3629
3630         * Makefile.am: Distribute regression tests.
3631
3632         * mini-x86.c (mono_arch_get_allocatable_int_vars): Sort the var list
3633         at the end instead of inserting each variable into the sorted list.
3634
3635         * linear-scan.c (mono_varlist_sort): New helper function.
3636         
3637 Wed Dec 3 20:46:28 CET 2003 Paolo Molaro <lupus@ximian.com>
3638
3639         * mini.c: ensure arguments and locals are within bounds.
3640
3641 Wed Dec 3 17:59:10 CET 2003 Paolo Molaro <lupus@ximian.com>
3642
3643         * mini-ppc.c, cpu-g4.md, basic.cs, basic-long.cs: more tests and 
3644         related fixes.
3645
3646 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
3647
3648         * mini.c (mono_cprop_copy_values): Fix crash.
3649
3650         * aot.c: Set verbosity back to 0.
3651         
3652 Wed Dec 3 15:42:27 CET 2003 Paolo Molaro <lupus@ximian.com>
3653
3654         * regalloc.c: complete memory leak fix by Laurent Morichetti
3655         (l_m@pacbell.net).
3656
3657 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
3658
3659         * driver.c (main_thread_handler): Revert the previous patch.
3660
3661         * tramp-x86.c (x86_class_init_trampoline): Avoid patching when running
3662         under valgrind.
3663
3664         * mini-x86.c (mono_arch_local_regalloc): Do not allocate transient
3665         memory from the memory pool.
3666
3667         * driver.c (main_thread_handler): Turn on all optimizations when
3668         --aot is used.
3669
3670         * mini.c (mono_find_jit_opcode_emulation): Turn emul_opcode_hash into
3671         an array for better performance.
3672
3673         * regalloc.c (mono_regstate_assign): Fix memory leak.
3674
3675         * debug-mini.c (mono_debug_serialize_debug_info): New function to
3676         serialize the debug info.
3677
3678         * debug-mini.c (mono_debug_add_aot_method): New function to load the
3679         debug info from the serialized representation.
3680
3681         * aot.c: Save debug info into the generated file and load it when 
3682         loading a method.
3683
3684         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
3685
3686 Mon Dec 1 16:54:05 CET 2003 Paolo Molaro <lupus@ximian.com>
3687
3688         * mini-ppc.c, tramp-ppc.c: save FP arguments in the trampoline.
3689         More FP-related fixes.
3690
3691 Sun Nov 30 19:13:52 CET 2003 Paolo Molaro <lupus@ximian.com>
3692
3693         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed finally handlers
3694         and register allocation buglet. Hello world now runs.
3695
3696 Fri Nov 28 23:03:05 CET 2003 Paolo Molaro <lupus@ximian.com>
3697
3698         * cpu-g4.md, inssel-ppc.brg, mini-ppc.c: better long return support.
3699         * tramp-ppc.c: fixed class init trampoline.
3700         * inssel-ppc.brg, mini.c, jit-icalls.c, mini-ppc.h: more emulation.
3701
3702 Fri Nov 28 16:36:29 CET 2003 Paolo Molaro <lupus@ximian.com>
3703
3704         * cpu-g4.md, inssel-ppc.brg, jit-icalls.c, mini-ppc.c, mini-ppc.h,
3705         mini.c: more ppc changes/fixes.
3706
3707 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
3708
3709         * mini.c (mono_method_to_ir): Fix tail calls with valuetype arguments.
3710         Also optimize the case when the arguments are the same in the caller 
3711         and in the callee.
3712
3713         * iltests.il: Add tests for tail calls with valuetype arguments.
3714
3715 Thu Nov 27 21:06:37 CET 2003 Paolo Molaro <lupus@ximian.com>
3716
3717         * mini-ppc.c: fixes for struct return type.
3718
3719 Thu Nov 27 19:02:07 CET 2003 Paolo Molaro <lupus@ximian.com>
3720
3721         * mini.h, mini.c, mini-x86.c, mini-ppc.c, mini-sparc.c: move 
3722         mono_spillvar_offset() to arch-specific code.
3723
3724 Thu Nov 27 18:30:42 CET 2003 Paolo Molaro <lupus@ximian.com>
3725
3726         * mini-ppc.h, mini-ppc.c: handle some different ABI call convention issues.
3727
3728 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
3729
3730         * exceptions-x86.c: Fix stack space leaks.
3731         
3732         * exceptions-x86.c (mono_arch_find_jit_info): Restore callee saved
3733         registers from the lmf if the method has save_lmf set.
3734
3735 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
3736
3737         * tramp-x86.c (x86_magic_trampoline): Avoid patching in the addresses
3738         of icall wrappers into InvokeInDomain, since these are now per-domain.
3739
3740 Wed Nov 26 20:15:04 CET 2003 Paolo Molaro <lupus@ximian.com>
3741
3742         * mini-ppc.h, mini-x86.h, mini.c, inssel-ppc.brg, jit-icalls.c:
3743         make some opcode emulation and intrinsic ops enabled/disabled 
3744         according to the architecture. More fixes.
3745
3746 Wed Nov 26 19:59:09 CET 2003 Paolo Molaro <lupus@ximian.com>
3747
3748         * mini-ppc.c, mini-sparc.c, cpu-g4.md: more bug fixes.
3749
3750 Wed Nov 26 19:18:29 CET 2003 Paolo Molaro <lupus@ximian.com>
3751
3752         * mini.h, inssel.brg, mini-x86.c, mini-ppc.c, mini-sparc.c: move
3753         arch-specific handling for 'this' and struct return type to
3754         arch-specific code.
3755
3756 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3757
3758         * aot.c: prevent divide by zero error when reporting (it happened with
3759         Accessibility.dll).
3760
3761 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
3762
3763         * mini.h (inst_switch): Remove unused macro.
3764
3765 2003-11-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3766
3767         * aot.c:
3768         (load_aot_module): free 'info->methods' and 'info' properly. No more
3769         "free(): invalid pointer blah" messages when you have an old aot
3770         compiled assembly.
3771
3772 2003-11-21  Lluis Sanchez Gual <lluis@ximian.com>
3773
3774         * jit-icalls.c, mini.c: Added support for context static fields.
3775
3776 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
3777
3778         * mini.c (mono_method_blittable): Methods which set LastError are not 
3779         blittable either. Fixes #51108.
3780         
3781 Tue Nov 18 16:41:37 CET 2003 Paolo Molaro <lupus@ximian.com>
3782
3783         * mini.c: flush icache.
3784         * cpu-g4.md, mini-ppc.c, inssel.brg: more fixes. Trace support.
3785
3786 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
3787
3788         * mini.c (mono_type_blittable): OBJECT is not blittable. Fixes #47842.
3789
3790 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
3791
3792         * tramp-x86.c (x86_class_init_trampoline): Make code patching thread
3793         safe on IA32.
3794
3795         * mini-x86.c (mono_arch_call_opcode): Disable AOT for methods with 
3796         vararg calls.
3797
3798         * inssel.brg (CEE_MKREFANY): Fix AOT case.
3799
3800 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
3801
3802         * mini-x86.c (mono_arch_local_regalloc): Fix regalloc for div 
3803         instruction when the result is discarded.
3804
3805         * iltests.il (test_0_div_regalloc): New regression test.
3806
3807         * arrays.cs: Fix compilation error.
3808
3809 Fri Nov 14 21:34:06 CET 2003 Paolo Molaro <lupus@ximian.com>
3810
3811         * inssel-x86.brg, inssel-float.brg, mini-ops.h: move x86-specific
3812         float rules to inssel-x86.brg: sane architectures with FP registers
3813         don't need to implement these rules.
3814
3815 Fri Nov 14 20:52:12 CET 2003 Paolo Molaro <lupus@ximian.com>
3816
3817         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: updates and fixes to the ppc port.
3818
3819 Fri Nov 14 17:58:27 CET 2003 Paolo Molaro <lupus@ximian.com>
3820
3821         * mini.h, inssel-long32.brg: fixed endianess issues in int64
3822         implementation of 32 bit systems.
3823
3824 Thu Nov 13 16:14:41 CET 2003 Paolo Molaro <lupus@ximian.com>
3825
3826         * exceptions-ppc.c: fix build on Linux/ppc from Jeroen@xs4all.nl
3827         (Jeroen Zwartepoorte).
3828
3829 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
3830
3831         * mini.c (mono_method_to_ir): Use CEE_JMP only if the signature of
3832         the caller and the callee matches.
3833         
3834         * mini.c (mono_method_to_ir): Add comment.
3835
3836         * mini-x86.c (mono_arch_output_basic_block): Use mono_signbit, since
3837         signbit is missing on some platforms.
3838
3839 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
3840
3841         * mini.h (mono_arch_setup_jit_tls_data): New arch specific function.
3842
3843         * mini.c (setup_jit_tls_data): Call the new function.
3844         
3845         * mini-x86.c mini-ppc.c mini-sparc.c: Define the new function.
3846
3847         * mini-x86.c: Add experimental support for fast access to the lmf
3848         structure under NPTL/Linux 2.6.x.
3849
3850 2003-11-06  Martin Baulig  <martin@ximian.com>
3851
3852         * ldscript: Make `GC_push_all_stack', `GC_start_blocking',
3853         `GC_end_blocking' and 'gc_thread_vtable' public; they're used by
3854         the debugger.
3855
3856 2003-11-02  Martin Baulig  <martin@ximian.com>
3857
3858         * mini.c (inflate_generic_field): New static method.
3859         (mono_method_to_ir): In CEE_LDFLD and CEE_LDSFLD: if we're a
3860         generic instance and the field is declared in a generic type, call
3861         inflate_generic_field() to inflate it.  Fixes gen-28.cs.
3862
3863 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
3864
3865         * mini.h mini.c (mono_method_same_domain): New function to return
3866         whenever the caller and the callee are in the same domain.
3867
3868         * tramp-x86.c (x86_magic_trampoline): Use the new function.     
3869
3870 2003-10-30  Martin Baulig  <martin@ximian.com>
3871
3872         * mini.c (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): New macros;
3873         similar to TYPE_PARAM_TO_TYPE and TYPE_PARAM_TO_CLASS, but for
3874         method parameters.
3875         (mono_method_to_ir): Added support for MONO_TYPE_MVAR; similar to
3876         MONO_TYPE_VAR, we the actual types from MTYPE_PARAM_TO_CLASS(). 
3877
3878 2003-10-29  Zoltan Varga  <vargaz@freemail.hu>
3879
3880         * mini.c mini-ops.h inssel.brg: Implement undeniable exception 
3881         propagation.
3882
3883         * mini.c (sigusr1_signal_handler): Move creation of the thread abort
3884         object here, so it is in the correct appdomain etc.
3885
3886 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
3887
3888         * mini.c (mono_jit_compile_method_inner): Lookup icalls here if not
3889         already done.
3890         (mono_method_to_ir): Avoid freeing the type created returned from
3891         mono_type_create_from_typespec, since it is put into an internal cache
3892         by the function. Fixes pointer.exe.
3893
3894         * mini.c tramp-x86.c tramp-sparc.c tramp-ppc.c: Use the normal 
3895         trampolines for icalls and pinvokes as well. Fixes #33569.
3896
3897 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
3898
3899         * mini.c: Update after appdomain changes.
3900
3901         * mini.c (mono_jit_compile_method_inner): Allways compile native
3902         method wrappers in the root domain, since there can only be one
3903         instance of them, whose address is stored in method->info.
3904
3905 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
3906
3907         * mini.c (mono_runtime_install_handlers): Get rid of the MONO_VALGRIND
3908         environment variable. Instead detect automatically whenever running
3909         under valgrind using the magic macro RUNNING_ON_VALGRIND from
3910         valgrind.h.
3911
3912 2003-10-16  Miguel de Icaza  <miguel@ximian.com>
3913
3914         * trace.c, trace.h: New files that implement the new trace option
3915         parsing. 
3916
3917         * driver.c: Document new --trace options.
3918
3919         * exceptions-ppc.c, exceptions-x86.c, mini-ppc.c, mini-sparc.c,
3920         mini-x86.c: Apply:
3921
3922         -       if (mono_jit_trace_calls)
3923         +       if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
3924
3925         * mini.h: prototypes.
3926         
3927 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
3928
3929         * mini.c (mono_method_to_ir): Fix initialization of typedbyref locals.
3930
3931         * mini.c inssel.brg: Implement typedefbyref opcodes.
3932
3933         * mini.c (mono_jit_compile_method): Remove unused local variable.
3934
3935         * mini.c (mono_jit_compile_method_inner): Ditto.
3936         
3937 2003-10-12  Zoltan Varga  <vargaz@freemail.hu>
3938
3939         * tramp-x86.c (x86_class_init_trampoline): Fix build.
3940         
3941         * tramp-x86.c (x86_class_init_trampoline): Thread safety fixes.
3942
3943 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
3944
3945         * mini.c (mono_no_aot): Remove unused global variable.
3946
3947         * mini.c: Thread safety fixes.
3948
3949 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
3950
3951         * mini.c (mono_create_class_init_trampoline): Add a lock around
3952         class_init_hash_addr.
3953
3954         * arrays.cs (test_0_newarr_emulation): Add new regression test for
3955         #30073.
3956
3957         * mini.c: Decompose the NEWARR instruction before decomposing its
3958         arguments. Fixes #30073.
3959
3960 2003-10-08  Zoltan Varga  <vargaz@freemail.hu>
3961
3962         * mini-x86.c (mono_arch_emit_epilog): Add support for stdcall calling
3963         convention.
3964
3965 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
3966
3967         * mini.c (mono_method_to_ir): Allow wrapper data for CEE_LDELEMA.
3968
3969         * inssel-x86.brg (OP_LOCALLOC): Fix register assignment for localloc.
3970
3971         * driver.c: Add support for compiling icall wrappers to --compile.
3972
3973 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
3974
3975         * inssel.brg: The empty value in class->interface_offsets is -1, not
3976         0. Fixes #49287.
3977
3978 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
3979
3980         * objects.cs: New test for 'is' operator on an array of interfaces.
3981
3982 Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
3983
3984         * tramp-ppc.c: update trampoline code to support jumps
3985         and class initialization.
3986
3987 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
3988
3989         * mini.c (mono_jit_compile_method): Fix reading of freed memory.
3990
3991         * inssel.brg (OP_UNBOXCAST): Fix #46027.
3992
3993         * inssel.brg (OP_UNBOX): Remove unused rule.
3994
3995         * mini.h mini.c inssel-x86.brg: Allocate one SP variable for each
3996         region instead of one for each method. Fixes #47813.
3997
3998 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
3999
4000         * exceptions.cs (test_0_nested_finally): New regression test for
4001         nested exception handlers.
4002
4003         * mini.c (mono_jit_runtime_invoke): Fix for the previous fix.
4004
4005         * mini.c (mono_method_to_ir): Avoid inlining tail calls.
4006
4007         * mini.c (mono_method_to_ir): Fix tail recursion in the presence of 
4008         inlining.
4009
4010         * mini.c (mono_method_check_inlining): Make the inlining limit 
4011         configurable by an environment variable.
4012         
4013         * mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545.
4014
4015         * mini.h: Bump AOT file version.
4016
4017         * mini.h mini.c aot.c mini-x86.c: For relocations which refer to a 
4018         token, store the image along with the token, since the token might not 
4019         refer to the same image as the method containing the relocation, 
4020         because of inlining.
4021
4022 2003-09-27  Zoltan Varga  <vargaz@freemail.hu>
4023
4024         * mini.c (mono_precompile_assemblies): New function to compile
4025         all methods in all loaded assemblies.
4026
4027         * mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP.
4028
4029         * regalloc.h regalloc.c (MonoRegState): Change the type of 
4030         iassign and fassign to int*, since they can contain large negative
4031         values if the register is spilled. Also added some comments. Fixes
4032         #45817.
4033
4034         * exceptions-x86.c (seh_handler): Fix handling of system exceptions
4035         under Win32. Fixes #42964.
4036
4037 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
4038
4039         * mini.h (MONO_PATCH_INFO_WRAPPER): New patch type.
4040
4041         * aot.c: Added support for AOT compiling methods which contain calls
4042         to wrappers. Currently, only remoting-invoke-with-check wrappers are
4043         handled.
4044         
4045         * driver.c (compile_all_methods): Run the compilation in a thread
4046         managed by mono. Fixes #44023.
4047
4048         * mini.c (mono_codegen): Print full method name in verbose output.
4049
4050         * mini-x86.c (mono_arch_patch_code): Fix warning.
4051         
4052         * mini-x86.c (mono_arch_patch_code): Allways create a trampoline for
4053         jumps, since the method we are jumping to might be domain-specific.
4054
4055         * aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP.
4056
4057 Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
4058
4059         * inssel.brg: string chars are unsigned.
4060
4061 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
4062
4063         * TODO: New todo item.
4064
4065         * tramp-x86.c (x86_class_init_trampoline): New trampoline function
4066         which calls mono_runtime_class_init and patches the call site to
4067         avoid further calls.
4068         (mono_arch_create_class_init_trampoline): New arch specific function 
4069         to create a class init trampoline.
4070         (create_trampoline_code): Generalized so it can create
4071         class init trampolines as well.
4072
4073         * mini.c (helper_sig_class_init_trampoline): New helper variable.
4074         (mono_create_class_init_trampoline): New function to create and cache
4075         class init trampolines.
4076         (mono_find_class_init_trampoline_by_addr): New function to lookup the
4077         vtable given the address of a class init trampoline. Used by the
4078         patching process.
4079         (mono_codegen): Generate a call to a trampoline instead of
4080         mono_runtime_class_init in LDSFLD[A].
4081         (mono_codegen): Add relocations for the new trampoline.
4082         
4083         * mini.h mini-x86.c aot.c: Added a new relocation type: 
4084         MONO_PATCH_INFO_CLASS_INIT.
4085
4086         * mini.h: Bump AOT version number.
4087
4088         * aot.c: Create a copy of the loaded code instead of using the original
4089         so methods which call each other will be close in memory, improving
4090         cache behaviour.
4091         
4092         * exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous
4093         patch since it breaks the regression tests.
4094         
4095         * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
4096         for the register saving instruction sequence since the 
4097         frame_state_for function in glibc 2.3.2 don't seem to detect it.
4098
4099 2003-09-14  Zoltan Varga  <vargaz@freemail.hu>
4100
4101         * TODO: Fix todo item && remove another.
4102
4103 2003-09-12  Zoltan Varga  <vargaz@freemail.hu>
4104
4105         * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
4106         previous checkin.
4107
4108         * aot.c: Moved the check for MONO_LASTAOT into the initialization
4109         function of the module.
4110
4111         * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
4112         turning on/off the usage of AOT code. Got rid of mono_no_aot and the
4113         --no-aot command line option.
4114
4115 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
4116
4117         * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
4118         by Bernie Solomon (bernard@ugsolutions.com).
4119
4120         * inssel.brg: Refactor the interface offset table related code into
4121         its separate functions and add support for the AOT case.
4122
4123 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
4124
4125         * aot.c (mono_aot_get_method_inner): Fix memory leak.
4126         
4127         * aot.c: Added mono_aot_verbose variable and made all debugging
4128         output depend on the value of this variable.
4129
4130         * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
4131         method_label and info_label.
4132
4133         * mini.h mini-x86.c aot.c: Added a new relocation type 
4134         MONO_PATCH_INFO_IID for klass->interface_id.
4135
4136         * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
4137         the MonoJitInfo structure.
4138
4139         * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
4140         a non-root appdomain in shared mode.
4141
4142 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
4143
4144         * aot.c: make aot loader less verbose. Remove free of unused variable.
4145
4146 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
4147
4148         * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
4149
4150         * .cvsignore: Added *.dll.
4151
4152         * mini.c (mono_print_tree_nl): New function callable while debugging.
4153
4154         * mini.c (mono_print_code): Export this.
4155
4156         * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
4157         patched code.
4158
4159 2003-09-05  Zoltan Varga  <vargaz@freemail.hu>
4160
4161         * mini.h (MonoCompile): Added 'jit_info' field.
4162
4163         * mini.c (mini_method_compile): Save the generated MonoJitInfo into
4164         the cfg structure, since it is needed by the AOT compiler.
4165
4166         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
4167
4168         * aot.c: A major rewrite. Changes include:
4169         - save exception tables for methods which have them.
4170         - cache failed lookups in aot_get_method () to avoid the (slow) calls 
4171         to g_module_symbol.
4172         - reworked the file format so it is now much smaller and needs
4173         fewer relocation entries.
4174         
4175 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
4176
4177         * aot.c (load_aot_module): Fix build bustage on platforms without
4178         Boehm GC.
4179
4180 2003-09-04  Martin Baulig  <martin@ximian.com>
4181
4182         * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
4183
4184 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
4185
4186         * TODO: Some new optimization ideas.
4187
4188         * aot.c: Move AOT module loading logic here from mono_assembly_open.
4189
4190         * aot.c: Save the optimization flags used to compile the code into
4191         the AOT module.
4192
4193         * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
4194         support emitting domain specific code.
4195         
4196         * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is 
4197         no longer domain neutral. It can be made domain neutral by compiling 
4198         with --optimize=shared.
4199
4200         * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
4201         between appdomains.
4202
4203         * driver.c mini.h mini.c: New --no-aot debugging option which disables
4204         loading of AOT code.
4205
4206         * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
4207         
4208         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
4209         if there is no domain neutrality information.
4210
4211 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
4212
4213         * aot.c (mono_compile_assembly): Emit a symbol containing the file 
4214         format version into the generated library.
4215
4216         * mini-x86.c (mono_arch_patch_code): Do not emit the address of the
4217         callee method into the caller since one of them could be shared.
4218
4219         * mini.h mini-x86.c aot.c: Added two new relocations so throwing
4220         system exceptions from AOT code now works.
4221
4222         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
4223         method if it is domain neutral and the callee is not.
4224
4225         * graph.c (cfg_emit_one_loop_level): Fix warning.
4226
4227 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
4228
4229         * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
4230         last checkin.
4231
4232 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
4233
4234         * mini.c (mini_init): Call mono_marshal_init () explicitly since it
4235         is needed  by code which is executed before mono_runtime_init ().
4236         Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
4237         
4238         * mini.c (mono_thread_abort): Fix warning.
4239         (mono_jit_compile_method): Call static constructor in the AOT case too.
4240
4241         * aot.c (mono_compile_assembly): Fix warning.
4242
4243 2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4244
4245         * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
4246
4247 2003-08-28  Zoltan Varga  <vargaz@freemail.hu>
4248
4249         * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
4250
4251         * cpu-pentium.md: Fix the length of call opcodes so they include the
4252         ESP restoring instruction. Fixes #47968.
4253
4254 2003-08-28  Martin Baulig  <martin@ximian.com>
4255
4256         * mini-x86.c (mono_arch_call_opcode): Added support for
4257         MONO_TYPE_GENERICINST.
4258
4259         * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.       
4260
4261 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
4262
4263         * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
4264         a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
4265
4266         * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
4267         metadata_section.
4268
4269 2003-08-26  Martin Baulig  <martin@ximian.com>
4270
4271         * mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
4272         when reporting an error, set this to the actual error location.
4273         (mono_method_to_ir): Report the correct error location if
4274         get_basic_blocks() returned an error.
4275
4276 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
4277
4278         * mini.c (mono_type_blittable): OBJECT is not blittable.
4279         (mono_method_blittable): Methods which have marshalling descriptors
4280         are not blittable either. Fixes #47842.
4281
4282 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
4283
4284         * driver.c mini.c: Use an environment variable instead of a global 
4285         variable. Also fix the build.
4286
4287         * mini.c (mini_init): Call g_thread_init () to make glib thread-safe. 
4288         Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
4289         reporting this. 
4290
4291         * driver.c mini.c: Added --with-valgrind option to turn off some
4292         code which prevents mono from running under valgrind.
4293
4294         * mini.c (mono_emit_call_args): Fixed warning.
4295
4296         * mini.c (mono_emulate_opcode): Fixed warning.
4297
4298 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
4299
4300         * inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
4301         * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
4302         regalloc.c, regalloc.h: specify available registers in arch-specific
4303         code and support floats in the regallocator (patch by Laurent Morichetti 
4304         <l_m@pacbell.net>)
4305
4306 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
4307
4308         * mini.c: mono_thread_current() can be called only after
4309         mono_runtime_init(): rearrange code to not call it early on.
4310
4311 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
4312
4313         * mini.c: allocate jump tables in the code mempools.
4314
4315 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
4316
4317         * mini.c, mini.h: make sure per-thread data allocated by the jit is
4318         freed.
4319
4320 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
4321
4322         * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
4323         12 to 16.  This fixes bug #47453.
4324
4325
4326 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
4327
4328         * mini-ppc.c: fixed indexed load and unsigned compares.
4329
4330 2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>
4331
4332         * mini.c: reenabled installation of handler for
4333           thread abort signal.
4334
4335 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
4336
4337         * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
4338         by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
4339         until it's fixed and actually useful.
4340
4341 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
4342
4343         * inssel-long32.brg: couple more opcodes implemented.
4344
4345 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
4346         
4347         * mini-sparc.c: Even more opcodes implemeted.
4348
4349 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
4350
4351         * mini-sparc.c: More opcodes implemented.
4352
4353 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
4354
4355         * mini-sparc.c: More opcodes implemented.
4356
4357 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
4358
4359         * inssel-sparc.brg: Add some needed rules.  Direct
4360         copy from PPC.
4361         * Makefile.am: Use inssel-sparc.brg
4362         * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
4363         an assert happy for now.
4364
4365 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
4366
4367         * mini-sparc.c: Fixed compile errors.
4368         * exceptions-sparc.c: Same.  We now produce a mono binary 
4369         on sparc-linux.  Yea.
4370
4371 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
4372
4373         * mini-sparc.c: Renamed registers.  Also some macro cleanups.
4374         * exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
4375         They compile, but do not work.
4376
4377 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
4378
4379         * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
4380         mini-sparc.h, tramp-sparc.c: Beginning of sparc support
4381         from Mark Crichton <crichton@gimp.org> and Christopher Taylor
4382         (ct@gentoo.org).
4383
4384 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
4385
4386         * mini.c: more opcodes implemented and better support for generics.
4387
4388 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
4389
4390         * cpu-g4.md, cpu-pentium.md: updates for new instructions.
4391         * mini.c, mini.h: first cut at generics support: some new instructions 
4392         added and changed the behaviour of some of the existing ones.
4393
4394 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
4395
4396         * mini.c: Removed definition of metadata_shared mutex here.
4397
4398 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
4399
4400         * mini-x86.c: make vararg calls work for instance methods.
4401
4402 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
4403
4404         * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
4405         returns the arguments in a separte list, now.
4406
4407 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
4408
4409         * aot.c, mini.c: updates for array type representation changes.
4410
4411 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
4412
4413         * mini.c: register function to perform jit shutdown.
4414
4415 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
4416
4417         * mini.c: use a faster allocator if possible.
4418
4419 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
4420
4421         * aot.c: some cleanups and portability changes.
4422
4423 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
4424
4425         * mini.c: use faster allocation for CEE_BOX if possible.
4426
4427 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
4428
4429         * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
4430         Moved inlined mempcy code to its own function so that is can be
4431         reused. Added an inline memset function as well (optimized initobj).
4432         * cpu-pentium.md, inssel-x86.brg: add and use lea_membase.
4433
4434 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
4435
4436         * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
4437
4438 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
4439
4440         * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
4441         arch code can setup the cpu for CLR execution, if needed.
4442         We use it on x86 to set the precision of FP operations.
4443
4444 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
4445
4446         * mini.c: disable some optimizations if we can guess they'll cost too
4447         much for a given method.
4448
4449 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
4450
4451         * mini.h mini.c: Rework last patch based on suggestions by Paolo.
4452         
4453 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
4454         * mini.h mini.c mini-x86.c: Added instruction level coverage 
4455         info collection support.
4456
4457 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
4458
4459         * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
4460         is now implemented in the profiling API. Get rid of a couple of
4461         unnecessary global variables.
4462
4463 2003-06-15  Nick Drochak <ndrochak@gol.com>
4464
4465         * basic-long.cs: tests for negative values for bigmul, and unsigned.
4466         * cpu-g4.md: add op_bigmul and op_bigmul_un
4467         * cpu_pentium.md: add op_bigmul_un
4468         * inssel-long32.brg: add rule for unsigned bigmul
4469         * mini-ops.h: define OP_BIGMUL_UN
4470         * mini-x86.c: THE BUG: handle (un)signed properly
4471         * mini.c: choose unsigned opcode if needed.
4472         This set of patches fixes bug #44291
4473
4474 2003-06-13  Dietmar Maurer  <dietmar@ximian.com>
4475
4476         * mini.c (optimize_branches): improved to handle all kinds of
4477         conditional branches.
4478
4479 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
4480
4481         * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
4482         don't raise exceptions.
4483
4484 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
4485
4486         * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
4487         to arch-specific files.
4488
4489 2003-06-09  Martin Baulig  <martin@ximian.com>
4490
4491         * Makefile.am (libs): Added $(LIBGC_LIBS).
4492
4493 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
4494
4495         * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
4496         and OP_ATAN (fixes bug#44293).
4497
4498 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
4499
4500         * Makefile.am, mini-x86.c: rename cpu description array to
4501         pentium_desc, since some compilers define the 'pentium' preprocessor
4502         symbol.
4503
4504 2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
4505
4506         * mini.c (mini_select_instructions): add explicit branch if the
4507         following block is not the false target of a conditional branch -
4508         we need this with any optimization that reorder or remove bblocks
4509
4510         * mini.c (optimize_branches): bug fixes
4511
4512 2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
4513
4514         * mini.c (mono_method_to_ir): inline static readonly fields
4515
4516         * ssa.c (fold_tree): start cfold support for long (very simple
4517         cases only)
4518
4519         * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
4520
4521 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
4522
4523         * inssel.brg: fixed memcpy (bug #44219).
4524
4525 2003-06-05  Dick Porter  <dick@ximian.com>
4526
4527         * driver.c: Set the glib log levels to not abort if g_message
4528         recurses.
4529
4530         g_set_prgname() has to happen before mini_init() so that the
4531         process handle gets the info.
4532         
4533 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
4534
4535         * driver.c: add intrins to the default optimizations to get wider
4536         exposure.
4537
4538 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
4539
4540         * mini.h: some large basic blocks will overflow a 16-bit
4541         integers for symbolic registers.
4542
4543 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
4544
4545         * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
4546         (mono_arch_output_basic_block): fix bug 43499 
4547
4548 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
4549
4550         * mini.c: kill duplicated definition of mono_debug_format.
4551
4552 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
4553
4554         * mini-x86.c, arrays.cs: fixed register allocation bug.
4555
4556 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
4557
4558         * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
4559
4560         * mini.c (mini_get_opcode_for_method): inline IEEERemainder
4561
4562 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4563
4564         * mini.c:
4565         (print_method_from_ip): also print source location information if
4566         available.
4567
4568 2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
4569
4570         * mini.c (mono_find_block_region): bug fix in region code
4571         (mini_method_compile): enable removing unreachable code again, but
4572         only in methods without exception clauses.
4573
4574 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
4575
4576         * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
4577         Implemented arglist opcode and handling of TypedReference type.
4578         Fixed x86 call convention when a structure is returned.
4579         Minimal support for calling static vararg methods.
4580
4581 2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
4582
4583         * mini.c (mini_method_compile):  always remove unreachable code,
4584         because the code in them may be inconsistent  (access to dead
4585         variables for example).
4586
4587 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
4588
4589         * driver.c, debug-mini.c: warning fixes.
4590
4591 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
4592
4593         * Makefile.am, jit.h, mini.h: install header for embedding mono.
4594
4595 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
4596
4597         * mini.c: thread-static fields are registered in mono_class_vtable(),
4598         so ensure the function is called before checking for them.
4599
4600 2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
4601
4602         * mini.c (optimize_branches): fix for bug 43586
4603
4604         * jit-icalls.c (mono_llmult_ovf): added an additional check for
4605         overflow (fixes Bug #43639)
4606
4607 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
4608
4609         * mini.c, objects.cs: allow the use of stobj for primitive types.
4610
4611 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
4612
4613         * mini.c: be less strict about argument checking until we support
4614         running the verifier.
4615
4616 2003-05-27  Nick Drochak <ndrochak@gol.com>
4617
4618         * basic-long.cs: tests for (ulong)int * (ulong)int also
4619         * mini.c: use the same trick for (ulong)int * (ulong)int
4620
4621 2003-05-27  Nick Drochak <ndrochak@gol.com>
4622
4623         * basic-long.cs: add regression test for (long)int * (long)int
4624         * cpu-pentium.md: add op_bigmul specification
4625         * inssel-long32.brg: add OP_BIGMUL rule
4626         * mini-ops.h: add OP_BIGMUL
4627         * mini-x86.c: register allocator: handle case where src1 needs to be
4628         in EAX.
4629         * mini.c: substitute special BIGMUL opcode in the tree for 
4630         (long)int * (long)int
4631
4632 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
4633
4634         * jit-icalls.c: call the type ctor on field access if needed.
4635
4636 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
4637
4638         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
4639         to a method (including results of ldelema, bug#43207).
4640
4641 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
4642
4643         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
4644         colors to show exception handler blocks.
4645
4646         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
4647         (fix for pinvoke7.cs).
4648
4649 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
4650
4651         * mini.h, mini.c: ensure correct initialization order for types that
4652         require it. Prepare for lazy compilation of jit icall wrappers.
4653         Provide a name for opcode emulation to reduce unneeded mallocing.
4654
4655 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
4656
4657         * mini-x86.c: better register restoring code and profiling
4658         support for tail calls.
4659
4660 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
4661
4662         * mini.h, driver.c: prepare for leaf methods optimization.
4663
4664 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
4665
4666         * mini.c: get targets of branches before converting a method.
4667
4668 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
4669
4670         * mini.c (optimize_branches): added some experimental code (disbaled) 
4671
4672 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
4673
4674         * mini.c (optimize_branches): fix branch to branch optimization 
4675
4676         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
4677
4678         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
4679
4680         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
4681
4682         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
4683         if needed.
4684
4685 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
4686
4687         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
4688         enable use of interface variables again.
4689
4690         * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
4691         I1 to registers because there is no simply way to sign extend 8bit
4692         quantities in caller saved registers on x86.
4693
4694         * inssel-float.brg: set costs of some rules to 2 so
4695         that monobure always select the arch. specific ones if supplied,
4696         regardless of the order we pass the files to monoburg.
4697
4698 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
4699
4700         * mini.c, mini-x86.c: since the magic trampoline for jumps
4701         can't patch the code directly, we do it as soon as the
4702         method gets compiled.
4703
4704 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
4705
4706         * mini-x86.c, mini.h: introduce a new patching method
4707         to support CEE_JMP and tail calls.
4708         * mini.c: obey tail.call. Don't precompile methods target
4709         of CEE_JMP.
4710         * tramp-x86.c: new trampoline code to handle methods
4711         reached through a jump.
4712
4713 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
4714
4715         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
4716         bit values to registers
4717
4718 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
4719
4720         * mini.c (mono_compile_get_interface_var): share interface
4721         variables if possible.
4722
4723 2003-05-16  Martin Baulig  <martin@ximian.com>
4724
4725         * debug-mini.c (mono_init_debugger): New function to initialize
4726         the debugger.  This is not in the debugger since it needs to
4727         access some of mini's internals.
4728
4729 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
4730
4731         * mini.c (mono_method_to_ir): inlining fixes/cleanups
4732
4733 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
4734
4735         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
4736         for value type handling.
4737
4738 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
4739
4740         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
4741         (mono_method_check_inlining): enable inlining of all kinds of wrappers
4742
4743 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
4744
4745         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
4746           the constructor through a proxy.
4747
4748 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
4749
4750         * jit-icalls.c, inssel.brg: fixes to array element address
4751         calculations.
4752
4753 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
4754
4755         * mini-x86.c (is_regsize_var): allocate pointer to registers
4756
4757 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
4758
4759         * driver.c: fixed typo, added intrins to the set of optimizations
4760         tested with regressions.
4761
4762 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
4763
4764         * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
4765         * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
4766         test case.
4767
4768 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
4769
4770         * inssel.brg: remove some common pop instructions without side effects
4771
4772 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
4773
4774         * inssel-x86.brg: fixed thinko in int to double conversions.
4775
4776 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
4777
4778         * mini.c, jit-icalls.c: added runtime thread-static variable support.
4779
4780 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
4781
4782         * inssel-long32.brg: two more missing instructions.
4783
4784 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
4785
4786         * mini.c (mono_emit_call_args): set the cil_code for all arguments
4787         if not already set.
4788
4789 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
4790
4791         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
4792         correctly.
4793
4794         * basic-float.cs: Added tests for negative zero.
4795
4796 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
4797
4798         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
4799         a couple of missing operations for long casts, with test cases.
4800
4801 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4802
4803         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
4804
4805 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
4806
4807         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
4808         code size estimation.
4809
4810 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
4811
4812         * mini.c (mono_jit_create_remoting_trampoline): make it work with
4813         abstract methods (fix bug 42542)
4814
4815         * aot.c: add ability to handle array types
4816         
4817 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
4818
4819         * mini.c: Call the _specific versions of the object allocation
4820         functions if possible.
4821
4822 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
4823
4824         * driver.c: call setlocale ().
4825
4826 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
4827
4828         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
4829         windows build.
4830
4831 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
4832
4833         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
4834
4835         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
4836         wrappers (fix bug 42122)
4837
4838 2003-05-04  Martin Baulig  <martin@ximian.com>
4839
4840         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
4841
4842         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
4843         s/mini_set_defaults/mono_set_defaults/g.
4844
4845 2003-05-04  Martin Baulig  <martin@ximian.com>
4846
4847         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
4848
4849 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
4850
4851         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
4852         (reported by Don Roberts).
4853
4854 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
4855
4856         * mini.c: temporarily work around two bugs for this release.
4857
4858 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
4859
4860         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
4861         that contains -export-dynamic and it makes using the ld script
4862         useless.
4863         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
4864
4865 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
4866
4867         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
4868         specific cpu.
4869
4870 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
4871
4872         * mini.c: make sure leave calls all the needed finally blocks,
4873         even when the target jumps out of multiple exception clauses.
4874
4875 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
4876
4877         * ldscript, Makefile.am: add linker script to reduce the number of
4878         exported symbols (should also fix the issues with libwine defining
4879         some of the same symbols in io-layer).
4880
4881 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
4882
4883         * driver.c (mini_main): Avoid assertion when no file name is given on 
4884         the command line.
4885
4886 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
4887
4888         * driver.c: added --version/-V command line option.
4889         Added the inline optimization in the regression tests.
4890
4891 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
4892
4893         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
4894         to the type in the method signature (fixes bug#42134).
4895
4896 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
4897
4898         * mini.c: when inlining, check this is not null only when needed (bug #42135).
4899
4900 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
4901
4902         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
4903
4904 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4905
4906         * driver.c: fixed bug #42100.
4907
4908 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
4909
4910         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
4911
4912 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
4913
4914         * mini.c: moved most of the code required to do inlining to its own
4915         function so it can be reused. Inline also ctors if appropriate.
4916
4917 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
4918
4919         * Makefile.am: Link with -export-dynamic so shared libs loaded by
4920         the runtime can call mono API functions.
4921
4922 2003-04-27  Martin Baulig  <martin@ximian.com>
4923
4924         * debug-mini.c (mono_debug_init_method): Added
4925         `guint32 breakpoint_id' argument; if the method has a breakpoint,
4926         send a notification to the debugger.
4927
4928         * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
4929         running in the Mono Debugger, just pass the breakpoint number to
4930         mono_debug_init_method().
4931
4932         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
4933
4934 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
4935
4936         * mini.c: allow some more unsafe compares.
4937
4938 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
4939
4940         * mini-x86.c, Makefile.am: make distcheck works (partially from
4941         a patch by Richard Lee <r.h.lee@attbi.com>).
4942         * regset.c, regset.h: removed, they are unused.
4943
4944 2003-04-25  Dick Porter  <dick@ximian.com>
4945
4946         * driver.c: Usage reports the name as 'mono' not 'mini'
4947         * exceptions-x86.c: Build and run on freebsd
4948
4949 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
4950
4951         * Makefile.am: install the program with the 'mono' name and
4952         the library as libmono instead of mini and libmini.
4953
4954 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
4955
4956         * driver.c: provide the APIs for the embedding interface of the old jit.
4957
4958 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
4959
4960         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
4961
4962 2003-04-23  Martin Baulig  <martin@ximian.com>
4963
4964         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
4965
4966         * driver.c: Added `--debug' command line argument to enable
4967         debugging support.
4968
4969 2003-04-23  Martin Baulig  <martin@ximian.com>
4970
4971         * debug.[ch]: Removed.  The code is now in
4972         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
4973
4974         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
4975         last six months.
4976
4977 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
4978
4979         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
4980
4981 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4982
4983         * mini.c:
4984         (mini_cleanup): moved mono_runtime_cleanup call after the call to
4985         mono_domain_finalize.
4986         (mini_method_compile): use mono_method_profile* if the the option is
4987         enabled.
4988
4989 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
4990
4991         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
4992         methods with their wrapper.
4993
4994         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
4995         methods with their wrapper.
4996
4997         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
4998         their wrapper.
4999
5000         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
5001         wrapper.
5002
5003         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
5004         methods.
5005
5006 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
5007
5008         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
5009
5010 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
5011
5012         * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
5013         of the mempool. This is slightly faster and uses less memory
5014
5015 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
5016
5017         * mini.c: avoid O(n) allocation for variables.
5018
5019 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
5020
5021         * mini.c: handle items on the stack after inlining methods.
5022
5023 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5024
5025         * mini.c: make the method->opcode optimization dependent
5026         on MONO_OPT_INSTRINS and do it lazily.
5027
5028 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
5029
5030         * driver.c: print overall results at the end of regression run.
5031
5032 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
5033
5034         * inssel.brg: don't overwrite symbolic registers.
5035
5036 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
5037
5038         * inssel-x86.brg: fix conversion from long to float.
5039
5040 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
5041
5042         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
5043
5044 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
5045
5046         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
5047
5048         * driver.c: Added --print-vtable option as in the old JIT.
5049
5050 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
5051
5052         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
5053
5054 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
5055
5056         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
5057
5058 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
5059
5060         * mini.c regalloc.c regalloc.h: Fix memory leak.
5061
5062 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
5063
5064         * aot.c (mono_aot_get_method): register all used strings
5065
5066 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
5067
5068         * mini.c: always intern strings references with ldstr at compile time.
5069
5070 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
5071
5072         * Makefile.am: add BUILT_SOURCES.
5073
5074 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
5075
5076         * driver.c: give a better error message when the assembly to execute
5077         doesn't have an entry point.
5078
5079 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
5080
5081         * Makefile.am: added hack for automake
5082
5083         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
5084         correct sematics.
5085
5086         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
5087
5088 22003-04-07  Martin Baulig  <martin@ximian.com>
5089
5090         * Makefile.am: Added Makefile.am.
5091
5092         * debugger-main.c: Removed, this is now in the debugger where it
5093         belongs.
5094
5095         * mini.pc.in: Call this package `mini' for the moment.
5096
5097
5098
5099
5100