From 5bcdf4d063e35618dfd6b37924bc4e34e2b8bce2 Mon Sep 17 00:00:00 2001 From: wheremyfoodat Date: Wed, 21 Sep 2022 00:33:32 +0300 Subject: [PATCH] [Memory] Add read16 (how did I never notice this was missing?) --- src/core/memory.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/memory.cpp b/src/core/memory.cpp index d225519f..75978eb6 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp @@ -63,7 +63,16 @@ u8 Memory::read8(u32 vaddr) { } u16 Memory::read16(u32 vaddr) { - Helpers::panic("Unimplemented 16-bit read, addr: %08X", vaddr); + const u32 page = vaddr >> pageShift; + const u32 offset = vaddr & pageMask; + + uintptr_t pointer = readTable[page]; + if (pointer != 0) [[likely]] { + return *(u16*)(pointer + offset); + } + else { + Helpers::panic("Unimplemented 16-bit read, addr: %08X", vaddr); + } } u32 Memory::read32(u32 vaddr) {