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