kleink
8b314175ec
Add ns32k ucontext userland portions. Untested, but compiled in the
...
recent past and presumed working.
2003-01-21 21:03:25 +00:00
kleink
7a9f64971b
Add swapcontext() lint stub.
2003-01-21 20:26:10 +00:00
kleink
cd9f53e12c
Add swapcontext() lint stub.
2003-01-21 20:14:07 +00:00
scw
fd2dcace1f
Make these compile.
2003-01-21 11:29:29 +00:00
scw
11e9fa3a9b
Initialise the FPSCR to a sane value.
2003-01-20 20:09:59 +00:00
thorpej
c7e237f26a
Merge the nathanw_sa branch.
2003-01-20 00:26:39 +00:00
matt
21375ddf92
Make sure r0 in the saved context is 0.
2003-01-20 00:24:07 +00:00
matt
94face2f9c
Use _ALIGN_TEXT.
...
Make sure R0 is 0 in the saved context.
2003-01-20 00:18:06 +00:00
kleink
13a5336c66
Move getcontext.S from gen to sys, where it belongs.
2003-01-19 23:49:12 +00:00
scw
bcbbc4f87e
SH5 libc ucontext/lwp support.
...
Untested for now, until I get the libpthread stuff done and
an SA userland built.
2003-01-19 23:05:01 +00:00
matt
95b5cce5c6
Add getcontext(2) stub.
2003-01-19 19:32:39 +00:00
matt
8c295614ea
Add the VAX versions of these.
2003-01-19 19:07:30 +00:00
matt
bdde89628b
Cast with uintptr_t instead of u_long.
2003-01-19 08:53:36 +00:00
thorpej
c7cb871964
These files are obsolete; setlogin() is now implemented in C with a
...
small syscall stub.
2003-01-18 18:28:44 +00:00
thorpej
3fdac2b8c5
Merge the nathanw_sa branch.
2003-01-18 10:52:16 +00:00
fvdl
50683c0ce9
The fast syscall path clobbers 2 registers. Which is fine for a plain
...
system call, as long as the stub knows about it. However, it's bad
for sigreturn. Hence, use the old entry point for sigreturn. XXX
2002-12-13 17:43:02 +00:00
scw
94932a0f44
SH5 asm versions of some low-level libc routines.
...
Most of these copied from libkern.
2002-12-08 09:48:36 +00:00
thorpej
06edae0ff4
Need <stdlib.h> for abort() prototype.
2002-11-26 21:14:04 +00:00
chris
0caaced5a9
Add arm asm version of memcmp, basically it's strncmp.S without the
...
check for *src != 0
2002-11-23 14:26:04 +00:00
chris
35c74e8cc5
Add an asm version of strncmp, based on strcmp.
...
Add RCSID to strcmp, also use numeric label, rather than named label for
loop.
2002-11-23 03:10:27 +00:00
itohy
6cde54195b
Assembly version of string functions.
...
Originally from SHIMIZU Ryo.
2002-11-20 14:23:54 +00:00
rearnsha
6576c49b48
Add an assembler version of strcmp, based on example code from the ARM
...
ARM. As an example of the performance difference that this provides
a Dhrystone score on my Shark goes from 213k to 261k.
2002-11-16 18:27:40 +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
junyoung
4c3981eea3
Save a jmp for memcpy(3).
2002-10-29 07:01:44 +00:00
junyoung
333f362341
memcpy(3) no longer deals with overlap case; it's now forward-only.
2002-10-29 06:53:18 +00:00
junyoung
7f21deb763
Get rid of pointer wraparound check. Ok'ed by TAMURA Kent.
2002-10-29 06:35:17 +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
a8151a52ca
Split isnan() into its own file.
2002-10-26 06:51:32 +00:00
thorpej
bc4821e36e
* Use the common ieee754_* routines (and add ones we were missing).
...
* Note that several routines are still missing for hppa.
2002-10-26 06:44:54 +00:00
scw
63199a5984
Fix a botched offset.
2002-10-08 20:19:00 +00:00
scw
d832585f39
Always save/restore the FP status register.
2002-09-28 10:38:55 +00:00
ragge
d1c2e581d6
Rename __sigtramp1.S to __sigtramp.S.
2002-09-12 18:28:52 +00:00
ragge
2e409d7d44
Fix a signal handler bug originally reported by Hugh Graham some year ago:
...
If two signals are sent after each other without the process being run in
userspace between them then the second one will overwrite part of the signal
info stored on the userstack.
Fixed by rewriting and simplifying both the signal delivery code and the
trampoline code. Also bump signal version number to 2.
Rename __sigtramp1.S to __sigtramp.S.
2002-09-12 18:28:22 +00:00
scw
ba98c8c290
Various setjmp/longjmp fixes.
...
Synchronise with the kernel's sh5 signal code.
2002-09-06 15:33:48 +00:00
scw
e4ff59faf1
Round-up the supplied length *before* aligning.
2002-09-06 15:31:19 +00:00
msaitoh
a991dcef11
Add __movstr_i4_{odd,even} for -m4.
...
Written by SHIMIZU Ryo.
2002-09-05 08:35:15 +00:00
scw
fd955ca5d6
Make it plain to the compiler that __sigtramp_sigcontext_1() really is
...
an external function, instead of an array. Otherwise, it won't set
bit 0 of the trampoline's address to indicate SHmedia mode.
2002-09-04 21:44:07 +00:00
scw
891c86cef4
Use r4 to preserve the filedes pointer across the syscall instead of r3.
2002-09-04 19:19:07 +00:00
itohy
f89823c1f8
Save 1-4 instructions on all cases except for the ret=0 case.
...
This is probably the last version from me. :)
You are welcome to speed it up, of course. :)
Here's a benchmark on SH-4 200MHz.
9.2% faster if all the cases occur evenly.
return value C version previous vers this version speed ratio
of ffs() (ns/call) *1 (ns/call) (ns/call) *2 (*1/*2)
------------ ------------ ------------- ------------ -----------
0 86 81 81 1.06
1 110 106 91 1.21
2 132 106 92 1.43
3 165 117 96 1.72
4 201 116 95 2.12
5 237 107 99 2.39
6 271 106 101 2.68
7 307 116 107 2.87
8 342 116 105 3.26
9 376 126 111 3.39
10 410 127 110 3.73
11 446 136 115 3.88
12 483 134 116 4.16
13 518 125 119 4.35
14 551 126 120 4.59
15 587 135 127 4.62
16 624 136 126 4.95
17 658 139 126 5.22
18 694 140 126 5.51
19 727 148 131 5.55
20 764 150 131 5.83
21 799 141 135 5.92
22 834 142 135 6.18
23 868 152 140 6.20
24 903 153 142 6.36
25 939 140 127 7.39
26 974 141 126 7.73
27 1009 152 131 7.70
28 1044 148 130 8.03
29 1080 141 136 7.94
30 1115 141 136 8.20
31 1151 151 141 8.16
32 1185 151 140 8.46
2002-09-01 13:14:53 +00:00
itohy
fa5465079f
Slightly improved version of ffs(3).
...
Partially from SHIMIZU Ryo <ryo@iij.ad.jp>. Thanks.
Some cases are slower, but other most cases are faster.
Here's a benchmark on SH-4 200MHz.
return value C version previous vers this version speed ratio
of ffs() (ns/call) *1 (ns/call) (ns/call) *2 (*1/*2)
------------ ------------ ------------- ------------ -----------
0 86 86 81 1.06
1 110 86 106 *(slower) 1.04
2 132 86 106 * 1.25
3 165 105 117 * 1.41
4 201 104 116 * 1.73
5 237 111 107 2.21
6 271 111 106 2.56
7 307 126 116 2.65
8 342 125 116 2.95
9 376 122 126 * 2.98
10 410 121 127 * 3.23
11 446 139 136 3.28
12 483 140 134 3.60
13 518 146 125 4.14
14 551 146 126 4.37
15 587 161 135 4.35
16 624 162 136 4.59
17 658 141 139 4.73
18 694 142 140 4.96
19 727 160 148 4.91
20 764 161 150 5.09
21 799 167 141 5.67
22 834 167 142 5.87
23 868 181 152 5.71
24 903 181 153 5.90
25 939 146 140 6.71
26 974 146 141 6.91
27 1009 166 152 6.64
28 1044 165 148 7.05
29 1080 171 141 7.66
30 1115 171 141 7.91
31 1151 185 151 7.62
32 1185 186 151 7.85
2002-08-28 15:34:35 +00:00
mycroft
bbaefa57eb
Do the appropriate PIC magic for the jump to _exit().
2002-08-27 21:38:20 +00:00
itohy
6736303e13
Use assembly version of ffs(3).
2002-08-24 06:39:48 +00:00
itohy
85ce1de27f
Oops, SYSLIBC_SCCS -> LIBC_SCCS
2002-08-24 06:37:24 +00:00
itohy
70b5675025
Assembly version of ffs(3).
...
Confirmed to return the same value as that of the C version.
The results of a simple benchmark on SH-4 200MHz, is shown below.
I think this shows acceptable performance.
return value C version this version speed
of ffs() (ns/call) (ns/call) ratio
------------ --------- ------------ -----
0 86 86 1.00
1 110 86 1.27
2 132 86 1.53
3 165 105 1.57
4 201 104 1.93
5 237 111 2.13
6 271 111 2.44
7 307 126 2.43
8 342 125 2.73
9 376 122 3.08
10 410 121 3.38
11 446 139 3.20
12 483 140 3.45
13 518 146 3.54
14 551 146 3.77
15 587 161 3.64
16 624 162 3.85
17 658 141 4.66
18 694 142 4.88
19 727 160 4.54
20 764 161 4.74
21 799 167 4.78
22 834 167 4.99
23 868 181 4.79
24 903 181 4.98
25 939 146 6.43
26 974 146 6.67
27 1009 166 6.07
28 1044 165 6.32
29 1080 171 6.31
30 1115 171 6.52
31 1151 185 6.22
32 1185 186 6.37
2002-08-24 06:30:34 +00:00
thorpej
1b907e1877
Local label fixup.
2002-08-17 19:54:30 +00:00
chris
725f3ca1a7
correct comment, it's r0, not a0.
2002-08-17 01:23:36 +00:00
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