* x86.brg (LDLEN, UNBOX): removed unnecessary NULL check.
[mono.git] / mono / jit / ChangeLog
1 2002-04-29  Dietmar Maurer  <dietmar@ximian.com>
2
3         * x86.brg (LDLEN, UNBOX): removed unnecessary NULL check.  
4
5         * exception.c: included the Freebsd patch from Sandro Tolaini
6         <sandro@focuseek.com>
7
8 Mon Apr 29 15:18:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9
10         * mono.c, jit.c: use mono_runtime_run_main ().
11
12 2002-04-29  Dietmar Maurer  <dietmar@ximian.com>
13
14         * jit.c (mono_analyze_stack): dont call methods on Object with
15         METHOD_ATTRIBUTE_FINAL directly because it breaks remoting.
16
17         * x86.brg: added more CONV_U rules
18
19         * jit.c (mono_analyze_stack): avoid recursive call of virtual
20         methods: fixes Bug #23778 
21         (mono_analyze_stack): emit right CONV_UX opcodes: fixes bug 23547
22
23         * exception.c (arch_handle_exception): only g_assert(cleanup) if
24         we really need it.
25
26 2002-04-27      Patrik Torstensson <patrik.torstensson@intel.com>
27
28         * x86.brg: fixed bug in CONV_I8 (invalid stack correction)
29
30 2002-04-27  Martin Baulig  <martin@gnome.org>
31
32         * jit.h (MonoFlowGrap): Renamed `epilogue_begin' to `epilogue_end',
33         there's already `epilog' so we don't need `epilogue_begin'.
34
35         * debug.c (mono_debug_add_method): Use `cfg->epilogue_end' to get the
36         size of the method's code.
37
38 2002-04-25  Martin Baulig  <martin@gnome.org>
39
40         * debug-dwarf2.c (dwarf2_write_string_type): Reflect latest MonoString
41         changes.
42
43 2002-04-25  Dietmar Maurer  <dietmar@ximian.com>
44
45         * x86.brg: enable stmt: STIND_I4 (addr, coni4) again,
46         added CONV_OVF_I4 (fix bug #23808)
47
48 2002-04-23  Dietmar Maurer  <dietmar@ximian.com>
49
50         * x86.brg: code cleanup - use x86_patch ()
51
52         * jit.c (mono_analyze_stack): only use MB_TERM_CHECKTHIS when necessary
53         (mono_analyze_stack): don't store constants in temp. variables for CEE_DUP
54
55         * x86.brg (stmt): removed stmt: STIND_I4 (addr, coni4) rule
56         because it slows down performance.
57
58 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
59
60         * emit-x86.c: enter_method handles 8-byte aligned parameters.
61
62 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
63
64         * jit,h, jit.c, x86.brg: NEWOBJ_SPEC and NEWARR_SPEC terminals for
65         non-shared code.
66
67 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
68
69         * jit.c (check_inlining): added statistics about inlineing
70
71         * mono.c (usage): new switch --noinline to disable inlining
72
73         * jit.c (mono_analyze_stack): added a check for (this!=NULL) if we
74         inline methods (to keep semantics)
75
76         * x86.brg: added constant folding for inegers 
77
78         * emit-x86.c (tree_allocate_regs): handle the special case when
79         chain rules need a register.
80
81 2002-04-19  Dietmar Maurer  <dietmar@ximian.com>
82
83         * invoke.c (arch_create_native_wrapper): do not save LMF for Strings
84
85         * jit.c (check_inlining): better inlining support
86
87 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
88         
89         * x86.brg: LDLEN uses max_length instead of bounds[0]
90         * jit.c: support for new szarray format
91
92 2002-04-18  Dietmar Maurer  <dietmar@ximian.com>
93
94         * jit.c (check_inlining): added inlining support
95
96 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
97
98         * x86.brg: optimized version of castclass and isinst
99
100 Wed Apr 17 12:34:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
101
102         * emit-x86.c, invoke.c: track time spent compiling.
103
104 Wed Apr 17 10:58:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
105
106         * emit-x86.c, invoke.c: call profile callbacks if needed.
107         * jit.c, jit.h, mono.c: add --profile command line option.
108
109 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
110
111         * jit.h: included mono/io-layer/io-layer.h to avoid breaking
112         compilation under windows when upgrading mingw and w32api to 
113         version 1.3 (thanks Dick!).
114
115 2002-04-15  Patrik Torstensson <patrik.torstensson@labs2.com>
116
117         * jit.c: changed the array icalls to use full names
118
119 2002-04-15  Dietmar Maurer  <dietmar@ximian.com>
120
121         * x86.brg: check the this pointer before calling
122         non-virtual functions
123
124         * emit-x86.c (arch_emit_prologue): initialize local vars.
125
126         * x86.brg: removed incredible clumsy code
127
128 2002-04-13  Martin Baulig  <martin@gnome.org>
129
130         * debug-dwarf2.c (dwarf2_write_variable_location): New static func to write
131         the location of a variable.
132         (dwarf2_write_variable, dwarf2_write_parameter): Take a MonoDebugVarInfo
133         instead of a stack offset and use dwarf2_write_variable_location() to write
134         the location.
135
136 2002-04-13  Martin Baulig  <martin@gnome.org>
137
138         * debug.c, debug-stabs.c, debug-dwarf2.c: Reflect latest debug-symfile.h
139         API changes.
140
141 2002-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
142
143         * Makefile.am: use of the new '-s' option in monoburg.
144
145 2002-04-12  Martin Baulig  <martin@gnome.org>
146
147         * debug-dwarf2.c (dwarf2_write_variable): Emit info about the variable's
148         lifetime.
149
150 2002-04-10  Sergey Chaban <serge@wildwestsoftware.com>
151         * win32-exception: added Win32 SEH exception filter that translates
152         CONTEXT to sigcontext;
153
154         * jit.c: added Win32 SEH init/reset calls, compute sigcontext address
155         in a platfrom-dependent way;
156
157         * jit.h: use win32-exception instead of signal if PLATFORM_WIN32
158         and avoid io-layer includes;
159
160         * delegate.c: do not include io-layer stuff if PLATFORM_WIN32
161         is defined;
162
163 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
164
165         * delegate.c (arch_end_invoke): restore output arguments
166
167 Mon Apr 8 17:16:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
168
169         * jit.c: call mono_runtime_init ().
170
171 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
172
173         * jit.c (mono_jit_cleanup): added more statistics
174
175         * invoke.c (arch_create_native_wrapper): special case EndInvoke -
176         we need to pass the MonoMethod pointer as first argument.
177
178         * delegate.c (mono_async_invoke): notify all listeners, not only a
179         single one.
180         (arch_end_invoke): we now pass a MonoMethod as first parameter and
181         use arch_method_call_message_new() to access the stack.
182         (arch_end_invoke): wait until we really finished processing
183         (async_invoke_abort): notify all listeners, not only a
184         single one.
185
186 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
187
188         * message.c (arch_return_value): impl.
189         (arch_method_return_message_restore): consider delegate BeginInvoke
190
191         * jit.c: removed jit_exec_main()
192
193         * delegate.c (arch_begin_invoke): use the message builder to make
194         it architecture independent - still needs more cleanup.
195
196 2002-04-05  Dietmar Maurer  <dietmar@ximian.com>
197
198         * delegate.c (mono_delegate_ctor): support for transparent proxy
199
200         * x86.brg (freg): bug fix in CONV_R* opcodes
201
202 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
203
204         * message.c: added documentation
205
206 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
207
208         * mono.c (main): use --trace instead of --trace-calls
209
210         * x86.brg: impl. REMOTE_STIND_XX
211
212         * message.c (mono_store_remote_field): impl.
213
214 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
215
216         * x86.brg: impl. REMOTE_FIELD (load fields of remote objects)
217
218         * message.c (mono_load_remote_field): impl.
219
220         * jit.c (mono_analyze_stack): only call marshalbyref methods
221         through the vtable.
222         (mono_analyze_stack): consider marshalbyref objects in LDFLD
223
224 Fri Mar 29 16:00:27 CET 2002 Paolo Molaro <lupus@ximian.com>
225
226         * x86.brg: kill pointer arithmetric.
227
228 2002-03-28  Martin Baulig  <martin@gnome.org>
229
230         * jit.c (mono_debug_insert_breakpoint): New global variable.
231         (mono_debug_last_breakpoint_address): New global variable.
232
233         * emit-x86.c (arch_compile_method): If `mono_debug_insert_breakpoint' is
234         non-zero, insert a breakpoint; if it's positive, decrement it when done.
235         Set `mono_debug_last_breakpoint_address' to the address of the last inserted
236         breakpoint.
237
238         * debug.h: Provide external declaration of `mono_debug_insert_breakpoint' and
239         `mono_debug_last_breakpoint_address', also documented them here.
240
241 2002-03-28  Martin Baulig  <martin@gnome.org>
242
243         * debug-private.h (MonoDebugHandle): Renamed `format' to `default_format'.
244         (AssemblyDebugInfo): Added `format'.
245
246         * debug.c: Use the AssemblyDebugInfo's `format' field to determine the format,
247         this allows us choose the format on a per-assembly basis.
248         (mono_debug_open_assembly): When using MONO_DEBUG_FORMAT_DWARF2_PLUS, fall back
249         to MONO_DEBUG_FORMAT_DWARF2 if the symbol file does not exist, but the IL file
250         exists.
251         (debug_generate_method_lines): Generate correct IL offsets.
252
253 2002-03-28  Martin Baulig  <martin@gnome.org>
254
255         * jit.h (MonoFlowGraph): Added `prologue_end' and `epilogue_start' fields.
256
257         * emit-x86.c (arch_compile_method): Set prologue_end and epilogue_start.
258
259         * debug-private.h (DebugMethodInfo): Renamed `frame_start_offset' to
260         `prologue_end_offset', added `epilogue_begin_offset' and `last_line'.
261
262         * debug.c (debug_generate_method_lines): Don't return if we don't have line
263         numbers, we still need to generate the IL offsets here. Emit line numbers
264         for `prologue_end_offset' (the first line of actual code) and 
265         `epilogue_begin_offset' (the line of the method's closing brace).
266         Don't crash if cfg->bblocks [i].forest is NULL.
267         (mono_debug_add_method): Don't crash if we don't have line numbers.
268         Initialize the newly added fields.
269
270         * debug-stabs.c: Record first and last line, emit filename info at the
271         beginning of the stab file, gdb ignores the types otherwise.
272
273         * debug-dwarf2.c: Use the new prologue_end_offset instead of guessing it;
274         emit line number info for the first and last line.
275
276 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
277
278         * invoke.c (arch_create_delegate_trampoline): impl.
279
280 Thu Mar 28 11:58:53 CET 2002 Paolo Molaro <lupus@ximian.com>
281
282         * Makefile.am, mono.c, jit.h, jit.c: build the libmono library
283         with the jit runtime to easy embedding. main() is moved to mono.c, now.
284         * jit.c: use opcode names from libmetadata.
285         * debug.h, debug.c: constify char* argument.
286
287 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
288
289         * jit.c: catching SIGSEGV again, added proxy support
290
291 2002-03-21  Dietmar Maurer  <dietmar@ximian.com>
292
293         * delegate.c (mono_delegate_init): remove unused worker threads
294
295 2002-03-27  Mike Kestner <mkestner@speakeasy.net>
296
297         * delegate.c (arch_get_delegate_invoke): malloc a bigger area
298
299 Tue Mar 26 19:54:45 CET 2002 Paolo Molaro <lupus@ximian.com>
300
301         * jit.c: remove glib mem vtable code.
302
303 2002-03-26  Martin Baulig  <martin@gnome.org>
304
305         * debug-dwarf2.c (write_method_lines_dwarf2): Don't generate method
306         lines if we don't have line number information.
307         (write_method_dwarf2): Use `minfo->method_info.this_offset' instead
308         of hardcoding 8.
309
310         * debug-stabs.c (write_method_stabs): Don't generate method lines if
311         we don't have line number information. Use `minfo->method_info.this_offset'
312         instead of hardcoding 8.
313
314         * debug.c (debug_generate_method_lines): Don't crash if we don't have
315         line number information.
316         (mono_debug_open_assembly): Don't generate line numbers for
317         MONO_DEBUG_FORMAT_DWARF2_PLUS.
318         (mono_debug_add_method): Don't store the 'this' offset in `param_offsets',
319         but it in the new `this_offset' field.
320         
321 Mon Mar 25 13:03:35 CET 2002 Paolo Molaro <lupus@ximian.com>
322
323         * debug.c (debug_generate_method_lines): Use correct addresses for
324         record_il_offset().
325
326 Mon Mar 25 13:03:35 CET 2002 Paolo Molaro <lupus@ximian.com>
327
328         * jit.c: do not set the glib mem vtable anymore.
329         * Makefile.am: link to libmonoutils.
330
331 2002-03-25  Martin Baulig  <martin@gnome.org>
332
333         * debug.h (mono_debug_make_symbols): Documented this function.
334
335 2002-03-24  Martin Baulig  <martin@gnome.org>
336
337         * debug.c (mono_debug_add_method): Include the `this' offset in
338         the `minfo->method_info.param_offsets' array.
339
340 2002-03-23  Martin Baulig  <martin@gnome.org>
341
342         * x86.brg (lreg: CONV_I8 (reg)): X86_XOR modifies the flags, so we need
343         to do it before the X86_CMP.
344         (reg: CLT (lreg, lreg)): Use correct x86_branch8() targets.
345         (reg: CLT (lreg, lreg)): Likewise.
346         (reg: CLT_UN (lreg, lreg)): Likewise.
347         (reg: CLT_UN (lreg, lreg)): Likewise.
348         (reg: CGT (lreg, lreg)): Likewise.
349         (reg: CGT (lreg, lreg)): Likewise.
350         (reg: CGT_UN (lreg, lreg)): Likewise.
351         (reg: CGT_UN (lreg, lreg)): Likewise.
352
353 2002-03-23  Martin Baulig  <martin@gnome.org>
354
355         * debug-private.h (AssemblyDebugInfo): Added `_priv'.
356
357         * debug-dwarf2-plus.c
358         (mono_debug_open_assembly_dwarf2_plus): Open the symbol file here.
359         (mono_debug_close_assembly_dwarf2_plus): Close the symbol file here.
360         (mono_debug_write_assembly_dwarf2_plus): Only call
361         mono_debug_update_symbol_file() here.
362
363 Thu Mar 21 17:35:48 CET 2002 Paolo Molaro <lupus@ximian.com>
364
365         * jit.c: inter strings before executing a method.
366         Do not intern command line arguments anymore.
367
368 2002-03-21  Martin Baulig  <martin@gnome.org>
369
370         * debug.h (MonoDebugFormat): Added MONO_DEBUG_FORMAT_DWARF2_PLUS.
371
372         * debug-dwarf2-plus.c: This debugging format reads a symbol file which has
373         been created by MCS and fills in all machine dependent stuff.
374
375         * debug-private.h (DebugMethodInfo): Added `MonoDebugMethodInfo method_info',
376         removed everything which is already in MonoDebugMethodInfo.
377
378         * debug.c (debug_generate_method_lines): Generate the MonoILOffsetInfo array.
379         (mono_debug_make_symbols): Don't open the file or call as, this is done in the
380         backend code.
381
382         * jit.c (main): Added "--dwarf-plus" command line option to use the new
383         MONO_DEBUG_FORMAT_DWARF2_PLUS debugging format.
384
385 2002-03-21  Dietmar Maurer  <dietmar@ximian.com>
386
387         * jit.c (usage): new option to specify maximum number of worker threads
388         (mono_analyze_stack): avoid cyclic dependency in CEE_LDFTN
389
390         * delegate.c (async_invoke_abort): added support for asynchronous exceptions
391         (arch_get_async_invoke): notify listeners before we call the
392         asynchronous callback
393
394 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
395
396         * delegate.c (async_invoke_thread): support for domains
397         (async_invoke_thread): create workers only when needed
398
399 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
400
401         * delegate.c (async_invoke_thread): initial support for BeginInvoke/EndInvoke
402
403 2002-03-18  Dietmar Maurer  <dietmar@ximian.com>
404
405         * x86.brg: impl. lreg: XOR (lreg, lreg)
406         impl. REM (freg, freg)
407
408 2002-03-17  Martin Baulig  <martin@gnome.org>
409
410         * debug.c (mono_debug_open_assembly): Call mono_debug_get_type() on all
411         base types.
412
413         * debug-dwarf2.c: Added support for strings and arrays.
414
415 2002-03-17  Martin Baulig  <martin@gnome.org>
416
417         * debug.c (mono_debug_get_type): Recursively call this for all function members
418         of a class type.
419         (mono_debug_add_method): Don't mangle function names, this must be done by the
420         debugger backend if the debugging format needs mangled names.
421
422         * debug-dwarf2.c: Improved support for classes, added member functions.
423
424 2002-03-16  Martin Baulig  <martin@gnome.org>
425
426         * debug.c (mono_debug_get_type): Recursively call this for all members and
427         parent classes of a class type.
428
429         * debug-dwarf2.c: Added basic support for classes. Set source language to C++
430         since GDB doesn't like Java very much.
431
432 2002-03-16  Martin Baulig  <martin@gnome.org>
433
434         * debug-dwarf2.c: Added support for enums.
435
436 2002-03-15  Martin Baulig  <martin@gnome.org>
437
438         * debug.c (mono_debug_get_type): Recursively call this for all members
439         of a struct type.
440
441         * debug-dwarf2.c: Added support for structs.
442
443 2002-03-15  Dietmar Maurer  <dietmar@ximian.com>
444
445         * emit-x86.c (arch_create_jit_trampoline): adapt save/restore LMF
446         to new MonoLMF layout
447
448 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
449
450         * emit-x86.c (arch_create_native_wrapper): new code to generate
451         wrappers for calling native functions.
452         (arch_create_native_wrapper): free allocated strings
453         (arch_handle_exception): made mono_jit_info_table domain dependent
454
455 2002-03-14  Martin Baulig  <martin@gnome.org>
456
457         * debug.c (MonoDebugFormat): New public enums specifying which debugging
458         format to use.
459         (mono_debug_open_file): Added MonoDebugFormat argument.
460         (mono_debug_make_symbols): Don't take an argument to make it easier to call
461         this function from GDB. It's now safe to call this function multiple times;
462         it'll always write a complete debugging file.
463
464         * debug.c: Splitted this file into a general part which remains in this file
465         and the debugging format specific parts debug-stabs.c and debug-dwarf2.c.
466         All public functions now call a corresponding format specific function.
467
468         * debug.c: The following changes are private to debug.c:
469         (AssemblyDebugInfo, MonoDebugHandle): Moved declarations to debug-private.h.
470         (record_line_number, debug_generate_method_lines): New private functions.
471         (mono_debug_open_ass): Renamed to mono_debug_open_assembly; this function now
472         calls a debugging-format-specific function (mono_debug_open_assembly_stabs or
473         mono_debug_open_assembly_dwarf2).
474         (mono_debug_make_symbols): Calls mono_debug_write_assembly_stabs/dwarf2(). It's
475         now safe to call this function multiple times.
476         (mono_debug_get_type): New public function. This takes a `MonoClass *' and
477         returns an unique index for this type. It's used to ensure that we only write
478         each class once to the debugging file.
479         (mono_debug_add_method, mono_debug_add_type): Store all the data in an internal
480         data structure, but don't directly write to the debugging file. This is done
481         later from mono_debug_write_assembly().
482
483         * jit.c (main): Added "--dwarf" command line argument to generate DWARF 2
484         debugging output. Call mono_debug_close() on cleanup if necessary.
485
486 2002-03-14  Martin Baulig  <martin@gnome.org>
487
488         * debug-private.h: New private header file.
489
490         * debug-stabs.c: Added the stabs type generation stuff which was
491         previously in debug.c.
492
493         * debug-dwarf.c: Started to implement type support. We're currently
494         only writing this most basic types to the dwarf file, but this will
495         change soon.
496
497 2002-03-13  Martin Baulig  <martin@gnome.org>
498
499         * debug-stabs.c, debug-dwarf2.c: New files containing my new
500         debugging code. They're now in CVS, but not yet used anywhere.
501
502 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
503
504         * emit-x86.c (mono_delegate_ctor): use C impl. instead of x86_*
505         macros, included new delegate code from Daniel Stodden. 
506         
507         
508 Mon Mar 11 14:47:21 CET 2002 Paolo Molaro <lupus@ximian.com>
509
510         * jit.c: verify that corlib and runtime are in sync.
511
512 Mon Mar 11 11:30:56 CET 2002 Paolo Molaro <lupus@ximian.com>
513
514         * emit-x86.c, jit.c: use the debug-helpers facilities to
515         describe and match a method when debugging.
516
517 2002-03-10  Martin Baulig  <martin@gnome.org>
518
519         * emit-x86.c (arch_compile_method): When emitting stabs debugging
520         output, put a nop instruction at the start of all functions so that
521         the adresses won't change when using --debug.
522
523         * debug.c (mono_debug_add_method): `tree->cli_addr' is an offset into
524         the bytecode area, stabs needs a line number in the .il file. Use the
525         new info->moffsets to get the line number.
526         (AssemblyDebugInfo): Added `total_lines' and `moffsets' fields.
527         `moffsets' is an array of `total_lines' fields (total number of lines
528         in the .il file); for each line in the .il field, this array contains
529         the bytecode offset if it's an "IL_xxxx" line, -1 if it's the last line
530         of a method and 0 otherwise.
531         (debug_load_method_lines): Read the whole .il file and initialize the
532         info->moffsets field.
533
534 2002-03-09  Martin Baulig  <martin@gnome.org>
535
536         * x86.brg (DIV_UN): Clear EDX before performing the division and remove
537         the unnecessary CDQ instruction.
538
539 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
540
541         * jit.c (mono_analyze_stack): only load addresses of value types
542         on the runtime stack.
543
544 2002-03-07  Duncan Mak  <duncan@ximian.com>
545
546         * Makefile.am: A small patch fixing errors in vpath-based builds
547         (make clean failing to rerun monoburg due to BUILT_SOURCES usage),
548         committed for Daniel Stodden <stodden@in.tum.de>. 
549
550 Thu Mar 7 17:22:52 CET 2002 Paolo Molaro <lupus@ximian.com>
551
552         * jit.c: Boehm-GC enable.
553
554 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
555
556         * x86.brg (SAVE_LFM): bug fix: patch the saved IP because we
557         realloc that code sometimes!
558
559         * emit-x86.c (mono_compute_branches): support several types of
560         jump infos
561
562 2002-03-06  Dietmar Maurer  <dietmar@ximian.com>
563
564         * x86.brg: impl. MUL_OVF_UN (reg, reg)
565
566         * jit.c (mono_find_final_block): find correct finally handler.
567
568         * emit-x86.c (arch_create_jit_trampoline): bug fix: preserve
569         caller saved registers.  
570
571 2002-03-05  Dietmar Maurer  <dietmar@ximian.com>
572
573         * x86.brg: use x86_widen_reg for CONV opcodes
574
575 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
576
577         * jit.c (MAKE_SPILLED_BI_ALU): remove unnecessary assertions
578
579         * emit-x86.c (arch_handle_exception): big fix - dont use
580         uninitialized next_bp
581         (arch_compile_method): make the jit thread save
582         (x86_magic_trampoline): moved lock/unlock to x86_magic_trampoline
583         to avoid need of recursive mutexes
584
585         * x86.brg: use new mono_assert macros
586
587 2002-02-28  Dietmar Maurer  <dietmar@ximian.com>
588
589         * emit-x86.c (arch_create_jit_trampoline): save/restore LMF before
590         calling into unmanaged code (arch_compile_method).
591
592         * x86.brg: impl. CONV_I4 (freg) with correct rounding
593         (lreg): impl CALL_I8(INTF_ADDR)
594         impl. CONV_R_UN (reg)
595         bug fix im REM_UN
596
597 2002-02-27  Dietmar Maurer  <dietmar@ximian.com>
598
599         * emit-x86.c (arch_runtime_invoke): impl. runtime invoke for the jit.
600
601 2002-02-26  Dietmar Maurer  <dietmar@ximian.com>
602
603         * x86.brg: bug fix in CLT(lreg,lreg)
604         (reg): bug fix in CONV_OVF_I4(lreg)
605         (lreg): replaced x86_call_reg with x86_call_code
606
607         * emit-x86.c (mono_add_jump_info): impl.
608         (mono_compute_branches): patch real jump address (instead of
609         emitting code twice)
610
611 Tue Feb 26 11:56:03 CET 2002 Paolo Molaro <lupus@ximian.com>
612
613         * x86.brg: optimize cmp reg,0 -> test reg.
614
615 Sun Feb 24 13:58:34 CET 2002 Paolo Molaro <lupus@ximian.com>
616
617         * jit.h, jit.c, emit-x86.c: Added a few statistics counters
618         and the --stats command line option to print them.
619         Fixed memory leak in arch_compile_method () when a method's code is
620         found in the cache. Fix magic trampoline to deal with static calls.
621
622 2002-02-21  Dietmar Maurer  <dietmar@ximian.com>
623
624         * x86.brg: impl. SHR_UN for lreg, added new test, bug fix for BNE_UN 
625
626 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
627
628         * emit-x86.c (arch_compile_method): add shared code to mono_root_domain
629         (arch_create_jit_trampoline): cache trampoline code
630
631 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
632
633         * jit.c (mono_analyze_stack): optimize LDSFLD/STSFLD for domain
634         specific code.
635         (mono_analyze_stack): use MB_TERM_LDELEMA to perform bound check
636
637         * x86.brg: do not encode exception objects into the instruction
638         stream, because they are domain dependend. Use
639         arch_get_throw_exception_by_name() instead;
640
641 Mon Feb 18 15:51:40 CET 2002 Paolo Molaro <lupus@ximian.com>
642
643         * jit.c: intern command line arguments.
644
645 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
646
647         * jit.c (mono_analyze_stack): use the magic trampoline for all
648         calls (since we cant store the address of compiled code in
649         method->addr).
650         (mono_analyze_stack): imp. LDSTR for shared code
651
652         * emit-x86.c (x86_magic_trampoline): handle x86_call_code().
653         (arch_compile_method): add a cache for compiled methods to avoid
654         recompilation. dont use method->addr to store domain dependent
655         code address.
656
657 2002-02-15  Dietmar Maurer  <dietmar@ximian.com>
658
659         * x86.brg: impl. BLE,BGT for freg
660
661 Sat Feb 16 16:27:42 CET 2002 Paolo Molaro <lupus@ximian.com>
662
663         * emit-x86.c: handle unreachable code. Eliminate some unneeded
664         malloc() calls.
665         * jit.c: handle unreachable code. Move setting of mono_end_of_stack to
666         main(). Add --compile classname and --ncompile num command line
667         options to do performance evaluation of the jitter (and help
668         debugging).
669
670 2002-02-15  Dietmar Maurer  <dietmar@ximian.com>
671
672         * emit-x86.c (arch_compile_method): bug fix in static delegate
673         Invoke code.
674
675 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
676
677         * jit.c (mono_analyze_stack): do a LDIND after NEWOBJ for value types.
678
679 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
680
681         * jit.c (mono_analyze_stack): impl. CEE_SIZEOF
682
683 2002-02-13  Miguel de Icaza  <miguel@ximian.com>
684
685         * jit.c (arch_allocate_var): Only assert that the alignment is
686         at least 32-bits aligned, not always 32-bits aligned (for I8 for example).
687
688 Mon Feb 11 11:20:57 CET 2002 Paolo Molaro <lupus@ximian.com>
689
690         * x86.brg: fix invalid cast check in unbox. Pack MBTree structure.
691
692 Sun Feb 10 12:54:05 CET 2002 Paolo Molaro <lupus@ximian.com>
693
694         * emit-x86.c: make x86_magic_trampoline() handle call instructions
695         with an imm8 displacement. x86.brg not yet changed to take advantage
696         of it.
697
698 Sun Feb 10 11:47:30 CET 2002 Paolo Molaro <lupus@ximian.com>
699
700         * jit.c: use opcode info from libmetadata to do flow analysis
701         and simplify code.
702
703 2002-02-06  Dietmar Maurer  <dietmar@ximian.com>
704
705         * jit.c (MAKE_LDELEM, MAKE_STELEM): added bound checking 
706
707 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
708
709         * x86.brg: use element_class for type check
710
711 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
712
713         * jit.c (main): impl. __array_Address icall
714
715         * mempool.c (mono_mempool_alloc): handle large block allocation
716
717 2002-02-01  Dietmar Maurer  <dietmar@ximian.com>
718
719         * x86.brg: impl. SHL/SHR/CLT for 64 bit values
720
721 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
722
723         * x86.brg: impl. CEQ(lreg,lreg)
724
725         * jit.c (mono_analyze_stack): impl. LDVIRTFTN
726         (mono_analyze_stack): handle MONO_TABLE_MEMBERREF in LDSFLD/STSFLD
727
728         * x86.brg: removed some dead code.
729
730 2002-01-18  Dietmar Maurer  <dietmar@ximian.com>
731
732         * jit.c (arch_allocate_var): fixed alignment bugs
733
734 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
735
736         * jit.c (mono_analyze_stack): use LDIND_REF/STIND_REF
737
738 2002-01-16  Dietmar Maurer  <dietmar@ximian.com>
739
740         * jit.c (main): install the trampoline before we start to create
741         objects.
742
743         * x86.brg: impl. CLT_UN, CGT_UN
744
745         * emit-x86.c (leave_method): added check for null object
746         (enter_method): consider byref arguments
747
748 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
749
750         * x86.brg: bug fix in CONV_OVF_I1_UN
751         impl. ADD_OVF, MUL_OVF
752         impl. ADD_OVF_UN, SUB_OVF, SUB_OVF_UN
753         (SUB (lreg, lreg)): bug fix - use SBB instead of SUB
754         (EMIT_COND_EXCEPTION): added signed flag
755
756 Fri Jan 11 20:06:22 CET 2002 Paolo Molaro <lupus@ximian.com>
757
758         * jit.c: implement stloc, ldloc, ldloca.
759
760 2002-01-11  Dietmar Maurer  <dietmar@ximian.com>
761
762         * jit.c (mono_analyze_stack): fixed calculation of last_instr
763
764         * x86.brg (LDLEN): emit null_reference exception
765         (BLE_UN): bug fix. 
766         (RET, RET_VOID, RET_OBJ, ...) fixed jump to epilog
767
768 2002-01-04  Dietmar Maurer  <dietmar@ximian.com>
769
770         * x86.brg: bug fix in CASTCLASS
771
772 2001-12-21  Dietmar Maurer  <dietmar@ximian.com>
773
774         * jit.c (mono_analyze_stack): spill MUL to avoid problem with
775         register allocation.
776
777         * emit-x86.c (arch_compile_method): fixed static delegate bug
778
779 2001-12-16  Miguel de Icaza  <miguel@ximian.com>
780
781         * x86.brg, jit.c: Split up the nodes that we used to share on
782         CONV_OVF.  They were sharing the nodes because they are the same
783         on 32-bit machines, but on 64-bit machines you need different
784         code for them.
785
786 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
787
788         * x86.brg: removed prerequisite that (tree->left->reg1 <
789         tree->right->reg1) to make register allocation easier.
790
791 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
792
793         * emit-x86.c (arch_handle_exception): new code to handle
794         exceptions inside unmanaged code.
795
796         * x86.brg: impl. SAVE_LMF, RESTORE_LMF, pass implizit valuetype
797         address as first argument.
798
799 2001-12-15  Dietmar Maurer  <dietmar@ximian.com>
800
801         * x86.brg: pass exceptions on the stack
802
803         * jit.h (ISSTRUCT): new macro to check for real value types
804         (return false for enum types). 
805
806 2001-12-11  Dietmar Maurer  <dietmar@ximian.com>
807
808         * x86.brg: use position indepentent code if possible. 
809
810         * x86.brg (EMIT_COND_EXCEPTION): new macro.
811
812         * emit-x86.c (mono_emit_cfg): impl. variable code buffer size
813
814 2001-12-10  Dietmar Maurer  <dietmar@ximian.com>
815
816         * jit.c (mono_analyze_flow): use g_malloc0 o allocate large bcinfo
817         blocks.
818         (mono_analyze_flow): use g_malloc0 o allocate large bblocks array.
819
820         * x86.brg (stmt): added opt. for STIND_R4/STIND_R8
821
822 2001-12-07  Dietmar Maurer  <dietmar@ximian.com>
823
824         * jit.c (mono_allocate_intvar): bug fix.
825
826         * emit-x86.c (get_unbox_trampoline): impl.
827
828         * jit.c (mono_analyze_stack): impl STOBJ, LEAVE
829
830 2001-12-06  Dietmar Maurer  <dietmar@ximian.com>
831
832         * x86.brg: raise exceptions.
833
834 2001-12-05  Dietmar Maurer  <dietmar@ximian.com>
835
836         * x86.brg: impl. CEQ for freg, NEWSTRUCT now allocates valuetypes on
837         the stack. 
838
839 2001-12-06  Miguel de Icaza  <miguel@ximian.com>
840
841         * jit.c (mono_analyze_stack), x86.brg: Implement CONV.OVF.I1,
842         CONV.OVF.I4, CONV.OVF.I1.UN, CONV.OVF.U1, CONV.OVF.U1.UN,
843         CONV.OVF.I2.UN, CONV.OVF.I8.UN
844
845 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
846
847         * x86.brg: impl. UNBOX, NEWSTRUCT, removed VTYPE, bug fixes,
848         removed the locaddr nonterminal, reimplemented value types
849         
850         * jit.c: reimplemented value type support, better support for
851         enumeration types. 
852
853 2001-12-03  Miguel de Icaza  <miguel@ximian.com>
854
855         * x86.brg, jit.c: Implement conv.ovf.u4, conv.ovf.u2, conv.ovf.i2,
856         conv.ovf.u8 
857
858 Mon Dec 3 17:16:36 CET 2001 Paolo Molaro <lupus@ximian.com>
859
860         * jit.c: call mono_init() after registering internal calls.
861
862 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
863
864         * emit-x86.c (tree_preallocate_regs): improved register allocation
865
866         * x86.brg: impl. ISINST, CASTCLASS
867
868 Fri Nov 30 12:02:24 CET 2001 Paolo Molaro <lupus@ximian.com>
869
870         * x86.brg: rearrange fields to reduce struct size.
871         * jit.c: use signature->param_count, not signature->params_size.
872         * debug.c: off-by-one error fix.
873
874 2001-11-29  Radek Doulik  <rodo@ximian.com>
875
876         * Makefile.am: build mono only for X86 architecture, compilation
877         fails for ppc now because of accessing registers in sigcontext
878         structure
879
880 2001-11-29  Dietmar Maurer  <dietmar@ximian.com>
881
882         * jit.c (mono_analyze_stack): bug fix in DUP
883
884 Thu Nov 29 12:32:01 CET 2001 Paolo Molaro <lupus@ximian.com>
885
886         * debug.c: fix type handling. Position function position at start of
887         IL code. Output more fine-grained stepping information.
888
889 2001-11-28  Dietmar Maurer  <dietmar@ximian.com>
890
891         * x86.brg (LDIND_I1, LDIND_I2): use x86_widen_ instead of x86_mov_
892
893         * jit.c (mono_analyze_stack): record the cli_address for later use
894         with gdb.
895         (sigsegv_signal_handler): translate sigsegv into "Internal error"
896         exception.
897
898 Tue Nov 27 16:32:41 CET 2001 Paolo Molaro <lupus@ximian.com>
899
900         * debug.c, debug.h: added support for generating stabs.
901         Stabs can be compiled with as and the resulting object file can be
902         loaded in a gdb session with add-symbol-file object.o.
903         * jit.c, jit.h: add --stabs and --debug command line arguments. Keep track
904         where locals and arguments are stored in the stack. Add support for
905         passing command line arguments to CLR programs.
906         * emit-x86.c: insert a breakpoint at method invocation if needed.
907
908 2001-11-27  Dietmar Maurer  <dietmar@ximian.com>
909
910         * jit.c: exception support
911
912         * emit-x86.c (arch_emit_epilogue): bug fix: restore the regs in
913         the right order.
914
915 2001-11-26  Dick Porter  <dick@ximian.com>
916
917         * Makefile.am (mono_LDADD): Add io-layer library
918
919 2001-11-19  Dietmar Maurer  <dietmar@ximian.com>
920
921         * jit.c (mono_analyze_stack): impl. LDFTN
922         (MAKE_SPILLED_BI_ALU): always spill DIV/REM results to memory to
923         make register allocation easier on x86
924
925         * emit-x86.c (enter_method): more debugging output for Strings
926         (arch_compile_method): added delegate support
927         (arch_compile_method): align EBP to 8 byte boundary
928
929 Mon Nov 19 11:36:22 CET 2001 Paolo Molaro <lupus@ximian.com>
930
931         * jit.c: use mono_install_trampoline (), instead of exporting
932         a function to a lower-level library.
933
934 2001-11-16  Dietmar Maurer  <dietmar@ximian.com>
935
936         * x86.brg (STRING_ARG): impl. a way to marshal strings. This
937         will be extensible to handle all possible kinds of marshalling
938         requirements. 
939
940         * jit.c (map_call_type): added MB_TERM_CALL_VOID
941         (mono_analyze_stack): impl. LDELEMA, reimplemented CALL
942         instructions to handle this arguments more effectively.
943
944 2001-11-15  Dietmar Maurer  <dietmar@ximian.com>
945
946         * Makefile.am (mono_SOURCES): renamed testjit to mono
947
948         * x86.brg: added debugging support 
949
950         * testjit.c: added support for value types, CFG improvements
951
952         * emit-x86.c (enter_method): handle value types
953         (tree_allocate_regs): impl. a better way to handle chain rules
954
955 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
956
957         * x86.brg (INITOBJ): bug fix: initialize data before use,
958         simplified the code.
959
960 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
961
962         * testjit.c (mono_analyze_stack): Remove compiler warning by
963         testing against NULL.
964
965 2001-11-09  Dick Porter  <dick@ximian.com>
966
967         * Makefile.am (testjit_LDADD): Don't need THREAD_LIBS any more
968
969 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
970
971         * testjit.c (mono_analyze_stack): new BOX impl.
972
973         * x86.brg: implemented INITOBJ
974
975         * testjit.c (mono_analyze_stack): finished array support
976         (mono_analyze_stack): reimplemented DUP instruction
977
978 2001-11-08  Dietmar Maurer  <dietmar@ximian.com>
979
980         * testjit.c (MAKE_STELEM, MAKE_LDELEM): we build a tree which
981         represents the address of the element. This way we can emit highly
982         optimized x86 instructions to access elements (using base+index+offset
983         adressing mode)
984
985 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
986
987         * mempool.c: Include string.h to kill warning.
988
989         * testjit.c: Add typecast to kill warning.
990
991         * x86.brg: Include string.h to eliminate warning.
992
993         * emit-x86.c (tree_allocate_regs): Fix arguments to g_warning to
994         kill warning.
995
996 2001-11-07  Dietmar Maurer  <dietmar@ximian.com>
997
998         * emit-x86.c (enter_method): print out all method arguments
999         (x86_magic_trampoline): impl.
1000         (arch_create_simple_jit_trampoline): we use different trampolines
1001         for static methods (no need to write the address back into to
1002         vtable).
1003
1004 2001-11-06  Dietmar Maurer  <dietmar@ximian.com>
1005
1006         * emit-x86.c (arch_create_jit_trampoline): optimised trampoline to
1007         use less the 16 bytes.
1008
1009         * x86.brg: code cleanup
1010
1011 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
1012
1013         * testjit.c: bug fixes.
1014
1015         * emit-x86.c (leave_method): print result values
1016
1017 2001-11-03  Dietmar Maurer  <dietmar@ximian.com>
1018
1019         * emit-x86.c (enter_method): new debugging code
1020         (leave_method): new debbuging code, this functions are called
1021         when you use the new option --trace-calls
1022
1023 2001-11-02  Dietmar Maurer  <dietmar@ximian.com>
1024
1025         * testjit.c: impl. STELEM_XX, STELEM_XX
1026
1027         * x86.brg: impl. LDLEN, LDELEMA
1028         
1029
1030 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
1031
1032         * x86.brg: added some experimental code for CALL
1033         instructions - still not found the optimal way to do it.
1034
1035         * testjit.c (map_stind_type): add support for value types with
1036         a size of 1, 2 or 4 bytes, implemented CEE_UNBOX, CEE_LDOBJ,
1037         CEE_LDSTR, CEE_LDFLD, CEE_LDFLDA, CEE_STFLD, CEE_NEWOBJ, CEE_CEQ
1038         (ctree_create_newobj): impl.
1039         
1040
1041         * emit-x86.c (tree_allocate_regs): removed allocation code for
1042         addr nonterminal.
1043         (get_address): use a simple, but bug free search instead of the
1044         buggy binary search.
1045
1046 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
1047
1048         * testjit.c: support virtual functions
1049
1050         * x86.brg: support different addressing modes for calls
1051
1052 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
1053
1054         * testjit.c: impl. STFLD
1055
1056 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
1057
1058         * x86.brg: impl. CEQ
1059
1060 2001-10-04  Dick Porter  <dick@ximian.com>
1061
1062         * testjit.c:
1063         * emit-x86.c: include mono-endian.h not endian.h
1064
1065 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
1066
1067         * testjit.c (ctree_create_dup): really duplicate the tree.
1068         attach the arguments to the CALL node. Added a new macro to
1069         make argument order configurable (ARCH_ARGS_RIGHT_TO_LEFT).
1070
1071 2001-10-01  Dietmar Maurer  <dietmar@ximian.com>
1072
1073         * interp.brg: the burm based interpreter: added the file as example.
1074
1075 2001-09-27  Dietmar Maurer  <dietmar@ximian.com>
1076
1077         * x86.brg: cleanup
1078
1079         * testjit.c: impl. LDIND/STIND/LDLOCA, use g_malloc to alloc static
1080         data.
1081         (map_stind_type): support enum types
1082         (map_ldind_type): support enum types
1083
1084         * emit-x86.c (tree_allocate_regs): added code to support
1085         register allocation for addressing modes trees.
1086         (tree_emit): bug fix: we have to emit all mono_burg_functins. The
1087         previous impl. did not work for chain rules.
1088         (compute_branches): support for SWITCH statements
1089
1090         * x86.brg: added rules to model x86 addressing modes
1091
1092 2001-09-26  Dietmar Maurer  <dietmar@ximian.com>
1093
1094         * emit-x86.c (compute_branches): implemented SWITCH
1095
1096         * testjit.c (mono_create_forest): implemented LDIND/STIND opcodes
1097         (map_ldind_type): add enumeration types.
1098         (map_stind_type): add enumeration types.
1099
1100         * emit-x86.c (arch_compile_method): more documentation.
1101
1102         * testjit.c: moved the architecture specific things to emit-x86.c
1103         and x86.brg. Added more documentation. code cleanup.
1104
1105 2001-09-25  Dietmar Maurer  <dietmar@ximian.com>
1106
1107         * x86.brg: we now have different types of addresses: ADDR_L for local
1108         values, ADDR_A for arguments and ADDR_G for global addresses. We
1109         also use LDIND_XX token to load values from a specific address
1110         instead of LDLOC/STLOC. 
1111
1112         * testjit.c: use the new adressing scheme everywhere:
1113         LDIND _XX (ADDR_X), and STIND_XX (ADDR_X, tree)  
1114
1115 2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
1116
1117         * testjit.c (main): fix bug in parameter parsing
1118
1119         * x86.brg: impl. more opcodes
1120
1121 2001-09-23  Dick Porter  <dick@ximian.com>
1122
1123         * Makefile.am (testjit_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
1124
1125 2001-09-23  Dietmar Maurer  <dietmar@ximian.com>
1126
1127         * testjit.c: use the memory pool to avoid memory leaks
1128
1129 2001-09-22  Dietmar Maurer  <dietmar@ximian.com>
1130
1131         * x86.brg: increment the stack pointer after function calls
1132
1133 2001-09-21  Dick Porter  <dick@ximian.com>
1134
1135         * Makefile.am (testjit_LDADD): Added PTHREAD_LIBS to the link line
1136
1137 2001-09-21  Dietmar Maurer  <dietmar@ximian.com>
1138
1139         * x86.brg: implemented long MUL/DIV
1140         (MB_OPT_LEVEL): define optimisation level macro
1141
1142         * testjit.c (tree_allocate_regs): added a way to prevent EDX usage
1143         for operations like idiv. it is also possible to assign specific registers.
1144
1145 2001-09-20  Dietmar Maurer  <dietmar@ximian.com>
1146
1147         * x86.brg: added basic support for long
1148
1149         * testjit.c (mono_compile_method): implemented POP
1150
1151 2001-09-19  Miguel de Icaza  <miguel@ximian.com>
1152
1153         * testjit.c (usage): Added a couple of more usage options.
1154
1155 2001-09-19  Dietmar Maurer  <dietmar@ximian.com>
1156
1157         * x86.brg: added more floating point grammar 
1158
1159         * testjit.c (mono_compile_method): make local offsets negative
1160
1161         * x86.brg: added some floating point trees
1162
1163         * testjit.c (mono_compile_method): arguments on the runtime 
1164         stack are at least 4 bytes
1165
1166         * x86.brg: partly implemented 8,16 bit integers
1167
1168         * testjit.c (get_address): mark basic blocks
1169
1170 2001-09-18  Dietmar Maurer  <dietmar@ximian.com>
1171
1172         * x86.brg: added some rules to optimize code
1173
1174         * testjit.c (get_address): use a binary search to get the address
1175         (main): added an option to debug the jit (-d)
1176
1177 Tue Sep 18 13:19:16 CEST 2001 Paolo Molaro <lupus@ximian.com>
1178
1179         * testjit.c: better/faster align code. Handle ldloc.s and stloc.s.
1180
1181 2001-09-17  Miguel de Icaza  <miguel@ximian.com>
1182
1183         * testjit.c (mono_compile_method): Provide better error reporting.
1184
1185 2001-09-17  Dietmar Maurer  <dietmar@ximian.com>
1186
1187         * testjit.c (tree_get_address): impl. to fix address bug
1188         (tree_get_address): make sure that we can only jump to the first
1189         instruction of a tree.
1190
1191         * x86.brg: emit real code for calls
1192
1193         * testjit.c (create_jit_trampoline): creates a function to trigger jit
1194         compilation.
1195         (mono_compile_method): reversed argument order
1196
1197 2001-09-15  Dietmar Maurer  <dietmar@ximian.com>
1198
1199         * x86.brg (stmt): don't emit unnecessary register moves
1200
1201         * testjit.c (tree_allocate_regs): free registers earlier
1202
1203 2001-09-14  Dietmar Maurer  <dietmar@ximian.com>
1204
1205         * x86.brg: branch addresses are now resolved
1206
1207         * testjit.c (compute_branches): compute address of branches
1208
1209         * x86.brg: emit real x86 instructions
1210
1211         * testjit.c: call objdump to disassemble the output
1212
1213 2001-09-13  Dietmar Maurer  <dietmar@ximian.com>
1214
1215         * x86.brg: use the right offsets to access local variables
1216         and arguments.
1217
1218         * emit-x86.c: only save/restore callee saved registers if they are
1219         really modified.
1220
1221         * testjit.c (tree_allocate_regs): use the new MonoRegSet to
1222         allocate registers.
1223         (mono_compile_method): changed the tree for mothod calls
1224
1225         * regset.h: impl.
1226         
1227         * regset.c: impl.
1228         
1229
1230 2001-09-10  Miguel de Icaza  <miguel@ximian.com>
1231
1232         * x86.brg: Use Unix assembly syntax.
1233
1234         * emit-x86.c: support code, should be moved
1235
1236         * testjit.c: Use GPtrArrays instead of GLists, as those are very
1237         inefficient at appends.
1238
1239         * Renamed `create_new_leave' to `create_new_leaf'
1240
1241         
1242