Commit Graph

20 Commits

Author SHA1 Message Date
Benito van der Zander
ec9f7c84b4 fix stack trace crash, see #39492
(cherry picked from commit 7704fe9319)
2024-06-09 17:51:39 +02:00
Jonas Maebe
f858dce7fc * 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 -
(cherry picked from commit d9f4c85d2e)
2024-06-09 17:51:39 +02:00
florian
83219f5592 * fpsr and fpcr are 64 bit on aarch64
git-svn-id: trunk@49257 -
(cherry picked from commit 047d13e7e1)
2021-08-23 23:58:54 +02:00
marco
ba6989a42f --- Merging r43121 into '.':
U    rtl/inc/cgeneric.inc
--- Recording mergeinfo for merge of r43121 into '.':
 U   .
--- Merging r47123 into '.':
U    rtl/aarch64/math.inc
--- Recording mergeinfo for merge of r47123 into '.':
 G   .

# revisions: 43121,47123
r43121 | svenbarth | 2019-10-05 11:42:55 +0200 (Sat, 05 Oct 2019) | 1 line
Changed paths:
   M /trunk/rtl/inc/cgeneric.inc

* use clib constant instead of literal 'c' in case we have a target where the library is not called 'c' (hopefully all targets that use cgeneric.inc have the clib constant declared in their sysos.inc)
r47123 | svenbarth | 2020-10-18 10:52:41 +0200 (Sun, 18 Oct 2020) | 1 line
Changed paths:
   M /trunk/rtl/aarch64/math.inc

* for Aarch64 inline assembly comments need to start with //

git-svn-id: branches/fixes_3_2@47916 -
2020-12-30 22:57:50 +00:00
Jonas Maebe
c9c1c1686c --- Merging r46880 into '.':
U    rtl/aarch64/mathu.inc
--- Recording mergeinfo for merge of r46880 into '.':
 U   .
--- Merging r40512 into '.':
A    tests/webtbs/tw33607.pp
--- Recording mergeinfo for merge of r40512 into '.':
 G   .
--- Merging r42961 into '.':
U    compiler/aarch64/aasmcpu.pas
--- Recording mergeinfo for merge of r42961 into '.':
 G   .
--- Merging r44932 into '.':
G    compiler/aarch64/aasmcpu.pas
--- Recording mergeinfo for merge of r44932 into '.':
 G   .
--- Merging r44933 into '.':
U    compiler/aarch64/racpugas.pas
--- Recording mergeinfo for merge of r44933 into '.':
 G   .
--- Merging r44998 into '.':
U    compiler/aarch64/racpu.pas
--- Recording mergeinfo for merge of r44998 into '.':
 G   .
--- Merging r45667 into '.':
G    compiler/aarch64/racpugas.pas
U    compiler/rautils.pas
A    tests/webtbs/tw37218.pp
--- Recording mergeinfo for merge of r45667 into '.':
 G   .
--- Merging r45814 into '.':
U    compiler/aarch64/rgcpu.pas
A    tests/webtbs/tw37393.pp
--- Recording mergeinfo for merge of r45814 into '.':
 G   .
--- Merging r46690 into '.':
G    compiler/aarch64/aasmcpu.pas
--- Recording mergeinfo for merge of r46690 into '.':
 G   .
--- Merging r46871 into '.':
U    compiler/aarch64/cgcpu.pas
--- Recording mergeinfo for merge of r46871 into '.':
 G   .

git-svn-id: branches/fixes_3_2@47756 -
2020-12-11 15:40:07 +00:00
florian
d0f65b36ab --- Recording mergeinfo for merge of r39871 into '.':
U   .
--- Recording mergeinfo for merge of r42891 into '.':
 U   .
--- Merging r43167 into '.':
U    compiler/aarch64/cgcpu.pas
U    rtl/aarch64/aarch64.inc
--- Recording mergeinfo for merge of r43167 into '.':
 U   .
--- Recording mergeinfo for merge of r45788 into '.':
 G   .
--- Merging r46870 into '.':
U    rtl/linux/aarch64/sighnd.inc
U    rtl/linux/aarch64/sighndh.inc
--- Recording mergeinfo for merge of r46870 into '.':
 G   .
--- Merging r46872 into '.':
G    rtl/linux/aarch64/sighnd.inc
--- Recording mergeinfo for merge of r46872 into '.':
 G   .
--- Merging r46913 into '.':
U    compiler/systems/t_linux.pas
--- Recording mergeinfo for merge of r46913 into '.':
 G   .

git-svn-id: branches/fixes_3_2@47037 -
2020-10-03 09:22:40 +00:00
pierre
d1f31fab15 Merge commits 42525 and 45891 that add
checks for fpu exceptions for arm and aarch64.
------------------------------------------------------------------------
r42525 | florian | 2019-07-28 21:06:36 +0000 (Sun, 28 Jul 2019) | 2 lines

+ software handling of exceptions on arm
* reworked software handling of exceptions so they can be check lazily
------------------------------------------------------------------------
--- Merging r42525 into '.':
U    compiler/arm/cgcpu.pas
U    compiler/arm/narmadd.pas
U    compiler/arm/narminl.pas
U    compiler/arm/narmmat.pas
U    compiler/ncgcal.pas
U    compiler/procinfo.pas
U    rtl/arm/arm.inc
--- Recording mergeinfo for merge of r42525 into '.':
 U   .
Summary of conflicts:
  Tree conflicts: 1
------------------------------------------------------------------------
r42891 | florian | 2019-09-01 17:26:11 +0000 (Sun, 01 Sep 2019) | 1 line

+ support for software floating point exception handling on AArch64 (-CE)
------------------------------------------------------------------------
--- Merging r42891 into '.':
U    compiler/aarch64/cgcpu.pas
U    compiler/aarch64/ncpuadd.pas
U    compiler/aarch64/ncpuinl.pas
U    compiler/aarch64/ncpumat.pas
U    rtl/aarch64/aarch64.inc
U    rtl/aarch64/math.inc
U    rtl/aarch64/mathu.inc
--- Recording mergeinfo for merge of r42891 into '.':
 G   .

git-svn-id: branches/fixes_3_2@46225 -
2020-08-04 10:30:50 +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