aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2020-07-06 13:35:38 +0200
committerJan Beulich <jbeulich@suse.com>2020-07-06 13:35:38 +0200
commit39e0f45682a39e09ab115333c593dbdd25658dd2 (patch)
tree1742193a9d440ffb599a4228ee5d19a825e29c7f /opcodes
parent5b872f7df76cc88e0c4fdfe7872a3df3178302dc (diff)
downloadfsf-binutils-gdb-39e0f45682a39e09ab115333c593dbdd25658dd2.zip
fsf-binutils-gdb-39e0f45682a39e09ab115333c593dbdd25658dd2.tar.gz
fsf-binutils-gdb-39e0f45682a39e09ab115333c593dbdd25658dd2.tar.bz2
x86: replace EXqScalarS by EXqVexScalarS
There's only a single user, that that one can do fine with the alternative, as the "Vex" aspect of the other operand kind is meaningful only on 3-operand insns. While doing this I noticed that I didn't need to do the same adjustment in the EVEX tables, and voilĂ  - there was a bug, which gets fixed at the same time (see the testsuite changes).
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/i386-dis-evex-w.h2
-rw-r--r--opcodes/i386-dis.c3
3 files changed, 8 insertions, 3 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 3578b6b..205db9b 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,11 @@
2020-07-06 Jan Beulich <jbeulich@suse.com>
+ * i386-dis.c (EXqScalarS): Delete.
+ (vex_len_table): Replace EXqScalarS by EXqVexScalarS.
+ * i386-dis-evex-w.h (vmovq): Use EXqVexScalarS.
+
+2020-07-06 Jan Beulich <jbeulich@suse.com>
+
* i386-dis.c (safe-ctype.h): Include.
(EXdScalar, EXqScalar): Delete.
(d_scalar_mode, q_scalar_mode): Delete.
diff --git a/opcodes/i386-dis-evex-w.h b/opcodes/i386-dis-evex-w.h
index 3029169..45ecb87 100644
--- a/opcodes/i386-dis-evex-w.h
+++ b/opcodes/i386-dis-evex-w.h
@@ -294,7 +294,7 @@
/* EVEX_W_0FD6_P_2 */
{
{ Bad_Opcode },
- { "vmovq", { EXxmm_mq, XMScalar }, 0 },
+ { "vmovq", { EXqVexScalarS, XMScalar }, 0 },
},
/* EVEX_W_0FE6_P_1 */
{
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 9147c37..8ef1aa7 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -386,7 +386,6 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define EXd { OP_EX, d_mode }
#define EXdS { OP_EX, d_swap_mode }
#define EXq { OP_EX, q_mode }
-#define EXqScalarS { OP_EX, q_scalar_swap_mode }
#define EXqS { OP_EX, q_swap_mode }
#define EXx { OP_EX, x_mode }
#define EXxS { OP_EX, x_swap_mode }
@@ -9498,7 +9497,7 @@ static const struct dis386 vex_len_table[][2] = {
/* VEX_LEN_0FD6_P_2 */
{
- { "vmovq", { EXqScalarS, XMScalar }, 0 },
+ { "vmovq", { EXqVexScalarS, XMScalar }, 0 },
},
/* VEX_LEN_0FF7_P_2 */