2002-07-24 Tim Coleman <tim@timcoleman.com>
[mono.git] / mono / jit / ChangeLog
index ccd4e558f3d71f2baccd258697fd8d2727b3c7a1..e0d8f08a6c684ba3396f7d172ac5f598d7f3aa7a 100644 (file)
@@ -1,3 +1,393 @@
+2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): added CEE_TAIL (but it is ignored)
+
+Wed Jul 24 13:02:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c, jit.h, exception.c: implemented stack walking function.
+
+2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (ARG_OBJ): removed zero sized object warning 
+
+2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_allocate_excvar): mark excvar as volatile
+
+       * emit-x86.c (enter_method): use arch_get_argument_info to get
+       stack layout.
+
+       * jit.c (mono_analyze_stack): use arch_get_argument_info to get
+       stack layout.
+       (mono_analyze_stack): removed unused code
+
+       * emit-x86.c (arch_allocate_arg): impl.
+
+2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
+
+       * emit-x86.c (arch_allocate_var): fix alignment bug
+
+       * x86.brg (X86_CALL_BEGIN): add argument padding before emitting a call
+
+       * jit.c (mono_analyze_stack): s/k/k + 1/
+
+       * x86.brg (LOCALLOC): align to MONO_FRAME_ALIGNMENT
+
+       * emit-x86.c (arch_get_argument_info): impl.
+
+2002-07-21  Miguel de Icaza  <miguel@ximian.com>
+
+       * exception.c (arch_handle_exception): Memory leak fix.
+
+2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): avoid recursive inlining
+
+Fri Jul 19 18:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * emit-x86.c: temporary workaround for gcc bug.
+       * jit.h, jit.c, mono.c: move mono_jit_image to jit.c.
+       Don't include config.h in headers.
+
+2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg: correctly align valuetype arguments on the stack
+
+       * jit.c (mono_analyze_stack): do not compute frame size here.
+
+       * x86.brg: use macros to avoid code duplication for CALL opcodes,
+       compute frame size in x86.brg
+
+2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (ARG_OBJ): allow zero sized ARG_OBJ
+
+       * exception.c (arch_handle_exception): removed duplicated code,
+       added support for exception filters
+
+       * jit.c (mono_jit_compile_method): support exception filters
+
+2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack CEE_DIV): added fix from Zoltan Varga
+       (bug #27423)
+       * jit.c: s/ISSTRUCT/MONO_TYPE_ISSTRUCT/ 
+
+       * helpers.c (mono_map_ldind_type): added suggested changes from
+       Zoltan Varga (support MONO_TYPE_U), variou 64bit fixes
+
+       * jit.c (mono_analyze_stack): remove the vtype pointer from the
+       stack (fix bug #27420)
+
+2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (CALL_VOID): fix bug #27751
+       (CONV_R_UN) use reg2 instead of reg1 for the negative check /fix bug 27849.
+
+       * jit.c (mono_analyze_stack): adjust valuetype size for pinvoke calls
+
+i2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (freg): new rule freg: CALL_R8 (this, reg)
+
+2002-07-10  Dietmar Maurer  <dietmar@ximian.com>
+
+       * emit-x86.c (arch_emit_prologue): added code to save LMF
+
+2002-07-04  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (LOCALLOC): added fix from Zoltan Varga (for bug #27396) 
+
+2002-07-05  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_add_method): Fix a bug in the `begin_scope' and
+       `end_scope' calculations when linear scan register allocation is disabled.
+
+2002-07-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * mono.c: removed the "RESULT: X" message.
+
+2002-07-01  Dietmar Maurer <dietmar@ximian.com>
+
+       * exception.c (arch_get_call_finally): restore caller saved
+       register used by global reg. allocation when calling finally
+       handlers (fixes bug #24943).
+
+2002-07-01  Dick Porter  <dick@ximian.com>
+
+       * jit.c (mono_jit_exec): Removed unneeded argument to
+       mono_runtime_run_main()
+
+2002-06-28  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (debug_generate_method_lines, mono_debug_add_method): Make methods
+       start on the nop instruction to make single-stepping into an already-JITed
+       method work.
+
+2002-06-26  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_source_location_from_address): Added
+       `guint32 *line_number' argument.  If it's not NULL, store the line number
+       there and return the file name without the line number.
+
+       * exception.c (ves_icall_get_trace): Fill in `sf->filename' and `sf->line'.
+       (ves_icall_get_frame_info): Likewise.
+
+2002-06-25  Dick Porter  <dick@ximian.com>
+
+       * jit.c (mono_jit_exec): Pass the assembly to mono_runtime_run_main
+
+2002-06-22  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_source_location_from_address): Small fix, an
+       unsigned number can never be smaller than zero, make that check
+       actually work.
+
+2002-06-19  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c (ves_icall_get_trace): new method to get the stack
+       trace from a Exception.
+
+2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (check_inlining): do not inline functions containing 
+       calls to stack query functions
+
+       * exception.c (ves_icall_get_frame_info): impl.
+
+Tue Jun 18 10:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * invoke.c: marshal simple arrays correctly.
+
+2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg: added inlined versions of Math.Sin, Math.Cos, Math.Sqrt
+
+       * jit.c (mono_analyze_stack): impl. STARG
+       (mono_analyze_stack): impl. LDARGA
+
+       * exception.c (arch_handle_exception): correctly restore register
+       values when unwinding the stack (fixes bug 25698)
+
+2002-06-09  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_open_image): For MONO_DEBUG_FORMAT_DWARF2_PLUS,
+       the `%s-debug.s' file is in the same directory than its assembly.
+
+Sat Jun 1 13:24:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * message.c, emit-x86.c: kill warnings.
+
+2002-05-31  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg: buf fix in REMOTE_STIND_OBJ
+       (mono_ldvirtftn): impl.
+       (mono_ldintftn): impl.
+       (mono_ldftn): impl.
+
+Fri May 31 13:26:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * mono.c: added --config command line option.
+
+Fri May 31 12:34:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c, jit.h: collect statistics about the number of basic blocks.
+
+2002-05-31  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_address_from_il_offset): New public function.
+       (mono_debug_add_method): Improved local variable info: correctly handle
+       variables in registers and their start/end scopes.
+
+2002-05-30  Martin Baulig  <martin@gnome.org>
+
+       * debug-dwarf2.c (dwarf2_write_string): Use "0x%lx" as fprintf() format,
+       not "%p" which seems to be broken on Windows/mingw32.
+
+2002-05-30  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (reg): bug fix in LOCALLOC
+
+       * mono.c (main): new switch --nointrinsic to disable memcpy opt.
+
+       * x86.brg: added block copy/init optimizations from 
+       Serge (serge@wildwestsoftware.com)
+Thu May 30 14:13:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * invoke.cs: lookup P/Invoke method address only when needed.
+
+2002-05-29  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg: bug fix in REMOTE_STIND_OBJ
+
+       * invoke.c (arch_create_native_wrapper): handle pointers to value types
+
+       * helpers.h: use mono_ prefix for all functions
+
+       * jit.c (mono_analyze_stack): fixed SIZEOF
+
+       * x86.brg: impl. LOCALLOC, INITBLK
+
+2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg: impl. CKFINITE 
+
+       * jit.c (mono_analyze_stack): impl. CEE_CALLI
+
+       * x86.brg (JMP): impl. JMP opcode
+
+2002-05-27  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_cfg_new): reserve additional space to store ESP when
+       calling finally handlers.
+
+       * exception.c (arch_get_call_finally): save ESP before calling
+       finally handler.
+
+       * helpers.c (map_arg_type): move some generic helper function into
+       this file.
+
+       * mono.c (usage): new option --breakonex 
+
+       * exception.c (arch_exc_is_caught): only return FALSE if really
+       unhandled.
+
+       * jit.c (mono_thread_abort): free jit_tls
+
+2002-05-24  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (stmt): use memmove to cope with overlapping
+       blocks. This is not required by the specs, so we can remove it
+       later if it turns out to be too slow (and use memcpy).
+
+       * jit.c (mono_analyze_stack): moved const. folding from x86.brg
+
+       * x86.brg: CPBLK impl.
+
+       * emit-x86.c (tree_emit): modified to support 3 nonterminals per
+       rule (used for CPBLK).
+
+Thu May 23 18:43:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * mono.c: remove generated code from hash when benchmarking/testing
+       method compilation.
+       * invoke.cs: special case string ctors.
+
+2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * *.c: code cleanups - tried to separate architecture dependent things. 
+
+2002-05-23  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_open): Don't call mono_debug_add_image().
+       (mono_debug_write_symbols): Only recreate the symbol file if
+       necessary.
+
+       * debug-private.h (MonoDebugHandle): Added `dirty' flag.
+
+       * mono.c (main): Call mono_debug_add_image() here.
+
+       * jit.c (mono_thread_abort): If we have debugging support, call
+       mono_debug_make_symbols() and G_BREAKPOINT().
+
+       * exception.c (arch_handle_exception): Don't G_BREAKPOINT() if we get
+       an unhandled exception.
+
+2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * delegate.c: move the thread pool to metadata/threadpool.c, code
+       cleanup.
+
+2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c (arch_exc_is_catched): impl. MS like exception
+       handling (added a check for unhandled exceptions)
+
+2002-05-22  Martin Baulig  <martin@gnome.org>
+
+       * debug-dwarf2-plus.c (mono_debug_open_assembly_dwarf2_plus): Only run
+       the assembler if necessary, ie. the assembler file is newer than the
+       symbol file or the symbol file does not exist.
+
+       * debug.c: Added "update_on_exit" argument to recreate the symbol file
+       when the JIT exists.
+
+       * debug-dwarf2.c: Produce assembler code which is free of comments and
+       extra whitespaces so that it's suitable for `as -f'.
+
+2002-05-22  Martin Baulig  <martin@gnome.org>
+
+       * debug-dwarf2.c (dwarf2_write_section_end): Removed.  This is not needed
+       and not supported by all assemblers.
+       (dwarf2_write_2byte): Use ".word" instead of ".2byte" since ".2byte" is a
+       GNU extension.
+
+       * mono.c (--debug): Small fix in the argument parsing.
+
+2002-05-22  Martin Baulig  <martin@gnome.org>
+
+       * debug.c: Added "dont_assemble" and "dont_precompile" argument for dwarf-plus.
+
+       * mono.c: Applied patch from Miguel:
+       (--debug): This is now a `--debug=[FORMAT]' argument where FORMAT defaults
+       to dwarf-plus.
+
+2002-05-21  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_source_location_from_address): Added support for the
+       dwarf2-plus format.
+
+2002-05-21  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_source_location_from_address): New function.
+       (mono_debug_il_offset_from_address): New function.
+
+       * exception.c (arch_handle_exception): If we have debugging support, include
+       information about the source location and IL offset in the stack trace.
+
+2002-05-21  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): LDARG uses 16bit argument (fix bug
+       #25058)  
+
+       * x86.brg (stmt): removed unnecessary assertion
+
+       * jit.c (check_inlining):  we cant inline throw instructions
+       (because it breaks some basic block requirements)
+
+2002-05-21  Martin Baulig  <martin@gnome.org>
+
+       * debug-private.h (MonoDebugFlags): New enum typedef.
+
+       * debug.c (mono_debug_open): Added a few useful arguments.  See the manpage
+       for details.
+
+2002-05-21  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_open_file): Renamed to mono_debug_open(), now takes
+       a `MonoAssembly *' argument instead of a `char *filename' one.  Also added
+       `const char **args' argument.
+
+       * mono.c (mono_jit_assembly): Renamed to mono_jit_compile_image(), added
+       `int verbose' argument and made it public.
+       (mono_jit_compile_class): New public function,  moved the code to compile
+       all methods in a class here from main().
+       (--compile): The argument can now also be an image (in `@imagename' format).
+       Updated documentation for this command line argument.
+       (--precompile): New command line argument to precompile an image/class/method
+       before executing the main app.  This argument can be given multiple times.
+       (--break): Renamed the "--debug" command line argument to "--break".
+       (--debug): New command line argument to specify the debugging format.
+       (--stabs, --dwarf, --dwarf-plus): Removed, obsoleted by "--debug".
+       (--debug-args): New command line argument.  This is a comma-separated list of
+       additional arguments for the symbol writer.
+       (usage): Beautified the help text a bit.
+
+       * debug-dwarf2-plus.c (mono_debug_open_assembly_dwarf2_plus): Use the new
+       public mono_jit_compile_image() function rather than duplication this
+       functionality here.
+
 2002-05-21  Martin Baulig  <martin@gnome.org>
 
        * debug-dwarf2-plus.c: This is now working again :-)