Commit Graph

318 Commits

Author SHA1 Message Date
fvdl 9b4c0e34d2 Initial commit of the port to AMD's upcoming 64 bit architecture, the
x86-64. Since there's no hardware available yet, this port is only
known to run on the Simics simulator for at the moment, and as such
uses the PC devices that it simulates for now. It will be developed
more (and cleaned up) as the hardware becomes available.
2001-06-19 00:19:12 +00:00
fredette 49fda862f9 When MACHINE_ARCH is m68000, compile ffs.c and random.c
instead of ffs.s and random.s, and sneak the libgcc
integer support routines into the list of library objects.
2001-05-16 03:30:39 +00:00
fredette 332aa50acb Use the EXTBL macro where we want the extbl instruction.
On the 68010 this expands to an extw/extl combination.
2001-05-16 03:14:12 +00:00
fredette 8ba384c841 On the 68010, we are forced to do bytewise compares
and copies if the two addresses aren't of the same
evenness.
2001-05-16 03:06:41 +00:00
kleink 95fa77ab80 Make this work for PIC (as opposed to pic) without taking chances of fitting
__ffstab into a GOT13 relocation; from Eduardo Horvath.
2001-05-13 20:03:45 +00:00
ross 2df695b1e4 o IEEE 754 floating-point completion code.
o Implement the architected FP_C "Floating Point Control Quadword"
2001-04-26 03:10:44 +00:00
thorpej db5854a62c Build strtoul.c 2001-04-05 04:38:33 +00:00
cgd b7ad250ab1 copy from lib/libc/arch/mips/gen 2001-02-27 19:45:26 +00:00
bjh21 da9d806354 Move arm32 over to using the shared ARM libkern. 2001-02-15 22:44:09 +00:00
msaitoh 3c31811206 don't profile (use NENTRY() and ALTENTRY()) 2001-02-14 21:04:17 +00:00
msaitoh 9af8d0bdad ENTRY() 2001-02-14 18:14:37 +00:00
msaitoh 2633a5dcb5 _C_LABEL() 2001-02-14 17:57:31 +00:00
bjh21 e68a8d59fa Sync with libc for licence update. 2001-01-23 19:12:29 +00:00
bjh21 af14995e51 Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
 - References to C labels are wrapped in _C_LABEL().
 - Function returns have an alternate version inside #ifdef __APCS_26__.
