Commit Graph

14 Commits

Author SHA1 Message Date
svenbarth
7bad1763b8 Decrease amount of code duplication regarding handling of safecall and record constructors.
paramgr.pas, tparamanager:
    + add new method "handle_common_ret_in_param"
    * extract common code (safecall + record constructor handling) from "ret_in_param" to "handle_common_ret_in_param" and call the latter in "ret_in_param"
[aarch64,arm,avr,i386,x86_64]/cpupara.pas, tCPUparamanager.ret_in_param:
    * call "handle_common_ret_in_param" instead of implementing the same check again and again
ncgcal.pas, tcgcallnode.handle_return_value:
    * move the check for (record) constructors to "tparamanager.handle_common_ret_in_param"

git-svn-id: trunk@23520 -
2013-01-25 20:39:28 +00:00
paul
b2a613c17f compiler: implement record constructors + tests
git-svn-id: trunk@23395 -
2013-01-16 02:07:42 +00:00
paul
51825b6f2e compiler: change ret_in_param to accept tabstractprocdef instead of tproccalloption to allow check more options (required for record constructor implementation)
git-svn-id: trunk@23394 -
2013-01-16 01:14:23 +00:00
Jonas Maebe
69c29a415f * pass the procdef to getintparaloc instead of only the proccalloption, so
that the type of the parameters can be determined automatically
   o added compilerproc declarations for all helpers called in the compiler
     via their assembler name, so we can look up the corresponding procdef

git-svn-id: trunk@23325 -
2013-01-06 15:05:40 +00:00
florian
2aaa7514f4 + started cpupara for aarch64
git-svn-id: trunk@23029 -
2012-11-18 20:42:11 +00:00
florian
9e35bfa252 * adapt condition
+ several missing constants added

git-svn-id: trunk@22912 -
2012-11-01 20:11:49 +00:00
florian
5e738710d4 + initial implementation of aasmcpu unit for ARM64
git-svn-id: trunk@22910 -
2012-11-01 20:10:31 +00:00
florian
046184dfe9 + ARM64 GAS instruction table unit
git-svn-id: trunk@22909 -
2012-11-01 20:09:47 +00:00
florian
e1af3ecc5d + assembler optimizer unit skeleton
git-svn-id: trunk@22908 -
2012-11-01 20:09:12 +00:00
florian
085fbbf016 + first batch of FPU/VFP instructions
git-svn-id: trunk@22907 -
2012-11-01 20:08:13 +00:00
florian
ca75588989 + first cpubase implementation for aarch64
git-svn-id: trunk@22901 -
2012-11-01 17:18:25 +00:00
florian
0197b84b7f + instruction table generator for arm64
+ Makefile target to build arm64 instruction tables
+ instruction table with integer instructions

git-svn-id: trunk@22900 -
2012-11-01 16:11:19 +00:00
florian
1cb97f23e5 + cpuinfo unit for arm64
+ set basic types in the globals units for arm64

git-svn-id: trunk@22896 -
2012-10-31 22:03:56 +00:00
florian
5af1d48158 + register definitions for AArch64 aka ARM64
+ Lazarus project for AArch64

Since AArch64 is very different from 32 Bit ARM, both won't share code in the compiler

git-svn-id: trunk@22894 -
2012-10-31 21:46:01 +00:00