Skip site navigation (1)Skip section navigation (2)
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>