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.
This commit is contained in:
parent
a525aa3424
commit
4c4918c9e4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=36979
@ -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 @@ nfs_bioread(vp, uio, ioflag, cred, getpages)
|
||||
&& 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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 @@ nfs_bioread(vp, uio, ioflag, cred, getpages)
|
||||
&& 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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user