]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/hppa/fpu/feholdexcpt.c
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / hppa / fpu / feholdexcpt.c
index da2f586c5d219bc1300c5d3960c2088be328392b..98b4b1503680ec4d0ae9490ce8c304b24f395d4f 100644 (file)
@@ -1,5 +1,5 @@
 /* Store current floating-point environment and clear exceptions.
-   Copyright (C) 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 2000-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Huggins-Daines <dhd@debian.org>, 2000
 
@@ -21,7 +21,7 @@
 #include <string.h>
 
 int
-feholdexcept (fenv_t *envp)
+__feholdexcept (fenv_t *envp)
 {
   union { unsigned long long buf[4]; fenv_t env; } clear;
   unsigned long long *bufptr;
@@ -29,8 +29,8 @@ feholdexcept (fenv_t *envp)
   /* Store the environment.  */
   bufptr = clear.buf;
   __asm__ (
-          "fstd,ma %%fr0,8(%1)\n"
-          : "=m" (clear), "+r" (bufptr) : : "%r0");
+          "fstd %%fr0,0(%1)\n"
+          : "=m" (clear) : "r" (bufptr) : "%r0");
   memcpy (envp, &clear.env, sizeof (fenv_t));
 
   /* Clear exception queues */
@@ -40,14 +40,14 @@ feholdexcept (fenv_t *envp)
   /* Now clear all flags  */
   clear.env.__status_word &= ~(FE_ALL_EXCEPT << 27);
 
-  /* Load the new environment. Note: fr0 must load last to enable T-bit
-     Thus we start bufptr at the end and work backwards */
-  bufptr = (unsigned long long *)((unsigned int)(clear.buf) + sizeof(unsigned int)*4);
+  /* Load the new environment. Note: fr0 must load last to enable T-bit.  */
   __asm__ (
-          "fldd,mb -8(%0),%%fr0\n"
+          "fldd 0(%0),%%fr0\n"
           : : "r" (bufptr), "m" (clear) : "%r0");
 
   return 0;
 }
 
-libm_hidden_def (feholdexcept)
+libm_hidden_def (__feholdexcept)
+weak_alias (__feholdexcept, feholdexcept)
+libm_hidden_weak (feholdexcept)