c3698dee859124632d2859a5fa8b5886f51df549
[mono.git] / mono / arch / ChangeLog
1 2009-06-22  Zoltan Varga  <vargaz@gmail.com>
2
3         * ppc/ppc-codegen.h: Rework the naming of the load/store macros,
4         ldr/str now handle register sized quantities, while ldptr/stptr handle
5         pointer sized quantities.
6
7 2009-06-20  Zoltan Varga  <vargaz@gmail.com>
8
9         * ppc/ppc-codegen.h: Fix the last change to avoid self-assignments inside
10         macros.
11         
12         * ppc/ppc-codegen.h: Add ppc_ldr/ppc_str macros to store regsize quantities.
13         Handle little endian host platforms in ppc_emit32.
14
15 2009-10-06  Jerry Maine  <crashfourit@gmail.com>
16         
17         Contributed under the terms of the MIT/X11 license by
18         Jerry Maine <crashfourit@gail.com>.
19
20         * amd64/amd64-codegen.h: Add marcos for coding two byte SIMD/SSE opcodes.
21         Added comments to help tell the different types of SSE code gen marcos appart.
22
23 2009-04-06  Zoltan Varga  <vargaz@gmail.com>
24
25         * arm/arm-vfp-codegen.h: Add ARM_FSITOS/ARM_FSITOD.
26
27 2009-04-03  Zoltan Varga  <vargaz@gmail.com>
28
29         * amd64/amd64-codegen.h: Add macros for decoding the SIB byte.
30
31 2009-04-02  Zoltan Varga  <vargaz@gmail.com>
32
33         * arm/arm-vfp-codegen.h: Add missing VFP codegen macros.
34
35 2009-03-06  Zoltan Varga  <vargaz@gmail.com>
36
37         * arm/tramp.c: Include a change from the debian patches. Avoid #include-ing
38         a file in the middle of a function.
39
40 2009-02-27  Zoltan Varga  <vargaz@gmail.com>
41
42         * arm/{arm_fpamacros.h, arm_vfpmacros.h}: Remove these files, they are
43         autogenerated.
44
45 2009-02-02  Mark Probst  <mark.probst@gmail.com>
46
47         Contributed under the terms of the MIT/X11 license by Steven
48         Munroe <munroesj@us.ibm.com>.
49
50         * ppc/ppc-codegen.h: Make operand order and case consistent
51         (assembler order) for ppc_load_reg_update, ppc_load_multiple_regs,
52         ppc_store_multiple_regs, ppc_lwz, ppc_lhz, ppc_lbz,
53         ppc_stw,ppc_sth, ppc_stb, ppc_stwu, ppc_lbzu, ppc_lfdu, ppc_lfsu,
54         ppc_lfsux, ppc_lfsx, ppc_lha, ppc_lhau, ppc_lhzu, ppc_lmw,
55         ppc_lwzu, ppc_stbu, ppc_stfdu, ppc_stfsu, ppc_sthu, ppc_stmw.  Use
56         "i" or "ui" instead of "d" for immediated operands to immediate
57         arthimetic and logical instructions in macros ppc_addi, ppc_addis,
58         ppc_ori, ppc_addic, ppc_addicd, ppc_andid, ppc_andisd.
59         [__mono_ppc64__]: Make operand order and case consistent
60         (assembler order) for ppc_load_multiple_regs,
61         ppc_store_multiple_regs.  Simplify the DS form and make them
62         consistent with D forms for ppc_load_reg, ppc_load_reg_update,
63         ppc_store_reg, ppc_store_reg_update. ppc_ld, ppc_lwa, ppc_ldu,
64         ppc_std, ppc_stdu.  Define ppc_lwax and ppc_lwaux.
65
66 2009-01-19 Rodrigo Kumpera  <rkumpera@novell.com>
67
68         * x86/x86-codegen.h: Add x86_movd_xreg_membase.
69
70 2008-12-19  Mark Probst  <mark.probst@gmail.com>
71
72         * ppc/ppc-codegen.h: Fixed the argument order for lwzu in
73         ppc_load_reg_update.
74
75 2008-12-12  Mark Mason  <mmason@upwardaccess.com>
76
77         * mips/mips-codegen.h: Changes to support n32.
78         
79 2008-12-10  Mark Probst  <mark.probst@gmail.com>
80
81         * ppc/ppc-codegen.h: A few new macros for the final PPC/PPC64
82         merge.
83
84 2008-12-05  Mark Probst  <mark.probst@gmail.com>
85
86         * ppc/ppc-codegen.h: ppc_load_func must use ppc_load_sequence.
87         Added ppc_compare_log.
88
89 2008-12-05  Mark Probst  <mark.probst@gmail.com>
90
91         * ppc/ppc-codegen.h: Added ppc_load_func for PPC32.  Added
92         ppc_load/store_multiple_regs and ppc_compare_reg_imm.
93
94 2008-12-02  Mark Probst  <mark.probst@gmail.com>
95
96         * ppc/ppc-codegen.h: Opcodes for floating point conversions from
97         64 bit integers.
98
99         Code submitted by andreas.faerber@web.de at
100         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
101         X11/MIT license.
102
103 2008-11-28  Mark Probst  <mark.probst@gmail.com>
104
105         * ppc/ppc-codegen.h: #define for the maximum length of a load
106         sequence.
107
108 2008-11-21  Mark Probst  <mark.probst@gmail.com>
109
110         * ppc/ppc-codegen.h: Make ppc_is_[u]imm16() work with 64 bit
111         values.
112
113 2008-11-20 Rodrigo Kumpera  <rkumpera@novell.com>
114
115         * x86/x86-codegen.h: Add X86_SSE_MOVHPD_REG_MEMBASE and renamed MOVS to MOVSD.
116
117 2008-11-20 Rodrigo Kumpera  <rkumpera@novell.com>
118
119         * x86/x86-codegen.h: Add X86_SSE_MOVS_ reg/membase variants.
120
121         * x86/x86-codegen.h: Add x86_sse_alu_pd_reg_membase_imm.
122
123         * x86/x86-codegen.h: Sort the x86_sse_alu_* macros decently.
124
125 2008-11-20  Mark Probst  <mark.probst@gmail.com>
126
127         * ppc/ppc-codegen.h: Use ppc_load_reg instead of ppc_ld in
128         ppc_load_func to fix the 2 bit shift.
129
130 2008-11-20  Mark Probst  <mark.probst@gmail.com>
131
132         * ppc/ppc-codegen.h: 64 bit division opcodes.
133
134         Code submitted by andreas.faerber@web.de at
135         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
136         X11/MIT license.
137
138 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
139
140         * arm/Makefile.am (libmonoarch_arm_la_SOURCES): Don't build tramp.c, it is only
141         used by the interpreter.
142
143 2008-11-20 Rodrigo Kumpera  <rkumpera@novell.com>
144
145         * x86/x86-codegen.h: Add PEXTR B/W/D.
146
147 2008-11-18 Rodrigo Kumpera  <rkumpera@novell.com>
148
149         * x86/x86-codegen.h: Add PINSR B/W/D.
150
151 2008-11-18  Mark Probst  <mark.probst@gmail.com>
152
153         * ppc/ppc-codegen.h: Macro for nop added.
154
155 2008-11-18  Mark Probst  <mark.probst@gmail.com>
156
157         * ppc/ppc-codegen.h: PPC64 code generation macros.
158
159         Based on code submitted by andreas.faerber@web.de at
160         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
161         X11/MIT license.
162
163 2008-11-18  Mark Probst  <mark.probst@gmail.com>
164
165         * ppc/ppc-codegen.h: A few fixes and additions.
166
167         Based on code submitted by andreas.faerber@web.de at
168         https://bugzilla.novell.com/show_bug.cgi?id=324134 under the
169         X11/MIT license.
170
171 2008-11-17  Rodrigo Kumpera  <rkumpera@novell.com>
172
173         * x86/x86-codegen.h: Fix comment about the version of PCMPGTQ.
174
175         * x86/x86-codegen.h: Add movsd constant and x86_sse_alu_sd_membase_reg
176         macro.
177
178 2008-11-17  Rodrigo Kumpera  <rkumpera@novell.com>
179
180         * x86/x86-codegen.h: Add X86_SSE_MOVHPD_MEMBASE_REG constant
181         and x86_sse_alu_pd_membase_reg/x86_sse_alu_membase_reg macros.
182
183 2008-11-15  Andreas Faerber  <andreas.faerber@web.de>
184
185         * ppc/test.c: Add support for Mac OS X.
186
187         Code is contributed under MIT/X11 license.
188
189 2008-11-13  Rodrigo Kumpera  <rkumpera@novell.com>
190
191         * x86/x86-codegen.h: Remove not used macro x86_pshufd_reg_reg.
192
193 2008-11-04  Rodrigo Kumpera  <rkumpera@novell.com>
194
195         * x86/x86-codegen.h: Add store nta.
196
197 2008-11-03  Rodrigo Kumpera  <rkumpera@novell.com>
198
199         * x86/x86-codegen.h: Add prefetch instruction
200         and x86_sse_alu_reg_membase macro.
201
202 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
203
204         * x86/x86-codegen.h: Add long version of the packed integer
205         ops.
206
207 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
208
209         * x86/x86-codegen.h: Add movddup.
210
211 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
212
213         * x86/x86-codegen.h: Add signed pack with saturation.
214
215 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
216
217         * x86/x86-codegen.h: Add signed packed mul high.
218
219 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
220
221         * x86/x86-codegen.h: Add signed packed max, min, add/sub with saturation
222         and compare greater.
223
224 2008-10-20  Rodrigo Kumpera  <rkumpera@novell.com>
225
226         * x86/x86-codegen.h: Add multiply and store high.
227
228 2008-10-17  Rodrigo Kumpera  <rkumpera@novell.com>
229
230         * x86/x86-codegen.h: Add packed int shuffle.
231
232 2008-10-16  Rodrigo Kumpera  <rkumpera@novell.com>
233
234         * x86/x86-codegen.h: Add packed int compare equals and
235         psabw.
236
237 2008-10-15  Rodrigo Kumpera  <rkumpera@novell.com>
238
239         * x86/x86-codegen.h: Add packed int max/min/avg/shuffle and extract mask.
240
241 2008-10-14  Rodrigo Kumpera  <rkumpera@novell.com>
242
243         * x86/x86-codegen.h: Add movsldup and movshdup.
244
245 2008-10-13  Rodrigo Kumpera  <rkumpera@novell.com>
246
247         * x86/x86-codegen.h: Add remaining FP sse1 ops.
248         Add sse ps encoding with imm operand.
249         Add remaining sse1 ops.
250
251 2008-10-12  Rodrigo Kumpera  <rkumpera@novell.com>
252
253         * x86/x86-codegen.h: Add macro for sse41 ops.
254         Add defined for pack ops, dword shifts/mul/pack.
255
256 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
257
258         * amd64/amd64-codegen.h (amd64_jump_code_size): Fix the 64 bit support.
259
260 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
261
262         * amd64/amd64-codegen.h (amd64_jump_code_size): Handle non 32-bit targets.
263
264 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
265
266         * x86/x86-codegen.h: Add macros for sse shift, pack, unpack,
267         saturated math and packed byte/word/dword math.
268
269 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
270
271         * x86/x86-codegen.h: Add macros for SSE instructions.
272
273 2008-09-27  Mark Probst  <mark.probst@gmail.com>
274
275         * ppc/ppc-codegen.h: A few typecasts to fix compiler warnings.
276
277 2008-09-07  Mark Probst  <mark.probst@gmail.com>
278
279         * ppc/ppc-codegen.h (ppc_load): Inserted cast to fix some
280         warnings.
281
282 2008-06-16  Mark Probst  <mark.probst@gmail.com>
283
284         * amd64/amd64-codegen.h: Removed extraneous parenthesis in a macro
285         nobody uses.
286
287 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
288
289         * amd64/amd64-codegen.h (amd64_padding_size): Rewrite this to use the
290         instructions recommended by the amd64 manual.
291
292 2008-04-19  Zoltan Varga  <vargaz@gmail.com>
293
294         * amd64/amd64-codegen.h (amd64_is_imm32): Use gint64 instead of glong because of
295         win64.
296
297 2008-03-13  Geoff Norton  <gnorton@novell.com>
298
299         * arch/arm/tramp.c:  Dont compile this on PLATFORM_MACOSX
300
301 2008-02-18  Zoltan Varga  <vargaz@gmail.com>
302
303         * amd64/amd64-codegen.h (amd64_movsxd_reg_mem): New codegen macro.
304
305 2008-02-14  Zoltan Varga  <vargaz@gmail.com>
306
307         * amd64/amd64-codegen.h (amd64_alu_membase8_imm_size): New codegen macro.
308
309 2008-02-08  Zoltan Varga  <vargaz@gmail.com>
310
311         * arm/arm-codegen.h: Fix the ordering of arguments for some load/store opcodes
312         so they are consistent.
313
314 2008-01-24  Zoltan Varga  <vargaz@gmail.com>
315
316         * Makefile.am (SUBDIRS): Or if INTERP_SUPPORTED is true.
317         
318         * Makefile.am (SUBDIRS): Only set this on arm.
319
320 2007-11-20  Zoltan Varga  <vargaz@gmail.com>
321
322         * amd64/amd64-codegen.h (amd64_alu_reg_imm_size): Prefer the smaller 
323         instruction encoding.
324
325 2007-11-03  David S. Miller  <davem@davemloft.net>
326
327        * sparc/sparc-codegen.h (sparc_set32, sparc_set): A plain sethi
328        can be used if the constant value only has the top 22 bits set.
329
330 2007-11-01  Geoff Norton  <gnorton@novell.com>
331
332         * x86/Makefile.am:  Only compile tramp.c if INTERP_SUPPORTED is true
333         Fixes the build on Leopard.
334
335 2007-11-01  Geoff Norton  <gnorton@novell.com>
336
337         * ppc/Makefile.am:  Only compile tramp.c if INTERP_SUPPORTED is true
338         Fixes the build on Leopard.
339
340 2007-10-26  Jonathan Chambers <joncham@gmail.com>
341
342         * amd64/amd64-codegen.h: Begin Win64 port. Use AMD64_ARG_REG#
343         defines to access param registers. Replace long usage with
344         gsize as sizeof(long) != sizeof(void*) on Win64.
345
346         Code is contributed under MIT/X11 license.
347
348 2007-10-09  Zoltan Varga  <vargaz@gmail.com>
349
350         * amd64/amd64-codegen.h (amd64_jump_membase_size): Remove an unneccesary
351         rex prefix which trips up valgrind.
352
353 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
354
355         * amd64/amd64-codegen.h: Remove some unused rex prefixes.
356
357 Wed Jul 4 15:29:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
358
359         * x86/x86-codegen.h: added minimal sse instructions currently
360         needed by the JIT.
361
362 2007-06-13  Randolph Chung  <tausq@debian.org>
363
364         * hppa/hppa-codegen.h: Update with more instructions.
365         * hppa/tramp.c: Disable for linux since we don't support the
366         interpreter.
367
368 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
369
370         * amd64/amd64-codegen.h (amd64_call_reg): Remove a got prefix which isn't needed.
371
372 2007-04-23  Zoltan Varga  <vargaz@gmail.com>
373
374         * alpha/alpha-codegen.h: More alpha port work from 
375         Sergey Tikhonov <tsv@solvo.ru>.
376
377 Mon Mar 12 17:07:32 CET 2007 Paolo Molaro <lupus@ximian.com>
378
379         * amd64/amd64-codegen.h: removed some useless size rex prefixes.
380
381 Wed Jan 24 21:00:40 CET 2007 Paolo Molaro <lupus@ximian.com>
382
383         * arm/arm-codegen.h: fixed encoding of short/byte load/store
384         instructions with negative immediate offsets.
385
386 Mon Nov 20 17:36:45 CET 2006 Paolo Molaro <lupus@ximian.com>
387
388         * arm/arm-codegen.h: added suppot for thumb interworking instructions.
389
390 Wed Nov 15 16:56:53 CET 2006 Paolo Molaro <lupus@ximian.com>
391
392         * mips/*: fixes by Mark E Mason <mark.e.mason@broadcom.com>.
393
394 2006-09-12  Zoltan Varga  <vargaz@gmail.com>
395
396         * alpha/alpha-codegen.h: More alpha updates from Sergey Tikhonov <tsv@solvo.ru>.
397
398 Tue Sep 12 13:09:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
399
400         * arm/*: VFP floating point format code generation support.
401
402 2006-09-12  Zoltan Varga  <vargaz@gmail.com>
403
404         * ia64/ia64-codegen.h: Add xmpy_l/u pseudo ops.
405
406 2006-07-19  Zoltan Varga  <vargaz@gmail.com>
407
408         * amd64/amd64-codegen.h: Fix amd64_mov_mem_reg.
409
410         * alpha/alpha-codegen.h alpha/test.c alpha/tramp.c: Applied patch from 
411         Sergey Tikhonov <tsv@solvo.ru>. Updates to alpha support.
412
413 Thu Jun 15 16:59:36 CEST 2006 Paolo Molaro <lupus@ximian.com>
414
415         * ppc/ppc-codegen.h: reduce noisy build warnings by
416         casting to the more commonly used unsigned char type
417         (from johannes@sipsolutions.net (Johannes Berg)).
418
419 2006-05-14  Zoltan Varga  <vargaz@gmail.com>
420
421         * ia64/ia64-codegen.h (ia64_fetchadd8_acq_hint_pred): Fix encoding of this
422         opcode.
423
424 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
425
426         * Makefile.am (SUBDIRS): Revert the last change as arm depends on the old
427         behaviour.
428
429 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
430
431         * sparc/sparc-codegen.h (sparc_inst_i): New disassembly macro.
432
433 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
434
435         * Makefile.am (SUBDIRS): Avoid compiling subdirs needed by the
436         interpreter.
437
438 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
439
440         * sparc/sparc-codegen.h (sparc_membar): Add membar instruction.
441
442 2005-10-30  Zoltan Varga  <vargaz@gmail.com>
443
444         * ia64/ia64-codegen.h (ia64_m17): Fix a warning.
445
446 2005-10-16  Zoltan Varga  <vargaz@freemail.hu>
447
448         * amd64/amd64-codegen.h (AMD64_CALLEE_SAVED_REGS): Add %rbp.
449
450 2005-09-27  Raja R Harinath  <rharinath@novell.com>
451
452         * arm/dpiops.sh, arm/fpaops.h: Output to stdout.
453         * arm/Makefile.am (arm_dpimacros.h, arm_fpamacros.h): Update.  Fix
454         for srcdir != builddir.
455
456 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
457
458         * ia64/ia64-codegen.h (ia64_unw_pop_frames): New unwind macro.
459
460 2005-09-10  Zoltan Varga  <vargaz@gmail.com>
461
462         * ia64/ia64-codegen.h: Remove 'manual' emitting of instructions. 
463         Integrate emission of unwind directives into the assembly macros.
464
465 2005-09-04  Zoltan Varga  <vargaz@gmail.com>
466
467         * ia64/ia64-codegen.h (ia64_no_stop): New macro.
468
469 2005-08-27  Zoltan Varga  <vargaz@gmail.com>
470
471         * ia64/ia64-codegen.h: Fix some bugs.
472
473         * ia64/codegen.c: Update to work with latest ia64-codegen.h
474
475 2005-08-26  Zoltan Varga  <vargaz@gmail.com>
476
477         * ia64/Makefile.am: Distribute ia64-codegen.h.
478
479 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
480
481         * ia64/ia64-codegen.h: Improve ins scheduling and fix some bugs.
482
483 2005-08-17  Zoltan Varga  <vargaz@freemail.hu>
484
485         * ia64/ia64-codegen.h: Add dependency information for all instructions.
486
487 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
488
489         * ia64/ia64-codegen.h: Ongoing IA64 work.
490
491 Wed Jul 20 18:01:54 BST 2005 Paolo Molaro <lupus@ximian.com>
492
493         * arm/*: more codegen macros.
494
495 2005-07-18  Zoltan Varga  <vargaz@freemail.hu>
496
497         * ia64/ia64-codegen.h (ia64_is_adds_imm): Ongoing IA64 work.
498
499 2005-06-23  Zoltan Varga  <vargaz@freemail.hu>
500
501         * ia64/ia64-codegen.h: Add some new pseudo ops.
502
503 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
504
505         * ia64/ia64-codegen.h: Fix encoding of ia64_fclass.
506
507 2005-06-12  Zoltan Varga  <vargaz@freemail.hu>
508
509         * ia64/ia64-codegen.h: Ongoing IA64 work.
510
511 2005-06-09  Zoltan Varga  <vargaz@freemail.hu>
512
513         * ia64/ia64-codegen.h: Ongoing IA64 work.
514
515 2005-05-30  Zoltan Varga  <vargaz@freemail.hu>
516
517         * ia64/codegen.c: Fix it after latest changes.
518
519 2005-05-29  Zoltan Varga  <vargaz@freemail.hu>
520
521         * ia64/ia64-codegen.h: Ongoing IA64 work.
522         
523         * ia64/ia64-codegen.h: Ongoing IA64 work.
524
525 2005-05-28  Zoltan Varga  <vargaz@freemail.hu>
526
527         * ia64/ia64-codegen.h: Ongoing IA64 work.
528         
529         * ia64/ia64-codegen.h: Ongoing IA64 work.
530
531         * ia64/ia64-codegen.h: Ongoing IA64 work.
532
533 2005-05-26  Zoltan Varga  <vargaz@freemail.hu>
534
535         * ia64/ia64-codegen.h: Ongoing IA64 work.
536
537 2005-05-22  Zoltan Varga  <vargaz@freemail.hu>
538
539         * ia64/ia64-codegen.h: Ongoing IA64 work.
540         
541         * ia64/ia64-codegen.h: Ongoing IA64 work.
542
543         * ia64/ia64-codegen.h: Ongoing IA64 work.
544
545 2005-05-21  Zoltan Varga  <vargaz@freemail.hu>
546
547         * ia64/ia64-codegen.h: Ongoing IA64 work.
548
549 2005-05-19  Zoltan Varga  <vargaz@freemail.hu>
550
551         * ia64/ia64-codegen.h ia64/codegen.c: Ongoing ia64 work.
552
553 2005-05-18  Zoltan Varga  <vargaz@freemail.hu>
554
555         * ia64/ia64-codegen.h (ia64_codegen_init): Rename macro parameter.
556
557 2005-05-14  Zoltan Varga  <vargaz@freemail.hu>
558
559         * Makefile.am: Only compile libmonoarch if the interpreter is compiled.
560
561         * ia64/ia64-codegen.h: Add IA64 code generation macros.
562
563         * Makefile.am: Add ia64 subdir.
564
565 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
566
567         * alpha/tramp.c: Applied patch from Jakub Bogusz <qboosh@pld-linux.org>.
568
569 2005-03-28  Zoltan Varga  <vargaz@freemail.hu>
570
571         * amd64/amd64-codegen.h: Avoid emitting a rex in some places.
572
573 2005-03-15  Zoltan Varga  <vargaz@freemail.hu>
574
575         * amd64/amd64-codegen.h (amd64_emit_rex): Emit a rex when accessing the
576         byte registers.
577         
578         * amd64/amd64-codegen.h (AMD64_BYTE_REGS): Add AMD64_BYTE_REGS macro.
579
580 2005-03-14  Zoltan Varga  <vargaz@freemail.hu>
581
582         * amd64/amd64-codegen.h: Add missing AMD64_XMM7.
583
584 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
585
586         * amd64/amd64-codegen.h: Remove some unneccesary REXes.
587
588 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
589
590         * amd64/amd64-codegen.h (amd64_sse_cvtsi2sd_reg_reg_size): Add _size
591         variants to some sse2 macros.
592
593         * amd64/amd64-codegen.h (amd64_sse_cvtsd2si_reg_reg): Make this convert
594         to a 64 bit value.
595
596 2005-03-06  Zoltan Varga  <vargaz@freemail.hu>
597
598         * amd64/amd64-codegen.h: Add some SSE2 instructions.
599
600 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
601
602         * amd64/amd64-codegen.h: Add xadd instructions.
603         
604         * amd64/amd64-codegen.h (amd64_jump_code_size): Do not emit a rex.
605
606 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
607
608         * amd64/amd64-codegen.h: Updates to support the PIC changes.
609
610 Fri Nov 19 17:29:22 CET 2004 Paolo Molaro <lupus@ximian.com>
611
612         * ppc/ppc-codegen.h: counter reg decrement branch values
613         (patch by Geoff Norton <gnorton@customerdna.com>).
614
615 2004-11-16  Patrik Torstensson <patrik.torstensson@gmail.com>
616
617         * x86/x86-codegen.h: added opcodes for xadd instructions
618
619 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
620
621         * amd64/x86-64-codegen.h: Get rid of this.
622
623 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
624
625         * amd64/amd64-codegen.h (amd64_imul_reg_membase_size): Fix REX
626         generation.
627
628 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
629
630         * amd64/amd64-codegen.h: More SSE work.
631         
632         * amd64/amd64-codegen.h: Add SSE2 instructions.
633
634 2004-08-21  Zoltan Varga  <vargaz@freemail.hu>
635
636         * amd64/amd64-codegen.h (X86_IS_BYTE_REG): Redefine X86_IS_BYTE_REG
637         since under amd64, all 16 registers have a low part.
638
639 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
640
641         * x86/x86-codegen.h: Add macros for accessing the mod/rm byte.
642
643 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
644
645         * amd64/amd64-codegen.h: Ongoing JIT work.
646
647 2004-07-29  Ben Maurer  <bmaurer@ximian.com>
648
649         * x86/x86-codegen.h: Add opcodes for cmp BYTE PTR [eax], imm
650
651 2004-07-28  Zoltan Varga  <vargaz@freemail.hu>
652
653         * amd64/amd64-codegen.h: Ongoing JIT work.
654
655 2004-07-24  Zoltan Varga  <vargaz@freemail.hu>
656
657         * amd64/amd64-codegen.h: Ongoing JIT work.
658
659 2004-07-23  Zoltan Varga  <vargaz@freemail.hu>
660
661         * amd64/amd64-codegen.h: Ongoing JIT work.
662
663 2004-07-23  zovarga  <vargaz@freemail.hu>
664
665         * amd64/amd64-codegen.h: Ongoing JIT work.
666
667 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
668
669         * sparc/sparc-codegen.h: Add SPARC64 support.
670
671 2004-05-07  Bernie Solomon  <bernard@ugsolutions.com>
672
673         * ppc/ppc-codegen.h: remove GCC-ism in ppc_emit32
674
675 2004-04-29  Bernie Solomon  <bernard@ugsolutions.com>
676
677         * ppc/tramp.c: use sizeof (stackval), fix
678         delegate tramp frame layout for Apple
679
680 2004-04-26  David Waite <mass@akuma.org>
681
682         * unknown.c: modify to have content for defined platforms (to
683         avoid ISO C warning)
684
685 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
686
687         * amd64/tramp.c:
688         * arm/tramp.c:
689         * hppa/tramp.c:
690         * ppc/tramp.c:
691         * s390/tramp.c:
692         * sparc/tramp.c:
693         * x86/tramp.c:
694         remove child from MonoInvocation as it isn't used.
695
696         * hppa/hppa-codegen.h:
697         fix displacements in FP instrs
698
699 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
700
701         * hppa/hppa-codegen.h: created
702
703         * hppa/tramp.c: changed style to be more like
704         other platforms.
705
706         * hppa/Makefile.am: add hppa-codegen.h
707
708 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
709
710         * sparc/sparc-codegen.h: Add v9 branches with prediction.
711
712 2004-03-15  Bernie Solomon  <bernard@ugsolutions.com>
713
714         * sparc/sparc-codegen.h: tweak sparc_mov_reg_reg
715         so Sun's dis command recognizes it.
716
717 2004-03-15  Zoltan Varga  <vargaz@freemail.hu>
718
719         * sparc/sparc-codegen.h: Add some v9 instructions.
720
721 2004-03-11  Zoltan Varga  <vargaz@freemail.hu>
722
723         * sparc/sparc-codegen.h: Ongoing sparc work.
724
725 2004-03-07  Duncan Mak  <duncan@ximian.com>
726
727         * Makefile.am: Removed the reference to 'x86-64'. This was the cause
728         of the missing Mono daily tarballs, 'make dist' wasn't working.
729         
730         We do have an 'amd64' directory, but it doesn't make it in 'make
731         dist'.
732
733 2004-02-19  Zoltan Varga  <vargaz@freemail.hu>
734
735         * sparc/sparc-codegen.h: Fix lots of opcodes + add new ones.
736
737         * sparc/tramp.c: Fix alignment of structures containing doubles.
738
739 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
740
741         * sparc/tramp.c: Implement all floating point argument passing conventions in
742         Sparc V8. Also fix structure passing in V8.
743
744 Thu Nov 13 16:24:29 CET 2003 Paolo Molaro <lupus@ximian.com>
745
746         * ppc/ppc-codegen.h: fixed most of the incorrect macros from ct.
747
748 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
749
750         * */tramp.c (mono_create_method_pointer): Rename to 
751         mono_arch_create_method_pointer, move common code to a new function in
752         interp.c.
753
754         * */tramp.c (mono_create_trampoline): Rename to 
755         mono_arch_create_trampoline for consistency.
756         
757 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
758
759         * x86/tramp.c: restore EDX after memcpy call
760
761 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
762
763         * Makefile.am: add hppa subdir 
764
765         * hppa/tramp.c: add initial implementation - this is 64 bit only
766         hppa/Makefile.am hppa/.cvsignore: added
767
768 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
769
770         * sparc/sparc-codegen.h sparc/tramp.c: add initial implementation
771         for V9 (64 bit), cover more 32 bit cases as well.
772
773 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
774
775         * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
776
777 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
778
779         * x86/tramp.c: Fixes from Bernie Solomon (bernard@ugsolutions.com).
780
781 Tue Jul 1 13:03:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
782
783         * alpha/tramp.c: update from Laramie Leavitt (lar@leavitt.us).
784
785 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
786
787         * x86/x86-codegen.h (x86_set_reg): add an assertion - it does
788         not work for all registers.
789
790 Sat Feb 1 10:59:31 CET 2003 Paolo Molaro <lupus@ximian.com>
791
792         * alpha/*: update from Laramie.
793
794 Mon Jan 27 12:49:10 CET 2003 Paolo Molaro <lupus@ximian.com>
795
796         * alpha/*: start of the port to the alpha architecture by
797         Laramie Leavitt (<lar@leavitt.us>).
798
799 Tue Jan 21 17:29:53 CET 2003 Paolo Molaro <lupus@ximian.com>
800
801         * ppc/ppc-codegen.h: completed ppc native code generation by
802         Taylor Christopher P <ct@cs.clemson.edu>.
803
804 Fri Jan 17 21:14:18 CET 2003 Paolo Molaro <lupus@ximian.com>
805
806         * ppc/tramp.c: adapted to work for MacOSX (from a patch by 
807         John Duncan).
808
809 2002-11-11  Mark Crichton  <crichton@gimp.org>
810
811         * sparc/tramp.c: Added some disassembly bits for debugging.
812
813 2002-10-02  Mark Crichton  <crichton@gimp.org>
814
815         * sparc/tramp.c: More cleanup of the trampoline code.  Still some
816         problems with it w.r.t. delegates.
817
818 2002-09-25  Mark Crichton  <crichton@gimp.org>
819
820         * sparc/tramp.c: Off by one error.  Whoops.  Trampoline code should
821         now work properly.
822
823 2002-09-24  Mark Crichton  <crichton@gimp.org>
824
825         * sparc/tramp.c: Works as well as the old code did.  Cleanup is
826         finished.  The framework now for adding more type support is in,
827         and should be a *lot* cleaner.
828         
829 2002-09-22  Mark Crichton  <crichton@gimp.org>
830
831         * sparc/tramp.c: Completely broke trampolining on SPARC processors.
832         The code needed a nasty cleanup, so most of it is rewritten.
833         It will be fixed.
834
835 2002-08-20  Mark Crichton <crichton@gimp.org>
836
837         * sparc/tramp.c (mono_create_trampoline): Now works on Sparc.  Tested
838         on an Ultra 2 running Linux.
839
840 Mon Aug 5 19:21:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
841
842         * x86/tramp.c: fix random memory read in mono_create_method_pointer.
843
844 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
845
846         * x86/tramp.c (mono_create_trampoline): fixed stack_size bug
847
848 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
849
850         * x86/tramp.c (mono_create_method_pointer): allocate space for
851         value types.
852         (mono_create_trampoline): also push the value type pointer for
853         methods returning value types.
854         (mono_create_method_pointer): support valuetype returns.
855
856 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
857
858         * x86/tramp.c: remove code to handle PInvoke because this is no
859         longer needed.
860         (mono_create_method_pointer): return method->addr for pinvoke methods
861
862 Fri Jul 19 14:18:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
863
864         * x86/tramp.c: fix float loads. Simple delegate marshaling fix.
865
866 2002-07-08  Radek Doulik  <rodo@ximian.com>
867
868         * ppc/tramp.c: marshaling for SZARRAY
869
870 2002-07-05  Radek Doulik  <rodo@ximian.com>
871
872         * ppc/tramp.c: removed magic hack
873
874 Tue Jun 18 10:21:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
875
876         * x86/tramp.c: marshal simple arrays correctly.
877
878 2002-05-27  Miguel de Icaza  <miguel@ximian.com>
879
880         * x86/x86-codegen.h: Set the standard header format.
881
882 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
883
884         * x86/tramp.c (mono_create_method_pointer): removed the magic
885         trick to store the function pointer in the prolog and use the same
886         mechanism as in the jit.
887
888 2002-05-13  Radek Doulik  <rodo@ximian.com>
889
890         * ppc/tramp.c (emit_save_parameters): fix I8 parameters
891
892 2002-05-06  Sergey Chaban  <serge@wildwestsoftware.com>
893
894         * x86/x86-codegen.h: added missing shifts;
895         8-bit ALU operations (reg-reg);
896         macro for FPU ops with integer operand;
897         FIST macro (without pop);
898
899 Mon Apr 22 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
900
901         * x86/x86-codegen.h: added loop instructions and made x86_patch fully
902         useful.
903
904 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
905
906         * x86/tramp.c (mono_create_trampoline): support internalcall
907         String constructors
908
909 Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
910
911         * x86/tramp.c: fix advancement of argument position on the stack.
912
913 Sat Mar 16 19:12:57 CET 2002 Paolo Molaro <lupus@ximian.com>
914
915         * x86/tramp.c: increase default allocated size for trampolines
916         and assert on overflow.
917
918 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
919
920         * x86/tramp.c (mono_create_trampoline): dont use fld/fst to copy
921         R8 values
922
923 Mon Mar 11 16:14:29 CET 2002 Paolo Molaro <lupus@ximian.com>
924
925         * x86/x86-codegen.h: addex x86_clear_reg() and changed
926         x86_mov_reg_imm() to not check for imm == 0.
927
928 Thu Feb 28 12:34:21 CET 2002 Paolo Molaro <lupus@ximian.com>
929
930         * x86/tramp.c: start handling of more complex marshaling stuff.
931
932 2002-02-25  Sergey Chaban  <serge@wildwestsoftware.com>
933
934         * arm: added ARM support code.
935         * Makefile.am: added arm to DIST_SUBDIRS.
936
937 2002-02-24  Radek Doulik  <rodo@ximian.com>
938
939         * ppc/tramp.c (mono_create_method_pointer): basic delegates
940         implementation, it works for simple delegates now and I am already
941         pretty close to have it working for every delegates, but I am
942         going to sleep and finish it tomorrow?
943         (mono_create_method_pointer): implements delegates with parameters
944         and return value
945
946 2002-02-22  Jeffrey Stedfast  <fejj@ximian.com>
947
948         * sparc/tramp.c (mono_create_trampoline): Much tinkering to get
949         the opcodes more correct. Still needs a lot of work.
950
951 2002-02-19  Radek Doulik  <rodo@ximian.com>
952
953         * ppc/tramp.c (emit_save_parameters): don't start saving 64bit values to
954         even registers
955         added stack saving for most arguments
956
957 Tue Feb 19 20:19:38 CET 2002 Paolo Molaro <lupus@ximian.com>
958
959         * x86/tramp.c: avoid pointer arthmetric (pointed out by Serge).
960
961 2002-02-17  Radek Doulik  <rodo@ximian.com>
962
963         * ppc/tramp.c: fixed minimal stack size, fixed string parameters,
964         fix byte and half word parameters 
965         (mono_string_new_wrapper): new helper function, cut&pasted from
966         x86, modified to check for NULL text to avoid branching in
967         generated code
968         (calculate_sizes): updated for string retval changes
969         (emit_call_and_store_retval): updated for string retval
970
971         * ppc/ppc-codegen.h (ppc_mr): added lhz, lbz, sth
972
973 2002-02-16  Radek Doulik  <rodo@ximian.com>
974
975         * ppc/tramp.c (emit_call_and_store_retval): support U2, I2, CHAR
976
977 Mon Feb 11 18:40:04 CET 2002 Paolo Molaro <lupus@ximian.com>
978
979         * sparc/*: sparc codegen header and some untested trampoline code.
980
981 Mon Feb 11 12:32:35 CET 2002 Paolo Molaro <lupus@ximian.com>
982
983         * x86/tramp.c: fix handling of multiple marshaleed strings.
984         * x86/x86-codegen.h: some code to patch branch displacements.
985
986 Fri Feb 1 16:03:00 CET 2002 Paolo Molaro <lupus@ximian.com>
987
988         * x86/tramp.c, ppc/tramp.c: implement mono_method_pointer_get ().
989
990 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
991
992         * x86/tramp.c (mono_create_trampoline): Do not try to create a
993         mono_string_new if the return value from the PInvoke code is
994         NULL. 
995
996 Mon Jan 14 11:50:16 CET 2002 Paolo Molaro <lupus@ximian.com>
997
998         * x86/x86-codegen.c: added overflow condition code and some aliases
999         for the other ccs.
1000
1001 Thu Jan 10 21:01:08 CET 2002 Paolo Molaro <lupus@ximian.com>
1002
1003         * x86/tramp.c: mono_create_trampoline (): the runtime argument is
1004         needed to handle correctly delegates, the previous change in handling
1005         the string return type broke them.
1006
1007 Tue Jan  8 22:38:41 MST 2002 Matt Kimball <matt@kimball.net>
1008         
1009         * x86/tramp.c: handle strings returned from functions in external 
1010         libraries by converting to a Mono string object after the pinvoke'd 
1011         function returns
1012         
1013 Sat Jan 5 15:51:06 CET 2002 Paolo Molaro <lupus@ximian.com>
1014
1015         * x86/tramp.c: handle short integer return types.
1016
1017 Thu Dec 20 20:13:07 CET 2001 Paolo Molaro <lupus@ximian.com>
1018
1019         * x86/tramp.c: fix create_method_pointer() to pass the arguments
1020         correctly and add check for overflow.
1021
1022 Thu Dec 13 15:56:53 CET 2001 Paolo Molaro <lupus@ximian.com>
1023
1024         * x86/x86-codegen.h: x86_mov_memindex_imm() added.
1025         
1026 2001-11-29  Radek Doulik  <rodo@ximian.com>
1027
1028         * ppc/tramp.c: use r12 which is volatile instead of non-volatile
1029         r14 to avoid saving
1030
1031         * Makefile.am (libmonoarch_la_LIBADD): added ppc to DIST_SUBDIRS
1032         generate libmonoarch for ppc
1033
1034 Tue Nov 27 15:24:07 CET 2001 Paolo Molaro <lupus@ximian.com>
1035
1036         * x96/x86-codegen.c: x86_lea_memindex() added.
1037
1038 Thu Nov 15 17:41:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1039
1040         * x86/tramp.c: handle enums with underlying type different from int32.
1041
1042 Wed Nov 14 19:21:26 CET 2001 Paolo Molaro <lupus@ximian.com>
1043
1044         * x86/tramp.c: handle boolean as a return value.
1045         * x96/x86-codegen.c: x86_widen_memindex() added.
1046
1047 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
1048
1049         * x86/tramp.c: Include stdlib to kill warning.
1050
1051 Mon Oct 22 15:20:14 CEST 2001 Paolo Molaro <lupus@ximian.com>
1052
1053         * x86/tramp.c: handle boolean, u1 and i1 as return values.
1054
1055 Wed Oct 10 16:07:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
1056
1057         * x86/x86-codegen.c: added x86_set_{reg,mem,membase}.
1058
1059 Mon Oct 8 16:13:07 CEST 2001 Paolo Molaro <lupus@ximian.com>
1060
1061         * x86/tramp.c: remove mono_get_ansi_string () and use
1062         mono_string_to_utf8 () instead.
1063
1064 Thu Oct 4 19:09:13 CEST 2001 Paolo Molaro <lupus@ximian.com>
1065
1066         * x86/tramp.c: allow marshalling valuetypes if they are
1067         4 bytes long.
1068
1069 Mon Oct 1 18:48:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
1070
1071         * x86/tramp.c: fix thinko (s/SUB/ADD/) in stack adjustment
1072         and avoid a couple of unnecessary instructions.
1073
1074 Fri Sep 28 19:43:12 CEST 2001 Paolo Molaro <lupus@ximian.com>
1075
1076         * x86/tramp.c: marshal valuetypes that are enums.
1077
1078 Thu Sep 27 15:34:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
1079
1080         * x86/x86-codegen.h: in memindex operand you can use X86_NOBASEREG
1081         as basereg.
1082
1083 Wed Sep 26 16:29:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
1084
1085         * x86/x86-codegen.h: added memindex addressing mode encoding
1086         (and mov to/from register opcodes).
1087
1088 Mon Sep 24 18:49:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1089
1090         * x86/tramp.c: don't change a MONO_TYPE_STRING to a char*
1091         when it's an argument to an internalcall.
1092
1093 Sun Sep 23 13:44:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
1094
1095         * x86/tramp.c: handle MONO_TYPE_CLASS in trampolines.
1096
1097 2001-09-21  Dietmar Maurer  <dietmar@ximian.com>
1098
1099         * x86/x86-codegen.h (x86_breakpoint): added.
1100
1101 Tue Sep 18 13:23:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
1102
1103         * x86/x86-codegen.h: remove C++ comments.
1104
1105 2001-09-17  Dietmar Maurer  <dietmar@ximian.com>
1106
1107         * x86/x86-codegen.h (x86_alu_reg_reg): replaced src/dest
1108
1109 Mon Sep 10 17:26:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1110
1111         * Makefile.am, x86/Makefile.am: conditional compile logic
1112         to make porting to different targets easier.
1113
1114 Fri Sep 7 18:43:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1115
1116         * x86/x86-codegen.h: fixes and x86_mov_membase_imm ().
1117         * x86/tramp.c: implemented mono_create_method_pointer ():
1118         creates a native pointer to a method implementation that can be 
1119         used as a normal C callback.
1120
1121 Thu Sep 6 15:38:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1122
1123         * x86/x86-codegen.h: added x86_rdtsc() and fixes.
1124         * x86/tramp.c: create trampolines to call pinvoke methods.
1125         * x86/Makefile.am: create a libmonoarch convenience library.
1126
1127 Mon Aug 27 09:29:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1128
1129         * x86/x86-codegen.h: fix x86_call_code (). x86_mov_regp_reg () added.
1130
1131 Sat Aug 18 12:40:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1132
1133         * x86/x86-codegen.h: fix a couple of buglets and add x86_regp_emit().
1134
1135 Wed Aug 8 15:30:05 CEST 2001 Paolo Molaro <lupus@ximian.com>
1136
1137         * x86/x86-codegen.h, x86/test.c: added x86 code emitter with
1138         test.
1139