mirror of
https://github.com/ong19th/Citron.git
synced 2025-12-13 01:36:56 +00:00
This commit enhances the Translation Lookaside Buffer (TLB) implementation in the ARM Native Code Execution (NCE) component to increase stability, particularly on Android devices. The changes prioritize robustness and error recovery over performance optimizations. Key improvements: - Replace set-associative TLB with a simpler linear search implementation - Implement a basic LRU replacement policy for TLB entries - Add validation checks for memory addresses before TLB insertion - Ensure proper page alignment for guest and host addresses - Enhance alignment fault handling with instruction skipping as fallback - Add comprehensive debug logging for memory access errors - Improve error recovery in guest memory access scenarios These changes should significantly reduce crashes during emulation on Android devices by gracefully handling memory access edge cases that previously resulted in hard crashes. Co-Authored-By: Camille LaVey <camillelavey@citron-emu.org> Signed-off-by: Zephyron <zephyron@citron-emu.org> |
||
|---|---|---|
| .. | ||
| dynarmic | ||
| nce | ||
| arm_interface.cpp | ||
| arm_interface.h | ||
| debug.cpp | ||
| debug.h | ||
| exclusive_monitor.cpp | ||
| exclusive_monitor.h | ||
| symbols.cpp | ||
| symbols.h | ||