On Tue, Mar 16, 2010 at 1:14 PM, Paolo Carlini <paolo.carl...@oracle.com> wrote: > On 03/16/2010 10:08 PM, H.J. Lu wrote: >> I don't think it is a good idea to change the meaning of the macros years >>> after they have been introduced. >>> You could add a different macro if you want. >>> Why should be __i686 special? i686 does have __i586 features too, should it >>> define also __i586, __i486? Should __core2 define __pentium4? Etc., etc. >>> >>> >> I don't think we should add those at all. >> > About i586 & co, I see now that you are right. > > To recapitulate my point, it just seemed strange to me, that, before and > after the recent changes, __i386 is defined, whereas __i686 is defined > only if I pass -march=i686. On the other hand, after the recent changes, > which essentially change the default subtarget to -march=i686, __i686 is > not defined by default. >
That is not true. The new -m32 default ISA on x86-64 is i686 + MMX + SSE + SSE2. It is Pentium 4, not i686. For historical reason, we define __k8 instead of __pentium4. -- H.J.