mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-06 22:07:35 +01:00
* 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 -
|
||
|---|---|---|
| .. | ||
| int64p.inc | ||
| lowmath.inc | ||
| m68k.inc | ||
| makefile.cpu | ||
| math.inc | ||
| mathu.inc | ||
| readme | ||
| set.inc | ||
| setjump.inc | ||
| setjumph.inc | ||
| strings.inc | ||
| stringss.inc | ||
This directory contains only RTL parts specific to the processor M68K family. Missing units are : strings.pp (you can the strings unit in the template directory) getopts.pp