Added ASM code patching when loading
For CNv2 variants with different iterations and memory size.
This commit is contained in:
parent
492449e9fb
commit
8b9d5cff91
19 changed files with 118 additions and 2034 deletions
|
@ -87,3 +87,19 @@ void Mem::release(MemInfo &info)
|
|||
_mm_free(info.memory);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void* Mem::allocate_executable_memory(size_t size)
|
||||
{
|
||||
# if defined(__APPLE__)
|
||||
return mmap(0, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANON, -1, 0);
|
||||
# else
|
||||
return mmap(0, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||||
# endif
|
||||
}
|
||||
|
||||
|
||||
void Mem::FlushInstructionCache(void* p, size_t size)
|
||||
{
|
||||
__builtin___clear_cache(reinterpret_cast<char*>(p), reinterpret_cast<char*>(p) + size);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue