diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:15 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:15 +0300 |
commit | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch) | |
tree | da2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /contrib/libs/cxxsupp/builtins/ppc/DD.h | |
parent | 778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff) | |
download | ydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/cxxsupp/builtins/ppc/DD.h')
-rw-r--r-- | contrib/libs/cxxsupp/builtins/ppc/DD.h | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/contrib/libs/cxxsupp/builtins/ppc/DD.h b/contrib/libs/cxxsupp/builtins/ppc/DD.h index 3e5f9e58c1..45bbc846ea 100644 --- a/contrib/libs/cxxsupp/builtins/ppc/DD.h +++ b/contrib/libs/cxxsupp/builtins/ppc/DD.h @@ -1,45 +1,45 @@ -#ifndef COMPILERRT_DD_HEADER -#define COMPILERRT_DD_HEADER - -#include "../int_lib.h" - -typedef union { - long double ld; - struct { - double hi; - double lo; - }s; -} DD; - +#ifndef COMPILERRT_DD_HEADER +#define COMPILERRT_DD_HEADER + +#include "../int_lib.h" + typedef union { - double d; - uint64_t x; -} doublebits; - -#define LOWORDER(xy,xHi,xLo,yHi,yLo) \ - (((((xHi)*(yHi) - (xy)) + (xHi)*(yLo)) + (xLo)*(yHi)) + (xLo)*(yLo)) - -static __inline ALWAYS_INLINE double local_fabs(double x) { - doublebits result = {.d = x}; - result.x &= UINT64_C(0x7fffffffffffffff); - return result.d; -} - -static __inline ALWAYS_INLINE double high26bits(double x) { - doublebits result = {.d = x}; - result.x &= UINT64_C(0xfffffffff8000000); - return result.d; -} - -static __inline ALWAYS_INLINE int different_sign(double x, double y) { - doublebits xsignbit = {.d = x}, ysignbit = {.d = y}; - int result = (int)(xsignbit.x >> 63) ^ (int)(ysignbit.x >> 63); - return result; -} - -long double __gcc_qadd(long double, long double); -long double __gcc_qsub(long double, long double); -long double __gcc_qmul(long double, long double); -long double __gcc_qdiv(long double, long double); - -#endif /* COMPILERRT_DD_HEADER */ + long double ld; + struct { + double hi; + double lo; + }s; +} DD; + +typedef union { + double d; + uint64_t x; +} doublebits; + +#define LOWORDER(xy,xHi,xLo,yHi,yLo) \ + (((((xHi)*(yHi) - (xy)) + (xHi)*(yLo)) + (xLo)*(yHi)) + (xLo)*(yLo)) + +static __inline ALWAYS_INLINE double local_fabs(double x) { + doublebits result = {.d = x}; + result.x &= UINT64_C(0x7fffffffffffffff); + return result.d; +} + +static __inline ALWAYS_INLINE double high26bits(double x) { + doublebits result = {.d = x}; + result.x &= UINT64_C(0xfffffffff8000000); + return result.d; +} + +static __inline ALWAYS_INLINE int different_sign(double x, double y) { + doublebits xsignbit = {.d = x}, ysignbit = {.d = y}; + int result = (int)(xsignbit.x >> 63) ^ (int)(ysignbit.x >> 63); + return result; +} + +long double __gcc_qadd(long double, long double); +long double __gcc_qsub(long double, long double); +long double __gcc_qmul(long double, long double); +long double __gcc_qdiv(long double, long double); + +#endif /* COMPILERRT_DD_HEADER */ |