github.ong19th.Citron/src/core/arm
Zephyron cfe437aacf 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>
2025-02-28 17:11:07 +10:00
..
dynarmic build: upgrade fmt and SDL2 2025-02-16 13:38:05 +10:00
nce arm: Improve TLB implementation and fault handling in NCE 2025-02-28 17:11:07 +10:00
arm_interface.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
arm_interface.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
debug.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
debug.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
exclusive_monitor.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
exclusive_monitor.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
symbols.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
symbols.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00