MCPcopy Create free account
hub / github.com/ZDoom/Raze / AllocJitMemory

Function AllocJitMemory

source/common/scripting/jit/jit_runtime.cpp:47–70  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45}
46
47static void *AllocJitMemory(size_t size)
48{
49 using namespace asmjit;
50
51 if (JitBlockPos + size <= JitBlockSize)
52 {
53 uint8_t *p = JitBlocks[JitBlocks.Size() - 1];
54 p += JitBlockPos;
55 JitBlockPos += size;
56 return p;
57 }
58 else
59 {
60 const size_t bytesToAllocate = max(size_t(1024 * 1024), size);
61 size_t allocatedSize = 0;
62 void *p = OSUtils::allocVirtualMemory(bytesToAllocate, &allocatedSize, OSUtils::kVMWritable | OSUtils::kVMExecutable);
63 if (!p)
64 return nullptr;
65 JitBlocks.Push((uint8_t*)p);
66 JitBlockSize = allocatedSize;
67 JitBlockPos = size;
68 return p;
69 }
70}
71
72#ifdef WIN32
73

Callers 1

AddJitFunctionFunction · 0.85

Calls 2

SizeMethod · 0.45
PushMethod · 0.45

Tested by

no test coverage detected