2003-11-27 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / mini / ChangeLog
1 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
2
3         * mini.c (mono_method_to_ir): Fix tail calls with valuetype arguments.
4         Also optimize the case when the arguments are the same in the caller 
5         and in the callee.
6
7         * iltests.il: Add tests for tail calls with valuetype arguments.
8
9 Thu Nov 27 21:06:37 CET 2003 Paolo Molaro <lupus@ximian.com>
10
11         * mini-ppc.c: fixes for struct return type.
12
13 Thu Nov 27 19:02:07 CET 2003 Paolo Molaro <lupus@ximian.com>
14
15         * mini.h, mini.c, mini-x86.c, mini-ppc.c, mini-sparc.c: move 
16         mono_spillvar_offset() to arch-specific code.
17
18 Thu Nov 27 18:30:42 CET 2003 Paolo Molaro <lupus@ximian.com>
19
20         * mini-ppc.h, mini-ppc.c: handle some different ABI call convention issues.
21
22 2003-11-27  Zoltan Varga  <vargaz@freemail.hu>
23
24         * exceptions-x86.c: Fix stack space leaks.
25         
26         * exceptions-x86.c (mono_arch_find_jit_info): Restore callee saved
27         registers from the lmf if the method has save_lmf set.
28
29 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
30
31         * tramp-x86.c (x86_magic_trampoline): Avoid patching in the addresses
32         of icall wrappers into InvokeInDomain, since these are now per-domain.
33
34 Wed Nov 26 20:15:04 CET 2003 Paolo Molaro <lupus@ximian.com>
35
36         * mini-ppc.h, mini-x86.h, mini.c, inssel-ppc.brg, jit-icalls.c:
37         make some opcode emulation and intrinsic ops enabled/disabled 
38         according to the architecture. More fixes.
39
40 Wed Nov 26 19:59:09 CET 2003 Paolo Molaro <lupus@ximian.com>
41
42         * mini-ppc.c, mini-sparc.c, cpu-g4.md: more bug fixes.
43
44 Wed Nov 26 19:18:29 CET 2003 Paolo Molaro <lupus@ximian.com>
45
46         * mini.h, inssel.brg, mini-x86.c, mini-ppc.c, mini-sparc.c: move
47         arch-specific handling for 'this' and struct return type to
48         arch-specific code.
49
50 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
51
52         * aot.c: prevent divide by zero error when reporting (it happened with
53         Accessibility.dll).
54
55 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
56
57         * mini.h (inst_switch): Remove unused macro.
58
59 2003-11-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
60
61         * aot.c:
62         (load_aot_module): free 'info->methods' and 'info' properly. No more
63         "free(): invalid pointer blah" messages when you have an old aot
64         compiled assembly.
65
66 2003-11-21  Lluis Sanchez Gual <lluis@ximian.com>
67
68         * jit-icalls.c, mini.c: Added support for context static fields.
69
70 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
71
72         * mini.c (mono_method_blittable): Methods which set LastError are not 
73         blittable either. Fixes #51108.
74         
75 Tue Nov 18 16:41:37 CET 2003 Paolo Molaro <lupus@ximian.com>
76
77         * mini.c: flush icache.
78         * cpu-g4.md, mini-ppc.c, inssel.brg: more fixes. Trace support.
79
80 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
81
82         * mini.c (mono_type_blittable): OBJECT is not blittable. Fixes #47842.
83
84 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
85
86         * tramp-x86.c (x86_class_init_trampoline): Make code patching thread
87         safe on IA32.
88
89         * mini-x86.c (mono_arch_call_opcode): Disable AOT for methods with 
90         vararg calls.
91
92         * inssel.brg (CEE_MKREFANY): Fix AOT case.
93
94 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
95
96         * mini-x86.c (mono_arch_local_regalloc): Fix regalloc for div 
97         instruction when the result is discarded.
98
99         * iltests.il (test_0_div_regalloc): New regression test.
100
101         * arrays.cs: Fix compilation error.
102
103 Fri Nov 14 21:34:06 CET 2003 Paolo Molaro <lupus@ximian.com>
104
105         * inssel-x86.brg, inssel-float.brg, mini-ops.h: move x86-specific
106         float rules to inssel-x86.brg: sane architectures with FP registers
107         don't need to implement these rules.
108
109 Fri Nov 14 20:52:12 CET 2003 Paolo Molaro <lupus@ximian.com>
110
111         * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: updates and fixes to the ppc port.
112
113 Fri Nov 14 17:58:27 CET 2003 Paolo Molaro <lupus@ximian.com>
114
115         * mini.h, inssel-long32.brg: fixed endianess issues in int64
116         implementation of 32 bit systems.
117
118 Thu Nov 13 16:14:41 CET 2003 Paolo Molaro <lupus@ximian.com>
119
120         * exceptions-ppc.c: fix build on Linux/ppc from Jeroen@xs4all.nl
121         (Jeroen Zwartepoorte).
122
123 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
124
125         * mini.c (mono_method_to_ir): Use CEE_JMP only if the signature of
126         the caller and the callee matches.
127         
128         * mini.c (mono_method_to_ir): Add comment.
129
130         * mini-x86.c (mono_arch_output_basic_block): Use mono_signbit, since
131         signbit is missing on some platforms.
132
133 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
134
135         * mini.h (mono_arch_setup_jit_tls_data): New arch specific function.
136
137         * mini.c (setup_jit_tls_data): Call the new function.
138         
139         * mini-x86.c mini-ppc.c mini-sparc.c: Define the new function.
140
141         * mini-x86.c: Add experimental support for fast access to the lmf
142         structure under NPTL/Linux 2.6.x.
143
144 2003-11-06  Martin Baulig  <martin@ximian.com>
145
146         * ldscript: Make `GC_push_all_stack', `GC_start_blocking',
147         `GC_end_blocking' and 'gc_thread_vtable' public; they're used by
148         the debugger.
149
150 2003-11-02  Martin Baulig  <martin@ximian.com>
151
152         * mini.c (inflate_generic_field): New static method.
153         (mono_method_to_ir): In CEE_LDFLD and CEE_LDSFLD: if we're a
154         generic instance and the field is declared in a generic type, call
155         inflate_generic_field() to inflate it.  Fixes gen-28.cs.
156
157 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
158
159         * mini.h mini.c (mono_method_same_domain): New function to return
160         whenever the caller and the callee are in the same domain.
161
162         * tramp-x86.c (x86_magic_trampoline): Use the new function.     
163
164 2003-10-30  Martin Baulig  <martin@ximian.com>
165
166         * mini.c (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): New macros;
167         similar to TYPE_PARAM_TO_TYPE and TYPE_PARAM_TO_CLASS, but for
168         method parameters.
169         (mono_method_to_ir): Added support for MONO_TYPE_MVAR; similar to
170         MONO_TYPE_VAR, we the actual types from MTYPE_PARAM_TO_CLASS(). 
171
172 2003-10-29  Zoltan Varga  <vargaz@freemail.hu>
173
174         * mini.c mini-ops.h inssel.brg: Implement undeniable exception 
175         propagation.
176
177         * mini.c (sigusr1_signal_handler): Move creation of the thread abort
178         object here, so it is in the correct appdomain etc.
179
180 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
181
182         * mini.c (mono_jit_compile_method_inner): Lookup icalls here if not
183         already done.
184         (mono_method_to_ir): Avoid freeing the type created returned from
185         mono_type_create_from_typespec, since it is put into an internal cache
186         by the function. Fixes pointer.exe.
187
188         * mini.c tramp-x86.c tramp-sparc.c tramp-ppc.c: Use the normal 
189         trampolines for icalls and pinvokes as well. Fixes #33569.
190
191 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
192
193         * mini.c: Update after appdomain changes.
194
195         * mini.c (mono_jit_compile_method_inner): Allways compile native
196         method wrappers in the root domain, since there can only be one
197         instance of them, whose address is stored in method->info.
198
199 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
200
201         * mini.c (mono_runtime_install_handlers): Get rid of the MONO_VALGRIND
202         environment variable. Instead detect automatically whenever running
203         under valgrind using the magic macro RUNNING_ON_VALGRIND from
204         valgrind.h.
205
206 2003-10-16  Miguel de Icaza  <miguel@ximian.com>
207
208         * trace.c, trace.h: New files that implement the new trace option
209         parsing. 
210
211         * driver.c: Document new --trace options.
212
213         * exceptions-ppc.c, exceptions-x86.c, mini-ppc.c, mini-sparc.c,
214         mini-x86.c: Apply:
215
216         -       if (mono_jit_trace_calls)
217         +       if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
218
219         * mini.h: prototypes.
220         
221 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
222
223         * mini.c (mono_method_to_ir): Fix initialization of typedbyref locals.
224
225         * mini.c inssel.brg: Implement typedefbyref opcodes.
226
227         * mini.c (mono_jit_compile_method): Remove unused local variable.
228
229         * mini.c (mono_jit_compile_method_inner): Ditto.
230         
231 2003-10-12  Zoltan Varga  <vargaz@freemail.hu>
232
233         * tramp-x86.c (x86_class_init_trampoline): Fix build.
234         
235         * tramp-x86.c (x86_class_init_trampoline): Thread safety fixes.
236
237 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
238
239         * mini.c (mono_no_aot): Remove unused global variable.
240
241         * mini.c: Thread safety fixes.
242
243 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
244
245         * mini.c (mono_create_class_init_trampoline): Add a lock around
246         class_init_hash_addr.
247
248         * arrays.cs (test_0_newarr_emulation): Add new regression test for
249         #30073.
250
251         * mini.c: Decompose the NEWARR instruction before decomposing its
252         arguments. Fixes #30073.
253
254 2003-10-08  Zoltan Varga  <vargaz@freemail.hu>
255
256         * mini-x86.c (mono_arch_emit_epilog): Add support for stdcall calling
257         convention.
258
259 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
260
261         * mini.c (mono_method_to_ir): Allow wrapper data for CEE_LDELEMA.
262
263         * inssel-x86.brg (OP_LOCALLOC): Fix register assignment for localloc.
264
265         * driver.c: Add support for compiling icall wrappers to --compile.
266
267 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
268
269         * inssel.brg: The empty value in class->interface_offsets is -1, not
270         0. Fixes #49287.
271
272 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
273
274         * objects.cs: New test for 'is' operator on an array of interfaces.
275
276 Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
277
278         * tramp-ppc.c: update trampoline code to support jumps
279         and class initialization.
280
281 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
282
283         * mini.c (mono_jit_compile_method): Fix reading of freed memory.
284
285         * inssel.brg (OP_UNBOXCAST): Fix #46027.
286
287         * inssel.brg (OP_UNBOX): Remove unused rule.
288
289         * mini.h mini.c inssel-x86.brg: Allocate one SP variable for each
290         region instead of one for each method. Fixes #47813.
291
292 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
293
294         * exceptions.cs (test_0_nested_finally): New regression test for
295         nested exception handlers.
296
297         * mini.c (mono_jit_runtime_invoke): Fix for the previous fix.
298
299         * mini.c (mono_method_to_ir): Avoid inlining tail calls.
300
301         * mini.c (mono_method_to_ir): Fix tail recursion in the presence of 
302         inlining.
303
304         * mini.c (mono_method_check_inlining): Make the inlining limit 
305         configurable by an environment variable.
306         
307         * mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545.
308
309         * mini.h: Bump AOT file version.
310
311         * mini.h mini.c aot.c mini-x86.c: For relocations which refer to a 
312         token, store the image along with the token, since the token might not 
313         refer to the same image as the method containing the relocation, 
314         because of inlining.
315
316 2003-09-27  Zoltan Varga  <vargaz@freemail.hu>
317
318         * mini.c (mono_precompile_assemblies): New function to compile
319         all methods in all loaded assemblies.
320
321         * mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP.
322
323         * regalloc.h regalloc.c (MonoRegState): Change the type of 
324         iassign and fassign to int*, since they can contain large negative
325         values if the register is spilled. Also added some comments. Fixes
326         #45817.
327
328         * exceptions-x86.c (seh_handler): Fix handling of system exceptions
329         under Win32. Fixes #42964.
330
331 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
332
333         * mini.h (MONO_PATCH_INFO_WRAPPER): New patch type.
334
335         * aot.c: Added support for AOT compiling methods which contain calls
336         to wrappers. Currently, only remoting-invoke-with-check wrappers are
337         handled.
338         
339         * driver.c (compile_all_methods): Run the compilation in a thread
340         managed by mono. Fixes #44023.
341
342         * mini.c (mono_codegen): Print full method name in verbose output.
343
344         * mini-x86.c (mono_arch_patch_code): Fix warning.
345         
346         * mini-x86.c (mono_arch_patch_code): Allways create a trampoline for
347         jumps, since the method we are jumping to might be domain-specific.
348
349         * aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP.
350
351 Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
352
353         * inssel.brg: string chars are unsigned.
354
355 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
356
357         * TODO: New todo item.
358
359         * tramp-x86.c (x86_class_init_trampoline): New trampoline function
360         which calls mono_runtime_class_init and patches the call site to
361         avoid further calls.
362         (mono_arch_create_class_init_trampoline): New arch specific function 
363         to create a class init trampoline.
364         (create_trampoline_code): Generalized so it can create
365         class init trampolines as well.
366
367         * mini.c (helper_sig_class_init_trampoline): New helper variable.
368         (mono_create_class_init_trampoline): New function to create and cache
369         class init trampolines.
370         (mono_find_class_init_trampoline_by_addr): New function to lookup the
371         vtable given the address of a class init trampoline. Used by the
372         patching process.
373         (mono_codegen): Generate a call to a trampoline instead of
374         mono_runtime_class_init in LDSFLD[A].
375         (mono_codegen): Add relocations for the new trampoline.
376         
377         * mini.h mini-x86.c aot.c: Added a new relocation type: 
378         MONO_PATCH_INFO_CLASS_INIT.
379
380         * mini.h: Bump AOT version number.
381
382         * aot.c: Create a copy of the loaded code instead of using the original
383         so methods which call each other will be close in memory, improving
384         cache behaviour.
385         
386         * exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous
387         patch since it breaks the regression tests.
388         
389         * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check
390         for the register saving instruction sequence since the 
391         frame_state_for function in glibc 2.3.2 don't seem to detect it.
392
393 2003-09-14  Zoltan Varga  <vargaz@freemail.hu>
394
395         * TODO: Fix todo item && remove another.
396
397 2003-09-12  Zoltan Varga  <vargaz@freemail.hu>
398
399         * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a
400         previous checkin.
401
402         * aot.c: Moved the check for MONO_LASTAOT into the initialization
403         function of the module.
404
405         * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for
406         turning on/off the usage of AOT code. Got rid of mono_no_aot and the
407         --no-aot command line option.
408
409 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
410
411         * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch
412         by Bernie Solomon (bernard@ugsolutions.com).
413
414         * inssel.brg: Refactor the interface offset table related code into
415         its separate functions and add support for the AOT case.
416
417 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
418
419         * aot.c (mono_aot_get_method_inner): Fix memory leak.
420         
421         * aot.c: Added mono_aot_verbose variable and made all debugging
422         output depend on the value of this variable.
423
424         * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of
425         method_label and info_label.
426
427         * mini.h mini-x86.c aot.c: Added a new relocation type 
428         MONO_PATCH_INFO_IID for klass->interface_id.
429
430         * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return
431         the MonoJitInfo structure.
432
433         * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in
434         a non-root appdomain in shared mode.
435
436 Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
437
438         * aot.c: make aot loader less verbose. Remove free of unused variable.
439
440 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
441
442         * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE.
443
444         * .cvsignore: Added *.dll.
445
446         * mini.c (mono_print_tree_nl): New function callable while debugging.
447
448         * mini.c (mono_print_code): Export this.
449
450         * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the
451         patched code.
452
453 2003-09-05  Zoltan Varga  <vargaz@freemail.hu>
454
455         * mini.h (MonoCompile): Added 'jit_info' field.
456
457         * mini.c (mini_method_compile): Save the generated MonoJitInfo into
458         the cfg structure, since it is needed by the AOT compiler.
459
460         * mini.h (MONO_AOT_FILE_VERSION): Bump version number.
461
462         * aot.c: A major rewrite. Changes include:
463         - save exception tables for methods which have them.
464         - cache failed lookups in aot_get_method () to avoid the (slow) calls 
465         to g_module_symbol.
466         - reworked the file format so it is now much smaller and needs
467         fewer relocation entries.
468         
469 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
470
471         * aot.c (load_aot_module): Fix build bustage on platforms without
472         Boehm GC.
473
474 2003-09-04  Martin Baulig  <martin@ximian.com>
475
476         * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS).
477
478 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
479
480         * TODO: Some new optimization ideas.
481
482         * aot.c: Move AOT module loading logic here from mono_assembly_open.
483
484         * aot.c: Save the optimization flags used to compile the code into
485         the AOT module.
486
487         * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to
488         support emitting domain specific code.
489         
490         * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is 
491         no longer domain neutral. It can be made domain neutral by compiling 
492         with --optimize=shared.
493
494         * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods
495         between appdomains.
496
497         * driver.c mini.h mini.c: New --no-aot debugging option which disables
498         loading of AOT code.
499
500         * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule.
501         
502         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method
503         if there is no domain neutrality information.
504
505 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
506
507         * aot.c (mono_compile_assembly): Emit a symbol containing the file 
508         format version into the generated library.
509
510         * mini-x86.c (mono_arch_patch_code): Do not emit the address of the
511         callee method into the caller since one of them could be shared.
512
513         * mini.h mini-x86.c aot.c: Added two new relocations so throwing
514         system exceptions from AOT code now works.
515
516         * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling 
517         method if it is domain neutral and the callee is not.
518
519         * graph.c (cfg_emit_one_loop_level): Fix warning.
520
521 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
522
523         * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from
524         last checkin.
525
526 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
527
528         * mini.c (mini_init): Call mono_marshal_init () explicitly since it
529         is needed  by code which is executed before mono_runtime_init ().
530         Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this.
531         
532         * mini.c (mono_thread_abort): Fix warning.
533         (mono_jit_compile_method): Call static constructor in the AOT case too.
534
535         * aot.c (mono_compile_assembly): Fix warning.
536
537 2003-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
538
539         * mini.c: register a SIGINT handler if MONO_DEBUG is defined.
540
541 2003-08-28  Zoltan Varga  <vargaz@freemail.hu>
542
543         * inssel.brg (OP_UNBOXCAST): Add support for the AOT case.
544
545         * cpu-pentium.md: Fix the length of call opcodes so they include the
546         ESP restoring instruction. Fixes #47968.
547
548 2003-08-28  Martin Baulig  <martin@ximian.com>
549
550         * mini-x86.c (mono_arch_call_opcode): Added support for
551         MONO_TYPE_GENERICINST.
552
553         * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST.       
554
555 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
556
557         * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without
558         a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com).
559
560         * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of
561         metadata_section.
562
563 2003-08-26  Martin Baulig  <martin@ximian.com>
564
565         * mini.c (get_basic_blocks): Added `unsigned char **pos' argument;
566         when reporting an error, set this to the actual error location.
567         (mono_method_to_ir): Report the correct error location if
568         get_basic_blocks() returned an error.
569
570 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
571
572         * mini.c (mono_type_blittable): OBJECT is not blittable.
573         (mono_method_blittable): Methods which have marshalling descriptors
574         are not blittable either. Fixes #47842.
575
576 2003-08-22  Zoltan Varga  <vargaz@freemail.hu>
577
578         * driver.c mini.c: Use an environment variable instead of a global 
579         variable. Also fix the build.
580
581         * mini.c (mini_init): Call g_thread_init () to make glib thread-safe. 
582         Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for 
583         reporting this. 
584
585         * driver.c mini.c: Added --with-valgrind option to turn off some
586         code which prevents mono from running under valgrind.
587
588         * mini.c (mono_emit_call_args): Fixed warning.
589
590         * mini.c (mono_emulate_opcode): Fixed warning.
591
592 Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
593
594         * inssel.brg: 64bit fixes from Laurent Morichetti <l_m@pacbell.net>.
595         * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h,
596         regalloc.c, regalloc.h: specify available registers in arch-specific
597         code and support floats in the regallocator (patch by Laurent Morichetti 
598         <l_m@pacbell.net>)
599
600 Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
601
602         * mini.c: mono_thread_current() can be called only after
603         mono_runtime_init(): rearrange code to not call it early on.
604
605 Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
606
607         * mini.c: allocate jump tables in the code mempools.
608
609 Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
610
611         * mini.c, mini.h: make sure per-thread data allocated by the jit is
612         freed.
613
614 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
615
616         * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from
617         12 to 16.  This fixes bug #47453.
618
619
620 Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
621
622         * mini-ppc.c: fixed indexed load and unsigned compares.
623
624 2003-08-06  Lluis Sanchez Gual  <lluis@ximian.com>
625
626         * mini.c: reenabled installation of handler for
627           thread abort signal.
628
629 Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
630
631         * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted
632         by Laurent Morichetti <l_m@pacbell.net>. Disabled local cprop
633         until it's fixed and actually useful.
634
635 Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
636
637         * inssel-long32.brg: couple more opcodes implemented.
638
639 Thu Jul 31 22:43:02 EDT 2003 Mark Crichton <crichton@gimp.org>
640         
641         * mini-sparc.c: Even more opcodes implemeted.
642
643 Thu Jul 31 19:36:03 EDT 2003 Mark Crichton <crichton@gimp.org>
644
645         * mini-sparc.c: More opcodes implemented.
646
647 Thu Jul 31 15:16:26 EDT 2003 Mark Crichton <crichton@gimp.org>
648
649         * mini-sparc.c: More opcodes implemented.
650
651 Wed Jul 30 22:31:02 EDT 2003 Mark Crichton <crichton@gimp.org>
652
653         * inssel-sparc.brg: Add some needed rules.  Direct
654         copy from PPC.
655         * Makefile.am: Use inssel-sparc.brg
656         * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep
657         an assert happy for now.
658
659 Wed Jul 30 20:44:07 EDT 2003 Mark Crichton <crichton@gimp.org>
660
661         * mini-sparc.c: Fixed compile errors.
662         * exceptions-sparc.c: Same.  We now produce a mono binary 
663         on sparc-linux.  Yea.
664
665 Wed Jul 30 14:10:12 EDT 2003 Mark Crichton <crichton@gimp.org>
666
667         * mini-sparc.c: Renamed registers.  Also some macro cleanups.
668         * exceptions-sparc.c, tramp-sparc.c: Various compile fixes.
669         They compile, but do not work.
670
671 Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
672
673         * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c,
674         mini-sparc.h, tramp-sparc.c: Beginning of sparc support
675         from Mark Crichton <crichton@gimp.org> and Christopher Taylor
676         (ct@gentoo.org).
677
678 Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
679
680         * mini.c: more opcodes implemented and better support for generics.
681
682 Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
683
684         * cpu-g4.md, cpu-pentium.md: updates for new instructions.
685         * mini.c, mini.h: first cut at generics support: some new instructions 
686         added and changed the behaviour of some of the existing ones.
687
688 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
689
690         * mini.c: Removed definition of metadata_shared mutex here.
691
692 Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
693
694         * mini-x86.c: make vararg calls work for instance methods.
695
696 Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
697
698         * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode()
699         returns the arguments in a separte list, now.
700
701 Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
702
703         * aot.c, mini.c: updates for array type representation changes.
704
705 Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro <lupus@ximian.com>
706
707         * mini.c: register function to perform jit shutdown.
708
709 Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
710
711         * mini.c: use a faster allocator if possible.
712
713 Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
714
715         * aot.c: some cleanups and portability changes.
716
717 Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
718
719         * mini.c: use faster allocation for CEE_BOX if possible.
720
721 Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
722
723         * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields.
724         Moved inlined mempcy code to its own function so that is can be
725         reused. Added an inline memset function as well (optimized initobj).
726         * cpu-pentium.md, inssel-x86.brg: add and use lea_membase.
727
728 Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
729
730         * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods.
731
732 Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
733
734         * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that
735         arch code can setup the cpu for CLR execution, if needed.
736         We use it on x86 to set the precision of FP operations.
737
738 Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
739
740         * mini.c: disable some optimizations if we can guess they'll cost too
741         much for a given method.
742
743 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
744
745         * mini.h mini.c: Rework last patch based on suggestions by Paolo.
746         
747 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
748         * mini.h mini.c mini-x86.c: Added instruction level coverage 
749         info collection support.
750
751 Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
752
753         * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff
754         is now implemented in the profiling API. Get rid of a couple of
755         unnecessary global variables.
756
757 2003-06-15  Nick Drochak <ndrochak@gol.com>
758
759         * basic-long.cs: tests for negative values for bigmul, and unsigned.
760         * cpu-g4.md: add op_bigmul and op_bigmul_un
761         * cpu_pentium.md: add op_bigmul_un
762         * inssel-long32.brg: add rule for unsigned bigmul
763         * mini-ops.h: define OP_BIGMUL_UN
764         * mini-x86.c: THE BUG: handle (un)signed properly
765         * mini.c: choose unsigned opcode if needed.
766         This set of patches fixes bug #44291
767
768 2003-06-13  Dietmar Maurer  <dietmar@ximian.com>
769
770         * mini.c (optimize_branches): improved to handle all kinds of
771         conditional branches.
772
773 Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
774
775         * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that
776         don't raise exceptions.
777
778 Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
779
780         * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
781         to arch-specific files.
782
783 2003-06-09  Martin Baulig  <martin@ximian.com>
784
785         * Makefile.am (libs): Added $(LIBGC_LIBS).
786
787 Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
788
789         * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
790         and OP_ATAN (fixes bug#44293).
791
792 Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
793
794         * Makefile.am, mini-x86.c: rename cpu description array to
795         pentium_desc, since some compilers define the 'pentium' preprocessor
796         symbol.
797
798 2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
799
800         * mini.c (mini_select_instructions): add explicit branch if the
801         following block is not the false target of a conditional branch -
802         we need this with any optimization that reorder or remove bblocks
803
804         * mini.c (optimize_branches): bug fixes
805
806 2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
807
808         * mini.c (mono_method_to_ir): inline static readonly fields
809
810         * ssa.c (fold_tree): start cfold support for long (very simple
811         cases only)
812
813         * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
814
815 Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
816
817         * inssel.brg: fixed memcpy (bug #44219).
818
819 2003-06-05  Dick Porter  <dick@ximian.com>
820
821         * driver.c: Set the glib log levels to not abort if g_message
822         recurses.
823
824         g_set_prgname() has to happen before mini_init() so that the
825         process handle gets the info.
826         
827 Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
828
829         * driver.c: add intrins to the default optimizations to get wider
830         exposure.
831
832 Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
833
834         * mini.h: some large basic blocks will overflow a 16-bit
835         integers for symbolic registers.
836
837 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
838
839         * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
840         (mono_arch_output_basic_block): fix bug 43499 
841
842 Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
843
844         * mini.c: kill duplicated definition of mono_debug_format.
845
846 Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
847
848         * mini-x86.c, arrays.cs: fixed register allocation bug.
849
850 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
851
852         * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
853
854         * mini.c (mini_get_opcode_for_method): inline IEEERemainder
855
856 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
857
858         * mini.c:
859         (print_method_from_ip): also print source location information if
860         available.
861
862 2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
863
864         * mini.c (mono_find_block_region): bug fix in region code
865         (mini_method_compile): enable removing unreachable code again, but
866         only in methods without exception clauses.
867
868 Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
869
870         * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
871         Implemented arglist opcode and handling of TypedReference type.
872         Fixed x86 call convention when a structure is returned.
873         Minimal support for calling static vararg methods.
874
875 2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
876
877         * mini.c (mini_method_compile):  always remove unreachable code,
878         because the code in them may be inconsistent  (access to dead
879         variables for example).
880
881 Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
882
883         * driver.c, debug-mini.c: warning fixes.
884
885 Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
886
887         * Makefile.am, jit.h, mini.h: install header for embedding mono.
888
889 Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
890
891         * mini.c: thread-static fields are registered in mono_class_vtable(),
892         so ensure the function is called before checking for them.
893
894 2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
895
896         * mini.c (optimize_branches): fix for bug 43586
897
898         * jit-icalls.c (mono_llmult_ovf): added an additional check for
899         overflow (fixes Bug #43639)
900
901 Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
902
903         * mini.c, objects.cs: allow the use of stobj for primitive types.
904
905 Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
906
907         * mini.c: be less strict about argument checking until we support
908         running the verifier.
909
910 2003-05-27  Nick Drochak <ndrochak@gol.com>
911
912         * basic-long.cs: tests for (ulong)int * (ulong)int also
913         * mini.c: use the same trick for (ulong)int * (ulong)int
914
915 2003-05-27  Nick Drochak <ndrochak@gol.com>
916
917         * basic-long.cs: add regression test for (long)int * (long)int
918         * cpu-pentium.md: add op_bigmul specification
919         * inssel-long32.brg: add OP_BIGMUL rule
920         * mini-ops.h: add OP_BIGMUL
921         * mini-x86.c: register allocator: handle case where src1 needs to be
922         in EAX.
923         * mini.c: substitute special BIGMUL opcode in the tree for 
924         (long)int * (long)int
925
926 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
927
928         * jit-icalls.c: call the type ctor on field access if needed.
929
930 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
931
932         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
933         to a method (including results of ldelema, bug#43207).
934
935 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
936
937         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
938         colors to show exception handler blocks.
939
940         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
941         (fix for pinvoke7.cs).
942
943 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
944
945         * mini.h, mini.c: ensure correct initialization order for types that
946         require it. Prepare for lazy compilation of jit icall wrappers.
947         Provide a name for opcode emulation to reduce unneeded mallocing.
948
949 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
950
951         * mini-x86.c: better register restoring code and profiling
952         support for tail calls.
953
954 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
955
956         * mini.h, driver.c: prepare for leaf methods optimization.
957
958 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
959
960         * mini.c: get targets of branches before converting a method.
961
962 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
963
964         * mini.c (optimize_branches): added some experimental code (disbaled) 
965
966 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
967
968         * mini.c (optimize_branches): fix branch to branch optimization 
969
970         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
971
972         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
973
974         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
975
976         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
977         if needed.
978
979 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
980
981         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
982         enable use of interface variables again.
983
984         * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
985         I1 to registers because there is no simply way to sign extend 8bit
986         quantities in caller saved registers on x86.
987
988         * inssel-float.brg: set costs of some rules to 2 so
989         that monobure always select the arch. specific ones if supplied,
990         regardless of the order we pass the files to monoburg.
991
992 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
993
994         * mini.c, mini-x86.c: since the magic trampoline for jumps
995         can't patch the code directly, we do it as soon as the
996         method gets compiled.
997
998 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
999
1000         * mini-x86.c, mini.h: introduce a new patching method
1001         to support CEE_JMP and tail calls.
1002         * mini.c: obey tail.call. Don't precompile methods target
1003         of CEE_JMP.
1004         * tramp-x86.c: new trampoline code to handle methods
1005         reached through a jump.
1006
1007 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
1008
1009         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
1010         bit values to registers
1011
1012 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
1013
1014         * mini.c (mono_compile_get_interface_var): share interface
1015         variables if possible.
1016
1017 2003-05-16  Martin Baulig  <martin@ximian.com>
1018
1019         * debug-mini.c (mono_init_debugger): New function to initialize
1020         the debugger.  This is not in the debugger since it needs to
1021         access some of mini's internals.
1022
1023 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
1024
1025         * mini.c (mono_method_to_ir): inlining fixes/cleanups
1026
1027 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
1028
1029         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
1030         for value type handling.
1031
1032 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
1033
1034         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
1035         (mono_method_check_inlining): enable inlining of all kinds of wrappers
1036
1037 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
1038
1039         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
1040           the constructor through a proxy.
1041
1042 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
1043
1044         * jit-icalls.c, inssel.brg: fixes to array element address
1045         calculations.
1046
1047 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
1048
1049         * mini-x86.c (is_regsize_var): allocate pointer to registers
1050
1051 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
1052
1053         * driver.c: fixed typo, added intrins to the set of optimizations
1054         tested with regressions.
1055
1056 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
1057
1058         * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
1059         * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
1060         test case.
1061
1062 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
1063
1064         * inssel.brg: remove some common pop instructions without side effects
1065
1066 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
1067
1068         * inssel-x86.brg: fixed thinko in int to double conversions.
1069
1070 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
1071
1072         * mini.c, jit-icalls.c: added runtime thread-static variable support.
1073
1074 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
1075
1076         * inssel-long32.brg: two more missing instructions.
1077
1078 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
1079
1080         * mini.c (mono_emit_call_args): set the cil_code for all arguments
1081         if not already set.
1082
1083 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
1084
1085         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
1086         correctly.
1087
1088         * basic-float.cs: Added tests for negative zero.
1089
1090 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
1091
1092         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
1093         a couple of missing operations for long casts, with test cases.
1094
1095 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1096
1097         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
1098
1099 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
1100
1101         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
1102         code size estimation.
1103
1104 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
1105
1106         * mini.c (mono_jit_create_remoting_trampoline): make it work with
1107         abstract methods (fix bug 42542)
1108
1109         * aot.c: add ability to handle array types
1110         
1111 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
1112
1113         * mini.c: Call the _specific versions of the object allocation
1114         functions if possible.
1115
1116 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
1117
1118         * driver.c: call setlocale ().
1119
1120 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
1121
1122         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
1123         windows build.
1124
1125 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
1126
1127         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
1128
1129         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
1130         wrappers (fix bug 42122)
1131
1132 2003-05-04  Martin Baulig  <martin@ximian.com>
1133
1134         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
1135
1136         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
1137         s/mini_set_defaults/mono_set_defaults/g.
1138
1139 2003-05-04  Martin Baulig  <martin@ximian.com>
1140
1141         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
1142
1143 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
1144
1145         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
1146         (reported by Don Roberts).
1147
1148 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
1149
1150         * mini.c: temporarily work around two bugs for this release.
1151
1152 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
1153
1154         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
1155         that contains -export-dynamic and it makes using the ld script
1156         useless.
1157         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
1158
1159 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
1160
1161         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
1162         specific cpu.
1163
1164 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
1165
1166         * mini.c: make sure leave calls all the needed finally blocks,
1167         even when the target jumps out of multiple exception clauses.
1168
1169 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
1170
1171         * ldscript, Makefile.am: add linker script to reduce the number of
1172         exported symbols (should also fix the issues with libwine defining
1173         some of the same symbols in io-layer).
1174
1175 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
1176
1177         * driver.c (mini_main): Avoid assertion when no file name is given on 
1178         the command line.
1179
1180 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
1181
1182         * driver.c: added --version/-V command line option.
1183         Added the inline optimization in the regression tests.
1184
1185 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
1186
1187         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
1188         to the type in the method signature (fixes bug#42134).
1189
1190 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
1191
1192         * mini.c: when inlining, check this is not null only when needed (bug #42135).
1193
1194 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
1195
1196         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
1197
1198 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1199
1200         * driver.c: fixed bug #42100.
1201
1202 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
1203
1204         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
1205
1206 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
1207
1208         * mini.c: moved most of the code required to do inlining to its own
1209         function so it can be reused. Inline also ctors if appropriate.
1210
1211 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
1212
1213         * Makefile.am: Link with -export-dynamic so shared libs loaded by
1214         the runtime can call mono API functions.
1215
1216 2003-04-27  Martin Baulig  <martin@ximian.com>
1217
1218         * debug-mini.c (mono_debug_init_method): Added
1219         `guint32 breakpoint_id' argument; if the method has a breakpoint,
1220         send a notification to the debugger.
1221
1222         * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
1223         running in the Mono Debugger, just pass the breakpoint number to
1224         mono_debug_init_method().
1225
1226         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
1227
1228 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
1229
1230         * mini.c: allow some more unsafe compares.
1231
1232 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
1233
1234         * mini-x86.c, Makefile.am: make distcheck works (partially from
1235         a patch by Richard Lee <r.h.lee@attbi.com>).
1236         * regset.c, regset.h: removed, they are unused.
1237
1238 2003-04-25  Dick Porter  <dick@ximian.com>
1239
1240         * driver.c: Usage reports the name as 'mono' not 'mini'
1241         * exceptions-x86.c: Build and run on freebsd
1242
1243 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
1244
1245         * Makefile.am: install the program with the 'mono' name and
1246         the library as libmono instead of mini and libmini.
1247
1248 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
1249
1250         * driver.c: provide the APIs for the embedding interface of the old jit.
1251
1252 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
1253
1254         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
1255
1256 2003-04-23  Martin Baulig  <martin@ximian.com>
1257
1258         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
1259
1260         * driver.c: Added `--debug' command line argument to enable
1261         debugging support.
1262
1263 2003-04-23  Martin Baulig  <martin@ximian.com>
1264
1265         * debug.[ch]: Removed.  The code is now in
1266         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
1267
1268         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
1269         last six months.
1270
1271 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
1272
1273         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
1274
1275 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1276
1277         * mini.c:
1278         (mini_cleanup): moved mono_runtime_cleanup call after the call to
1279         mono_domain_finalize.
1280         (mini_method_compile): use mono_method_profile* if the the option is
1281         enabled.
1282
1283 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
1284
1285         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
1286         methods with their wrapper.
1287
1288         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
1289         methods with their wrapper.
1290
1291         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
1292         their wrapper.
1293
1294         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
1295         wrapper.
1296
1297         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
1298         methods.
1299
1300 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
1301
1302         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
1303
1304 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
1305
1306         * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
1307         of the mempool. This is slightly faster and uses less memory
1308
1309 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
1310
1311         * mini.c: avoid O(n) allocation for variables.
1312
1313 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
1314
1315         * mini.c: handle items on the stack after inlining methods.
1316
1317 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
1318
1319         * mini.c: make the method->opcode optimization dependent
1320         on MONO_OPT_INSTRINS and do it lazily.
1321
1322 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
1323
1324         * driver.c: print overall results at the end of regression run.
1325
1326 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
1327
1328         * inssel.brg: don't overwrite symbolic registers.
1329
1330 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
1331
1332         * inssel-x86.brg: fix conversion from long to float.
1333
1334 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
1335
1336         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
1337
1338 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
1339
1340         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
1341
1342         * driver.c: Added --print-vtable option as in the old JIT.
1343
1344 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
1345
1346         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
1347
1348 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
1349
1350         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
1351
1352 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
1353
1354         * mini.c regalloc.c regalloc.h: Fix memory leak.
1355
1356 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
1357
1358         * aot.c (mono_aot_get_method): register all used strings
1359
1360 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
1361
1362         * mini.c: always intern strings references with ldstr at compile time.
1363
1364 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
1365
1366         * Makefile.am: add BUILT_SOURCES.
1367
1368 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
1369
1370         * driver.c: give a better error message when the assembly to execute
1371         doesn't have an entry point.
1372
1373 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
1374
1375         * Makefile.am: added hack for automake
1376
1377         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
1378         correct sematics.
1379
1380         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
1381
1382 22003-04-07  Martin Baulig  <martin@ximian.com>
1383
1384         * Makefile.am: Added Makefile.am.
1385
1386         * debugger-main.c: Removed, this is now in the debugger where it
1387         belongs.
1388
1389         * mini.pc.in: Call this package `mini' for the moment.
1390
1391
1392