qemu/linux-user/aarch64
Peter Maydell 309f46d077 linux-user/aarch64: Support TPIDR2_MAGIC signal frame record
FEAT_SME adds the TPIDR2 userspace-accessible system register, which
is used as part of the procedure calling standard's lazy saving
scheme for the ZA registers:
 https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#66the-za-lazy-saving-scheme

The Linux kernel has a signal frame record for saving
and restoring this value when calling signal handlers, but
we forgot to implement this. The result is that code which
tries to unwind an exception out of a signal handler will
not work correctly.

Add support for the missing record.

Cc: qemu-stable@nongnu.org
Fixes: 78011586b9 ("target/arm: Enable SME for user-only")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20250725175510.3864231-3-peter.maydell@linaro.org>
(cherry picked from commit 99870aff90)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-07-28 19:09:07 +03:00
..
cpu_loop.c linux-user/aarch64: Remove unused get/put_user macros 2025-03-14 10:49:20 +00:00
Makefile.vdso linux-user/aarch64: Reduce vdso alignment to 4k 2024-11-16 08:42:25 -08:00
meson.build linux-user,aarch64: move to syscalltbl file 2024-09-22 09:30:18 +02:00
mte_user_helper.c target/arm: Factor out code for setting MTE TCF0 field 2024-07-05 12:35:14 +01:00
mte_user_helper.h linux-user/aarch64: Include missing 'user/abitypes.h' header 2024-12-20 17:44:56 +01:00
signal.c linux-user/aarch64: Support TPIDR2_MAGIC signal frame record 2025-07-28 19:09:07 +03:00
sockbits.h linux-user: move socket.h generic definitions to generic/sockbits.h 2018-05-25 10:10:55 +02:00
syscall_64.tbl linux-user,aarch64: move to syscalltbl file 2024-09-22 09:30:18 +02:00
syscall_nr.h linux-user,aarch64: move to syscalltbl file 2024-09-22 09:30:18 +02:00
syscallhdr.sh linux-user,aarch64: move to syscalltbl file 2024-09-22 09:30:18 +02:00
target_cpu.h linux-user/aarch64: Clear tpidr2_el0 if CLONE_SETTLS 2022-07-11 13:43:51 +01:00
target_elf.h linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
target_errno_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
target_fcntl.h linux-user: move arm/aarch64/m68k fcntl definitions to [arm|aarch64|m68k]/target_fcntl.h 2018-06-04 01:30:44 +02:00
target_flat.h linux-user: move target_flat.h to target subdirs 2023-02-03 22:55:12 +01:00
target_mman.h linux-user: Define ELF_ET_DYN_BASE in $guest/target_mman.h 2023-08-08 13:27:15 -07:00
target_prctl.h target/arm: Factor out code for setting MTE TCF0 field 2024-07-05 12:35:14 +01:00
target_proc.h linux-user: Emulate /proc/cpuinfo on aarch64 and arm 2023-09-01 13:33:36 -07:00
target_resource.h linux-user: Move generic TARGET_RLIMIT* definitions to generic/target_resource.h 2022-02-01 08:01:38 +01:00
target_signal.h linux-user: Move TARGET_SA_RESTORER out of generic/signal.h 2025-02-18 08:29:03 -08:00
target_structs.h linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
target_syscall.h Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
termbits.h linux-user: Add generic 'termbits.h' for some archs 2020-08-27 12:29:50 +02:00
vdso-be.so linux-user/aarch64: Reduce vdso alignment to 4k 2024-11-16 08:42:25 -08:00
vdso-le.so linux-user/aarch64: Reduce vdso alignment to 4k 2024-11-16 08:42:25 -08:00
vdso.ld linux-user/aarch64: Add vdso 2023-10-30 13:41:55 -07:00
vdso.S linux-user/aarch64: Add padding before __kernel_rt_sigreturn 2024-02-03 16:46:10 +10:00