summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/arm/gen (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add support for timeconting in userland.pirofti2020-07-062-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | This diff exposes parts of clock_gettime(2) and gettimeofday(2) to userland via libc eliberating processes from the need for a context switch everytime they want to count the passage of time. If a timecounter clock can be exposed to userland than it needs to set its tc_user member to a non-zero value. Tested with one or multiple counters per architecture. The timing data is shared through a pointer found in the new ELF auxiliary vector AUX_openbsd_timekeep containing timehands information that is frequently updated by the kernel. Timing differences between the last kernel update and the current time are adjusted in userland by the tc_get_timecount() function inside the MD usertc.c file. This permits a much more responsive environment, quite visible in browsers, office programs and gaming (apparently one is are able to fly in Minecraft now). Tested by robert@, sthen@, naddy@, kmos@, phessler@, and many others! OK from at least kettenis@, cheloha@, naddy@, sthen@
* Mark as 'protected' all the routines from the quad/ and softfloat/ subdirs,guenther2019-11-101-1/+4
| | | | | | | | | as well as those in arch/arm/gen/divsi3.S. This cleans up the PLTs on the 32bit archs. luna88k testing by aoyama@ "looks good" kettenis@, testing and ok deraadt@
* Save and restore the relevant FPU state on armv7.kettenis2018-06-222-25/+25
| | | | ok deraadt@
* Drop memory barrier in _atomic_lock() implementation since the callers nowkettenis2018-05-171-2/+1
| | | | | | take care of this. ok visa@, mpi@
* Change floating-point mode/environment control functions to operate onkettenis2018-02-286-0/+211
| | | | | | | | | | both the hardfloat (FPU registers) and softfloat (software) state. This makes these functions work correctly when mixing hardfloat and softfloat code. Disable trapping for softfloat since most (if not all) ARMv7 and ARMv8 hardware that is on the market doesn't support trapping of floating-point exceptions. ok patrick@
* Add ARM EABI runtime aliases to the GCC runtime functions that we includekettenis2017-12-261-1/+6
| | | | | | in libc. ok patrick@, jsg@, guenther@
* Copy files from ../librthread in preparation for moving functionalityguenther2017-08-151-0/+49
| | | | | | | from libpthread to libc. No changes to the build yet, just making it easier to review the substantive diffs. ok beck@ kettenis@ tedu@
* Add XOR cookies for lr and sp. Stop saving/restoring r12 to/from the jmpbuf.guenther2016-08-072-53/+97
| | | | | | | Switch from calling obsolete sig{block,setmask} to directly using the sigprocmask syscall. ok deraadt@ kettenis@
* Use internal names for __errno, _memcpy, memset, and {,_}{set,long}jmpguenther2016-08-064-17/+21
| | | | | | | Eliminate pointless use of PIC_SYM() Split out DEFS.h from SYS.h like some other archs ok kettenis@ deraadt@
* Stop supporting longjmperror(); it's not used, not portable, and the checksguenther2016-05-232-6/+4
| | | | | | | longjmp performs can't really be relied upon, even after we got rid of the false positives... ok millert@ deraadt@
* Wrap the remaining math functions in libc: __fpclassify*(), __flt_rounds(),guenther2015-10-271-1/+2
| | | | | | and ldexp(). ok millert@
* Pull in <float.h> instead of declaring __flt_rounds() locallyguenther2015-10-181-3/+2
| | | | ok miod@ jsg@
* Do provide hidden _libc_* aliases for sig{block,setmask} and use them inguenther2015-09-131-3/+3
| | | | | | | the ASM *setjmp implementations. Skip the PLT when calling them on amd64 (other archs to do this after testing) ok miod@
* Switch from <sys/endian.h> or <machine/endian.h> to the new,guenther2014-07-212-6/+4
| | | | | | being-standardized <endian.h> ok deraadt@ millert@ beck@
* bring in math.h to provide prototypesderaadt2013-11-131-1/+2
|
* Switch libc and libm to use strong aliases rather than weak aliasesmartynas2013-03-281-2/+2
| | | | | | | | | | | where appropriate. Among other things makes the symbols consistent across all architectures (notably where ldbl mantissa is 53 bits). While at it, kill unused LINTLIBRARY/PROTOLIB1 cruft which was there to trick lint into recording the right prototypes for aliased functions. Most of the work done at the awesome n2k13 hackathon. Agreed by kettenis@, guenther@, matthew@.
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-051-2/+1
| | | | ok guenther millert kettenis
* rely on the compiler giving us a built-in alloca. any new architecturederaadt2012-04-192-48/+1
| | | | | or compiler we use will. ok millert
* alloca.c cannot be usedderaadt2012-04-121-2/+1
|
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-082-3/+38
| | | | | on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
* Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas2011-07-082-38/+3
| | | | them in libc for a very long time. OK guenther@.
* remove from gen so that lint doesn't check gen if assembly versionsmartynas2009-04-211-3/+3
| | | | are available. spotted by theo
* - ldexp implementation has issues. switch to the one from libmmartynas2009-04-193-253/+2
| | | | | | - remove frexp in hppa64, cloned from hppa - move generic ieee754 implementations of modf and ldexp to gen ok kettenis@, "looks good" millert@
* use sys/cdefs.h; pointed out by theomartynas2008-12-101-2/+2
|
* ditto frexpl and ldexplmartynas2008-12-091-2/+3
|
* alias fabsl to fabs on these archsmartynas2008-12-091-1/+4
|
* - move isinf, isnan dups to gen, since most is ieee 754martynas2008-07-244-99/+19
| | | | | | | | | | | | | | | | - is{inf,nan} should be macros for real-floating, so rename to __is{inf,nan}, per C99 - implement C99 __fpclassify(), __fpclassifyf(), __isfinite(), __isfinitef(), __isnormal(), __isnormalf(), __signbit(), __signbitf() - long functions added, but not yet enabled, till ieee.h is fixed - implement vax equivalents of the functions - reimplement isinff, isnanf in a better way, and move to libc - add qnan bytes for all archs - bump major man pages will follow ok millert@. arm bits looked over by drahn@ discussed w/ theo, who showed the right direction, to put these functions in libc
* clear sign bit, instead of comparing to zero and setting x=-x.martynas2008-07-231-35/+22
| | | | | | | fixes special cases, such as neg. zero, and makes C99 conformant ok miod@, millert@ since there's nothing else in arm's fabs.c, replace 4-clause license w/ the one at /usr/share/misc/license.template
* First pass at removing clauses 3 and 4 from NetBSD licenses.ray2008-06-263-24/+3
| | | | | | | | | 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@
* typos from alexey dobriyan;jmc2006-02-061-2/+2
|
* if we pull in a .S file, we must fake out the lint with a .c filederaadt2005-11-291-12/+5
| | | | | for this first cut, we will do this for alloca() using alloca.c by adding it to LSRCS
* zap rcsid.espie2005-08-073-15/+3
| | | | okay deraadt@ (tested them all)
* Replace broken frexp() with a working one from FreeBSD. There'smillert2005-02-012-76/+1
| | | | | | no need to have a copy for each platform with ieee floating point, only vax needs a special version (which probably has similar bugs). OK and with help from otto@
* Correct modf (from alpha) instead of one which doesnt compile from NetBSDdrahn2004-02-032-29/+37
|
* add missing frexpdrahn2004-02-022-1/+76
|
* cleanupdrahn2004-02-021-17/+1
|
* This file was not supposed to committed.drahn2004-02-021-967/+0
|
* Use the real fpgetround found in softfloat.drahn2004-02-022-10/+1
|
* sigh, watch for compile errors...drahn2004-02-021-4/+4
|
* ARGH, forgot tags.drahn2004-02-0115-0/+15
|
* arm libc support. From NetBSD. currently supports softfloat.drahn2004-02-0117-0/+2326