Fix ARM and ARM64 build errors.
This commit is contained in:
parent
3f2d9ecf87
commit
a73081f0bd
4 changed files with 12 additions and 12 deletions
|
|
@ -77,7 +77,7 @@ static void build_load_routine(codeblock_t *block, int size, int is_float)
|
|||
MOV R1, #0
|
||||
MOV PC, LR
|
||||
* STR LR, [SP, -4]!
|
||||
BL readmemb386l
|
||||
BL readmembl
|
||||
LDRB R1, cpu_state.abrt
|
||||
LDR PC, [SP], #4
|
||||
*/
|
||||
|
|
@ -116,7 +116,7 @@ static void build_load_routine(codeblock_t *block, int size, int is_float)
|
|||
*misaligned_offset |= ((((uintptr_t)&block_write_data[block_pos] - (uintptr_t)misaligned_offset) - 8) & 0x3fffffc) >> 2;
|
||||
host_arm_STR_IMM_WB(block, REG_LR, REG_HOST_SP, -4);
|
||||
if (size == 1)
|
||||
host_arm_BL(block, (uintptr_t)readmemb386l);
|
||||
host_arm_BL(block, (uintptr_t)readmembl);
|
||||
else if (size == 2)
|
||||
host_arm_BL(block, (uintptr_t)readmemwl);
|
||||
else if (size == 4)
|
||||
|
|
@ -149,7 +149,7 @@ static void build_store_routine(codeblock_t *block, int size, int is_float)
|
|||
MOV R1, #0
|
||||
MOV PC, LR
|
||||
* STR LR, [SP, -4]!
|
||||
BL readmemb386l
|
||||
BL readmembl
|
||||
LDRB R1, cpu_state.abrt
|
||||
LDR PC, [SP], #4
|
||||
*/
|
||||
|
|
@ -192,7 +192,7 @@ static void build_store_routine(codeblock_t *block, int size, int is_float)
|
|||
else if (size == 8)
|
||||
host_arm_VMOV_64_D(block, REG_R2, REG_R3, REG_D_TEMP);
|
||||
if (size == 1)
|
||||
host_arm_BL(block, (uintptr_t)writememb386l);
|
||||
host_arm_BL(block, (uintptr_t)writemembl);
|
||||
else if (size == 2)
|
||||
host_arm_BL(block, (uintptr_t)writememwl);
|
||||
else if (size == 4)
|
||||
|
|
@ -304,7 +304,7 @@ void codegen_backend_init()
|
|||
block_current = 0;
|
||||
block_pos = 0;
|
||||
block = &codeblock[block_current];
|
||||
block->head_mem_block = codegen_allocator_allocate(NULL);
|
||||
block->head_mem_block = codegen_allocator_allocate(NULL, block_current);
|
||||
block->data = codeblock_allocator_get_ptr(block->head_mem_block);
|
||||
block_write_data = block->data;
|
||||
build_loadstore_routines(&codeblock[block_current]);
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ static void build_load_routine(codeblock_t *block, int size, int is_float)
|
|||
MOV W1, #0
|
||||
RET
|
||||
* STP X29, X30, [SP, #-16]
|
||||
BL readmemb386l
|
||||
BL readmembl
|
||||
LDRB R1, cpu_state.abrt
|
||||
LDP X29, X30, [SP, #-16]
|
||||
RET
|
||||
|
|
@ -116,7 +116,7 @@ static void build_load_routine(codeblock_t *block, int size, int is_float)
|
|||
host_arm64_branch_set_offset(misaligned_offset, &block_write_data[block_pos]);
|
||||
host_arm64_STP_PREIDX_X(block, REG_X29, REG_X30, REG_SP, -16);
|
||||
if (size == 1)
|
||||
host_arm64_call(block, (uintptr_t)readmemb386l);
|
||||
host_arm64_call(block, (uintptr_t)readmembl);
|
||||
else if (size == 2)
|
||||
host_arm64_call(block, (uintptr_t)readmemwl);
|
||||
else if (size == 4)
|
||||
|
|
@ -151,7 +151,7 @@ static void build_store_routine(codeblock_t *block, int size, int is_float)
|
|||
MOV W1, #0
|
||||
RET
|
||||
* STP X29, X30, [SP, #-16]
|
||||
BL writememb386l
|
||||
BL writemembl
|
||||
LDRB R1, cpu_state.abrt
|
||||
LDP X29, X30, [SP, #-16]
|
||||
RET
|
||||
|
|
@ -189,7 +189,7 @@ static void build_store_routine(codeblock_t *block, int size, int is_float)
|
|||
else if (size == 8)
|
||||
host_arm64_FMOV_Q_D(block, REG_X1, REG_V_TEMP);
|
||||
if (size == 1)
|
||||
host_arm64_call(block, (uintptr_t)writememb386l);
|
||||
host_arm64_call(block, (uintptr_t)writemembl);
|
||||
else if (size == 2)
|
||||
host_arm64_call(block, (uintptr_t)writememwl);
|
||||
else if (size == 4)
|
||||
|
|
@ -301,7 +301,7 @@ void codegen_backend_init()
|
|||
block_current = 0;
|
||||
block_pos = 0;
|
||||
block = &codeblock[block_current];
|
||||
block->head_mem_block = codegen_allocator_allocate(NULL);
|
||||
block->head_mem_block = codegen_allocator_allocate(NULL, block_current);
|
||||
block->data = codeblock_allocator_get_ptr(block->head_mem_block);
|
||||
block_write_data = block->data;
|
||||
build_loadstore_routines(block);
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@ static inline void codegen_addlong(codeblock_t *block, uint32_t val)
|
|||
static void codegen_allocate_new_block(codeblock_t *block)
|
||||
{
|
||||
/*Current block is full. Allocate a new block*/
|
||||
struct mem_block_t *new_block = codegen_allocator_allocate(block->head_mem_block);
|
||||
struct mem_block_t *new_block = codegen_allocator_allocate(block->head_mem_block, get_block_nr(block));
|
||||
uint8_t *new_ptr = codeblock_allocator_get_ptr(new_block);
|
||||
uint32_t offset = (uintptr_t)new_ptr - (uintptr_t)&block_write_data[block_pos];
|
||||
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ static inline void codegen_addlong(codeblock_t *block, uint32_t val)
|
|||
static void codegen_allocate_new_block(codeblock_t *block)
|
||||
{
|
||||
/*Current block is full. Allocate a new block*/
|
||||
struct mem_block_t *new_block = codegen_allocator_allocate(block->head_mem_block);
|
||||
struct mem_block_t *new_block = codegen_allocator_allocate(block->head_mem_block, get_block_nr(block));
|
||||
uint8_t *new_ptr = codeblock_allocator_get_ptr(new_block);
|
||||
uint32_t offset = ((uintptr_t)new_ptr - (uintptr_t)&block_write_data[block_pos]) - 8;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue