mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-18 06:30:05 +00:00
Update.
1998-11-23 Ulrich Drepper <drepper@cygnus.com> * sysdeps/i386/fpu/bits/mathinline.h: Add optimizations for lrint and llrint.
This commit is contained in:
parent
a42134a70b
commit
3312745968
@ -1,3 +1,8 @@
|
|||||||
|
1998-11-23 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/i386/fpu/bits/mathinline.h: Add optimizations for lrint
|
||||||
|
and llrint.
|
||||||
|
|
||||||
1998-11-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
1998-11-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/netinet/ip_fw.h: Removed. There are too
|
* sysdeps/unix/sysv/linux/netinet/ip_fw.h: Removed. There are too
|
||||||
|
10
FAQ
10
FAQ
@ -126,6 +126,7 @@ please let me know.
|
|||||||
3.14. The pow() inline function I get when including <math.h> is broken.
|
3.14. The pow() inline function I get when including <math.h> is broken.
|
||||||
I get segmentation faults when I run the program.
|
I get segmentation faults when I run the program.
|
||||||
3.15. The sys/sem.h file lacks the definition of `union semun'.
|
3.15. The sys/sem.h file lacks the definition of `union semun'.
|
||||||
|
3.16. Why has <netinet/ip_fw.h> disappeared?
|
||||||
|
|
||||||
4. Miscellaneous
|
4. Miscellaneous
|
||||||
|
|
||||||
@ -1275,6 +1276,15 @@ versions defined this but it was an error since it does not make much sense
|
|||||||
when thinking about it. The standards describing the System V IPC functions
|
when thinking about it. The standards describing the System V IPC functions
|
||||||
define it this way and therefore programs must be adopted.
|
define it this way and therefore programs must be adopted.
|
||||||
|
|
||||||
|
|
||||||
|
3.16. Why has <netinet/ip_fw.h> disappeared?
|
||||||
|
|
||||||
|
{AJ} The corresponding Linux kernel data structures and constants are
|
||||||
|
totally different in Linux 2.0 and Linux 2.1. This situation has to be
|
||||||
|
taken care in user programs using the firewall structures and therefore
|
||||||
|
those programs (ipfw is AFAIK the only one) should deal with this problem
|
||||||
|
themselves.
|
||||||
|
|
||||||
|
|
||||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||||
|
|
||||||
|
@ -565,6 +565,52 @@ __inline_mathcode3 (fma, __x, __y, __z, return (__x * __y) + __z)
|
|||||||
|
|
||||||
__inline_mathop(rint, "frndint")
|
__inline_mathop(rint, "frndint")
|
||||||
|
|
||||||
|
#define __lrint_code \
|
||||||
|
long int __lrintres; \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("fistpl %0" \
|
||||||
|
: "=m" (__lrintres) : "t" (__x) : "st"); \
|
||||||
|
return __lrintres
|
||||||
|
__MATH_INLINE long int
|
||||||
|
lrintf (float __x)
|
||||||
|
{
|
||||||
|
__lrint_code;
|
||||||
|
}
|
||||||
|
__MATH_INLINE long int
|
||||||
|
lrint (double __x)
|
||||||
|
{
|
||||||
|
__lrint_code;
|
||||||
|
}
|
||||||
|
__MATH_INLINE long int
|
||||||
|
lrintl (long double __x)
|
||||||
|
{
|
||||||
|
__lrint_code;
|
||||||
|
}
|
||||||
|
#undef __lrint_code
|
||||||
|
|
||||||
|
#define __llrint_code \
|
||||||
|
long long int __llrintres; \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("fistpll %0" \
|
||||||
|
: "=m" (__llrintres) : "t" (__x) : "st"); \
|
||||||
|
return __llrintres
|
||||||
|
__MATH_INLINE long long int
|
||||||
|
llrintf (float __x)
|
||||||
|
{
|
||||||
|
__llrint_code;
|
||||||
|
}
|
||||||
|
__MATH_INLINE long long int
|
||||||
|
llrint (double __x)
|
||||||
|
{
|
||||||
|
__llrint_code;
|
||||||
|
}
|
||||||
|
__MATH_INLINE long long int
|
||||||
|
llrintl (long double __x)
|
||||||
|
{
|
||||||
|
__llrint_code;
|
||||||
|
}
|
||||||
|
#undef __llrint_code
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -572,12 +618,13 @@ __inline_mathop(rint, "frndint")
|
|||||||
|
|
||||||
__inline_mathcode2 (drem, __x, __y, \
|
__inline_mathcode2 (drem, __x, __y, \
|
||||||
register double __value; \
|
register double __value; \
|
||||||
|
register int __clobbered; \
|
||||||
__asm __volatile__ \
|
__asm __volatile__ \
|
||||||
("1: fprem1\n\t" \
|
("1: fprem1\n\t" \
|
||||||
"fstsw %%ax\n\t" \
|
"fstsw %%ax\n\t" \
|
||||||
"sahf\n\t" \
|
"sahf\n\t" \
|
||||||
"jp 1b" \
|
"jp 1b" \
|
||||||
: "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); \
|
: "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); \
|
||||||
return __value)
|
return __value)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user