[devel] i586 -> i686

Alexey Tourbin at на altlinux.ru
Пн Фев 28 23:45:39 UTC 2011


On Tue, Mar 01, 2011 at 12:49:15AM +0300, Sergey Y. Afonin wrote:
> On Tuesday 01 March 2011, Alexey Tourbin wrote:
> 
> > Типичными конфигурациями были P200 + 32M (i586) и Celeron 300A + 64M (i686).
> 
> Где-то в это время быстрой птицей промелькнул AMD K6-II. Он, вроде бы,
> не i686. А вот 64M там не редкость уже была. Как и NVidia/AGP, например
> на материнке Iwill XA100 и прочих похожих. Их продано было, очевидно,
> поменьше, чем Intel, но они были. 

Да, K6 пролетает, в нём нету cmov.
http://forums.fedoraforum.org/showthread.php?t=249126

С точки зрения кодогенератора cmov - это единственное отличие
между i586 и более старшими архитектурами.  Остальные отличия
уже идут по линии SMID-инструкций (MMX, SSE).

gcc-4*/gcc/config/i386/i386.c:
  1634  /* Feature tests against the various architecture variations, used to create
  1635     ix86_arch_features based on the processor mask.  */
  1636  static unsigned int initial_ix86_arch_features[X86_ARCH_LAST] = {
  1637    /* X86_ARCH_CMOVE: Conditional move was added for pentiumpro.  */
  1638    ~(m_386 | m_486 | m_PENT | m_K6),

Здесь видно, что K6 находится в компании с младшими братьями.

  1639
  1640    /* X86_ARCH_CMPXCHG: Compare and exchange was added for 80486.  */
  1641    ~m_386,
  1642
  1643    /* X86_ARCH_CMPXCHG8B: Compare and exchange 8 bytes was added for pentium. */
  1644    ~(m_386 | m_486),
  1645
  1646    /* X86_ARCH_XADD: Exchange and add was added for 80486.  */
  1647    ~m_386,
  1648
  1649    /* X86_ARCH_BSWAP: Byteswap was added for 80486.  */
  1650    ~m_386,
  1651  };


Подробная информация о списке рассылки Devel