add spec file for monkeywrench
[mono-project/dkf.git] / mono / arch / ChangeLog
blobcc9f0ecd74a35183be5feae0f094349724157b24
1 2009-08-14  Zoltan Varga  <vargaz@gmail.com>
3         * arm/arm-codegen.h: Add armv6 MOVW/MOVT.
5 2009-07-03  Jerry Maine  <crashfourit@gmail.com>
6         
7         Contributed under the terms of the MIT/X11 license by
8         Jerry Maine <crashfourit@gail.com>.
10         * amd64/amd64-codegen.h: Added missing code gen marco for single packed square root.
12 Fri Jul 24 16:54:13 CEST 2009 Steven Munroe  <munroesj@us.ibm.com>
14         This patch is contributed under the terms of the MIT/X11 license
15         
16         * arch/ppc/ppc-codegen.h (ppc_ha): Define high adjusted
17         conversion to support combining addis for bits 32-47 with
18         signed load/store diplacements for bits 48-63.
19         (ppc_fcfidx, ppc_fctidx, ppc_fctidzx): Share with PPC32.
20         These instructions are availble to 32-bit programs on 64-bit
21         hardware and 32-bit both starting with PowerISA V2.01.
22         [__mono_ppc64__]: Define ppc_mftgpr and ppc_mffgpr for Power6
23         native mode.
24         [!__mono_ppc64__]: Define ppc_is_imm32 as constant true for
25         ppc32.
27 2009-07-20  Zoltan Varga  <vargaz@gmail.com>
29         * amd64/amd64-codegen.h (amd64_sse_pminud_reg_reg): Fix the encoding
30         of this instruction.
32 2009-07-13  Zoltan Varga  <vargaz@gmail.com>
34         * x86/x86-codegen.h: Applied patch from Marian Salaj <salo3@atlas.cz>.
35         Fix encoding of PMINSW and PMINSD. Fixes #521662.
37 2009-06-22  Zoltan Varga  <vargaz@gmail.com>
39         * ppc/ppc-codegen.h: Rework the naming of the load/store macros,
40         ldr/str now handle register sized quantities, while ldptr/stptr handle
41         pointer sized quantities.
43 2009-06-20  Zoltan Varga  <vargaz@gmail.com>
45         * ppc/ppc-codegen.h: Fix the last change to avoid self-assignments inside
46         macros.
47         
48         * ppc/ppc-codegen.h: Add ppc_ldr/ppc_str macros to store regsize quantities.
49         Handle little endian host platforms in ppc_emit32.
51 2009-10-06  Jerry Maine  <crashfourit@gmail.com>
52         
53         Contributed under the terms of the MIT/X11 license by
54         Jerry Maine <crashfourit@gail.com>.
56         * amd64/amd64-codegen.h: Add marcos for coding two byte SIMD/SSE opcodes.
57         Added comments to help tell the different types of SSE code gen marcos appart.
59 2009-04-06  Zoltan Varga  <vargaz@gmail.com>
61         * arm/arm-vfp-codegen.h: Add ARM_FSITOS/ARM_FSITOD.
63 2009-04-03  Zoltan Varga  <vargaz@gmail.com>
65         * amd64/amd64-codegen.h: Add macros for decoding the SIB byte.
67 2009-04-02  Zoltan Varga  <vargaz@gmail.com>
69         * arm/arm-vfp-codegen.h: Add missing VFP codegen macros.
71 2009-03-06  Zoltan Varga  <vargaz@gmail.com>
73         * arm/tramp.c: Include a change from the debian patches. Avoid #include-ing
74         a file in the middle of a function.
76 2009-02-27  Zoltan Varga  <vargaz@gmail.com>
78         * arm/{arm_fpamacros.h, arm_vfpmacros.h}: Remove these files, they are
79         autogenerated.
81 2009-02-02  Mark Probst  <mark.probst@gmail.com>
83         Contributed under the terms of the MIT/X11 license by Steven
84         Munroe <munroesj@us.ibm.com>.
86         * ppc/ppc-codegen.h: Make operand order and case consistent
87         (assembler order) for ppc_load_reg_update, ppc_load_multiple_regs,
88         ppc_store_multiple_regs, ppc_lwz, ppc_lhz, ppc_lbz,
89         ppc_stw,ppc_sth, ppc_stb, ppc_stwu, ppc_lbzu, ppc_lfdu, ppc_lfsu,
90         ppc_lfsux, ppc_lfsx, ppc_lha, ppc_lhau, ppc_lhzu, ppc_lmw,
91         ppc_lwzu, ppc_stbu, ppc_stfdu, ppc_stfsu, ppc_sthu, ppc_stmw.  Use
92         "i" or "ui" instead of "d" for immediated operands to immediate
93         arthimetic and logical instructions in macros ppc_addi, ppc_addis,
94         ppc_ori, ppc_addic, ppc_addicd, ppc_andid, ppc_andisd.
95         [__mono_ppc64__]: Make operand order and case consistent
96         (assembler order) for ppc_load_multiple_regs,
97         ppc_store_multiple_regs.  Simplify the DS form and make them
98         consistent with D forms for ppc_load_reg, ppc_load_reg_update,
99         ppc_store_reg, ppc_store_reg_update. ppc_ld, ppc_lwa, ppc_ldu,
100         ppc_std, ppc_stdu.  Define ppc_lwax and ppc_lwaux.
102 2009-01-19 Rodrigo Kumpera  <rkumpera@novell.com>
104         * x86/x86-codegen.h: Add x86_movd_xreg_membase.
106 2008-12-19  Mark Probst  <mark.probst@gmail.com>
108         * ppc/ppc-codegen.h: Fixed the argument order for lwzu in
109         ppc_load_reg_update.
111 2008-12-12  Mark Mason  <mmason@upwardaccess.com>
113         * mips/mips-codegen.h: Changes to support n32.
114         
115 2008-12-10  Mark Probst  <mark.probst@gmail.com>
117         * ppc/ppc-codegen.h: A few new macros for the final PPC/PPC64
118         merge.
120 2008-12-05  Mark Probst  <mark.probst@gmail.com>
122         * ppc/ppc-codegen.h: ppc_load_func must use ppc_load_sequence.
123         Added ppc_compare_log.
125 2008-12-05  Mark Probst  <mark.probst@gmail.com>
127         * ppc/ppc-codegen.h: Added ppc_load_func for PPC32.  Added
128         ppc_load/store_multiple_regs and ppc_compare_reg_imm.
130 2008-12-02  Mark Probst  <mark.probst@gmail.com>
132         * ppc/ppc-codegen.h: Opcodes for floating point conversions from
133         64 bit integers.
135         Code submitted by andreas.faerber@web.de at
136         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
137         X11/MIT license.
139 2008-11-28  Mark Probst  <mark.probst@gmail.com>
141         * ppc/ppc-codegen.h: #define for the maximum length of a load
142         sequence.
144 2008-11-21  Mark Probst  <mark.probst@gmail.com>
146         * ppc/ppc-codegen.h: Make ppc_is_[u]imm16() work with 64 bit
147         values.
149 2008-11-20 Rodrigo Kumpera  <rkumpera@novell.com>
151         * x86/x86-codegen.h: Add X86_SSE_MOVHPD_REG_MEMBASE and renamed MOVS to MOVSD.
153 2008-11-20 Rodrigo Kumpera  <rkumpera@novell.com>
155         * x86/x86-codegen.h: Add X86_SSE_MOVS_ reg/membase variants.
157         * x86/x86-codegen.h: Add x86_sse_alu_pd_reg_membase_imm.
159         * x86/x86-codegen.h: Sort the x86_sse_alu_* macros decently.
161 2008-11-20  Mark Probst  <mark.probst@gmail.com>
163         * ppc/ppc-codegen.h: Use ppc_load_reg instead of ppc_ld in
164         ppc_load_func to fix the 2 bit shift.
166 2008-11-20  Mark Probst  <mark.probst@gmail.com>
168         * ppc/ppc-codegen.h: 64 bit division opcodes.
170         Code submitted by andreas.faerber@web.de at
171         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
172         X11/MIT license.
174 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
176         * arm/Makefile.am (libmonoarch_arm_la_SOURCES): Don't build tramp.c, it is only
177         used by the interpreter.
179 2008-11-20 Rodrigo Kumpera  <rkumpera@novell.com>
181         * x86/x86-codegen.h: Add PEXTR B/W/D.
183 2008-11-18 Rodrigo Kumpera  <rkumpera@novell.com>
185         * x86/x86-codegen.h: Add PINSR B/W/D.
187 2008-11-18  Mark Probst  <mark.probst@gmail.com>
189         * ppc/ppc-codegen.h: Macro for nop added.
191 2008-11-18  Mark Probst  <mark.probst@gmail.com>
193         * ppc/ppc-codegen.h: PPC64 code generation macros.
195         Based on code submitted by andreas.faerber@web.de at
196         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
197         X11/MIT license.
199 2008-11-18  Mark Probst  <mark.probst@gmail.com>
201         * ppc/ppc-codegen.h: A few fixes and additions.
203         Based on code submitted by andreas.faerber@web.de at
204         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
205         X11/MIT license.
207 2008-11-17  Rodrigo Kumpera  <rkumpera@novell.com>
209         * x86/x86-codegen.h: Fix comment about the version of PCMPGTQ.
211         * x86/x86-codegen.h: Add movsd constant and x86_sse_alu_sd_membase_reg
212         macro.
214 2008-11-17  Rodrigo Kumpera  <rkumpera@novell.com>
216         * x86/x86-codegen.h: Add X86_SSE_MOVHPD_MEMBASE_REG constant
217         and x86_sse_alu_pd_membase_reg/x86_sse_alu_membase_reg macros.
219 2008-11-15  Andreas Faerber  <andreas.faerber@web.de>
221         * ppc/test.c: Add support for Mac OS X.
223         Code is contributed under MIT/X11 license.
225 2008-11-13  Rodrigo Kumpera  <rkumpera@novell.com>
227         * x86/x86-codegen.h: Remove not used macro x86_pshufd_reg_reg.
229 2008-11-04  Rodrigo Kumpera  <rkumpera@novell.com>
231         * x86/x86-codegen.h: Add store nta.
233 2008-11-03  Rodrigo Kumpera  <rkumpera@novell.com>
235         * x86/x86-codegen.h: Add prefetch instruction
236         and x86_sse_alu_reg_membase macro.
238 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
240         * x86/x86-codegen.h: Add long version of the packed integer
241         ops.
243 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
245         * x86/x86-codegen.h: Add movddup.
247 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
249         * x86/x86-codegen.h: Add signed pack with saturation.
251 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
253         * x86/x86-codegen.h: Add signed packed mul high.
255 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
257         * x86/x86-codegen.h: Add signed packed max, min, add/sub with saturation
258         and compare greater.
260 2008-10-20  Rodrigo Kumpera  <rkumpera@novell.com>
262         * x86/x86-codegen.h: Add multiply and store high.
264 2008-10-17  Rodrigo Kumpera  <rkumpera@novell.com>
266         * x86/x86-codegen.h: Add packed int shuffle.
268 2008-10-16  Rodrigo Kumpera  <rkumpera@novell.com>
270         * x86/x86-codegen.h: Add packed int compare equals and
271         psabw.
273 2008-10-15  Rodrigo Kumpera  <rkumpera@novell.com>
275         * x86/x86-codegen.h: Add packed int max/min/avg/shuffle and extract mask.
277 2008-10-14  Rodrigo Kumpera  <rkumpera@novell.com>
279         * x86/x86-codegen.h: Add movsldup and movshdup.
281 2008-10-13  Rodrigo Kumpera  <rkumpera@novell.com>
283         * x86/x86-codegen.h: Add remaining FP sse1 ops.
284         Add sse ps encoding with imm operand.
285         Add remaining sse1 ops.
287 2008-10-12  Rodrigo Kumpera  <rkumpera@novell.com>
289         * x86/x86-codegen.h: Add macro for sse41 ops.
290         Add defined for pack ops, dword shifts/mul/pack.
292 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
294         * amd64/amd64-codegen.h (amd64_jump_code_size): Fix the 64 bit support.
296 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
298         * amd64/amd64-codegen.h (amd64_jump_code_size): Handle non 32-bit targets.
300 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
302         * x86/x86-codegen.h: Add macros for sse shift, pack, unpack,
303         saturated math and packed byte/word/dword math.
305 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
307         * x86/x86-codegen.h: Add macros for SSE instructions.
309 2008-09-27  Mark Probst  <mark.probst@gmail.com>
311         * ppc/ppc-codegen.h: A few typecasts to fix compiler warnings.
313 2008-09-07  Mark Probst  <mark.probst@gmail.com>
315         * ppc/ppc-codegen.h (ppc_load): Inserted cast to fix some
316         warnings.
318 2008-06-16  Mark Probst  <mark.probst@gmail.com>
320         * amd64/amd64-codegen.h: Removed extraneous parenthesis in a macro
321         nobody uses.
323 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
325         * amd64/amd64-codegen.h (amd64_padding_size): Rewrite this to use the
326         instructions recommended by the amd64 manual.
328 2008-04-19  Zoltan Varga  <vargaz@gmail.com>
330         * amd64/amd64-codegen.h (amd64_is_imm32): Use gint64 instead of glong because of
331         win64.
333 2008-03-13  Geoff Norton  <gnorton@novell.com>
335         * arch/arm/tramp.c:  Dont compile this on PLATFORM_MACOSX
337 2008-02-18  Zoltan Varga  <vargaz@gmail.com>
339         * amd64/amd64-codegen.h (amd64_movsxd_reg_mem): New codegen macro.
341 2008-02-14  Zoltan Varga  <vargaz@gmail.com>
343         * amd64/amd64-codegen.h (amd64_alu_membase8_imm_size): New codegen macro.
345 2008-02-08  Zoltan Varga  <vargaz@gmail.com>
347         * arm/arm-codegen.h: Fix the ordering of arguments for some load/store opcodes
348         so they are consistent.
350 2008-01-24  Zoltan Varga  <vargaz@gmail.com>
352         * Makefile.am (SUBDIRS): Or if INTERP_SUPPORTED is true.
353         
354         * Makefile.am (SUBDIRS): Only set this on arm.
356 2007-11-20  Zoltan Varga  <vargaz@gmail.com>
358         * amd64/amd64-codegen.h (amd64_alu_reg_imm_size): Prefer the smaller 
359         instruction encoding.
361 2007-11-03  David S. Miller  <davem@davemloft.net>
363        * sparc/sparc-codegen.h (sparc_set32, sparc_set): A plain sethi
364        can be used if the constant value only has the top 22 bits set.
366 2007-11-01  Geoff Norton  <gnorton@novell.com>
368         * x86/Makefile.am:  Only compile tramp.c if INTERP_SUPPORTED is true
369         Fixes the build on Leopard.
371 2007-11-01  Geoff Norton  <gnorton@novell.com>
373         * ppc/Makefile.am:  Only compile tramp.c if INTERP_SUPPORTED is true
374         Fixes the build on Leopard.
376 2007-10-26  Jonathan Chambers <joncham@gmail.com>
378         * amd64/amd64-codegen.h: Begin Win64 port. Use AMD64_ARG_REG#
379         defines to access param registers. Replace long usage with
380         gsize as sizeof(long) != sizeof(void*) on Win64.
382         Code is contributed under MIT/X11 license.
384 2007-10-09  Zoltan Varga  <vargaz@gmail.com>
386         * amd64/amd64-codegen.h (amd64_jump_membase_size): Remove an unneccesary
387         rex prefix which trips up valgrind.
389 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
391         * amd64/amd64-codegen.h: Remove some unused rex prefixes.
393 Wed Jul 4 15:29:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
395         * x86/x86-codegen.h: added minimal sse instructions currently
396         needed by the JIT.
398 2007-06-13  Randolph Chung  <tausq@debian.org>
400         * hppa/hppa-codegen.h: Update with more instructions.
401         * hppa/tramp.c: Disable for linux since we don't support the
402         interpreter.
404 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
406         * amd64/amd64-codegen.h (amd64_call_reg): Remove a got prefix which isn't needed.
408 2007-04-23  Zoltan Varga  <vargaz@gmail.com>
410         * alpha/alpha-codegen.h: More alpha port work from 
411         Sergey Tikhonov <tsv@solvo.ru>.
413 Mon Mar 12 17:07:32 CET 2007 Paolo Molaro <lupus@ximian.com>
415         * amd64/amd64-codegen.h: removed some useless size rex prefixes.
417 Wed Jan 24 21:00:40 CET 2007 Paolo Molaro <lupus@ximian.com>
419         * arm/arm-codegen.h: fixed encoding of short/byte load/store
420         instructions with negative immediate offsets.
422 Mon Nov 20 17:36:45 CET 2006 Paolo Molaro <lupus@ximian.com>
424         * arm/arm-codegen.h: added suppot for thumb interworking instructions.
426 Wed Nov 15 16:56:53 CET 2006 Paolo Molaro <lupus@ximian.com>
428         * mips/*: fixes by Mark E Mason <mark.e.mason@broadcom.com>.
430 2006-09-12  Zoltan Varga  <vargaz@gmail.com>
432         * alpha/alpha-codegen.h: More alpha updates from Sergey Tikhonov <tsv@solvo.ru>.
434 Tue Sep 12 13:09:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
436         * arm/*: VFP floating point format code generation support.
438 2006-09-12  Zoltan Varga  <vargaz@gmail.com>
440         * ia64/ia64-codegen.h: Add xmpy_l/u pseudo ops.
442 2006-07-19  Zoltan Varga  <vargaz@gmail.com>
444         * amd64/amd64-codegen.h: Fix amd64_mov_mem_reg.
446         * alpha/alpha-codegen.h alpha/test.c alpha/tramp.c: Applied patch from 
447         Sergey Tikhonov <tsv@solvo.ru>. Updates to alpha support.
449 Thu Jun 15 16:59:36 CEST 2006 Paolo Molaro <lupus@ximian.com>
451         * ppc/ppc-codegen.h: reduce noisy build warnings by
452         casting to the more commonly used unsigned char type
453         (from johannes@sipsolutions.net (Johannes Berg)).
455 2006-05-14  Zoltan Varga  <vargaz@gmail.com>
457         * ia64/ia64-codegen.h (ia64_fetchadd8_acq_hint_pred): Fix encoding of this
458         opcode.
460 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
462         * Makefile.am (SUBDIRS): Revert the last change as arm depends on the old
463         behaviour.
465 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
467         * sparc/sparc-codegen.h (sparc_inst_i): New disassembly macro.
469 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
471         * Makefile.am (SUBDIRS): Avoid compiling subdirs needed by the
472         interpreter.
474 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
476         * sparc/sparc-codegen.h (sparc_membar): Add membar instruction.
478 2005-10-30  Zoltan Varga  <vargaz@gmail.com>
480         * ia64/ia64-codegen.h (ia64_m17): Fix a warning.
482 2005-10-16  Zoltan Varga  <vargaz@freemail.hu>
484         * amd64/amd64-codegen.h (AMD64_CALLEE_SAVED_REGS): Add %rbp.
486 2005-09-27  Raja R Harinath  <rharinath@novell.com>
488         * arm/dpiops.sh, arm/fpaops.h: Output to stdout.
489         * arm/Makefile.am (arm_dpimacros.h, arm_fpamacros.h): Update.  Fix
490         for srcdir != builddir.
492 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
494         * ia64/ia64-codegen.h (ia64_unw_pop_frames): New unwind macro.
496 2005-09-10  Zoltan Varga  <vargaz@gmail.com>
498         * ia64/ia64-codegen.h: Remove 'manual' emitting of instructions. 
499         Integrate emission of unwind directives into the assembly macros.
501 2005-09-04  Zoltan Varga  <vargaz@gmail.com>
503         * ia64/ia64-codegen.h (ia64_no_stop): New macro.
505 2005-08-27  Zoltan Varga  <vargaz@gmail.com>
507         * ia64/ia64-codegen.h: Fix some bugs.
509         * ia64/codegen.c: Update to work with latest ia64-codegen.h
511 2005-08-26  Zoltan Varga  <vargaz@gmail.com>
513         * ia64/Makefile.am: Distribute ia64-codegen.h.
515 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
517         * ia64/ia64-codegen.h: Improve ins scheduling and fix some bugs.
519 2005-08-17  Zoltan Varga  <vargaz@freemail.hu>
521         * ia64/ia64-codegen.h: Add dependency information for all instructions.
523 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
525         * ia64/ia64-codegen.h: Ongoing IA64 work.
527 Wed Jul 20 18:01:54 BST 2005 Paolo Molaro <lupus@ximian.com>
529         * arm/*: more codegen macros.
531 2005-07-18  Zoltan Varga  <vargaz@freemail.hu>
533         * ia64/ia64-codegen.h (ia64_is_adds_imm): Ongoing IA64 work.
535 2005-06-23  Zoltan Varga  <vargaz@freemail.hu>
537         * ia64/ia64-codegen.h: Add some new pseudo ops.
539 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
541         * ia64/ia64-codegen.h: Fix encoding of ia64_fclass.
543 2005-06-12  Zoltan Varga  <vargaz@freemail.hu>
545         * ia64/ia64-codegen.h: Ongoing IA64 work.
547 2005-06-09  Zoltan Varga  <vargaz@freemail.hu>
549         * ia64/ia64-codegen.h: Ongoing IA64 work.
551 2005-05-30  Zoltan Varga  <vargaz@freemail.hu>
553         * ia64/codegen.c: Fix it after latest changes.
555 2005-05-29  Zoltan Varga  <vargaz@freemail.hu>
557         * ia64/ia64-codegen.h: Ongoing IA64 work.
558         
559         * ia64/ia64-codegen.h: Ongoing IA64 work.
561 2005-05-28  Zoltan Varga  <vargaz@freemail.hu>
563         * ia64/ia64-codegen.h: Ongoing IA64 work.
564         
565         * ia64/ia64-codegen.h: Ongoing IA64 work.
567         * ia64/ia64-codegen.h: Ongoing IA64 work.
569 2005-05-26  Zoltan Varga  <vargaz@freemail.hu>
571         * ia64/ia64-codegen.h: Ongoing IA64 work.
573 2005-05-22  Zoltan Varga  <vargaz@freemail.hu>
575         * ia64/ia64-codegen.h: Ongoing IA64 work.
576         
577         * ia64/ia64-codegen.h: Ongoing IA64 work.
579         * ia64/ia64-codegen.h: Ongoing IA64 work.
581 2005-05-21  Zoltan Varga  <vargaz@freemail.hu>
583         * ia64/ia64-codegen.h: Ongoing IA64 work.
585 2005-05-19  Zoltan Varga  <vargaz@freemail.hu>
587         * ia64/ia64-codegen.h ia64/codegen.c: Ongoing ia64 work.
589 2005-05-18  Zoltan Varga  <vargaz@freemail.hu>
591         * ia64/ia64-codegen.h (ia64_codegen_init): Rename macro parameter.
593 2005-05-14  Zoltan Varga  <vargaz@freemail.hu>
595         * Makefile.am: Only compile libmonoarch if the interpreter is compiled.
597         * ia64/ia64-codegen.h: Add IA64 code generation macros.
599         * Makefile.am: Add ia64 subdir.
601 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
603         * alpha/tramp.c: Applied patch from Jakub Bogusz <qboosh@pld-linux.org>.
605 2005-03-28  Zoltan Varga  <vargaz@freemail.hu>
607         * amd64/amd64-codegen.h: Avoid emitting a rex in some places.
609 2005-03-15  Zoltan Varga  <vargaz@freemail.hu>
611         * amd64/amd64-codegen.h (amd64_emit_rex): Emit a rex when accessing the
612         byte registers.
613         
614         * amd64/amd64-codegen.h (AMD64_BYTE_REGS): Add AMD64_BYTE_REGS macro.
616 2005-03-14  Zoltan Varga  <vargaz@freemail.hu>
618         * amd64/amd64-codegen.h: Add missing AMD64_XMM7.
620 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
622         * amd64/amd64-codegen.h: Remove some unneccesary REXes.
624 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
626         * amd64/amd64-codegen.h (amd64_sse_cvtsi2sd_reg_reg_size): Add _size
627         variants to some sse2 macros.
629         * amd64/amd64-codegen.h (amd64_sse_cvtsd2si_reg_reg): Make this convert
630         to a 64 bit value.
632 2005-03-06  Zoltan Varga  <vargaz@freemail.hu>
634         * amd64/amd64-codegen.h: Add some SSE2 instructions.
636 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
638         * amd64/amd64-codegen.h: Add xadd instructions.
639         
640         * amd64/amd64-codegen.h (amd64_jump_code_size): Do not emit a rex.
642 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
644         * amd64/amd64-codegen.h: Updates to support the PIC changes.
646 Fri Nov 19 17:29:22 CET 2004 Paolo Molaro <lupus@ximian.com>
648         * ppc/ppc-codegen.h: counter reg decrement branch values
649         (patch by Geoff Norton <gnorton@customerdna.com>).
651 2004-11-16  Patrik Torstensson <patrik.torstensson@gmail.com>
653         * x86/x86-codegen.h: added opcodes for xadd instructions
655 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
657         * amd64/x86-64-codegen.h: Get rid of this.
659 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
661         * amd64/amd64-codegen.h (amd64_imul_reg_membase_size): Fix REX
662         generation.
664 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
666         * amd64/amd64-codegen.h: More SSE work.
667         
668         * amd64/amd64-codegen.h: Add SSE2 instructions.
670 2004-08-21  Zoltan Varga  <vargaz@freemail.hu>
672         * amd64/amd64-codegen.h (X86_IS_BYTE_REG): Redefine X86_IS_BYTE_REG
673         since under amd64, all 16 registers have a low part.
675 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
677         * x86/x86-codegen.h: Add macros for accessing the mod/rm byte.
679 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
681         * amd64/amd64-codegen.h: Ongoing JIT work.
683 2004-07-29  Ben Maurer  <bmaurer@ximian.com>
685         * x86/x86-codegen.h: Add opcodes for cmp BYTE PTR [eax], imm
687 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
689         * amd64/amd64-codegen.h: Ongoing JIT work.
691 2004-07-24  Zoltan Varga  <vargaz@freemail.hu>
693         * amd64/amd64-codegen.h: Ongoing JIT work.
695 2004-07-23  Zoltan Varga  <vargaz@freemail.hu>
697         * amd64/amd64-codegen.h: Ongoing JIT work.
699 2004-07-23  zovarga  <vargaz@freemail.hu>
701         * amd64/amd64-codegen.h: Ongoing JIT work.
703 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
705         * sparc/sparc-codegen.h: Add SPARC64 support.
707 2004-05-07  Bernie Solomon  <bernard@ugsolutions.com>
709         * ppc/ppc-codegen.h: remove GCC-ism in ppc_emit32
711 2004-04-29  Bernie Solomon  <bernard@ugsolutions.com>
713         * ppc/tramp.c: use sizeof (stackval), fix
714         delegate tramp frame layout for Apple
716 2004-04-26  David Waite <mass@akuma.org>
718         * unknown.c: modify to have content for defined platforms (to
719         avoid ISO C warning)
721 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
723         * amd64/tramp.c:
724         * arm/tramp.c:
725         * hppa/tramp.c:
726         * ppc/tramp.c:
727         * s390/tramp.c:
728         * sparc/tramp.c:
729         * x86/tramp.c:
730         remove child from MonoInvocation as it isn't used.
732         * hppa/hppa-codegen.h:
733         fix displacements in FP instrs
735 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
737         * hppa/hppa-codegen.h: created
739         * hppa/tramp.c: changed style to be more like
740         other platforms.
742         * hppa/Makefile.am: add hppa-codegen.h
744 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
746         * sparc/sparc-codegen.h: Add v9 branches with prediction.
748 2004-03-15  Bernie Solomon  <bernard@ugsolutions.com>
750         * sparc/sparc-codegen.h: tweak sparc_mov_reg_reg
751         so Sun's dis command recognizes it.
753 2004-03-15  Zoltan Varga  <vargaz@freemail.hu>
755         * sparc/sparc-codegen.h: Add some v9 instructions.
757 2004-03-11  Zoltan Varga  <vargaz@freemail.hu>
759         * sparc/sparc-codegen.h: Ongoing sparc work.
761 2004-03-07  Duncan Mak  <duncan@ximian.com>
763         * Makefile.am: Removed the reference to 'x86-64'. This was the cause
764         of the missing Mono daily tarballs, 'make dist' wasn't working.
765         
766         We do have an 'amd64' directory, but it doesn't make it in 'make
767         dist'.
769 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
771         * sparc/sparc-codegen.h: Fix lots of opcodes + add new ones.
773         * sparc/tramp.c: Fix alignment of structures containing doubles.
775 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
777         * sparc/tramp.c: Implement all floating point argument passing conventions in
778         Sparc V8. Also fix structure passing in V8.
780 Thu Nov 13 16:24:29 CET 2003 Paolo Molaro <lupus@ximian.com>
782         * ppc/ppc-codegen.h: fixed most of the incorrect macros from ct.
784 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
786         * */tramp.c (mono_create_method_pointer): Rename to 
787         mono_arch_create_method_pointer, move common code to a new function in
788         interp.c.
790         * */tramp.c (mono_create_trampoline): Rename to 
791         mono_arch_create_trampoline for consistency.
792         
793 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
795         * x86/tramp.c: restore EDX after memcpy call
797 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
799         * Makefile.am: add hppa subdir 
801         * hppa/tramp.c: add initial implementation - this is 64 bit only
802         hppa/Makefile.am hppa/.cvsignore: added
804 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
806         * sparc/sparc-codegen.h sparc/tramp.c: add initial implementation
807         for V9 (64 bit), cover more 32 bit cases as well.
809 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
811         * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
813 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
815         * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
817 Tue Jul 1 13:03:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
819         * alpha/tramp.c: update from Laramie Leavitt (lar@leavitt.us).
821 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
823         * x86/x86-codegen.h (x86_set_reg): add an assertion - it does
824         not work for all registers.
826 Sat Feb 1 10:59:31 CET 2003 Paolo Molaro <lupus@ximian.com>
828         * alpha/*: update from Laramie.
830 Mon Jan 27 12:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
832         * alpha/*: start of the port to the alpha architecture by
833         Laramie Leavitt (<lar@leavitt.us>).
835 Tue Jan 21 17:29:53 CET 2003 Paolo Molaro <lupus@ximian.com>
837         * ppc/ppc-codegen.h: completed ppc native code generation by
838         Taylor Christopher P <ct@cs.clemson.edu>.
840 Fri Jan 17 21:14:18 CET 2003 Paolo Molaro <lupus@ximian.com>
842         * ppc/tramp.c: adapted to work for MacOSX (from a patch by 
843         John Duncan).
845 2002-11-11  Mark Crichton  <crichton@gimp.org>
847         * sparc/tramp.c: Added some disassembly bits for debugging.
849 2002-10-02  Mark Crichton  <crichton@gimp.org>
851         * sparc/tramp.c: More cleanup of the trampoline code.  Still some
852         problems with it w.r.t. delegates.
854 2002-09-25  Mark Crichton  <crichton@gimp.org>
856         * sparc/tramp.c: Off by one error.  Whoops.  Trampoline code should
857         now work properly.
859 2002-09-24  Mark Crichton  <crichton@gimp.org>
861         * sparc/tramp.c: Works as well as the old code did.  Cleanup is
862         finished.  The framework now for adding more type support is in,
863         and should be a *lot* cleaner.
864         
865 2002-09-22  Mark Crichton  <crichton@gimp.org>
867         * sparc/tramp.c: Completely broke trampolining on SPARC processors.
868         The code needed a nasty cleanup, so most of it is rewritten.
869         It will be fixed.
871 2002-08-20  Mark Crichton <crichton@gimp.org>
873         * sparc/tramp.c (mono_create_trampoline): Now works on Sparc.  Tested
874         on an Ultra 2 running Linux.
876 Mon Aug 5 19:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
878         * x86/tramp.c: fix random memory read in mono_create_method_pointer.
880 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
882         * x86/tramp.c (mono_create_trampoline): fixed stack_size bug
884 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
886         * x86/tramp.c (mono_create_method_pointer): allocate space for
887         value types.
888         (mono_create_trampoline): also push the value type pointer for
889         methods returning value types.
890         (mono_create_method_pointer): support valuetype returns.
892 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
894         * x86/tramp.c: remove code to handle PInvoke because this is no
895         longer needed.
896         (mono_create_method_pointer): return method->addr for pinvoke methods
898 Fri Jul 19 14:18:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
900         * x86/tramp.c: fix float loads. Simple delegate marshaling fix.
902 2002-07-08  Radek Doulik  <rodo@ximian.com>
904         * ppc/tramp.c: marshaling for SZARRAY
906 2002-07-05  Radek Doulik  <rodo@ximian.com>
908         * ppc/tramp.c: removed magic hack
910 Tue Jun 18 10:21:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
912         * x86/tramp.c: marshal simple arrays correctly.
914 2002-05-27  Miguel de Icaza  <miguel@ximian.com>
916         * x86/x86-codegen.h: Set the standard header format.
918 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
920         * x86/tramp.c (mono_create_method_pointer): removed the magic
921         trick to store the function pointer in the prolog and use the same
922         mechanism as in the jit.
924 2002-05-13  Radek Doulik  <rodo@ximian.com>
926         * ppc/tramp.c (emit_save_parameters): fix I8 parameters
928 2002-05-06  Sergey Chaban  <serge@wildwestsoftware.com>
930         * x86/x86-codegen.h: added missing shifts;
931         8-bit ALU operations (reg-reg);
932         macro for FPU ops with integer operand;
933         FIST macro (without pop);
935 Mon Apr 22 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
937         * x86/x86-codegen.h: added loop instructions and made x86_patch fully
938         useful.
940 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
942         * x86/tramp.c (mono_create_trampoline): support internalcall
943         String constructors
945 Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
947         * x86/tramp.c: fix advancement of argument position on the stack.
949 Sat Mar 16 19:12:57 CET 2002 Paolo Molaro <lupus@ximian.com>
951         * x86/tramp.c: increase default allocated size for trampolines
952         and assert on overflow.
954 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
956         * x86/tramp.c (mono_create_trampoline): dont use fld/fst to copy
957         R8 values
959 Mon Mar 11 16:14:29 CET 2002 Paolo Molaro <lupus@ximian.com>
961         * x86/x86-codegen.h: addex x86_clear_reg() and changed
962         x86_mov_reg_imm() to not check for imm == 0.
964 Thu Feb 28 12:34:21 CET 2002 Paolo Molaro <lupus@ximian.com>
966         * x86/tramp.c: start handling of more complex marshaling stuff.
968 2002-02-25  Sergey Chaban  <serge@wildwestsoftware.com>
970         * arm: added ARM support code.
971         * Makefile.am: added arm to DIST_SUBDIRS.
973 2002-02-24  Radek Doulik  <rodo@ximian.com>
975         * ppc/tramp.c (mono_create_method_pointer): basic delegates
976         implementation, it works for simple delegates now and I am already
977         pretty close to have it working for every delegates, but I am
978         going to sleep and finish it tomorrow?
979         (mono_create_method_pointer): implements delegates with parameters
980         and return value
982 2002-02-22  Jeffrey Stedfast  <fejj@ximian.com>
984         * sparc/tramp.c (mono_create_trampoline): Much tinkering to get
985         the opcodes more correct. Still needs a lot of work.
987 2002-02-19  Radek Doulik  <rodo@ximian.com>
989         * ppc/tramp.c (emit_save_parameters): don't start saving 64bit values to
990         even registers
991         added stack saving for most arguments
993 Tue Feb 19 20:19:38 CET 2002 Paolo Molaro <lupus@ximian.com>
995         * x86/tramp.c: avoid pointer arthmetric (pointed out by Serge).
997 2002-02-17  Radek Doulik  <rodo@ximian.com>
999         * ppc/tramp.c: fixed minimal stack size, fixed string parameters,
1000         fix byte and half word parameters 
1001         (mono_string_new_wrapper): new helper function, cut&pasted from
1002         x86, modified to check for NULL text to avoid branching in
1003         generated code
1004         (calculate_sizes): updated for string retval changes
1005         (emit_call_and_store_retval): updated for string retval
1007         * ppc/ppc-codegen.h (ppc_mr): added lhz, lbz, sth
1009 2002-02-16  Radek Doulik  <rodo@ximian.com>
1011         * ppc/tramp.c (emit_call_and_store_retval): support U2, I2, CHAR
1013 Mon Feb 11 18:40:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1015         * sparc/*: sparc codegen header and some untested trampoline code.
1017 Mon Feb 11 12:32:35 CET 2002 Paolo Molaro <lupus@ximian.com>
1019         * x86/tramp.c: fix handling of multiple marshaleed strings.
1020         * x86/x86-codegen.h: some code to patch branch displacements.
1022 Fri Feb 1 16:03:00 CET 2002 Paolo Molaro <lupus@ximian.com>
1024         * x86/tramp.c, ppc/tramp.c: implement mono_method_pointer_get ().
1026 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1028         * x86/tramp.c (mono_create_trampoline): Do not try to create a
1029         mono_string_new if the return value from the PInvoke code is
1030         NULL. 
1032 Mon Jan 14 11:50:16 CET 2002 Paolo Molaro <lupus@ximian.com>
1034         * x86/x86-codegen.c: added overflow condition code and some aliases
1035         for the other ccs.
1037 Thu Jan 10 21:01:08 CET 2002 Paolo Molaro <lupus@ximian.com>
1039         * x86/tramp.c: mono_create_trampoline (): the runtime argument is
1040         needed to handle correctly delegates, the previous change in handling
1041         the string return type broke them.
1043 Tue Jan  8 22:38:41 MST 2002 Matt Kimball <matt@kimball.net>
1044         
1045         * x86/tramp.c: handle strings returned from functions in external 
1046         libraries by converting to a Mono string object after the pinvoke'd 
1047         function returns
1048         
1049 Sat Jan 5 15:51:06 CET 2002 Paolo Molaro <lupus@ximian.com>
1051         * x86/tramp.c: handle short integer return types.
1053 Thu Dec 20 20:13:07 CET 2001 Paolo Molaro <lupus@ximian.com>
1055         * x86/tramp.c: fix create_method_pointer() to pass the arguments
1056         correctly and add check for overflow.
1058 Thu Dec 13 15:56:53 CET 2001 Paolo Molaro <lupus@ximian.com>
1060         * x86/x86-codegen.h: x86_mov_memindex_imm() added.
1061         
1062 2001-11-29  Radek Doulik  <rodo@ximian.com>
1064         * ppc/tramp.c: use r12 which is volatile instead of non-volatile
1065         r14 to avoid saving
1067         * Makefile.am (libmonoarch_la_LIBADD): added ppc to DIST_SUBDIRS
1068         generate libmonoarch for ppc
1070 Tue Nov 27 15:24:07 CET 2001 Paolo Molaro <lupus@ximian.com>
1072         * x96/x86-codegen.c: x86_lea_memindex() added.
1074 Thu Nov 15 17:41:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1076         * x86/tramp.c: handle enums with underlying type different from int32.
1078 Wed Nov 14 19:21:26 CET 2001 Paolo Molaro <lupus@ximian.com>
1080         * x86/tramp.c: handle boolean as a return value.
1081         * x96/x86-codegen.c: x86_widen_memindex() added.
1083 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
1085         * x86/tramp.c: Include stdlib to kill warning.
1087 Mon Oct 22 15:20:14 CEST 2001 Paolo Molaro <lupus@ximian.com>
1089         * x86/tramp.c: handle boolean, u1 and i1 as return values.
1091 Wed Oct 10 16:07:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
1093         * x86/x86-codegen.c: added x86_set_{reg,mem,membase}.
1095 Mon Oct 8 16:13:07 CEST 2001 Paolo Molaro <lupus@ximian.com>
1097         * x86/tramp.c: remove mono_get_ansi_string () and use
1098         mono_string_to_utf8 () instead.
1100 Thu Oct 4 19:09:13 CEST 2001 Paolo Molaro <lupus@ximian.com>
1102         * x86/tramp.c: allow marshalling valuetypes if they are
1103         4 bytes long.
1105 Mon Oct 1 18:48:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
1107         * x86/tramp.c: fix thinko (s/SUB/ADD/) in stack adjustment
1108         and avoid a couple of unnecessary instructions.
1110 Fri Sep 28 19:43:12 CEST 2001 Paolo Molaro <lupus@ximian.com>
1112         * x86/tramp.c: marshal valuetypes that are enums.
1114 Thu Sep 27 15:34:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
1116         * x86/x86-codegen.h: in memindex operand you can use X86_NOBASEREG
1117         as basereg.
1119 Wed Sep 26 16:29:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
1121         * x86/x86-codegen.h: added memindex addressing mode encoding
1122         (and mov to/from register opcodes).
1124 Mon Sep 24 18:49:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1126         * x86/tramp.c: don't change a MONO_TYPE_STRING to a char*
1127         when it's an argument to an internalcall.
1129 Sun Sep 23 13:44:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
1131         * x86/tramp.c: handle MONO_TYPE_CLASS in trampolines.
1133 2001-09-21  Dietmar Maurer  <dietmar@ximian.com>
1135         * x86/x86-codegen.h (x86_breakpoint): added.
1137 Tue Sep 18 13:23:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
1139         * x86/x86-codegen.h: remove C++ comments.
1141 2001-09-17  Dietmar Maurer  <dietmar@ximian.com>
1143         * x86/x86-codegen.h (x86_alu_reg_reg): replaced src/dest
1145 Mon Sep 10 17:26:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1147         * Makefile.am, x86/Makefile.am: conditional compile logic
1148         to make porting to different targets easier.
1150 Fri Sep 7 18:43:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1152         * x86/x86-codegen.h: fixes and x86_mov_membase_imm ().
1153         * x86/tramp.c: implemented mono_create_method_pointer ():
1154         creates a native pointer to a method implementation that can be 
1155         used as a normal C callback.
1157 Thu Sep 6 15:38:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1159         * x86/x86-codegen.h: added x86_rdtsc() and fixes.
1160         * x86/tramp.c: create trampolines to call pinvoke methods.
1161         * x86/Makefile.am: create a libmonoarch convenience library.
1163 Mon Aug 27 09:29:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1165         * x86/x86-codegen.h: fix x86_call_code (). x86_mov_regp_reg () added.
1167 Sat Aug 18 12:40:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1169         * x86/x86-codegen.h: fix a couple of buglets and add x86_regp_emit().
1171 Wed Aug 8 15:30:05 CEST 2001 Paolo Molaro <lupus@ximian.com>
1173         * x86/x86-codegen.h, x86/test.c: added x86 code emitter with
1174         test.