florian
38706a1713
* fix declocked(longint) for aarch64 without LSE, resolves #39569
2022-02-11 23:11:06 +01:00
florian
b0459a19f4
+ initial files for intrinsics support on AArch64
2021-11-21 21:11:23 +01:00
florian
4de8ca8393
* fpcr and fpsr are 64 bit on aarch64
...
git-svn-id: trunk@49346 -
2021-05-08 20:10:14 +00:00
Jonas Maebe
3c205f895c
* LLVM does not have an intrinsic for int/frac, so don't replace frac with
...
a call to runerror(207) there
git-svn-id: trunk@49337 -
2021-05-04 19:56:22 +00:00
florian
822b460096
* fix bootstrapping on aarch64-linux with 3.2.x
...
git-svn-id: trunk@49264 -
2021-04-25 19:24:18 +00:00
florian
5557dbedf2
+ Aarch64: directly inline code for frac(...)
...
git-svn-id: trunk@49261 -
2021-04-25 09:26:47 +00:00
florian
cd3570caf1
+ Aarch64: use frintz for int(...) instead of creating a helper call
...
git-svn-id: trunk@49260 -
2021-04-25 08:53:12 +00:00
florian
047d13e7e1
* fpsr and fpcr are 64 bit on aarch64
...
git-svn-id: trunk@49257 -
2021-04-24 14:06:36 +00:00
florian
d53b17cadc
+ Aarch64: completed LSE support for all interlocked operations
...
git-svn-id: trunk@49212 -
2021-04-16 19:33:31 +00:00
florian
e6f01065ec
+ Aarch64: use LSE if available for atomic intrinsics
...
git-svn-id: trunk@49113 -
2021-04-03 11:59:36 +00:00
pierre
3362abb30c
* Set softfloat_rounding_mode indise SetRoundMode function for all CPUs.
...
* SetRoundMode returns previous rounding mode value for all CPUs.
git-svn-id: trunk@48018 -
2021-01-03 21:44:18 +00:00
svenbarth
5a68b2218a
* for Aarch64 inline assembly comments need to start with //
...
git-svn-id: trunk@47123 -
2020-10-18 08:52:41 +00:00
Jonas Maebe
9376f5a43a
* AArch64: added SIMD instructions (only plain ARMv8-A for now)
...
o added AArch64 regset parsing support in assembler reader, means that "{"
no longer starts comments there (like in the ARM assembler reader)
o added AArch64 indexed SIMD register support and removed old cg hacks
that worked around its absence
git-svn-id: trunk@47116 -
2020-10-15 20:29:36 +00:00
florian
9a573173dd
* Aarch64: fix Math.SetExceptionMask for implementations throwing hardware
...
exceptions
git-svn-id: trunk@46880 -
2020-09-16 20:08:11 +00:00
Jonas Maebe
d9f4c85d2e
* llvm sometimes uses the AArch64 framepointer register as a regvar in the
...
main routine (because it can never return) -> attempt to guard against
invalid accesses in get_caller_addr
git-svn-id: trunk@44066 -
2020-01-29 22:21:21 +00:00
florian
688c7d439f
o AArch64:
...
* properly initialize FPU
* FMOV cannot throw an FPU exception
git-svn-id: trunk@43167 -
2019-10-11 21:55:48 +00:00
florian
078595be4c
+ support for software floating point exception handling on AArch64 (-CE)
...
git-svn-id: trunk@42891 -
2019-09-01 17:26:11 +00:00
florian
ff86c80176
* cpu specific header file for the system unit: cpuh.inc, moved several declarations into it
...
git-svn-id: trunk@37542 -
2017-11-01 16:33:30 +00:00
Jonas Maebe
2cacb588aa
* replaced AArch64 setjmp/longjmp code initially taken from NetBSD with
...
straightforward own implementation
git-svn-id: trunk@30006 -
2015-02-25 19:34:42 +00:00
Jonas Maebe
1edd3ac511
* support for the "RaisePending" parameter of RaiseExceptions on AArch64
...
git-svn-id: trunk@29951 -
2015-02-23 22:55:02 +00:00
Jonas Maebe
41fba0c4f7
* switched to using the stack pointer as base register for the temp allocator
...
instead of the frame pointer register:
1) we exactly know the offsets of the temps from the stack pointer
after pass 1 (based on the require parameter stack size for called
routines), while we don't know it for the frame pointer (it depends
on the number of saved registers)
2) temp offsets from the stack pointer are positive while those from
the frame pointer are negative, and we can directly encode much
bigger positive offsets in the instructions
o move the stack pointer register to a virtual register in
loadparentfpn, because many instructions cannot directly operate
on/with the stack pointer
o add the necessary register interference edges for the stack pointer
register
git-svn-id: trunk@29938 -
2015-02-23 22:54:03 +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