summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-06-24 21:43:04 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-06-24 21:43:04 -0700
commit1d3e304546fad8dbcd26df3e7d69a3865bdaddf0 (patch)
tree4410cd357f98f7656f98d3be22241ff18c22c9bc /test
parent9472dab6ed91507235a4ba4031566bc5c2a0df39 (diff)
downloadnasm-1d3e304546fad8dbcd26df3e7d69a3865bdaddf0.tar.gz
nasm-1d3e304546fad8dbcd26df3e7d69a3865bdaddf0.tar.bz2
nasm-1d3e304546fad8dbcd26df3e7d69a3865bdaddf0.zip
Fix the PINSR series of instructions
Clean up a number of errors in the PINSR series instructions. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'test')
-rw-r--r--test/pinsr16.asm47
-rw-r--r--test/pinsr32.asm47
-rw-r--r--test/pinsr64.asm63
3 files changed, 157 insertions, 0 deletions
diff --git a/test/pinsr16.asm b/test/pinsr16.asm
new file mode 100644
index 0000000..7182b29
--- /dev/null
+++ b/test/pinsr16.asm
@@ -0,0 +1,47 @@
+ bits 16
+
+ pinsrb xmm0,eax,0
+ pinsrb xmm1,sil,0
+; pinsrb xmm1,bh,0
+ pinsrb xmm2,[bx],0
+ pinsrb xmm3,byte [bx],0
+
+ pinsrw xmm0,eax,0
+ pinsrw xmm1,si,0
+ pinsrw xmm2,[bx],0
+ pinsrw xmm3,word [bx],0
+
+ pinsrd xmm0,eax,0
+ pinsrd xmm1,esi,0
+ pinsrd xmm2,[bx],0
+ pinsrd xmm3,dword [bx],0
+
+ vpinsrb xmm0,eax,0
+ vpinsrb xmm1,bl,0
+ vpinsrb xmm2,[bx],0
+ vpinsrb xmm3,byte [bx],0
+
+ vpinsrw xmm0,eax,0
+ vpinsrw xmm1,si,0
+ vpinsrw xmm2,[bx],0
+ vpinsrw xmm3,word [bx],0
+
+ vpinsrd xmm0,eax,0
+ vpinsrd xmm1,esi,0
+ vpinsrd xmm2,[bx],0
+ vpinsrd xmm3,dword [bx],0
+
+ vpinsrb xmm4,xmm0,eax,0
+ vpinsrb xmm5,xmm1,bl,0
+ vpinsrb xmm6,xmm2,[bx],0
+ vpinsrb xmm7,xmm3,byte [bx],0
+
+ vpinsrw xmm4,xmm0,eax,0
+ vpinsrw xmm5,xmm1,si,0
+ vpinsrw xmm6,xmm2,[bx],0
+ vpinsrw xmm7,xmm3,word [bx],0
+
+ vpinsrd xmm4,xmm0,eax,0
+ vpinsrd xmm5,xmm1,esi,0
+ vpinsrd xmm6,xmm2,[bx],0
+ vpinsrd xmm7,xmm3,dword [bx],0
diff --git a/test/pinsr32.asm b/test/pinsr32.asm
new file mode 100644
index 0000000..bdbf97a
--- /dev/null
+++ b/test/pinsr32.asm
@@ -0,0 +1,47 @@
+ bits 32
+
+ pinsrb xmm0,eax,0
+ pinsrb xmm1,sil,0
+; pinsrb xmm1,bh,0
+ pinsrb xmm2,[ecx],0
+ pinsrb xmm3,byte [ecx],0
+
+ pinsrw xmm0,eax,0
+ pinsrw xmm1,si,0
+ pinsrw xmm2,[ecx],0
+ pinsrw xmm3,word [ecx],0
+
+ pinsrd xmm0,eax,0
+ pinsrd xmm1,esi,0
+ pinsrd xmm2,[ecx],0
+ pinsrd xmm3,dword [ecx],0
+
+ vpinsrb xmm0,eax,0
+ vpinsrb xmm1,bl,0
+ vpinsrb xmm2,[ecx],0
+ vpinsrb xmm3,byte [ecx],0
+
+ vpinsrw xmm0,eax,0
+ vpinsrw xmm1,si,0
+ vpinsrw xmm2,[ecx],0
+ vpinsrw xmm3,word [ecx],0
+
+ vpinsrd xmm0,eax,0
+ vpinsrd xmm1,esi,0
+ vpinsrd xmm2,[ecx],0
+ vpinsrd xmm3,dword [ecx],0
+
+ vpinsrb xmm4,xmm0,eax,0
+ vpinsrb xmm5,xmm1,bl,0
+ vpinsrb xmm6,xmm2,[ecx],0
+ vpinsrb xmm7,xmm3,byte [ecx],0
+
+ vpinsrw xmm4,xmm0,eax,0
+ vpinsrw xmm5,xmm1,si,0
+ vpinsrw xmm6,xmm2,[ecx],0
+ vpinsrw xmm7,xmm3,word [ecx],0
+
+ vpinsrd xmm4,xmm0,eax,0
+ vpinsrd xmm5,xmm1,esi,0
+ vpinsrd xmm6,xmm2,[ecx],0
+ vpinsrd xmm7,xmm3,dword [ecx],0
diff --git a/test/pinsr64.asm b/test/pinsr64.asm
new file mode 100644
index 0000000..1928846
--- /dev/null
+++ b/test/pinsr64.asm
@@ -0,0 +1,63 @@
+ bits 64
+
+ pinsrb xmm0,eax,0
+ pinsrb xmm1,sil,0 ; BROKEN
+; pinsrb xmm1,bh,0 ; BROKEN
+ pinsrb xmm2,[rcx],0
+ pinsrb xmm3,byte [rcx],0 ; BROKEN
+
+ pinsrw xmm0,eax,0
+ pinsrw xmm1,si,0
+ pinsrw xmm2,[rcx],0
+ pinsrw xmm3,word [rcx],0 ; BROKEN
+
+ pinsrd xmm0,eax,0
+ pinsrd xmm1,esi,0
+ pinsrd xmm2,[rcx],0 ; BROKEN
+ pinsrd xmm3,dword [rcx],0
+
+ pinsrq xmm0,rax,0
+ pinsrq xmm1,rsi,0
+ pinsrq xmm2,[rcx],0 ; BROKEN
+ pinsrq xmm3,qword [rcx],0
+
+ vpinsrb xmm0,eax,0
+ vpinsrb xmm1,sil,0
+ vpinsrb xmm2,[rcx],0
+ vpinsrb xmm3,byte [rcx],0
+
+ vpinsrw xmm0,eax,0
+ vpinsrw xmm1,si,0
+ vpinsrw xmm2,[rcx],0
+ vpinsrw xmm3,word [rcx],0
+
+ vpinsrd xmm0,eax,0
+ vpinsrd xmm1,esi,0
+ vpinsrd xmm2,[rcx],0
+ vpinsrd xmm3,dword [rcx],0
+
+ vpinsrq xmm0,rax,0
+ vpinsrq xmm1,rsi,0
+ vpinsrq xmm2,[rcx],0
+ vpinsrq xmm3,qword [rcx],0
+
+ vpinsrb xmm4,xmm0,eax,0
+ vpinsrb xmm5,xmm1,sil,0
+ vpinsrb xmm6,xmm2,[rcx],0
+ vpinsrb xmm7,xmm3,byte [rcx],0
+
+ vpinsrw xmm4,xmm0,eax,0
+ vpinsrw xmm5,xmm1,si,0
+ vpinsrw xmm6,xmm2,[rcx],0
+ vpinsrw xmm7,xmm3,word [rcx],0
+
+ vpinsrd xmm4,xmm0,eax,0
+ vpinsrd xmm5,xmm1,esi,0
+ vpinsrd xmm6,xmm2,[rcx],0
+ vpinsrd xmm7,xmm3,dword [rcx],0
+
+ vpinsrq xmm4,xmm0,rax,0
+ vpinsrq xmm5,xmm1,rsi,0
+ vpinsrq xmm6,xmm2,[rcx],0
+ vpinsrq xmm7,xmm3,qword [rdx],0
+ \ No newline at end of file