From 307d39dedfabaa0a0400ba62cd9a418d3f94a582 Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 4 May 2026 03:48:02 +0000 Subject: pextr*/extractps --- test/long_mode/mod.rs | 10 +++++----- test/protected_mode/mod.rs | 8 ++++---- test/real_mode/mod.rs | 8 ++++++++ 3 files changed, 17 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/long_mode/mod.rs b/test/long_mode/mod.rs index 649d979..f803692 100644 --- a/test/long_mode/mod.rs +++ b/test/long_mode/mod.rs @@ -866,14 +866,14 @@ fn test_sse4_1() { test_instr(&[0x66, 0x0f, 0x3a, 0x0e, 0x06, 0x31], "pblendw xmm0, xmmword [rsi], 0x31"); test_invalid(&[0x0f, 0x3a, 0x0e, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x14, 0x06, 0x31], "pextrb xmm0, byte [rsi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x14, 0x06, 0x31], "pextrb byte [rsi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x14, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x15, 0x06, 0x31], "pextrw xmm0, word [rsi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x15, 0x06, 0x31], "pextrw word [rsi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x15, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x16, 0x06, 0x31], "pextrd xmm0, dword [rsi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x16, 0x06, 0x31], "pextrd dword [rsi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x16, 0x06]); - test_instr(&[0x66, 0x48, 0x0f, 0x3a, 0x16, 0x06, 0x31], "pextrq xmm0, qword [rsi], 0x31"); - test_instr(&[0x66, 0x0f, 0x3a, 0x17, 0x06, 0x31], "extractps xmm0, dword [rsi], 0x31"); + test_instr(&[0x66, 0x48, 0x0f, 0x3a, 0x16, 0x06, 0x31], "pextrq qword [rsi], xmm0, 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x17, 0x06, 0x31], "extractps dword [rsi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x17, 0x06]); test_instr(&[0x66, 0x0f, 0x3a, 0x20, 0x06, 0x31], "pinsrb xmm0, byte [rsi], 0x31"); diff --git a/test/protected_mode/mod.rs b/test/protected_mode/mod.rs index 0ee8696..7f6ebf7 100644 --- a/test/protected_mode/mod.rs +++ b/test/protected_mode/mod.rs @@ -727,13 +727,13 @@ fn test_sse4_1() { test_instr(&[0x66, 0x0f, 0x3a, 0x0e, 0x06, 0x31], "pblendw xmm0, xmmword [esi], 0x31"); test_invalid(&[0x0f, 0x3a, 0x0e, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x14, 0x06, 0x31], "pextrb xmm0, byte [esi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x14, 0x06, 0x31], "pextrb byte [esi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x14, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x15, 0x06, 0x31], "pextrw xmm0, word [esi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x15, 0x06, 0x31], "pextrw word [esi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x15, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x16, 0x06, 0x31], "pextrd xmm0, dword [esi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x16, 0x06, 0x31], "pextrd dword [esi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x16, 0x06]); - test_instr(&[0x66, 0x0f, 0x3a, 0x17, 0x06, 0x31], "extractps xmm0, dword [esi], 0x31"); + test_instr(&[0x66, 0x0f, 0x3a, 0x17, 0x06, 0x31], "extractps dword [esi], xmm0, 0x31"); test_invalid(&[0x0f, 0x3a, 0x17, 0x06]); test_instr(&[0x66, 0x0f, 0x3a, 0x20, 0x06, 0x31], "pinsrb xmm0, byte [esi], 0x31"); diff --git a/test/real_mode/mod.rs b/test/real_mode/mod.rs index d29cda4..af5a315 100644 --- a/test/real_mode/mod.rs +++ b/test/real_mode/mod.rs @@ -16774,6 +16774,10 @@ fn test_real_mode() { test_display(&[0x66, 0x0f, 0x3a, 0x0c, 0xc1, 0x22], "blendps xmm0, xmm1, 0x22"); test_display(&[0x66, 0x0f, 0x3a, 0x0d, 0x11, 0x22], "blendpd xmm2, xmmword [bx + di * 1], 0x22"); test_display(&[0x66, 0x0f, 0x3a, 0x0d, 0xc1, 0x22], "blendpd xmm0, xmm1, 0x22"); + test_display(&[0x66, 0x0f, 0x3a, 0x14, 0x01, 0x31], "pextrb byte [bx + di * 1], xmm0, 0x31"); + test_display(&[0x66, 0x0f, 0x3a, 0x15, 0x01, 0x31], "pextrw word [bx + di * 1], xmm0, 0x31"); + test_display(&[0x66, 0x0f, 0x3a, 0x16, 0x01, 0x31], "pextrd dword [bx + di * 1], xmm0, 0x31"); + test_display(&[0x66, 0x0f, 0x3a, 0x17, 0x01, 0x31], "extractps dword [bx + di * 1], xmm0, 0x31"); test_display(&[0x66, 0x0f, 0x3a, 0x60, 0xc6, 0x54], "pcmpestrm xmm0, xmm6, 0x54"); test_display(&[0x66, 0x0f, 0x3a, 0x61, 0xc6, 0x54], "pcmpestri xmm0, xmm6, 0x54"); test_display(&[0x66, 0x0f, 0x3a, 0x62, 0xc6, 0x54], "pcmpistrm xmm0, xmm6, 0x54"); @@ -18040,8 +18044,12 @@ fn test_invalid_sequences() { test_invalid(&[0x0f, 0x3a, 0x0b, 0x06]); test_invalid(&[0x0f, 0x3a, 0x0e, 0x06]); test_invalid(&[0x0f, 0x3a, 0x14, 0x06]); + test_invalid(&[0x0f, 0x3a, 0x14, 0x06]); + test_invalid(&[0x0f, 0x3a, 0x15, 0x06]); test_invalid(&[0x0f, 0x3a, 0x15, 0x06]); test_invalid(&[0x0f, 0x3a, 0x16, 0x06]); + test_invalid(&[0x0f, 0x3a, 0x16, 0x06]); + test_invalid(&[0x0f, 0x3a, 0x17, 0x06]); test_invalid(&[0x0f, 0x3a, 0x17, 0x06]); test_invalid(&[0x0f, 0x3a, 0x20, 0x06]); test_invalid(&[0x0f, 0x3a, 0x21, 0x06]); -- cgit v1.1