Intel wiele nielogicznych rzeczy pisze w swoich dokumentach, często też niepotwierdzonych w praktyce, więc logikę "bo to powiedział intel" zachowaj dla siebie.
Tylko jeśli czytasz manuale na wyrywki.
A może łatwiej jednak zastosować krótki skok bezwarunkowy? I kto stosuje takie nopy? Głupoty kolego pierniczysz bo kompilatory nigdy nie wyrównują "specjalnymi nopami" każdej instrukcji do 16 bajtów.
Wyrównywanie ma sens jedynie przy wielokrotnie wykonywanych skokach, np. początki iteracji pętli, procesor musi mieć czym "nakarmić" dekodery jak najmniejszym kosztem. Zastosowanie skoków bezwarunkowych nie ma najmniejszego sensu, wymaga przynajmniej częściowego opróżnienia potoków, co cholernie nieciekawie wpływa na wydajność, wprowadza opóźnienia, których nie wnoszą nopy.
A mi się wydaje że jednak zwykłe nopy byłyby szybsze po procesor jest do nich bardziej przyzwyczajony już o krótkich jumpach w obrębie tej samej/następnej linii cache nie mówiąc.
Misiom zamelduj, szersze formy nopów powstały właśnie po to żeby unikać wyrównywania normalnymi (wolniejszymi) instrukcjami, czy wręcz katastrofalnie wolnymi skokami.
Krótko mówiąc: To że instrukcja ma do 15 bajtów nijak ma się do jej alignowania (zwłaszcza że jest bardzo mało instrukcji 15 bajtowych, a gdyby nie ograniczenie to dałoby się dać więcej np. 16 bajtów z sensowną instrukcją [o jak ładnie wyrównane]. To jest po prostu ograniczenie wczesnych procesorów zachowane do dziś).
Doskonale widać, że nie masz zielonego pojęcia o temacie, nie legalnych instrukcji mających 15 bajtów, wszystkie są krótsze. Dekodery obsługują mimo wszystko nadmiarowe prefiksy, łącznie do 15 bajtów instrukcji, jak najbardziej ma to przełożenie na cache i wyrównanie, procesor po skoku powinien móc przynajmniej częściowo zapełnić potoki bez dodatkowego przestoju, skoro dekoder łapie do 15 bajtów to do ilu musisz wyrównać lokalizację skoku żeby zminimalizować ilość fetchowania do cache'u?