1 2001-11-09 Miguel de Icaza <miguel@ximian.com>
3 * testjit.c (mono_analyze_stack): Remove compiler warning by
6 2001-11-09 Dick Porter <dick@ximian.com>
8 * Makefile.am (testjit_LDADD): Don't need THREAD_LIBS any more
10 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
12 * testjit.c (mono_analyze_stack): new BOX impl.
14 * x86.brg: implemented INITOBJ
16 * testjit.c (mono_analyze_stack): finished array support
17 (mono_analyze_stack): reimplemented DUP instruction
19 2001-11-08 Dietmar Maurer <dietmar@ximian.com>
21 * testjit.c (MAKE_STELEM, MAKE_LDELEM): we build a tree which
22 represents the address of the element. This way we can emit highly
23 optimized x86 instructions to access elements (using base+index+offset
26 2001-11-07 Miguel de Icaza <miguel@ximian.com>
28 * mempool.c: Include string.h to kill warning.
30 * testjit.c: Add typecast to kill warning.
32 * x86.brg: Include string.h to eliminate warning.
34 * emit-x86.c (tree_allocate_regs): Fix arguments to g_warning to
37 2001-11-07 Dietmar Maurer <dietmar@ximian.com>
39 * emit-x86.c (enter_method): print out all method arguments
40 (x86_magic_trampoline): impl.
41 (arch_create_simple_jit_trampoline): we use different trampolines
42 for static methods (no need to write the address back into to
45 2001-11-06 Dietmar Maurer <dietmar@ximian.com>
47 * emit-x86.c (arch_create_jit_trampoline): optimised trampoline to
48 use less the 16 bytes.
50 * x86.brg: code cleanup
52 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
54 * testjit.c: bug fixes.
56 * emit-x86.c (leave_method): print result values
58 2001-11-03 Dietmar Maurer <dietmar@ximian.com>
60 * emit-x86.c (enter_method): new debugging code
61 (leave_method): new debbuging code, this functions are called
62 when you use the new option --trace-calls
64 2001-11-02 Dietmar Maurer <dietmar@ximian.com>
66 * testjit.c: impl. STELEM_XX, STELEM_XX
68 * x86.brg: impl. LDLEN, LDELEMA
71 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
73 * x86.brg: added some experimental code for CALL
74 instructions - still not found the optimal way to do it.
76 * testjit.c (map_stind_type): add support for value types with
77 a size of 1, 2 or 4 bytes, implemented CEE_UNBOX, CEE_LDOBJ,
78 CEE_LDSTR, CEE_LDFLD, CEE_LDFLDA, CEE_STFLD, CEE_NEWOBJ, CEE_CEQ
79 (ctree_create_newobj): impl.
82 * emit-x86.c (tree_allocate_regs): removed allocation code for
84 (get_address): use a simple, but bug free search instead of the
87 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
89 * testjit.c: support virtual functions
91 * x86.brg: support different addressing modes for calls
93 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
95 * testjit.c: impl. STFLD
97 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
101 2001-10-04 Dick Porter <dick@ximian.com>
104 * emit-x86.c: include mono-endian.h not endian.h
106 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
108 * testjit.c (ctree_create_dup): really duplicate the tree.
109 attach the arguments to the CALL node. Added a new macro to
110 make argument order configurable (ARCH_ARGS_RIGHT_TO_LEFT).
112 2001-10-01 Dietmar Maurer <dietmar@ximian.com>
114 * interp.brg: the burm based interpreter: added the file as example.
116 2001-09-27 Dietmar Maurer <dietmar@ximian.com>
120 * testjit.c: impl. LDIND/STIND/LDLOCA, use g_malloc to alloc static
122 (map_stind_type): support enum types
123 (map_ldind_type): support enum types
125 * emit-x86.c (tree_allocate_regs): added code to support
126 register allocation for addressing modes trees.
127 (tree_emit): bug fix: we have to emit all mono_burg_functins. The
128 previous impl. did not work for chain rules.
129 (compute_branches): support for SWITCH statements
131 * x86.brg: added rules to model x86 addressing modes
133 2001-09-26 Dietmar Maurer <dietmar@ximian.com>
135 * emit-x86.c (compute_branches): implemented SWITCH
137 * testjit.c (mono_create_forest): implemented LDIND/STIND opcodes
138 (map_ldind_type): add enumeration types.
139 (map_stind_type): add enumeration types.
141 * emit-x86.c (arch_compile_method): more documentation.
143 * testjit.c: moved the architecture specific things to emit-x86.c
144 and x86.brg. Added more documentation. code cleanup.
146 2001-09-25 Dietmar Maurer <dietmar@ximian.com>
148 * x86.brg: we now have different types of addresses: ADDR_L for local
149 values, ADDR_A for arguments and ADDR_G for global addresses. We
150 also use LDIND_XX token to load values from a specific address
151 instead of LDLOC/STLOC.
153 * testjit.c: use the new adressing scheme everywhere:
154 LDIND _XX (ADDR_X), and STIND_XX (ADDR_X, tree)
156 2001-09-24 Dietmar Maurer <dietmar@ximian.com>
158 * testjit.c (main): fix bug in parameter parsing
160 * x86.brg: impl. more opcodes
162 2001-09-23 Dick Porter <dick@ximian.com>
164 * Makefile.am (testjit_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
166 2001-09-23 Dietmar Maurer <dietmar@ximian.com>
168 * testjit.c: use the memory pool to avoid memory leaks
170 2001-09-22 Dietmar Maurer <dietmar@ximian.com>
172 * x86.brg: increment the stack pointer after function calls
174 2001-09-21 Dick Porter <dick@ximian.com>
176 * Makefile.am (testjit_LDADD): Added PTHREAD_LIBS to the link line
178 2001-09-21 Dietmar Maurer <dietmar@ximian.com>
180 * x86.brg: implemented long MUL/DIV
181 (MB_OPT_LEVEL): define optimisation level macro
183 * testjit.c (tree_allocate_regs): added a way to prevent EDX usage
184 for operations like idiv. it is also possible to assign specific registers.
186 2001-09-20 Dietmar Maurer <dietmar@ximian.com>
188 * x86.brg: added basic support for long
190 * testjit.c (mono_compile_method): implemented POP
192 2001-09-19 Miguel de Icaza <miguel@ximian.com>
194 * testjit.c (usage): Added a couple of more usage options.
196 2001-09-19 Dietmar Maurer <dietmar@ximian.com>
198 * x86.brg: added more floating point grammar
200 * testjit.c (mono_compile_method): make local offsets negative
202 * x86.brg: added some floating point trees
204 * testjit.c (mono_compile_method): arguments on the runtime
205 stack are at least 4 bytes
207 * x86.brg: partly implemented 8,16 bit integers
209 * testjit.c (get_address): mark basic blocks
211 2001-09-18 Dietmar Maurer <dietmar@ximian.com>
213 * x86.brg: added some rules to optimize code
215 * testjit.c (get_address): use a binary search to get the address
216 (main): added an option to debug the jit (-d)
218 Tue Sep 18 13:19:16 CEST 2001 Paolo Molaro <lupus@ximian.com>
220 * testjit.c: better/faster align code. Handle ldloc.s and stloc.s.
222 2001-09-17 Miguel de Icaza <miguel@ximian.com>
224 * testjit.c (mono_compile_method): Provide better error reporting.
226 2001-09-17 Dietmar Maurer <dietmar@ximian.com>
228 * testjit.c (tree_get_address): impl. to fix address bug
229 (tree_get_address): make sure that we can only jump to the first
230 instruction of a tree.
232 * x86.brg: emit real code for calls
234 * testjit.c (create_jit_trampoline): creates a function to trigger jit
236 (mono_compile_method): reversed argument order
238 2001-09-15 Dietmar Maurer <dietmar@ximian.com>
240 * x86.brg (stmt): don't emit unnecessary register moves
242 * testjit.c (tree_allocate_regs): free registers earlier
244 2001-09-14 Dietmar Maurer <dietmar@ximian.com>
246 * x86.brg: branch addresses are now resolved
248 * testjit.c (compute_branches): compute address of branches
250 * x86.brg: emit real x86 instructions
252 * testjit.c: call objdump to disassemble the output
254 2001-09-13 Dietmar Maurer <dietmar@ximian.com>
256 * x86.brg: use the right offsets to access local variables
259 * emit-x86.c: only save/restore callee saved registers if they are
262 * testjit.c (tree_allocate_regs): use the new MonoRegSet to
264 (mono_compile_method): changed the tree for mothod calls
271 2001-09-10 Miguel de Icaza <miguel@ximian.com>
273 * x86.brg: Use Unix assembly syntax.
275 * emit-x86.c: support code, should be moved
277 * testjit.c: Use GPtrArrays instead of GLists, as those are very
278 inefficient at appends.
280 * Renamed `create_new_leave' to `create_new_leaf'