Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/arch/alpha/gen/__setjmp14.S
RevisionDateAuthorComments
 1.9  06-Jul-2021  thorpej Ensure that the stack is always 16-byte aligned by rounding sizes as needed.

All changes from rin@ except swapcontext.S, which is from me (added
symbolic constants to make the code clearer).
 1.8  21-Oct-2020  thorpej - Consistently use _REG_* defines from assym.h to mean register numbers,
not offsets (i.e. *8 to get the offset).
- Define and use SIZEOF_SIGINFO and UC_GREGS constants, rather than
hard-code magic numbers.

NFC -- same object code is generated.
 1.7  23-Jan-2014  christos Use a constant in the text segment to avoid the .lit8 out of range relocation
error.
 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  12-Jun-2011  matt branches: 1.5.2; 1.5.4; 1.5.8; 1.5.10;
Use excb before and after the mt_fpcr/mf_fpcr instructions as specified
in the alpha ARM 4.7.8.1 (Accessing the FPCR):

Because Alpha floating-point hardware can overlap the execution of
a number of floating-point instructions, accessing the FPCR must
be synchronized with other floating-point instructions. An EXCB
instruction must be issued both prior to and after accessing the
FPCR to ensure that the FPCR access is synchronized with the
execution of previous and subsequent floating-point instructions;
otherwise synchronization is not ensured.

Use unions to convert between double and uint64_t to avoid casting.
 1.4  21-Mar-2004  matt branches: 1.4.54;
Change longjmp to use setcontext instead of sigreturn14. Change setjmp
to use symbolic offsets via assym.h
 1.3  07-Oct-2003  skd Siginfo libc changes for alpha. Approved by thorpej@netbsd.org.
 1.2  14-Jun-2000  cgd fix up NetBSD RCS Ids to match the standard, and the leading comment as
to match as well. No functional changes.
 1.1  29-Sep-1998  thorpej branches: 1.1.8;
Signal changes for Alpha.
 1.1.8.1  23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.4.54.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.5.10.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  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.8.1  23-Jun-2013  tls resync from head
 1.5.4.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.2.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")

RSS XML Feed