summaryrefslogtreecommitdiffstats
path: root/lib/libc/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Remove silly n that crept inimp2007-01-091-1/+1
|
* Per Regents of the University of Calfornia letter, remove advertisingimp2007-01-0916-65/+1
| | | | | | clause. # If I've done so improperly on a file, please let me know.
* The distinction between quiet and signaling NaN formats isdas2007-01-031-0/+21
| | | | | machine-dependent; these files tell the latest version of gdtoa what to do.
* Instead of re-implementing hton[ls] and friends for each arch, add a new MIcognet2006-11-065-206/+0
| | | | | | | file, net/ntoh.c, which just implement them using the inline functions from <sys/endian.h>. Suggested by: bde
* Desupport the undocumented NO_QUAD option, just don't compileru2006-03-161-5/+0
| | | | the quad support on 64-bit platforms.
* Add each directory's symbol map file to SYM_MAPS.deischen2006-03-131-0/+1
|
* Add symbol maps and initial symbol version definitions to libc.deischen2006-03-131-0/+73
| | | | Reviewed by: davidxu
* Optimize the instruction alignment.alc2005-04-231-2/+1
|
* Do not try to store 64 bits into 32 bit errno variable. With the changed libckan2005-04-211-1/+1
| | | | | data layout, this was corrupting _PathLocale variable leading to programs dumping core in non-default locales.
* Add a machine-specific, optimized implementation of strcat.alc2005-04-102-1/+166
| | | | | | PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
* Eliminate a conditional branch and as a side-effect eliminate a branch toalc2005-04-101-5/+4
| | | | | | | | a return instruction. (The latter is discouraged by the Opteron optimization manual because it disables branch prediction for the return instruction.) Reviewed by: bde
* Add a machine-specific, optimized implementation of strcpy.alc2005-04-102-1/+113
| | | | | | PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
* Add a machine-specific, optimized implementation of strcmp.alc2005-04-092-1/+75
| | | | | | PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
* Add machine-specific, optimized implementations of bcmp and memcmp.alc2005-04-083-1/+67
| | | | | | PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
* Eliminate unneeded instructions that are a vestige of mechanicalalc2005-04-081-10/+4
| | | | translation from i386.
* Eliminate an unneeded instruction that is a vestige of mechanicalalc2005-04-071-7/+5
| | | | translation from i386.
* Add machine-specific, optimized implementations of bcopy, bzero, memcpy,alc2005-04-076-0/+212
| | | | | | | | memmove, and memset. PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
* Remove fpsetsticky(). This was added for SysV compatibility, but duedas2005-03-152-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to mistakes from day 1, it has always had semantics inconsistent with SVR4 and its successors. In particular, given argument M: - On Solaris and FreeBSD/{alpha,sparc64}, it clobbers the old flags and *sets* the new flag word to M. (NetBSD, too?) - On FreeBSD/{amd64,i386}, it *clears* the flags that are specified in M and leaves the remaining flags unchanged (modulo a small bug on amd64.) - On FreeBSD/ia64, it is not implemented. There is no way to fix fpsetsticky() to DTRT for both old FreeBSD apps and apps ported from other operating systems, so the best approach seems to be to kill the function and fix any apps that break. I couldn't find any ports that use it, and any such ports would already be broken on FreeBSD/ia64 and Linux anyway. By the way, the routine has always been undocumented in FreeBSD, except for an MLINK to a manpage that doesn't describe it. This manpage has stated since 5.3-RELEASE that the functions it describes are deprecated, so that must mean that functions that it is *supposed* to describe but doesn't are even *more* deprecated. ;-) Note that fpresetsticky() has been retained on FreeBSD/i386. As far as I can tell, no other operating systems or ports of FreeBSD implement it, so there's nothing for it to be inconsistent with. PR: 75862 Suggested by: bde
* Define LDBL_NBIT to be a mask indicating the position of the integerdas2005-03-071-1/+2
| | | | | | | | bit in a long double. For architectures that don't have such a bit, LDBL_NBIT is 0. This makes it possible to say `mantissa & ~LDBL_NBIT' in places that previously used an #ifdef to select the right expression. The optimizer should dispense with the extra arithmetic when LDBL_NBIT is 0.
* Update my email address.das2005-02-061-1/+1
|
* Eliminate gdtoa.mk and move its contents to ${MACHINE_ARCH}/Makefile.inc.das2005-01-152-5/+4
| | | | | The purpose of having a separate file involved an abandoned scheme that would have kept contrib/gdtoa out of the include path for the rest of libc.
* Fix brk(3). The stack was unbalanced when we jumped to cerror. Oops!peter2004-10-271-0/+1
| | | | | | This causes nasty things like SEGV or a cpu spin when we return. Submitted by: "James R. Van Artsalen" <james@jrv.org>
* For variables that are only checked with defined(), don't provideru2004-10-241-1/+1
| | | | any fake value.
* Add support for TLS in statically linked programs.dfr2004-08-152-1/+39
|
* 1. Use correct alignment mask, -15 != ~15davidxu2004-07-311-2/+2
| | | | 2. Make end of frames
* Set fpu context flags to known values, zero is illegal.davidxu2004-07-281-0/+2
|
* Make FLT_ROUNDS correctly reflect the dynamic rounding mode.das2004-07-192-1/+27
|
* Replace seven nominally MD implementations of frexp() that are brokendas2004-07-182-69/+1
| | | | for subnormals with one implementation that works.
* Implement the classification macros isfinite(), isinf(), isnan(), anddas2004-07-092-76/+1
| | | | | | | | | | | | | | | | | | | | | isnormal() the hard way, rather than relying on fpclassify(). This is a lose in the sense that we need a total of 12 functions, but it is necessary for binary compatibility because we have never bumped libm's major version number. In particular, isinf(), isnan(), and isnanf() were BSD libc functions before they were C99 macros, so we can't reimplement them in terms of fpclassify() without adding a dependency on libc.so.5. I have tried to arrange things so that programs that could be compiled in FreeBSD 4.X will generate the same external references when compiled in 5.X. At the same time, the new macros should remain C99-compliant. The isinf() and isnan() functions remain in libc for historical reasons; however, I have moved the functions that implement the macros isfinite() and isnormal() to libm where they belong. Moreover, half a dozen MD versions of isinf() and isnan() have been replaced with MI versions that work equally well. Prodded by: kris
* Avoid to touch red zone, in libpthread, ucontext may be saved by kernel'sdavidxu2004-06-151-1/+1
| | | | | | | get_mcontext, and libpthread will use signalcontext to deliver signal in userland, it looks same as kernel's send_sig does. Reviewed by: deischen, tjr
* Fix Yet Another 16 byte stack alignment bug. Thankfully, this one ispeter2004-03-312-10/+10
| | | | | | | | | | | solved by a simple 'make world'. The signalcontext function was going to the trouble of generating an even 16 byte alignment, but in fact it needed to be odd aligned to simulate the 8-byte return address having been pushed by the caller. This fixes yet another group of crashes in applications using libpthread. And yet again, it was my fault all along. While here, rename the duplicate internal ctx_wrapper() functions to makectx_wrapper() and sigctx_wrapper() so that traces aren't ambiguous.
* Change the syscall stub branch orders so that the static branch predictionpeter2004-02-224-12/+51
| | | | will assume that syscalls will succeed rather than fail.
* Fix a typo in the !__GNUC__ case and remove an obsolete comment.das2004-02-161-3/+1
|
* Fix some aliasing problems.das2004-02-161-14/+19
|
* Rewrite fabs.S to use pure SSE2 operations. I got the clues how to dopeter2004-02-081-10/+35
| | | | this from looking at code generated by gcc.
* Define LDBL_MANH_SIZE and LDBL_MANL_SIZE to be the sizes of thedas2004-01-181-0/+3
| | | | high and low words of the mantissa in bits, respectively.
* Provide sysarch(2) prototypes in the MD sysarch.h headers. While I'mnectar2004-01-094-12/+4
| | | | | | | | | | at it, use the ANSI C generic pointer type for the second argument, thus matching the documentation. Remove the now extraneous (and now conflicting) function declarations in various libc sources. Remove now unnecessary casts. Reviewed by: bde
* "Fix" makecontext() so that the C code begins execution with itspeter2003-12-051-2/+6
| | | | | | | | | | | | | ABI-required stack alignment. C code expects that the push of the return address disturbed the 16 byte alignment and it will take corrective measures to fix it before making another call. Of course, if its wrong to start with, then all hell breaks loose. Essentially we "fix" this by making the stack alignment odd to start with. This was one of the things that broke on libkse with apps that use floating point/varargs/etc. Approved by: re (scottl)
* Add implementations of amd64_[gs]et_[fg]sbase().peter2003-10-235-0/+158
|
* Add rfork_thread(3).alc2003-10-132-1/+102
|
* Fix fabs(). This commit brought to you by the letter 'l'.peter2003-09-261-1/+1
| | | | | | | | | (fstp stores a mem32 value, fstpl stores a mem64 value) This fixes ghostscript for 'make release' on amd64. Ghostscript for some reason thinks it is a good idea to use -fno-builtin, which means it is vulnerable to bugs in libc that are normally hidden by the builtin gcc functions. Oops.
* Sigh. I can't win anything. Use addq rather than addl with %rsp.peter2003-09-041-1/+1
|
* Apply same basic fix for getcontext(2) as for i386. Store the returnpeter2003-09-042-2/+56
| | | | | | value for getcontext() in a preserved register rather than on the stack. The second time around, the stack value would likely have changed so we can't depend on it for the return value.
* Fix some minor whitespace botchespeter2003-09-041-1/+1
|
* Add the mlockall() and munlockall() system calls.bms2003-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | - All those diffs to syscalls.master for each architecture *are* necessary. This needed clarification; the stub code generation for mlockall() was disabled, which would prevent applications from linking to this API (suggested by mux) - Giant has been quoshed. It is no longer held by the code, as the required locking has been pushed down within vm_map.c. - Callers must specify VM_MAP_WIRE_HOLESOK or VM_MAP_WIRE_NOHOLES to express their intention explicitly. - Inspected at the vmstat, top and vm pager sysctl stats level. Paging-in activity is occurring correctly, using a test harness. - The RES size for a process may appear to be greater than its SIZE. This is believed to be due to mappings of the same shared library page being wired twice. Further exploration is needed. - Believed to back out of allocations and locks correctly (tested with WITNESS, MUTEX_PROFILING, INVARIANTS and DIAGNOSTIC). PR: kern/43426, standards/54223 Reviewed by: jake, alc Approved by: jake (mentor) MFC after: 2 weeks
* Set mc_len to sizeof(mcontext_t), otherwise it is an invalid context.davidxu2003-07-261-0/+1
|
* Instantiate explicit callable versions of the machine/ieeefp.h inlinespeter2003-07-229-1/+67
| | | | for the use of non-GCC compilers and C++ code.
* Turn off the libc/quad functions since they are not needed for amd64peter2003-07-221-0/+9
| | | | and just cause lots of warnings.
* Add amd64 versions of makecontext() and signalcontext() neededdeischen2003-07-193-1/+208
| | | | | for libkse (makecontext() is also needed for libthr). These probably will need some tweaking.
* This is unusable on amd64. Remove it before it causes more confusion.peter2003-06-131-53/+0
| | | | | | It is only possible to do this on an ABI that has a compulsory frame pointer, which the amd64 ABI does not. Thus, it is only possible to implement this as a compiler builtin.
OpenPOWER on IntegriCloud