2008-12-17 Mark Mason <mmason@upwardaccess.com>
[mono.git] / mono / mini / ChangeLog
index 421142345be35082c01a5138ca18b43f3cbff843..0f57abaa1a46db4b54518f2350f9b103809b24af 100644 (file)
@@ -1,3 +1,369 @@
+2008-12-17  Mark Mason <mmason@upwardaccess.com>
+       
+       * mini-mips.c (mono_arch_output_basic_block): OP_JUMP_TABLE stores patch type in inst_c1, not inst_i1.
+       
+2008-12-16  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * branch-opts.c (remove_block_if_useless): Even if BB0 falls through, don't add a br to the
+       next basic block.
+       
+2008-12-16  Mark Mason <mmason@upwardaccess.com>
+
+       * mini.h: Allow MonoInst 'p' field to alias with the low-order bits of the 'const_val' fields correctly on big-endian systems when SIZEOF_VOID_P < SIZEOF_REGISTER
+
+       * ir-emit.h: Change SIZEOF_VOID_P to SIZEOF_REGISTER, init instruction through inst_c* fields instead of inst_p* fields in case sizeof(inst_p) < sizeof(inst_c)
+       
+2008-12-15  Mark Mason <mmason@upwardaccess.com>
+       
+       * trace.c (mono_trace_enter_method): correctly handle arguments smaller than the stack slot size on big endian systems.
+       
+2008-12-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * liveness.c (mono_analyze_liveness): Avoid eliminating the 'this' var in
+       gshared code. Fixes #458947.
+
+       * generics.cs: Add a test.
+
+2008-12-12  Mark Mason <mmason@upwardaccess.com>
+       
+       * method-to-ir.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+       
+       * mini-mips.c: first pass n32 code generation.
+
+       * mini-mips.h: datatypes and defines for n32 support.
+
+       * exceptions-mips.c: first pass n32 code generation.
+       
+       * tramp-mips.c: first pass n32 code generation.
+       
+       * cpu-mips.md: add long_ opcodes.
+       
+2008-12-12  Mark Mason <mmason@upwardaccess.com>
+
+       * liveness.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+
+       * cfold.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+       
+       * local-propogation.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+       
+       * regalloc2.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+
+       * mini.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+
+       * mini-codegen.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+
+       * ssa.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+
+       * decompose.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed.
+
+       * helpers.c: for mips/n32, don't pass -mips32 to objdump
+
+2008-12-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.c tramp-arm.c: Fix calls to mono_arch_flush_icache.
+
+2008-12-12  AndrĂ©s G. Aragoneses  <aaragoneses@novell.com>
+
+       * driver.c: Sync --help-trace with man page (EXPR,EXPR).
+
+2008-12-12  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-ppc.h, exceptions-ppc.c, tramp-ppc.c: Create function
+       descriptors for helper functions directly in front of the code.
+
+2008-12-11  Mark Probst  <mark.probst@gmail.com>
+
+       * method-to-ir.c: Removed an unnecessary assertion.
+
+2008-12-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c: Merge SGEN changes from the old JIT.
+
+2008-12-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * driver.c (compile_all_methods_thread_main): Handle failure of
+       mono_get_method ().
+
+2008-12-10  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-ppc.c: Merged with mini-ppc64.c.
+
+       * mini-ppc.h: Define PPC_MINIMAL_PARAM_AREA_SIZE on all targets.
+
+       * Makefile.am: Use the same sources for PPC and PPC64.
+
+       * mini-ppc64.c: Removed.
+
+2008-12-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * branch-opts.c (remove_block_if_useless): Extract fall through detection
+       code to mono_bb_is_fall_through.
+       
+       * branch-opts.c (mono_remove_critical_edges): Same.
+
+2008-12-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ssa.c (fold_ins): branch opt can kill dummy switch ops so we can't
+       expect that an OP_BR_REG will be there.
+
+2008-12-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * branch-opts.c (remove_block_if_useless): Use MONO_IS_BRANCH_OP instead of checking
+       for the many branch ops. The original check miss OP_BR_REG.
+
+       Fixes #457574.
+       
+2008-12-09  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.h mini-mips.c exceptions-mips.c tramp-mips.c: first round of changes necessary to eventually support n32.
+
+2008-12-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c (load_method): Avoid calling decode_exception_debug_info
+       while holding the aot lock.
+
+2008-12-09  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c (mono_arch_output_basic_block): use mfc1/lwc1 instead of mfc1d/ldc1
+       
+2008-12-09  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini.c (mini_cleanup) : Adding a call to cominterop_release_all_rcws 
+         to release all runtime callable wrappers held by the runtime.
+
+       Contributed under MIT/X11 license.
+
+2008-12-09  Bill Holmes  <billholmes54@gmail.com>
+
+       * tramp-amd64.c (mono_arch_create_trampoline_code_full) : Increase the code size for
+         for Winx64.
+
+       Contributed under MIT/X11 license.
+
+2008-12-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c (decode_exception_debug_info): Acquire the domain
+       lock when calling mono_domain_alloc (). Hopefully fixes #415608.
+
+2008-12-09  Mark Mason   <mmason@upwardaccess.com>
+
+       * cpu-mips.md: fix ckfinite length
+
+       * mini-mips.c: at least recognize n32 ABI when used (not yet supported)
+       (mono_arch_lowering_pass): cleanup, rearrange for clarity
+       (mono_arch_output_basic_block): implement OP_CKFINITE, add more asserts
+       
+2008-12-08  Mark Mason   <mmason@upwardaccess.com>
+
+       * exceptions-mips.c (mono_arch_find_jit_info): init new_ctx with ctx, dont' call setup_context.
+       
+2008-12-08  Geoff Norton  <gnorton@novell.com>
+
+       * tramp-amd64.c: r120895 stores RAX, so we need to increase the window
+       size by 8 bytes as well.
+
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector16b.
+       
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector16sb.
+
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector8us.
+       
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector8s.
+       
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector4ui.
+
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector2l.
+
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector2d.
+
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * simd-intrinsics.c (mono_emit_simd_intrinsics): Add support for intrinsics
+       that are extension methods.
+
+2008-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Fix method names for Vector4f.
+
+2008-12-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c (mono_print_thread_dump): Mark threadpool threads
+       as such. Fixes #456669.
+
+2008-12-07  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c (mono_arch_emit_call): narrow float arguments when passing as args.
+       
+2008-12-07  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c (mono_arch_lowering_pass): don't handle OP_ICONV_TO_R* or OP_R*CONST
+       (mono_arch_emit_setret): use OP_MIPS_CVTSD to return SP floats
+       (mono_arch_output_basic_block): simplify FP load/store, handle OP_MIPS_FBLT_UN
+       (mips_adjust_stackframe): handle FP spills
+               
+       * mini-ops.h: add mips_mtc1_s2
+       
+       * cpu-mips.md: add mips_mtc1_s2
+       
+2008-12-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * unwind.c: New file, move the unwind info encoding functions here from
+       aot-compiler.c, so they could be used at runtime too.
+
+2008-12-05  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c (mono_arch_lowering_pass): handle OP_IMUL_IMM as well
+       (mono_arch_output_basic_block): fix OP_LOCALLOC code generation
+       
+2008-12-05  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c: cleanup warnings
+       (mono_arch_lowering_pass): handle OP_LOCALLOC_IMM
+       (mips_adjust_stackframe): handle case of taking the address of stack locals
+       
+2008-12-05  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c: Implement a few functions missing from the asm writer.
+       (emit_method_code): Only write symbols for methods when using the bin
+       writer, since the assembler can't deal with the characters in our method
+       names.
+
+       * aot-compiler.c (is_plt_patch): ICALL_ADDR is also a plt patch.
+
+       * method-to-ir.c (mono_method_to_ir): Transform aotconst+calli into a direct
+       call.
+
+       * tramp-amd64.c (mono_arch_create_trampoline_code_full): Rework the code
+       a bit to also restore %rax.
+
+2008-12-05  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-ppc.c: Some simple merges from mini-ppc64.c.
+
+2008-12-05  Zoltan Varga  <vargaz@gmail.com>
+
+       * ssa.c (mono_ssa_compute): Only add an implicit reference at start for
+       arguments.
+
+2008-12-05  Mark Probst  <mark.probst@gmail.com>
+
+       * exceptions-ppc.c: Merged with exceptions-ppc64.c.
+
+       * mini-ppc.c, mini-ppc.h: Remove PPC_STACK_ALIGNMENT and use
+       MONO_ARCH_FRAME_ALIGNMENT.  Struct for PPC64 function descriptors.
+
+       * exceptions-ppc64.c: Removed.
+
+       * Makefile.am: Use exceptions-ppc.c instead of exceptions-ppc64.c.
+
+2008-12-05  Mark Probst  <mark.probst@gmail.com>
+
+       * tramp-ppc.c, mini-ppc.c, mini-ppc.h: Merged tramp-ppc.c with
+       tramp-ppc64.c.
+
+       * Makefile.am: Use tramp-ppc.c instead of tramp-ppc64.c.
+
+       * tramp-ppc64.c: Removed.
+
+2008-12-05  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (add_generic_instances): Skip non-generic classes in
+       the TYPESPEC table.
+
+2008-12-05  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-ppc.h: Merged mini-ppc64.h with mini-ppc.h.
+
+       * exceptions-ppc64.c, tramp-ppc64.c, mini-arch.h, Makefile.am: Use
+       mini-ppc.h instead of mini-ppc64.h.
+
+       * mini-ppc64.h: Removed.
+
+2008-12-04  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c: introduce USE_LDC_SDC: use ldc1/sdc1 to load/store doubles, disabled by default
+       
+       * mini-mips.c (mono_arch_emit_outarg_vt): fix offset calculation for memcpy in structure passing.
+       
+2008-12-05  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-ppc64.c, mini-ppc64.h, exceptions-ppc64.c, tramp-ppc64.c:
+       Removed FIRST/LAST_[GF]REG macros, to make merging PPC64 with PPC
+       code easier.
+
+2008-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Tests for operator == and != on  Vector8us and Vector16b.
+
+2008-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * simd-intrinsics.c: Add support for operator == and != to Vector8(u)s and Vector16(s)b.
+
+2008-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Tests for operator == and != on Vector4f.
+
+2008-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * simd-intrinsics.c (simd_intrinsic_emit_equality): Adapt to support Vector4f.
+
+       * simd-intrinsics.c: Kill useless enum.
+
+2008-12-04  Mark Mason   <mmason@upwardaccess.com>
+
+       * cpu-mips.md: add long_conv_to_ovf_i4_2
+       * mini-mips.c: update/add various _OVF_ opcodes to fix test failures
+
+2008-12-04  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c: ifdef protect automatic promotions of R4 to R8.
+       
+       * mini-mips.c (mono_arch_emit_setret): handle R4 case with FCONV_TO_R4 instead of FMOVE
+
+2008-12-04  Mark Mason   <mmason@upwardaccess.com>
+
+       * mini-mips.c (mono_arch_output_basic_block): fix codegen for OP_OR_IMM/OP_IOR_IMM
+       
+2008-12-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: Add tests for new methods.
+
+2008-12-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * simd-intrinsics.c: Add support for operator == and !=
+       on Vector4(u)i.
+
+       * simd-methods.h: Add SN_op_Inequality and SN_op_Equality.
+
+2008-12-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * simd-intrinsics.c: Remove ExtractByteMask intrinsics.
+
+2008-12-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (add_wrappers): Add pinvoke wrappers.
+
+       * mini.c (mono_resolve_patch_target): Allow pinvoke methods in 
+       MONO_PATCH_INFO_ICALL_ADDR.
+
+       * aot-runtime.c (MonoAotFileInfo): Correct order of fields.
+
+       * aot-compiler.c: Resurrect full-aot support.
+
 2008-12-04  Mark Mason   <mmason@upwardaccess.com>
 
        * mini-mips.c (mono_arch_lowering_pass): handle OP_COMPARE and OP_ICOMPARE
@@ -17848,3 +18214,4 @@ Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
 
 
+