(ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl. + bug...
[mono.git] / mono / jit / ChangeLog
1 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
2
3         * jit.c (mono_analyze_stack CEE_DIV): added fix from Zoltan Varga
4         (bug #27423)
5         * jit.c: s/ISSTRUCT/MONO_TYPE_ISSTRUCT/ 
6
7         * helpers.c (mono_map_ldind_type): added suggested changes from
8         Zoltan Varga (support MONO_TYPE_U), variou 64bit fixes
9
10         * jit.c (mono_analyze_stack): remove the vtype pointer from the
11         stack (fix bug #27420)
12
13 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
14
15         * x86.brg (CALL_VOID): fix bug #27751
16         (CONV_R_UN) use reg2 instead of reg1 for the negative check /fix bug 27849.
17
18         * jit.c (mono_analyze_stack): adjust valuetype size for pinvoke calls
19
20 i2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
21
22         * x86.brg (freg): new rule freg: CALL_R8 (this, reg)
23
24 2002-07-10  Dietmar Maurer  <dietmar@ximian.com>
25
26         * emit-x86.c (arch_emit_prologue): added code to save LMF
27
28 2002-07-04  Dietmar Maurer  <dietmar@ximian.com>
29
30         * x86.brg (LOCALLOC): added fix from Zoltan Varga (for bug #27396) 
31
32 2002-07-05  Martin Baulig  <martin@gnome.org>
33
34         * debug.c (mono_debug_add_method): Fix a bug in the `begin_scope' and
35         `end_scope' calculations when linear scan register allocation is disabled.
36
37 2002-07-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
38
39         * mono.c: removed the "RESULT: X" message.
40
41 2002-07-01  Dietmar Maurer <dietmar@ximian.com>
42
43         * exception.c (arch_get_call_finally): restore caller saved
44         register used by global reg. allocation when calling finally
45         handlers (fixes bug #24943).
46
47 2002-07-01  Dick Porter  <dick@ximian.com>
48
49         * jit.c (mono_jit_exec): Removed unneeded argument to
50         mono_runtime_run_main()
51
52 2002-06-28  Martin Baulig  <martin@gnome.org>
53
54         * debug.c (debug_generate_method_lines, mono_debug_add_method): Make methods
55         start on the nop instruction to make single-stepping into an already-JITed
56         method work.
57
58 2002-06-26  Martin Baulig  <martin@gnome.org>
59
60         * debug.c (mono_debug_source_location_from_address): Added
61         `guint32 *line_number' argument.  If it's not NULL, store the line number
62         there and return the file name without the line number.
63
64         * exception.c (ves_icall_get_trace): Fill in `sf->filename' and `sf->line'.
65         (ves_icall_get_frame_info): Likewise.
66
67 2002-06-25  Dick Porter  <dick@ximian.com>
68
69         * jit.c (mono_jit_exec): Pass the assembly to mono_runtime_run_main
70
71 2002-06-22  Martin Baulig  <martin@gnome.org>
72
73         * debug.c (mono_debug_source_location_from_address): Small fix, an
74         unsigned number can never be smaller than zero, make that check
75         actually work.
76
77 2002-06-19  Dietmar Maurer  <dietmar@ximian.com>
78
79         * exception.c (ves_icall_get_trace): new method to get the stack
80         trace from a Exception.
81
82 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
83
84         * jit.c (check_inlining): do not inline functions containing 
85         calls to stack query functions
86
87         * exception.c (ves_icall_get_frame_info): impl.
88
89 Tue Jun 18 10:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
90
91         * invoke.c: marshal simple arrays correctly.
92
93 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
94
95         * x86.brg: added inlined versions of Math.Sin, Math.Cos, Math.Sqrt
96
97         * jit.c (mono_analyze_stack): impl. STARG
98         (mono_analyze_stack): impl. LDARGA
99
100         * exception.c (arch_handle_exception): correctly restore register
101         values when unwinding the stack (fixes bug 25698)
102
103 2002-06-09  Martin Baulig  <martin@gnome.org>
104
105         * debug.c (mono_debug_open_image): For MONO_DEBUG_FORMAT_DWARF2_PLUS,
106         the `%s-debug.s' file is in the same directory than its assembly.
107
108 Sat Jun 1 13:24:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
109
110         * message.c, emit-x86.c: kill warnings.
111
112 2002-05-31  Dietmar Maurer  <dietmar@ximian.com>
113
114         * x86.brg: buf fix in REMOTE_STIND_OBJ
115         (mono_ldvirtftn): impl.
116         (mono_ldintftn): impl.
117         (mono_ldftn): impl.
118
119 Fri May 31 13:26:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
120
121         * mono.c: added --config command line option.
122
123 Fri May 31 12:34:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
124
125         * jit.c, jit.h: collect statistics about the number of basic blocks.
126
127 2002-05-31  Martin Baulig  <martin@gnome.org>
128
129         * debug.c (mono_debug_address_from_il_offset): New public function.
130         (mono_debug_add_method): Improved local variable info: correctly handle
131         variables in registers and their start/end scopes.
132
133 2002-05-30  Martin Baulig  <martin@gnome.org>
134
135         * debug-dwarf2.c (dwarf2_write_string): Use "0x%lx" as fprintf() format,
136         not "%p" which seems to be broken on Windows/mingw32.
137
138 2002-05-30  Dietmar Maurer  <dietmar@ximian.com>
139
140         * x86.brg (reg): bug fix in LOCALLOC
141
142         * mono.c (main): new switch --nointrinsic to disable memcpy opt.
143
144         * x86.brg: added block copy/init optimizations from 
145         Serge (serge@wildwestsoftware.com)
146  
147 Thu May 30 14:13:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
148
149         * invoke.cs: lookup P/Invoke method address only when needed.
150
151 2002-05-29  Dietmar Maurer  <dietmar@ximian.com>
152
153         * x86.brg: bug fix in REMOTE_STIND_OBJ
154
155         * invoke.c (arch_create_native_wrapper): handle pointers to value types
156
157         * helpers.h: use mono_ prefix for all functions
158
159         * jit.c (mono_analyze_stack): fixed SIZEOF
160
161         * x86.brg: impl. LOCALLOC, INITBLK
162
163 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
164
165         * x86.brg: impl. CKFINITE 
166
167         * jit.c (mono_analyze_stack): impl. CEE_CALLI
168
169         * x86.brg (JMP): impl. JMP opcode
170
171 2002-05-27  Dietmar Maurer  <dietmar@ximian.com>
172
173         * jit.c (mono_cfg_new): reserve additional space to store ESP when
174         calling finally handlers.
175
176         * exception.c (arch_get_call_finally): save ESP before calling
177         finally handler.
178
179         * helpers.c (map_arg_type): move some generic helper function into
180         this file.
181
182         * mono.c (usage): new option --breakonex 
183
184         * exception.c (arch_exc_is_caught): only return FALSE if really
185         unhandled.
186
187         * jit.c (mono_thread_abort): free jit_tls
188
189 2002-05-24  Dietmar Maurer  <dietmar@ximian.com>
190
191         * x86.brg (stmt): use memmove to cope with overlapping
192         blocks. This is not required by the specs, so we can remove it
193         later if it turns out to be too slow (and use memcpy).
194
195         * jit.c (mono_analyze_stack): moved const. folding from x86.brg
196
197         * x86.brg: CPBLK impl.
198
199         * emit-x86.c (tree_emit): modified to support 3 nonterminals per
200         rule (used for CPBLK).
201
202 Thu May 23 18:43:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
203
204         * mono.c: remove generated code from hash when benchmarking/testing
205         method compilation.
206         * invoke.cs: special case string ctors.
207
208 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
209
210         * *.c: code cleanups - tried to separate architecture dependent things. 
211
212 2002-05-23  Martin Baulig  <martin@gnome.org>
213
214         * debug.c (mono_debug_open): Don't call mono_debug_add_image().
215         (mono_debug_write_symbols): Only recreate the symbol file if
216         necessary.
217
218         * debug-private.h (MonoDebugHandle): Added `dirty' flag.
219
220         * mono.c (main): Call mono_debug_add_image() here.
221
222         * jit.c (mono_thread_abort): If we have debugging support, call
223         mono_debug_make_symbols() and G_BREAKPOINT().
224
225         * exception.c (arch_handle_exception): Don't G_BREAKPOINT() if we get
226         an unhandled exception.
227
228 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
229
230         * delegate.c: move the thread pool to metadata/threadpool.c, code
231         cleanup.
232
233 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
234
235         * exception.c (arch_exc_is_catched): impl. MS like exception
236         handling (added a check for unhandled exceptions)
237
238 2002-05-22  Martin Baulig  <martin@gnome.org>
239
240         * debug-dwarf2-plus.c (mono_debug_open_assembly_dwarf2_plus): Only run
241         the assembler if necessary, ie. the assembler file is newer than the
242         symbol file or the symbol file does not exist.
243
244         * debug.c: Added "update_on_exit" argument to recreate the symbol file
245         when the JIT exists.
246
247         * debug-dwarf2.c: Produce assembler code which is free of comments and
248         extra whitespaces so that it's suitable for `as -f'.
249
250 2002-05-22  Martin Baulig  <martin@gnome.org>
251
252         * debug-dwarf2.c (dwarf2_write_section_end): Removed.  This is not needed
253         and not supported by all assemblers.
254         (dwarf2_write_2byte): Use ".word" instead of ".2byte" since ".2byte" is a
255         GNU extension.
256
257         * mono.c (--debug): Small fix in the argument parsing.
258
259 2002-05-22  Martin Baulig  <martin@gnome.org>
260
261         * debug.c: Added "dont_assemble" and "dont_precompile" argument for dwarf-plus.
262
263         * mono.c: Applied patch from Miguel:
264         (--debug): This is now a `--debug=[FORMAT]' argument where FORMAT defaults
265         to dwarf-plus.
266
267 2002-05-21  Martin Baulig  <martin@gnome.org>
268
269         * debug.c (mono_debug_source_location_from_address): Added support for the
270         dwarf2-plus format.
271
272 2002-05-21  Martin Baulig  <martin@gnome.org>
273
274         * debug.c (mono_debug_source_location_from_address): New function.
275         (mono_debug_il_offset_from_address): New function.
276
277         * exception.c (arch_handle_exception): If we have debugging support, include
278         information about the source location and IL offset in the stack trace.
279
280 2002-05-21  Dietmar Maurer  <dietmar@ximian.com>
281
282         * jit.c (mono_analyze_stack): LDARG uses 16bit argument (fix bug
283         #25058)  
284
285         * x86.brg (stmt): removed unnecessary assertion
286
287         * jit.c (check_inlining):  we cant inline throw instructions
288         (because it breaks some basic block requirements)
289
290 2002-05-21  Martin Baulig  <martin@gnome.org>
291
292         * debug-private.h (MonoDebugFlags): New enum typedef.
293
294         * debug.c (mono_debug_open): Added a few useful arguments.  See the manpage
295         for details.
296
297 2002-05-21  Martin Baulig  <martin@gnome.org>
298
299         * debug.c (mono_debug_open_file): Renamed to mono_debug_open(), now takes
300         a `MonoAssembly *' argument instead of a `char *filename' one.  Also added
301         `const char **args' argument.
302
303         * mono.c (mono_jit_assembly): Renamed to mono_jit_compile_image(), added
304         `int verbose' argument and made it public.
305         (mono_jit_compile_class): New public function,  moved the code to compile
306         all methods in a class here from main().
307         (--compile): The argument can now also be an image (in `@imagename' format).
308         Updated documentation for this command line argument.
309         (--precompile): New command line argument to precompile an image/class/method
310         before executing the main app.  This argument can be given multiple times.
311         (--break): Renamed the "--debug" command line argument to "--break".
312         (--debug): New command line argument to specify the debugging format.
313         (--stabs, --dwarf, --dwarf-plus): Removed, obsoleted by "--debug".
314         (--debug-args): New command line argument.  This is a comma-separated list of
315         additional arguments for the symbol writer.
316         (usage): Beautified the help text a bit.
317
318         * debug-dwarf2-plus.c (mono_debug_open_assembly_dwarf2_plus): Use the new
319         public mono_jit_compile_image() function rather than duplication this
320         functionality here.
321
322 2002-05-21  Martin Baulig  <martin@gnome.org>
323
324         * debug-dwarf2-plus.c: This is now working again :-)
325
326         * debug.c (mono_debug_open_file): When using MONO_DEBUG_FORMAT_DWARF2_PLUS,
327         we create two MonoDebugHandles: one for MONO_DEBUG_FORMAT_DWARF2_PLUS and
328         one for the fallback MONO_DEBUG_FORMAT_DWARF2.
329
330 2002-05-21  Martin Baulig  <martin@gnome.org>
331
332         * jit.c (mono_debug_handle): Removed this global variable.
333
334         * debug.c (mono_debug_close): Removed.
335         (mono_debug_cleanup): New global function.
336         (mono_debug_add_image): New global function.
337         (mono_debug_handle_from_class): New global function.
338         (mono_debug_write_symbols): New global function.
339         (mono_debug_add_type): Removed `MonoDebugHandle *' argument.
340         (mono_debug_add_method): Likewise.
341
342 2002-05-21  Martin Baulig  <martin@gnome.org>
343
344         Work around a hard-to-fix bug in GDB and create a single dwarf/stabs
345         file for all assemblies.  Currently, the JIT doesn't put all methods
346         from a single assembly into a continuous region of memory.  We were
347         previously creating valid DWARF 2 files for this, but unfortunately
348         GDB's symbol tables get messed up when it reads more than one such file.
349
350         * debug-private.h (AssemblyDebugInfo): Moved `f', `producer_name',
351         `next_idx', `methods', `type_hash', `source_files' and `format'
352         into the MonoDebugHandle.
353
354         * debug.c (mono_debug_get_type): This now operates on the MonoDebugHandle,
355         not on the AssemblyDebugInfo.
356         (mono_debug_open_file): Moved some stuff here from mono_debug_open_assembly().
357
358         * debug-dwarf2.c (mono_debug_write_assembly_dwarf2): Renamed into
359         mono_debug_write_dwarf2().
360         (mono_debug_open_assembly_dwarf2): Removed.
361         (mono_debug_close_assembly_dwarf2): Removed.
362
363         * debug-stabs.c (mono_debug_write_assembly_stabs): Renamed into
364         mono_debug_write_stabs().
365         (mono_debug_open_assembly_stabs): Removed.
366         (mono_debug_close_assembly_stabs).
367
368         * debug-dwarf2-plus.c: This is currently broken. :-(
369
370 2002-05-20  Martin Baulig  <martin@gnome.org>
371
372         * debug.h (mono_debug_format): New global variable.
373         (MonoDebugFormat): Added MONO_DEBUG_FORMAT_NONE.
374
375         * debug-private.h (MonoDebugHandle): Added `objfiles' field which is
376         a whitespace separated list of symbol files.
377         (AssemblyDebugInfo): Added `objfile' filed which is the name of the
378         symbol file.
379
380         * mono.c (main): Pass the assembly file name to mono_debug_open_file().
381
382         * debug.c (mono_debug_make_symbols): Link all symbol files into a big
383         `<assemblyname>.o' symbol file.
384
385 2002-05-20  Martin Baulig  <martin@gnome.org>
386
387         * debug.c (debug_load_method_lines): Check whether the assembly file
388         is newer than the IL file and recreate the IL file if necessary.
389
390 2002-05-20  Miguel de Icaza  <miguel@ximian.com>
391
392         * mono.c Updated copyright years. 
393
394 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
395
396         * mono.c (usage): Relayout command line options.
397
398 2002-05-17  Dietmar Maurer  <dietmar@ximian.com>
399
400         * x86.brg (reg): fixed array bound check
401
402         * emit-x86.c (enter_method): print method signature
403
404         * exception.c (arch_handle_exception): set trace info before we
405         call handlers.
406
407 2002-05-16  Dietmar Maurer  <dietmar@ximian.com>
408
409         * jit.c (mono_find_final_block): make it work with mcs
410
411         * x86.brg: buf fix. if exception variable is allocated to a register. 
412
413         * jit.c (mono_find_final_block): bug fix.
414
415 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
416
417         * delegate.c (arch_end_invoke): fix bug #24653, simplified the
418         code using new runtime_invoke feature.
419
420         * jit.c (mono_analyze_flow): try blocks are followed by handler
421         blocks, so we need to add all handler blocks as succesors.
422         (mono_thread_start_cb): set end_of_stack
423
424         * exception.c (arch_handle_exception): correctly save/restore caller
425         saved regs.
426
427         * emit-x86.c (arch_emit_prologue): correctly save/restore caller
428         saved regs.
429
430         * jit.c (mono_cfg_new): allocate space for caller saved registers.
431
432 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
433
434         * jit.c: only use one TLS slot to store jit data
435
436         * exception.c (arch_handle_exception): print function signature,
437         use thread relative end_of_stack
438
439 2002-05-13  Dietmar Maurer  <dietmar@ximian.com>
440
441         * jit.c (OPT_BOOL): new. opt. for boolean variables - we simply
442         store them as 32 bit integers.
443         (mono_analyze_stack): we need to generate a temporary var for
444         SHL/SHR because the tree allocator can fail otherwise 
445
446         * exception.c (arch_handle_exception): EIP now points to the call
447         instruction, not to the instruction after the call. This fixes the
448         bug reported by Linus Upson (tests/exception8.cs)
449
450 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
451
452         * jit.c (mono_analyze_flow): always allocate the forest array
453         (mono_stack_duplicate_used_var): impl.
454         (mono_copy_used_var): impl.
455
456         * x86.brg: bug fix in SHR/SHL
457
458         * emit-x86.c (arch_emit_prologue): check if live_in_set != NULL
459
460 2002-05-11  Sergey Chaban <serge@wildwestsoftware.com>
461
462         * mono.c: new --fast-iconv command line option
463         to enable fast FP-to-integer conversion code.
464         * jit.c, jit.h: added global variable to store state
465         for the above option. This optimization is disabled
466         by default.
467         * x86.brg: added code to emit fast FP-to-integer
468         conversion sequences.
469
470 2002-05-10  Dan Lewis  <dihlewis@yahoo.co.uk>
471
472         * emit-x86.c: simple definite assignment analysis optimization for
473         uninitialized locals.
474
475 Fri May 10 15:43:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
476
477         * x86.brg, emit-x86.c: patch the branch targets with x86_patch().
478
479 2002-05-10  Dietmar Maurer  <dietmar@ximian.com>
480
481         * linear-scan.c (mono_update_gen_set): improvement/bug fix
482
483         * x86.brg: added additional rules to handle global allocated registers
484
485         * mono.c (usage): the option is called --nols, and it dissables
486         linear scan.
487
488         * x86.brg: better LDIND_R4, LDIND_R8, STIND_R4, STIND_R8
489
490 2002-05-09  Dietmar Maurer  <dietmar@ximian.com>
491
492         * linear-scan.c: linear scan reg. allocation and data flow analysis
493         use Paolo's great bitset implementation.
494
495         * jit.c (arch_allocate_var): add live range info
496         (mono_cfg_add_successor): create list of successors for basic
497         blocks.
498
499         * mono.c (main): new option --ls to enable linear scan
500
501         * exception.c (arch_handle_exception): print instruction pointer
502         relative to method start address.
503
504         * jit.c (mono_print_ctree): print register number if locals are
505         allocate in registers.
506
507         * emit-x86.c (arch_emit_prologue): initialize reg. allocated locals
508         (arch_emit_epilogue): take care when restoring save registers,
509         because the stack pointer may has changed.
510
511         * x86.brg: s/VAROFFSET/VARINFO/
512         modified to support global register allocation
513
514 Mon May 6 15:38:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
515
516         * jit.h, jit.c, emit-x86.c: x86 cpu detection code from Sergey.
517
518 2002-05-03  Sergey Chaban <serge@wildwestsoftware.com>
519
520         * x86.brg: more coni4 optimizations
521         MUL: generate optimized code for some consts other
522         than powers of 2 (hardcoded impl. for 3, 5, 10 etc.);
523         DIV_UN: multiply with reciprocal instead of dividing;
524
525 2002-05-03  Dietmar Maurer  <dietmar@ximian.com>
526
527         * x86.brg: use VAROFFSET macro
528
529         * emit-x86.c (tree_emit): allocate space for spilled regs in
530         activation frame instead of pushing them to the stack.
531
532         * x86.brg: replace BXX with CBRANCH/COMPARE
533         replaced CXX CSET/COMPARE
534
535         * emit-x86.c (arch_allocate_regs): improved register allocation
536
537 2002-05-02  Dietmar Maurer  <dietmar@ximian.com>
538
539         * delegate.c (mono_delegate_cleanup): signal semaphore in order to
540         exit threads.
541
542 2002-04-30  Dick Porter  <dick@ximian.com>
543
544         * mono.c (main): Tell glib to not abort when g_log() etc print
545         recursively
546
547 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
548
549         * x86.brg: opt. LDELEMA impl.
550         (MUL) use shift when possible.
551         (DIV) use shift when possible.
552         impl. various opt. with coni4
553
554         * exception.c (arch_handle_exception): use ctx->SC_EBP in
555         end_of_stack check as suggested by Linus Upson <linus@linus.com>
556
557 2002-04-29  Dietmar Maurer  <dietmar@ximian.com>
558
559         * x86.brg (LDLEN, UNBOX): removed unnecessary NULL check.  
560
561         * exception.c: included the Freebsd patch from Sandro Tolaini
562         <sandro@focuseek.com>
563
564 Mon Apr 29 15:18:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
565
566         * mono.c, jit.c: use mono_runtime_run_main ().
567
568 2002-04-29  Dietmar Maurer  <dietmar@ximian.com>
569
570         * jit.c (mono_analyze_stack): dont call methods on Object with
571         METHOD_ATTRIBUTE_FINAL directly because it breaks remoting.
572
573         * x86.brg: added more CONV_U rules
574
575         * jit.c (mono_analyze_stack): avoid recursive call of virtual
576         methods: fixes Bug #23778 
577         (mono_analyze_stack): emit right CONV_UX opcodes: fixes bug 23547
578
579         * exception.c (arch_handle_exception): only g_assert(cleanup) if
580         we really need it.
581
582 2002-04-27      Patrik Torstensson <patrik.torstensson@intel.com>
583
584         * x86.brg: fixed bug in CONV_I8 (invalid stack correction)
585
586 2002-04-27  Martin Baulig  <martin@gnome.org>
587
588         * jit.h (MonoFlowGrap): Renamed `epilogue_begin' to `epilogue_end',
589         there's already `epilog' so we don't need `epilogue_begin'.
590
591         * debug.c (mono_debug_add_method): Use `cfg->epilogue_end' to get the
592         size of the method's code.
593
594 2002-04-25  Martin Baulig  <martin@gnome.org>
595
596         * debug-dwarf2.c (dwarf2_write_string_type): Reflect latest MonoString
597         changes.
598
599 2002-04-25  Dietmar Maurer  <dietmar@ximian.com>
600
601         * x86.brg: enable stmt: STIND_I4 (addr, coni4) again,
602         added CONV_OVF_I4 (fix bug #23808)
603
604 2002-04-23  Dietmar Maurer  <dietmar@ximian.com>
605
606         * x86.brg: code cleanup - use x86_patch ()
607
608         * jit.c (mono_analyze_stack): only use MB_TERM_CHECKTHIS when necessary
609         (mono_analyze_stack): don't store constants in temp. variables for CEE_DUP
610
611         * x86.brg (stmt): removed stmt: STIND_I4 (addr, coni4) rule
612         because it slows down performance.
613
614 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
615
616         * emit-x86.c: enter_method handles 8-byte aligned parameters.
617
618 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
619
620         * jit,h, jit.c, x86.brg: NEWOBJ_SPEC and NEWARR_SPEC terminals for
621         non-shared code.
622
623 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
624
625         * jit.c (check_inlining): added statistics about inlineing
626
627         * mono.c (usage): new switch --noinline to disable inlining
628
629         * jit.c (mono_analyze_stack): added a check for (this!=NULL) if we
630         inline methods (to keep semantics)
631
632         * x86.brg: added constant folding for inegers 
633
634         * emit-x86.c (tree_allocate_regs): handle the special case when
635         chain rules need a register.
636
637 2002-04-19  Dietmar Maurer  <dietmar@ximian.com>
638
639         * invoke.c (arch_create_native_wrapper): do not save LMF for Strings
640
641         * jit.c (check_inlining): better inlining support
642
643 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
644         
645         * x86.brg: LDLEN uses max_length instead of bounds[0]
646         * jit.c: support for new szarray format
647
648 2002-04-18  Dietmar Maurer  <dietmar@ximian.com>
649
650         * jit.c (check_inlining): added inlining support
651
652 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
653
654         * x86.brg: optimized version of castclass and isinst
655
656 Wed Apr 17 12:34:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
657
658         * emit-x86.c, invoke.c: track time spent compiling.
659
660 Wed Apr 17 10:58:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
661
662         * emit-x86.c, invoke.c: call profile callbacks if needed.
663         * jit.c, jit.h, mono.c: add --profile command line option.
664
665 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
666
667         * jit.h: included mono/io-layer/io-layer.h to avoid breaking
668         compilation under windows when upgrading mingw and w32api to 
669         version 1.3 (thanks Dick!).
670
671 2002-04-15  Patrik Torstensson <patrik.torstensson@labs2.com>
672
673         * jit.c: changed the array icalls to use full names
674
675 2002-04-15  Dietmar Maurer  <dietmar@ximian.com>
676
677         * x86.brg: check the this pointer before calling
678         non-virtual functions
679
680         * emit-x86.c (arch_emit_prologue): initialize local vars.
681
682         * x86.brg: removed incredible clumsy code
683
684 2002-04-13  Martin Baulig  <martin@gnome.org>
685
686         * debug-dwarf2.c (dwarf2_write_variable_location): New static func to write
687         the location of a variable.
688         (dwarf2_write_variable, dwarf2_write_parameter): Take a MonoDebugVarInfo
689         instead of a stack offset and use dwarf2_write_variable_location() to write
690         the location.
691
692 2002-04-13  Martin Baulig  <martin@gnome.org>
693
694         * debug.c, debug-stabs.c, debug-dwarf2.c: Reflect latest debug-symfile.h
695         API changes.
696
697 2002-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
698
699         * Makefile.am: use of the new '-s' option in monoburg.
700
701 2002-04-12  Martin Baulig  <martin@gnome.org>
702
703         * debug-dwarf2.c (dwarf2_write_variable): Emit info about the variable's
704         lifetime.
705
706 2002-04-10  Sergey Chaban <serge@wildwestsoftware.com>
707         * win32-exception: added Win32 SEH exception filter that translates
708         CONTEXT to sigcontext;
709
710         * jit.c: added Win32 SEH init/reset calls, compute sigcontext address
711         in a platfrom-dependent way;
712
713         * jit.h: use win32-exception instead of signal if PLATFORM_WIN32
714         and avoid io-layer includes;
715
716         * delegate.c: do not include io-layer stuff if PLATFORM_WIN32
717         is defined;
718
719 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
720
721         * delegate.c (arch_end_invoke): restore output arguments
722
723 Mon Apr 8 17:16:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
724
725         * jit.c: call mono_runtime_init ().
726
727 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
728
729         * jit.c (mono_jit_cleanup): added more statistics
730
731         * invoke.c (arch_create_native_wrapper): special case EndInvoke -
732         we need to pass the MonoMethod pointer as first argument.
733
734         * delegate.c (mono_async_invoke): notify all listeners, not only a
735         single one.
736         (arch_end_invoke): we now pass a MonoMethod as first parameter and
737         use arch_method_call_message_new() to access the stack.
738         (arch_end_invoke): wait until we really finished processing
739         (async_invoke_abort): notify all listeners, not only a
740         single one.
741
742 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
743
744         * message.c (arch_return_value): impl.
745         (arch_method_return_message_restore): consider delegate BeginInvoke
746
747         * jit.c: removed jit_exec_main()
748
749         * delegate.c (arch_begin_invoke): use the message builder to make
750         it architecture independent - still needs more cleanup.
751
752 2002-04-05  Dietmar Maurer  <dietmar@ximian.com>
753
754         * delegate.c (mono_delegate_ctor): support for transparent proxy
755
756         * x86.brg (freg): bug fix in CONV_R* opcodes
757
758 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
759
760         * message.c: added documentation
761
762 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
763
764         * mono.c (main): use --trace instead of --trace-calls
765
766         * x86.brg: impl. REMOTE_STIND_XX
767
768         * message.c (mono_store_remote_field): impl.
769
770 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
771
772         * x86.brg: impl. REMOTE_FIELD (load fields of remote objects)
773
774         * message.c (mono_load_remote_field): impl.
775
776         * jit.c (mono_analyze_stack): only call marshalbyref methods
777         through the vtable.
778         (mono_analyze_stack): consider marshalbyref objects in LDFLD
779
780 Fri Mar 29 16:00:27 CET 2002 Paolo Molaro <lupus@ximian.com>
781
782         * x86.brg: kill pointer arithmetric.
783
784 2002-03-28  Martin Baulig  <martin@gnome.org>
785
786         * jit.c (mono_debug_insert_breakpoint): New global variable.
787         (mono_debug_last_breakpoint_address): New global variable.
788
789         * emit-x86.c (arch_compile_method): If `mono_debug_insert_breakpoint' is
790         non-zero, insert a breakpoint; if it's positive, decrement it when done.
791         Set `mono_debug_last_breakpoint_address' to the address of the last inserted
792         breakpoint.
793
794         * debug.h: Provide external declaration of `mono_debug_insert_breakpoint' and
795         `mono_debug_last_breakpoint_address', also documented them here.
796
797 2002-03-28  Martin Baulig  <martin@gnome.org>
798
799         * debug-private.h (MonoDebugHandle): Renamed `format' to `default_format'.
800         (AssemblyDebugInfo): Added `format'.
801
802         * debug.c: Use the AssemblyDebugInfo's `format' field to determine the format,
803         this allows us choose the format on a per-assembly basis.
804         (mono_debug_open_assembly): When using MONO_DEBUG_FORMAT_DWARF2_PLUS, fall back
805         to MONO_DEBUG_FORMAT_DWARF2 if the symbol file does not exist, but the IL file
806         exists.
807         (debug_generate_method_lines): Generate correct IL offsets.
808
809 2002-03-28  Martin Baulig  <martin@gnome.org>
810
811         * jit.h (MonoFlowGraph): Added `prologue_end' and `epilogue_start' fields.
812
813         * emit-x86.c (arch_compile_method): Set prologue_end and epilogue_start.
814
815         * debug-private.h (DebugMethodInfo): Renamed `frame_start_offset' to
816         `prologue_end_offset', added `epilogue_begin_offset' and `last_line'.
817
818         * debug.c (debug_generate_method_lines): Don't return if we don't have line
819         numbers, we still need to generate the IL offsets here. Emit line numbers
820         for `prologue_end_offset' (the first line of actual code) and 
821         `epilogue_begin_offset' (the line of the method's closing brace).
822         Don't crash if cfg->bblocks [i].forest is NULL.
823         (mono_debug_add_method): Don't crash if we don't have line numbers.
824         Initialize the newly added fields.
825
826         * debug-stabs.c: Record first and last line, emit filename info at the
827         beginning of the stab file, gdb ignores the types otherwise.
828
829         * debug-dwarf2.c: Use the new prologue_end_offset instead of guessing it;
830         emit line number info for the first and last line.
831
832 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
833
834         * invoke.c (arch_create_delegate_trampoline): impl.
835
836 Thu Mar 28 11:58:53 CET 2002 Paolo Molaro <lupus@ximian.com>
837
838         * Makefile.am, mono.c, jit.h, jit.c: build the libmono library
839         with the jit runtime to easy embedding. main() is moved to mono.c, now.
840         * jit.c: use opcode names from libmetadata.
841         * debug.h, debug.c: constify char* argument.
842
843 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
844
845         * jit.c: catching SIGSEGV again, added proxy support
846
847 2002-03-21  Dietmar Maurer  <dietmar@ximian.com>
848
849         * delegate.c (mono_delegate_init): remove unused worker threads
850
851 2002-03-27  Mike Kestner <mkestner@speakeasy.net>
852
853         * delegate.c (arch_get_delegate_invoke): malloc a bigger area
854
855 Tue Mar 26 19:54:45 CET 2002 Paolo Molaro <lupus@ximian.com>
856
857         * jit.c: remove glib mem vtable code.
858
859 2002-03-26  Martin Baulig  <martin@gnome.org>
860
861         * debug-dwarf2.c (write_method_lines_dwarf2): Don't generate method
862         lines if we don't have line number information.
863         (write_method_dwarf2): Use `minfo->method_info.this_offset' instead
864         of hardcoding 8.
865
866         * debug-stabs.c (write_method_stabs): Don't generate method lines if
867         we don't have line number information. Use `minfo->method_info.this_offset'
868         instead of hardcoding 8.
869
870         * debug.c (debug_generate_method_lines): Don't crash if we don't have
871         line number information.
872         (mono_debug_open_assembly): Don't generate line numbers for
873         MONO_DEBUG_FORMAT_DWARF2_PLUS.
874         (mono_debug_add_method): Don't store the 'this' offset in `param_offsets',
875         but it in the new `this_offset' field.
876         
877 Mon Mar 25 13:03:35 CET 2002 Paolo Molaro <lupus@ximian.com>
878
879         * debug.c (debug_generate_method_lines): Use correct addresses for
880         record_il_offset().
881
882 Mon Mar 25 13:03:35 CET 2002 Paolo Molaro <lupus@ximian.com>
883
884         * jit.c: do not set the glib mem vtable anymore.
885         * Makefile.am: link to libmonoutils.
886
887 2002-03-25  Martin Baulig  <martin@gnome.org>
888
889         * debug.h (mono_debug_make_symbols): Documented this function.
890
891 2002-03-24  Martin Baulig  <martin@gnome.org>
892
893         * debug.c (mono_debug_add_method): Include the `this' offset in
894         the `minfo->method_info.param_offsets' array.
895
896 2002-03-23  Martin Baulig  <martin@gnome.org>
897
898         * x86.brg (lreg: CONV_I8 (reg)): X86_XOR modifies the flags, so we need
899         to do it before the X86_CMP.
900         (reg: CLT (lreg, lreg)): Use correct x86_branch8() targets.
901         (reg: CLT (lreg, lreg)): Likewise.
902         (reg: CLT_UN (lreg, lreg)): Likewise.
903         (reg: CLT_UN (lreg, lreg)): Likewise.
904         (reg: CGT (lreg, lreg)): Likewise.
905         (reg: CGT (lreg, lreg)): Likewise.
906         (reg: CGT_UN (lreg, lreg)): Likewise.
907         (reg: CGT_UN (lreg, lreg)): Likewise.
908
909 2002-03-23  Martin Baulig  <martin@gnome.org>
910
911         * debug-private.h (AssemblyDebugInfo): Added `_priv'.
912
913         * debug-dwarf2-plus.c
914         (mono_debug_open_assembly_dwarf2_plus): Open the symbol file here.
915         (mono_debug_close_assembly_dwarf2_plus): Close the symbol file here.
916         (mono_debug_write_assembly_dwarf2_plus): Only call
917         mono_debug_update_symbol_file() here.
918
919 Thu Mar 21 17:35:48 CET 2002 Paolo Molaro <lupus@ximian.com>
920
921         * jit.c: inter strings before executing a method.
922         Do not intern command line arguments anymore.
923
924 2002-03-21  Martin Baulig  <martin@gnome.org>
925
926         * debug.h (MonoDebugFormat): Added MONO_DEBUG_FORMAT_DWARF2_PLUS.
927
928         * debug-dwarf2-plus.c: This debugging format reads a symbol file which has
929         been created by MCS and fills in all machine dependent stuff.
930
931         * debug-private.h (DebugMethodInfo): Added `MonoDebugMethodInfo method_info',
932         removed everything which is already in MonoDebugMethodInfo.
933
934         * debug.c (debug_generate_method_lines): Generate the MonoILOffsetInfo array.
935         (mono_debug_make_symbols): Don't open the file or call as, this is done in the
936         backend code.
937
938         * jit.c (main): Added "--dwarf-plus" command line option to use the new
939         MONO_DEBUG_FORMAT_DWARF2_PLUS debugging format.
940
941 2002-03-21  Dietmar Maurer  <dietmar@ximian.com>
942
943         * jit.c (usage): new option to specify maximum number of worker threads
944         (mono_analyze_stack): avoid cyclic dependency in CEE_LDFTN
945
946         * delegate.c (async_invoke_abort): added support for asynchronous exceptions
947         (arch_get_async_invoke): notify listeners before we call the
948         asynchronous callback
949
950 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
951
952         * delegate.c (async_invoke_thread): support for domains
953         (async_invoke_thread): create workers only when needed
954
955 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
956
957         * delegate.c (async_invoke_thread): initial support for BeginInvoke/EndInvoke
958
959 2002-03-18  Dietmar Maurer  <dietmar@ximian.com>
960
961         * x86.brg: impl. lreg: XOR (lreg, lreg)
962         impl. REM (freg, freg)
963
964 2002-03-17  Martin Baulig  <martin@gnome.org>
965
966         * debug.c (mono_debug_open_assembly): Call mono_debug_get_type() on all
967         base types.
968
969         * debug-dwarf2.c: Added support for strings and arrays.
970
971 2002-03-17  Martin Baulig  <martin@gnome.org>
972
973         * debug.c (mono_debug_get_type): Recursively call this for all function members
974         of a class type.
975         (mono_debug_add_method): Don't mangle function names, this must be done by the
976         debugger backend if the debugging format needs mangled names.
977
978         * debug-dwarf2.c: Improved support for classes, added member functions.
979
980 2002-03-16  Martin Baulig  <martin@gnome.org>
981
982         * debug.c (mono_debug_get_type): Recursively call this for all members and
983         parent classes of a class type.
984
985         * debug-dwarf2.c: Added basic support for classes. Set source language to C++
986         since GDB doesn't like Java very much.
987
988 2002-03-16  Martin Baulig  <martin@gnome.org>
989
990         * debug-dwarf2.c: Added support for enums.
991
992 2002-03-15  Martin Baulig  <martin@gnome.org>
993
994         * debug.c (mono_debug_get_type): Recursively call this for all members
995         of a struct type.
996
997         * debug-dwarf2.c: Added support for structs.
998
999 2002-03-15  Dietmar Maurer  <dietmar@ximian.com>
1000
1001         * emit-x86.c (arch_create_jit_trampoline): adapt save/restore LMF
1002         to new MonoLMF layout
1003
1004 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
1005
1006         * emit-x86.c (arch_create_native_wrapper): new code to generate
1007         wrappers for calling native functions.
1008         (arch_create_native_wrapper): free allocated strings
1009         (arch_handle_exception): made mono_jit_info_table domain dependent
1010
1011 2002-03-14  Martin Baulig  <martin@gnome.org>
1012
1013         * debug.c (MonoDebugFormat): New public enums specifying which debugging
1014         format to use.
1015         (mono_debug_open_file): Added MonoDebugFormat argument.
1016         (mono_debug_make_symbols): Don't take an argument to make it easier to call
1017         this function from GDB. It's now safe to call this function multiple times;
1018         it'll always write a complete debugging file.
1019
1020         * debug.c: Splitted this file into a general part which remains in this file
1021         and the debugging format specific parts debug-stabs.c and debug-dwarf2.c.
1022         All public functions now call a corresponding format specific function.
1023
1024         * debug.c: The following changes are private to debug.c:
1025         (AssemblyDebugInfo, MonoDebugHandle): Moved declarations to debug-private.h.
1026         (record_line_number, debug_generate_method_lines): New private functions.
1027         (mono_debug_open_ass): Renamed to mono_debug_open_assembly; this function now
1028         calls a debugging-format-specific function (mono_debug_open_assembly_stabs or
1029         mono_debug_open_assembly_dwarf2).
1030         (mono_debug_make_symbols): Calls mono_debug_write_assembly_stabs/dwarf2(). It's
1031         now safe to call this function multiple times.
1032         (mono_debug_get_type): New public function. This takes a `MonoClass *' and
1033         returns an unique index for this type. It's used to ensure that we only write
1034         each class once to the debugging file.
1035         (mono_debug_add_method, mono_debug_add_type): Store all the data in an internal
1036         data structure, but don't directly write to the debugging file. This is done
1037         later from mono_debug_write_assembly().
1038
1039         * jit.c (main): Added "--dwarf" command line argument to generate DWARF 2
1040         debugging output. Call mono_debug_close() on cleanup if necessary.
1041
1042 2002-03-14  Martin Baulig  <martin@gnome.org>
1043
1044         * debug-private.h: New private header file.
1045
1046         * debug-stabs.c: Added the stabs type generation stuff which was
1047         previously in debug.c.
1048
1049         * debug-dwarf.c: Started to implement type support. We're currently
1050         only writing this most basic types to the dwarf file, but this will
1051         change soon.
1052
1053 2002-03-13  Martin Baulig  <martin@gnome.org>
1054
1055         * debug-stabs.c, debug-dwarf2.c: New files containing my new
1056         debugging code. They're now in CVS, but not yet used anywhere.
1057
1058 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
1059
1060         * emit-x86.c (mono_delegate_ctor): use C impl. instead of x86_*
1061         macros, included new delegate code from Daniel Stodden. 
1062         
1063         
1064 Mon Mar 11 14:47:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1065
1066         * jit.c: verify that corlib and runtime are in sync.
1067
1068 Mon Mar 11 11:30:56 CET 2002 Paolo Molaro <lupus@ximian.com>
1069
1070         * emit-x86.c, jit.c: use the debug-helpers facilities to
1071         describe and match a method when debugging.
1072
1073 2002-03-10  Martin Baulig  <martin@gnome.org>
1074
1075         * emit-x86.c (arch_compile_method): When emitting stabs debugging
1076         output, put a nop instruction at the start of all functions so that
1077         the adresses won't change when using --debug.
1078
1079         * debug.c (mono_debug_add_method): `tree->cli_addr' is an offset into
1080         the bytecode area, stabs needs a line number in the .il file. Use the
1081         new info->moffsets to get the line number.
1082         (AssemblyDebugInfo): Added `total_lines' and `moffsets' fields.
1083         `moffsets' is an array of `total_lines' fields (total number of lines
1084         in the .il file); for each line in the .il field, this array contains
1085         the bytecode offset if it's an "IL_xxxx" line, -1 if it's the last line
1086         of a method and 0 otherwise.
1087         (debug_load_method_lines): Read the whole .il file and initialize the
1088         info->moffsets field.
1089
1090 2002-03-09  Martin Baulig  <martin@gnome.org>
1091
1092         * x86.brg (DIV_UN): Clear EDX before performing the division and remove
1093         the unnecessary CDQ instruction.
1094
1095 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
1096
1097         * jit.c (mono_analyze_stack): only load addresses of value types
1098         on the runtime stack.
1099
1100 2002-03-07  Duncan Mak  <duncan@ximian.com>
1101
1102         * Makefile.am: A small patch fixing errors in vpath-based builds
1103         (make clean failing to rerun monoburg due to BUILT_SOURCES usage),
1104         committed for Daniel Stodden <stodden@in.tum.de>. 
1105
1106 Thu Mar 7 17:22:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1107
1108         * jit.c: Boehm-GC enable.
1109
1110 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
1111
1112         * x86.brg (SAVE_LFM): bug fix: patch the saved IP because we
1113         realloc that code sometimes!
1114
1115         * emit-x86.c (mono_compute_branches): support several types of
1116         jump infos
1117
1118 2002-03-06  Dietmar Maurer  <dietmar@ximian.com>
1119
1120         * x86.brg: impl. MUL_OVF_UN (reg, reg)
1121
1122         * jit.c (mono_find_final_block): find correct finally handler.
1123
1124         * emit-x86.c (arch_create_jit_trampoline): bug fix: preserve
1125         caller saved registers.  
1126
1127 2002-03-05  Dietmar Maurer  <dietmar@ximian.com>
1128
1129         * x86.brg: use x86_widen_reg for CONV opcodes
1130
1131 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
1132
1133         * jit.c (MAKE_SPILLED_BI_ALU): remove unnecessary assertions
1134
1135         * emit-x86.c (arch_handle_exception): big fix - dont use
1136         uninitialized next_bp
1137         (arch_compile_method): make the jit thread save
1138         (x86_magic_trampoline): moved lock/unlock to x86_magic_trampoline
1139         to avoid need of recursive mutexes
1140
1141         * x86.brg: use new mono_assert macros
1142
1143 2002-02-28  Dietmar Maurer  <dietmar@ximian.com>
1144
1145         * emit-x86.c (arch_create_jit_trampoline): save/restore LMF before
1146         calling into unmanaged code (arch_compile_method).
1147
1148         * x86.brg: impl. CONV_I4 (freg) with correct rounding
1149         (lreg): impl CALL_I8(INTF_ADDR)
1150         impl. CONV_R_UN (reg)
1151         bug fix im REM_UN
1152
1153 2002-02-27  Dietmar Maurer  <dietmar@ximian.com>
1154
1155         * emit-x86.c (arch_runtime_invoke): impl. runtime invoke for the jit.
1156
1157 2002-02-26  Dietmar Maurer  <dietmar@ximian.com>
1158
1159         * x86.brg: bug fix in CLT(lreg,lreg)
1160         (reg): bug fix in CONV_OVF_I4(lreg)
1161         (lreg): replaced x86_call_reg with x86_call_code
1162
1163         * emit-x86.c (mono_add_jump_info): impl.
1164         (mono_compute_branches): patch real jump address (instead of
1165         emitting code twice)
1166
1167 Tue Feb 26 11:56:03 CET 2002 Paolo Molaro <lupus@ximian.com>
1168
1169         * x86.brg: optimize cmp reg,0 -> test reg.
1170
1171 Sun Feb 24 13:58:34 CET 2002 Paolo Molaro <lupus@ximian.com>
1172
1173         * jit.h, jit.c, emit-x86.c: Added a few statistics counters
1174         and the --stats command line option to print them.
1175         Fixed memory leak in arch_compile_method () when a method's code is
1176         found in the cache. Fix magic trampoline to deal with static calls.
1177
1178 2002-02-21  Dietmar Maurer  <dietmar@ximian.com>
1179
1180         * x86.brg: impl. SHR_UN for lreg, added new test, bug fix for BNE_UN 
1181
1182 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
1183
1184         * emit-x86.c (arch_compile_method): add shared code to mono_root_domain
1185         (arch_create_jit_trampoline): cache trampoline code
1186
1187 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
1188
1189         * jit.c (mono_analyze_stack): optimize LDSFLD/STSFLD for domain
1190         specific code.
1191         (mono_analyze_stack): use MB_TERM_LDELEMA to perform bound check
1192
1193         * x86.brg: do not encode exception objects into the instruction
1194         stream, because they are domain dependend. Use
1195         arch_get_throw_exception_by_name() instead;
1196
1197 Mon Feb 18 15:51:40 CET 2002 Paolo Molaro <lupus@ximian.com>
1198
1199         * jit.c: intern command line arguments.
1200
1201 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
1202
1203         * jit.c (mono_analyze_stack): use the magic trampoline for all
1204         calls (since we cant store the address of compiled code in
1205         method->addr).
1206         (mono_analyze_stack): imp. LDSTR for shared code
1207
1208         * emit-x86.c (x86_magic_trampoline): handle x86_call_code().
1209         (arch_compile_method): add a cache for compiled methods to avoid
1210         recompilation. dont use method->addr to store domain dependent
1211         code address.
1212
1213 2002-02-15  Dietmar Maurer  <dietmar@ximian.com>
1214
1215         * x86.brg: impl. BLE,BGT for freg
1216
1217 Sat Feb 16 16:27:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1218
1219         * emit-x86.c: handle unreachable code. Eliminate some unneeded
1220         malloc() calls.
1221         * jit.c: handle unreachable code. Move setting of mono_end_of_stack to
1222         main(). Add --compile classname and --ncompile num command line
1223         options to do performance evaluation of the jitter (and help
1224         debugging).
1225
1226 2002-02-15  Dietmar Maurer  <dietmar@ximian.com>
1227
1228         * emit-x86.c (arch_compile_method): bug fix in static delegate
1229         Invoke code.
1230
1231 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
1232
1233         * jit.c (mono_analyze_stack): do a LDIND after NEWOBJ for value types.
1234
1235 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
1236
1237         * jit.c (mono_analyze_stack): impl. CEE_SIZEOF
1238
1239 2002-02-13  Miguel de Icaza  <miguel@ximian.com>
1240
1241         * jit.c (arch_allocate_var): Only assert that the alignment is
1242         at least 32-bits aligned, not always 32-bits aligned (for I8 for example).
1243
1244 Mon Feb 11 11:20:57 CET 2002 Paolo Molaro <lupus@ximian.com>
1245
1246         * x86.brg: fix invalid cast check in unbox. Pack MBTree structure.
1247
1248 Sun Feb 10 12:54:05 CET 2002 Paolo Molaro <lupus@ximian.com>
1249
1250         * emit-x86.c: make x86_magic_trampoline() handle call instructions
1251         with an imm8 displacement. x86.brg not yet changed to take advantage
1252         of it.
1253
1254 Sun Feb 10 11:47:30 CET 2002 Paolo Molaro <lupus@ximian.com>
1255
1256         * jit.c: use opcode info from libmetadata to do flow analysis
1257         and simplify code.
1258
1259 2002-02-06  Dietmar Maurer  <dietmar@ximian.com>
1260
1261         * jit.c (MAKE_LDELEM, MAKE_STELEM): added bound checking 
1262
1263 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
1264
1265         * x86.brg: use element_class for type check
1266
1267 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
1268
1269         * jit.c (main): impl. __array_Address icall
1270
1271         * mempool.c (mono_mempool_alloc): handle large block allocation
1272
1273 2002-02-01  Dietmar Maurer  <dietmar@ximian.com>
1274
1275         * x86.brg: impl. SHL/SHR/CLT for 64 bit values
1276
1277 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
1278
1279         * x86.brg: impl. CEQ(lreg,lreg)
1280
1281         * jit.c (mono_analyze_stack): impl. LDVIRTFTN
1282         (mono_analyze_stack): handle MONO_TABLE_MEMBERREF in LDSFLD/STSFLD
1283
1284         * x86.brg: removed some dead code.
1285
1286 2002-01-18  Dietmar Maurer  <dietmar@ximian.com>
1287
1288         * jit.c (arch_allocate_var): fixed alignment bugs
1289
1290 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
1291
1292         * jit.c (mono_analyze_stack): use LDIND_REF/STIND_REF
1293
1294 2002-01-16  Dietmar Maurer  <dietmar@ximian.com>
1295
1296         * jit.c (main): install the trampoline before we start to create
1297         objects.
1298
1299         * x86.brg: impl. CLT_UN, CGT_UN
1300
1301         * emit-x86.c (leave_method): added check for null object
1302         (enter_method): consider byref arguments
1303
1304 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
1305
1306         * x86.brg: bug fix in CONV_OVF_I1_UN
1307         impl. ADD_OVF, MUL_OVF
1308         impl. ADD_OVF_UN, SUB_OVF, SUB_OVF_UN
1309         (SUB (lreg, lreg)): bug fix - use SBB instead of SUB
1310         (EMIT_COND_EXCEPTION): added signed flag
1311
1312 Fri Jan 11 20:06:22 CET 2002 Paolo Molaro <lupus@ximian.com>
1313
1314         * jit.c: implement stloc, ldloc, ldloca.
1315
1316 2002-01-11  Dietmar Maurer  <dietmar@ximian.com>
1317
1318         * jit.c (mono_analyze_stack): fixed calculation of last_instr
1319
1320         * x86.brg (LDLEN): emit null_reference exception
1321         (BLE_UN): bug fix. 
1322         (RET, RET_VOID, RET_OBJ, ...) fixed jump to epilog
1323
1324 2002-01-04  Dietmar Maurer  <dietmar@ximian.com>
1325
1326         * x86.brg: bug fix in CASTCLASS
1327
1328 2001-12-21  Dietmar Maurer  <dietmar@ximian.com>
1329
1330         * jit.c (mono_analyze_stack): spill MUL to avoid problem with
1331         register allocation.
1332
1333         * emit-x86.c (arch_compile_method): fixed static delegate bug
1334
1335 2001-12-16  Miguel de Icaza  <miguel@ximian.com>
1336
1337         * x86.brg, jit.c: Split up the nodes that we used to share on
1338         CONV_OVF.  They were sharing the nodes because they are the same
1339         on 32-bit machines, but on 64-bit machines you need different
1340         code for them.
1341
1342 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
1343
1344         * x86.brg: removed prerequisite that (tree->left->reg1 <
1345         tree->right->reg1) to make register allocation easier.
1346
1347 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
1348
1349         * emit-x86.c (arch_handle_exception): new code to handle
1350         exceptions inside unmanaged code.
1351
1352         * x86.brg: impl. SAVE_LMF, RESTORE_LMF, pass implizit valuetype
1353         address as first argument.
1354
1355 2001-12-15  Dietmar Maurer  <dietmar@ximian.com>
1356
1357         * x86.brg: pass exceptions on the stack
1358
1359         * jit.h (ISSTRUCT): new macro to check for real value types
1360         (return false for enum types). 
1361
1362 2001-12-11  Dietmar Maurer  <dietmar@ximian.com>
1363
1364         * x86.brg: use position indepentent code if possible. 
1365
1366         * x86.brg (EMIT_COND_EXCEPTION): new macro.
1367
1368         * emit-x86.c (mono_emit_cfg): impl. variable code buffer size
1369
1370 2001-12-10  Dietmar Maurer  <dietmar@ximian.com>
1371
1372         * jit.c (mono_analyze_flow): use g_malloc0 o allocate large bcinfo
1373         blocks.
1374         (mono_analyze_flow): use g_malloc0 o allocate large bblocks array.
1375
1376         * x86.brg (stmt): added opt. for STIND_R4/STIND_R8
1377
1378 2001-12-07  Dietmar Maurer  <dietmar@ximian.com>
1379
1380         * jit.c (mono_allocate_intvar): bug fix.
1381
1382         * emit-x86.c (get_unbox_trampoline): impl.
1383
1384         * jit.c (mono_analyze_stack): impl STOBJ, LEAVE
1385
1386 2001-12-06  Dietmar Maurer  <dietmar@ximian.com>
1387
1388         * x86.brg: raise exceptions.
1389
1390 2001-12-05  Dietmar Maurer  <dietmar@ximian.com>
1391
1392         * x86.brg: impl. CEQ for freg, NEWSTRUCT now allocates valuetypes on
1393         the stack. 
1394
1395 2001-12-06  Miguel de Icaza  <miguel@ximian.com>
1396
1397         * jit.c (mono_analyze_stack), x86.brg: Implement CONV.OVF.I1,
1398         CONV.OVF.I4, CONV.OVF.I1.UN, CONV.OVF.U1, CONV.OVF.U1.UN,
1399         CONV.OVF.I2.UN, CONV.OVF.I8.UN
1400
1401 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
1402
1403         * x86.brg: impl. UNBOX, NEWSTRUCT, removed VTYPE, bug fixes,
1404         removed the locaddr nonterminal, reimplemented value types
1405         
1406         * jit.c: reimplemented value type support, better support for
1407         enumeration types. 
1408
1409 2001-12-03  Miguel de Icaza  <miguel@ximian.com>
1410
1411         * x86.brg, jit.c: Implement conv.ovf.u4, conv.ovf.u2, conv.ovf.i2,
1412         conv.ovf.u8 
1413
1414 Mon Dec 3 17:16:36 CET 2001 Paolo Molaro <lupus@ximian.com>
1415
1416         * jit.c: call mono_init() after registering internal calls.
1417
1418 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
1419
1420         * emit-x86.c (tree_preallocate_regs): improved register allocation
1421
1422         * x86.brg: impl. ISINST, CASTCLASS
1423
1424 Fri Nov 30 12:02:24 CET 2001 Paolo Molaro <lupus@ximian.com>
1425
1426         * x86.brg: rearrange fields to reduce struct size.
1427         * jit.c: use signature->param_count, not signature->params_size.
1428         * debug.c: off-by-one error fix.
1429
1430 2001-11-29  Radek Doulik  <rodo@ximian.com>
1431
1432         * Makefile.am: build mono only for X86 architecture, compilation
1433         fails for ppc now because of accessing registers in sigcontext
1434         structure
1435
1436 2001-11-29  Dietmar Maurer  <dietmar@ximian.com>
1437
1438         * jit.c (mono_analyze_stack): bug fix in DUP
1439
1440 Thu Nov 29 12:32:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1441
1442         * debug.c: fix type handling. Position function position at start of
1443         IL code. Output more fine-grained stepping information.
1444
1445 2001-11-28  Dietmar Maurer  <dietmar@ximian.com>
1446
1447         * x86.brg (LDIND_I1, LDIND_I2): use x86_widen_ instead of x86_mov_
1448
1449         * jit.c (mono_analyze_stack): record the cli_address for later use
1450         with gdb.
1451         (sigsegv_signal_handler): translate sigsegv into "Internal error"
1452         exception.
1453
1454 Tue Nov 27 16:32:41 CET 2001 Paolo Molaro <lupus@ximian.com>
1455
1456         * debug.c, debug.h: added support for generating stabs.
1457         Stabs can be compiled with as and the resulting object file can be
1458         loaded in a gdb session with add-symbol-file object.o.
1459         * jit.c, jit.h: add --stabs and --debug command line arguments. Keep track
1460         where locals and arguments are stored in the stack. Add support for
1461         passing command line arguments to CLR programs.
1462         * emit-x86.c: insert a breakpoint at method invocation if needed.
1463
1464 2001-11-27  Dietmar Maurer  <dietmar@ximian.com>
1465
1466         * jit.c: exception support
1467
1468         * emit-x86.c (arch_emit_epilogue): bug fix: restore the regs in
1469         the right order.
1470
1471 2001-11-26  Dick Porter  <dick@ximian.com>
1472
1473         * Makefile.am (mono_LDADD): Add io-layer library
1474
1475 2001-11-19  Dietmar Maurer  <dietmar@ximian.com>
1476
1477         * jit.c (mono_analyze_stack): impl. LDFTN
1478         (MAKE_SPILLED_BI_ALU): always spill DIV/REM results to memory to
1479         make register allocation easier on x86
1480
1481         * emit-x86.c (enter_method): more debugging output for Strings
1482         (arch_compile_method): added delegate support
1483         (arch_compile_method): align EBP to 8 byte boundary
1484
1485 Mon Nov 19 11:36:22 CET 2001 Paolo Molaro <lupus@ximian.com>
1486
1487         * jit.c: use mono_install_trampoline (), instead of exporting
1488         a function to a lower-level library.
1489
1490 2001-11-16  Dietmar Maurer  <dietmar@ximian.com>
1491
1492         * x86.brg (STRING_ARG): impl. a way to marshal strings. This
1493         will be extensible to handle all possible kinds of marshalling
1494         requirements. 
1495
1496         * jit.c (map_call_type): added MB_TERM_CALL_VOID
1497         (mono_analyze_stack): impl. LDELEMA, reimplemented CALL
1498         instructions to handle this arguments more effectively.
1499
1500 2001-11-15  Dietmar Maurer  <dietmar@ximian.com>
1501
1502         * Makefile.am (mono_SOURCES): renamed testjit to mono
1503
1504         * x86.brg: added debugging support 
1505
1506         * testjit.c: added support for value types, CFG improvements
1507
1508         * emit-x86.c (enter_method): handle value types
1509         (tree_allocate_regs): impl. a better way to handle chain rules
1510
1511 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
1512
1513         * x86.brg (INITOBJ): bug fix: initialize data before use,
1514         simplified the code.
1515
1516 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
1517
1518         * testjit.c (mono_analyze_stack): Remove compiler warning by
1519         testing against NULL.
1520
1521 2001-11-09  Dick Porter  <dick@ximian.com>
1522
1523         * Makefile.am (testjit_LDADD): Don't need THREAD_LIBS any more
1524
1525 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
1526
1527         * testjit.c (mono_analyze_stack): new BOX impl.
1528
1529         * x86.brg: implemented INITOBJ
1530
1531         * testjit.c (mono_analyze_stack): finished array support
1532         (mono_analyze_stack): reimplemented DUP instruction
1533
1534 2001-11-08  Dietmar Maurer  <dietmar@ximian.com>
1535
1536         * testjit.c (MAKE_STELEM, MAKE_LDELEM): we build a tree which
1537         represents the address of the element. This way we can emit highly
1538         optimized x86 instructions to access elements (using base+index+offset
1539         adressing mode)
1540
1541 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
1542
1543         * mempool.c: Include string.h to kill warning.
1544
1545         * testjit.c: Add typecast to kill warning.
1546
1547         * x86.brg: Include string.h to eliminate warning.
1548
1549         * emit-x86.c (tree_allocate_regs): Fix arguments to g_warning to
1550         kill warning.
1551
1552 2001-11-07  Dietmar Maurer  <dietmar@ximian.com>
1553
1554         * emit-x86.c (enter_method): print out all method arguments
1555         (x86_magic_trampoline): impl.
1556         (arch_create_simple_jit_trampoline): we use different trampolines
1557         for static methods (no need to write the address back into to
1558         vtable).
1559
1560 2001-11-06  Dietmar Maurer  <dietmar@ximian.com>
1561
1562         * emit-x86.c (arch_create_jit_trampoline): optimised trampoline to
1563         use less the 16 bytes.
1564
1565         * x86.brg: code cleanup
1566
1567 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
1568
1569         * testjit.c: bug fixes.
1570
1571         * emit-x86.c (leave_method): print result values
1572
1573 2001-11-03  Dietmar Maurer  <dietmar@ximian.com>
1574
1575         * emit-x86.c (enter_method): new debugging code
1576         (leave_method): new debbuging code, this functions are called
1577         when you use the new option --trace-calls
1578
1579 2001-11-02  Dietmar Maurer  <dietmar@ximian.com>
1580
1581         * testjit.c: impl. STELEM_XX, STELEM_XX
1582
1583         * x86.brg: impl. LDLEN, LDELEMA
1584         
1585
1586 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
1587
1588         * x86.brg: added some experimental code for CALL
1589         instructions - still not found the optimal way to do it.
1590
1591         * testjit.c (map_stind_type): add support for value types with
1592         a size of 1, 2 or 4 bytes, implemented CEE_UNBOX, CEE_LDOBJ,
1593         CEE_LDSTR, CEE_LDFLD, CEE_LDFLDA, CEE_STFLD, CEE_NEWOBJ, CEE_CEQ
1594         (ctree_create_newobj): impl.
1595         
1596
1597         * emit-x86.c (tree_allocate_regs): removed allocation code for
1598         addr nonterminal.
1599         (get_address): use a simple, but bug free search instead of the
1600         buggy binary search.
1601
1602 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
1603
1604         * testjit.c: support virtual functions
1605
1606         * x86.brg: support different addressing modes for calls
1607
1608 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
1609
1610         * testjit.c: impl. STFLD
1611
1612 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
1613
1614         * x86.brg: impl. CEQ
1615
1616 2001-10-04  Dick Porter  <dick@ximian.com>
1617
1618         * testjit.c:
1619         * emit-x86.c: include mono-endian.h not endian.h
1620
1621 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
1622
1623         * testjit.c (ctree_create_dup): really duplicate the tree.
1624         attach the arguments to the CALL node. Added a new macro to
1625         make argument order configurable (ARCH_ARGS_RIGHT_TO_LEFT).
1626
1627 2001-10-01  Dietmar Maurer  <dietmar@ximian.com>
1628
1629         * interp.brg: the burm based interpreter: added the file as example.
1630
1631 2001-09-27  Dietmar Maurer  <dietmar@ximian.com>
1632
1633         * x86.brg: cleanup
1634
1635         * testjit.c: impl. LDIND/STIND/LDLOCA, use g_malloc to alloc static
1636         data.
1637         (map_stind_type): support enum types
1638         (map_ldind_type): support enum types
1639
1640         * emit-x86.c (tree_allocate_regs): added code to support
1641         register allocation for addressing modes trees.
1642         (tree_emit): bug fix: we have to emit all mono_burg_functins. The
1643         previous impl. did not work for chain rules.
1644         (compute_branches): support for SWITCH statements
1645
1646         * x86.brg: added rules to model x86 addressing modes
1647
1648 2001-09-26  Dietmar Maurer  <dietmar@ximian.com>
1649
1650         * emit-x86.c (compute_branches): implemented SWITCH
1651
1652         * testjit.c (mono_create_forest): implemented LDIND/STIND opcodes
1653         (map_ldind_type): add enumeration types.
1654         (map_stind_type): add enumeration types.
1655
1656         * emit-x86.c (arch_compile_method): more documentation.
1657
1658         * testjit.c: moved the architecture specific things to emit-x86.c
1659         and x86.brg. Added more documentation. code cleanup.
1660
1661 2001-09-25  Dietmar Maurer  <dietmar@ximian.com>
1662
1663         * x86.brg: we now have different types of addresses: ADDR_L for local
1664         values, ADDR_A for arguments and ADDR_G for global addresses. We
1665         also use LDIND_XX token to load values from a specific address
1666         instead of LDLOC/STLOC. 
1667
1668         * testjit.c: use the new adressing scheme everywhere:
1669         LDIND _XX (ADDR_X), and STIND_XX (ADDR_X, tree)  
1670
1671 2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
1672
1673         * testjit.c (main): fix bug in parameter parsing
1674
1675         * x86.brg: impl. more opcodes
1676
1677 2001-09-23  Dick Porter  <dick@ximian.com>
1678
1679         * Makefile.am (testjit_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
1680
1681 2001-09-23  Dietmar Maurer  <dietmar@ximian.com>
1682
1683         * testjit.c: use the memory pool to avoid memory leaks
1684
1685 2001-09-22  Dietmar Maurer  <dietmar@ximian.com>
1686
1687         * x86.brg: increment the stack pointer after function calls
1688
1689 2001-09-21  Dick Porter  <dick@ximian.com>
1690
1691         * Makefile.am (testjit_LDADD): Added PTHREAD_LIBS to the link line
1692
1693 2001-09-21  Dietmar Maurer  <dietmar@ximian.com>
1694
1695         * x86.brg: implemented long MUL/DIV
1696         (MB_OPT_LEVEL): define optimisation level macro
1697
1698         * testjit.c (tree_allocate_regs): added a way to prevent EDX usage
1699         for operations like idiv. it is also possible to assign specific registers.
1700
1701 2001-09-20  Dietmar Maurer  <dietmar@ximian.com>
1702
1703         * x86.brg: added basic support for long
1704
1705         * testjit.c (mono_compile_method): implemented POP
1706
1707 2001-09-19  Miguel de Icaza  <miguel@ximian.com>
1708
1709         * testjit.c (usage): Added a couple of more usage options.
1710
1711 2001-09-19  Dietmar Maurer  <dietmar@ximian.com>
1712
1713         * x86.brg: added more floating point grammar 
1714
1715         * testjit.c (mono_compile_method): make local offsets negative
1716
1717         * x86.brg: added some floating point trees
1718
1719         * testjit.c (mono_compile_method): arguments on the runtime 
1720         stack are at least 4 bytes
1721
1722         * x86.brg: partly implemented 8,16 bit integers
1723
1724         * testjit.c (get_address): mark basic blocks
1725
1726 2001-09-18  Dietmar Maurer  <dietmar@ximian.com>
1727
1728         * x86.brg: added some rules to optimize code
1729
1730         * testjit.c (get_address): use a binary search to get the address
1731         (main): added an option to debug the jit (-d)
1732
1733 Tue Sep 18 13:19:16 CEST 2001 Paolo Molaro <lupus@ximian.com>
1734
1735         * testjit.c: better/faster align code. Handle ldloc.s and stloc.s.
1736
1737 2001-09-17  Miguel de Icaza  <miguel@ximian.com>
1738
1739         * testjit.c (mono_compile_method): Provide better error reporting.
1740
1741 2001-09-17  Dietmar Maurer  <dietmar@ximian.com>
1742
1743         * testjit.c (tree_get_address): impl. to fix address bug
1744         (tree_get_address): make sure that we can only jump to the first
1745         instruction of a tree.
1746
1747         * x86.brg: emit real code for calls
1748
1749         * testjit.c (create_jit_trampoline): creates a function to trigger jit
1750         compilation.
1751         (mono_compile_method): reversed argument order
1752
1753 2001-09-15  Dietmar Maurer  <dietmar@ximian.com>
1754
1755         * x86.brg (stmt): don't emit unnecessary register moves
1756
1757         * testjit.c (tree_allocate_regs): free registers earlier
1758
1759 2001-09-14  Dietmar Maurer  <dietmar@ximian.com>
1760
1761         * x86.brg: branch addresses are now resolved
1762
1763         * testjit.c (compute_branches): compute address of branches
1764
1765         * x86.brg: emit real x86 instructions
1766
1767         * testjit.c: call objdump to disassemble the output
1768
1769 2001-09-13  Dietmar Maurer  <dietmar@ximian.com>
1770
1771         * x86.brg: use the right offsets to access local variables
1772         and arguments.
1773
1774         * emit-x86.c: only save/restore callee saved registers if they are
1775         really modified.
1776
1777         * testjit.c (tree_allocate_regs): use the new MonoRegSet to
1778         allocate registers.
1779         (mono_compile_method): changed the tree for mothod calls
1780
1781         * regset.h: impl.
1782         
1783         * regset.c: impl.
1784         
1785
1786 2001-09-10  Miguel de Icaza  <miguel@ximian.com>
1787
1788         * x86.brg: Use Unix assembly syntax.
1789
1790         * emit-x86.c: support code, should be moved
1791
1792         * testjit.c: Use GPtrArrays instead of GLists, as those are very
1793         inefficient at appends.
1794
1795         * Renamed `create_new_leave' to `create_new_leaf'
1796
1797         
1798