2001-11-09 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mono / jit / ChangeLog
1 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
2
3         * testjit.c (mono_analyze_stack): Remove compiler warning by
4         testing against NULL.
5
6 2001-11-09  Dick Porter  <dick@ximian.com>
7
8         * Makefile.am (testjit_LDADD): Don't need THREAD_LIBS any more
9
10 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
11
12         * testjit.c (mono_analyze_stack): new BOX impl.
13
14         * x86.brg: implemented INITOBJ
15
16         * testjit.c (mono_analyze_stack): finished array support
17         (mono_analyze_stack): reimplemented DUP instruction
18
19 2001-11-08  Dietmar Maurer  <dietmar@ximian.com>
20
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
24         adressing mode)
25
26 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
27
28         * mempool.c: Include string.h to kill warning.
29
30         * testjit.c: Add typecast to kill warning.
31
32         * x86.brg: Include string.h to eliminate warning.
33
34         * emit-x86.c (tree_allocate_regs): Fix arguments to g_warning to
35         kill warning.
36
37 2001-11-07  Dietmar Maurer  <dietmar@ximian.com>
38
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
43         vtable).
44
45 2001-11-06  Dietmar Maurer  <dietmar@ximian.com>
46
47         * emit-x86.c (arch_create_jit_trampoline): optimised trampoline to
48         use less the 16 bytes.
49
50         * x86.brg: code cleanup
51
52 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
53
54         * testjit.c: bug fixes.
55
56         * emit-x86.c (leave_method): print result values
57
58 2001-11-03  Dietmar Maurer  <dietmar@ximian.com>
59
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
63
64 2001-11-02  Dietmar Maurer  <dietmar@ximian.com>
65
66         * testjit.c: impl. STELEM_XX, STELEM_XX
67
68         * x86.brg: impl. LDLEN, LDELEMA
69         
70
71 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
72
73         * x86.brg: added some experimental code for CALL
74         instructions - still not found the optimal way to do it.
75
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.
80         
81
82         * emit-x86.c (tree_allocate_regs): removed allocation code for
83         addr nonterminal.
84         (get_address): use a simple, but bug free search instead of the
85         buggy binary search.
86
87 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
88
89         * testjit.c: support virtual functions
90
91         * x86.brg: support different addressing modes for calls
92
93 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
94
95         * testjit.c: impl. STFLD
96
97 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
98
99         * x86.brg: impl. CEQ
100
101 2001-10-04  Dick Porter  <dick@ximian.com>
102
103         * testjit.c:
104         * emit-x86.c: include mono-endian.h not endian.h
105
106 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
107
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).
111
112 2001-10-01  Dietmar Maurer  <dietmar@ximian.com>
113
114         * interp.brg: the burm based interpreter: added the file as example.
115
116 2001-09-27  Dietmar Maurer  <dietmar@ximian.com>
117
118         * x86.brg: cleanup
119
120         * testjit.c: impl. LDIND/STIND/LDLOCA, use g_malloc to alloc static
121         data.
122         (map_stind_type): support enum types
123         (map_ldind_type): support enum types
124
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
130
131         * x86.brg: added rules to model x86 addressing modes
132
133 2001-09-26  Dietmar Maurer  <dietmar@ximian.com>
134
135         * emit-x86.c (compute_branches): implemented SWITCH
136
137         * testjit.c (mono_create_forest): implemented LDIND/STIND opcodes
138         (map_ldind_type): add enumeration types.
139         (map_stind_type): add enumeration types.
140
141         * emit-x86.c (arch_compile_method): more documentation.
142
143         * testjit.c: moved the architecture specific things to emit-x86.c
144         and x86.brg. Added more documentation. code cleanup.
145
146 2001-09-25  Dietmar Maurer  <dietmar@ximian.com>
147
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. 
152
153         * testjit.c: use the new adressing scheme everywhere:
154         LDIND _XX (ADDR_X), and STIND_XX (ADDR_X, tree)  
155
156 2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
157
158         * testjit.c (main): fix bug in parameter parsing
159
160         * x86.brg: impl. more opcodes
161
162 2001-09-23  Dick Porter  <dick@ximian.com>
163
164         * Makefile.am (testjit_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
165
166 2001-09-23  Dietmar Maurer  <dietmar@ximian.com>
167
168         * testjit.c: use the memory pool to avoid memory leaks
169
170 2001-09-22  Dietmar Maurer  <dietmar@ximian.com>
171
172         * x86.brg: increment the stack pointer after function calls
173
174 2001-09-21  Dick Porter  <dick@ximian.com>
175
176         * Makefile.am (testjit_LDADD): Added PTHREAD_LIBS to the link line
177
178 2001-09-21  Dietmar Maurer  <dietmar@ximian.com>
179
180         * x86.brg: implemented long MUL/DIV
181         (MB_OPT_LEVEL): define optimisation level macro
182
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.
185
186 2001-09-20  Dietmar Maurer  <dietmar@ximian.com>
187
188         * x86.brg: added basic support for long
189
190         * testjit.c (mono_compile_method): implemented POP
191
192 2001-09-19  Miguel de Icaza  <miguel@ximian.com>
193
194         * testjit.c (usage): Added a couple of more usage options.
195
196 2001-09-19  Dietmar Maurer  <dietmar@ximian.com>
197
198         * x86.brg: added more floating point grammar 
199
200         * testjit.c (mono_compile_method): make local offsets negative
201
202         * x86.brg: added some floating point trees
203
204         * testjit.c (mono_compile_method): arguments on the runtime 
205         stack are at least 4 bytes
206
207         * x86.brg: partly implemented 8,16 bit integers
208
209         * testjit.c (get_address): mark basic blocks
210
211 2001-09-18  Dietmar Maurer  <dietmar@ximian.com>
212
213         * x86.brg: added some rules to optimize code
214
215         * testjit.c (get_address): use a binary search to get the address
216         (main): added an option to debug the jit (-d)
217
218 Tue Sep 18 13:19:16 CEST 2001 Paolo Molaro <lupus@ximian.com>
219
220         * testjit.c: better/faster align code. Handle ldloc.s and stloc.s.
221
222 2001-09-17  Miguel de Icaza  <miguel@ximian.com>
223
224         * testjit.c (mono_compile_method): Provide better error reporting.
225
226 2001-09-17  Dietmar Maurer  <dietmar@ximian.com>
227
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.
231
232         * x86.brg: emit real code for calls
233
234         * testjit.c (create_jit_trampoline): creates a function to trigger jit
235         compilation.
236         (mono_compile_method): reversed argument order
237
238 2001-09-15  Dietmar Maurer  <dietmar@ximian.com>
239
240         * x86.brg (stmt): don't emit unnecessary register moves
241
242         * testjit.c (tree_allocate_regs): free registers earlier
243
244 2001-09-14  Dietmar Maurer  <dietmar@ximian.com>
245
246         * x86.brg: branch addresses are now resolved
247
248         * testjit.c (compute_branches): compute address of branches
249
250         * x86.brg: emit real x86 instructions
251
252         * testjit.c: call objdump to disassemble the output
253
254 2001-09-13  Dietmar Maurer  <dietmar@ximian.com>
255
256         * x86.brg: use the right offsets to access local variables
257         and arguments.
258
259         * emit-x86.c: only save/restore callee saved registers if they are
260         really modified.
261
262         * testjit.c (tree_allocate_regs): use the new MonoRegSet to
263         allocate registers.
264         (mono_compile_method): changed the tree for mothod calls
265
266         * regset.h: impl.
267         
268         * regset.c: impl.
269         
270
271 2001-09-10  Miguel de Icaza  <miguel@ximian.com>
272
273         * x86.brg: Use Unix assembly syntax.
274
275         * emit-x86.c: support code, should be moved
276
277         * testjit.c: Use GPtrArrays instead of GLists, as those are very
278         inefficient at appends.
279
280         * Renamed `create_new_leave' to `create_new_leaf'
281
282         
283