2000-12-29 20:51:56 +00:00
bjh21 d839461405 Pull across arm32 rev 1.4:
ALTENTRY() must die.
2000-12-16 14:38:50 +00:00
bjh21 0b45f78538 Pull across arm32 rev 1.5:
ALTENTRY() must die.
2000-12-16 14:38:06 +00:00
mycroft 6d9be19e76 ALTENTRY() must die. 2000-12-14 22:00:20 +00:00
bjh21 1e720616fb Copy from libc 2000-12-14 19:51:51 +00:00
bjh21 af87db0411 Use _C_LABEL 2000-12-14 19:50:38 +00:00
bjh21 fe80ce82c0 Copy from libc 2000-12-14 19:44:58 +00:00
bjh21 c044c88beb Sync with arm32. 2000-12-14 19:33:00 +00:00
mycroft a5a04ddba2 These versions have different names than libc... 2000-12-12 17:53:20 +00:00
mycroft 0e5af5b3d1 GC. 2000-12-12 17:51:03 +00:00
mycroft 6c96a6759b Update from libc. 2000-12-12 17:44:04 +00:00
is 94f7c9c6f9 Sync with libc: make function exit one instruction faster, and function one
instruction shorter (Horimoto).
2000-11-28 15:26:34 +00:00
is c8071d4fac Sync with libc strncpy.S 1.11: optimized code by Hiroshi Horimoto. 2000-11-27 22:38:33 +00:00
thorpej 1cfe0850f5 Add a strcasecmp(), modified from chopps's strncasecmp(). 2000-11-01 19:37:18 +00:00
jeffs db1bb008f9 Set return value correctly for memcpy/memmove. 2000-10-10 20:29:03 +00:00
msaitoh 3a0bdcde18 check _STANDALONE macro, too. 2000-09-09 00:16:21 +00:00
thorpej 9c5afcb2f0 Move the Alpha _mcount() into a .S file so that it can be
pre-processed, like other Alpha assembly files.
2000-09-05 16:28:30 +00:00
msaitoh 17c5382dc6 compile byte_swap_2.S and byte_swap_4.S 2000-07-21 11:19:46 +00:00
msaitoh 116abff968 support "big endian", too. 2000-07-21 11:19:10 +00:00
bjh21 bf14d56ba8 Add strtoul.c -- if_ea.c needs it. 2000-07-20 20:27:53 +00:00
matt 69a9192fb8 We need strncasecmp.c now. 2000-07-19 03:56:38 +00:00
matt 237e784779 ELFify 2000-07-19 03:48:24 +00:00
enami 84606936fb Fix an obvious typo in comment introduced by previous commit; the instruction
now compares a0 against a1 + a2, not a0 + a2.
2000-07-18 01:20:24 +00:00
jeffs efabca31b5 Make memcpy() the favored interface an swizzle the args for ovbcopy. Also
move bcopy XLEAF here from locore.S.  For 64b clean compilation add a
ld/sd section to the block copy.
2000-07-17 07:37:50 +00:00
mrg de53718be7 <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-27 18:01:06 +00:00
msaitoh e94e5fd681 new bcopy.S 2000-06-09 04:42:46 +00:00
msaitoh 431cb8da1c movstrSI*() for gcc -Os 2000-06-09 04:42:24 +00:00
sommerfeld 01d37fc7c9 Add missing trailing newlines. 2000-05-26 23:09:28 +00:00
bjh21 6c97e2bd78 Initial commit of arm26 port 2000-05-09 21:55:44 +00:00
msaitoh 48c1343230 asm bcopy() for sh3 2000-04-20 13:52:35 +00:00
danw aedaba9bc9 add strtoul 2000-02-01 04:02:59 +00:00
msaitoh b0b4797dfb don't clobber r4 and r5 2000-01-03 02:40:04 +00:00
msaitoh 5517154d15 check _STANDALONE 1999-12-21 21:48:19 +00:00
simonb cfd10575d6 Add strtoul.c and sort sources alphabetically. 1999-11-29 23:24:59 +00:00
simonb 9c807e7a3c Move strtoul.c (via CVS repo copy) to libkern. Also sort prototypes
in libkern.h and sources in arm32/Makefile.inc alphabetically.
1999-11-29 23:12:56 +00:00
matthias 87bb3a7b2b make this work again with -mrtd. 1999-11-16 18:16:53 +00:00
thorpej ac3150a13d Add register prefixes. 1999-11-11 01:53:46 +00:00
thorpej 9aeef983e2 Sync w/ libc. 1999-11-11 01:32:10 +00:00
msaitoh 3fd4c8b3b8 add strncasecmp.c 1999-10-21 15:05:08 +00:00
is e203553a11 Finish support for auto-generated libkern divsi3.S. 1999-09-21 09:43:38 +00:00
is 897dbf6c67 Use an identical source file for the libc and the libkern version of
divsi3.S, conditionally compiling the divide by zero case. This way,
after a change to the one, we can just copy it over to update the other
without creating ... problems. By Chris G.  Demetriou.
1999-09-20 09:22:47 +00:00
is 6b3625a6ad Oops. The overflow code should not have been copied from the userland
version.
1999-09-19 15:58:02 +00:00
is 6cf532dd3d Synchronize with fixed libc version:
If unsigned dividend > INT_MAX, or signed dividend == INT_MIN, be careful
to not overflow the divisor when shifting it to the left.
1999-09-17 11:42:56 +00:00
msaitoh 99ca8c39f5 unused file (we have an asm version) 1999-09-16 15:04:13 +00:00
itojun 65363da25e Merge in NetBSD/sh3 from cvs.kame.net repository.
Tree structure:
- sys/arch/sh3: sh3 generic code
	As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
