Commit Graph

145 Commits

Author SHA1 Message Date
tsutsui
ff4cdaa621 Follow compat libc changes on i386:
> _setjmp and _longjmp are not compat functions. Noticed by Havard Eidnes
2005-10-07 17:16:39 +00:00
tsutsui
f80595ca7d Switch mips to the new libc compat code layout. 2005-09-17 11:49:39 +00:00
martin
b0e34b2bc9 Add missing <compat/include/setjmp.h> 2005-09-14 08:59:37 +00:00
lukem
88c3eadbfa Add missing __RCSID() 2005-06-12 05:21:25 +00:00
simonb
546f9b44cd Branch to a local symbol instead of a global symbol. 2005-04-22 06:59:00 +00:00
simonb
0cbe508fbc Use the same function name in the LEAF() and END() directives. 2005-04-22 06:58:01 +00:00
kleink
b2cb7fcd8a Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.

IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
2005-04-15 22:39:10 +00:00
simonb
b52cdd0dd6 Copy the sparc/sparc64 __longjmp14() way of dealing with signal masks:
* Restore the signal mask with sigprocmask() instead of _UC_SIGMASK,
  * since libpthread may want to interpose on signal handling.

Fixes regress/lib/libpthread/siglongjmp1.
2004-07-03 05:44:55 +00:00
simonb
b4f0be566a Catch up with changes to __fpregset_t.
In __longjmp14(), copy the FP CSR from the correct array and array slot.

Completes fix for PR port-mips/25942.
2004-07-03 05:10:06 +00:00
drochner
0341f6a45e the WARN_REFERENCES text "include <signal.h> for correct reference" is pointless
as <signal.h> won't help you, so remove it
2004-03-26 22:15:03 +00:00
drochner
85fa9b7250 fix references to the syscall formerly known as SYS___sigreturn14 2004-03-26 20:35:37 +00:00
drochner
cd85223ee2 save errno while trying to install a !SA_SIGINFO trampoline -- this
is expected to fail with !COMPAT_16 kernels, and we shouldn't
overwrite errno in this case
2004-03-23 16:19:40 +00:00
simonb
2b5fd0669b Actually compile __longjmp14.c. 2004-03-23 12:31:52 +00:00
simonb
02082ea642 Restore the PC as well; also use mcontext register defines for accessing
the mcontext.
2004-03-23 12:31:17 +00:00
simonb
769814bf89 Use setcontext() instead of sigreturn() to implement longjmp(). 2004-03-23 02:21:49 +00:00
kleink
8e54f10bf7 * Turn isinf(3) and isnan(3) into C99-style macros.
* Make it possible for ports to override these (i.e., VAX).
* Remove isnanl(), which was internal to libc only.
2004-03-04 23:42:38 +00:00
drochner
c5bc0dada8 optimize this: we can use %ra for relocation directly
(saves 1 insn)
2004-03-01 20:43:19 +00:00
drochner
293e83e97e get the offset to gp right 2004-03-01 18:32:51 +00:00
kleink
d82e732345 Add C99 fpclassify(), isfinite(), isnormal(), and signbit() macros. 2004-01-15 19:43:44 +00:00
he
ea56bcee84 Hide the register number constants behind an _R_ prefix, and also
rename FPBASE to _FPBASE, so that we avoid polluting the user's
name space when e.g. <sys/ptrace.h> is included.  Previously, the
PC symbol in mips/regnum.h would conflict with the declaration of
the external variable by the same name in termcap.h, as discovered
by the ``okheaders'' regression test.
2003-11-26 08:36:49 +00:00
christos
b01cb286b8 Add userland portion of siginfo for mips. Many thanks to simon for letting
me use his machines down under.
2003-11-02 08:37:48 +00:00
pooka
70d2e11feb caps "Jonathan STone" in comment less dramatically 2003-10-29 12:28:33 +00:00
kleink
a98b4bac65 Add __infinityf and __infinityl, float respectively long double analogs
of __infinity.
2003-10-26 00:48:14 +00:00
he
6afbde6005 Correct another typo. 2003-10-25 14:51:16 +00:00
kleink
15e03bd18f Pasto in previous. 2003-10-25 14:31:21 +00:00
kleink
712c8de209 * Since there is no single portable IEEE 754 format for a long double,
keep a common implementation of isinfl() and isnanl() to be used by
  platforms where `long double' == `double'; move others into
  machine-dependent code.
* In due course, consider __VFP_FP__ on arm.
2003-10-24 00:58:01 +00:00
agc
eb7c1594f1 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-07 16:42:00 +00:00
lukem
a93ea220fc Rework how dependency generation is performed:
* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
  This is a change of behaviour.  If a Makefile wants the clean semantics
  it must specifically append to CLEANFILES.
  Resolves PR toolchain/5204.

* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
  that have a suffix of: .c .m .s .S .C .cc .cpp .cxx

* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES

* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d  depend upon ${DPSRCS}

* Deprecate the (short lived) DEPENDSRCS


Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.

Tested with "make -j 8 distribution" and "make distribution".
2003-08-01 17:03:41 +00:00
simonb
5d5afc14d8 Match END label with LEAF label. 2003-05-23 06:36:10 +00:00
thorpej
8969ba6ff5 Build _isinfl() and _isnanl(). 2003-05-17 15:05:52 +00:00
kleink
db907cb577 Rename ieee754_function.c to function_ieee754.c, following the convention
used in exec_format.c, loadfile_format.c, subsys_machdep.c etc.
Per discussion with Christos.
2003-05-12 15:15:11 +00:00
kleink
3b364b9b85 Make sure we reference getcontext() by its internal name. 2003-04-07 21:04:20 +00:00
nathanw
4fb740b8de Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).
2003-02-13 02:50:48 +00:00
simonb
e32d091ca8 Fix a tyop in a comment. 2003-02-08 04:01:53 +00:00
cgd
57daa57e46 * fix handling of invalid arguments (was jumping to wrong label!)
(found by... running the regress test!)
* clean up punctuation.
* create a proper frame for the child fn that follows the o32 calling
  conventions.  In particular, leave 4 stack slots that the child
  fn can write on, put the GP above them, and invoke .cprestore
  properly in light of the child fn arg area.  (realized it was a
  problem upon inspection, verified using the regress test compiled
  -O0.)
2003-02-08 00:28:25 +00:00
cgd
351f7a02f1 looks like nobody ever seriously tried the _REENTRANT version of this
code (which, uh, seems the default for a fresh build)...  it wasn't
setting up v1 properly (the instruction to set up v1 was after the
return jump, in "reorder" code...  i.e.  after the end of the function).
That would break error returns from 64-bit syscalls (e.g. checks
in dd and who knows what else) to see if input or output are pipes.
It looks like the non-_REENTRANT version was broken (on the nathanw-sa
branch) in rev 1.9.2.1 and fixed in 1.9.2.2, but the _REENTRANT version
was never fixed, and the broken bits were merged back on to the trunk.
2003-02-07 20:35:05 +00:00
matt
bdde89628b Cast with uintptr_t instead of u_long. 2003-01-19 08:53:36 +00:00
thorpej
3fdac2b8c5 Merge the nathanw_sa branch. 2003-01-18 10:52:16 +00:00
thorpej
7f74df5ef3 ABICALLS -> __ABICALLS__ 2002-11-10 18:10:25 +00:00
thorpej
6596b29802 t4 -> ta0 2002-11-05 00:05:15 +00:00
thorpej
c061e6bf8b Enable the libc-provided signal trampoline. The old __sigaction14
entry point has been replaced by the new __sigaction14() which is a
wrapper around the __sigaction_sigtramp system call (which is itself
not directly exposed outside of libc).

No shared library version change is necessary; no new symbols
are exposed outside of libc.
2002-07-10 04:29:05 +00:00
thorpej
8aa4d3caec New __sigaction14() system call stub which registers the signal
trampoline, and the signal trampolines themselves.

NOTE: These are not yet enabled; they will be enabled after further
testing on more architectures.
2002-07-09 23:32:35 +00:00
wiz
92d8b1e9fa Revert previous: .S files are currently compiled with -traditional-cpp,
so __STDC__ is _not_ always defined.
2002-05-26 12:24:55 +00:00
wiz
d56bb7c2ec __STDC__ is always defined on NetBSD. 2002-05-26 11:48:00 +00:00
simonb
2d8577fb83 Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
 - Use the above for the __infinity and __nan constants on all
   architectures that use the standard ieee754 representation of
   those constants.
 - Add a single copy of various ieee754 math functions (frexp, isinf,
   isnan, ldexp and modf) that had numerous duplicates among the
   arch-specific directories.
 - Use the above functions on all architectures where the generic C
   versions where used.  Architectures that had local assembly
   routines are untouched (for those functions only).
2002-02-19 13:08:12 +00:00
thorpej
ac8c1c29e9 * Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).
2002-01-14 00:55:55 +00:00
thorpej
5d3e829423 Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
2002-01-13 21:45:39 +00:00
tv
fbc7a97b48 Remove files beginning with ":", which is invalid on other host OS's
(particularly those made by Microsoft).  These ex/vi-macro files are not
actually needed at this point, anyway....
2001-10-19 02:43:26 +00:00
thorpej
bcd75f16cb Duh, call the clone's entry point w/ jal, so that when it returns,
it returns to the correct $ra (not the parent's!!).
2001-07-20 17:37:39 +00:00
thorpej
480252327f Cosmetic change. 2001-07-17 02:05:32 +00:00