You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
--- glibc-2.17-c758a686/sysdeps/powerpc/power7/fpu/s_logbl.c 2014-09-10 20:52:01.813168232 -0400 |
|
+++ glibc-2.17-c758a686/sysdeps/powerpc/power7/fpu/s_logbl.c 2014-01-02 13:16:41.441557403 -0500 |
|
@@ -1,5 +1,5 @@ |
|
/* logbl(). PowerPC/POWER7 version. |
|
- Copyright (C) 2012 Free Software Foundation, Inc. |
|
+ Copyright (C) 2012-2014 Free Software Foundation, Inc. |
|
This file is part of the GNU C Library. |
|
|
|
The GNU C Library is free software; you can redistribute it and/or |
|
@@ -35,14 +35,14 @@ |
|
long double |
|
__logbl (long double x) |
|
{ |
|
- double xh, xl; |
|
+ double xh; |
|
double ret; |
|
|
|
if (__builtin_expect (x == 0.0L, 0)) |
|
/* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */ |
|
return -1.0L / __builtin_fabsl (x); |
|
|
|
- ldbl_unpack (x, &xh, &xl); |
|
+ xh = ldbl_high (x); |
|
/* ret = x & 0x7ff0000000000000; */ |
|
asm ( |
|
"xxland %x0,%x1,%x2\n" |
|
@@ -58,15 +58,14 @@ |
|
{ |
|
/* POSIX specifies that denormal number is treated as |
|
though it were normalized. */ |
|
- int64_t lx, hx; |
|
+ int64_t hx; |
|
|
|
- GET_LDOUBLE_WORDS64 (hx, lx, x); |
|
+ EXTRACT_WORDS64 (hx, xh); |
|
return (long double) (-1023 - (__builtin_clzll (hx) - 12)); |
|
} |
|
/* Test to avoid logb_downward (0.0) == -0.0. */ |
|
return ret == -0.0 ? 0.0 : ret; |
|
} |
|
- |
|
#ifndef __logbl |
|
long_double_symbol (libm, __logbl, logbl); |
|
#endif
|
|
|