1999-09-13 10:30:21 +00:00
drochner ff171dfb67 -don't use DEFS.h nor SYS.h in libkern
-remove setjmp.S, it's not useful for libkern
1999-09-10 15:39:04 +00:00
chs d1638a0354 sync with libc:
use RODATA() instead of ENTRY() for __ffstab so that it works when profiling.
1999-09-06 19:01:04 +00:00
kleink ed6d5be482 Sync with libc: use _ALIGN_TEXT from <machine/asm.h>. 1999-08-23 09:07:35 +00:00
eeh 4f46ad62b9 Find the udivrem.m4 in the proper directory. 1999-05-09 18:51:36 +00:00
pk 502e9c5778 Add .PATH.m4 1999-05-09 09:16:15 +00:00
tsubai a5bf1bf4a2 Copy from libc. 1999-05-05 12:36:40 +00:00
simonb 955a0aba21 Until <bsd.lib.mk> is fixed, don't try to guess whether or not to
use abicalls in kernel source.
1999-04-20 00:45:24 +00:00
ws 5423093850 Modify syncicache on PowerPC from an inline to a real function.
Support different cache line sizes with the same object code in userland.
While here, move the function to implementation name space.
1999-04-17 21:16:45 +00:00
simonb 5e5bf63bc1 Don't add .abicalls if NO_ABICALLS is defined even if ABICALLS is defined. 1999-03-17 13:31:43 +00:00
jonathan 4c6134d7c8 Use merged memcpy()/memset() based on old bcopy rather than C-coded memmove.
TODO: change register usage so memcpy()/memmove() is default, put test
for back-copy before memcpy() and back-copy loop after memcpy().
1999-03-15 07:04:04 +00:00
jonathan e22fd3b59d Fix bug in construction of word-length version of 'c'.
Preserve input string and return it as per userlevel spec.
1999-03-15 06:34:10 +00:00
pk fabda9a224 Sync with libc 1999-03-05 09:18:32 +00:00
chs 5e59fee53a use RODATA(__ffstab) instead of ENTRY().
this makes profiling kernels work on the sparc.
1999-02-24 16:27:01 +00:00
chs b2546175a6 don't list any *.S files in SRCS multiple times, once is enough. 1999-02-24 16:25:43 +00:00
simonb faca98eb71 Add memset.S instead of memset.c, and remove __main.c. 1999-02-23 11:06:38 +00:00
hubertf 56f2d188fc RCS ID police 1999-02-15 04:54:34 +00:00
matthias 437e1d2f00 sync with libc version 1999-02-01 21:35:36 +00:00
jonathan 9bd63525f8 memset, derived from old kernel bcopy.
Uses negative register offsets in memory writes, to avoid r4k silicon bugs.
1999-01-28 03:08:57 +00:00
mycroft ef50bbf452 Sync with libc. 1999-01-22 11:01:32 +00:00
mycroft 6b11ebb854 Sync with libc. 1999-01-22 09:17:47 +00:00
ragge 482b6ca70d #include <machine/asm.h> instead of (nonexistent) "DEFS.h". 1999-01-19 22:54:53 +00:00
castor 2e0007e017 Make bswap32 be the "real" entrypoint and htonl, ntohl aliases. 1999-01-18 01:24:55 +00:00
thorpej e2a60769a0 Fix an unterminated macro call. 1999-01-15 20:34:31 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
castor cfdc52bfa9 Break out utility functions from locore.S 1999-01-15 08:44:27 +00:00
eeh a5f6f68714 Fixup ffstab naming conflict between locore.s, libkern/arch/sparc/ffs.S and
libkern/arch/sparc64/ffs.S
1998-11-26 19:32:10 +00:00
eeh 8cc6435bf8 Forgot to specify a label for the branch target. Oops. 1998-11-26 19:08:21 +00:00
jonathan 008816ea4f Changes to sys/arch/mips from ARC port, from Noriyuki Soda <soda@sra.co.jp>.
Adds (most) support for ARC platform to port-independent mips code.

Some changes (e.g., clean up of overlapping CPU/FPU ids) inspired by
comparison to the OpenBSD 2.1 codebase of Soda's ARC port.

