/
ChangeLog
9205 lines (5487 loc) · 284 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2006-10-12 Zoltan Varga <vargaz@gmail.com>
* mini.c trace.c mini-x86.c: Remove warning workarounds after the mono_type_size ()
signature change.
Tue Oct 10 11:35:20 CEST 2006 Paolo Molaro <lupus@ximian.com>
* genmdesc.c: removed now dead code.
2006-10-09 Robert Jordan <robertj@gmx.net>
* mini.c: Disable the CrashReporter on MacOS X; Fixes #74869
Mon Oct 9 17:06:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.h: do not leave gaps in the opcode values.
Mon Oct 9 16:08:51 CEST 2006 Paolo Molaro <lupus@ximian.com>
* jit-icalls.h: flag functions as internal here, too.
Mon Oct 9 15:58:18 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.h, aliasing.h, declsec.h, regalloc.h, trace.h: mark internal
functions with the internal attribute.
Mon Oct 9 15:52:45 CEST 2006 Paolo Molaro <lupus@ximian.com>
* aot-compiler.c: fclose the file descriptor in the profile read loop.
Fri Oct 6 16:01:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c, jit-icalls.c, inssel-float.brg: beginnings of support
for soft-float.
2006-10-05 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c (emit_load_volatile_arguments): New function to handle arguments of
tail calls as on other platforms.
* mini.c (mono_method_to_ir): Fix a few tailcall problems. Fixes #79557.
* iltests.il: Add a few tailcall tests.
Tue Oct 3 16:33:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
* driver.c: fix loop for old compilers (bug #79521).
2006-10-02 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c (ves_icall_get_trace): Remove debug printf.
* aot-runtime.c (mono_aot_get_class_from_name): Avoid a memory allocation.
* aot-compiler.c: Add a new option 'metadata-only' to only emit the cached
metadata without any code.
* mini-exceptions.c (mono_handle_native_sigsegv): Add some code to print out
more precise debugging information using gdb.
2006-09-30 Zoltan Varga <vargaz@gmail.com>
* inssel-ia64.brg: Make the helper methods static.
Thu Sep 28 16:40:07 CEST 2006 Paolo Molaro <lupus@ximian.com>
* inssel-x86.brg: make the helper methods static.
Thu Sep 28 16:31:32 CEST 2006 Paolo Molaro <lupus@ximian.com>
* inssel-amd64.brg, mini-amd64.c: small cleanup, use inst_call.
Thu Sep 28 15:36:07 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: updates for monoburg changes.
* inssel.brg: make a few helper functions static as they should.
2006-09-27 Zoltan Varga <vargaz@gmail.com>
* Makefile.am: Move mini-codegen.c to common_sources.
Wed Sep 27 15:07:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.h: instroduce inst_call in MonoInst for use in OUTARG
instructions.
* Makefile.am, cpu-g4.md, inssel-ppc.brg, mini-codegen.c, mini-ppc.c,
mini-ppc.h: port to use the common local register allocator.
2006-09-26 Zoltan Varga <vargaz@gmail.com>
* mini.h: Remove the comment too then.
Tue Sep 26 14:02:58 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.h: put back backend.data which is to be used shortly and
doesn't increase the size of MonoInst. If any 64 bit arch aligned
pointers on 4 byte boundaries it'd have much bigger issues running
and you can ifdef it out anyway.
2006-09-26 Zoltan Varga <vargaz@gmail.com>
* mini.h (MonoInst): Remove backend.data field since it is unused and increases
MonoInst size by 4 bytes on 64 bit machines.
Tue Sep 26 11:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
* *.{c,h,brg}: long due removal of the unused field in MonoInst and
replacement with more meaningful field names. Arch maintainers, please
check the assigned names are good enough for your arch.
2006-09-26 Zoltan Varga <vargaz@gmail.com>
* cpu-ia64.md mini-ia64.c inssel-ia64.brg mini-ops.h: Get rid of the
OP_IA64_FETCHADD opcodes, use OP_ATOMIC_ADD_IMM_NEW opcodes instead.
Mon Sep 25 11:05:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.h, driver.c, optflags-def.h, Makefile.am: reduce runtime
relocations and memory requirements, put the optimization flags
definitions in their own file.
2006-09-24 Zoltan Varga <vargaz@gmail.com>
* jit-icalls.c (mono_helper_stelem_ref): Remove this unused helper function.
* mini.c (mini_init): Remove reference to mono_helper_stelem_ref.
2006-09-22 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (add_valuetype): Fix an uninitialized memory issue.
Thu Sep 21 19:06:09 CEST 2006 Paolo Molaro <lupus@ximian.com>
* inssel.brg: use the correct function to get the size of an item
in an array, given an element class.
* aot-compiler.c: do not access class->class_size directly.
Thu Sep 21 12:10:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.h, debug-mini.c: added a debugging function to print
info about local variables and arguments in a jitted method.
2006-09-20 Zoltan Varga <vargaz@gmail.com>
* mini-alpha.c: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>.
* exceptions-ia64.c: Fix some problems reported by Bill Seurer <seurer@us.ibm.com>.
2006-09-19 Zoltan Varga <vargaz@gmail.com>
* mini-ia64.c (mono_arch_call_opcode): Avoid using the same loop index in the
inner and outer loops when passing vtypes.
Tue Sep 19 17:53:40 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini-ppc.c: take into account the cpu errata for cache flushing
which caused some random errors (bug #79381).
2006-09-19 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_emit_exceptions): Emit the call to
mono_arch_throw_corlib_exception using emit_call () too. Fixes #79271.
2006-09-17 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c (load_aot_module): Return immeditely if the AOT module was already
loaded.
* exceptions-amd64.c (gregs_from_ucontext): Apply another patch from the
freebsd ports tree.
* mini-amd64.c (emit_call): Avoid near calls on freebsd.
(mono_arch_patch_code): Remove the unused handling of MONO_PATCH_INFO_CLASS_INIT.
* tramp-amd64.c (mono_arch_create_specific_trampoline): Fix check for 32 bitness of
displacement.
2006-09-13 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c (load_aot_module_from_cache): Fix PPC build.
2006-09-12 Zoltan Varga <vargaz@gmail.com>
* mini.c (UNVERIFIED): Add a 'break-on-unverified' MONO_DEBUG option so this
macro does not have to be changed during debugging.
* 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>.
* cpu-pentium.md: Rename this to cpu-x86.md for consistency with other platforms.
* Makefile.am mini-x86.c mini-codegen.c: Rename pentium_desc to x86_desc.
* mini.c (mini_get_ldelema_ins): Allow ldelema2d optimization if
MONO_ARCH_NO_EMULATE_MUL is defined.
* mini-ia64.h (MONO_ARCH_CALLEE_FREGS): Reserve f33 for use by instructions.
* mini-ia64.h: Define MONO_ARCH_NO_EMULATE_MUL.
* mini-ia64.c: Implement CEE_MUL based on gcc emitted code.
* mini-ia64.c (mono_arch_lowering_pass): Optimize store_membase_imm with offset==0.
2006-09-11 Zoltan Varga <vargaz@gmail.com>
* mini-x86.h mini-amd64.h mini-exceptions.c: Move the bsd specific MAP_ANON
stuff to mini-exceptions.c where it is used.
* mini-sparc.c (mono_arch_setup_jit_tls_data): Remove the duplicate altstack
setup code, the real one is in mini-exceptions.c.
* mini-amd64.h mini-amd64.c exceptions-amd64.c: Move all dependencies on the
layout of ucontext_t to helper functions in exceptions-amd64.c, as on x86. Add
some changes from the freebsd ports tree.
* mini-amd64.h exceptions-amd64.c: Fix the amd64 build. Get rid of the SC_
constants.
* mini-amd64.h: Freebsd has MAP_ANON instead of MAP_ANONYMOUS.
Mon Sep 11 13:18:55 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: on Linux, check for /proc to be mounted
(bug# 79351, novell bug#201204).
Mon Sep 11 13:10:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: handle cases where pthread_attr_getstack() behaves
incorrectly (bug #78096).
Mon Sep 11 11:31:10 BST 2006 Paolo Molaro <lupus@ximian.com>
* mini-arm.c: support larger stack frames (bug #79272).
2006-09-08 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c (mono_aot_get_class_from_name): Remove a debug printf.
* aot-compiler.c: Add a hash table to the AOT file mapping class names to typedef
tokens.
* aot-runtime.c (mono_aot_get_class_from_name): New function used by
mono_class_from_name () to find a class from its name.
* mini.c (mini_init): Register mono_aot_get_class_from_name () with the runtime.
2006-09-07 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (emit_call): Avoid strstr () call if possible.
2006-09-05 Kornél Pál <kornelpal@gmail.com>
* Makefile.am: Renamed mono-1.dll to mono.dll. (-avoid-version)
2006-09-04 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_icall_get_wrapper): Fix a race condition on initializing
callinfo->trampoline.
* mini-amd64.c (emit_call): Special case calls to the vararg array icalls. Hopefully
fixes #79271.
(mono_arch_patch_code): Add some debug code to help track down similar failures in the
future.
2006-09-03 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c (mono_aot_plt_resolve): Add an assert.
2006-09-02 Zoltan Varga <vargaz@gmail.com>
* tramp-x86.c (mono_arch_create_specific_trampoline): Don't increase
stats.method_trampolines, it is already done by the generic trampoline code.
* tramp-amd64.c (mono_arch_create_specific_trampoline): Ditto.
2006-09-01 Zoltan Varga <vargaz@gmail.com>
* mini.c: Remove some references to mono_compile_aot, and use cfg->compile_aot instead.
* aot-runtime.c: Add some tweaks to the MONO_AOT_CACHE functionality.
* tramp-amd64.c (mono_arch_create_specific_trampoline): Fix a FIXME.
* mini.c (print_jit_stats): Print mscorlib mempool size too.
* mini.c (print_jit_stats): Print new stats.
* *-alpha.c: More alpha port work from Sergey Tikhonov <tsv@solvo.ru>.
2006-08-31 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_get_ldelema_ins): Fix verifier error when calling
Address on two dimensional arrays. Fixes #78729.
* mini.h (MonoCompile): Add a 'skip_visibility' field.
* mini.c (method_to_ir): Disable visibility checks if skip_visibility is set on
a method.
* mini-amd64.c (mono_arch_emit_exceptions): Fix assertion introduced by the last change.
* mini.c (mono_runtime_cleanup_handlers): Clean up signal handlers on unix. Fixes
#79130.
* mini.c (handle_array_new): Applied patch from "briaeros007". Fix
a race condition.
(mini_get_ldelema_ins): Ditto.
2006-08-30 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_emit_exceptions): Align fp constants to 16 bytes.
(mono_arch_output_basic_block): Avoid unaligned accesses in FNEG implementation.
Fixes #79213.
2006-08-29 Neale Ferguson <neale@sinenomine.net>
* mini-s390.c, mini-s390x.c: Fix VARARG case processing with 0 arguments. Add
mono_arch_get_patch_offset as a dummy entry point to allow successful link.
* exceptions-s390x.c: Cosmetic change.
* tramp-s390.c: Fix warning.
* cpu-s390.md: Correct length of mul_imm.
Wed Aug 23 19:24:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
* aot-compiler.c: added binary writer with ELF backend
implementation (only on Linux/x86 for now).
2006-08-18 Zoltan Varga <vargaz@gmail.com>
* Makefile.am: Don't run net 2.0 AOT tests.
* aot-compiler.c (compile_method): Skip methods with tail calls as well.
(mono_compile_assembly): Skip net 2.0 assemblies as well.
* aot-runtime.c (load_patch_info): Fix an uninitialized memory error.
Fri Aug 18 19:38:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
* aot-compiler.c: simplified and refactored the asm-writing code
to allow different backends.
2006-08-18 Zoltan Varga <vargaz@gmail.com>
* mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version.
* aot-compiler.c aot-runtime.c: Reorg the GOT slot allocation code a
little. Share patches of type TYPE_FROM_HANDLE as well.
* mini.c (mono_patch_info_equal): New helper function.
(mono_patch_info_hash): Ditto.
* aot-compiler.c (emit_method_code): Fix s390 build.
* mini.c (mono_allocate_stack_slots_full): Fix yet another place where byref
is not handled because it is stored as a flag and not as a type ctor. Fixes
#79016.
2006-08-17 Zoltan Varga <vargaz@gmail.com>
* aot-compiler.c: Fix computation of GOT slot statistics.
* aot-compiler.c aot-runtime.c: Implement sharing of GOT slots for classes/fields.
Also remove support for not PIC AOT.
* mini.h: Bump AOT file format version.
* objects.cs: Add a test for #78990.
* mini-x86.c (mono_arch_output_basic_block): Applied patch from Peter Dettman
(peter.dettman@iinet.net.au). Fixes #79087.
* basic-long.cs: Add a test for the above.
2006-08-16 Zoltan Varga <vargaz@gmail.com>
* aot-compiler.c (get_got_offset): Add a cache for GOT entries, not yet used.
* aot-compiler.c (get_plt_index): Add a cache for wrappers too. Simplify the
code somewhat.
2006-08-15 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_init): Fix registration of idiv/imul opcodes which can throw
exceptions.
2006-08-10 Jonathan Chambers <joncham@gmail.com>
* mini.c: Don't verify COM proxy invoke calls
2006-08-10 Dick Porter <dick@ximian.com>
* wapihandles.c (mini_wapi_seminfo): More info, to help track down
which process is holding semaphores locked.
2006-08-08 Zoltan Varga <vargaz@gmail.com>
* mini-ia64.c mini-amd64.c: Fix #79027.
* mini-sparc.c (mono_arch_call_opcode): Fix the previous patch.
* mini-sparc.c (mono_arch_call_opcode): Fix #79027.
* mini-x86.c (mono_arch_call_opcode): Handle the case where there are no
implicit arguments in a vararg call. Fixes #79027.
2006-08-07 Zoltan Varga <vargaz@freemail.hu>
* mini.c (mono_get_element_address_signature): Use CDECL calling convention on windows. Fixes #78969.
(mono_get_array_new_va_signature): Ditto.
2006-08-05 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c: Call init_plt lazily.
* inssel-long.brg: Fix unsigned long->int conversion.
* aot-runtime.c (init_plt): Remove a redundant make_writable () call.
* aot-compiler.c aot-runtime.c: Reorganize the file structure in the amd64 case so
that most data is now in the .rss/.data section.
2006-08-04 Zoltan Varga <vargaz@gmail.com>
* aot-compiler.c: Correct the computation of the 'direct-calls' statistic.
* aot-compiler.c: Print the number of methods without GOT slots as a statistics.
* aot-compiler.c aot-runtime.c tramp-amd64.c: Resurrect amd64 AOT support.
* tramp-amd64.c (mono_arch_patch_callsite): Fix a warning.
* jit-icalls.c (mono_helper_compile_generic_method): Unbox vtypes since this is a
virtual call. Fixes #79010.
* mini.c (mono_method_to_ir): Pass an additional out arg to compile_generic_method
and use the result as the this argument in the real call.
* generics.2.cs: Add a new test for #79010.
2006-08-03 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c: Fix a warning.
* aot-compiler.c: Add a bunch of statistics.
* mini.c (inline_method): Disable inlining in out-of-line bblocks.
2006-08-02 Zoltan Varga <vargaz@gmail.com>
* mini-arch.h Makefile.am mini-ops.h mini-codegen.c: More alpha updates.
2006-08-01 Zoltan Varga <vargaz@gmail.com>
* 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>.
2006-07-13 Miguel de Icaza <miguel@novell.com>
* mini.c (mono_method_to_ir): Obtain the original method in the
CIL stream and use this to perform validation.
Fixed: #78816
2006-07-19 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c (mono_arch_get_argument_info): Fix a warning.
(mono_arch_call_opcode): Ditto.
* mini.c (mono_method_to_ir): Clear ins_flag at the end of CEE_CALL. Fixes
#78826.
* mini.c (mono_patch_info_dup_mp): New helper function.
* aot-compiler.c (compile_method): Fix some of the memory allocated during
compilation. Fixes #78827.
2006-07-18 Kornél Pál <kornelpal@gmail.com>
* declsec.c: Use original security informations for
MONO_WRAPPER_MANAGED_TO_MANAGED.
2006-07-15 Jonathan Chambers <joncham@gmail.com>
* mini.c: Allow Com Interop methods/classes and
don't verify COM wrapper calls
2006-07-13 Zoltan Varga <vargaz@gmail.com>
* inssel-long32.brg: Fix long->i4 checked conversion.
* exceptions.cs: Add a test for the above.
2006-07-08 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c (mono_setup_altstack): Fix a memory leak.
* mini.c: Applied patch from Joachim Ante (joe@otee.dk). Fix some shutdown
leaks.
* helpers.c (mono_disassemble_code): Avoid using fixed temporary files. Fixes
#78775.
2006-07-03 Zoltan Varga <vargaz@gmail.com>
* mini.c: Fix solaris/x86 exception handling.
* Makefile.am: Get rid of $(ICU_LIBS).
2006-07-02 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c: Fix handling of unhandled SIGSEGV exceptions on ia64.
(ves_icall_System_Security_SecurityFrame_GetSecurityStack): Use MONO_INIT_CONTEXT_FROM_CURRENT.
(ves_icall_System_Security_SecurityFrame_GetSecurityFrame): Ditto.
* mini-ia64.h (MONO_CONTEXT_SET_FUNC): New macro.
* mini-exceptions.c (mono_handle_native_sigsegv): Prevent infinite loops if
this function causes a SIGSEGV.
2006-06-22 Zoltan Varga <vargaz@gmail.com>
* mini.c: Remove unused solaris/x86 includes.
2006-06-21 Zoltan Varga <vargaz@gmail.com>
* jit.h: Add G_BEGIN_DECLS/G_END_DECLS.
2006-06-20 Jb Evain <jbevain@gmail.com>
* cpu-g4.md: fix max length of start_handler instruction.
2006-06-20 Massimiliano Mantione <massi@ximian.com>
* simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78656.
2006-06-16 Massimiliano Mantione <massi@ximian.com>
* ssa.c: Fixed bug 78653 for SSA based deadce.
* mini.h: added MONO_INST_DEFINITION_HAS_SIDE_EFFECTS flag go
MonoInst.flags, used in SSA based deadce.
* aliasing.c: Fixed bug 78653 for "fastpath" deadce.
* simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78653.
Thu Jun 15 16:52:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
* tramp-ppc.c: don't use malloc () for trampoline code, sometimes
it can end up using non executable memory on ppc64 systems
running ppc32 userspace (fix from Johannes Berg).
2006-06-14 Dick Porter <dick@ximian.com>
* wapihandles.c: Fix a bunch of signed/unsigned warnings from gcc
4.1.1
2006-06-13 Massimiliano Mantione <massi@ximian.com>
* mini.c: Made so that inline is locally disabled if it would
trigger a .cctor, because too many apps depend on this behavior
(which seems to be also the one of the MS CLR).
2006-06-13 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_emit_stack_alloc): Fix initialization of localloc'ed memory.
No idea why this worked before.
* branch-opts.c (mono_branch_optimize_exception_target): Avoid branches
which branch to outer exception clauses since they could skip the
inner finally clauses. Fixes #78633.
* exceptions.cs: Add a test for the above.
* mini.c (merge_basic_blocks): Nullify the branch at the end of the first bb.
Fixes #78629.
* iltests.il: Add a test for the above.
2006-06-12 Zoltan Varga <vargaz@gmail.com>
* mini.c (remove_block_if_useless): Do not remove the bblock immediately
after the end of a try bblock, to prevent asserts in mini_method_compile ().
* iltests.il: Add a test for the above.
2006-06-10 Zoltan Varga <vargaz@gmail.com>
* mini-ia64.c (mono_arch_lowering_pass): Remove some code duplication.
* mini-ia64.c inssel-ia64.brg: Implement the new net 2.0 Interlocked.Add
methods as instrinsics.
2006-06-09 Wade Berrier <wberrier@novell.com>
* Makefile.am: Fix sources list for svn rename so that make dist succeeds
(simple-cee-ops.h ssapre-mini-ops.h)
2006-06-09 Neale Ferguson <neale@sinenomine.net>
* mini-exceptions.c (ves_icall_get_frame_info): Fix this function on s390/s390x.
* mini-s390x.c, mini-s390.c: Correct ATOMIC operations (incorrect register for CS
instruction).
* mini-s390x.h, mini-s390.h: Simplify MCONTEXT_GET_BP.
* cpu-s390x.md: Fix max. length values for a couple of instructions.
2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
* mini-exceptions.c: Minor fix for building mono in Visual Studio.
2006-06-08 Massimiliano Mantione <massi@ximian.com>
* ssapre-cee-ops.h: Renamed as "simple-cee-ops.h"
* simple-cee-ops.h: Was "ssapre-cee-ops.h" (renamed).
* ssapre-mini-ops.h: Renamed as "simple-mini-ops.h"
* simple-mini-ops.h: Was "ssapre-mini-ops.h" (renamed).
* local-propagation.c: In mono_cprop_invalidate_values use a whitelist
of opcodes, so that bug 78549 should not happen again.
* ssapre.c: Updated to use the renamed files.
2006-06-08 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_output_basic_block): Fix a wrong reg-reg move
in OP_ATOMIC_EXCHANGE_I4.
2006-06-07 Wade Berrier <wberrier@novell.com>
* tramp-s390.c: Fix s390 build (add missing pointer declarations
in mono_debugger_create_notification_function)
2006-06-06 Zoltan Varga <vargaz@gmail.com>
* mini.c (NEW_AOTCONST_TOKEN): Fix amd64 build.
* mini.c (type_from_stack_type): Disable some changes which do not
seem to work.
* driver.c: Reenable opts.
* mini.h (MonoStackSlot): New structure to keep track of the verification state
of the evaluation stack.
* mini.h (MonoBasicBlock): Add a 'stack_state' field to keep track of the
evaluation stack trace at entry to the bblock.
* mini.c (merge_stacks): New function to perform verification of stack merges.
Turned off by default.
* mini.c: Fill up ins->klass for instructions whose type is STACK_OBJ or
STACK_MP.
2006-06-06 Massimiliano Mantione <massi@ximian.com>
* local-propagation.c: Fixed bug 78549.
2006-06-04 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c (ves_icall_get_frame_info): Fix this function on ia64.
2006-06-02 Miguel de Icaza <miguel@novell.com>
* tramp-sparc.c, tramp-ppc.c, tramp-s390.c, tramp-s390x.c,
tramp-arm.c, tramp-ia64.c
(mono_debugger_create_notification_function): Update signature to
new signature and use new protocol for creating the notification
function.
Should fix the build.
2006-06-02 Geoff Norton <gnorton@customerdna.com>
* exceptions-ppc.c (mono_jit_walk_stack)
(ves_icall_get_frame_info): Fix the build
2006-06-02 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_set_defaults): Fix the handling of -O=-all.
2006-05-31 Raja R Harinath <rharinath@novell.com>
* il2tests.2.il: New file for generics CIL tests. Add test for
#78019.
* Makefile.am: Update.
Fix #78019
* mini.c (mono_method_to_ir): Don't apply box+brtrue optimization
to nullable types.
2006-05-30 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed bug 78311.
2006-05-29 Martin Baulig <martin@ximian.com>
* mini-exceptions.c (mono_find_jit_info): When computing the
native offset, check whether we're actually inside the method's
code; call mono_debug_print_stack_frame() to format the frame.
(ves_icall_System_Exception_get_trace): Call
mono_debug_print_stack_frame() to format the stack frame.
(ves_icall_get_trace): Update to the new debugging API.
(mono_jit_walk_stack_from_ctx): Likewise.
(ves_icall_get_frame_info): Likewise.
* mini.c (get_method_from_ip): Use the new debugging API.
(mono_print_method_from_ip): Likewise.
* exceptions-ppc.c
(mono_jit_walk_stack): Use the new debugging API.
(ves_icall_get_frame_info): Likewise.
2006-05-27 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_output_basic_block): Fix MONO_PROFILE_COVERAGE.
2006-05-25 Massimiliano Mantione <massi@ximian.com>
* mini.c: Added "limitator" to inline for debugging.
2006-05-24 Martin Baulig <martin@ximian.com>
* debug-debugger.c (mono_debugger_init): Create a private,
malloc()-based code manager for the notification function and
intentionally leak it on exit. This fixes the crash-on-exit race
condition.
* tramp-amd64.c
(mono_debugger_create_notification_function): Added
`MonoCodeManager *' argument.
* tramp-x86.c
(mono_debugger_create_notification_function): Added
`MonoCodeManager *' argument.
2006-05-23 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed 64 bit issue.
* driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by
default since all known bugs are fixed (one more time!).
Tue May 23 13:47:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: write barrier support.
2006-05-23 Martin Baulig <martin@ximian.com>
* debug-debugger.c: Revert Paolo's change. Add comment and #error
check at the top of the file.
Sun May 21 12:22:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
* debug-debugger.c: fix the build. Again. Hopefully Martin will stop
reverting changes without reason and without changelog entries.
2006-05-18 Zoltan Varga <vargaz@gmail.com>
* mini-sparc.c (mono_arch_output_basic_block): Add support for large stack offets
to a few opcodes. Fixes #78439.
* mini-sparc.c: Rename mono_sparch_break () to mono_arch_break () to improve
consistency with other archs.
* mini-ia64.c (mono_arch_emit_prolog): Remove debug stuff left in by mistake.
Wed May 17 18:07:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
* debug-debugger.c: fix the build.
2006-05-17 Martin Baulig <martin@ximian.com>
* debug-debugger.c
(debugger_thread_vtable): Moved here from ../metadata/threads.c.
(debugger_init_threads): Formerly known as mono_debugger_init_threads().
(debugger_finalize_threads): Formaly known as mono_debugger_finalize_threads().
(debugger_attach): Call GC_mono_debugger_add_all_threads().
2006-05-11 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_init): Call pthread_attr_destroy () to fix a small memory leak.
2006-05-10 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c (mono_arch_instrument_epilog): Fix handling of
MONO_TYPE_GENERICINST.
* mini-amd64.c (mono_arch_instrument_epilog): Fix handling of
MONO_TYPE_GENERICINST.
2006-05-09 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c (mono_arch_get_vcall_slot_addr): Add a missing call sequence. Fixes
#78325.
2006-05-08 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_create_jump_trampoline): Allocate MonoJitInfo from the domain
mempool.
(mono_jit_free_method): Remove the method from jump_trampoline_hash as well.
2006-05-06 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_cleanup): Applied patch from Joachim Ante (joe@otee.dk). Call
mono_trace_cleanup ().
* iltests.il: Fix problem with the newly added test.
* mini-codegen.c (mono_local_regalloc): When changing the dreg of an instruction
due to register constraints, free up the previous hreg. Fixes #78314.
* iltests.il: Add new test for #78314.
* mini-x86.c (mono_arch_get_inst_for_method): Use OP_ATOMIC_ADD_NEW_I4 for
Interlocked.Add. Fixes #78312.
* mini-amd64.c (mono_arch_get_inst_for_method): Ditto.
2006-05-05 Zoltan Varga <vargaz@gmail.com>
* inssel.brg (mini_emit_virtual_call): Fix a warning.
2006-05-05 Martin Baulig <martin@ximian.com>
* debug-mini.c (mono_debug_open_block): New method.
* mini-amd64.c
(mono_arch_output_basic_block): Call mono_debug_open_block() at
the beginning of each basic block.
* mini-x86.c
(mono_arch_output_basic_block): Call mono_debug_open_block() at
the beginning of each basic block.
2006-05-04 Massimiliano Mantione <massi@ximian.com>
* driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by
default until I understand why they break the build on amd64.
2006-05-04 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_cleanup): Call mono_cleanup ().
* mini.c (UNVERIFIED): New macro to make it easier to track down verification
errors.
2006-05-04 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed shameful cut&paste error that caused JIT crashes.
* driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by
default since all known bugs are fixed, and I cannot reproduce bug
77944... I'm asking Matt Hargett to test again after this commit.
2006-04-28 Massimiliano Mantione <massi@ximian.com>
* mini-codegen.c: Fixed typo that thrashed inline.
2006-04-28 Zoltan Varga <vargaz@gmail.com>
* dominators.c (compute_dominators): Avoid using a worklist since
it is not correct in some cases. Instead, iterate over all bblocks as
in the original paper. Fixes --compile-all -O=all System.Xml.dll.
2006-04-28 Miguel de Icaza <miguel@novell.com>
* mini.c (mono_jit_compile_method_inner): Use
mono_prepare_exception_from_error that resets the value
internally.
2006-04-27 Miguel de Icaza <miguel@novell.com>
* mini.c: Move the mini_loader_error_to_exception to metadata.
2006-04-27 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed bug 78210.
2006-04-27 Massimiliano Mantione <massi@ximian.com>
* driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by
default until all their problems (or the ones they trigger) are fixed.
2006-04-26 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c (mono_aot_get_method_from_token_inner): Fix the previous patch.
* aot-runtime.c (mono_aot_get_method_from_token_inner): Mark the method
as loaded only after resolving patches since that could invoke the same method.
* aot-runtime.c (mono_aot_plt_resolve): Fix ppc etc. builds.
* aot-compiler.c: Refactor mono_aot_compile_aot () into a bunch of smaller
functions.
* aot-runtime.c (init_plt): Use a normal trampoline to transfer code to the
AOT loader.
* aot-compiler.c (emit_plt): Pass the plt offset in %eax instead of on the
stack.
* mini-trampolines.c (mono_aot_plt_trampoline): New trampoline to handle calls
made from AOT code through the PLT table.
* mini-x86.h mini-amd64.h: Define MONO_ARCH_AOT_PLT_OFFSET_REG to the register
holding the plt offset when a call is made to the aot plt trampoline.
2006-04-25 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c aot-compiler.c cpu-amd64.md mini-amd64.c: Update parts of the
amd64 AOT support.
* Makefile.am (common_sources): Fix build breakage.
* aot-runtime.c aot-compiler.c: Reorganize the AOT code yet again: Make all
calls through a jump table similar to the ELF PLT table. Avoid indirect calls for
intra-assembly calls if possible.
* tramp-*.c: Add new functions for patching/nullifying PLT entries.
* mini-trampolines.c: Handle PLT entries.
* mini.c: Avoid creating a GOT var for calls.
* jit-icalls.c (helper_ldstr_mscorlib): New helper function for loading strings
from mscorlib code.
* jit-icalls.c (helper_newobj_mscorlib): New helper function to create objects
from mscorlib code.
* mini.c (mono_method_to_ir): Use the new helper functions in throw bblocks in
AOT code.
* mini.h: Bump AOT file format version.
* mini.c (get_basic_blocks): Fix the calculation of bb->out_of_line so it
covers more cases.
2006-04-25 Martin Baulig <martin@ximian.com>
* driver.c: Disable copyprop, consprop and inline when running
inside the debugger.
2006-04-25 Martin Baulig <martin@ximian.com>
* debug-debugger.h (MonoDebuggerInfo): Replaced `get_thread_id'
with `get_current_thread' and added `detach'.
(MonoDebuggerMetadataInfo): Added `thread_size',
`thread_tid_offset', `thread_stack_ptr_offset' and
`thread_end_stack_offset'.
2006-04-25 Zoltan Varga <vargaz@gmail.com>
* aot.c Makefile.am: Split aot.c into two new files aot-compiler.c and
aot-runtime.c.
* inssel.brg (mini_emit_load_intf_reg_vtable): Use a new kind of AOT constant
ADJUSTED_IID to avoid the need for adjusting the IID at runtime.
* mini.h (MonoJumpInfoType): Add MONO_PATCH_INFO_ADJUSTED_IID.
* mini.c (mono_resolve_patch_target): Handle ADJUSTED_IID.
* aot.c: Add support for ADJUSTED_IID.
2006-04-24 Zoltan Varga <vargaz@gmail.com>
* aot.c (emit_method_order): Don't align method_order_end.
* inssel.brg (stmt): Fix interface calls in AOT code which got broken by
the interface ID changes.
2006-04-21 Dick Porter <dick@ximian.com>
* mini.c (mini_thread_cleanup): Clear the JIT TLS data when
cleaning up a thread. Fixes the new part of bug 77470.
2006-04-20 Geoff Norton <gnorton@customerdna.com>
* mini-ppc.c: Call mono_jit_thread_attach when transitioning a native
to managed wrapper.
2006-04-19 Zoltan Varga <vargaz@gmail.com>
* mini.h mini.c: Remove mono_type_to_ldind/stind () which are now in marshal.c.
* mini.c (mono_runtime_install_handlers): Handle SIGABRT similarly to
SIGSEGV. Fixes #78072.
* mini-exceptions.c (mono_handle_native_sigsegv): Add a 'signal' argument,
unregister our SIGABRT handler.
2006-04-19 Massimiliano Mantione <massi@ximian.com>
* mini.c: Disabled inline where it can alter the call stack in a
way visible from managed code.
* driver.c: enabled inline,consprop,copyprop,treeprop,deadce by
default.
2006-04-16 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_emit_prolog): Attach the thread to the runtime as it is done
on other platforms. Fixes #78089.
2006-04-13 Martin Baulig <martin@ximian.com>