summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-07-08 16:44:33 +0200
committerGitHub <noreply@github.com>2020-07-08 16:44:33 +0200
commit2a87ddcce28d11f5aa58f524108caadfaefe6ae8 (patch)
tree9a655d4e1295626da82272177be9f23ef05aba6c
parentMerge pull request #4270 from MerryMage/rm-pragma-once (diff)
parentmemory: Set page-table pointers before setting attribute = Memory (diff)
downloadyuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.tar
yuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.tar.gz
yuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.tar.bz2
yuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.tar.lz
yuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.tar.xz
yuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.tar.zst
yuzu-2a87ddcce28d11f5aa58f524108caadfaefe6ae8.zip
-rw-r--r--src/core/memory.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 7def00768..2c5588933 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -548,9 +548,9 @@ struct Memory::Impl {
// longer exist, and we should just leave the pagetable entry blank.
page_type = Common::PageType::Unmapped;
} else {
- page_type = Common::PageType::Memory;
current_page_table->pointers[vaddr >> PAGE_BITS] =
pointer - (vaddr & ~PAGE_MASK);
+ page_type = Common::PageType::Memory;
}
break;
}
@@ -591,9 +591,12 @@ struct Memory::Impl {
base + page_table.pointers.size());
if (!target) {
+ ASSERT_MSG(type != Common::PageType::Memory,
+ "Mapping memory page without a pointer @ {:016x}", base * PAGE_SIZE);
+
while (base != end) {
- page_table.pointers[base] = nullptr;
page_table.attributes[base] = type;
+ page_table.pointers[base] = nullptr;
page_table.backing_addr[base] = 0;
base += 1;