diff options
author | Zephyron <zephyron@citron-emu.orgq> | 2025-02-28 17:11:07 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.orgq> | 2025-02-28 17:11:07 +1000 |
commit | cfe437aacfa925b172432ee8ec00c6a9ff80626d (patch) | |
tree | 026abf773d232a9b5fde949e95ef97ff1051e197 /src/citron/main.h | |
parent | 9b293c3a98896ea4b7cccfbfbec5ca4038790d6d (diff) |
arm: Improve TLB implementation and fault handling in NCE
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>
Diffstat (limited to 'src/citron/main.h')
0 files changed, 0 insertions, 0 deletions