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