]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Fix inaccuracies in signal handler trampoline for aarch64-vxworks
authorOlivier Hainque <hainque@adacore.com>
Sat, 20 Mar 2021 21:10:49 +0000 (21:10 +0000)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 18 Jun 2021 08:36:52 +0000 (04:36 -0400)
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.

gcc/ada/sigtramp-vxworks-target.inc

index 13601c6565c2a3ce3cd542b59cb92da224c4d279..5a37b87951065f31b2d0fbe95e11efdb1339e0df 100644 (file)
 #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))) \