Чтобы понять, почему Bulldozer был подпаркой, я смотрел превосходную книгу микроархитектуры Agner Fog, в ней на стр. 178 под бульдозером есть этот параграф.
Инструкции с тремя префиксами могут быть декодированы за один такт. Существует очень большой штраф за инструкции с более чем тремя префиксы. Инструкции с 4-7 префиксами занимают 14-15 тактов для декодирования. Инструкции с 8-11 префиксами занимают 20-22 тактовых цикла дополнительно, а инструкции с 12-14 префиксами занимают 27-28 тактов дополнительно. Поэтому не рекомендуется делать инструкции NOP дольше с более чем тремя префиксами. Счет префикса для этого правила включает размер операнда, размер адреса, сегмент, повтор, блокировка, REX и XOP префиксы. Префикс VEX с тремя байтами считается одним, а двухбайтный Префикс VEX не учитывается. Коды выхода (0F, 0F38, 0F3A) не учитываются.
Когда я искал префиксы, я был поражен очень техническими определениями далеко за пределами моих способностей. Или, предположил, что они ограничены до 4 на инструкцию, которая противоречит вышеупомянутому выходу.
Таким образом, может ли кто-нибудь объяснить, что они делают, и почему вы, возможно, захотите сделать ставку до 14+ на инструкцию, а не разбивать ее?