Documentation/TCG: Difference between revisions
No edit summary |
|||
(One intermediate revision by the same user not shown) | |||
Line 6: | Line 6: | ||
People who wish to port QEMU to emulate a new processor need to be concerned with the frontend. | People who wish to port QEMU to emulate a new processor need to be concerned with the frontend. | ||
== Source Tree Documentation == | |||
A number of documents in the source tree should be helpful to understanding how things go together: | |||
* The {{src|path=tcg/README|description=intro README}} | |||
* Details about {{src|path=docs/devel/tcg.rst|translator internals}} | |||
* Notes on {{src|path=docs/devel/decodetree.rst|description=decodetree}} (used by newer frontends to reduce boilerplate) | |||
* How we approach {{src|path=docs/devel/multi-thread-tcg.txt|description=multithreaded TCG}} | |||
== Other pages on the wiki == | |||
* [[Documentation/TCG/backend-ops|Backend Ops]] | * [[Documentation/TCG/backend-ops|Backend Ops]] | ||
* [[Documentation/TCG/frontend-ops|Frontend Ops]] | * [[Documentation/TCG/frontend-ops|Frontend Ops]] | ||
== Presentations and Other External Sources == | |||
* [https://dl.dropboxusercontent.com/u/8976842/TCG.pdf Slides] and [http://chemnitzer.linux-tage.de/2012/vortraege/1062 recording] of a talk on TCG mechanics | * [https://dl.dropboxusercontent.com/u/8976842/TCG.pdf Slides] and [http://chemnitzer.linux-tage.de/2012/vortraege/1062 recording] of a talk on TCG mechanics | ||
* [http://stackoverflow.com/questions/20675226/qemu-code-flow-instruction-cache-and-tcg StackOverflow answer] showing code flow of a TCG translation | * [http://stackoverflow.com/questions/20675226/qemu-code-flow-instruction-cache-and-tcg StackOverflow answer] showing code flow of a TCG translation | ||
[[Category:Developer documentation]] | [[Category:Developer documentation]] |
Latest revision as of 09:42, 5 November 2019
Tiny Code Generator (TCG)
The Tiny Code Generator (TCG) exists to transform target insns (the processor being emulated) via the TCG frontend to TCG ops which are then transformed into host insns (the processor executing QEMU itself) via the TCG backend.
People who wish to port QEMU to run on a new processor need to be concerned with the backend. There also exists the TCI (TCG Interpreter) effort which provides a backend agnostic interpreter for TCGops.
People who wish to port QEMU to emulate a new processor need to be concerned with the frontend.
Source Tree Documentation
A number of documents in the source tree should be helpful to understanding how things go together:
- The intro README
- Details about docs/devel/tcg.rst
- Notes on decodetree (used by newer frontends to reduce boilerplate)
- How we approach multithreaded TCG
Other pages on the wiki
Presentations and Other External Sources
- Slides and recording of a talk on TCG mechanics
- StackOverflow answer showing code flow of a TCG translation