summaryrefslogtreecommitdiffstats
path: root/sys/lib/libkern/arch (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* same bcopy/memmove/memcpy methodology for vax.deraadt2013-06-133-158/+19
| | | | checked over by mlarkin
* merge bcopy/memmove/memcpy into one file, with jumps so that it is morederaadt2013-06-133-3/+113
| | | | | | likely to be in the cache (like how the explanation is split between multiple commits?) tested by various
* merge memcpy/memmove/bcopy into one file, with sub-jumps.deraadt2013-06-133-3/+271
| | | | ok .... I guess noone, because it is summer
* merge bcopy/memcpy/memmove into one function.deraadt2013-06-133-104/+89
| | | | ok mlarkin tedu
* regenkettenis2013-06-111-45/+45
|
* Optimize memcpy(9) by always doing a forward copy; it should never be usedkettenis2013-06-111-9/+9
| | | | | | | | for overlapping copies. Attempt to be instruction cache friendly by turning things around and make memcpy(9) use the forward copy branch of memmove(9), and implement bcopy(9) by swapping its arguments and dropping into memmove(9). Same change as the one just made to for hppa.
* remove ovbcopy supportderaadt2013-06-1114-20/+0
| | | | ok kettenis
* regenkettenis2013-06-111-43/+43
|
* Optimize memcpy(9) by always doing a forward copy; it should never be usedkettenis2013-06-111-9/+9
| | | | | | | | for overlapping copies. Attempt to be instruction cache friendly by turning things around and make memcpy(9) use the forward copy branch of memmove(9), and implement bcopy(9) by swapping its arguments and dropping into memmove(9). ok deraadt@
* Add {,u}{div,mod}si3 to libkern and to the kernel as well.miod2013-06-074-0/+195
|
* fix an oft copied typo that i'm tired of looking attedu2013-06-0339-39/+39
|
* Kernel bits for m68k/ELF, mostly from NetBSD. In addition, the `pmod' symbelmiod2013-02-0213-163/+163
| | | | in fpsp has to be renamed due to a clash with other parts of the kernel.
* Switch m88k ports to ELF.miod2013-01-052-200/+200
|
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-051-2/+2
| | | | ok guenther millert kettenis
* Remove assembly version of strlen from i386 and amd64, where it'smikeb2012-01-172-38/+0
| | | | | | | up to 3 times slower than the C code most of the time. This was brought up by DragonflyBSD guys initially. ok deraadt, guenther. miod will not miss it.
* Regen.kettenis2011-11-272-68/+68
|
* Switch to proper PA-RISC 2.0 mnemonics. Works around a bug in the assemblerkettenis2011-11-271-22/+22
| | | | getting rid of the (hopefully) last bug in this code.
* Regen.kettenis2011-11-271-3/+3
|
* Fix return value of memcpy.kettenis2011-11-271-4/+3
|
* Oops, jsing@ changed spcopy.S without realizing that that file is generatedkettenis2011-11-271-7/+3
| | | | from bcopy.m4. Fix that.
* Regen.kettenis2011-11-272-41/+40
|
* Replace a few more 32-bit instructions with the proper 64-bit equivalent.kettenis2011-11-271-22/+21
| | | | | Also fix the return value of memcpy. With these changes, this seems to work as advertised now.
* Regen.kettenis2011-09-192-4/+4
|
* Avoid sign-extension when extracting the low bits of addresses when checkingkettenis2011-09-191-3/+3
| | | | | | if the addresses are 4-byte aligned. ok jsing@
* we need to alias __movstr* as __movmem* for gcc4jsg2011-07-191-2/+2
| | | | from NetBSD. ok miod@ drahn@
* Regen.jsing2011-04-142-9/+9
|
* Use 64-bit operations for address manipulation.jsing2011-04-141-4/+4
|
* Correctly load p_addr and avoid trashing the source address.jsing2011-04-141-4/+4
|
* syncderaadt2011-03-124-32/+32
|
* In the original sparc V7 book (and in the v8 book), the divrem leaf code usedderaadt2011-03-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | local registers for a few temporaries. This was changed to use two global registers. Maybe to permit use in-kernel without conflicting with the register V7 register window handlers. (Was this done by Chris Torek? Is this related to Gordon Irlam's work? Or was it in NetBSD? Hard to tell because NetBSD removed their original cvs tree.) In V8 the ABI was tightened; more global registers became offlimits in different ways. We started supporting sun4m, and did not consider this. As a result, the global registers chosen are the wrong choice. In particular, %g7 is a poor choice for upcoming TLS work. It looks like it is safer to use %g5 and %g6 since these functions are "system software". All re-entrant parts of the system save it. On sparc64 these functions are in libc per ABI requirement, but are unused. On sparc, they occur in bootblocks (no reentrancy), kernel (reentrancy saves globals; kernel is not ABI compliant), userland libc (signal handlers save globals), and ld.so (symbol binding is not re-entrant on its own). Discussed rather extensively with guenther, kettenis, miod and drahn.
* s/DST/DEST/ to avoid warnings when building RAMDISK kernels, which definemiod2011-01-271-60/+60
| | | | TIMEZONE and DST...
* destintation -> destinationmiod2010-04-201-3/+3
|
* Allow for multiple CPUs by moving to an array of cpu_info.jsing2010-04-011-6/+2
| | | | ok kettenis@
* Provide a correct version for little endian kernels... sighmiod2009-12-122-3/+13
|
* <machine/macros.h> would provide inline version of a few of the functionsmiod2009-08-198-5/+459
| | | | | | | | | | | | traditionnaly found in libkern. However, the memcmp() flavour would behave as bcmp() with only two possible return values: zero and positive non-zero. This broke the name cache RB trees which now rely upon proper memcmp() semantics(negative value, zero, or positive value). Just give up on these macros and provide the same code as libc, in libkern. As a side effect, this no longer uses the cmpc3 instruction, which is not implemented and requires (slow) kernel emulation, on the original uVax.
* Use the MI random() for all cases; no need for a MD version since itderaadt2008-10-101-1/+0
| | | | | has never been performance sensitive. Running on all platforms, discussed with millert and kettenis, ok toby
* First pass at removing clauses 3 and 4 from NetBSD licenses.ray2008-06-268-61/+5
| | | | | | | | | Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
* These files are not used (and some of them would not compile anyway).miod2008-05-143-300/+0
|
* Catch up with dismantled libkern.kettenis2008-04-206-0/+336
|
* Remove the random() function from locore.s (which used sparcv7 instructions,kettenis2008-04-201-1/+0
| | | | | including mulscc to do multiplications) and switch to the generic random.c code.
* place a comment as to why these are otherwise emptyderaadt2007-11-2843-2/+43
|
* mips64 also needs memcpy.S, otherwise memcpy.c gets built, which conflictsjsing2007-11-271-0/+0
| | | | | | with bcopy.S ok miod@
* mips64 needs at least these to build; spotted by jsingderaadt2007-11-262-0/+0
|
* libkern, begone. Move to a new mechanism where config(8)'s "file"deraadt2007-11-25104-1392/+3519
| | | | | | | | | | | | directive can select between MI and MD versions of these files. At the same time, adjust the boot programs to pick exactly what they need, instead of the 7 or 8 mechanisms previously used. There will be some fallout from this, but testing it all by myself is a ridiculously slow process; it will be finished in-tree. Various developers were very nice and avoided making fun of me when I was gibbering in the corner..
* SCCS junk, bit by bitderaadt2007-11-247-56/+7
|
* junk RCSderaadt2007-11-241-8/+1
|
* more junk SCCSderaadt2007-11-243-12/+0
|
* junk SCCSderaadt2007-11-2411-75/+11
|
* delete unused junk RCS idsderaadt2007-11-249-36/+0
|
* Uncomment rule to build bcopy.S, and use that as our bcopy(9) implementation.kettenis2007-10-131-5/+5
|