Available Backends
Apple Hypervisor
Native hardware-assisted virtualization using Apple’s Hypervisor framework
Dynarmic
Cross-platform ARM64 JIT recompiler with advanced debugging support
Apple Hypervisor Backend
The Apple Hypervisor backend leverages macOS’s native virtualization framework to execute ARM64 code directly on Apple Silicon processors.Architecture
The Hypervisor backend creates a virtual machine and vCPU instances for each guest thread:Key Features
Native Breakpoint Support
Native Breakpoint Support
The Hypervisor backend supports hardware breakpoints natively through Apple’s debugging infrastructure:This enables efficient debugging without software instrumentation overhead.
Exception Handling
Exception Handling
Custom exception handlers are installed in kernel memory for handling system calls and exceptions:
Memory Management
Memory Management
Direct page table mapping with kernel and user address spaces:
Performance Characteristics
Best Performance: The Hypervisor backend provides the highest performance on Apple Silicon Macs, as it executes ARM64 code natively with minimal overhead.
Dynarmic Backend
Dynarmic is a sophisticated ARM64 JIT (Just-In-Time) recompiler that translates guest ARM64 code to host ARM64 code.Architecture
The Dynarmic backend creates a JIT instance for each thread with optimized code generation:Key Features
Synchronous Single-Step Execution
Synchronous Single-Step Execution
The Dynarmic backend supports single-stepping through code instruction-by-instruction:This is invaluable for debugging and understanding program behavior.
Page Table Integration
Page Table Integration
Direct integration with the guest page table for fast memory access:
Code Cache
Code Cache
Large code cache (128 MiB) for storing compiled code blocks, reducing recompilation overhead.
Exclusive Monitor
Exclusive Monitor
Hardware-accurate exclusive memory access monitoring for proper synchronization primitive emulation.
Performance Characteristics
Debugging Optimized: While slightly slower than the Hypervisor backend, Dynarmic provides superior debugging capabilities with single-step support.
Performance Comparison
Apple Hypervisor
- Speed: Fastest (near-native)
- Compatibility: Apple Silicon only
- Debugging: Hardware breakpoints
- Overhead: Minimal
Dynarmic
- Speed: Fast (JIT compiled)
- Compatibility: Cross-platform
- Debugging: Full single-step support
- Overhead: JIT compilation
When to Use Each Backend
Choose Apple Hypervisor if
- You want maximum performance
- You’re running on Apple Silicon
- You don’t need instruction-level debugging
- You’re playing games (not developing)
CPU Features
Both backends expose their capabilities through theCpuFeatures structure:
src/core/hw/tegra_x1/cpu/cpu.hpp
Configuration
The CPU backend is selected via the configuration file. See the Configuration page for details on how to set thecpu_backend option.