fixed a bug where the JIT initiated the optimized stack top boundary check with a doubly relocated address, causing a rare bug with stack operations
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40806
This commit is contained in:
parent
98bf124013
commit
1a77530c93
@ -80,7 +80,7 @@ jitoffs_t Write_Execute_Function(JitWriter *jit)
|
|||||||
//mov ecx, [eax+<offs>] - copy memsize to temp var
|
//mov ecx, [eax+<offs>] - copy memsize to temp var
|
||||||
//add ecx, ebp - relocate
|
//add ecx, ebp - relocate
|
||||||
//mov [esi+x], ecx - store relocated
|
//mov [esi+x], ecx - store relocated
|
||||||
IA32_Mov_Reg_Rm_Disp8(jit, REG_ECX, REG_EAX, offsetof(sp_context_t, memory));
|
IA32_Mov_Reg_Rm_Disp8(jit, REG_ECX, REG_EAX, offsetof(sp_context_t, mem_size));
|
||||||
IA32_Add_Reg_Rm(jit, AMX_REG_TMP, AMX_REG_DAT, MOD_REG);
|
IA32_Add_Reg_Rm(jit, AMX_REG_TMP, AMX_REG_DAT, MOD_REG);
|
||||||
IA32_Mov_Rm_Reg_Disp8(jit, AMX_REG_INFO, REG_ECX, AMX_INFO_STACKTOP);
|
IA32_Mov_Rm_Reg_Disp8(jit, AMX_REG_INFO, REG_ECX, AMX_INFO_STACKTOP);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user