1 2005-05-29 Zoltan Varga <vargaz@freemail.hu>
3 * ia64/ia64-codegen.h: Ongoing IA64 work.
5 * ia64/ia64-codegen.h: Ongoing IA64 work.
7 2005-05-28 Zoltan Varga <vargaz@freemail.hu>
9 * ia64/ia64-codegen.h: Ongoing IA64 work.
11 * ia64/ia64-codegen.h: Ongoing IA64 work.
13 * ia64/ia64-codegen.h: Ongoing IA64 work.
15 2005-05-26 Zoltan Varga <vargaz@freemail.hu>
17 * ia64/ia64-codegen.h: Ongoing IA64 work.
19 2005-05-22 Zoltan Varga <vargaz@freemail.hu>
21 * ia64/ia64-codegen.h: Ongoing IA64 work.
23 * ia64/ia64-codegen.h: Ongoing IA64 work.
25 * ia64/ia64-codegen.h: Ongoing IA64 work.
27 2005-05-21 Zoltan Varga <vargaz@freemail.hu>
29 * ia64/ia64-codegen.h: Ongoing IA64 work.
31 2005-05-19 Zoltan Varga <vargaz@freemail.hu>
33 * ia64/ia64-codegen.h ia64/codegen.c: Ongoing ia64 work.
35 2005-05-18 Zoltan Varga <vargaz@freemail.hu>
37 * ia64/ia64-codegen.h (ia64_codegen_init): Rename macro parameter.
39 2005-05-14 Zoltan Varga <vargaz@freemail.hu>
41 * Makefile.am: Only compile libmonoarch if the interpreter is compiled.
43 * ia64/ia64-codegen.h: Add IA64 code generation macros.
45 * Makefile.am: Add ia64 subdir.
47 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
49 * alpha/tramp.c: Applied patch from Jakub Bogusz <qboosh@pld-linux.org>.
51 2005-03-28 Zoltan Varga <vargaz@freemail.hu>
53 * amd64/amd64-codegen.h: Avoid emitting a rex in some places.
55 2005-03-15 Zoltan Varga <vargaz@freemail.hu>
57 * amd64/amd64-codegen.h (amd64_emit_rex): Emit a rex when accessing the
60 * amd64/amd64-codegen.h (AMD64_BYTE_REGS): Add AMD64_BYTE_REGS macro.
62 2005-03-14 Zoltan Varga <vargaz@freemail.hu>
64 * amd64/amd64-codegen.h: Add missing AMD64_XMM7.
66 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
68 * amd64/amd64-codegen.h: Remove some unneccesary REXes.
70 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
72 * amd64/amd64-codegen.h (amd64_sse_cvtsi2sd_reg_reg_size): Add _size
73 variants to some sse2 macros.
75 * amd64/amd64-codegen.h (amd64_sse_cvtsd2si_reg_reg): Make this convert
78 2005-03-06 Zoltan Varga <vargaz@freemail.hu>
80 * amd64/amd64-codegen.h: Add some SSE2 instructions.
82 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
84 * amd64/amd64-codegen.h: Add xadd instructions.
86 * amd64/amd64-codegen.h (amd64_jump_code_size): Do not emit a rex.
88 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
90 * amd64/amd64-codegen.h: Updates to support the PIC changes.
92 Fri Nov 19 17:29:22 CET 2004 Paolo Molaro <lupus@ximian.com>
94 * ppc/ppc-codegen.h: counter reg decrement branch values
95 (patch by Geoff Norton <gnorton@customerdna.com>).
97 2004-11-16 Patrik Torstensson <patrik.torstensson@gmail.com>
99 * x86/x86-codegen.h: added opcodes for xadd instructions
101 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
103 * amd64/x86-64-codegen.h: Get rid of this.
105 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
107 * amd64/amd64-codegen.h (amd64_imul_reg_membase_size): Fix REX
110 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
112 * amd64/amd64-codegen.h: More SSE work.
114 * amd64/amd64-codegen.h: Add SSE2 instructions.
116 2004-08-21 Zoltan Varga <vargaz@freemail.hu>
118 * amd64/amd64-codegen.h (X86_IS_BYTE_REG): Redefine X86_IS_BYTE_REG
119 since under amd64, all 16 registers have a low part.
121 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
123 * x86/x86-codegen.h: Add macros for accessing the mod/rm byte.
125 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
127 * amd64/amd64-codegen.h: Ongoing JIT work.
129 2004-07-29 Ben Maurer <bmaurer@ximian.com>
131 * x86/x86-codegen.h: Add opcodes for cmp BYTE PTR [eax], imm
133 2004-07-28 Zoltan Varga <vargaz@freemail.hu>
135 * amd64/amd64-codegen.h: Ongoing JIT work.
137 2004-07-24 Zoltan Varga <vargaz@freemail.hu>
139 * amd64/amd64-codegen.h: Ongoing JIT work.
141 2004-07-23 Zoltan Varga <vargaz@freemail.hu>
143 * amd64/amd64-codegen.h: Ongoing JIT work.
145 2004-07-23 zovarga <vargaz@freemail.hu>
147 * amd64/amd64-codegen.h: Ongoing JIT work.
149 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
151 * sparc/sparc-codegen.h: Add SPARC64 support.
153 2004-05-07 Bernie Solomon <bernard@ugsolutions.com>
155 * ppc/ppc-codegen.h: remove GCC-ism in ppc_emit32
157 2004-04-29 Bernie Solomon <bernard@ugsolutions.com>
159 * ppc/tramp.c: use sizeof (stackval), fix
160 delegate tramp frame layout for Apple
162 2004-04-26 David Waite <mass@akuma.org>
164 * unknown.c: modify to have content for defined platforms (to
167 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
176 remove child from MonoInvocation as it isn't used.
178 * hppa/hppa-codegen.h:
179 fix displacements in FP instrs
181 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
183 * hppa/hppa-codegen.h: created
185 * hppa/tramp.c: changed style to be more like
188 * hppa/Makefile.am: add hppa-codegen.h
190 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
192 * sparc/sparc-codegen.h: Add v9 branches with prediction.
194 2004-03-15 Bernie Solomon <bernard@ugsolutions.com>
196 * sparc/sparc-codegen.h: tweak sparc_mov_reg_reg
197 so Sun's dis command recognizes it.
199 2004-03-15 Zoltan Varga <vargaz@freemail.hu>
201 * sparc/sparc-codegen.h: Add some v9 instructions.
203 2004-03-11 Zoltan Varga <vargaz@freemail.hu>
205 * sparc/sparc-codegen.h: Ongoing sparc work.
207 2004-03-07 Duncan Mak <duncan@ximian.com>
209 * Makefile.am: Removed the reference to 'x86-64'. This was the cause
210 of the missing Mono daily tarballs, 'make dist' wasn't working.
212 We do have an 'amd64' directory, but it doesn't make it in 'make
215 2004-02-19 Zoltan Varga <vargaz@freemail.hu>
217 * sparc/sparc-codegen.h: Fix lots of opcodes + add new ones.
219 * sparc/tramp.c: Fix alignment of structures containing doubles.
221 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
223 * sparc/tramp.c: Implement all floating point argument passing conventions in
224 Sparc V8. Also fix structure passing in V8.
226 Thu Nov 13 16:24:29 CET 2003 Paolo Molaro <lupus@ximian.com>
228 * ppc/ppc-codegen.h: fixed most of the incorrect macros from ct.
230 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
232 * */tramp.c (mono_create_method_pointer): Rename to
233 mono_arch_create_method_pointer, move common code to a new function in
236 * */tramp.c (mono_create_trampoline): Rename to
237 mono_arch_create_trampoline for consistency.
239 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
241 * x86/tramp.c: restore EDX after memcpy call
243 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
245 * Makefile.am: add hppa subdir
247 * hppa/tramp.c: add initial implementation - this is 64 bit only
248 hppa/Makefile.am hppa/.cvsignore: added
250 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
252 * sparc/sparc-codegen.h sparc/tramp.c: add initial implementation
253 for V9 (64 bit), cover more 32 bit cases as well.
255 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
257 * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
259 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
261 * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
263 Tue Jul 1 13:03:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
265 * alpha/tramp.c: update from Laramie Leavitt (lar@leavitt.us).
267 2003-05-20 Dietmar Maurer <dietmar@ximian.com>
269 * x86/x86-codegen.h (x86_set_reg): add an assertion - it does
270 not work for all registers.
272 Sat Feb 1 10:59:31 CET 2003 Paolo Molaro <lupus@ximian.com>
274 * alpha/*: update from Laramie.
276 Mon Jan 27 12:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
278 * alpha/*: start of the port to the alpha architecture by
279 Laramie Leavitt (<lar@leavitt.us>).
281 Tue Jan 21 17:29:53 CET 2003 Paolo Molaro <lupus@ximian.com>
283 * ppc/ppc-codegen.h: completed ppc native code generation by
284 Taylor Christopher P <ct@cs.clemson.edu>.
286 Fri Jan 17 21:14:18 CET 2003 Paolo Molaro <lupus@ximian.com>
288 * ppc/tramp.c: adapted to work for MacOSX (from a patch by
291 2002-11-11 Mark Crichton <crichton@gimp.org>
293 * sparc/tramp.c: Added some disassembly bits for debugging.
295 2002-10-02 Mark Crichton <crichton@gimp.org>
297 * sparc/tramp.c: More cleanup of the trampoline code. Still some
298 problems with it w.r.t. delegates.
300 2002-09-25 Mark Crichton <crichton@gimp.org>
302 * sparc/tramp.c: Off by one error. Whoops. Trampoline code should
305 2002-09-24 Mark Crichton <crichton@gimp.org>
307 * sparc/tramp.c: Works as well as the old code did. Cleanup is
308 finished. The framework now for adding more type support is in,
309 and should be a *lot* cleaner.
311 2002-09-22 Mark Crichton <crichton@gimp.org>
313 * sparc/tramp.c: Completely broke trampolining on SPARC processors.
314 The code needed a nasty cleanup, so most of it is rewritten.
317 2002-08-20 Mark Crichton <crichton@gimp.org>
319 * sparc/tramp.c (mono_create_trampoline): Now works on Sparc. Tested
320 on an Ultra 2 running Linux.
322 Mon Aug 5 19:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
324 * x86/tramp.c: fix random memory read in mono_create_method_pointer.
326 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
328 * x86/tramp.c (mono_create_trampoline): fixed stack_size bug
330 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
332 * x86/tramp.c (mono_create_method_pointer): allocate space for
334 (mono_create_trampoline): also push the value type pointer for
335 methods returning value types.
336 (mono_create_method_pointer): support valuetype returns.
338 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
340 * x86/tramp.c: remove code to handle PInvoke because this is no
342 (mono_create_method_pointer): return method->addr for pinvoke methods
344 Fri Jul 19 14:18:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
346 * x86/tramp.c: fix float loads. Simple delegate marshaling fix.
348 2002-07-08 Radek Doulik <rodo@ximian.com>
350 * ppc/tramp.c: marshaling for SZARRAY
352 2002-07-05 Radek Doulik <rodo@ximian.com>
354 * ppc/tramp.c: removed magic hack
356 Tue Jun 18 10:21:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
358 * x86/tramp.c: marshal simple arrays correctly.
360 2002-05-27 Miguel de Icaza <miguel@ximian.com>
362 * x86/x86-codegen.h: Set the standard header format.
364 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
366 * x86/tramp.c (mono_create_method_pointer): removed the magic
367 trick to store the function pointer in the prolog and use the same
368 mechanism as in the jit.
370 2002-05-13 Radek Doulik <rodo@ximian.com>
372 * ppc/tramp.c (emit_save_parameters): fix I8 parameters
374 2002-05-06 Sergey Chaban <serge@wildwestsoftware.com>
376 * x86/x86-codegen.h: added missing shifts;
377 8-bit ALU operations (reg-reg);
378 macro for FPU ops with integer operand;
379 FIST macro (without pop);
381 Mon Apr 22 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
383 * x86/x86-codegen.h: added loop instructions and made x86_patch fully
386 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
388 * x86/tramp.c (mono_create_trampoline): support internalcall
391 Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
393 * x86/tramp.c: fix advancement of argument position on the stack.
395 Sat Mar 16 19:12:57 CET 2002 Paolo Molaro <lupus@ximian.com>
397 * x86/tramp.c: increase default allocated size for trampolines
398 and assert on overflow.
400 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
402 * x86/tramp.c (mono_create_trampoline): dont use fld/fst to copy
405 Mon Mar 11 16:14:29 CET 2002 Paolo Molaro <lupus@ximian.com>
407 * x86/x86-codegen.h: addex x86_clear_reg() and changed
408 x86_mov_reg_imm() to not check for imm == 0.
410 Thu Feb 28 12:34:21 CET 2002 Paolo Molaro <lupus@ximian.com>
412 * x86/tramp.c: start handling of more complex marshaling stuff.
414 2002-02-25 Sergey Chaban <serge@wildwestsoftware.com>
416 * arm: added ARM support code.
417 * Makefile.am: added arm to DIST_SUBDIRS.
419 2002-02-24 Radek Doulik <rodo@ximian.com>
421 * ppc/tramp.c (mono_create_method_pointer): basic delegates
422 implementation, it works for simple delegates now and I am already
423 pretty close to have it working for every delegates, but I am
424 going to sleep and finish it tomorrow?
425 (mono_create_method_pointer): implements delegates with parameters
428 2002-02-22 Jeffrey Stedfast <fejj@ximian.com>
430 * sparc/tramp.c (mono_create_trampoline): Much tinkering to get
431 the opcodes more correct. Still needs a lot of work.
433 2002-02-19 Radek Doulik <rodo@ximian.com>
435 * ppc/tramp.c (emit_save_parameters): don't start saving 64bit values to
437 added stack saving for most arguments
439 Tue Feb 19 20:19:38 CET 2002 Paolo Molaro <lupus@ximian.com>
441 * x86/tramp.c: avoid pointer arthmetric (pointed out by Serge).
443 2002-02-17 Radek Doulik <rodo@ximian.com>
445 * ppc/tramp.c: fixed minimal stack size, fixed string parameters,
446 fix byte and half word parameters
447 (mono_string_new_wrapper): new helper function, cut&pasted from
448 x86, modified to check for NULL text to avoid branching in
450 (calculate_sizes): updated for string retval changes
451 (emit_call_and_store_retval): updated for string retval
453 * ppc/ppc-codegen.h (ppc_mr): added lhz, lbz, sth
455 2002-02-16 Radek Doulik <rodo@ximian.com>
457 * ppc/tramp.c (emit_call_and_store_retval): support U2, I2, CHAR
459 Mon Feb 11 18:40:04 CET 2002 Paolo Molaro <lupus@ximian.com>
461 * sparc/*: sparc codegen header and some untested trampoline code.
463 Mon Feb 11 12:32:35 CET 2002 Paolo Molaro <lupus@ximian.com>
465 * x86/tramp.c: fix handling of multiple marshaleed strings.
466 * x86/x86-codegen.h: some code to patch branch displacements.
468 Fri Feb 1 16:03:00 CET 2002 Paolo Molaro <lupus@ximian.com>
470 * x86/tramp.c, ppc/tramp.c: implement mono_method_pointer_get ().
472 2002-01-23 Miguel de Icaza <miguel@ximian.com>
474 * x86/tramp.c (mono_create_trampoline): Do not try to create a
475 mono_string_new if the return value from the PInvoke code is
478 Mon Jan 14 11:50:16 CET 2002 Paolo Molaro <lupus@ximian.com>
480 * x86/x86-codegen.c: added overflow condition code and some aliases
483 Thu Jan 10 21:01:08 CET 2002 Paolo Molaro <lupus@ximian.com>
485 * x86/tramp.c: mono_create_trampoline (): the runtime argument is
486 needed to handle correctly delegates, the previous change in handling
487 the string return type broke them.
489 Tue Jan 8 22:38:41 MST 2002 Matt Kimball <matt@kimball.net>
491 * x86/tramp.c: handle strings returned from functions in external
492 libraries by converting to a Mono string object after the pinvoke'd
495 Sat Jan 5 15:51:06 CET 2002 Paolo Molaro <lupus@ximian.com>
497 * x86/tramp.c: handle short integer return types.
499 Thu Dec 20 20:13:07 CET 2001 Paolo Molaro <lupus@ximian.com>
501 * x86/tramp.c: fix create_method_pointer() to pass the arguments
502 correctly and add check for overflow.
504 Thu Dec 13 15:56:53 CET 2001 Paolo Molaro <lupus@ximian.com>
506 * x86/x86-codegen.h: x86_mov_memindex_imm() added.
508 2001-11-29 Radek Doulik <rodo@ximian.com>
510 * ppc/tramp.c: use r12 which is volatile instead of non-volatile
513 * Makefile.am (libmonoarch_la_LIBADD): added ppc to DIST_SUBDIRS
514 generate libmonoarch for ppc
516 Tue Nov 27 15:24:07 CET 2001 Paolo Molaro <lupus@ximian.com>
518 * x96/x86-codegen.c: x86_lea_memindex() added.
520 Thu Nov 15 17:41:01 CET 2001 Paolo Molaro <lupus@ximian.com>
522 * x86/tramp.c: handle enums with underlying type different from int32.
524 Wed Nov 14 19:21:26 CET 2001 Paolo Molaro <lupus@ximian.com>
526 * x86/tramp.c: handle boolean as a return value.
527 * x96/x86-codegen.c: x86_widen_memindex() added.
529 2001-11-07 Miguel de Icaza <miguel@ximian.com>
531 * x86/tramp.c: Include stdlib to kill warning.
533 Mon Oct 22 15:20:14 CEST 2001 Paolo Molaro <lupus@ximian.com>
535 * x86/tramp.c: handle boolean, u1 and i1 as return values.
537 Wed Oct 10 16:07:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
539 * x86/x86-codegen.c: added x86_set_{reg,mem,membase}.
541 Mon Oct 8 16:13:07 CEST 2001 Paolo Molaro <lupus@ximian.com>
543 * x86/tramp.c: remove mono_get_ansi_string () and use
544 mono_string_to_utf8 () instead.
546 Thu Oct 4 19:09:13 CEST 2001 Paolo Molaro <lupus@ximian.com>
548 * x86/tramp.c: allow marshalling valuetypes if they are
551 Mon Oct 1 18:48:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
553 * x86/tramp.c: fix thinko (s/SUB/ADD/) in stack adjustment
554 and avoid a couple of unnecessary instructions.
556 Fri Sep 28 19:43:12 CEST 2001 Paolo Molaro <lupus@ximian.com>
558 * x86/tramp.c: marshal valuetypes that are enums.
560 Thu Sep 27 15:34:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
562 * x86/x86-codegen.h: in memindex operand you can use X86_NOBASEREG
565 Wed Sep 26 16:29:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
567 * x86/x86-codegen.h: added memindex addressing mode encoding
568 (and mov to/from register opcodes).
570 Mon Sep 24 18:49:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
572 * x86/tramp.c: don't change a MONO_TYPE_STRING to a char*
573 when it's an argument to an internalcall.
575 Sun Sep 23 13:44:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
577 * x86/tramp.c: handle MONO_TYPE_CLASS in trampolines.
579 2001-09-21 Dietmar Maurer <dietmar@ximian.com>
581 * x86/x86-codegen.h (x86_breakpoint): added.
583 Tue Sep 18 13:23:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
585 * x86/x86-codegen.h: remove C++ comments.
587 2001-09-17 Dietmar Maurer <dietmar@ximian.com>
589 * x86/x86-codegen.h (x86_alu_reg_reg): replaced src/dest
591 Mon Sep 10 17:26:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
593 * Makefile.am, x86/Makefile.am: conditional compile logic
594 to make porting to different targets easier.
596 Fri Sep 7 18:43:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
598 * x86/x86-codegen.h: fixes and x86_mov_membase_imm ().
599 * x86/tramp.c: implemented mono_create_method_pointer ():
600 creates a native pointer to a method implementation that can be
601 used as a normal C callback.
603 Thu Sep 6 15:38:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
605 * x86/x86-codegen.h: added x86_rdtsc() and fixes.
606 * x86/tramp.c: create trampolines to call pinvoke methods.
607 * x86/Makefile.am: create a libmonoarch convenience library.
609 Mon Aug 27 09:29:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
611 * x86/x86-codegen.h: fix x86_call_code (). x86_mov_regp_reg () added.
613 Sat Aug 18 12:40:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
615 * x86/x86-codegen.h: fix a couple of buglets and add x86_regp_emit().
617 Wed Aug 8 15:30:05 CEST 2001 Paolo Molaro <lupus@ximian.com>
619 * x86/x86-codegen.h, x86/test.c: added x86 code emitter with