[gcc r12-1632] [Ada] Fix inaccuracies in signal handler trampoline for aarch64-vxworks

Pierre-Marie de Rodat pmderodat@gcc.gnu.org
Fri Jun 18 08:39:26 GMT 2021


https://gcc.gnu.org/g:548280b996ea7e6283193d6c8a3c03d44ef36681

commit r12-1632-g548280b996ea7e6283193d6c8a3c03d44ef36681
Author: Olivier Hainque <hainque@adacore.com>
Date:   Sat Mar 20 21:10:49 2021 +0000

    [Ada] Fix inaccuracies in signal handler trampoline for aarch64-vxworks
    
    gcc/ada/
    
            * sigtramp-vxworks-target.inc (__aarch64__): Sync
            REGNO_PC_OFFSET with the back-end DWARF_ALT_FRAME_RETURN_COLUMN.
            In CFI_COMMON_REGS, leave r18 alone, VxWorks private.

Diff:
---
 gcc/ada/sigtramp-vxworks-target.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/sigtramp-vxworks-target.inc b/gcc/ada/sigtramp-vxworks-target.inc
index 13601c6565c..5a37b879510 100644
--- a/gcc/ada/sigtramp-vxworks-target.inc
+++ b/gcc/ada/sigtramp-vxworks-target.inc
@@ -100,7 +100,7 @@
 #define FUNCTION "%function"
 
 #ifdef __aarch64__
-#define REGNO_PC_OFFSET  80  /* aka V16, a scratch register */
+#define REGNO_PC_OFFSET  96  /* DWARF_ALT_FRAME_RETURN_COLUMN */
 #else
 #define REGNO_PC_OFFSET  15  /* PC_REGNUM */
 #endif
@@ -375,7 +375,7 @@ TCR(COMMON_CFI(G_REG_OFFSET(14))) \
 TCR(COMMON_CFI(G_REG_OFFSET(15))) \
 TCR(COMMON_CFI(G_REG_OFFSET(16))) \
 TCR(COMMON_CFI(G_REG_OFFSET(17))) \
-TCR(COMMON_CFI(G_REG_OFFSET(18))) \
+CR("# Leave alone R18, VxWorks reserved\n") \
 TCR(COMMON_CFI(G_REG_OFFSET(19))) \
 TCR(COMMON_CFI(G_REG_OFFSET(20))) \
 TCR(COMMON_CFI(G_REG_OFFSET(21))) \


More information about the Gcc-cvs mailing list