diff options
author | bde <bde@FreeBSD.org> | 1998-06-14 15:52:00 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-06-14 15:52:00 +0000 |
commit | a90040b583bb2b134bd685c9f4b7ac1d187f26a6 (patch) | |
tree | d96564c5196896d8b375fb9e4d5029c83607faf4 /sys/nfsclient | |
parent | 76251ad8323572aefde82467f55d4881fd250d99 (diff) | |
download | FreeBSD-src-a90040b583bb2b134bd685c9f4b7ac1d187f26a6.zip FreeBSD-src-a90040b583bb2b134bd685c9f4b7ac1d187f26a6.tar.gz |
Avoid an egcs pessimization for 64-bit signed division on i386's.
Pre-2.8 versions of gcc generate a call to __divdi3() for all 64-bit
signed divisions, but egcs optimizes them to a shift and fixup when
the divisor is a constant power of 2. Unfortunately, it generates
a call to __cmpdi2() for the fixup, although all except possibly
ancient versions of gcc and egcs do ordinary 64-bit comparisons
inline.
Diffstat (limited to 'sys/nfsclient')
-rw-r--r-- | sys/nfsclient/nfs_bio.c | 4 | ||||
-rw-r--r-- | sys/nfsclient/nfs_subs.c | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/nfsclient/nfs_bio.c b/sys/nfsclient/nfs_bio.c index 3486a78..5633891 100644 --- a/sys/nfsclient/nfs_bio.c +++ b/sys/nfsclient/nfs_bio.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_bio.c 8.9 (Berkeley) 3/30/95 - * $Id: nfs_bio.c,v 1.57 1998/05/30 16:33:56 peter Exp $ + * $Id: nfs_bio.c,v 1.58 1998/06/01 11:32:53 peter Exp $ */ @@ -523,7 +523,7 @@ again: && uio->uio_offset >= np->n_direofoffset) { return (0); } - lbn = uio->uio_offset / NFS_DIRBLKSIZ; + lbn = (uoff_t)uio->uio_offset / NFS_DIRBLKSIZ; on = uio->uio_offset & (NFS_DIRBLKSIZ - 1); bp = nfs_getcacheblk(vp, lbn, NFS_DIRBLKSIZ, p); if (!bp) diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c index b53f59d..f256959 100644 --- a/sys/nfsclient/nfs_subs.c +++ b/sys/nfsclient/nfs_subs.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95 - * $Id: nfs_subs.c,v 1.60 1998/05/31 19:16:08 peter Exp $ + * $Id: nfs_subs.c,v 1.61 1998/05/31 20:08:55 peter Exp $ */ /* @@ -2011,11 +2011,11 @@ nfs_getcookie(np, off, add) register struct nfsdmap *dp, *dp2; register int pos; - pos = off / NFS_DIRBLKSIZ; - if (pos == 0) { + pos = (uoff_t)off / NFS_DIRBLKSIZ; + if (pos == 0 || off < 0) { #ifdef DIAGNOSTIC if (add) - panic("nfs getcookie add at 0"); + panic("nfs getcookie add at <= 0"); #endif return (&nfs_nullcookie); } |