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