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