По-видимому, некоторые предсказатели ветвлений процессоров AMD плохо себя ведут, когда цель или провал ветки является инструкцией ret
, и добавление префикса rep
позволяет избежать этого.
Что касается значения rep ret
, эта инструкция не упоминается в Справочном наборе инструкций Intel , а документация по rep
не очень полезна:
Поведение префикс REP не определен при использовании с нестроковыми инструкциями.
blockquote>Это означает, что по крайней мере,
rep
не должен вести себя повторяющимся образом.Теперь из набора инструкций AMD (1.2.6 Repeat Prefixes):
Префиксы должны использоваться только с такими строковыми инструкциями.
Как правило, префиксы повтора должны использоваться только в строковых инструкциях, перечисленных в таблицах 1-6, 1-7 и 1-8 выше [которые не содержат ret].
blockquote>Так что это действительно похоже на неопределенное поведение, но можно предположить, что на практике e, процессоры просто игнорируют префиксы
rep
в инструкцияхret
.