summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/powerpc/gen (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Userland timecounter for macppcgkoehler2020-07-171-2/+22
| | | | | | | Tested by cwen@ and myself. Thanks to pirofti@ for creating the userland timecounter feature. ok kettenis@ pirofti@ deraadt@ cheloha@
* Add support for timeconting in userland.pirofti2020-07-062-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | 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@
* Copy files from ../librthread in preparation for moving functionalityguenther2017-08-151-0/+53
| | | | | | | from libpthread to libc. No changes to the build yet, just making it easier to review the substantive diffs. ok beck@ kettenis@ tedu@
* Wrap fpgetround() so internal calls to it (seen on arm, powerpc, and sh)guenther2016-07-262-4/+6
| | | | | | go direct instead of through the PLT. ok millert@ kettenis@
* Only require 4 byte alignment on ILP32 archsguenther2016-05-291-2/+2
|
* Use .balign instead of .align; only need 8 byte alignment not 2^8guenther2016-05-291-2/+2
|
* Add XOR cookies for r1 (stack) and lr. Switch from calling obsoleteguenther2016-05-222-108/+209
| | | | | | | | sig{block,setmask} to directly using the sigprocmask syscall. Rewrite sig{set,long}jmp based on {set,long}jmp to avoid the deprecated store/load-multiple instructions. in snaps; ok deraadt@
* Add END() to match ENTRY() macrosguenther2016-05-152-3/+8
| | | | ok kettenis@
* No, sigaltstack's onstack flag shouldn't be saved. Delete commentguenther2016-05-081-2/+1
| | | | wondering about that
* Wrap the remaining math functions in libc: __fpclassify*(), __flt_rounds(),guenther2015-10-271-1/+2
| | | | | | and ldexp(). ok millert@
* Do provide hidden _libc_* aliases for sig{block,setmask} and use them inguenther2015-09-131-5/+5
| | | | | | | the ASM *setjmp implementations. Skip the PLT when calling them on amd64 (other archs to do this after testing) ok miod@
* Set up r30 with the _GLOBAL_OFFSET_TABLE_ pointer as required by thekettenis2015-08-231-3/+21
| | | | Secure-PLT ABI.
* It's been a quarter century: we can assume volatile is present with that name.guenther2014-04-178-19/+19
|
* 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
* Do not use <machine/float.h>, that is an deformed BSD-ism.deraadt2012-06-251-2/+2
| | | | | It turns out <float.h> is the right file to pull in. ok millert
* alloca.c cannot be usedderaadt2012-04-121-2/+0
|
* sigstack() is long dead, and the compat sigaltstack syscall is gone too.guenther2011-11-221-2/+2
| | | | | | Correct the namespace protections for sigreturn(), sigwait(), and psignal() ok millert@
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-082-1/+40
| | | | | 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-40/+1
| | | | them in libc for a very long time. OK guenther@.
* On PowerPC we cannot manipulate FPSCR[VX]--it's a summary of allmartynas2011-05-251-2/+6
| | | | | | | | the invalid exception bits, as described in Section 3.3.6.1.1 of PowerPC Architecture Programming Environments Manual. A proper way to cause an invalid operation exception is to set FPSCR[VXSOFT]. Similarly, we clear all the FPSCR[VX*] bits otherwise.
* remove from gen so that lint doesn't check gen if assembly versionsmartynas2009-04-211-1/+1
| | | | are available. spotted by theo
* - ldexp implementation has issues. switch to the one from libmmartynas2009-04-193-450/+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-102-4/+4
|
* ditto frexpl and ldexplmartynas2008-12-091-1/+4
|
* alias fabsl to fabs on these archsmartynas2008-12-091-1/+4
|
* - move isinf, isnan dups to gen, since most is ieee 754martynas2008-07-244-95/+10
| | | | | | | | | | | | | | | | - 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
* First pass at removing clauses 3 and 4 from NetBSD licenses.ray2008-06-266-48/+6
| | | | | | | | | 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@
* Gently cast to make lint happy.drahn2006-03-311-2/+2
|
* Be kind to lint, and specify the correct width on these constants.drahn2006-03-313-6/+6
|
* if we pull in a .S file, we must fake out the lint with a .c filederaadt2005-11-291-0/+1
| | | | | for this first cut, we will do this for alloca() using alloca.c by adding it to LSRCS
* zap rcsid.espie2005-08-076-32/+6
| | | | okay deraadt@ (tested them all)
* Replace broken frexp() with a working one from FreeBSD. There'smillert2005-02-012-75/+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@
* longjmp should not return 0, if longjmp(..., 0) is invoked return 1.drahn2004-03-011-2/+8
| | | | ok miod@ deraadt@
* terms 3 & 4 cleanup based on "terms" filederaadt2003-06-031-6/+1
|
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-025-33/+13
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* Add Doug Gwyn's portable alloca() for platforms w/o an assemblermillert2003-05-021-0/+1
| | | | | | | version. Normally, gcc provides its own alloca() (unless -fno-builtin is specified). The C version is decidedly suboptimal--we really need proper assembler versions but this will work as a stop-gap measure.
* Align this char array accessed as double, for paranoia reasons.drahn2003-01-291-3/+4
|
* Remove some old if 0/if 1 code, it is pointless to keep this in.drahn2002-10-241-16/+1
|
* make fabs use asm, and license repairderaadt2002-06-171-6/+32
|
* Sync with netbsd version, adds SOFTFLOAT (not supported) and copyright.drahn2002-05-081-2/+39
|
* OpenBSD tag.drahn2002-05-081-0/+1
|
* Add copyright block to this file I wrote long ago.drahn2002-05-081-0/+31
|
* We need to keep K&R compat macros for some ports where the assemnbler ismillert2002-02-191-4/+12
| | | | still using -traditional-cpp.
* We live in an ANSI C world. Remove lots of gratuitous #ifdef __STDC__ cruft.millert2002-02-191-12/+4
|
* Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.millert2002-02-161-65/+65
|
* Keep the strings fully quoted.drahn2001-09-111-2/+2
|
* Use the LBL isnan() and isinf() on all platforms with ieee floating point.millert2001-09-103-27/+69
|
* Use the LBL frexp() on all platforms with ieee floating point.millert2001-09-101-15/+28
|
* Fix the __infinity constant on powerpc.drahn2001-08-251-4/+4
| | | | from a7r@andern.org