aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-09-06 02:01:35 +0000
committerRichard Henderson <rth@redhat.com>2004-09-06 02:01:35 +0000
commitfebcd83655138bcb01b2680e170e6773a1ec813c (patch)
tree28ede43c995a57e82b29bd5fc3fef7112d5a4c20 /sysdeps/alpha/ldiv.S
parent * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P): ... (diff)
downloadglibc-febcd83655138bcb01b2680e170e6773a1ec813c.tar.gz
glibc-febcd83655138bcb01b2680e170e6773a1ec813c.tar.bz2
glibc-febcd83655138bcb01b2680e170e6773a1ec813c.zip
* sysdeps/alpha/div.S: Save and restore FPCR around fp operations. * sysdeps/alpha/divl.S, sysdeps/alpha/divq.S, sysdeps/alpha/divqu.S, sysdeps/alpha/ldiv.S, sysdeps/alpha/reml.S, sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Likewise. * sysdeps/alpha/div_libc.h (FRAME): Increase to 64.
2004-09-05 Richard Henderson <rth@redhat.com> * sysdeps/alpha/div.S: Save and restore FPCR around fp operations. * sysdeps/alpha/divl.S, sysdeps/alpha/divq.S, sysdeps/alpha/divqu.S, sysdeps/alpha/ldiv.S, sysdeps/alpha/reml.S, sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Likewise. * sysdeps/alpha/div_libc.h (FRAME): Increase to 64.
Diffstat (limited to 'sysdeps/alpha/ldiv.S')
-rw-r--r--sysdeps/alpha/ldiv.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/sysdeps/alpha/ldiv.S b/sysdeps/alpha/ldiv.S
index c90edfb784..3909672782 100644
--- a/sysdeps/alpha/ldiv.S
+++ b/sysdeps/alpha/ldiv.S
@@ -53,6 +53,8 @@ ldiv:
#endif
beq Y, $divbyzero
+ excb
+ mf_fpcr $f10
_ITOFT2 X, $f0, 0, Y, $f1, 8
@@ -71,6 +73,8 @@ ldiv:
/* If we get here, we're expecting exact results from the division.
Do nothing else besides convert and clean up. */
cvttq/c $f0, $f0
+ excb
+ mt_fpcr $f10
_FTOIT $f0, $0, 0
$egress:
@@ -107,9 +111,10 @@ $fix_sign_in_ret1:
cvttq/c $f0, $f0
_FTOIT $f0, Q, 8
- .align 3
$fix_sign_in_ret2:
mulq Q, Y, QY
+ excb
+ mt_fpcr $f10
.align 4
subq QY, X, R