glibc/sysdeps/unix
John David Anglin 71b108d7eb hppa: Fix swapcontext
This change fixes the failure of stdlib/tst-setcontext2 and
stdlib/tst-setcontext7 on hppa.  The implementation of swapcontext
in C is broken.  C saves the return pointer (rp) and any non
call-clobbered registers (in this case r3, r4 and r5) on the
stack.  However, the setcontext call in swapcontext pops the
stack and subsequent calls clobber the saved registers.  When
the context in oucp is restored, both tests fault.

Here we rewrite swapcontext in assembly code to avoid using
the stack for register values that need to be used after
restoration.  The getcontext and setcontext routines are
revised to save and restore register ret1 for normal returns.
We copy the oucp pointer to ret1.  This allows access to
the old context after calling getcontext and setcontext.
2022-02-18 20:38:25 +00:00
..
alpha Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arm Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
bsd posix: Add terminal control setting support for posix_spawn 2022-01-25 14:07:53 -03:00
i386 Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
inet Remove obsolete, never-implemented XSI STREAMS declarations 2019-03-14 15:44:15 +01:00
mips Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
powerpc Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sysv/linux hppa: Fix swapcontext 2022-02-18 20:38:25 +00:00
x86_64 Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getlogin_r.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getlogin.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getpagesize.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
grantpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ifreq.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Implies
make-syscalls.sh Add SYSCALL_ULONG_ARG_[12] to pass long to syscall [BZ #25810] 2020-04-29 05:35:34 -07:00
Makefile Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
setxid.h
sockatmark.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
syscall-template.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
syscall.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
syscalls.list misc: Add time64 alias for ioctl 2021-07-21 11:58:09 +02:00
sysdep.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00