2 Thu Nov 13 16:24:29 CET 2003 Paolo Molaro <lupus@ximian.com>
4 * ppc/ppc-codegen.h: fixed most of the incorrect macros from ct.
6 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
8 * */tramp.c (mono_create_method_pointer): Rename to
9 mono_arch_create_method_pointer, move common code to a new function in
12 * */tramp.c (mono_create_trampoline): Rename to
13 mono_arch_create_trampoline for consistency.
15 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
17 * x86/tramp.c: restore EDX after memcpy call
19 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
21 * Makefile.am: add hppa subdir
23 * hppa/tramp.c: add initial implementation - this is 64 bit only
24 hppa/Makefile.am hppa/.cvsignore: added
26 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
28 * sparc/sparc-codegen.h sparc/tramp.c: add initial implementation
29 for V9 (64 bit), cover more 32 bit cases as well.
31 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
33 * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
35 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
37 * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
39 Tue Jul 1 13:03:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
41 * alpha/tramp.c: update from Laramie Leavitt (lar@leavitt.us).
43 2003-05-20 Dietmar Maurer <dietmar@ximian.com>
45 * x86/x86-codegen.h (x86_set_reg): add an assertion - it does
46 not work for all registers.
48 Sat Feb 1 10:59:31 CET 2003 Paolo Molaro <lupus@ximian.com>
50 * alpha/*: update from Laramie.
52 Mon Jan 27 12:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
54 * alpha/*: start of the port to the alpha architecture by
55 Laramie Leavitt (<lar@leavitt.us>).
57 Tue Jan 21 17:29:53 CET 2003 Paolo Molaro <lupus@ximian.com>
59 * ppc/ppc-codegen.h: completed ppc native code generation by
60 Taylor Christopher P <ct@cs.clemson.edu>.
62 Fri Jan 17 21:14:18 CET 2003 Paolo Molaro <lupus@ximian.com>
64 * ppc/tramp.c: adapted to work for MacOSX (from a patch by
67 2002-11-11 Mark Crichton <crichton@gimp.org>
69 * sparc/tramp.c: Added some disassembly bits for debugging.
71 2002-10-02 Mark Crichton <crichton@gimp.org>
73 * sparc/tramp.c: More cleanup of the trampoline code. Still some
74 problems with it w.r.t. delegates.
76 2002-09-25 Mark Crichton <crichton@gimp.org>
78 * sparc/tramp.c: Off by one error. Whoops. Trampoline code should
81 2002-09-24 Mark Crichton <crichton@gimp.org>
83 * sparc/tramp.c: Works as well as the old code did. Cleanup is
84 finished. The framework now for adding more type support is in,
85 and should be a *lot* cleaner.
87 2002-09-22 Mark Crichton <crichton@gimp.org>
89 * sparc/tramp.c: Completely broke trampolining on SPARC processors.
90 The code needed a nasty cleanup, so most of it is rewritten.
93 2002-08-20 Mark Crichton <crichton@gimp.org>
95 * sparc/tramp.c (mono_create_trampoline): Now works on Sparc. Tested
96 on an Ultra 2 running Linux.
98 Mon Aug 5 19:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
100 * x86/tramp.c: fix random memory read in mono_create_method_pointer.
102 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
104 * x86/tramp.c (mono_create_trampoline): fixed stack_size bug
106 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
108 * x86/tramp.c (mono_create_method_pointer): allocate space for
110 (mono_create_trampoline): also push the value type pointer for
111 methods returning value types.
112 (mono_create_method_pointer): support valuetype returns.
114 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
116 * x86/tramp.c: remove code to handle PInvoke because this is no
118 (mono_create_method_pointer): return method->addr for pinvoke methods
120 Fri Jul 19 14:18:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
122 * x86/tramp.c: fix float loads. Simple delegate marshaling fix.
124 2002-07-08 Radek Doulik <rodo@ximian.com>
126 * ppc/tramp.c: marshaling for SZARRAY
128 2002-07-05 Radek Doulik <rodo@ximian.com>
130 * ppc/tramp.c: removed magic hack
132 Tue Jun 18 10:21:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
134 * x86/tramp.c: marshal simple arrays correctly.
136 2002-05-27 Miguel de Icaza <miguel@ximian.com>
138 * x86/x86-codegen.h: Set the standard header format.
140 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
142 * x86/tramp.c (mono_create_method_pointer): removed the magic
143 trick to store the function pointer in the prolog and use the same
144 mechanism as in the jit.
146 2002-05-13 Radek Doulik <rodo@ximian.com>
148 * ppc/tramp.c (emit_save_parameters): fix I8 parameters
150 2002-05-06 Sergey Chaban <serge@wildwestsoftware.com>
152 * x86/x86-codegen.h: added missing shifts;
153 8-bit ALU operations (reg-reg);
154 macro for FPU ops with integer operand;
155 FIST macro (without pop);
157 Mon Apr 22 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
159 * x86/x86-codegen.h: added loop instructions and made x86_patch fully
162 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
164 * x86/tramp.c (mono_create_trampoline): support internalcall
167 Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
169 * x86/tramp.c: fix advancement of argument position on the stack.
171 Sat Mar 16 19:12:57 CET 2002 Paolo Molaro <lupus@ximian.com>
173 * x86/tramp.c: increase default allocated size for trampolines
174 and assert on overflow.
176 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
178 * x86/tramp.c (mono_create_trampoline): dont use fld/fst to copy
181 Mon Mar 11 16:14:29 CET 2002 Paolo Molaro <lupus@ximian.com>
183 * x86/x86-codegen.h: addex x86_clear_reg() and changed
184 x86_mov_reg_imm() to not check for imm == 0.
186 Thu Feb 28 12:34:21 CET 2002 Paolo Molaro <lupus@ximian.com>
188 * x86/tramp.c: start handling of more complex marshaling stuff.
190 2002-02-25 Sergey Chaban <serge@wildwestsoftware.com>
192 * arm: added ARM support code.
193 * Makefile.am: added arm to DIST_SUBDIRS.
195 2002-02-24 Radek Doulik <rodo@ximian.com>
197 * ppc/tramp.c (mono_create_method_pointer): basic delegates
198 implementation, it works for simple delegates now and I am already
199 pretty close to have it working for every delegates, but I am
200 going to sleep and finish it tomorrow?
201 (mono_create_method_pointer): implements delegates with parameters
204 2002-02-22 Jeffrey Stedfast <fejj@ximian.com>
206 * sparc/tramp.c (mono_create_trampoline): Much tinkering to get
207 the opcodes more correct. Still needs a lot of work.
209 2002-02-19 Radek Doulik <rodo@ximian.com>
211 * ppc/tramp.c (emit_save_parameters): don't start saving 64bit values to
213 added stack saving for most arguments
215 Tue Feb 19 20:19:38 CET 2002 Paolo Molaro <lupus@ximian.com>
217 * x86/tramp.c: avoid pointer arthmetric (pointed out by Serge).
219 2002-02-17 Radek Doulik <rodo@ximian.com>
221 * ppc/tramp.c: fixed minimal stack size, fixed string parameters,
222 fix byte and half word parameters
223 (mono_string_new_wrapper): new helper function, cut&pasted from
224 x86, modified to check for NULL text to avoid branching in
226 (calculate_sizes): updated for string retval changes
227 (emit_call_and_store_retval): updated for string retval
229 * ppc/ppc-codegen.h (ppc_mr): added lhz, lbz, sth
231 2002-02-16 Radek Doulik <rodo@ximian.com>
233 * ppc/tramp.c (emit_call_and_store_retval): support U2, I2, CHAR
235 Mon Feb 11 18:40:04 CET 2002 Paolo Molaro <lupus@ximian.com>
237 * sparc/*: sparc codegen header and some untested trampoline code.
239 Mon Feb 11 12:32:35 CET 2002 Paolo Molaro <lupus@ximian.com>
241 * x86/tramp.c: fix handling of multiple marshaleed strings.
242 * x86/x86-codegen.h: some code to patch branch displacements.
244 Fri Feb 1 16:03:00 CET 2002 Paolo Molaro <lupus@ximian.com>
246 * x86/tramp.c, ppc/tramp.c: implement mono_method_pointer_get ().
248 2002-01-23 Miguel de Icaza <miguel@ximian.com>
250 * x86/tramp.c (mono_create_trampoline): Do not try to create a
251 mono_string_new if the return value from the PInvoke code is
254 Mon Jan 14 11:50:16 CET 2002 Paolo Molaro <lupus@ximian.com>
256 * x86/x86-codegen.c: added overflow condition code and some aliases
259 Thu Jan 10 21:01:08 CET 2002 Paolo Molaro <lupus@ximian.com>
261 * x86/tramp.c: mono_create_trampoline (): the runtime argument is
262 needed to handle correctly delegates, the previous change in handling
263 the string return type broke them.
265 Tue Jan 8 22:38:41 MST 2002 Matt Kimball <matt@kimball.net>
267 * x86/tramp.c: handle strings returned from functions in external
268 libraries by converting to a Mono string object after the pinvoke'd
271 Sat Jan 5 15:51:06 CET 2002 Paolo Molaro <lupus@ximian.com>
273 * x86/tramp.c: handle short integer return types.
275 Thu Dec 20 20:13:07 CET 2001 Paolo Molaro <lupus@ximian.com>
277 * x86/tramp.c: fix create_method_pointer() to pass the arguments
278 correctly and add check for overflow.
280 Thu Dec 13 15:56:53 CET 2001 Paolo Molaro <lupus@ximian.com>
282 * x86/x86-codegen.h: x86_mov_memindex_imm() added.
284 2001-11-29 Radek Doulik <rodo@ximian.com>
286 * ppc/tramp.c: use r12 which is volatile instead of non-volatile
289 * Makefile.am (libmonoarch_la_LIBADD): added ppc to DIST_SUBDIRS
290 generate libmonoarch for ppc
292 Tue Nov 27 15:24:07 CET 2001 Paolo Molaro <lupus@ximian.com>
294 * x96/x86-codegen.c: x86_lea_memindex() added.
296 Thu Nov 15 17:41:01 CET 2001 Paolo Molaro <lupus@ximian.com>
298 * x86/tramp.c: handle enums with underlying type different from int32.
300 Wed Nov 14 19:21:26 CET 2001 Paolo Molaro <lupus@ximian.com>
302 * x86/tramp.c: handle boolean as a return value.
303 * x96/x86-codegen.c: x86_widen_memindex() added.
305 2001-11-07 Miguel de Icaza <miguel@ximian.com>
307 * x86/tramp.c: Include stdlib to kill warning.
309 Mon Oct 22 15:20:14 CEST 2001 Paolo Molaro <lupus@ximian.com>
311 * x86/tramp.c: handle boolean, u1 and i1 as return values.
313 Wed Oct 10 16:07:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
315 * x86/x86-codegen.c: added x86_set_{reg,mem,membase}.
317 Mon Oct 8 16:13:07 CEST 2001 Paolo Molaro <lupus@ximian.com>
319 * x86/tramp.c: remove mono_get_ansi_string () and use
320 mono_string_to_utf8 () instead.
322 Thu Oct 4 19:09:13 CEST 2001 Paolo Molaro <lupus@ximian.com>
324 * x86/tramp.c: allow marshalling valuetypes if they are
327 Mon Oct 1 18:48:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
329 * x86/tramp.c: fix thinko (s/SUB/ADD/) in stack adjustment
330 and avoid a couple of unnecessary instructions.
332 Fri Sep 28 19:43:12 CEST 2001 Paolo Molaro <lupus@ximian.com>
334 * x86/tramp.c: marshal valuetypes that are enums.
336 Thu Sep 27 15:34:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
338 * x86/x86-codegen.h: in memindex operand you can use X86_NOBASEREG
341 Wed Sep 26 16:29:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
343 * x86/x86-codegen.h: added memindex addressing mode encoding
344 (and mov to/from register opcodes).
346 Mon Sep 24 18:49:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
348 * x86/tramp.c: don't change a MONO_TYPE_STRING to a char*
349 when it's an argument to an internalcall.
351 Sun Sep 23 13:44:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
353 * x86/tramp.c: handle MONO_TYPE_CLASS in trampolines.
355 2001-09-21 Dietmar Maurer <dietmar@ximian.com>
357 * x86/x86-codegen.h (x86_breakpoint): added.
359 Tue Sep 18 13:23:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
361 * x86/x86-codegen.h: remove C++ comments.
363 2001-09-17 Dietmar Maurer <dietmar@ximian.com>
365 * x86/x86-codegen.h (x86_alu_reg_reg): replaced src/dest
367 Mon Sep 10 17:26:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
369 * Makefile.am, x86/Makefile.am: conditional compile logic
370 to make porting to different targets easier.
372 Fri Sep 7 18:43:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
374 * x86/x86-codegen.h: fixes and x86_mov_membase_imm ().
375 * x86/tramp.c: implemented mono_create_method_pointer ():
376 creates a native pointer to a method implementation that can be
377 used as a normal C callback.
379 Thu Sep 6 15:38:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
381 * x86/x86-codegen.h: added x86_rdtsc() and fixes.
382 * x86/tramp.c: create trampolines to call pinvoke methods.
383 * x86/Makefile.am: create a libmonoarch convenience library.
385 Mon Aug 27 09:29:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
387 * x86/x86-codegen.h: fix x86_call_code (). x86_mov_regp_reg () added.
389 Sat Aug 18 12:40:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
391 * x86/x86-codegen.h: fix a couple of buglets and add x86_regp_emit().
393 Wed Aug 8 15:30:05 CEST 2001 Paolo Molaro <lupus@ximian.com>
395 * x86/x86-codegen.h, x86/test.c: added x86 code emitter with