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