History log of /src/lib/libc/arch/alpha/gen/__longjmp14.c |
Revision | | Date | Author | Comments |
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
|