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