2034a04cf4af79a7f2f8d468b6c6ee131fb439aa
[mono.git] / mono / mini / ChangeLog
1 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
2
3         * cpu-x86.md minix-86.c: Add a peephole_pass_1 () as on amd64.
4
5         * mini-x86.c (mono_arch_output_basic_block): Use mono_opcode_to_cond () in a few
6         places.
7         
8         * mini-x86.c (mono_arch_emit_exceptions): Decrease the size of the exception 
9         throwing code a bit.
10
11         * exceptions-x86.c (mono_arch_get_throw_corlib_exception): Decrease the size of 
12         the exception throwing code a bit.
13
14         * mini-x86.c (get_call_info): Allocate result from a mempool.
15
16 2007-05-11  Zoltan Varga  <vargaz@gmail.com>
17
18         * aot-compiler.c (find_typespec_for_class): Fix the assert.
19
20         * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file version.
21
22         * mini.h (MonoCompile): Add 'token_info_hash' field.
23
24         * mini.c: Save token->method associations during compilation so the AOT 
25         compiler can use it.
26         
27         * aot-compiler.c aot-runtime.c: Add support for compiling non-generic methods
28         which reference generic classes and methods.
29
30 2007-05-10  Zoltan Varga  <vargaz@gmail.com>
31
32         * mini.h mini-<ARCH>.h: Get rid of MONO_ARCH_HAS_XP_LOCAL_REGALLOC.
33
34         * aot-compiler.c (compile_method): Fix a typo in a comment.
35
36         * aot-runtime.c (decode_cached_class_info): Skip generic types.
37
38         * aot-compiler.c: Add minimal support for AOTing generic code by skipping 
39         everything generic.
40
41         * mini.c (mono_method_to_ir): Disable AOT when calling helper_compile_generic_method.
42
43 2007-05-09  Zoltan Varga  <vargaz@gmail.com>
44
45         * mini.h (MonoCompile): Add 'args' field.
46
47         * mini.c (mono_compile_create_vars): Store variables representing the arguments
48         into cfg->args.
49
50         * mini-<ARCH>.c: Use cfg->args for accessing the method arguments.
51
52 2007-05-08  Zoltan Varga  <vargaz@gmail.com>
53
54         * mini.c (mono_compile_get_interface_var): Remove this unused function.
55
56         * mini-ops.h inssel.brg mini-<ARCH>.c: Add a new opcode for ckfinite as well.
57
58         * mini-ops.h: Introduce new opcodes used in the IR instead of the original CEE_
59         opcodes for some opcodes.
60
61         * mini.h *.brg *.c: Use the new opcodes.
62
63 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
64
65         * mini.h: Bumped aot revision.
66
67         * inssel.brg: modified code generation of type checks for interfaces
68         to use the new "MonoClass.interface_bitmap" instead of the old
69         "MonoClass.interface_offsets".
70
71 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
72
73         * cpu-amd64.md (jmp): Increase the maximum size of the jmp opcode to 128.
74
75 2007-04-29  Zoltan Varga  <vargaz@gmail.com>
76
77         * abcremoval.c (summarize_integer_value): Handle OP_LCONV_TO_I4 to fix abcrem on
78         64 bit platforms.
79
80 2007-04-27  Neale Ferguson <neale@sinenomine.net>
81
82         * mini-s390x.c: Fix MONO_TYPE_VALUETYPE processing.
83
84 2007-04-27  Wade Berrier  <wberrier@novell.com>
85
86         * mini-s390x.c: Remove redeclaration of CompRelation and CompType (defined in 
87         mini.h) to fix build.
88
89 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
90
91         * mini-amd64.c (peephole_pass_1): Fix and reenable this pass.
92         
93         * mini-amd64.c (mono_arch_local_regalloc): Disable the new peephole_pass_1 as it
94         causes the corlib unit tests to fail.
95
96 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
97
98         * mini-codegen.c (mono_opcode_to_type): Fix a bug in the previous patch.
99
100         * mini-amd64.c (peephole_pass_1): New pass to perform before local regalloc.
101
102         * mini-codegen.c (mono_opcode_to_cond): New helper function to convert conditional 
103         opcodes to the comparison relations.
104
105         * mini-codegen.c (mono_opcode_to_type): New helper function to convert conditional 
106         opcodes to their types.
107         
108         * mini-ia64.c mini-amd64.c: Use mono_opcode_to_cond and mono_opcode_to_type.
109
110         * mini-amd64.c (get_call_info): Allocate the result from the cfg mempool and cache 
111         it in cfg->arch.cinfo.
112
113         * local-propagation.c (mono_local_cprop_bb): Fix a warning.
114
115         * mini.h mini.c branch-opts.c: Change bbhash to be an array and store it in 
116         cfg->cil_offset_to_bb.
117
118 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
119
120         * liveness.c (optimize_initlocals): New mini-pass to optimize away dead assignments
121         created becase of initlocals.
122
123 2007-04-23  Zoltan Varga  <vargaz@gmail.com>
124
125         * mini-alpha.c cpu-alpha.md: More alpha port work from 
126         Sergey Tikhonov <tsv@solvo.ru>.
127
128 2007-04-21  Andreas Faerber  <andreas.faerber@web.de>
129
130         * Makefile.am (BUILT_SOURCES): Fix for automake 1.6.x. Fixes #81417.
131
132 2007-04-19  Zoltan Varga  <vargaz@gmail.com>
133
134         * cpu-s390.md (break): Correct the length of break instruction.
135
136 Thu Apr 19 16:28:52 CEST 2007 Paolo Molaro <lupus@ximian.com>
137
138         * mini.c: fix a couple of soft-float issues and comments.
139
140 2007-04-15  Miguel de Icaza  <miguel@novell.com>
141
142         * trace.c (is_filenamechar): - is also a filename char.
143
144 2007-04-15  Neale Ferguson <neale@sinenomine.net>
145
146         * mini-s390.c: Correct checking for enum type in return value processing.
147
148 2007-04-14  Raja R Harinath  <rharinath@novell.com>
149
150         * Makefile.am (BUILT_SOURCES): Add 'version.h'.
151         (version.h): Makefile is in the build directory.
152
153 2007-04-06  Andreas Faerber  <andreas.faerber@web.de>
154
155         * mini-amd64.h: fix for assertion failure on Solaris/amd64
156
157 2007-04-11  Martin Baulig  <martin@ximian.com>
158
159         * mini.c (can_access_member): Fix handling of generic classes;
160         fixes #81259.
161
162 2007-04-10  Zoltan Varga  <vargaz@gmail.com>
163
164         * aot-runtime.c (mono_aot_plt_resolve): Fix disabling of AOT. Fixes #81316.
165
166 2007-04-05  Zoltan Varga  <vargaz@gmail.com>
167
168         * aot-runtime.c: Fix disabling of AOT. Fixes #81316.
169
170 Fri Mar 23 20:25:31 CET 2007 Paolo Molaro <lupus@ximian.com>
171
172         * mini-codegen.c: make sure the right spill amount is
173         used for fp or integer registers (fixes the float_sub_spill() on ppc).
174
175 Fri Mar 23 19:43:35 CET 2007 Paolo Molaro <lupus@ximian.com>
176
177         * mini-ppc.c: fixes for the fp_branch_nan test.
178
179 2007-03-23  Zoltan Varga  <vargaz@gmail.com>
180
181         * basic.cs: Comment out new test which still fails on ia64.
182
183 Fri Mar 23 15:54:23 CET 2007 Paolo Molaro <lupus@ximian.com>
184
185         * mini.c: immediate shifted or fix (mono_metadata_user_string assert).
186
187 Fri Mar 23 12:53:28 CET 2007 Paolo Molaro <lupus@ximian.com>
188
189         * mini-ppc.c, mini-ppc.h: struct passing ABI fix (bug #77968).
190
191 2007-03-22  Zoltan Varga  <vargaz@gmail.com>
192
193         * cfold.c (FOLD_BINOP): Cast the result to gint32 to prevent overflow problems
194         on 64 bit machines. Fixes part of #80738.
195
196         * basic.cs: Add regression test.
197
198 2007-03-17  Zoltan Varga  <vargaz@gmail.com>
199
200         * inssel.brg basic.cs: Revert previous change to fix build.
201
202         * inssel.brg (SWITCH): Clean out the upper word of the switch value on 64 bit
203         platforms.
204         
205         * inssel.brg (SWITCH): Use an integer comparison. Fixes #80738.
206
207         * basic.cs: Add new regression test.
208
209 2007-03-17  Zoltan Varga  <vargaz@gmail.com>
210
211         * mini-ia64.c (mono_arch_emit_prolog): Fix an assert when a function has too
212         many arguments.
213
214 2007-03-16  Neale Ferguson <neale@sinenomine.net>
215
216         * cpu-s390x.md: Correct length of break instruction.
217
218 2007-03-16  Neale Ferguson <neale@sinenomine.net>
219
220         * mini-s390x.c, cpu-s390x.md: Fix #80507 for s390x.
221         * mini-s390.c, cpu-s390.md: Fix #80507 for s390.
222
223 2007-03-15  Jonathan Chambers  <joncham@gmail.com>
224
225         * *.c: Begin WIN64 port.
226         * mini.c:  Use correct register in profiler.
227         * mini-amd64.c: No inline assembly on Win64.
228         * mini-amd64.h: Implement MONO_INIT_CONTEXT_FROM_FUNC for Win64.
229         Only define MONO_ARCH_USE_SIGACTION on non-windows platforms.
230         * exceptions-amd64.c: Only need gregs_from_ucontext if MONO_ARCH_USE_SIGACTION
231         is defined. Implement mono_arch_sigctx_to_monoctx, mono_arch_monoctx_to_sigctx, and
232         mono_arch_ip_from_context for Win64.
233         
234         Contributed under MIT/X11 license.
235
236 2007-03-15  Zoltan Varga  <vargaz@gmail.com>
237
238         * exceptions-amd64.c (seh_handler): Ditto.
239
240         * exceptions-x86.c (seh_handler): Fix a memory leak.
241
242 Thu Mar 15 13:47:59 CET 2007 Paolo Molaro <lupus@ximian.com>
243
244         * mini-arm.c, mini-mips.c, mini-ppc.c, mini-s390.c,
245         mini-s390x.c: fixed peephole optimizations to deal
246         correctly with 1 and 2 byte reload avoidance.
247
248 Thu Mar 15 10:17:54 CET 2007 Paolo Molaro <lupus@ximian.com>
249
250         * cpu-s390.md, cpu-s390x.md: update localloc length.
251
252 Wed Mar 14 21:00:19 CET 2007 Paolo Molaro <lupus@ximian.com>
253
254         * cpu-g4.md: added missing descriptions.
255
256 2007-03-14  Miguel de Icaza  <miguel@novell.com>
257
258         *  Makefile.am: Add support so the tail tests are not executed on
259         PowerPC as that is a known limitation of the PowerPC port.
260
261 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
262
263         * runmdesc.bat:  Move to msvc directory.
264         
265 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
266
267         * runmdesc.bat:  Run executable that was produced by the current
268         target and sent via an argument.
269         
270 2007-03-11  Zoltan Varga  <vargaz@gmail.com>
271
272         * mini.c (mono_method_to_ir): Fix box+brtrue optimization. Fixes
273         #81102.
274
275         * generics.2.cs: Add regression test.
276
277 2007-03-09  Wade berrier  <wberrier@novell.com>
278
279         * mini-ppc.h: Undo typo of MONO_CONTEXT_SET_SP (ppc doesn't define this symbol)
280
281 2007-03-09  Zoltan Varga  <vargaz@gmail.com>
282
283         * aot-runtime.c (load_aot_module): Load all dependent assemblies eagerly since all
284         AOT code depends on this.
285
286 Thu Mar 8 19:36:13 CET 2007 Paolo Molaro <lupus@ximian.com>
287
288         * mini.c: more precise tracking of types in the eval stack
289         (part of fix for bug #81044).
290
291 2007-03-07  Zoltan Varga  <vargaz@gmail.com>
292
293         * aot-runtime.c (mono_aot_get_class_from_name): Add a cache.
294
295         * aot-compiler.c (encode_patch): Remove an obsolete comment.
296
297 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
298
299         * mini-exceptions.c (mono_handle_native_sigsegv): Fix a warning.
300
301         * mini.c (mono_method_to_ir): Add a workaround for bug #80733.
302
303 2007-02-22  Zoltan Varga  <vargaz@gmail.com>
304
305         * mini.c (type_from_op): Convert CEE_CONV_U to OP_LCONV_TO_U when the argument is
306         a pointer on 64 bit systems. Fixes #80190.
307
308         * iltests.il: Add new regression test.
309
310 Tue Feb 20 11:33:28 CET 2007 Paolo Molaro <lupus@ximian.com>
311
312         * mini.c: inline a constant for Environment.IsRunningOnWindows.
313
314 2007-02-19  Geoff Norton  <gnorton@customerdna.com>
315
316         * trace.c: Remove an erroneous alignemnt check when tracing.
317           Fixes --trace on OSX86.
318
319 Wed Feb 14 19:45:56 CET 2007 Paolo Molaro <lupus@ximian.com>
320
321         * mini-$(arch).h: initialize SP in context for all the archs.
322
323 2007-02-14  Sebastien Pouliot  <sebastien@ximian.com>
324
325         * mini-x86.h: Initialize SP in MONO_INIT_CONTEXT_FROM_FUNC. Fix CAS
326         regressions in the thread tests.
327
328 2007-02-14  Zoltan Varga  <vargaz@gmail.com>
329
330         * *-alpha.*: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>:
331         - fixed implementation of LOCALLOC opcode
332         - implemented non-un compare for floats
333         - code cleanup
334         - implementation of FDIV and CKFINITE opcodes
335         - fixes for latest mono updates
336         - additional arch opcodes
337
338 Mon Feb 12 11:54:16 CET 2007 Paolo Molaro <lupus@ximian.com>
339
340         * Makefile.am: simplify and merge rules for cross-compilation.
341
342 2007-02-07  Massimiliano Mantione  <massi@ximian.com>
343
344         * local-propagation.c: Actually *apply* the fix for bug 80591...
345
346 Tue Feb 6 19:03:19 CET 2007 Paolo Molaro <lupus@ximian.com>
347
348         * mini-exceptions.c: backuot part of the last change
349         (fixes cas tests on amd64 related to GetExecutingAssembly ()).
350
351 2007-02-06  Massimiliano Mantione  <massi@ximian.com>
352         * inssel.brg: Fix bug 59286.
353
354
355 Tue Feb 6 12:23:50 CET 2007 Paolo Molaro <lupus@ximian.com>
356
357         * mini-exceptions.c: patch from Zoltan to correctly check for
358         stack boundaries (using the stack register, not the frame register),
359         fixes bugs #80724, #79717.
360
361 2007-02-03  Zoltan Varga  <vargaz@gmail.com>
362
363         * mini-ia64.c inssel-sparc.brg mini-sparc.c cpu-sparc.md: Get rid of OP_SETREG/
364         OP_SETREGIMM, use OP_MOVE/OP_ICONST instead.
365
366         * mini-amd64.c (mono_arch_output_basic_block): Fix ATOMIC_EXCHANGE in the
367         presence of frame pointer elimination.
368
369 2007-02-01  Geoff Norton  <gnorton@customerdna.com>
370         
371         * mini-x86.h: NetBSD UCONTEX_REG defines.
372
373 2007-02-01  Zoltan Varga  <vargaz@gmail.com>
374
375         * inssel-amd64.brg: Fix amd64 build.
376
377 Thu Feb 1 14:02:09 CET 2007 Paolo Molaro <lupus@ximian.com>
378
379         * mini.h: remove extern to workaround what looks likes gcc bug 26905
380         on amd64.
381
382 2007-01-31  Zoltan Varga  <vargaz@gmail.com>
383
384         * mini-codegen.c (mono_is_regsize_var): New helper function usable by the back
385         ends.
386
387         * mini-<ARCH>.c: Use mono_is_regsize_var ().
388
389 2007-01-30 Mark Mason <mason@broadcom.com>
390
391            * exceptions-mips.c: Lots of exception handling fixes, LMFs now work, some cleanups.
392            * mini-mips.h: Add LMF magic numbers, and fix context set/get macros.
393            * mini-mips.c: Cleanups, LMF handling now works, optimize store of zero, implement localloc
394            beginning support for CEE_JMP [not quite working yet]
395            * tramp-mips.c: LMF handling now works
396         
397 2007-01-30  Zoltan Varga  <vargaz@gmail.com>
398
399         * mini-amd64.c (peephole_pass): Optimize code common in initlocals blocks.
400
401         * mini.h (NULLIFY_INS): New macro.
402
403 Tue Jan 30 16:33:33 CET 2007 Paolo Molaro <lupus@ximian.com>
404
405         * mini.c: statistical profiler fix for windows, patch
406         from Tor Lillqvist (tml@novell.com).
407
408 2007-01-30  Massimiliano Mantione  <massi@ximian.com>
409         * local-propagation.c: Fix bug 80591.
410
411 Mon Jan 29 12:14:34 CET 2007 Paolo Molaro <lupus@ximian.com>
412
413         * Makefile.am: put back the --export-dynamic option as with
414         the previous gmodule flags (thanks to Robert Jordan).
415
416 2007-01-28  Zoltan Varga  <vargaz@gmail.com>
417
418         * mini-sparc.c (peephole_pass): Fix #80622 for sparc as well.
419
420         mini.h *.c: Allocate fp vregs from the same pool as the int vregs. Use this to
421         simplify and speed up the local register allocator. Also rename some fields
422         like iassign->vassign.
423         
424         * regalloc.c: Remove some functions which are no longer used since their
425         inlined version is in mini-codegen.c.
426         
427         * mini-codegen.c: Rename mono_regstate2_ functions to mono_regstate_.
428
429         * basic.cs objects.cs iltests.il: Merge tests from the linear IL branch.
430
431 2007-01-27  Zoltan Varga  <vargaz@gmail.com>
432
433         * mini-amd64.c (peephole_pass): Remove optimizations which omit a 
434         narrowing. Fixes #80622.
435
436         * iltests.il: Add new regresssion test. 
437
438 Fri Jan 26 18:31:45 CET 2007 Paolo Molaro <lupus@ximian.com>
439
440         * mini.h, mini-trampolines.c, aliasing.c, mini-codegen.c,
441         debug-debugger.c, debug-debugger.h: warning fixes.
442         * driver.c: updated copyright year and made it fit in one line.
443
444 Fri Jan 26 12:48:39 CET 2007 Paolo Molaro <lupus@ximian.com>
445
446         * aot-runtime.c: updated to use mono-dl instead of gmodule.
447
448 2007-01-25  Zoltan Varga  <vargaz@gmail.com>
449
450         * mini-x86.c (mono_arch_output_basic_block): Fix #80507 for x86.
451
452         * mini-amd64.c (mono_arch_output_basic_block): Fix #80507 for amd64.
453
454         * iltests.il: Add new test for bug #80507.
455
456 Wed Jan 24 19:10:28 CET 2007 Paolo Molaro <lupus@ximian.com>
457
458         * mini-arm.h: use soft-float also on vfp for now.
459
460 Wed Jan 24 14:54:40 CET 2007 Paolo Molaro <lupus@ximian.com>
461
462         * mini.c: fix some more soft-float issues.
463
464 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
465
466         * mini-sparc.h (MONO_ARCH_FRAME_ALIGNMENT): Fix sparc build.
467
468 2007-01-24  Massimiliano Mantione  <massi@ximian.com>
469         * mini-arch.h, , inssel-amd64.brg, mini-x86.c, inssel-x86.brg,
470         mini-ia64.c, mini-sparc.c, mini-alpha.c: Introduced
471         MONO_ARCH_LOCALLOC_ALIGNMEENT to fix bug 80498.
472
473 Wed Jan 24 12:04:39 GMT 2007 Paolo Molaro <lupus@ximian.com>
474
475         * mini-arm.c: typo fix.
476
477 2007-01-23  Neale Ferguson <neale@sinenomine.net>
478
479         * mini-s390x.c: Use lgb instructions for I1 type variables instead of lb.
480
481 2007-01-21  Zoltan Varga  <vargaz@gmail.com>
482
483         * mini.c (mono_allocate_stack_slots_full): Allocate memory from the cfg mempool.
484         Share stack slots for scalar types. Avoid expensive g_list_free () calls.
485
486         * mini-x86.c (mono_arch_allocate_vars): Don't free the result of allocate_stack_slots_full.
487
488         * mini-amd64.c mini-ia64.c mini-alpha.c: Ditto. 
489
490         * mini.h (MonoJitStats): Add a new JIT statistics: locals_stack_size.
491         
492         * inssel.brg: Fix a warning.
493
494         * mini.h (MonoBasicBlock): Make bb->dominated a GSList.
495
496         * abcremoval.c ssa.c ssapre.c: Update after this change.
497         
498         * dominators.c (compute_dominators): Allocate bb->dominated from the cfg mempool.
499
500         * dominators.c (df_set): Use mono_bitset_union_fast.    
501
502 Sat Jan 20 16:59:01 CET 2007 Paolo Molaro <lupus@ximian.com>
503
504         * mini.h, genmdesc.c, genmdesc.pl, mini-${arch}.c, cprop.c,
505         mini-codegen.c: reduce relocations and memory usage for the cpu
506         description.
507
508 2007-01-20  Zoltan Varga  <vargaz@gmail.com>
509
510         * mini-codegen.c (mono_regstate2_alloc_int): Optimize this using bsfq on amd64.
511
512         * genmdesc.c genmdesc.pl mini.h: Remove some unused fields from the mdesc tables
513         to reduce their size.
514
515 2007-01-19 Mark Mason <mason@broadcom.com>
516
517         * exceptions-mips.c: fix mono_arch_ip_from_context(), increase exception debug support.
518         * mini-mips.c: more configuration macros, support long conditional branches, additional
519         asserts, fix epilog instrumentation.
520         * mini-mips.h: use standard stack walk
521         * cpu-mips.md: increase size of div, rem and conditional branches
522         
523 Fri Jan 19 17:23:32 CET 2007 Paolo Molaro <lupus@ximian.com>
524
525         * mini.h, mini-codegen.c, mini-$(arch).h: claenup references
526         to cpu spec data.
527
528 2007-01-19  Zoltan Varga  <vargaz@gmail.com>
529
530         * aot-compiler.c (encode_klass_info): Allow classes of the form <Type>[][].
531         (compile_method): Ditto.
532
533         * aot-runtime.c (decode_klass_info): Ditto.
534
535         * mini.c (mono_method_to_ir): Call mono_get_got_var () in a place where it is
536         needed by the code generated by inssel.brg. Also fix a warning.
537
538 Thu Jan 18 17:55:22 CET 2007 Paolo Molaro <lupus@ximian.com>
539
540         * mini.c: deal with enums that become genericinsts by
541         being nested in a generic class (bug #79956).
542
543 Thu Jan 18 16:52:56 CET 2007 Paolo Molaro <lupus@ximian.com>
544
545         * mini.c: match the generic definition to check for
546         private access with generic types (bug #78431).
547
548 Thu Jan 18 11:50:13 CET 2007 Paolo Molaro <lupus@ximian.com>
549
550         * genmdesc.pl, Makefile.am: perl implementation of genmdesc,
551         to make life easier for people cross-compiling that insist on not
552         using scratchbox.
553
554 2007-01-17 Mark Mason <mason@broadcom.com>
555
556         * inssel-long.brg: patch to deal with mips missing flags
557         * inssel-long32-mips.brg: implement overflow checks
558         * insset-mips.brg: implement overflow checks
559         * mini-mips.h: implement conditional exception handling
560         * mini-mips.c: add mips_emit_exc_by_name(), implement conditional exception handling.
561           Remove unused code, minor cleanups.
562         * exceptions-mips.c: minor cleanups
563         * mini-ops.h: add mips conditional exception ops
564         * cpu-mips.md: add mips conditional exception ops
565
566         
567 Wed Jan 17 19:22:34 CET 2007 Paolo Molaro <lupus@ximian.com>
568
569         * inssel.brg: patch from Mark Mason <mason@broadcom.com>
570         to deal with mips missing of flags.
571
572 Tue Jan 16 20:01:01 CET 2007 Paolo Molaro <lupus@ximian.com>
573
574         * exceptions-ppc.c: execute fault handlers.
575
576 Tue Jan 16 19:54:44 CET 2007 Paolo Molaro <lupus@ximian.com>
577
578         * mini-ppc.c: handle missing call locationss with FORCE_INDIR_CALL.
579
580 Tue Jan 16 13:14:31 CET 2007 Paolo Molaro <lupus@ximian.com>
581
582         * mini.c: handle also floating point values in initialize_array.
583
584 Tue Jan 16 12:42:40 CET 2007 Paolo Molaro <lupus@ximian.com>
585
586         * mini.c, aot-runtime.c, aot-compiler.c: enable aot compilation of
587         array initialization and make it conditional on the intrins option.
588
589 Tue Jan 16 11:28:45 CET 2007 Paolo Molaro <lupus@ximian.com>
590
591         * mini.h, patch-info.h, Makefile.am, aot-compiler.c: reduce
592         relocations and put the patch info names close to the enum definition.
593
594 2007-01-15 Mark Mason <mason@broadcom.com>
595
596         * basic.cs, exceptions.cs: break up large tests to increase debugability.
597
598 Mon Jan 15 18:57:14 CET 2007 Paolo Molaro <lupus@ximian.com>
599
600         * mini.c: optimized RuntimeHelpers::InitializeArray () calls.
601
602 2007-01-12  Raja R Harinath  <rharinath@novell.com>
603
604         * mini.c (mono_method_to_ir): Use new MonoGenericContext accessor.
605
606 Thu Jan 11 11:16:42 CET 2007 Paolo Molaro <lupus@ximian.com>
607
608         * Makefile.am: distribute the mips sources.
609
610 Wed Jan 10 19:49:33 CET 2007 Paolo Molaro <lupus@ximian.com>
611
612         * mini-codegen.h: handle bug #80489 here, by excluding ecx
613         directly.
614
615 Wed Jan 10 19:08:05 CET 2007 Paolo Molaro <lupus@ximian.com>
616
617         * cpu-x86.md: back out for now as this triggers other regressions.
618
619 Wed Jan 10 18:33:16 CET 2007 Paolo Molaro <lupus@ximian.com>
620
621         * cpu-x86.md: force src1 and dest regpair for long shift instructions
622         to eax:edx, so ecx can't get allocated to them (bug #80489).
623
624 Tue Jan 9 12:36:11 CET 2007 Paolo Molaro <lupus@ximian.com>
625
626         * mini.c, mini-exceptions.c: enabled running fault handlers
627         (bug #80469).
628
629 2007-01-03  Miguel de Icaza  <miguel@novell.com>
630
631         * driver.c: If nothing fail, do not use the string "failed",
632         because it makes it very annoying to view test result logs on the
633         web. 
634
635 2006-12-30  Miguel de Icaza  <miguel@novell.com>
636
637         * debug-debugger.c (mono_debugger_main): Rename "main" to
638         "main_method" to prevent a warning.
639
640         Remove a warning for unused field.
641
642 2006-12-28  Martin Baulig  <martin@ximian.com>
643
644         * debug-debugger.c
645         (MONO_DEBUGGER__debugger_info): Add `get_lmf_addr'.
646
647 2006-12-22  Martin Baulig  <martin@ximian.com>
648
649         * mdb-debug-info32.s, mdb-debug-info64.s: New files.
650         Put a pointer to the `MONO_DEBUGGER__debugger_info' into a
651         seperate `.mdb_debug_info' section, so we can access it from the
652         debugger even if the binary is stripped.
653
654         * debug-debug.c: Reference the `MONO_DEBUGGER__debugger_info_ptr'
655         from the `.mdb_debug_info' here to prevent the linker from
656         removing that section.
657
658         * Makefile.am (mono_debugger_sources): Add mdb-debug-info32.s /
659         mdb-debug-info64.s.
660
661 2006-12-19  Robert Jordan  <robertj@gmx.net>
662
663         * mini-x86: enable the code to return small structures in
664         registers for FreeBSD as well. Fixes bug #80278.
665         * aot-runtime.c: Include sys/wait.h for WEXITSTATUS/WIFEXITED.
666
667 Mon Dec 18 19:47:17 CET 2006 Paolo Molaro <lupus@ximian.com>
668
669         * mini-x86.c: align the stack when calling the profiler
670         function instrumenting the prolog (on OSX).
671
672 Thu Dec 14 15:22:43 CET 2006 Paolo Molaro <lupus@ximian.com>
673
674         * mini.c: emit a break opcode where Debugger.Break () is called.
675
676 2006-12-13  Miguel de Icaza  <miguel@novell.com>
677
678         * mini.c (mono_method_to_ir): Provide useful information on this
679         assert, to prevent others from debugging like I did.
680
681 Tue Dec 12 17:01:38 CET 2006 Paolo Molaro <lupus@ximian.com>
682
683         * mini.c: enable code which was incorrectly commented
684         (bug #80235).
685
686 Tue Dec 12 16:28:15 CET 2006 Paolo Molaro <lupus@ximian.com>
687
688         * mini-x86.c: enable on OSX, too, the code to return small
689         structures in registers.
690
691 Mon Dec 11 19:22:35 CET 2006 Paolo Molaro <lupus@ximian.com>
692
693         * mini-x86.c: remove the use of the dynamic code manager here, too.
694
695 Mon Dec 11 19:08:33 CET 2006 Paolo Molaro <lupus@ximian.com>
696
697         * mini.h, debug-debugger.c, tramp-*.c: fixed 
698         mono_debugger_create_notification_function() to use
699         mono_global_codeman_reserve () instead of a dynamic code manager.
700
701 Tue Dec 5 17:54:50 CET 2006 Paolo Molaro <lupus@ximian.com>
702
703         * mini.c, jit-icalls.h, jit-icalls.c: remove the 
704         ves_array_element_address() jit icall and use a generated
705         managed method instead (which is about 4 times faster for a rank 3
706         array access).
707
708 2006-11-29  Mark Mason  <mason@broadcom.com>
709
710         * basic-calls.cs: additional tests for passing
711         structures as function arguments.
712
713 2006-11-29  Mark Mason  <mason@broadcom.com>
714
715         * mini-mips.h: disable custom exception handling
716         * mini-mips.c: throw/rethrow should use jalr to call
717         exception stubs.  Fixed bug with passing structures
718         by value. More support for tracing floating point
719         functions.
720
721 Wed Nov 29 20:28:17 CET 2006 Paolo Molaro <lupus@ximian.com>
722
723         * mini.c: fixed typo in the soft-float ldind.r4 handling
724         (bug #80086).
725
726 Wed Nov 29 11:33:03 CET 2006 Paolo Molaro <lupus@ximian.com>
727
728         * mini.c, mini.h, driver.c: added --runtime command line
729         option to select a different runtime than the autodetected one.
730         * jit.h: added API for embedders to initialize with a specific
731         runtime version.
732
733 Tue Nov 28 21:24:55 CET 2006 Paolo Molaro <lupus@ximian.com>
734
735         * mini.c: handle also boxing of r4 values (bug #80024).
736
737 Tue Nov 28 19:45:44 CET 2006 Paolo Molaro <lupus@ximian.com>
738
739         * mini-ppc.c: force indirect calls until we reserve
740         enough address space for all the generated code.
741
742 Tue Nov 28 20:04:34 GMT 2006 Paolo Molaro <lupus@ximian.com>
743
744         * exceptions-arm.c: workaround bugs in the libc definition
745         of struct ucontext.
746
747 Mon Nov 27 15:13:41 CET 2006 Paolo Molaro <lupus@ximian.com>
748
749         * inssel.brg: fixes from me and Mark Mason.
750
751 2006-11-23  Dick Porter  <dick@ximian.com>
752
753         * wapihandles.c (mini_wapi_seminfo): No need to adjust the counter
754         semaphore display now we've fixed the initial value
755
756 Wed Nov 22 11:04:37 CET 2006 Paolo Molaro <lupus@ximian.com>
757
758         * inssel.brg: partially revert the last change to fix the build.
759
760 2006-11-21  Mark Mason  <mason@broadcom.com>
761
762         * inssel.brg: Add and use compare-and-branch macros to support
763         architectures that do not have condition code registers (ie. MIPS).
764         * *-mips.{c,brg,md}: Fix copyright statements
765
766 2006-11-20  Mark Mason  <mason@broadcom.com>
767
768         * Makefile.am: remove mini-codegen.c from list of MIPS sources
769         * mini.c: Allow GET_CONTEXT to be specified by the arch port
770         * mini.h: Added declaration for mono_print_ins()
771         * mini-codegen.c: added ins_spec initializer for MIPS
772         * mini-codegen.c (mono_call_inst_add_outarg_reg): added asserts for
773         vreg to be virtual and hreg to be non-virtual.
774         * mini-codegen.c (mono_spillvar_offset): assert if MIPS - spilling
775         is not yet working/implemented correctly.
776         * mini-codegen.c (print_ins): rename to mono_print_ins(), make
777         non-static, fixup calls to print_ins() from other parts in the file.
778
779 2006-11-20  Mark Mason  <mason@broadcom.com>
780
781         * basic-calls.cs: added tests for passing structures as arguments
782         to calls.
783
784 Mon Nov 20 19:40:11 CET 2006 Paolo Molaro <lupus@ximian.com>
785
786         * inssel-long32.brg: optimize signed division by power of two.
787
788 Mon Nov 20 17:37:58 CET 2006 Paolo Molaro <lupus@ximian.com>
789
790         * mini-arm.c: added support for interworking with thumb code
791         (mono must be still be built using the ARM instruction encoding).
792
793 2006-11-19  Miguel de Icaza  <miguel@novell.com>
794
795         * mini.c (type_from_op): Separate the conditions for OP_EQ as the
796         verifier has different rules for it.   Fixes a few verifier issues
797         in the test suite.
798
799         * mini-exceptions.c (mono_handle_native_sigsegv): Put the message
800         at the end, so people know what happened.
801
802 Thu Nov 16 14:07:18 CET 2006 Paolo Molaro <lupus@ximian.com>
803
804         * brach-opts.c: in optimize_exception_target() make sure we
805         are in a catch clause (fixes bug #79871).
806
807 Thu Nov 16 12:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
808
809         * jit-icalls.c, jit-icalls.h, mini-arm.c, mini.c:
810         more soft-float support fixes.
811
812 Wed Nov 15 18:45:47 GMT 2006 Paolo Molaro <lupus@ximian.com>
813
814         * mini-arm.c, inssel-arm.brg: ABI fix for longs and doubles
815         that are passed half on the stack and half in registers.
816
817 Wed Nov 15 17:00:27 CET 2006 Paolo Molaro <lupus@ximian.com>
818
819         * mini-ops.h, mini-arch.h, helpers.c, Makefile.am:
820         more mips integration work from Mark E Mason 
821         <mark.e.mason@broadcom.com>.
822
823 Wed Nov 15 16:34:03 CET 2006 Paolo Molaro <lupus@ximian.com>
824
825         * exceptions-mips.c, inssel-mips.brg, mini-mips.h,
826         cpu-mips.md, inssel-long32-mips.brg, mini-mips.c,
827         tramp-mips.c: added sources for the mips port, not
828         integrated in the build yet. Contributed by
829         Mark E Mason <mark.e.mason@broadcom.com>.
830
831 2006-11-14  Neale Ferguson <neale@sinenomine.net>
832
833         * mini-s390[x].c (is_regsize_var): Support PTR/FNPTR too.
834
835 Tue Nov 14 16:06:37 CET 2006 Paolo Molaro <lupus@ximian.com>
836
837         * Makefile.am, inssel-float.brg, inssel-softfloat.brg:
838         put the soft-float rules in its own file since it seems to
839         break s390 compilation.
840
841 Mon Nov 13 15:54:38 CET 2006 Paolo Molaro <lupus@ximian.com>
842
843         * mini-arm.c: fixed wrnings.
844
845 Fri Nov 10 19:18:32 CET 2006 Paolo Molaro <lupus@ximian.com>
846
847         * mini-arm.c, mini-arm.h, cpu-arm.md, inssel-float.brg,
848         inssel-arm.brg: ARM support for soft-float.
849
850 Fri Nov 10 18:38:15 CET 2006 Paolo Molaro <lupus@ximian.com>
851
852         * mini.c, jit-icalls.c, jit-icalls.h: added first cut at handling
853         loads and stores of 32 bit fp values.
854
855 2006-11-10  Zoltan Varga  <vargaz@gmail.com>
856
857         * mini-sparc.c (is_regsize_var): Support PTR/FNPTR too.
858
859         * tramp-sparc.c (mono_arch_patch_callsite): Fix this function so it actually
860         works. Fixes #79852 and #79463.
861
862 Thu Nov 9 16:56:13 CET 2006 Paolo Molaro <lupus@ximian.com>
863
864         * mini.c, mini-codegen.c, jit-icalls.c, jit-icalls.h:
865         more soft-float support WIP and fixes.
866
867 Wed Nov 8 16:40:02 CET 2006 Paolo Molaro <lupus@ximian.com>
868
869         * mini-arm.c: some VFP updates.
870
871 Tue Nov 7 19:45:51 CET 2006 Paolo Molaro <lupus@ximian.com>
872
873         * mini-exceptions.c: 0 is a valid local var offset in some
874         architectures, don't assert (bug #78508).
875
876 Tue Nov 7 18:17:52 GMT 2006 Paolo Molaro <lupus@ximian.com>
877
878         * exceptions-arm.c: fixed off by one error in stack walk code.
879
880 Tue Nov 7 11:27:26 CET 2006 Paolo Molaro <lupus@ximian.com>
881
882         * mini.h, mini.c: more precise tracking of type load exceptions.
883
884 2006-11-03  Robert Jordan  <robertj@gmx.net>
885
886         * Makefile.am: [WIN32] Add monow.exe target.
887         * driver.c: [WIN32] Don't detach the console when debugging.
888         Fixes bug #79797.
889         
890 2006-10-30  Miguel de Icaza  <miguel@novell.com>
891
892         * tramp-x86.c (mono_arch_patch_delegate_trampoline): Eliminate warning.
893
894 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
895
896         * aot-compiler.c (emit_method_info): Add a case missed earlier.
897
898         * driver.c (mini_regression): Fix --regression with AOT.
899
900         * aot-compiler.c (emit_method_info): Fix AOT on amd64.
901
902 2006-10-17  Zoltan Varga  <vargaz@gmail.com>
903
904         * mini.c (GET_CONTEXT): Correct the definition of this for sparc/linux.
905
906         * mini-sparc.h: Don't use sigaction on sparc/linux.
907
908         * exceptions-sparc.c: Call mono_arch_flush_icache () in a couple of places.
909
910         * mini-sparc.c (mono_sparc_flushw): Call mono_arch_flush_icache ().
911
912         * mini-exceptions.c: Add proper include files for getpid ().
913
914 2006-10-16  Zoltan Varga  <vargaz@gmail.com>
915
916         * aot-runtime.c (mono_aot_get_method): Change this to return the native code
917         address instead of a MonoJitInfo* to avoid decoding the exception info for the
918         method.
919
920         * aot-runtime.c aot-compiler.c: Use uint16 instead of uint32 entries in the
921         name cache to reduce its size.
922
923         * mini.h (MONO_AOT_FILE_VERSION): Bump aot file format version.
924
925 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
926
927         * mini-x86.c: Save/restore the current LMF structure more efficiently using
928         the mono_lmf TLS variable.
929
930         * exceptions-x86.c (mono_arch_find_jit_info): Only access lmf->method in 
931         trampoline lmf frames.  
932
933         * mini-sparc.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Define this on sparc as well.
934
935 2006-10-14  Zoltan Varga  <vargaz@gmail.com>
936
937         * mini-amd64.c: Save/restore the current LMF structure more efficiently using
938         the mono_lmf TLS variable.
939
940         * mini-exceptions.c: Access the LMF structure through accessors.
941
942         * mini.c: Allow the backends the option for storing the lmf in a dedicated TLS 
943         variable instead of in jit_tls->lmf.
944
945         * mini-x86.c mini-amd64.c: Update after lmf->lmf_addr name change.
946         
947         * exceptions-amd64.c (mono_arch_find_jit_info): Only access lmf->method in 
948         trampoline lmf frames.
949
950         * mini-amd64.c (mono_arch_emit_prolog): Do not set lmf->method as it is not needed.
951
952 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
953
954        * mini.c trace.c mini-x86.c: Revert these too.
955         
956        * mini.c trace.c mini-x86.c: Remove warning workarounds after the mono_type_size ()
957        signature change.
958
959 Tue Oct 10 11:35:20 CEST 2006 Paolo Molaro <lupus@ximian.com>
960
961         * genmdesc.c: removed now dead code.
962
963 2006-10-09  Robert Jordan <robertj@gmx.net>
964
965         * mini.c: Disable the CrashReporter on MacOS X; Fixes #74869
966
967 Mon Oct 9 17:06:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
968
969         * mini.h: do not leave gaps in the opcode values.
970
971 Mon Oct 9 16:08:51 CEST 2006 Paolo Molaro <lupus@ximian.com>
972
973         * jit-icalls.h: flag functions as internal here, too.
974
975 Mon Oct 9 15:58:18 CEST 2006 Paolo Molaro <lupus@ximian.com>
976
977         * mini.h, aliasing.h, declsec.h, regalloc.h, trace.h: mark internal
978         functions with the internal attribute.
979
980 Mon Oct 9 15:52:45 CEST 2006 Paolo Molaro <lupus@ximian.com>
981
982         * aot-compiler.c: fclose the file descriptor in the profile read loop.
983
984 Fri Oct 6 16:01:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
985
986         * mini.c, jit-icalls.c, inssel-float.brg: beginnings of support
987         for soft-float.
988
989 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
990
991         * mini-x86.c (emit_load_volatile_arguments): New function to handle arguments of
992         tail calls as on other platforms.
993
994         * mini.c (mono_method_to_ir): Fix a few tailcall problems. Fixes #79557.
995
996         * iltests.il: Add a few tailcall tests.
997
998 Tue Oct 3 16:33:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
999
1000         * driver.c: fix loop for old compilers (bug #79521).
1001
1002 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1003
1004         * mini-exceptions.c (ves_icall_get_trace): Remove debug printf.
1005
1006         * aot-runtime.c (mono_aot_get_class_from_name): Avoid a memory allocation.
1007
1008         * aot-compiler.c: Add a new option 'metadata-only' to only emit the cached
1009         metadata without any code.
1010
1011         * mini-exceptions.c (mono_handle_native_sigsegv): Add some code to print out
1012         more precise debugging information using gdb.
1013
1014 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1015
1016         * inssel-ia64.brg: Make the helper methods static.
1017
1018 Thu Sep 28 16:40:07 CEST 2006 Paolo Molaro <lupus@ximian.com>
1019
1020         * inssel-x86.brg: make the helper methods static.
1021
1022 Thu Sep 28 16:31:32 CEST 2006 Paolo Molaro <lupus@ximian.com>
1023
1024         * inssel-amd64.brg, mini-amd64.c: small cleanup, use inst_call.
1025
1026 Thu Sep 28 15:36:07 CEST 2006 Paolo Molaro <lupus@ximian.com>
1027
1028         * mini.c: updates for monoburg changes.
1029         * inssel.brg: make a few helper functions static as they should.
1030
1031 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1032
1033         * Makefile.am: Move mini-codegen.c to common_sources.
1034
1035 Wed Sep 27 15:07:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1036
1037         * mini.h: instroduce inst_call in MonoInst for use in OUTARG
1038         instructions.
1039         * Makefile.am, cpu-g4.md, inssel-ppc.brg, mini-codegen.c, mini-ppc.c,
1040         mini-ppc.h: port to use the common local register allocator.
1041
1042 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1043
1044         * mini.h: Remove the comment too then.
1045
1046 Tue Sep 26 14:02:58 CEST 2006 Paolo Molaro <lupus@ximian.com>
1047
1048         * mini.h: put back backend.data which is to be used shortly and
1049         doesn't increase the size of MonoInst. If any 64 bit arch aligned
1050         pointers on 4 byte boundaries it'd have much bigger issues running
1051         and you can ifdef it out anyway.
1052
1053 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1054
1055         * mini.h (MonoInst): Remove backend.data field since it is unused and increases
1056         MonoInst size by 4 bytes on 64 bit machines.
1057
1058 Tue Sep 26 11:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1059
1060         * *.{c,h,brg}: long due removal of the unused field in MonoInst and
1061         replacement with more meaningful field names. Arch maintainers, please
1062         check the assigned names are good enough for your arch.
1063
1064 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1065
1066         * cpu-ia64.md mini-ia64.c inssel-ia64.brg mini-ops.h: Get rid of the 
1067         OP_IA64_FETCHADD opcodes, use OP_ATOMIC_ADD_IMM_NEW opcodes instead.
1068
1069 Mon Sep 25 11:05:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
1070
1071         * mini.h, driver.c, optflags-def.h, Makefile.am: reduce runtime
1072         relocations and memory requirements, put the optimization flags
1073         definitions in their own file.
1074
1075 2006-09-24  Zoltan Varga  <vargaz@gmail.com>
1076
1077         * jit-icalls.c (mono_helper_stelem_ref): Remove this unused helper function.
1078
1079         * mini.c (mini_init): Remove reference to mono_helper_stelem_ref.
1080
1081 2006-09-22  Zoltan Varga  <vargaz@gmail.com>
1082
1083         * mini-amd64.c (add_valuetype): Fix an uninitialized memory issue.
1084
1085 Thu Sep 21 19:06:09 CEST 2006 Paolo Molaro <lupus@ximian.com>
1086
1087         * inssel.brg: use the correct function to get the size of an item
1088         in an array, given an element class.
1089         * aot-compiler.c: do not access class->class_size directly.
1090
1091 Thu Sep 21 12:10:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1092
1093         * mini.h, debug-mini.c: added a debugging function to print
1094         info about local variables and arguments in a jitted method.
1095
1096 2006-09-20  Zoltan Varga  <vargaz@gmail.com>
1097
1098         * mini-alpha.c: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>.
1099
1100         * exceptions-ia64.c: Fix some problems reported by Bill Seurer <seurer@us.ibm.com>.
1101
1102 2006-09-19  Zoltan Varga  <vargaz@gmail.com>
1103
1104         * mini-ia64.c (mono_arch_call_opcode): Avoid using the same loop index in the
1105         inner and outer loops when passing vtypes.
1106
1107 Tue Sep 19 17:53:40 CEST 2006 Paolo Molaro <lupus@ximian.com>
1108
1109         * mini-ppc.c: take into account the cpu errata for cache flushing
1110         which caused some random errors (bug #79381).
1111
1112 2006-09-19  Zoltan Varga  <vargaz@gmail.com>
1113
1114         * mini-amd64.c (mono_arch_emit_exceptions): Emit the call to 
1115         mono_arch_throw_corlib_exception using emit_call () too. Fixes #79271.
1116
1117 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1118
1119         * aot-runtime.c (load_aot_module): Return immeditely if the AOT module was already
1120         loaded.
1121
1122         * exceptions-amd64.c (gregs_from_ucontext): Apply another patch from the
1123         freebsd ports tree.
1124
1125         * mini-amd64.c (emit_call): Avoid near calls on freebsd.
1126         (mono_arch_patch_code): Remove the unused handling of MONO_PATCH_INFO_CLASS_INIT.
1127
1128         * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix check for 32 bitness of
1129         displacement.
1130
1131 2006-09-13  Zoltan Varga  <vargaz@gmail.com>
1132
1133         * aot-runtime.c (load_aot_module_from_cache): Fix PPC build.
1134
1135 2006-09-12  Zoltan Varga  <vargaz@gmail.com>
1136
1137         * mini.c (UNVERIFIED): Add a 'break-on-unverified' MONO_DEBUG option so this 
1138         macro does not have to be changed during debugging.
1139
1140         * cpu-alpha.md inssel-alpha.brg mini-alpha.h mini-alpha.c exceptions-alpha.c tramp-alpha.c: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>.
1141
1142         * cpu-pentium.md: Rename this to cpu-x86.md for consistency with other platforms.
1143
1144         * Makefile.am mini-x86.c mini-codegen.c: Rename pentium_desc to x86_desc.
1145         
1146         * mini.c (mini_get_ldelema_ins): Allow ldelema2d optimization if 
1147         MONO_ARCH_NO_EMULATE_MUL is defined.
1148
1149         * mini-ia64.h (MONO_ARCH_CALLEE_FREGS): Reserve f33 for use by instructions.
1150
1151         * mini-ia64.h: Define MONO_ARCH_NO_EMULATE_MUL.
1152
1153         * mini-ia64.c: Implement CEE_MUL based on gcc emitted code.
1154
1155         * mini-ia64.c (mono_arch_lowering_pass): Optimize store_membase_imm with offset==0.
1156         
1157 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1158
1159         * mini-x86.h mini-amd64.h mini-exceptions.c: Move the bsd specific MAP_ANON
1160         stuff to mini-exceptions.c where it is used.
1161
1162         * mini-sparc.c (mono_arch_setup_jit_tls_data): Remove the duplicate altstack
1163         setup code, the real one is in mini-exceptions.c.
1164
1165         * mini-amd64.h mini-amd64.c exceptions-amd64.c: Move all dependencies on the
1166         layout of ucontext_t to helper functions in exceptions-amd64.c, as on x86. Add
1167         some changes from the freebsd ports tree.
1168
1169         * mini-amd64.h exceptions-amd64.c: Fix the amd64 build. Get rid of the SC_
1170         constants.
1171         
1172         * mini-amd64.h: Freebsd has MAP_ANON instead of MAP_ANONYMOUS.
1173
1174 Mon Sep 11 13:18:55 CEST 2006 Paolo Molaro <lupus@ximian.com>
1175
1176         * mini.c: on Linux, check for /proc to be mounted
1177         (bug# 79351, novell bug#201204).
1178
1179 Mon Sep 11 13:10:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1180
1181         * mini.c: handle cases where pthread_attr_getstack() behaves
1182         incorrectly (bug #78096).
1183
1184 Mon Sep 11 11:31:10 BST 2006 Paolo Molaro <lupus@ximian.com>
1185
1186         * mini-arm.c: support larger stack frames (bug #79272).
1187
1188 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1189
1190         * aot-runtime.c (mono_aot_get_class_from_name): Remove a debug printf.
1191
1192         * aot-compiler.c: Add a hash table to the AOT file mapping class names to typedef 
1193         tokens.
1194
1195         * aot-runtime.c (mono_aot_get_class_from_name): New function used by 
1196         mono_class_from_name () to find a class from its name.
1197
1198         * mini.c (mini_init): Register mono_aot_get_class_from_name () with the runtime.
1199
1200 2006-09-07  Zoltan Varga  <vargaz@gmail.com>
1201
1202         * mini-amd64.c (emit_call): Avoid strstr () call if possible.
1203
1204 2006-09-05  Kornél Pál  <kornelpal@gmail.com>
1205
1206         * Makefile.am: Renamed mono-1.dll to mono.dll. (-avoid-version)
1207
1208 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1209
1210         * mini.c (mono_icall_get_wrapper): Fix a race condition on initializing
1211         callinfo->trampoline.
1212
1213         * mini-amd64.c (emit_call): Special case calls to the vararg array icalls. Hopefully
1214         fixes #79271.
1215         (mono_arch_patch_code): Add some debug code to help track down similar failures in the
1216         future.
1217
1218 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1219
1220         * aot-runtime.c (mono_aot_plt_resolve): Add an assert.
1221
1222 2006-09-02  Zoltan Varga  <vargaz@gmail.com>
1223
1224         * tramp-x86.c (mono_arch_create_specific_trampoline): Don't increase
1225         stats.method_trampolines, it is already done by the generic trampoline code.
1226
1227         * tramp-amd64.c (mono_arch_create_specific_trampoline): Ditto.
1228         
1229 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1230
1231         * mini.c: Remove some references to mono_compile_aot, and use cfg->compile_aot instead.
1232
1233         * aot-runtime.c: Add some tweaks to the MONO_AOT_CACHE functionality.
1234
1235         * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix a FIXME.
1236
1237         * mini.c (print_jit_stats): Print mscorlib mempool size too.
1238         
1239         * mini.c (print_jit_stats): Print new stats.
1240
1241         * *-alpha.c: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>.
1242
1243 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1244
1245         * mini.c (mini_get_ldelema_ins): Fix verifier error when calling
1246         Address on two dimensional arrays. Fixes #78729.
1247
1248         * mini.h (MonoCompile): Add a 'skip_visibility' field.
1249
1250         * mini.c (method_to_ir): Disable visibility checks if skip_visibility is set on
1251         a method.
1252
1253         * mini-amd64.c (mono_arch_emit_exceptions): Fix assertion introduced by the last change.
1254
1255         * mini.c (mono_runtime_cleanup_handlers): Clean up signal handlers on unix. Fixes
1256         #79130.
1257         
1258         * mini.c (handle_array_new): Applied patch from "briaeros007". Fix
1259         a race condition.
1260         (mini_get_ldelema_ins): Ditto.
1261
1262 2006-08-30  Zoltan Varga  <vargaz@gmail.com>
1263
1264         * mini-amd64.c (mono_arch_emit_exceptions): Align fp constants to 16 bytes.
1265         (mono_arch_output_basic_block): Avoid unaligned accesses in FNEG implementation. 
1266         Fixes #79213.
1267
1268 2006-08-29 Neale Ferguson <neale@sinenomine.net>
1269
1270         * mini-s390.c, mini-s390x.c: Fix VARARG case processing with 0 arguments. Add
1271         mono_arch_get_patch_offset as a dummy entry point to allow successful link. 
1272
1273         * exceptions-s390x.c: Cosmetic change.
1274
1275         * tramp-s390.c: Fix warning.
1276
1277         * cpu-s390.md: Correct length of mul_imm.
1278
1279 Wed Aug 23 19:24:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1280
1281         * aot-compiler.c: added binary writer with ELF backend
1282         implementation (only on Linux/x86 for now).
1283
1284 2006-08-18  Zoltan Varga  <vargaz@gmail.com>
1285
1286         * Makefile.am: Don't run net 2.0 AOT tests.
1287
1288         * aot-compiler.c (compile_method): Skip methods with tail calls as well.
1289         (mono_compile_assembly): Skip net 2.0 assemblies as well.
1290
1291         * aot-runtime.c (load_patch_info): Fix an uninitialized memory error.
1292
1293 Fri Aug 18 19:38:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1294
1295         * aot-compiler.c: simplified and refactored the asm-writing code
1296         to allow different backends.
1297
1298 2006-08-18  Zoltan Varga  <vargaz@gmail.com>
1299
1300         * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version.
1301
1302         * aot-compiler.c aot-runtime.c: Reorg the GOT slot allocation code a 
1303         little. Share patches of type TYPE_FROM_HANDLE as well.
1304
1305         * mini.c (mono_patch_info_equal): New helper function.
1306         (mono_patch_info_hash): Ditto.
1307
1308         * aot-compiler.c (emit_method_code): Fix s390 build.
1309
1310         * mini.c (mono_allocate_stack_slots_full): Fix yet another place where byref
1311         is not handled because it is stored as a flag and not as a type ctor. Fixes
1312         #79016.
1313
1314 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1315
1316         * aot-compiler.c: Fix computation of GOT slot statistics.
1317         
1318         * aot-compiler.c aot-runtime.c: Implement sharing of GOT slots for classes/fields.
1319         Also remove support for not PIC AOT.
1320
1321         * mini.h: Bump AOT file format version.
1322
1323         * objects.cs: Add a test for #78990.
1324
1325         * mini-x86.c (mono_arch_output_basic_block): Applied patch from Peter Dettman
1326         (peter.dettman@iinet.net.au). Fixes #79087.
1327
1328         * basic-long.cs: Add a test for the above.
1329
1330 2006-08-16  Zoltan Varga  <vargaz@gmail.com>
1331
1332         * aot-compiler.c (get_got_offset): Add a cache for GOT entries, not yet used.
1333         
1334         * aot-compiler.c (get_plt_index): Add a cache for wrappers too. Simplify the
1335         code somewhat.
1336
1337 2006-08-15  Zoltan Varga  <vargaz@gmail.com>
1338
1339         * mini.c (mini_init): Fix registration of idiv/imul opcodes which can throw
1340         exceptions.
1341
1342 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1343
1344         * mini.c: Don't verify COM proxy invoke calls
1345         
1346
1347 2006-08-10  Dick Porter  <dick@ximian.com>
1348
1349         * wapihandles.c (mini_wapi_seminfo): More info, to help track down
1350         which process is holding semaphores locked.
1351
1352 2006-08-08  Zoltan Varga  <vargaz@gmail.com>
1353
1354         * mini-ia64.c mini-amd64.c: Fix #79027.
1355
1356         * mini-sparc.c (mono_arch_call_opcode): Fix the previous patch.
1357
1358         * mini-sparc.c (mono_arch_call_opcode): Fix #79027.
1359
1360         * mini-x86.c (mono_arch_call_opcode): Handle the case where there are no
1361         implicit arguments in a vararg call. Fixes #79027.
1362
1363 2006-08-07  Zoltan Varga  <vargaz@freemail.hu>
1364
1365         * mini.c (mono_get_element_address_signature): Use CDECL calling convention on windows. Fixes #78969.
1366         (mono_get_array_new_va_signature): Ditto.
1367
1368 2006-08-05  Zoltan Varga  <vargaz@gmail.com>
1369
1370         * aot-runtime.c: Call init_plt lazily.
1371
1372         * inssel-long.brg: Fix unsigned long->int conversion.
1373
1374         * aot-runtime.c (init_plt): Remove a redundant make_writable () call.
1375
1376         * aot-compiler.c aot-runtime.c: Reorganize the file structure in the amd64 case so
1377         that most data is now in the .rss/.data section.
1378
1379 2006-08-04  Zoltan Varga  <vargaz@gmail.com>
1380
1381         * aot-compiler.c: Correct the computation of the 'direct-calls' statistic.      
1382
1383         * aot-compiler.c: Print the number of methods without GOT slots as a statistics.
1384
1385         * aot-compiler.c aot-runtime.c tramp-amd64.c: Resurrect amd64 AOT support.
1386
1387         * tramp-amd64.c (mono_arch_patch_callsite): Fix a warning.
1388
1389         * jit-icalls.c (mono_helper_compile_generic_method): Unbox vtypes since this is a
1390         virtual call. Fixes #79010.
1391
1392         * mini.c (mono_method_to_ir): Pass an additional out arg to compile_generic_method 
1393         and use the result as the this argument in the real call.
1394
1395         * generics.2.cs: Add a new test for #79010.
1396         
1397 2006-08-03  Zoltan Varga  <vargaz@gmail.com>
1398
1399         * mini-x86.c: Fix a warning.
1400
1401         * aot-compiler.c: Add a bunch of statistics.
1402
1403         * mini.c (inline_method): Disable inlining in out-of-line bblocks.
1404
1405 2006-08-02  Zoltan Varga  <vargaz@gmail.com>
1406
1407         * mini-arch.h Makefile.am mini-ops.h mini-codegen.c: More alpha updates.
1408
1409 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1410
1411         * cpu-alpha.md inssel-alpha.brg mini-alpha.h mini-alpha.c exceptions-alpha.c tramp-alpha.c: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>.
1412
1413 2006-07-13  Miguel de Icaza  <miguel@novell.com>
1414
1415         * mini.c (mono_method_to_ir): Obtain the original method in the
1416         CIL stream and use this to perform validation.
1417
1418         Fixed: #78816
1419
1420 2006-07-19  Zoltan Varga  <vargaz@gmail.com>
1421
1422         * mini-x86.c (mono_arch_get_argument_info): Fix a warning.
1423         (mono_arch_call_opcode): Ditto.
1424
1425         * mini.c (mono_method_to_ir): Clear ins_flag at the end of CEE_CALL. Fixes
1426         #78826.
1427
1428         * mini.c (mono_patch_info_dup_mp): New helper function.
1429         
1430         * aot-compiler.c (compile_method): Fix some of the memory allocated during
1431         compilation. Fixes #78827.
1432
1433 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1434
1435         * declsec.c: Use original security informations for
1436           MONO_WRAPPER_MANAGED_TO_MANAGED.
1437
1438 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1439
1440         * mini.c: Allow Com Interop methods/classes and
1441         don't verify COM wrapper calls
1442         
1443
1444 2006-07-13  Zoltan Varga  <vargaz@gmail.com>
1445
1446         * inssel-long32.brg: Fix long->i4 checked conversion.
1447
1448         * exceptions.cs: Add a test for the above.
1449
1450 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1451
1452         * mini-exceptions.c (mono_setup_altstack): Fix a memory leak.
1453
1454         * mini.c: Applied patch from Joachim Ante (joe@otee.dk). Fix some shutdown 
1455         leaks.
1456
1457         * helpers.c (mono_disassemble_code): Avoid using fixed temporary files. Fixes
1458         #78775.
1459
1460 2006-07-03  Zoltan Varga  <vargaz@gmail.com>
1461
1462         * mini.c: Fix solaris/x86 exception handling.
1463
1464         * Makefile.am: Get rid of $(ICU_LIBS).
1465
1466 2006-07-02  Zoltan Varga  <vargaz@gmail.com>
1467
1468         * mini-exceptions.c: Fix handling of unhandled SIGSEGV exceptions on ia64.
1469         (ves_icall_System_Security_SecurityFrame_GetSecurityStack): Use MONO_INIT_CONTEXT_FROM_CURRENT.
1470         (ves_icall_System_Security_SecurityFrame_GetSecurityFrame): Ditto.
1471
1472         * mini-ia64.h (MONO_CONTEXT_SET_FUNC): New macro.
1473
1474         * mini-exceptions.c (mono_handle_native_sigsegv): Prevent infinite loops if
1475         this function causes a SIGSEGV.
1476
1477 2006-06-22  Zoltan Varga  <vargaz@gmail.com>
1478
1479         * mini.c: Remove unused solaris/x86 includes.
1480
1481 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1482
1483         * jit.h: Add G_BEGIN_DECLS/G_END_DECLS.
1484
1485 2006-06-20  Jb Evain  <jbevain@gmail.com>
1486
1487         * cpu-g4.md: fix max length of start_handler instruction.
1488
1489 2006-06-20  Massimiliano Mantione  <massi@ximian.com>
1490         * simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78656.
1491
1492 2006-06-16  Massimiliano Mantione  <massi@ximian.com>
1493         * ssa.c: Fixed bug 78653 for SSA based deadce.
1494         * mini.h: added MONO_INST_DEFINITION_HAS_SIDE_EFFECTS flag go
1495         MonoInst.flags, used in SSA based deadce.
1496         * aliasing.c: Fixed bug 78653 for "fastpath" deadce.
1497         * simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78653.
1498
1499 Thu Jun 15 16:52:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
1500
1501         * tramp-ppc.c: don't use malloc () for trampoline code, sometimes
1502         it can end up using non executable memory on ppc64 systems
1503         running ppc32 userspace (fix from Johannes Berg).
1504
1505 2006-06-14  Dick Porter  <dick@ximian.com>
1506
1507         * wapihandles.c: Fix a bunch of signed/unsigned warnings from gcc
1508         4.1.1
1509
1510 2006-06-13  Massimiliano Mantione  <massi@ximian.com>
1511         * mini.c: Made so that inline is locally disabled if it would
1512         trigger a .cctor, because too many apps depend on this behavior
1513         (which seems to be also the one of the MS CLR).
1514
1515 2006-06-13  Zoltan Varga  <vargaz@gmail.com>
1516
1517         * mini-amd64.c (mono_emit_stack_alloc): Fix initialization of localloc'ed memory.
1518         No idea why this worked before.
1519
1520         * branch-opts.c (mono_branch_optimize_exception_target): Avoid branches
1521         which branch to outer exception clauses since they could skip the
1522         inner finally clauses. Fixes #78633.
1523
1524         * exceptions.cs: Add a test for the above.
1525
1526         * mini.c (merge_basic_blocks): Nullify the branch at the end of the first bb.
1527         Fixes #78629.
1528
1529         * iltests.il: Add a test for the above.
1530
1531 2006-06-12  Zoltan Varga  <vargaz@gmail.com>
1532
1533         * mini.c (remove_block_if_useless): Do not remove the bblock immediately
1534         after the end of a try bblock, to prevent asserts in mini_method_compile ().
1535
1536         * iltests.il: Add a test for the above.
1537
1538 2006-06-10  Zoltan Varga  <vargaz@gmail.com>
1539
1540         * mini-ia64.c (mono_arch_lowering_pass): Remove some code duplication.
1541         
1542         * mini-ia64.c inssel-ia64.brg: Implement the new net 2.0 Interlocked.Add
1543         methods as instrinsics.
1544
1545 2006-06-09  Wade Berrier <wberrier@novell.com>
1546
1547         * Makefile.am: Fix sources list for svn rename so that make dist succeeds
1548         (simple-cee-ops.h ssapre-mini-ops.h)
1549
1550 2006-06-09  Neale Ferguson <neale@sinenomine.net>
1551
1552         * mini-exceptions.c (ves_icall_get_frame_info): Fix this function on s390/s390x.
1553         * mini-s390x.c, mini-s390.c: Correct ATOMIC operations (incorrect register for CS
1554         instruction).
1555         * mini-s390x.h, mini-s390.h: Simplify MCONTEXT_GET_BP.
1556         * cpu-s390x.md: Fix max. length values for a couple of instructions.
1557
1558 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1559
1560         * mini-exceptions.c: Minor fix for building mono in Visual Studio.
1561
1562 2006-06-08  Massimiliano Mantione  <massi@ximian.com>
1563
1564         * ssapre-cee-ops.h: Renamed as "simple-cee-ops.h"
1565         * simple-cee-ops.h: Was "ssapre-cee-ops.h" (renamed).
1566         * ssapre-mini-ops.h: Renamed as "simple-mini-ops.h"
1567         * simple-mini-ops.h: Was "ssapre-mini-ops.h" (renamed).
1568         * local-propagation.c: In mono_cprop_invalidate_values use a whitelist
1569         of opcodes, so that bug 78549 should not happen again.
1570         * ssapre.c: Updated to use the renamed files.
1571
1572 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1573
1574         * mini-amd64.c (mono_arch_output_basic_block): Fix a wrong reg-reg move 
1575         in OP_ATOMIC_EXCHANGE_I4.
1576
1577 2006-06-07  Wade Berrier <wberrier@novell.com>
1578
1579         * tramp-s390.c: Fix s390 build (add missing pointer declarations 
1580         in mono_debugger_create_notification_function)
1581
1582 2006-06-06  Zoltan Varga  <vargaz@gmail.com>
1583
1584         * mini.c (NEW_AOTCONST_TOKEN): Fix amd64 build.
1585         
1586         * mini.c (type_from_stack_type): Disable some changes which do not
1587         seem to work.
1588
1589         * driver.c: Reenable opts.
1590
1591         * mini.h (MonoStackSlot): New structure to keep track of the verification state
1592         of the evaluation stack.
1593         
1594         * mini.h (MonoBasicBlock): Add a 'stack_state' field to keep track of the
1595         evaluation stack trace at entry to the bblock.
1596
1597         * mini.c (merge_stacks): New function to perform verification of stack merges.
1598         Turned off by default.
1599
1600         * mini.c: Fill up ins->klass for instructions whose type is STACK_OBJ or
1601         STACK_MP.
1602         
1603 2006-06-06  Massimiliano Mantione  <massi@ximian.com>
1604
1605         * local-propagation.c: Fixed bug 78549.
1606
1607 2006-06-04  Zoltan Varga  <vargaz@gmail.com>
1608
1609         * mini-exceptions.c (ves_icall_get_frame_info): Fix this function on ia64.
1610
1611 2006-06-02  Miguel de Icaza  <miguel@novell.com>
1612
1613         * tramp-sparc.c, tramp-ppc.c, tramp-s390.c, tramp-s390x.c,
1614         tramp-arm.c, tramp-ia64.c
1615         (mono_debugger_create_notification_function): Update signature to
1616         new signature and use new protocol for creating the notification
1617         function.  
1618
1619         Should fix the build.
1620
1621 2006-06-02  Geoff Norton  <gnorton@customerdna.com>
1622
1623         * exceptions-ppc.c (mono_jit_walk_stack)
1624         (ves_icall_get_frame_info): Fix the build
1625
1626 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1627
1628         * mini.c (mono_set_defaults): Fix the handling of -O=-all.
1629
1630 2006-05-31  Raja R Harinath  <rharinath@novell.com>
1631
1632         * il2tests.2.il: New file for generics CIL tests.  Add test for
1633         #78019.
1634         * Makefile.am: Update.
1635
1636         Fix #78019
1637         * mini.c (mono_method_to_ir): Don't apply box+brtrue optimization
1638         to nullable types.
1639
1640 2006-05-30  Massimiliano Mantione  <massi@ximian.com>
1641
1642         * aliasing.c: Fixed bug 78311.
1643
1644 2006-05-29  Martin Baulig  <martin@ximian.com>
1645
1646         * mini-exceptions.c (mono_find_jit_info): When computing the
1647         native offset, check whether we're actually inside the method's
1648         code; call mono_debug_print_stack_frame() to format the frame.
1649         (ves_icall_System_Exception_get_trace): Call
1650         mono_debug_print_stack_frame() to format the stack frame.
1651         (ves_icall_get_trace): Update to the new debugging API.
1652         (mono_jit_walk_stack_from_ctx): Likewise.
1653         (ves_icall_get_frame_info): Likewise.
1654
1655         * mini.c (get_method_from_ip): Use the new debugging API.
1656         (mono_print_method_from_ip): Likewise.
1657
1658         * exceptions-ppc.c
1659         (mono_jit_walk_stack): Use the new debugging API.
1660         (ves_icall_get_frame_info): Likewise.   
1661
1662 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1663
1664         * mini-amd64.c (mono_arch_output_basic_block): Fix MONO_PROFILE_COVERAGE.
1665
1666 2006-05-25  Massimiliano Mantione  <massi@ximian.com>
1667
1668         * mini.c: Added "limitator" to inline for debugging.
1669
1670 2006-05-24  Martin Baulig  <martin@ximian.com>
1671
1672         * debug-debugger.c (mono_debugger_init): Create a private,
1673         malloc()-based code manager for the notification function and
1674         intentionally leak it on exit.  This fixes the crash-on-exit race
1675         condition.
1676
1677         * tramp-amd64.c
1678         (mono_debugger_create_notification_function): Added
1679         `MonoCodeManager *' argument.
1680
1681         * tramp-x86.c
1682         (mono_debugger_create_notification_function): Added
1683         `MonoCodeManager *' argument.
1684
1685 2006-05-23  Massimiliano Mantione  <massi@ximian.com>
1686
1687         * aliasing.c: Fixed 64 bit issue.
1688         * driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by
1689         default since all known bugs are fixed (one more time!).
1690
1691 Tue May 23 13:47:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1692
1693         * mini.c: write barrier support.
1694
1695 2006-05-23  Martin Baulig  <martin@ximian.com>
1696
1697         * debug-debugger.c: Revert Paolo's change.  Add comment and #error
1698         check at the top of the file.
1699
1700 Sun May 21 12:22:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1701
1702         * debug-debugger.c: fix the build. Again. Hopefully Martin will stop
1703         reverting changes without reason and without changelog entries.
1704
1705 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
1706
1707         * mini-sparc.c (mono_arch_output_basic_block): Add support for large stack offets
1708         to a few opcodes. Fixes #78439.
1709
1710         * mini-sparc.c: Rename mono_sparch_break () to mono_arch_break () to improve
1711         consistency with other archs.
1712
1713         * mini-ia64.c (mono_arch_emit_prolog): Remove debug stuff left in by mistake.
1714
1715 Wed May 17 18:07:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1716
1717         * debug-debugger.c: fix the build.
1718
1719 2006-05-17  Martin Baulig  <martin@ximian.com>
1720
1721         * debug-debugger.c
1722         (debugger_thread_vtable): Moved here from ../metadata/threads.c.
1723         (debugger_init_threads): Formerly known as mono_debugger_init_threads().
1724         (debugger_finalize_threads): Formaly known as mono_debugger_finalize_threads().
1725         (debugger_attach): Call GC_mono_debugger_add_all_threads().
1726
1727 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
1728
1729         * mini.c (mini_init): Call pthread_attr_destroy () to fix a small memory leak.
1730
1731 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
1732
1733         * mini-x86.c (mono_arch_instrument_epilog): Fix handling of 
1734         MONO_TYPE_GENERICINST.
1735         
1736         * mini-amd64.c (mono_arch_instrument_epilog): Fix handling of 
1737         MONO_TYPE_GENERICINST.
1738
1739 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
1740
1741         * mini-x86.c (mono_arch_get_vcall_slot_addr): Add a missing call sequence. Fixes
1742         #78325.
1743
1744 2006-05-08  Zoltan Varga  <vargaz@gmail.com>
1745
1746         * mini.c (mono_create_jump_trampoline): Allocate MonoJitInfo from the domain
1747         mempool.
1748         (mono_jit_free_method): Remove the method from jump_trampoline_hash as well.
1749
1750 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
1751
1752         * mini.c (mini_cleanup): Applied patch from Joachim Ante (joe@otee.dk). Call
1753         mono_trace_cleanup ().
1754
1755         * iltests.il: Fix problem with the newly added test.
1756
1757         * mini-codegen.c (mono_local_regalloc): When changing the dreg of an instruction
1758         due to register constraints, free up the previous hreg. Fixes #78314.
1759
1760         * iltests.il: Add new test for #78314.  
1761
1762         * mini-x86.c (mono_arch_get_inst_for_method): Use OP_ATOMIC_ADD_NEW_I4 for
1763         Interlocked.Add. Fixes #78312.
1764
1765         * mini-amd64.c (mono_arch_get_inst_for_method): Ditto.
1766         
1767 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
1768
1769         * inssel.brg (mini_emit_virtual_call): Fix a warning.
1770
1771 2006-05-05  Martin Baulig  <martin@ximian.com>
1772
1773         * debug-mini.c (mono_debug_open_block): New method.
1774
1775         * mini-amd64.c
1776         (mono_arch_output_basic_block): Call mono_debug_open_block() at
1777         the beginning of each basic block.
1778
1779         * mini-x86.c
1780         (mono_arch_output_basic_block): Call mono_debug_open_block() at
1781         the beginning of each basic block.
1782
1783 2006-05-04  Massimiliano Mantione  <massi@ximian.com>
1784
1785         * driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by
1786         default until I understand why they break the build on amd64.
1787
1788 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
1789
1790         * mini.c (mini_cleanup): Call mono_cleanup ().
1791
1792         * mini.c (UNVERIFIED): New macro to make it easier to track down verification
1793         errors.
1794
1795 2006-05-04  Massimiliano Mantione  <massi@ximian.com>
1796
1797         * aliasing.c: Fixed shameful cut&paste error that caused JIT crashes.
1798         * driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by
1799         default since all known bugs are fixed, and I cannot reproduce bug
1800         77944... I'm asking Matt Hargett to test again after this commit.
1801
1802 2006-04-28  Massimiliano Mantione  <massi@ximian.com>
1803
1804         * mini-codegen.c: Fixed typo that thrashed inline.
1805
1806 2006-04-28  Zoltan Varga  <vargaz@gmail.com>
1807
1808         * dominators.c (compute_dominators): Avoid using a worklist since
1809         it is not correct in some cases. Instead, iterate over all bblocks as
1810         in the original paper. Fixes --compile-all -O=all System.Xml.dll.
1811
1812 2006-04-28  Miguel de Icaza  <miguel@novell.com>
1813
1814         * mini.c (mono_jit_compile_method_inner): Use
1815         mono_prepare_exception_from_error that resets the value
1816         internally.
1817
1818 2006-04-27  Miguel de Icaza  <miguel@novell.com>
1819
1820         * mini.c: Move the mini_loader_error_to_exception to metadata. 
1821         
1822 2006-04-27  Massimiliano Mantione  <massi@ximian.com>
1823
1824         * aliasing.c: Fixed bug 78210.
1825
1826 2006-04-27  Massimiliano Mantione  <massi@ximian.com>
1827
1828         * driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by
1829         default until all their problems (or the ones they trigger) are fixed.
1830
1831 2006-04-26  Zoltan Varga  <vargaz@gmail.com>
1832
1833         * aot-runtime.c (mono_aot_get_method_from_token_inner): Fix the previous patch.
1834         
1835         * aot-runtime.c (mono_aot_get_method_from_token_inner): Mark the method
1836         as loaded only after resolving patches since that could invoke the same method.
1837
1838         * aot-runtime.c (mono_aot_plt_resolve): Fix ppc etc. builds.
1839
1840         * aot-compiler.c: Refactor mono_aot_compile_aot () into a bunch of smaller
1841         functions.
1842
1843         * aot-runtime.c (init_plt): Use a normal trampoline to transfer code to the
1844         AOT loader.
1845
1846         * aot-compiler.c (emit_plt): Pass the plt offset in %eax instead of on the
1847         stack.
1848
1849         * mini-trampolines.c (mono_aot_plt_trampoline): New trampoline to handle calls
1850         made from AOT code through the PLT table.
1851
1852         * mini-x86.h mini-amd64.h: Define MONO_ARCH_AOT_PLT_OFFSET_REG to the register
1853         holding the plt offset when a call is made to the aot plt trampoline.
1854         
1855 2006-04-25  Zoltan Varga  <vargaz@gmail.com>
1856
1857         * aot-runtime.c aot-compiler.c cpu-amd64.md mini-amd64.c: Update parts of the 
1858         amd64 AOT support.
1859
1860         * Makefile.am (common_sources): Fix build breakage.
1861
1862         * aot-runtime.c aot-compiler.c: Reorganize the AOT code yet again: Make all
1863         calls through a jump table similar to the ELF PLT table. Avoid indirect calls for
1864         intra-assembly calls if possible.
1865         
1866         * tramp-*.c: Add new functions for patching/nullifying PLT entries.
1867
1868         * mini-trampolines.c: Handle PLT entries.
1869
1870         * mini.c: Avoid creating a GOT var for calls.
1871
1872         * jit-icalls.c (helper_ldstr_mscorlib): New helper function for loading strings
1873         from mscorlib code.
1874
1875         * jit-icalls.c (helper_newobj_mscorlib): New helper function to create objects
1876         from mscorlib code.
1877
1878         * mini.c (mono_method_to_ir): Use the new helper functions in throw bblocks in
1879         AOT code.       
1880
1881         * mini.h: Bump AOT file format version.
1882         
1883         * mini.c (get_basic_blocks): Fix the calculation of bb->out_of_line so it
1884         covers more cases.
1885
1886 2006-04-25  Martin Baulig  <martin@ximian.com>
1887
1888         * driver.c: Disable copyprop, consprop and inline when running
1889         inside the debugger.
1890
1891 2006-04-25  Martin Baulig  <martin@ximian.com>
1892
1893         * debug-debugger.h (MonoDebuggerInfo): Replaced `get_thread_id'
1894         with `get_current_thread' and added `detach'.
1895         (MonoDebuggerMetadataInfo): Added `thread_size',
1896         `thread_tid_offset', `thread_stack_ptr_offset' and
1897         `thread_end_stack_offset'.
1898
1899 2006-04-25  Zoltan Varga  <vargaz@gmail.com>
1900
1901         * aot.c Makefile.am: Split aot.c into two new files aot-compiler.c and 
1902         aot-runtime.c.
1903
1904         * inssel.brg (mini_emit_load_intf_reg_vtable): Use a new kind of AOT constant
1905         ADJUSTED_IID to avoid the need for adjusting the IID at runtime.
1906
1907         * mini.h (MonoJumpInfoType): Add MONO_PATCH_INFO_ADJUSTED_IID.
1908
1909         * mini.c (mono_resolve_patch_target): Handle ADJUSTED_IID.
1910
1911         * aot.c: Add support for ADJUSTED_IID.  
1912
1913 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1914
1915         * aot.c (emit_method_order): Don't align method_order_end.
1916
1917         * inssel.brg (stmt): Fix interface calls in AOT code which got broken by
1918         the interface ID changes.
1919
1920 2006-04-21  Dick Porter  <dick@ximian.com>
1921
1922         * mini.c (mini_thread_cleanup): Clear the JIT TLS data when
1923         cleaning up a thread.  Fixes the new part of bug 77470.
1924
1925 2006-04-20  Geoff Norton  <gnorton@customerdna.com>
1926
1927         * mini-ppc.c: Call mono_jit_thread_attach when transitioning a native
1928         to managed wrapper.
1929                      
1930 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1931
1932         * mini.h mini.c: Remove mono_type_to_ldind/stind () which are now in marshal.c.
1933         
1934         * mini.c (mono_runtime_install_handlers): Handle SIGABRT similarly to
1935         SIGSEGV. Fixes #78072.
1936
1937         * mini-exceptions.c (mono_handle_native_sigsegv): Add a 'signal' argument,
1938         unregister our SIGABRT handler.
1939
1940 2006-04-19  Massimiliano Mantione  <massi@ximian.com>
1941
1942         * mini.c: Disabled inline where it can alter the call stack in a
1943         way visible from managed code.
1944         * driver.c: enabled inline,consprop,copyprop,treeprop,deadce by
1945         default.
1946
1947 2006-04-16  Zoltan Varga  <vargaz@gmail.com>
1948
1949         * mini-amd64.c (mono_arch_emit_prolog): Attach the thread to the runtime as it is done
1950         on other platforms. Fixes #78089.
1951
1952 2006-04-13  Martin Baulig  <martin@ximian.com>
1953
1954         * driver.c: Also check a `MONO_INSIDE_MDB' environment variable to
1955         determine whether we're inside the debugger.
1956
1957         * debug-debugger.h
1958         (MonoDebuggerMetadataInfo): Added all offsets from `MonoDefaults'.
1959
1960 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1961
1962         * mini.c (mono_method_to_ir): Handle multiple LEAVE statements inside a single
1963         handler clauses. Fixes #78024.
1964
1965         * mini-sparc.c (mono_arch_output_basic_block): Handle large offsets
1966         in the CALL_MEMBASE opcodes. Fixes #78088.
1967         (mono_arch_get_vcall_slot_addr): Ditto.
1968
1969 2006-04-10  Martin Baulig  <martin@ximian.com>
1970
1971         * debug-debugger.c: The thread handling code has now been moved
1972         into ../metadata/threads.c.
1973
1974 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1975
1976         * driver.c (mono_main): Fix --with-gc=none build.
1977
1978         * mini-codegen.c (mono_spillvar_offset): Improve alignment.
1979         (mono_spillvar_offset_float): Ditto.
1980         (mono_local_regalloc): Only do the OP_MOVE optimization if ins->dreg is a local
1981         hreg, not when its !global, since on ia64, there is a third category: stacked
1982         registers.      
1983
1984 Mon Apr 10 14:39:49 CEST 2006 Paolo Molaro <lupus@ximian.com>
1985
1986         * mini.c: set MonoInst->klass for load field address and a few other
1987         places.
1988
1989 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1990
1991         * helpers.c (mono_disassemble_code): Emit debug info on amd64 as well.
1992
1993 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1994
1995         * dominators.c (compute_dominators): Fix yet another bug which surfaced after
1996         the branch opt changes.
1997
1998 2006-04-06  Dick Porter  <dick@ximian.com>
1999
2000         * wapihandles.c (mini_wapi_semdel): Fix parameters in semctl () call.
2001         
2002         * wapihandles.c (mini_wapi_seminfo): 
2003         * driver.c (mono_main): Add semaphore info option
2004
2005 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2006
2007         * dominators.c (compute_dominators): Fix a bug which surfaced after the recent
2008         branch optimization changes. Fixes #78009.
2009
2010 Wed Apr 5 16:40:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
2011
2012         * mini.c: ignore accessibility of methods in managed->native wrappers.
2013
2014 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2015
2016         * mini.c (mini_cleanup): Call print_jit_stats () earlier since it accesses metadata.
2017         
2018         * mini.c (mini_cleanup): Free 'emul_opcode_map' as well.
2019
2020 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2021
2022         * mini.c: Modify the branch optimizations to preserve the invariant that
2023         the entries inside the in_bb and out_bb arrays are unique.
2024         (mono_unlink_bblock): Avoid creation of new arrays.
2025
2026 2006-04-02  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * mini.c (mono_unlink_bblock): Fix regression caused by previous
2029         change (#77992).
2030
2031 2006-04-01  Zoltan Varga  <vargaz@gmail.com>
2032
2033         * mini.c (optimize_branches): Remove the "optimizations" in
2034         the cbranch1/cbranch2 -> branch cases which were causing several
2035         problems in the past. Fixes #77986.
2036
2037 2006-03-31  Chris Toshok  <toshok@ximian.com>
2038
2039         * driver.c (DEFAULT_OPTIMIZATIONS): back out the new set of
2040         default optimizations :(
2041
2042 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2043
2044         * inssel-x86.brg mini-codegen.c mini.c: Merge some changes/fixes from linear-il
2045         branch.
2046
2047 2006-03-31  Massimiliano Mantione  <massi@ximian.com>
2048
2049         * local-propagation.c: Added comments to structs and removed
2050         "Mono" prefixes from local tree mover types.
2051
2052 2006-03-30  Zoltan Varga  <vargaz@gmail.com>
2053
2054         * Makefile.am (arch_sources): Define this for each architecture so 
2055         libmono_la_SOURCES is defined in one place.
2056
2057 Wed Mar 29 20:51:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2058
2059         * driver.c, wapihandles.c, Makefile.am: integrate the io-layer utils
2060         from handles/.
2061
2062 Wed Mar 29 17:16:57 CEST 2006 Paolo Molaro <lupus@ximian.com>
2063
2064         * driver.c: print the GC name supplied by configure.
2065
2066 2006-03-29  Massimiliano Mantione  <massi@ximian.com>
2067
2068         * local-propagation.c: Added tree mover, and moved here all the
2069         local propagation code from mini.c
2070         * mini.c: Added support for treeprop, and moved all the local
2071         propagation code to local-propagation.c
2072         * mini.h: Added support for treeprop
2073         * driver.c: Added support for treeprop, enabled consprop, copyprop,
2074         treeprop, inline and deadce by default
2075         * Makefile.am: Added local-propagation.c
2076
2077 2006-03-25  Zoltan Varga  <vargaz@gmail.com>
2078
2079         * exceptions-sparc.c: Applied patch from David S. Miller  <davem@sunset.davemloft.net>: Implement correct support for sparc/linux.
2080
2081 Fri Mar 24 20:07:19 CET 2006 Paolo Molaro <lupus@ximian.com>
2082
2083         * debug-debugger.c: make it compile without the Boehm GC.
2084
2085 Wed Mar 22 18:25:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2086
2087         * mini.c: fixed issue with mismatch when an icall is registered
2088         with multiple names but same address.
2089
2090 Tue Mar 21 15:59:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2091
2092         * declsec.c, mini-exceptions.c: use write barrier to set reference
2093         fields of managed objects.
2094
2095 2006-03-19  Zoltan Varga  <vargaz@gmail.com>
2096
2097         * mini.c (mono_print_method_from_ip): Recognize JIT trampolines as well.
2098         (can_access_internals): Fix a warning.
2099
2100         * mini.c (print_method_from_ip): Rename this to 
2101         mono_print_method_from_ip so it gets exported.
2102
2103         * trace.c: Deal with strings inside StringBuilder's containing garbage
2104         and fix memory leaks. Fixes #77848.
2105
2106 2006-03-19  Zoltan Varga  <vargaz@gmail.com>
2107
2108         * mini.c (mini_init): Disable the setting of GC_stackbottom on ia64. Hopefully
2109         fixes #77787.
2110
2111 2006-03-16 Neale Ferguson <neale@sinenomine.net>
2112         
2113         * mini-s390.c: Remove OP_X86_TEST_NULL.
2114
2115 Thu Mar 16 17:19:04 CET 2006 Paolo Molaro <lupus@ximian.com>
2116
2117         * mini.c: use the correct GetHashCode() for the moving collector.
2118
2119 2006-03-16  Massimiliano Mantione  <massi@ximian.com>
2120
2121         * liveness.c: Regalloc spill cost tuning.
2122
2123 2006-03-15 Neale Ferguson <neale@sinenomine.net>
2124         
2125         * mini-s390x.h: Correct S390_LONG macro.
2126
2127         * mini-s390x.c: Cleanup unused code.
2128
2129 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2130
2131         * jit-icalls.h: New file.
2132
2133         * Makefile.am mini.c jit-icalls.c: Use a proper include file for the jit
2134         icalls and include that instead of including jit-icalls.c.
2135
2136         * mini-ppc.c (mono_arch_output_basic_block): Remove references to
2137         OP_X86 opcodes.
2138
2139 Tue Mar 14 20:23:53 CET 2006 Paolo Molaro <lupus@ximian.com>
2140
2141         * mini.c: when checking for member accessibility, also check for
2142         friend assemblies and for explicit interface implementations.
2143
2144 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2145
2146         * mini-codegen.c (mono_local_regalloc): Remove incorrect g_free () calls.
2147
2148         * cpu-arm.md cpu-g4.md: Remove x86_ opcodes.
2149
2150         * mini-x86.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so
2151         common cases are done first.    
2152
2153         * mini-ops.h: Only define platform specific opcodes on the given platform.
2154
2155         * mini.h regalloc.h mini-codegen.c: Merge optimizations from the linear-il
2156         branch.
2157         
2158 2006-03-14  Martin Baulig  <martin@ximian.com>
2159
2160         Revert Paolo's change from r57348:
2161
2162         * mini.h: don't use gboolean for bitfields.
2163         * mini.c: verifier changes for fields and methods accessibility.
2164
2165 2006-03-13  Neale Ferguson <neale@sinenomine.net>
2166
2167         * mini-s390.h, mini-s390x.h: Fix calls to mono_call_inst_add_outarg_reg.
2168
2169         * mini-s390x.c: Fix conv_r_un.
2170
2171         * cpu-s390, cpu-s390x.md: Fix lengths.
2172
2173 Sun Mar 12 17:31:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2174
2175         * mini.c: nested types have access to all the nesting
2176         levels, not just the enclosing types.
2177
2178 Sun Mar 12 16:23:11 CET 2006 Paolo Molaro <lupus@ximian.com>
2179
2180         * mini.c: added a few more verification checks.
2181
2182 2006-03-12  Zoltan Varga  <vargaz@gmail.com>
2183
2184         * liveness.c: Merge optimizations from the linear-il branch.
2185
2186 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2187
2188         * mini-ia64.c (emit_call): Add a comment.
2189
2190         * tramp-ia64.c (mono_arch_patch_callsite): Handle indirect calls as well.
2191
2192         * tramp-ia64.c: Fix some warnings.
2193
2194 Sat Mar 11 20:15:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2195
2196         * mini.h: don't use gboolean for bitfields.
2197         * mini.c: verifier changes for fields and methods accessibility.
2198
2199 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2200
2201         * mini.c (mono_icall_get_wrapper): Fix an ia64 bug introduced by the
2202         lazy icall wrapper changes.
2203
2204         * dominators.c: Replace all the dominator algorithms with faster
2205         ones from the linear-il branch.
2206
2207         * inssel-*.brg: Allocate call->out_ireg_args and call->out_freg_args from
2208         the mempool.
2209
2210         * mini-amd64.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so
2211         common cases are done first.
2212
2213         * mini-amd64.c: Fix some warnings.
2214
2215         * mini-codegen.c mini-*.c: Allocate call->out_ireg_args and call->out_freg_args
2216         from the mempool.
2217
2218         * mini.c (mono_jit_compile_method_with_opt): Fix a race in the newly
2219         added code.
2220
2221         * mini.h: Add a missing prototype.
2222
2223 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2224
2225         * mini.c: Compile icall wrappers lazily.
2226
2227         * mini-codegen.c: Use printf instead of g_print since its much faster.
2228
2229         * mini.h (mono_bitset_foreach_bit): Use the faster mono_bitset_find_start ()
2230         function.
2231
2232         * mini.c (optimize_branches): Cache the negative result from 
2233         remove_block_if_useless ().
2234
2235         * mini.c (optimize_branches): Avoid restarting the iteration after each change. 
2236         Also fix some bblock linking issues.
2237
2238         * helpers.c (mono_disassemble_code): Reduce the size of the temporary
2239         assembly files.
2240
2241         * mini.h: Define G_LIKELY/G_UNLIKELY macros for older glib versions.
2242
2243         * mini.h (MonoBasicBlock): Reorganize the fields, putting more frequently
2244         accessed fields first, for better cache behavior.
2245         
2246 Fri Mar 10 18:21:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2247
2248         * mini.c: speedup IList<T> array accesses.
2249
2250 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2251
2252         * mini.c (mono_method_to_ir): Handle large methods overflowing the 
2253         inline_costs counter. Fixes #77190.
2254
2255 2006-03-06  Zoltan Varga  <vargaz@gmail.com>
2256
2257         * mini-exceptions.c: Call mono_trace_is_enabled () before printing
2258         trace messages. Fixes #77706.
2259
2260 2006-03-04  Martin Baulig  <martin@ximian.com>
2261
2262         * tramp-amd64.c, tramp-x86.c
2263         (mono_debugger_create_notification_function): Use
2264         mono_global_codeman_reserve() to allocate a buffer at runtime and
2265         return it.
2266
2267         * debug-debugger.h (MonoDebuggerInfo): Added `initialize'.
2268
2269         * debug-debugger.c (mono_debugger_init): Dynamically allocate the
2270         notification function at runtime and then call `initialize' in the
2271         `MONO_DEBUGGER__debugger_info' vtable.
2272
2273 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2274
2275         * iltests.il: Fix a visibility problem.
2276
2277 Wed Mar 1 15:55:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2278
2279         * driver.c, mini.c: add hooks for the counters API.
2280
2281 Wed Mar 1 12:28:04 CET 2006 Paolo Molaro <lupus@ximian.com>
2282
2283         * driver.c: show disabled options.
2284
2285 Wed Mar 1 12:18:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2286
2287         * linear-scan.c: always use cost-driven selection.
2288
2289 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2290
2291         * jit-icalls.c (helper_compile_generic_method): Revert change from
2292         2006-02-24.
2293
2294 Mon Feb 27 18:58:19 GMT 2006 Paolo Molaro <lupus@ximian.com>
2295
2296         * cpu-arm.md, mini-arm.c: implemented MemoryBarrier.
2297
2298 Sat Feb 25 17:39:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2299
2300         * inssel.brg: style fixes, mostly to force the updated monoburg
2301         to run for people using svn.
2302
2303 Sat Feb 25 17:07:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2304
2305         * mini.c: match monoburg changes.
2306
2307 Sat Feb 25 16:04:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2308
2309         * mini.h, mini.c, abcremoval.c, aliasing.c, liveness.c,
2310         ssapre.c, graph.c, ssa.c: put the mono_burg_arity[]
2311         declaration in the header file.
2312
2313 Sat Feb 25 14:19:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2314
2315         * helpers.c: reduce relocations and mem usage.
2316
2317 Sat Feb 25 11:58:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2318
2319         * mini.h, mini-codegen.c: disable logging features if
2320         requested by configure.
2321
2322 Sat Feb 25 11:54:49 CET 2006 Paolo Molaro <lupus@ximian.com>
2323
2324         * mini.c: tiny verifier changes.
2325
2326 Fri Feb 24 18:17:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2327
2328         * mini-ops.h, inssel-x86.brg, tramp-x86.c, mini-x86.c,
2329         cpu-pentium.md: stack alignment changes for osx/x86,
2330         partially from Geoff Norton <gnorton@customerdna.com>.
2331
2332 2006-02-24  Raja R Harinath  <harinath@gmail.com>
2333
2334         * jit-icalls.c (helper_compile_generic_method): Update to changes
2335         in metadata/class.c.
2336
2337 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2338         
2339         * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add a missing check.
2340         
2341         * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add support for
2342         interface calls with large offsets.
2343
2344 2006-02-23  Raja R Harinath  <rharinath@novell.com>
2345
2346         * jit-icalls.c (helper_compile_generic_method): Document the
2347         special-case we depend on so that we can inflate the method twice
2348         with the same context with no bad side-effects.
2349
2350 Thu Feb 23 13:45:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2351
2352         * mini-x86.c, mini-amd64.c: fix for case when xen support
2353         is disabled.
2354
2355 Wed Feb 22 19:38:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2356
2357         * mini-x86.c, mini-amd64.c: generate code to access tls items
2358         in a faster way for Xen systems.
2359
2360 Wed Feb 22 10:31:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2361
2362         * exceptions-x86.c, mini-x86.h, driver.c, mini-codegen.c:
2363         updates and compilation fixes for the OSX/x86 port, mostly from
2364         Geoff Norton <gnorton@customerdna.com>.
2365
2366 Tue Feb 21 19:56:55 CET 2006 Paolo Molaro <lupus@ximian.com>
2367
2368         * inssel.brg: faster interface call implementation
2369         to sync with the interface_offsets MonoVTable changes.
2370
2371 Mon Feb 20 10:37:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2372
2373         * mini.c: more verification checks.
2374
2375 Fri Feb 17 19:47:29 CET 2006 Paolo Molaro <lupus@ximian.com>
2376
2377         * mini.c: added a few more verification checks.
2378
2379 2006-02-17      Neale Ferguson <neale@sinenomine.net>
2380
2381         * mini-s390x.c, mini-s390x.h: Check for presence of long displacement
2382         facility on the processor and use it if available.
2383
2384 Fri Feb 17 16:12:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2385
2386         * driver.c, aot.c, mini.c: throw exception if the IL code is
2387         invalid or unverifiable.
2388
2389 2006-02-17  Raja R Harinath  <rharinath@novell.com>
2390
2391         * generics.2.cs (test_0_ldfld_stfld_mro): Use m.struct_field, not
2392         m.StructField.
2393
2394 2006-02-16  Zoltan Varga  <vargaz@gmail.com>
2395
2396         * generics.2.cs: Add some tests for generics ldfld/stfld wrappers.
2397
2398 Wed Feb 15 16:23:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2399
2400         * mini-s390x.c, mini-s390.c, mini.c, mini-amd64.c, mini-arm.c,
2401         mini-ia64.c, mini-sparc.c, mini-x86.c, mini-ppc.c: fixed
2402         handling of instantiated generic valuetypes.
2403
2404 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
2405
2406         * mini-exceptions.c mini-x86.h mini-x86.c: Get rid of 
2407         MONO_INIT_CONTEXT_FROM_CALLER, and use MONO_INIT_CONTEXT_FROM_FUNC
2408         instead.
2409
2410         * generics.2.cs: Revert the nullable reftypes tests.
2411
2412 2006-02-10  Zoltan Varga  <vargaz@gmail.com>
2413
2414         * mini-exceptions.c (MONO_INIT_CONTEXT_FROM_CALLER): Avoid
2415         using __builtin_frame_address (1) as it doesn't work in the presence
2416         of optimizations. Hopefully fixes #77273.
2417
2418         * Makefile.am generics.cs generics.2.cs: Revert the generics.2.cs
2419         -> generics.cs change as it doesn't work with some automake versions.
2420
2421 Thu Feb 9 16:24:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2422
2423         * mini.c: handle systems that sue a different way to
2424         retrieve the stack address of the current thread.
2425
2426 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
2427
2428         * Makefile.am generics.2.cs: Rename this to generics.cs and handle
2429         it specially in the makefile.
2430
2431         * generics.2.cs: Add tests for nullable reference types.
2432
2433 Wed Feb 8 19:33:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2434
2435         * mini.c: always handle the case when mono_jit_init()
2436         is called in a thread different from the main thread,
2437         confusing libgc (bug #77309).
2438
2439 Mon Feb 6 09:01:24 EST 2006 Paolo Molaro <lupus@ximian.com>
2440
2441         * mini-ppc.c: fix handling of exceptions in large methods (bug #74932).
2442
2443 Fri Feb 3 18:51:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2444
2445         * mini.c: change optimize_branches () to use a single loop
2446         and introduce a new optimization to simplify some range checks.
2447
2448 2006-02-03  Martin Baulig  <martin@ximian.com>
2449
2450         * debug-debugger.c (debugger_thread_manager_thread_created): Removed
2451         and merged with debugger_thread_manager_add_thread().
2452         (mono_debugger_main): Call debugger_thread_manager_add_thread() to
2453         inform the debugger about the main thread.
2454
2455 2006-02-03  Zoltan Varga  <vargaz@gmail.com>
2456
2457         * basic.cs: Add test for div.un/rem.un constant folding.
2458
2459 2006-02-03  Neale Ferguson <neale@sinenomine.net>
2460
2461         * cpu-s390x.md: correct int_xor_imm length
2462
2463 2006-02-03  Zoltan Varga  <vargaz@gmail.com>
2464
2465         * generics.2.cs: New test for #77442.
2466
2467         * jit-icalls.c (helper_compile_generic_method): Check for null. Fixes
2468         #77442.
2469
2470 2006-02-02  Martin Baulig  <martin@ximian.com>
2471
2472         * tramp-x86.c, tramp-amd64.c: It's now safe to #include
2473         <mono/metadata/mono-debug-debugger.h>   
2474
2475         * debug-mini.c: Don't #define _IN_THE_MONO_DEBUGGER.
2476
2477 2006-02-02  Martin Baulig  <martin@ximian.com>
2478
2479         * debug-debugger.h: New header file for debug-debugger.c.
2480
2481         * debug-debugger.c: Big API cleanup; don't run the managed Main()
2482         function is a separate thread anymore; add support for attaching.
2483
2484 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
2485
2486         * tramp-x86.c: Fix a warning.
2487
2488 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
2489
2490         * mini-amd64.c (mono_arch_compute_omit_fp): Avoid hitting an assertion
2491         on very large methods.
2492
2493         * aot.c (load_patch_info): Fix a warning.
2494
2495 Mon Jan 30 12:51:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2496
2497         * cpu-pentium.md, mini-x86.c, inssel.brg, inssel-x86.brg,
2498         mini-ops.h: alu membase optimizations.
2499
2500 Fri Jan 27 21:11:08 CET 2006 Paolo Molaro <lupus@ximian.com>
2501
2502         * mini-ops.h, mini.c, inssel.brg, inssel-x86.brg: opcode
2503         to speedup StringBuilder.
2504
2505 2006-01-27  Zoltan Varga  <vargaz@gmail.com>
2506
2507         * dominators.c (mono_compute_natural_loops): Fix detection of
2508         loop body start blocks.
2509
2510         * mini-exceptions.c (mono_print_thread_dump): Fix non x86 builds.
2511
2512 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2513
2514         * mini.h mini.c mini-exceptions.c: Add thread dump support. Fixes
2515         #75145.
2516
2517 2006-01-25  Massimiliano Mantione  <massi@ximian.com>
2518
2519         * aliasing.c: Fixed aliasing issue on 64 bit archs.
2520
2521 2006-01-25  Martin Baulig  <martin@ximian.com>
2522
2523         * debug-debugger.c: Moved the `MonoDebuggerManager' and
2524         `MonoDebuggerThread' typedefs here from mono-debug-debugger.h and
2525         started to cleanup this file a little bit.
2526
2527 Tue Jan 24 18:20:48 CET 2006 Paolo Molaro <lupus@ximian.com>
2528
2529         * mini.c: optimize a codepath frequently happening in generics code.
2530
2531 2006-01-23  Martin Baulig  <martin@ximian.com>
2532
2533         * Makefile.am: Only compile debug-debugger.c on supported platforms.
2534
2535         * debug-debugger.c: Kill the IO_LAYER() hack and use the io-layer
2536         functions directly.
2537
2538         * driver.c: debug-debugger.c is only available if
2539         `MONO_DEBUGGER_SUPPORTED' is defined.   
2540
2541 2006-01-23  Martin Baulig  <martin@ximian.com>
2542
2543         * debug-debugger.c: Only enable this on platforms where the Mono
2544         Debugger is working (x86 and x86_64).
2545
2546 2006-01-21  Martin Baulig  <martin@ximian.com>
2547
2548         The Mono Debugger is now using the normal `mono' instead of the
2549         `mono-debugger-mini-wrapper' when executing managed code.
2550
2551         * debug-debugger.c: New file; previously known as
2552         debugger/wrapper/wrapper.c.
2553
2554         * debug-mini.c (mono_init_debugger): Removed.
2555
2556         * driver.c (mono_main): Added new `--inside-mdb' command line
2557         argument which is used when running inside the debugger.
2558
2559 2006-01-20  Zoltan Varga  <vargaz@gmail.com>
2560
2561         * liveness.c (mono_analyze_liveness): Remove some unused data
2562         structures.
2563
2564 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2565
2566         * mini.h: Move mono_bitset_test_fast macro to monobitset.h where it belongs.
2567
2568 2006-01-16  Zoltan Varga  <vargaz@gmail.com>
2569
2570         * mini.h (mono_bitset_test_fast): Disable the 'fast' implementation which
2571         depends on implementation details of monobitset.
2572
2573         * mini.c (mini_get_ldelema_ins): Fix handling of 1 dimensional arrays.
2574         Fixes #77271.
2575
2576 2006-01-15  Zoltan Varga  <vargaz@gmail.com>
2577
2578         * liveness.c: Update after monobitset changes.
2579
2580 2006-01-14  Zoltan Varga  <vargaz@gmail.com>
2581
2582         * mini-amd64.c (mono_arch_compute_omit_fp): Fix a leak.
2583
2584 2006-01-11 Neale Ferguson <neale@sinenomine.net>
2585
2586         * inssel-s390x.brg: Fix reg: OP_LDADDR(OP_S390_LOADARG) register setting.
2587
2588         * mini-s390x.c: Remove warning messages.
2589
2590 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2591
2592         * mini.c: pass the jitinfo to mono_profiler_method_end_jit.
2593
2594 2006-01-10  Zoltan Varga  <vargaz@gmail.com>
2595
2596         * generics.2.cs: Add ldelem/stelem_any test.
2597
2598 2006-01-10 Neale Ferguson <neale@sinenomine.net>
2599
2600         * mini-s390.c: Fix ATOMIC_ADD_I4 operation.
2601
2602 2006-01-07  Zoltan Varga  <vargaz@gmail.com>
2603
2604         * inssel-long.brg: Fix int->long ovf conversion rules. Fixes #77172.
2605         
2606 2006-01-06  Zoltan Varga  <vargaz@gmail.com>
2607
2608         * generics.2.cs: Reenable vtype tests.
2609
2610         * inssel-x86.brg: Remove an icorrect valuetype rule.
2611
2612 2006-01-06 Neale Ferguson <neale@sinenomine.net>
2613
2614         * mini-s390x.c, inssel-s390x.brg, cpu-s390x.md: Fix ATOMIC_I8 operations. Provide
2615         initial support for OP_ABS.
2616
2617 2006-01-05 Neale Ferguson <neale@sinenomine.net>
2618
2619         * mini-s390x.c (emit_float_to_int): Correct r8 to unsigned int algorithm.
2620
2621 2006-01-05 Neale Ferguson <neale@sinenomine.net>
2622
2623         * mini-s390.c, mini-s390.h, inssel-s390.brg, cpu-s390.md: Fix r8 to unsigned int 
2624         conversion and implement LADD/LSUB.
2625
2626         * exceptions-s390.c: Standardize mono_arch_find_jit_info to match other
2627         architectures.
2628
2629 2006-01-05 Neale Ferguson <neale@sinenomine.net>
2630
2631         * mini-s390x.c, mini-s390x.h: Fix r8 to unsigned int conversion.
2632
2633         * exceptions-s390x.c: Standardize mono_arch_find_jit_info to match other
2634         architectures.
2635
2636 2006-01-05 Neale Ferguson <neale@sinenomine.net>
2637
2638         * mini-s390x.c, mini-s390x.h, mini-s390.c, mini-s390.h: Fix lmf handling when 
2639         localloc is encountered.  Fixes crash in test-183.cs when using gmcs 
2640         (stack walk problem).
2641
2642 2006-01-04  Zoltan Varga  <vargaz@gmail.com>
2643
2644         * aot.c (mono_aot_load_method): Fix a warning.
2645
2646 2006-01-03  Neale Ferguson <neale@sinenomine.net>
2647
2648         * mini-s390x.h, exceptions-s390x.c, inssel-s390x.brg: Fix compiler warnings
2649
2650 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2651
2652         * iltests.il: Add test for #77148.
2653
2654         * mini.c (mini_get_ldelema_ins): Handle arrays with rank 1 too. Fixes
2655         #77148.
2656
2657 2006-01-03  Neale Ferguson <neale@sinenomine.net>
2658
2659         * mini-s390x.c, inssel-s390x.brg: Remove debug statements
2660
2661 2006-01-03  Neale Ferguson <neale@sinenomine.net>
2662
2663         * mini-s390x.c, mini-s390x.h, exceptions-s390x.c, tramp-s390x.c, inssel-s390x.brg,
2664         cpu-s390x.md, mini-codegen.c, Makefile.am: add 64-bit s390 support to JIT.
2665
2666         * basic-long.cs: Add lconv-to-r4/r8 tests.
2667
2668 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2669
2670         * mini.c (mono_method_to_ir): Fix DynamicMethod support in some opcodes.
2671
2672         * mini-sparc.c (mono_arch_call_opcode): Use mono_class_value_size ()
2673         here as on other archs.
2674
2675 2005-12-29 Neale Ferguson <neale@sinenomine.net>
2676
2677         * mini-s390.c (mono_arch_get_inst_for_method): Add memory_barrier support.
2678
2679 2005-12-29 Neale Ferguson <neale@sinenomine.net>
2680
2681         * inssel-s390.brg: Correct register assignment; Rework L[ADD|SUB]_OVF[_UN] for s390.
2682         
2683         * cpu-s390.md: Fix lengths of a couple of long instructions; Add memory_barrier.
2684
2685         * mini-s390.c: Fix long add/sub overflow instructions; Fix displacement handling in
2686         instrument_prolog; Add memory_barrier instruction.
2687
2688 2005-12-26  Zoltan Varga  <vargaz@gmail.com>
2689
2690         * exceptions-x86.c mini-x86.h: Fix solaris/x86 exception handling.
2691
2692 2005-12-23  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * tramp-ia64.c (mono_arch_get_unbox_trampoline): Flush icache.
2695
2696         * aliasing.c inssel.brg: Fix warnings.
2697
2698         * inssel-ia64.brg (OP_MEMSET): Fix an optimization which previously
2699         could skip initialization of some parts of memory.
2700
2701         * mini.c mini-ia64.c: Fix warnings.
2702
2703         * inssel-sparc.brg: Add an implementation of lneg which actually works.
2704
2705 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2706
2707         * aliasing.c (mono_build_aliasing_information): Add a workaround for
2708         a crash seen on sparc.
2709
2710         * mini-sparc.c: Add implementation of Thread.MemoryBarrier.
2711         
2712         * cpu-sparc.md: Add memory_barrier opcode. Remove unused opcodes.
2713
2714 2005-12-21 Neale Ferguson <neale@sinenomine.net>
2715
2716         * mini-ops.h: Add s390_backchain instruction
2717
2718         * inssel-s390.brg: Use backchaining instruction for LOADARG/STKARG operations.
2719
2720         * cpu-s390.md: Add s390_backchain instruction
2721
2722         * mini-s390.c: Significant ABI changes
2723
2724         * mini-s390.h: Cater for zero length structures
2725
2726 2005-12-20 Neale Ferguson <neale@sinenomine.net>
2727
2728         * mini-s390.c: ABI fixes
2729
2730         * inssel-s390.brg: Remove debug statements
2731
2732         * cpu-s390.md: Fix length of ATOMIC_xx operations
2733
2734 2005-12-19  Zoltan Varga  <vargaz@gmail.com>
2735
2736         * basic-float.cs: Add float<->long conversion tests.
2737
2738 2005-12-16 Neale Ferguson <neale@sinenomine.net>
2739
2740         * mini-s390.c: Fix LOCALLOC processing.
2741
2742         * tramp-s390.c (s390_magic_trampoline): Fix base calculation.
2743
2744 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2745
2746         * iltests.il: Add tests for some opcodes not covered by the other
2747         tests.
2748
2749 2005-12-15 Neale Ferguson <neale@sinenomine.net>
2750
2751         * mini-s390.c: Fix ADDCC/SBB bug revealed by test_0_ulong_regress; Correct 
2752         register loading for Tail processing; Correct trace output.
2753
2754         * inssel-s390.brg: Reimplement LSUB_OVF due to s390 implementation of signed math.
2755
2756         * cpu-s390.md: Correct size of jmp instruction. 
2757
2758 2005-12-13 Neale Ferguson <neale@sinenomine.net>
2759
2760         * mini-s390.c (mono_arch_emit_prolog): Remove some debugging bits.
2761
2762 2005-12-13 Neale Ferguson <neale@sinenomine.net>
2763
2764         * inssel-s390.brg tramp-s390.c cpu-s390.md mini-s390.c mini-s390.h:
2765           Bring s390 up to current level.
2766
2767 2005-12-12  Zltan Varga  <vargaz@gmail.com>
2768
2769         * generics.2.cs: Disable the newly added tests as they do not work yet.
2770         
2771         * generics.2.cs: Add valuetype tests.
2772
2773 2005-12-09  Zoltan Varga  <vargaz@gmail.com>
2774
2775         * basic-long.cs: Add i4->u8 test.
2776
2777         * objects.cs: Add tests for JIT intrinsic.
2778
2779         * mini.c (mini_get_inst_for_method): Resurrect the array Rank/Length
2780         optimizations lost by a mistake.
2781
2782 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2783
2784         * basic-long.cs: Remove a test moved to objects.cs.
2785
2786         * arrays.cs: Add more array tests.
2787
2788 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2789
2790         * arrays.cs: Add new tests for multi-dimensional arrays.
2791
2792 2005-12-06  Raja R Harinath  <rharinath@novell.com>
2793
2794         * Makefile.am (test_sources2): Add generics.2.cs.
2795         (EXTRA_DIST): Add test_sources2.
2796
2797 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2798
2799         Support for boxing and unboxing nullable types as well as the
2800         isinst operation on nullables, per the CLI ammendment.
2801
2802         * inssel.brg (CEE_ISINST): Special case for nullable
2803
2804         * mini.c (handle_unbox_nullable): new method
2805         (handle_box): Special case for nullable types
2806         (mono_method_to_ir): Call handle_unbox_nullable in correct
2807         places.
2808
2809         * generics.2.cs: New test suite
2810
2811         * Makefile.am: Support for regression tests with generics.
2812
2813 2005-12-03  Zoltan Varga  <vargaz@gmail.com>
2814
2815         * mini-amd64.c (emit_load_volatile_arguments): Add loading of arguments
2816         allocated to registers. Fixes #76800.
2817
2818 Thu Dec 1 12:59:40 EST 2005 Paolo Molaro <lupus@ximian.com>
2819
2820         * mini-ppc.c, inssel-ppc.brg: fix ABI issue (pinvoke3.cs).
2821
2822 2005-11-30  Zoltan Varga  <vargaz@gmail.com>
2823
2824         * exceptions.cs: Disable test_0_long_cast () test, since it fails on a lot 
2825         of platforms.
2826
2827 2005-11-29  Zoltan Varga  <vargaz@gmail.com>
2828
2829         * objects.cs basic-calls.cs: Move a test depending on valuetypes to
2830         objects.cs.
2831
2832         * inssel-long32.brg (CEE_CONV_I8): Remove unused labels.
2833         
2834         * inssel-long32.brg (CEE_CONV_I8): Convert this to a branchless version.
2835 Tue Nov 29 05:41:34 EST 2005 Paolo Molaro <lupus@ximian.com>
2836
2837         * mini-ppc.c, cpu-g4.md: ensure a fp register is converted to
2838         single precision before storing to a single precision location.
2839
2840 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2841
2842         * Makefile.am (ILASM): Use profile-dependent location of ilasm.
2843
2844 2005-11-27  Zoltan Varga  <vargaz@gmail.com>
2845
2846         * basic-long.cs basic-calls.cs objects.cs: Move some tests to the
2847         correct files.
2848
2849         * basic.cs: Remove test_0_byte_compares test which was moved to
2850         objects.cs a long time ago.
2851
2852 2005-11-22  Massimiliano Mantione  <massi@ximian.com>
2853
2854         * aliasing.c: Fixed aliasing issue on 64 bit archs.
2855
2856 2005-11-20  Zoltan Varga  <vargaz@gmail.com>
2857
2858         * mini-ia64.c exceptions-ia64.c: Simplify the way filters/finally
2859         handlers are called.
2860
2861         * mini-ia64.c (mono_arch_emit_exceptions): Optimize size of exception
2862         throwing code.
2863
2864          * mini-ia64.c: Add support for the throw->branch exception 
2865         optimization.   
2866
2867         * driver.c (DEFAULT_OPTIMIZATIONS): Add MONO_OPT_EXCEPTION.
2868
2869 2005-11-18  Massimiliano Mantione  <massi@ximian.com>
2870
2871         * mini.c: Enabled "fastpath" deadce :-)
2872         
2873 2005-11-18  Massimiliano Mantione  <massi@ximian.com>
2874
2875         * mini.c: Added "fastpath" deadce (deadce without SSA), and a simple
2876         alias analysis pass to support it.
2877         * mini.h: Likewise.
2878         * ssa.c: Likewise.
2879         * liveness.c: Likewise (liveness computation can use aliasing
2880         information to be more accurate).
2881         * driver.c: Added an "ssa" option go tell the JIT to use SSA, and
2882         moreover made so that "--compile-all" uses the given optimization
2883         flags and not the default ones.
2884         * aliasing.c: Alias analysis (new file).
2885         * aliasing.h: Likewise.
2886         * Makefile.am: added "aliasing.c" and "aliasing.h".
2887         
2888 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2889
2890         * mini-ops.h: Add missing OP_I opcodes so it is in synch with the
2891         OP_L opcodes.
2892
2893 2005-11-13  Zoltan Varga  <vargaz@gmail.com>
2894
2895         * mini-exceptions.c (mono_handle_exception_internal): Remove the 
2896         fp >= end_of_stack exit condition, as it is not needed, and it might
2897         become true for fp eliminated frames.
2898
2899 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2900
2901         * mini-x86.c (mono_arch_emit_epilog): Use G_STRUCT_OFFSET instead of hard
2902         coded offsets.
2903
2904 Tue Nov 8 11:28:20 GMT 2005 Paolo Molaro <lupus@ximian.com>
2905
2906         * mini-arm.c: fixed alignment of doubles/longs to match
2907         the C ABI (bug #76635).
2908
2909 Mon Nov 7 16:13:21 CET 2005 Paolo Molaro <lupus@ximian.com>
2910
2911         * aot.c: fix compilation with --enable-minimal=aot.
2912
2913 Fri Nov 4 12:34:15 GMT 2005 Paolo Molaro <lupus@ximian.com>
2914
2915         * mini-arm.c: fixed compatibility with the new
2916         floating point emulator package for compares.
2917
2918 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com?
2919
2920         * mini.c : reverted sig->pinvoke changes (r51396-51397).
2921
2922 2005-11-01  Zoltan Varga  <vargaz@freemail.hu>
2923
2924         * mini-exceptions.c (print_stack_frame): Output to stderr.
2925         (mono_handle_native_sigsegv): Ditto.
2926
2927 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2928
2929         * mini-amd64.c (mono_arch_output_basic_block): Remove unused
2930         OP_LCONV_TO_OVF_I implementation.
2931
2932         * mini-amd64.c: Add support for the throw->branch exception 
2933         optimization.
2934
2935         * branch-opts.c (mono_branch_optimize_exception_target): Allow the case
2936         when the catch clause catches a more general exception, i.e. Object.
2937
2938 2005-10-30  Zoltan Varga  <vargaz@gmail.com>
2939
2940         * cpu-ia64.md: Remove unused opcodes.
2941
2942         * mini.c (GET_CONTEXT): Simplify this somewhat by removing arch
2943         specific defines for architectures defining USE_SIGACTION.
2944
2945         * mini-ia64.c: Fix some warnings.
2946
2947         * exceptions-ia64.c (mono_arch_ip_from_context): Fix this, the previous
2948         version seemed to skip a frame.
2949
2950 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2951
2952         * mini.c: Clean up the usage of sig->pinvoke flag. Now
2953         only calls which are made to native code use this flag.
2954
2955 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2956
2957         * mini-amd64.c (mono_arch_compute_omit_fp): Disable fp elimination for
2958         varargs methods as well.
2959         
2960         * mini-amd64.c exceptions-amd64.c: Allow fp elimination in methods
2961         which have save_lmf set. Reorganize methods prologs a bit.
2962
2963         * mini-amd64.c (mono_arch_compute_omit_fp): Move the check for the
2964         debugger to the proper place.
2965
2966 2005-10-29  Martin Baulig  <martin@ximian.com>
2967
2968         * mini-amd64.c (debug_omit_fp): Temporarily disable fp elimination
2969         when running inside the debugger until the debugger has support
2970         for it.
2971
2972 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2973
2974         * mini.h: Fix a warning.
2975
2976 2005-10-24  Miguel de Icaza  <miguel@novell.com>
2977
2978         * mini.c (mono_pmip): Just a wrapper for get_method_from_ip which
2979         we expose publicly, this returns the string.
2980
2981 2005-10-22  Zoltan Varga  <vargaz@freemail.hu>
2982
2983         * exceptions-amd64.c (mono_arch_find_jit_info): Fix some corner cases
2984         with fp elimination.
2985
2986 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2987
2988         * mini-exceptions.c (mono_handle_native_sigsegv): Try to print a
2989         native stacktrace using the glibc 'backtrace' function if available.
2990
2991 2005-10-20  Zoltan Varga  <vargaz@gmail.com>
2992
2993         * mini.h (MonoDebugOptions): Remove 'abort_on_sigsegv' option.
2994
2995         * mini-exceptions.c (mono_handle_native_sigsegv): New function to 
2996         handle SIGSEGVs received while in native code.
2997
2998         * mini.c (sigsegv_signal_handler): If the SIGSEGV happened in native
2999         code, call mono_handle_native_sigsegv which will abort the runtime
3000         after printing some diagnostics, instead of converting it into a
3001         confusing NullReferenceException.
3002
3003 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
3004
3005         * cpu-pentium.md: Remove unused opcodes.
3006
3007 2005-10-18  Zoltan Varga  <vargaz@freemail.hu>
3008
3009         * mini-amd64.h (MonoLMF): Add rsp field.
3010
3011         * mini-amd64.c exceptions-amd64.c tramp-amd64.c: Save the sp reg into
3012         the lmf too.
3013
3014 2005-10-17  Zoltan Varga  <vargaz@gmail.com>
3015
3016         * mini-codegen.c (get_register_spilling): Fix some warnings.
3017
3018 2005-10-16  Zoltan Varga  <vargaz@freemail.hu>
3019
3020         * mini-amd64.h mini-amd64.c exceptions-amd64.c: Add support for fp
3021         elimination during exception handling. Enable fp elimination by
3022         default.
3023
3024         * mini-amd64.h mini-amd64.c: Add preliminary support for frame pointer
3025         elimination.
3026
3027 2005-10-16  Martin Baulig  <martin@ximian.com>
3028
3029         * mini-exceptions.c
3030         (mono_debugger_run_finally): New public method for the debugger.
3031
3032 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
3033
3034         * debug-mini.c (mono_debug_init_method): Fix warning.
3035
3036         * mini.h branch-opts.c (mono_branch_optimize_exception_target): Make
3037         the 'exname' parameter const to fix some warnings.
3038
3039 2005-10-09  Zoltan Varga  <vargaz@freemail.hu>
3040
3041         * mini-exceptions.c (mono_handle_exception_internal): Fix another bug
3042         introduced by the previous patch.
3043
3044 2005-10-08  Zoltan Varga  <vargaz@gmail.com>
3045
3046         * basic-float.cs: Add test for precision of float arithmetic.
3047
3048         * mini-ia64.c (mono_arch_output_basic_block): Convert to/from doubles
3049         when loading/storing single values from/to memory.
3050
3051         * mini.c (mono_jit_compile_method_with_opt): Create the function
3052         pointers in the correct domain.
3053
3054 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3055
3056         * mini-exceptions.c (mono_handle_exception_internal): Fix bug 
3057         introduced by previous patch.
3058         
3059         * mini-exceptions.c (mono_handle_exception_internal): Handle the case
3060         when out_filter_idx is NULL.
3061
3062         * mini-exceptions.c: Don't run filter clauses twice during exception
3063         handling. Fixes #75755.
3064
3065 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
3066
3067         * aot.c: Add support for ldflda wrappers.
3068
3069         * mini.c (mono_method_to_ir): Use ldflda wrappers for CEE_LDFLDA. Fixes
3070         #75902.
3071
3072 Tue Oct 4 20:23:25 CEST 2005 Paolo Molaro <lupus@ximian.com>
3073
3074         * mini.c, mini.h: do not consider exception handlers blocks when
3075         setting up interface variables.
3076
3077 2005-10-04  Zoltan Varga  <vargaz@freemail.hu>
3078
3079         * aot.c (emit_section_change): Fix emitting of sections on win32. Fixes #76322.
3080
3081 2005-10-03  Zoltan Varga  <vargaz@gmail.com>
3082
3083         * liveness.c (mono_analyze_liveness): Revert parts of r51051 since it
3084         causes a regression.
3085
3086         * mini.c (mini_thread_cleanup): Fix reading of freed memory.
3087
3088 2005-10-02  Zoltan Varga  <vargaz@freemail.hu>
3089
3090         * mini.h (OP_PCONST): Move the definition of OP_PCONST into the rest
3091         of the OP_P definitions.
3092
3093         * TODO: Add a proposal for dealing with the CEE/OP mess.
3094
3095         * mini-amd64.c (mono_arch_output_basic_block): Merge mul_imm 
3096         optimizations from the x86 port.
3097
3098         * cpu-amd64.md: Ditto.
3099
3100         * basic.cs basic-long.cs: Add tests.
3101
3102 Fri Sep 30 20:07:20 CEST 2005 Paolo Molaro <lupus@ximian.com>
3103
3104         * Makefile.am, driver.c, mini-x86.c, mini.c, mini.h, branch-opts.c:
3105         Patrik Torstensson's implementation of my exception-handling
3106         optimization idea, when the exception object is not used
3107         (bug #62150).
3108
3109 Fri Sep 30 19:10:29 CEST 2005 Paolo Molaro <lupus@ximian.com>
3110
3111         * mini-x86.c, cpu-pentium.md: Patrik Torstensson's port
3112         of the mul_imm optimizations from the old jit.
3113
3114 Fri Sep 30 11:37:51 EDT 2005 Paolo Molaro <lupus@ximian.com>
3115
3116         * mini.c, liveness.c: patch by Patrik Torstensson and
3117         Zoltan Varga to improve performance in methods with
3118         exception clauses.
3119
3120 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
3121
3122         * driver.c: Remove 'Globalization' entry from --version.
3123
3124 2005-09-28  Zoltan Varga  <vargaz@gmail.com>
3125
3126         * mini.c (mono_jit_compile_method_inner): Do not load AOT code when
3127         there is a profiler interested in JIT events.
3128
3129         * aot.c: Load profile files produced by the AOT profiling module, and
3130         reorder methods based on the profiling info. Add a 'method_order' table
3131         to the AOT file to make mono_aot_find_jit_info work with the reordered
3132         methods.
3133
3134         * mini.h: Bump AOT file version info.
3135
3136 Wed Sep 28 17:12:48 CEST 2005 Paolo Molaro <lupus@ximian.com>
3137
3138         * mini-arm.h: work around what looks like a gcc bug when optimizations
3139         are enabled.
3140
3141 2005-09-28  Raja R Harinath  <rharinath@novell.com>
3142
3143         * Makefile.am (AM_CFLAGS): Don't use += to append inside
3144         conditionals.  Use ...
3145         (PLATFORM_CFLAGS, ARCH_CFLAGS): ... these.
3146
3147 2005-09-27  Zoltan Varga  <vargaz@freemail.hu>
3148
3149         * mini-amd64.c (mono_arch_call_opcode): Use mono_class_value_size ()
3150         to determine the amount of memory to copy when passing valuetypes.
3151
3152         * inssel-amd64.brg: Remove PUSH(LDIND4) rules since they convert an
3153         4 byte load into a 8 byte load. Fix aligning of size in OP_OUTARG_VT.
3154
3155 2005-09-27  Zoltan Varga  <vargaz@gmail.com>
3156
3157         * mini.h mini.c aot.c: Add infrastructure to collect pagefault 
3158         information about aot.
3159
3160 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
3161
3162         * *.c: Replace the use of {Enter,Leave}CriticalSection with
3163         macros. This will allow a deadlock debugger to easily be plugged
3164         in.
3165
3166 Tue Sep 27 09:32:11 EDT 2005 Paolo Molaro <lupus@ximian.com>
3167
3168         * mini-ppc.c, cpu-g4.md: added memory barrier instruction.
3169
3170 2005-09-27  Raja R Harinath  <rharinath@novell.com>
3171
3172         * Makefile.am (AM_CFLAGS): Rename from INCLUDES.
3173         (AM_CFLAGS) [PLATFORM_WIN32): Append to it, don't set it.
3174         (AM_CFLAGS) [ARM]: Add arch/arm directory from the build tree.
3175         ($(arch_built)) [CROSS_COMPILING]: Error out.
3176
3177 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
3178
3179         * aot.c: Add support for the no_special_static flag for classes.
3180
3181 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
3182
3183         * Reapply reverted patches.
3184
3185         * *: Revert r50174 as well.
3186
3187         * mini-amd64.c cpu-amd64.md inssel-amd64.brg: Revert r50170 as well.
3188
3189 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
3190
3191         * mini-amd64.c: Revert r50342 to see if this fixed buildbot.
3192
3193 2005-09-23  Miguel de Icaza  <miguel@novell.com>
3194
3195         * mini.c (SIG_HANDLER_SIGNATURE): Only dereference info if it is
3196         part of the SIG_HANDLER_SIGNATURE.  
3197
3198 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3199
3200         * mini.h mini.c: Add a new MONO_DEBUG option to collect metadata pagefault
3201         statistics.
3202
3203         * mini-x86.c (mono_arch_call_opcode): Fix vararg calling convention 
3204         introduced by previous patch.
3205
3206 2005-09-21  Zoltan Varga  <vargaz@gmail.com>
3207
3208         * tramp-x86.c (mono_arch_create_trampoline_code): Restore caller
3209         saved registers too.
3210
3211         * mini-x86.c (mono_arch_allocate_vars): Rewrite this so it works based 
3212         upon the information returned by get_call_info ().
3213         
3214         * mini-x86.c (add_float): Fix stack size calculation.
3215         (mono_arch_call_opcode): Rewrite this so it works based up the
3216         information returned by get_call_info ().
3217         (mono_arch_get_this_vret_args): Ditto.
3218
3219 2005-09-21  Zoltan Varga  <vargaz@freemail.hu>
3220
3221         * mini-amd64.c (mono_arch_emit_this_vret_args): Use the information
3222         in cinfo to determine the registers which need to be used.
3223
3224 2005-09-20  Miguel de Icaza  <miguel@novell.com>
3225
3226         * driver.c (mono_main): Add --server and --desktop flags. 
3227
3228 2005-09-16  Zoltan Varga  <vargaz@gmail.com>
3229
3230         * mini-ia64.h: Make register masks 64 bit. Don't treat argument
3231         registers as global registers.
3232
3233         * inssel-ia64.brg (stmt): Remove OP_OUTARG_REG () rules which are no 
3234         longer needed with the new register allocator.
3235
3236         * mini-ia64.c: Use OP_MOVE instead of OP_SETREG for reg-reg moves.
3237
3238         * cpu-ia64.md: Remove unused opcodes.
3239         
3240         * regalloc.c mini-codegen.c: Make register masks 64 bit on ia64.
3241         
3242 2005-09-16  Zoltan Varga  <vargaz@freemail.hu>
3243
3244         * cpu-amd64.md: Remove unused opcodes.
3245
3246         * inssel-amd64.brg: Remove OP_OUTARG_REG () rules which are no longer
3247         needed with the new register allocator.
3248
3249         * inssel-amd64.brg mini-amd64.c: Use OP_MOVE instead of OP_SETREG for
3250         reg-reg moves.
3251
3252 2005-09-16  Raja R Harinath  <rharinath@novell.com>
3253
3254         * Makefile.am (check-local): Don't invoke semdel-wrapper.
3255
3256 2005-09-16  Martin Baulig  <martin@ximian.com>
3257
3258         * exceptions-amd64.c
3259         (throw_exception): Don't call mono_debugger_throw_exception() if
3260         we're a rethrow - see the FIXME in the code.
3261
3262 2005-09-15  Geoff Norton  <gnorton@customerdna.com>
3263
3264         * mini.c (mono_init_exceptions): This only works on some architectures.
3265         
3266 2005-09-15  Zoltan Varga  <vargaz@gmail.com>
3267
3268         * mini.c (mono_method_to_ir): Add OP_LMUL imm -> OP_LMUL_IMM conversion
3269         on ia64.
3270
3271         * inssel-long.brg mini-ia64.c: Add OP_LMUL_IMM rules.
3272
3273         * mini-ia64.h mini-ia64.c: Remove the altstack support code which is
3274         now in mini-exceptions.c.
3275
3276 2005-09-15  Zoltan Varga  <vargaz@freemail.hu>
3277
3278         * mini-amd64.h mini-am64.c: Remove the altstack support code which is
3279         now in mini-exceptions.c.
3280
3281 2005-09-15  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * exceptions-x86.c: Applied patch from Patrik Torstensson 
3284         <patrik.torstensson@gmail.com>. Add stack overflow handling support for win32.
3285
3286         * mini-exceptions.c mini-x86.c mini.c: Move the altstack setup/teardown
3287         code into mini-exceptions.c. Add some assertions to it.
3288
3289 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3290
3291         * aot.c (emit_section_change): Applied patch from "The Software Team" 
3292         (<software@solmersa.com>). Fix as errors on windows.
3293
3294 2005-09-11  Zoltan Varga  <vargaz@freemail.hu>
3295
3296         * tramp-amd64.c (mono_arch_create_trampoline_code): Fix saving of
3297         method info into the LMF.
3298
3299 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3300         
3301         * mini-ia64.c: Add proper unwind info for method epilogs.
3302
3303         * exceptions-ia64.c: Add some code to help debugging.
3304         
3305         * mini-ia64.c mini-ia64.h: Add sigaltstack support.
3306
3307         * mini-exceptions.c: Fix warning.
3308
3309 2005-09-11  Zoltan Varga  <vargaz@freemail.hu>
3310
3311         * mini.c: Really fix build.
3312
3313         * mini-x86.c mini-amd64.c: Fix build.
3314
3315 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3316
3317         * mini-ia64.c inssel-ia64.brg: Add InterlockedExchange instrinsics.
3318
3319         * mini-ops.h cpu-ia64.md inssel-ia64.brg mini-ia64.c: Implement
3320         some Interlocked methods as intrinsics.
3321
3322         * mini.c (mini_get_inst_for_method): Call arch_get_inst_for_method
3323         for Thread methods as well.
3324
3325         * mini-ops.h: Add OP_MEMORY_BARRIER opcode.
3326
3327         * inssel.brg: Add rule for OP_MEMORY_BARRIER.
3328
3329         * mini-ia64.c mini-x86.c mini-amd64.c 
3330         cpu-ia64.md cpu-pentium.md cpu-amd64.md: Add implementation of 
3331         OP_MEMORY_BARRIER.
3332         
3333         * mini.c (mono_init_exceptions): Fix build breakage.
3334
3335 2005-09-10  Zoltan Varga  <vargaz@gmail.com>
3336
3337         * mini-ia64.c exceptions-ia64.c tramp-ia64.c: Remove 'manual' emitting
3338         of instructions. Use the new ia64_unw_op macros for emitting unwind
3339         info.
3340
3341         * mini.c (mono_init_exceptions): Initialize exception handling
3342         related trampolines at startup.
3343
3344 Fri Sep 9 19:30:37 BST 2005 Paolo Molaro <lupus@ximian.com>
3345
3346         * cpu-arm.md, mini-arm.c: fix for dynamic code (Gtk# apps).
3347
3348 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3349
3350         * mini.c: Handle type loading errors gracefully during compilation and
3351         throw the appropriate exception.
3352
3353 Fri Sep 9 09:49:14 CEST 2005 Paolo Molaro <lupus@ximian.com>
3354
3355         * ldscript.mono, Makefile.am: use anonymous versions in the ldscript
3356         for the mono binary.
3357
3358 2005-09-09  Martin Baulig  <martin@ximian.com>
3359
3360         * mini.c (mono_method_to_ir): Comment out the G_BREAKPOINT()'s for
3361         the release.
3362
3363 Thu Sep 8 14:53:45 BST 2005 Paolo Molaro <lupus@ximian.com>
3364
3365         * mini-arm.h: use emulation for conv.r.un for the release.
3366
3367 Thu Sep 8 11:28:45 BST 2005 Paolo Molaro <lupus@ximian.com>
3368
3369         * mini-arm.c, objects.cs: more fixes and tests for them.
3370
3371 Wed Sep 7 17:14:26 BST 2005 Paolo Molaro <lupus@ximian.com>
3372
3373         * mini-arm.c: align structures to at least 4 bytes to be able
3374         to keep our current optimized memcpy.
3375
3376 Tue Sep 6 22:51:08 BST 2005 Paolo Molaro <lupus@ximian.com>
3377
3378         * mini-arm.c, cpu-arm.md, inssel-arm.brg: bugfixes.
3379
3380 2005-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3381
3382         * mini.c: ignore SIGPIPE.
3383
3384 2005-09-04  Zoltan Varga  <vargaz@gmail.com>
3385
3386         * mini-ia64.c (mono_arch_lowering_pass): Convert 'and_imm 255' to zext1.
3387
3388         * mini-ia64.h mini-ia64.c: Add some minor optimizations.
3389
3390 2005-09-02  Zoltan Varga  <vargaz@gmail.com>
3391
3392         * mini.h: Add prototype for mono_allocate_stack_slots_full.
3393
3394 Thu Sep 1 21:05:26 BST 2005 Paolo Molaro <lupus@ximian.com>
3395
3396         * exceptions-arm.c, mini.c, mini-arm.c, mini-arm.h:
3397         exception handling support.
3398         * mini-arm.c, mini-arm.h: bigendian fixes (partially from a
3399         patch by Brian Koropoff <briank@marakicorp.com>).
3400
3401 Thu Sep 1 10:22:44 EDT 2005 Paolo Molaro <lupus@ximian.com>
3402
3403         * mini.c: revert another 'optimization' which breaks when
3404         items on the eval stack need to be saved at a basic block end
3405         (bug #75940).
3406
3407 Wed Aug 31 17:29:32 CEST 2005 Paolo Molaro <lupus@ximian.com>
3408
3409         * jit-icalls.c: for arrays, ensure we always provide
3410         lower bounds.
3411
3412 2005-08-30  Zoltan Varga  <vargaz@gmail.com>
3413
3414         * mini.c (mono_allocate_stack_slots_full): Fix ia64 build.
3415         
3416         * mini.c (mini_get_inst_for_method): Special case Object:.ctor as well.
3417
3418 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3419
3420         * mini-ia64.h mini-ia64.c: Implement frame pointer elimination. Keep
3421         arguments in their original register.
3422
3423 2005-08-28  Zoltan Varga  <vargaz@gmail.com>
3424
3425         * mini-ops.h cpu-ia64.md inssel-ia64.brg mini-ia64.c: Optimize
3426         memset/memcpy.
3427
3428         * mini.c (mono_method_to_ir): Disable the MUL->MUL_IMM optimization
3429         when ssapre is enabled.
3430
3431         * inssel-long.brg: Fix bug in previous patch.
3432
3433         * mini-ia64.c mini-ia64.h mini.c inssel-long.brg: Optimize 
3434         multiplication by a constant.
3435
3436 2005-08-27  Zoltan Varga  <vargaz@gmail.com>
3437
3438         * mini-ia64.c (mono_arch_setup_jit_tls_data): Add support for intel
3439         icc.
3440
3441         * tramp-ia64.c (mono_arch_create_trampoline_code): Use st8.spill for
3442         saving registers.
3443
3444 Fri Aug 26 11:09:28 BST 2005 Paolo Molaro <lupus@ximian.com>
3445
3446         * inssel-arm.brg: apply changes tested by Brian Koropoff
3447         <briank@marakicorp.com>.
3448
3449 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3450
3451         * mini-x86.c (mono_arch_emit_prolog): Fix calling of mono_jit_thread_attach () under windows.
3452         
3453 2005-08-24  Zoltan Varga  <vargaz@gmail.com>
3454
3455         * mini-codegen.c (mono_local_regalloc): Avoid allocating dreg and sreg1/2
3456         to the same register if dreg is just a base register.
3457         (print_ins): Improve printing of membase opcodes.
3458
3459         * inssel-x86.brg: Add optimized ldind(reg) rules.
3460
3461         * mini-x86.c cpu-pentium.md: Changes required to support the new rules.
3462
3463 Wed Aug 24 19:39:36 CEST 2005 Paolo Molaro <lupus@ximian.com>
3464
3465         * mini.c: when running under valgrind, set the stack bottom for
3466         the GC at the actual approximate stack for the app (fixes running
3467         mono with valgrind).
3468
3469 Tue Aug 23 21:38:50 CEST 2005 Paolo Molaro <lupus@ximian.com>
3470
3471         * mini.c: do no break at the first valuetype to init found
3472         (fixes bug #75791).
3473
3474 Tue Aug 23 16:53:21 BST 2005 Paolo Molaro <lupus@ximian.com>
3475
3476         * cpu-arm.md, mini-arm.c: more fixes and LMF support.
3477
3478 Tue Aug 23 15:11:44 CEST 2005 Paolo Molaro <lupus@ximian.com>
3479
3480         * cpu-g4.md: fixed instruction length exposed by the nemerle compiler.
3481
3482 2005-08-23  Zoltan Varga  <vargaz@freemail.hu>
3483
3484         * inssel-amd64.brg inssel-x86.brg: Fix the fcall rules.
3485
3486 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3487
3488         * inssel-x86.brg: Fix assert in patch_delegate_trampoline.
3489
3490         * tramp-x86.c (mono_arch_patch_delegate_trampoline): Add some debug
3491         code.
3492
3493         * tramp-amd64.c (mono_arch_patch_delegate_trampoline): Add some debug
3494         code.
3495
3496         * mini.c (optimize_branches): Don't quit after 1000 iterations on large
3497         methods.
3498
3499 Mon Aug 22 19:16:29 BST 2005 Paolo Molaro <lupus@ximian.com>
3500
3501         * tramp-arm.c: allocate less memory for the trampoline and fix typo.
3502
3503 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3504
3505         * mini.c (mono_method_to_ir): Remove instructions inserted after a branch
3506         in the tail recursion optimization.
3507
3508         * mini.h helpers.c (mono_disassemble_code): Emit starts of basic blocks as 
3509         debug info into the assembly file.
3510
3511         * iltests.il: Add test for filter regions.
3512
3513         * mini.c (mono_method_to_ir): Fix handling of nested FILTER clauses. Fix
3514         initial stack of filter regions. Fixes #75755.
3515
3516 Mon Aug 22 17:49:16 BST 2005 Paolo Molaro <lupus@ximian.com>
3517
3518         * mini-arm.c, cpu-arm.c: fixes and support for methods with bigger
3519         stack requirements.
3520
3521 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3522
3523         * mini.c (mono_create_delegate_trampoline): Fix memory leak. Put back
3524         the check for an already compiled method on non-ia64 platforms.
3525         (mono_create_jump_trampoline): Store the MonoJitInfo structure into the
3526         proper domain.
3527
3528         * mini-x86.h tramp-x86.c: Add support for delegate trampolines.
3529
3530         * inssel-x86.brg: Add some optimized call rules.
3531
3532 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3533
3534         * mini.c (mono_create_delegate_trampoline): Do not return an already compiled
3535         method here.
3536
3537         * mini.h mini-trampolines.c: Pass the trampoline argument to 
3538         mono_arch_patch_delegate_trampoline.
3539
3540         * mini-ia64.h mini-ia64.c tramp-ia64.c: Add support for delegate trampolines.
3541
3542         * mini-trampolines.c: Fix build.
3543
3544         * mini-amd64.h: Add delegate trampolines.
3545
3546         * mini.h mini.c mini-trampolines.c tramp-amd64.c: Add delegate trampolines.
3547
3548         * inssel-amd64.brg: Add optimized call rules.
3549         
3550         * mini-ia64.c tramp-ia64.c: Improve instruction scheduling.
3551
3552         * inssel-ia64.brg: Add optimized ldind(reg) rules.
3553
3554 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3555
3556         * mini.c (mono_create_class_init_trampoline): Fix bug caused by last
3557         change.
3558
3559         * mini-ia64.c: Remove LMF fixmes.
3560
3561         * mini-ia64.h: Remove most fields from LMF.
3562
3563         * inssel-ia64.brg (stmt): Fix unaligned access errors.
3564
3565         * mini-trampolines.c: Add support for IA64 function descriptors.
3566
3567         * mini.h mini.c jit-icalls.c exceptions-ia64.cdriver.c: Add support
3568         for IA64 function descriptors.
3569
3570 Sat Aug 20 16:51:44 BST 2005 Paolo Molaro <lupus@ximian.com>
3571
3572         * tramp-arm.c: patch the vtable for virtual calls. Added
3573         support code to register/unregister the LMF.
3574         * mini-arm.c, mini-arm.h: warning fixes, fixes, speedups,
3575         more LMF work.
3576
3577 2005-08-19  Dick Porter  <dick@ximian.com>
3578
3579         * mini.c: Use a gsize to store the thread ID, so it can hold a 64
3580         bit value if needed.
3581
3582 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3583
3584         * mini.c (mini_get_method): Move handling of wrapper data here.
3585
3586         * mini.c (mono_method_to_ir): Add support for dynamic methods.
3587
3588         * mini.c (mono_method_to_ir): Convert nonvirtual calls to abstract methods into
3589         virtual.
3590
3591         * mini.c (mono_method_to_ir): Emit IR for CEE_NOP as well, so 
3592         bblock->code does not remain empty.
3593
3594 2005-08-17  Zoltan Varga  <vargaz@freemail.hu>
3595
3596         * arrays.cs: Add regression test for #75832.
3597
3598         * inssel-amd64.brg cpu-amd64.md mini-amd64.c: Fix LDELEMA optimization
3599         rules. Fixes #75832.
3600
3601         * mini-ia64.c tramp-ia64.c exceptions-ia64.c: Implement improved
3602         instruction scheduling.
3603
3604 2005-08-12  Zoltan Varga  <vargaz@freemail.hu>
3605
3606         * mini-exceptions.c (ves_icall_get_frame_info): Fix IA64 build.
3607
3608 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3609
3610         * mini-exceptions.c mini-x86.h: Move VC stuff into macros in mini-x86.h.
3611
3612         * mini-codegen.c: Fix VC build.
3613
3614         * cpu-pentium.md: Increase length of atomic_exhange_i4.
3615
3616 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3617
3618         * mini.h: fix signature for mono_register_opcode_emulation.
3619
3620 2005-08-09  Zoltan Varga  <vargaz@freemail.hu>
3621
3622         * mini.c: Get rid of most of the helper_sig_... constants using
3623         mono_create_icall_signature ().
3624
3625 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3626
3627         * jit-icalls.c (helper_ldstr): New helper function.
3628
3629         * mini.c (get_basic_blocks): Set out_of_line for bblocks containing a throw.
3630
3631         * mini.c (mono_method_to_ir): If an LDSTR instruction is in a bblock with a
3632         throw, load the string using a helper call instead of creating a string object.
3633
3634         * aot.c: Update after LDSTR changes.
3635
3636         * mini.h: Bump AOT file version.
3637         
3638         * aot.c: Save class size info into the AOT file. Print more statistics during
3639         compilation.
3640
3641         * mini.h: Bump AOT file version.
3642
3643         * tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Fix
3644         ordering of disasm cases. Fixes #74957.
3645
3646 Thu Aug 4 19:47:24 BST 2005 Paolo Molaro <lupus@ximian.com>
3647
3648         * mini-ops.h, mini-arch.h, inssel.brg, mini.c, mini.h,
3649         jit-icalls.c, mini-codegen.c, Makefile.am: changes in
3650         the generic code needed for the ARM port.
3651
3652 Thu Aug 4 19:42:54 BST 2005 Paolo Molaro <lupus@ximian.com>
3653
3654         * exceptions-arm.c, tramp-arm.c, mini-arm.c, mini-arm.h, cpu-arm.md,
3655         inssel-arm.brg: more ARM features and fixes.
3656
3657 Mon Aug 1 18:37:38 BST 2005 Paolo Molaro <lupus@ximian.com>
3658
3659         * tramp-arm.c, mini-arm.c, cpu-arm.md, inssel-arm.brg: more
3660         ARM port work in progress.
3661
3662 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3663
3664         * mini-ia64.c (mono_arch_call_opcode): Ongoing IA64 work.
3665
3666         * mini-exceptions.c mini-ia64.h: Ongoing IA64 work.
3667
3668         * mini-ia64.c (ia64_emit_bundle): Ongoing IA64 work.
3669
3670         * inssel.brg (mini_emit_memset): Add support for unaligned access.
3671
3672         * *-ia64.*: Ongoing IA64 work.
3673         
3674         * mini-ia64.c exceptions-ia64.c: Ongoing IA64 work.
3675
3676 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3677
3678         * TODO: Remove out-of-data todo stuff.
3679
3680         * mini.h mini.c (mono_create_jit_trampoline_from_token): Remove some
3681         dead code.
3682
3683         * aot.c: Save/load MonoCachedClassInfo->has_nested_classes.
3684
3685         * mini.h: Bump corlib version.
3686
3687 2005-07-27  Martin Baulig  <martin@ximian.com>
3688
3689         * mini-codegen.c
3690         (create_copy_ins): Added `const unsigned char *ip' argument; set
3691         `copy->cil_code' from it.
3692
3693 2005-07-27  Martin Baulig  <martin@ximian.com>
3694
3695         * mini-exceptions.c (mono_handle_exception): Don't call
3696         mono_debugger_handle_exception() for filters.
3697
3698 2005-07-27  Zoltan Varga  <vargaz@freemail.hu>
3699
3700         * mini-trampolines.c (mono_aot_trampoline): Handle AppDomain:InvokeInDomain
3701         as well.
3702
3703 2005-07-26  Martin Baulig  <martin@ximian.com>
3704
3705         Committing a patch from Michal Moskal <michal.moskal@gmail.com>.
3706
3707         * mini.c (mono_method_to_ir): In `CEE_CALLI', only use
3708         helper_compile_generic_method() if the method is actually virtual
3709         and non-final.
3710
3711 2005-07-26  Martin Baulig  <martin@ximian.com>
3712
3713         * mini.c
3714         (trampoline_code): Renamed to `mono_trampoline_code' and made it
3715         public; this is now accessed directly by the debugger.
3716         (mono_generic_trampoline_code): Removed.
3717
3718         * debug-mini.c
3719         (mono_debug_init_method): Also add interncalls and wrappers.
3720
3721 2005-07-23  Zoltan Varga  <vargaz@freemail.hu>
3722
3723         * mini-ia64.c mini-ia64.h: Add support for tracing/profiling.
3724
3725 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3726
3727         * aot.c (mono_aot_get_method_from_token): Fix a potential crash here.
3728
3729 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3730
3731         * aot.c (load_patch_info): Fix handling of stfld_remote wrapper.
3732
3733 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3734
3735         * mini-amd64.c (mono_arch_setup_jit_tls_data): Use the nice way of
3736         getting TLS offsets on AMD64 too.
3737
3738 2005-07-20  Kornél Pál <kornelpal@hotmail.com>
3739
3740         * driver.c: Detach console when executing IMAGE_SUBSYSTEM_WINDOWS_GUI on win32
3741
3742 Wed Jul 20 18:05:19 BST 2005 Paolo Molaro <lupus@ximian.com>
3743
3744         * exceptions-arm.c, mini-arm.c, tramp-arm.c, cpu-arm.md,
3745         inssel-arm.brg, mini-arm.h: ARM port work in progress.
3746
3747 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3748
3749         * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix build.
3750
3751         * mini.h mini.c mini-*.h tramp-*.c: Move more cross platform trampoline code
3752         to mini.c.
3753
3754         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Call 
3755         mono_sparc_is_virtual_call ().
3756         
3757         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Fix warning.
3758
3759         * tramp-sparc.c (mono_arch_create_trampoline_code): Fix order of
3760         trampoline parameters.
3761
3762         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Fix signature.
3763         
3764         * mini-sparc.c (mono_arch_get_vcall_slot_addr): Rename this
3765         to mono_arch_get_vcall_slot_addr.
3766
3767         * Makefile.am tramp-sparc.c: Update the sparc port to use the generic
3768         trampoline code.
3769
3770         * *-sparc.*: Merge the mini-xp-regalloc branch for sparc.
3771
3772 2005-07-19  Zoltan Varga  <vargaz@freemail.hu>
3773
3774         * mini-ia64.h mini-ia64.c: Finish pinvoke support.
3775
3776 2005-07-19  Martin Baulig  <martin@ximian.com>
3777
3778         * exceptions-amd64.c (throw_exception): Call
3779         mono_debugger_throw_exception() here like we're doing it on i386.
3780
3781 2005-07-19  Zoltan Varga  <vargaz@freemail.hu>
3782
3783         * mini-ia64.c: Add optimized TLS access support.
3784
3785 2005-07-18  Zoltan Varga  <vargaz@freemail.hu>
3786
3787         * mini-exceptions.c: Ongoing IA64 work.
3788
3789         * mini-ia64.c inssel-long.brg: Ongoing IA64 work.
3790
3791         * mini.c: Use the default optimization set when embedding. Fixes
3792         #75194.
3793
3794 2005-07-11  Zoltan Varga  <vargaz@freemail.hu>
3795
3796         * tramp-amd64.c tramp-ia64.c Makefile.am: Move arch independent parts 
3797         of trampolines to a separate file.
3798
3799         * mini-trampolines.c: New file.
3800
3801         * mini.h tramp-x86.c: Move arch independent parts of trampolines to a 
3802         separate file.
3803         
3804         * tramp-x86.c: Reorganize the trampoline code to be similar to the 
3805         amd64/ia64 code.
3806
3807         * mini-codegen.c: Fix cygwin build.
3808
3809 2005-07-10  Zoltan Varga  <vargaz@freemail.hu>
3810
3811         * mini.c: Add some minor changes needed by the IA64 port.
3812
3813         * *-ia64.*: Ongoing IA64 work.
3814
3815 2005-07-09  Zoltan Varga  <vargaz@freemail.hu>
3816
3817         * tramp-amd64.c mini-amd64.c: Update after latest AOT changes. Split 
3818         trampolines into arch-independent and arch-dependent parts.
3819
3820         * mini-amd64.c (mono_arch_lowering_pass): Fix store_membase_imm -> store_membase_reg rule.
3821
3822 2005-07-08  Zoltan Varga  <vargaz@freemail.hu>
3823
3824         * cpu-amd64.md: Merge the xp-regalloc-branch for amd64.
3825
3826         * mini-ops.h mini-amd64.h mini-amd64.c inssel-amd64.brg Makefile.am: Merge
3827         the xp-regalloc-branch for amd64.
3828
3829         * mini-x86.h mini-x86.c cpu-pentium.md Makefile.am: Merge the
3830         xp-regalloc-branch for x86.
3831
3832 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3833
3834         * inssel.brg (OP_THROW_OR_NULL): Allways rethrow the abort exception.
3835
3836 2005-07-06  Martin Baulig  <martin@ximian.com>
3837
3838         * mini.c
3839         (mono_jit_compile_method_inner): Call mono_get_inflated_method().
3840         (mono_jit_runtime_invoke): Likewise.
3841
3842 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3843
3844         * aot.c (mono_compile_assembly): Allocate the GOT in the .bss segment
3845         on x86 too.
3846         
3847         * aot.c: Add new mono_aot_get_method_from_token () function to load AOT methods
3848         without loading their metadata. Reorganize the file format so exception handling+
3849         debug info is kept separate from normal method info. Create MonoJitInfo 
3850         structures for methods lazily.
3851
3852         * tramp-x86.c (x86_aot_trampoline): Use the new from_token method to avoid
3853         loading metadata.
3854         (x86_class_init_trampoline): Patch AOT class init trampolines too.
3855
3856         * mini.c (mini_init): Install the new mono_aot_find_jit_info hook.
3857
3858         * mini.c (mono_method_to_ir): Reduce the number of class init trampoline calls
3859         in AOT code.
3860
3861         * mini.h: Bump AOT file version.
3862
3863 2005-07-04  Zoltan Varga  <vargaz@freemail.hu>
3864
3865         * mini-x86.c (peephole_pass): Fix the loadi1/loadi2 rules.
3866
3867 2005-07-01  Raja R Harinath  <rharinath@novell.com>
3868
3869         * Makefile.am (check-local): Call semdel-wrapper.
3870
3871 2005-06-29  Zoltan Varga  <vargaz@freemail.hu>
3872
3873         * mini-x86.c: Revert the last change as it seems to break the build..
3874
3875 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3876
3877         * mini-x86.c (peephole_pass): Fix the loadi1/loadi2 rules.
3878         
3879         * mini-x86.c (mono_arch_cpu_init): Fix setting of fp precision in the VC build.
3880
3881 2005-06-27  Ben Maurer  <bmaurer@ximian.com>
3882
3883         * mini.c (NEW_AOTCONST): make sure to call mono_get_got_var
3884         outside of the macro, so strange stuff doesn't happen with gcc4
3885         (NEW_AOTCONST_TOKEN): Likewise.
3886
3887 2005-06-28  Martin Baulig  <martin@ximian.com>
3888
3889         * mini.c (mini_class_is_system_array): New static method; use this
3890         instead of `klass->parent == mono_defaults.array_class' everywhere
3891         since this also works for the new generic array class.
3892
3893 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3894
3895         * inssel.brg: Remove warnings.
3896
3897 2005-06-24  Zoltan Varga  <vargaz@freemail.hu>
3898
3899         * mini-ia64.c: Ongoing IA64 work.
3900
3901         * basic-float.cs: Add float->i1 conversion test.
3902
3903         * iltests.il: Add conv.u4 test.
3904
3905 2005-06-23  Zoltan Varga  <vargaz@freemail.hu>
3906
3907         * inssel-long.brg: Fix bug caused by last change.
3908
3909 2005-06-23  Geoff Norton  <gnorton@customerdna.com>
3910
3911         * mini-x86.h: Add __APPLE__ to the SC_* redefines with the other 
3912         BSDs.  Allows the x86 JIT to work on OSX86
3913
3914 2005-06-22  Zoltan Varga  <vargaz@freemail.hu>
3915
3916         * inssel-long.brg: Use OP_LSHR_UN_IMM instead of OP_SHR_UN_IMM in
3917         u4->i8 conversion.
3918
3919         * mini-ia64.c: Ongoing IA64 work.
3920
3921 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3922
3923         * mini-ia64.c: Ongoing IA64 work.
3924
3925         * driver.c: Clean up jit_code_hash as well when using --regression.
3926
3927         * inssel-long.brg: Fix long->i4/u4 conversion rules.
3928
3929         * basic-long.cs: Add tests for long->u4 conversion.
3930
3931 2005-06-18  Ben Maurer  <bmaurer@ximian.com>
3932
3933         * mini.c: Take mono_get_domainvar out of macros. This makes sure
3934         that we do not depend on undefined C behavior: the order stuff
3935         gets evaluated within an expression. Fixes mono when compiled on
3936         GCC 4.
3937
3938 2005-06-18  Zoltan Varga  <vargaz@freemail.hu>
3939
3940         * *-ia64.*: Ongoing IA64 work.
3941
3942         * aot.c: Lower memory usage while loading AOT methods.
3943
3944         * tramp-x86.c: Avoid allocating+freeing MonoJitInfo structures.
3945
3946         * mini.h: Bump AOT file format version.
3947
3948 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3949
3950         * mini.c (mono_method_to_ir): Allow STACK_PTR as input to SWITCH.
3951
3952 2005-06-16  Sebastien Pouliot  <sebastien@ximian.com>
3953
3954         * declsec.c: Fixed APTC to check for FullTrust on caller assembly (and
3955         not on callee assembly). Fixed some comments.
3956
3957 2005-06-16  Zoltan Varga  <vargaz@freemail.hu>
3958
3959         * aot.c (mono_compile_assembly): Mark the "methods" symbol as a function so
3960         it gets proper disassembly.
3961         (emit_method_info): Remove some dead code.
3962
3963         * mini.c (mini_method_compile): Allways allocate the GOT var in
3964         mono_method_to_ir for emulating opcodes.
3965
3966 2005-06-13  Zoltan Varga  <vargaz@freemail.hu>
3967
3968         * mini.c (mono_jit_free_method): Remove the method from the JitInfo table
3969         before freeing the code memory. Fixes #74990.
3970
3971         * objects.cs: Add regression test for #74992.
3972
3973         * liveness.c: Extend live ranges of arguments to the beginning of the
3974         method. Fixes #74992.
3975
3976         * exceptions-ia64.c mini-ia64.h: Modify ip during exception handling
3977         so it points into the faulting instruction.
3978
3979 2005-06-12  Zoltan Varga  <vargaz@freemail.hu>
3980
3981         * jit-icalls.c (mono_imul_ovf): Add exception handling.
3982
3983         * *-ia64.*: Ongoing IA64 work.
3984
3985         * mini.c (mini_init): Fix signature of mono_delegate_ctor.
3986
3987 2005-06-11  Zoltan Varga  <vargaz@freemail.hu>
3988
3989         * mini-ia64.h exceptions-ia64.c: Ongoing IA64 work.
3990
3991         * *-ia64.*: Ongoing IA64 work.
3992
3993 2005-06-10  Zoltan Varga  <vargaz@freemail.hu>
3994
3995         * basic-long.cs: Add tests for add/sub.ovf.
3996
3997         * basic.cs: Add tests for sub.ovf.
3998
3999         * *-ia64.*: Ongoing IA64 work.
4000
4001 2005-06-09  Zoltan Varga  <vargaz@freemail.hu>
4002
4003         * *-ia64.*: Ongoing IA64 work.
4004
4005         * basic.cs: Add conv.ovf.i4.un test.
4006
4007 2005-06-09  Massimiliano Mantione  <massi@ximian.com>
4008
4009         * mini.c: (remove_block_if_useless) Fixed bug 75061.
4010         
4011 2005-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4012
4013         * mini.c: no SIGUSR2 on windows. Remove it for PLATFORM_WIN32.
4014
4015 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4016
4017         * *-ia64.*: Ongoing IA64 work.
4018
4019 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4020
4021         * trace.[ch]:
4022         * mini.c: added the ability to toggle trace on/off using SIGUSR2.
4023
4024 2005-06-04  Zoltan Varga  <vargaz@freemail.hu>
4025
4026         * mini-ia64.c mini-ia64.h: Fix cleanup of memory stack.
4027
4028 2005-06-03  Zoltan Varga  <vargaz@freemail.hu>
4029
4030         * mini-amd64.c (emit_call): Fix yet another bug in the near call optimization.
4031
4032         * mini-amd64.c (amd64_patch): Add an assert to check that the destination
4033         of a call is callable by a near call.
4034
4035 2005-05-31  Zoltan Varga  <vargaz@freemail.hu>
4036
4037         * mini-ia64.c: Ongoing IA64 work.
4038
4039 2005-05-29  Zoltan Varga  <vargaz@freemail.hu>
4040
4041         * genmdesc.c: Make the generated array non-static.
4042
4043         * inssel-long.brg: Fix LSHR_IMM rule.
4044
4045         * *-ia64.*: Ongoing IA64 work.
4046
4047         * *-ia64.*: Ongoing IA64 work.
4048
4049 2005-05-28  Zoltan Varga  <vargaz@freemail.hu>
4050
4051         * *-ia64.*: Ongoing IA64 work.
4052
4053         * *-ia64.*: Ongoing IA64 work.
4054         
4055         * mini-ia64.c: Ongoing IA64 work.
4056
4057         * *-ia64.* jit-icalls.c mini-codegen.c: Ongoing IA64 work.
4058
4059 2005-05-28  Zoltan Varga  <vargaz@freemail.hu>
4060
4061         * objects.cs basic-calls.cs: Move some tests to objects.cs.
4062         
4063         * objects.cs basic-long.cs: Move some tests to objects.cs.
4064
4065 2005-05-26  Zoltan Varga  <vargaz@freemail.hu>
4066
4067         * *-ia64.*: Ongoing IA64 work.
4068
4069         * iltests.il: Add a new test.
4070
4071         * mini.c (mono_method_to_ir): Initialize valuetypes when created using
4072         newobj. Fixes #75042.
4073
4074 2005-05-22  Zoltan Varga  <vargaz@freemail.hu>
4075
4076         * *-ia64.*: Ongoing IA64 work.
4077         
4078         * *-ia64.*: Ongoing IA64 work.
4079         
4080         * *-ia64.*: Ongoing IA64 work.
4081
4082         * basic.cs objects.cs: Move tests accessing static variables as well.
4083
4084         * basic.cs objects.cs: Move test_0_pin_string to objects.cs.
4085
4086 2005-05-21  Zoltan Varga  <vargaz@freemail.hu>
4087
4088         * mini.c (SIG_HANDLER_SIGNATURE): Fix warning.
4089
4090         * driver.c: Always print failed tests.
4091
4092         * mini-codegen.c: Use cfg->frame_reg instead of a macro for the
4093         frame pointer.
4094
4095         * *ia64*: Ongoing IA64 work.
4096
4097 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4098
4099         * basic.cs: Add tests for add.ovf. Fix warnings.
4100
4101 2005-05-18  Miguel de Icaza  <miguel@novell.com>
4102
4103         * driver.c (mono_main): Avoid crash if no argument is passed to
4104         --break;  Do not use g_error, but f_printf.   And fix all other
4105         ocurrences of the same crash.
4106
4107 2005-05-17  Zoltan Varga  <vargaz@freemail.hu>
4108
4109         * mini.h mini.c: Generalize the existing uses of the MONO_DEBUG env variable
4110         and add a new one: aborting when a SIGSEGV is raised while in unmanaged code.
4111         Fixes #74742.
4112
4113 2005-05-14  Zoltan Varga  <vargaz@freemail.hu>
4114
4115         * *-ia64.*: Add beginnings of IA64 backend.
4116
4117         * Makefile.am mini-arch.h mini-codegen.c: Add IA64 support.     
4118
4119 2005-05-13  Zoltan Varga  <vargaz@freemail.hu>
4120
4121         * inssel-long.brg: Add missing ulong->{i1, i2} checked conversions.
4122         Fixes #74925.
4123
4124         * basic-long.cs exceptions.cs: Add new tests. Fix some warnings.
4125
4126         * mini-amd64.c: Fix a warning.
4127
4128 2005-05-10  Zoltan Varga  <vargaz@freemail.hu>
4129
4130         * mini-amd64.c (mono_arch_output_basic_block): Fix stack space leakage
4131         in float_neg. Fixes #74897.
4132
4133         * mini-amd64.c (emit_call): Fix another near call bug.
4134
4135 2005-05-06  Sebastien Pouliot  <sebastien@ximian.com>
4136
4137         * declsec.c: Keep the appdomain information in the structure. Added a 
4138         missing "return FALSE" for Unmanaged if FullTrust is set (or else the
4139         value gets overwritten).
4140         * declsec.h: Set the default MonoArray for the the stack to 6. Added
4141         an MonoAppDomain member to MonoSecurityFrame.
4142         * mini-exceptions.c: Do not use a glist to keep GC allocated objects
4143         used in the stack walk. Now use a MonoArray which grow (double) when
4144         it gets full.
4145
4146 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4147
4148         * mini.c: Re-enabled runtime cleanup, since running threads should
4149         now properly stop when exiting.
4150
4151 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4152
4153         * mini-codegen.c: New file contaning the arch-independent local
4154         register allocator. Not used by any architectures yet.
4155
4156         * mini.h linear-scan.c: Merge some changes from the 
4157         mini-xp-local-regalloc branch.
4158
4159 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4160
4161         * mini-amd64.c (emit_call): Fix calls to native functions when the
4162         runtime is compiled as a shared library. Fixes #74756.
4163
4164         * mini.c (mono_method_to_ir): Assert if ldsfld and friends are used
4165         on a literal field. Fixes #74751.
4166
4167 2005-04-25  Raja R Harinath  <rharinath@novell.com>
4168
4169         * Makefile.am (RUNTIME): Add MONO_CFG_DIR.
4170
4171 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4172
4173         * objects.cs: Add missing null casting test.
4174
4175 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4176
4177         * mini-exceptions.c (mono_find_jit_info): Fix native offset calculation
4178         in wrapper methods. Also rename 'address' variable to 'offset'.
4179
4180 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4181
4182         * mini.c debug-mini.c aot.c tramp-x86.c driver.c: Fix some gcc 4.0
4183         warnings.
4184         
4185         * Makefile.am (MCS): Use -unsafe instead of --unsafe.
4186
4187         * aot.c: Applied patch from "The Software Team" <software@solmersa.com>. Make AOT compilation
4188         work on windows.
4189
4190 Mon Apr 18 16:20:32 CEST 2005 Paolo Molaro <lupus@ximian.com>
4191
4192         * exceptions-ppc.c: update code to handle stack traces (fixes bug #74452).
4193
4194 2005-04-17  Zoltan Varga  <vargaz@freemail.hu>
4195
4196         * mini-x86.c (mono_emit_stack_alloc): Initialize the whole allocated area not
4197         just the last bytes.
4198
4199 2005-04-17  Zoltan Varga  <vargaz@freemail.hu>
4200
4201         * aot.c (mono_compile_assembly): Fix warning.
4202
4203         * mini-exceptions.c (ves_icall_get_frame_info): Fix bug introduced
4204         by the _MSC_VER stuff.
4205
4206 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4207
4208         * inssel-long.brg: Fix #74588.
4209
4210         * cpu-amd64.md: Fix #74591.
4211
4212         * iltests.il: Add new regression tests.
4213
4214 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4215
4216         * trace.c (mono_trace_enter_method): Print enums as an int, not as a
4217         valuetype.
4218
4219 2005-04-11  Zoltan Varga  <vargaz@freemail.hu>
4220
4221         * mini-x86.c (setup_stack): Unconditionally call pthread_attr_init ().
4222
4223         * exceptions-x86.c mini-x86.h mini-x86.c: Applied some freebsd patches 
4224         from Bill Middleton <flashdict@gmail.com>.
4225
4226 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4227
4228         * arrays.cs: Add new regression test. Fix warnings.
4229
4230 2005-04-09  Zoltan Varga  <vargaz@freemail.hu>
4231
4232         * mini-amd64.c (mono_arch_output_basic_block): Fix stack alignment
4233         and leakage in CKFINITE.
4234
4235         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Change
4236         this to a null op since it is called on amd64 too.
4237
4238         * exceptions-amd64.c (get_throw_trampoline): Align stack.
4239
4240         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Remove
4241         body since this is not used on amd64.
4242         
4243         * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Remove duplicate define.
4244
4245         * mini-amd64.c: Remove obsolete fixmes.
4246
4247         * mini.c (print_method_from_ip): Fix debugging support.
4248
4249 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
4250
4251         * ssapre.c: Fix a subtle bug about availability, and limit SSAPRE
4252         so that expressions that don't give much gain are not reduced.
4253         * ssapre.h: Likewise.
4254
4255 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4256
4257         * exceptions-x86.c (mono_arch_find_jit_info): Remove last SC_EBP reference.
4258
4259         * mini-x86.c (mono_emit_stack_alloc): Fix localloc under windows.
4260
4261         * mini-x86.h exceptions-x86.c: Hopefully fix compilation on *BSD.
4262
4263 2005-04-01  Zoltan Varga  <vargaz@freemail.hu>
4264
4265         * mini-sparc.c mini-sparc.h: Add asserts when running with sigaltstack.
4266
4267         * exceptions-x86.c (mono_arch_monoctx_to_sigctx): Fix cygwin build.
4268
4269 2005-03-31  Zoltan Varga  <vargaz@freemail.hu>
4270
4271         * mini-x86.c: If sigaltstack support is enabled, perform win32 style
4272         stack touching.
4273
4274         * mini.h (mono_arch_sigctx_to_monoctx): New arch-specific function.
4275
4276         * mini.h (mono_arch_monoctx_to_sigctx): New arch-specific function.
4277
4278         * mini.c: sigaltstack support requires MONO_ARCH_USE_SIGACTION.
4279
4280         * mini-x86.h mini-x86.c exceptions-x86.c: Add support for 
4281         MONO_ARCH_USE_SIGACTION. Fixes #74252.
4282
4283         * mini-x86.h: Enable MONO_ARCH_USE_SIGACTION on linux.
4284
4285         * mini-x86.c: Fix up stack overflow handling.   
4286
4287         * exceptions.cs: Add new regression test.
4288
4289 2005-03-30  Zoltan Varga  <vargaz@freemail.hu>
4290
4291         * mini-x86.c (mono_arch_emit_prolog): Adjust stack after calls to
4292         mono_jit_thread_attach.
4293
4294         * mini.c (mono_method_to_ir): Verify called method is not abstract.
4295
4296 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4297
4298         * mini.c (mono_method_to_ir): Applied Ben's patch from bug #61441 to
4299         avoid calling constructors using callvirt.
4300
4301         * inssel.brg: Fix #74073.
4302
4303 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4304
4305         * aot.c, mini.h: Added mono-compiler.h header to allow/ease 
4306         compilation with non-GCC compilers.
4307         * mini-exceptions.c, mini-x86.c|h: Patches to make compilation of mono
4308         possible using VS.NET. Adapted from the work of J Lothian (for VC6).
4309
4310 Tue Mar 29 11:43:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4311
4312         * inssel.brg, arrays.cs: fix long standing 64 bit issue in access to
4313         klass->interface_offsets (will likely fix bug#74073).
4314
4315 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4316
4317         * mini-amd64.c (mono_arch_is_int_overflow): Fix rex handling.
4318
4319 2005-03-28  Zoltan Varga  <vargaz@freemail.hu>
4320
4321         * mini-amd64.c (mono_arch_output_basic_block): Fix order of parameters
4322         to amd64_div_reg_size ().
4323         
4324         * mini-amd64.c (mono_arch_emit_exceptions): Emit a near call here too.
4325
4326 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4327
4328         * cpu-amd64.md (store_membase_reg): Fix length of storer8 opcodes.
4329
4330 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4331
4332         * driver.c: Turn off automatic command line globbing under windows. Fixes #73763.
4333
4334 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4335
4336         * mini.c (mono_method_to_ir): Remove debugging stuff left in by mistake.
4337         
4338         * mini.c (mono_precompile_assembly): Load and precompile referenced
4339         assemblies as well. Fixes #74015.
4340
4341 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4342
4343         * cpu-amd64.md (sin): Fix up maximum lengths of some opcodes.
4344
4345 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4346
4347         * declsec.c: Skip linkdemand checks for intra-corlib calls. This skips
4348         a lot of checks and (anyway) permissions cannot work until corlib is 
4349         loaded.
4350
4351 Wed Mar 23 14:29:49 CET 2005 Paolo Molaro <lupus@ximian.com>
4352
4353         * mini-ppc.c: fixed ABI issue on sysv/ppc.
4354
4355 Tue Mar 22 19:03:17 CET 2005 Paolo Molaro <lupus@ximian.com>
4356
4357         * tramp-ppc.c, exceptions-ppc.c: added missing icache flush
4358         calls (fixes bug#72824).
4359
4360 Tue Mar 22 16:28:48 CET 2005 Paolo Molaro <lupus@ximian.com>
4361
4362         * mini.c: fix tail recursion elimination (see test in bug#73936).
4363
4364 2005-03-21  Zoltan Varga  <vargaz@freemail.hu>
4365
4366         * mini-amd64.c (mono_arch_output_basic_block): Add inline versions of
4367         some fp functions in sse2 mode.
4368
4369 2005-03-20  Zoltan Varga  <vargaz@freemail.hu>
4370
4371         * mini-x86.c (emit_tls_get): Move tls handling into a separate helper function.
4372
4373 2005-03-19  Zoltan Varga  <vargaz@freemail.hu>
4374
4375         * mini.h mini.c: Add mono_get_jit_tls_key ().
4376
4377         * mini-x86.c: Enable fast TLS support on windows.
4378
4379 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4380
4381         * declsec.c: Renamed aptc to allowpartiallytrustedcallers.
4382         * mini.c: Check for p/invoke method when generating code. If a
4383         p/invoke method, or it's class, isn't decorated with [Suppress
4384         UnmanagedCodeSecurity] then generate code to call System.Security.
4385         UnmanagedDemand (only if the security manager is active).
4386
4387 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4388
4389         * tramp-amd64.c (create_specific_trampoline): Revert parts of the 
4390         last change as it seems to cause strange crashes.
4391         
4392 Wed Mar 16 16:24:11 CET 2005 Paolo Molaro <lupus@ximian.com>
4393
4394         * *.c: handle unsafe function pointers where needed.
4395
4396 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4397
4398         * mini.c (mono_jit_free_method): Remove the fixme too.
4399
4400 2005-03-15  Miguel de Icaza  <miguel@novell.com>
4401
4402         * mini.c: As discussed, make the code actually free the delegate
4403         thunk now, to enable the debugging of delegate problems, use
4404         MONO_DEBUG=1 when running Mono. 
4405
4406         This takes also care of parts of the leaks as seen by Joe.
4407
4408 2005-03-15  Zoltan Varga  <vargaz@freemail.hu>
4409
4410         * mini-amd64.c (mono_arch_setup_jit_tls_data): Enable 
4411         thread_tls_offset calculation.
4412
4413 2005-03-14  Sebastien Pouliot  <sebastien@ximian.com>
4414
4415         * declsec.c: Reworked linkdemand checks for icall. The previous code
4416         was using the declaration code (untrusted) and didn't work as expected
4417         with the CLR 2.0. We're now more compatible with 2.0 than 1.x for this
4418         specific case.
4419
4420 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4421
4422         * iltests.il: Add new localloc test.
4423
4424         * mini-amd64.c: Handle large stack allocations the same way as on
4425         windows if stack overflow handling is working.
4426         
4427         * mini-amd64.c: Allocate the signal stack using mmap.
4428
4429         * mini.c (sigsegv_signal_handler): Fix reading of context.
4430
4431         * mini-exceptions.c: Fix up stack overflow handling.
4432
4433         * mini-amd64.h mini-amd64.c: Fix up stack overflow handling.
4434
4435         * tramp-amd64.c (create_specific_trampoline): Optimize trampoline size.
4436
4437         * exceptions-amd64.c (mono_amd64_exceptions_init): Remove this.
4438
4439         * mini.h mini.c tramp-*.c: Move common trampoline code to mini.c.
4440
4441         * mini-x86.h mini-x86.c mini-amd64.h mini-amd64.c: Get rid of the
4442         tramp_init functions as they are no longer needed.
4443
4444 2005-03-12  Zoltan Varga  <vargaz@freemail.hu>
4445
4446         * tramp-amd64.c (mono_amd64_tramp_init): Fix typo.
4447         
4448         * tramp-amd64.c (mono_amd64_tramp_init): Init AOT trampoline as well.
4449
4450         * mini-amd64.h mini-amd64.c (mono_amd64_exceptions_init): Remove this.
4451         
4452         * mini.c mini-*.h: Remove OUT_OF_LINE_BBLOCK defines since all arches
4453         support that now.
4454
4455         * mini-ops.h: Add OP_LMUL_IMM.
4456
4457         * mini.c jit-icalls.cmini-amd64.h mini-amd64.c cpu-amd64.md: Implement
4458         long mul/div opcodes as intrinsic.
4459
4460         * mini-amd64.c (emit_call): Handle the case when the callee might be
4461         an AOT method.
4462
4463 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4464
4465         * mini-amd64.c (mono_arch_get_vcall_slot_addr): Reorder cases to be
4466         extra safe.
4467         
4468         * mini-amd64.c (mono_arch_get_vcall_slot_addr): Fix ordering of cases.
4469
4470         * aot.c (mono_aot_load_method): Get rid of bogus make_writable call.
4471
4472 2005-03-09  Ben Maurer  <bmaurer@ximian.com>
4473
4474         * mini.c (mono_codegen): Don't leak here, to help people running
4475         monogrind.
4476
4477 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4478
4479         * mini-amd64.c (mono_arch_output_basic_block): Fix int->float 
4480         conversions in sse2 mode.
4481
4482         * basic-float.cs: Add regression test.
4483         
4484         * mini-amd64.c: Reenable sse2.
4485
4486 2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
4487
4488         * mini-amd64.c: Disable sse2 until some regressions are fixed.
4489
4490 2005-03-07      Joerg Rosenkranz <joergr@voelcker.com>
4491
4492         * driver.c: Copyright text should include 2005.
4493         
4494 2005-03-07  Zoltan Varga  <vargaz@freemail.hu>
4495
4496         * cpu-amd64.md (load_membase): Fix more max lengths.
4497
4498 2005-03-06  Zoltan Varga  <vargaz@freemail.hu>
4499
4500         * cpu-amd64.md (load_membase): Fix max length.
4501
4502         * mini-ops.h: Add OP_F<xx>_MEMBASE opcodes.
4503
4504         * inssel.brg: Add MONO_EMIT_BIALU_MEMBASE macro.
4505
4506         * cpu-amd64.md inssel-amd64.brg mini-amd64.h mini-amd64.brg: Finish SSE2
4507         support and enable it by default. Also add OP_F<xxx>_MEMBASE opcodes.
4508
4509         * basic-float.cs: Add rounding regression test.
4510
4511         * mini-amd64.c (INST_IGNORES_CFLAGS): Add more instructions.
4512
4513 2005-03-04  Neale Ferguson <NealeFerguson@earthlink.net>
4514
4515         * inssel-s390.brg, mini-s390.c: Add support for passing/returning small
4516         structures in registers for pinvoke wrappers.
4517
4518 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4519
4520         * mini-exceptions.c (ves_icall_get_trace): Return wrapper info as well.
4521
4522 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4523
4524         * mini.h mini.c mini-x86.c: Pass the domain of the native->managed
4525         wrapper to mono_jit_thread_attach.
4526
4527         * mini.c (mini_jit_thread_attach): New jit icall.
4528
4529         * mini-x86.c (mono_arch_emit_prolog): Attach to the VM in 
4530         native->managed wrappers.
4531
4532         * exceptions.cs: Add new regression test.
4533
4534         * mini.c (optimize_branches): Check regions in the cbranch to throw
4535         block case as well. Fixes #73242.
4536
4537 Tue Mar 1 18:35:27 CET 2005 Paolo Molaro <lupus@ximian.com>
4538
4539         * mini.c: thread safety fixes.
4540
4541 2005-02-27  Zoltan Varga  <vargaz@freemail.hu>
4542
4543         * tramp-amd64.c (amd64_magic_trampoline): Disable the method_ptr
4544         patching stuff, since delegates use jump trampolines so there is
4545         no caller.
4546
4547         * tramp-amd64.c (create_trampoline_code): Pass NULL as 'code' in 
4548         jump trampolines.
4549         
4550         * tramp-amd64.c: Fix build.
4551
4552         * mini-x86.c tramp-x86.c: Moved get_vtable_slot_addr into mini-x86.c and rename
4553         it to mono_arch_.... Add get_delegate_method_ptr implementation for x86.
4554
4555         * mini-amd64.h mini.h mini-amd64.c tramp-amd64.c (mono_amd64_get_vcall_slot_addr):
4556         Rename this to mono_arch....
4557         (mono_amd64_get_delegate_method_ptr_addr): Ditto.
4558
4559         * mini-amd64.c (mono_amd64_get_delegate_method_ptr_addr): New helper function.
4560
4561         * mini-amd64.c (emit_call): If both the caller and the callee is
4562         guaranteed to have 32 bit addresses, emit a normal call.
4563
4564         * tramp-amd64.c: Adapt to changes in mini-amd64.c.
4565
4566         * tramp-amd64.c (amd64_magic_trampoline): Remove patching of trampolines. 
4567         * tramp-amd64.c (amd64_magic_trampoline): Add support for patching the
4568         method_ptr inside delegates.
4569
4570 2005-02-26  Zoltan Varga  <vargaz@freemail.hu>
4571
4572         * mini.c (mono_jit_free_method): Free the method info even if the native code is
4573         invalidated. Fixes #73001.
4574
4575         * mini.c: Add a proper icall wrapper for mono_delegate_ctor.
4576
4577         * mini-x86.c: Only use stdcall for pinvokes on windows.
4578
4579 Thu Feb 24 15:22:30 CET 2005 Paolo Molaro <lupus@ximian.com>
4580
4581         * mini.c, mini.h: make mono_lmf_addr a fast-access thread var.
4582         * mini-x86.c: remove unreliable __thread var offset detection,
4583         use the correct accessors and enable by default.
4584
4585 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4586
4587         * mini.c (mono_jit_free_method): Fix memory leak.
4588
4589 2005-02-22  Zoltan Varga  <vargaz@freemail.hu>
4590
4591         * mini.c (mono_method_to_ir): Allocate a GOT var for THROW and RETHROW. 
4592
4593 2005-02-21  Zoltan Varga  <vargaz@freemail.hu>
4594
4595         * cpu-amd64.md: Fix lengths of atomic opcodes.
4596
4597 Mon Feb 21 16:52:20 CET 2005 Paolo Molaro <lupus@ximian.com>
4598
4599         * driver.c: try to not imply using ICU is any good.
4600
4601 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
4602
4603         * mini-amd64.c (mono_arch_get_inst_for_method): Implement more 
4604         functions as inline ops.
4605
4606         * mini-ops.h inssel-amd64.brg cpu-amd64.md mini-amd64.c: Implement
4607         some Interlocked functions as inline ops.
4608
4609         * mini.c (move_basic_block_to_end): Fix bug in last patch.
4610
4611         * mini.h (MonoBasicBlock): Reorganize fields a bit.
4612
4613         * mini-ops.h inssel.brg: Add OP_NOT_REACHED.
4614
4615         * mini.c: Add support for OP_NOT_TAKEN.
4616
4617         * mini-amd64.h mini-amd64.c: Add support for passing/returning small 
4618         structures in registers for pinvoke wrappers.
4619
4620         * mini-amd64.c: Fix warnings.
4621
4622 2005-02-19  Zoltan Varga  <vargaz@freemail.hu>
4623
4624         * mini.h (MonoCompile): Add 'ret_var_is_local' field.
4625
4626         * mini.h mini.c (mono_arch_create_vars): Add new arch specific hook.
4627
4628         * mini.c (NEW_RETLOADA): If the ret variable is a local, use its 
4629         address instead of loading the address from it.
4630
4631         * mini-x86.c: Add support for returning small structs in registers
4632         on Win32. Fixes part of #70864.
4633         
4634 2005-02-18  Zoltan Varga  <vargaz@freemail.hu>
4635
4636         * trace.c (get_token): Improve error checking.
4637
4638 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
4639
4640         * jit-icalls.c (mono_ldvirtfn): Explicitly check for a NULL obj here.
4641
4642 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com> 
4643  
4644         * mini.h: Moved MONO_EXCEPTION_* enum to metadata/class-internals.h so
4645         it can be reused for MonoClass.
4646         * mini.c: Renamed MONO_EXCEPTION_SECURITY to MONO_EXCEPTION_SECURITY
4647         _LINKDEMAND.
4648
4649 2005-02-15  Sebastien Pouliot  <sebastien@ximian.com>
4650
4651         * mini.c: Fixed 2 cases where I sent a MonoMethod to managed code 
4652         instead of a MonoReflectionMethod. The method information wasn't used
4653         when displaying SecurityException details (but will be now).
4654
4655 2005-02-15  Atsushi Enomoto  <atsushi@ximian.com>
4656
4657         * Makefile.am : windows build fix.
4658
4659 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
4660
4661         * iltests.il: Add new regression test.
4662
4663         * mini.c (mono_method_to_ir): Allocate a GOT var in CEE_NEWOBJ. Fixes
4664         #72522.
4665
4666 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com> 
4667  
4668         * mini.c: Moved linkdemand check into helper function check_linkdemand
4669         to allow reuse for all intructions (CALL, CALLVIRT, NEWOBJ, JMP, 
4670         LDFTN, LDVIRTFTN).
4671
4672 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com>
4673
4674         * declsec.c: Added statistics counter for different kinds of 
4675         LinkDemands.
4676         * mini.h: Added CAS statistic counters to MonoJitStats. Removed unused
4677         (and commented) declaration.
4678         * mini.c: Added statistics counter for security Demand code 
4679         generation. Added display of security statistics.
4680
4681 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
4682
4683         * declsec.c (mono_declsec_linkdemand_aptc): Applied patch from Robert Jordan (robertj@gmx.net).
4684         Fix compilation errors under gcc-2.95.
4685
4686 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
4687
4688         * mini.c, driver.c: Use the new jit trampoline hashtable
4689
4690 Fri Feb 11 18:47:11 CET 2005 Paolo Molaro <lupus@ximian.com>
4691
4692         * mini.c, jit-icalls.c: use the managed implementation of memcpy, too.
4693
4694 2005-02-11  Martin Baulig  <martin@ximian.com>
4695
4696         * debug-mini.c (mono_debug_close_method): Free the line number array.
4697
4698 2005-02-10  Zoltan Varga  <vargaz@freemail.hu>
4699
4700         * aot.c: Break up large methods into smaller ones. Share GOT slots for
4701         icalls.
4702
4703         * mini.h: Bump AOT file format version. 
4704
4705 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
4706
4707         * declsec.c: Added LinkDemand support and it's special cases for ECMA,
4708         APTC and P/Invoke.
4709         * declsec.h: Added macros to get/set lazyly initialized security 
4710         informations about assemblies. Added new enum for different type of
4711         possible LinkDemand violation. Added function to check LinkDemands.
4712         * mini.h: Added a field to MonoCompile to hold any security violation
4713         detected when JITting a method (so it can be thrown later).
4714         * mini.c: Added LinkDemand checks in mono_method_to_ir for CEE_CALL 
4715         and CEE_CALLVIRT. Added code to throw exception at the end of
4716         mini_method_compile (note: the exception is unhandled right now).
4717
4718 Thu Feb 10 15:49:44 CET 2005 Paolo Molaro <lupus@ximian.com>
4719
4720         * mini.c, jit-icalls.c: use the managed implementation of
4721         memset for initobj and memset, to avoid managed <-> unmanaged
4722         transitions.
4723
4724 2005-02-10  Zoltan Varga  <vargaz@freemail.hu>
4725
4726         * inssel.brg (mini_emit_virtual_call): Disable the virtual->nonvirtual
4727         optimization if it would need a GOT var.
4728
4729         * basic.cs: Add tests for constant propagation and switch statements.
4730
4731         * ssa.c: Fix out-of-range constant propagation and switch statements.
4732
4733 2005-02-09    <vargaz@freemail.hu>
4734
4735         * inssel-x86.brg (reg): Align the allocation size in the localloc(imm) case too.
4736
4737 2005-02-08  Zoltan Varga  <vargaz@freemail.hu>
4738
4739         * cpu-amd64.md (load_membase): Fix max length of load_membase.
4740
4741 Tue Feb 8 18:21:11 CET 2005 Paolo Molaro <lupus@ximian.com>
4742
4743         * mini.c: update to new signature of mono_class_get_allocation_ftn().
4744
4745 2005-02-06  Neale Ferguson <NealeFerguson@earthlink.net>
4746
4747         * cpu-s390.md,  mini-s390.c: Correct bug with register usage on certain 
4748         arithmetic operations.
4749
4750 Sun Feb 6 07:10:12 EST 2005 Paolo Molaro <lupus@ximian.com>
4751
4752         * mini-ppc.c: add a workaround for broken user code that
4753         DllImports vararg functions with non-vararg signatures.
4754
4755 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
4756
4757         * mini.c (mono_jit_compile_method_inner): Add detection and a 
4758         meaningfull error message for assemblies written in Managed C++.
4759
4760         * tramp-amd64.c mini-amd64.h: Add support for 
4761         create_trampoline_from_token ().
4762
4763         * aot.c mini-x86.c abcremoval.c: Applied patch from
4764         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
4765
4766 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
4767
4768         * mini.h mini.c mini-x86.h tramp-x86.c: Add a new kind of trampoline 
4769         which takes a MonoImage/token as parameter instead of a MonoMethod.
4770
4771         * aot.c: Use the new trampoline for initializing vtables.
4772
4773         * aot.c: Add support for ldfld/stfld_remote wrappers.
4774
4775         * mini-ops.h cpu-pentium.md inssel-x86.brg mini-x86.c: Add optimized
4776         rules for compare <MEM>, IMM.
4777
4778         * mini.h (MONO_AOT_FILE_VERSION): Bump it.
4779
4780         * aot.c: Handle inherited finalizers correctly.
4781
4782 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
4783
4784         * inssel.brg (stmt): Add a missing _setup_... ().
4785
4786         * aot.c: Save some parts of the class state to the AOT file and use it
4787         to recompute that state when a class is initialized.
4788
4789         * mini.c: Install AOT hooks into the runtime.
4790
4791         * mini.h: Bump AOT file format version.
4792         
4793         * mini.c (mono_method_to_ir): Initialize pointer type locals correctly.
4794         Fixes #72148.
4795
4796         * iltests.il: Add new test.
4797
4798 Wed Feb 2 16:53:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4799
4800         * mini.c: fix typo.
4801
4802 Wed Feb 2 16:37:13 CET 2005 Paolo Molaro <lupus@ximian.com>
4803
4804         * mini.c: setup the statistical profiler in the thread attach
4805         callback to cope with the new single thread code.
4806
4807 Wed Feb 2 15:43:58 CET 2005 Paolo Molaro <lupus@ximian.com>
4808
4809         * mini-ppc.c: ensure we have enough room for the profiler
4810         calls (fixed bug#72084).
4811
4812 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
4813
4814         * aot.c: Get rid of the MonoAotMethod structure and the hashtable holding 
4815         it.
4816
4817 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
4818
4819         * driver.c: Re-enabled SSAPRE (two commits, I was just dumb).
4820
4821 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
4822
4823         * ssapre.c: Fixed an issue with down safety (this allows IronPython
4824         to succesfully execute parrotbench).
4825         * ssapre.h: Likewise.
4826
4827 2005-2-1  Massimiliano Mantione  <massi@ximian.com>
4828
4829         * ssa.c: In mono_ssa_rename_vars, forced the creation of a new SSA
4830         variable for stores to method arguments (fixes a SSAPRE issue).
4831
4832 Tue Feb 1 15:52:26 CET 2005 Paolo Molaro <lupus@ximian.com>
4833
4834         * mini.c: handle value types in dup, fixes gen-112.cs.
4835
4836 Tue Feb 1 11:45:19 CET 2005 Paolo Molaro <lupus@ximian.com>
4837
4838         * mini-ppc.c, cpu-g4.md, tramp-ppc.c: use a slower code
4839         sequence for calls in dynamic methods to avoid thunks.
4840
4841 Tue Feb 1 11:44:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4842
4843         * mini.c: correctly remove dynamic methods from the hashtable.
4844
4845 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
4846
4847         * driver.c: Disabled SSAPRE until fix the bug that appears
4848         in IronPython's parrotbench.
4849
4850 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
4851
4852         * aot.c (mono_compile_assembly): Get rid of Skip (other) messages.
4853
4854         * mini.c (mono_method_to_ir): Revert the previous change.
4855         
4856         * mini.c (mono_method_to_ir): Do not inline ldfld and stfld wrappers
4857         when AOT compiling.
4858
4859         * tramp-x86.c (x86_magic_trampoline): Avoid calls to 
4860         mono_jit_info_table_find () etc. when running under valgrind.
4861
4862         * inssel.brg: Fix warnings.
4863
4864         * mini-exceptions.c: Fix warnings.
4865
4866 2005-01-31  Martin Baulig  <martin@ximian.com>
4867
4868         * driver.c (compile_all_methods_thread_main): Don't try to compile
4869         generic methods or anything which has type parameters.
4870
4871 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
4872
4873         * aot.c: Avoid costly calls to mono_method_full_name in tracing code and fix memory leaks.
4874
4875         * TestDriver.cs: Add --verbose flags.
4876
4877         * graph.c ssa.c: Fix 64 bit warnings.
4878         
4879         * abcremoval.h ssapre.h abcremoval.c ssapre.c mini.c tramp-amd64.c 
4880         trace.c mini-exceptions.c linear-scan.c inssel-amd64.brg inssel.brg:
4881         Fix 64 bit warnings.
4882
4883         * mini-amd64.c (mono_arch_output_basic_block): Fix uninitialized
4884         variable not spotted by gcc.
4885         
4886         * mini-amd64.c inssel-amd64.brg: Applied patch from  
4887         Willibald Krenn <Willibald.Krenn@gmx.at>. Clean up usage of 
4888         X86_COMPARE_MEMBASE opcodes.
4889
4890         * exceptions-amd64.c (mono_arch_find_jit_info): Fix AMD64 build.
4891
4892 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
4893
4894         * *: MonoMethod->signature might be NULL now. You *MUST* use
4895         mono_method_signature.
4896
4897 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
4898
4899         * driver.c (compile_all_methods_thread_main): Compile the methods
4900         without invoking cctors.
4901
4902 Fri Jan 28 18:28:26 CET 2005 Paolo Molaro <lupus@ximian.com>
4903
4904         * mini.c: remove ben's "optimizations" to dup+stloc (bug #71905).
4905         * basic-calls.cs: test for the above.
4906
4907 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
4908
4909         * mini.c mini-exceptions.c aot.c exceptions-*.c: Update after 
4910         MonoJitInfo changes.
4911
4912 2005-01-27  Zoltan Varga  <vargaz@freemail.hu>
4913
4914         * mini-exceptions.c (mono_handle_exception): Compute the stack trace
4915         eagerly if it contains dynamic methods.
4916         
4917         * mini-exceptions.c (ves_icall_System_Exception_get_trace): New icall.
4918
4919         * mini-exceptions.c (mono_handle_exception): Avoid computing the stack
4920         trace, it is now computed by an icall from trace_ips.
4921         
4922         * mini-exceptions.c: Fix a warning.
4923
4924 Thu Jan 27 13:38:34 CET 2005 Paolo Molaro <lupus@ximian.com>
4925
4926         * mini-exceptions.c: don't bother getting stack trace info if
4927         it's not going to be used.
4928
4929 2005-01-27  Raja R Harinath  <rharinath@novell.com>
4930
4931         * Makefile.am (common_sources): Add ssapre-cee-ops.h and
4932         ssapre-mini-ops.h.
4933
4934 2005-01-26  Zoltan Varga  <vargaz@freemail.hu>
4935
4936         * mini.c (remove_block_if_useless): Only print debug stuff with -v -v.
4937
4938         * aot.c: Avoid calling mono_method_get_header () if not needed.
4939
4940         * mini.h: Bump AOT file format version.
4941         
4942         * mini.c (mono_emit_native_call): Allocate a GOT var here.
4943
4944         * mini.c (mono_print_tree): Print more info for calls.
4945
4946 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
4947
4948         * declsec.h: Remove warning by adding missing include for marshal.h
4949
4950 2005-01-26  Martin Baulig  <martin@ximian.com>
4951
4952         * mini.c (mono_method_to_ir): In CEE_UNBOX_ANY, don't increase
4953         `ip' twice.
4954
4955 2005-01-25  Zoltan Varga  <vargaz@freemail.hu>
4956
4957         * mini-amd64.c (mono_arch_call_opcode): Add missing MONO_SSA_LOAD/STORE
4958         flags.
4959
4960         * ssa.c (mono_ssa_compute): Fix crashes when using AOT.
4961
4962         * aot.c (mono_compile_assembly): Fix a warning.
4963
4964 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com>
4965
4966         * declsec.c: Look for security attributes on the original MonoMethod 
4967         (and not the wrapped one). This fix permissions on icalls.
4968
4969 2005-01-23  Zoltan Varga  <vargaz@freemail.hu>
4970
4971         * mini-amd64.c (mono_arch_allocate_vars): Use mono_allocate_stack_slots ().
4972
4973         * mini.c (mono_allocate_stack_slots): Add a fixme.
4974
4975         * mini-x86.c (mono_arch_allocate_vars): Use mono_allocate_stack_slots ().
4976
4977 Sun Jan 23 16:16:48 CET 2005 Paolo Molaro <lupus@ximian.com>
4978
4979         * inssel.brg: optimize casts of sealed types (more
4980         optimizations waiting for fixes in remoting).
4981
4982 2005-01-23  Zoltan Varga  <vargaz@freemail.hu>
4983
4984         * inssel.brg (stmt): Add another dummy rule.
4985
4986         * driver.c: Fix warnings.
4987
4988         * driver.c (mono_main): If running under valgrind, instruct glib to use
4989         the system allocation functions so valgrind can track the memory
4990         allocated by the g_... functions.
4991
4992         * inssel.brg (stmt): Add DUMMY rule for OP_DUMMY_STORE.
4993
4994         * mini-ops.h: Add OP_DUMMY_STORE opcode.
4995
4996         * mini.h (MONO_BBLOCK_IS_IN_REGION): New helper macro.
4997
4998         * liveness.c: Handle OP_DUMMY_STORE. Enable register allocation for
4999         variables in try regions.
5000
5001         * mini.c (mini_method_compile): Don't disable optimizations on large
5002         methods when AOT compiling.
5003
5004         * mini.c (mono_allocate_stack_slots): New arch independent method to 
5005         allocate stack slots. Not yet used.
5006
5007 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5008
5009         * debug-mini.c (mono_debug_close_method): Plug some leaks.
5010
5011 Sat Jan 22 13:41:51 EST 2005 Paolo Molaro <lupus@ximian.com>
5012
5013         * mini-ppc.c: make the branch info relative as the code
5014         buffer can be reallocated.
5015
5016 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5017
5018         * aot.c: Allow decoding of the new  MONO_PATCH_INFO_DECLSEC.
5019         * driver.c: Removed the AOT/security restriction. Now initialize the
5020         security manager (in metadata) if --security is used.
5021         * mini.c|h: Add the MONO_PATCH_INFO_DECLSEC code to use the index,
5022         rather than the pointer to declarative security, when AOT is used.
5023
5024 Sat Jan 22 09:35:19 EST 2005 Paolo Molaro <lupus@ximian.com>
5025
5026         * mini.h, mini-ppc.h, mini-ppc.c: updated to use out of line
5027         basic blocks, reduced intrinsic exception throwing code size.
5028
5029 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
5030
5031         * driver.c (mini_usage): Reorder the usage screen.
5032
5033 2005-01-21  Zoltan Varga  <vargaz@freemail.hu>
5034
5035         * mini.c (mono_resolve_patch_target): Fix warning.
5036
5037 2005-01-20  Zoltan Varga  <vargaz@freemail.hu>
5038
5039         * mini-x86.c (mono_arch_local_regalloc): Fix bug introduced by
5040         previous patch.
5041
5042         * mini-amd64.c (mono_arch_local_regalloc): Ditto.       
5043
5044         * mini-amd64.c (mono_arch_local_regalloc): Revert last patch as it
5045         breaks the amd64 build.
5046
5047         * mini-x86.c (mono_arch_local_regalloc): Fix bug in div/rem 
5048         register allocation. Fixes #71454.
5049
5050         * mini-amd64.c (mono_arch_local_regalloc): Ditto.       
5051
5052         * arrays.cs: Add new regression test.   
5053
5054 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
5055
5056         * ssapre.c: Turned usage of snprintf to GString.
5057         * ssapre.h: disabled MONO_APPLY_SSAPRE_TO_SINGLE_METHOD
5058         (I left it on by mistake in my previous commit).
5059
5060 Thu Jan 20 12:00:45 CET 2005 Paolo Molaro <lupus@ximian.com>
5061
5062         * mini.c, cfold.c, basic-calls.cs: preserve side effects
5063         on cond branch optimization (fixes bug# 71515).
5064
5065 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
5066
5067         * abcremoval.c: Fixed bug 71062.
5068         * abcremoval.h: Likewise.
5069
5070 2005-1-20  Massimiliano Mantione  <massi@ximian.com>
5071
5072         * mini.c: Added a new functionality to optimize_branches, the removal
5073         of useless basic blocks, and fixed some problem in the removal of
5074         critical edges; some utility functions added for both purposes.
5075         * ssapre.c: Added complex expression support, and fixed bug 70637.
5076         * ssapre.h: Likewise.
5077         * ssapre-cee-ops.h: Added file with list of "CEE_*" opcodes
5078         enabled in SSAPRE.
5079         * ssapre-mini-ops.h: Likewise, but for "OP_*" opcodes.
5080         * driver.c: Re-enabled SSAPRE.
5081
5082 2005-01-19  Martin Baulig  <martin@ximian.com>
5083
5084         * mini.c (mono_method_to_ir): Call mono_get_inflated_method() on
5085         the result of mono_get_method_constrained().
5086
5087 2005-01-18  Neale Ferguson <NealeFerguson@earthlink.net>
5088
5089         * exceptions-s390.c tramp-s390.c: Allocate code using the global code
5090         manager.
5091
5092 2005-01-18  Geoff Norton  <gnorton@customerdna.com>
5093
5094         * jit-icalls.c (mono_llmult_ovf): Fix other overflow conditions to
5095         be detected.  Fixes #59296.
5096
5097 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5098
5099         * mini-amd64.c (mono_arch_output_basic_block): Remove some assertions
5100         which can happen. Fixes #71361.
5101
5102 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5103
5104         * exceptions-sparc.c tramp-sparc.c: Allocate code using the global code
5105         manager.
5106
5107 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5108
5109         * mini.c (mono_create_jump_trampoline): Revert last change as it causes
5110         appdomain-unload.exe to fail.
5111         
5112         * mini.c: Fix some memory leaks.
5113
5114 Mon Jan 17 16:16:23 CET 2005 Paolo Molaro <lupus@ximian.com>
5115
5116         * inssel.brg: handle the new size of rank, idepth, max_interface_id.
5117         Fixed bug and sped up some codepaths.
5118
5119 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5120
5121         * mini.c: Fix some memory leaks.
5122
5123         * exceptions.cs basic-long.cs: Add test for checked ulong->int 
5124         conversion.
5125
5126         * inssel-long.brg: Implement long_conv_to_ovf_i4_un. Fixes #71319.
5127
5128         * inssel-long.brg: Fix conv.ovf.i8 when run on an int32. Fixes
5129         #71320.
5130
5131         * iltests.il: Add regression test for #71320.
5132
5133 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5134
5135         * mini.c (mono_codegen): Fix installation of profiler hooks.
5136
5137         * mini-sparc.c mini-amd64.c: Don't allocate stack space for dead vars.
5138
5139 Sun Jan 16 12:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5140
5141         * mini.h, mini.c, cfold.c: optimize access to enum
5142         readonly fields, too. Eval conditional branches if possible
5143         to perform unreachable code removal in more cases.
5144
5145 2005-01-15  Zoltan Varga  <vargaz@freemail.hu>
5146
5147         * tramp-amd64.c exceptions-amd64.c: Use the new global code manager.
5148
5149         * mini.c (mono_global_codeman_reserve): New function to allocate code memory from a global
5150         code manager.
5151
5152         * tramp-x86.c mini-x86.c exceptions-x86.c: Allocate all code memory so mono works with
5153         WinXP DEP. Fixes #71244.
5154
5155 2005-01-14  Zoltan Varga  <vargaz@freemail.hu>
5156
5157         * inssel.brg: Allways convert CEE_CONV_OVF_I4 to a move on 64 bit platforms. Fixes #71236.
5158
5159 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5160
5161         * mini-x86.c (mono_arch_output_basic_block): Fix OP_ATOMIC_ADD_NEW_I4.
5162
5163 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5164
5165         * mini-exceptions.c exceptions-ppc.c aot.c: Cope with MonoJitInfo 
5166         changes.
5167
5168         * mini.h: Bump AOT version.
5169
5170         * mini.h (MonoCompile): Change exvar to a hash table.
5171
5172         * mini.c: Allocate a separate exvar for each handler block.
5173
5174         * mini.c: Get rid of the computation of filter_lengths, its not needed.
5175
5176         * mini.c inssel.brg: Change OP_THROW_OR_NULL to compare the current
5177         ex var with the pending exception and only throw if the two are equal.
5178         Fixes #68552.
5179         
5180         * exceptions.cs: Add tests for rethrow and nested catch clauses.
5181
5182         * mini-x86.c: Fix warnings.
5183
5184         * Makefile.am (common_sources): Move mini-exceptions.c here as it is
5185         used by all the ports now.
5186
5187         * aot.c: Add write-symbols and save-temps options.
5188
5189 2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
5190
5191         * mini-x86.c: Add support for returning structs in registers from pinvoke functions on WIN32.
5192
5193 Mon Jan 10 16:11:16 EST 2005 Neale Ferguson <nealeferguson@earthlink.net>
5194
5195         * mini-ops.h, inssel-s390.brg, cpu-s390.md: Support OP_ATOMIC__xxx 
5196         operations.
5197
5198         * tramp-s390.c: Check vtable slot belongs to the domain.
5199
5200         * mini-exceptions.c, exceptions-s390.c: Standardize exception handling
5201         as per other platforms.
5202
5203         * mini-s390.c, mini-s390.h: Enable out-of-line bblock support.
5204
5205 Mon Jan 10 18:53:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5206
5207         * driver.c: we don't run the Main() code in a subthread anymore.
5208
5209 Mon Jan 10 17:54:16 CET 2005 Paolo Molaro <lupus@ximian.com>
5210
5211         * mini.c: added experimental rtc support in the statistical
5212         profiler: if the user has the permission, more accurate statistics
5213         are gathered. Run with: MONO_RTC=4096 mono --profiler=default:stat ....
5214         The MONO_RTC value must be restricted to what the linux rtc allows:
5215         power of two from 64 to 8192 Hz.
5216
5217 2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
5218
5219         * mini-x86.c (mono_arch_emit_exceptions): Fix #71121.
5220
5221 Mon Jan 10 05:20:49 EST 2005 Paolo Molaro <lupus@ximian.com>
5222
5223         * mini-ppc.c: better icache flush for smp.
5224
5225 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
5226
5227         * mini-amd64.c (emit_move_return_value): Fix memory leak.
5228
5229         * mini-x86.c (get_call_info): Add the get_call_info () code from the
5230         amd64 port, not yet used.
5231
5232 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
5233
5234         * mini.c (mono_method_to_ir): Disable inlining of ldfld wrappers with
5235         a struct type.
5236
5237 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
5238
5239         * driver.c: Added --security option to activate the security manager.
5240         Right now this will allow code generation for declarative demands and
5241         is disabled when AOT is specified.
5242         * mini.c: Add code generation for declarative security demands.
5243         * mini.h: Add mono_use_security_manager as an extern gboolean.
5244
5245 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
5246
5247         * aot.c (mono_compile_assembly): Speed up compilation a bit by
5248         emitting more dense assembly code.
5249
5250         * mini-sparc.c mini-sparc.h exceptions-sparc.c: Enable optimized corlib
5251         exception throwing stuff.
5252
5253 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
5254
5255         * mini-sparc.c (mono_arch_emit_exceptions): Fix typo in previous patch. Remove
5256         dead code.
5257
5258         * mini-amd64.c (mono_arch_emit_exceptions): Remove duplicate epilog stuff
5259         left in by mistake.
5260
5261         * driver.c (EXCLUDED_FROM_ALL): Disable SSAPRE until bug #70637 is 
5262         fixed.
5263
5264         * mini-sparc.h mini-sparc.c: Enable out-of-line bblock support.
5265
5266         * tramp-*.c: Only patch vtable slots if the object is in the current
5267         domain. Fixes appdomain-unload.exe.
5268
5269         * mini-amd64.c mini-amd64.h: Enable out-of-line bblock support.
5270         
5271         * mini-amd64.c (mono_arch_local_regalloc): Port regalloc fix from
5272         x86 branch.
5273
5274 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5275
5276         * mini.c (reverse_branch_op): New helper function.
5277
5278         * mini.c (optimize_branches): Run the new optimization only on 
5279         platforms which support it. Also reverse all kinds of branches.
5280
5281         * mini.h (MonoBasicBlock): Add 'out_of_line' field.
5282
5283         * mini.c (mono_method_to_ir): Set 'out_of_line' for bblocks which have
5284         a throw statement.
5285
5286         * mini.c (optimize_branches): Reverse not-equals branches if the false
5287         bblock is a throw. This happens a lot of time with argument checking in
5288         corlib.
5289
5290         * mini.c (mono_codegen): Add support for placing basic blocks after
5291         the function epilogue.
5292
5293         * mini-x86.c mini-x86.h: Add support for placing basic blocks after the
5294         function epilogue.
5295         
5296 2005-01-05  Miguel de Icaza  <miguel@ximian.com>
5297
5298         * mini.c (setup_stat_profiler): Only set this up if the platform
5299         supports ITIMER_PROF.
5300
5301 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5302
5303         * mini-x86.c (mono_arch_local_regalloc): Fix a bug introduced by the
5304         previous patch.
5305
5306         * inssel.brg: Fix a warning.
5307
5308 Wed Jan 5 16:40:18 CET 2005 Paolo Molaro <lupus@ximian.com>
5309
5310         * mini.c: added support for statistical profiler 
5311         (run with: --profile=default:stat).
5312
5313 2005-01-04  Zoltan Varga  <vargaz@freemail.hu>
5314
5315         * mini-x86.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Enable this on x86.
5316
5317         * mini-x86.c cpu-pentium.md: More fixes for usage of global registers.
5318
5319         * mini-amd64.c (mono_arch_local_regalloc): Port some regalloc fixes 
5320         related to global registers from the amd64 port.
5321
5322 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
5323
5324         * mini.c (mono_method_to_ir): Handle MONO_CLASSCONST.
5325
5326         * mini-amd64.c (mono_arch_local_regalloc): Fix some regalloc problems
5327         with global registers.
5328         (mono_arch_output_basic_block): Fix SWITCH in the AOT case.
5329
5330         * aot.c (emit_method_code): Fix the 'method emitted as' messages.
5331
5332 2004-12-31  Zoltan Varga  <vargaz@freemail.hu>
5333
5334         * debug-mini.c (encode_value): Fix off-by-one.
5335
5336         * aot.c (encode_value): Likewise.
5337
5338         * mini.c (mono_method_to_ir): Disable AOT for methods containing LDPTR.
5339
5340 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
5341
5342         * mini.c linear-scan.c: Add a workaround for the mcs crash when using 
5343         AOT.
5344
5345         * aot.c (mono_aot_load_method): Free up patch info if no longer needed.
5346         
5347         * aot.c (emit_method_info): Increase size of temp buffer.
5348
5349         * mini-x86.c cpu-pentium.md mini.c: Load fp constants differently in 
5350         the AOT case.
5351
5352 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
5353
5354         * aot.c (emit_method_info): Fix build.
5355         
5356         * aot.c: Further rework of the AOT file format to reduce the size of
5357         the method info data.
5358
5359         * mini.h: Bump AOT file format version.
5360
5361 2004-12-27  Martin Baulig  <martin@ximian.com>
5362
5363         * mini.c (mini_get_method): New static method; call
5364         mono_get_method_full() and mono_get_inflated_method().
5365         (mono_method_to_ir): Use mini_get_method() instead of
5366         mono_get_method_full(). 
5367
5368 2004-12-26  Patrik Torstensson  <patrik.torstensson@gmail.com>
5369
5370         * mini-x86.c (atomic ops): fixed bug interlocked bug #70784. 
5371
5372 2004-12-25  Zoltan Varga  <vargaz@freemail.hu>
5373
5374         * inssel.brg (ldind_to_load_membase): Handle CEE_LDIND_I8.
5375
5376         * inssel-amd64.brg: Add some optimization rules.
5377
5378 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
5379
5380         * aot.c: Remove the use of MonoGHashTable and other GC stuff. The
5381         standard not GC'd stuff is fine.
5382
5383 2004-12-24  Zoltan Varga  <vargaz@freemail.hu>
5384
5385         * aot.c: Rework the AOT file format to get rid of most of the global
5386         symbols. This reduces the size of the mscorlib.dll.so by 1MB.
5387
5388         * mini.h: Bump AOT file format version.
5389         
5390 2004-12-23  Zoltan Varga  <vargaz@freemail.hu>
5391
5392         * mini.h: Bump AOT file format version.
5393
5394         * aot.c (mono_aot_is_got_entry): New function to determine if an 
5395         address is inside a GOT.
5396
5397         * aot.c mini-x86.c tramp-x86.c: Make all patches use the GOT.
5398
5399         * cpu-pentium.md: Increase the maximum size of some instructions which
5400         might involve a got access.
5401         
5402         * mini.c (get_method_from_ip): Another debug helper function.
5403
5404         * mini.c: Call mono_get_got_var () in a couple places. Handle the case
5405         when got var accesses are created during the decompose phase.
5406
5407         * mini-sparc.c: Change mono_compile_aot to cfg->compile_aot.
5408
5409         * mini.h mini.c mini-x86.c aot.c mini-sparc.c: Add a 'compile_corlib'
5410         argument mini_compile_method and to MonoCompile, and use this to
5411         determine whenever a given method is compiled for AOT. This allows the
5412         other methods compiled during AOT compilation to be free of AOT stuff,
5413         so the backends does not need to add special support for them by
5414         creating a fake GOT etc.
5415
5416         * mini-x86.c (mono_arch_patch_code): Remove fake got stuff as it is no
5417         longer needed.
5418
5419 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
5420
5421         * mini.c (mono_method_to_ir): It turns out that some of the
5422         x-appdomain wrappers are lax with types, so just ignore this for
5423         all wrappers.
5424
5425         * inssel.brg (OP_CHECK_ARRAY_TYPE): Optimize this by only looking
5426         at the vtable->klass. If it is non-shared code we can just use the
5427         vtable.
5428
5429 Tue Dec 21 17:43:06 CET 2004 Paolo Molaro <lupus@ximian.com>
5430
5431         * mini-ppc.c: access MonoDomain from tls, too.
5432
5433 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com>
5434
5435         * declsec.c: Removed unused variable (and related warning ;-)
5436
5437 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
5438
5439         * iltests.il: New test for LDELEMA on an array of ref types.
5440
5441         * mini.c (CEE_LDELEMA): We need to emit OP_CHECK_ARRAY_TYPE for
5442         all ldelema's on reftypes.
5443         (check_call_signature): Remove the OP_CHECK_ARRAY_TYPE from here,
5444         it was the wrong place to put it.
5445
5446         * mini-x86.c (mono_arch_output_basic_block): Just use ecx as the
5447         register to pop to make this cleaner, at the request of Paolo.
5448
5449 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
5450
5451         * mini-ops.h (OP_GETHASHCODE): New op.
5452
5453         * inssel.brg (OP_GETHASHCODE): Emit code for the new opcode
5454
5455         * mini.c (mini_get_inst_for_method): Create the intrinsic hash
5456         operation.
5457
5458         For a microbenchmark, this reduces the cost of Hashtable.get_Item
5459         by 25%.
5460         
5461         * mini-x86.c (mono_arch_output_basic_block): Rather than
5462
5463         add ebp, 4
5464
5465         Emit
5466
5467         pop edx
5468
5469         The first is 3 bytes while the second is 1. This saves 36 kb on
5470         mscorlib, quite a big saving. When bootstraping mcs, I was able to
5471         see a small boost because of icache locality.
5472
5473         * cfold.c (FOLD_BINOPCOMM): Kill add foo, 0
5474
5475 Mon Dec 20 12:19:40 EST 2004 Paolo Molaro <lupus@ximian.com>
5476
5477         * Makefile.am, mini-ppc.h, mini-exceptions.c, exceptions-ppc.c:
5478         started code sharing with the generic code.
5479
5480 Mon Dec 20 11:08:06 EST 2004 Paolo Molaro <lupus@ximian.com>
5481
5482         * mini-ppc.c, cpu-g4.md: added code for direct access to
5483         tls data slots.
5484
5485 Mon Dec 20 10:58:28 EST 2004 Paolo Molaro <lupus@ximian.com>
5486
5487         * mini-ops.h, inssel-x86.brg, cpu-amd64.md, inssel.brg, inssel-amd64.brg,
5488          mini-amd64.c, mini-x86.c, cpu-pentium.md: renamed OP_X86_TLS_GET
5489         to OP_TLS_GET.
5490
5491 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
5492
5493         * declsec.c|h: Added functions to cache the declarative stack modifiers
5494         in MonoJitInfo and to create a security frame from a MonoJitInfo 
5495         structure.
5496         * mini.c: Initialize jinfo->cas_inited to FALSE when MonoJitInfo is
5497         created. Register internal calls for System.Security.SecurityFrame::
5498         _GetSecurityFrame and _GetSecurityStack.
5499         * mini.h: Added definition for new icalls (in mini-exceptions.c) and
5500         the definitions for the new stack walk/callback mechanism.
5501         * mini-exceptions.c: Added internal call GetSecurityFrame (to get the 
5502         first security frame for LinkDemands and InheritanceDemands) and
5503         GetSecurityStack for Demands. Both use the new mono_walk_stack code
5504         from lupus.
5505         * mini-x86.h, mini-amd64.h, mini-sparc.h: Architecture specific stack
5506         walk initialization (lupus).
5507
5508 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
5509
5510         * mini.c (mono_method_to_ir): In CEE_DUP, handle the dup / stloc
5511         idiom.
5512         (handle_loaded_temps): Do not create a temporary variable for
5513         things that we know are temps. They will never be modified.
5514         (mono_spill_call): Set MONO_INST_IS_TEMP
5515         (mono_emulate_opcode): ditto
5516         (emit_tree): ditto
5517         (mono_method_to_ir.CEE_DUP): ditto
5518
5519 2004-12-19  Ben Maurer  <bmaurer@ximian.com>
5520
5521         * mini.c (type_to_eval_stack_type): Make this handle the void type
5522         (mono_emit_call_args): set the call->type with type_to_eval_stack_type
5523         (emit_tree): use ip_in_bb to special case some common idioms
5524         Update all callers to pass in the IP.
5525         (mono_method_to_ir): Make CEE_CALL* do the above as well.
5526
5527         This gives us a nice 2% speedup in mcs bootstrap.
5528
5529         * mini-x86.c (peephole_pass): Peephole pass to make
5530         mov  [foo], eax
5531         push [foo]
5532
5533         into
5534
5535         mov [foo], eax
5536         push eax
5537
5538         * mini.c (ip_in_bb): new method.
5539         (mono_method_to_ir): use this method rather than doing the hash
5540         lookup ourselves.
5541
5542         * linear-scan.c (mono_linear_scan): When expiring actives, you
5543         don't need to keep around variables that expire on this
5544         instruction. This makes it so that:
5545              a = b + 1
5546         will turn into:
5547              store (ebx add (ebx, 1))
5548         which will become
5549              add ebx, 1
5550
5551 2004-12-19  Zoltan Varga  <vargaz@freemail.hu>
5552
5553         * mini.c (mono_method_to_ir): Optimize the common ldobj+stloc 
5554         combination to avoid doing two copies. Fix up problems with previous
5555         patch.
5556
5557         * mini.c: Fix 64 bit warnings.
5558
5559         * mini-x86.c (INST_IGNORES_CFLAGS): Add OP_STOREI4_MEMBASE_REG.
5560
5561 2004-12-17  Zoltan Varga  <vargaz@freemail.hu>
5562
5563         * mini-amd64.h mini-amd64.c exceptions-amd64.c: Port exception handling
5564         changes from the x86 code.
5565
5566         * mini.h: Add prototype for mono_arch_get_throw_corlib_exception ().
5567
5568 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
5569
5570         * mini-x86.c (mono_arch_emit_epilog): Optimize the corlib exception
5571         throwing code to reduce its size, unify the AOT and non-aot code and 
5572         get rid of relocations in the AOT case.
5573
5574         * mini-x86.h mini.c exceptions-x86.c 
5575         (mono_arch_get_throw_corlib_exception): New arch specific function to 
5576         raise corlib exceptions which doesn't require relocations in the 
5577         caller.
5578
5579         * aot.c (emit_method): Handle PATCH_INFO_NONE as well.
5580
5581 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
5582
5583         * mini.c (mono_emit_method_call): Only allocate the got var when it is
5584         needed.
5585
5586         * mini-x86.c (mono_arch_patch_code): Add missing PATCH_INFO_METHOD_REL
5587         in the AOT case.
5588
5589 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
5590
5591         * mini-x86.c, cpu-pentium.md, inssel-x86.brg: Fixed bug
5592         with add function when used from Inc/dec atomic 
5593         functions. Re-enabled optimization on x86.
5594         * mini-ops.h: renamed atomic_add functions to
5595         allow _add to match the Interlocked::Add and
5596         _add_next to match Interlocked::Inc/Dec.
5597
5598 2004-12-15  Massimiliano Mantione  <massi@ximian.com>
5599
5600         * mini.c: Fixed a subtle bug in mono_method_to_ir, about the
5601         linking of BBs to the end BB, and enabled SSAPRE also with
5602         consprop and copyprop (which was prevented by that bug).
5603
5604 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
5605
5606         * mini-x86.c: disabling the Interlocked optimizing code. 
5607
5608 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
5609
5610         * aot.c (load_aot_module): Move reading of got_addr after the AOT
5611         file version check.
5612         
5613 2004-12-14  Patrik Torstensson  <patrik.torstensson@gmail.com>
5614
5615         * mini-x86.c, inssel-x86.brg, cpu-pentium.md: removed _imm 
5616         interlocked optimization due lack of support on x86, rewrote 
5617         exchange to take into account that base may be in eax.
5618         
5619         xsp works again; activated Interlocked optimizing code.
5620         
5621 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
5622
5623         * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file version.
5624
5625 2004-12-13  Zoltan Varga  <vargaz@freemail.hu>
5626
5627         * mini-ops.h: Add new opcodes.
5628
5629         * mini.h: Add new patch types. Add got_var to MonoCompile.
5630
5631         * mini.h mini-x86.c mini-amd64.c aot.c: Rename 
5632         mono_arch_get_aot_patch_offset () to mono_arch_get_patch_offset () and
5633         make it work with all kinds of patchable code.
5634
5635         * inssel.brg inssel-x86.brg: Add new rules dealing with computing the
5636         address of the GOT, and referencing entries in the GOT.
5637
5638         * mini.c: Add code to load the GOT address if needed by an opcode.
5639
5640         * aot.c mini-x86.h mini-x86.c cpu-pentium.md: Add support for position 
5641         independent AOT code on the x86 using an elf-style Global Offset Table.
5642
5643 2004-12-14  Raja R Harinath  <rharinath@novell.com>
5644
5645         * Makefile.am (RUNTIME): Set MONO_SHARED_DIR.
5646
5647 2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5648
5649         * mini-x86.c: disabling the Interlocked optimizing code. It segfaults
5650         when running xsp.
5651
5652 2004-12-13  Patrik Torstensson  <patrik.torstensson@gmail.com>
5653
5654         * mini-x86.c,mini-ops.h,inssel-x86.brg,cpu-pentium.md: Implementation
5655         of Interlocked:Increment/Decrement/Add as inline ops.
5656         (mini-x86.c (mono_arch_get_inst_for_method and mono_arch_output_basic_block))
5657
5658 2004-12-12  Geoff Norton  <gnorton@customerdna.com>
5659
5660         * exceptions-ppc.c: Reorder code so gcc3.4 can compile it
5661         * mini-ppc.c: Unify mono_arch_patch_code with changes in r37636.
5662
5663 2004-12-12  Duncan Mak  <duncan@ximian.com>
5664
5665         * mini-ppc.c (mono_arch_patch_code): Hopefully made this build
5666         again. `patch_info->table_size' is no longer valid after Zoltan's
5667         commit #37636.
5668
5669 2004-12-12  Martin Baulig  <martin@ximian.com>
5670
5671         * mini.c (mono_method_to_ir): Only call mono_debug_init_method()
5672         if we are the "real" method, ie. not an inlined method inside it.
5673
5674 2004-12-11  Ben Maurer  <bmaurer@ximian.com>
5675
5676         * mini.c (CEE_LDSFLD): Make sure that the vtable has been init'd
5677         before we look in the special fields table. This fixes
5678         ../tests/thread-static-init.cs.
5679
5680 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5681
5682         * mini.c: return immediately after setting OP_ARRAY_RANK or CEE_LDLEN
5683         for Array get_Rank and get_Length. Fixes bug #70465.
5684
5685 2004-12-11  Zoltan Varga  <vargaz@freemail.hu>
5686
5687         * mini.h mini.c aot.c: Put the bblock table for a SWITCH patch into a
5688         separate structure to reduce the size of MonoJumpInfo.
5689
5690 Fri Dec 10 18:09:22 CET 2004 Paolo Molaro <lupus@ximian.com>
5691
5692         * mini.c, mini.h, aot.c, driver.c: allow disabling the aot code.
5693
5694 2004-12-10  Patrik Torstensson  <patrik.torstensson@gmail.com>
5695
5696         * mini.c (mini_get_inst_for_method): Changed to allow ports
5697         to return a MonoInst instead of opcode 
5698         (renamed mini_get_opcode_for_method to better reflect the new functionality)
5699         
5700         * mini-[x86|s390|s390x|ppc|sparc].c (mono_arch_get_inst_for_method): 
5701         Allow ports to return a created MonoInst instead of op-code, will enable
5702         new optimizations.
5703         (renamed mini_get_opcode_for_method to better reflected the functionality)
5704
5705 2004-12-09  Zoltan Varga  <vargaz@freemail.hu>
5706
5707         * mini.c (NEW_AOTCONST): Share some code between the different NEW_AOTCONST macros.
5708
5709 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
5710
5711         * mini.c jit-icalls.c: Pass generic_context to mono_ldtoken_wrapper.
5712         Fixes #69985.
5713
5714 2004-12-08  Martin Baulig  <martin@ximian.com>
5715
5716         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use `fsig->signature'
5717         if we're a CEE_CONSTRAINED call.  Fixes gen-118.cs.
5718
5719 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
5720
5721         * mini-sparc.c (mono_arch_output_basic_block): Implement OP_FCONV_TO_<X>
5722         correctly.
5723
5724         * exceptions.cs: Disable some tests which depend on properties of x86 fp
5725         arithmetic.
5726
5727 2004-12-08  Raja R Harinath  <rharinath@novell.com>
5728
5729         * Makefile.am (CLEANFILES): Add *.exe, *.dll.
5730
5731 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
5732
5733         * mini-sparc.c (mono_arch_output_basic_block): Fix LOCALLOC_IMM
5734         bug introduced by the previous patch.
5735
5736 Tue Dec 7 11:44:39 CET 2004 Paolo Molaro <lupus@ximian.com>
5737
5738         * mini-ppc.c, objectc.cs: handle large structs passed by value
5739         (fixes bug #69972).
5740
5741 Tue Dec 7 10:43:31 CET 2004 Paolo Molaro <lupus@ximian.com>
5742
5743         * mini-ppc.c: OP_ARGLIST implementation from
5744         Geoff Norton  <gnorton@customerdna.com>.
5745
5746 Tue Dec 7 10:14:25 CET 2004 Paolo Molaro <lupus@ximian.com>
5747
5748         * inssel-x86.brg, inssel-ppc.brg: fix reference to register
5749         in stmt: OP_OUTARG_VT (reg) (should fix bug #69785).
5750
5751 Tue Dec 7 10:06:39 CET 2004 Paolo Molaro <lupus@ximian.com>
5752
5753         * exceptions-ppc.c: avoid calling ppc_patch in exception trampolines.
5754
5755 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
5756
5757         * inssel-s390.brgi, mini-ops.h, mini-s390.c : Add stubs for support of tls offset
5758         support.
5759
5760 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
5761
5762         * mini-sparc.c: Zero out localled-ed memory.
5763
5764         * iltests.il: Add tests for zeroing out localloc-ed memory.
5765
5766 2004-12-04  Martin Baulig  <martin@ximian.com>
5767
5768         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use the new
5769         mono_method_get_signature_full().       
5770
5771 2004-12-03  Massimiliano Mantione  <massi@ximian.com>
5772
5773         * mini.c: Added removal of critical edges (prerequisite for SSAPRE),
5774         and some utility functions (always for SSAPRE), integrated SSAPRE.
5775         * mini.h: Likewise.
5776         * driver.c: Added ssapre option.
5777         * ssa.c: Small fix on OP_ARG handling.
5778         * ssapre.c, ssapre.h: Added files containing SSAPRE implementation.
5779         * Makefile.am: Likewise.
5780
5781 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
5782
5783         * tramp-x86.c (mono_arch_create_jit_trampoline): Remove code which is
5784         now in the xp code.
5785
5786         * mini.c (mini_init): Register mono_thread_force_interruption_checkpoint
5787         icall.
5788
5789 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
5790
5791         * inssel-s390.brg : Add OP_OUTARG_VT (OP_REFANYTYPE (reg)) rule.
5792         
5793         * cpu-s390.md : Increase instruction length of oparglist.
5794
5795         * mini-s390.c : Implement vararg and TYPEDEBYREF support.
5796
5797 2004-11-30  Martin Baulig  <martin@ximian.com>
5798
5799         * mini.c (mono_method_to_ir): In CEE_CALLVIRT, added support for
5800         virtual generic methods.  We call a special helper_compile_generic_method()
5801         icall to retrieve the method from the vtable, inflate and compile
5802         it and then do a CEE_CALLI.  Thanks a lot to Paolo for this idea.
5803
5804         * jit-icalls.c (helper_compile_generic_method): New JIT icall.
5805
5806 2004-11-30  Zoltan Varga  <vargaz@freemail.hu>
5807
5808         * mini-sparc.c: Fix up vararg corner cases. Fixes #70019.
5809
5810 2004-11-29  Zoltan Varga  <vargaz@freemail.hu>
5811
5812         * cpu-sparc.md mini-sparc.c (long_conv_to_ovf_i): Fill missing delay slot.
5813         Fixes #69929.
5814
5815 2004-11-27  Ben Maurer  <bmaurer@ximian.com>
5816
5817         * inssel.brg (CEE_SWITCH): The AOT stuff Zoltan added is only for
5818         platforms with PIC aot.
5819
5820 2004-11-28  Martin Baulig  <martin@ximian.com>
5821
5822         * mini.c (mono_method_to_ir): In CEE_DUP, added handle_stobj().
5823         Fixes gen-112.cs.
5824
5825 2004-11-28  Martin Baulig  <martin@ximian.com>
5826
5827         * mini-x86.c (mono_arch_call_opcode): Use the original type, not
5828         the result of mono_type_get_underlying_type() to check whether
5829         we're byref.
5830
5831 2004-11-26  Martin Baulig  <martin@ximian.com>
5832
5833         * mini.c
5834         (mono_method_to_ir): Use `!method->signature->has_type_parameters'
5835         in the g_assert().
5836
5837 2004-11-26  Zoltan Varga  <vargaz@freemail.hu>
5838
5839         * mini-amd64.c (mono_arch_emit_this_vret_args): Handle this and vret
5840         the same way as the other arguments so they won't get clobbered.
5841
5842         * mini-amd64.c (mono_arch_output_basic_block): Avoid doing virtual 
5843         calls through R11 since it is clobbered by the trampoline code.
5844
5845 2004-11-26  Raja R Harinath  <rharinath@novell.com>
5846
5847         * Makefile.am: Consistently use $(RUNTIME) rather than ./mono to
5848         pick up in-tree mscorlib.dll.
5849
5850 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
5851
5852         * aot.c: Rename MonoAOTModule->cleanup to out_of_date.
5853
5854         * mini-amd64.c aot.c: Switch to PIC relative AOT code. References to 
5855         runtime data/code are now stored in a table similar to the GOT in ELF. 
5856         This allows the code itself to be position independent.
5857
5858         * aot.c: Fix loading of referenced assemblies after the lazy assembly
5859         loading changes.
5860
5861         * aot.c: Attach ELF type (object/function) directives to all global
5862         symbols.
5863
5864         * tramp-amd64.c (amd64_magic_trampoline): Patch RIP relative calls too.
5865
5866         * inssel.brg (SWITCH): Emit an AOT_CONST in the aot case.
5867
5868         * mini-amd64.h: Turn on PIC AOT code.
5869
5870         * mini.h (mono_arch_get_aot_patch_offset): New arch specific function
5871         returning the offset within an OP_AOTCONST instruction where the GOT
5872         offset needs to be added.
5873
5874         * mini.h: Bump AOT file format version.
5875
5876 2004-11-25  Martin Baulig  <martin@ximian.com>
5877
5878         * mini.c (mono_method_to_ir): In CEE_CALL, don't allow calling any
5879         uninflated generic methods.
5880
5881 2004-11-25  Martin Baulig  <martin@ximian.com>
5882
5883         * mini.c (mono_method_to_ir): Don't allow any uninflated generic methods.
5884
5885 2004-11-24  Martin Baulig  <martin@ximian.com>
5886
5887         * minit.c (type_to_eval_stack_type): Set `inst->klass' to the
5888         original klass (this only applies for generic instances).
5889
5890 2004-11-24  Martin Baulig  <martin@ximian.com>
5891
5892         * mini.c (mono_method_to_ir): Use `STACK_OBJ' instead of
5893         `ldind_type [CEE_LDIND_REF]' (which would be beyond the end of
5894         that array).
5895
5896 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
5897
5898         * mini.c (mono_method_to_ir): Disable inlining for methods containing
5899         localloc. Fixes #69678.
5900
5901         * iltests.il (test_0_localloc_inline): Add regression test for #69678.
5902         
5903 2004-11-23  Zoltan Varga  <vargaz@freemail.hu>
5904
5905         * mini-amd64.c (mono_arch_output_basic_block): Set %al to the number of
5906         used SSE registers on pinvoke calls. Fixes #69774.
5907
5908 2004-11-23  Geoff Norton  <gnorton@customerdna.com>
5909
5910         * inssel-ppc.brg, mini-ppc.c: Use mono_class_from_mono_type instead of
5911         vt->inst_vtype->data.klass.  This fixes generic structs and bug #69766
5912
5913 2004-11-23  Raja R Harinath  <rharinath@novell.com>
5914
5915         * Makefile.am (MCS,ILASM): Don't refer to runtime/ directory.
5916         Refer directly to the mcs/ tree.
5917
5918 2004-11-19  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
5919
5920         * mini-s390.c, tramp-s390.c, mini-s390.h: Add LMF processing for trampolines.
5921         Check if a trampoline for a synchronized method is required. 
5922
5923 Fri Nov 19 17:34:21 CET 2004 Paolo Molaro <lupus@ximian.com>
5924
5925         * mini-ppc.c, cpu-g4.md: set to zero the memory allocated
5926         with localloc if needed. Throe arithmetric exception in
5927         div an rem if needed. Implement ovf checks in OP_LCONV_TO_OVF_I.
5928         Adapted from a patch by Geoff Norton  <gnorton@customerdna.com>.
5929
5930 2004-11-19  Geoff Norton  <gnorton@customerdna.com>
5931
5932         * mini-ppc.c: Call mono_type_get_underlying_type to unwrap generic
5933         types before switching on type.  Fixes #69622.
5934
5935 2004-11-19  Raja R Harinath  <rharinath@novell.com>
5936
5937         * Makefile.am (check-local): New.  Integrate into 'make check'.
5938         (MCS,RUNTIME): Define using in-tree mono and mcs.
5939         (ILASM): New.
5940         (%.exe): Use $(ILASM).
5941
5942 Fri Nov 19 14:54:07 CET 2004 Paolo Molaro <lupus@ximian.com>
5943
5944         * mini-ppc.c: adjust initial prolog size (bug #69691).
5945
5946 2004-11-18  Zoltan Varga  <vargaz@freemail.hu>
5947
5948         * cpu-pentium.md (localloc): Increase max instruction len. Fixes
5949         #69664.
5950
5951 2004-11-17  Raja R Harinath  <rharinath@novell.com>
5952
5953         * Makefile.am (clean-local): Rename from 'clean'.
5954
5955 2004-11-15  Nelae Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
5956
5957         * mini.c, mini-x86.c, mini-amd64.c, exceptions-s390.c: Add siginfo_t parameter
5958         to mono_arch_is_int_overflow. 
5959         * exceptions-s390.c: Add mono_arch_is_int_overflow routine to discern between
5960         SIGFPE events.
5961
5962 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
5963
5964         * declsec.c|h: New files to support declarative security attributes.
5965         Added function to check if a method has (applicable) security.
5966         * mini.c|h: Add check for declarative security attributes in
5967         mono_method_check_inlining.
5968         * Makefile.am: Added declsec.c and declsec.h to the build.
5969
5970 Mon Nov 15 11:53:46 CET 2004 Paolo Molaro <lupus@ximian.com>
5971
5972         * mini.c, mini.h: update to keep dynamic code info per-domain.
5973
5974 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
5975
5976         * mini.c mini-*.h: Get rid of MONO_ARCH_HAVE_RETHROW since all architectures support it now.
5977         (mini_init): Get rid of it from here too.
5978
5979 Thu Nov 11 20:17:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5980
5981         * mini-ppc.c, mini-ppc,h, cpu-g5.md, exceptions-ppc.c:
5982         implemented OP_RETHROW (patch by Geoff Norton
5983         <gnorton@customerdna.com>).
5984
5985 2004-11-10  Geoff Norton  <gnorton@customerdna.com>
5986
5987         * tramp-ppc.c (ppc_magic_trampoline): Don't trampoline methods
5988         between appdomains.  Fixes appdomain-unload on PPC.
5989
5990 2004-10-26  Lluis Sanchez Gual  <lluis@novell.com>
5991
5992         * exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
5993         mini-exceptions.c: handle the new wrapper types.
5994         * mini.c: The CEE_ISINST and CEE_CASTCLASS opcodes now take the
5995         token value as a MonoClass* when compiling a wrapper.
5996         mono_jit_create_remoting_trampoline now takes an additional
5997         MonoRemotingTarget parameter.
5998         
5999 2004-11-10  Martin Baulig  <martin@localhost>
6000
6001         * mini.c (mono_method_to_ir): Use `generic_container->context'
6002         rather than creating a new one.
6003
6004 2004-11-09  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6005
6006         * exceptions-s390.c, mini-s390, cpu-s390.md: Add support for OP_RETHROW.
6007
6008         * inssel-390.md, mini-s390.c: Correct register allocation for globals.
6009
6010 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6011
6012         * aot.c (mono_aot_init): Add MONO_AOT_CACHE env variable to turn on
6013         the experimental aot cache stuff.
6014
6015 Tue Nov 9 17:30:20 CET 2004 Paolo Molaro <lupus@ximian.com>
6016
6017         * aot.c, mini.c, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
6018         mini-exceptions.c: update to exception clause structure changes.
6019
6020 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6021
6022         * exceptions-x86.c (throw_exception): Fix warnings.
6023
6024         * mini-x86.h mini-x86.c cpu-pentium.md exceptions-x86.c: Add support 
6025         for OP_RETHROW.
6026
6027 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6028
6029         * exceptions-sparc.c (get_throw_exception): Really fix this.
6030
6031 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6032
6033         * tramp-*.c: we no longer support icalls without wrappers, so
6034         a bit of code can be removed here
6035
6036 2004-11-07  Zoltan Varga  <vargaz@freemail.hu>
6037
6038         * exceptions-sparc.c (get_throw_exception): Fix more bugs in previous
6039         patch.
6040
6041         * cpu-sparc.md: Add op_rethrow.
6042
6043         * exceptions-sparc.c (get_throw_exception): Fix bug in previous patch.
6044
6045         * mini-sparc.h mini-sparc.c exceptions-sparc.c: Add support for OP_RETHROW.
6046
6047         * mini.h: Add mono_arch_get_rethrow_exception () arch specific function.
6048         * mini-ops.h: Add OP_RETHROW.
6049
6050         * mini.c inssel.brg: Distinguish between THROW and RETHROW.
6051
6052         * cpu-amd64.c mini-amd64.c exceptions-amd64.c: Add support for OP_RETHROW.
6053
6054 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
6055         
6056         * helpers.c: Change otool arguments from -V -v -t to -v -t on Darwin
6057         Makes the output much easier to read
6058
6059 2004-11-05  Ben Maurer  <bmaurer@ximian.com>
6060
6061         * ssa.c: allocate MonoMethodVar.uses from the mempool. First, this
6062         prevents another huge leak when compiling with ssa. Secondly, the
6063         performance of doing this rather than freeing the lists is much
6064         better. GList does a lock every time you allocate a list link,
6065         so that it can use a memory pool. So, it is better to just use
6066         a memory pool of our own.
6067         
6068         * ssa.c, linear-scan.c: replace g_list_remove_link with
6069         g_list_delete.  The remove one does not free the GList, so we were
6070         leaking memory. On -O=all --compile-all with corlib, this cut down
6071         3 MB of allocations.
6072
6073 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
6074
6075         * tramp-sparc.c (mono_arch_create_jit_trampoline): Fix sparc build.
6076
6077         * tramp-amd64.c (mono_arch_create_jit_trampoline): Fix amd64 build.
6078
6079         * mini.h mini.c tramp-*.c: Moved xp parts of JIT trampoline creation
6080         into a new function mono_create_jit_trampoline ().
6081
6082 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
6083
6084         * trace.c (get_spec): Allow tracing of classes without a namespace.
6085
6086 2004-11-02  Sebastien Pouliot  <sebastien@ximian.com>
6087
6088         * mini.c: Fix pointer overwrite in mini_method_compile.
6089
6090 2004-11-2  Geoff Norton  <gnorton@customerdna.com>
6091
6092         * inssel-ppc.brg (OP_OUTARG_VT (CEE_LDOBJ (base))):
6093         The darwin ABI needs some special handling for 1 and 2 byte structs
6094         Lets use lbz/lhz instead of lwz everywhere.
6095         * mini-ppc.c (calculate_sizes):  The Darwin ABI needs from special handling
6096         for 1 and 2 byte structs and struct which are size >= 3 || size % 4 != 0.
6097         Use stb/sth for the former, and put the latter always on stack instead of in
6098         argument registers.
6099
6100 2004-10-30  Zoltan Varga  <vargaz@freemail.hu>
6101
6102         * trace.c (is_filenamechar): Add '_'.
6103
6104 2004-10-29  Neale Ferguson  <Neale.Ferguson@SoftwareAG-usa.com>
6105
6106         * mini-s390.c: Fix prolog length to allow for large trace requirements.
6107
6108         * exceptions-s390.c: Remove dwarf unwinding stuff that was unused.
6109
6110 2004-10-29  Zoltan Varga  <vargaz@freemail.hu>
6111
6112         * Makefile.am (libgc_libs): Do some automake magic so libmono/mono
6113         depends on libmonogc. Fixes #68805.
6114
6115 2004-10-26  Miguel de Icaza  <miguel@ximian.com>
6116
6117         * mini.c (mono_jit_free_method): Provide extra information for
6118         this error.  Currently this leaks, but will be turned into a
6119         developer option in the future.
6120
6121 2004-10-26  Zoltan Varga  <vargaz@freemail.hu>
6122
6123         * driver.c (mono_main): Applied patch from Willibald Krenn <willibald.krenn@gmx.at>. Make --graph work for icalls and pinvoke methods.
6124
6125 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
6126
6127         * aot.c (mono_aot_load_method): Align PATCH_INFO_R8 on an 8 byte 
6128         boundary. Fixes reading of PATCH_INFO_R4 and R8.
6129         (mono_aot_load_method): Do not allocate MonoAotMethod in the GC heap.
6130
6131 2004-10-24  Zoltan Varga  <vargaz@freemail.hu>
6132
6133         * mini-amd64.c (mono_arch_patch_code): Fix patching of class init
6134         trampolines for AOT code.
6135
6136 2004-10-22    <vargaz@freemail.hu>
6137
6138         * aot.c (mono_compile_assembly): Disable AOT for methods containing calls to methods of
6139         constructed types. Fixes #68136.
6140
6141 2004-10-21  Martin Baulig  <martin@ximian.com>
6142
6143         * exceptions-x86.c (throw_exception): Call mono_debugger_throw_exception();
6144         if it returns true, unwind the stack to the call instruction.
6145
6146 2004-10-21    <vargaz@freemail.hu>
6147
6148         * aot.c: Reorganize the AOT file format to avoid relocations. Fix warnings.
6149
6150         * mini.h: Bump AOT version number.
6151
6152         * objects.cs: Add another test for unbox trampolines.
6153
6154         * tramp-amd64.c (amd64_magic_trampoline): Disable patching of trampolines for 
6155         valuetype methods.
6156
6157 2004-10-20    <vargaz@freemail.hu>
6158
6159         * driver.c: Add SHARED to the set of optimizations tested.
6160
6161         * tramp-amd64.c (amd64_magic_trampoline): Patch trampoline code as well.
6162
6163         * mini.c (mono_method_to_ir): Mark the domainvar as volatile when it is implicitly
6164         used by CEE_NEWARR.
6165
6166         * ssa.c (mono_ssa_deadce): Do not optimize away accesses to volatile variables.
6167
6168 2004-10-20  Martin Baulig  <martin@ximian.com>
6169
6170         * mini-exceptions.c (mono_handle_exception): Call
6171         mono_debugger_handle_exception() to tell the debugger about
6172         catch/finally clauses.
6173
6174 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
6175
6176         * exceptions-amd64.c (mono_arch_find_jit_info): Pop arguments of the stack.
6177
6178         * mini-amd64.c (mono_amd64_get_vcall_slot_addr): Handle extended registers. Fixes
6179         #68447.
6180
6181 2004-10-15  Geoff Norton  <gnorton@customerdna.com>
6182
6183         * mini-ppc.c (calculate_sizes): Marshal valuetypes for pinvoke
6184         methods as their native size, fixed bug #57543, #57545.
6185         * mini-ppc.c (mono_arch_output_basic_block): Use mulli for imm16 types
6186         This saves a temporary register and mullw call down into 1 (minor perf
6187         increase for cases like sum = sum * 5;  This use to translate into:
6188             li r11,5
6189             mullw r28,r28,r11
6190         It now translates to
6191             mulli r28,r28,5
6192
6193 2004-10-15  Zoltan Varga  <vargaz@freemail.hu>
6194
6195         * trace.c (mono_trace_eval): Use mono_method_desc_full_match. Fixes
6196         #68388.
6197
6198 2004-10-11  Martin Baulig  <martin@ximian.com>
6199
6200         * mini.c (mono_method_to_ir): If we're a generic method, get the
6201         MonoGenericContainer from our MonoMethodNormal and create a
6202         MonoGenericContext from it.
6203
6204 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
6205
6206         * inssel-long32.brg (OP_LCONV_TO_OVF_I2): Fix CONV_I1 -> CONV_I2.
6207
6208         * basic-long.cs: Add test for checked i8->i2 cast.
6209
6210 Wed Oct 6 12:40:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
6211
6212         * inssel-ppc.brg: added a couple of speedup rules.
6213
6214 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
6215
6216         * Makefile.am (genmdesc_LDADD): Don't link this against libmetadata
6217         to speed up rebuilds.
6218
6219 2004-10-04  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6220
6221         * mini-s390.c: Minor fix to OP_OR_IMM.
6222
6223 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
6224
6225         * tramp-sparc.c (sparc_magic_trampoline): Handle appdomain stuff
6226         better. Fixes appdomain-unload.exe on sparc.
6227
6228 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
6229
6230         * ssa.c: Fixed casts to unsigned where the value was of 64 bits in
6231         simulate_long_compare, patch by will@exomi.com (Ville-Pertti Keinonen),
6232         see bug 67324.
6233
6234 2004-10-02  Zoltan Varga  <vargaz@freemail.hu>
6235
6236         * jit-icalls.c: Handle a nonexisting trunc function more correctly.
6237
6238 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
6239
6240         * mini.c: Always generate a field read/write wrapper for members
6241         of the class MarshalByRefObject since the actual instance could
6242         be a CBO.
6243
6244 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
6245
6246         * mini.c: Use mono_thread_exit() to stop threads, instead of ExitThread.
6247
6248 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
6249
6250         * driver.c mini.h trace.c: Move the setting of the main assembly into
6251         a separate function called mono_trace_set_assembly () and call it after
6252         actually loading the main assembly. Fixes #66872.
6253
6254 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
6255
6256         * mini-amd64.h mini-amd64.c tramp-amd64.c: Allocate trampoline memory
6257         using the code manager.
6258
6259 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
6260
6261         * tramp-amd64.c mini-amd64.h: Add support for MONO_ARCH_HAVE_INVALIDATE_METHOD.
6262
6263 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
6264
6265         * cpu-amd64.md: Fix bug in previous patch.
6266         
6267         * cpu-amd64.md: Fix instruction lengths of membase opcodes. Fixes
6268         #66650.
6269
6270 Wed Sep 22 19:03:20 CEST 2004 Paolo Molaro <lupus@ximian.com>
6271
6272         * mini.h, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
6273         mini-exceptions.c: updates for changed stack walk interface.
6274
6275 2004-09-21  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6276
6277         * mini-s390.c, cpu-s390.md: Minor changes to OP_ARGLIST handling
6278
6279 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
6280
6281         * mini.c (mono_method_to_ir): Fix LDSTR in dynamic methods. Fixes #66132.
6282
6283 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
6284
6285         * driver.c (mini_regression_list): Do not call mono_assembly_close 
6286         since assemblies can't be unloaded.
6287         
6288 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
6289
6290         * cpu-amd64.md: Fix more instruction lengths.
6291
6292         * cpu-amd64.md: Fix lengths of some instructions.
6293
6294 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
6295
6296         * inssel.brg: Make the array ldelema check aot friendly.
6297
6298 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
6299
6300         * mini-amd64.c (mono_arch_get_argument_info): Fix stack_unwind test.
6301
6302         * cpu-amd64.md inssel-long.brg inssel-amd64.brg: Small optimizations.
6303
6304 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
6305
6306         * mini-x86.c: Fix build.
6307
6308         * mini-sparc.c mini-x86.c mini-amd64.c: Use the new 
6309         mono_type_get_underlying_type () helper function to simplify code.
6310         
6311 2004-09-09  Martin Baulig  <martin@ximian.com>
6312
6313         * mini-amd64.c: Don't access `type->data.klass' directly, call
6314         mono_class_from_mono_type() instead since the type may be a
6315         generic instance.
6316
6317 2004-09-09  Martin Baulig  <martin@ximian.com>
6318
6319         * mini-amd64.c (get_call_info): Fix support for generic instances.
6320         (add_valuetype): Use mono_class_from_mono_type() to get the class
6321         since we can be a generic instance.
6322
6323 Thu Sep 9 01:43:53 PDT 2004 Paolo Molaro <lupus@ximian.com>
6324
6325         * mini-ppc.c, mini.h, regalloc.c, regalloc.h: powerpc speedups.
6326
6327 2004-09-07 Ben Maurer  <bmaurer@users.sourceforge.net>
6328
6329         * liveness.c: reset spill costs on each scan: bug 62107
6330
6331 2004-09-07  Bernie Solomon  <bernard@ugsolutions.com>
6332
6333         * exceptions-sparc.c (mono_arch_find_jit_info): remove
6334         unnecessary line that doesn't compile
6335
6336 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
6337
6338         * mini.c mini.h mini-x86.h tramp-x86.c: Instead of freeing delegate
6339         trampolines, make them call an error function so people can fix their
6340         code.
6341
6342 2004-09-06  Martin Baulig  <martin@ximian.com>
6343
6344         * mini.c (mono_method_to_ir): When initializing locals, handle a
6345         generic instances like a valuetype if it's a valuetype and like a
6346         class if it's a class.
6347
6348 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
6349
6350         * exceptions-x86.c (mono_arch_find_jit_info): Pop arguments off the
6351         stack. Fixes #64674.
6352
6353         * exceptions.cs: Add test for unwinding of call arguments.
6354
6355 Mon Sep 6 05:50:02 PDT 2004 Paolo Molaro <lupus@ximian.com>
6356
6357         * mini-*.c, mini-ops.h, inssel-long32.brg: introduced
6358         OP_ADDCC_IMM and OP_SUBCC_IMM (add/sub immediate that will
6359         set the carry/borrow flag). The sparc and s390 implementations
6360         can now use optimized versions (and simplify the code). ppc bugfixes.
6361
6362 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
6363
6364         * exceptions-ppc.c (mono_arch_find_jit_info): Fix memory leak.
6365
6366 2004-09-05  Zoltan Varga  <vargaz@freemail.hu>
6367
6368         * inssel-amd64.brg: Remove leftover 32 bit rule.
6369
6370         * mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support.
6371
6372 2004-09-04  Zoltan Varga  <vargaz@freemail.hu>
6373
6374         * mini-exceptions.c (mono_find_jit_info): Refactor common code from
6375         mono_arch_find_jit_info functions into a new function. Fix a memory
6376         leak.
6377
6378         * exceptions-x86.c exceptions-amd64.c exceptions-sparc.c: Remove
6379         refactored code.
6380         
6381 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
6382
6383         * exceptions.cs inssel-long32.brg: Handle the OP_LCONV_TO_OVF_I2 case
6384         as well.
6385         
6386         * exceptions.cs: Add array size tests.
6387
6388         * mini.c: Allocate a separate icall wrapper for each arity of 
6389         mono_array_new_va. Fixes #59509.
6390
6391         * exceptions.cs: Add testcase for 64578.
6392
6393         * inssel-long32.brg: Fix OP_LCONV_TO_OVF_I1 rule. Fixes #64578.
6394
6395         * trace.c (is_filenamechar): Allow 0..9 in strings. Fixes #65094.
6396         
6397 2004-09-02  Martin Baulig  <martin@ximian.com>
6398
6399         * mini.c (mono_method_to_ir): When initializing the locals, call
6400         handle_initobj() on the generic instance itself, not its
6401         underlying type.
6402
6403 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
6404
6405         * mini.h (MonoJitDynamicMethodInfo): New structure, extension of 
6406         MonoJitInfo for dynamic methods.
6407
6408         * mini.c: Rename trampoline_hash_mutex to jit_mutex.
6409
6410         * mini.c: Add support for freeing JIT data for dynamic methods.
6411         
6412 2004-09-01  Martin Baulig  <martin@ximian.com>
6413
6414         * mini-x86.c (is_regsize_var): Added support for generic
6415         instances.
6416         (mono_arch_emit_prolog): Make this compile again, use
6417         `x86_push_imm_template (code)'.
6418
6419 2004-08-30 Ben Maurer  <bmaurer@users.sourceforge.net>
6420
6421         * mini-x86.c: make all push_imm instructions that get
6422         patched always emit the long form
6423
6424 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
6425
6426         * mini.c (mono_create_jump_trampoline): Store the jump trampolines 
6427         in a per-domain hash.
6428
6429         * mini-amd64.c (merge_argument_class_from_type): Handle generic
6430         types.
6431
6432 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
6433
6434         * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: Ongoing SSE
6435         work.
6436         
6437         * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: More SSE
6438         work.
6439
6440         * mini-amd64.c cpu-amd64.md: Implement checked int<->uint casts.
6441         Beginnings of SSE2 support.
6442
6443         * exceptions.cs: Add more tests for checked int<->uint casts.
6444
6445 2004-08-28  Martin Baulig  <martin@ximian.com>
6446
6447         * mini-x86.c (mono_arch_instrument_epilog): Added support for
6448         generic instances.
6449
6450         * mini.c
6451         (mono_type_to_ldind, mono_type_to_stind, type_to_eval_stack_type):
6452         Handle generic instances recursively.
6453
6454 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
6455
6456         * iltests.il: test for conv.u8 on a constant
6457
6458 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
6459
6460         * inssel-long32.brg: c&p rules for LCONV_x4 (membase) and
6461         LCONV_x4 (shrun_32 (membase)).
6462
6463 2004-08-27 Ben Maurer  <bmaurer@users.sourceforge.net>
6464
6465         * inssel-x86.brg: c&p rules for push/setret of long
6466
6467 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
6468
6469         * inssel-x86.brg: c&p rules for compare (base, regvar) and
6470         compare (regvar, base)
6471
6472         * inssel-x86.brg: more burg love
6473
6474         * inssel.brg: more cleanup
6475
6476         * inssel-x86.brg, inssel-long32.brg: burg cleanup.
6477
6478 2004-08-26 Ben Maurer  <bmaurer@users.sourceforge.net>
6479
6480         * basic-long.cs, basic-calls.cs: new tests for optimization.
6481
6482 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
6483
6484         * mini-amd64.c (read_tls_offset_from_method): Fix typo in previous
6485         patch.
6486
6487 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
6488
6489         * mini-amd64.c (read_tls_offset_from_method): Add another case.
6490         
6491 2004-08-25  Bernie Solomon  <bernard@ugsolutions.com>
6492
6493         * inssel.brg (mini_emit_memcpy): use 
6494         NO_UNALIGNED_ACCESS to disable memcpy optimization
6495
6496 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
6497
6498         * mini-amd64.c: Handle generic types in various places.
6499
6500         * mini.c (mono_method_to_ir): Handle generic types in init locals.
6501
6502 2004-08-24  Zoltan Varga  <vargaz@freemail.hu>
6503
6504         * mini.c (handle_box): Fix warning.
6505
6506         * mini-amd64.c (mono_arch_local_regalloc): Fix regalloc problem.
6507
6508         * mini-amd64.h: Enable the emit_state optimization.
6509
6510         * mini-ops.h cpu-amd64.md: Add new amd64_test_null opcode.
6511
6512         * mini-amd64.c: Add some new 64 bit peephole opts.
6513
6514         * inssel.brg (mini_emit_memcpy): Optimize for 64 bit architectures.
6515
6516         * cpu-amd64.md: sreg1 of div instructions must be %rax.
6517
6518         * mini-amd64.c: Register allocator fixes.
6519
6520         * mini.c: Add an optimization to emit_state to avoid allocation of new
6521         registers on some platforms.
6522
6523 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
6524
6525         * inssel-x86.brg inssel-amd64: Add yet another missing tree->dreg assignment.
6526
6527         * mini-x86.c (mono_arch_local_regalloc): Fix bug in long register
6528         allocation. Fixes #63085.
6529
6530         * basic-long.cs: Add new regression test.
6531
6532         * mini-amd64.c: Register allocator improvements.
6533
6534 2004-08-21  Zoltan Varga  <vargaz@freemail.hu>
6535
6536         * mini-amd64.c (read_tls_offset_from_method): Add another code
6537         sequence.
6538
6539         * tramp-amd64.c (amd64_class_init_trampoline): Use a more efficient
6540         instruction sequence for nullifying class init trampolines.
6541
6542         * objects.cs: Add new regalloc test.
6543
6544         * mini-amd64.c inssel-amd64.brg: Optimize parameter passing.
6545
6546 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
6547
6548         * mini-amd64.c (mono_arch_call_opcode): Refactor this a little.
6549         
6550         * mini-amd64.c (mono_arch_regalloc_cost): Adjust regalloc costs for
6551         arguments.
6552
6553         * driver.c: Fix profiling after TLS changes.
6554         
6555         * driver.c (mono_main): Set mono_stats.enabled if needed.
6556
6557         * mini.c (handle_alloc): New helper function used by CEE_NEWOBJ and
6558         CEE_BOX.
6559
6560 2004-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
6561
6562         * mini-x86.c: use a 1 op rather than a 2 op tls access
6563         instruction -> faster.
6564
6565 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
6566
6567         * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from
6568         x86 backend.
6569
6570 2004-08-19 Bernie Solomon <bernard@ugsolutions.com>
6571
6572         * exceptions-sparc.c (throw_exception): fix typo
6573
6574 2004-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
6575
6576         * mini-x86.c, cpu-pentium.md, inssel-x86.brg:
6577         set tree->dreg correctly with tls. Allow any
6578         register to be used.
6579
6580         * mini-x86.c (read_tls_offset_from_method): add new code
6581         generation pattern seen with GCC.
6582
6583
6584 Thu Aug 19 17:26:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
6585
6586         * mini-exceptions.c, exceptions-x86.c, exceptions-amd64.c,
6587         exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c,
6588         exceptions-sparc.c: fix some performance issues in exception
6589         handling and setting of the stack trace for exceptions that were
6590         already thrown.
6591
6592 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
6593
6594         * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from 
6595         x86 backend.
6596         
6597         * mini-amd64.c (mono_arch_is_int_overflow): Handle all possible 
6598         registers.
6599
6600 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
6601
6602         This patch inlines tls access, when possible.
6603         
6604         * mini.h: new arch functions for TLS intrinsics.
6605         All platforms updated with a stub.
6606
6607         * mini.c: use the new intrinsics
6608
6609         * mini-x86.c, cpu-pentium.md, inssel-x86.brg, mini-ops.h:
6610         arch specific intrinsic for tls variables
6611
6612 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
6613
6614         * Makefile.am (libmono_la_LDFLAGS): Enable creating of libmono dll
6615         under windows.
6616
6617 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
6618
6619         * mini.c: thread local allocation
6620
6621 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
6622
6623         * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Enable.
6624
6625         * Makefile.am: Link against the static version of libmonogc.
6626         
6627         * Makefile.am: Link the static versions of the convenience libraries
6628         into the mono executable.
6629
6630         * mini-x86.h mini-x86.c: Throw the correct exception on integer overflow.
6631
6632 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
6633
6634         * mini.h mini.c mini-amd64.h mini-amd64.c: Throw the correct exception
6635         on integer overflow.
6636
6637         * mini-amd64.c: Reorganize function call code.
6638
6639         * mini-amd64.c (peephole_pass): Merge changes from mini-x86.c.
6640
6641 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
6642
6643         * inssel-x86.brg: use xor eax,eax.
6644         
6645         * basic.cs: new tests
6646
6647 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
6648
6649         * mini-amd64.c (mono_arch_emit_epilog): Use RIP relative addressing
6650         in exception throwing code.
6651         
6652 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
6653
6654         * inssel-x86.brg: use xor esi,esi.
6655
6656 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
6657
6658         * driver.c (mono_main): Call mono_trace_parse_options earlier so it
6659         can trace methods compiled during mini_init () too.
6660
6661         * cpu-amd64.md mini-amd64.c (mono_arch_output_basic_block): Handle 
6662         CEE_CONV_U4.
6663
6664 2004-08-14 Ben Maurer  <bmaurer@ximian.com>
6665
6666         * Makefile.am: static link on x86 (r=zoltan)
6667
6668 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
6669
6670         * tramp-amd64.c (amd64_magic_trampoline): Avoid patching the trampoline
6671         code since it causes some programs to fail.
6672
6673 2004-08-12  Zoltan Varga  <vargaz@freemail.hu>
6674
6675         * mini-amd64.c (bb_is_loop_start): Merge changes from mini-x86.c.
6676
6677 2004-08-11  Bernie Solomon <bernard@ugsolutions.com>
6678
6679         * mini.c: ovfops_op_map - add STACK_OBJ case for
6680         CONV_I 
6681         * basic.cs: add test_0_pin_string as test
6682         case for above.
6683
6684 2004-08-11  Bernie Solomon <bernard@ugsolutions.com>
6685
6686         * Makefile.am: build C# if srcdir != builddir
6687
6688 Tue Aug 10 19:23:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
6689
6690         * dominators.c, mini.h, mini-x86.c: fix loop alignment with
6691         fall-through blocks.
6692
6693 Tue Aug 10 16:18:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
6694
6695         * driver.c: enable loop by default again and include abcrem in -O=all.
6696
6697 2004-08-08  Zoltan Varga  <vargaz@freemail.hu>
6698
6699         * iltests.il: Add some localloc tests.
6700
6701         * mini.c (mono_method_to_ir): Set stack type of LOCALLOC correctly.
6702
6703         * inssel-amd64.brg inssel-x86.brg: Set dreg of LOCALLOC correctly. 
6704         Fixes #62574.
6705
6706         * inssel-amd64.brg: Add some optimizations.
6707
6708         * mini-amd64.c (mono_arch_setup_jit_tls_data): Add tls offset detection
6709         for gcc-3.4.
6710
6711         * Makefile.am: Statically link mono against libmono on AMD64.
6712         
6713         * mini-amd64.c inssel-amd64.brg: Optimizations.
6714
6715 2004-08-07  Zoltan Varga  <vargaz@freemail.hu>
6716
6717         * mini-amd64.c (mono_arch_emit_prolog): Optimize lmf saving a bit.
6718
6719         * tramp-amd64.c: Patch calling code in trampolines.
6720
6721 2004-08-06  Zoltan Varga  <vargaz@freemail.hu>
6722
6723         * mini-amd64.c: pinvoke struct passing fixes.
6724
6725 2004-08-05  Bernie Solomon  <bernard@ugsolutions.com>
6726
6727         * mini-sparc.c: redo change, make mono_arch_cpu_init call
6728         mono_arch_cpu_optimizazions so sparcv9 is initialized when embedded
6729
6730 2004-08-05  Duncan Mak  <duncan@ximian.com>
6731
6732         * mini.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
6733         CEE_LDELEM_ANY.
6734
6735 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
6736
6737         * mini-amd64.c (emit_move_return_value): Move return value for normal
6738         calls too.
6739
6740 2004-08-05  Martin Baulig  <martin@ximian.com>
6741
6742         * mini.c (ret_type_to_call_opcode): Don't use a `t' variable for
6743         `type->type'; just modify `type' itself when dealing with enums
6744         and generic instances.
6745         (check_call_signature): Make `simple_type' a `MonoType *'.
6746
6747 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
6748
6749         * mini.c: Use OP_PADD to add offsets to addresses.
6750
6751         * mini-amd64.h: Disable SIGSEGV_ON_ALTSTACK.
6752
6753 2004-08-04  Bernie Solomon  <bernard@ugsolutions.com>
6754
6755         * mini-sparc.c (mono_arch_emit_epilog): fix check
6756         for folding last op into restore instruction
6757
6758 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
6759
6760         * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Allocate
6761         helper methods using the code manager.
6762         
6763         * exceptions-amd64.c (mono_arch_get_throw_exception): Fix maximum length.
6764
6765         * mini-amd64.c (mono_arch_allocate_vars): Fix tls offset detection.
6766
6767 Tue Aug 3 23:50:00 EST 2004 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6768         
6769         * mini-s390x.c mini-s390x.h tramp-s390x.c inssel-s390x.brg
6770           cpu-s390x.md exceptions-s390x.c Makefile.am: S/390 64-bit JIT
6771
6772         * mini-s390.c: fix tail processing
6773
6774 Tue Aug 3 01:35:44 PDT 2004 Paolo Molaro <lupus@ximian.com>
6775
6776         * mini-ppc.c: mul.ovf.un exception name fix.
6777
6778 2004-08-03  Martin Baulig  <martin@ximian.com>
6779
6780         * mini-x86.c (mono_arch_call_opcode): Correctly handle generic
6781         instances; before jumping to `handle_enum', also modify `ptype'.
6782
6783 2004-08-02  Bernie Solomon  <bernard@ugsolutions.com>
6784
6785         * cpu-sparc.md: fcall maximal length too small.
6786
6787 2004-08-02  Zoltan Varga  <vargaz@freemail.hu>
6788
6789         * mini-amd64.c mini.h: Add initial support for passing/returning 
6790         structures to/from pinvoked methods.
6791
6792 Mon Aug 2 11:59:35 PDT 2004 Paolo Molaro <lupus@ximian.com>
6793
6794         * mini-ppc.c: reg allocator fix.
6795
6796 2004-07-31  Zoltan Varga  <vargaz@freemail.hu>
6797
6798         * mini-amd64.c (mono_arch_output_basic_block): Fix OP_X86_PUSH_OBJ.
6799
6800         * inssel.brg: Optimize memset on 64 bit machines.
6801
6802         * mini-amd64.c: Fix some vararg cases.
6803
6804 2004-07-30  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6805
6806         * mini-s390.c: Corrected macro in emit_float_to_int
6807
6808         * s390-abi.cs: Tests to exercise the s390 ABI
6809
6810 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
6811
6812         * exceptions-amd64.c (mono_arch_find_jit_info): Fix restoring of
6813         caller saved regs.
6814
6815         * basic.cs: Add a test for add.ovf.un.
6816
6817 2004-07-30  Bernie Solomon  <bernard@ugsolutions.com>
6818
6819         * mini-sparc.c: add case for OP_IDIV_UN
6820
6821 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
6822
6823         * mini-amd64.c mini-amd64.h mini.c: Add support for vararg pinvoke calls.
6824         
6825         * mini-amd64.c cpu-amd64.md: Ongoing JIT work.
6826
6827 2004-07-30  Ben Maurer  <bmaurer@ximian.com>
6828
6829         * basic.cs: regression tests.
6830
6831         * inssel-x86.brg: Disable cmp BYTE PTR [eax], imm, it causes various
6832         regressions.
6833
6834 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
6835
6836         * basic.cs: Add a new test.
6837
6838         * mini-amd64.c aot.c cpu-amd64.md: Add support for tracing, profiling 
6839         and AOT. Various fixes and optimizations.
6840
6841         * inssel.brg (CALL_REG): Add 64 bit versions of call_reg rules.
6842
6843 Fri Jul 30 15:49:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
6844
6845         * mini-ppc.c: make sure temp regs are not used for global reg
6846         allocation.
6847
6848 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
6849
6850         * cpu-sparc.md: conv_i8 fix for 64bits
6851
6852         * mini-sparc.c: add cases for OP_IXXX codes for 64bits
6853
6854 2004-07-29  Ben Maurer  <bmaurer@ximian.com>
6855         
6856         * cpu-pentium.md, mini-x86.c, inssel-x86.brg, mini-ops.h:
6857         add opcode for cmp BYTE PTR [eax], imm.
6858
6859         * inssel.brg: Make memcpy and memset takes bases.
6860
6861 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
6862
6863         * *-amd64.*: More AMD64 work.
6864         
6865 2004-07-28  Ben Maurer  <bmaurer@ximian.com>
6866
6867         * cpu-pentium.md, inssel-x86.brg, mini-ops.h, mini-x86.c:
6868         add a compare-not-equal opcode.
6869         
6870 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
6871
6872         * mini.c: Use mono_init_from_assembly instead of mono_init.
6873         
6874 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
6875
6876         * mini.c: Fix opcode mapping for STACK_MP on 64 bit platforms.
6877
6878         * mini.c (CEE_NEWOBJ): Call mono_array_new_va using the correct signature.
6879
6880         * mini.c: Use MONO_ARCH_SIGACTION on AMD64 as well.
6881
6882         * inssel.brg: 64 bit fixes.
6883
6884         * mini.h (MonoCallInst): Add some AMD64 specific data.
6885
6886         * mini.h: Add some OP_P opcodes.
6887
6888 2004-07-28  Ben Maurer  <bmaurer@ximian.com>
6889
6890         * basic.cs: tests for 61797 and 61740
6891
6892 Tue Jul 27 16:05:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
6893
6894         * mini-ppc.c, mini-sparc.c, mini-s390.c: keep track of line
6895         numbers in the debug info (spotted by Geoff Norton, <gnorton@customerdna.com>).
6896
6897 2004-07-24  Zoltan Varga  <vargaz@freemail.hu>
6898
6899         * mini-sparc.c (mono_arch_output_basic_block): Add CEE_CONV_U8/I8.
6900
6901         * *-amd64*.*: Ongoing AMD64 work.
6902
6903 2004-07-23 Zoltan Varga <vargaz@freemail.hu>
6904
6905         * inssel-long.brg: Implement CONV_I8/CONV_U8 in the backends.
6906
6907         * *-amd64*: Ongoing AMD64 work.
6908
6909         * mini-arch.h: Add AMD64 support.
6910
6911         * mini-sparc.c (mono_arch_is_inst_imm): New arch dependent function.
6912
6913         * mini.h: Add new arch dependent function mono_arch_is_inst_imm.
6914
6915         * mini-ops.h: Add new opcodes.
6916
6917         * Makefile.am: Add AMD64 support.
6918
6919         * inssel.brg inssel-long32.brg inssel-long.brg: Move mul/div and shift
6920         rules into the inssel-long*.brg files.
6921
6922         * *-amd64.*: Add beginnings of AMD64 backend.
6923
6924 2004-07-22  Ben Maurer  <bmaurer@ximian.com>
6925
6926         * mini.c (print_dfn): commenting out the code that prints
6927         the cil. With -O=deadce, this makes -v -v crash.
6928         
6929         * cpu-pentium.md: make checkthis have a length of 2
6930
6931 2004-04-21  Bernie Solomon  <bernard@ugsolutions.com>
6932
6933         * mini-sparc.h: fix implementations of __builtin
6934         functions for Sun compiler for V9.
6935
6936 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
6937
6938         * mini.c: use the new stelem.ref wrapper
6939         * exceptions.cs, arrays.cs: new stelem.ref tests
6940
6941 Wed Jul 14 19:08:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
6942
6943         * mini-ppc.c, exceptions-ppc.c: cleanups and fixes (the
6944         new XSP should work with these changes).
6945
6946 2004-07-14  Ben Maurer  <bmaurer@ximain.com>
6947         
6948         * inssel-{long32,x86,}.brg: trivial optimizations.
6949         
6950 Mon Jul 12 20:25:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
6951
6952         * mini.c: load value when emitting box operation in
6953         constrained calls.
6954
6955 2004-07-12  Ben Maurer  <bmaurer@ximian.com>
6956
6957         * mini-x86.c (OP_CHECK_THIS): cmp DWORD PTR [eax], eax
6958         is one byte shorter than cmp DWORD PTR [eax], 0.
6959
6960 Mon Jul 12 17:47:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
6961
6962         * inssel-ppc.brg: arguments on the stack are always
6963         relative to the stack pointer (spotted by Neale Ferguson).
6964
6965 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6966
6967         * exceptions-x86.c: delay appending the method name to the trace until
6968         after mono_jit_info_table_find is called, as this gets the real
6969         MonoMethod.
6970
6971 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
6972
6973         * aot.c: register roots
6974
6975 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
6976
6977         * aot.c : I could just use PLATFORM_WIN32 flag.
6978
6979 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
6980
6981         * aot.c : Reverting the previous fix. This time it broke linux build.
6982
6983 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
6984
6985         * aot.c : quick cygwin build fix. mkdir() with two args does not exist.
6986
6987 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
6988
6989         * mini.c (handle_stack_args): Remove some more debugging code.
6990         
6991         * mini.c (handle_stack_args): Remove debug output left in by mistake.
6992
6993         * driver.c mini.h aot.c: Allow additional options to be specified with
6994         --aot and pass them to mono_compile_assembly.
6995
6996         * aot.c: Add experimental code to AOT compile all loaded assemblies
6997         on demand and save the code into a cache in the filesystem.
6998
6999         * aot.c: Add support for more wrapper methods.
7000         
7001         * mini.c (handle_stack_args): Handle some corner cases. Fixes 
7002         58863.
7003
7004         * cpu-*.md: Remove removed opcodes.
7005
7006         * mini.h mini.c: Move JIT icall handling to icall.c. Replace usage of
7007         CEE_MONO_PROC<x> with CEE_MONO_ICALL. Move registration of marshalling
7008         related icalls to marshal.c.
7009
7010 2004-07-06  Zoltan Varga  <vargaz@freemail.hu>
7011
7012         * mini-ops.h: Add OP_SAVE_LMF and OP_RESTORE_LMF.
7013
7014         * Makefile.am (EXTRA_DIST): Add inssel-long[32].brg.
7015
7016         * inssel.brg: Fix warning. Add rules for SAVE_LMF and RESTORE_LMF.
7017
7018 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
7019         * liveness.c: If liveness is recomputated we need to reset the information
7020         for each variable. This way, if the liveness range has been narrowed
7021         by optimizations that happened after the last computation, we can return
7022         a smaller range.
7023         
7024         For example, if you have
7025         
7026         {
7027                 int i = 0;
7028                 
7029                 // Tons of code that does not affect i
7030                 
7031                 i = foo ();
7032                 ...
7033         }
7034         
7035         i = 0 is dead code and will be removed by SSA. However, when
7036         linear scan gets to the code, i will still appear to be live
7037         throughout the entire block. This prevents good register allocation.
7038
7039 2004-07-06  Martin Baulig  <martin@ximian.com>
7040
7041         * debug-mini.c (mono_debug_init_method): Allow
7042         MONO_WRAPPER_MANAGED_TO_NATIVE wrappers.
7043         (mono_debug_add_icall_wrapper): New method.
7044
7045         * mini.c (mono_icall_get_wrapper): Call mono_debug_add_icall_wrapper().
7046
7047 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
7048
7049         * mini.c (optimize_branches): Fix linking of bblocks in branch->branch
7050         optimization.
7051
7052 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
7053
7054         * aot.c (mono_aot_load_method): Fix loading of debug info.
7055
7056 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
7057
7058         * aot.c: Add logging support.
7059
7060 2004-07-01  Zoltan Varga  <vargaz@freemail.hu>
7061
7062         * mini.h: Add prototype for mono_print_method_from_ip.
7063
7064         * mini.c: 64 bit fixes. Use LCOMPARE for comparing longs.
7065
7066         * inssel.brg: 64 bit fixes.
7067
7068         * inssel.brg inssel-long32.brg: Move 32 bit arithmetic rules to 
7069         inssel-long32.brg.
7070
7071         * Makefile.am: Add SPARC64 support.
7072
7073 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
7074
7075         * aot.c: Fix alignment problems on 32 bit platforms.
7076
7077 2004-07-01  Zoltan Varga  <vargaz@freemail.hu>
7078
7079         * helpers.c (mono_disassemble_code): Pass -xarch=v9 to assembler on
7080         SPARC64.
7081
7082         * aot.c: Add SPARC64 support. Reorganize patch table to fix alignment
7083         problems.
7084
7085         * mini.h: Bump AOT file version. Some 64 bit fixes.
7086
7087 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
7088
7089         * inssel-sparc.brg: Add new rule to avoid register moves.
7090
7091         * inssel.brg: Add ldind_to_load_membase helper function.
7092
7093 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
7094
7095         * mini.c: OffsetToStringData intrinsic.
7096         
7097 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
7098
7099         * ssa.c: Handle OP_LCOMPARE the same as OP_COMPARE.
7100
7101         * objects.cs exceptions.cs basic.cs basic-long.cs basic-calls.cs: New
7102         regression tests.
7103
7104         * mini-ops.h cpu-sparc.md mini-sparc.h mini-sparc.c exceptions-sparc.c tramp-sparc.c inssel-long.brg: Add SPARC64 support.
7105 Mon Jun 28 18:05:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
7106
7107         * mini.c: reinstated mono_compile_get_interface_var()
7108         on x86, too, since the change breaks the Gtk# build there as well.
7109
7110 Fri Jun 25 17:36:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
7111
7112         * driver.c: remove loop from the default optimizations: it seems to
7113         interact badly with some of the other options (see bug #60613).
7114
7115 2004-06-25  Zoltan Varga  <vargaz@freemail.hu>
7116
7117         * mini.c mini-x86.h mini-x86.c: Applied patch from Guenter Feldmann 
7118         (fld@informatik.uni-bremen.de): Add Solaris x86 support.
7119
7120 Tue Jun 22 21:29:11 CEST 2004 Paolo Molaro <lupus@ximian.com>
7121
7122         * mini-ppc.c, cpu-g4.md: small updates to be able to compile
7123         vararg-using methods.
7124
7125 2004-06-21  Martin Baulig  <martin@ximian.com>
7126
7127         * mini/mini-exceptions.c
7128         (mono_handle_exception): Added `gpointer original_ip' argument.
7129         After calling mono_unhandled_exception(), call
7130         mono_debugger_unhandled_exception() and if that returns true,
7131         restore the context and return.
7132
7133 Mon Jun 21 19:26:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
7134
7135         * mini-ppc.c: prefer the use of relative branches so
7136         they won't need to be patched in aot code (patch from Patrick Beard).
7137
7138 Mon Jun 21 19:03:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
7139
7140         * aot.c: patch from Patrick Beard to make the output assembly
7141         more correct for the MacOSX assembler. Small tweak to
7142         generate sane images on Linux/PPC, too.
7143
7144 Fri Jun 18 18:24:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
7145
7146         * mini.c, mini.h, mini-ppc.c: handle varargs methods with a special
7147         case until bug #59509 is fixed (shows up in #60332).
7148
7149 Tue Jun 15 16:36:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
7150
7151         * mini.c: make sure the needed wrappers are compiled, too, with
7152         precomp.
7153
7154 Mon Jun 14 18:36:08 CEST 2004 Paolo Molaro <lupus@ximian.com>
7155
7156         * driver.c: remove NPTL reference in --version output.
7157
7158 Sun Jun 13 17:25:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
7159
7160         * aot.c: patch from Patrick Beard (pcbeard@mac.com) to
7161         generate valid assembly for the Mach-O assembler.
7162
7163 Sun Jun 13 15:59:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
7164
7165         * driver.c: don't include abcrem in the all optimization specifier
7166         since it slows down jit compilation too much for now.
7167
7168 2004-06-12 Ben Maurer  <bmaurer@users.sourceforge.net>
7169
7170         * mini.c: use BIGMUL only if both operands have the same signage.
7171         * iltests.il: Test for bug 60056. (errors related to signage in
7172         BIGMUL).
7173
7174         r=lupus.
7175
7176 Thu Jun 10 16:06:42 CEST 2004 Paolo Molaro <lupus@ximian.com>
7177
7178         * mini.c, aot.c: memory leak fixes.
7179
7180 Tue Jun 8 16:37:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7181
7182         * inssel-long32.brg: implemented a few missing ulong cast opcodes.
7183
7184 Tue Jun 8 15:36:30 CEST 2004 Paolo Molaro <lupus@ximian.com>
7185
7186         * Makefile.am: remove the -static hack completely, it links in
7187         statically glib as well.
7188
7189 Sat Jun 5 16:32:33 CEST 2004 Paolo Molaro <lupus@ximian.com>
7190
7191         * iltests.il, mini.c: fixed bug#59580 in branch optimization.
7192         * exceptions.cs: make it compile with new mcs/csc.
7193
7194 2004-06-03 Massimiliano Mantione <massi@ximian.com>
7195         * cpu-pentium.md basic-float.cs Fixed bug on fpu spills (see bug 54467),
7196         and added relevant test case.
7197
7198 Mon May 31 19:41:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
7199
7200         * mini.c revert Zoltan's fix to bug#58863 on ppc, since it causes
7201         regressions in gtk-sharp.
7202
7203 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
7204
7205         * exceptions.cs: New regression tests.
7206
7207         * jit-icalls.c (mono_llmult_ovf): Fix some boundary conditions.
7208
7209 Sat May 29 10:45:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
7210
7211         * mini.c: emit castclass/isinst in their own trees (bug #54209/59057).
7212
7213 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
7214
7215         * mini-sparc.h (MONO_ARCH_NEED_DIV_CHECK): Define this.
7216
7217         * cpu-sparc.md mini-sparc.c: Add overflow detection to div opcodes.
7218
7219 2004-05-28      Patrik Torstensson <totte@hiddenpeaks.com>
7220
7221         * mini.c (mono_jit_runtime_invoke): Init class in this
7222         method instead of trusting mono_jit_compile_method to
7223         do the work (because wrappers can be in object class)
7224
7225 2004-05-27  Zoltan Varga  <vargaz@freemail.hu>
7226
7227         * mini-sparc.c (mono_arch_output_basic_block): Fix sub.imm.
7228
7229         * basic-long.cs: New regression test.
7230
7231 Thu May 27 15:50:52 CEST 2004 Paolo Molaro <lupus@ximian.com>
7232
7233         * cpu-g4.md, mini-ppc.c: fixes to long add/sub ovf opcodes
7234         and div/rem checks.
7235
7236 Thu May 27 12:36:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
7237
7238         * Makefile.am: fix miguel's change to build mono statically against
7239         libmono (track build dependencies).
7240
7241 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
7242
7243         * cfold.c: Some glib versions do not have G_MININT32.
7244
7245 2004-05-26  Massimiliano Mantione  <massi@ximian.com>
7246
7247         * mini-x86.c cpu-pentium.md Makefile.am basic-math.cs: Fixed problem
7248         with precision of tan, atan, sin and cos, and implemented related
7249         regressions tests (fixes bug 54467, but one new problem appeared and
7250         is not fixed yet).
7251
7252 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
7253
7254         * cfold.c (FOLD_BINOPZ): Avoid division by zero.
7255
7256         * exceptions.cs: Add test for constant folding && division by zero.
7257
7258         * driver.c mini.h mini.c mini-x86.c: Revert most of the previous patch
7259         since driver.c is in libmono too, so the optimization was useless.
7260
7261         * driver.c mini.h mini.c mini-x86.c: Moved the mono_lmf_addr TLS 
7262         variable to driver.c so the compiler can emit more efficient code to
7263         access them.
7264
7265 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7266
7267         * Makefile.am: don't distribute generated inssel.[ch] files.
7268
7269 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
7270
7271         * mini.c (mono_jit_compile_method_with_opt): Really emit icall wrappers
7272         into the default appdomain. Fixes #58707.
7273
7274         * jit-icalls.c: Remove the broken approximation for truncl, doing
7275         no conversion is better.
7276
7277         * mini.c (handle_stack_args): Avoid reusing variables for stack slots.
7278         Fixes #58863.
7279
7280 Tue May 25 14:33:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
7281
7282         * mini-ops.h, mini-ppc.c, cpu-g4.md, inssel-ppc.brg: eliminate the use
7283         of the mcrxr instruction which is not available on some processors
7284         even if it's documented to be. Implement add and sub overflow correctly
7285         (still not complete for long unsigned). Speed up icalls a bit.
7286
7287 2004-05-25 13:01 CET Patrik Torstenson <totte@hiddenpeaks.com>
7288
7289         * mini.c (mono_jit_compile_method_with_opt): Make sure that
7290         we run .cctor in the current domain instead of target_domain.
7291         
7292         Fixes bug #58558, .cctor not being called in -O=shared.
7293
7294 Tue May 25 12:46:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
7295
7296         * mini-ppc.h, jit-icalls.c: added explicit checks for divide by zero.
7297
7298 2004-05-24 Ben Maurer  <bmaurer@users.sourceforge.net>
7299
7300         * mini-x86.c (EMIT_COND_BRANCH): If an OP_LABEL has an offset
7301         which can be done with an imm8, do it that way.
7302         (mono_arch_output_basic_block): ditto for a jmp
7303         (mono_arch_emit_prolog): Computate maximum offset of a label.
7304
7305 2004-05-24 18:18 CET Patrik Torstenson <totte@hiddenpeaks.com>
7306
7307         * mini-x86.c (mono_arch_local_regalloc): the reg allocator
7308         now tries to allocate prefered physical reg's for virtual
7309         regs. This reduces the number of emited spills/loads with
7310         20-30% on our core assemblies.
7311
7312 Mon May 24 18:21:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
7313
7314         * jit-icalls.c: truncl() is not needed and trunc() is
7315         the correct thing to do anyway (bug #58287).
7316
7317 2004-05-24  Zoltan Varga  <vargaz@freemail.hu>
7318
7319         * mini-sparc.c (mono_arch_flush_icache): Call sync_instruction_memory
7320         if available.
7321
7322 Mon May 24 12:49:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
7323
7324         * driver.c: enable loop optimizations by default.
7325
7326 Mon May 24 11:13:46 CEST 2004 Paolo Molaro <lupus@ximian.com>
7327
7328         * mini-x86.c: fix calc of max loop size when aligning loops start.
7329
7330 2004-05-23  Zoltan Varga  <vargaz@freemail.hu>
7331
7332         * ssa.c (mono_ssa_cprop): Allocate carray dynamically instead of on
7333         the stack.
7334
7335 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
7336
7337         * mini-sparc.c (mono_arch_output_basic_block): ADD_IMM and SUB_IMM
7338         should set carry.
7339
7340         * basic-long.cs: Add tests for add/subtract of immediates with carry.
7341
7342         * mini.c exceptions-x86.c: Remove MONO_USE_EXC_TABLES stuff.
7343         
7344         * mini.c (inline_method): Allways inline some wrappers even if the cost
7345         is too large. Fixes #58785.
7346
7347         * mini.c: Add support for MARSHAL_CONV_FTN_DEL.
7348         
7349 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
7350
7351         * mini-sparc.c exceptions-sparc.c: Applied patch from Mark Crichton
7352         (crichton@gimp.org). Beginning of support for sparc/linux.
7353
7354         * mini-sparc.c: Optimize retrieval of LMF address.
7355
7356 Fri May 21 08:00:12 EDT 2004 Paolo Molaro <lupus@ximian.com>
7357
7358         * exceptions-ppc.c:  handle alloca in methods with clauses.
7359
7360 Fri May 21 07:35:30 EDT 2004 Paolo Molaro <lupus@ximian.com>
7361
7362         * mini-ppc.c: cleanups, off-by-one fixes, avoid recursive thunks.
7363
7364 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
7365
7366         * mini.c: Delegate most of the abort signal work to 
7367           mono_thread_request_interruption, which also handles Stop and Suspend
7368           states.
7369
7370 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
7371
7372         * mini.c mini.h: Allow inlining of icall wrappers if the backend 
7373         supports the save/restore lmf opcodes.
7374
7375 2004-05-19  Zoltan Varga  <vargaz@freemail.hu>
7376
7377         * mini-x86.c (mono_arch_setup_jit_tls_data): Handle code generated
7378         by gcc-3.4 as well.
7379
7380         * mini-x86.h mini-x86.c tramp-x86.c: Optimize lmf restoring code.
7381
7382 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
7383
7384         * mini.h mini.c (mini_method_compile): Only run abc removal pass on 
7385         methods which contain array accesses.
7386
7387         * mini.c (CEE_LDTOKEN): Handle this instruction correctly on bb
7388         boundaries. Fixes #58537.
7389
7390         * iltests.il: Add regression test for #58537.
7391
7392 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
7393
7394         * mini-x86.c (mono_arch_local_regalloc): Last part of
7395         fix for bug #58633 (releasing register to early).
7396
7397 2004-05-18  Miguel de Icaza  <miguel@ximian.com>
7398
7399         * basic-long.cs: Add new regression test.
7400
7401 2004-05-18  Patrik Torstensson <totte@hiddenpeaks.com>
7402
7403         * mini-x86.c (mono_arch_local_regalloc): Avoid releasing a
7404         register too early on the chain.
7405
7406 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
7407
7408         * mini.c (create_helper_signature): Use a helper function to reduce
7409         the code which needs to be written. Also set the calling convention of
7410         icalls on windows. Fixes #57840.
7411
7412 Tue May 18 11:05:18 CEST 2004 Paolo Molaro <lupus@ximian.com>
7413
7414         * mini.h, exceptions-x86.c, exceptions-sparc.c, exceptions-s390.c,
7415         exceptions-ppc.c: added helper function to get the instruction address
7416         from a signal handler context.
7417
7418 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
7419
7420         * helpers.c: use g_get_tmp_dir. Invokes happyness 
7421         from gonzalo.
7422
7423 2004-05-17 Ben Maurer  <bmaurer@users.sourceforge.net>
7424
7425         * helpers.c: Add new env variable to pass args to objdump.
7426         Specifically for those of us who love -Mintel. r=miguel, gonzalo.
7427
7428 2004-05-17  Radek Doulik  <rodo@ximian.com>
7429
7430         * Makefile.am (common_sources): added abcremoval.h so it get
7431         disted and daily mono packages on go-mono.com will build again
7432
7433 2004-05-17  Massimiliano Mantione  <massi@ximian.com>
7434
7435         * abcremoval.c: Fixed coding style, added copyright header.
7436
7437         * abcremoval.h: Fixed style and moved prototype to mini.h, added copyright header.
7438
7439         * mini.h: Added prototype for abc removal main function.
7440
7441         * build_relations_propagation_table.pl: Added copyright header.
7442
7443 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
7444
7445         * basic-long.cs: reg test for complex ceq_long bug.
7446
7447 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
7448
7449         * mini-x86.c (mono_arch_local_regalloc): Correctly free 
7450         reg in long and clob case (bug #58343). Fixed/added comments.
7451
7452 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
7453
7454         * mini.c (mono_jit_runtime_invoke): Follow new convention
7455         of calling the invoke method with an function pointer.
7456
7457 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
7458
7459         * ChangeLog: Fix author of memory leak patch.
7460
7461 Fri May 14 15:13:06 CEST 2004 Paolo Molaro <lupus@ximian.com>
7462
7463         * Makefile.am: fix make dist as well...
7464
7465
7466 2004-05-14  Massimiliano Mantione  <massi@ximian.com>
7467
7468         * cfold.c: Made so that conversions from pointer to int4 are no-ops
7469         on archs where pointers are 4 bytes long.
7470
7471         * Makefile.am: Added abcremoval.c source file.
7472
7473         * abcremoval.c: Added abcremoval.c.
7474
7475         * abcremoval.h: Added abcremoval.h.
7476
7477         * build_relations_propagation_table.pl: Added build_relations_propagation_table.pl.
7478
7479         * inssel.brg: Enabled bounds check removal.
7480
7481         * mini.c: Added support for abcrem optimization.
7482
7483         * mini.h: Added abcrem optimization label.
7484
7485         * driver.c: Added support for abcrem optimization.
7486
7487         * propagated_relations_table.def: Added propagated_relations_table.def.
7488
7489 Fri May 14 14:30:13 CEST 2004 Paolo Molaro <lupus@ximian.com>
7490
7491         * mini.c, cfold.c: fix style.
7492
7493 Fri May 14 14:28:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
7494
7495         * mini.c: handle issue with the low-level implementation of
7496         some long opcodes (bug #54209).
7497
7498 2004-05-13 Ben Maurer  <bmaurer@users.sourceforge.net>
7499
7500         * basic.cs: test for my new cmov stuff.
7501
7502 2004-05-13      Patrik Torstensson
7503
7504         * mini-x86.c: added OP_X86_COMPARE_MEMBASE_IMM peephole
7505         opt and added peephole documentation.
7506
7507 Thu May 13 11:41:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
7508
7509         * tramp-ppc.c: rewrote the generic trampoline code.
7510
7511 2004-05-11      Patrik Torstensson
7512
7513         * mini-x86.c: optimize long shl/shr asm code (one less branch)
7514
7515 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
7516
7517         * basic.cs basic-long.cs objects.cs: Make these compile under MS csc.
7518
7519         * mini.h mini.c dominators.c: Applied patch from Derek Woo
7520         (derek@eecg.toronto.edu): Fix memory leaks in loop optimizations.
7521
7522         * mini.c: Add new icalls for AsAny marshalling.
7523
7524 Tue May 11 16:00:38 CEST 2004 Paolo Molaro <lupus@ximian.com>
7525
7526         * tramp-ppc.c, mini-ppc.c: more cleanups.
7527
7528 2004-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7529
7530         * mini.c: no warnings.
7531
7532 Tue May 11 13:59:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
7533
7534         * mini-ppc.c, mini.c: use mono_resolve_patch_target ().
7535
7536 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
7537
7538         * mini.c: In the thread abort signal handler, if the thread is in the
7539         process of being stoped, don't throw the Abort exception, just stop the
7540         thread.
7541
7542 Tue May 11 12:15:24 CEST 2004 Paolo Molaro <lupus@ximian.com>
7543
7544         * tramp-ppc.c: removed old code.
7545
7546 Tue May 11 12:02:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
7547
7548         * mini.h, mini-ppc.c, cfold.c: export mono_is_power_of_two().
7549         do some simple speed optimizations on ppc.
7550
7551 Mon May 10 17:21:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
7552
7553         * mini-ppc.c, cpu-g4.md: fixes to handle large stack frames
7554         and large offsets in load/store.
7555
7556 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * mini-x86.c (mono_arch_local_regalloc): Remove the previous fix, since
7559         it causes regressions.
7560
7561 2004-05-07  Zoltan Varga  <vargaz@freemail.hu>
7562
7563         * mini-sparc.c: Fix vararg support + add beginnings of sigaltstack
7564         support.
7565
7566 Fri May 7 13:25:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
7567
7568         * jit-icalls.c: remove warnings.
7569         * inssel-x86.brg, inssel.brg, mini-x86.c, cfold.c: some simple
7570         speedups for unsafe code.
7571
7572 2004-05-07 Ben Maurer  <bmaurer@users.sourceforge.net>
7573
7574         * inssel.brg: Optimize Stind.[ui][12]. r=zoltan.
7575
7576 2004-05-06  Zoltan Varga  <vargaz@freemail.hu>
7577
7578         * basic-calls.cs: Add new regression test.
7579
7580         * mini.c (mono_runtime_install_handlers): Use SA_ONSTACK since it is
7581         more portable.
7582
7583         * mini.c (mono_method_to_ir): Handle opcode emulation for *_OVF opcodes.
7584
7585         * mini-x86.c (mono_arch_local_regalloc): Free new_dest register when it
7586         is no longer used.
7587
7588 2004-05-06      Patrik Torstensson
7589
7590         * mini-x86.[c|h], inssel-x86.brg, cpu-pentium.md, mini.c: enabled
7591         long reg allocation in any reg (not only eax:edx) and implemented 
7592         long shl/shr ops in asm instead of helpers.
7593
7594 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
7595
7596         * mini-sparc.h: Fix warnings.
7597
7598         * exceptions-sparc.c (mono_arch_find_jit_info): Pop unused lfm off the
7599         stack.
7600
7601         * mini-exceptions.c (mono_handle_exception): Call the filter in a
7602         separate statement for clarity.
7603
7604         * mini-sparc.c: Update status.
7605
7606 2004-05-04  Zoltan Varga  <vargaz@freemail.hu>
7607
7608         * mini-exceptions.c (ves_icall_get_frame_info): Flush register windows
7609         here.
7610
7611 Mon May 3 22:58:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
7612
7613         * inssel-ppc.brg: another small pre-release workaround:
7614         we don't do overflow detection for long_sub_un.
7615
7616 Sun May 2 20:12:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
7617
7618         * mini.c, mini-ops, inssel-long32.brg: speedup ulong >> 32
7619         (also works around a weird ppc bug: 57957).
7620
7621 Sat May 1 16:56:10 EDT 2004 Paolo Molaro <lupus@ximian.com>
7622
7623         * tramp-ppc.c: trampoline fixes.
7624
7625 Fri Apr 30 15:54:26 EDT 2004    Paolo Molaro <lupus@ximian.com>
7626
7627         * mini-ppc.c: fixed typos.
7628
7629 Thu Apr 29 20:15:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
7630
7631         * mini-ppc.c, exceptions-ppc.c: more code saves registers
7632         at the top of the stack. Fixed typos. Use a frame registers
7633         for all the methods with exception clauses.
7634
7635 Thu Apr 29 18:52:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
7636
7637         * exceptions-ppc.c: restore fp registers.
7638
7639 Thu Apr 29 18:26:56 CEST 2004 Paolo Molaro <lupus@ximian.com>
7640
7641         * mini-ppc.c, exceptions-ppc.c: save the registers in reverse
7642         order from the stack top (moved the stack room to save the
7643         return value for trace after the param area). Fixed corruption
7644         in restoring registers on unwind.
7645
7646 Thu Apr 29 16:47:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7647
7648         * mini-ppc.c, cpu-g4.md: fixed unisgned -> double conversion.
7649
7650 Thu Apr 29 13:50:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
7651
7652         * exceptions-ppc.c, mini-ppc.h, mini-ppc.c: fixed localloc
7653         and prolog/epilog for methods that use it. Allow
7654         enough param area room for varargs methods. Fix miguel's
7655         breakage in exception handling.
7656
7657 Thu Apr 29 12:06:51 CEST 2004 Paolo Molaro <lupus@ximian.com>
7658
7659         * Makefile.am: run genmdesc only on current arch.
7660
7661 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7662
7663         * exceptions-x86.c:
7664         * mini-x86.h: fix the build on windows.
7665
7666 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
7667
7668         * 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.
7669
7670         * exceptions-sparc.c exceptions-ppc.c exceptions-s390.c mini-ppc.h mini-s390.h mini-sparc.h: Fix up ports after changes.
7671
7672         * mini-exceptions.c: New file.
7673         
7674         * mini.c mini-exceptions.c mini-x86.h exceptions-x86.c Makefile.am:
7675         Move some parts of the x86 exception handling code to an 
7676         arch-independent file so it can be shared with other ports.
7677
7678 Tue Apr 27 12:15:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
7679
7680         * trace.c, cpu-g4.md, inssel-ppc.brg, mini-ppc.c: some fixes for FP code.
7681
7682 2004-04-26  David Waite  <mass@akuma.org>
7683
7684         * driver.c: remove comma from end of enumeration declaration
7685
7686 2004-04-26  Jackson Harper  <jackson@ximian.com>
7687
7688         * driver.c: parse config file before loading first assembly. This
7689         allows the user gac to be enabled/disabled. 
7690         
7691 2004-04-23  Miguel de Icaza  <miguel@ximian.com>
7692
7693         * mini-ppc.c (ppc_patch): Replaced the branch code patching with a
7694         simpler mechanism: we do not care what is encoded initially
7695         (branch absolute or relative), we care about the code and its
7696         target.  I kept the old code for reference for now.
7697
7698         The new code tries first to determine if the jump is anywhere in
7699         the -/+32 absolute meg range, if it succeeds, it encodes using the
7700         absolute branch;  If not, it tried to find something in the
7701         relative range, if not, it uses the handle_thunk code. 
7702
7703 Fri Apr 23 14:20:40 EDT 2004 Paolo Molaro <lupus@ximian.com>
7704
7705         * exceptions-ppc.c: use the correct ip register on macosx.
7706
7707 Thu Apr 22 13:23:16 EDT 2004 Paolo Molaro <lupus@ximian.com>
7708
7709         * exceptions.c, mini.c, mini-ppc.h: adapt code to macosx.
7710
7711 Thu Apr 22 18:08:37 CEST 2004 Paolo Molaro <lupus@ximian.com>
7712
7713         * mini-ppc.c, cpu-g4.md: made the branch macros more flexible.
7714         Raise exception on integer divide by zero by hand since the hw
7715         doesn't support it. Handle NaNs in FP compares.
7716
7717 Thu Apr 22 16:10:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
7718
7719         * exceptions-ppc.c, mini-ppc.h, mini.c: simplified some
7720         code reducing duplication between the platforms and enabled
7721         signal exception handling (on linux for now).
7722
7723 Wed Apr 21 12:27:48 EDT 2004 Paolo Molaro <lupus@ximian.com>
7724
7725         * exceptions-ppc.c: more macosx support.
7726
7727 Wed Apr 21 16:38:28 CEST 2004 Paolo Molaro <lupus@ximian.com>
7728
7729         * mini-ppc.h, mini-ppc.c, cpu-g4.md: enable bigmul optimization.
7730
7731 Wed Apr 21 16:20:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7732
7733         * mini.h, mini-ppc.c, cpu-g4.md: support for implicit exceptions.
7734
7735 2004-04-19 Ben Maurer  <bmaurer@users.sourceforge.net>
7736
7737         * iltests.il: more tests.
7738
7739 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
7740
7741         * mini-*.c (mono_arch_get_allocatable_int_vars): Skip written-only
7742         vars as well.
7743
7744 Mon Apr 19 19:39:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
7745
7746         * mini-ppc.c: some fixes to bootstrap mcs/corlib/etc.
7747
7748 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
7749
7750         * liveness.c: Mark variables as volatile in all basic blocks reachable
7751         from exception clauses.
7752
7753 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
7754
7755         * exceptions.cs (test_0_rethow_stacktrace): Make this work with
7756         inlining.
7757
7758 2004-04-18 Ben Maurer  <bmaurer@users.sourceforge.net>
7759
7760         * iltests.il, basic.cs: more tests for regalloc.
7761
7762 2004-04-17 Ben Maurer  <bmaurer@users.sourceforge.net>
7763
7764         * iltests.il: Some tests for register allocation modifications
7765         I have locally.
7766
7767 2004-04-16  Zoltan Varga  <vargaz@freemail.hu>
7768
7769         * exceptions.cs: Add regression test for bug #56782.
7770
7771         * exceptions-*.c (mono_arch_handle_exception): Do not overwrite the
7772         original stack trace if an exception is rethrown. Fixes #56782. Oh,
7773         the beauty of fixing the same thing in 5 different files...
7774
7775 2004-04-15  Zoltan Varga  <vargaz@freemail.hu>
7776
7777         * mini.c (mono_method_to_ir): Do not compute coverage for inlined
7778         methods.
7779
7780 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * mini.c: Add support for STRWLPARRAY marshalling convention.
7783
7784 Wed Apr 14 18:15:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
7785
7786         * exceptions-ppc.c: missing fixes in mono_jit_walk_stack (need
7787         to init the context to setup the regs pointer).
7788
7789 Wed Apr 14 17:59:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
7790
7791         * exceptions-ppc.c: more exceptions work.
7792
7793 Wed Apr 14 17:46:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
7794
7795         * mini.c: avoid reusing the same MonoInst on multiple trees: this is
7796         not allowed.
7797
7798 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
7799
7800         * inssel-x86.brg (reg): Add new rules for add, sub and mul that
7801         can use the memory directly.
7802
7803         * cpu-pentium.md: Update documentation from a post from Zoltan. 
7804
7805         add x86_add_membase, x86_sub_membase, x86_mul_membase
7806
7807 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
7808
7809         * mini-ppc.c: Remove unused definitions FLOAT_REGS and
7810         GENERAL_REGS they were also hardcoded for all PPC ports.
7811
7812         (add_general): Use PPC_NUM_REG_ARGS instead of GENERAL_REGS.
7813
7814         Remove hard-coded limit for floating point registers, use
7815         PPC_LAST_FPARG_REG instead in MONO_TYPE_R4 and MONO_TYPE_R8.
7816
7817         Notice that in MacOS X calling conventions you can fit a lot more
7818         floating point values in registers, so I should update the PInvoke
7819         test to excercise the passing of floating point values on the
7820         stack (currently broken).
7821         
7822 2004-04-06  Miguel de Icaza  <miguel@ximian.com>
7823
7824         * tramp-ppc.c (create_trampoline_code): Added
7825         JUMP_TRAMPOLINE_SIZE. 
7826         (ppc_magic_trampoline): Follow the pattern from
7827         x86_magic_trampoline: if code is set to zero, return. 
7828         (create_trampoline_code): Always pass MonoMethod to the jump
7829         trampoline, before it was passing a null.
7830         (mono_arch_create_jump_trampoline): Implement the jump stub, could
7831         share the code with mono_arch_create_jit_trampoline. 
7832
7833         * mini-ppc.c (mono_arch_output_basic_block): CEE_JMP opcode
7834         implemented.
7835         (mono_arch_patch_code): MONO_PATCH_INFO_METHOD_JUMP patch type
7836         implemented.  
7837
7838         * cpu-g4.md: Added length for jmp instruction, the worst case
7839         scenario is 92 bytes (4 mandatory bytes, potential 19 registers
7840         for save_lmf).
7841
7842 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
7843
7844         * aot.c (mono_compile_assembly): Add back unlink removed by mistake.
7845
7846 2004-04-07  Zoltan Varga  <vargaz@freemail.hu>
7847
7848         * mini.c: Only set bblock->real_offset when adding a new bblock, and
7849         before each IL instruction.
7850
7851         * mini.c (CEE_BOX): Fix warnings.
7852
7853 2004-04-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7854
7855         * mini.c: removed a few unused vars and extra whitespace.
7856
7857 2004-04-05 Ben Maurer  <bmaurer@users.sourceforge.net>
7858
7859         * inssel.brg (MONO_EMIT_BOUNDS_CHECK): a new macro to emit bounds
7860         checks.
7861         (MONO_EMIT_BOUNDS_CHECK_IMM): the above, but when you know the
7862         index.
7863         (OP_GETCHR): use the above
7864         (CEE_LDELEMA): use the above.
7865
7866         * inseel-x86.brg (MONO_EMIT_BOUNDS_CHECK): a faster and smaller
7867         version of the generic impl.
7868         (MONO_EMIT_BOUNDS_CHECK_IMM): the same
7869         (CEE_LDELEMA): use the above.
7870
7871 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
7872
7873         * inssel-long32.brg (CEE_CONV_OVF_I8): Sign extend the i4 value to i8.
7874         Fixes #56317.
7875
7876         * iltests.il: Added new regression test for #56317.
7877
7878 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
7879
7880         * mini-x86.c (mono_arch_setup_jit_tls_data): Use pthread_attr_get_np
7881         under NetBSD. Fixes #56450.
7882
7883         * liveness.c (update_gen_kill_set): Fix previous patch.
7884
7885 2004-04-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7886
7887         * mini-x86.h: SA_STACK defined as SA_ONSTACK. Fixed build under NetBSD.
7888
7889 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
7890
7891         * mini.c (mono_method_to_ir): Avoid handle_loaded_temps in
7892         ldsfld and ldsflda.
7893
7894         * inssel-sparc.brg: Add more optimizations.
7895
7896         * mini-sparc.c: Replace multiply/divide with shifts if possible.
7897
7898 2004-04-01  Martin Baulig  <martin@ximian.com>
7899
7900         * mini.c (handle_box): New static function; moved the
7901         implementation of CEE_BOX here.
7902         (mono_method_to_ir): Added `constrained_call' variable.
7903         (mono_method_to_ir:CEE_CONSTRAINED_): Set it.
7904         (mono_method_to_ir:CEE_CALL): If `constrained_call' is set, use
7905         mono_method_get_constrained() to get the method.
7906
7907 2004-04-01  Martin Baulig  <martin@ximian.com>
7908
7909         * mini.c (TYPE_PARAM_TO_TYPE, TYPE_PARAM_TO_CLASS): Removed.
7910         (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): Removed.
7911         (mono_method_to_ir): We don't need these macros anymore since
7912         mono_class_get_full() already takes care of it. 
7913
7914 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7915
7916         * aot.c: set aot_verbose to 0, fixed format string that caused sigsegv,
7917         use @function (as doesn't accept #function here) and check the return
7918         value of system and stop if fails.
7919
7920 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7921
7922         * mini.c: set the timeout to 2s when calling mono_domain_finalize.
7923
7924 2004-03-31  Zoltan Varga  <vargaz@freemail.hu>
7925
7926         * mini-ppc.c (mono_arch_patch_code): Fix ppc build.
7927
7928         * inssel-sparc.brg mini-sparc.c aot.c: Implement AOT support.
7929
7930         * inssel-long32.brg (OP_LNEG): Use ADC instead of ADD here. Fixes
7931         #56223.
7932
7933         * basic-long.cs: Add test for negation of Int64.MinValue.
7934
7935 2004-03-30  Zoltan Varga  <vargaz@freemail.hu>
7936
7937         * mini-sparc.c: Update status.
7938
7939         * mini-sparc.c tramp-sparc.c: Save lmf in trampolines.
7940
7941         * exceptions-sparc.c: Fix return value in filters.
7942
7943         * inssel-sparc.brg: Fix register allocation in some rules.
7944
7945 2004-03-28  Martin Baulig  <martin@ximian.com>
7946
7947         * mini.c (mmono_method_to_ir): In CEE_STELEM, do a handle_stobj()
7948         if neccessary.  
7949
7950 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
7951
7952         * mini-x86.c (mono_arch_patch_code): Fix warnings.
7953         
7954         * mini-x86.c (mono_arch_output_basic_block): Fix CEE_MUL_OVF_UN if 
7955         dreg is not EAX. Thanks to Willibard Krenn for spotting this. Also
7956         remove unused conv_u4 opcode.
7957
7958         * mini-x86.c: Remove valgrind workaround since it slows down things
7959         even when mono is not run under valgrind.
7960
7961 2004-03-26  Zoltan Varga  <vargaz@freemail.hu>
7962
7963         * mini-sparc.c: Update status.
7964
7965         * inssel-sparc.brg: Add some optimizations.
7966
7967         * inssel-sparc.brg mini-sparc.c: Rework branch instructions to allow
7968         future delay slot filling. Add support for varargs, tail calls and JMP.
7969
7970         * inssel.brg mini-ops.h mini.c: Use OP_REFANYTYPE instead of 
7971         CEE_REFANYTYPE, since CEE_REFANYTYPE needs a prefix to be unique.
7972
7973         * inssel.brg: Fix register allocation in OP_ARGLIST.
7974
7975         * inssel.brg: Fix warnings.
7976
7977 2004-03-25  Martin Baulig  <martin@ximian.com>
7978
7979         * mini.c (inflate_generic_field): Removed.
7980         (mini_get_method): Removed, use mono_get_method_full(),
7981         (mini_get_class): Removed, use mono_class_get_full().
7982         (mono_method_to_ir): Pass our generic context to
7983         mono_field_from_token().        
7984
7985 2004-03-25  Martin Baulig  <martin@ximian.com>
7986
7987         * mini.c (mini_get_class): Take a `MonoGenericContext *' instead
7988         of a `MonoMethod *'.
7989         (mini_get_method): Take a `MonoGenericContext *' instead
7990         of a `MonoMethod *'.
7991         (TYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_TYPE): mono_method_to_ir() has
7992         a new local variable called `generic_context' which holds the
7993         current `MonoGenericContext *'; use it to lookup things.
7994
7995 2004-03-24  Martin Baulig  <martin@ximian.com>
7996
7997         * mini.c (mini_get_class): New static method; if we're inside a
7998         generic instance, inflate the class if neccessary.
7999         (mono_method_to_ir): Use mini_get_class() instead of mono_class_get().
8000
8001 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
8002
8003         * iltests.il: New regression test for #55976.
8004
8005         * mini.c (mono_method_to_ir): Empty the stack in endfinally. Fixes
8006         #55976.
8007
8008 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
8009
8010         * exceptions-sparc.c (mono_sparc_handle_exception): Remove debugging
8011         output.
8012
8013 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
8014
8015         * liveness.c: Consider SSA stores as well as loads when making vars
8016         volatile.
8017
8018         * exceptions.cs: New regression tests for register allocation.
8019         
8020 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
8021
8022         * mini-ppc.c, tramp-ppc.c: Added lock for accessing the domain code manager.
8023         * mini.c: Removed domain lock from mono_jit_compile_method_with_opt. Use
8024           domain lock only to protect puntual access to data structures.
8025           Added access lock for sighash, jit_icall_hash_name, 
8026           jit_icall_hash_addr and domain->code_mp.
8027
8028 2004-03-20  Zoltan Varga  <vargaz@freemail.hu>
8029
8030         * driver.c: Print SIGSEGV handling method.
8031
8032         * mini-x86.c (mono_arch_free_jit_tls_data): Add missing ifdef.
8033
8034         * mini.c (setup_jit_tls_data): Handle case when this is called
8035         multiple times for a thread.
8036
8037         * mini-x86.c cpu-pentium.md: Fix floating point branch opcodes so fbxx 
8038         is different from fbxx_un. Fixes #54303. Also use constants instead of
8039         magic numbers in a lot of places.
8040
8041 2004-03-19  Zoltan Varga  <vargaz@freemail.hu>
8042
8043         * exceptions.cs: Fix cctor test when --regression is used.
8044
8045 Thu Mar 18 19:57:56 CET 2004 Paolo Molaro <lupus@ximian.com>
8046
8047         * mini-ppc.c, exceptions-ppc.c: basic exceptions support 
8048         for Linux/ppc.
8049
8050 Thu Mar 18 19:56:19 CET 2004 Paolo Molaro <lupus@ximian.com>
8051
8052         * inssel-ppc.brg: fixed register assignments for some rules.
8053
8054 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
8055
8056         * exceptions.cs: Add test for exceptions in static constructors.
8057
8058         * mini.c (mono_jit_compile_method_with_out): Move the calling of
8059         static constructors outside the domain lock. Fixes #55720.
8060
8061 2004-03-17  Martin Baulig  <martin@ximian.com>
8062
8063         * mini.c (get_generic_field_inst): Removed, this'll never happen.
8064         (inflate_generic_field): Take the `MonoMethod *' instead of the
8065         `MonoClass *' and added support for generic method.
8066         (mono_method_to_ir): In CEE_LDSFLD and CEE_STSFLD, assert we never
8067         have a `field->parent->gen_params', only inflate the field if it's
8068         an open constructed type.
8069
8070 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
8071
8072         * exceptions-x86.c (mono_arch_handle_exception): Allocate a new
8073         exception object instead of the preconstructed ones.
8074
8075 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8076
8077         * mini.c: reverted changed to sigsegv_signal_handler commited
8078         accidentally in the previous patch.
8079
8080 2004-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8081
8082         * mini.c:
8083         (mono_method_to_ir): CEE_CALLVIRT, abort if no method. It hanged when
8084         running --aot with an old assembly.
8085
8086 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
8087
8088         * mini-sparc.c (mono_arch_instrument_epilog): Fix handling of floating
8089         point values.
8090
8091         * mini-sparc.c: Add support for v9 branches with prediction.
8092
8093 2004-03-15  Bernie Solomon  <bernard@ugsolutions.com>
8094
8095         * mini.c (mini_init): #warning is GNUC only
8096
8097         * mini-sparc.h: implement __builtin_frame_address
8098         and __builtin_return_address for Sun C compiler
8099
8100 2004-03-15  Zoltan Varga  <vargaz@freemail.hu>
8101
8102         * exceptions-sparc.c (mono_arch_has_unwind_info): Add missing function.
8103
8104 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
8105
8106         * basic-calls.cs: Add test for unaligned byref long argument passing.
8107
8108         * mini-ops.h: Add sparcv9 compare and branch instructions.
8109
8110         * inssel-sparc.brg mini-sparc.h mini-sparc.c cpu-sparc.md: Use some
8111         v9 instructions if we have a v9 cpu.
8112
8113         * mini-sparc.c (mono_arch_get_global_int_regs): Use unused input
8114         registers for global allocation.
8115
8116         * exceptions-sparc.c: Fixes.
8117         
8118 2004-03-11  Zoltan Varga  <vargaz@freemail.hu>
8119
8120         * liveness.c (mono_analyze_liveness): Optimized version.
8121
8122         * inssel-sparc.brg cpu-sparc.md: Ongoing sparc work.
8123
8124         * mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Ongoing
8125         sparc work.
8126
8127         * basic-float.cs basic-calls.cs: New regression tests.
8128
8129 2004-03-10  Zoltan Varga  <vargaz@freemail.hu>
8130
8131         * mini-x86.h: Define SIGSEGV_ON_ALTSTACK only if we have a working
8132         sigaltstack implementation.
8133
8134         * mini-x86.c (mono_arch_setup_jit_tls_data): Fix previous patch.
8135         
8136         * mini-x86.c (mono_arch_setup_jit_tls_data): Turn off the sigaltstack
8137         stuff if SIGSEGV_ON_ALTSTACK is not defined.
8138
8139 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
8140
8141         * mini.c: Fix warnings.
8142         
8143         * mini.c (mono_resolve_patch_target): New function which contains the
8144         arch independent part of the patching process.
8145
8146         * mini-x86.c (mono_arch_patch_code): Move arch independent parts of the
8147         patching code to a separate function.
8148
8149 2004-03-09  Bernie Solomon  <bernard@ugsolutions.com>
8150
8151         * mini.c (add_signal_handler): ifdef out on Windows
8152
8153 2004-03-08  Zoltan Varga  <vargaz@freemail.hu>
8154
8155         * mini-sparc.h mini-sparc.c inssel-sparc.brg exceptions-sparc.c 
8156         cpu-sparc.md: Add exception handling support + other fixes.
8157
8158         * driver.c: Print --help output to stdout. Fixes #55261. Also fix
8159         typed GC detection in --version.
8160
8161         * basic.cs exceptions.cs: New regression tests.
8162
8163         * mini.h mini-x86.h mini-ppc.h: Add MonoCompileArch structure where
8164         the arch specific code can store data during a compilation.
8165
8166         * mini-ops.h: Add OP_SETFRET.
8167
8168         * mini.c (mini_get_ldelema_ins): Instead of allways calling the same
8169         function, register a separate icall for each arity, so the icalls can
8170         get a wrapper.
8171         
8172         * mini.c (mono_print_tree): Print negative offsets in a more readable
8173         form.
8174         
8175         * mini.c: Make signal handling work on sparc.
8176         
8177         * mini.c (mini_init): Add emulation for lconv_to_r8_un.
8178
8179         * inssel-long32.brg: Fix OP_LSUB_OVF_UN rule.
8180
8181         * jit-icalls.c: Emulate truncl by aintl on solaris.
8182
8183         * jit-icalls.c (mono_lconv_to_r8_un): New icall emulation function.
8184
8185 2004-03-05  Zoltan Varga  <vargaz@freemail.hu>
8186
8187         * mini.c (mini_init): fconv_to_ovf can raise exceptions.
8188
8189 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
8190
8191         * mini.c: In CEE_ISINST and CEE_CASTCLASS, if the type is an interface or
8192         a MarshalByRef type, inline a method that performs the check, taking into
8193         account that the object can be a proxy. Also implemented tow new opcodes:
8194         CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
8195         * inssel.brg: Implemented two new opcodes, mini-ops.h: OP_CISINST and 
8196         OP_CCASTCLASS, which implement CEE_MONO_CISINST and CEE_MONO_CCASTCLASS.
8197
8198 Tue Mar 2 17:23:48 CET 2004 Paolo Molaro <lupus@ximian.com>
8199
8200         * mini-ppc.c: if a relative branch displacement is too big
8201         but it points to and area reachable with an absolute branch, 
8202         avoid the thunks.
8203
8204 Tue Mar 2 16:59:40 CET 2004 Paolo Molaro <lupus@ximian.com>
8205
8206         * mini.c: optimize small copies in cpblk.
8207
8208 2004-03-01  Zoltan Varga  <vargaz@freemail.hu>
8209
8210         * basic-calls.cs basic-float.cs: New regression tests.
8211
8212         * mini-sparc.c inssel-sparc.brg mini-ops.h: Access local variables at 
8213         negative offsets from %fp. Implement localloc. Fix local register 
8214         allocation. Fix the case when the this argument needs to be saved to
8215         the stack. Implement some missing opcodes.
8216
8217 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
8218
8219         * mini.c (mini_method_compile): Reenable global regalloc in methods
8220         with exception handlers.
8221
8222         * linear-scan.c (mono_varlist_sort): Fix warning.
8223
8224         * linear-scan.c (mono_linear_scan): Fix computation of used_regs.
8225
8226         * mini-x86.c (mono_arch_regalloc_cost): Reenable precise computation of
8227         regalloc costs.
8228
8229         * liveness.c: Make all variables uses in exception clauses volatile, to
8230         prevent them from being allocated to registers. Fixes #42136.
8231
8232 2004-02-25  Zoltan Varga  <vargaz@freemail.hu>
8233
8234         * mini-x86.c (mono_arch_regalloc_cost): Revert this change since it
8235         causes regressions.
8236
8237         * mini.h linear-scan.c mini-x86.c mini-sparc.c mini-ppc.c: Add 'cfg'
8238         argument to mono_arch_regalloc_cost.
8239
8240         * mini-x86.c (mono_arch_regalloc_cost): Compute regalloc costs 
8241         precisely.
8242
8243 2004-02-24  Zoltan Varga  <vargaz@freemail.hu>
8244
8245         * mini.h mini-x86.c mini-ppc.c mini-sparc.c linear-scan.c: 
8246         Make the cost of allocating a variable to a register arch dependent.
8247
8248         * basic-calls.cs: Fix compilation of tests.
8249         
8250         * mini.h mini.c tramp-x86.c mini-x86.c: Add mono_running_on_valgrind ()
8251         helper function to cut back on the number of #ifdefs needed.
8252
8253         * mini-ppc.c: Fix compilation.
8254
8255         * basic-calls.cs: New regression tests.
8256
8257         * mini-sparc.c (mono_sparc_is_virtual_call): New helper function.
8258
8259         * tramp-sparc.c (create_specific_trampoline): Use g5 register instead
8260         of l0 since that is callee saved.
8261
8262         * tramp-sparc.c (sparc_magic_trampoline): Apply unbox trampoline only
8263         to virtual calls.
8264
8265         * mini-sparc.c: Ongoing work + flag virtual calls with a special kind 
8266         of delay instruction.
8267
8268         * inssel.brg (OP_CHECK_THIS): Set tree->sreg1 and dreg correctly.
8269
8270         * mini.h (MonoCallInst): Add 'virtual' flag.
8271
8272         * inssel.brg (mini_emit_virtual_call): Set 'virtual' flag.
8273
8274 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
8275
8276         * *.cs: New regression tests.
8277
8278         * mini-sparc.c inssel-sparc.brg: Update after latest changes. Ongoing sparc 
8279         work.
8280
8281         * mini.c (mono_runtime_install_handlers): Fix build.
8282
8283         * mini.h (MonoJitTlsData): Add 'stack_size', 'signal_stack' and
8284         'signal_stack_size' members.
8285
8286         * mini.h mini.c mini-x86.h mini-x86.c: Run sigsegv handlers on an 
8287         alternate signal stack.
8288
8289         * exceptions-x86.c: Add stack overflow handling.
8290
8291         * mini.h mini.c mini-x86.c mini-ppc.c trace.h trace.c: Move tracing 
8292         functions to arch independent code.
8293
8294         * mini.c (mono_print_tree): Print more detailed info for load_membase
8295         opcodes.
8296         
8297 2004-02-23  Martin Baulig  <martin@ximian.com>
8298
8299         * mini.c (mini_get_method): Set `gmethod->generic_inst'.
8300
8301 Sun Feb 22 22:25:19 CET 2004 Paolo Molaro <lupus@ximian.com>
8302
8303         * mini-x86.c: fixed reg allocation for div/rem.
8304
8305 2004-02-22  Miguel de Icaza  <miguel@ximian.com>
8306
8307         * driver.c (mono_main): Report some configuratio options on --version.
8308
8309 Fri Feb 20 11:01:44 PST 2004 Paolo Molaro <lupus@ximian.com>
8310
8311         * mini-ppc.c: fixed clt.un, cgt.un. Optimized calls to functions
8312         low in the address space. Correctly flush memory in thunks where we
8313         output native code.
8314
8315 2004-02-20  Martin Baulig  <martin@ximian.com>
8316
8317         * mini.c (mini_get_method): New static method; inflate all generic
8318         methods and methods in open generic instances.
8319         (mono_method_to_ir): Use mini_get_method() instead of mono_get_method().
8320         (ret_type_to_call_opcode): Added support for MONO_TYPE_GENERICINST.
8321
8322 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
8323
8324         * mini-sparc.c (mono_arch_patch_code): Update after domain->code_mp changes.
8325
8326         * tramp-sparc.c (mono_arch_create_jump_trampoline): Set ji->method.
8327
8328 2004-02-19  Bernie Solomon  <bernard@ugsolutions.com>
8329
8330         * helpers.c (mono_disassemble_code): use Sun's dis if not using gcc
8331
8332         * mini-sparc.c (flushi mono_arch_output_basic_block): make
8333         it compile using Sun's compiler.
8334
8335 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
8336
8337         * 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.
8338
8339         * basic-calls.cs basic-float.cs basic-long.cs objects.cs: New regression tests.
8340
8341 Tue Feb 17 21:41:20 CET 2004 Paolo Molaro <lupus@ximian.com>
8342
8343         * aot.c, mini-x86.c, mini.c: use the code manager instead of a mempool to hold native
8344         code.
8345         * mini-ppc.c: handle calls outside of the allowed range with thunks
8346         allocated using the code manager.
8347         * tramp-ppc.c: use the code manager to hold generated native code.
8348         Fixed the magic trampoline to just patch vtable entries.
8349
8350 2004-02-17  Zoltan Varga  <vargaz@freemail.hu>
8351
8352         * inssel.brg inssel-x86.brg: Move call(immediate) rules to the platform
8353         independent file.
8354
8355 2004-02-16  Zoltan Varga  <vargaz@freemail.hu>
8356
8357         * tramp-ppc.c (mono_arch_create_jump_trampoline): Fix compilation on
8358         PPC.
8359
8360         * mini-x86.c: Call mono_arch_get_lmf_addr instead of mono_get_lmf_addr
8361         if we have a working __thread implementation.
8362
8363         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Remove 
8364         OP_CALL_IMM opcodes, since the CALL opcodes handles immediates as well.
8365
8366 2004-02-15  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * mini-x86.c: Fix compilation under gcc 2.
8369         
8370 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * mini.c (mono_codegen): Avoid infinite loop when an icall wrapper
8373         contains a call to the wrapped function.
8374
8375         * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Add 
8376         OP_<CALL>_IMM opcodes, and use them under X86.
8377         
8378         * mini.c (mono_jit_find_compiled_method): Fix warning.
8379
8380         * cpu-pentium.md: Fix length of opcodes which use x86_alu_membase_imm.
8381
8382         * jit-icalls.c (mono_ldftn_nosync): New JIT icall.
8383
8384         * tramp-x86.c (mono_arch_create_jump_trampoline): Move arch independent
8385         functionality to mini.c.
8386
8387         * mini.c (mono_create_jump_trampoline): New function to create a jump
8388         trampoline. Return a compiled method instead of a trampoline if it
8389         exists. Add a cache for jump trampolines.
8390
8391         * mini.c (mono_jit_find_compiled_method): New function to return a
8392         compiled method if it exists.
8393
8394         * mini-x86.c: Call mono_create_jump_trampoline instead of 
8395         mono_arch_create_jit_trampoline.
8396
8397         * jit-icalls.c (mono_ldftn): Do not compile the method. Instead, return
8398         a jump trampoline. Fixes #52092.
8399         
8400 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
8401
8402         * debug-mini.c (mono_init_debugger): Remove call to mono_verify_corlib,
8403         which is not up-to-date. Add check_corlib_version () instead.
8404
8405         * mini.c (mini_init): Call mono_thread_attach () so embedders do not 
8406         have to call it.
8407         
8408         * mini.c (mono_runtime_install_handlers): Remove check for valgrind
8409         since newer valgrind versions do not need it.
8410
8411         * mini.c (mono_jit_compile_method_with_opt): New helper function to
8412         compile a method with a given set of optimizations.
8413
8414         * mini.c: Compile icall wrappers on-demand instead of at startup.
8415
8416         * mini-sparc.c mini-ppc.c: Call mono_icall_get_wrapper to obtain the
8417         wrapper for an icall.
8418
8419 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
8420
8421         * mini.c (mono_method_to_ir): Handle switch with non-empty stack. Fixes
8422         #54063.
8423
8424         * iltests.il: Add test for non-empty stack before switch instruction.
8425
8426 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
8427
8428         * mini.c: Add support for new stringbuilder marshalling conventions.
8429
8430         * mini.c (mono_method_to_ir): Fix stack management of generic CEE_BOX.
8431
8432 2004-02-01  Martin Baulig  <martin@ximian.com>
8433
8434         * mini.c (MTYPE_PARAM_TO_TYPE): Method type arguments are stored
8435         in `ginst->mtype_argv'.
8436
8437 2004-01-31  Miguel de Icaza  <miguel@ximian.com>
8438
8439         * mini.c: Add comments, replace CEE_XXX+128 with OP_XXX to
8440         facilitate grepping.
8441
8442 Wed Jan 28 14:04:58 CET 2004 Paolo Molaro <lupus@ximian.com>
8443
8444         * mini.c: fixed buglet in initobj generic implementation for references.
8445
8446 Fri Jan 23 16:10:44 EST 2004 Paolo Molaro <lupus@ximian.com>
8447
8448         * Makefile.am: make the version script conditional.
8449         * jit-icalls.c: handle missing truncl().
8450
8451 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
8452
8453         * exceptions.cs: Add more tests for double->int conversion.
8454
8455         * jit-icalls.c (mono_fconv_ovf_i8): Call truncl before comparison, so
8456         we don't throw exceptions when converting 1.1 to a long. Fixes #53250.
8457
8458 Fri Jan 23 17:12:08 CET 2004 Paolo Molaro <lupus@ximian.com>
8459
8460         * driver.c: make --verbose --version emit an error
8461         if the loaded corlib doesn't match the runtime version.
8462
8463 Mon Jan 19 17:44:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8464
8465         * mini-ppc.h: export ppc_patch().
8466         * mini-ppc.c: call convention fixes. Added assert in ppc_patch().
8467         * tramp-ppc.c: call convention fixes: Linux/PPC support should be
8468         on par or better than on MacOSX.
8469
8470 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
8471
8472         * mini.c tramp-x86.c tramp-sparc.c: Updated after changes to
8473         mono_lookup_pinvoke_call.
8474
8475         * mini-x86.c: Under windows, the default pinvoke calling convention is
8476         stdcall. Fixes #52834.
8477
8478         * mini.c (optimize_branches): Add an upper bound to the number of
8479         iterations to prevent infinite loops on strange loops. Fixes #53003.
8480
8481 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
8482
8483         * inssel.brg: Add vectors<->one dimensional array checking to CASTCLASS
8484         and ISINST. Fixes #52093.
8485
8486         * objects.cs (test_0_vector_array_cast): New tests.
8487         
8488 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
8489
8490         * jit-icalls.c (helper_stelem_ref_check): New jit icall for array type
8491         checking in Array.Set ().
8492
8493         * mini.c (method_to_ir): Add array type checking in Array.Set (). Fixes
8494         #52590.
8495
8496         * object.cs (test_0_multi_array_cast): New regression test.
8497
8498 Thu Jan 15 16:30:24 CET 2004 Paolo Molaro <lupus@ximian.com>
8499
8500         * exceptions-ppc.c: fix build on Linux/PPC.
8501
8502 2004-01-14  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * tramp-x86.c (x86_magic_trampoline): Disable code patching when
8505         running under valgrind.
8506         (x86_magic_trampoline): Fix build bustage.
8507
8508         * debug-mini.c: Modify the debug info serialize/deserialize code so it handles
8509         negative values as well. This is needed for the encoding of the line number
8510         info, since sometimes the line numbers are not in increasing order.
8511
8512 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
8513
8514         * cpu-pentium.md (localloc): Increase the size of the localloc 
8515         instruction since it is a loop under Win32.
8516
8517         * debug-mini.c (record_line_number): Get rid of unneccesary memory
8518         allocation.
8519
8520 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * exceptions-ppc.c exceptions-x86.c exceptions-sparc.c 
8523         tramp-x86.c tramp-ppc.c tramp-sparc.c: Applied patch from 
8524         Max Horn (max@quendi.de). Fix file names in comments.
8525
8526 2004-01-03  Zoltan Varga  <vargaz@freemail.hu>
8527
8528         * ssa.c (mono_ssa_rename_vars): Allocate new_stack on the heap to
8529         avoid stack overflow.
8530         (replace_usage): Avoid uninitialized variable warnings.
8531
8532         * mini.c (mono_method_to_ir): Avoid disabling SSA for array operations
8533         and taking the address of valuetype variables.
8534
8535 2004-01-03  Patrik Torstensson
8536
8537         * mini-x86.c: renamed fpflags to flags in RegTrack, going to be used
8538         for other purposes than FP later on.
8539
8540 2004-01-02  Zoltan Varga  <vargaz@freemail.hu>
8541
8542         * mini.c (mono_method_to_ir): Prevent register allocation for arguments
8543         of tail calls.
8544
8545 Fri Jan 2 13:37:25 CET 2004 Paolo Molaro <lupus@ximian.com>
8546
8547         * mini-ops.h, mini.c, inssel.brg: Object.GetType () speedup.
8548
8549 2003-12-30  Patrik Torstensson <p@rxc.se>
8550
8551         * mini-x86.h: Decreased number of availiable fp regs.
8552         Solves corner cases with FP spilling.
8553
8554 2003-12-23  Patrik Torstensson <p@rxc.se>
8555
8556         * mini-x86.c, mini-ops.h, cpu-pentium.md: Added support
8557         for floating point stack tracking / spilling on x86. 
8558         Fixes bug #49012.
8559         
8560         * basic-float.cs: added float mul overflow test.
8561
8562 2003-12-23  Zoltan Varga  <vargaz@freemail.hu>
8563
8564         * mini.c (mono_method_to_ir): Add workaround for bug #51126.
8565
8566 Sun Dec 21 19:53:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8567
8568         * mini.h, mini-ppc.c, mini-ppc.h: small cleanups and
8569         supports for cond branches that overflow the immediate
8570         overflow offset. mcs can compile simple programs.
8571
8572 Fri Dec 19 21:17:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8573
8574         * exceptions-ppc.c: exception handling support wip:
8575         finally handlers get run on exception.
8576
8577 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
8578
8579         * aot.c (mono_aot_get_method_inner): Avoid loading AOT code while 
8580         profiling.
8581
8582 Fri Dec 19 17:58:28 CET 2003 Paolo Molaro <lupus@ximian.com>
8583
8584         * cpu-g4.md, mini-ppc.c, exceptions-ppc.c, mini-ppc.h:
8585         initial support for stack walking and unwinding.
8586
8587 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
8588
8589         * driver.c (mono_main): Make corlib-out-of-sync message more 
8590         descriptive. Also remove verify_corlib call.
8591
8592 Wed Dec 17 15:31:41 CET 2003 Paolo Molaro <lupus@ximian.com>
8593
8594         * mini.c: make CEE_NEWARR calls and other emulated opcodes 
8595         not overlap with other call's arguments, too.
8596
8597 Wed Dec 17 12:49:23 CET 2003 Paolo Molaro <lupus@ximian.com>
8598
8599         * mini.h, mini.c, mini-ppc.c, mini-sparc.c, mini-x86.c: 
8600         move to arch-specific code the choice of arch-specific
8601         intrinsics (from Laurent Morichetti (l_m@pacbell.net)).
8602         * mini.c: ensure emulation calls will not interleave
8603         with other calls.
8604
8605 Wed Dec 17 12:27:26 CET 2003 Paolo Molaro <lupus@ximian.com>
8606
8607         * tramp-ppc.c, basic-calls.cs: rework trampolines so that
8608         the magic trampoline stack frame is dropped before executing
8609         the new method.
8610
8611 Mon Dec 15 18:13:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8612
8613         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed some opcode lengths
8614         and integer to fp conversions. Added support for overflowing
8615         arguments on the stack. Reserve a couple more registers as temps.
8616         Added support for aot compilation (as output still needs to be
8617         tweaked, though).
8618
8619 Sat Dec 13 17:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8620
8621         * mini-ppc.c, basic-long.cs: fix jumps to known labels.
8622         Don't overwrite return register in some corner cases.
8623
8624 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
8625
8626         * mini.h mini.c driver.c mini-x86.c mini-ppc.c aot.c: Do not run
8627         static constructors when AOT compiling.
8628
8629         * driver.c (mono_main): Call mono_check_corlib_version.
8630
8631 Sat Dec 13 10:31:12 CET 2003 Paolo Molaro <lupus@ximian.com>
8632
8633         * cpu-g4.md, basic.cs: fixed div target register.
8634
8635 Sat Dec 13 09:45:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8636
8637         * mini-ppc.c, basic.cs: shl_imm fix with test.
8638
8639 Fri Dec 12 21:25:14 CET 2003 Paolo Molaro <lupus@ximian.com>
8640
8641         * inssel-ppc.brg, mini-ppc.h, mini-ppc.c: support for passing 
8642         structures by value. Misc fixes.
8643         * objects.cs: more tests.
8644
8645 Fri Dec 12 10:11:49 CET 2003 Paolo Molaro <lupus@ximian.com>
8646
8647         * mini-ppc.c: lconv.ovf.i implemented.
8648
8649 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8650
8651         * mini.c:
8652         (mini_init): don't error out if someone already called g_thread_init.
8653
8654 Tue Dec 9 17:27:14 CET 2003 Paolo Molaro <lupus@ximian.com>
8655
8656         * exceptions-x86.c, exceptions-ppc.c: allow the exception object
8657         to be any type per the spec. Fix abnormal memory usage when
8658         the same object is repeatedly thrown.
8659
8660 Tue Dec 9 15:39:54 CET 2003 Paolo Molaro <lupus@ximian.com>
8661
8662         * mini.c: check for overruns in IL code.
8663
8664 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
8665
8666         * TODO: Add/remove some todo entries.
8667
8668 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
8669
8670         * driver.c (mono_main): Call mono_verify_corlib.
8671
8672 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
8673
8674         * inssel.brg: In CEE_ISINST and CEE_CASTCLASS, removed check for proxy. 
8675         This has been moved to mini.c
8676         * mini.c: in mono_method_to_ir, CEE_ISINST and CEE_CASTCLASS cases, if the
8677         type being casted is marshalbyref it could be a proxy, so instead of
8678         emitting the type check code, emit a call to a runtime method that will
8679         perform the check by calling CanCastTo if needed.
8680
8681 2003-12-06  Zoltan Varga  <vargaz@freemail.hu>
8682
8683         * mini-x86.c (mono_arch_emit_prolog): Fix stack space allocation for
8684         methods with large stack frames under Win32.
8685
8686 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
8687
8688         * Makefile.am: Distribute regression tests.
8689
8690         * mini-x86.c (mono_arch_get_allocatable_int_vars): Sort the var list
8691         at the end instead of inserting each variable into the sorted list.
8692
8693         * linear-scan.c (mono_varlist_sort): New helper function.
8694         
8695 Wed Dec 3 20:46:28 CET 2003 Paolo Molaro <lupus@ximian.com>
8696
8697         * mini.c: ensure arguments and locals are within bounds.
8698
8699 Wed Dec 3 17:59:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8700
8701         * mini-ppc.c, cpu-g4.md, basic.cs, basic-long.cs: more tests and 
8702         related fixes.
8703
8704 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
8705
8706         * mini.c (mono_cprop_copy_values): Fix crash.
8707
8708         * aot.c: Set verbosity back to 0.
8709         
8710 Wed Dec 3 15:42:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8711
8712         * regalloc.c: complete memory leak fix by Laurent Morichetti
8713         (l_m@pacbell.net).
8714
8715 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
8716
8717         * driver.c (main_thread_handler): Revert the previous patch.
8718
8719         * tramp-x86.c (x86_class_init_trampoline): Avoid patching when running
8720         under valgrind.
8721
8722         * mini-x86.c (mono_arch_local_regalloc): Do not allocate transient
8723         memory from the memory pool.
8724
8725         * driver.c (main_thread_handler): Turn on all optimizations when
8726         --aot is used.
8727
8728         * mini.c (mono_find_jit_opcode_emulation): Turn emul_opcode_hash into
8729         an array for better performance.
8730
8731         * regalloc.c (mono_regstate_assign): Fix memory leak.
8732
8733         * debug-mini.c (mono_debug_serialize_debug_info): New function to
8734         serialize the debug info.
8735
8736         * debug-mini.c (mono_debug_add_aot_method): New function to load the
8737         debug info from the serialized representation.
8738
8739         * aot.c: Save debug info into the generated file and load it when 
8740         loading a method.
8741
8742         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
8743
8744 Mon Dec 1 16:54:05 CET 2003 Paolo Molaro <lupus@ximian.com>
8745
8746         * mini-ppc.c, tramp-ppc.c: save FP arguments in the trampoline.
8747         More FP-related fixes.
8748
8749 Sun Nov 30 19:13:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8750
8751         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed finally handlers
8752         and register allocation buglet. Hello world now runs.
8753
8754 Fri Nov 28 23:03:05 CET 2003 Paolo Molaro <lupus@ximian.com>
8755
8756         * cpu-g4.md, inssel-ppc.brg, mini-ppc.c: better long return support.
8757         * tramp-ppc.c: fixed class init trampoline.
8758         * inssel-ppc.brg, mini.c, jit-icalls.c, mini-ppc.h: more emulation.
8759
8760 Fri Nov 28 16:36:29 CET 2003 Paolo Molaro <lupus@ximian.com>
8761
8762         * cpu-g4.md, inssel-ppc.brg, jit-icalls.c, mini-ppc.c, mini-ppc.h,
8763         mini.c: more ppc changes/fixes.
8764
8765 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
8766
8767         * mini.c (mono_method_to_ir): Fix tail calls with valuetype arguments.
8768         Also optimize the case when the arguments are the same in the caller 
8769         and in the callee.
8770
8771         * iltests.il: Add tests for tail calls with valuetype arguments.
8772
8773 Thu Nov 27 21:06:37 CET 2003 Paolo Molaro <lupus@ximian.com>
8774
8775         * mini-ppc.c: fixes for struct return type.
8776
8777 Thu Nov 27 19:02:07 CET 2003 Paolo Molaro <lupus@ximian.com>
8778
8779         * mini.h, mini.c, mini-x86.c, mini-ppc.c, mini-sparc.c: move 
8780         mono_spillvar_offset() to arch-specific code.
8781
8782 Thu Nov 27 18:30:42 CET 2003 Paolo Molaro <lupus@ximian.com>
8783
8784         * mini-ppc.h, mini-ppc.c: handle some different ABI call convention issues.
8785
8786 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
8787
8788         * exceptions-x86.c: Fix stack space leaks.
8789         
8790         * exceptions-x86.c (mono_arch_find_jit_info): Restore callee saved
8791         registers from the lmf if the method has save_lmf set.
8792
8793 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
8794
8795         * tramp-x86.c (x86_magic_trampoline): Avoid patching in the addresses
8796         of icall wrappers into InvokeInDomain, since these are now per-domain.
8797
8798 Wed Nov 26 20:15:04 CET 2003 Paolo Molaro <lupus@ximian.com>
8799
8800         * mini-ppc.h, mini-x86.h, mini.c, inssel-ppc.brg, jit-icalls.c:
8801         make some opcode emulation and intrinsic ops enabled/disabled 
8802         according to the architecture. More fixes.
8803
8804 Wed Nov 26 19:59:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8805
8806         * mini-ppc.c, mini-sparc.c, cpu-g4.md: more bug fixes.
8807
8808 Wed Nov 26 19:18:29 CET 2003 Paolo Molaro <lupus@ximian.com>
8809
8810         * mini.h, inssel.brg, mini-x86.c, mini-ppc.c, mini-sparc.c: move
8811         arch-specific handling for 'this' and struct return type to
8812         arch-specific code.
8813
8814 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8815
8816         * aot.c: prevent divide by zero error when reporting (it happened with
8817         Accessibility.dll).
8818
8819 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
8820
8821         * mini.h (inst_switch): Remove unused macro.
8822
8823 2003-11-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8824
8825         * aot.c:
8826         (load_aot_module): free 'info->methods' and 'info' properly. No more
8827         "free(): invalid pointer blah" messages when you have an old aot
8828         compiled assembly.
8829
8830 2003-11-21  Lluis Sanchez Gual <lluis@ximian.com>
8831
8832         * jit-icalls.c, mini.c: Added support for context static fields.
8833
8834 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
8835
8836         * mini.c (mono_method_blittable): Methods which set LastError are not 
8837         blittable either. Fixes #51108.
8838         
8839 Tue Nov 18 16:41:37 CET 2003 Paolo Molaro <lupus@ximian.com>
8840
8841         * mini.c: flush icache.
8842         * cpu-g4.md, mini-ppc.c, inssel.brg: more fixes. Trace support.
8843
8844 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
8845
8846         * mini.c (mono_type_blittable): OBJECT is not blittable. Fixes #47842.
8847
8848 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
8849
8850         * tramp-x86.c (x86_class_init_trampoline): Make code patching thread
8851         safe on IA32.
8852
8853         * mini-x86.c (mono_arch_call_opcode): Disable AOT for methods with 
8854         vararg calls.
8855
8856         * inssel.brg (CEE_MKREFANY): Fix AOT case.
8857
8858 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
8859
8860         * mini-x86.c (mono_arch_local_regalloc): Fix regalloc for div 
8861         instruction when the result is discarded.
8862
8863         * iltests.il (test_0_div_regalloc): New regression test.
8864
8865         * arrays.cs: Fix compilation error.
8866
8867 Fri Nov 14 21:34:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8868
8869         * inssel-x86.brg, inssel-float.brg, mini-ops.h: move x86-specific
8870         float rules to inssel-x86.brg: sane architectures with FP registers
8871         don't need to implement these rules.
8872
8873 Fri Nov 14 20:52:12 CET 2003 Paolo Molaro <lupus@ximian.com>
8874
8875         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: updates and fixes to the ppc port.
8876
8877 Fri Nov 14 17:58:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8878
8879         * mini.h, inssel-long32.brg: fixed endianess issues in int64
8880         implementation of 32 bit systems.
8881
8882 Thu Nov 13 16:14:41 CET 2003 Paolo Molaro <lupus@ximian.com>
8883
8884         * exceptions-ppc.c: fix build on Linux/ppc from Jeroen@xs4all.nl
8885         (Jeroen Zwartepoorte).
8886
8887 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8888
8889         * mini.c (mono_method_to_ir): Use CEE_JMP only if the signature of
8890         the caller and the callee matches.
8891         
8892         * mini.c (mono_method_to_ir): Add comment.
8893
8894         * mini-x86.c (mono_arch_output_basic_block): Use mono_signbit, since
8895         signbit is missing on some platforms.
8896
8897 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
8898
8899         * mini.h (mono_arch_setup_jit_tls_data): New arch specific function.
8900
8901         * mini.c (setup_jit_tls_data): Call the new function.
8902         
8903         * mini-x86.c mini-ppc.c mini-sparc.c: Define the new function.
8904
8905         * mini-x86.c: Add experimental support for fast access to the lmf
8906         structure under NPTL/Linux 2.6.x.
8907
8908 2003-11-06  Martin Baulig  <martin@ximian.com>
8909
8910         * ldscript: Make `GC_push_all_stack', `GC_start_blocking',
8911         `GC_end_blocking' and 'gc_thread_vtable' public; they're used by
8912         the debugger.
8913
8914 2003-11-02  Martin Baulig  <martin@ximian.com>
8915
8916         * mini.c (inflate_generic_field): New static method.
8917         (mono_method_to_ir): In CEE_LDFLD and CEE_LDSFLD: if we're a
8918         generic instance and the field is declared in a generic type, call
8919         inflate_generic_field() to inflate it.  Fixes gen-28.cs.
8920
8921 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
8922
8923         * mini.h mini.c (mono_method_same_domain): New function to return
8924         whenever the caller and the callee are in the same domain.
8925
8926         * tramp-x86.c (x86_magic_trampoline): Use the new function.     
8927
8928 2003-10-30  Martin Baulig  <martin@ximian.com>
8929
8930         * mini.c (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): New macros;
8931         similar to TYPE_PARAM_TO_TYPE and TYPE_PARAM_TO_CLASS, but for
8932         method parameters.
8933         (mono_method_to_ir): Added support for MONO_TYPE_MVAR; similar to
8934         MONO_TYPE_VAR, we the actual types from MTYPE_PARAM_TO_CLASS(). 
8935
8936 2003-10-29  Zoltan Varga  <vargaz@freemail.hu>
8937
8938         * mini.c mini-ops.h inssel.brg: Implement undeniable exception 
8939         propagation.
8940
8941         * mini.c (sigusr1_signal_handler): Move creation of the thread abort
8942         object here, so it is in the correct appdomain etc.
8943
8944 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * mini.c (mono_jit_compile_method_inner): Lookup icalls here if not
8947         already done.
8948         (mono_method_to_ir): Avoid freeing the type created returned from
8949         mono_type_create_from_typespec, since it is put into an internal cache
8950         by the function. Fixes pointer.exe.
8951
8952         * mini.c tramp-x86.c tramp-sparc.c tramp-ppc.c: Use the normal 
8953         trampolines for icalls and pinvokes as well. Fixes #33569.
8954
8955 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
8956
8957         * mini.c: Update after appdomain changes.
8958
8959         * mini.c (mono_jit_compile_method_inner): Allways compile native
8960         method wrappers in the root domain, since there can only be one
8961         instance of them, whose address is stored in method->info.
8962
8963 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
8964
8965         * mini.c (mono_runtime_install_handlers): Get rid of the MONO_VALGRIND
8966         environment variable. Instead detect automatically whenever running
8967         under valgrind using the magic macro RUNNING_ON_VALGRIND from
8968         valgrind.h.
8969
8970 2003-10-16  Miguel de Icaza  <miguel@ximian.com>
8971
8972         * trace.c, trace.h: New files that implement the new trace option
8973         parsing. 
8974
8975         * driver.c: Document new --trace options.
8976
8977         * exceptions-ppc.c, exceptions-x86.c, mini-ppc.c, mini-sparc.c,
8978         mini-x86.c: Apply:
8979
8980         -       if (mono_jit_trace_calls)
8981         +       if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
8982
8983         * mini.h: prototypes.
8984         
8985 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
8986
8987         * mini.c (mono_method_to_ir): Fix initialization of typedbyref locals.
8988
8989         * mini.c inssel.brg: Implement typedefbyref opcodes.
8990
8991         * mini.c (mono_jit_compile_method): Remove unused local variable.
8992
8993         * mini.c (mono_jit_compile_method_inner): Ditto.
8994         
8995 2003-10-12  Zoltan Varga  <vargaz@freemail.hu>
8996
8997         * tramp-x86.c (x86_class_init_trampoline): Fix build.
8998         
8999         * tramp-x86.c (x86_class_init_trampoline): Thread safety fixes.
9000
9001 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
9002
9003         * mini.c (mono_no_aot): Remove unused global variable.
9004
9005         * mini.c: Thread safety fixes.
9006
9007 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
9008
9009         * mini.c (mono_create_class_init_trampoline): Add a lock around
9010         class_init_hash_addr.
9011
9012         * arrays.cs (test_0_newarr_emulation): Add new regression test for
9013         #30073.
9014
9015         * mini.c: Decompose the NEWARR instruction before decomposing its
9016         arguments. Fixes #30073.
9017
9018 2003-10-08  Zoltan Varga  <vargaz@freemail.hu>
9019
9020         * mini-x86.c (mono_arch_emit_epilog): Add support for stdcall calling
9021         convention.
9022
9023 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
9024
9025         * mini.c (mono_method_to_ir): Allow wrapper data for CEE_LDELEMA.
9026
9027         * inssel-x86.brg (OP_LOCALLOC): Fix register assignment for localloc.
9028
9029         * driver.c: Add support for compiling icall wrappers to --compile.
9030
9031 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
9032
9033         * inssel.brg: The empty value in class->interface_offsets is -1, not
9034         0. Fixes #49287.
9035
9036 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
9037
9038         * objects.cs: New test for 'is' operator on an array of interfaces.
9039
9040 Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9041
9042         * tramp-ppc.c: update trampoline code to support jumps
9043         and class initialization.
9044
9045 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
9046
9047         * mini.c (mono_jit_compile_method): Fix reading of freed memory.
9048
9049         * inssel.brg (OP_UNBOXCAST): Fix #46027.
9050
9051         * inssel.brg (OP_UNBOX): Remove unused rule.
9052
9053         * mini.h mini.c inssel-x86.brg: Allocate one SP variable for each
9054         region instead of one for each method. Fixes #47813.
9055
9056 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
9057
9058         * exceptions.cs (test_0_nested_finally): New regression test for
9059         nested exception handlers.
9060
9061         * mini.c (mono_jit_runtime_invoke): Fix for the previous fix.
9062
9063         * mini.c (mono_method_to_ir): Avoid inlining tail calls.
9064
9065         * mini.c (mono_method_to_ir): Fix tail recursion in the presence of 
9066         inlining.
9067
9068         * mini.c (mono_method_check_inlining): Make the inlining limit 
9069         configurable by an environment variable.
9070         
9071         * mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545.
9072
9073         * mini.h: Bump AOT file version.
9074
9075         * mini.h mini.c aot.c mini-x86.c: For relocations which refer to a 
9076         token, store the image along with the token, since the token might not 
9077         refer to the same image as the method containing the relocation, 
9078         because of inlining.
9079
9080 2003-09-27  Zoltan Varga  <vargaz@freemail.hu>
9081
9082         * mini.c (mono_precompile_assemblies): New function to compile
9083         all methods in all loaded assemblies.
9084
9085         * mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP.
9086
9087         * regalloc.h regalloc.c (MonoRegState): Change the type of 
9088         iassign and fassign to int*, since they can contain large negative
9089         values if the register is spilled. Also added some comments. Fixes
9090         #45817.
9091
9092         * exceptions-x86.c (seh_handler): Fix handling of system exceptions
9093         under Win32. Fixes #42964.
9094
9095 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
9096
9097         * mini.h (MONO_PATCH_INFO_WRAPPER): New patch type.
9098
9099         * aot.c: Added support for AOT compiling methods which contain calls
9100         to wrappers. Currently, only remoting-invoke-with-check wrappers are
9101         handled.
9102         
9103         * driver.c (compile_all_methods): Run the compilation in a thread
9104         managed by mono. Fixes #44023.
9105
9106         * mini.c (mono_codegen): Print full method name in verbose output.
9107
9108         * mini-x86.c (mono_arch_patch_code): Fix warning.
9109         
9110         * mini-x86.c (mono_arch_patch_code): Allways create a trampoline for
9111         jumps, since the method we are jumping to might be domain-specific.
9112
9113         * aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP.
9114
9115 Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9116
9117         * inssel.brg: string chars are unsigned.
9118
9119 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
9120
9121         * TODO: New todo item.
9122
9123         * tramp-x86.c (x86_class_init_trampoline): New trampoline function
9124         which calls mono_runtime_class_init and patches the call site to
9125         avoid further calls.
9126         (mono_arch_create_class_init_trampoline): New arch specific function 
9127         to create a class init trampoline.
9128         (create_trampoline_code): Generalized so it can create
9129         class init trampolines as well.
9130
9131         * mini.c (helper_sig_class_init_trampoline): New helper variable.
9132         (mono_create_class_init_trampoline): New function to create and cache
9133         class init trampolines.
9134         (mono_find_class_init_trampoline_by_addr): New function to lookup the
9135         vtable given the address of a class init trampoline. Used by the
9136         patching process.
9137         (mono_codegen): Generate a call to a trampoline instead of
9138         mono_runtime_class_init in LDSFLD[A].
9139         (mono_codegen): Add relocations for the new trampoline.
9140         
9141         * mini.h mini-x86.c aot.c: Added a new relocation type: 
9142         MONO_PATCH_INFO_CLASS_INIT.
9143
9144         * mini.h: Bump AOT version number.
9145
9146         * aot.c: Create a copy of the loaded code instead of using the original
9147         so methods which call each other will be close in memory, improving
9148         cache behaviour.
9149         
9150         * exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous
9151         patch since it breaks the regression tests.
9152         
9153         * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
9154         for the register saving instruction sequence since the 
9155         frame_state_for function in glibc 2.3.2 don't seem to detect it.
9156
9157 2003-09-14  Zoltan Varga  <vargaz@freemail.hu>
9158
9159         * TODO: Fix todo item && remove another.
9160
9161 2003-09-12  Zoltan Varga  <vargaz@freemail.hu>
9162
9163         * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
9164         previous checkin.
9165
9166         * aot.c: Moved the check for MONO_LASTAOT into the initialization
9167         function of the module.
9168
9169         * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
9170         turning on/off the usage of AOT code. Got rid of mono_no_aot and the
9171         --no-aot command line option.
9172
9173 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
9174
9175         * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
9176         by Bernie Solomon (bernard@ugsolutions.com).
9177
9178         * inssel.brg: Refactor the interface offset table related code into
9179         its separate functions and add support for the AOT case.
9180
9181 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
9182
9183         * aot.c (mono_aot_get_method_inner): Fix memory leak.
9184         
9185         * aot.c: Added mono_aot_verbose variable and made all debugging
9186         output depend on the value of this variable.
9187
9188         * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
9189         method_label and info_label.
9190
9191         * mini.h mini-x86.c aot.c: Added a new relocation type 
9192         MONO_PATCH_INFO_IID for klass->interface_id.
9193
9194         * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
9195         the MonoJitInfo structure.
9196
9197         * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
9198         a non-root appdomain in shared mode.
9199
9200 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
9201
9202         * aot.c: make aot loader less verbose. Remove free of unused variable.
9203
9204 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
9205
9206         * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
9207
9208         * .cvsignore: Added *.dll.
9209
9210         * mini.c (mono_print_tree_nl): New function callable while debugging.
9211
9212         * mini.c (mono_print_code): Export this.
9213
9214         * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
9215         patched code.
9216
9217 2003-09-05  Zoltan Varga  <vargaz@freemail.hu>
9218
9219         * mini.h (MonoCompile): Added 'jit_info' field.
9220
9221         * mini.c (mini_method_compile): Save the generated MonoJitInfo into
9222         the cfg structure, since it is needed by the AOT compiler.
9223
9224         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
9225
9226         * aot.c: A major rewrite. Changes include:
9227         - save exception tables for methods which have them.
9228         - cache failed lookups in aot_get_method () to avoid the (slow) calls 
9229         to g_module_symbol.
9230         - reworked the file format so it is now much smaller and needs
9231         fewer relocation entries.
9232         
9233 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
9234
9235         * aot.c (load_aot_module): Fix build bustage on platforms without
9236         Boehm GC.
9237
9238 2003-09-04  Martin Baulig  <martin@ximian.com>
9239
9240         * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
9241
9242 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
9243
9244         * TODO: Some new optimization ideas.
9245
9246         * aot.c: Move AOT module loading logic here from mono_assembly_open.
9247
9248         * aot.c: Save the optimization flags used to compile the code into
9249         the AOT module.
9250
9251         * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
9252         support emitting domain specific code.
9253         
9254         * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is 
9255         no longer domain neutral. It can be made domain neutral by compiling 
9256         with --optimize=shared.
9257
9258         * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
9259         between appdomains.
9260
9261         * driver.c mini.h mini.c: New --no-aot debugging option which disables
9262         loading of AOT code.
9263
9264         * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
9265         
9266         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
9267         if there is no domain neutrality information.
9268
9269 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
9270
9271         * aot.c (mono_compile_assembly): Emit a symbol containing the file 
9272         format version into the generated library.
9273
9274         * mini-x86.c (mono_arch_patch_code): Do not emit the address of the
9275         callee method into the caller since one of them could be shared.
9276
9277         * mini.h mini-x86.c aot.c: Added two new relocations so throwing
9278         system exceptions from AOT code now works.
9279
9280         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
9281         method if it is domain neutral and the callee is not.
9282
9283         * graph.c (cfg_emit_one_loop_level): Fix warning.
9284
9285 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
9286
9287         * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
9288         last checkin.
9289
9290 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
9291
9292         * mini.c (mini_init): Call mono_marshal_init () explicitly since it
9293         is needed  by code which is executed before mono_runtime_init ().
9294         Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
9295         
9296         * mini.c (mono_thread_abort): Fix warning.
9297         (mono_jit_compile_method): Call static constructor in the AOT case too.
9298
9299         * aot.c (mono_compile_assembly): Fix warning.
9300
9301 2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9302
9303         * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
9304
9305 2003-08-28  Zoltan Varga  <vargaz@freemail.hu>
9306
9307         * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
9308
9309         * cpu-pentium.md: Fix the length of call opcodes so they include the
9310         ESP restoring instruction. Fixes #47968.
9311
9312 2003-08-28  Martin Baulig  <martin@ximian.com>
9313
9314         * mini-x86.c (mono_arch_call_opcode): Added support for
9315         MONO_TYPE_GENERICINST.
9316
9317         * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.       
9318
9319 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
9320
9321         * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
9322         a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
9323
9324         * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
9325         metadata_section.
9326
9327 2003-08-26  Martin Baulig  <martin@ximian.com>
9328
9329         * mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
9330         when reporting an error, set this to the actual error location.
9331         (mono_method_to_ir): Report the correct error location if
9332         get_basic_blocks() returned an error.
9333
9334 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
9335
9336         * mini.c (mono_type_blittable): OBJECT is not blittable.
9337         (mono_method_blittable): Methods which have marshalling descriptors
9338         are not blittable either. Fixes #47842.
9339
9340 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
9341
9342         * driver.c mini.c: Use an environment variable instead of a global 
9343         variable. Also fix the build.
9344
9345         * mini.c (mini_init): Call g_thread_init () to make glib thread-safe. 
9346         Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
9347         reporting this. 
9348
9349         * driver.c mini.c: Added --with-valgrind option to turn off some
9350         code which prevents mono from running under valgrind.
9351
9352         * mini.c (mono_emit_call_args): Fixed warning.
9353
9354         * mini.c (mono_emulate_opcode): Fixed warning.
9355
9356 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9357
9358         * inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
9359         * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
9360         regalloc.c, regalloc.h: specify available registers in arch-specific
9361         code and support floats in the regallocator (patch by Laurent Morichetti 
9362         <l_m@pacbell.net>)
9363
9364 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9365
9366         * mini.c: mono_thread_current() can be called only after
9367         mono_runtime_init(): rearrange code to not call it early on.
9368
9369 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
9370
9371         * mini.c: allocate jump tables in the code mempools.
9372
9373 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
9374
9375         * mini.c, mini.h: make sure per-thread data allocated by the jit is
9376         freed.
9377
9378 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
9379
9380         * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
9381         12 to 16.  This fixes bug #47453.
9382
9383
9384 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
9385
9386         * mini-ppc.c: fixed indexed load and unsigned compares.
9387
9388 2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>
9389
9390         * mini.c: reenabled installation of handler for
9391           thread abort signal.
9392
9393 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9394
9395         * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
9396         by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
9397         until it's fixed and actually useful.
9398
9399 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9400
9401         * inssel-long32.brg: couple more opcodes implemented.
9402
9403 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
9404         
9405         * mini-sparc.c: Even more opcodes implemeted.
9406
9407 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
9408
9409         * mini-sparc.c: More opcodes implemented.
9410
9411 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
9412
9413         * mini-sparc.c: More opcodes implemented.
9414
9415 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
9416
9417         * inssel-sparc.brg: Add some needed rules.  Direct
9418         copy from PPC.
9419         * Makefile.am: Use inssel-sparc.brg
9420         * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
9421         an assert happy for now.
9422
9423 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
9424
9425         * mini-sparc.c: Fixed compile errors.
9426         * exceptions-sparc.c: Same.  We now produce a mono binary 
9427         on sparc-linux.  Yea.
9428
9429 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
9430
9431         * mini-sparc.c: Renamed registers.  Also some macro cleanups.
9432         * exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
9433         They compile, but do not work.
9434
9435 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9436
9437         * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
9438         mini-sparc.h, tramp-sparc.c: Beginning of sparc support
9439         from Mark Crichton <crichton@gimp.org> and Christopher Taylor
9440         (ct@gentoo.org).
9441
9442 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9443
9444         * mini.c: more opcodes implemented and better support for generics.
9445
9446 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
9447
9448         * cpu-g4.md, cpu-pentium.md: updates for new instructions.
9449         * mini.c, mini.h: first cut at generics support: some new instructions 
9450         added and changed the behaviour of some of the existing ones.
9451
9452 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
9453
9454         * mini.c: Removed definition of metadata_shared mutex here.
9455
9456 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
9457
9458         * mini-x86.c: make vararg calls work for instance methods.
9459
9460 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9461
9462         * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
9463         returns the arguments in a separte list, now.
9464
9465 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
9466
9467         * aot.c, mini.c: updates for array type representation changes.
9468
9469 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
9470
9471         * mini.c: register function to perform jit shutdown.
9472
9473 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9474
9475         * mini.c: use a faster allocator if possible.
9476
9477 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9478
9479         * aot.c: some cleanups and portability changes.
9480
9481 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
9482
9483         * mini.c: use faster allocation for CEE_BOX if possible.
9484
9485 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
9486
9487         * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
9488         Moved inlined mempcy code to its own function so that is can be
9489         reused. Added an inline memset function as well (optimized initobj).
9490         * cpu-pentium.md, inssel-x86.brg: add and use lea_membase.
9491
9492 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
9493
9494         * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
9495
9496 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9497
9498         * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
9499         arch code can setup the cpu for CLR execution, if needed.
9500         We use it on x86 to set the precision of FP operations.
9501
9502 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9503
9504         * mini.c: disable some optimizations if we can guess they'll cost too
9505         much for a given method.
9506
9507 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * mini.h mini.c: Rework last patch based on suggestions by Paolo.
9510         
9511 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9512         * mini.h mini.c mini-x86.c: Added instruction level coverage 
9513         info collection support.
9514
9515 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9516
9517         * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
9518         is now implemented in the profiling API. Get rid of a couple of
9519         unnecessary global variables.
9520
9521 2003-06-15  Nick Drochak <ndrochak@gol.com>
9522
9523         * basic-long.cs: tests for negative values for bigmul, and unsigned.
9524         * cpu-g4.md: add op_bigmul and op_bigmul_un
9525         * cpu_pentium.md: add op_bigmul_un
9526         * inssel-long32.brg: add rule for unsigned bigmul
9527         * mini-ops.h: define OP_BIGMUL_UN
9528         * mini-x86.c: THE BUG: handle (un)signed properly
9529         * mini.c: choose unsigned opcode if needed.
9530         This set of patches fixes bug #44291
9531
9532 2003-06-13  Dietmar Maurer  <dietmar@ximian.com>
9533
9534         * mini.c (optimize_branches): improved to handle all kinds of
9535         conditional branches.
9536
9537 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9538
9539         * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
9540         don't raise exceptions.
9541
9542 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
9543
9544         * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
9545         to arch-specific files.
9546
9547 2003-06-09  Martin Baulig  <martin@ximian.com>
9548
9549         * Makefile.am (libs): Added $(LIBGC_LIBS).
9550
9551 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
9552
9553         * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
9554         and OP_ATAN (fixes bug#44293).
9555
9556 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
9557
9558         * Makefile.am, mini-x86.c: rename cpu description array to
9559         pentium_desc, since some compilers define the 'pentium' preprocessor
9560         symbol.
9561
9562 2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
9563
9564         * mini.c (mini_select_instructions): add explicit branch if the
9565         following block is not the false target of a conditional branch -
9566         we need this with any optimization that reorder or remove bblocks
9567
9568         * mini.c (optimize_branches): bug fixes
9569
9570 2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
9571
9572         * mini.c (mono_method_to_ir): inline static readonly fields
9573
9574         * ssa.c (fold_tree): start cfold support for long (very simple
9575         cases only)
9576
9577         * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
9578
9579 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
9580
9581         * inssel.brg: fixed memcpy (bug #44219).
9582
9583 2003-06-05  Dick Porter  <dick@ximian.com>
9584
9585         * driver.c: Set the glib log levels to not abort if g_message
9586         recurses.
9587
9588         g_set_prgname() has to happen before mini_init() so that the
9589         process handle gets the info.
9590         
9591 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9592
9593         * driver.c: add intrins to the default optimizations to get wider
9594         exposure.
9595
9596 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9597
9598         * mini.h: some large basic blocks will overflow a 16-bit
9599         integers for symbolic registers.
9600
9601 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
9602
9603         * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
9604         (mono_arch_output_basic_block): fix bug 43499 
9605
9606 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9607
9608         * mini.c: kill duplicated definition of mono_debug_format.
9609
9610 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9611
9612         * mini-x86.c, arrays.cs: fixed register allocation bug.
9613
9614 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
9615
9616         * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
9617
9618         * mini.c (mini_get_opcode_for_method): inline IEEERemainder
9619
9620 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9621
9622         * mini.c:
9623         (print_method_from_ip): also print source location information if
9624         available.
9625
9626 2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
9627
9628         * mini.c (mono_find_block_region): bug fix in region code
9629         (mini_method_compile): enable removing unreachable code again, but
9630         only in methods without exception clauses.
9631
9632 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
9633
9634         * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
9635         Implemented arglist opcode and handling of TypedReference type.
9636         Fixed x86 call convention when a structure is returned.
9637         Minimal support for calling static vararg methods.
9638
9639 2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
9640
9641         * mini.c (mini_method_compile):  always remove unreachable code,
9642         because the code in them may be inconsistent  (access to dead
9643         variables for example).
9644
9645 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9646
9647         * driver.c, debug-mini.c: warning fixes.
9648
9649 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
9650
9651         * Makefile.am, jit.h, mini.h: install header for embedding mono.
9652
9653 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
9654
9655         * mini.c: thread-static fields are registered in mono_class_vtable(),
9656         so ensure the function is called before checking for them.
9657
9658 2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
9659
9660         * mini.c (optimize_branches): fix for bug 43586
9661
9662         * jit-icalls.c (mono_llmult_ovf): added an additional check for
9663         overflow (fixes Bug #43639)
9664
9665 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
9666
9667         * mini.c, objects.cs: allow the use of stobj for primitive types.
9668
9669 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
9670
9671         * mini.c: be less strict about argument checking until we support
9672         running the verifier.
9673
9674 2003-05-27  Nick Drochak <ndrochak@gol.com>
9675
9676         * basic-long.cs: tests for (ulong)int * (ulong)int also
9677         * mini.c: use the same trick for (ulong)int * (ulong)int
9678
9679 2003-05-27  Nick Drochak <ndrochak@gol.com>
9680
9681         * basic-long.cs: add regression test for (long)int * (long)int
9682         * cpu-pentium.md: add op_bigmul specification
9683         * inssel-long32.brg: add OP_BIGMUL rule
9684         * mini-ops.h: add OP_BIGMUL
9685         * mini-x86.c: register allocator: handle case where src1 needs to be
9686         in EAX.
9687         * mini.c: substitute special BIGMUL opcode in the tree for 
9688         (long)int * (long)int
9689
9690 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9691
9692         * jit-icalls.c: call the type ctor on field access if needed.
9693
9694 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9695
9696         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
9697         to a method (including results of ldelema, bug#43207).
9698
9699 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
9700
9701         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
9702         colors to show exception handler blocks.
9703
9704         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
9705         (fix for pinvoke7.cs).
9706
9707 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
9708
9709         * mini.h, mini.c: ensure correct initialization order for types that
9710         require it. Prepare for lazy compilation of jit icall wrappers.
9711         Provide a name for opcode emulation to reduce unneeded mallocing.
9712
9713 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
9714
9715         * mini-x86.c: better register restoring code and profiling
9716         support for tail calls.
9717
9718 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
9719
9720         * mini.h, driver.c: prepare for leaf methods optimization.
9721
9722 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9723
9724         * mini.c: get targets of branches before converting a method.
9725
9726 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
9727
9728         * mini.c (optimize_branches): added some experimental code (disbaled) 
9729
9730 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
9731
9732         * mini.c (optimize_branches): fix branch to branch optimization 
9733
9734         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
9735
9736         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
9737
9738         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
9739
9740         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
9741         if needed.
9742
9743 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
9744
9745         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
9746         enable use of interface variables again.
9747
9748         * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
9749         I1 to registers because there is no simply way to sign extend 8bit
9750         quantities in caller saved registers on x86.
9751
9752         * inssel-float.brg: set costs of some rules to 2 so
9753         that monobure always select the arch. specific ones if supplied,
9754         regardless of the order we pass the files to monoburg.
9755
9756 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9757
9758         * mini.c, mini-x86.c: since the magic trampoline for jumps
9759         can't patch the code directly, we do it as soon as the
9760         method gets compiled.
9761
9762 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9763
9764         * mini-x86.c, mini.h: introduce a new patching method
9765         to support CEE_JMP and tail calls.
9766         * mini.c: obey tail.call. Don't precompile methods target
9767         of CEE_JMP.
9768         * tramp-x86.c: new trampoline code to handle methods
9769         reached through a jump.
9770
9771 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
9772
9773         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
9774         bit values to registers
9775
9776 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
9777
9778         * mini.c (mono_compile_get_interface_var): share interface
9779         variables if possible.
9780
9781 2003-05-16  Martin Baulig  <martin@ximian.com>
9782
9783         * debug-mini.c (mono_init_debugger): New function to initialize
9784         the debugger.  This is not in the debugger since it needs to
9785         access some of mini's internals.
9786
9787 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
9788
9789         * mini.c (mono_method_to_ir): inlining fixes/cleanups
9790
9791 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
9792
9793         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
9794         for value type handling.
9795
9796 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
9797
9798         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
9799         (mono_method_check_inlining): enable inlining of all kinds of wrappers
9800
9801 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
9802
9803         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
9804           the constructor through a proxy.
9805
9806 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9807
9808         * jit-icalls.c, inssel.brg: fixes to array element address
9809         calculations.
9810
9811 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
9812
9813         * mini-x86.c (is_regsize_var): allocate pointer to registers
9814
9815 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9816
9817         * driver.c: fixed typo, added intrins to the set of optimizations
9818         tested with regressions.
9819
9820 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9821
9822         * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
9823         * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
9824         test case.
9825
9826 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
9827
9828         * inssel.brg: remove some common pop instructions without side effects
9829
9830 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
9831
9832         * inssel-x86.brg: fixed thinko in int to double conversions.
9833
9834 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9835
9836         * mini.c, jit-icalls.c: added runtime thread-static variable support.
9837
9838 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9839
9840         * inssel-long32.brg: two more missing instructions.
9841
9842 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
9843
9844         * mini.c (mono_emit_call_args): set the cil_code for all arguments
9845         if not already set.
9846
9847 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
9848
9849         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
9850         correctly.
9851
9852         * basic-float.cs: Added tests for negative zero.
9853
9854 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9855
9856         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
9857         a couple of missing operations for long casts, with test cases.
9858
9859 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9860
9861         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
9862
9863 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
9864
9865         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
9866         code size estimation.
9867
9868 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
9869
9870         * mini.c (mono_jit_create_remoting_trampoline): make it work with
9871         abstract methods (fix bug 42542)
9872
9873         * aot.c: add ability to handle array types
9874         
9875 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
9876
9877         * mini.c: Call the _specific versions of the object allocation
9878         functions if possible.
9879
9880 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
9881
9882         * driver.c: call setlocale ().
9883
9884 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9885
9886         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
9887         windows build.
9888
9889 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
9890
9891         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
9892
9893         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
9894         wrappers (fix bug 42122)
9895
9896 2003-05-04  Martin Baulig  <martin@ximian.com>
9897
9898         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
9899
9900         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
9901         s/mini_set_defaults/mono_set_defaults/g.
9902
9903 2003-05-04  Martin Baulig  <martin@ximian.com>
9904
9905         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
9906
9907 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9908
9909         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
9910         (reported by Don Roberts).
9911
9912 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
9913
9914         * mini.c: temporarily work around two bugs for this release.
9915
9916 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9917
9918         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
9919         that contains -export-dynamic and it makes using the ld script
9920         useless.
9921         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
9922
9923 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9924
9925         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
9926         specific cpu.
9927
9928 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9929
9930         * mini.c: make sure leave calls all the needed finally blocks,
9931         even when the target jumps out of multiple exception clauses.
9932
9933 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9934
9935         * ldscript, Makefile.am: add linker script to reduce the number of
9936         exported symbols (should also fix the issues with libwine defining
9937         some of the same symbols in io-layer).
9938
9939 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
9940
9941         * driver.c (mini_main): Avoid assertion when no file name is given on 
9942         the command line.
9943
9944 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
9945
9946         * driver.c: added --version/-V command line option.
9947         Added the inline optimization in the regression tests.
9948
9949 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9950
9951         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
9952         to the type in the method signature (fixes bug#42134).
9953
9954 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
9955
9956         * mini.c: when inlining, check this is not null only when needed (bug #42135).
9957
9958 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
9959
9960         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
9961
9962 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9963
9964         * driver.c: fixed bug #42100.
9965
9966 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
9967
9968         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
9969
9970 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9971
9972         * mini.c: moved most of the code required to do inlining to its own
9973         function so it can be reused. Inline also ctors if appropriate.
9974
9975 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
9976
9977         * Makefile.am: Link with -export-dynamic so shared libs loaded by
9978         the runtime can call mono API functions.
9979
9980 2003-04-27  Martin Baulig  <martin@ximian.com>
9981
9982         * debug-mini.c (mono_debug_init_method): Added
9983         `guint32 breakpoint_id' argument; if the method has a breakpoint,
9984         send a notification to the debugger.
9985
9986         * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
9987         running in the Mono Debugger, just pass the breakpoint number to
9988         mono_debug_init_method().
9989
9990         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
9991
9992 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
9993
9994         * mini.c: allow some more unsafe compares.
9995
9996 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9997
9998         * mini-x86.c, Makefile.am: make distcheck works (partially from
9999         a patch by Richard Lee <r.h.lee@attbi.com>).
10000         * regset.c, regset.h: removed, they are unused.
10001
10002 2003-04-25  Dick Porter  <dick@ximian.com>
10003
10004         * driver.c: Usage reports the name as 'mono' not 'mini'
10005         * exceptions-x86.c: Build and run on freebsd
10006
10007 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
10008
10009         * Makefile.am: install the program with the 'mono' name and
10010         the library as libmono instead of mini and libmini.
10011
10012 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
10013
10014         * driver.c: provide the APIs for the embedding interface of the old jit.
10015
10016 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
10017
10018         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
10019
10020 2003-04-23  Martin Baulig  <martin@ximian.com>
10021
10022         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
10023
10024         * driver.c: Added `--debug' command line argument to enable
10025         debugging support.
10026
10027 2003-04-23  Martin Baulig  <martin@ximian.com>
10028
10029         * debug.[ch]: Removed.  The code is now in
10030         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
10031
10032         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
10033         last six months.
10034
10035 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10036
10037         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
10038
10039 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10040
10041         * mini.c:
10042         (mini_cleanup): moved mono_runtime_cleanup call after the call to
10043         mono_domain_finalize.
10044         (mini_method_compile): use mono_method_profile* if the the option is
10045         enabled.
10046
10047 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
10048
10049         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
10050         methods with their wrapper.
10051
10052         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
10053         methods with their wrapper.
10054
10055         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
10056         their wrapper.
10057
10058         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
10059         wrapper.
10060
10061         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
10062         methods.
10063
10064 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
10065
10066         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
10067
10068 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
10069
10070         * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
10071         of the mempool. This is slightly faster and uses less memory
10072
10073 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
10074
10075         * mini.c: avoid O(n) allocation for variables.
10076
10077 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10078
10079         * mini.c: handle items on the stack after inlining methods.
10080
10081 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
10082
10083         * mini.c: make the method->opcode optimization dependent
10084         on MONO_OPT_INSTRINS and do it lazily.
10085
10086 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
10087
10088         * driver.c: print overall results at the end of regression run.
10089
10090 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
10091
10092         * inssel.brg: don't overwrite symbolic registers.
10093
10094 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
10095
10096         * inssel-x86.brg: fix conversion from long to float.
10097
10098 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
10099
10100         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
10101
10102 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
10103
10104         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
10105
10106         * driver.c: Added --print-vtable option as in the old JIT.
10107
10108 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
10109
10110         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
10111
10112 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
10113
10114         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
10115
10116 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
10117
10118         * mini.c regalloc.c regalloc.h: Fix memory leak.
10119
10120 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
10121
10122         * aot.c (mono_aot_get_method): register all used strings
10123
10124 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
10125
10126         * mini.c: always intern strings references with ldstr at compile time.
10127
10128 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
10129
10130         * Makefile.am: add BUILT_SOURCES.
10131
10132 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
10133
10134         * driver.c: give a better error message when the assembly to execute
10135         doesn't have an entry point.
10136
10137 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
10138
10139         * Makefile.am: added hack for automake
10140
10141         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
10142         correct sematics.
10143
10144         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
10145
10146 22003-04-07  Martin Baulig  <martin@ximian.com>
10147
10148         * Makefile.am: Added Makefile.am.
10149
10150         * debugger-main.c: Removed, this is now in the debugger where it
10151         belongs.
10152
10153         * mini.pc.in: Call this package `mini' for the moment.
10154
10155
10156
10157
10158
10159