Commit Graph

163 Commits

Author SHA1 Message Date
martin 5265977a9e When converting long double values to integer types, explicitly use the
"round to zero" variants of the softfloat conversion functions.
Add a variant to convert long double to unsigned long - the "to long"
variant checked for overflows that do not apply to unsigned results.
This fixes the regress/lib/libc/convfp tests for sparc64.
2007-11-08 15:50:19 +00:00
martin f666b179b1 After discussing this further with uwe, rearange stack usage slightly and
replace a comment with words suggested by him.
2006-12-27 13:40:56 +00:00
martin 520e5c8f6a When setting up the __clone()'s userland stack, make sure to allocate
an initial frame. Fixes PR 33075.
2006-12-25 21:44:37 +00:00
martin 2cb7656bf1 Pull over rev. 1.5 of the i386 version (../../i386/resumecontext.S),
quoting Matthias Drochner:

> -check for a NULL uc_link before calling setcontext(2); do a real exit(3)
>  instead with exit handlers and all that
> -If setcontext(2) returns (which it shouldn't), do an _exit(-1) rather
>  than relying on a sensible return value to use as exit code. Makes
>  it less likely that an ucontext corruption goes unnoticed.

This also fixes regress/lib/libc/context for sparc64.
2006-12-08 15:51:45 +00:00
drochner 5ea27734ec build frexp_ieee754 and ldexp_ieee754 in the "compat" subtree
(There is an assembler version of modf which needs to be checked.)
2006-07-03 13:06:12 +00:00
uwe 46daac62de G/c KMSRCS and KMINCLUDES now that we have common/lib/libc 2006-06-17 18:04:23 +00:00
mrg 340a97942e if SOFTFLOAT_FOR_GCC is not defined, don't declare float_detect_tininess. 2006-05-11 23:53:14 +00:00
mrg fd07545586 in makecontext(), sp is unsigned * so don't assign signed *'s to it. 2006-05-11 00:34:44 +00:00
drochner f81322cf18 build erand48_ieee754.c on everything but vax 2006-03-22 22:03:58 +00:00
kleink bc89c06cbf Add strtof(3) and strtold(3); welcome libc 12.137. 2006-03-15 17:35:17 +00:00
christos b1732b7a63 make these consistent. 2006-02-19 05:06:02 +00:00
kleink 804e6c96a2 Add machine-dependent definitions for gdtoa. 2006-01-25 15:33:28 +00:00
perry ce666bb8ce __asm__ -> __asm 2005-12-24 23:10:08 +00:00
perry 4e11af46bc Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 21:11:15 +00:00
christos e5548b402a Use reach-over sources from common/lib/libc 2005-12-20 19:31:47 +00:00
christos 4c7dd80367 rename the files in gen like we did for i386. 2005-10-16 17:15:38 +00:00
christos 180e99b5f3 Bring sparc64 to the new compat layout. 2005-10-16 04:41:34 +00:00
martin 699dc5a659 Add missing <compat/..> include 2005-09-13 09:52:17 +00:00
lukem 88c3eadbfa Add missing __RCSID() 2005-06-12 05:21:25 +00:00
jmc 9de49396cd Don't use 'm4' here. Use $TOOL_M4 instead. 2005-04-20 18:26:11 +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
martin 528e949b20 Replace the stack unwinding by a much simpler solution taken from
../../arch/sparc/gen/_setjmp.S rev. 1.6. This ended up to be ~identical
to the OpenBSD change triggered by the same sparc change.
Thanks to Stoned Elipot for pointing out the problem.
2004-12-07 08:20:07 +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 67f778a2c4 fix references to the syscall formerly known as SYS___sigreturn14 2004-03-26 19:36:40 +00:00
pk 8a0244288a Call PIC_PROLOGUE only once. 2004-03-23 19:07:40 +00:00
pk dc7908cc61 Store the correct boolean value in sc_onstack. 2004-03-23 18:54:03 +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
martin f85414fd31 Simplify slightly and fix a comment. 2004-03-22 18:35:51 +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
martin dff5a86b96 Too sad - inlining syscall stubs on sparc64 is so much easier than doing
PIC calls to the libc stubs, but unfortunately we need to do the latter-
otherwise we break weak symbol semantics and make libpthread fail.
Thanks to Christian Limpach for the analyzis.
2004-01-19 18:33:21 +00:00
martin f04f3a62db Forgot to mention in last commit message: remove some accidently commited
debug code.
2004-01-19 18:20:35 +00:00
martin fd70c1464d Unfortunately we can not restore the signal mask with setcontext() - this
breaks libpthread, which tries to intercept the weak sigprocmask symbol.
So use an explicit sigprocmask call instead.
2004-01-19 18:19:33 +00:00
martin e032233866 Store the "signal mask saved" flag at the end of the jmp_buf - we now use
more of it than before (and I bet the old place just is a non translated
32bit sparc value).
2004-01-19 18:17:21 +00:00
martin 2f3e9d2cf8 Avoid using the depreceated __sigreturn14 for longjmp by adapting
Christian Limpachs arch/m68k implementation using setcontext().
2004-01-17 22:01:15 +00:00
kleink d82e732345 Add C99 fpclassify(), isfinite(), isnormal(), and signbit() macros. 2004-01-15 19:43:44 +00:00
martin ba54915063 Fix two inverted comparisions and a few comments.
This makes sparc64 pass the sigsetjmp regression tests.
2004-01-02 22:30:36 +00:00
martin 97ab4e62e3 Restore stack frames on error exit. This makes us pass dynamic and static
linked versions of the clonetest regression test.
While here, some cosmetics: branch prediction, avoid depreceated instructions.
2004-01-02 14:06:51 +00:00
martin 586bc581af Use CC64FSZ instead of magic constant for stack frame size.
Frob the clone's stack pointer to be BIASed - it is 64 bit code too.
Use "carry set" as test for a failed syscall.
2003-12-31 15:56:26 +00:00
martin 269c3e3d2b Use an unsigned comparison against minbrk.
From OpenBSD, changed by Miod Vallat.
2003-12-26 11:21:48 +00:00
nakayama 8fc6819ddd Corrent map order to match sparc/ieeefp.h. 2003-11-01 14:26:29 +00:00
kleink 0a97d0875b C99 7.12.3.2: add library portions of isfinite, but don't build these just
yet.
2003-10-29 20:03:51 +00:00
kleink 75327729a2 C99 7.12.3.1: add IEEE library portions of fpclassify. Don't build these
yet as the VAX implementation is still subject to discussion.
2003-10-28 22:05:37 +00:00
christos 5f4474073a Explain the stack layout correctly now that that I understand it :-) 2003-10-27 02:33:06 +00:00
kleink 964d6747b5 Err, rename some members added in previous to make them reflect their
semantics better.
2003-10-27 01:11:46 +00:00
christos 6664eb5f2d Add __sigtramp2 2003-10-27 00:46:05 +00:00
christos d9676dda89 Signal trampoline stuff for siginfo.
XXX: I don't understand why I am off by 48 bytes.
2003-10-27 00:45:36 +00:00
kleink 5976f8aa56 Retire local union { floating-type; struct ieee_prec; } in favor of those
available from <machine/ieee.h>
2003-10-27 00:05:46 +00:00
kleink 9f3dbee22c Add __infinityf and __infinityl, float respectively long double analogs
of __infinity.
2003-10-25 22:31:20 +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