parseinstrs: Add separate ModRM indicator to desc
Some instructions have no ModRM operand and no extended opcode but still consume a ModRM byte.
This commit is contained in:
@@ -85,6 +85,7 @@ main(int argc, char** argv)
|
||||
TEST64("\x0f\xc7\x0f", "cmpxchg8b qword ptr [rdi]");
|
||||
TEST64("\x48\x0f\xc7\x0f", "cmpxchg16b xmmword ptr [rdi]");
|
||||
TEST("\x66", "PARTIAL");
|
||||
TEST("\xf0", "PARTIAL");
|
||||
TEST("\x0f", "PARTIAL");
|
||||
TEST("\x0f\x38", "PARTIAL");
|
||||
TEST("\x0f\x3a", "PARTIAL");
|
||||
@@ -113,6 +114,7 @@ main(int argc, char** argv)
|
||||
TEST("\x8e\xc8", "UD"); // No mov cs, eax
|
||||
TEST("\x0f\x1e\xc0", "nop eax, eax"); // reserved nop
|
||||
TEST("\x0f\x1e\x04\x25\x01\x00\x00\x00", "nop dword ptr [0x1], eax"); // reserved nop
|
||||
TEST64("\xf3\x4f\x0f\x1e\xfc", "nop r12, r15"); // reserved nop
|
||||
TEST("\xd8\xc1", "fadd st(0), st(1)");
|
||||
TEST("\xdc\xc1", "fadd st(1), st(0)");
|
||||
TEST64("\x41\xd8\xc1", "fadd st(0), st(1)"); // REX.B ignored
|
||||
@@ -303,7 +305,14 @@ main(int argc, char** argv)
|
||||
// TEST32("\x67\x66\x0f\x38\xf8\x01", "movdir64b ax, zmmword ptr [cx]");
|
||||
// TEST64("\x67\x66\x0f\x38\xf8\x01", "movdir64b eax, zmmword ptr [ecx]");
|
||||
|
||||
TEST64("\x0f\xae\xe8", "lfence");
|
||||
TEST("\x0f\xae\xe8", "lfence");
|
||||
TEST("\x0f\xae\xe9", "lfence");
|
||||
TEST("\x0f\xae\xef", "lfence");
|
||||
TEST("\x0f\xae\xf0", "mfence");
|
||||
TEST("\x0f\xae\xf7", "mfence");
|
||||
TEST("\x0f\xae\xf8", "sfence");
|
||||
TEST("\x0f\xae\xf9", "sfence");
|
||||
TEST("\x0f\xae\xff", "sfence");
|
||||
|
||||
TEST("\x0f\x70\xc0\x85", "pshufw mm0, mm0, 0x85");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user