# TCG Emulation

Details about QEMU’s Tiny Code Generator and the infrastructure associated with emulation. You do not need to worry about this if you are only implementing things for HW accelerated hypervisors.

- Translator Internals
  - CPU state optimisations
  - Direct block chaining
  - Self-modifying code and translated code invalidation
  - Exception support
  - MMU emulation
  - Profiling JITted code
- TCG Intermediate Representation
  - Introduction
  - Definitions
  - Basic Blocks
  - Operations
  - Variables
  - Types
  - Helpers
  - Code Optimizations
  - Instruction Reference
  - Backend
  - Recommended coding rules for best performance
- Decodetree Specification
  - Fields
  - Argument Sets
  - Formats
  - Patterns
  - Pattern Groups
- Multi-threaded TCG
  - vCPU Scheduling
  - Shared Data Structures
  - Memory Consistency
- TCG Instruction Counting
  - Core Concepts
- QEMU TCG Plugins
  - Writing plugins
  - Internals
- Plugin API
- Execution Record/Replay
  - Core concepts
  - Virtual devices
  - Replay log format