On 7/6/22 10:50, Jinoh Kang (@iamahuman) wrote:
Jinoh Kang (@iamahuman) commented about dlls/ntdll/tests/large_int.c:
static void test_builtins(void) { #ifdef __i386__ + void *code_mem; ULONGLONG u; LONGLONG l;
+ static const BYTE call_shift_code[] = + { + 0x31, 0xc0, /* xorl %eax,%eax */ + 0x31, 0xd2, /* xorl %edx,%edx */ + 0x31, 0xc9, /* xorl %ecx,%ecx */ + 0x87, 0x44, 0x24, 0x08, /* xchgl 8(%esp),%eax */ + 0x87, 0x54, 0x24, 0x0c, /* xchgl 12(%esp),%edx */ + 0x87, 0x4c, 0x24, 0x10, /* xchgl 16(%esp),%ecx */ + 0xff, 0x64, 0x24, 0x04, /* jmp *4(%esp) */ It might be a good idea to test for difference of `esp` before and after the call.
Yes, that strikes me as a good idea as well.