backend/arm64/address_space: Assert that code_cache_size <= 128 MiB

This commit is contained in:
Merry 2022-12-31 16:04:56 +00:00
parent 99df721442
commit 300046b60b
3 changed files with 8 additions and 6 deletions

View file

@ -21,6 +21,8 @@ AddressSpace::AddressSpace(size_t code_cache_size)
, mem(code_cache_size) , mem(code_cache_size)
, code(mem.ptr()) , code(mem.ptr())
, fastmem_manager(exception_handler) { , fastmem_manager(exception_handler) {
ASSERT_MSG(code_cache_size <= 128 * 1024 * 1024, "code_cache_size > 128 MiB not currently supported");
exception_handler.Register(mem, code_cache_size); exception_handler.Register(mem, code_cache_size);
exception_handler.SetFastmemCallback([this](u64 host_pc) { exception_handler.SetFastmemCallback([this](u64 host_pc) {
return FastmemCallback(host_pc); return FastmemCallback(host_pc);

View file

@ -228,9 +228,9 @@ struct UserConfig {
/// in unusual behavior. /// in unusual behavior.
bool always_little_endian = false; bool always_little_endian = false;
// Minimum size is about 8MiB. Maximum size is about 2GiB. Maximum size is limited by // Minimum size is about 8MiB. Maximum size is about 128MiB (arm64 host) or 2GiB (x64 host).
// the maximum length of a x64 jump. // Maximum size is limited by the maximum length of a x86_64 / arm64 jump.
size_t code_cache_size = 256 * 1024 * 1024; // bytes size_t code_cache_size = 128 * 1024 * 1024; // bytes
}; };
} // namespace A32 } // namespace A32

View file

@ -285,9 +285,9 @@ struct UserConfig {
/// AddTicks and GetTicksRemaining are never called, and no cycle counting is done. /// AddTicks and GetTicksRemaining are never called, and no cycle counting is done.
bool enable_cycle_counting = true; bool enable_cycle_counting = true;
// Minimum size is about 8MiB. Maximum size is about 2GiB. Maximum size is limited by // Minimum size is about 8MiB. Maximum size is about 128MiB (arm64 host) or 2GiB (x64 host).
// the maximum length of a x64 jump. // Maximum size is limited by the maximum length of a x86_64 / arm64 jump.
size_t code_cache_size = 256 * 1024 * 1024; // bytes size_t code_cache_size = 128 * 1024 * 1024; // bytes
}; };
} // namespace A64 } // namespace A64