From ef3ef70ccf4e5b2130d112229d0084b91a5c7768 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 24 Jun 2009 21:53:23 -0700 Subject: [PATCH] insns: make the MMX version of PINSRW match the SSE/AVX ones Make the MMX version of PINSRW match the SSE and AVX ones, and add it to the tests. Signed-off-by: H. Peter Anvin --- insns.dat | 6 +++--- test/pinsr16.asm | 5 +++++ test/pinsr32.asm | 5 +++++ test/pinsr64.asm | 17 +++++++++++------ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/insns.dat b/insns.dat index fa2b4ba1..1a263ad3 100644 --- a/insns.dat +++ b/insns.dat @@ -1504,9 +1504,9 @@ PAVGW mmxreg,mmxrm \360\323\2\x0F\xE3\110 KATMAI,MMX,SQ PEXTRW reg32,mmxreg,imm \360\2\x0F\xC5\110\26 KATMAI,MMX,SB,AR2 ; PINSRW is documented as using a reg32, but it's really using only 16 bit ; -- accept either, but be truthful in disassembly -PINSRW mmxreg,reg16,imm \360\2\x0F\xC4\110\26 KATMAI,MMX -PINSRW mmxreg,reg32,imm \360\2\x0F\xC4\110\26 KATMAI,MMX,ND -PINSRW mmxreg,mem,imm \360\2\x0F\xC4\110\26 KATMAI,MMX,SW,AR1 +PINSRW mmxreg,mem,imm \360\2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2 +PINSRW mmxreg,rm16,imm \360\2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2 +PINSRW mmxreg,reg32,imm \360\2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2 PMAXSW mmxreg,mmxrm \360\323\2\x0F\xEE\110 KATMAI,MMX,SQ PMAXUB mmxreg,mmxrm \360\323\2\x0F\xDE\110 KATMAI,MMX,SQ PMINSW mmxreg,mmxrm \360\323\2\x0F\xEA\110 KATMAI,MMX,SQ diff --git a/test/pinsr16.asm b/test/pinsr16.asm index 7182b299..f971598c 100644 --- a/test/pinsr16.asm +++ b/test/pinsr16.asm @@ -1,5 +1,10 @@ bits 16 + pinsrw mm0,eax,0 + pinsrw mm1,si,0 + pinsrw mm2,[bx],0 + pinsrw mm3,word [bx],0 + pinsrb xmm0,eax,0 pinsrb xmm1,sil,0 ; pinsrb xmm1,bh,0 diff --git a/test/pinsr32.asm b/test/pinsr32.asm index bdbf97af..834d1866 100644 --- a/test/pinsr32.asm +++ b/test/pinsr32.asm @@ -1,5 +1,10 @@ bits 32 + pinsrw mm0,eax,0 + pinsrw mm1,si,0 + pinsrw mm2,[ecx],0 + pinsrw mm3,word [ecx],0 + pinsrb xmm0,eax,0 pinsrb xmm1,sil,0 ; pinsrb xmm1,bh,0 diff --git a/test/pinsr64.asm b/test/pinsr64.asm index 19288466..bf837e9e 100644 --- a/test/pinsr64.asm +++ b/test/pinsr64.asm @@ -1,24 +1,29 @@ bits 64 + pinsrw mm0,eax,0 + pinsrw mm1,si,0 + pinsrw mm2,[rcx],0 + pinsrw mm3,word [rcx],0 + pinsrb xmm0,eax,0 - pinsrb xmm1,sil,0 ; BROKEN -; pinsrb xmm1,bh,0 ; BROKEN + pinsrb xmm1,sil,0 +; pinsrb xmm1,bh,0 pinsrb xmm2,[rcx],0 - pinsrb xmm3,byte [rcx],0 ; BROKEN + pinsrb xmm3,byte [rcx],0 pinsrw xmm0,eax,0 pinsrw xmm1,si,0 pinsrw xmm2,[rcx],0 - pinsrw xmm3,word [rcx],0 ; BROKEN + pinsrw xmm3,word [rcx],0 pinsrd xmm0,eax,0 pinsrd xmm1,esi,0 - pinsrd xmm2,[rcx],0 ; BROKEN + pinsrd xmm2,[rcx],0 pinsrd xmm3,dword [rcx],0 pinsrq xmm0,rax,0 pinsrq xmm1,rsi,0 - pinsrq xmm2,[rcx],0 ; BROKEN + pinsrq xmm2,[rcx],0 pinsrq xmm3,qword [rcx],0 vpinsrb xmm0,eax,0