glibc/sysdeps
Adhemerval Zanella 64c7e34428 arm: Update _dl_tlsdesc_dynamic to preserve caller-saved registers (BZ 31372)
ARM _dl_tlsdesc_dynamic slow path has two issues:

  * The ip/r12 is defined by AAPCS as a scratch register, and gcc is
    used to save the stack pointer before on some function calls.  So it
    should also be saved/restored as well.  It fixes the tst-gnu2-tls2.

  * None of the possible VFP registers are saved/restored.  ARM has the
    additional complexity to have different VFP bank sizes (depending of
    VFP support by the chip).

The tst-gnu2-tls2 test is extended to check for VFP registers, although
only for hardfp builds.  Different than setcontext, _dl_tlsdesc_dynamic
does not have  HWCAP_ARM_IWMMXT (I don't have a way to properly test
it and it is almost a decade since newer hardware was released).

With this patch there is no need to mark tst-gnu2-tls2 as XFAIL.

Checked on arm-linux-gnueabihf.
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2024-03-19 14:53:30 -03:00
..
aarch64 aarch64: fix check for SVE support in assembler 2024-03-14 14:27:56 +00:00
alpha string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
arc string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
arm arm: Update _dl_tlsdesc_dynamic to preserve caller-saved registers (BZ 31372) 2024-03-19 14:53:30 -03:00
csky Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
generic string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
gnu
hppa Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
htl
hurd
i386 x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers 2024-02-28 09:02:56 -08:00
ieee754 Rename c2x / gnu2x tests to c23 / gnu23 2024-02-01 17:55:57 +00:00
loongarch LoongArch: Correct {__ieee754, _}_scalb -> {__ieee754, _}_scalbf 2024-03-12 14:07:27 +08:00
m68k string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
mach Implement setcontext/getcontext/makecontext/swapcontext for Hurd x86_64 2024-02-17 21:45:35 +01:00
microblaze Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
mips math: Update mips64 ulps 2024-02-22 21:28:25 +01:00
nios2 Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
nptl
or1k
posix
powerpc powerpc: Remove power8 strcasestr optimization 2024-03-12 17:11:01 -03:00
pthread
riscv riscv: Update nofpu libm test ulps 2024-03-18 11:28:50 +01:00
s390 s390: Improve static-pie configure tests 2024-02-28 10:09:53 -03:00
sh Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
sparc sparc: Treat the version field in the FPU control word as reserved 2024-02-19 10:55:50 -03:00
unix linux: Use rseq area unconditionally in sched_getcpu (bug 31479) 2024-03-15 19:08:24 +01:00
wordsize-32
wordsize-64
x86 x86-64: Allocate state buffer space for RDI, RSI and RBX 2024-03-18 19:45:13 -07:00
x86_64 Add tst-gnu2-tls2mod1 to test-internal-extras 2024-03-19 14:28:28 +01:00