Save/restore fpiar.
authorUlrich Drepper <drepper@redhat.com>
Sun, 14 Dec 1997 22:09:13 +0000 (22:09 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 14 Dec 1997 22:09:13 +0000 (22:09 +0000)
sysdeps/m68k/fpu/fegetenv.c
sysdeps/m68k/fpu/feholdexcpt.c
sysdeps/m68k/fpu/fesetenv.c

index 59f743a..b437b7e 100644 (file)
@@ -23,5 +23,5 @@
 void
 fegetenv (fenv_t *envp)
 {
-  __asm__ ("fmovem%.l %/fpcr/%/fpsr,%0" : "=m" (*envp));
+  __asm__ ("fmovem%.l %/fpcr/%/fpsr/%/fpiar,%0" : "=m" (*envp));
 }
index d8e2d8a..e36617d 100644 (file)
@@ -26,7 +26,7 @@ feholdexcept (fenv_t *envp)
   fexcept_t fpcr, fpsr;
 
   /* Store the environment.  */
-  __asm__ ("fmovem%.l %/fpcr/%/fpsr,%0" : "=m" (*envp));
+  __asm__ ("fmovem%.l %/fpcr/%/fpsr/%/fpiar,%0" : "=m" (*envp));
 
   /* Now clear all exceptions.  */
   fpsr = envp->status_register & ~FE_ALL_EXCEPT;
index 8b4d6b0..6dd131b 100644 (file)
@@ -29,7 +29,7 @@ fesetenv (const fenv_t *envp)
      values which we do not want to come from the saved environment.
      Therefore, we get the current environment and replace the values
      we want to use from the environment specified by the parameter.  */
-  __asm__ ("fmovem%.l %/fpcr/%/fpsr,%0" : "=m" (*&temp));
+  __asm__ ("fmovem%.l %/fpcr/%/fpsr/%/fpiar,%0" : "=m" (*&temp));
 
   temp.status_register &= ~FE_ALL_EXCEPT;
   temp.control_register &= ~((FE_ALL_EXCEPT << 6) | FE_UPWARD);
@@ -44,5 +44,5 @@ fesetenv (const fenv_t *envp)
       temp.status_register |= envp->status_register & FE_ALL_EXCEPT;
     }
 
-  __asm__ __volatile__ ("fmovem%.l %0,%/fpcr/%/fpsr" : : "m" (temp));
+  __asm__ __volatile__ ("fmovem%.l %0,%/fpcr/%/fpsr/%/fpiar" : : "m" (*&temp));
 }