about summary refs log tree commit diff
path: root/sysdeps/sparc/fpu/fenv_private.h
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /sysdeps/sparc/fpu/fenv_private.h
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-zack/build-layout-experiment.tar.gz
glibc-zack/build-layout-experiment.tar.xz
glibc-zack/build-layout-experiment.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'sysdeps/sparc/fpu/fenv_private.h')
-rw-r--r--sysdeps/sparc/fpu/fenv_private.h182
1 files changed, 0 insertions, 182 deletions
diff --git a/sysdeps/sparc/fpu/fenv_private.h b/sysdeps/sparc/fpu/fenv_private.h
deleted file mode 100644
index 29b5d123cf..0000000000
--- a/sysdeps/sparc/fpu/fenv_private.h
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
-
-#include <fenv.h>
-
-static __always_inline void
-libc_feholdexcept (fenv_t *e)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  *(e) = etmp;
-  etmp = etmp & ~((0x1f << 23) | FE_ALL_EXCEPT);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline void
-libc_fesetround (int r)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  etmp = (etmp & ~__FE_ROUND_MASK) | (r);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline void
-libc_feholdexcept_setround (fenv_t *e, int r)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  *(e) = etmp;
-  etmp = etmp & ~((0x1f << 23) | FE_ALL_EXCEPT);
-  etmp = (etmp & ~__FE_ROUND_MASK) | (r);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline int
-libc_fetestexcept (int e)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  return etmp & (e) & FE_ALL_EXCEPT;
-}
-
-static __always_inline void
-libc_fesetenv (fenv_t *e)
-{
-  __fenv_ldfsr(*e);
-}
-
-static __always_inline int
-libc_feupdateenv_test (fenv_t *e, int ex)
-{
-  fenv_t etmp;
-
-  __fenv_stfsr(etmp);
-  etmp &= FE_ALL_EXCEPT;
-
-  __fenv_ldfsr(*e);
-
-  __feraiseexcept (etmp);
-
-  return etmp & ex;
-}
-
-static __always_inline void
-libc_feupdateenv (fenv_t *e)
-{
-  libc_feupdateenv_test (e, 0);
-}
-
-static __always_inline void
-libc_feholdsetround (fenv_t *e, int r)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  *(e) = etmp;
-  etmp = (etmp & ~__FE_ROUND_MASK) | (r);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline void
-libc_feresetround (fenv_t *e)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  etmp = (etmp & ~__FE_ROUND_MASK) | (*e & __FE_ROUND_MASK);
-  __fenv_ldfsr(etmp);
-}
-
-#define libc_feholdexceptf		libc_feholdexcept
-#define libc_fesetroundf		libc_fesetround
-#define libc_feholdexcept_setroundf	libc_feholdexcept_setround
-#define libc_fetestexceptf		libc_fetestexcept
-#define libc_fesetenvf			libc_fesetenv
-#define libc_feupdateenv_testf		libc_feupdateenv_test
-#define libc_feupdateenvf		libc_feupdateenv
-#define libc_feholdsetroundf		libc_feholdsetround
-#define libc_feresetroundf		libc_feresetround
-#define libc_feholdexcept		libc_feholdexcept
-#define libc_fesetround			libc_fesetround
-#define libc_feholdexcept_setround	libc_feholdexcept_setround
-#define libc_fetestexcept		libc_fetestexcept
-#define libc_fesetenv			libc_fesetenv
-#define libc_feupdateenv_test		libc_feupdateenv_test
-#define libc_feupdateenv		libc_feupdateenv
-#define libc_feholdsetround		libc_feholdsetround
-#define libc_feresetround		libc_feresetround
-#define libc_feholdexceptl		libc_feholdexcept
-#define libc_fesetroundl		libc_fesetround
-#define libc_feholdexcept_setroundl	libc_feholdexcept_setround
-#define libc_fetestexceptl		libc_fetestexcept
-#define libc_fesetenvl			libc_fesetenv
-#define libc_feupdateenv_testl		libc_feupdateenv_test
-#define libc_feupdateenvl		libc_feupdateenv
-#define libc_feholdsetroundl		libc_feholdsetround
-#define libc_feresetroundl		libc_feresetround
-
-/* We have support for rounding mode context.  */
-#define HAVE_RM_CTX 1
-
-static __always_inline void
-libc_feholdexcept_setround_sparc_ctx (struct rm_ctx *ctx, int round)
-{
-  fenv_t new;
-
-  __fenv_stfsr(ctx->env);
-  new = ctx->env & ~((0x1f << 23) | FE_ALL_EXCEPT);
-  new = (new & ~__FE_ROUND_MASK) | round;
-  if (__glibc_unlikely (new != ctx->env))
-    {
-      __fenv_ldfsr(new);
-      ctx->updated_status = true;
-    }
-  else
-    ctx->updated_status = false;
-}
-
-static __always_inline void
-libc_fesetenv_sparc_ctx (struct rm_ctx *ctx)
-{
-  libc_fesetenv(&ctx->env);
-}
-
-static __always_inline void
-libc_feupdateenv_sparc_ctx (struct rm_ctx *ctx)
-{
-  if (__glibc_unlikely (ctx->updated_status))
-    libc_feupdateenv_test (&ctx->env, 0);
-}
-
-static __always_inline void
-libc_feholdsetround_sparc_ctx (struct rm_ctx *ctx, int round)
-{
-  fenv_t new;
-
-  __fenv_stfsr(ctx->env);
-  new = (ctx->env & ~__FE_ROUND_MASK) | round;
-  if (__glibc_unlikely (new != ctx->env))
-    {
-      __fenv_ldfsr(new);
-      ctx->updated_status = true;
-    }
-  else
-    ctx->updated_status = false;
-}
-#define libc_feholdexcept_setround_ctx   libc_feholdexcept_setround_sparc_ctx
-#define libc_feholdexcept_setroundf_ctx  libc_feholdexcept_setround_sparc_ctx
-#define libc_feholdexcept_setroundl_ctx  libc_feholdexcept_setround_sparc_ctx
-#define libc_fesetenv_ctx                libc_fesetenv_sparc_ctx
-#define libc_fesetenvf_ctx               libc_fesetenv_sparc_ctx
-#define libc_fesetenvl_ctx               libc_fesetenv_sparc_ctx
-#define libc_feupdateenv_ctx             libc_feupdateenv_sparc_ctx
-#define libc_feupdateenvf_ctx            libc_feupdateenv_sparc_ctx
-#define libc_feupdateenvl_ctx            libc_feupdateenv_sparc_ctx
-#define libc_feresetround_ctx            libc_feupdateenv_sparc_ctx
-#define libc_feresetroundf_ctx           libc_feupdateenv_sparc_ctx
-#define libc_feresetroundl_ctx           libc_feupdateenv_sparc_ctx
-#define libc_feholdsetround_ctx          libc_feholdsetround_sparc_ctx
-#define libc_feholdsetroundf_ctx         libc_feholdsetround_sparc_ctx
-#define libc_feholdsetroundl_ctx         libc_feholdsetround_sparc_ctx
-
-#endif /* FENV_PRIVATE_H */