summaryrefslogtreecommitdiffstats
path: root/sys/lib/libkern/arch
AgeCommit message (Collapse)AuthorFilesLines
2020-11-28Add retguard to macppc kernel locore.S, ofwreal.S, setjmp.Sgkoehler2-7/+7
This changes RETGUARD_SETUP(ffs) to RETGUARD_SETUP(ffs, %r11, %r12) and RETGUARD_CHECK(ffs) to RETGUARD_CHECK(ffs, %r11, %r12) to show that r11 and r12 are in use between setup and check, and to pick registers other than r11 and r12 in some kernel functions. ok mortimer@ deraadt@
2020-10-27Retguared asm macros for powerpc libkerngkoehler2-7/+12
This was in the macppc snap, but I forgot to include it in my last commit "Retguard asm macros for powerpc libc, ld.so"
2020-10-16Use the retguard macros from asm.h to protect the function.deraadt1-1/+3
ok mortimer kettenis
2020-07-18The kernel and bootblocks never reference this file...deraadt1-41/+0
2020-06-10Provide an optimized implementation of ffs(3) in the kernel onnaddy3-0/+47
arm64/powerpc/powerpc64, making use of the count leading zeros instruction. powerpc testing by cwen@; ok kettenis@ deraadt@
2019-11-05Give some END()s to assembly symbols.mpi4-4/+8
ok kettenis@, jca@
2019-04-25Add movstrSI12_i4 for linking -Os/-Oz kernels. Sadly however itderaadt1-0/+19
fails and locks early in boot.
2018-07-13Use _ALIGN_TRAPS instead of _ALIGN_TEXT where nops aren't needed.guenther3-6/+6
ok deraadt@
2018-07-10In asm.h ensure NENTRY uses the old-school nop-sled align, but change standardderaadt3-5/+5
ENTRY is a trapsled. Fix a few functions which fall-through into an ENTRY macro. amd64 binaries now are free of double+-nop sequences (except for one assember nit in aes-586.pl). Previous changes by guenther got us here. ok mortimer kettenis
2018-07-03Add retguard macros for libkernmortimer15-12/+43
ok deraadt
2017-10-26Add aliases for __aeabi_idivmod and __aeabi_uidivmod calls clang emits.jsg1-1/+3
Remainder of the division is already stored in r1 in __divsi3/__udivsi3. ok kettenis@
2017-08-20Fix the __sync_* functions to make them work properlyvisa1-1/+21
as full memory barriers.
2017-05-21Enable radeondrm(4) on loongson to get accelerated graphicsvisa1-0/+317
with the RS780E chipset. OK kettenis@, jsg@
2016-11-14Copy data by using 64-bit loads and stores rather than 32-bitvisa1-1/+53
operations. This about doubles the routine's throughput. No binary change on the 32-bit bootblocks Discussed with miod@ long ago
2016-09-24Add an implementation of __aeabi_ldivmode() and __aeabi_uldivmod(); clangkettenis2-0/+183
generates calls to these functions when compiling an armv7 kernel. Code from NetBSD's unified userland+kernel implementation, with lots of irrelevant (for us) #ifdefs removed. ok patrick@, guenther@
2016-09-22Add aeabi aliases.kettenis1-1/+4
ok guenther@, patrick@
2016-09-01retire sparctedu21-3422/+0
2016-05-11remove hppa64 port, which we never got going beyond broken single users.deraadt7-2035/+0
hppa reverse-stack gives us a valuable test case, but most developers don't have a 2nd one to proceed further with this. ok kettenis
2016-03-20" the the " -> " the ", or in a couple of cases replace the superfluouskrw1-2/+2
"the" with the obviously intended word. Started with a "the the" spotted by Mihal Mazurek.
2016-03-10more pieces of vaxderaadt7-319/+0
2016-03-07Sync no-argument function declaration and definition by adding (void).naddy1-2/+2
ok mpi@ millert@
2015-06-08At some point arm moved to a unified syntax for arm and thumb instructions.jsg2-39/+43
While binutils supports both "unified" and "divided" syntax (defaulting to divided) the integrated assembler in clang only supports unified names so switch some files to unified syntax. Similiar changes were made in bitrig and freebsd. No difference in objdump -d output. tested on zaurus by deraadt@, ok miod@
2015-01-19Make some $OpenBSD$ lines prettier/standardier by eliminatingkrw1-1/+1
superflous '*' after '/*' and adding blank after terminating '$'. Also eases parsing of the lines by simple awk scripts. Aesthetic approval from tedu@.
2014-12-30unifdef __APCS_26__ we don't run on anything with a 26 bit program counter.jsg5-61/+5
This codepath was removed in the NetBSD code this is derived from back in 2003 and was removed in Bitrig earlier this year. No binary change.
2014-12-19sync with libc, using brnz,pt instead, should be betterderaadt1-5/+4
ok kettenis
2014-12-09Like libc, also for the kernel: Import new amd64 assembly versions ofreyk4-93/+442
strchr/index, strrchr/rindex, and strlen that provide a significantly faster performance than our previous .c or .S implementations. Based on NetBSD's code. Tested with different amd64 CPUs. ok deraadt@ mikeb@
2014-11-29it should not be necessary to clear the direction flagtedu16-26/+8
ok deraadt
2014-11-21mask off high bits from 'c', before operation, otherwise the packingderaadt1-0/+1
logic writes balony. Hunting with tedu, mlarkin, and final bit spotted by naddy in freebsd's version.
2014-11-09typomiod1-2/+2
2014-03-18Retire hp300, mvme68k and mvme88k ports. These ports have no users, keepingmiod18-1046/+0
this hardware alive is becoming increasingly difficult, and I should heed the message sent by the three disks which have died on me over the last few days. Noone sane will mourn these ports anyway. So long, and thanks for the fish.
2014-01-09tiny tweak to asm. prefer memcpy and memmove, with bcopy wrappertedu2-29/+28
ok guenther
2013-07-05VAX ELF kernel bits.miod5-79/+79
2013-06-17m68k kernel memcpy/memmove/bcopy implementation in libkern, remove ovbcopy, fix for larger than 128k size copies. Parts from deraadt@, ok (and off-by-one fix) miod@jj3-3/+134
2013-06-15Fast memmove() implementation for PowerPC, from NetBSD via martin@; withmiod3-1/+170
bcopy() and memcpy() wrappers.
2013-06-15Fix evil typo causing the wrong pointer to be returned for < 32 bytesmiod1-2/+2
memcpy() or memmove().
2013-06-15Preserve %o5 around Lbcopy_doubles; prevents the return value from memcpy()miod1-4/+5
and memmove() to be incorrect for copies of 32 bytes or more, when the source and destination addresses are nicely aligned.
2013-06-15Make bcopy() involve memmove(), not memcpy().miod2-4/+3
Do not bogusly return NULL if dst == src (spotted by tedu@)
2013-06-15Correctly handle a length of zero in memcpy().miod1-7/+14
Return the original destination pointer in memcpy() and memmove().
2013-06-15Don't return garbage in memcpy() but the original destination pointer.miod1-0/+1
2013-06-15give bcopy() the ovbcopy() semanticsmiod1-1/+2
2013-06-14regenkettenis2-2/+0
2013-06-14ovbcopy begonekettenis2-4/+2
2013-06-14regenkettenis2-0/+4
2013-06-14Fix memcpy/memmove return value.kettenis2-2/+6
2013-06-13new integral bcopy/memmove/memcpy, pulled out of sparc locorederaadt3-3/+421
tested by beck
2013-06-13syncronize "look in other file" messagesderaadt4-4/+4
2013-06-13merged bcopy/memmove/memcpyderaadt3-129/+142
tested by bcallah, proofed by jasper, ok tedu
2013-06-13rework the memcpy family to all use one function body and implementtedu3-272/+248
desired semantics. ok deraadt
2013-06-13Remove pointless instruction in the memcpy path that snuck in with thekettenis1-2/+0
previous commit. ok deraadt@
2013-06-13ovbcopy begonederaadt1-4/+1