summaryrefslogtreecommitdiff
path: root/usr/src/common/dis/i386/dis_tables.c
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2019-04-06 01:05:16 +0000
committerRobert Mustacchi <rm@joyent.com>2019-05-04 15:16:05 +0000
commite4f6ce7088a7dd335b9edf4774325f888692e5fb (patch)
treef8a4e8c8185cc189e509dbceb0522cafca3357b9 /usr/src/common/dis/i386/dis_tables.c
parent5392d11ac74a493636fce7ed2e9598b095b68151 (diff)
downloadillumos-joyent-e4f6ce7088a7dd335b9edf4774325f888692e5fb.tar.gz
10893 Need support for new Cascade Lake Instructions
Reviewed by: Hans Rosenfeld <hans.rosenfeld@joyent.com> Reviewed by: Dan McDonald <danmcd@joyent.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Approved by: Gordon Ross <gwr@nexenta.com>
Diffstat (limited to 'usr/src/common/dis/i386/dis_tables.c')
-rw-r--r--usr/src/common/dis/i386/dis_tables.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr/src/common/dis/i386/dis_tables.c b/usr/src/common/dis/i386/dis_tables.c
index afb2b551b2..12a1112d8a 100644
--- a/usr/src/common/dis/i386/dis_tables.c
+++ b/usr/src/common/dis/i386/dis_tables.c
@@ -21,7 +21,7 @@
*/
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2018 Joyent, Inc.
+ * Copyright 2019, Joyent, Inc.
*/
/*
@@ -1484,7 +1484,7 @@ const instable_t dis_opAVX62[256] = {
/* [48] */ INVALID, INVALID, INVALID, INVALID,
/* [4C] */ INVALID, INVALID, INVALID, INVALID,
-/* [50] */ INVALID, INVALID, INVALID, INVALID,
+/* [50] */ TNSZ("vpdpbusd",EVEX_RMrX,16),TNSZ("vpdpbusds",EVEX_RMrX,16),TNSZ("vpdpwssd",EVEX_RMrX,16),TNSZ("vpdpwssds",EVEX_RMrX,16),
/* [54] */ TSd("vandp",EVEX_RMrX), TSd("vandnp",EVEX_RMrX), TSd("vorp",EVEX_RMrX), TSd("vxorp",EVEX_RMrX),
/* [58] */ INVALID, INVALID, INVALID, INVALID,
/* [5C] */ INVALID, INVALID, INVALID, INVALID,
@@ -2664,6 +2664,12 @@ dtrace_evex_mnem_adjust(dis86_t *x, instable_t *dp, uint_t vex_W,
uint_t evex_byte2)
{
#ifdef DIS_TEXT
+ /* No adjustments needed for VNNI instructions. */
+ if (dp == &dis_opAVX62[0x50] || dp == &dis_opAVX62[0x51] ||
+ dp == &dis_opAVX62[0x52] || dp == &dis_opAVX62[0x53]) {
+ return;
+ }
+
if (dp == &dis_opAVX62[0x7f] || /* vmovdq */
dp == &dis_opAVX62[0x6f]) {
/* Aligned or Unaligned? */
@@ -2688,7 +2694,6 @@ dtrace_evex_mnem_adjust(dis86_t *x, instable_t *dp, uint_t vex_W,
break;
}
}
-
} else {
if (dp->it_avxsuf == AVS5Q) {
(void) strlcat(x->d86_mnem, vex_W != 0 ? "q" : "d",