aarch64: Add SME runtime support
commitd3c32ae207d4fc3e48bb47ce1b9f2c6cf0f35c4f
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Fri, 10 Sep 2021 15:52:17 +0000 (10 16:52 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Tue, 2 Jan 2024 15:43:30 +0000 (2 15:43 +0000)
tree8714b622e0a3a69edce25ae7bc51291d38e23d32
parent67f371e882499ea46eca1b9dc76c98a7c2d06b69
aarch64: Add SME runtime support

The runtime support routines for the call ABI of the Scalable Matrix
Extension (SME) are mostly in libgcc. Since libc.so cannot depend on
libgcc_s.so have an implementation of __arm_za_disable in libc for
libc internal use in longjmp and similar APIs.

__libc_arm_za_disable follows the same PCS rules as __arm_za_disable,
but it's a hidden symbol so it does not need variant PCS marking.

Using __libc_fatal instead of abort because it can print a message and
works in ld.so too. But for now we don't need SME routines in ld.so.

To check the SME HWCAP in asm, we need the _dl_hwcap2 member offset in
_rtld_global_ro in the shared libc.so, while in libc.a the _dl_hwcap2
object is accessed.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
sysdeps/aarch64/Makefile
sysdeps/aarch64/__arm_za_disable.S [new file with mode: 0644]
sysdeps/aarch64/rtld-global-offsets.sym [new file with mode: 0644]