Sto scrivendo un semplice compilatore. Ho scritto lexer e parser e ora genera codice assembly da un determinato codice. Ora ho bisogno di scrivere un assemblatore che generi codice macchina. Ma il problema è che voglio rendere portatile il mio compilatore. dovrebbe funzionare almeno sulle principali architetture. Un modo per farlo è scrivere diversi assemblatori per ogni architettura, ma sembra troppo difficile e richiede molto tempo.
Esiste un "minimo comune denominatore" per la maggior parte delle architetture con cui posso lavorare per rendere portatile il mio compilatore? Ad esempio, è solo necessario "scrivere un back-end che produce LLVM IR anziché assembly"?