diff options
| author | iximeow <me@iximeow.net> | 2026-04-17 03:02:43 +0000 |
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2026-05-25 00:59:27 +0000 |
| commit | bbdb82bd41234021cc8dbe3337e88bd9f19cade9 (patch) | |
| tree | 9135b6e5113c2e1455b4dcc00ccc4c0e77d6c941 /test | |
| parent | 470ddb9a0329a8f1823674bca2c108e012ca2780 (diff) | |
maskmov{q,dqu} memory access size
Diffstat (limited to 'test')
| -rw-r--r-- | test/long_mode/operand.rs | 8 | ||||
| -rw-r--r-- | test/protected_mode/operand.rs | 8 | ||||
| -rw-r--r-- | test/real_mode/operand.rs | 8 |
3 files changed, 24 insertions, 0 deletions
diff --git a/test/long_mode/operand.rs b/test/long_mode/operand.rs index 9f594b5..379cc7b 100644 --- a/test/long_mode/operand.rs +++ b/test/long_mode/operand.rs @@ -29,6 +29,14 @@ fn memory_widths() { assert_eq!(mem_size_of(&[0x48, 0x33, 0x00]).size_name(), "qword"); assert_eq!(mem_size_of(&[0x6a, 0x00]).size_name(), "qword"); assert_eq!(mem_size_of(&[0x68, 0x00, 0x00, 0x00, 0x00]).size_name(), "qword"); + + // "maskmovq mm0, mm1" + assert_eq!(mem_size_of(&[0x4f, 0x0f, 0xf7, 0xc1]).size_name(), "qword"); + assert_eq!(mem_size_of(&[0x67, 0x0f, 0xf7, 0xc1]).size_name(), "qword"); + + // "maskmovdqu xmm0, xmm1" + assert_eq!(mem_size_of(&[0x66, 0x4f, 0x0f, 0xf7, 0xc1]).size_name(), "xmmword"); + assert_eq!(mem_size_of(&[0x67, 0x66, 0x0f, 0xf7, 0xc1]).size_name(), "xmmword"); } #[test] diff --git a/test/protected_mode/operand.rs b/test/protected_mode/operand.rs index 70dcadb..cfda896 100644 --- a/test/protected_mode/operand.rs +++ b/test/protected_mode/operand.rs @@ -25,6 +25,14 @@ fn memory_widths() { assert_eq!(mem_size_of(&[0x32, 0x00]).size_name(), "byte"); assert_eq!(mem_size_of(&[0x66, 0x33, 0x00]).size_name(), "word"); assert_eq!(mem_size_of(&[0x33, 0x00]).size_name(), "dword"); + + // "maskmovq mm0, mm1" + assert_eq!(mem_size_of(&[0x0f, 0xf7, 0xc1]).size_name(), "qword"); + assert_eq!(mem_size_of(&[0x67, 0x0f, 0xf7, 0xc1]).size_name(), "qword"); + + // "maskmovdqu xmm0, xmm1" + assert_eq!(mem_size_of(&[0x66, 0x0f, 0xf7, 0xc1]).size_name(), "xmmword"); + assert_eq!(mem_size_of(&[0x67, 0x66, 0x0f, 0xf7, 0xc1]).size_name(), "xmmword"); } #[test] diff --git a/test/real_mode/operand.rs b/test/real_mode/operand.rs index cdf5113..68eea48 100644 --- a/test/real_mode/operand.rs +++ b/test/real_mode/operand.rs @@ -36,4 +36,12 @@ fn test_implied_memory_width() { assert_eq!(mem_size_of(&[0x0f, 0xa8]), Some(2)); // pop gs assert_eq!(mem_size_of(&[0x0f, 0xa9]), Some(2)); + + // "maskmovq mm0, mm1" + assert_eq!(mem_size_of(&[0x0f, 0xf7, 0xc1]), Some(8)); + assert_eq!(mem_size_of(&[0x67, 0x0f, 0xf7, 0xc1]), Some(8)); + + // "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)); } |
