Sono un principiante nel linguaggio assembly e ho notato che il codice x86 emesso dai compilatori di solito mantiene il puntatore del frame anche in modalità di rilascio / ottimizzato quando potrebbe usare il EBP
registro per qualcos'altro.
Capisco perché il puntatore al frame potrebbe semplificare il debug del codice e potrebbe essere necessario se alloca()
viene chiamato all'interno di una funzione. Tuttavia, x86 ha pochissimi registri e usarne due per contenere la posizione dello stack frame quando uno sarebbe sufficiente non ha senso per me. Perché omettere il frame pointer è considerata una cattiva idea anche nelle build ottimizzate / di rilascio?
alloca
) 3. facilità di implementazione del runtime: gestione delle eccezioni, sandbox, GC