Почему сложные memcpy / memset superior?

При отладке я часто заходил в рукописная ассемблерная реализация memcpy и memset. Обычно они реализуются с использованием потоковых инструкций, если они доступны, развернутого цикла, оптимизированного выравнивания и т. д. Я также недавно столкнулся с этой «ошибкой» из-за оптимизации memcpy в glibc .

Возникает вопрос: почему производители оборудования (Intel, AMD) не могут оптимизировать конкретный случай

rep stos

и

rep movs

, чтобы их можно было распознать как таковые, и сделать максимально быстрое заполнение и копирование на собственной архитектуре?

22
задан Kieran 13 January 2012 в 23:53
поделиться