Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/arch/alpha/gen/__longjmp14.c
RevisionDateAuthorComments
 1.8  25-May-2021  thorpej POSIX sez:
The longjmp() function shall not cause setjmp() to return 0; if val
is 0, setjmp() shall return 1.

Fixes the _longjmp_zero and longjmp_zero test cases in the t_setjmp
test on alpha.
 1.7  13-Mar-2013  martin branches: 1.7.36;
Remove clearing of ucontext_t, the only random register values now are
argument and scratch registers (which will be reloaded after return anyway).
 1.6  12-Mar-2013  martin Save the GP register value and restore it on longjmp.

While formally GP is not a callee-saved register, for static linking
the link time optimization described in section 3.2.3 of the "Calling
Standard for Alpha Systems" allows the caller to rely on GP being the
value needed within setjmp() - and not restore it after return if setjmp
and the call site share a GP value.

This fixes longjmp/setjmp for statically linked programs, e.g. /rescue/csh
or the static tcsh variant from pkgsrc.
 1.5  28-Apr-2008  martin branches: 1.5.4; 1.5.8; 1.5.24; 1.5.28; 1.5.30;
Remove clause 3 and 4 from TNF licenses
 1.4  14-Sep-2005  martin branches: 1.4.18;
Add missing <compat/include/setjmp.h>
 1.3  23-Mar-2004  simonb Put the jmpbuf's FPCR in the ucontext, not the other way around.
 1.2  23-Mar-2004  simonb Fix <tab> nits.
 1.1  21-Mar-2004  matt Change longjmp to use setcontext instead of sigreturn14. Change setjmp
to use symbolic offsets via assym.h
 1.4.18.1  18-May-2008  yamt sync with head.
 1.5.30.1  14-Mar-2013  riz Pull up following revision(s) (requested by martin in ticket #846):
lib/libc/arch/alpha/gen/__setjmp14.S: revision 1.6
lib/libc/arch/alpha/gen/__longjmp14.c: revision 1.6
lib/libc/arch/alpha/gen/__longjmp14.c: revision 1.7
Save the GP register value and restore it on longjmp.
While formally GP is not a callee-saved register, for static linking
the link time optimization described in section 3.2.3 of the "Calling
Standard for Alpha Systems" allows the caller to rely on GP being the
value needed within setjmp() - and not restore it after return if setjmp
and the call site share a GP value.
This fixes longjmp/setjmp for statically linked programs, e.g. /rescue/csh
or the static tcsh variant from pkgsrc.
Remove clearing of ucontext_t, the only random register values now are
argument and scratch registers (which will be reloaded after return anyway).
 1.5.28.1  23-Jun-2013  tls resync from head
 1.5.24.1  14-Mar-2013  riz Pull up following revision(s) (requested by martin in ticket #846):
lib/libc/arch/alpha/gen/__setjmp14.S: revision 1.6
lib/libc/arch/alpha/gen/__longjmp14.c: revision 1.6
lib/libc/arch/alpha/gen/__longjmp14.c: revision 1.7
Save the GP register value and restore it on longjmp.
While formally GP is not a callee-saved register, for static linking
the link time optimization described in section 3.2.3 of the "Calling
Standard for Alpha Systems" allows the caller to rely on GP being the
value needed within setjmp() - and not restore it after return if setjmp
and the call site share a GP value.
This fixes longjmp/setjmp for statically linked programs, e.g. /rescue/csh
or the static tcsh variant from pkgsrc.
Remove clearing of ucontext_t, the only random register values now are
argument and scratch registers (which will be reloaded after return anyway).
 1.5.8.2  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5.8.1  28-Apr-2008  martin file __longjmp14.c was added on branch christos-time_t on 2008-04-28 20:22:56 +0000
 1.5.4.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.36.1  31-May-2021  cjep sync with head

RSS XML Feed