Commit Graph

830 Commits

Author SHA1 Message Date
msaitoh a991dcef11 Add __movstr_i4_{odd,even} for -m4.
Written by SHIMIZU Ryo.
2002-09-05 08:35:15 +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
thorpej 181f0a9b54 Tweak the previous change so that a prototype is always provided. 2002-08-25 21:09:45 +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
ragge 3f5fba68de Do not try to use "__builtin_ffs" on vax, ffs is an instruction already.
Maybe possible to teach gcc to use it?
2002-08-23 08:45:27 +00:00
thorpej c0d823519c GCC 2.95 supports __builtin_ffs(); use it. 2002-08-21 01:27:58 +00:00
thorpej dafc960ed6 Local label fixup. 2002-08-17 19:00:26 +00:00
chris d8ac0fb3aa pull in ffs.S from libc for arm.
The main benefit is that ffs always runs in constant time.
2002-08-17 01:22:33 +00:00
briggs b98931f62e Use .L prefix for all local labels. 2002-08-15 18:30:36 +00:00
matt 7c4618a9ce cpu_info is not in spr0, but spr_g_0. 2002-07-30 06:10:46 +00:00
kent 6789db7962 Avoid redundant memory access. 2002-07-10 06:02:09 +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
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
wrstuden 10d47b4dd3 Updated version of cscope/mkid support. Check libkern and compat lib
for source files. Also include header files in mkid run.
2002-06-18 23:46:52 +00:00
matt 940fedda07 Fix make breakage. $ZDST != ${ZDST} in make. make clean/cleandir now works. 2002-06-15 19:30:56 +00:00
itojun c3e57df04c discard 256 bytes of output every time we stir (not just when initializing) 2002-06-14 03:05:46 +00:00
fredette e978777b86 Added hppa support to libkern. 2002-06-06 20:03:37 +00:00
itojun 937b671271 use exit(int), not exit(void), consistently - even if the arg has no meaning. 2002-06-01 11:40:31 +00:00
itojun c0e2bb0509 need libkern.h for bootloaders 2002-05-29 06:27:15 +00:00
bjh21 a20462dc6e Implement LIBSA_NO_FS_CLOSE, LIBSA_NO_FS_WRITE and LIBSA_NO_FS_SEEK.
LIBSA_NO_FS_SYMLINK and LIBSA_FS_SINGLECOMPONENT are irrelevant here.
2002-05-28 14:30:53 +00:00
bjh21 43079a573b KNF. 2002-05-28 14:26:01 +00:00
itojun 2e926ba699 no need for libkern.h 2002-05-28 12:21:22 +00:00
itojun 0ac289dea9 have arc4random(9). 2002-05-28 10:09:24 +00:00
lukem e34d4e21de fix comment 2002-05-10 11:07:01 +00:00
simonb 5457f78a34 Don't bother testing if a uint8_t is > 256 -- that test is always false. 2002-05-09 02:44:39 +00:00
simonb 67c33ffcda Remove two shadowed variables, one of which was set to what it was
shadowing(!) and the other a temporary variable (as was it's shadow).
Code generated with "gcc -O2" is the same before and after.
2002-05-07 02:02:41 +00:00
martin 9f680534b0 Add strtoul. 2002-05-05 11:23:24 +00:00
ross f98b9b43e8 Add strtoul.c 2002-04-24 16:56:36 +00:00
ragge b0fa7eb2c1 Someone had a braino here; IP_TTL != IPDEFTTL. This caused the standalone
udp traffic to only have a ttl of 4.
Found by Jens Nilsson, jens@rockstorm.se.
2002-04-23 09:16:09 +00:00
martin 22143f5a44 Add strtoul.c, otherwise kernels using "wi* at pcmcia?" do not work
anymore.

Why only four archs provide this is beyound me.
2002-04-16 06:36:02 +00:00
matt fd1c084a68 Add a 1byte pad to make the ustar_t word aligned so the uas_1cyl after it
will also be word aligned.  This makes the VAX VMB bootrom happy since it
doesn't support odd-aligned buffers.
2002-03-30 01:29:48 +00:00
matt cb520da5b3 Refresh from libc. 2002-03-28 00:46:08 +00:00
fredette 58830d68c5 Added brand-new integer multiply and divide support, used only
on the m68000.
2002-03-26 22:49:32 +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
fredette d617871b0c On the m68000, if and only if gcc doesn't seem to know
where libgcc.a is, fall back to one under DESTDIR.
2002-03-22 00:17:12 +00:00
thorpej 6440db6488 * Add a NetBSD Vendor Class Identifier option as proposed on tech-net
in message <20020216172527.C23901@dr-evil.shagadelic.org>.
* Print the bootp/dhcp response, as is done for rarp/bootparam
  responses.
* Nuke bootp_flags and BOOTP_PXE; they're not used, nor should they be.
2002-03-20 23:10:39 +00:00
dbj f0658bdada make compile with _STANDALONE 2002-03-18 05:10:58 +00:00
gmcgarry d16aceedcc Protect remaining references to 'debug' with NETIF_DEBUG. 2002-03-17 05:46:37 +00:00
simonb f28e18332c Move files[] from globals.c to its own file. Including all of globals.o
breaks the size limit for at least the pmax bootblocks.

Fixes PR port-pmax/15924 from Gregory McGarry.
2002-03-15 13:23:34 +00:00
eeh 4c434f6210 Updated from libc. 2002-03-13 00:59:29 +00:00
fvdl 104148a990 Sync with userland (1.1.4) 2002-03-12 00:42:23 +00:00
matt e2d6f22138 Add register prefixes to these. 2002-02-24 00:12:41 +00:00
matt 6cad4b795d Upon further reflection, move udiv/urem to libkern and out of vax/vax. 2002-02-24 00:08:19 +00:00
thorpej 0b91bc440f Move files[] from open.c to globals.c, so that it's possible to
use libsa in an application where there are no file systems or
devices.
2002-02-23 05:44:24 +00:00
lukem da694bd77b fix spelos 2002-02-22 12:46:53 +00:00
ragge f2d946a56e blkset() used a register for set value that get clobbered by movc5,
causing the set area to get unpredictable contents.
2002-02-19 21:46:17 +00:00
thorpej 15bffcdeed Add a comment describing what SA_USE_LOADFILE is for. 2002-02-17 23:22:22 +00:00