Date: Wed, 18 Dec 2002 10:58:45 +0200 From: Ruslan Ermilov <ru@freebsd.org> To: Bruce Evans <bde@zeta.org.au> Cc: "Greg 'groggy' Lehey" <grog@freebsd.org>, Terry Lambert <tlambert2@mindspring.com>, Alex <akruijff@dds.nl>, phk@freebsd.org, Johnson David <DavidJohnson@Siemens.com>, current@freebsd.org Subject: Re: 80386 out of GENERIC Message-ID: <20021218085845.GA42792@sunbay.com> In-Reply-To: <20021218152338.V23575-100000@gamplex.bde.org> References: <20021217074235.GA95679@sunbay.com> <20021218152338.V23575-100000@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Wed, Dec 18, 2002 at 03:33:42PM +1100, Bruce Evans wrote:
> On Tue, 17 Dec 2002, Ruslan Ermilov wrote:
>=20
> > On Mon, Dec 16, 2002 at 09:05:40AM +1030, Greg 'groggy' Lehey wrote:
> > > I suppose it would be a good idea to include an alternatvie i386
> > > kernel on the CD-ROM. There may be a space issue, of course. How
> > > many people participating in this thread have an i386 with at least 12
> > > MB of memory and intended to try 5.0 on it? How many of those don't
> > > have a machine to bootstrap off?
> > >
> > Having only alternative i386 kernel is not enough while userland
> > stuff is still compiled for i486.
>=20
> Er, userland stuff is still compiled for original i386's, modulo bugs.
> E.g., in the i386 endian.h:
>=20
> % #if defined(_KERNEL) && (defined(I486_CPU) || defined(I586_CPU) || defi=
ned(I686_CPU)) && !defined(I386_CPU)
> ^^^^^^^^^^^^^^^
> %
> % #define __byte_swap_int(x) \
> % __extension__ ({ register __uint32_t __X =3D (x); \
> % __asm ("bswap %0" : "+r" (__X)); \
> % __X; })
> % #else
> %
> % #define __byte_swap_int(x) \
> % __extension__ ({ register __uint32_t __X =3D (x); \
> % __asm ("xchgb %h0, %b0\n\trorl $16, %0\n\txchgb %h0, %b0" \
> % : "+q" (__X)); \
> % __X; })
> % #endif
>=20
> The _KERNEL part of the ifdef limits the use of the i486 "bswap"
> instruction to the kernel, so userland is properly pessimized to support
> all x86's. The other parts of the ifdef properly pessimize modules to
> support all x86's (options don't apply to modules so none of the XXX_CPU's
> is defined).
>=20
> So kernels get the full epsilon of optimizations from turning off i386
> support, while userland doesn't get any (not counting ones from optimizing
> for non-i386 without breaking i386).
>=20
Right. I forgot for the moment that -mcpu isn't the same as -march,
and the latter is only set if CPUTYPE is also set.
Cheers,
--=20
Ruslan Ermilov Sysadmin and DBA,
ru@sunbay.com Sunbay Software AG,
ru@FreeBSD.org FreeBSD committer,
+380.652.512.251 Simferopol, Ukraine
http://www.FreeBSD.org The Power To Serve
http://www.oracle.com Enabling The Information Age
--u3/rZRmxL6MmkK24
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)
iD8DBQE+ADjFUkv4P6juNwoRAgz1AJkBTD/SsWzy3GOwFadwCo/9VBWymgCghPeG
tjxf/BS6naGAgRzAVdFU2pM=
=BqzR
-----END PGP SIGNATURE-----
--u3/rZRmxL6MmkK24--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021218085845.GA42792>
