briggs
85a594afcd
Add a missing register prefix, noted by Makoto Fujiwara on the port-macppc
...
mailing list.
2002-08-09 02:46:56 +00:00
matt
1cddd41e0c
Convert to use register prefixes. (0 -> %r0, etc.)
2002-07-30 06:07:56 +00:00
fvdl
d97eddb8d3
Remove fs and gs kludge.
2002-07-14 12:29:59 +00:00
scw
2675306718
Add IEEE FP mode control functions and definitions for SH5.
2002-07-12 12:20:24 +00:00
thorpej
ad4531774a
Need <machine/psl.h> and <machine/signal.h>. Problem pointed out
...
by Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>.
2002-07-11 17:47:11 +00:00
scw
11c9d0366e
Fix a tryping error.
2002-07-11 17:41:40 +00:00
scw
8c43a4afe4
Userland side of SH5 signals/setjmp.
2002-07-11 14:23:04 +00:00
scw
1a4432c02e
It helps to use the right register for the return value.
2002-07-10 13:21:56 +00:00
scw
eb817bdf5a
Add some missing FP support code.
2002-07-10 13:09:04 +00:00
scw
2ff17a3936
Ditch the leading underscores for bswap*()
2002-07-10 12:42:28 +00:00
scw
5754eadb38
Compensate for an over-pedantic assembler.
2002-07-10 11:45:51 +00:00
scw
c7810bb6a8
Fixed a botched blink insn.
2002-07-10 11:43:16 +00:00
scw
9f405d4e5c
Don't include <machine/endian.h> in asm source.
2002-07-10 11:29:32 +00:00
scw
2ecd583666
Fix register number botch.
2002-07-10 11:05:19 +00:00
scw
15107aacfc
Remove whitespace from WEAK_ALIAS macro invocation.
2002-07-10 11:02:24 +00:00
scw
0c3e5a70d1
Use C versions of string functions for now.
2002-07-10 09:12:21 +00:00
kent
4d7aae1097
Avoid redundant memory access.
...
Fix diagnostic code for bcopy().
2002-07-10 06:01:51 +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
scw
ad8fdcc166
Forgot these in the last commit.
2002-07-05 13:32:58 +00:00
scw
59474a8c82
NetBSD, meet the SH-5 cpu.
...
SH-5, meet NetBSD.
Let's hope this is the start of a long and fruitful relationship. :-)
This code, funded by Wasabi Systems, adds initial support for the
Hitachi SuperH(tm) SH-5 cpu architecture to NetBSD.
At the present time, NetBSD/evbsh5 only runs on a SH-5 core simulator
which has no simulated devices other than a simple console. However, it
is good enough to get to the "root device: " prompt.
Device driver support for Real SH-5 Hardware is in place, particularly for
supporting the up-coming Cayman evaluation board, and should be quite
easy to get running when the hardware is available.
There is no in-tree toolchain for this port at this time. Gcc-current has
rudimentary SH-5 support but it is known to be buggy. A working toolchain
was obtained from SuperH to facilitate this port. Gcc-current will be
fixed in due course.
The SH-5 architecture is fully 64-bit capable, although NetBSD/evbsh5 has
currently only been tested in 32-bit mode. It is bi-endian, via a boot-
time option and it also has an "SHcompact" mode in which it will execute
SH-[34] user-land instructions.
For more information on the SH-5, see www.superh.com. Suffice to say it
is *not* just another respin of the SH-[34].
2002-07-05 13:31:28 +00:00
thorpej
2ce52bf270
Remove "_THREAD_SAFE" stuff that is not used on NetBSD.
2002-07-04 16:48:44 +00:00
kent
763eb5645a
memcpy/memmove/bcopy: Add diagnostic code to check pointer wraparound.
...
The code is enabled only when _DIAGNOSTIC is defined.
2002-07-04 15:48:40 +00:00
bjh21
3763adaefd
Avoid leaving junk in the top half of R0 on return.
...
This fixes port-arm/17440.
2002-07-01 19:07:18 +00:00
fredette
58e86abcb7
Changes to allow libc to compile as PIC on the hppa.
2002-07-01 16:00:50 +00:00
matt
471cb493ae
Add modff
2002-06-23 21:48:52 +00:00
fvdl
4f2f06c917
Attempt to juggle the 2 seperarate status/mask bit sets for plain FP
...
and XMM to provide a consistent interface.
2002-06-12 19:17:22 +00:00
fvdl
165400b7ba
mov -> lea to access _map table.
2002-06-06 23:04:35 +00:00
fvdl
e6f161c821
Fix the EINVAL return path.
2002-06-06 20:51:17 +00:00
fredette
02ac1ae2f0
Added hppa support (some of it incomplete) to lib/csu, lib/libc,
...
and lib/libkvm.
2002-06-06 20:31:19 +00:00
fvdl
10940acfe5
Add clone(2) implementation.
2002-06-03 18:31:12 +00:00
fvdl
e010b5ebde
Use the syscall insn for system calls. Fix up some assembly to
...
remove either previously made errors, or to account for the
fact that syscall clobbers %ecx.
2002-06-03 18:30:32 +00:00
thorpej
d9f211b107
Make this work with an ISO C preprocessor.
2002-05-30 05:08:51 +00:00
eeh
9969483183
Fix conflict in definitions.
2002-05-29 15:58:03 +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
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
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
msaitoh
cf9f94a483
sync with other archs.
...
Important fixes:
> 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.
> Don't ever return -0.0.
2001-12-10 10:23:03 +00:00
wiz
b4371d47f5
Replace some misuses of "then" with "than".
2001-12-04 17:56:30 +00:00
mjl
a9c86c6ce0
Add assembler version of strlen.
2001-11-30 02:26:35 +00:00
mjl
625c08cf7e
Outifdef some stuff not needed in the _KERNEL case.
2001-11-30 02:25:50 +00:00
mjl
7f0157c400
Make this work in kernel space too.
2001-11-29 00:20:37 +00:00
mjl
feb8901632
Add PPC assembler routines for ffs(3), bzero(3) and memset(3).
2001-11-25 01:09:58 +00:00
wiz
1fd7eeefcd
"than" instead of "then".
2001-11-21 19:14:19 +00:00
chris
aadbf924e6
Update asm files to use sp instead of r13. Also tweak a couple of bits in the longjmp code to save an instruction.
2001-11-13 20:04:52 +00:00
chris
d4ffdc1db0
Update arm libc files for 8 byte aligned stack.
2001-11-13 20:03:38 +00:00
bjh21
49ddb29842
Fix .type directive to use the right name for L_ffs_table (pointed out by
...
Ian Fry).
Also, add RCSID and fix some comments.
2001-11-13 13:07:52 +00:00
chris
6829afaed3
Update the libc version of ffs to make use of an optimsed asm version.
2001-11-11 22:05:18 +00:00
bjh21
4da598993d
Rename a parameter to fix build problem with new toolchain.
2001-11-08 22:45:45 +00:00
tron
b1d32d0e07
Rename a parameter to fix build problem with new toolchain.
2001-11-08 11:24:07 +00:00
enami
6023422f9d
Fix -Wshadow warnings.
2001-11-08 06:51:05 +00:00
drochner
f0f40184c9
-Wshadow fix
2001-11-07 17:56:32 +00:00
drochner
dacd4ae4c5
cpoy from the 040 version: -Wshadow warning fix
2001-11-07 17:55:42 +00:00
mjl
d1960d6679
fix for -Wshadow
2001-11-07 17:46:21 +00:00
chs
5f13639b8f
fix for -Wshadow
2001-11-07 15:45:12 +00:00
drochner
f3b5b119ec
fix -Wshadow warnings
2001-11-07 13:44:58 +00:00
lukem
50f5afd52e
fix WARNS=2 (-Wshadow) warnings
2001-11-04 13:57:29 +00:00
bjh21
ffbd94556b
Change isnan() and isinf() to use a union to convert from double to
...
struct ieee_double, rather than a pointer cast. This seems to enable
GCC 2.95.3 to get the instruction dependencies right (the old one fell
foul of ANSI aliasing rules), and it also generates more sensible code in
general.
If this is the correct solution, it should be applied to the other ports.
If it's not, someone should come up with one that _is_ correct.
2001-10-29 20:16:55 +00:00
bjh21
6a56d71ffa
Handle machines using VFP-format doubles (as we do in ARM ELF) and big-endian
...
systems correctly.
2001-10-28 12:40:56 +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
fredette
129f58b424
On the 68010, don't bother with the by-8-longwords loop, instead
...
only 16-bit align the region and use loop mode with longwords
to do the bulk of the work.
On the 68020+, fixed an optimization bug where all regions that start
on odd addresses would not be properly longword aligned.
2001-09-07 12:50:01 +00:00
chuck
759fa4641f
change "pushl [r0](ap)" ---> "pushl (ap)[r0]" ... the old version
...
made a reference to an external symbol "r0" rather that used register r0.
2001-09-06 18:42:58 +00:00
matt
9969d4398b
Ansi'fy. (to make this compile under -Wstrict-prototypes)
2001-08-27 16:46:43 +00:00
matthias
0548dfb96c
__clone stub for ns32k. Basic code taken from m68k.
2001-08-08 09:19:40 +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
christos
fdda22398f
add an implementation of __clone(2)
2001-07-23 01:41:25 +00:00
christos
9a416d6f08
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 01:40:33 +00:00
chris
30b6c70f2c
Add __clone() for arm.
2001-07-22 18:56:34 +00:00
tsubai
2060c2091a
Add __clone() for sh3.
2001-07-22 17:18:25 +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
tsubai
193161b3fe
Add a __clone(3) entry point for powerpc.
2001-07-20 17:19:15 +00:00
scw
b722bfb186
Compensate for the syscall args stack cleanup in the clone.
...
(Pointed out by Matthias Pfaller)
2001-07-20 17:08:18 +00:00
matthias
5501e1c532
This is just a RSYSCALL.
2001-07-20 11:17:18 +00:00
matt
63237a33ce
Add __clone(2) for VAX.
2001-07-20 06:10:12 +00:00
scw
c45a0d8765
clone(2) syscall frontend for m68k.
2001-07-19 21:50:46 +00:00
fvdl
d34ad42fdb
Fix call to _exit.
2001-07-18 12:24:53 +00:00
thorpej
da2e0bfb7c
Simplify slightly.
2001-07-17 23:13:04 +00:00
fvdl
017c6632e8
__clone stub for i386
2001-07-17 06:03:43 +00:00
thorpej
480252327f
Cosmetic change.
2001-07-17 02:05:32 +00:00
thorpej
d85c1e4043
Add a __clone(2) entry point.
2001-07-17 02:01:40 +00:00
thorpej
4cd75d0d0a
Add a __clone(3) entry point.
2001-07-17 00:33:04 +00:00
matt
5feec23305
Changes needed for ARM ELF shared library support.
2001-07-16 05:50:05 +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
ragge
d6a6aa8773
These are too simple to not have in assembler. Also shrunk the libs with
...
~1k of unneccessary code :-)
2001-07-01 13:31:18 +00:00
eeh
4acdda21fd
Add an optimized asssembly bcopy/memcpy.
2001-06-30 00:10:48 +00:00
atatat
c39d205545
fix a grammatical error error
2001-06-28 05:25:04 +00:00
kleink
b7ef7f807f
Use a bzero-based assembly language implementation for memset();
...
inspired by the recent sparc64 change.
2001-06-23 08:38:43 +00:00
eeh
6541f113b9
Add an assembly version of memset(3).
2001-06-21 22:41:55 +00:00
fvdl
10f59d7bba
Initial commit of x86-64 specific parts of libc.
2001-06-19 00:25:01 +00:00