Move dynarec code memory out of codeblock structure.

This commit is contained in:
SarahW 2018-11-28 18:43:40 +00:00
commit d63176e472
8 changed files with 51 additions and 26 deletions

View file

@ -276,17 +276,21 @@ void codegen_backend_init()
#endif
#if defined WIN32 || defined _WIN32 || defined _WIN32
codeblock = VirtualAlloc(NULL, (BLOCK_SIZE+1) * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
codeblock_data = VirtualAlloc(NULL, (BLOCK_SIZE+1) * BLOCK_DATA_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
#else
codeblock = malloc((BLOCK_SIZE+1) * sizeof(codeblock_t));
codeblock_data = malloc((BLOCK_SIZE+1) * BLOCK_DATA_SIZE);
#endif
codeblock = malloc((BLOCK_SIZE+1) * sizeof(codeblock_t));
codeblock_hash = malloc(HASH_SIZE * sizeof(codeblock_t *));
memset(codeblock, 0, (BLOCK_SIZE+1) * sizeof(codeblock_t));
memset(codeblock_hash, 0, HASH_SIZE * sizeof(codeblock_t *));
for (c = 0; c < BLOCK_SIZE; c++)
for (c = 0; c < BLOCK_SIZE+1; c++)
{
codeblock[c].data = &codeblock_data[c * BLOCK_DATA_SIZE];
codeblock[c].pc = BLOCK_PC_INVALID;
}
#if defined(__linux__) || defined(__APPLE__)
start = (void *)((long)codeblock & pagemask);