From 706ec278edebe06eff9f91f5cb30f5faba46132d Mon Sep 17 00:00:00 2001 From: iximeow Date: Sat, 2 May 2026 22:04:07 +0000 Subject: vmaskmovdqu, vmovq were also incorrect in some ways... --- test/real_mode/mod.rs | 4 +++- test/real_mode/operand.rs | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'test/real_mode') diff --git a/test/real_mode/mod.rs b/test/real_mode/mod.rs index 90a6c60..f6ace8b 100644 --- a/test/real_mode/mod.rs +++ b/test/real_mode/mod.rs @@ -18244,6 +18244,7 @@ fn test_invalid_sequences() { test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x14, 0b00_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x15, 0b00_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x16, 0b00_001_010, 0x77]); + test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x38, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x60, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x61, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_001, 0x62, 0b11_001_010, 0x77]); @@ -18254,6 +18255,7 @@ fn test_invalid_sequences() { test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x20, 0b00_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x21, 0b00_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x22, 0b00_001_010, 0x77]); + test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x39, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x41, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x60, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_0111_101, 0x61, 0b11_001_010, 0x77]); @@ -18273,7 +18275,7 @@ fn test_invalid_sequences() { test_invalid(&[0xc4, 0b110_00011, 0b0_1111_101, 0x62, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b0_1111_101, 0x63, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b1_0111_001, 0x16, 0b00_001_010, 0x77]); - test_invalid(&[0xc4, 0b110_00011, 0b1_0111_001, 0x18, 0b11_001_010, 0x77]); + test_invalid(&[0xc4, 0b110_00011, 0b1_0111_001, 0x38, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b1_0111_001, 0x4c, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b1_0111_001, 0xdf, 0b11_001_010, 0x77]); test_invalid(&[0xc4, 0b110_00011, 0b1_0111_101, 0x18, 0b11_001_010, 0x77]); diff --git a/test/real_mode/operand.rs b/test/real_mode/operand.rs index 68eea48..9b37f36 100644 --- a/test/real_mode/operand.rs +++ b/test/real_mode/operand.rs @@ -44,4 +44,8 @@ fn test_implied_memory_width() { // "maskmovdqu xmm0, xmm1" assert_eq!(mem_size_of(&[0x66, 0x0f, 0xf7, 0xc1]), Some(16)); assert_eq!(mem_size_of(&[0x67, 0x66, 0x0f, 0xf7, 0xc1]), Some(16)); + + // "vmaskmovdqu xmm0, xmm1" + assert_eq!(mem_size_of(&[0xc4, 0xe1, 0x79, 0xf7, 0xc1]), Some(16)); + assert_eq!(mem_size_of(&[0x67, 0xc4, 0xe1, 0x79, 0xf7, 0xc1]), Some(16)); } -- cgit v1.1