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