Commit Graph

836 Commits

Author SHA1 Message Date
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
bjh21 6bd902a1db Adapt for recent lib/libc/softfloat changes. 2002-05-22 10:20:20 +00:00
bjh21 936b7f4cf8 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories.  Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable.  This is set to 64 (which
uses the same code we had before) by default.  32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version.  This should get the
floating-point performance back to what it was in 1.5.
2002-05-21 23:51:04 +00:00
bjh21 010758bf16 Add SIGFPE support to SoftFloat, so fpsetmask/fpgetmask now work. A new
variable, float_exception_mask (#defined to _softfloat_float_exception_mask)
contains the current exception mask.
Also make the argument to float_raise into an fp_except.
Also synchronise file header comments between files.
2002-05-12 13:12:45 +00:00
eeh 22abdf821b Use large (-fPIC) relocations. 2002-05-07 01:34:21 +00:00
eeh b92211c580 Go back from using %g2 (an application register) to %g7 (a system register)
for syscall returns.
2002-05-07 01:32:46 +00:00
eeh 1d63620b87 Add support for large -fPIC relocations. 2002-05-07 01:31:33 +00:00
bjh21 251de84ccc Consistently declare the types of float_rounding_mode and float_exception_flags
as fp_rnd and fp_except respectively.
2002-05-06 19:05:00 +00:00
thorpej 046b47950e Add a .register directive to appease newer gas. 2002-05-05 17:51:46 +00:00
bjh21 25540eca7e All the versions of softfloat-specialize were practically identical, so replace
them with a single one.
2002-04-21 21:07:35 +00:00
eeh bc3cedd6d8 The mask for 8-byte alignment is 0x7 not 0xf. 2002-04-02 22:07:55 +00:00
thorpej 2e52a189a8 Remove non-existent ldexp.c from SRCS. 2002-04-02 03:41:26 +00:00
eeh eb4eaa1ba4 Remove test harnass bits. 2002-04-01 15:59:26 +00:00
matt 33ce495df4 Put R6 back in the save and adjust frame size for it. Don't save the
register in sigset area, put them after the sigset area.
2002-03-30 05:32:32 +00:00
matt 583d4ad39f Put R6 back in save mask (to make mask used by PLT routines). Adjust frame
size according.  In _longjmp, deal with sp/fp separately since they stored
in reserve order so movq won't work.
2002-03-30 04:58:36 +00:00
eeh 35e86bd3e5 Better, faster strlen(). 2002-03-30 03:28:53 +00:00
matt 42e21b0c6a Fix a few wrong register uses. (at least I know it works now. :) 2002-03-28 04:16:54 +00:00
matt dd5b171018 Add sync before isync since the MPC74xx require it. 2002-03-28 00:38:46 +00:00
matt 5cc5894442 Don't build old 1.3 compat jmp stuff for ELF.
For ELF, don't rewind stack on longjmp/_longjmp.  (for pth).
2002-03-27 18:38:50 +00:00
jmc a7839b0fdc Fix typo in previous commit 2002-03-27 03:43:39 +00:00
jmc a1fe3592c6 Correct mistaken signature for _Qp_dtoq. It gets a double passed in, not
a pointer to double which causes obvious errors on evaluation
2002-03-27 03:41:54 +00:00
matt 12810ed37d Use size_t in prototype (so this will be LP64 clean for PPC64 someday).
Calculate len separately for icache & dcache in case each has different
cacheline widths.  Make the code for both loops the same except for the
dcbst/icbi.  Deal with sizes >=2GB properly (like that'll happen but ...)
2002-03-26 21:20:24 +00:00
ross 70d3133ec0 Fix minor syntax warnings. 2002-03-23 20:13:35 +00:00
ross e1a248fa36 use canonical indirect jmp & call syntax to squelch new as(1) warning 2002-03-20 22:06:18 +00:00
bjh21 376c14488f Only abort() if the user specifies a rounding mode other than FP_RN. 2002-03-19 13:42:23 +00:00
bjh21 a03fedb6a5 ANSIfy. 2002-03-19 13:36:30 +00:00
dbj f0658bdada make compile with _STANDALONE 2002-03-18 05:10:58 +00:00
eeh a33f33ab31 Remove leftover debug code. Oops. 2002-03-13 00:57:53 +00:00
eeh bc40300979 Use new CPU_CACHEINFO sysctl to get more detailed information about
cache layout.
2002-03-12 22:08:21 +00:00
bjh21 dad2756159 Use the values from <machine/ieeefp.h> to define the exception flags, and
rounding modes, rather than different ones (oops).
2002-03-10 23:31:35 +00:00
jmc f40c307405 Move names for softfloat lib that _Qp functions call into _softfloat_
namespace
2002-03-04 21:26:39 +00:00
matt 75dee250ea Missed an sp in the great %sp cleanup. 2002-02-24 02:43:46 +00:00
matt 0ce5ca145f Change to use a register prefix. 2002-02-24 01:06:18 +00:00
kleink 3ca01a7f77 Do without stfiwx; per PEM32 Rev. 1 it's an optional part of the UISA,
and not implemented on the 601.
2002-02-22 18:21:22 +00:00
eeh 2fdccc01af Add bzero.S and strlen.S to the stuff that gets installed in libkern. 2002-02-20 22:45:04 +00:00
thorpej 268d4c679c Adjust for changes to __infinity decl. 2002-02-19 21:50:01 +00:00
bjh21 58e93e10b1 Replace infinity.c with one in the style of the new ieee754_infinity.c, but
with extra #ifdefs for FPA-format doubles.  This gets it compiling again.
2002-02-19 20:08:19 +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
bjh21 294cb551a3 Switch libc syscall veneers over to using our shiny new official SWI range. 2002-02-10 14:10:59 +00:00
jmc 4b4c3144ba Enable the _Qp* routines to be built always and allow full softfloat to be
pulled in if MKSOFTFLOAT gets enabled.
2002-02-05 07:54:01 +00:00
jmc d9c86555ad Add softfloat and quad softfloat setup for sparc64 (thanks to Andrey Petrov
for most of this. I just integrated the build).

This adds proper functions for the _Qp* parts of the sparc64 ABI (which
handle quad softfloat). The routines work but need additional testing.
However if the compiler calls these currently bad things (core dumps)
will happen as gcc 2.95.3 generates bad calls for these.

Until that problem is fixed in the toolchain -msoft-quad-float cannot be
enabled as the default option for all builds (but the routines need to be
in libc as libgcc contains some references to these and anything including
it via --whole-archive will need the symbols to at least resolve).
2002-02-05 07:53:05 +00:00
ross de50fe2e64 Drink ALL the Kool-Aid.
(Move -mieee from lib/ to bsd.*.mk; new var MKIEEEFP defaults to yes.)
2002-01-27 23:33:51 +00:00
thorpej 4586df0992 On Alpha, build libc and libm with -mieee ... A metric crapload
of 3rd party software expects this.

XXX TODO: consider libm-fast for alpha that is not -mieee.  Possibly
determine -mieee or not at run-time based on a bit in the executable
headers.
2002-01-27 21:59:18 +00:00
aymeric 5927ef00d8 Redefine ENTRY properly for both ELF and a.out
Now we can compile profiled m68k programs that use libc.
2002-01-22 22:44:43 +00:00
ross 513a2a744b Align __nanf[] object with (sigh) gnuisms 2002-01-21 23:54:45 +00:00
ross 2bd74b6c24 Don't intentionally enable integer overflow traps (ITOH Yasufumi)
Closes port-alpha/10065
2002-01-21 23:40:41 +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
thorpej 6f2f5bdcc6 Fix -Wshadow warnings. 2001-12-30 19:23:59 +00:00