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
petrov
09ec250b4c
Declare global register.
2003-05-23 18:20:14 +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
martin
cf437d291f
Make _Qp_qtoui return the right value for inputs that do not fit into
...
an int value, but are valid unsigned ints. This should fix PR 21414.
The same problem exists for _Qp_qtoux, but there is no similar trivial
solution to that (I could think of).
Pointed out by David Laight.
2003-05-01 21:24:13 +00:00
kleink
3b364b9b85
Make sure we reference getcontext() by its internal name.
2003-04-07 21:04:20 +00:00
petrov
64f9771a77
Floating point argument should be in %f0 (sparcv9 ABI says).
2003-04-06 22:56:38 +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
petrov
12784e54c3
Correct unsigned to float conversions, add license, adjust style.
2003-02-06 20:23:35 +00:00
martin
912ab5ad59
Check how the compiler expects the return value of this function
...
by testing SOFTFLOATSPARC64_FOR_GCC.
Should fix PR port-sparc64/20140.
2003-02-01 09:19:58 +00:00
thorpej
3fdac2b8c5
Merge the nathanw_sa branch.
2003-01-18 10:52:16 +00:00
chs
cab484e445
move includes to the top so that this builds in libc context too.
2002-10-29 04:40:55 +00:00
petrov
ade04d7707
Compile with an ISO C preprocessor.
2002-10-29 00:22:18 +00:00
chs
c04f87a03e
remove setjmp/longjmp from libkern, they're not used.
2002-10-27 18:45:11 +00:00
chs
c5a350ef59
use %g5 instead of %g7 (since we want to use %g7 for the cpu_info pointer
...
in the kernel). resync libc and libkern versions of this file.
2002-10-27 18:41:27 +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
86223838f0
Also need <machine/fsr.h> and <machine/psl.h>.
2002-07-10 03:27:23 +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
bjh21
6bd902a1db
Adapt for recent lib/libc/softfloat changes.
2002-05-22 10:20:20 +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
eeh
eb4eaa1ba4
Remove test harnass bits.
2002-04-01 15:59:26 +00:00
eeh
35e86bd3e5
Better, faster strlen().
2002-03-30 03:28:53 +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
jmc
f40c307405
Move names for softfloat lib that _Qp functions call into _softfloat_
...
namespace
2002-03-04 21:26:39 +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
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
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
26375a1710
Remove -Wa,-Av9a hack from <sys.mk> and relegate it to the places that need
...
it (kernel and libc).
The current version of the gas assembler in the tree (2.11.2) already
defaults to generating object files for "-Av9 -64", supporting V9
instructions in ELF64 object format. "-Av9a" is only needed for specific
parts of the NetBSD base sources, and not for all third-party code.
2001-12-19 21:17:59 +00:00
chs
5f13639b8f
fix for -Wshadow
2001-11-07 15:45:12 +00:00
eeh
1a0ae8c9f0
Improved version of bzero.
2001-08-02 01:17:28 +00:00
eeh
5dd57287be
Fix some corner cases.
2001-08-01 16:45:20 +00:00
eeh
685a79bb36
Use unsigned compares for addresses.
2001-08-01 05:52:12 +00:00
thorpej
f98eeabaa2
sparc64 version, cloned (har har!) from the sparc version and tweaked.
2001-07-23 07:35:44 +00:00
thorpej
fed292651f
From rev. 1.11 of the 32-bit version:
...
Add a macro "CALL()" to call a function correctly in the pic and non pic
case. Write ERROR() in terms of call.
2001-07-23 07:26:50 +00:00
eeh
b4b1b3f3d7
Replace bzero.S and bcopy.S with memset.S and memcpy.S to make the makefiles
...
happy.
2001-07-07 04:55:21 +00:00
eeh
227671f79e
Fix more boundary issues.
2001-07-05 19:09:24 +00:00
eeh
8617fb9c54
Fix some boundary condition issues.
2001-07-05 06:29:49 +00:00
eeh
81fff01d8c
Re-enable block insns for cahe issues.
2001-07-04 20:18:30 +00:00
eeh
093cf4f3b1
Re-enable block insns since they don't allocate in the caches.
2001-07-04 20:16:17 +00:00
eeh
64c6d98716
Disable slower VIS version.
2001-07-04 05:51:06 +00:00
eeh
a6d4aabed4
Fix return value and fetches beyond the source range that could cause
...
segmentation faults in some cases. And disable the VIS version which
seems to be slower.
2001-07-04 05:44:56 +00:00
eeh
c7b881788f
Oops. Fix typo.
2001-07-01 22:48:30 +00:00
eeh
0abcba55b7
I seem to have stumbled on an even faster bcopy implementation....
2001-07-01 22:19:51 +00:00
eeh
4acdda21fd
Add an optimized asssembly bcopy/memcpy.
2001-06-30 00:10:48 +00:00
eeh
6541f113b9
Add an assembly version of memset(3).
2001-06-21 22:41:55 +00:00
chs
77b0e1dfba
adjust the PIC case for ERROR() to handle __cerror being at a larger offset
...
than will fit in the immediate field of the LDX instruction.
2001-06-15 01:09:50 +00:00
eeh
4fd3b89e58
Removed unused PIC setup code.
2001-05-13 20:02:13 +00:00
eeh
e21d458f48
Don't flush the zero-ed data from the cache.
2001-02-10 23:35:41 +00:00
martin
772baecb3a
Add simple __syscall.S to make libc compile on sparc64 again.
2000-12-13 20:25:04 +00:00
eeh
5d73d71676
Fix modf() (I hope. Can't be any worse than the old version.)
2000-11-01 23:32:41 +00:00
kleink
82fd76bb06
Need an internal name for pipe(2).
2000-09-28 08:38:53 +00:00
msaitoh
f9b799b651
check LIBC_SCCS
2000-09-13 22:32:25 +00:00
eeh
d3312c2719
Fix layout of fields in jmp_buf. [N.B. we could make JMP_BUFLEN 9 if we want.]
2000-08-28 00:45:59 +00:00
eeh
9c2bf87977
Need to reserve a full 64-bit stackframe, not a 32-bit one.
2000-07-26 00:53:50 +00:00
mycroft
01a39929fc
Store the whole 64-bit pointer...
2000-07-25 20:15:40 +00:00
mycroft
fb41c8728c
Use cpp comment style.
2000-07-25 15:14:45 +00:00
mycroft
c54917029b
Make __dtoul() actually DTRT. The calling convention was totally wrong, and
...
the `big' value should be 2^63, not 2^31.
Also, nuke __fixunsdfsi(), since this is never output by the sparc64 compiler.
2000-07-25 04:26:12 +00:00
mycroft
4272204d8d
Offset the %i2 stack slot from %sp, not %fp. Otherwise we may modify the
...
caller's registers!
2000-07-24 15:36:49 +00:00
mycroft
fc590aafb4
There's no good reason not to assume a 64-bit stack here.
2000-07-24 15:24:55 +00:00
mycroft
eded30220a
Don't bother saving %f16-%f31, since we don't use them.
2000-07-24 07:30:54 +00:00
mycroft
b3e75eb4ed
_errno -> __errno
2000-07-24 00:11:10 +00:00
mycroft
e740400671
Just use a store/load pair to get the pattern into the FP reg. This eliminates
...
a bunch of cruft and avoids using a v9a instruction.
In addition, eliminate 8 of the fmovda's, which we are not using the result of
anyway.
Net result is that this should be faster in all cases.
2000-07-23 20:34:07 +00:00
eeh
32ceb997a8
Fix stack BIAS issues.
2000-07-23 07:12:22 +00:00
eeh
e507cc60e6
Update some more assembly code for PIC issues.
2000-07-21 03:14:15 +00:00
eeh
067b7521b5
Fix PIC bugs.
2000-07-18 22:38:11 +00:00
eeh
1b72cecb45
Block align pointer *AFTER* fixing up possible stack bias.
2000-07-08 16:02:15 +00:00
itohy
af83a97717
Add special treatment of shmat(2).
...
On m68k ELF calling standard (__SVR4_ABI__), if a function
returns a pointer, the return value should go to a0 as well as d0.
2000-07-07 08:20:50 +00:00
kleink
b8a4d7adf9
Need an internal name for fork().
2000-06-26 06:32:54 +00:00
kleink
2234f31b26
Add a _SYSCALL(entry,syscall) macro like the one found on other
...
architectures.
2000-06-26 06:31:37 +00:00
kleink
15bc7ed349
Thinko in previous: we do always use an internal name.
2000-06-26 06:25:36 +00:00
kleink
03f996bd0c
Add internal names for brk() and sbrk().
2000-06-23 15:40:36 +00:00
kleink
e4d7c2e329
Add ISO C99 long long integer general utility interfaces; partially addresses
...
PR standards/9482.
2000-03-06 18:32:22 +00:00
mycroft
c26054b799
Delint.
2000-01-22 22:40:58 +00:00
eeh
0ba088f0a3
New bzero() using block store insns.
1999-12-30 15:31:39 +00:00
eeh
d1b815fe32
Sample code to implement ffs() using the popc insn (if it's ever implemented).
1999-12-30 15:30:26 +00:00
kleink
11e6c54cfc
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
...
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
mycroft
b3b07a4c6e
Another microoptimization. Take advantage of the addition already having set
...
the flags for the <=0 comparison.
1999-08-30 18:28:24 +00:00
mycroft
0560606383
Reuse the trick of loading 0.0 (rather than 1.0) and then modifying the
...
exponent. It's a bit faster on some machines.
1999-08-30 18:01:40 +00:00
augustss
75d2dfe657
Remove more unused mulexp variables.
1999-08-30 15:11:32 +00:00
mycroft
5f34ffabca
ldexp(denormal, exp>1023) would generate the wrong result in all non-overflow
...
cases. Totally rework this code to fix this bug *and* make it faster.
1999-08-29 22:45:32 +00:00
mycroft
02a48bde49
Don't ever return -0.0.
1999-08-29 19:04:02 +00:00
mycroft
0d708431b7
Minor style change.
1999-08-29 18:40:50 +00:00
mycroft
ea4b733810
Trivial KNF.
1999-08-29 18:39:35 +00:00
mycroft
099dd01a1d
Make the C version of frexp() consitent across platforms, and handle the
...
Inf/NaN case.
1999-08-29 18:30:14 +00:00
mycroft
17030e8106
Separate isnan() into a separate module, and make isinf()/isnan() use ieee.h.
1999-08-29 18:08:27 +00:00
thorpej
30dca7f7db
Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
...
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.
Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
1999-08-25 05:09:27 +00:00
eeh
713a1d89ff
Add _dtoul() which gcc generates a lot. Maybe it should go in another file.
1999-04-04 21:01:39 +00:00
kleink
5af7e7a902
Change references to `end' to `_end' as not to invade (or being invaded by)
...
the user's name space.
1999-03-31 11:53:07 +00:00