Come mostra this question, con g ++, posso fare g++ -S -masm=intel test.cpp
. Inoltre, con clang, posso fare clang++ -S test.cpp
, ma -masm=intel
non è supportato da clang (warning argument unused during compilation: -masm=intel
). Come posso ottenere la sintassi Intel con clang?Come generare codice assembly con clang nella sintassi Intel?
risposta
Questo dovrebbe ottenere clang per emettere codice assembly con la sintassi Intel:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
È possibile utilizzare -mllvm <arg>
a passare in opzioni LLVM dalla riga di comando clang. Purtroppo questa opzione non sembra essere ben documentata e quindi l'ho trovata solo sfogliando le mailing list di llvm.
Come noted below by @thakis, questo non è più necessario nelle versioni più recenti di Clang (3.5+) come ora supporta la sintassi -masm=intel
.
Presumendo che Clang emetta normali codici byte LLVM, è possibile utilizzare llc per compilare il linguaggio assembly e utilizzare l'opzione --x86-asm-syntax=intel
per ottenere il risultato nella sintassi Intel.
Grazie ancora. Ho anche scoperto 'llc' per impostazione predefinita delle ottimizzazioni su (-02) mentre gcc e clang non usano ottimizzazioni (-O0) per impostazione predefinita (mi ci è voluto un tempo per capire perché l'output dell'assembly era diverso). –
Come clang r208683 (clang 3.5+), comprende -masm=intel
. Quindi se il tuo clang è abbastanza nuovo, puoi semplicemente usarlo.
- 1. Compila intel assembly con gcc/mingw
- 2. Posso usare la sintassi Intel dell'assembly x86 con GCC?
- 3. evidenziazione sintassi vim assembly
- 4. Caricamento codice su GPU (Intel Sandy Bridge)
- 5. Come generare un'intestazione nella sorgente con cmake?
- 6. Ridondanza codice assembly in codice C ottimizzato
- 7. Copertura del codice in clang
- 8. Come rendere cgdb show codice assembly?
- 9. Codice assembly in C++
- 10. C# Come generare codice dal codice
- 11. Analizzare codice assembly
- 12. Estensione file codice assembly
- 13. Come incorporare il codice assembly in php?
- 14. Come posso vedere albero di analisi, codice intermedio, codice di ottimizzazione e codice assembly durante COMPILATION?
- 15. Codice di analisi con errori di sintassi
- 16. Come generare 'codice java con annotazioni' dal modello emf
- 17. Strumentazione dinamica con Clang
- 18. Decodifica e comprensione codice assembly
- 19. Differenze nella sintassi NSDateComponents?
- 20. Determina CPUID come elencato nella Guida Intel Intrinsics
- 21. Come estendere Clang con un parser aggiuntivo?
- 22. Ottenere il codice sorgente di clang AST
- 23. Come programmare Intel Xeon Phi con C#?
- 24. Come posso generare un grafico del flusso di dati con clang o altri strumenti?
- 25. Esiste un riferimento al linguaggio assembly completo x86 che utilizza la sintassi AT & T?
- 26. codice assembly della funzione c
- 27. Codice di Eclipse con evidenziazione della sintassi
- 28. Stampa del codice con evidenziazione della sintassi?
- 29. Codice assembly per sin (x)
- 30. Come trovare perdite di memoria con Clang
@JerryCoffin: Grazie, ho generato un file '.bc' con clang e poi ho riprodotto con successo l'assembly Intel con' llc'. La mente sta facendo una risposta? –
Oh, immagino che non sia un problema. –