Open issues:
 * Still no support for r4600 or mipsIV CPUs with two-way L1 cache.
   Code derived from Per Fogelstrom's OpenBSD source  doesn't work
   on mips3 pmaxes with L2 cache.

 * Still some port-specific  #ifdefs, for interrupt enable and
   pmax L2 cache-size.  Needs more thought, but overlaps with
   work-in-progress by Tohru and Tsubai on spl()s and related stuff.
1998-09-11 16:46:31 +00:00
eeh 26d2d906c7 Some more 64-bit cleanup. Now everything compiles. 1998-08-30 15:32:16 +00:00
eeh d581aadc3e Some more 64-bit-ification. 1998-08-29 18:16:56 +00:00
tls 8a146cd406 update for b->mem change in sys/kern; now we need memcmp and memset, not just memchr. AFAIK, memcpy is provided by the compiler or by locore on this platform. 1998-08-20 17:56:22 +00:00
mycroft cc8a78e783 Assign my copyrights to TNF. 1998-08-15 04:42:42 +00:00
mycroft df9baf2311 Assign copyrights to TNF. 1998-08-15 03:51:30 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
ragge 8fdb1c8ebe Lots of kernlib functions rewritten as inline macros. 1998-08-08 11:18:32 +00:00
perry 4d4aa090e9 add memcmp.c 1998-08-04 03:40:43 +00:00
perry 16039920c8 remove memcpy.c -- I forgot this gets built anyway 1998-08-04 03:40:12 +00:00
perry 612c53d05f add memcmp.c 1998-08-04 03:39:49 +00:00
perry 0b8f8ffda2 remove memmove.c -- I forgot this gets built anyway 1998-08-04 03:38:28 +00:00
perry 58af7a969a add memcmp.c memcpy.c memmove.c 1998-08-04 03:37:03 +00:00
perry a611b37e29 add memcmp.S memmove.S 1998-08-04 03:35:59 +00:00
perry 6ee9cbf929 add memcmp.S memmove.S 1998-08-04 03:30:30 +00:00
perry 5ede68eddb add memcmp.c memmove.S 1998-08-04 03:17:39 +00:00
perry e0f41ebe62 add memmove.S 1998-08-04 03:16:19 +00:00
perry 542f66b672 add memmove.S 1998-08-04 01:41:26 +00:00
perry 6ea886d397 add memcmp.S 1998-08-04 01:40:57 +00:00
perry a8627d22ba Fix formatting, and add memmove.S 1998-08-04 01:14:36 +00:00
eeh 9979577545 Second half of the sparc64 stuff. 1998-06-20 05:18:14 +00:00
matthias 6511ae105e bugfix from libc. 1998-05-28 22:07:59 +00:00
matthias c22871bec0 refresh from libc. 1998-05-27 20:07:48 +00:00
pk 4d48eb7a4b Sync with libc. 1998-05-07 22:15:23 +00:00
matthias 35d6e9297e Prepare assembler source files for -mrtd kernels. 1998-04-03 22:59:28 +00:00
mycroft a81d3c2db8 Fix omission in last. 1998-02-22 15:24:08 +00:00
mycroft bf94e4e2cd Copy up. 1998-02-22 15:11:28 +00:00
mycroft 8a66afbcba Move random() from kernel. 1998-02-22 09:33:27 +00:00
mycroft 4477c62148 Add various things from libc. 1998-02-22 09:08:34 +00:00
mycroft 5ba0f1cae2 Move random.S from kernel. 1998-02-22 08:53:33 +00:00
mycroft 0625ac391b Use the new .S files. 1998-02-22 08:45:04 +00:00
mycroft 799bd513de Sync with libc, and add random.S. 1998-02-22 08:43:27 +00:00
mycroft 52541a2efb Move random.S from arch/i386/i386. 1998-02-22 08:14:56 +00:00
mycroft 28edc3d334 Fix typo. 1998-02-22 07:33:11 +00:00
mycroft cf02652abc And rindex.S... 1998-02-22 07:21:32 +00:00
mycroft 6b7f2d0f92 And index.S... 1998-02-22 07:20:24 +00:00
mycroft b65caec4a0 Add strchr.S and strrchr.S. 1998-02-22 07:03:08 +00:00
mycroft 8c0dc3f1e8 Add these as well. 1998-02-22 07:01:44 +00:00
mycroft 196103b90b Don't list bcopy.c here, since we only want memcpy() and not bcopy().
XXX What a kluge!
1998-02-22 06:57:31 +00:00
mycroft 6e8ffbdd58 Use the assembler version of memcpy(). 1998-02-22 06:49:57 +00:00
mycroft 354ce440d2 We need memcpy(). 1998-02-22 06:44:44 +00:00
mycroft 943421399e Sync with libc. 1998-02-22 06:40:17 +00:00
mycroft ab7671a45e Add some missing things. 1998-02-22 06:08:37 +00:00
mycroft e1a2c2904a Pull in [hn]to[nh][ls].c. 1998-02-22 05:54:54 +00:00
mrg 1a8c7604f4 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly.  :-)
1998-02-05 07:59:28 +00:00
cgd 4369378a6c add rules like those in libc to build strchr() and strrchr() (the latter
is being added to libkern by this commit).  remove strchr.c from
archs' Makefile.inc files to go along with this.  (If an arch has
a .S version, it should be copied down and added to the apropriate
Makefile.inc.)
1998-01-21 21:23:18 +00:00
perry 24920eefb1 RCSID Police. 1998-01-05 19:40:40 +00:00
mark 0053558a70 Fix a glaring bug in the assembly stubs for memcpy() and memmove() that
meant the src address was being returned rather than the dst address.
Spotted by Chris Demetriou.
1997-11-22 03:27:12 +00:00
chuck cf924e3bc0 add memchr() to libkern 1997-10-24 15:32:24 +00:00
mark 680595e7c3 Fix extra 'S' character typo that resulted in the condition codes being
incorrectly internally on certain divides.
Handle the case where the internal result appears negative. This condition
can occur when dividing MIN_INT by certain values.
1997-10-17 18:35:19 +00:00
lukem 7656b49be6 rcsid fascism 1997-10-13 11:55:15 +00:00
mark 4428e19e76 Updated with new files from libc. 1997-10-12 21:26:37 +00:00
mark ce8b7a418a Copy files over from libc. 1997-10-12 21:24:00 +00:00
mark 8121735fb0 This file is replaced by divsi3.S 1997-10-12 21:23:36 +00:00
bouyer 7a337eca27 Ops, forgot to 'cvs add' theses. Pointed out by enami tsugutomo. 1997-10-12 13:27:59 +00:00
scottr c49762b3d3 Implement assembly byte-swap functions. 1997-10-11 04:28:40 +00:00
bouyer 6ab3092b11 Add byte-swapping functions (bswap16, bswap32, bswap64) to libkern.
Only assembly version for i386 bswap16 and bswap32 for now (bswap64 uses
bswap32). Contribution of assembly versions of these are welcome.
Add byte-swapping of ext2fs metadata for big-endian systems.
Tested on i386 and sparc.
1997-10-09 15:42:19 +00:00
jtc b92f5604b7 sync with libc 1997-06-20 02:08:04 +00:00
jtc 94815a35ee Sync with libc 1997-05-15 16:20:54 +00:00
jtc f99d42b623 Sync with libc. 1997-05-13 19:32:01 +00:00
cgd d867ed50cc add strchr() to libkern. strchr.c copied from libc's "index.c", but with
appropriate definitions so that it'll build strchr(), and so that it builds
correctly in libkern (needed to #define NULL).
1997-01-18 02:33:38 +00:00
thorpej 15dc36463a We use C flavors of the quad support functions in libkern. 1996-12-03 19:35:42 +00:00
jtc 6621382048 Sync with libc 1996-11-30 02:06:27 +00:00
pk 87e006459e sync with libc source: remove DEFS.h 1996-11-18 22:50:28 +00:00
pk fa80fdb243 Remove `chmod 444's. 1996-11-18 22:48:59 +00:00