diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp index 2d8cfb6ed6..f893a41b89 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp @@ -42,12 +42,13 @@ u64 DynarmicCallbacks32::MemoryRead64(u32 vaddr) { std::optional DynarmicCallbacks32::MemoryReadCode(u32 vaddr) { if (!m_memory.IsValidVirtualAddressRange(vaddr, sizeof(u32))) return std::nullopt; - auto const aligned_vaddr = vaddr & ~Core::Memory::YUZU_PAGEMASK; - if (last_code_addr != aligned_vaddr) { - m_memory.ReadBlock(aligned_vaddr, &cached_code_page, sizeof(cached_code_page)); - last_code_addr = aligned_vaddr; - } - return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)]; + return m_memory.Read32(vaddr); + // auto const aligned_vaddr = vaddr & ~Core::Memory::YUZU_PAGEMASK; + // if (last_code_addr != aligned_vaddr) { + // m_memory.ReadBlock(aligned_vaddr, &cached_code_page, sizeof(cached_code_page)); + // last_code_addr = aligned_vaddr; + // } + // return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)]; } void DynarmicCallbacks32::MemoryWrite8(u32 vaddr, u8 value) { diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index f13221be8f..34e1250194 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp @@ -45,13 +45,13 @@ Dynarmic::A64::Vector DynarmicCallbacks64::MemoryRead128(u64 vaddr) { std::optional DynarmicCallbacks64::MemoryReadCode(u64 vaddr) { if (!m_memory.IsValidVirtualAddressRange(vaddr, sizeof(u32))) return std::nullopt; -// return m_memory.Read32(vaddr); - auto const aligned_vaddr = vaddr & ~Core::Memory::YUZU_PAGEMASK; - if (last_code_addr != aligned_vaddr) { - m_memory.ReadBlock(aligned_vaddr, &cached_code_page, sizeof(cached_code_page)); - last_code_addr = aligned_vaddr; - } - return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)]; + return m_memory.Read32(vaddr); + // auto const aligned_vaddr = vaddr & ~Core::Memory::YUZU_PAGEMASK; + // if (last_code_addr != aligned_vaddr) { + // m_memory.ReadBlock(aligned_vaddr, &cached_code_page, sizeof(cached_code_page)); + // last_code_addr = aligned_vaddr; + // } + // return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)]; } void DynarmicCallbacks64::MemoryWrite8(u64 vaddr, u8 value) { diff --git a/src/core/hle/service/jit/jit_context.cpp b/src/core/hle/service/jit/jit_context.cpp index 447a28e9e7..88ce676961 100644 --- a/src/core/hle/service/jit/jit_context.cpp +++ b/src/core/hle/service/jit/jit_context.cpp @@ -47,15 +47,15 @@ public: : memory{memory_}, local_memory{local_memory_}, mapped_ranges{mapped_ranges_}, parent{parent_} {} - std::optional MemoryReadCode(VAddr vaddr) override { - static_assert(Core::Memory::YUZU_PAGESIZE == Dynarmic::CODE_PAGE_SIZE); - auto const aligned_vaddr = vaddr & ~Core::Memory::YUZU_PAGEMASK; - if (last_code_addr != aligned_vaddr) { - cached_code_page = ReadMemory(aligned_vaddr); - last_code_addr = aligned_vaddr; - } - return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)]; - } + // std::optional MemoryReadCode(VAddr vaddr) override { + // static_assert(Core::Memory::YUZU_PAGESIZE == Dynarmic::CODE_PAGE_SIZE); + // auto const aligned_vaddr = vaddr & ~Core::Memory::YUZU_PAGEMASK; + // if (last_code_addr != aligned_vaddr) { + // cached_code_page = ReadMemory(aligned_vaddr); + // last_code_addr = aligned_vaddr; + // } + // return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)]; + // } u8 MemoryRead8(u64 vaddr) override { return ReadMemory(vaddr); }