Add new codegen memory allocator. This allows the recompiler to allocate memory from a central pool as required. This central pool is by default 64 MB on x86, x86-64 and ARMv8, and 32 MB on ARMv7.
The current design does not allow for ARMv8 literal pools, therefore these have been removed.
This commit is contained in:
parent
56a4d5cf83
commit
66fba50e06
26 changed files with 1339 additions and 667 deletions
|
|
@ -9,16 +9,10 @@
|
|||
|
||||
#define HASH(l) ((l) & 0x1ffff)
|
||||
|
||||
/*Hack until better memory management written*/
|
||||
/*#define BLOCK_EXIT_OFFSET 0x7f0*/
|
||||
|
||||
#define BLOCK_GPF_OFFSET 0
|
||||
#define BLOCK_EXIT_OFFSET 32
|
||||
|
||||
#define ARM_LITERAL_POOL_OFFSET 0xf000
|
||||
|
||||
/*#define BLOCK_MAX 1720*/
|
||||
#define BLOCK_MAX 65208
|
||||
#define BLOCK_MAX 0x3c0
|
||||
|
||||
|
||||
void host_arm64_BLR(codeblock_t *block, int addr_reg);
|
||||
|
|
@ -36,7 +30,3 @@ void host_arm64_STRB_IMM_W(codeblock_t *block, int dest_reg, int base_reg, int o
|
|||
|
||||
void host_arm64_call(codeblock_t *block, void *dst_addr);
|
||||
void host_arm64_mov_imm(codeblock_t *block, int reg, uint32_t imm_data);
|
||||
|
||||
void codegen_reset_literal_pool(codeblock_t *block);
|
||||
int add_literal(codeblock_t *block, uint32_t data);
|
||||
int add_literal_q(codeblock_t *block, uint64_t data);
|
||||
|
|
|
|||
Loading…
Reference in a new issue