lkml.org 
[lkml]   [2005]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Noob question. Why is the for-pentium4 kernel built with -march=i686 ?
From
Date
On Tue, 2005-07-19 at 19:52 +0200, Jan Engelhardt wrote:
> >Hello,
> >
> >If I set the CPU type to be amd64 in kernel config, the kernel is built
> >with -march=k8. If I set it to be k6, the kernel is built with
> >-march=k6. If I set the CPU type to be Pentium4, the kernel is built
> >with -march=i686 -mtune=pentium4. Why is not the for-P4 kernel built
> >with -march=pentium4 ?
> >I tried building the kernel with -march=pentium4 for the sake of
> >experiment and got no ill effects.
>
> -march= specifies the instruction set, -mcpu= / -mtune= the tuning factor.
> Maybe it is that the instruction set is the same on i686 and
> pentium4. cmov for example is not present in k6, and k8 is something
> completely different at all.
>
>
> Jan Engelhardt

-march implies -mtune and also implies thing like -msse2 for the
instruction set where applicable.
I think -march=pentium4 is equivalent to -mmmx -msse -msse2
-mtune=pentium4 ( if I have not fogotten anything ).
Pentium4 supports things like sse2 and mmx which AFAIK plain i686 does
not. I first thought that maybe the kernel was destabilized by such
optimizations, but k8 has all of them and more ( sse3 ).
So, if it is ok to build the k8 kernel with -march=k8 why is it not ok
to built the p4 kernel with -march=pentium4 ?
I may be wrong, but any way I think of it it looks like a performance
hit to build a p4 kernel with -march=i686.

Ivan Yosifov.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-07-19 20:39    [W:0.057 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site