Hatte einen Code schön mit Assembler "optimiert", mit dem Ergebnis, dass auf modernen CPUs (die arbeiten teilweise schon den/die nächsten Befehl vor)
alles extrem langsamer lief, im Gegensatz zu dem was der Delphi-Compiler produzierte.
Durch ein paar Jumps wurde dieser Cache und das "umsonst" Vorgearbeitete ständig verworfen und an anderer Stelle wieder neu angefangen.
Was du beschreibst, klingt weniger nach einem Problem mit der Instruction Cache Größe sondern nach einem Pipeline Stall, durch z.B. Register Pressure oder Branch Mispredictions.
Kann aber auch durchaus daran liegen, dass besonders oft ausgeführter Code ungünstig über mehrer Cachelines lag.