Optimize vm::range_lock a bit

Bad conditions led to optimization misses and long-generated code.
This commit is contained in:
Eladash 2022-10-07 07:55:44 +03:00 committed by Ivan
parent 6a36967e6f
commit 750e7b73e3
1 changed files with 1 additions and 1 deletions

View File

@ -50,7 +50,7 @@ namespace vm
// Old-style conditional constexpr
const u32 size = Size ? Size : _size;
if (size <= 4096u && !((begin | size) & (size - 1)) ? !vm::check_addr(begin) : !vm::check_addr(begin, vm::page_readable, size))
if (Size == 1 || (begin % 4096 + size % 4096) / 4096 == 0 ? !vm::check_addr(begin) : !vm::check_addr(begin, vm::page_readable, size))
{
range_lock->release(0);
range_lock_internal(range_lock, begin, _size);