summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorMarkus Wick <markus@selfnet.de>2021-05-29 09:24:09 +0200
committerMarkus Wick <markus@selfnet.de>2021-05-29 09:28:26 +0200
commit42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead (patch)
tree4fefc42bc8c52930851ddb783dae2b7ddf3fbbe3 /src/common
parentcore/arm_interface: Improve the performance of memory fallbacks. (diff)
downloadyuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.tar
yuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.tar.gz
yuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.tar.bz2
yuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.tar.lz
yuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.tar.xz
yuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.tar.zst
yuzu-42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead.zip
Diffstat (limited to 'src/common')
-rw-r--r--src/common/page_table.cpp1
-rw-r--r--src/common/page_table.h6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/common/page_table.cpp b/src/common/page_table.cpp
index 8fd8620fd..9fffd816f 100644
--- a/src/common/page_table.cpp
+++ b/src/common/page_table.cpp
@@ -14,6 +14,7 @@ void PageTable::Resize(size_t address_space_width_in_bits, size_t page_size_in_b
const size_t num_page_table_entries{1ULL << (address_space_width_in_bits - page_size_in_bits)};
pointers.resize(num_page_table_entries);
backing_addr.resize(num_page_table_entries);
+ current_address_space_width_in_bits = address_space_width_in_bits;
}
} // namespace Common
diff --git a/src/common/page_table.h b/src/common/page_table.h
index 61c5552e0..e92b66b2b 100644
--- a/src/common/page_table.h
+++ b/src/common/page_table.h
@@ -98,6 +98,10 @@ struct PageTable {
*/
void Resize(size_t address_space_width_in_bits, size_t page_size_in_bits);
+ size_t GetAddressSpaceBits() const {
+ return current_address_space_width_in_bits;
+ }
+
/**
* Vector of memory pointers backing each page. An entry can only be non-null if the
* corresponding attribute element is of type `Memory`.
@@ -105,6 +109,8 @@ struct PageTable {
VirtualBuffer<PageInfo> pointers;
VirtualBuffer<u64> backing_addr;
+
+ size_t current_address_space_width_in_bits;
};
} // namespace Common