fpc/compiler/m68k
sergei acd3ea8750 * m68k: Fixed parameter passing to conform to ABI:
* records are passed by value
  * records with size of 1,2 or 4 are returned in registers
  * parameters with size<4 are justified on the stack according to big-endian target

Now everything except floating-point parameters is compatible with C code compiled with "-malign-int -mrtd".
Compatibility with "-mno-align-int" is achievable by changing target_info.maxCrecordalign to 2, but doings so causes a lot more troubles because RTL (incorrectly) assumes that records declared with {$PACKRECORDS C} are aligned to pointer size.

+ Reuse parameter locations. Since everything is passed on stack, it reduces code size quite a bit.
- tm68kparamanager.getintparaloc removed, generic implementation has been tested and works as expected.

git-svn-id: trunk@28083 -
2014-06-27 06:58:39 +00:00
..
aasmcpu.pas fixed spilling operation type for some ColdFire instructions 2014-03-09 23:04:28 +00:00
ag68kgas.pas pass new asm extra opt using -ao option 2014-01-21 00:16:26 +00:00
aoptcpu.pas m68k: very early optimizer implementation experiments 2014-06-06 07:38:50 +00:00
aoptcpub.pas
aoptcpud.pas
cgcpu.pas * m68k: Fixed parameter passing to conform to ABI: 2014-06-27 06:58:39 +00:00
cpubase.pas * m68k: fixed/completed the inverse_cond function. 2014-06-25 05:23:30 +00:00
cpuinfo.pas fixed comment, no functional changes 2014-03-24 16:53:29 +00:00
cpunode.pas m68k: cleaned up and fixed cgcpu/fixref for coldfire at least; also enabled n68kmem node, so addressing with scaling is generated now 2014-06-21 21:36:48 +00:00
cpupara.pas * m68k: Fixed parameter passing to conform to ABI: 2014-06-27 06:58:39 +00:00
cpupi.pas
cputarg.pas m68k: very early optimizer implementation experiments 2014-06-06 07:38:50 +00:00
hlcgcpu.pas
itcpugas.pas add string version of the new instructions to the right place. removed one more duplicate table. 2013-10-10 22:12:40 +00:00
m68kreg.dat instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
n68kadd.pas removed silly ancient writeln debug from me... 2014-05-28 18:36:58 +00:00
n68kcal.pas * moved amiga/morphos-specific libsym-related field from tprocdef to 2014-04-01 21:41:27 +00:00
n68kcnv.pas plain 68000 also doesn't support 123(dX) 2014-03-11 20:47:37 +00:00
n68kmat.pas fixed the 68020 codepath for emit_div/mod 2014-03-10 18:01:53 +00:00
n68kmem.pas m68k: tweaks and fixes in n68kmem. the node is still disabled, needs further fixes in cgcpu/fixref to work properly 2014-06-20 11:49:38 +00:00
r68kcon.inc instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
r68kgas.inc instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
r68kgri.inc instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
r68knor.inc
r68knum.inc
r68krni.inc
r68ksri.inc instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
r68ksta.inc
r68kstd.inc instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
r68ksup.inc instead of supporting SP only, have register A7 defined, and have SP as an alias 2014-04-13 21:02:16 +00:00
ra68k.pas m68k/ra68k.pas: fixed some multi level comment warnings, so it now compiles with warnings on 2014-05-04 22:21:24 +00:00
ra68kmot.pas m68k/ra68kmot.pas: fixed a pointer to signed int cast warning, so it now compiles with warnings on 2014-05-04 22:22:03 +00:00
rgcpu.pas
symcpu.pas Fix a typo. The CPU specific version of "ttypesym" should be called "tcputypesym" and not "tcpuypesym". 2014-04-11 14:30:59 +00:00