Mi piacerebbe sapere come scrivere tabelle di salto efficienti per processori x64, in C, C++ o assembly. L'input è noto in anticipo, ma impossibile da prevedere algoritmicamente. Supponendo che io possa guardare avanti quanto voglio nel flusso di input, c'è un modo in cui posso dire dinamicamente alla CPU quale indirizzo il prossimo ramo sta per andare?Come posso suggerire dinamicamente una diramazione su una CPU x64?
In sostanza, mi piacerebbe aggiornare a livello di codice il buffer di destinazione Branch. Ma mi accontenterei di qualsiasi cosa che mi permetta di evitare di sciacquare la pipeline nei casi in cui il programmatore sa in anticipo dove sta andando il prossimo ramo, osservando i dati ma il processore non può determinare questo dai pattern del passato.
Realizzando questa è una domanda molto specifica e che sono suscettibili di essere riusciti a trasmettere in modo corretto, qui ci sono un paio di fraseggi alterni:
C'è un 64 equivalente a hbr
Suggerimento per la filiale sul processore Cell ?
Ha mai aiutato a spostare un assieme cmp
prima del suo ramo condizionale come ha fatto con Itanium?
L'obiettivo previsto di un salto indiretto si basa sempre su un valore di registro anziché sull'ultimo indirizzo utilizzato?
Grazie!