2004-02-19 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / arch / ChangeLog
1 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
2
3         * sparc/tramp.c: Fix alignment of structures containing doubles.
4
5 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
6
7         * sparc/tramp.c: Implement all floating point argument passing conventions in
8         Sparc V8. Also fix structure passing in V8.
9
10 Thu Nov 13 16:24:29 CET 2003 Paolo Molaro <lupus@ximian.com>
11
12         * ppc/ppc-codegen.h: fixed most of the incorrect macros from ct.
13
14 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15
16         * */tramp.c (mono_create_method_pointer): Rename to 
17         mono_arch_create_method_pointer, move common code to a new function in
18         interp.c.
19
20         * */tramp.c (mono_create_trampoline): Rename to 
21         mono_arch_create_trampoline for consistency.
22         
23 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
24
25         * x86/tramp.c: restore EDX after memcpy call
26
27 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
28
29         * Makefile.am: add hppa subdir 
30
31         * hppa/tramp.c: add initial implementation - this is 64 bit only
32         hppa/Makefile.am hppa/.cvsignore: added
33
34 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
35
36         * sparc/sparc-codegen.h sparc/tramp.c: add initial implementation
37         for V9 (64 bit), cover more 32 bit cases as well.
38
39 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
40
41         * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
42
43 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
44
45         * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
46
47 Tue Jul 1 13:03:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
48
49         * alpha/tramp.c: update from Laramie Leavitt (lar@leavitt.us).
50
51 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
52
53         * x86/x86-codegen.h (x86_set_reg): add an assertion - it does
54         not work for all registers.
55
56 Sat Feb 1 10:59:31 CET 2003 Paolo Molaro <lupus@ximian.com>
57
58         * alpha/*: update from Laramie.
59
60 Mon Jan 27 12:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
61
62         * alpha/*: start of the port to the alpha architecture by
63         Laramie Leavitt (<lar@leavitt.us>).
64
65 Tue Jan 21 17:29:53 CET 2003 Paolo Molaro <lupus@ximian.com>
66
67         * ppc/ppc-codegen.h: completed ppc native code generation by
68         Taylor Christopher P <ct@cs.clemson.edu>.
69
70 Fri Jan 17 21:14:18 CET 2003 Paolo Molaro <lupus@ximian.com>
71
72         * ppc/tramp.c: adapted to work for MacOSX (from a patch by 
73         John Duncan).
74
75 2002-11-11  Mark Crichton  <crichton@gimp.org>
76
77         * sparc/tramp.c: Added some disassembly bits for debugging.
78
79 2002-10-02  Mark Crichton  <crichton@gimp.org>
80
81         * sparc/tramp.c: More cleanup of the trampoline code.  Still some
82         problems with it w.r.t. delegates.
83
84 2002-09-25  Mark Crichton  <crichton@gimp.org>
85
86         * sparc/tramp.c: Off by one error.  Whoops.  Trampoline code should
87         now work properly.
88
89 2002-09-24  Mark Crichton  <crichton@gimp.org>
90
91         * sparc/tramp.c: Works as well as the old code did.  Cleanup is
92         finished.  The framework now for adding more type support is in,
93         and should be a *lot* cleaner.
94         
95 2002-09-22  Mark Crichton  <crichton@gimp.org>
96
97         * sparc/tramp.c: Completely broke trampolining on SPARC processors.
98         The code needed a nasty cleanup, so most of it is rewritten.
99         It will be fixed.
100
101 2002-08-20  Mark Crichton <crichton@gimp.org>
102
103         * sparc/tramp.c (mono_create_trampoline): Now works on Sparc.  Tested
104         on an Ultra 2 running Linux.
105
106 Mon Aug 5 19:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
107
108         * x86/tramp.c: fix random memory read in mono_create_method_pointer.
109
110 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
111
112         * x86/tramp.c (mono_create_trampoline): fixed stack_size bug
113
114 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
115
116         * x86/tramp.c (mono_create_method_pointer): allocate space for
117         value types.
118         (mono_create_trampoline): also push the value type pointer for
119         methods returning value types.
120         (mono_create_method_pointer): support valuetype returns.
121
122 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
123
124         * x86/tramp.c: remove code to handle PInvoke because this is no
125         longer needed.
126         (mono_create_method_pointer): return method->addr for pinvoke methods
127
128 Fri Jul 19 14:18:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
129
130         * x86/tramp.c: fix float loads. Simple delegate marshaling fix.
131
132 2002-07-08  Radek Doulik  <rodo@ximian.com>
133
134         * ppc/tramp.c: marshaling for SZARRAY
135
136 2002-07-05  Radek Doulik  <rodo@ximian.com>
137
138         * ppc/tramp.c: removed magic hack
139
140 Tue Jun 18 10:21:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
141
142         * x86/tramp.c: marshal simple arrays correctly.
143
144 2002-05-27  Miguel de Icaza  <miguel@ximian.com>
145
146         * x86/x86-codegen.h: Set the standard header format.
147
148 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
149
150         * x86/tramp.c (mono_create_method_pointer): removed the magic
151         trick to store the function pointer in the prolog and use the same
152         mechanism as in the jit.
153
154 2002-05-13  Radek Doulik  <rodo@ximian.com>
155
156         * ppc/tramp.c (emit_save_parameters): fix I8 parameters
157
158 2002-05-06  Sergey Chaban  <serge@wildwestsoftware.com>
159
160         * x86/x86-codegen.h: added missing shifts;
161         8-bit ALU operations (reg-reg);
162         macro for FPU ops with integer operand;
163         FIST macro (without pop);
164
165 Mon Apr 22 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
166
167         * x86/x86-codegen.h: added loop instructions and made x86_patch fully
168         useful.
169
170 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
171
172         * x86/tramp.c (mono_create_trampoline): support internalcall
173         String constructors
174
175 Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
176
177         * x86/tramp.c: fix advancement of argument position on the stack.
178
179 Sat Mar 16 19:12:57 CET 2002 Paolo Molaro <lupus@ximian.com>
180
181         * x86/tramp.c: increase default allocated size for trampolines
182         and assert on overflow.
183
184 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
185
186         * x86/tramp.c (mono_create_trampoline): dont use fld/fst to copy
187         R8 values
188
189 Mon Mar 11 16:14:29 CET 2002 Paolo Molaro <lupus@ximian.com>
190
191         * x86/x86-codegen.h: addex x86_clear_reg() and changed
192         x86_mov_reg_imm() to not check for imm == 0.
193
194 Thu Feb 28 12:34:21 CET 2002 Paolo Molaro <lupus@ximian.com>
195
196         * x86/tramp.c: start handling of more complex marshaling stuff.
197
198 2002-02-25  Sergey Chaban  <serge@wildwestsoftware.com>
199
200         * arm: added ARM support code.
201         * Makefile.am: added arm to DIST_SUBDIRS.
202
203 2002-02-24  Radek Doulik  <rodo@ximian.com>
204
205         * ppc/tramp.c (mono_create_method_pointer): basic delegates
206         implementation, it works for simple delegates now and I am already
207         pretty close to have it working for every delegates, but I am
208         going to sleep and finish it tomorrow?
209         (mono_create_method_pointer): implements delegates with parameters
210         and return value
211
212 2002-02-22  Jeffrey Stedfast  <fejj@ximian.com>
213
214         * sparc/tramp.c (mono_create_trampoline): Much tinkering to get
215         the opcodes more correct. Still needs a lot of work.
216
217 2002-02-19  Radek Doulik  <rodo@ximian.com>
218
219         * ppc/tramp.c (emit_save_parameters): don't start saving 64bit values to
220         even registers
221         added stack saving for most arguments
222
223 Tue Feb 19 20:19:38 CET 2002 Paolo Molaro <lupus@ximian.com>
224
225         * x86/tramp.c: avoid pointer arthmetric (pointed out by Serge).
226
227 2002-02-17  Radek Doulik  <rodo@ximian.com>
228
229         * ppc/tramp.c: fixed minimal stack size, fixed string parameters,
230         fix byte and half word parameters 
231         (mono_string_new_wrapper): new helper function, cut&pasted from
232         x86, modified to check for NULL text to avoid branching in
233         generated code
234         (calculate_sizes): updated for string retval changes
235         (emit_call_and_store_retval): updated for string retval
236
237         * ppc/ppc-codegen.h (ppc_mr): added lhz, lbz, sth
238
239 2002-02-16  Radek Doulik  <rodo@ximian.com>
240
241         * ppc/tramp.c (emit_call_and_store_retval): support U2, I2, CHAR
242
243 Mon Feb 11 18:40:04 CET 2002 Paolo Molaro <lupus@ximian.com>
244
245         * sparc/*: sparc codegen header and some untested trampoline code.
246
247 Mon Feb 11 12:32:35 CET 2002 Paolo Molaro <lupus@ximian.com>
248
249         * x86/tramp.c: fix handling of multiple marshaleed strings.
250         * x86/x86-codegen.h: some code to patch branch displacements.
251
252 Fri Feb 1 16:03:00 CET 2002 Paolo Molaro <lupus@ximian.com>
253
254         * x86/tramp.c, ppc/tramp.c: implement mono_method_pointer_get ().
255
256 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
257
258         * x86/tramp.c (mono_create_trampoline): Do not try to create a
259         mono_string_new if the return value from the PInvoke code is
260         NULL. 
261
262 Mon Jan 14 11:50:16 CET 2002 Paolo Molaro <lupus@ximian.com>
263
264         * x86/x86-codegen.c: added overflow condition code and some aliases
265         for the other ccs.
266
267 Thu Jan 10 21:01:08 CET 2002 Paolo Molaro <lupus@ximian.com>
268
269         * x86/tramp.c: mono_create_trampoline (): the runtime argument is
270         needed to handle correctly delegates, the previous change in handling
271         the string return type broke them.
272
273 Tue Jan  8 22:38:41 MST 2002 Matt Kimball <matt@kimball.net>
274         
275         * x86/tramp.c: handle strings returned from functions in external 
276         libraries by converting to a Mono string object after the pinvoke'd 
277         function returns
278         
279 Sat Jan 5 15:51:06 CET 2002 Paolo Molaro <lupus@ximian.com>
280
281         * x86/tramp.c: handle short integer return types.
282
283 Thu Dec 20 20:13:07 CET 2001 Paolo Molaro <lupus@ximian.com>
284
285         * x86/tramp.c: fix create_method_pointer() to pass the arguments
286         correctly and add check for overflow.
287
288 Thu Dec 13 15:56:53 CET 2001 Paolo Molaro <lupus@ximian.com>
289
290         * x86/x86-codegen.h: x86_mov_memindex_imm() added.
291         
292 2001-11-29  Radek Doulik  <rodo@ximian.com>
293
294         * ppc/tramp.c: use r12 which is volatile instead of non-volatile
295         r14 to avoid saving
296
297         * Makefile.am (libmonoarch_la_LIBADD): added ppc to DIST_SUBDIRS
298         generate libmonoarch for ppc
299
300 Tue Nov 27 15:24:07 CET 2001 Paolo Molaro <lupus@ximian.com>
301
302         * x96/x86-codegen.c: x86_lea_memindex() added.
303
304 Thu Nov 15 17:41:01 CET 2001 Paolo Molaro <lupus@ximian.com>
305
306         * x86/tramp.c: handle enums with underlying type different from int32.
307
308 Wed Nov 14 19:21:26 CET 2001 Paolo Molaro <lupus@ximian.com>
309
310         * x86/tramp.c: handle boolean as a return value.
311         * x96/x86-codegen.c: x86_widen_memindex() added.
312
313 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
314
315         * x86/tramp.c: Include stdlib to kill warning.
316
317 Mon Oct 22 15:20:14 CEST 2001 Paolo Molaro <lupus@ximian.com>
318
319         * x86/tramp.c: handle boolean, u1 and i1 as return values.
320
321 Wed Oct 10 16:07:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
322
323         * x86/x86-codegen.c: added x86_set_{reg,mem,membase}.
324
325 Mon Oct 8 16:13:07 CEST 2001 Paolo Molaro <lupus@ximian.com>
326
327         * x86/tramp.c: remove mono_get_ansi_string () and use
328         mono_string_to_utf8 () instead.
329
330 Thu Oct 4 19:09:13 CEST 2001 Paolo Molaro <lupus@ximian.com>
331
332         * x86/tramp.c: allow marshalling valuetypes if they are
333         4 bytes long.
334
335 Mon Oct 1 18:48:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
336
337         * x86/tramp.c: fix thinko (s/SUB/ADD/) in stack adjustment
338         and avoid a couple of unnecessary instructions.
339
340 Fri Sep 28 19:43:12 CEST 2001 Paolo Molaro <lupus@ximian.com>
341
342         * x86/tramp.c: marshal valuetypes that are enums.
343
344 Thu Sep 27 15:34:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
345
346         * x86/x86-codegen.h: in memindex operand you can use X86_NOBASEREG
347         as basereg.
348
349 Wed Sep 26 16:29:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
350
351         * x86/x86-codegen.h: added memindex addressing mode encoding
352         (and mov to/from register opcodes).
353
354 Mon Sep 24 18:49:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
355
356         * x86/tramp.c: don't change a MONO_TYPE_STRING to a char*
357         when it's an argument to an internalcall.
358
359 Sun Sep 23 13:44:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
360
361         * x86/tramp.c: handle MONO_TYPE_CLASS in trampolines.
362
363 2001-09-21  Dietmar Maurer  <dietmar@ximian.com>
364
365         * x86/x86-codegen.h (x86_breakpoint): added.
366
367 Tue Sep 18 13:23:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
368
369         * x86/x86-codegen.h: remove C++ comments.
370
371 2001-09-17  Dietmar Maurer  <dietmar@ximian.com>
372
373         * x86/x86-codegen.h (x86_alu_reg_reg): replaced src/dest
374
375 Mon Sep 10 17:26:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
376
377         * Makefile.am, x86/Makefile.am: conditional compile logic
378         to make porting to different targets easier.
379
380 Fri Sep 7 18:43:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
381
382         * x86/x86-codegen.h: fixes and x86_mov_membase_imm ().
383         * x86/tramp.c: implemented mono_create_method_pointer ():
384         creates a native pointer to a method implementation that can be 
385         used as a normal C callback.
386
387 Thu Sep 6 15:38:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
388
389         * x86/x86-codegen.h: added x86_rdtsc() and fixes.
390         * x86/tramp.c: create trampolines to call pinvoke methods.
391         * x86/Makefile.am: create a libmonoarch convenience library.
392
393 Mon Aug 27 09:29:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
394
395         * x86/x86-codegen.h: fix x86_call_code (). x86_mov_regp_reg () added.
396
397 Sat Aug 18 12:40:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
398
399         * x86/x86-codegen.h: fix a couple of buglets and add x86_regp_emit().
400
401 Wed Aug 8 15:30:05 CEST 2001 Paolo Molaro <lupus@ximian.com>
402
403         * x86/x86-codegen.h, x86/test.c: added x86 code emitter with
404         test.
405