aarch64: implement rt_sigreturn decoding
* linux/64/syscallent.h (139): Use sys_sigreturn for rt_sigreturn
decoding.
* syscall.c [ARM] (arm_regs): Make static.
[ARM] (arm_sp_ptr): New variable.
[AARCH64] (aarch64_sp_ptr, arm_sp_ptr): New variables.
* linux/aarch64/arch_regs.h: New file.
* linux/arm/arch_regs.h (arm_regs): Remove.
(arm_sp_ptr): New declaration.
* signal.c (sys_sigreturn) [ARM]: Use arm_sp_ptr.
[AARCH64]: Print signal mask.
diff --git a/syscall.c b/syscall.c
index cfedc9f..59f7d9a 100644
--- a/syscall.c
+++ b/syscall.c
@@ -712,7 +712,8 @@
#elif defined(BFIN)
static long bfin_r0;
#elif defined(ARM)
-struct pt_regs arm_regs; /* not static */
+static struct pt_regs arm_regs;
+long *const arm_sp_ptr = &arm_regs.ARM_sp;
# define ARCH_REGS_FOR_GETREGS arm_regs
#elif defined(AARCH64)
struct arm_pt_regs {
@@ -742,6 +743,8 @@
} arm_regs_union;
# define aarch64_regs arm_regs_union.aarch64_r
# define arm_regs arm_regs_union.arm_r
+uint64_t *const aarch64_sp_ptr = &aarch64_regs.sp;
+int *const arm_sp_ptr = &arm_regs.ARM_sp;
static struct iovec aarch64_io = {
.iov_base = &arm_regs_union
};