So, we have the code to debug what is happening:
#define x86_emit_byte(value) \\
*translation_ptr = value; \\
translation_ptr++ \\
void function_cc x86_emit_translation_exit(p_u8 *p_translation_ptr)
{
u8* translation_ptr = *p_translation_ptr;
x86_emit_byte(0x90);
.... and so 100 rows...
x86_emit_byte(0x90);
*p_translation_ptr = translation_ptr;
}
It's a piece of a dynamic translator, or precompiler. Initially there should amicitia code size is about 100 bytes, for the test imagine that this is all nop-s. So. If you hemitite these 100 bytes so vlob, the translator stops working, no crashes, just stops. For unknown reasons. If this code is replaced by the cycle emitting even kilobyte nop-s — all wonderful. Ie it depends on the size of the compiler and not the code that he emetic. Objectice translator is relatively small, up to a meter 10 Grand. I have 2 days working on this, but nothing is impossible. Initially, the translator is not mine, I edit, especially because many can not tell. Because if something important is not said, ask of course. What bothers me is that is one feature which causes this piece. It is the size of objectice about 0x70000 bytes (o_o?). Do not know on what to sin, because the translator does not fall. It just stops to work properly.