eden/src
simply0001 54046ac60e
[video_core/macro] check HLE hashes before compiling (#4236)
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Known HLE macros are identified by a hash, but MacroEngine compiled them first and and afterwards it threw the compiled program away when the hash matched. This fix makes it so it checks the hash first and caches the HLE implementation directly, so it only compiles when the hash is unknown or if HLE is disabled.

Cached macros were also constantly checking the hash again and walking through each `std::get_if` until their variant matched. So I dispatched them through `std::visit` instead, and keep one resolved code span for hashing, compiling, and dumping so mid-method uploads use the right range.

Continues the macro hot path work from [#4067](https://git.eden-emu.dev/eden-emu/eden/pulls/4067)

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4236
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
2026-07-30 06:25:43 +02:00
..
android [dist, android] Update translations from Transifex for Jul 25 (#4227) 2026-07-25 16:23:33 +02:00
audio_core [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
common [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
core [core/hle/services/am] nuke ButtonPoller and Mouse thread (#4229) 2026-07-26 05:11:03 +02:00
dedicated_room [common] remove DetachedTasks object usage (#4096) 2026-07-09 03:46:06 +02:00
dynarmic [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
frontend_common [qt] fix various crashes due to invalid/corrupted/outdated settings (#4070) 2026-06-14 20:48:24 +02:00
hid_core [msvc] fix error with new <T>bitfields (#4196) 2026-07-13 21:12:13 +02:00
input_common [core/hle/services/am] nuke ButtonPoller and Mouse thread (#4229) 2026-07-26 05:11:03 +02:00
network [common] unify std::random_device (#3801) 2026-03-31 20:12:41 +02:00
qt_common [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
shader_recompiler [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
tests [tests] Require backing base pointer to be nonnull for HostMemory tests (#4138) 2026-06-28 08:01:41 +02:00
video_core [video_core/macro] check HLE hashes before compiling (#4236) 2026-07-30 06:25:43 +02:00
web_service [common] remove DetachedTasks object usage (#4096) 2026-07-09 03:46:06 +02:00
yuzu [core/hle/services/am] nuke ButtonPoller and Mouse thread (#4229) 2026-07-26 05:11:03 +02:00
yuzu_cmd [core/hle/services/am] nuke ButtonPoller and Mouse thread (#4229) 2026-07-26 05:11:03 +02:00
yuzu_room_standalone [cmake] add a `YUZU_STATIC_ROOM` option (#3411) 2026-01-28 23:54:49 +01:00
.clang-format chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
CMakeLists.txt [dynarmic] bootstrap loongarch64 host build (#4015) 2026-05-30 01:42:23 +02:00
dep_hashes.h.in [cmake, frontend] feat: CPMUtil + dependency viewer (#238) 2025-08-11 22:27:29 +02:00