Fix some offset size checks in instruction generation code.
This commit is contained in:
parent
5c8e1aecc2
commit
a140d26315
3 changed files with 3 additions and 3 deletions
|
|
@ -1014,7 +1014,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_addlong(block, imm_data);
|
||||
}
|
||||
else if (offset >= -80 || offset < 0x80)
|
||||
else if (offset >= -0x80 && offset < 0x80)
|
||||
{
|
||||
codegen_alloc_bytes(block, 8);
|
||||
codegen_addbyte4(block, 0xc7, 0x44, 0x24, offset & 0xff); /*MOV offset[ESP], imm_data*/
|
||||
|
|
|
|||
|
|
@ -759,7 +759,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_addlong(block, imm_data);
|
||||
}
|
||||
else if (offset >= -80 || offset < 0x80)
|
||||
else if (offset >= -0x80 && offset < 0x80)
|
||||
{
|
||||
codegen_alloc_bytes(block, 8);
|
||||
codegen_addbyte4(block, 0xc7, 0x44, 0x24, offset & 0xff); /*MOV offset[ESP], imm_data*/
|
||||
|
|
|
|||
|
|
@ -200,7 +200,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_addbyte(block, 0x24);
|
||||
}
|
||||
else if (offset >= -80 || offset < 0x80)
|
||||
else if (offset >= -0x80 && offset < 0x80)
|
||||
{
|
||||
codegen_alloc_bytes(block, 6);
|
||||
codegen_addbyte4(block, 0x66, 0x0f, 0xd6, 0x44 | (src_reg << 3)); /*MOVQ offset[ESP], src_reg*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue