From 071dbfd2f1407842a6487a67e6ce83e80fedb99c Mon Sep 17 00:00:00 2001 From: iximeow Date: Sun, 1 Dec 2019 15:27:15 -0800 Subject: pshuf/psr/shld/shrd plus some test fixes this makes all current non-vex/evex tests pass!!! --- test/test.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/test.rs b/test/test.rs index e3ffa30..2d9c95e 100644 --- a/test/test.rs +++ b/test/test.rs @@ -265,6 +265,7 @@ fn evex() { } #[test] +#[ignore] fn vex() { } @@ -367,17 +368,29 @@ fn prefixed_0f() { test_display(&[0x0f, 0x6e, 0xc2], "movd mm0, edx"); test_display(&[0x0f, 0x6f, 0x00], "movq mm0, [rax]"); test_display(&[0x0f, 0x6f, 0xc2], "movq mm0, mm2"); - test_display(&[0x0f, 0x70, 0x00, 0x7f], "pshufw mm0, qword [rax], 0x7f"); + test_display(&[0x0f, 0x70, 0x00, 0x7f], "pshufw mm0, [rax], 0x7f"); + test_display(&[0x4f, 0x0f, 0x70, 0x00, 0x7f], "pshufw mm0, [r8], 0x7f"); + test_invalid(&[0x0f, 0x71, 0x00, 0x7f]); + test_invalid(&[0x0f, 0x71, 0xc0, 0x7f]); test_display(&[0x0f, 0x71, 0xd0, 0x7f], "psrlw mm0, 0x7f"); test_display(&[0x0f, 0x71, 0xe0, 0x7f], "psraw mm0, 0x7f"); test_display(&[0x0f, 0x71, 0xf0, 0x7f], "psllw mm0, 0x7f"); + test_invalid(&[0x0f, 0x72, 0x00, 0x7f]); + test_invalid(&[0x0f, 0x72, 0xc0, 0x7f]); test_display(&[0x0f, 0x72, 0xd0, 0x7f], "psrld mm0, 0x7f"); test_display(&[0x0f, 0x72, 0xe0, 0x7f], "psrad mm0, 0x7f"); test_display(&[0x0f, 0x72, 0xf0, 0x7f], "pslld mm0, 0x7f"); + test_invalid(&[0x0f, 0x73, 0x00, 0x7f]); + test_invalid(&[0x0f, 0x73, 0xc0, 0x7f]); + test_display(&[0x0f, 0x73, 0xd0, 0x7f], "psrlq mm0, 0x7f"); + test_invalid(&[0x0f, 0x73, 0xe0, 0x7f]); + test_display(&[0x0f, 0x73, 0xf0, 0x7f], "psllq mm0, 0x7f"); test_display(&[0x0f, 0xa0], "push fs"); test_display(&[0x0f, 0xa1], "pop fs"); test_display(&[0x0f, 0xa2], "cpuid"); test_display(&[0x0f, 0xa4, 0xc0, 0x11], "shld eax, eax, 0x11"); + test_display(&[0x66, 0x0f, 0xa4, 0xcf, 0x11], "shld di, cx, 0x11"); + test_display(&[0x66, 0x45, 0x0f, 0xa4, 0xcf, 0x11], "shld r15w, r9w, 0x11"); test_display(&[0x0f, 0xa5, 0xc0], "shld eax, eax, cl"); test_display(&[0x0f, 0xa5, 0xc9], "shld ecx, ecx, cl"); } -- cgit v1.1