2008-01-27 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index ed4dbdbca87fe1434a03beeff7c3c6cb65bc2c1d..23535cd54a17150a829498d99365ecb1f1dec7d9 100644 (file)
@@ -1,5 +1,212 @@
+2008-01-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-s390.c: Add support for generic sharing.
+
+       * mini-exceptions.c (ves_icall_System_Security_SecurityFrame_GetSecurityFrame): 
+       Fix CAS on s390.
+       (ves_icall_System_Security_SecurityFrame_GetSecurityStack): Ditto.
+
+       * mini-s390x.c (mono_arch_emit_exceptions): Fix a warning.
+
+       * mini-s390x.c: Add support for generic sharing.
+       
+       * mini-exceptions.c (ves_icall_System_Security_SecurityFrame_GetSecurityFrame): 
+       Fix CAS on ia64.
+       (ves_icall_System_Security_SecurityFrame_GetSecurityStack): Ditto.
+
+       * mini-s390x.c: Use is_imm16 instead of is_uimm16 when checking whenever s390_aghi
+       can be used since it takes a 16 bit signed immediate.
+
+       * inssel-s390x.brg: Fix OP_SETRET.
+
+       * mini-s390x.c (mono_arch_output_basic_block): Fix OP_BREAK.
+
+       * mini-codegen.c (mono_opcode_to_cond): Fix a warning.
+
+       * mini-s390x.c cpu-s390x.md: Implement sext.i4 properly by sign extension.
+
+       * mini.c (mono_create_delegate_trampoline): Don't use mono_create_ftpntr here.
+
+       * mini-trampolines.c (mono_delegate_trampoline): Use mono_get_addr_from_ftnptr
+       in one place.
+
+       * mini-ia64.h mini-ia64.c: Add minimal support for the delegate trampoline 
+       stuff.
+
+       * mini.h inssel-x86.brg inssel-amd64.brg tramp-alpha.c tramp-ia64.c: Get rid
+       of the unused mono_arch_patch_delegate_trampoline stuff.
+
+2008-01-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * basic-long.cs: Move the fp related tests to basic-float.cs.
+
+       * mini-ops.h (OP_OUTARG_FREG_R4): New opcode.
+
+       * mini-ia64.c inssel-ia64.brg: Implement proper R4 argument passing.
+
+       * basic-calls.cs: Add a test for proper float argument passing.
+
+       * mini-ia64.h (mono_ia64_context_get_ip): Do not substract 1 from the ip
+       if the context corresponds to an exception received through a signal.
+
+       * exceptions.cs: Add a test for nullref handling at the start of a try
+       clause.
+
+       * mini-ia64.c (mono_arch_call_opcode): Fix ia64 argument passing.
+
+       * jit-icalls.c (mono_break): New JIT icall.
+
+       * mini-<ARCH>.c: Use mono_break instead of mono_arch_break.
+
+       * mini-arm.c (arm_patch): Add support for patching the blx calling sequence.
+
+2008-01-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * cpu-*.md: Get rid of unused opcodes.
+
+       * cpu-g4.md: Rename this to cpu-ppc.md for consistency with other archs.
+
+       * Makefile.am: Move mini-trampolines.c to $(common_sources) since it is now used
+       by all platforms.
+
+       * mini-<ARCH>.h mini.c: Get rid of the MONO_ARCH_HAVE_CREATE_SPECIFIC_TRAMPOLINE
+       define.
+
+       * mini-s390x.h tramp-s390x.c Makefile.am: Rework the s390x trampoline code to use
+       the arch independent trampoline code in mini-trampolines.c.
+
+       * aot-runtime.c (mono_aot_init_vtable): Fix a warning.
+
+       * mini.c (get_runtime_generic_context_ptr): Fix a warning.
+
+       * mini-s390.h: Remove an unused define.
+       
+       * mini-s390.h tramp-s390.c Makefile.am: Rework the s390 trampoline code to use
+       the arch independent trampoline code in mini-trampolines.c.
+
+       * mini-arm.c (mono_arch_emit_prolog): Fix build.
+
+2008-01-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-sparc.c (mono_arch_output_basic_block): Remove some unecessary code.
+
+       * mini-s390.c (mono_arch_emit_prolog): Fix build.
+
+       * mini-s390x.c (mono_arch_emit_prolog): Fix build.
+
+       * mini-ppc.c (mono_arch_emit_prolog): Fix build.
+
+       * cpu-amd64.md: Use smaller sizes for int opcodes.
+
+       * *.c: Get rid of the NOT_IMPLEMENTED define which is now in mini.h.
+
+       * *.cs: Add some tests from the linear-ir branch. Move structs tests to 
+       objects.cs.
+
+       * driver.c (mono_main): Add a --break-at-bb command line argument for JIT
+       debugging.
+
+       * mini.h *.c: Change cfg->vars to contain the MonoMethodVar entries directly
+       instead of though a pointer to save an indirection when accessing elements of
+       the array.
+
+       * mini.h (MONO_IS_COND_BRANCH_OP): Move these macros here from mini.c. Fix
+       some typos.
+       (NOT_IMPLEMENTED): New helper macro.
+       (MONO_BB_FOR_EACH_INS): New helper macro to iterate through the instructions
+       of a bb.
+
+       * *.c: Use the new helper macro.
+
+2008-01-21  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.h (MONO_ARCH_AOT_SUPPORTED): Disable AOT for apple x86.
+
+2008-01-20  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (mono_arch_emit_prolog): Optimize the omit fp case to save two
+       stack slots.
+
+2008-01-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (mono_arch_emit_prolog): Disable the new optimization if
+       profiling is enabled.
+       
+       * mini-amd64.c (mono_arch_call_opcode): Emit the save_sp_to_lmf instruction at
+       the end.
+       (mono_arch_emit_prolog): Add more first bblock optimizations.
+
+       * mini-amd64.c (mono_arch_call_opcode): Keep assignments to the arg registers
+       in order if possible.
+       (mono_arch_emit_prolog): Optimize assignments to arg registers in the first
+       bblock, since the arguments are still in their original registers.
+
+       * mini.c (type_from_op): Calling add.ovf on floats is not valid IL code.
+
+2008-01-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_method_to_ir): Use the no-spilling optimization for CEE_CALLI
+       as well.
+
+       * mini-amd64.c (mono_arch_emit_prolog): Save an instruction if the LMF is at
+       offset 0.
+
+       * mini-amd64.h (MONO_ARCH_HAVE_NOTIFY_PENDING_EXC): Turn on this for amd64.
+
+       * exceptions-amd64.c (mono_arch_notify_pending_exc): New function to 
+       process async exceptions received while in unmanaged code.
+
+       * mini.c (mini_init): Install a callback with the runtime which will be called
+       when a thread receives an async exception while in unmanaged code.
+
+       * mini.c driver.c: Update after mono_get_native_wrapper () signature change.
+
+       * mini-s390x.c (mono_arch_output_basic_block): Fix s390x build.
+
+2008-01-16  Wade Berrier  <wberrier@novell.com>
+
+       * cpu-g4.md:
+       * cpu-arm.md:
+       * cpu-s390x.md:
+       fix build
+
+2008-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.c (mono_arch_output_basic_block): Remove some gccism which prevents
+       compilation with sun cc.
+
+       * cpu-*.md: Fix the build.
+
+       * cpu-x86.md: Fix the length of some load membase opcodes. Fixes #354241.
+
+       * mini-amd64.h: Add some comments to the MonoLMF structure.
+
+       * mini-ops.h cpu-amd64.c: Add a OP_AMD64_SAVE_SP_TO_LMF opcode.
+       
+       * mini-amd64.c exceptions-amd64.c tramp-amd64.c: Avoid setting the rip field
+       in the LMF structure if possible. This saves two instructions in the
+       managed->native wrappers.
+
+       * mini-ops.h *.md: Make some opcodes names uniform by removing the op_ prefix.
+
+2008-01-16  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c: New type argument lookup code which uses the
+       runtime generic context template.
+
 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
 
+       * mini.c (mono_method_to_ir): Avoid emitting a write barrier when storing NULL.
+
+       * mini-arm.c (add_general): Fix arm eabi parameter passing.
+       (mono_arch_output_basic_block): Fix localloc implementation.
+
+       * mini-amd64.c (peephole_pass): Sync store+load optimizations with the x86 version.
+
+       * mini-ia64.c (peephole_pass): Fix ia64 build.
+
+       * mini-amd64.c (peephole_pass): Fix a warning.
+       
        * mini-amd64.c (mono_arch_allocate_vars): Make sure the LMF is always stored
        at a constant offset from sp/fp.