svn path=/branches/mono-1-1-9/mcs/; revision=51206
[mono.git] / mono / mini / ChangeLog
1 2005-10-04  Zoltan Varga  <vargaz@freemail.hu>
2
3         * aot.c (emit_section_change): Fix emitting of sections on win32. Fixes #76322.
4
5 Fri Sep 9 09:49:14 CEST 2005 Paolo Molaro <lupus@ximian.com>
6  
7         * ldscript.mono, Makefile.am: use anonymous versions in the ldscript
8         for the mono binary.
9         
10 Wed Sep 28 17:12:48 CEST 2005 Paolo Molaro <lupus@ximian.com>
11
12         * mini-arm.h: work around what looks like a gcc bug when optimizations
13         are enabled.
14
15 2005-09-27  Zoltan Varga  <vargaz@freemail.hu>
16  
17         * mini-amd64.c (mono_arch_call_opcode): Use mono_class_value_size ()
18         to determine the amount of memory to copy when passing valuetypes.
19
20         * inssel-amd64.brg: Remove PUSH(LDIND4) rules since they convert an
21         4 byte load into a 8 byte load. Fix aligning of size in OP_OUTARG_VT.
22
23 Fri Sep 9 19:30:37 BST 2005 Paolo Molaro <lupus@ximian.com>
24
25         * cpu-arm.md, mini-arm.c: fix for dynamic code (Gtk# apps).
26
27 Thu Sep 8 14:53:45 BST 2005 Paolo Molaro <lupus@ximian.com>
28
29         * mini-arm.h: use emulation for conv.r.un for the release.
30
31 Thu Sep 8 11:28:45 BST 2005 Paolo Molaro <lupus@ximian.com>
32
33         * mini-arm.c, objects.cs: more fixes and tests for them.
34
35 Wed Sep 7 17:14:26 BST 2005 Paolo Molaro <lupus@ximian.com>
36
37         * mini-arm.c: align structures to at least 4 bytes to be able
38         to keep our current optimized memcpy.
39
40 Tue Sep 6 22:51:08 BST 2005 Paolo Molaro <lupus@ximian.com>
41
42         * mini-arm.c, cpu-arm.md, inssel-arm.brg: bugfixes.
43
44 2005-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
45
46         * mini.c: ignore SIGPIPE.
47
48 2005-09-04  Zoltan Varga  <vargaz@gmail.com>
49
50         * mini-ia64.c (mono_arch_lowering_pass): Convert 'and_imm 255' to zext1.
51
52         * mini-ia64.h mini-ia64.c: Add some minor optimizations.
53
54 2005-09-02  Zoltan Varga  <vargaz@gmail.com>
55
56         * mini.h: Add prototype for mono_allocate_stack_slots_full.
57
58 Thu Sep 1 21:05:26 BST 2005 Paolo Molaro <lupus@ximian.com>
59
60         * exceptions-arm.c, mini.c, mini-arm.c, mini-arm.h:
61         exception handling support.
62         * mini-arm.c, mini-arm.h: bigendian fixes (partially from a
63         patch by Brian Koropoff <briank@marakicorp.com>).
64
65 Thu Sep 1 10:22:44 EDT 2005 Paolo Molaro <lupus@ximian.com>
66
67         * mini.c: revert another 'optimization' which breaks when
68         items on the eval stack need to be saved at a basic block end
69         (bug #75940).
70
71 Wed Aug 31 17:29:32 CEST 2005 Paolo Molaro <lupus@ximian.com>
72
73         * jit-icalls.c: for arrays, ensure we always provide
74         lower bounds.
75
76 2005-08-30  Zoltan Varga  <vargaz@gmail.com>
77
78         * mini.c (mono_allocate_stack_slots_full): Fix ia64 build.
79         
80         * mini.c (mini_get_inst_for_method): Special case Object:.ctor as well.
81
82 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
83
84         * mini-ia64.h mini-ia64.c: Implement frame pointer elimination. Keep
85         arguments in their original register.
86
87 2005-08-28  Zoltan Varga  <vargaz@gmail.com>
88
89         * mini-ops.h cpu-ia64.md inssel-ia64.brg mini-ia64.c: Optimize
90         memset/memcpy.
91
92         * mini.c (mono_method_to_ir): Disable the MUL->MUL_IMM optimization
93         when ssapre is enabled.
94
95         * inssel-long.brg: Fix bug in previous patch.
96
97         * mini-ia64.c mini-ia64.h mini.c inssel-long.brg: Optimize 
98         multiplication by a constant.
99
100 2005-08-27  Zoltan Varga  <vargaz@gmail.com>
101
102         * mini-ia64.c (mono_arch_setup_jit_tls_data): Add support for intel
103         icc.
104
105         * tramp-ia64.c (mono_arch_create_trampoline_code): Use st8.spill for
106         saving registers.
107
108 Fri Aug 26 11:09:28 BST 2005 Paolo Molaro <lupus@ximian.com>
109
110         * inssel-arm.brg: apply changes tested by Brian Koropoff
111         <briank@marakicorp.com>.
112
113 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
114
115         * mini-x86.c (mono_arch_emit_prolog): Fix calling of mono_jit_thread_attach () under windows.
116         
117 2005-08-24  Zoltan Varga  <vargaz@gmail.com>
118
119         * mini-codegen.c (mono_local_regalloc): Avoid allocating dreg and sreg1/2
120         to the same register if dreg is just a base register.
121         (print_ins): Improve printing of membase opcodes.
122
123         * inssel-x86.brg: Add optimized ldind(reg) rules.
124
125         * mini-x86.c cpu-pentium.md: Changes required to support the new rules.
126
127 Wed Aug 24 19:39:36 CEST 2005 Paolo Molaro <lupus@ximian.com>
128
129         * mini.c: when running under valgrind, set the stack bottom for
130         the GC at the actual approximate stack for the app (fixes running
131         mono with valgrind).
132
133 Tue Aug 23 21:38:50 CEST 2005 Paolo Molaro <lupus@ximian.com>
134
135         * mini.c: do no break at the first valuetype to init found
136         (fixes bug #75791).
137
138 Tue Aug 23 16:53:21 BST 2005 Paolo Molaro <lupus@ximian.com>
139
140         * cpu-arm.md, mini-arm.c: more fixes and LMF support.
141
142 Tue Aug 23 15:11:44 CEST 2005 Paolo Molaro <lupus@ximian.com>
143
144         * cpu-g4.md: fixed instruction length exposed by the nemerle compiler.
145
146 2005-08-23  Zoltan Varga  <vargaz@freemail.hu>
147
148         * inssel-amd64.brg inssel-x86.brg: Fix the fcall rules.
149
150 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
151
152         * inssel-x86.brg: Fix assert in patch_delegate_trampoline.
153
154         * tramp-x86.c (mono_arch_patch_delegate_trampoline): Add some debug
155         code.
156
157         * tramp-amd64.c (mono_arch_patch_delegate_trampoline): Add some debug
158         code.
159
160         * mini.c (optimize_branches): Don't quit after 1000 iterations on large
161         methods.
162
163 Mon Aug 22 19:16:29 BST 2005 Paolo Molaro <lupus@ximian.com>
164
165         * tramp-arm.c: allocate less memory for the trampoline and fix typo.
166
167 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
168
169         * mini.c (mono_method_to_ir): Remove instructions inserted after a branch
170         in the tail recursion optimization.
171
172         * mini.h helpers.c (mono_disassemble_code): Emit starts of basic blocks as 
173         debug info into the assembly file.
174
175         * iltests.il: Add test for filter regions.
176
177         * mini.c (mono_method_to_ir): Fix handling of nested FILTER clauses. Fix
178         initial stack of filter regions. Fixes #75755.
179
180 Mon Aug 22 17:49:16 BST 2005 Paolo Molaro <lupus@ximian.com>
181
182         * mini-arm.c, cpu-arm.c: fixes and support for methods with bigger
183         stack requirements.
184
185 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
186
187         * mini.c (mono_create_delegate_trampoline): Fix memory leak. Put back
188         the check for an already compiled method on non-ia64 platforms.
189         (mono_create_jump_trampoline): Store the MonoJitInfo structure into the
190         proper domain.
191
192         * mini-x86.h tramp-x86.c: Add support for delegate trampolines.
193
194         * inssel-x86.brg: Add some optimized call rules.
195
196 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
197
198         * mini.c (mono_create_delegate_trampoline): Do not return an already compiled
199         method here.
200
201         * mini.h mini-trampolines.c: Pass the trampoline argument to 
202         mono_arch_patch_delegate_trampoline.
203
204         * mini-ia64.h mini-ia64.c tramp-ia64.c: Add support for delegate trampolines.
205
206         * mini-trampolines.c: Fix build.
207
208         * mini-amd64.h: Add delegate trampolines.
209
210         * mini.h mini.c mini-trampolines.c tramp-amd64.c: Add delegate trampolines.
211
212         * inssel-amd64.brg: Add optimized call rules.
213         
214         * mini-ia64.c tramp-ia64.c: Improve instruction scheduling.
215
216         * inssel-ia64.brg: Add optimized ldind(reg) rules.
217
218 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
219
220         * mini.c (mono_create_class_init_trampoline): Fix bug caused by last
221         change.
222
223         * mini-ia64.c: Remove LMF fixmes.
224
225         * mini-ia64.h: Remove most fields from LMF.
226
227         * inssel-ia64.brg (stmt): Fix unaligned access errors.
228
229         * mini-trampolines.c: Add support for IA64 function descriptors.
230
231         * mini.h mini.c jit-icalls.c exceptions-ia64.cdriver.c: Add support
232         for IA64 function descriptors.
233
234 Sat Aug 20 16:51:44 BST 2005 Paolo Molaro <lupus@ximian.com>
235
236         * tramp-arm.c: patch the vtable for virtual calls. Added
237         support code to register/unregister the LMF.
238         * mini-arm.c, mini-arm.h: warning fixes, fixes, speedups,
239         more LMF work.
240
241 2005-08-19  Dick Porter  <dick@ximian.com>
242
243         * mini.c: Use a gsize to store the thread ID, so it can hold a 64
244         bit value if needed.
245
246 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
247
248         * mini.c (mini_get_method): Move handling of wrapper data here.
249
250         * mini.c (mono_method_to_ir): Add support for dynamic methods.
251
252         * mini.c (mono_method_to_ir): Convert nonvirtual calls to abstract methods into
253         virtual.
254
255         * mini.c (mono_method_to_ir): Emit IR for CEE_NOP as well, so 
256         bblock->code does not remain empty.
257
258 2005-08-17  Zoltan Varga  <vargaz@freemail.hu>
259
260         * arrays.cs: Add regression test for #75832.
261
262         * inssel-amd64.brg cpu-amd64.md mini-amd64.c: Fix LDELEMA optimization
263         rules. Fixes #75832.
264
265         * mini-ia64.c tramp-ia64.c exceptions-ia64.c: Implement improved
266         instruction scheduling.
267
268 2005-08-12  Zoltan Varga  <vargaz@freemail.hu>
269
270         * mini-exceptions.c (ves_icall_get_frame_info): Fix IA64 build.
271
272 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
273
274         * mini-exceptions.c mini-x86.h: Move VC stuff into macros in mini-x86.h.
275
276         * mini-codegen.c: Fix VC build.
277
278         * cpu-pentium.md: Increase length of atomic_exhange_i4.
279
280 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
281
282         * mini.h: fix signature for mono_register_opcode_emulation.
283
284 2005-08-09  Zoltan Varga  <vargaz@freemail.hu>
285
286         * mini.c: Get rid of most of the helper_sig_... constants using
287         mono_create_icall_signature ().
288
289 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
290
291         * jit-icalls.c (helper_ldstr): New helper function.
292
293         * mini.c (get_basic_blocks): Set out_of_line for bblocks containing a throw.
294
295         * mini.c (mono_method_to_ir): If an LDSTR instruction is in a bblock with a
296         throw, load the string using a helper call instead of creating a string object.
297
298         * aot.c: Update after LDSTR changes.
299
300         * mini.h: Bump AOT file version.
301         
302         * aot.c: Save class size info into the AOT file. Print more statistics during
303         compilation.
304
305         * mini.h: Bump AOT file version.
306
307         * tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Fix
308         ordering of disasm cases. Fixes #74957.
309
310 Thu Aug 4 19:47:24 BST 2005 Paolo Molaro <lupus@ximian.com>
311
312         * mini-ops.h, mini-arch.h, inssel.brg, mini.c, mini.h,
313         jit-icalls.c, mini-codegen.c, Makefile.am: changes in
314         the generic code needed for the ARM port.
315
316 Thu Aug 4 19:42:54 BST 2005 Paolo Molaro <lupus@ximian.com>
317
318         * exceptions-arm.c, tramp-arm.c, mini-arm.c, mini-arm.h, cpu-arm.md,
319         inssel-arm.brg: more ARM features and fixes.
320
321 Mon Aug 1 18:37:38 BST 2005 Paolo Molaro <lupus@ximian.com>
322
323         * tramp-arm.c, mini-arm.c, cpu-arm.md, inssel-arm.brg: more
324         ARM port work in progress.
325
326 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
327
328         * mini-ia64.c (mono_arch_call_opcode): Ongoing IA64 work.
329
330         * mini-exceptions.c mini-ia64.h: Ongoing IA64 work.
331
332         * mini-ia64.c (ia64_emit_bundle): Ongoing IA64 work.
333
334         * inssel.brg (mini_emit_memset): Add support for unaligned access.
335
336         * *-ia64.*: Ongoing IA64 work.
337         
338         * mini-ia64.c exceptions-ia64.c: Ongoing IA64 work.
339
340 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
341
342         * TODO: Remove out-of-data todo stuff.
343
344         * mini.h mini.c (mono_create_jit_trampoline_from_token): Remove some
345         dead code.
346
347         * aot.c: Save/load MonoCachedClassInfo->has_nested_classes.
348
349         * mini.h: Bump corlib version.
350
351 2005-07-27  Martin Baulig  <martin@ximian.com>
352
353         * mini-codegen.c
354         (create_copy_ins): Added `const unsigned char *ip' argument; set
355         `copy->cil_code' from it.
356
357 2005-07-27  Martin Baulig  <martin@ximian.com>
358
359         * mini-exceptions.c (mono_handle_exception): Don't call
360         mono_debugger_handle_exception() for filters.
361
362 2005-07-27  Zoltan Varga  <vargaz@freemail.hu>
363
364         * mini-trampolines.c (mono_aot_trampoline): Handle AppDomain:InvokeInDomain
365         as well.
366
367 2005-07-26  Martin Baulig  <martin@ximian.com>
368
369         Committing a patch from Michal Moskal <michal.moskal@gmail.com>.
370
371         * mini.c (mono_method_to_ir): In `CEE_CALLI', only use
372         helper_compile_generic_method() if the method is actually virtual
373         and non-final.
374
375 2005-07-26  Martin Baulig  <martin@ximian.com>
376
377         * mini.c
378         (trampoline_code): Renamed to `mono_trampoline_code' and made it
379         public; this is now accessed directly by the debugger.
380         (mono_generic_trampoline_code): Removed.
381
382         * debug-mini.c
383         (mono_debug_init_method): Also add interncalls and wrappers.
384
385 2005-07-23  Zoltan Varga  <vargaz@freemail.hu>
386
387         * mini-ia64.c mini-ia64.h: Add support for tracing/profiling.
388
389 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
390
391         * aot.c (mono_aot_get_method_from_token): Fix a potential crash here.
392
393 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
394
395         * aot.c (load_patch_info): Fix handling of stfld_remote wrapper.
396
397 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
398
399         * mini-amd64.c (mono_arch_setup_jit_tls_data): Use the nice way of
400         getting TLS offsets on AMD64 too.
401
402 2005-07-20  Kornél Pál <kornelpal@hotmail.com>
403
404         * driver.c: Detach console when executing IMAGE_SUBSYSTEM_WINDOWS_GUI on win32
405
406 Wed Jul 20 18:05:19 BST 2005 Paolo Molaro <lupus@ximian.com>
407
408         * exceptions-arm.c, mini-arm.c, tramp-arm.c, cpu-arm.md,
409         inssel-arm.brg, mini-arm.h: ARM port work in progress.
410
411 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
412
413         * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix build.
414
415         * mini.h mini.c mini-*.h tramp-*.c: Move more cross platform trampoline code
416         to mini.c.
417
418         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Call 
419         mono_sparc_is_virtual_call ().
420         
421         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Fix warning.
422
423         * tramp-sparc.c (mono_arch_create_trampoline_code): Fix order of
424         trampoline parameters.
425
426         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Fix signature.
427         
428         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Rename this
429         to mono_arch_get_vcall_slot_addr.
430
431         * Makefile.am tramp-sparc.c: Update the sparc port to use the generic
432         trampoline code.
433
434         * *-sparc.*: Merge the mini-xp-regalloc branch for sparc.
435
436 2005-07-19  Zoltan Varga  <vargaz@freemail.hu>
437
438         * mini-ia64.h mini-ia64.c: Finish pinvoke support.
439
440 2005-07-19  Martin Baulig  <martin@ximian.com>
441
442         * exceptions-amd64.c (throw_exception): Call
443         mono_debugger_throw_exception() here like we're doing it on i386.
444
445 2005-07-19  Zoltan Varga  <vargaz@freemail.hu>
446
447         * mini-ia64.c: Add optimized TLS access support.
448
449 2005-07-18  Zoltan Varga  <vargaz@freemail.hu>
450
451         * mini-exceptions.c: Ongoing IA64 work.
452
453         * mini-ia64.c inssel-long.brg: Ongoing IA64 work.
454
455         * mini.c: Use the default optimization set when embedding. Fixes
456         #75194.
457
458 2005-07-11  Zoltan Varga  <vargaz@freemail.hu>
459
460         * tramp-amd64.c tramp-ia64.c Makefile.am: Move arch independent parts 
461         of trampolines to a separate file.
462
463         * mini-trampolines.c: New file.
464
465         * mini.h tramp-x86.c: Move arch independent parts of trampolines to a 
466         separate file.
467         
468         * tramp-x86.c: Reorganize the trampoline code to be similar to the 
469         amd64/ia64 code.
470
471         * mini-codegen.c: Fix cygwin build.
472
473 2005-07-10  Zoltan Varga  <vargaz@freemail.hu>
474
475         * mini.c: Add some minor changes needed by the IA64 port.
476
477         * *-ia64.*: Ongoing IA64 work.
478
479 2005-07-09  Zoltan Varga  <vargaz@freemail.hu>
480
481         * tramp-amd64.c mini-amd64.c: Update after latest AOT changes. Split 
482         trampolines into arch-independent and arch-dependent parts.
483
484         * mini-amd64.c (mono_arch_lowering_pass): Fix store_membase_imm -> store_membase_reg rule.
485
486 2005-07-08  Zoltan Varga  <vargaz@freemail.hu>
487
488         * cpu-amd64.md: Merge the xp-regalloc-branch for amd64.
489
490         * mini-ops.h mini-amd64.h mini-amd64.c inssel-amd64.brg Makefile.am: Merge
491         the xp-regalloc-branch for amd64.
492
493         * mini-x86.h mini-x86.c cpu-pentium.md Makefile.am: Merge the
494         xp-regalloc-branch for x86.
495
496 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
497
498         * inssel.brg (OP_THROW_OR_NULL): Allways rethrow the abort exception.
499
500 2005-07-06  Martin Baulig  <martin@ximian.com>
501
502         * mini.c
503         (mono_jit_compile_method_inner): Call mono_get_inflated_method().
504         (mono_jit_runtime_invoke): Likewise.
505
506 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
507
508         * aot.c (mono_compile_assembly): Allocate the GOT in the .bss segment
509         on x86 too.
510         
511         * aot.c: Add new mono_aot_get_method_from_token () function to load AOT methods
512         without loading their metadata. Reorganize the file format so exception handling+
513         debug info is kept separate from normal method info. Create MonoJitInfo 
514         structures for methods lazily.
515
516         * tramp-x86.c (x86_aot_trampoline): Use the new from_token method to avoid
517         loading metadata.
518         (x86_class_init_trampoline): Patch AOT class init trampolines too.
519
520         * mini.c (mini_init): Install the new mono_aot_find_jit_info hook.
521
522         * mini.c (mono_method_to_ir): Reduce the number of class init trampoline calls
523         in AOT code.
524
525         * mini.h: Bump AOT file version.
526
527 2005-07-04  Zoltan Varga  <vargaz@freemail.hu>
528
529         * mini-x86.c (peephole_pass): Fix the loadi1/loadi2 rules.
530
531 2005-07-01  Raja R Harinath  <rharinath@novell.com>
532
533         * Makefile.am (check-local): Call semdel-wrapper.
534
535 2005-06-29  Zoltan Varga  <vargaz@freemail.hu>
536
537         * mini-x86.c: Revert the last change as it seems to break the build..
538
539 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
540
541         * mini-x86.c (peephole_pass): Fix the loadi1/loadi2 rules.
542         
543         * mini-x86.c (mono_arch_cpu_init): Fix setting of fp precision in the VC build.
544
545 2005-06-27  Ben Maurer  <bmaurer@ximian.com>
546
547         * mini.c (NEW_AOTCONST): make sure to call mono_get_got_var
548         outside of the macro, so strange stuff doesn't happen with gcc4
549         (NEW_AOTCONST_TOKEN): Likewise.
550
551 2005-06-28  Martin Baulig  <martin@ximian.com>
552
553         * mini.c (mini_class_is_system_array): New static method; use this
554         instead of `klass->parent == mono_defaults.array_class' everywhere
555         since this also works for the new generic array class.
556
557 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
558
559         * inssel.brg: Remove warnings.
560
561 2005-06-24  Zoltan Varga  <vargaz@freemail.hu>
562
563         * mini-ia64.c: Ongoing IA64 work.
564
565         * basic-float.cs: Add float->i1 conversion test.
566
567         * iltests.il: Add conv.u4 test.
568
569 2005-06-23  Zoltan Varga  <vargaz@freemail.hu>
570
571         * inssel-long.brg: Fix bug caused by last change.
572
573 2005-06-23  Geoff Norton  <gnorton@customerdna.com>
574
575         * mini-x86.h: Add __APPLE__ to the SC_* redefines with the other 
576         BSDs.  Allows the x86 JIT to work on OSX86
577
578 2005-06-22  Zoltan Varga  <vargaz@freemail.hu>
579
580         * inssel-long.brg: Use OP_LSHR_UN_IMM instead of OP_SHR_UN_IMM in
581         u4->i8 conversion.
582
583         * mini-ia64.c: Ongoing IA64 work.
584
585 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
586
587         * mini-ia64.c: Ongoing IA64 work.
588
589         * driver.c: Clean up jit_code_hash as well when using --regression.
590
591         * inssel-long.brg: Fix long->i4/u4 conversion rules.
592
593         * basic-long.cs: Add tests for long->u4 conversion.
594
595 2005-06-18  Ben Maurer  <bmaurer@ximian.com>
596
597         * mini.c: Take mono_get_domainvar out of macros. This makes sure
598         that we do not depend on undefined C behavior: the order stuff
599         gets evaluated within an expression. Fixes mono when compiled on
600         GCC 4.
601
602 2005-06-18  Zoltan Varga  <vargaz@freemail.hu>
603
604         * *-ia64.*: Ongoing IA64 work.
605
606         * aot.c: Lower memory usage while loading AOT methods.
607
608         * tramp-x86.c: Avoid allocating+freeing MonoJitInfo structures.
609
610         * mini.h: Bump AOT file format version.
611
612 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
613
614         * mini.c (mono_method_to_ir): Allow STACK_PTR as input to SWITCH.
615
616 2005-06-16  Sebastien Pouliot  <sebastien@ximian.com>
617
618         * declsec.c: Fixed APTC to check for FullTrust on caller assembly (and
619         not on callee assembly). Fixed some comments.
620
621 2005-06-16  Zoltan Varga  <vargaz@freemail.hu>
622
623         * aot.c (mono_compile_assembly): Mark the "methods" symbol as a function so
624         it gets proper disassembly.
625         (emit_method_info): Remove some dead code.
626
627         * mini.c (mini_method_compile): Allways allocate the GOT var in
628         mono_method_to_ir for emulating opcodes.
629
630 2005-06-13  Zoltan Varga  <vargaz@freemail.hu>
631
632         * mini.c (mono_jit_free_method): Remove the method from the JitInfo table
633         before freeing the code memory. Fixes #74990.
634
635         * objects.cs: Add regression test for #74992.
636
637         * liveness.c: Extend live ranges of arguments to the beginning of the
638         method. Fixes #74992.
639
640         * exceptions-ia64.c mini-ia64.h: Modify ip during exception handling
641         so it points into the faulting instruction.
642
643 2005-06-12  Zoltan Varga  <vargaz@freemail.hu>
644
645         * jit-icalls.c (mono_imul_ovf): Add exception handling.
646
647         * *-ia64.*: Ongoing IA64 work.
648
649         * mini.c (mini_init): Fix signature of mono_delegate_ctor.
650
651 2005-06-11  Zoltan Varga  <vargaz@freemail.hu>
652
653         * mini-ia64.h exceptions-ia64.c: Ongoing IA64 work.
654
655         * *-ia64.*: Ongoing IA64 work.
656
657 2005-06-10  Zoltan Varga  <vargaz@freemail.hu>
658
659         * basic-long.cs: Add tests for add/sub.ovf.
660
661         * basic.cs: Add tests for sub.ovf.
662
663         * *-ia64.*: Ongoing IA64 work.
664
665 2005-06-09  Zoltan Varga  <vargaz@freemail.hu>
666
667         * *-ia64.*: Ongoing IA64 work.
668
669         * basic.cs: Add conv.ovf.i4.un test.
670
671 2005-06-09  Massimiliano Mantione  <massi@ximian.com>
672
673         * mini.c: (remove_block_if_useless) Fixed bug 75061.
674         
675 2005-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
676
677         * mini.c: no SIGUSR2 on windows. Remove it for PLATFORM_WIN32.
678
679 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
680
681         * *-ia64.*: Ongoing IA64 work.
682
683 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
684
685         * trace.[ch]:
686         * mini.c: added the ability to toggle trace on/off using SIGUSR2.
687
688 2005-06-04  Zoltan Varga  <vargaz@freemail.hu>
689
690         * mini-ia64.c mini-ia64.h: Fix cleanup of memory stack.
691
692 2005-06-03  Zoltan Varga  <vargaz@freemail.hu>
693
694         * mini-amd64.c (emit_call): Fix yet another bug in the near call optimization.
695
696         * mini-amd64.c (amd64_patch): Add an assert to check that the destination
697         of a call is callable by a near call.
698
699 2005-05-31  Zoltan Varga  <vargaz@freemail.hu>
700
701         * mini-ia64.c: Ongoing IA64 work.
702
703 2005-05-29  Zoltan Varga  <vargaz@freemail.hu>
704
705         * genmdesc.c: Make the generated array non-static.
706
707         * inssel-long.brg: Fix LSHR_IMM rule.
708
709         * *-ia64.*: Ongoing IA64 work.
710
711         * *-ia64.*: Ongoing IA64 work.
712
713 2005-05-28  Zoltan Varga  <vargaz@freemail.hu>
714
715         * *-ia64.*: Ongoing IA64 work.
716
717         * *-ia64.*: Ongoing IA64 work.
718         
719         * mini-ia64.c: Ongoing IA64 work.
720
721         * *-ia64.* jit-icalls.c mini-codegen.c: Ongoing IA64 work.
722
723 2005-05-28  Zoltan Varga  <vargaz@freemail.hu>
724
725         * objects.cs basic-calls.cs: Move some tests to objects.cs.
726         
727         * objects.cs basic-long.cs: Move some tests to objects.cs.
728
729 2005-05-26  Zoltan Varga  <vargaz@freemail.hu>
730
731         * *-ia64.*: Ongoing IA64 work.
732
733         * iltests.il: Add a new test.
734
735         * mini.c (mono_method_to_ir): Initialize valuetypes when created using
736         newobj. Fixes #75042.
737
738 2005-05-22  Zoltan Varga  <vargaz@freemail.hu>
739
740         * *-ia64.*: Ongoing IA64 work.
741         
742         * *-ia64.*: Ongoing IA64 work.
743         
744         * *-ia64.*: Ongoing IA64 work.
745
746         * basic.cs objects.cs: Move tests accessing static variables as well.
747
748         * basic.cs objects.cs: Move test_0_pin_string to objects.cs.
749
750 2005-05-21  Zoltan Varga  <vargaz@freemail.hu>
751
752         * mini.c (SIG_HANDLER_SIGNATURE): Fix warning.
753
754         * driver.c: Always print failed tests.
755
756         * mini-codegen.c: Use cfg->frame_reg instead of a macro for the
757         frame pointer.
758
759         * *ia64*: Ongoing IA64 work.
760
761 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
762
763         * basic.cs: Add tests for add.ovf. Fix warnings.
764
765 2005-05-18  Miguel de Icaza  <miguel@novell.com>
766
767         * driver.c (mono_main): Avoid crash if no argument is passed to
768         --break;  Do not use g_error, but f_printf.   And fix all other
769         ocurrences of the same crash.
770
771 2005-05-17  Zoltan Varga  <vargaz@freemail.hu>
772
773         * mini.h mini.c: Generalize the existing uses of the MONO_DEBUG env variable
774         and add a new one: aborting when a SIGSEGV is raised while in unmanaged code.
775         Fixes #74742.
776
777 2005-05-14  Zoltan Varga  <vargaz@freemail.hu>
778
779         * *-ia64.*: Add beginnings of IA64 backend.
780
781         * Makefile.am mini-arch.h mini-codegen.c: Add IA64 support.     
782
783 2005-05-13  Zoltan Varga  <vargaz@freemail.hu>
784
785         * inssel-long.brg: Add missing ulong->{i1, i2} checked conversions.
786         Fixes #74925.
787
788         * basic-long.cs exceptions.cs: Add new tests. Fix some warnings.
789
790         * mini-amd64.c: Fix a warning.
791
792 2005-05-10  Zoltan Varga  <vargaz@freemail.hu>
793
794         * mini-amd64.c (mono_arch_output_basic_block): Fix stack space leakage
795         in float_neg. Fixes #74897.
796
797         * mini-amd64.c (emit_call): Fix another near call bug.
798
799 2005-05-06  Sebastien Pouliot  <sebastien@ximian.com>
800
801         * declsec.c: Keep the appdomain information in the structure. Added a 
802         missing "return FALSE" for Unmanaged if FullTrust is set (or else the
803         value gets overwritten).
804         * declsec.h: Set the default MonoArray for the the stack to 6. Added
805         an MonoAppDomain member to MonoSecurityFrame.
806         * mini-exceptions.c: Do not use a glist to keep GC allocated objects
807         used in the stack walk. Now use a MonoArray which grow (double) when
808         it gets full.
809
810 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
811
812         * mini.c: Re-enabled runtime cleanup, since running threads should
813         now properly stop when exiting.
814
815 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
816
817         * mini-codegen.c: New file contaning the arch-independent local
818         register allocator. Not used by any architectures yet.
819
820         * mini.h linear-scan.c: Merge some changes from the 
821         mini-xp-local-regalloc branch.
822
823 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
824
825         * mini-amd64.c (emit_call): Fix calls to native functions when the
826         runtime is compiled as a shared library. Fixes #74756.
827
828         * mini.c (mono_method_to_ir): Assert if ldsfld and friends are used
829         on a literal field. Fixes #74751.
830
831 2005-04-25  Raja R Harinath  <rharinath@novell.com>
832
833         * Makefile.am (RUNTIME): Add MONO_CFG_DIR.
834
835 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
836
837         * objects.cs: Add missing null casting test.
838
839 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
840
841         * mini-exceptions.c (mono_find_jit_info): Fix native offset calculation
842         in wrapper methods. Also rename 'address' variable to 'offset'.
843
844 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
845
846         * mini.c debug-mini.c aot.c tramp-x86.c driver.c: Fix some gcc 4.0
847         warnings.
848         
849         * Makefile.am (MCS): Use -unsafe instead of --unsafe.
850
851         * aot.c: Applied patch from "The Software Team" <software@solmersa.com>. Make AOT compilation
852         work on windows.
853
854 Mon Apr 18 16:20:32 CEST 2005 Paolo Molaro <lupus@ximian.com>
855
856         * exceptions-ppc.c: update code to handle stack traces (fixes bug #74452).
857
858 2005-04-17  Zoltan Varga  <vargaz@freemail.hu>
859
860         * mini-x86.c (mono_emit_stack_alloc): Initialize the whole allocated area not
861         just the last bytes.
862
863 2005-04-17  Zoltan Varga  <vargaz@freemail.hu>
864
865         * aot.c (mono_compile_assembly): Fix warning.
866
867         * mini-exceptions.c (ves_icall_get_frame_info): Fix bug introduced
868         by the _MSC_VER stuff.
869
870 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
871
872         * inssel-long.brg: Fix #74588.
873
874         * cpu-amd64.md: Fix #74591.
875
876         * iltests.il: Add new regression tests.
877
878 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
879
880         * trace.c (mono_trace_enter_method): Print enums as an int, not as a
881         valuetype.
882
883 2005-04-11  Zoltan Varga  <vargaz@freemail.hu>
884
885         * mini-x86.c (setup_stack): Unconditionally call pthread_attr_init ().
886
887         * exceptions-x86.c mini-x86.h mini-x86.c: Applied some freebsd patches 
888         from Bill Middleton <flashdict@gmail.com>.
889
890 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
891
892         * arrays.cs: Add new regression test. Fix warnings.
893
894 2005-04-09  Zoltan Varga  <vargaz@freemail.hu>
895
896         * mini-amd64.c (mono_arch_output_basic_block): Fix stack alignment
897         and leakage in CKFINITE.
898
899         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Change
900         this to a null op since it is called on amd64 too.
901
902         * exceptions-amd64.c (get_throw_trampoline): Align stack.
903
904         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Remove
905         body since this is not used on amd64.
906         
907         * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Remove duplicate define.
908
909         * mini-amd64.c: Remove obsolete fixmes.
910
911         * mini.c (print_method_from_ip): Fix debugging support.
912
913 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
914
915         * ssapre.c: Fix a subtle bug about availability, and limit SSAPRE
916         so that expressions that don't give much gain are not reduced.
917         * ssapre.h: Likewise.
918
919 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
920
921         * exceptions-x86.c (mono_arch_find_jit_info): Remove last SC_EBP reference.
922
923         * mini-x86.c (mono_emit_stack_alloc): Fix localloc under windows.
924
925         * mini-x86.h exceptions-x86.c: Hopefully fix compilation on *BSD.
926
927 2005-04-01  Zoltan Varga  <vargaz@freemail.hu>
928
929         * mini-sparc.c mini-sparc.h: Add asserts when running with sigaltstack.
930
931         * exceptions-x86.c (mono_arch_monoctx_to_sigctx): Fix cygwin build.
932
933 2005-03-31  Zoltan Varga  <vargaz@freemail.hu>
934
935         * mini-x86.c: If sigaltstack support is enabled, perform win32 style
936         stack touching.
937
938         * mini.h (mono_arch_sigctx_to_monoctx): New arch-specific function.
939
940         * mini.h (mono_arch_monoctx_to_sigctx): New arch-specific function.
941
942         * mini.c: sigaltstack support requires MONO_ARCH_USE_SIGACTION.
943
944         * mini-x86.h mini-x86.c exceptions-x86.c: Add support for 
945         MONO_ARCH_USE_SIGACTION. Fixes #74252.
946
947         * mini-x86.h: Enable MONO_ARCH_USE_SIGACTION on linux.
948
949         * mini-x86.c: Fix up stack overflow handling.   
950
951         * exceptions.cs: Add new regression test.
952
953 2005-03-30  Zoltan Varga  <vargaz@freemail.hu>
954
955         * mini-x86.c (mono_arch_emit_prolog): Adjust stack after calls to
956         mono_jit_thread_attach.
957
958         * mini.c (mono_method_to_ir): Verify called method is not abstract.
959
960 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
961
962         * mini.c (mono_method_to_ir): Applied Ben's patch from bug #61441 to
963         avoid calling constructors using callvirt.
964
965         * inssel.brg: Fix #74073.
966
967 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
968
969         * aot.c, mini.h: Added mono-compiler.h header to allow/ease 
970         compilation with non-GCC compilers.
971         * mini-exceptions.c, mini-x86.c|h: Patches to make compilation of mono
972         possible using VS.NET. Adapted from the work of J Lothian (for VC6).
973
974 Tue Mar 29 11:43:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
975
976         * inssel.brg, arrays.cs: fix long standing 64 bit issue in access to
977         klass->interface_offsets (will likely fix bug#74073).
978
979 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
980
981         * mini-amd64.c (mono_arch_is_int_overflow): Fix rex handling.
982
983 2005-03-28  Zoltan Varga  <vargaz@freemail.hu>
984
985         * mini-amd64.c (mono_arch_output_basic_block): Fix order of parameters
986         to amd64_div_reg_size ().
987         
988         * mini-amd64.c (mono_arch_emit_exceptions): Emit a near call here too.
989
990 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
991
992         * cpu-amd64.md (store_membase_reg): Fix length of storer8 opcodes.
993
994 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
995
996         * driver.c: Turn off automatic command line globbing under windows. Fixes #73763.
997
998 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
999
1000         * mini.c (mono_method_to_ir): Remove debugging stuff left in by mistake.
1001         
1002         * mini.c (mono_precompile_assembly): Load and precompile referenced
1003         assemblies as well. Fixes #74015.
1004
1005 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
1006
1007         * cpu-amd64.md (sin): Fix up maximum lengths of some opcodes.
1008
1009 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
1010
1011         * declsec.c: Skip linkdemand checks for intra-corlib calls. This skips
1012         a lot of checks and (anyway) permissions cannot work until corlib is 
1013         loaded.
1014
1015 Wed Mar 23 14:29:49 CET 2005 Paolo Molaro <lupus@ximian.com>
1016
1017         * mini-ppc.c: fixed ABI issue on sysv/ppc.
1018
1019 Tue Mar 22 19:03:17 CET 2005 Paolo Molaro <lupus@ximian.com>
1020
1021         * tramp-ppc.c, exceptions-ppc.c: added missing icache flush
1022         calls (fixes bug#72824).
1023
1024 Tue Mar 22 16:28:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1025
1026         * mini.c: fix tail recursion elimination (see test in bug#73936).
1027
1028 2005-03-21  Zoltan Varga  <vargaz@freemail.hu>
1029
1030         * mini-amd64.c (mono_arch_output_basic_block): Add inline versions of
1031         some fp functions in sse2 mode.
1032
1033 2005-03-20  Zoltan Varga  <vargaz@freemail.hu>
1034
1035         * mini-x86.c (emit_tls_get): Move tls handling into a separate helper function.
1036
1037 2005-03-19  Zoltan Varga  <vargaz@freemail.hu>
1038
1039         * mini.h mini.c: Add mono_get_jit_tls_key ().
1040
1041         * mini-x86.c: Enable fast TLS support on windows.
1042
1043 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
1044
1045         * declsec.c: Renamed aptc to allowpartiallytrustedcallers.
1046         * mini.c: Check for p/invoke method when generating code. If a
1047         p/invoke method, or it's class, isn't decorated with [Suppress
1048         UnmanagedCodeSecurity] then generate code to call System.Security.
1049         UnmanagedDemand (only if the security manager is active).
1050
1051 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1052
1053         * tramp-amd64.c (create_specific_trampoline): Revert parts of the 
1054         last change as it seems to cause strange crashes.
1055         
1056 Wed Mar 16 16:24:11 CET 2005 Paolo Molaro <lupus@ximian.com>
1057
1058         * *.c: handle unsafe function pointers where needed.
1059
1060 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1061
1062         * mini.c (mono_jit_free_method): Remove the fixme too.
1063
1064 2005-03-15  Miguel de Icaza  <miguel@novell.com>
1065
1066         * mini.c: As discussed, make the code actually free the delegate
1067         thunk now, to enable the debugging of delegate problems, use
1068         MONO_DEBUG=1 when running Mono. 
1069
1070         This takes also care of parts of the leaks as seen by Joe.
1071
1072 2005-03-15  Zoltan Varga  <vargaz@freemail.hu>
1073
1074         * mini-amd64.c (mono_arch_setup_jit_tls_data): Enable 
1075         thread_tls_offset calculation.
1076
1077 2005-03-14  Sebastien Pouliot  <sebastien@ximian.com>
1078
1079         * declsec.c: Reworked linkdemand checks for icall. The previous code
1080         was using the declaration code (untrusted) and didn't work as expected
1081         with the CLR 2.0. We're now more compatible with 2.0 than 1.x for this
1082         specific case.
1083
1084 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
1085
1086         * iltests.il: Add new localloc test.
1087
1088         * mini-amd64.c: Handle large stack allocations the same way as on
1089         windows if stack overflow handling is working.
1090         
1091         * mini-amd64.c: Allocate the signal stack using mmap.
1092
1093         * mini.c (sigsegv_signal_handler): Fix reading of context.
1094
1095         * mini-exceptions.c: Fix up stack overflow handling.
1096
1097         * mini-amd64.h mini-amd64.c: Fix up stack overflow handling.
1098
1099         * tramp-amd64.c (create_specific_trampoline): Optimize trampoline size.
1100
1101         * exceptions-amd64.c (mono_amd64_exceptions_init): Remove this.
1102
1103         * mini.h mini.c tramp-*.c: Move common trampoline code to mini.c.
1104
1105         * mini-x86.h mini-x86.c mini-amd64.h mini-amd64.c: Get rid of the
1106         tramp_init functions as they are no longer needed.
1107
1108 2005-03-12  Zoltan Varga  <vargaz@freemail.hu>
1109
1110         * tramp-amd64.c (mono_amd64_tramp_init): Fix typo.
1111         
1112         * tramp-amd64.c (mono_amd64_tramp_init): Init AOT trampoline as well.
1113
1114         * mini-amd64.h mini-amd64.c (mono_amd64_exceptions_init): Remove this.
1115         
1116         * mini.c mini-*.h: Remove OUT_OF_LINE_BBLOCK defines since all arches
1117         support that now.
1118
1119         * mini-ops.h: Add OP_LMUL_IMM.
1120
1121         * mini.c jit-icalls.cmini-amd64.h mini-amd64.c cpu-amd64.md: Implement
1122         long mul/div opcodes as intrinsic.
1123
1124         * mini-amd64.c (emit_call): Handle the case when the callee might be
1125         an AOT method.
1126
1127 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
1128
1129         * mini-amd64.c (mono_arch_get_vcall_slot_addr): Reorder cases to be
1130         extra safe.
1131         
1132         * mini-amd64.c (mono_arch_get_vcall_slot_addr): Fix ordering of cases.
1133
1134         * aot.c (mono_aot_load_method): Get rid of bogus make_writable call.
1135
1136 2005-03-09  Ben Maurer  <bmaurer@ximian.com>
1137
1138         * mini.c (mono_codegen): Don't leak here, to help people running
1139         monogrind.
1140
1141 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
1142
1143         * mini-amd64.c (mono_arch_output_basic_block): Fix int->float 
1144         conversions in sse2 mode.
1145
1146         * basic-float.cs: Add regression test.
1147         
1148         * mini-amd64.c: Reenable sse2.
1149
1150 2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
1151
1152         * mini-amd64.c: Disable sse2 until some regressions are fixed.
1153
1154 2005-03-07      Joerg Rosenkranz <joergr@voelcker.com>
1155
1156         * driver.c: Copyright text should include 2005.
1157         
1158 2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
1159
1160         * cpu-amd64.md (load_membase): Fix more max lengths.
1161
1162 2005-03-06  Zoltan Varga  <vargaz@freemail.hu>
1163
1164         * cpu-amd64.md (load_membase): Fix max length.
1165
1166         * mini-ops.h: Add OP_F<xx>_MEMBASE opcodes.
1167
1168         * inssel.brg: Add MONO_EMIT_BIALU_MEMBASE macro.
1169
1170         * cpu-amd64.md inssel-amd64.brg mini-amd64.h mini-amd64.brg: Finish SSE2
1171         support and enable it by default. Also add OP_F<xxx>_MEMBASE opcodes.
1172
1173         * basic-float.cs: Add rounding regression test.
1174
1175         * mini-amd64.c (INST_IGNORES_CFLAGS): Add more instructions.
1176
1177 2005-03-04  Neale Ferguson <NealeFerguson@earthlink.net>
1178
1179         * inssel-s390.brg, mini-s390.c: Add support for passing/returning small
1180         structures in registers for pinvoke wrappers.
1181
1182 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
1183
1184         * mini-exceptions.c (ves_icall_get_trace): Return wrapper info as well.
1185
1186 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
1187
1188         * mini.h mini.c mini-x86.c: Pass the domain of the native->managed
1189         wrapper to mono_jit_thread_attach.
1190
1191         * mini.c (mini_jit_thread_attach): New jit icall.
1192
1193         * mini-x86.c (mono_arch_emit_prolog): Attach to the VM in 
1194         native->managed wrappers.
1195
1196         * exceptions.cs: Add new regression test.
1197
1198         * mini.c (optimize_branches): Check regions in the cbranch to throw
1199         block case as well. Fixes #73242.
1200
1201 Tue Mar 1 18:35:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1202
1203         * mini.c: thread safety fixes.
1204
1205 2005-02-27  Zoltan Varga  <vargaz@freemail.hu>
1206
1207         * tramp-amd64.c (amd64_magic_trampoline): Disable the method_ptr
1208         patching stuff, since delegates use jump trampolines so there is
1209         no caller.
1210
1211         * tramp-amd64.c (create_trampoline_code): Pass NULL as 'code' in 
1212         jump trampolines.
1213         
1214         * tramp-amd64.c: Fix build.
1215
1216         * mini-x86.c tramp-x86.c: Moved get_vtable_slot_addr into mini-x86.c and rename
1217         it to mono_arch_.... Add get_delegate_method_ptr implementation for x86.
1218
1219         * mini-amd64.h mini.h mini-amd64.c tramp-amd64.c (mono_amd64_get_vcall_slot_addr):
1220         Rename this to mono_arch....
1221         (mono_amd64_get_delegate_method_ptr_addr): Ditto.
1222
1223         * mini-amd64.c (mono_amd64_get_delegate_method_ptr_addr): New helper function.
1224
1225         * mini-amd64.c (emit_call): If both the caller and the callee is
1226         guaranteed to have 32 bit addresses, emit a normal call.
1227
1228         * tramp-amd64.c: Adapt to changes in mini-amd64.c.
1229
1230         * tramp-amd64.c (amd64_magic_trampoline): Remove patching of trampolines. 
1231         * tramp-amd64.c (amd64_magic_trampoline): Add support for patching the
1232         method_ptr inside delegates.
1233
1234 2005-02-26  Zoltan Varga  <vargaz@freemail.hu>
1235
1236         * mini.c (mono_jit_free_method): Free the method info even if the native code is
1237         invalidated. Fixes #73001.
1238
1239         * mini.c: Add a proper icall wrapper for mono_delegate_ctor.
1240
1241         * mini-x86.c: Only use stdcall for pinvokes on windows.
1242
1243 Thu Feb 24 15:22:30 CET 2005 Paolo Molaro <lupus@ximian.com>
1244
1245         * mini.c, mini.h: make mono_lmf_addr a fast-access thread var.
1246         * mini-x86.c: remove unreliable __thread var offset detection,
1247         use the correct accessors and enable by default.
1248
1249 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1250
1251         * mini.c (mono_jit_free_method): Fix memory leak.
1252
1253 2005-02-22  Zoltan Varga  <vargaz@freemail.hu>
1254
1255         * mini.c (mono_method_to_ir): Allocate a GOT var for THROW and RETHROW. 
1256
1257 2005-02-21  Zoltan Varga  <vargaz@freemail.hu>
1258
1259         * cpu-amd64.md: Fix lengths of atomic opcodes.
1260
1261 Mon Feb 21 16:52:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1262
1263         * driver.c: try to not imply using ICU is any good.
1264
1265 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
1266
1267         * mini-amd64.c (mono_arch_get_inst_for_method): Implement more 
1268         functions as inline ops.
1269
1270         * mini-ops.h inssel-amd64.brg cpu-amd64.md mini-amd64.c: Implement
1271         some Interlocked functions as inline ops.
1272
1273         * mini.c (move_basic_block_to_end): Fix bug in last patch.
1274
1275         * mini.h (MonoBasicBlock): Reorganize fields a bit.
1276
1277         * mini-ops.h inssel.brg: Add OP_NOT_REACHED.
1278
1279         * mini.c: Add support for OP_NOT_TAKEN.
1280
1281         * mini-amd64.h mini-amd64.c: Add support for passing/returning small 
1282         structures in registers for pinvoke wrappers.
1283
1284         * mini-amd64.c: Fix warnings.
1285
1286 2005-02-19  Zoltan Varga  <vargaz@freemail.hu>
1287
1288         * mini.h (MonoCompile): Add 'ret_var_is_local' field.
1289
1290         * mini.h mini.c (mono_arch_create_vars): Add new arch specific hook.
1291
1292         * mini.c (NEW_RETLOADA): If the ret variable is a local, use its 
1293         address instead of loading the address from it.
1294
1295         * mini-x86.c: Add support for returning small structs in registers
1296         on Win32. Fixes part of #70864.
1297         
1298 2005-02-18  Zoltan Varga  <vargaz@freemail.hu>
1299
1300         * trace.c (get_token): Improve error checking.
1301
1302 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1303
1304         * jit-icalls.c (mono_ldvirtfn): Explicitly check for a NULL obj here.
1305
1306 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com> 
1307  
1308         * mini.h: Moved MONO_EXCEPTION_* enum to metadata/class-internals.h so
1309         it can be reused for MonoClass.
1310         * mini.c: Renamed MONO_EXCEPTION_SECURITY to MONO_EXCEPTION_SECURITY
1311         _LINKDEMAND.
1312
1313 2005-02-15  Sebastien Pouliot  <sebastien@ximian.com>
1314
1315         * mini.c: Fixed 2 cases where I sent a MonoMethod to managed code 
1316         instead of a MonoReflectionMethod. The method information wasn't used
1317         when displaying SecurityException details (but will be now).
1318
1319 2005-02-15  Atsushi Enomoto  <atsushi@ximian.com>
1320
1321         * Makefile.am : windows build fix.
1322
1323 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1324
1325         * iltests.il: Add new regression test.
1326
1327         * mini.c (mono_method_to_ir): Allocate a GOT var in CEE_NEWOBJ. Fixes
1328         #72522.
1329
1330 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com> 
1331  
1332         * mini.c: Moved linkdemand check into helper function check_linkdemand
1333         to allow reuse for all intructions (CALL, CALLVIRT, NEWOBJ, JMP, 
1334         LDFTN, LDVIRTFTN).
1335
1336 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com>
1337
1338         * declsec.c: Added statistics counter for different kinds of 
1339         LinkDemands.
1340         * mini.h: Added CAS statistic counters to MonoJitStats. Removed unused
1341         (and commented) declaration.
1342         * mini.c: Added statistics counter for security Demand code 
1343         generation. Added display of security statistics.
1344
1345 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
1346
1347         * declsec.c (mono_declsec_linkdemand_aptc): Applied patch from Robert Jordan (robertj@gmx.net).
1348         Fix compilation errors under gcc-2.95.
1349
1350 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
1351
1352         * mini.c, driver.c: Use the new jit trampoline hashtable
1353
1354 Fri Feb 11 18:47:11 CET 2005 Paolo Molaro <lupus@ximian.com>
1355
1356         * mini.c, jit-icalls.c: use the managed implementation of memcpy, too.
1357
1358 2005-02-11  Martin Baulig  <martin@ximian.com>
1359
1360         * debug-mini.c (mono_debug_close_method): Free the line number array.
1361
1362 2005-02-10  Zoltan Varga  <vargaz@freemail.hu>
1363
1364         * aot.c: Break up large methods into smaller ones. Share GOT slots for
1365         icalls.
1366
1367         * mini.h: Bump AOT file format version. 
1368
1369 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
1370
1371         * declsec.c: Added LinkDemand support and it's special cases for ECMA,
1372         APTC and P/Invoke.
1373         * declsec.h: Added macros to get/set lazyly initialized security 
1374         informations about assemblies. Added new enum for different type of
1375         possible LinkDemand violation. Added function to check LinkDemands.
1376         * mini.h: Added a field to MonoCompile to hold any security violation
1377         detected when JITting a method (so it can be thrown later).
1378         * mini.c: Added LinkDemand checks in mono_method_to_ir for CEE_CALL 
1379         and CEE_CALLVIRT. Added code to throw exception at the end of
1380         mini_method_compile (note: the exception is unhandled right now).
1381
1382 Thu Feb 10 15:49:44 CET 2005 Paolo Molaro <lupus@ximian.com>
1383
1384         * mini.c, jit-icalls.c: use the managed implementation of
1385         memset for initobj and memset, to avoid managed <-> unmanaged
1386         transitions.
1387
1388 2005-02-10  Zoltan Varga  <vargaz@freemail.hu>
1389
1390         * inssel.brg (mini_emit_virtual_call): Disable the virtual->nonvirtual
1391         optimization if it would need a GOT var.
1392
1393         * basic.cs: Add tests for constant propagation and switch statements.
1394
1395         * ssa.c: Fix out-of-range constant propagation and switch statements.
1396
1397 2005-02-09    <vargaz@freemail.hu>
1398
1399         * inssel-x86.brg (reg): Align the allocation size in the localloc(imm) case too.
1400
1401 2005-02-08  Zoltan Varga  <vargaz@freemail.hu>
1402
1403         * cpu-amd64.md (load_membase): Fix max length of load_membase.
1404
1405 Tue Feb 8 18:21:11 CET 2005 Paolo Molaro <lupus@ximian.com>
1406
1407         * mini.c: update to new signature of mono_class_get_allocation_ftn().
1408
1409 2005-02-06  Neale Ferguson <NealeFerguson@earthlink.net>
1410
1411         * cpu-s390.md,  mini-s390.c: Correct bug with register usage on certain 
1412         arithmetic operations.
1413
1414 Sun Feb 6 07:10:12 EST 2005 Paolo Molaro <lupus@ximian.com>
1415
1416         * mini-ppc.c: add a workaround for broken user code that
1417         DllImports vararg functions with non-vararg signatures.
1418
1419 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1420
1421         * mini.c (mono_jit_compile_method_inner): Add detection and a 
1422         meaningfull error message for assemblies written in Managed C++.
1423
1424         * tramp-amd64.c mini-amd64.h: Add support for 
1425         create_trampoline_from_token ().
1426
1427         * aot.c mini-x86.c abcremoval.c: Applied patch from
1428         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
1429
1430 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1431
1432         * mini.h mini.c mini-x86.h tramp-x86.c: Add a new kind of trampoline 
1433         which takes a MonoImage/token as parameter instead of a MonoMethod.
1434
1435         * aot.c: Use the new trampoline for initializing vtables.
1436
1437         * aot.c: Add support for ldfld/stfld_remote wrappers.
1438
1439         * mini-ops.h cpu-pentium.md inssel-x86.brg mini-x86.c: Add optimized
1440         rules for compare <MEM>, IMM.
1441
1442         * mini.h (MONO_AOT_FILE_VERSION): Bump it.
1443
1444         * aot.c: Handle inherited finalizers correctly.
1445
1446 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1447
1448         * inssel.brg (stmt): Add a missing _setup_... ().
1449
1450         * aot.c: Save some parts of the class state to the AOT file and use it
1451         to recompute that state when a class is initialized.
1452
1453         * mini.c: Install AOT hooks into the runtime.
1454
1455         * mini.h: Bump AOT file format version.
1456         
1457         * mini.c (mono_method_to_ir): Initialize pointer type locals correctly.
1458         Fixes #72148.
1459
1460         * iltests.il: Add new test.
1461
1462 Wed Feb 2 16:53:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1463
1464         * mini.c: fix typo.
1465
1466 Wed Feb 2 16:37:13 CET 2005 Paolo Molaro <lupus@ximian.com>
1467
1468         * mini.c: setup the statistical profiler in the thread attach
1469         callback to cope with the new single thread code.
1470
1471 Wed Feb 2 15:43:58 CET 2005 Paolo Molaro <lupus@ximian.com>
1472
1473         * mini-ppc.c: ensure we have enough room for the profiler
1474         calls (fixed bug#72084).
1475
1476 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
1477
1478         * aot.c: Get rid of the MonoAotMethod structure and the hashtable holding 
1479         it.
1480
1481 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
1482
1483         * driver.c: Re-enabled SSAPRE (two commits, I was just dumb).
1484
1485 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
1486
1487         * ssapre.c: Fixed an issue with down safety (this allows IronPython
1488         to succesfully execute parrotbench).
1489         * ssapre.h: Likewise.
1490
1491 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
1492
1493         * ssa.c: In mono_ssa_rename_vars, forced the creation of a new SSA
1494         variable for stores to method arguments (fixes a SSAPRE issue).
1495
1496 Tue Feb 1 15:52:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1497
1498         * mini.c: handle value types in dup, fixes gen-112.cs.
1499
1500 Tue Feb 1 11:45:19 CET 2005 Paolo Molaro <lupus@ximian.com>
1501
1502         * mini-ppc.c, cpu-g4.md, tramp-ppc.c: use a slower code
1503         sequence for calls in dynamic methods to avoid thunks.
1504
1505 Tue Feb 1 11:44:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1506
1507         * mini.c: correctly remove dynamic methods from the hashtable.
1508
1509 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
1510
1511         * driver.c: Disabled SSAPRE until fix the bug that appears
1512         in IronPython's parrotbench.
1513
1514 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
1515
1516         * aot.c (mono_compile_assembly): Get rid of Skip (other) messages.
1517
1518         * mini.c (mono_method_to_ir): Revert the previous change.
1519         
1520         * mini.c (mono_method_to_ir): Do not inline ldfld and stfld wrappers
1521         when AOT compiling.
1522
1523         * tramp-x86.c (x86_magic_trampoline): Avoid calls to 
1524         mono_jit_info_table_find () etc. when running under valgrind.
1525
1526         * inssel.brg: Fix warnings.
1527
1528         * mini-exceptions.c: Fix warnings.
1529
1530 2005-01-31  Martin Baulig  <martin@ximian.com>
1531
1532         * driver.c (compile_all_methods_thread_main): Don't try to compile
1533         generic methods or anything which has type parameters.
1534
1535 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
1536
1537         * aot.c: Avoid costly calls to mono_method_full_name in tracing code and fix memory leaks.
1538
1539         * TestDriver.cs: Add --verbose flags.
1540
1541         * graph.c ssa.c: Fix 64 bit warnings.
1542         
1543         * abcremoval.h ssapre.h abcremoval.c ssapre.c mini.c tramp-amd64.c 
1544         trace.c mini-exceptions.c linear-scan.c inssel-amd64.brg inssel.brg:
1545         Fix 64 bit warnings.
1546
1547         * mini-amd64.c (mono_arch_output_basic_block): Fix uninitialized
1548         variable not spotted by gcc.
1549         
1550         * mini-amd64.c inssel-amd64.brg: Applied patch from  
1551         Willibald Krenn <Willibald.Krenn@gmx.at>. Clean up usage of 
1552         X86_COMPARE_MEMBASE opcodes.
1553
1554         * exceptions-amd64.c (mono_arch_find_jit_info): Fix AMD64 build.
1555
1556 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
1557
1558         * *: MonoMethod->signature might be NULL now. You *MUST* use
1559         mono_method_signature.
1560
1561 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
1562
1563         * driver.c (compile_all_methods_thread_main): Compile the methods
1564         without invoking cctors.
1565
1566 Fri Jan 28 18:28:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1567
1568         * mini.c: remove ben's "optimizations" to dup+stloc (bug #71905).
1569         * basic-calls.cs: test for the above.
1570
1571 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
1572
1573         * mini.c mini-exceptions.c aot.c exceptions-*.c: Update after 
1574         MonoJitInfo changes.
1575
1576 2005-01-27  Zoltan Varga  <vargaz@freemail.hu>
1577
1578         * mini-exceptions.c (mono_handle_exception): Compute the stack trace
1579         eagerly if it contains dynamic methods.
1580         
1581         * mini-exceptions.c (ves_icall_System_Exception_get_trace): New icall.
1582
1583         * mini-exceptions.c (mono_handle_exception): Avoid computing the stack
1584         trace, it is now computed by an icall from trace_ips.
1585         
1586         * mini-exceptions.c: Fix a warning.
1587
1588 Thu Jan 27 13:38:34 CET 2005 Paolo Molaro <lupus@ximian.com>
1589
1590         * mini-exceptions.c: don't bother getting stack trace info if
1591         it's not going to be used.
1592
1593 2005-01-27  Raja R Harinath  <rharinath@novell.com>
1594
1595         * Makefile.am (common_sources): Add ssapre-cee-ops.h and
1596         ssapre-mini-ops.h.
1597
1598 2005-01-26  Zoltan Varga  <vargaz@freemail.hu>
1599
1600         * mini.c (remove_block_if_useless): Only print debug stuff with -v -v.
1601
1602         * aot.c: Avoid calling mono_method_get_header () if not needed.
1603
1604         * mini.h: Bump AOT file format version.
1605         
1606         * mini.c (mono_emit_native_call): Allocate a GOT var here.
1607
1608         * mini.c (mono_print_tree): Print more info for calls.
1609
1610 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
1611
1612         * declsec.h: Remove warning by adding missing include for marshal.h
1613
1614 2005-01-26  Martin Baulig  <martin@ximian.com>
1615
1616         * mini.c (mono_method_to_ir): In CEE_UNBOX_ANY, don't increase
1617         `ip' twice.
1618
1619 2005-01-25  Zoltan Varga  <vargaz@freemail.hu>
1620
1621         * mini-amd64.c (mono_arch_call_opcode): Add missing MONO_SSA_LOAD/STORE
1622         flags.
1623
1624         * ssa.c (mono_ssa_compute): Fix crashes when using AOT.
1625
1626         * aot.c (mono_compile_assembly): Fix a warning.
1627
1628 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com>
1629
1630         * declsec.c: Look for security attributes on the original MonoMethod 
1631         (and not the wrapped one). This fix permissions on icalls.
1632
1633 2005-01-23  Zoltan Varga  <vargaz@freemail.hu>
1634
1635         * mini-amd64.c (mono_arch_allocate_vars): Use mono_allocate_stack_slots ().
1636
1637         * mini.c (mono_allocate_stack_slots): Add a fixme.
1638
1639         * mini-x86.c (mono_arch_allocate_vars): Use mono_allocate_stack_slots ().
1640
1641 Sun Jan 23 16:16:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1642
1643         * inssel.brg: optimize casts of sealed types (more
1644         optimizations waiting for fixes in remoting).
1645
1646 2005-01-23  Zoltan Varga  <vargaz@freemail.hu>
1647
1648         * inssel.brg (stmt): Add another dummy rule.
1649
1650         * driver.c: Fix warnings.
1651
1652         * driver.c (mono_main): If running under valgrind, instruct glib to use
1653         the system allocation functions so valgrind can track the memory
1654         allocated by the g_... functions.
1655
1656         * inssel.brg (stmt): Add DUMMY rule for OP_DUMMY_STORE.
1657
1658         * mini-ops.h: Add OP_DUMMY_STORE opcode.
1659
1660         * mini.h (MONO_BBLOCK_IS_IN_REGION): New helper macro.
1661
1662         * liveness.c: Handle OP_DUMMY_STORE. Enable register allocation for
1663         variables in try regions.
1664
1665         * mini.c (mini_method_compile): Don't disable optimizations on large
1666         methods when AOT compiling.
1667
1668         * mini.c (mono_allocate_stack_slots): New arch independent method to 
1669         allocate stack slots. Not yet used.
1670
1671 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
1672
1673         * debug-mini.c (mono_debug_close_method): Plug some leaks.
1674
1675 Sat Jan 22 13:41:51 EST 2005 Paolo Molaro <lupus@ximian.com>
1676
1677         * mini-ppc.c: make the branch info relative as the code
1678         buffer can be reallocated.
1679
1680 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
1681
1682         * aot.c: Allow decoding of the new  MONO_PATCH_INFO_DECLSEC.
1683         * driver.c: Removed the AOT/security restriction. Now initialize the
1684         security manager (in metadata) if --security is used.
1685         * mini.c|h: Add the MONO_PATCH_INFO_DECLSEC code to use the index,
1686         rather than the pointer to declarative security, when AOT is used.
1687
1688 Sat Jan 22 09:35:19 EST 2005 Paolo Molaro <lupus@ximian.com>
1689
1690         * mini.h, mini-ppc.h, mini-ppc.c: updated to use out of line
1691         basic blocks, reduced intrinsic exception throwing code size.
1692
1693 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
1694
1695         * driver.c (mini_usage): Reorder the usage screen.
1696
1697 2005-01-21  Zoltan Varga  <vargaz@freemail.hu>
1698
1699         * mini.c (mono_resolve_patch_target): Fix warning.
1700
1701 2005-01-20  Zoltan Varga  <vargaz@freemail.hu>
1702
1703         * mini-x86.c (mono_arch_local_regalloc): Fix bug introduced by
1704         previous patch.
1705
1706         * mini-amd64.c (mono_arch_local_regalloc): Ditto.       
1707
1708         * mini-amd64.c (mono_arch_local_regalloc): Revert last patch as it
1709         breaks the amd64 build.
1710
1711         * mini-x86.c (mono_arch_local_regalloc): Fix bug in div/rem 
1712         register allocation. Fixes #71454.
1713
1714         * mini-amd64.c (mono_arch_local_regalloc): Ditto.       
1715
1716         * arrays.cs: Add new regression test.   
1717
1718 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
1719
1720         * ssapre.c: Turned usage of snprintf to GString.
1721         * ssapre.h: disabled MONO_APPLY_SSAPRE_TO_SINGLE_METHOD
1722         (I left it on by mistake in my previous commit).
1723
1724 Thu Jan 20 12:00:45 CET 2005 Paolo Molaro <lupus@ximian.com>
1725
1726         * mini.c, cfold.c, basic-calls.cs: preserve side effects
1727         on cond branch optimization (fixes bug# 71515).
1728
1729 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
1730
1731         * abcremoval.c: Fixed bug 71062.
1732         * abcremoval.h: Likewise.
1733
1734 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
1735
1736         * mini.c: Added a new functionality to optimize_branches, the removal
1737         of useless basic blocks, and fixed some problem in the removal of
1738         critical edges; some utility functions added for both purposes.
1739         * ssapre.c: Added complex expression support, and fixed bug 70637.
1740         * ssapre.h: Likewise.
1741         * ssapre-cee-ops.h: Added file with list of "CEE_*" opcodes
1742         enabled in SSAPRE.
1743         * ssapre-mini-ops.h: Likewise, but for "OP_*" opcodes.
1744         * driver.c: Re-enabled SSAPRE.
1745
1746 2005-01-19  Martin Baulig  <martin@ximian.com>
1747
1748         * mini.c (mono_method_to_ir): Call mono_get_inflated_method() on
1749         the result of mono_get_method_constrained().
1750
1751 2005-01-18  Neale Ferguson <NealeFerguson@earthlink.net>
1752
1753         * exceptions-s390.c tramp-s390.c: Allocate code using the global code
1754         manager.
1755
1756 2005-01-18  Geoff Norton  <gnorton@customerdna.com>
1757
1758         * jit-icalls.c (mono_llmult_ovf): Fix other overflow conditions to
1759         be detected.  Fixes #59296.
1760
1761 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
1762
1763         * mini-amd64.c (mono_arch_output_basic_block): Remove some assertions
1764         which can happen. Fixes #71361.
1765
1766 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
1767
1768         * exceptions-sparc.c tramp-sparc.c: Allocate code using the global code
1769         manager.
1770
1771 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
1772
1773         * mini.c (mono_create_jump_trampoline): Revert last change as it causes
1774         appdomain-unload.exe to fail.
1775         
1776         * mini.c: Fix some memory leaks.
1777
1778 Mon Jan 17 16:16:23 CET 2005 Paolo Molaro <lupus@ximian.com>
1779
1780         * inssel.brg: handle the new size of rank, idepth, max_interface_id.
1781         Fixed bug and sped up some codepaths.
1782
1783 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
1784
1785         * mini.c: Fix some memory leaks.
1786
1787         * exceptions.cs basic-long.cs: Add test for checked ulong->int 
1788         conversion.
1789
1790         * inssel-long.brg: Implement long_conv_to_ovf_i4_un. Fixes #71319.
1791
1792         * inssel-long.brg: Fix conv.ovf.i8 when run on an int32. Fixes
1793         #71320.
1794
1795         * iltests.il: Add regression test for #71320.
1796
1797 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
1798
1799         * mini.c (mono_codegen): Fix installation of profiler hooks.
1800
1801         * mini-sparc.c mini-amd64.c: Don't allocate stack space for dead vars.
1802
1803 Sun Jan 16 12:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1804
1805         * mini.h, mini.c, cfold.c: optimize access to enum
1806         readonly fields, too. Eval conditional branches if possible
1807         to perform unreachable code removal in more cases.
1808
1809 2005-01-15  Zoltan Varga  <vargaz@freemail.hu>
1810
1811         * tramp-amd64.c exceptions-amd64.c: Use the new global code manager.
1812
1813         * mini.c (mono_global_codeman_reserve): New function to allocate code memory from a global
1814         code manager.
1815
1816         * tramp-x86.c mini-x86.c exceptions-x86.c: Allocate all code memory so mono works with
1817         WinXP DEP. Fixes #71244.
1818
1819 2005-01-14  Zoltan Varga  <vargaz@freemail.hu>
1820
1821         * inssel.brg: Allways convert CEE_CONV_OVF_I4 to a move on 64 bit platforms. Fixes #71236.
1822
1823 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
1824
1825         * mini-x86.c (mono_arch_output_basic_block): Fix OP_ATOMIC_ADD_NEW_I4.
1826
1827 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
1828
1829         * mini-exceptions.c exceptions-ppc.c aot.c: Cope with MonoJitInfo 
1830         changes.
1831
1832         * mini.h: Bump AOT version.
1833
1834         * mini.h (MonoCompile): Change exvar to a hash table.
1835
1836         * mini.c: Allocate a separate exvar for each handler block.
1837
1838         * mini.c: Get rid of the computation of filter_lengths, its not needed.
1839
1840         * mini.c inssel.brg: Change OP_THROW_OR_NULL to compare the current
1841         ex var with the pending exception and only throw if the two are equal.
1842         Fixes #68552.
1843         
1844         * exceptions.cs: Add tests for rethrow and nested catch clauses.
1845
1846         * mini-x86.c: Fix warnings.
1847
1848         * Makefile.am (common_sources): Move mini-exceptions.c here as it is
1849         used by all the ports now.
1850
1851         * aot.c: Add write-symbols and save-temps options.
1852
1853 2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
1854
1855         * mini-x86.c: Add support for returning structs in registers from pinvoke functions on WIN32.
1856
1857 Mon Jan 10 16:11:16 EST 2005 Neale Ferguson <nealeferguson@earthlink.net>
1858
1859         * mini-ops.h, inssel-s390.brg, cpu-s390.md: Support OP_ATOMIC__xxx 
1860         operations.
1861
1862         * tramp-s390.c: Check vtable slot belongs to the domain.
1863
1864         * mini-exceptions.c, exceptions-s390.c: Standardize exception handling
1865         as per other platforms.
1866
1867         * mini-s390.c, mini-s390.h: Enable out-of-line bblock support.
1868
1869 Mon Jan 10 18:53:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1870
1871         * driver.c: we don't run the Main() code in a subthread anymore.
1872
1873 Mon Jan 10 17:54:16 CET 2005 Paolo Molaro <lupus@ximian.com>
1874
1875         * mini.c: added experimental rtc support in the statistical
1876         profiler: if the user has the permission, more accurate statistics
1877         are gathered. Run with: MONO_RTC=4096 mono --profiler=default:stat ....
1878         The MONO_RTC value must be restricted to what the linux rtc allows:
1879         power of two from 64 to 8192 Hz.
1880
1881 2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
1882
1883         * mini-x86.c (mono_arch_emit_exceptions): Fix #71121.
1884
1885 Mon Jan 10 05:20:49 EST 2005 Paolo Molaro <lupus@ximian.com>
1886
1887         * mini-ppc.c: better icache flush for smp.
1888
1889 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
1890
1891         * mini-amd64.c (emit_move_return_value): Fix memory leak.
1892
1893         * mini-x86.c (get_call_info): Add the get_call_info () code from the
1894         amd64 port, not yet used.
1895
1896 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
1897
1898         * mini.c (mono_method_to_ir): Disable inlining of ldfld wrappers with
1899         a struct type.
1900
1901 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
1902
1903         * driver.c: Added --security option to activate the security manager.
1904         Right now this will allow code generation for declarative demands and
1905         is disabled when AOT is specified.
1906         * mini.c: Add code generation for declarative security demands.
1907         * mini.h: Add mono_use_security_manager as an extern gboolean.
1908
1909 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
1910
1911         * aot.c (mono_compile_assembly): Speed up compilation a bit by
1912         emitting more dense assembly code.
1913
1914         * mini-sparc.c mini-sparc.h exceptions-sparc.c: Enable optimized corlib
1915         exception throwing stuff.
1916
1917 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
1918
1919         * mini-sparc.c (mono_arch_emit_exceptions): Fix typo in previous patch. Remove
1920         dead code.
1921
1922         * mini-amd64.c (mono_arch_emit_exceptions): Remove duplicate epilog stuff
1923         left in by mistake.
1924
1925         * driver.c (EXCLUDED_FROM_ALL): Disable SSAPRE until bug #70637 is 
1926         fixed.
1927
1928         * mini-sparc.h mini-sparc.c: Enable out-of-line bblock support.
1929
1930         * tramp-*.c: Only patch vtable slots if the object is in the current
1931         domain. Fixes appdomain-unload.exe.
1932
1933         * mini-amd64.c mini-amd64.h: Enable out-of-line bblock support.
1934         
1935         * mini-amd64.c (mono_arch_local_regalloc): Port regalloc fix from
1936         x86 branch.
1937
1938 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
1939
1940         * mini.c (reverse_branch_op): New helper function.
1941
1942         * mini.c (optimize_branches): Run the new optimization only on 
1943         platforms which support it. Also reverse all kinds of branches.
1944
1945         * mini.h (MonoBasicBlock): Add 'out_of_line' field.
1946
1947         * mini.c (mono_method_to_ir): Set 'out_of_line' for bblocks which have
1948         a throw statement.
1949
1950         * mini.c (optimize_branches): Reverse not-equals branches if the false
1951         bblock is a throw. This happens a lot of time with argument checking in
1952         corlib.
1953
1954         * mini.c (mono_codegen): Add support for placing basic blocks after
1955         the function epilogue.
1956
1957         * mini-x86.c mini-x86.h: Add support for placing basic blocks after the
1958         function epilogue.
1959         
1960 2005-01-05  Miguel de Icaza  <miguel@ximian.com>
1961
1962         * mini.c (setup_stat_profiler): Only set this up if the platform
1963         supports ITIMER_PROF.
1964
1965 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
1966
1967         * mini-x86.c (mono_arch_local_regalloc): Fix a bug introduced by the
1968         previous patch.
1969
1970         * inssel.brg: Fix a warning.
1971
1972 Wed Jan 5 16:40:18 CET 2005 Paolo Molaro <lupus@ximian.com>
1973
1974         * mini.c: added support for statistical profiler 
1975         (run with: --profile=default:stat).
1976
1977 2005-01-04  Zoltan Varga  <vargaz@freemail.hu>
1978
1979         * mini-x86.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Enable this on x86.
1980
1981         * mini-x86.c cpu-pentium.md: More fixes for usage of global registers.
1982
1983         * mini-amd64.c (mono_arch_local_regalloc): Port some regalloc fixes 
1984         related to global registers from the amd64 port.
1985
1986 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
1987
1988         * mini.c (mono_method_to_ir): Handle MONO_CLASSCONST.
1989
1990         * mini-amd64.c (mono_arch_local_regalloc): Fix some regalloc problems
1991         with global registers.
1992         (mono_arch_output_basic_block): Fix SWITCH in the AOT case.
1993
1994         * aot.c (emit_method_code): Fix the 'method emitted as' messages.
1995
1996 2004-12-31  Zoltan Varga  <vargaz@freemail.hu>
1997
1998         * debug-mini.c (encode_value): Fix off-by-one.
1999
2000         * aot.c (encode_value): Likewise.
2001
2002         * mini.c (mono_method_to_ir): Disable AOT for methods containing LDPTR.
2003
2004 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
2005
2006         * mini.c linear-scan.c: Add a workaround for the mcs crash when using 
2007         AOT.
2008
2009         * aot.c (mono_aot_load_method): Free up patch info if no longer needed.
2010         
2011         * aot.c (emit_method_info): Increase size of temp buffer.
2012
2013         * mini-x86.c cpu-pentium.md mini.c: Load fp constants differently in 
2014         the AOT case.
2015
2016 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
2017
2018         * aot.c (emit_method_info): Fix build.
2019         
2020         * aot.c: Further rework of the AOT file format to reduce the size of
2021         the method info data.
2022
2023         * mini.h: Bump AOT file format version.
2024
2025 2004-12-27  Martin Baulig  <martin@ximian.com>
2026
2027         * mini.c (mini_get_method): New static method; call
2028         mono_get_method_full() and mono_get_inflated_method().
2029         (mono_method_to_ir): Use mini_get_method() instead of
2030         mono_get_method_full(). 
2031
2032 2004-12-26  Patrik Torstensson  <patrik.torstensson@gmail.com>
2033
2034         * mini-x86.c (atomic ops): fixed bug interlocked bug #70784. 
2035
2036 2004-12-25  Zoltan Varga  <vargaz@freemail.hu>
2037
2038         * inssel.brg (ldind_to_load_membase): Handle CEE_LDIND_I8.
2039
2040         * inssel-amd64.brg: Add some optimization rules.
2041
2042 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
2043
2044         * aot.c: Remove the use of MonoGHashTable and other GC stuff. The
2045         standard not GC'd stuff is fine.
2046
2047 2004-12-24  Zoltan Varga  <vargaz@freemail.hu>
2048
2049         * aot.c: Rework the AOT file format to get rid of most of the global
2050         symbols. This reduces the size of the mscorlib.dll.so by 1MB.
2051
2052         * mini.h: Bump AOT file format version.
2053         
2054 2004-12-23  Zoltan Varga  <vargaz@freemail.hu>
2055
2056         * mini.h: Bump AOT file format version.
2057
2058         * aot.c (mono_aot_is_got_entry): New function to determine if an 
2059         address is inside a GOT.
2060
2061         * aot.c mini-x86.c tramp-x86.c: Make all patches use the GOT.
2062
2063         * cpu-pentium.md: Increase the maximum size of some instructions which
2064         might involve a got access.
2065         
2066         * mini.c (get_method_from_ip): Another debug helper function.
2067
2068         * mini.c: Call mono_get_got_var () in a couple places. Handle the case
2069         when got var accesses are created during the decompose phase.
2070
2071         * mini-sparc.c: Change mono_compile_aot to cfg->compile_aot.
2072
2073         * mini.h mini.c mini-x86.c aot.c mini-sparc.c: Add a 'compile_corlib'
2074         argument mini_compile_method and to MonoCompile, and use this to
2075         determine whenever a given method is compiled for AOT. This allows the
2076         other methods compiled during AOT compilation to be free of AOT stuff,
2077         so the backends does not need to add special support for them by
2078         creating a fake GOT etc.
2079
2080         * mini-x86.c (mono_arch_patch_code): Remove fake got stuff as it is no
2081         longer needed.
2082
2083 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
2084
2085         * mini.c (mono_method_to_ir): It turns out that some of the
2086         x-appdomain wrappers are lax with types, so just ignore this for
2087         all wrappers.
2088
2089         * inssel.brg (OP_CHECK_ARRAY_TYPE): Optimize this by only looking
2090         at the vtable->klass. If it is non-shared code we can just use the
2091         vtable.
2092
2093 Tue Dec 21 17:43:06 CET 2004 Paolo Molaro <lupus@ximian.com>
2094
2095         * mini-ppc.c: access MonoDomain from tls, too.
2096
2097 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com>
2098
2099         * declsec.c: Removed unused variable (and related warning ;-)
2100
2101 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
2102
2103         * iltests.il: New test for LDELEMA on an array of ref types.
2104
2105         * mini.c (CEE_LDELEMA): We need to emit OP_CHECK_ARRAY_TYPE for
2106         all ldelema's on reftypes.
2107         (check_call_signature): Remove the OP_CHECK_ARRAY_TYPE from here,
2108         it was the wrong place to put it.
2109
2110         * mini-x86.c (mono_arch_output_basic_block): Just use ecx as the
2111         register to pop to make this cleaner, at the request of Paolo.
2112
2113 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
2114
2115         * mini-ops.h (OP_GETHASHCODE): New op.
2116
2117         * inssel.brg (OP_GETHASHCODE): Emit code for the new opcode
2118
2119         * mini.c (mini_get_inst_for_method): Create the intrinsic hash
2120         operation.
2121
2122         For a microbenchmark, this reduces the cost of Hashtable.get_Item
2123         by 25%.
2124         
2125         * mini-x86.c (mono_arch_output_basic_block): Rather than
2126
2127         add ebp, 4
2128
2129         Emit
2130
2131         pop edx
2132
2133         The first is 3 bytes while the second is 1. This saves 36 kb on
2134         mscorlib, quite a big saving. When bootstraping mcs, I was able to
2135         see a small boost because of icache locality.
2136
2137         * cfold.c (FOLD_BINOPCOMM): Kill add foo, 0
2138
2139 Mon Dec 20 12:19:40 EST 2004 Paolo Molaro <lupus@ximian.com>
2140
2141         * Makefile.am, mini-ppc.h, mini-exceptions.c, exceptions-ppc.c:
2142         started code sharing with the generic code.
2143
2144 Mon Dec 20 11:08:06 EST 2004 Paolo Molaro <lupus@ximian.com>
2145
2146         * mini-ppc.c, cpu-g4.md: added code for direct access to
2147         tls data slots.
2148
2149 Mon Dec 20 10:58:28 EST 2004 Paolo Molaro <lupus@ximian.com>
2150
2151         * mini-ops.h, inssel-x86.brg, cpu-amd64.md, inssel.brg, inssel-amd64.brg,
2152          mini-amd64.c, mini-x86.c, cpu-pentium.md: renamed OP_X86_TLS_GET
2153         to OP_TLS_GET.
2154
2155 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
2156
2157         * declsec.c|h: Added functions to cache the declarative stack modifiers
2158         in MonoJitInfo and to create a security frame from a MonoJitInfo 
2159         structure.
2160         * mini.c: Initialize jinfo->cas_inited to FALSE when MonoJitInfo is
2161         created. Register internal calls for System.Security.SecurityFrame::
2162         _GetSecurityFrame and _GetSecurityStack.
2163         * mini.h: Added definition for new icalls (in mini-exceptions.c) and
2164         the definitions for the new stack walk/callback mechanism.
2165         * mini-exceptions.c: Added internal call GetSecurityFrame (to get the 
2166         first security frame for LinkDemands and InheritanceDemands) and
2167         GetSecurityStack for Demands. Both use the new mono_walk_stack code
2168         from lupus.
2169         * mini-x86.h, mini-amd64.h, mini-sparc.h: Architecture specific stack
2170         walk initialization (lupus).
2171
2172 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
2173
2174         * mini.c (mono_method_to_ir): In CEE_DUP, handle the dup / stloc
2175         idiom.
2176         (handle_loaded_temps): Do not create a temporary variable for
2177         things that we know are temps. They will never be modified.
2178         (mono_spill_call): Set MONO_INST_IS_TEMP
2179         (mono_emulate_opcode): ditto
2180         (emit_tree): ditto
2181         (mono_method_to_ir.CEE_DUP): ditto
2182
2183 2004-12-19  Ben Maurer  <bmaurer@ximian.com>
2184
2185         * mini.c (type_to_eval_stack_type): Make this handle the void type
2186         (mono_emit_call_args): set the call->type with type_to_eval_stack_type
2187         (emit_tree): use ip_in_bb to special case some common idioms
2188         Update all callers to pass in the IP.
2189         (mono_method_to_ir): Make CEE_CALL* do the above as well.
2190
2191         This gives us a nice 2% speedup in mcs bootstrap.
2192
2193         * mini-x86.c (peephole_pass): Peephole pass to make
2194         mov  [foo], eax
2195         push [foo]
2196
2197         into
2198
2199         mov [foo], eax
2200         push eax
2201
2202         * mini.c (ip_in_bb): new method.
2203         (mono_method_to_ir): use this method rather than doing the hash
2204         lookup ourselves.
2205
2206         * linear-scan.c (mono_linear_scan): When expiring actives, you
2207         don't need to keep around variables that expire on this
2208         instruction. This makes it so that:
2209              a = b + 1
2210         will turn into:
2211              store (ebx add (ebx, 1))
2212         which will become
2213              add ebx, 1
2214
2215 2004-12-19  Zoltan Varga  <vargaz@freemail.hu>
2216
2217         * mini.c (mono_method_to_ir): Optimize the common ldobj+stloc 
2218         combination to avoid doing two copies. Fix up problems with previous
2219         patch.
2220
2221         * mini.c: Fix 64 bit warnings.
2222
2223         * mini-x86.c (INST_IGNORES_CFLAGS): Add OP_STOREI4_MEMBASE_REG.
2224
2225 2004-12-17  Zoltan Varga  <vargaz@freemail.hu>
2226
2227         * mini-amd64.h mini-amd64.c exceptions-amd64.c: Port exception handling
2228         changes from the x86 code.
2229
2230         * mini.h: Add prototype for mono_arch_get_throw_corlib_exception ().
2231
2232 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
2233
2234         * mini-x86.c (mono_arch_emit_epilog): Optimize the corlib exception
2235         throwing code to reduce its size, unify the AOT and non-aot code and 
2236         get rid of relocations in the AOT case.
2237
2238         * mini-x86.h mini.c exceptions-x86.c 
2239         (mono_arch_get_throw_corlib_exception): New arch specific function to 
2240         raise corlib exceptions which doesn't require relocations in the 
2241         caller.
2242
2243         * aot.c (emit_method): Handle PATCH_INFO_NONE as well.
2244
2245 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
2246
2247         * mini.c (mono_emit_method_call): Only allocate the got var when it is
2248         needed.
2249
2250         * mini-x86.c (mono_arch_patch_code): Add missing PATCH_INFO_METHOD_REL
2251         in the AOT case.
2252
2253 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
2254
2255         * mini-x86.c, cpu-pentium.md, inssel-x86.brg: Fixed bug
2256         with add function when used from Inc/dec atomic 
2257         functions. Re-enabled optimization on x86.
2258         * mini-ops.h: renamed atomic_add functions to
2259         allow _add to match the Interlocked::Add and
2260         _add_next to match Interlocked::Inc/Dec.
2261
2262 2004-12-15  Massimiliano Mantione  <massi@ximian.com>
2263
2264         * mini.c: Fixed a subtle bug in mono_method_to_ir, about the
2265         linking of BBs to the end BB, and enabled SSAPRE also with
2266         consprop and copyprop (which was prevented by that bug).
2267
2268 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
2269
2270         * mini-x86.c: disabling the Interlocked optimizing code. 
2271
2272 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
2273
2274         * aot.c (load_aot_module): Move reading of got_addr after the AOT
2275         file version check.
2276         
2277 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
2278
2279         * mini-x86.c, inssel-x86.brg, cpu-pentium.md: removed _imm 
2280         interlocked optimization due lack of support on x86, rewrote 
2281         exchange to take into account that base may be in eax.
2282         
2283         xsp works again; activated Interlocked optimizing code.
2284         
2285 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
2286
2287         * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file version.
2288
2289 2004-12-13  Zoltan Varga  <vargaz@freemail.hu>
2290
2291         * mini-ops.h: Add new opcodes.
2292
2293         * mini.h: Add new patch types. Add got_var to MonoCompile.
2294
2295         * mini.h mini-x86.c mini-amd64.c aot.c: Rename 
2296         mono_arch_get_aot_patch_offset () to mono_arch_get_patch_offset () and
2297         make it work with all kinds of patchable code.
2298
2299         * inssel.brg inssel-x86.brg: Add new rules dealing with computing the
2300         address of the GOT, and referencing entries in the GOT.
2301
2302         * mini.c: Add code to load the GOT address if needed by an opcode.
2303
2304         * aot.c mini-x86.h mini-x86.c cpu-pentium.md: Add support for position 
2305         independent AOT code on the x86 using an elf-style Global Offset Table.
2306
2307 2004-12-14  Raja R Harinath  <rharinath@novell.com>
2308
2309         * Makefile.am (RUNTIME): Set MONO_SHARED_DIR.
2310
2311 2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2312
2313         * mini-x86.c: disabling the Interlocked optimizing code. It segfaults
2314         when running xsp.
2315
2316 2004-12-13  Patrik Torstensson  <patrik.torstensson@gmail.com>
2317
2318         * mini-x86.c,mini-ops.h,inssel-x86.brg,cpu-pentium.md: Implementation
2319         of Interlocked:Increment/Decrement/Add as inline ops.
2320         (mini-x86.c (mono_arch_get_inst_for_method and mono_arch_output_basic_block))
2321
2322 2004-12-12  Geoff Norton  <gnorton@customerdna.com>
2323
2324         * exceptions-ppc.c: Reorder code so gcc3.4 can compile it
2325         * mini-ppc.c: Unify mono_arch_patch_code with changes in r37636.
2326
2327 2004-12-12  Duncan Mak  <duncan@ximian.com>
2328
2329         * mini-ppc.c (mono_arch_patch_code): Hopefully made this build
2330         again. `patch_info->table_size' is no longer valid after Zoltan's
2331         commit #37636.
2332
2333 2004-12-12  Martin Baulig  <martin@ximian.com>
2334
2335         * mini.c (mono_method_to_ir): Only call mono_debug_init_method()
2336         if we are the "real" method, ie. not an inlined method inside it.
2337
2338 2004-12-11  Ben Maurer  <bmaurer@ximian.com>
2339
2340         * mini.c (CEE_LDSFLD): Make sure that the vtable has been init'd
2341         before we look in the special fields table. This fixes
2342         ../tests/thread-static-init.cs.
2343
2344 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2345
2346         * mini.c: return immediately after setting OP_ARRAY_RANK or CEE_LDLEN
2347         for Array get_Rank and get_Length. Fixes bug #70465.
2348
2349 2004-12-11  Zoltan Varga  <vargaz@freemail.hu>
2350
2351         * mini.h mini.c aot.c: Put the bblock table for a SWITCH patch into a
2352         separate structure to reduce the size of MonoJumpInfo.
2353
2354 Fri Dec 10 18:09:22 CET 2004 Paolo Molaro <lupus@ximian.com>
2355
2356         * mini.c, mini.h, aot.c, driver.c: allow disabling the aot code.
2357
2358 2004-12-10  Patrik Torstensson  <patrik.torstensson@gmail.com>
2359
2360         * mini.c (mini_get_inst_for_method): Changed to allow ports
2361         to return a MonoInst instead of opcode 
2362         (renamed mini_get_opcode_for_method to better reflect the new functionality)
2363         
2364         * mini-[x86|s390|s390x|ppc|sparc].c (mono_arch_get_inst_for_method): 
2365         Allow ports to return a created MonoInst instead of op-code, will enable
2366         new optimizations.
2367         (renamed mini_get_opcode_for_method to better reflected the functionality)
2368
2369 2004-12-09  Zoltan Varga  <vargaz@freemail.hu>
2370
2371         * mini.c (NEW_AOTCONST): Share some code between the different NEW_AOTCONST macros.
2372
2373 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2374
2375         * mini.c jit-icalls.c: Pass generic_context to mono_ldtoken_wrapper.
2376         Fixes #69985.
2377
2378 2004-12-08  Martin Baulig  <martin@ximian.com>
2379
2380         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use `fsig->signature'
2381         if we're a CEE_CONSTRAINED call.  Fixes gen-118.cs.
2382
2383 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2384
2385         * mini-sparc.c (mono_arch_output_basic_block): Implement OP_FCONV_TO_<X>
2386         correctly.
2387
2388         * exceptions.cs: Disable some tests which depend on properties of x86 fp
2389         arithmetic.
2390
2391 2004-12-08  Raja R Harinath  <rharinath@novell.com>
2392
2393         * Makefile.am (CLEANFILES): Add *.exe, *.dll.
2394
2395 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
2396
2397         * mini-sparc.c (mono_arch_output_basic_block): Fix LOCALLOC_IMM
2398         bug introduced by the previous patch.
2399
2400 Tue Dec 7 11:44:39 CET 2004 Paolo Molaro <lupus@ximian.com>
2401
2402         * mini-ppc.c, objectc.cs: handle large structs passed by value
2403         (fixes bug #69972).
2404
2405 Tue Dec 7 10:43:31 CET 2004 Paolo Molaro <lupus@ximian.com>
2406
2407         * mini-ppc.c: OP_ARGLIST implementation from
2408         Geoff Norton  <gnorton@customerdna.com>.
2409
2410 Tue Dec 7 10:14:25 CET 2004 Paolo Molaro <lupus@ximian.com>
2411
2412         * inssel-x86.brg, inssel-ppc.brg: fix reference to register
2413         in stmt: OP_OUTARG_VT (reg) (should fix bug #69785).
2414
2415 Tue Dec 7 10:06:39 CET 2004 Paolo Molaro <lupus@ximian.com>
2416
2417         * exceptions-ppc.c: avoid calling ppc_patch in exception trampolines.
2418
2419 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2420
2421         * inssel-s390.brgi, mini-ops.h, mini-s390.c : Add stubs for support of tls offset
2422         support.
2423
2424 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
2425
2426         * mini-sparc.c: Zero out localled-ed memory.
2427
2428         * iltests.il: Add tests for zeroing out localloc-ed memory.
2429
2430 2004-12-04  Martin Baulig  <martin@ximian.com>
2431
2432         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use the new
2433         mono_method_get_signature_full().       
2434
2435 2004-12-03  Massimiliano Mantione  <massi@ximian.com>
2436
2437         * mini.c: Added removal of critical edges (prerequisite for SSAPRE),
2438         and some utility functions (always for SSAPRE), integrated SSAPRE.
2439         * mini.h: Likewise.
2440         * driver.c: Added ssapre option.
2441         * ssa.c: Small fix on OP_ARG handling.
2442         * ssapre.c, ssapre.h: Added files containing SSAPRE implementation.
2443         * Makefile.am: Likewise.
2444
2445 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2446
2447         * tramp-x86.c (mono_arch_create_jit_trampoline): Remove code which is
2448         now in the xp code.
2449
2450         * mini.c (mini_init): Register mono_thread_force_interruption_checkpoint
2451         icall.
2452
2453 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2454
2455         * inssel-s390.brg : Add OP_OUTARG_VT (OP_REFANYTYPE (reg)) rule.
2456         
2457         * cpu-s390.md : Increase instruction length of oparglist.
2458
2459         * mini-s390.c : Implement vararg and TYPEDEBYREF support.
2460
2461 2004-11-30  Martin Baulig  <martin@ximian.com>
2462
2463         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, added support for
2464         virtual generic methods.  We call a special helper_compile_generic_method()
2465         icall to retrieve the method from the vtable, inflate and compile
2466         it and then do a CEE_CALLI.  Thanks a lot to Paolo for this idea.
2467
2468         * jit-icalls.c (helper_compile_generic_method): New JIT icall.
2469
2470 2004-11-30  Zoltan Varga  <vargaz@freemail.hu>
2471
2472         * mini-sparc.c: Fix up vararg corner cases. Fixes #70019.
2473
2474 2004-11-29  Zoltan Varga  <vargaz@freemail.hu>
2475
2476         * cpu-sparc.md mini-sparc.c (long_conv_to_ovf_i): Fill missing delay slot.
2477         Fixes #69929.
2478
2479 2004-11-27  Ben Maurer  <bmaurer@ximian.com>
2480
2481         * inssel.brg (CEE_SWITCH): The AOT stuff Zoltan added is only for
2482         platforms with PIC aot.
2483
2484 2004-11-28  Martin Baulig  <martin@ximian.com>
2485
2486         * mini.c (mono_method_to_ir): In CEE_DUP, added handle_stobj().
2487         Fixes gen-112.cs.
2488
2489 2004-11-28  Martin Baulig  <martin@ximian.com>
2490
2491         * mini-x86.c (mono_arch_call_opcode): Use the original type, not
2492         the result of mono_type_get_underlying_type() to check whether
2493         we're byref.
2494
2495 2004-11-26  Martin Baulig  <martin@ximian.com>
2496
2497         * mini.c
2498         (mono_method_to_ir): Use `!method->signature->has_type_parameters'
2499         in the g_assert().
2500
2501 2004-11-26  Zoltan Varga  <vargaz@freemail.hu>
2502
2503         * mini-amd64.c (mono_arch_emit_this_vret_args): Handle this and vret
2504         the same way as the other arguments so they won't get clobbered.
2505
2506         * mini-amd64.c (mono_arch_output_basic_block): Avoid doing virtual 
2507         calls through R11 since it is clobbered by the trampoline code.
2508
2509 2004-11-26  Raja R Harinath  <rharinath@novell.com>
2510
2511         * Makefile.am: Consistently use $(RUNTIME) rather than ./mono to
2512         pick up in-tree mscorlib.dll.
2513
2514 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
2515
2516         * aot.c: Rename MonoAOTModule->cleanup to out_of_date.
2517
2518         * mini-amd64.c aot.c: Switch to PIC relative AOT code. References to 
2519         runtime data/code are now stored in a table similar to the GOT in ELF. 
2520         This allows the code itself to be position independent.
2521
2522         * aot.c: Fix loading of referenced assemblies after the lazy assembly
2523         loading changes.
2524
2525         * aot.c: Attach ELF type (object/function) directives to all global
2526         symbols.
2527
2528         * tramp-amd64.c (amd64_magic_trampoline): Patch RIP relative calls too.
2529
2530         * inssel.brg (SWITCH): Emit an AOT_CONST in the aot case.
2531
2532         * mini-amd64.h: Turn on PIC AOT code.
2533
2534         * mini.h (mono_arch_get_aot_patch_offset): New arch specific function
2535         returning the offset within an OP_AOTCONST instruction where the GOT
2536         offset needs to be added.
2537
2538         * mini.h: Bump AOT file format version.
2539
2540 2004-11-25  Martin Baulig  <martin@ximian.com>
2541
2542         * mini.c (mono_method_to_ir): In CEE_CALL, don't allow calling any
2543         uninflated generic methods.
2544
2545 2004-11-25  Martin Baulig  <martin@ximian.com>
2546
2547         * mini.c (mono_method_to_ir): Don't allow any uninflated generic methods.
2548
2549 2004-11-24  Martin Baulig  <martin@ximian.com>
2550
2551         * minit.c (type_to_eval_stack_type): Set `inst->klass' to the
2552         original klass (this only applies for generic instances).
2553
2554 2004-11-24  Martin Baulig  <martin@ximian.com>
2555
2556         * mini.c (mono_method_to_ir): Use `STACK_OBJ' instead of
2557         `ldind_type [CEE_LDIND_REF]' (which would be beyond the end of
2558         that array).
2559
2560 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
2561
2562         * mini.c (mono_method_to_ir): Disable inlining for methods containing
2563         localloc. Fixes #69678.
2564
2565         * iltests.il (test_0_localloc_inline): Add regression test for #69678.
2566         
2567 2004-11-23  Zoltan Varga  <vargaz@freemail.hu>
2568
2569         * mini-amd64.c (mono_arch_output_basic_block): Set %al to the number of
2570         used SSE registers on pinvoke calls. Fixes #69774.
2571
2572 2004-11-23  Geoff Norton  <gnorton@customerdna.com>
2573
2574         * inssel-ppc.brg, mini-ppc.c: Use mono_class_from_mono_type instead of
2575         vt->inst_vtype->data.klass.  This fixes generic structs and bug #69766
2576
2577 2004-11-23  Raja R Harinath  <rharinath@novell.com>
2578
2579         * Makefile.am (MCS,ILASM): Don't refer to runtime/ directory.
2580         Refer directly to the mcs/ tree.
2581
2582 2004-11-19  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2583
2584         * mini-s390.c, tramp-s390.c, mini-s390.h: Add LMF processing for trampolines.
2585         Check if a trampoline for a synchronized method is required. 
2586
2587 Fri Nov 19 17:34:21 CET 2004 Paolo Molaro <lupus@ximian.com>
2588
2589         * mini-ppc.c, cpu-g4.md: set to zero the memory allocated
2590         with localloc if needed. Throe arithmetric exception in
2591         div an rem if needed. Implement ovf checks in OP_LCONV_TO_OVF_I.
2592         Adapted from a patch by Geoff Norton  <gnorton@customerdna.com>.
2593
2594 2004-11-19  Geoff Norton  <gnorton@customerdna.com>
2595
2596         * mini-ppc.c: Call mono_type_get_underlying_type to unwrap generic
2597         types before switching on type.  Fixes #69622.
2598
2599 2004-11-19  Raja R Harinath  <rharinath@novell.com>
2600
2601         * Makefile.am (check-local): New.  Integrate into 'make check'.
2602         (MCS,RUNTIME): Define using in-tree mono and mcs.
2603         (ILASM): New.
2604         (%.exe): Use $(ILASM).
2605
2606 Fri Nov 19 14:54:07 CET 2004 Paolo Molaro <lupus@ximian.com>
2607
2608         * mini-ppc.c: adjust initial prolog size (bug #69691).
2609
2610 2004-11-18  Zoltan Varga  <vargaz@freemail.hu>
2611
2612         * cpu-pentium.md (localloc): Increase max instruction len. Fixes
2613         #69664.
2614
2615 2004-11-17  Raja R Harinath  <rharinath@novell.com>
2616
2617         * Makefile.am (clean-local): Rename from 'clean'.
2618
2619 2004-11-15  Nelae Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2620
2621         * mini.c, mini-x86.c, mini-amd64.c, exceptions-s390.c: Add siginfo_t parameter
2622         to mono_arch_is_int_overflow. 
2623         * exceptions-s390.c: Add mono_arch_is_int_overflow routine to discern between
2624         SIGFPE events.
2625
2626 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
2627
2628         * declsec.c|h: New files to support declarative security attributes.
2629         Added function to check if a method has (applicable) security.
2630         * mini.c|h: Add check for declarative security attributes in
2631         mono_method_check_inlining.
2632         * Makefile.am: Added declsec.c and declsec.h to the build.
2633
2634 Mon Nov 15 11:53:46 CET 2004 Paolo Molaro <lupus@ximian.com>
2635
2636         * mini.c, mini.h: update to keep dynamic code info per-domain.
2637
2638 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
2639
2640         * mini.c mini-*.h: Get rid of MONO_ARCH_HAVE_RETHROW since all architectures support it now.
2641         (mini_init): Get rid of it from here too.
2642
2643 Thu Nov 11 20:17:17 CET 2004 Paolo Molaro <lupus@ximian.com>
2644
2645         * mini-ppc.c, mini-ppc,h, cpu-g5.md, exceptions-ppc.c:
2646         implemented OP_RETHROW (patch by Geoff Norton
2647         <gnorton@customerdna.com>).
2648
2649 2004-11-10  Geoff Norton  <gnorton@customerdna.com>
2650
2651         * tramp-ppc.c (ppc_magic_trampoline): Don't trampoline methods
2652         between appdomains.  Fixes appdomain-unload on PPC.
2653
2654 2004-10-26  Lluis Sanchez Gual  <lluis@novell.com>
2655
2656         * exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
2657         mini-exceptions.c: handle the new wrapper types.
2658         * mini.c: The CEE_ISINST and CEE_CASTCLASS opcodes now take the
2659         token value as a MonoClass* when compiling a wrapper.
2660         mono_jit_create_remoting_trampoline now takes an additional
2661         MonoRemotingTarget parameter.
2662         
2663 2004-11-10  Martin Baulig  <martin@localhost>
2664
2665         * mini.c (mono_method_to_ir): Use `generic_container->context'
2666         rather than creating a new one.
2667
2668 2004-11-09  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2669
2670         * exceptions-s390.c, mini-s390, cpu-s390.md: Add support for OP_RETHROW.
2671
2672         * inssel-390.md, mini-s390.c: Correct register allocation for globals.
2673
2674 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
2675
2676         * aot.c (mono_aot_init): Add MONO_AOT_CACHE env variable to turn on
2677         the experimental aot cache stuff.
2678
2679 Tue Nov 9 17:30:20 CET 2004 Paolo Molaro <lupus@ximian.com>
2680
2681         * aot.c, mini.c, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
2682         mini-exceptions.c: update to exception clause structure changes.
2683
2684 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
2685
2686         * exceptions-x86.c (throw_exception): Fix warnings.
2687
2688         * mini-x86.h mini-x86.c cpu-pentium.md exceptions-x86.c: Add support 
2689         for OP_RETHROW.
2690
2691 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
2692
2693         * exceptions-sparc.c (get_throw_exception): Really fix this.
2694
2695 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
2696
2697         * tramp-*.c: we no longer support icalls without wrappers, so
2698         a bit of code can be removed here
2699
2700 2004-11-07  Zoltan Varga  <vargaz@freemail.hu>
2701
2702         * exceptions-sparc.c (get_throw_exception): Fix more bugs in previous
2703         patch.
2704
2705         * cpu-sparc.md: Add op_rethrow.
2706
2707         * exceptions-sparc.c (get_throw_exception): Fix bug in previous patch.
2708
2709         * mini-sparc.h mini-sparc.c exceptions-sparc.c: Add support for OP_RETHROW.
2710
2711         * mini.h: Add mono_arch_get_rethrow_exception () arch specific function.
2712         * mini-ops.h: Add OP_RETHROW.
2713
2714         * mini.c inssel.brg: Distinguish between THROW and RETHROW.
2715
2716         * cpu-amd64.c mini-amd64.c exceptions-amd64.c: Add support for OP_RETHROW.
2717
2718 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
2719         
2720         * helpers.c: Change otool arguments from -V -v -t to -v -t on Darwin
2721         Makes the output much easier to read
2722
2723 2004-11-05  Ben Maurer  <bmaurer@ximian.com>
2724
2725         * ssa.c: allocate MonoMethodVar.uses from the mempool. First, this
2726         prevents another huge leak when compiling with ssa. Secondly, the
2727         performance of doing this rather than freeing the lists is much
2728         better. GList does a lock every time you allocate a list link,
2729         so that it can use a memory pool. So, it is better to just use
2730         a memory pool of our own.
2731         
2732         * ssa.c, linear-scan.c: replace g_list_remove_link with
2733         g_list_delete.  The remove one does not free the GList, so we were
2734         leaking memory. On -O=all --compile-all with corlib, this cut down
2735         3 MB of allocations.
2736
2737 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
2738
2739         * tramp-sparc.c (mono_arch_create_jit_trampoline): Fix sparc build.
2740
2741         * tramp-amd64.c (mono_arch_create_jit_trampoline): Fix amd64 build.
2742
2743         * mini.h mini.c tramp-*.c: Moved xp parts of JIT trampoline creation
2744         into a new function mono_create_jit_trampoline ().
2745
2746 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
2747
2748         * trace.c (get_spec): Allow tracing of classes without a namespace.
2749
2750 2004-11-02  Sebastien Pouliot  <sebastien@ximian.com>
2751
2752         * mini.c: Fix pointer overwrite in mini_method_compile.
2753
2754 2004-11-2  Geoff Norton  <gnorton@customerdna.com>
2755
2756         * inssel-ppc.brg (OP_OUTARG_VT (CEE_LDOBJ (base))):
2757         The darwin ABI needs some special handling for 1 and 2 byte structs
2758         Lets use lbz/lhz instead of lwz everywhere.
2759         * mini-ppc.c (calculate_sizes):  The Darwin ABI needs from special handling
2760         for 1 and 2 byte structs and struct which are size >= 3 || size % 4 != 0.
2761         Use stb/sth for the former, and put the latter always on stack instead of in
2762         argument registers.
2763
2764 2004-10-30  Zoltan Varga  <vargaz@freemail.hu>
2765
2766         * trace.c (is_filenamechar): Add '_'.
2767
2768 2004-10-29  Neale Ferguson  <Neale.Ferguson@SoftwareAG-usa.com>
2769
2770         * mini-s390.c: Fix prolog length to allow for large trace requirements.
2771
2772         * exceptions-s390.c: Remove dwarf unwinding stuff that was unused.
2773
2774 2004-10-29  Zoltan Varga  <vargaz@freemail.hu>
2775
2776         * Makefile.am (libgc_libs): Do some automake magic so libmono/mono
2777         depends on libmonogc. Fixes #68805.
2778
2779 2004-10-26  Miguel de Icaza  <miguel@ximian.com>
2780
2781         * mini.c (mono_jit_free_method): Provide extra information for
2782         this error.  Currently this leaks, but will be turned into a
2783         developer option in the future.
2784
2785 2004-10-26  Zoltan Varga  <vargaz@freemail.hu>
2786
2787         * driver.c (mono_main): Applied patch from Willibald Krenn <willibald.krenn@gmx.at>. Make --graph work for icalls and pinvoke methods.
2788
2789 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
2790
2791         * aot.c (mono_aot_load_method): Align PATCH_INFO_R8 on an 8 byte 
2792         boundary. Fixes reading of PATCH_INFO_R4 and R8.
2793         (mono_aot_load_method): Do not allocate MonoAotMethod in the GC heap.
2794
2795 2004-10-24  Zoltan Varga  <vargaz@freemail.hu>
2796
2797         * mini-amd64.c (mono_arch_patch_code): Fix patching of class init
2798         trampolines for AOT code.
2799
2800 2004-10-22    <vargaz@freemail.hu>
2801
2802         * aot.c (mono_compile_assembly): Disable AOT for methods containing calls to methods of
2803         constructed types. Fixes #68136.
2804
2805 2004-10-21  Martin Baulig  <martin@ximian.com>
2806
2807         * exceptions-x86.c (throw_exception): Call mono_debugger_throw_exception();
2808         if it returns true, unwind the stack to the call instruction.
2809
2810 2004-10-21    <vargaz@freemail.hu>
2811
2812         * aot.c: Reorganize the AOT file format to avoid relocations. Fix warnings.
2813
2814         * mini.h: Bump AOT version number.
2815
2816         * objects.cs: Add another test for unbox trampolines.
2817
2818         * tramp-amd64.c (amd64_magic_trampoline): Disable patching of trampolines for 
2819         valuetype methods.
2820
2821 2004-10-20    <vargaz@freemail.hu>
2822
2823         * driver.c: Add SHARED to the set of optimizations tested.
2824
2825         * tramp-amd64.c (amd64_magic_trampoline): Patch trampoline code as well.
2826
2827         * mini.c (mono_method_to_ir): Mark the domainvar as volatile when it is implicitly
2828         used by CEE_NEWARR.
2829
2830         * ssa.c (mono_ssa_deadce): Do not optimize away accesses to volatile variables.
2831
2832 2004-10-20  Martin Baulig  <martin@ximian.com>
2833
2834         * mini-exceptions.c (mono_handle_exception): Call
2835         mono_debugger_handle_exception() to tell the debugger about
2836         catch/finally clauses.
2837
2838 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
2839
2840         * exceptions-amd64.c (mono_arch_find_jit_info): Pop arguments of the stack.
2841
2842         * mini-amd64.c (mono_amd64_get_vcall_slot_addr): Handle extended registers. Fixes
2843         #68447.
2844
2845 2004-10-15  Geoff Norton  <gnorton@customerdna.com>
2846
2847         * mini-ppc.c (calculate_sizes): Marshal valuetypes for pinvoke
2848         methods as their native size, fixed bug #57543, #57545.
2849         * mini-ppc.c (mono_arch_output_basic_block): Use mulli for imm16 types
2850         This saves a temporary register and mullw call down into 1 (minor perf
2851         increase for cases like sum = sum * 5;  This use to translate into:
2852             li r11,5
2853             mullw r28,r28,r11
2854         It now translates to
2855             mulli r28,r28,5
2856
2857 2004-10-15  Zoltan Varga  <vargaz@freemail.hu>
2858
2859         * trace.c (mono_trace_eval): Use mono_method_desc_full_match. Fixes
2860         #68388.
2861
2862 2004-10-11  Martin Baulig  <martin@ximian.com>
2863
2864         * mini.c (mono_method_to_ir): If we're a generic method, get the
2865         MonoGenericContainer from our MonoMethodNormal and create a
2866         MonoGenericContext from it.
2867
2868 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
2869
2870         * inssel-long32.brg (OP_LCONV_TO_OVF_I2): Fix CONV_I1 -> CONV_I2.
2871
2872         * basic-long.cs: Add test for checked i8->i2 cast.
2873
2874 Wed Oct 6 12:40:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
2875
2876         * inssel-ppc.brg: added a couple of speedup rules.
2877
2878 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
2879
2880         * Makefile.am (genmdesc_LDADD): Don't link this against libmetadata
2881         to speed up rebuilds.
2882
2883 2004-10-04  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2884
2885         * mini-s390.c: Minor fix to OP_OR_IMM.
2886
2887 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
2888
2889         * tramp-sparc.c (sparc_magic_trampoline): Handle appdomain stuff
2890         better. Fixes appdomain-unload.exe on sparc.
2891
2892 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
2893
2894         * ssa.c: Fixed casts to unsigned where the value was of 64 bits in
2895         simulate_long_compare, patch by will@exomi.com (Ville-Pertti Keinonen),
2896         see bug 67324.
2897
2898 2004-10-02  Zoltan Varga  <vargaz@freemail.hu>
2899
2900         * jit-icalls.c: Handle a nonexisting trunc function more correctly.
2901
2902 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
2903
2904         * mini.c: Always generate a field read/write wrapper for members
2905         of the class MarshalByRefObject since the actual instance could
2906         be a CBO.
2907
2908 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
2909
2910         * mini.c: Use mono_thread_exit() to stop threads, instead of ExitThread.
2911
2912 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
2913
2914         * driver.c mini.h trace.c: Move the setting of the main assembly into
2915         a separate function called mono_trace_set_assembly () and call it after
2916         actually loading the main assembly. Fixes #66872.
2917
2918 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
2919
2920         * mini-amd64.h mini-amd64.c tramp-amd64.c: Allocate trampoline memory
2921         using the code manager.
2922
2923 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
2924
2925         * tramp-amd64.c mini-amd64.h: Add support for MONO_ARCH_HAVE_INVALIDATE_METHOD.
2926
2927 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
2928
2929         * cpu-amd64.md: Fix bug in previous patch.
2930         
2931         * cpu-amd64.md: Fix instruction lengths of membase opcodes. Fixes
2932         #66650.
2933
2934 Wed Sep 22 19:03:20 CEST 2004 Paolo Molaro <lupus@ximian.com>
2935
2936         * mini.h, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
2937         mini-exceptions.c: updates for changed stack walk interface.
2938
2939 2004-09-21  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2940
2941         * mini-s390.c, cpu-s390.md: Minor changes to OP_ARGLIST handling
2942
2943 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
2944
2945         * mini.c (mono_method_to_ir): Fix LDSTR in dynamic methods. Fixes #66132.
2946
2947 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
2948
2949         * driver.c (mini_regression_list): Do not call mono_assembly_close 
2950         since assemblies can't be unloaded.
2951         
2952 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
2953
2954         * cpu-amd64.md: Fix more instruction lengths.
2955
2956         * cpu-amd64.md: Fix lengths of some instructions.
2957
2958 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
2959
2960         * inssel.brg: Make the array ldelema check aot friendly.
2961
2962 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
2963
2964         * mini-amd64.c (mono_arch_get_argument_info): Fix stack_unwind test.
2965
2966         * cpu-amd64.md inssel-long.brg inssel-amd64.brg: Small optimizations.
2967
2968 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
2969
2970         * mini-x86.c: Fix build.
2971
2972         * mini-sparc.c mini-x86.c mini-amd64.c: Use the new 
2973         mono_type_get_underlying_type () helper function to simplify code.
2974         
2975 2004-09-09  Martin Baulig  <martin@ximian.com>
2976
2977         * mini-amd64.c: Don't access `type->data.klass' directly, call
2978         mono_class_from_mono_type() instead since the type may be a
2979         generic instance.
2980
2981 2004-09-09  Martin Baulig  <martin@ximian.com>
2982
2983         * mini-amd64.c (get_call_info): Fix support for generic instances.
2984         (add_valuetype): Use mono_class_from_mono_type() to get the class
2985         since we can be a generic instance.
2986
2987 Thu Sep 9 01:43:53 PDT 2004 Paolo Molaro <lupus@ximian.com>
2988
2989         * mini-ppc.c, mini.h, regalloc.c, regalloc.h: powerpc speedups.
2990
2991 2004-09-07 Ben Maurer  <bmaurer@users.sourceforge.net>
2992
2993         * liveness.c: reset spill costs on each scan: bug 62107
2994
2995 2004-09-07  Bernie Solomon  <bernard@ugsolutions.com>
2996
2997         * exceptions-sparc.c (mono_arch_find_jit_info): remove
2998         unnecessary line that doesn't compile
2999
3000 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3001
3002         * mini.c mini.h mini-x86.h tramp-x86.c: Instead of freeing delegate
3003         trampolines, make them call an error function so people can fix their
3004         code.
3005
3006 2004-09-06  Martin Baulig  <martin@ximian.com>
3007
3008         * mini.c (mono_method_to_ir): When initializing locals, handle a
3009         generic instances like a valuetype if it's a valuetype and like a
3010         class if it's a class.
3011
3012 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3013
3014         * exceptions-x86.c (mono_arch_find_jit_info): Pop arguments off the
3015         stack. Fixes #64674.
3016
3017         * exceptions.cs: Add test for unwinding of call arguments.
3018
3019 Mon Sep 6 05:50:02 PDT 2004 Paolo Molaro <lupus@ximian.com>
3020
3021         * mini-*.c, mini-ops.h, inssel-long32.brg: introduced
3022         OP_ADDCC_IMM and OP_SUBCC_IMM (add/sub immediate that will
3023         set the carry/borrow flag). The sparc and s390 implementations
3024         can now use optimized versions (and simplify the code). ppc bugfixes.
3025
3026 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3027
3028         * exceptions-ppc.c (mono_arch_find_jit_info): Fix memory leak.
3029
3030 2004-09-05  Zoltan Varga  <vargaz@freemail.hu>
3031
3032         * inssel-amd64.brg: Remove leftover 32 bit rule.
3033
3034         * mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support.
3035
3036 2004-09-04  Zoltan Varga  <vargaz@freemail.hu>
3037
3038         * mini-exceptions.c (mono_find_jit_info): Refactor common code from
3039         mono_arch_find_jit_info functions into a new function. Fix a memory
3040         leak.
3041
3042         * exceptions-x86.c exceptions-amd64.c exceptions-sparc.c: Remove
3043         refactored code.
3044         
3045 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
3046
3047         * exceptions.cs inssel-long32.brg: Handle the OP_LCONV_TO_OVF_I2 case
3048         as well.
3049         
3050         * exceptions.cs: Add array size tests.
3051
3052         * mini.c: Allocate a separate icall wrapper for each arity of 
3053         mono_array_new_va. Fixes #59509.
3054
3055         * exceptions.cs: Add testcase for 64578.
3056
3057         * inssel-long32.brg: Fix OP_LCONV_TO_OVF_I1 rule. Fixes #64578.
3058
3059         * trace.c (is_filenamechar): Allow 0..9 in strings. Fixes #65094.
3060         
3061 2004-09-02  Martin Baulig  <martin@ximian.com>
3062
3063         * mini.c (mono_method_to_ir): When initializing the locals, call
3064         handle_initobj() on the generic instance itself, not its
3065         underlying type.
3066
3067 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
3068
3069         * mini.h (MonoJitDynamicMethodInfo): New structure, extension of 
3070         MonoJitInfo for dynamic methods.
3071
3072         * mini.c: Rename trampoline_hash_mutex to jit_mutex.
3073
3074         * mini.c: Add support for freeing JIT data for dynamic methods.
3075         
3076 2004-09-01  Martin Baulig  <martin@ximian.com>
3077
3078         * mini-x86.c (is_regsize_var): Added support for generic
3079         instances.
3080         (mono_arch_emit_prolog): Make this compile again, use
3081         `x86_push_imm_template (code)'.
3082
3083 2004-08-30 Ben Maurer  <bmaurer@users.sourceforge.net>
3084
3085         * mini-x86.c: make all push_imm instructions that get
3086         patched always emit the long form
3087
3088 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
3089
3090         * mini.c (mono_create_jump_trampoline): Store the jump trampolines 
3091         in a per-domain hash.
3092
3093         * mini-amd64.c (merge_argument_class_from_type): Handle generic
3094         types.
3095
3096 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
3097
3098         * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: Ongoing SSE
3099         work.
3100         
3101         * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: More SSE
3102         work.
3103
3104         * mini-amd64.c cpu-amd64.md: Implement checked int<->uint casts.
3105         Beginnings of SSE2 support.
3106
3107         * exceptions.cs: Add more tests for checked int<->uint casts.
3108
3109 2004-08-28  Martin Baulig  <martin@ximian.com>
3110
3111         * mini-x86.c (mono_arch_instrument_epilog): Added support for
3112         generic instances.
3113
3114         * mini.c
3115         (mono_type_to_ldind, mono_type_to_stind, type_to_eval_stack_type):
3116         Handle generic instances recursively.
3117
3118 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
3119
3120         * iltests.il: test for conv.u8 on a constant
3121
3122 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
3123
3124         * inssel-long32.brg: c&p rules for LCONV_x4 (membase) and
3125         LCONV_x4 (shrun_32 (membase)).
3126
3127 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
3128
3129         * inssel-x86.brg: c&p rules for push/setret of long
3130
3131 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
3132
3133         * inssel-x86.brg: c&p rules for compare (base, regvar) and
3134         compare (regvar, base)
3135
3136         * inssel-x86.brg: more burg love
3137
3138         * inssel.brg: more cleanup
3139
3140         * inssel-x86.brg, inssel-long32.brg: burg cleanup.
3141
3142 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
3143
3144         * basic-long.cs, basic-calls.cs: new tests for optimization.
3145
3146 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
3147
3148         * mini-amd64.c (read_tls_offset_from_method): Fix typo in previous
3149         patch.
3150
3151 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
3152
3153         * mini-amd64.c (read_tls_offset_from_method): Add another case.
3154         
3155 2004-08-25  Bernie Solomon  <bernard@ugsolutions.com>
3156
3157         * inssel.brg (mini_emit_memcpy): use 
3158         NO_UNALIGNED_ACCESS to disable memcpy optimization
3159
3160 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
3161
3162         * mini-amd64.c: Handle generic types in various places.
3163
3164         * mini.c (mono_method_to_ir): Handle generic types in init locals.
3165
3166 2004-08-24  Zoltan Varga  <vargaz@freemail.hu>
3167
3168         * mini.c (handle_box): Fix warning.
3169
3170         * mini-amd64.c (mono_arch_local_regalloc): Fix regalloc problem.
3171
3172         * mini-amd64.h: Enable the emit_state optimization.
3173
3174         * mini-ops.h cpu-amd64.md: Add new amd64_test_null opcode.
3175
3176         * mini-amd64.c: Add some new 64 bit peephole opts.
3177
3178         * inssel.brg (mini_emit_memcpy): Optimize for 64 bit architectures.
3179
3180         * cpu-amd64.md: sreg1 of div instructions must be %rax.
3181
3182         * mini-amd64.c: Register allocator fixes.
3183
3184         * mini.c: Add an optimization to emit_state to avoid allocation of new
3185         registers on some platforms.
3186
3187 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
3188
3189         * inssel-x86.brg inssel-amd64: Add yet another missing tree->dreg assignment.
3190
3191         * mini-x86.c (mono_arch_local_regalloc): Fix bug in long register
3192         allocation. Fixes #63085.
3193
3194         * basic-long.cs: Add new regression test.
3195
3196         * mini-amd64.c: Register allocator improvements.
3197
3198 2004-08-21  Zoltan Varga  <vargaz@freemail.hu>
3199
3200         * mini-amd64.c (read_tls_offset_from_method): Add another code
3201         sequence.
3202
3203         * tramp-amd64.c (amd64_class_init_trampoline): Use a more efficient
3204         instruction sequence for nullifying class init trampolines.
3205
3206         * objects.cs: Add new regalloc test.
3207
3208         * mini-amd64.c inssel-amd64.brg: Optimize parameter passing.
3209
3210 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
3211
3212         * mini-amd64.c (mono_arch_call_opcode): Refactor this a little.
3213         
3214         * mini-amd64.c (mono_arch_regalloc_cost): Adjust regalloc costs for
3215         arguments.
3216
3217         * driver.c: Fix profiling after TLS changes.
3218         
3219         * driver.c (mono_main): Set mono_stats.enabled if needed.
3220
3221         * mini.c (handle_alloc): New helper function used by CEE_NEWOBJ and
3222         CEE_BOX.
3223
3224 2004-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
3225
3226         * mini-x86.c: use a 1 op rather than a 2 op tls access
3227         instruction -> faster.
3228
3229 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
3230
3231         * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from
3232         x86 backend.
3233
3234 2004-08-19 Bernie Solomon <bernard@ugsolutions.com>
3235
3236         * exceptions-sparc.c (throw_exception): fix typo
3237
3238 2004-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
3239
3240         * mini-x86.c, cpu-pentium.md, inssel-x86.brg:
3241         set tree->dreg correctly with tls. Allow any
3242         register to be used.
3243
3244         * mini-x86.c (read_tls_offset_from_method): add new code
3245         generation pattern seen with GCC.
3246
3247
3248 Thu Aug 19 17:26:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
3249
3250         * mini-exceptions.c, exceptions-x86.c, exceptions-amd64.c,
3251         exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
3252         exceptions-sparc.c: fix some performance issues in exception
3253         handling and setting of the stack trace for exceptions that were
3254         already thrown.
3255
3256 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
3257
3258         * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from 
3259         x86 backend.
3260         
3261         * mini-amd64.c (mono_arch_is_int_overflow): Handle all possible 
3262         registers.
3263
3264 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
3265
3266         This patch inlines tls access, when possible.
3267         
3268         * mini.h: new arch functions for TLS intrinsics.
3269         All platforms updated with a stub.
3270
3271         * mini.c: use the new intrinsics
3272
3273         * mini-x86.c, cpu-pentium.md, inssel-x86.brg, mini-ops.h:
3274         arch specific intrinsic for tls variables
3275
3276 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
3277
3278         * Makefile.am (libmono_la_LDFLAGS): Enable creating of libmono dll
3279         under windows.
3280
3281 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
3282
3283         * mini.c: thread local allocation
3284
3285 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
3286
3287         * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Enable.
3288
3289         * Makefile.am: Link against the static version of libmonogc.
3290         
3291         * Makefile.am: Link the static versions of the convenience libraries
3292         into the mono executable.
3293
3294         * mini-x86.h mini-x86.c: Throw the correct exception on integer overflow.
3295
3296 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
3297
3298         * mini.h mini.c mini-amd64.h mini-amd64.c: Throw the correct exception
3299         on integer overflow.
3300
3301         * mini-amd64.c: Reorganize function call code.
3302
3303         * mini-amd64.c (peephole_pass): Merge changes from mini-x86.c.
3304
3305 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
3306
3307         * inssel-x86.brg: use xor eax,eax.
3308         
3309         * basic.cs: new tests
3310
3311 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
3312
3313         * mini-amd64.c (mono_arch_emit_epilog): Use RIP relative addressing
3314         in exception throwing code.
3315         
3316 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
3317
3318         * inssel-x86.brg: use xor esi,esi.
3319
3320 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
3321
3322         * driver.c (mono_main): Call mono_trace_parse_options earlier so it
3323         can trace methods compiled during mini_init () too.
3324
3325         * cpu-amd64.md mini-amd64.c (mono_arch_output_basic_block): Handle 
3326         CEE_CONV_U4.
3327
3328 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
3329
3330         * Makefile.am: static link on x86 (r=zoltan)
3331
3332 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
3333
3334         * tramp-amd64.c (amd64_magic_trampoline): Avoid patching the trampoline
3335         code since it causes some programs to fail.
3336
3337 2004-08-12  Zoltan Varga  <vargaz@freemail.hu>
3338
3339         * mini-amd64.c (bb_is_loop_start): Merge changes from mini-x86.c.
3340
3341 2004-08-11  Bernie Solomon <bernard@ugsolutions.com>
3342
3343         * mini.c: ovfops_op_map - add STACK_OBJ case for
3344         CONV_I 
3345         * basic.cs: add test_0_pin_string as test
3346         case for above.
3347
3348 2004-08-11  Bernie Solomon <bernard@ugsolutions.com>
3349
3350         * Makefile.am: build C# if srcdir != builddir
3351
3352 Tue Aug 10 19:23:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
3353
3354         * dominators.c, mini.h, mini-x86.c: fix loop alignment with
3355         fall-through blocks.
3356
3357 Tue Aug 10 16:18:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
3358
3359         * driver.c: enable loop by default again and include abcrem in -O=all.
3360
3361 2004-08-08  Zoltan Varga  <vargaz@freemail.hu>
3362
3363         * iltests.il: Add some localloc tests.
3364
3365         * mini.c (mono_method_to_ir): Set stack type of LOCALLOC correctly.
3366
3367         * inssel-amd64.brg inssel-x86.brg: Set dreg of LOCALLOC correctly. 
3368         Fixes #62574.
3369
3370         * inssel-amd64.brg: Add some optimizations.
3371
3372         * mini-amd64.c (mono_arch_setup_jit_tls_data): Add tls offset detection
3373         for gcc-3.4.
3374
3375         * Makefile.am: Statically link mono against libmono on AMD64.
3376         
3377         * mini-amd64.c inssel-amd64.brg: Optimizations.
3378
3379 2004-08-07  Zoltan Varga  <vargaz@freemail.hu>
3380
3381         * mini-amd64.c (mono_arch_emit_prolog): Optimize lmf saving a bit.
3382
3383         * tramp-amd64.c: Patch calling code in trampolines.
3384
3385 2004-08-06  Zoltan Varga  <vargaz@freemail.hu>
3386
3387         * mini-amd64.c: pinvoke struct passing fixes.
3388
3389 2004-08-05  Bernie Solomon  <bernard@ugsolutions.com>
3390
3391         * mini-sparc.c: redo change, make mono_arch_cpu_init call
3392         mono_arch_cpu_optimizazions so sparcv9 is initialized when embedded
3393
3394 2004-08-05  Duncan Mak  <duncan@ximian.com>
3395
3396         * mini.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
3397         CEE_LDELEM_ANY.
3398
3399 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
3400
3401         * mini-amd64.c (emit_move_return_value): Move return value for normal
3402         calls too.
3403
3404 2004-08-05  Martin Baulig  <martin@ximian.com>
3405
3406         * mini.c (ret_type_to_call_opcode): Don't use a `t' variable for
3407         `type->type'; just modify `type' itself when dealing with enums
3408         and generic instances.
3409         (check_call_signature): Make `simple_type' a `MonoType *'.
3410
3411 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
3412
3413         * mini.c: Use OP_PADD to add offsets to addresses.
3414
3415         * mini-amd64.h: Disable SIGSEGV_ON_ALTSTACK.
3416
3417 2004-08-04  Bernie Solomon  <bernard@ugsolutions.com>
3418
3419         * mini-sparc.c (mono_arch_emit_epilog): fix check
3420         for folding last op into restore instruction
3421
3422 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
3423
3424         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Allocate
3425         helper methods using the code manager.
3426         
3427         * exceptions-amd64.c (mono_arch_get_throw_exception): Fix maximum length.
3428
3429         * mini-amd64.c (mono_arch_allocate_vars): Fix tls offset detection.
3430
3431 Tue Aug 3 23:50:00 EST 2004 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
3432         
3433         * mini-s390x.c mini-s390x.h tramp-s390x.c inssel-s390x.brg
3434           cpu-s390x.md exceptions-s390x.c Makefile.am: S/390 64-bit JIT
3435
3436         * mini-s390.c: fix tail processing
3437
3438 Tue Aug 3 01:35:44 PDT 2004 Paolo Molaro <lupus@ximian.com>
3439
3440         * mini-ppc.c: mul.ovf.un exception name fix.
3441
3442 2004-08-03  Martin Baulig  <martin@ximian.com>
3443
3444         * mini-x86.c (mono_arch_call_opcode): Correctly handle generic
3445         instances; before jumping to `handle_enum', also modify `ptype'.
3446
3447 2004-08-02  Bernie Solomon  <bernard@ugsolutions.com>
3448
3449         * cpu-sparc.md: fcall maximal length too small.
3450
3451 2004-08-02  Zoltan Varga  <vargaz@freemail.hu>
3452
3453         * mini-amd64.c mini.h: Add initial support for passing/returning 
3454         structures to/from pinvoked methods.
3455
3456 Mon Aug 2 11:59:35 PDT 2004 Paolo Molaro <lupus@ximian.com>
3457
3458         * mini-ppc.c: reg allocator fix.
3459
3460 2004-07-31  Zoltan Varga  <vargaz@freemail.hu>
3461
3462         * mini-amd64.c (mono_arch_output_basic_block): Fix OP_X86_PUSH_OBJ.
3463
3464         * inssel.brg: Optimize memset on 64 bit machines.
3465
3466         * mini-amd64.c: Fix some vararg cases.
3467
3468 2004-07-30  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
3469
3470         * mini-s390.c: Corrected macro in emit_float_to_int
3471
3472         * s390-abi.cs: Tests to exercise the s390 ABI
3473
3474 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
3475
3476         * exceptions-amd64.c (mono_arch_find_jit_info): Fix restoring of
3477         caller saved regs.
3478
3479         * basic.cs: Add a test for add.ovf.un.
3480
3481 2004-07-30  Bernie Solomon  <bernard@ugsolutions.com>
3482
3483         * mini-sparc.c: add case for OP_IDIV_UN
3484
3485 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
3486
3487         * mini-amd64.c mini-amd64.h mini.c: Add support for vararg pinvoke calls.
3488         
3489         * mini-amd64.c cpu-amd64.md: Ongoing JIT work.
3490
3491 2004-07-30  Ben Maurer  <bmaurer@ximian.com>
3492
3493         * basic.cs: regression tests.
3494
3495         * inssel-x86.brg: Disable cmp BYTE PTR [eax], imm, it causes various
3496         regressions.
3497
3498 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
3499
3500         * basic.cs: Add a new test.
3501
3502         * mini-amd64.c aot.c cpu-amd64.md: Add support for tracing, profiling 
3503         and AOT. Various fixes and optimizations.
3504
3505         * inssel.brg (CALL_REG): Add 64 bit versions of call_reg rules.
3506
3507 Fri Jul 30 15:49:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
3508
3509         * mini-ppc.c: make sure temp regs are not used for global reg
3510         allocation.
3511
3512 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
3513
3514         * cpu-sparc.md: conv_i8 fix for 64bits
3515
3516         * mini-sparc.c: add cases for OP_IXXX codes for 64bits
3517
3518 2004-07-29  Ben Maurer  <bmaurer@ximian.com>
3519         
3520         * cpu-pentium.md, mini-x86.c, inssel-x86.brg, mini-ops.h:
3521         add opcode for cmp BYTE PTR [eax], imm.
3522
3523         * inssel.brg: Make memcpy and memset takes bases.
3524
3525 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
3526
3527         * *-amd64.*: More AMD64 work.
3528         
3529 2004-07-28  Ben Maurer  <bmaurer@ximian.com>
3530
3531         * cpu-pentium.md, inssel-x86.brg, mini-ops.h, mini-x86.c:
3532         add a compare-not-equal opcode.
3533         
3534 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
3535
3536         * mini.c: Use mono_init_from_assembly instead of mono_init.
3537         
3538 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
3539
3540         * mini.c: Fix opcode mapping for STACK_MP on 64 bit platforms.
3541
3542         * mini.c (CEE_NEWOBJ): Call mono_array_new_va using the correct signature.
3543
3544         * mini.c: Use MONO_ARCH_SIGACTION on AMD64 as well.
3545
3546         * inssel.brg: 64 bit fixes.
3547
3548         * mini.h (MonoCallInst): Add some AMD64 specific data.
3549
3550         * mini.h: Add some OP_P opcodes.
3551
3552 2004-07-28  Ben Maurer  <bmaurer@ximian.com>
3553
3554         * basic.cs: tests for 61797 and 61740
3555
3556 Tue Jul 27 16:05:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
3557
3558         * mini-ppc.c, mini-sparc.c, mini-s390.c: keep track of line
3559         numbers in the debug info (spotted by Geoff Norton, <gnorton@customerdna.com>).
3560
3561 2004-07-24  Zoltan Varga  <vargaz@freemail.hu>
3562
3563         * mini-sparc.c (mono_arch_output_basic_block): Add CEE_CONV_U8/I8.
3564
3565         * *-amd64*.*: Ongoing AMD64 work.
3566
3567 2004-07-23 Zoltan Varga <vargaz@freemail.hu>
3568
3569         * inssel-long.brg: Implement CONV_I8/CONV_U8 in the backends.
3570
3571         * *-amd64*: Ongoing AMD64 work.
3572
3573         * mini-arch.h: Add AMD64 support.
3574
3575         * mini-sparc.c (mono_arch_is_inst_imm): New arch dependent function.
3576
3577         * mini.h: Add new arch dependent function mono_arch_is_inst_imm.
3578
3579         * mini-ops.h: Add new opcodes.
3580
3581         * Makefile.am: Add AMD64 support.
3582
3583         * inssel.brg inssel-long32.brg inssel-long.brg: Move mul/div and shift
3584         rules into the inssel-long*.brg files.
3585
3586         * *-amd64.*: Add beginnings of AMD64 backend.
3587
3588 2004-07-22  Ben Maurer  <bmaurer@ximian.com>
3589
3590         * mini.c (print_dfn): commenting out the code that prints
3591         the cil. With -O=deadce, this makes -v -v crash.
3592         
3593         * cpu-pentium.md: make checkthis have a length of 2
3594
3595 2004-04-21  Bernie Solomon  <bernard@ugsolutions.com>
3596
3597         * mini-sparc.h: fix implementations of __builtin
3598         functions for Sun compiler for V9.
3599
3600 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
3601
3602         * mini.c: use the new stelem.ref wrapper
3603         * exceptions.cs, arrays.cs: new stelem.ref tests
3604
3605 Wed Jul 14 19:08:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
3606
3607         * mini-ppc.c, exceptions-ppc.c: cleanups and fixes (the
3608         new XSP should work with these changes).
3609
3610 2004-07-14  Ben Maurer  <bmaurer@ximain.com>
3611         
3612         * inssel-{long32,x86,}.brg: trivial optimizations.
3613         
3614 Mon Jul 12 20:25:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
3615
3616         * mini.c: load value when emitting box operation in
3617         constrained calls.
3618
3619 2004-07-12  Ben Maurer  <bmaurer@ximian.com>
3620
3621         * mini-x86.c (OP_CHECK_THIS): cmp DWORD PTR [eax], eax
3622         is one byte shorter than cmp DWORD PTR [eax], 0.
3623
3624 Mon Jul 12 17:47:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
3625
3626         * inssel-ppc.brg: arguments on the stack are always
3627         relative to the stack pointer (spotted by Neale Ferguson).
3628
3629 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3630
3631         * exceptions-x86.c: delay appending the method name to the trace until
3632         after mono_jit_info_table_find is called, as this gets the real
3633         MonoMethod.
3634
3635 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
3636
3637         * aot.c: register roots
3638
3639 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
3640
3641         * aot.c : I could just use PLATFORM_WIN32 flag.
3642
3643 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
3644
3645         * aot.c : Reverting the previous fix. This time it broke linux build.
3646
3647 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
3648
3649         * aot.c : quick cygwin build fix. mkdir() with two args does not exist.
3650
3651 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
3652
3653         * mini.c (handle_stack_args): Remove some more debugging code.
3654         
3655         * mini.c (handle_stack_args): Remove debug output left in by mistake.
3656
3657         * driver.c mini.h aot.c: Allow additional options to be specified with
3658         --aot and pass them to mono_compile_assembly.
3659
3660         * aot.c: Add experimental code to AOT compile all loaded assemblies
3661         on demand and save the code into a cache in the filesystem.
3662
3663         * aot.c: Add support for more wrapper methods.
3664         
3665         * mini.c (handle_stack_args): Handle some corner cases. Fixes 
3666         58863.
3667
3668         * cpu-*.md: Remove removed opcodes.
3669
3670         * mini.h mini.c: Move JIT icall handling to icall.c. Replace usage of
3671         CEE_MONO_PROC<x> with CEE_MONO_ICALL. Move registration of marshalling
3672         related icalls to marshal.c.
3673
3674 2004-07-06  Zoltan Varga  <vargaz@freemail.hu>
3675
3676         * mini-ops.h: Add OP_SAVE_LMF and OP_RESTORE_LMF.
3677
3678         * Makefile.am (EXTRA_DIST): Add inssel-long[32].brg.
3679
3680         * inssel.brg: Fix warning. Add rules for SAVE_LMF and RESTORE_LMF.
3681
3682 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
3683         * liveness.c: If liveness is recomputated we need to reset the information
3684         for each variable. This way, if the liveness range has been narrowed
3685         by optimizations that happened after the last computation, we can return
3686         a smaller range.
3687         
3688         For example, if you have
3689         
3690         {
3691                 int i = 0;
3692                 
3693                 // Tons of code that does not affect i
3694                 
3695                 i = foo ();
3696                 ...
3697         }
3698         
3699         i = 0 is dead code and will be removed by SSA. However, when
3700         linear scan gets to the code, i will still appear to be live
3701         throughout the entire block. This prevents good register allocation.
3702
3703 2004-07-06  Martin Baulig  <martin@ximian.com>
3704
3705         * debug-mini.c (mono_debug_init_method): Allow
3706         MONO_WRAPPER_MANAGED_TO_NATIVE wrappers.
3707         (mono_debug_add_icall_wrapper): New method.
3708
3709         * mini.c (mono_icall_get_wrapper): Call mono_debug_add_icall_wrapper().
3710
3711 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
3712
3713         * mini.c (optimize_branches): Fix linking of bblocks in branch->branch
3714         optimization.
3715
3716 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
3717
3718         * aot.c (mono_aot_load_method): Fix loading of debug info.
3719
3720 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
3721
3722         * aot.c: Add logging support.
3723
3724 2004-07-01  Zoltan Varga  <vargaz@freemail.hu>
3725
3726         * mini.h: Add prototype for mono_print_method_from_ip.
3727
3728         * mini.c: 64 bit fixes. Use LCOMPARE for comparing longs.
3729
3730         * inssel.brg: 64 bit fixes.
3731
3732         * inssel.brg inssel-long32.brg: Move 32 bit arithmetic rules to 
3733         inssel-long32.brg.
3734
3735         * Makefile.am: Add SPARC64 support.
3736
3737 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
3738
3739         * aot.c: Fix alignment problems on 32 bit platforms.
3740
3741 2004-07-01  Zoltan Varga  <vargaz@freemail.hu>
3742
3743         * helpers.c (mono_disassemble_code): Pass -xarch=v9 to assembler on
3744         SPARC64.
3745
3746         * aot.c: Add SPARC64 support. Reorganize patch table to fix alignment
3747         problems.
3748
3749         * mini.h: Bump AOT file version. Some 64 bit fixes.
3750
3751 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
3752
3753         * inssel-sparc.brg: Add new rule to avoid register moves.
3754
3755         * inssel.brg: Add ldind_to_load_membase helper function.
3756
3757 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
3758
3759         * mini.c: OffsetToStringData intrinsic.
3760         
3761 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
3762
3763         * ssa.c: Handle OP_LCOMPARE the same as OP_COMPARE.
3764
3765         * objects.cs exceptions.cs basic.cs basic-long.cs basic-calls.cs: New
3766         regression tests.
3767
3768         * mini-ops.h cpu-sparc.md mini-sparc.h mini-sparc.c exceptions-sparc.c tramp-sparc.c inssel-long.brg: Add SPARC64 support.
3769 Mon Jun 28 18:05:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
3770
3771         * mini.c: reinstated mono_compile_get_interface_var()
3772         on x86, too, since the change breaks the Gtk# build there as well.
3773
3774 Fri Jun 25 17:36:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
3775
3776         * driver.c: remove loop from the default optimizations: it seems to
3777         interact badly with some of the other options (see bug #60613).
3778
3779 2004-06-25  Zoltan Varga  <vargaz@freemail.hu>
3780
3781         * mini.c mini-x86.h mini-x86.c: Applied patch from Guenter Feldmann 
3782         (fld@informatik.uni-bremen.de): Add Solaris x86 support.
3783
3784 Tue Jun 22 21:29:11 CEST 2004 Paolo Molaro <lupus@ximian.com>
3785
3786         * mini-ppc.c, cpu-g4.md: small updates to be able to compile
3787         vararg-using methods.
3788
3789 2004-06-21  Martin Baulig  <martin@ximian.com>
3790
3791         * mini/mini-exceptions.c
3792         (mono_handle_exception): Added `gpointer original_ip' argument.
3793         After calling mono_unhandled_exception(), call
3794         mono_debugger_unhandled_exception() and if that returns true,
3795         restore the context and return.
3796
3797 Mon Jun 21 19:26:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3798
3799         * mini-ppc.c: prefer the use of relative branches so
3800         they won't need to be patched in aot code (patch from Patrick Beard).
3801
3802 Mon Jun 21 19:03:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
3803
3804         * aot.c: patch from Patrick Beard to make the output assembly
3805         more correct for the MacOSX assembler. Small tweak to
3806         generate sane images on Linux/PPC, too.
3807
3808 Fri Jun 18 18:24:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
3809
3810         * mini.c, mini.h, mini-ppc.c: handle varargs methods with a special
3811         case until bug #59509 is fixed (shows up in #60332).
3812
3813 Tue Jun 15 16:36:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
3814
3815         * mini.c: make sure the needed wrappers are compiled, too, with
3816         precomp.
3817
3818 Mon Jun 14 18:36:08 CEST 2004 Paolo Molaro <lupus@ximian.com>
3819
3820         * driver.c: remove NPTL reference in --version output.
3821
3822 Sun Jun 13 17:25:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
3823
3824         * aot.c: patch from Patrick Beard (pcbeard@mac.com) to
3825         generate valid assembly for the Mach-O assembler.
3826
3827 Sun Jun 13 15:59:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
3828
3829         * driver.c: don't include abcrem in the all optimization specifier
3830         since it slows down jit compilation too much for now.
3831
3832 2004-06-12 Ben Maurer  <bmaurer@users.sourceforge.net>
3833
3834         * mini.c: use BIGMUL only if both operands have the same signage.
3835         * iltests.il: Test for bug 60056. (errors related to signage in
3836         BIGMUL).
3837
3838         r=lupus.
3839
3840 Thu Jun 10 16:06:42 CEST 2004 Paolo Molaro <lupus@ximian.com>
3841
3842         * mini.c, aot.c: memory leak fixes.
3843
3844 Tue Jun 8 16:37:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
3845
3846         * inssel-long32.brg: implemented a few missing ulong cast opcodes.
3847
3848 Tue Jun 8 15:36:30 CEST 2004 Paolo Molaro <lupus@ximian.com>
3849
3850         * Makefile.am: remove the -static hack completely, it links in
3851         statically glib as well.
3852
3853 Sat Jun 5 16:32:33 CEST 2004 Paolo Molaro <lupus@ximian.com>
3854
3855         * iltests.il, mini.c: fixed bug#59580 in branch optimization.
3856         * exceptions.cs: make it compile with new mcs/csc.
3857
3858 2004-06-03 Massimiliano Mantione <massi@ximian.com>
3859         * cpu-pentium.md basic-float.cs Fixed bug on fpu spills (see bug 54467),
3860         and added relevant test case.
3861
3862 Mon May 31 19:41:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
3863
3864         * mini.c revert Zoltan's fix to bug#58863 on ppc, since it causes
3865         regressions in gtk-sharp.
3866
3867 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3868
3869         * exceptions.cs: New regression tests.
3870
3871         * jit-icalls.c (mono_llmult_ovf): Fix some boundary conditions.
3872
3873 Sat May 29 10:45:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
3874
3875         * mini.c: emit castclass/isinst in their own trees (bug #54209/59057).
3876
3877 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3878
3879         * mini-sparc.h (MONO_ARCH_NEED_DIV_CHECK): Define this.
3880
3881         * cpu-sparc.md mini-sparc.c: Add overflow detection to div opcodes.
3882
3883 2004-05-28      Patrik Torstensson <totte@hiddenpeaks.com>
3884
3885         * mini.c (mono_jit_runtime_invoke): Init class in this
3886         method instead of trusting mono_jit_compile_method to
3887         do the work (because wrappers can be in object class)
3888
3889 2004-05-27  Zoltan Varga  <vargaz@freemail.hu>
3890
3891         * mini-sparc.c (mono_arch_output_basic_block): Fix sub.imm.
3892
3893         * basic-long.cs: New regression test.
3894
3895 Thu May 27 15:50:52 CEST 2004 Paolo Molaro <lupus@ximian.com>
3896
3897         * cpu-g4.md, mini-ppc.c: fixes to long add/sub ovf opcodes
3898         and div/rem checks.
3899
3900 Thu May 27 12:36:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
3901
3902         * Makefile.am: fix miguel's change to build mono statically against
3903         libmono (track build dependencies).
3904
3905 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3906
3907         * cfold.c: Some glib versions do not have G_MININT32.
3908
3909 2004-05-26  Massimiliano Mantione  <massi@ximian.com>
3910
3911         * mini-x86.c cpu-pentium.md Makefile.am basic-math.cs: Fixed problem
3912         with precision of tan, atan, sin and cos, and implemented related
3913         regressions tests (fixes bug 54467, but one new problem appeared and
3914         is not fixed yet).
3915
3916 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3917
3918         * cfold.c (FOLD_BINOPZ): Avoid division by zero.
3919
3920         * exceptions.cs: Add test for constant folding && division by zero.
3921
3922         * driver.c mini.h mini.c mini-x86.c: Revert most of the previous patch
3923         since driver.c is in libmono too, so the optimization was useless.
3924
3925         * driver.c mini.h mini.c mini-x86.c: Moved the mono_lmf_addr TLS 
3926         variable to driver.c so the compiler can emit more efficient code to
3927         access them.
3928
3929 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3930
3931         * Makefile.am: don't distribute generated inssel.[ch] files.
3932
3933 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3934
3935         * mini.c (mono_jit_compile_method_with_opt): Really emit icall wrappers
3936         into the default appdomain. Fixes #58707.
3937
3938         * jit-icalls.c: Remove the broken approximation for truncl, doing
3939         no conversion is better.
3940
3941         * mini.c (handle_stack_args): Avoid reusing variables for stack slots.
3942         Fixes #58863.
3943
3944 Tue May 25 14:33:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
3945
3946         * mini-ops.h, mini-ppc.c, cpu-g4.md, inssel-ppc.brg: eliminate the use
3947         of the mcrxr instruction which is not available on some processors
3948         even if it's documented to be. Implement add and sub overflow correctly
3949         (still not complete for long unsigned). Speed up icalls a bit.
3950
3951 2004-05-25 13:01 CET Patrik Torstenson <totte@hiddenpeaks.com>
3952
3953         * mini.c (mono_jit_compile_method_with_opt): Make sure that
3954         we run .cctor in the current domain instead of target_domain.
3955         
3956         Fixes bug #58558, .cctor not being called in -O=shared.
3957
3958 Tue May 25 12:46:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
3959
3960         * mini-ppc.h, jit-icalls.c: added explicit checks for divide by zero.
3961
3962 2004-05-24 Ben Maurer  <bmaurer@users.sourceforge.net>
3963
3964         * mini-x86.c (EMIT_COND_BRANCH): If an OP_LABEL has an offset
3965         which can be done with an imm8, do it that way.
3966         (mono_arch_output_basic_block): ditto for a jmp
3967         (mono_arch_emit_prolog): Computate maximum offset of a label.
3968
3969 2004-05-24 18:18 CET Patrik Torstenson <totte@hiddenpeaks.com>
3970
3971         * mini-x86.c (mono_arch_local_regalloc): the reg allocator
3972         now tries to allocate prefered physical reg's for virtual
3973         regs. This reduces the number of emited spills/loads with
3974         20-30% on our core assemblies.
3975
3976 Mon May 24 18:21:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
3977
3978         * jit-icalls.c: truncl() is not needed and trunc() is
3979         the correct thing to do anyway (bug #58287).
3980
3981 2004-05-24  Zoltan Varga  <vargaz@freemail.hu>
3982
3983         * mini-sparc.c (mono_arch_flush_icache): Call sync_instruction_memory
3984         if available.
3985
3986 Mon May 24 12:49:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
3987
3988         * driver.c: enable loop optimizations by default.
3989
3990 Mon May 24 11:13:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
3991
3992         * mini-x86.c: fix calc of max loop size when aligning loops start.
3993
3994 2004-05-23  Zoltan Varga  <vargaz@freemail.hu>
3995
3996         * ssa.c (mono_ssa_cprop): Allocate carray dynamically instead of on
3997         the stack.
3998
3999 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
4000
4001         * mini-sparc.c (mono_arch_output_basic_block): ADD_IMM and SUB_IMM
4002         should set carry.
4003
4004         * basic-long.cs: Add tests for add/subtract of immediates with carry.
4005
4006         * mini.c exceptions-x86.c: Remove MONO_USE_EXC_TABLES stuff.
4007         
4008         * mini.c (inline_method): Allways inline some wrappers even if the cost
4009         is too large. Fixes #58785.
4010
4011         * mini.c: Add support for MARSHAL_CONV_FTN_DEL.
4012         
4013 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
4014
4015         * mini-sparc.c exceptions-sparc.c: Applied patch from Mark Crichton
4016         (crichton@gimp.org). Beginning of support for sparc/linux.
4017
4018         * mini-sparc.c: Optimize retrieval of LMF address.
4019
4020 Fri May 21 08:00:12 EDT 2004 Paolo Molaro <lupus@ximian.com>
4021
4022         * exceptions-ppc.c:  handle alloca in methods with clauses.
4023
4024 Fri May 21 07:35:30 EDT 2004 Paolo Molaro <lupus@ximian.com>
4025
4026         * mini-ppc.c: cleanups, off-by-one fixes, avoid recursive thunks.
4027
4028 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
4029
4030         * mini.c: Delegate most of the abort signal work to 
4031           mono_thread_request_interruption, which also handles Stop and Suspend
4032           states.
4033
4034 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
4035
4036         * mini.c mini.h: Allow inlining of icall wrappers if the backend 
4037         supports the save/restore lmf opcodes.
4038
4039 2004-05-19  Zoltan Varga  <vargaz@freemail.hu>
4040
4041         * mini-x86.c (mono_arch_setup_jit_tls_data): Handle code generated
4042         by gcc-3.4 as well.
4043
4044         * mini-x86.h mini-x86.c tramp-x86.c: Optimize lmf restoring code.
4045
4046 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
4047
4048         * mini.h mini.c (mini_method_compile): Only run abc removal pass on 
4049         methods which contain array accesses.
4050
4051         * mini.c (CEE_LDTOKEN): Handle this instruction correctly on bb
4052         boundaries. Fixes #58537.
4053
4054         * iltests.il: Add regression test for #58537.
4055
4056 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
4057
4058         * mini-x86.c (mono_arch_local_regalloc): Last part of
4059         fix for bug #58633 (releasing register to early).
4060
4061 2004-05-18  Miguel de Icaza  <miguel@ximian.com>
4062
4063         * basic-long.cs: Add new regression test.
4064
4065 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
4066
4067         * mini-x86.c (mono_arch_local_regalloc): Avoid releasing a
4068         register too early on the chain.
4069
4070 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
4071
4072         * mini.c (create_helper_signature): Use a helper function to reduce
4073         the code which needs to be written. Also set the calling convention of
4074         icalls on windows. Fixes #57840.
4075
4076 Tue May 18 11:05:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
4077
4078         * mini.h, exceptions-x86.c, exceptions-sparc.c, exceptions-s390.c,
4079         exceptions-ppc.c: added helper function to get the instruction address
4080         from a signal handler context.
4081
4082 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4083
4084         * helpers.c: use g_get_tmp_dir. Invokes happyness 
4085         from gonzalo.
4086
4087 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4088
4089         * helpers.c: Add new env variable to pass args to objdump.
4090         Specifically for those of us who love -Mintel. r=miguel, gonzalo.
4091
4092 2004-05-17  Radek Doulik  <rodo@ximian.com>
4093
4094         * Makefile.am (common_sources): added abcremoval.h so it get
4095         disted and daily mono packages on go-mono.com will build again
4096
4097 2004-05-17  Massimiliano Mantione  <massi@ximian.com>
4098
4099         * abcremoval.c: Fixed coding style, added copyright header.
4100
4101         * abcremoval.h: Fixed style and moved prototype to mini.h, added copyright header.
4102
4103         * mini.h: Added prototype for abc removal main function.
4104
4105         * build_relations_propagation_table.pl: Added copyright header.
4106
4107 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
4108
4109         * basic-long.cs: reg test for complex ceq_long bug.
4110
4111 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
4112
4113         * mini-x86.c (mono_arch_local_regalloc): Correctly free 
4114         reg in long and clob case (bug #58343). Fixed/added comments.
4115
4116 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
4117
4118         * mini.c (mono_jit_runtime_invoke): Follow new convention
4119         of calling the invoke method with an function pointer.
4120
4121 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
4122
4123         * ChangeLog: Fix author of memory leak patch.
4124
4125 Fri May 14 15:13:06 CEST 2004 Paolo Molaro <lupus@ximian.com>
4126
4127         * Makefile.am: fix make dist as well...
4128
4129
4130 2004-05-14  Massimiliano Mantione  <massi@ximian.com>
4131
4132         * cfold.c: Made so that conversions from pointer to int4 are no-ops
4133         on archs where pointers are 4 bytes long.
4134
4135         * Makefile.am: Added abcremoval.c source file.
4136
4137         * abcremoval.c: Added abcremoval.c.
4138
4139         * abcremoval.h: Added abcremoval.h.
4140
4141         * build_relations_propagation_table.pl: Added build_relations_propagation_table.pl.
4142
4143         * inssel.brg: Enabled bounds check removal.
4144
4145         * mini.c: Added support for abcrem optimization.
4146
4147         * mini.h: Added abcrem optimization label.
4148
4149         * driver.c: Added support for abcrem optimization.
4150
4151         * propagated_relations_table.def: Added propagated_relations_table.def.
4152
4153 Fri May 14 14:30:13 CEST 2004 Paolo Molaro <lupus@ximian.com>
4154
4155         * mini.c, cfold.c: fix style.
4156
4157 Fri May 14 14:28:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4158
4159         * mini.c: handle issue with the low-level implementation of
4160         some long opcodes (bug #54209).
4161
4162 2004-05-13 Ben Maurer  <bmaurer@users.sourceforge.net>
4163
4164         * basic.cs: test for my new cmov stuff.
4165
4166 2004-05-13      Patrik Torstensson
4167
4168         * mini-x86.c: added OP_X86_COMPARE_MEMBASE_IMM peephole
4169         opt and added peephole documentation.
4170
4171 Thu May 13 11:41:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
4172
4173         * tramp-ppc.c: rewrote the generic trampoline code.
4174
4175 2004-05-11      Patrik Torstensson
4176
4177         * mini-x86.c: optimize long shl/shr asm code (one less branch)
4178
4179 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
4180
4181         * basic.cs basic-long.cs objects.cs: Make these compile under MS csc.
4182
4183         * mini.h mini.c dominators.c: Applied patch from Derek Woo
4184         (derek@eecg.toronto.edu): Fix memory leaks in loop optimizations.
4185
4186         * mini.c: Add new icalls for AsAny marshalling.
4187
4188 Tue May 11 16:00:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
4189
4190         * tramp-ppc.c, mini-ppc.c: more cleanups.
4191
4192 2004-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4193
4194         * mini.c: no warnings.
4195
4196 Tue May 11 13:59:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
4197
4198         * mini-ppc.c, mini.c: use mono_resolve_patch_target ().
4199
4200 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
4201
4202         * mini.c: In the thread abort signal handler, if the thread is in the
4203         process of being stoped, don't throw the Abort exception, just stop the
4204         thread.
4205
4206 Tue May 11 12:15:24 CEST 2004 Paolo Molaro <lupus@ximian.com>
4207
4208         * tramp-ppc.c: removed old code.
4209
4210 Tue May 11 12:02:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
4211
4212         * mini.h, mini-ppc.c, cfold.c: export mono_is_power_of_two().
4213         do some simple speed optimizations on ppc.
4214
4215 Mon May 10 17:21:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
4216
4217         * mini-ppc.c, cpu-g4.md: fixes to handle large stack frames
4218         and large offsets in load/store.
4219
4220 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
4221
4222         * mini-x86.c (mono_arch_local_regalloc): Remove the previous fix, since
4223         it causes regressions.
4224
4225 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
4226
4227         * mini-sparc.c: Fix vararg support + add beginnings of sigaltstack
4228         support.
4229
4230 Fri May 7 13:25:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4231
4232         * jit-icalls.c: remove warnings.
4233         * inssel-x86.brg, inssel.brg, mini-x86.c, cfold.c: some simple
4234         speedups for unsafe code.
4235
4236 2004-05-07 Ben Maurer  <bmaurer@users.sourceforge.net>
4237
4238         * inssel.brg: Optimize Stind.[ui][12]. r=zoltan.
4239
4240 2004-05-06  Zoltan Varga  <vargaz@freemail.hu>
4241
4242         * basic-calls.cs: Add new regression test.
4243
4244         * mini.c (mono_runtime_install_handlers): Use SA_ONSTACK since it is
4245         more portable.
4246
4247         * mini.c (mono_method_to_ir): Handle opcode emulation for *_OVF opcodes.
4248
4249         * mini-x86.c (mono_arch_local_regalloc): Free new_dest register when it
4250         is no longer used.
4251
4252 2004-05-06      Patrik Torstensson
4253
4254         * mini-x86.[c|h], inssel-x86.brg, cpu-pentium.md, mini.c: enabled
4255         long reg allocation in any reg (not only eax:edx) and implemented 
4256         long shl/shr ops in asm instead of helpers.
4257
4258 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
4259
4260         * mini-sparc.h: Fix warnings.
4261
4262         * exceptions-sparc.c (mono_arch_find_jit_info): Pop unused lfm off the
4263         stack.
4264
4265         * mini-exceptions.c (mono_handle_exception): Call the filter in a
4266         separate statement for clarity.
4267
4268         * mini-sparc.c: Update status.
4269
4270 2004-05-04  Zoltan Varga  <vargaz@freemail.hu>
4271
4272         * mini-exceptions.c (ves_icall_get_frame_info): Flush register windows
4273         here.
4274
4275 Mon May 3 22:58:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
4276
4277         * inssel-ppc.brg: another small pre-release workaround:
4278         we don't do overflow detection for long_sub_un.
4279
4280 Sun May 2 20:12:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4281
4282         * mini.c, mini-ops, inssel-long32.brg: speedup ulong >> 32
4283         (also works around a weird ppc bug: 57957).
4284
4285 Sat May 1 16:56:10 EDT 2004 Paolo Molaro <lupus@ximian.com>
4286
4287         * tramp-ppc.c: trampoline fixes.
4288
4289 Fri Apr 30 15:54:26 EDT 2004    Paolo Molaro <lupus@ximian.com>
4290
4291         * mini-ppc.c: fixed typos.
4292
4293 Thu Apr 29 20:15:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4294
4295         * mini-ppc.c, exceptions-ppc.c: more code saves registers
4296         at the top of the stack. Fixed typos. Use a frame registers
4297         for all the methods with exception clauses.
4298
4299 Thu Apr 29 18:52:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
4300
4301         * exceptions-ppc.c: restore fp registers.
4302
4303 Thu Apr 29 18:26:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
4304
4305         * mini-ppc.c, exceptions-ppc.c: save the registers in reverse
4306         order from the stack top (moved the stack room to save the
4307         return value for trace after the param area). Fixed corruption
4308         in restoring registers on unwind.
4309
4310 Thu Apr 29 16:47:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4311
4312         * mini-ppc.c, cpu-g4.md: fixed unisgned -> double conversion.
4313
4314 Thu Apr 29 13:50:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
4315
4316         * exceptions-ppc.c, mini-ppc.h, mini-ppc.c: fixed localloc
4317         and prolog/epilog for methods that use it. Allow
4318         enough param area room for varargs methods. Fix miguel's
4319         breakage in exception handling.
4320
4321 Thu Apr 29 12:06:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
4322
4323         * Makefile.am: run genmdesc only on current arch.
4324
4325 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4326
4327         * exceptions-x86.c:
4328         * mini-x86.h: fix the build on windows.
4329
4330 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
4331
4332         * 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.
4333
4334         * exceptions-sparc.c exceptions-ppc.c exceptions-s390.c mini-ppc.h mini-s390.h mini-sparc.h: Fix up ports after changes.
4335
4336         * mini-exceptions.c: New file.
4337         
4338         * mini.c mini-exceptions.c mini-x86.h exceptions-x86.c Makefile.am:
4339         Move some parts of the x86 exception handling code to an 
4340         arch-independent file so it can be shared with other ports.
4341
4342 Tue Apr 27 12:15:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
4343
4344         * trace.c, cpu-g4.md, inssel-ppc.brg, mini-ppc.c: some fixes for FP code.
4345
4346 2004-04-26  David Waite  <mass@akuma.org>
4347
4348         * driver.c: remove comma from end of enumeration declaration
4349
4350 2004-04-26  Jackson Harper  <jackson@ximian.com>
4351
4352         * driver.c: parse config file before loading first assembly. This
4353         allows the user gac to be enabled/disabled. 
4354         
4355 2004-04-23  Miguel de Icaza  <miguel@ximian.com>
4356
4357         * mini-ppc.c (ppc_patch): Replaced the branch code patching with a
4358         simpler mechanism: we do not care what is encoded initially
4359         (branch absolute or relative), we care about the code and its
4360         target.  I kept the old code for reference for now.
4361
4362         The new code tries first to determine if the jump is anywhere in
4363         the -/+32 absolute meg range, if it succeeds, it encodes using the
4364         absolute branch;  If not, it tried to find something in the
4365         relative range, if not, it uses the handle_thunk code. 
4366
4367 Fri Apr 23 14:20:40 EDT 2004 Paolo Molaro <lupus@ximian.com>
4368
4369         * exceptions-ppc.c: use the correct ip register on macosx.
4370
4371 Thu Apr 22 13:23:16 EDT 2004 Paolo Molaro <lupus@ximian.com>
4372
4373         * exceptions.c, mini.c, mini-ppc.h: adapt code to macosx.
4374
4375 Thu Apr 22 18:08:37 CEST 2004 Paolo Molaro <lupus@ximian.com>
4376
4377         * mini-ppc.c, cpu-g4.md: made the branch macros more flexible.
4378         Raise exception on integer divide by zero by hand since the hw
4379         doesn't support it. Handle NaNs in FP compares.
4380
4381 Thu Apr 22 16:10:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
4382
4383         * exceptions-ppc.c, mini-ppc.h, mini.c: simplified some
4384         code reducing duplication between the platforms and enabled
4385         signal exception handling (on linux for now).
4386
4387 Wed Apr 21 12:27:48 EDT 2004 Paolo Molaro <lupus@ximian.com>
4388
4389         * exceptions-ppc.c: more macosx support.
4390
4391 Wed Apr 21 16:38:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
4392
4393         * mini-ppc.h, mini-ppc.c, cpu-g4.md: enable bigmul optimization.
4394
4395 Wed Apr 21 16:20:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
4396
4397         * mini.h, mini-ppc.c, cpu-g4.md: support for implicit exceptions.
4398
4399 2004-04-19 Ben Maurer  <bmaurer@users.sourceforge.net>
4400
4401         * iltests.il: more tests.
4402
4403 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
4404
4405         * mini-*.c (mono_arch_get_allocatable_int_vars): Skip written-only
4406         vars as well.
4407
4408 Mon Apr 19 19:39:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
4409
4410         * mini-ppc.c: some fixes to bootstrap mcs/corlib/etc.
4411
4412 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
4413
4414         * liveness.c: Mark variables as volatile in all basic blocks reachable
4415         from exception clauses.
4416
4417 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
4418
4419         * exceptions.cs (test_0_rethow_stacktrace): Make this work with
4420         inlining.
4421
4422 2004-04-18 Ben Maurer  <bmaurer@users.sourceforge.net>
4423
4424         * iltests.il, basic.cs: more tests for regalloc.
4425
4426 2004-04-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4427
4428         * iltests.il: Some tests for register allocation modifications
4429         I have locally.
4430
4431 2004-04-16  Zoltan Varga  <vargaz@freemail.hu>
4432
4433         * exceptions.cs: Add regression test for bug #56782.
4434
4435         * exceptions-*.c (mono_arch_handle_exception): Do not overwrite the
4436         original stack trace if an exception is rethrown. Fixes #56782. Oh,
4437         the beauty of fixing the same thing in 5 different files...
4438
4439 2004-04-15  Zoltan Varga  <vargaz@freemail.hu>
4440
4441         * mini.c (mono_method_to_ir): Do not compute coverage for inlined
4442         methods.
4443
4444 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
4445
4446         * mini.c: Add support for STRWLPARRAY marshalling convention.
4447
4448 Wed Apr 14 18:15:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
4449
4450         * exceptions-ppc.c: missing fixes in mono_jit_walk_stack (need
4451         to init the context to setup the regs pointer).
4452
4453 Wed Apr 14 17:59:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
4454
4455         * exceptions-ppc.c: more exceptions work.
4456
4457 Wed Apr 14 17:46:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4458
4459         * mini.c: avoid reusing the same MonoInst on multiple trees: this is
4460         not allowed.
4461
4462 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
4463
4464         * inssel-x86.brg (reg): Add new rules for add, sub and mul that
4465         can use the memory directly.
4466
4467         * cpu-pentium.md: Update documentation from a post from Zoltan. 
4468
4469         add x86_add_membase, x86_sub_membase, x86_mul_membase
4470
4471 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
4472
4473         * mini-ppc.c: Remove unused definitions FLOAT_REGS and
4474         GENERAL_REGS they were also hardcoded for all PPC ports.
4475
4476         (add_general): Use PPC_NUM_REG_ARGS instead of GENERAL_REGS.
4477
4478         Remove hard-coded limit for floating point registers, use
4479         PPC_LAST_FPARG_REG instead in MONO_TYPE_R4 and MONO_TYPE_R8.
4480
4481         Notice that in MacOS X calling conventions you can fit a lot more
4482         floating point values in registers, so I should update the PInvoke
4483         test to excercise the passing of floating point values on the
4484         stack (currently broken).
4485         
4486 2004-04-06  Miguel de Icaza  <miguel@ximian.com>
4487
4488         * tramp-ppc.c (create_trampoline_code): Added
4489         JUMP_TRAMPOLINE_SIZE. 
4490         (ppc_magic_trampoline): Follow the pattern from
4491         x86_magic_trampoline: if code is set to zero, return. 
4492         (create_trampoline_code): Always pass MonoMethod to the jump
4493         trampoline, before it was passing a null.
4494         (mono_arch_create_jump_trampoline): Implement the jump stub, could
4495         share the code with mono_arch_create_jit_trampoline. 
4496
4497         * mini-ppc.c (mono_arch_output_basic_block): CEE_JMP opcode
4498         implemented.
4499         (mono_arch_patch_code): MONO_PATCH_INFO_METHOD_JUMP patch type
4500         implemented.  
4501
4502         * cpu-g4.md: Added length for jmp instruction, the worst case
4503         scenario is 92 bytes (4 mandatory bytes, potential 19 registers
4504         for save_lmf).
4505
4506 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
4507
4508         * aot.c (mono_compile_assembly): Add back unlink removed by mistake.
4509
4510 2004-04-07  Zoltan Varga  <vargaz@freemail.hu>
4511
4512         * mini.c: Only set bblock->real_offset when adding a new bblock, and
4513         before each IL instruction.
4514
4515         * mini.c (CEE_BOX): Fix warnings.
4516
4517 2004-04-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4518
4519         * mini.c: removed a few unused vars and extra whitespace.
4520
4521 2004-04-05 Ben Maurer  <bmaurer@users.sourceforge.net>
4522
4523         * inssel.brg (MONO_EMIT_BOUNDS_CHECK): a new macro to emit bounds
4524         checks.
4525         (MONO_EMIT_BOUNDS_CHECK_IMM): the above, but when you know the
4526         index.
4527         (OP_GETCHR): use the above
4528         (CEE_LDELEMA): use the above.
4529
4530         * inseel-x86.brg (MONO_EMIT_BOUNDS_CHECK): a faster and smaller
4531         version of the generic impl.
4532         (MONO_EMIT_BOUNDS_CHECK_IMM): the same
4533         (CEE_LDELEMA): use the above.
4534
4535 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4536
4537         * inssel-long32.brg (CEE_CONV_OVF_I8): Sign extend the i4 value to i8.
4538         Fixes #56317.
4539
4540         * iltests.il: Added new regression test for #56317.
4541
4542 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4543
4544         * mini-x86.c (mono_arch_setup_jit_tls_data): Use pthread_attr_get_np
4545         under NetBSD. Fixes #56450.
4546
4547         * liveness.c (update_gen_kill_set): Fix previous patch.
4548
4549 2004-04-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4550
4551         * mini-x86.h: SA_STACK defined as SA_ONSTACK. Fixed build under NetBSD.
4552
4553 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4554
4555         * mini.c (mono_method_to_ir): Avoid handle_loaded_temps in
4556         ldsfld and ldsflda.
4557
4558         * inssel-sparc.brg: Add more optimizations.
4559
4560         * mini-sparc.c: Replace multiply/divide with shifts if possible.
4561
4562 2004-04-01  Martin Baulig  <martin@ximian.com>
4563
4564         * mini.c (handle_box): New static function; moved the
4565         implementation of CEE_BOX here.
4566         (mono_method_to_ir): Added `constrained_call' variable.
4567         (mono_method_to_ir:CEE_CONSTRAINED_): Set it.
4568         (mono_method_to_ir:CEE_CALL): If `constrained_call' is set, use
4569         mono_method_get_constrained() to get the method.
4570
4571 2004-04-01  Martin Baulig  <martin@ximian.com>
4572
4573         * mini.c (TYPE_PARAM_TO_TYPE, TYPE_PARAM_TO_CLASS): Removed.
4574         (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): Removed.
4575         (mono_method_to_ir): We don't need these macros anymore since
4576         mono_class_get_full() already takes care of it. 
4577
4578 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4579
4580         * aot.c: set aot_verbose to 0, fixed format string that caused sigsegv,
4581         use @function (as doesn't accept #function here) and check the return
4582         value of system and stop if fails.
4583
4584 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4585
4586         * mini.c: set the timeout to 2s when calling mono_domain_finalize.
4587
4588 2004-03-31  Zoltan Varga  <vargaz@freemail.hu>
4589
4590         * mini-ppc.c (mono_arch_patch_code): Fix ppc build.
4591
4592         * inssel-sparc.brg mini-sparc.c aot.c: Implement AOT support.
4593
4594         * inssel-long32.brg (OP_LNEG): Use ADC instead of ADD here. Fixes
4595         #56223.
4596
4597         * basic-long.cs: Add test for negation of Int64.MinValue.
4598
4599 2004-03-30  Zoltan Varga  <vargaz@freemail.hu>
4600
4601         * mini-sparc.c: Update status.
4602
4603         * mini-sparc.c tramp-sparc.c: Save lmf in trampolines.
4604
4605         * exceptions-sparc.c: Fix return value in filters.
4606
4607         * inssel-sparc.brg: Fix register allocation in some rules.
4608
4609 2004-03-28  Martin Baulig  <martin@ximian.com>
4610
4611         * mini.c (mmono_method_to_ir): In CEE_STELEM, do a handle_stobj()
4612         if neccessary.  
4613
4614 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4615
4616         * mini-x86.c (mono_arch_patch_code): Fix warnings.
4617         
4618         * mini-x86.c (mono_arch_output_basic_block): Fix CEE_MUL_OVF_UN if 
4619         dreg is not EAX. Thanks to Willibard Krenn for spotting this. Also
4620         remove unused conv_u4 opcode.
4621
4622         * mini-x86.c: Remove valgrind workaround since it slows down things
4623         even when mono is not run under valgrind.
4624
4625 2004-03-26  Zoltan Varga  <vargaz@freemail.hu>
4626
4627         * mini-sparc.c: Update status.
4628
4629         * inssel-sparc.brg: Add some optimizations.
4630
4631         * inssel-sparc.brg mini-sparc.c: Rework branch instructions to allow
4632         future delay slot filling. Add support for varargs, tail calls and JMP.
4633
4634         * inssel.brg mini-ops.h mini.c: Use OP_REFANYTYPE instead of 
4635         CEE_REFANYTYPE, since CEE_REFANYTYPE needs a prefix to be unique.
4636
4637         * inssel.brg: Fix register allocation in OP_ARGLIST.
4638
4639         * inssel.brg: Fix warnings.
4640
4641 2004-03-25  Martin Baulig  <martin@ximian.com>
4642
4643         * mini.c (inflate_generic_field): Removed.
4644         (mini_get_method): Removed, use mono_get_method_full(),
4645         (mini_get_class): Removed, use mono_class_get_full().
4646         (mono_method_to_ir): Pass our generic context to
4647         mono_field_from_token().        
4648
4649 2004-03-25  Martin Baulig  <martin@ximian.com>
4650
4651         * mini.c (mini_get_class): Take a `MonoGenericContext *' instead
4652         of a `MonoMethod *'.
4653         (mini_get_method): Take a `MonoGenericContext *' instead
4654         of a `MonoMethod *'.
4655         (TYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_TYPE): mono_method_to_ir() has
4656         a new local variable called `generic_context' which holds the
4657         current `MonoGenericContext *'; use it to lookup things.
4658
4659 2004-03-24  Martin Baulig  <martin@ximian.com>
4660
4661         * mini.c (mini_get_class): New static method; if we're inside a
4662         generic instance, inflate the class if neccessary.
4663         (mono_method_to_ir): Use mini_get_class() instead of mono_class_get().
4664
4665 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4666
4667         * iltests.il: New regression test for #55976.
4668
4669         * mini.c (mono_method_to_ir): Empty the stack in endfinally. Fixes
4670         #55976.
4671
4672 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
4673
4674         * exceptions-sparc.c (mono_sparc_handle_exception): Remove debugging
4675         output.
4676
4677 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
4678
4679         * liveness.c: Consider SSA stores as well as loads when making vars
4680         volatile.
4681
4682         * exceptions.cs: New regression tests for register allocation.
4683         
4684 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4685
4686         * mini-ppc.c, tramp-ppc.c: Added lock for accessing the domain code manager.
4687         * mini.c: Removed domain lock from mono_jit_compile_method_with_opt. Use
4688           domain lock only to protect puntual access to data structures.
4689           Added access lock for sighash, jit_icall_hash_name, 
4690           jit_icall_hash_addr and domain->code_mp.
4691
4692 2004-03-20  Zoltan Varga  <vargaz@freemail.hu>
4693
4694         * driver.c: Print SIGSEGV handling method.
4695
4696         * mini-x86.c (mono_arch_free_jit_tls_data): Add missing ifdef.
4697
4698         * mini.c (setup_jit_tls_data): Handle case when this is called
4699         multiple times for a thread.
4700
4701         * mini-x86.c cpu-pentium.md: Fix floating point branch opcodes so fbxx 
4702         is different from fbxx_un. Fixes #54303. Also use constants instead of
4703         magic numbers in a lot of places.
4704
4705 2004-03-19  Zoltan Varga  <vargaz@freemail.hu>
4706
4707         * exceptions.cs: Fix cctor test when --regression is used.
4708
4709 Thu Mar 18 19:57:56 CET 2004 Paolo Molaro <lupus@ximian.com>
4710
4711         * mini-ppc.c, exceptions-ppc.c: basic exceptions support 
4712         for Linux/ppc.
4713
4714 Thu Mar 18 19:56:19 CET 2004 Paolo Molaro <lupus@ximian.com>
4715
4716         * inssel-ppc.brg: fixed register assignments for some rules.
4717
4718 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4719
4720         * exceptions.cs: Add test for exceptions in static constructors.
4721
4722         * mini.c (mono_jit_compile_method_with_out): Move the calling of
4723         static constructors outside the domain lock. Fixes #55720.
4724
4725 2004-03-17  Martin Baulig  <martin@ximian.com>
4726
4727         * mini.c (get_generic_field_inst): Removed, this'll never happen.
4728         (inflate_generic_field): Take the `MonoMethod *' instead of the
4729         `MonoClass *' and added support for generic method.
4730         (mono_method_to_ir): In CEE_LDSFLD and CEE_STSFLD, assert we never
4731         have a `field->parent->gen_params', only inflate the field if it's
4732         an open constructed type.
4733
4734 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4735
4736         * exceptions-x86.c (mono_arch_handle_exception): Allocate a new
4737         exception object instead of the preconstructed ones.
4738
4739 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4740
4741         * mini.c: reverted changed to sigsegv_signal_handler commited
4742         accidentally in the previous patch.
4743
4744 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4745
4746         * mini.c:
4747         (mono_method_to_ir): CEE_CALLVIRT, abort if no method. It hanged when
4748         running --aot with an old assembly.
4749
4750 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4751
4752         * mini-sparc.c (mono_arch_instrument_epilog): Fix handling of floating
4753         point values.
4754
4755         * mini-sparc.c: Add support for v9 branches with prediction.
4756
4757 2004-03-15  Bernie Solomon  <bernard@ugsolutions.com>
4758
4759         * mini.c (mini_init): #warning is GNUC only
4760
4761         * mini-sparc.h: implement __builtin_frame_address
4762         and __builtin_return_address for Sun C compiler
4763
4764 2004-03-15  Zoltan Varga  <vargaz@freemail.hu>
4765
4766         * exceptions-sparc.c (mono_arch_has_unwind_info): Add missing function.
4767
4768 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4769
4770         * basic-calls.cs: Add test for unaligned byref long argument passing.
4771
4772         * mini-ops.h: Add sparcv9 compare and branch instructions.
4773
4774         * inssel-sparc.brg mini-sparc.h mini-sparc.c cpu-sparc.md: Use some
4775         v9 instructions if we have a v9 cpu.
4776
4777         * mini-sparc.c (mono_arch_get_global_int_regs): Use unused input
4778         registers for global allocation.
4779
4780         * exceptions-sparc.c: Fixes.
4781         
4782 2004-03-11  Zoltan Varga  <vargaz@freemail.hu>
4783
4784         * liveness.c (mono_analyze_liveness): Optimized version.
4785
4786         * inssel-sparc.brg cpu-sparc.md: Ongoing sparc work.
4787
4788         * mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Ongoing
4789         sparc work.
4790
4791         * basic-float.cs basic-calls.cs: New regression tests.
4792
4793 2004-03-10  Zoltan Varga  <vargaz@freemail.hu>
4794
4795         * mini-x86.h: Define SIGSEGV_ON_ALTSTACK only if we have a working
4796         sigaltstack implementation.
4797
4798         * mini-x86.c (mono_arch_setup_jit_tls_data): Fix previous patch.
4799         
4800         * mini-x86.c (mono_arch_setup_jit_tls_data): Turn off the sigaltstack
4801         stuff if SIGSEGV_ON_ALTSTACK is not defined.
4802
4803 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4804
4805         * mini.c: Fix warnings.
4806         
4807         * mini.c (mono_resolve_patch_target): New function which contains the
4808         arch independent part of the patching process.
4809
4810         * mini-x86.c (mono_arch_patch_code): Move arch independent parts of the
4811         patching code to a separate function.
4812
4813 2004-03-09  Bernie Solomon  <bernard@ugsolutions.com>
4814
4815         * mini.c (add_signal_handler): ifdef out on Windows
4816
4817 2004-03-08  Zoltan Varga  <vargaz@freemail.hu>
4818
4819         * mini-sparc.h mini-sparc.c inssel-sparc.brg exceptions-sparc.c 
4820         cpu-sparc.md: Add exception handling support + other fixes.
4821
4822         * driver.c: Print --help output to stdout. Fixes #55261. Also fix
4823         typed GC detection in --version.
4824
4825         * basic.cs exceptions.cs: New regression tests.
4826
4827         * mini.h mini-x86.h mini-ppc.h: Add MonoCompileArch structure where
4828         the arch specific code can store data during a compilation.
4829
4830         * mini-ops.h: Add OP_SETFRET.
4831
4832         * mini.c (mini_get_ldelema_ins): Instead of allways calling the same
4833         function, register a separate icall for each arity, so the icalls can
4834         get a wrapper.
4835         
4836         * mini.c (mono_print_tree): Print negative offsets in a more readable
4837         form.
4838         
4839         * mini.c: Make signal handling work on sparc.
4840         
4841         * mini.c (mini_init): Add emulation for lconv_to_r8_un.
4842
4843         * inssel-long32.brg: Fix OP_LSUB_OVF_UN rule.
4844
4845         * jit-icalls.c: Emulate truncl by aintl on solaris.
4846
4847         * jit-icalls.c (mono_lconv_to_r8_un): New icall emulation function.
4848
4849 2004-03-05  Zoltan Varga  <vargaz@freemail.hu>
4850
4851         * mini.c (mini_init): fconv_to_ovf can raise exceptions.
4852
4853 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4854
4855         * mini.c: In CEE_ISINST and CEE_CASTCLASS, if the type is an interface or
4856         a MarshalByRef type, inline a method that performs the check, taking into
4857         account that the object can be a proxy. Also implemented tow new opcodes:
4858         CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
4859         * inssel.brg: Implemented two new opcodes, mini-ops.h: OP_CISINST and 
4860         OP_CCASTCLASS, which implement CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
4861
4862 Tue Mar 2 17:23:48 CET 2004 Paolo Molaro <lupus@ximian.com>
4863
4864         * mini-ppc.c: if a relative branch displacement is too big
4865         but it points to and area reachable with an absolute branch, 
4866         avoid the thunks.
4867
4868 Tue Mar 2 16:59:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4869
4870         * mini.c: optimize small copies in cpblk.
4871
4872 2004-03-01  Zoltan Varga  <vargaz@freemail.hu>
4873
4874         * basic-calls.cs basic-float.cs: New regression tests.
4875
4876         * mini-sparc.c inssel-sparc.brg mini-ops.h: Access local variables at 
4877         negative offsets from %fp. Implement localloc. Fix local register 
4878         allocation. Fix the case when the this argument needs to be saved to
4879         the stack. Implement some missing opcodes.
4880
4881 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4882
4883         * mini.c (mini_method_compile): Reenable global regalloc in methods
4884         with exception handlers.
4885
4886         * linear-scan.c (mono_varlist_sort): Fix warning.
4887
4888         * linear-scan.c (mono_linear_scan): Fix computation of used_regs.
4889
4890         * mini-x86.c (mono_arch_regalloc_cost): Reenable precise computation of
4891         regalloc costs.
4892
4893         * liveness.c: Make all variables uses in exception clauses volatile, to
4894         prevent them from being allocated to registers. Fixes #42136.
4895
4896 2004-02-25  Zoltan Varga  <vargaz@freemail.hu>
4897
4898         * mini-x86.c (mono_arch_regalloc_cost): Revert this change since it
4899         causes regressions.
4900
4901         * mini.h linear-scan.c mini-x86.c mini-sparc.c mini-ppc.c: Add 'cfg'
4902         argument to mono_arch_regalloc_cost.
4903
4904         * mini-x86.c (mono_arch_regalloc_cost): Compute regalloc costs 
4905         precisely.
4906
4907 2004-02-24  Zoltan Varga  <vargaz@freemail.hu>
4908
4909         * mini.h mini-x86.c mini-ppc.c mini-sparc.c linear-scan.c: 
4910         Make the cost of allocating a variable to a register arch dependent.
4911
4912         * basic-calls.cs: Fix compilation of tests.
4913         
4914         * mini.h mini.c tramp-x86.c mini-x86.c: Add mono_running_on_valgrind ()
4915         helper function to cut back on the number of #ifdefs needed.
4916
4917         * mini-ppc.c: Fix compilation.
4918
4919         * basic-calls.cs: New regression tests.
4920
4921         * mini-sparc.c (mono_sparc_is_virtual_call): New helper function.
4922
4923         * tramp-sparc.c (create_specific_trampoline): Use g5 register instead
4924         of l0 since that is callee saved.
4925
4926         * tramp-sparc.c (sparc_magic_trampoline): Apply unbox trampoline only
4927         to virtual calls.
4928
4929         * mini-sparc.c: Ongoing work + flag virtual calls with a special kind 
4930         of delay instruction.
4931
4932         * inssel.brg (OP_CHECK_THIS): Set tree->sreg1 and dreg correctly.
4933
4934         * mini.h (MonoCallInst): Add 'virtual' flag.
4935
4936         * inssel.brg (mini_emit_virtual_call): Set 'virtual' flag.
4937
4938 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4939
4940         * *.cs: New regression tests.
4941
4942         * mini-sparc.c inssel-sparc.brg: Update after latest changes. Ongoing sparc 
4943         work.
4944
4945         * mini.c (mono_runtime_install_handlers): Fix build.
4946
4947         * mini.h (MonoJitTlsData): Add 'stack_size', 'signal_stack' and
4948         'signal_stack_size' members.
4949
4950         * mini.h mini.c mini-x86.h mini-x86.c: Run sigsegv handlers on an 
4951         alternate signal stack.
4952
4953         * exceptions-x86.c: Add stack overflow handling.
4954
4955         * mini.h mini.c mini-x86.c mini-ppc.c trace.h trace.c: Move tracing 
4956         functions to arch independent code.
4957
4958         * mini.c (mono_print_tree): Print more detailed info for load_membase
4959         opcodes.
4960         
4961 2004-02-23  Martin Baulig  <martin@ximian.com>
4962
4963         * mini.c (mini_get_method): Set `gmethod->generic_inst'.
4964
4965 Sun Feb 22 22:25:19 CET 2004 Paolo Molaro <lupus@ximian.com>
4966
4967         * mini-x86.c: fixed reg allocation for div/rem.
4968
4969 2004-02-22  Miguel de Icaza  <miguel@ximian.com>
4970
4971         * driver.c (mono_main): Report some configuratio options on --version.
4972
4973 Fri Feb 20 11:01:44 PST 2004 Paolo Molaro <lupus@ximian.com>
4974
4975         * mini-ppc.c: fixed clt.un, cgt.un. Optimized calls to functions
4976         low in the address space. Correctly flush memory in thunks where we
4977         output native code.
4978
4979 2004-02-20  Martin Baulig  <martin@ximian.com>
4980
4981         * mini.c (mini_get_method): New static method; inflate all generic
4982         methods and methods in open generic instances.
4983         (mono_method_to_ir): Use mini_get_method() instead of mono_get_method().
4984         (ret_type_to_call_opcode): Added support for MONO_TYPE_GENERICINST.
4985
4986 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
4987
4988         * mini-sparc.c (mono_arch_patch_code): Update after domain->code_mp changes.
4989
4990         * tramp-sparc.c (mono_arch_create_jump_trampoline): Set ji->method.
4991
4992 2004-02-19  Bernie Solomon  <bernard@ugsolutions.com>
4993
4994         * helpers.c (mono_disassemble_code): use Sun's dis if not using gcc
4995
4996         * mini-sparc.c (flushi mono_arch_output_basic_block): make
4997         it compile using Sun's compiler.
4998
4999 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
5000
5001         * 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.
5002
5003         * basic-calls.cs basic-float.cs basic-long.cs objects.cs: New regression tests.
5004
5005 Tue Feb 17 21:41:20 CET 2004 Paolo Molaro <lupus@ximian.com>
5006
5007         * aot.c, mini-x86.c, mini.c: use the code manager instead of a mempool to hold native
5008         code.
5009         * mini-ppc.c: handle calls outside of the allowed range with thunks
5010         allocated using the code manager.
5011         * tramp-ppc.c: use the code manager to hold generated native code.
5012         Fixed the magic trampoline to just patch vtable entries.
5013
5014 2004-02-17  Zoltan Varga  <vargaz@freemail.hu>
5015
5016         * inssel.brg inssel-x86.brg: Move call(immediate) rules to the platform
5017         independent file.
5018
5019 2004-02-16  Zoltan Varga  <vargaz@freemail.hu>
5020
5021         * tramp-ppc.c (mono_arch_create_jump_trampoline): Fix compilation on
5022         PPC.
5023
5024         * mini-x86.c: Call mono_arch_get_lmf_addr instead of mono_get_lmf_addr
5025         if we have a working __thread implementation.
5026
5027         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Remove 
5028         OP_CALL_IMM opcodes, since the CALL opcodes handles immediates as well.
5029
5030 2004-02-15  Zoltan Varga  <vargaz@freemail.hu>
5031
5032         * mini-x86.c: Fix compilation under gcc 2.
5033         
5034 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
5035
5036         * mini.c (mono_codegen): Avoid infinite loop when an icall wrapper
5037         contains a call to the wrapped function.
5038
5039         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Add 
5040         OP_<CALL>_IMM opcodes, and use them under X86.
5041         
5042         * mini.c (mono_jit_find_compiled_method): Fix warning.
5043
5044         * cpu-pentium.md: Fix length of opcodes which use x86_alu_membase_imm.
5045
5046         * jit-icalls.c (mono_ldftn_nosync): New JIT icall.
5047
5048         * tramp-x86.c (mono_arch_create_jump_trampoline): Move arch independent
5049         functionality to mini.c.
5050
5051         * mini.c (mono_create_jump_trampoline): New function to create a jump
5052         trampoline. Return a compiled method instead of a trampoline if it
5053         exists. Add a cache for jump trampolines.
5054
5055         * mini.c (mono_jit_find_compiled_method): New function to return a
5056         compiled method if it exists.
5057
5058         * mini-x86.c: Call mono_create_jump_trampoline instead of 
5059         mono_arch_create_jit_trampoline.
5060
5061         * jit-icalls.c (mono_ldftn): Do not compile the method. Instead, return
5062         a jump trampoline. Fixes #52092.
5063         
5064 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
5065
5066         * debug-mini.c (mono_init_debugger): Remove call to mono_verify_corlib,
5067         which is not up-to-date. Add check_corlib_version () instead.
5068
5069         * mini.c (mini_init): Call mono_thread_attach () so embedders do not 
5070         have to call it.
5071         
5072         * mini.c (mono_runtime_install_handlers): Remove check for valgrind
5073         since newer valgrind versions do not need it.
5074
5075         * mini.c (mono_jit_compile_method_with_opt): New helper function to
5076         compile a method with a given set of optimizations.
5077
5078         * mini.c: Compile icall wrappers on-demand instead of at startup.
5079
5080         * mini-sparc.c mini-ppc.c: Call mono_icall_get_wrapper to obtain the
5081         wrapper for an icall.
5082
5083 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
5084
5085         * mini.c (mono_method_to_ir): Handle switch with non-empty stack. Fixes
5086         #54063.
5087
5088         * iltests.il: Add test for non-empty stack before switch instruction.
5089
5090 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5091
5092         * mini.c: Add support for new stringbuilder marshalling conventions.
5093
5094         * mini.c (mono_method_to_ir): Fix stack management of generic CEE_BOX.
5095
5096 2004-02-01  Martin Baulig  <martin@ximian.com>
5097
5098         * mini.c (MTYPE_PARAM_TO_TYPE): Method type arguments are stored
5099         in `ginst->mtype_argv'.
5100
5101 2004-01-31  Miguel de Icaza  <miguel@ximian.com>
5102
5103         * mini.c: Add comments, replace CEE_XXX+128 with OP_XXX to
5104         facilitate grepping.
5105
5106 Wed Jan 28 14:04:58 CET 2004 Paolo Molaro <lupus@ximian.com>
5107
5108         * mini.c: fixed buglet in initobj generic implementation for references.
5109
5110 Fri Jan 23 16:10:44 EST 2004 Paolo Molaro <lupus@ximian.com>
5111
5112         * Makefile.am: make the version script conditional.
5113         * jit-icalls.c: handle missing truncl().
5114
5115 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5116
5117         * exceptions.cs: Add more tests for double->int conversion.
5118
5119         * jit-icalls.c (mono_fconv_ovf_i8): Call truncl before comparison, so
5120         we don't throw exceptions when converting 1.1 to a long. Fixes #53250.
5121
5122 Fri Jan 23 17:12:08 CET 2004 Paolo Molaro <lupus@ximian.com>
5123
5124         * driver.c: make --verbose --version emit an error
5125         if the loaded corlib doesn't match the runtime version.
5126
5127 Mon Jan 19 17:44:50 CET 2004 Paolo Molaro <lupus@ximian.com>
5128
5129         * mini-ppc.h: export ppc_patch().
5130         * mini-ppc.c: call convention fixes. Added assert in ppc_patch().
5131         * tramp-ppc.c: call convention fixes: Linux/PPC support should be
5132         on par or better than on MacOSX.
5133
5134 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5135
5136         * mini.c tramp-x86.c tramp-sparc.c: Updated after changes to
5137         mono_lookup_pinvoke_call.
5138
5139         * mini-x86.c: Under windows, the default pinvoke calling convention is
5140         stdcall. Fixes #52834.
5141
5142         * mini.c (optimize_branches): Add an upper bound to the number of
5143         iterations to prevent infinite loops on strange loops. Fixes #53003.
5144
5145 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5146
5147         * inssel.brg: Add vectors<->one dimensional array checking to CASTCLASS
5148         and ISINST. Fixes #52093.
5149
5150         * objects.cs (test_0_vector_array_cast): New tests.
5151         
5152 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
5153
5154         * jit-icalls.c (helper_stelem_ref_check): New jit icall for array type
5155         checking in Array.Set ().
5156
5157         * mini.c (method_to_ir): Add array type checking in Array.Set (). Fixes
5158         #52590.
5159
5160         * object.cs (test_0_multi_array_cast): New regression test.
5161
5162 Thu Jan 15 16:30:24 CET 2004 Paolo Molaro <lupus@ximian.com>
5163
5164         * exceptions-ppc.c: fix build on Linux/PPC.
5165
5166 2004-01-14  Zoltan Varga  <vargaz@freemail.hu>
5167
5168         * tramp-x86.c (x86_magic_trampoline): Disable code patching when
5169         running under valgrind.
5170         (x86_magic_trampoline): Fix build bustage.
5171
5172         * debug-mini.c: Modify the debug info serialize/deserialize code so it handles
5173         negative values as well. This is needed for the encoding of the line number
5174         info, since sometimes the line numbers are not in increasing order.
5175
5176 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5177
5178         * cpu-pentium.md (localloc): Increase the size of the localloc 
5179         instruction since it is a loop under Win32.
5180
5181         * debug-mini.c (record_line_number): Get rid of unneccesary memory
5182         allocation.
5183
5184 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5185
5186         * exceptions-ppc.c exceptions-x86.c exceptions-sparc.c 
5187         tramp-x86.c tramp-ppc.c tramp-sparc.c: Applied patch from 
5188         Max Horn (max@quendi.de). Fix file names in comments.
5189
5190 2004-01-03  Zoltan Varga  <vargaz@freemail.hu>
5191
5192         * ssa.c (mono_ssa_rename_vars): Allocate new_stack on the heap to
5193         avoid stack overflow.
5194         (replace_usage): Avoid uninitialized variable warnings.
5195
5196         * mini.c (mono_method_to_ir): Avoid disabling SSA for array operations
5197         and taking the address of valuetype variables.
5198
5199 2004-01-03  Patrik Torstensson
5200
5201         * mini-x86.c: renamed fpflags to flags in RegTrack, going to be used
5202         for other purposes than FP later on.
5203
5204 2004-01-02  Zoltan Varga  <vargaz@freemail.hu>
5205
5206         * mini.c (mono_method_to_ir): Prevent register allocation for arguments
5207         of tail calls.
5208
5209 Fri Jan 2 13:37:25 CET 2004 Paolo Molaro <lupus@ximian.com>
5210
5211         * mini-ops.h, mini.c, inssel.brg: Object.GetType () speedup.
5212
5213 2003-12-30  Patrik Torstensson <p@rxc.se>
5214
5215         * mini-x86.h: Decreased number of availiable fp regs.
5216         Solves corner cases with FP spilling.
5217
5218 2003-12-23  Patrik Torstensson <p@rxc.se>
5219
5220         * mini-x86.c, mini-ops.h, cpu-pentium.md: Added support
5221         for floating point stack tracking / spilling on x86. 
5222         Fixes bug #49012.
5223         
5224         * basic-float.cs: added float mul overflow test.
5225
5226 2003-12-23  Zoltan Varga  <vargaz@freemail.hu>
5227
5228         * mini.c (mono_method_to_ir): Add workaround for bug #51126.
5229
5230 Sun Dec 21 19:53:16 CET 2003 Paolo Molaro <lupus@ximian.com>
5231
5232         * mini.h, mini-ppc.c, mini-ppc.h: small cleanups and
5233         supports for cond branches that overflow the immediate
5234         overflow offset. mcs can compile simple programs.
5235
5236 Fri Dec 19 21:17:16 CET 2003 Paolo Molaro <lupus@ximian.com>
5237
5238         * exceptions-ppc.c: exception handling support wip:
5239         finally handlers get run on exception.
5240
5241 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5242
5243         * aot.c (mono_aot_get_method_inner): Avoid loading AOT code while 
5244         profiling.
5245
5246 Fri Dec 19 17:58:28 CET 2003 Paolo Molaro <lupus@ximian.com>
5247
5248         * cpu-g4.md, mini-ppc.c, exceptions-ppc.c, mini-ppc.h:
5249         initial support for stack walking and unwinding.
5250
5251 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
5252
5253         * driver.c (mono_main): Make corlib-out-of-sync message more 
5254         descriptive. Also remove verify_corlib call.
5255
5256 Wed Dec 17 15:31:41 CET 2003 Paolo Molaro <lupus@ximian.com>
5257
5258         * mini.c: make CEE_NEWARR calls and other emulated opcodes 
5259         not overlap with other call's arguments, too.
5260
5261 Wed Dec 17 12:49:23 CET 2003 Paolo Molaro <lupus@ximian.com>
5262
5263         * mini.h, mini.c, mini-ppc.c, mini-sparc.c, mini-x86.c: 
5264         move to arch-specific code the choice of arch-specific
5265         intrinsics (from Laurent Morichetti (l_m@pacbell.net)).
5266         * mini.c: ensure emulation calls will not interleave
5267         with other calls.
5268
5269 Wed Dec 17 12:27:26 CET 2003 Paolo Molaro <lupus@ximian.com>
5270
5271         * tramp-ppc.c, basic-calls.cs: rework trampolines so that
5272         the magic trampoline stack frame is dropped before executing
5273         the new method.
5274
5275 Mon Dec 15 18:13:57 CET 2003 Paolo Molaro <lupus@ximian.com>
5276
5277         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed some opcode lengths
5278         and integer to fp conversions. Added support for overflowing
5279         arguments on the stack. Reserve a couple more registers as temps.
5280         Added support for aot compilation (as output still needs to be
5281         tweaked, though).
5282
5283 Sat Dec 13 17:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
5284
5285         * mini-ppc.c, basic-long.cs: fix jumps to known labels.
5286         Don't overwrite return register in some corner cases.
5287
5288 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5289
5290         * mini.h mini.c driver.c mini-x86.c mini-ppc.c aot.c: Do not run
5291         static constructors when AOT compiling.
5292
5293         * driver.c (mono_main): Call mono_check_corlib_version.
5294
5295 Sat Dec 13 10:31:12 CET 2003 Paolo Molaro <lupus@ximian.com>
5296
5297         * cpu-g4.md, basic.cs: fixed div target register.
5298
5299 Sat Dec 13 09:45:56 CET 2003 Paolo Molaro <lupus@ximian.com>
5300
5301         * mini-ppc.c, basic.cs: shl_imm fix with test.
5302
5303 Fri Dec 12 21:25:14 CET 2003 Paolo Molaro <lupus@ximian.com>
5304
5305         * inssel-ppc.brg, mini-ppc.h, mini-ppc.c: support for passing 
5306         structures by value. Misc fixes.
5307         * objects.cs: more tests.
5308
5309 Fri Dec 12 10:11:49 CET 2003 Paolo Molaro <lupus@ximian.com>
5310
5311         * mini-ppc.c: lconv.ovf.i implemented.
5312
5313 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5314
5315         * mini.c:
5316         (mini_init): don't error out if someone already called g_thread_init.
5317
5318 Tue Dec 9 17:27:14 CET 2003 Paolo Molaro <lupus@ximian.com>
5319
5320         * exceptions-x86.c, exceptions-ppc.c: allow the exception object
5321         to be any type per the spec. Fix abnormal memory usage when
5322         the same object is repeatedly thrown.
5323
5324 Tue Dec 9 15:39:54 CET 2003 Paolo Molaro <lupus@ximian.com>
5325
5326         * mini.c: check for overruns in IL code.
5327
5328 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5329
5330         * TODO: Add/remove some todo entries.
5331
5332 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5333
5334         * driver.c (mono_main): Call mono_verify_corlib.
5335
5336 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5337
5338         * inssel.brg: In CEE_ISINST and CEE_CASTCLASS, removed check for proxy. 
5339         This has been moved to mini.c
5340         * mini.c: in mono_method_to_ir, CEE_ISINST and CEE_CASTCLASS cases, if the
5341         type being casted is marshalbyref it could be a proxy, so instead of
5342         emitting the type check code, emit a call to a runtime method that will
5343         perform the check by calling CanCastTo if needed.
5344
5345 2003-12-06  Zoltan Varga  <vargaz@freemail.hu>
5346
5347         * mini-x86.c (mono_arch_emit_prolog): Fix stack space allocation for
5348         methods with large stack frames under Win32.
5349
5350 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5351
5352         * Makefile.am: Distribute regression tests.
5353
5354         * mini-x86.c (mono_arch_get_allocatable_int_vars): Sort the var list
5355         at the end instead of inserting each variable into the sorted list.
5356
5357         * linear-scan.c (mono_varlist_sort): New helper function.
5358         
5359 Wed Dec 3 20:46:28 CET 2003 Paolo Molaro <lupus@ximian.com>
5360
5361         * mini.c: ensure arguments and locals are within bounds.
5362
5363 Wed Dec 3 17:59:10 CET 2003 Paolo Molaro <lupus@ximian.com>
5364
5365         * mini-ppc.c, cpu-g4.md, basic.cs, basic-long.cs: more tests and 
5366         related fixes.
5367
5368 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5369
5370         * mini.c (mono_cprop_copy_values): Fix crash.
5371
5372         * aot.c: Set verbosity back to 0.
5373         
5374 Wed Dec 3 15:42:27 CET 2003 Paolo Molaro <lupus@ximian.com>
5375
5376         * regalloc.c: complete memory leak fix by Laurent Morichetti
5377         (l_m@pacbell.net).
5378
5379 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5380
5381         * driver.c (main_thread_handler): Revert the previous patch.
5382
5383         * tramp-x86.c (x86_class_init_trampoline): Avoid patching when running
5384         under valgrind.
5385
5386         * mini-x86.c (mono_arch_local_regalloc): Do not allocate transient
5387         memory from the memory pool.
5388
5389         * driver.c (main_thread_handler): Turn on all optimizations when
5390         --aot is used.
5391
5392         * mini.c (mono_find_jit_opcode_emulation): Turn emul_opcode_hash into
5393         an array for better performance.
5394
5395         * regalloc.c (mono_regstate_assign): Fix memory leak.
5396
5397         * debug-mini.c (mono_debug_serialize_debug_info): New function to
5398         serialize the debug info.
5399
5400         * debug-mini.c (mono_debug_add_aot_method): New function to load the
5401         debug info from the serialized representation.
5402
5403         * aot.c: Save debug info into the generated file and load it when 
5404         loading a method.
5405
5406         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
5407
5408 Mon Dec 1 16:54:05 CET 2003 Paolo Molaro <lupus@ximian.com>
5409
5410         * mini-ppc.c, tramp-ppc.c: save FP arguments in the trampoline.
5411         More FP-related fixes.
5412
5413 Sun Nov 30 19:13:52 CET 2003 Paolo Molaro <lupus@ximian.com>
5414
5415         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed finally handlers
5416         and register allocation buglet. Hello world now runs.
5417
5418 Fri Nov 28 23:03:05 CET 2003 Paolo Molaro <lupus@ximian.com>
5419
5420         * cpu-g4.md, inssel-ppc.brg, mini-ppc.c: better long return support.
5421         * tramp-ppc.c: fixed class init trampoline.
5422         * inssel-ppc.brg, mini.c, jit-icalls.c, mini-ppc.h: more emulation.
5423
5424 Fri Nov 28 16:36:29 CET 2003 Paolo Molaro <lupus@ximian.com>
5425
5426         * cpu-g4.md, inssel-ppc.brg, jit-icalls.c, mini-ppc.c, mini-ppc.h,
5427         mini.c: more ppc changes/fixes.
5428
5429 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
5430
5431         * mini.c (mono_method_to_ir): Fix tail calls with valuetype arguments.
5432         Also optimize the case when the arguments are the same in the caller 
5433         and in the callee.
5434
5435         * iltests.il: Add tests for tail calls with valuetype arguments.
5436
5437 Thu Nov 27 21:06:37 CET 2003 Paolo Molaro <lupus@ximian.com>
5438
5439         * mini-ppc.c: fixes for struct return type.
5440
5441 Thu Nov 27 19:02:07 CET 2003 Paolo Molaro <lupus@ximian.com>
5442
5443         * mini.h, mini.c, mini-x86.c, mini-ppc.c, mini-sparc.c: move 
5444         mono_spillvar_offset() to arch-specific code.
5445
5446 Thu Nov 27 18:30:42 CET 2003 Paolo Molaro <lupus@ximian.com>
5447
5448         * mini-ppc.h, mini-ppc.c: handle some different ABI call convention issues.
5449
5450 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
5451
5452         * exceptions-x86.c: Fix stack space leaks.
5453         
5454         * exceptions-x86.c (mono_arch_find_jit_info): Restore callee saved
5455         registers from the lmf if the method has save_lmf set.
5456
5457 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5458
5459         * tramp-x86.c (x86_magic_trampoline): Avoid patching in the addresses
5460         of icall wrappers into InvokeInDomain, since these are now per-domain.
5461
5462 Wed Nov 26 20:15:04 CET 2003 Paolo Molaro <lupus@ximian.com>
5463
5464         * mini-ppc.h, mini-x86.h, mini.c, inssel-ppc.brg, jit-icalls.c:
5465         make some opcode emulation and intrinsic ops enabled/disabled 
5466         according to the architecture. More fixes.
5467
5468 Wed Nov 26 19:59:09 CET 2003 Paolo Molaro <lupus@ximian.com>
5469
5470         * mini-ppc.c, mini-sparc.c, cpu-g4.md: more bug fixes.
5471
5472 Wed Nov 26 19:18:29 CET 2003 Paolo Molaro <lupus@ximian.com>
5473
5474         * mini.h, inssel.brg, mini-x86.c, mini-ppc.c, mini-sparc.c: move
5475         arch-specific handling for 'this' and struct return type to
5476         arch-specific code.
5477
5478 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5479
5480         * aot.c: prevent divide by zero error when reporting (it happened with
5481         Accessibility.dll).
5482
5483 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
5484
5485         * mini.h (inst_switch): Remove unused macro.
5486
5487 2003-11-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5488
5489         * aot.c:
5490         (load_aot_module): free 'info->methods' and 'info' properly. No more
5491         "free(): invalid pointer blah" messages when you have an old aot
5492         compiled assembly.
5493
5494 2003-11-21  Lluis Sanchez Gual <lluis@ximian.com>
5495
5496         * jit-icalls.c, mini.c: Added support for context static fields.
5497
5498 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5499
5500         * mini.c (mono_method_blittable): Methods which set LastError are not 
5501         blittable either. Fixes #51108.
5502         
5503 Tue Nov 18 16:41:37 CET 2003 Paolo Molaro <lupus@ximian.com>
5504
5505         * mini.c: flush icache.
5506         * cpu-g4.md, mini-ppc.c, inssel.brg: more fixes. Trace support.
5507
5508 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5509
5510         * mini.c (mono_type_blittable): OBJECT is not blittable. Fixes #47842.
5511
5512 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5513
5514         * tramp-x86.c (x86_class_init_trampoline): Make code patching thread
5515         safe on IA32.
5516
5517         * mini-x86.c (mono_arch_call_opcode): Disable AOT for methods with 
5518         vararg calls.
5519
5520         * inssel.brg (CEE_MKREFANY): Fix AOT case.
5521
5522 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5523
5524         * mini-x86.c (mono_arch_local_regalloc): Fix regalloc for div 
5525         instruction when the result is discarded.
5526
5527         * iltests.il (test_0_div_regalloc): New regression test.
5528
5529         * arrays.cs: Fix compilation error.
5530
5531 Fri Nov 14 21:34:06 CET 2003 Paolo Molaro <lupus@ximian.com>
5532
5533         * inssel-x86.brg, inssel-float.brg, mini-ops.h: move x86-specific
5534         float rules to inssel-x86.brg: sane architectures with FP registers
5535         don't need to implement these rules.
5536
5537 Fri Nov 14 20:52:12 CET 2003 Paolo Molaro <lupus@ximian.com>
5538
5539         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: updates and fixes to the ppc port.
5540
5541 Fri Nov 14 17:58:27 CET 2003 Paolo Molaro <lupus@ximian.com>
5542
5543         * mini.h, inssel-long32.brg: fixed endianess issues in int64
5544         implementation of 32 bit systems.
5545
5546 Thu Nov 13 16:14:41 CET 2003 Paolo Molaro <lupus@ximian.com>
5547
5548         * exceptions-ppc.c: fix build on Linux/ppc from Jeroen@xs4all.nl
5549         (Jeroen Zwartepoorte).
5550
5551 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5552
5553         * mini.c (mono_method_to_ir): Use CEE_JMP only if the signature of
5554         the caller and the callee matches.
5555         
5556         * mini.c (mono_method_to_ir): Add comment.
5557
5558         * mini-x86.c (mono_arch_output_basic_block): Use mono_signbit, since
5559         signbit is missing on some platforms.
5560
5561 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5562
5563         * mini.h (mono_arch_setup_jit_tls_data): New arch specific function.
5564
5565         * mini.c (setup_jit_tls_data): Call the new function.
5566         
5567         * mini-x86.c mini-ppc.c mini-sparc.c: Define the new function.
5568
5569         * mini-x86.c: Add experimental support for fast access to the lmf
5570         structure under NPTL/Linux 2.6.x.
5571
5572 2003-11-06  Martin Baulig  <martin@ximian.com>
5573
5574         * ldscript: Make `GC_push_all_stack', `GC_start_blocking',
5575         `GC_end_blocking' and 'gc_thread_vtable' public; they're used by
5576         the debugger.
5577
5578 2003-11-02  Martin Baulig  <martin@ximian.com>
5579
5580         * mini.c (inflate_generic_field): New static method.
5581         (mono_method_to_ir): In CEE_LDFLD and CEE_LDSFLD: if we're a
5582         generic instance and the field is declared in a generic type, call
5583         inflate_generic_field() to inflate it.  Fixes gen-28.cs.
5584
5585 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5586
5587         * mini.h mini.c (mono_method_same_domain): New function to return
5588         whenever the caller and the callee are in the same domain.
5589
5590         * tramp-x86.c (x86_magic_trampoline): Use the new function.     
5591
5592 2003-10-30  Martin Baulig  <martin@ximian.com>
5593
5594         * mini.c (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): New macros;
5595         similar to TYPE_PARAM_TO_TYPE and TYPE_PARAM_TO_CLASS, but for
5596         method parameters.
5597         (mono_method_to_ir): Added support for MONO_TYPE_MVAR; similar to
5598         MONO_TYPE_VAR, we the actual types from MTYPE_PARAM_TO_CLASS(). 
5599
5600 2003-10-29  Zoltan Varga  <vargaz@freemail.hu>
5601
5602         * mini.c mini-ops.h inssel.brg: Implement undeniable exception 
5603         propagation.
5604
5605         * mini.c (sigusr1_signal_handler): Move creation of the thread abort
5606         object here, so it is in the correct appdomain etc.
5607
5608 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
5609
5610         * mini.c (mono_jit_compile_method_inner): Lookup icalls here if not
5611         already done.
5612         (mono_method_to_ir): Avoid freeing the type created returned from
5613         mono_type_create_from_typespec, since it is put into an internal cache
5614         by the function. Fixes pointer.exe.
5615
5616         * mini.c tramp-x86.c tramp-sparc.c tramp-ppc.c: Use the normal 
5617         trampolines for icalls and pinvokes as well. Fixes #33569.
5618
5619 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
5620
5621         * mini.c: Update after appdomain changes.
5622
5623         * mini.c (mono_jit_compile_method_inner): Allways compile native
5624         method wrappers in the root domain, since there can only be one
5625         instance of them, whose address is stored in method->info.
5626
5627 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
5628
5629         * mini.c (mono_runtime_install_handlers): Get rid of the MONO_VALGRIND
5630         environment variable. Instead detect automatically whenever running
5631         under valgrind using the magic macro RUNNING_ON_VALGRIND from
5632         valgrind.h.
5633
5634 2003-10-16  Miguel de Icaza  <miguel@ximian.com>
5635
5636         * trace.c, trace.h: New files that implement the new trace option
5637         parsing. 
5638
5639         * driver.c: Document new --trace options.
5640
5641         * exceptions-ppc.c, exceptions-x86.c, mini-ppc.c, mini-sparc.c,
5642         mini-x86.c: Apply:
5643
5644         -       if (mono_jit_trace_calls)
5645         +       if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
5646
5647         * mini.h: prototypes.
5648         
5649 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
5650
5651         * mini.c (mono_method_to_ir): Fix initialization of typedbyref locals.
5652
5653         * mini.c inssel.brg: Implement typedefbyref opcodes.
5654
5655         * mini.c (mono_jit_compile_method): Remove unused local variable.
5656
5657         * mini.c (mono_jit_compile_method_inner): Ditto.
5658         
5659 2003-10-12  Zoltan Varga  <vargaz@freemail.hu>
5660
5661         * tramp-x86.c (x86_class_init_trampoline): Fix build.
5662         
5663         * tramp-x86.c (x86_class_init_trampoline): Thread safety fixes.
5664
5665 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
5666
5667         * mini.c (mono_no_aot): Remove unused global variable.
5668
5669         * mini.c: Thread safety fixes.
5670
5671 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
5672
5673         * mini.c (mono_create_class_init_trampoline): Add a lock around
5674         class_init_hash_addr.
5675
5676         * arrays.cs (test_0_newarr_emulation): Add new regression test for
5677         #30073.
5678
5679         * mini.c: Decompose the NEWARR instruction before decomposing its
5680         arguments. Fixes #30073.
5681
5682 2003-10-08  Zoltan Varga  <vargaz@freemail.hu>
5683
5684         * mini-x86.c (mono_arch_emit_epilog): Add support for stdcall calling
5685         convention.
5686
5687 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
5688
5689         * mini.c (mono_method_to_ir): Allow wrapper data for CEE_LDELEMA.
5690
5691         * inssel-x86.brg (OP_LOCALLOC): Fix register assignment for localloc.
5692
5693         * driver.c: Add support for compiling icall wrappers to --compile.
5694
5695 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
5696
5697         * inssel.brg: The empty value in class->interface_offsets is -1, not
5698         0. Fixes #49287.
5699
5700 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
5701
5702         * objects.cs: New test for 'is' operator on an array of interfaces.
5703
5704 Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
5705
5706         * tramp-ppc.c: update trampoline code to support jumps
5707         and class initialization.
5708
5709 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
5710
5711         * mini.c (mono_jit_compile_method): Fix reading of freed memory.
5712
5713         * inssel.brg (OP_UNBOXCAST): Fix #46027.
5714
5715         * inssel.brg (OP_UNBOX): Remove unused rule.
5716
5717         * mini.h mini.c inssel-x86.brg: Allocate one SP variable for each
5718         region instead of one for each method. Fixes #47813.
5719
5720 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
5721
5722         * exceptions.cs (test_0_nested_finally): New regression test for
5723         nested exception handlers.
5724
5725         * mini.c (mono_jit_runtime_invoke): Fix for the previous fix.
5726
5727         * mini.c (mono_method_to_ir): Avoid inlining tail calls.
5728
5729         * mini.c (mono_method_to_ir): Fix tail recursion in the presence of 
5730         inlining.
5731
5732         * mini.c (mono_method_check_inlining): Make the inlining limit 
5733         configurable by an environment variable.
5734         
5735         * mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545.
5736
5737         * mini.h: Bump AOT file version.
5738
5739         * mini.h mini.c aot.c mini-x86.c: For relocations which refer to a 
5740         token, store the image along with the token, since the token might not 
5741         refer to the same image as the method containing the relocation, 
5742         because of inlining.
5743
5744 2003-09-27  Zoltan Varga  <vargaz@freemail.hu>
5745
5746         * mini.c (mono_precompile_assemblies): New function to compile
5747         all methods in all loaded assemblies.
5748
5749         * mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP.
5750
5751         * regalloc.h regalloc.c (MonoRegState): Change the type of 
5752         iassign and fassign to int*, since they can contain large negative
5753         values if the register is spilled. Also added some comments. Fixes
5754         #45817.
5755
5756         * exceptions-x86.c (seh_handler): Fix handling of system exceptions
5757         under Win32. Fixes #42964.
5758
5759 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
5760
5761         * mini.h (MONO_PATCH_INFO_WRAPPER): New patch type.
5762
5763         * aot.c: Added support for AOT compiling methods which contain calls
5764         to wrappers. Currently, only remoting-invoke-with-check wrappers are
5765         handled.
5766         
5767         * driver.c (compile_all_methods): Run the compilation in a thread
5768         managed by mono. Fixes #44023.
5769
5770         * mini.c (mono_codegen): Print full method name in verbose output.
5771
5772         * mini-x86.c (mono_arch_patch_code): Fix warning.
5773         
5774         * mini-x86.c (mono_arch_patch_code): Allways create a trampoline for
5775         jumps, since the method we are jumping to might be domain-specific.
5776
5777         * aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP.
5778
5779 Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
5780
5781         * inssel.brg: string chars are unsigned.
5782
5783 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
5784
5785         * TODO: New todo item.
5786
5787         * tramp-x86.c (x86_class_init_trampoline): New trampoline function
5788         which calls mono_runtime_class_init and patches the call site to
5789         avoid further calls.
5790         (mono_arch_create_class_init_trampoline): New arch specific function 
5791         to create a class init trampoline.
5792         (create_trampoline_code): Generalized so it can create
5793         class init trampolines as well.
5794
5795         * mini.c (helper_sig_class_init_trampoline): New helper variable.
5796         (mono_create_class_init_trampoline): New function to create and cache
5797         class init trampolines.
5798         (mono_find_class_init_trampoline_by_addr): New function to lookup the
5799         vtable given the address of a class init trampoline. Used by the
5800         patching process.
5801         (mono_codegen): Generate a call to a trampoline instead of
5802         mono_runtime_class_init in LDSFLD[A].
5803         (mono_codegen): Add relocations for the new trampoline.
5804         
5805         * mini.h mini-x86.c aot.c: Added a new relocation type: 
5806         MONO_PATCH_INFO_CLASS_INIT.
5807
5808         * mini.h: Bump AOT version number.
5809
5810         * aot.c: Create a copy of the loaded code instead of using the original
5811         so methods which call each other will be close in memory, improving
5812         cache behaviour.
5813         
5814         * exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous
5815         patch since it breaks the regression tests.
5816         
5817         * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
5818         for the register saving instruction sequence since the 
5819         frame_state_for function in glibc 2.3.2 don't seem to detect it.
5820
5821 2003-09-14  Zoltan Varga  <vargaz@freemail.hu>
5822
5823         * TODO: Fix todo item && remove another.
5824
5825 2003-09-12  Zoltan Varga  <vargaz@freemail.hu>
5826
5827         * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
5828         previous checkin.
5829
5830         * aot.c: Moved the check for MONO_LASTAOT into the initialization
5831         function of the module.
5832
5833         * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
5834         turning on/off the usage of AOT code. Got rid of mono_no_aot and the
5835         --no-aot command line option.
5836
5837 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
5838
5839         * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
5840         by Bernie Solomon (bernard@ugsolutions.com).
5841
5842         * inssel.brg: Refactor the interface offset table related code into
5843         its separate functions and add support for the AOT case.
5844
5845 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
5846
5847         * aot.c (mono_aot_get_method_inner): Fix memory leak.
5848         
5849         * aot.c: Added mono_aot_verbose variable and made all debugging
5850         output depend on the value of this variable.
5851
5852         * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
5853         method_label and info_label.
5854
5855         * mini.h mini-x86.c aot.c: Added a new relocation type 
5856         MONO_PATCH_INFO_IID for klass->interface_id.
5857
5858         * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
5859         the MonoJitInfo structure.
5860
5861         * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
5862         a non-root appdomain in shared mode.
5863
5864 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
5865
5866         * aot.c: make aot loader less verbose. Remove free of unused variable.
5867
5868 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
5869
5870         * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
5871
5872         * .cvsignore: Added *.dll.
5873
5874         * mini.c (mono_print_tree_nl): New function callable while debugging.
5875
5876         * mini.c (mono_print_code): Export this.
5877
5878         * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
5879         patched code.
5880
5881 2003-09-05  Zoltan Varga  <vargaz@freemail.hu>
5882
5883         * mini.h (MonoCompile): Added 'jit_info' field.
5884
5885         * mini.c (mini_method_compile): Save the generated MonoJitInfo into
5886         the cfg structure, since it is needed by the AOT compiler.
5887
5888         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
5889
5890         * aot.c: A major rewrite. Changes include:
5891         - save exception tables for methods which have them.
5892         - cache failed lookups in aot_get_method () to avoid the (slow) calls 
5893         to g_module_symbol.
5894         - reworked the file format so it is now much smaller and needs
5895         fewer relocation entries.
5896         
5897 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
5898
5899         * aot.c (load_aot_module): Fix build bustage on platforms without
5900         Boehm GC.
5901
5902 2003-09-04  Martin Baulig  <martin@ximian.com>
5903
5904         * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
5905
5906 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
5907
5908         * TODO: Some new optimization ideas.
5909
5910         * aot.c: Move AOT module loading logic here from mono_assembly_open.
5911
5912         * aot.c: Save the optimization flags used to compile the code into
5913         the AOT module.
5914
5915         * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
5916         support emitting domain specific code.
5917         
5918         * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is 
5919         no longer domain neutral. It can be made domain neutral by compiling 
5920         with --optimize=shared.
5921
5922         * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
5923         between appdomains.
5924
5925         * driver.c mini.h mini.c: New --no-aot debugging option which disables
5926         loading of AOT code.
5927
5928         * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
5929         
5930         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
5931         if there is no domain neutrality information.
5932
5933 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
5934
5935         * aot.c (mono_compile_assembly): Emit a symbol containing the file 
5936         format version into the generated library.
5937
5938         * mini-x86.c (mono_arch_patch_code): Do not emit the address of the
5939         callee method into the caller since one of them could be shared.
5940
5941         * mini.h mini-x86.c aot.c: Added two new relocations so throwing
5942         system exceptions from AOT code now works.
5943
5944         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
5945         method if it is domain neutral and the callee is not.
5946
5947         * graph.c (cfg_emit_one_loop_level): Fix warning.
5948
5949 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
5950
5951         * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
5952         last checkin.
5953
5954 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
5955
5956         * mini.c (mini_init): Call mono_marshal_init () explicitly since it
5957         is needed  by code which is executed before mono_runtime_init ().
5958         Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
5959         
5960         * mini.c (mono_thread_abort): Fix warning.
5961         (mono_jit_compile_method): Call static constructor in the AOT case too.
5962
5963         * aot.c (mono_compile_assembly): Fix warning.
5964
5965 2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5966
5967         * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
5968
5969 2003-08-28  Zoltan Varga  <vargaz@freemail.hu>
5970
5971         * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
5972
5973         * cpu-pentium.md: Fix the length of call opcodes so they include the
5974         ESP restoring instruction. Fixes #47968.
5975
5976 2003-08-28  Martin Baulig  <martin@ximian.com>
5977
5978         * mini-x86.c (mono_arch_call_opcode): Added support for
5979         MONO_TYPE_GENERICINST.
5980
5981         * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.       
5982
5983 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
5984
5985         * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
5986         a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
5987
5988         * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
5989         metadata_section.
5990
5991 2003-08-26  Martin Baulig  <martin@ximian.com>
5992
5993         * mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
5994         when reporting an error, set this to the actual error location.
5995         (mono_method_to_ir): Report the correct error location if
5996         get_basic_blocks() returned an error.
5997
5998 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
5999
6000         * mini.c (mono_type_blittable): OBJECT is not blittable.
6001         (mono_method_blittable): Methods which have marshalling descriptors
6002         are not blittable either. Fixes #47842.
6003
6004 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
6005
6006         * driver.c mini.c: Use an environment variable instead of a global 
6007         variable. Also fix the build.
6008
6009         * mini.c (mini_init): Call g_thread_init () to make glib thread-safe. 
6010         Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
6011         reporting this. 
6012
6013         * driver.c mini.c: Added --with-valgrind option to turn off some
6014         code which prevents mono from running under valgrind.
6015
6016         * mini.c (mono_emit_call_args): Fixed warning.
6017
6018         * mini.c (mono_emulate_opcode): Fixed warning.
6019
6020 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6021
6022         * inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
6023         * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
6024         regalloc.c, regalloc.h: specify available registers in arch-specific
6025         code and support floats in the regallocator (patch by Laurent Morichetti 
6026         <l_m@pacbell.net>)
6027
6028 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
6029
6030         * mini.c: mono_thread_current() can be called only after
6031         mono_runtime_init(): rearrange code to not call it early on.
6032
6033 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
6034
6035         * mini.c: allocate jump tables in the code mempools.
6036
6037 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6038
6039         * mini.c, mini.h: make sure per-thread data allocated by the jit is
6040         freed.
6041
6042 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
6043
6044         * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
6045         12 to 16.  This fixes bug #47453.
6046
6047
6048 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6049
6050         * mini-ppc.c: fixed indexed load and unsigned compares.
6051
6052 2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>
6053
6054         * mini.c: reenabled installation of handler for
6055           thread abort signal.
6056
6057 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6058
6059         * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
6060         by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
6061         until it's fixed and actually useful.
6062
6063 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
6064
6065         * inssel-long32.brg: couple more opcodes implemented.
6066
6067 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
6068         
6069         * mini-sparc.c: Even more opcodes implemeted.
6070
6071 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
6072
6073         * mini-sparc.c: More opcodes implemented.
6074
6075 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
6076
6077         * mini-sparc.c: More opcodes implemented.
6078
6079 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
6080
6081         * inssel-sparc.brg: Add some needed rules.  Direct
6082         copy from PPC.
6083         * Makefile.am: Use inssel-sparc.brg
6084         * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
6085         an assert happy for now.
6086
6087 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
6088
6089         * mini-sparc.c: Fixed compile errors.
6090         * exceptions-sparc.c: Same.  We now produce a mono binary 
6091         on sparc-linux.  Yea.
6092
6093 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
6094
6095         * mini-sparc.c: Renamed registers.  Also some macro cleanups.
6096         * exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
6097         They compile, but do not work.
6098
6099 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6100
6101         * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
6102         mini-sparc.h, tramp-sparc.c: Beginning of sparc support
6103         from Mark Crichton <crichton@gimp.org> and Christopher Taylor
6104         (ct@gentoo.org).
6105
6106 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6107
6108         * mini.c: more opcodes implemented and better support for generics.
6109
6110 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
6111
6112         * cpu-g4.md, cpu-pentium.md: updates for new instructions.
6113         * mini.c, mini.h: first cut at generics support: some new instructions 
6114         added and changed the behaviour of some of the existing ones.
6115
6116 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
6117
6118         * mini.c: Removed definition of metadata_shared mutex here.
6119
6120 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
6121
6122         * mini-x86.c: make vararg calls work for instance methods.
6123
6124 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6125
6126         * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
6127         returns the arguments in a separte list, now.
6128
6129 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
6130
6131         * aot.c, mini.c: updates for array type representation changes.
6132
6133 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
6134
6135         * mini.c: register function to perform jit shutdown.
6136
6137 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6138
6139         * mini.c: use a faster allocator if possible.
6140
6141 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6142
6143         * aot.c: some cleanups and portability changes.
6144
6145 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
6146
6147         * mini.c: use faster allocation for CEE_BOX if possible.
6148
6149 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
6150
6151         * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
6152         Moved inlined mempcy code to its own function so that is can be
6153         reused. Added an inline memset function as well (optimized initobj).
6154         * cpu-pentium.md, inssel-x86.brg: add and use lea_membase.
6155
6156 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
6157
6158         * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
6159
6160 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
6161
6162         * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
6163         arch code can setup the cpu for CLR execution, if needed.
6164         We use it on x86 to set the precision of FP operations.
6165
6166 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6167
6168         * mini.c: disable some optimizations if we can guess they'll cost too
6169         much for a given method.
6170
6171 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
6172
6173         * mini.h mini.c: Rework last patch based on suggestions by Paolo.
6174         
6175 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
6176         * mini.h mini.c mini-x86.c: Added instruction level coverage 
6177         info collection support.
6178
6179 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6180
6181         * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
6182         is now implemented in the profiling API. Get rid of a couple of
6183         unnecessary global variables.
6184
6185 2003-06-15  Nick Drochak <ndrochak@gol.com>
6186
6187         * basic-long.cs: tests for negative values for bigmul, and unsigned.
6188         * cpu-g4.md: add op_bigmul and op_bigmul_un
6189         * cpu_pentium.md: add op_bigmul_un
6190         * inssel-long32.brg: add rule for unsigned bigmul
6191         * mini-ops.h: define OP_BIGMUL_UN
6192         * mini-x86.c: THE BUG: handle (un)signed properly
6193         * mini.c: choose unsigned opcode if needed.
6194         This set of patches fixes bug #44291
6195
6196 2003-06-13  Dietmar Maurer  <dietmar@ximian.com>
6197
6198         * mini.c (optimize_branches): improved to handle all kinds of
6199         conditional branches.
6200
6201 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
6202
6203         * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
6204         don't raise exceptions.
6205
6206 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
6207
6208         * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
6209         to arch-specific files.
6210
6211 2003-06-09  Martin Baulig  <martin@ximian.com>
6212
6213         * Makefile.am (libs): Added $(LIBGC_LIBS).
6214
6215 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
6216
6217         * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
6218         and OP_ATAN (fixes bug#44293).
6219
6220 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
6221
6222         * Makefile.am, mini-x86.c: rename cpu description array to
6223         pentium_desc, since some compilers define the 'pentium' preprocessor
6224         symbol.
6225
6226 2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
6227
6228         * mini.c (mini_select_instructions): add explicit branch if the
6229         following block is not the false target of a conditional branch -
6230         we need this with any optimization that reorder or remove bblocks
6231
6232         * mini.c (optimize_branches): bug fixes
6233
6234 2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
6235
6236         * mini.c (mono_method_to_ir): inline static readonly fields
6237
6238         * ssa.c (fold_tree): start cfold support for long (very simple
6239         cases only)
6240
6241         * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
6242
6243 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
6244
6245         * inssel.brg: fixed memcpy (bug #44219).
6246
6247 2003-06-05  Dick Porter  <dick@ximian.com>
6248
6249         * driver.c: Set the glib log levels to not abort if g_message
6250         recurses.
6251
6252         g_set_prgname() has to happen before mini_init() so that the
6253         process handle gets the info.
6254         
6255 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6256
6257         * driver.c: add intrins to the default optimizations to get wider
6258         exposure.
6259
6260 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6261
6262         * mini.h: some large basic blocks will overflow a 16-bit
6263         integers for symbolic registers.
6264
6265 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
6266
6267         * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
6268         (mono_arch_output_basic_block): fix bug 43499 
6269
6270 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
6271
6272         * mini.c: kill duplicated definition of mono_debug_format.
6273
6274 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
6275
6276         * mini-x86.c, arrays.cs: fixed register allocation bug.
6277
6278 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
6279
6280         * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
6281
6282         * mini.c (mini_get_opcode_for_method): inline IEEERemainder
6283
6284 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6285
6286         * mini.c:
6287         (print_method_from_ip): also print source location information if
6288         available.
6289
6290 2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
6291
6292         * mini.c (mono_find_block_region): bug fix in region code
6293         (mini_method_compile): enable removing unreachable code again, but
6294         only in methods without exception clauses.
6295
6296 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
6297
6298         * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
6299         Implemented arglist opcode and handling of TypedReference type.
6300         Fixed x86 call convention when a structure is returned.
6301         Minimal support for calling static vararg methods.
6302
6303 2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
6304
6305         * mini.c (mini_method_compile):  always remove unreachable code,
6306         because the code in them may be inconsistent  (access to dead
6307         variables for example).
6308
6309 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6310
6311         * driver.c, debug-mini.c: warning fixes.
6312
6313 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
6314
6315         * Makefile.am, jit.h, mini.h: install header for embedding mono.
6316
6317 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
6318
6319         * mini.c: thread-static fields are registered in mono_class_vtable(),
6320         so ensure the function is called before checking for them.
6321
6322 2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
6323
6324         * mini.c (optimize_branches): fix for bug 43586
6325
6326         * jit-icalls.c (mono_llmult_ovf): added an additional check for
6327         overflow (fixes Bug #43639)
6328
6329 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6330
6331         * mini.c, objects.cs: allow the use of stobj for primitive types.
6332
6333 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6334
6335         * mini.c: be less strict about argument checking until we support
6336         running the verifier.
6337
6338 2003-05-27  Nick Drochak <ndrochak@gol.com>
6339
6340         * basic-long.cs: tests for (ulong)int * (ulong)int also
6341         * mini.c: use the same trick for (ulong)int * (ulong)int
6342
6343 2003-05-27  Nick Drochak <ndrochak@gol.com>
6344
6345         * basic-long.cs: add regression test for (long)int * (long)int
6346         * cpu-pentium.md: add op_bigmul specification
6347         * inssel-long32.brg: add OP_BIGMUL rule
6348         * mini-ops.h: add OP_BIGMUL
6349         * mini-x86.c: register allocator: handle case where src1 needs to be
6350         in EAX.
6351         * mini.c: substitute special BIGMUL opcode in the tree for 
6352         (long)int * (long)int
6353
6354 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6355
6356         * jit-icalls.c: call the type ctor on field access if needed.
6357
6358 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
6359
6360         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
6361         to a method (including results of ldelema, bug#43207).
6362
6363 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
6364
6365         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
6366         colors to show exception handler blocks.
6367
6368         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
6369         (fix for pinvoke7.cs).
6370
6371 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6372
6373         * mini.h, mini.c: ensure correct initialization order for types that
6374         require it. Prepare for lazy compilation of jit icall wrappers.
6375         Provide a name for opcode emulation to reduce unneeded mallocing.
6376
6377 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
6378
6379         * mini-x86.c: better register restoring code and profiling
6380         support for tail calls.
6381
6382 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6383
6384         * mini.h, driver.c: prepare for leaf methods optimization.
6385
6386 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
6387
6388         * mini.c: get targets of branches before converting a method.
6389
6390 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
6391
6392         * mini.c (optimize_branches): added some experimental code (disbaled) 
6393
6394 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
6395
6396         * mini.c (optimize_branches): fix branch to branch optimization 
6397
6398         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
6399
6400         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
6401
6402         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
6403
6404         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
6405         if needed.
6406
6407 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
6408
6409         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
6410         enable use of interface variables again.
6411
6412         * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
6413         I1 to registers because there is no simply way to sign extend 8bit
6414         quantities in caller saved registers on x86.
6415
6416         * inssel-float.brg: set costs of some rules to 2 so
6417         that monobure always select the arch. specific ones if supplied,
6418         regardless of the order we pass the files to monoburg.
6419
6420 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
6421
6422         * mini.c, mini-x86.c: since the magic trampoline for jumps
6423         can't patch the code directly, we do it as soon as the
6424         method gets compiled.
6425
6426 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
6427
6428         * mini-x86.c, mini.h: introduce a new patching method
6429         to support CEE_JMP and tail calls.
6430         * mini.c: obey tail.call. Don't precompile methods target
6431         of CEE_JMP.
6432         * tramp-x86.c: new trampoline code to handle methods
6433         reached through a jump.
6434
6435 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
6436
6437         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
6438         bit values to registers
6439
6440 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
6441
6442         * mini.c (mono_compile_get_interface_var): share interface
6443         variables if possible.
6444
6445 2003-05-16  Martin Baulig  <martin@ximian.com>
6446
6447         * debug-mini.c (mono_init_debugger): New function to initialize
6448         the debugger.  This is not in the debugger since it needs to
6449         access some of mini's internals.
6450
6451 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
6452
6453         * mini.c (mono_method_to_ir): inlining fixes/cleanups
6454
6455 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
6456
6457         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
6458         for value type handling.
6459
6460 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
6461
6462         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
6463         (mono_method_check_inlining): enable inlining of all kinds of wrappers
6464
6465 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
6466
6467         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
6468           the constructor through a proxy.
6469
6470 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
6471
6472         * jit-icalls.c, inssel.brg: fixes to array element address
6473         calculations.
6474
6475 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
6476
6477         * mini-x86.c (is_regsize_var): allocate pointer to registers
6478
6479 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
6480
6481         * driver.c: fixed typo, added intrins to the set of optimizations
6482         tested with regressions.
6483
6484 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6485
6486         * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
6487         * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
6488         test case.
6489
6490 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
6491
6492         * inssel.brg: remove some common pop instructions without side effects
6493
6494 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
6495
6496         * inssel-x86.brg: fixed thinko in int to double conversions.
6497
6498 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
6499
6500         * mini.c, jit-icalls.c: added runtime thread-static variable support.
6501
6502 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
6503
6504         * inssel-long32.brg: two more missing instructions.
6505
6506 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
6507
6508         * mini.c (mono_emit_call_args): set the cil_code for all arguments
6509         if not already set.
6510
6511 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
6512
6513         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
6514         correctly.
6515
6516         * basic-float.cs: Added tests for negative zero.
6517
6518 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
6519
6520         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
6521         a couple of missing operations for long casts, with test cases.
6522
6523 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6524
6525         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
6526
6527 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
6528
6529         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
6530         code size estimation.
6531
6532 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
6533
6534         * mini.c (mono_jit_create_remoting_trampoline): make it work with
6535         abstract methods (fix bug 42542)
6536
6537         * aot.c: add ability to handle array types
6538         
6539 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
6540
6541         * mini.c: Call the _specific versions of the object allocation
6542         functions if possible.
6543
6544 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
6545
6546         * driver.c: call setlocale ().
6547
6548 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
6549
6550         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
6551         windows build.
6552
6553 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
6554
6555         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
6556
6557         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
6558         wrappers (fix bug 42122)
6559
6560 2003-05-04  Martin Baulig  <martin@ximian.com>
6561
6562         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
6563
6564         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
6565         s/mini_set_defaults/mono_set_defaults/g.
6566
6567 2003-05-04  Martin Baulig  <martin@ximian.com>
6568
6569         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
6570
6571 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6572
6573         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
6574         (reported by Don Roberts).
6575
6576 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
6577
6578         * mini.c: temporarily work around two bugs for this release.
6579
6580 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6581
6582         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
6583         that contains -export-dynamic and it makes using the ld script
6584         useless.
6585         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
6586
6587 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
6588
6589         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
6590         specific cpu.
6591
6592 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
6593
6594         * mini.c: make sure leave calls all the needed finally blocks,
6595         even when the target jumps out of multiple exception clauses.
6596
6597 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
6598
6599         * ldscript, Makefile.am: add linker script to reduce the number of
6600         exported symbols (should also fix the issues with libwine defining
6601         some of the same symbols in io-layer).
6602
6603 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
6604
6605         * driver.c (mini_main): Avoid assertion when no file name is given on 
6606         the command line.
6607
6608 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
6609
6610         * driver.c: added --version/-V command line option.
6611         Added the inline optimization in the regression tests.
6612
6613 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
6614
6615         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
6616         to the type in the method signature (fixes bug#42134).
6617
6618 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
6619
6620         * mini.c: when inlining, check this is not null only when needed (bug #42135).
6621
6622 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
6623
6624         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
6625
6626 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6627
6628         * driver.c: fixed bug #42100.
6629
6630 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
6631
6632         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
6633
6634 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
6635
6636         * mini.c: moved most of the code required to do inlining to its own
6637         function so it can be reused. Inline also ctors if appropriate.
6638
6639 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
6640
6641         * Makefile.am: Link with -export-dynamic so shared libs loaded by
6642         the runtime can call mono API functions.
6643
6644 2003-04-27  Martin Baulig  <martin@ximian.com>
6645
6646         * debug-mini.c (mono_debug_init_method): Added
6647         `guint32 breakpoint_id' argument; if the method has a breakpoint,
6648         send a notification to the debugger.
6649
6650         * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
6651         running in the Mono Debugger, just pass the breakpoint number to
6652         mono_debug_init_method().
6653
6654         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
6655
6656 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
6657
6658         * mini.c: allow some more unsafe compares.
6659
6660 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6661
6662         * mini-x86.c, Makefile.am: make distcheck works (partially from
6663         a patch by Richard Lee <r.h.lee@attbi.com>).
6664         * regset.c, regset.h: removed, they are unused.
6665
6666 2003-04-25  Dick Porter  <dick@ximian.com>
6667
6668         * driver.c: Usage reports the name as 'mono' not 'mini'
6669         * exceptions-x86.c: Build and run on freebsd
6670
6671 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
6672
6673         * Makefile.am: install the program with the 'mono' name and
6674         the library as libmono instead of mini and libmini.
6675
6676 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
6677
6678         * driver.c: provide the APIs for the embedding interface of the old jit.
6679
6680 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
6681
6682         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
6683
6684 2003-04-23  Martin Baulig  <martin@ximian.com>
6685
6686         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
6687
6688         * driver.c: Added `--debug' command line argument to enable
6689         debugging support.
6690
6691 2003-04-23  Martin Baulig  <martin@ximian.com>
6692
6693         * debug.[ch]: Removed.  The code is now in
6694         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
6695
6696         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
6697         last six months.
6698
6699 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
6700
6701         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
6702
6703 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6704
6705         * mini.c:
6706         (mini_cleanup): moved mono_runtime_cleanup call after the call to
6707         mono_domain_finalize.
6708         (mini_method_compile): use mono_method_profile* if the the option is
6709         enabled.
6710
6711 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
6712
6713         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
6714         methods with their wrapper.
6715
6716         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
6717         methods with their wrapper.
6718
6719         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
6720         their wrapper.
6721
6722         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
6723         wrapper.
6724
6725         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
6726         methods.
6727
6728 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
6729
6730         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
6731
6732 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
6733
6734         * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
6735         of the mempool. This is slightly faster and uses less memory
6736
6737 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
6738
6739         * mini.c: avoid O(n) allocation for variables.
6740
6741 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6742
6743         * mini.c: handle items on the stack after inlining methods.
6744
6745 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6746
6747         * mini.c: make the method->opcode optimization dependent
6748         on MONO_OPT_INSTRINS and do it lazily.
6749
6750 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6751
6752         * driver.c: print overall results at the end of regression run.
6753
6754 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
6755
6756         * inssel.brg: don't overwrite symbolic registers.
6757
6758 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
6759
6760         * inssel-x86.brg: fix conversion from long to float.
6761
6762 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
6763
6764         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
6765
6766 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
6767
6768         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
6769
6770         * driver.c: Added --print-vtable option as in the old JIT.
6771
6772 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6773
6774         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
6775
6776 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
6777
6778         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
6779
6780 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
6781
6782         * mini.c regalloc.c regalloc.h: Fix memory leak.
6783
6784 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
6785
6786         * aot.c (mono_aot_get_method): register all used strings
6787
6788 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
6789
6790         * mini.c: always intern strings references with ldstr at compile time.
6791
6792 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
6793
6794         * Makefile.am: add BUILT_SOURCES.
6795
6796 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
6797
6798         * driver.c: give a better error message when the assembly to execute
6799         doesn't have an entry point.
6800
6801 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
6802
6803         * Makefile.am: added hack for automake
6804
6805         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
6806         correct sematics.
6807
6808         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
6809
6810 22003-04-07  Martin Baulig  <martin@ximian.com>
6811
6812         * Makefile.am: Added Makefile.am.
6813
6814         * debugger-main.c: Removed, this is now in the debugger where it
6815         belongs.
6816
6817         * mini.pc.in: Call this package `mini' for the moment.
6818
6819
6820
6821
6822