On 23 November 2012 15:17, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 23 November 2012 15:15, Paolo Bonzini <pbonz...@redhat.com> wrote: >> You should at least test __i686__ too: >> >> $ gcc -m32 -dM -E -x c /dev/null |grep __i >> #define __i686 1 >> #define __i686__ 1 >> #define __i386 1 >> #define __i386__ 1 > > Yuck. I had assumed gcc would define everything from i386 > on up when building for later cores.
...and there's an enormous list of x86 cores too. This bites us already -- if you use '-march=native' to get "best for my cpu" then on a Core2, say, it will define __i386__ and __core2__ but not __i686__, so TCG won't use cmov :-( Anybody got any good ideas for how to say "is this at least a 586/686?" in a way that won't fail for any newly introduced x86 core types? -- PMM