Ported some small fixes from PCem that only apply to the new recompiler.
This commit is contained in:
@@ -1018,7 +1018,7 @@ void host_x86_MOV32_STACK_IMM(codeblock_t *block, int32_t offset, uint32_t imm_d
|
|||||||
codegen_addbyte3(block, 0xc7, 0x04, 0x24); /*MOV [ESP], imm_data*/
|
codegen_addbyte3(block, 0xc7, 0x04, 0x24); /*MOV [ESP], imm_data*/
|
||||||
codegen_addlong(block, imm_data);
|
codegen_addlong(block, imm_data);
|
||||||
}
|
}
|
||||||
else if (offset >= -80 || offset < 0x80)
|
else if (offset >= -0x80 && offset < 0x80)
|
||||||
{
|
{
|
||||||
codegen_alloc_bytes(block, 8);
|
codegen_alloc_bytes(block, 8);
|
||||||
codegen_addbyte4(block, 0xc7, 0x44, 0x24, offset & 0xff); /*MOV offset[ESP], imm_data*/
|
codegen_addbyte4(block, 0xc7, 0x44, 0x24, offset & 0xff); /*MOV offset[ESP], imm_data*/
|
||||||
|
@@ -763,7 +763,7 @@ void host_x86_MOV32_STACK_IMM(codeblock_t *block, int32_t offset, uint32_t imm_d
|
|||||||
codegen_addbyte3(block, 0xc7, 0x04, 0x24); /*MOV [ESP], imm_data*/
|
codegen_addbyte3(block, 0xc7, 0x04, 0x24); /*MOV [ESP], imm_data*/
|
||||||
codegen_addlong(block, imm_data);
|
codegen_addlong(block, imm_data);
|
||||||
}
|
}
|
||||||
else if (offset >= -80 || offset < 0x80)
|
else if (offset >= -0x80 && offset < 0x80)
|
||||||
{
|
{
|
||||||
codegen_alloc_bytes(block, 8);
|
codegen_alloc_bytes(block, 8);
|
||||||
codegen_addbyte4(block, 0xc7, 0x44, 0x24, offset & 0xff); /*MOV offset[ESP], imm_data*/
|
codegen_addbyte4(block, 0xc7, 0x44, 0x24, offset & 0xff); /*MOV offset[ESP], imm_data*/
|
||||||
|
@@ -204,7 +204,7 @@ void host_x86_MOVQ_STACK_OFFSET_XREG(codeblock_t *block, int offset, int src_reg
|
|||||||
codegen_addbyte4(block, 0x66, 0x0f, 0xd6, 0x04 | (src_reg << 3)); /*MOVQ [ESP], src_reg*/
|
codegen_addbyte4(block, 0x66, 0x0f, 0xd6, 0x04 | (src_reg << 3)); /*MOVQ [ESP], src_reg*/
|
||||||
codegen_addbyte(block, 0x24);
|
codegen_addbyte(block, 0x24);
|
||||||
}
|
}
|
||||||
else if (offset >= -80 || offset < 0x80)
|
else if (offset >= -0x80 && offset < 0x80)
|
||||||
{
|
{
|
||||||
codegen_alloc_bytes(block, 6);
|
codegen_alloc_bytes(block, 6);
|
||||||
codegen_addbyte4(block, 0x66, 0x0f, 0xd6, 0x44 | (src_reg << 3)); /*MOVQ offset[ESP], src_reg*/
|
codegen_addbyte4(block, 0x66, 0x0f, 0xd6, 0x44 | (src_reg << 3)); /*MOVQ offset[ESP], src_reg*/
|
||||||
|
@@ -1688,6 +1688,9 @@ mem_log("MEM: reset: new pages=%08lx, pages_sz=%i\n", pages, pages_sz);
|
|||||||
mem_mapping_disable(&ram_remapped_mapping);
|
mem_mapping_disable(&ram_remapped_mapping);
|
||||||
|
|
||||||
mem_a20_init();
|
mem_a20_init();
|
||||||
|
|
||||||
|
purgable_page_list_head = 0;
|
||||||
|
purgeable_page_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user