Jonas Maebe
5bdd14e252
+ AArch64 cputarg
...
git-svn-id: trunk@29914 -
2015-02-23 22:52:39 +00:00
Jonas Maebe
558b8967b6
+ Aarch64 assembler reader
...
git-svn-id: trunk@29913 -
2015-02-23 22:52:36 +00:00
Jonas Maebe
96fcf6a12d
* added BL and CB(N)Z to is_calljmp()
...
git-svn-id: trunk@29912 -
2015-02-23 22:52:33 +00:00
Jonas Maebe
aa0e2e9170
* fixed cgsize2subreg and cgsize2subreg for mm subreg sizes
...
git-svn-id: trunk@29911 -
2015-02-23 22:52:30 +00:00
Jonas Maebe
c2b1ff41d5
- removed ARM leftover tspecialregflag type
...
git-svn-id: trunk@29910 -
2015-02-23 22:52:27 +00:00
Jonas Maebe
4c504098ca
+ C_CS/C_CC condition and F_HS/F_LO flag aliases
...
git-svn-id: trunk@29909 -
2015-02-23 22:52:23 +00:00
Jonas Maebe
6e55e8356e
+ IP0/IP1 register aliases
...
git-svn-id: trunk@29908 -
2015-02-23 22:52:20 +00:00
Jonas Maebe
bc9b870943
* cpunode: added ncgcal, corrected ncpuinln -> ncpuinl
...
git-svn-id: trunk@29907 -
2015-02-23 22:52:17 +00:00
Jonas Maebe
1c8059e30c
+ dummy AArch64 hlcgcpu
...
git-svn-id: trunk@29906 -
2015-02-23 22:52:14 +00:00
Jonas Maebe
cfd7bfc8a5
+ dummy AArch64 cpupi unit
...
git-svn-id: trunk@29905 -
2015-02-23 22:52:11 +00:00
Jonas Maebe
d51c87e77b
* add Darwin/AArch64 to systems_darwin
...
git-svn-id: trunk@29904 -
2015-02-23 22:52:07 +00:00
Jonas Maebe
b0112fa63f
+ initial AArch64 support in systemh.inc, options.pas, version.pas and
...
psystem.pas
git-svn-id: trunk@29903 -
2015-02-23 22:52:04 +00:00
Jonas Maebe
19f458787f
+ Darwin/AArch64 support to fpcmake
...
git-svn-id: trunk@29902 -
2015-02-23 22:52:01 +00:00
Jonas Maebe
f2c0b88e4f
* AArch64 compiler building support to top level and compiler Makefile
...
git-svn-id: trunk@29901 -
2015-02-23 22:51:58 +00:00
Jonas Maebe
44f5f435ba
+ Darwin/AArch64 support for handling hardware exceptions
...
git-svn-id: trunk@29900 -
2015-02-23 22:51:54 +00:00
Jonas Maebe
897de78401
+ Darwin/AArch64 support in fpmkunit
...
git-svn-id: trunk@29899 -
2015-02-23 22:51:51 +00:00
Jonas Maebe
7d7953b115
+ Darwin/AArch64 support in fcl-res
...
o disabled writing an addend for the "usedhandles" entry, since we already
add a relocation for it (and while the result of this relocation
overwrites the addend on previously supported Darwin targets, it gets
added on AArch64
git-svn-id: trunk@29898 -
2015-02-23 22:51:47 +00:00
Jonas Maebe
60dd2d1dd5
+ register Darwin/AArch64 target
...
* pass "-arch arm64" to the linker for Darwin/AArch64
git-svn-id: trunk@29897 -
2015-02-23 22:51:44 +00:00
Jonas Maebe
bee9c4185b
+ default target for AArch64
...
git-svn-id: trunk@29896 -
2015-02-23 22:51:41 +00:00
Jonas Maebe
00b819307a
+ condition and shifterop operands for AArch64 assembler reader
...
git-svn-id: trunk@29895 -
2015-02-23 22:51:38 +00:00
Jonas Maebe
665a5e509e
* default iOS deployment version for AArch64 is iOS 7
...
git-svn-id: trunk@29894 -
2015-02-23 22:51:34 +00:00
Jonas Maebe
8c89f7ee8f
* AArch64 also uses the non-fragile Objective-C ABI
...
git-svn-id: trunk@29893 -
2015-02-23 22:51:31 +00:00
Jonas Maebe
de2dd592ab
+ shiftedregmodes and extendedregmodes set constants
...
git-svn-id: trunk@29892 -
2015-02-23 22:51:28 +00:00
Jonas Maebe
17bcd207af
* fixed lowercase entry in uppercond2str
...
git-svn-id: trunk@29891 -
2015-02-23 22:51:25 +00:00
Jonas Maebe
53548663e3
+ AArch64 assembler writer
...
git-svn-id: trunk@29890 -
2015-02-23 22:51:22 +00:00
Jonas Maebe
d246ababff
+ condition code operand for aarch64
...
+ taicpu.op_reg_cond() constructor
* use this operand for cset
git-svn-id: trunk@29889 -
2015-02-23 22:51:19 +00:00
Jonas Maebe
5c6afe259e
* long double = double on Darwin/AArch64
...
git-svn-id: trunk@29888 -
2015-02-23 22:51:15 +00:00
Jonas Maebe
65141ab135
+ aarch64 makefile.cpu
...
git-svn-id: trunk@29887 -
2015-02-23 22:51:12 +00:00
Jonas Maebe
e32965879d
* dummy strings.inc for aarch64
...
git-svn-id: trunk@29886 -
2015-02-23 22:51:09 +00:00
Jonas Maebe
dad442c7e3
+ aarch64 fpu init, atomic routines and memory barriers
...
git-svn-id: trunk@29885 -
2015-02-23 22:51:06 +00:00
Jonas Maebe
6813831e03
+ AArch64 setjump code based on NetBSD version
...
git-svn-id: trunk@29884 -
2015-02-23 22:51:03 +00:00
Jonas Maebe
6b371315f3
+ dummy AArch64 stringss.inc file
...
git-svn-id: trunk@29883 -
2015-02-23 22:51:00 +00:00
Jonas Maebe
e82201d6ac
+ dummy set.inc for AArch64
...
git-svn-id: trunk@29882 -
2015-02-23 22:50:57 +00:00
Jonas Maebe
4c7f75c93b
+ round/trunc/int for AArch64
...
git-svn-id: trunk@29881 -
2015-02-23 22:50:54 +00:00
Jonas Maebe
66d4e9a3a5
+ dummy int64p.inc
...
git-svn-id: trunk@29880 -
2015-02-23 22:50:51 +00:00
Jonas Maebe
84f04ad2ce
+ aarch64 fpu rounding mode/exception support
...
git-svn-id: trunk@29879 -
2015-02-23 22:50:48 +00:00
Jonas Maebe
9c55fa6f6c
+ FPCR, FPSR and TPIDR registers
...
git-svn-id: trunk@29878 -
2015-02-23 22:50:44 +00:00
Jonas Maebe
493b11da06
+ Darwin/aarch64 system definition
...
git-svn-id: trunk@29877 -
2015-02-23 22:50:41 +00:00
Jonas Maebe
b5643f2a27
+ aarch64 cpu identifier
...
git-svn-id: trunk@29876 -
2015-02-23 22:50:38 +00:00
Jonas Maebe
6995474ea0
+ aarch64 cpunode
...
git-svn-id: trunk@29875 -
2015-02-23 22:50:35 +00:00
Jonas Maebe
820de6a17b
* pass "const" arrays always by reference, because there is a lot of hacky
...
code out there that relies on this, even though it's not supposed to be
guaranteed in any way :(
git-svn-id: trunk@29874 -
2015-02-23 22:50:32 +00:00
Jonas Maebe
edb3124ae8
* copy arrays passed by value to cdecl routines on the callee side even on
...
platforms that normally must copy value parameters on the caller side,
because
o if we copy them on the caller side, then the behaviour will be different
compared to other platforms if the called routine is implemented in C
(since they are passed by reference, changes to the array contents will
be visible on other platforms, while they wouldn't be visible if the
copy is made on the caller side)
o if we don't copy them on the caller nor on the callee side, then behaviour
will be different compared to other platforms if the called routine is
implemented in Pascal and modifies the array (since then changes won't be
visible on the caller side, except on platforms that normally perform
the copy on the caller side)
git-svn-id: trunk@29873 -
2015-02-23 22:50:29 +00:00
Jonas Maebe
2dbfbd40ab
* unified hlcg.g_copyvalueparas and ncgutil.copyvalueparas, they have the
...
same functionality in the mean time
git-svn-id: trunk@29872 -
2015-02-23 22:50:26 +00:00
Jonas Maebe
6e12ad817f
* don't make copies of arrays passed as value parameters to cdecl routines
...
(since C compilers don't copy such arrays either, as they're implciitly
pointers)
git-svn-id: trunk@29871 -
2015-02-23 22:50:23 +00:00
Jonas Maebe
c6ba0bb6fb
+ support for targets that require by-reference value parameters to be
...
be copied on the caller instead of callee side
o mark Darwin/Aarch64 as such a target (any AArch64 target will be like
that normally, as its ABI specifies this behaviour)
o don't mark by-reference value parameters on such targets as
vo_has_local_copy, since a) they don't have one (the copy is on the
caller side), and b) this ensures that all code handling such
parameters automatically knows that they are still by reference
after the init code has run
o when making the copies on the caller side, don't increase the
reference count for managed types except for variants, just like
is done when making the copies on the callee side. This is because
the reference count increasing code on the callee side only runs
for non-assembler functions, and we cannot know 100% certain on the
caller side whether the called function is assembler or not (e.g. in
case of externally declared functions)
o maybe over time we can reuse the Pascal code in
tcallparanode.copy_value_by_ref_para to replace the equivalent code
in hlcgobj and ncgutil also on the caller side for other targets
git-svn-id: trunk@29870 -
2015-02-23 22:50:20 +00:00
Jonas Maebe
bedcc5cbb1
+ Darwin/AArch64 system identifier
...
git-svn-id: trunk@29869 -
2015-02-23 22:50:16 +00:00
Jonas Maebe
0af4f3e3fb
+ aarch64 math nodes implementation
...
git-svn-id: trunk@29868 -
2015-02-23 22:50:13 +00:00
Jonas Maebe
4aeb22f7f4
+ initial implementation of aarch64 type conversion nodes
...
git-svn-id: trunk@29867 -
2015-02-23 22:50:10 +00:00
Jonas Maebe
71ae8015da
+ initial implementation of aarch64 add nodes
...
git-svn-id: trunk@29866 -
2015-02-23 22:50:07 +00:00
Jonas Maebe
8a444ed96a
+ initial implementation of aarch64 inline nodes
...
git-svn-id: trunk@29865 -
2015-02-23 22:50:04 +00:00