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