@@ -886,6 +886,51 @@ ROUNDSD SSE4_1 00001111 00111010 00001011 \
!constraints { data16($_); modrm($_); imm($_, width => 8); 1 } \
!memory { load(size => 8); }
+#
+# AES Instructions
+# ----------------
+#
+
+# 66 0F 38 DE /r: AESDEC xmm1, xmm2/m128
+AESDEC AES 00001111 00111000 11011110 \
+ !constraints { data16($_); modrm($_); 1 } \
+ !memory { load(size => 16, align => 16); }
+
+# 66 0F 38 DF /r: AESDECLAST xmm1, xmm2/m128
+AESDECLAST AES 00001111 00111000 11011111 \
+ !constraints { data16($_); modrm($_); 1 } \
+ !memory { load(size => 16, align => 16); }
+
+# 66 0F 38 DC /r: AESENC xmm1, xmm2/m128
+AESENC AES 00001111 00111000 11011100 \
+ !constraints { data16($_); modrm($_); 1 } \
+ !memory { load(size => 16, align => 16); }
+
+# 66 0F 38 DD /r: AESENCLAST xmm1, xmm2/m128
+AESENCLAST AES 00001111 00111000 11011101 \
+ !constraints { data16($_); modrm($_); 1 } \
+ !memory { load(size => 16, align => 16); }
+
+# 66 0F 38 DB /r: AESIMC xmm1, xmm2/m128
+AESIMC AES 00001111 00111000 11011011 \
+ !constraints { data16($_); modrm($_); 1 } \
+ !memory { load(size => 16, align => 16); }
+
+# 66 0F 3A DF /r ib: AESKEYGENASSIST xmm1, xmm2/m128, imm8
+AESKEYGENASSIST AES 00001111 00111010 11011111 \
+ !constraints { data16($_); modrm($_); imm($_, width => 8); 1 } \
+ !memory { load(size => 16, align => 16); }
+
+#
+# PCLMULQDQ Instructions
+# ----------------------
+#
+
+# 66 0F 3A 44 /r ib: PCLMULQDQ xmm1, xmm2/m128, imm8
+PCLMULQDQ PCLMULQDQ 00001111 00111010 01000100 \
+ !constraints { data16($_); modrm($_); imm($_, width => 8); 1 } \
+ !memory { load(size => 16, align => 16); }
+
#
# Comparison Instructions
# -----------------------
Add AES-NI and PCLMULQDQ instructions to the x86 configuration file. Signed-off-by: Jan Bobek <jan.bobek@gmail.com> --- x86.risu | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)