+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 :-)
+
+ * debug.c (mono_debug_open_file): When using MONO_DEBUG_FORMAT_DWARF2_PLUS,
+ we create two MonoDebugHandles: one for MONO_DEBUG_FORMAT_DWARF2_PLUS and
+ one for the fallback MONO_DEBUG_FORMAT_DWARF2.
+
+2002-05-21 Martin Baulig <martin@gnome.org>
+
+ * jit.c (mono_debug_handle): Removed this global variable.
+
+ * debug.c (mono_debug_close): Removed.
+ (mono_debug_cleanup): New global function.
+ (mono_debug_add_image): New global function.
+ (mono_debug_handle_from_class): New global function.
+ (mono_debug_write_symbols): New global function.
+ (mono_debug_add_type): Removed `MonoDebugHandle *' argument.
+ (mono_debug_add_method): Likewise.
+
+2002-05-21 Martin Baulig <martin@gnome.org>
+
+ Work around a hard-to-fix bug in GDB and create a single dwarf/stabs
+ file for all assemblies. Currently, the JIT doesn't put all methods
+ from a single assembly into a continuous region of memory. We were
+ previously creating valid DWARF 2 files for this, but unfortunately
+ GDB's symbol tables get messed up when it reads more than one such file.
+
+ * debug-private.h (AssemblyDebugInfo): Moved `f', `producer_name',
+ `next_idx', `methods', `type_hash', `source_files' and `format'
+ into the MonoDebugHandle.
+
+ * debug.c (mono_debug_get_type): This now operates on the MonoDebugHandle,
+ not on the AssemblyDebugInfo.
+ (mono_debug_open_file): Moved some stuff here from mono_debug_open_assembly().
+
+ * debug-dwarf2.c (mono_debug_write_assembly_dwarf2): Renamed into
+ mono_debug_write_dwarf2().
+ (mono_debug_open_assembly_dwarf2): Removed.
+ (mono_debug_close_assembly_dwarf2): Removed.
+
+ * debug-stabs.c (mono_debug_write_assembly_stabs): Renamed into
+ mono_debug_write_stabs().
+ (mono_debug_open_assembly_stabs): Removed.
+ (mono_debug_close_assembly_stabs).
+
+ * debug-dwarf2-plus.c: This is currently broken. :-(
+
+2002-05-20 Martin Baulig <martin@gnome.org>
+
+ * debug.h (mono_debug_format): New global variable.
+ (MonoDebugFormat): Added MONO_DEBUG_FORMAT_NONE.
+
+ * debug-private.h (MonoDebugHandle): Added `objfiles' field which is
+ a whitespace separated list of symbol files.
+ (AssemblyDebugInfo): Added `objfile' filed which is the name of the
+ symbol file.
+
+ * mono.c (main): Pass the assembly file name to mono_debug_open_file().
+
+ * debug.c (mono_debug_make_symbols): Link all symbol files into a big
+ `<assemblyname>.o' symbol file.
+
+2002-05-20 Martin Baulig <martin@gnome.org>
+
+ * debug.c (debug_load_method_lines): Check whether the assembly file
+ is newer than the IL file and recreate the IL file if necessary.
+
+2002-05-20 Miguel de Icaza <miguel@ximian.com>
+
+ * mono.c Updated copyright years.
+
+2002-05-18 Miguel de Icaza <miguel@ximian.com>
+
+ * mono.c (usage): Relayout command line options.
+
+2002-05-17 Dietmar Maurer <dietmar@ximian.com>
+
+ * x86.brg (reg): fixed array bound check
+
+ * emit-x86.c (enter_method): print method signature
+
+ * exception.c (arch_handle_exception): set trace info before we
+ call handlers.
+
+2002-05-16 Dietmar Maurer <dietmar@ximian.com>
+
+ * jit.c (mono_find_final_block): make it work with mcs
+
+ * x86.brg: buf fix. if exception variable is allocated to a register.
+
+ * jit.c (mono_find_final_block): bug fix.
+
+2002-05-15 Dietmar Maurer <dietmar@ximian.com>
+
+ * delegate.c (arch_end_invoke): fix bug #24653, simplified the
+ code using new runtime_invoke feature.
+
+ * jit.c (mono_analyze_flow): try blocks are followed by handler
+ blocks, so we need to add all handler blocks as succesors.
+ (mono_thread_start_cb): set end_of_stack
+
+ * exception.c (arch_handle_exception): correctly save/restore caller
+ saved regs.
+
+ * emit-x86.c (arch_emit_prologue): correctly save/restore caller
+ saved regs.
+
+ * jit.c (mono_cfg_new): allocate space for caller saved registers.
+
+2002-05-14 Dietmar Maurer <dietmar@ximian.com>
+
+ * jit.c: only use one TLS slot to store jit data
+
+ * exception.c (arch_handle_exception): print function signature,
+ use thread relative end_of_stack
+
+2002-05-13 Dietmar Maurer <dietmar@ximian.com>
+
+ * jit.c (OPT_BOOL): new. opt. for boolean variables - we simply
+ store them as 32 bit integers.
+ (mono_analyze_stack): we need to generate a temporary var for
+ SHL/SHR because the tree allocator can fail otherwise
+
+ * exception.c (arch_handle_exception): EIP now points to the call
+ instruction, not to the instruction after the call. This fixes the
+ bug reported by Linus Upson (tests/exception8.cs)
+
2002-05-11 Dietmar Maurer <dietmar@ximian.com>
+ * jit.c (mono_analyze_flow): always allocate the forest array
+ (mono_stack_duplicate_used_var): impl.
+ (mono_copy_used_var): impl.
+
+ * x86.brg: bug fix in SHR/SHL
+
* emit-x86.c (arch_emit_prologue): check if live_in_set != NULL
2002-05-11 Sergey Chaban <serge@wildwestsoftware.com>