qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RISU RFC PATCH v2 09/14] x86.risu: add SSE3 instructions


From: Jan Bobek
Subject: [Qemu-devel] [RISU RFC PATCH v2 09/14] x86.risu: add SSE3 instructions
Date: Mon, 1 Jul 2019 00:35:31 -0400

Add SSE3 instructions to the x86 configuration file.

Signed-off-by: Jan Bobek <address@hidden>
---
 x86.risu | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/x86.risu b/x86.risu
index 9b63d6b..01181dd 100644
--- a/x86.risu
+++ b/x86.risu
@@ -49,6 +49,11 @@ PMOVMSKB        SSE2    00001111 11010111 !emit { data16(); 
modrm(mod => MOD_DIR
 MOVMSKPS        SSE     00001111 01010000 !emit { modrm(mod => MOD_DIRECT, reg 
=> ~REG_ESP); }
 MOVMKSPD        SSE2    00001111 01010000 !emit { data16(); modrm(mod => 
MOD_DIRECT, reg => ~REG_ESP); }
 
+LDDQU           SSE3    00001111 11110000 !emit { repne(); modrm(mod => 
~MOD_DIRECT); mem(size => 16); }
+MOVSHDUP        SSE3    00001111 00010110 !emit { rep(); modrm(); mem(size => 
16, align => 16); }
+MOVSLDUP        SSE3    00001111 00010010 !emit { rep(); modrm(); mem(size => 
16, align => 16); }
+MOVDDUP         SSE3    00001111 00010010 !emit { repne(); modrm(); mem(size 
=> 8); }
+
 # Arithmetic Instructions
 PADDB           MMX     00001111 11111100 !emit { modrm(); mem(size => 8); }
 PADDB           SSE2    00001111 11111100 !emit { data16(); modrm(); mem(size 
=> 16, align => 16); }
@@ -72,6 +77,9 @@ ADDPD           SSE2    00001111 01011000 !emit { data16(); 
modrm(); mem(size =>
 ADDSS           SSE     00001111 01011000 !emit { rep(); modrm(); mem(size => 
4); }
 ADDSD           SSE2    00001111 01011000 !emit { repne(); modrm(); mem(size 
=> 8); }
 
+HADDPS          SSE3    00001111 01111100 !emit { repne(); modrm(); mem(size 
=> 16, align => 16); }
+HADDPD          SSE3    00001111 01111100 !emit { data16(); modrm(); mem(size 
=> 16, align => 16); }
+
 PSUBB           MMX     00001111 11111000 !emit { modrm(); mem(size => 8); }
 PSUBB           SSE2    00001111 11111000 !emit { data16(); modrm(); mem(size 
=> 16, align => 16); }
 PSUBW           MMX     00001111 11111001 !emit { modrm(); mem(size => 8); }
@@ -94,6 +102,12 @@ SUBPD           SSE2    00001111 01011100 !emit { data16(); 
modrm(); mem(size =>
 SUBSS           SSE     00001111 01011100 !emit { rep(); modrm(); mem(size => 
4); }
 SUBSD           SSE2    00001111 01011100 !emit { repne(); modrm(); mem(size 
=> 8); }
 
+HSUBPS          SSE3    00001111 01111101 !emit { repne(); modrm(); mem(size 
=> 16, align => 16); }
+HSUBPD          SSE3    00001111 01111101 !emit { data16(); modrm(); mem(size 
=> 16, align => 16); }
+
+ADDSUBPS        SSE3    00001111 11010000 !emit { repne(); modrm(); mem(size 
=> 16, align => 16); }
+ADDSUBPD        SSE3    00001111 11010000 !emit { data16(); modrm(); mem(size 
=> 16, align => 16); }
+
 PMULLW          MMX     00001111 11010101 !emit { modrm(); mem(size => 8); }
 PMULLW          SSE2    00001111 11010101 !emit { data16(); modrm(); mem(size 
=> 16, align => 16); }
 PMULHW          MMX     00001111 11100101 !emit { modrm(); mem(size => 8); }
-- 
2.20.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]