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