> >>>>>GCC 3.2 still uses CMOVE instructions on -march=i686. > >>>>> > >>>>>On the other hand: > >>>>> {"c3", PROCESSOR_I486, PTA_MMX | PTA_3DNOW}, > >>>>>GCC disagrees with you that the C3 is an i686.
gcc uses i486 scheduling because that gives best performance The situation is as follows gcc "i686" definition is wrong. The gcc people wont fix it because the 686 definition without cmov is mostly useless anyway. The C3 is a model 6 cpu, the kernel reports it correctly and wont change Non Debian packaging systems know how to handle this and regard cmov as a mandatory CPU attribute for 686 package install. Ugly but works.