github.ong19th.Citron/src/core
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
..
arm arm: Improve TLB implementation and fault handling in NCE 2025-02-28 17:11:07 +10:00
crypto feat: Make firmware mandatory for title launching 2025-02-28 16:15:10 +10:00
debugger build: upgrade fmt and SDL2 2025-02-16 13:38:05 +10:00
file_sys feat: Make firmware mandatory for title launching 2025-02-28 16:15:10 +10:00
frontend Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
hle network: Improve network interface handling and address resolution 2025-02-17 21:59:15 +10:00
internal_network Remove redundant TranslateIPv4 function 2025-02-19 19:53:35 +10:00
loader feat: Make firmware mandatory for title launching 2025-02-28 16:15:10 +10:00
memory Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
tools Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
CMakeLists.txt Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
constants.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
constants.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
core.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
core.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
core_timing.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
core_timing.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
cpu_manager.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
cpu_manager.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
device_memory.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
device_memory.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
device_memory_manager.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
device_memory_manager.inc Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
gpu_dirty_memory_manager.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
guest_memory.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
hardware_properties.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
memory.cpp memory: Improve debug logging and validation in InvalidateNCE 2025-02-03 16:10:34 +10:00
memory.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
perf_stats.cpp build: upgrade fmt and SDL2 2025-02-16 13:38:05 +10:00
perf_stats.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
precompiled_headers.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
reporter.cpp build: upgrade fmt and SDL2 2025-02-16 13:38:05 +10:00
reporter.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
telemetry_session.cpp Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
telemetry_session.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00