aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2023-07-16 13:33:03 -0700
committeriximeow <me@iximeow.net>2023-07-16 13:33:03 -0700
commit22ab87ccc7cf028f9d96cff0ae17ee49a52f8877 (patch)
tree47209dbb0aae2f50684b9fe9554df60a1e1d79b9 /test
parent81529df29455e133c13f439653045755a1e0cebb (diff)
forward changes along to 32-bit decoder...
Diffstat (limited to 'test')
-rw-r--r--test/protected_mode/mod.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/test/protected_mode/mod.rs b/test/protected_mode/mod.rs
index 0270dcc..5a6c832 100644
--- a/test/protected_mode/mod.rs
+++ b/test/protected_mode/mod.rs
@@ -527,7 +527,7 @@ fn test_sse2() {
test_instr(&[0x66, 0x0f, 0xff, 0xc1], "ud0 eax, ecx");
test_instr(&[0xf2, 0x0f, 0xff, 0xc1], "ud0 eax, ecx");
test_instr(&[0xf3, 0x0f, 0xff, 0xc1], "ud0 eax, ecx");
- test_instr(&[0x66, 0x0f, 0xff, 0x01], "ud0 eax, word [ecx]");
+ test_instr(&[0x66, 0x0f, 0xff, 0x01], "ud0 eax, dword [ecx]");
test_instr(&[0x66, 0x0f, 0x74, 0xc1], "pcmpeqb xmm0, xmm1");
test_instr(&[0x66, 0x0f, 0x74, 0x12], "pcmpeqb xmm2, xmmword [edx]");
@@ -825,7 +825,7 @@ fn test_0f01() {
test_display(&[0x0f, 0x01, 0xc2], "vmlaunch");
test_display(&[0x0f, 0x01, 0xc3], "vmresume");
test_display(&[0x0f, 0x01, 0xc4], "vmxoff");
- test_invalid(&[0x0f, 0x01, 0xc5]); // TODO: TME would make this `pconfig`
+ test_display(&[0x0f, 0x01, 0xc5], "pconfig");
test_invalid(&[0x0f, 0x01, 0xc6]);
test_invalid(&[0x0f, 0x01, 0xc7]);
test_display(&[0x0f, 0x01, 0xc8], "monitor");
@@ -982,7 +982,7 @@ fn test_sse() {
test_display(&[0x0f, 0x28, 0xd0], "movaps xmm2, xmm0");
test_display(&[0x66, 0x0f, 0x28, 0xd0], "movapd xmm2, xmm0");
test_display(&[0x66, 0x0f, 0x28, 0x00], "movapd xmm0, xmmword [eax]");
- test_display(&[0x67, 0x66, 0x0f, 0x28, 0x00], "movapd xmm0, xmmword [bx + si]");
+ test_display(&[0x67, 0x66, 0x0f, 0x28, 0x00], "movapd xmm0, xmmword [bx + si * 1]");
test_display(&[0x66, 0x0f, 0x29, 0x00], "movapd xmmword [eax], xmm0");
test_invalid(&[0x0f, 0x50, 0x00]);
test_display(&[0x0f, 0x50, 0xc1], "movmskps eax, xmm1");
@@ -1005,7 +1005,7 @@ fn test_sse() {
test_display(&[0xf3, 0x0f, 0x5a, 0x01], "cvtss2sd xmm0, dword [ecx]");
test_display(&[0x0f, 0x5b, 0x01], "cvtdq2ps xmm0, xmmword [ecx]");
test_display(&[0xf3, 0x0f, 0x5b, 0x01], "cvttps2dq xmm0, xmmword [ecx]");
- test_display(&[0x67, 0x0f, 0x5b, 0x01], "cvtdq2ps xmm0, xmmword [bx + di]");
+ test_display(&[0x67, 0x0f, 0x5b, 0x01], "cvtdq2ps xmm0, xmmword [bx + di * 1]");
test_display(&[0x0f, 0x5c, 0x01], "subps xmm0, xmmword [ecx]");
test_display(&[0xf3, 0x0f, 0x5c, 0x01], "subss xmm0, dword [ecx]");
test_display(&[0x0f, 0x5d, 0x01], "minps xmm0, xmmword [ecx]");
@@ -2946,7 +2946,7 @@ fn test_mishegos_finds() {
test_display(&[0x26, 0x36, 0x0f, 0x0f, 0x70, 0xfb, 0x0c], "pi2fw mm6, qword ss:[eax - 0x5]");
test_display(&[0x0f, 0xc7, 0x0f], "cmpxchg8b qword [edi]");
test_display(&[0x66, 0x3e, 0x26, 0x2e, 0x2e, 0x0f, 0x38, 0x2a, 0x2b], "movntdqa xmm5, xmmword cs:[ebx]");
- test_display(&[0x66, 0x2e, 0x67, 0x0f, 0x3a, 0x0d, 0xb8, 0xf0, 0x2f, 0x7c], "blendpd xmm7, xmmword cs:[bx + si + 0x2ff0], 0x7c");
+ test_display(&[0x66, 0x2e, 0x67, 0x0f, 0x3a, 0x0d, 0xb8, 0xf0, 0x2f, 0x7c], "blendpd xmm7, xmmword cs:[bx + si * 1 + 0x2ff0], 0x7c");
test_display(&[0x66, 0x66, 0x64, 0x3e, 0x0f, 0x38, 0x23, 0x9d, 0x69, 0x0f, 0xa8, 0x2d], "pmovsxwd xmm3, qword [ebp + 0x2da80f69]");
test_display(&[0x2e, 0x66, 0x26, 0x64, 0x0f, 0x3a, 0x21, 0x0b, 0xb1], "insertps xmm1, dword fs:[ebx], -0x4f");
test_display(&[0x66, 0x26, 0x0f, 0x3a, 0x42, 0x96, 0x74, 0x29, 0x96, 0xf9, 0x6a], "mpsadbw xmm2, xmmword es:[esi - 0x669d68c], 0x6a");
@@ -2955,7 +2955,7 @@ fn test_mishegos_finds() {
test_invalid(&[0x66, 0x2e, 0x64, 0x66, 0x0f, 0x38, 0xf8, 0xe2]);
test_display(&[0x67, 0x66, 0x65, 0x3e, 0x0f, 0x6d, 0xd1], "punpckhqdq xmm2, xmm1");
test_display(&[0x2e, 0x66, 0x0f, 0x3a, 0x0d, 0x40, 0x2d, 0x57], "blendpd xmm0, xmmword cs:[eax + 0x2d], 0x57");
- test_display(&[0xf2, 0x3e, 0x26, 0x67, 0x0f, 0xf0, 0xa0, 0x1b, 0x5f], "lddqu xmm4, xmmword es:[bx + si + 0x5f1b]");
+ test_display(&[0xf2, 0x3e, 0x26, 0x67, 0x0f, 0xf0, 0xa0, 0x1b, 0x5f], "lddqu xmm4, xmmword es:[bx + si * 1 + 0x5f1b]");
test_display(&[0x2e, 0x3e, 0x66, 0x3e, 0x0f, 0x3a, 0x41, 0x30, 0x48], "dppd xmm6, xmmword [eax], 0x48");
test_display(&[0x2e, 0x36, 0x0f, 0x18, 0xe7], "nop edi");
@@ -3042,7 +3042,8 @@ fn test_3dnow() {
#[test]
fn test_direct_stores() {
test_display(&[0x36, 0x36, 0x2e, 0x0f, 0x38, 0xf9, 0x55, 0x3e, ], "movdiri dword cs:[ebp + 0x3e], edx");
- test_invalid(&[0x36, 0x26, 0x66, 0x0f, 0x38, 0xf8, 0xad, 0x0b, 0x08, 0x29, 0x07]);
+ test_display(&[0x36, 0x26, 0x66, 0x67, 0x0f, 0x38, 0xf8, 0xad, 0x0b, 0x08], "movdir64b bp, zmmword es:[di + 0x80b]");
+ test_display(&[0x36, 0x26, 0x66, 0x0f, 0x38, 0xf8, 0xad, 0x0b, 0x08, 0x29, 0x07], "movdir64b ebp, zmmword es:[ebp + 0x729080b]");
}
#[test]