aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-opc.h
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-09-13 11:07:07 +0200
committerJan Beulich <jbeulich@suse.com>2018-09-13 11:07:07 +0200
commitdbbc8b7e629fa666affd9a3f475d0bf6e5264677 (patch)
tree316472083e52276cc78cdaf84062a83c2cb8489e /opcodes/i386-opc.h
parentefb192033ad82855bcfab207f8494e8b1f3e243b (diff)
downloadgdb-dbbc8b7e629fa666affd9a3f475d0bf6e5264677.zip
gdb-dbbc8b7e629fa666affd9a3f475d0bf6e5264677.tar.gz
gdb-dbbc8b7e629fa666affd9a3f475d0bf6e5264677.tar.bz2
x86: use D attribute also for SIMD templates
Various moves come in load and store forms, and just like on the GPR and FPU sides there would better be only one pattern. In some cases this is not feasible because the opcodes are too different, but quite a few cases follow a similar standard scheme. Introduce Opcode_SIMD_FloatD and Opcode_SIMD_IntD, generalize handling in operand_size_match() (reverse operand handling there simply needs to match "straight" operand one), and fix a long standing, but so far only latent bug with when to zap found_reverse_match. Also once again drop IgnoreSize where pointlessly applied to templates touched anyway as well as *word when redundant with Reg*.
Diffstat (limited to 'opcodes/i386-opc.h')
-rw-r--r--opcodes/i386-opc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 3d0dd44..a7f0ba2 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -861,6 +861,8 @@ typedef struct insn_template
unset if Regmem --> Reg. */
#define Opcode_FloatR 0x8 /* Bit to swap src/dest for float insns. */
#define Opcode_FloatD 0x400 /* Direction bit for float insns. */
+#define Opcode_SIMD_FloatD 0x1 /* Direction bit for SIMD fp insns. */
+#define Opcode_SIMD_IntD 0x10 /* Direction bit for SIMD int insns. */
/* extension_opcode is the 3 bit extension for group <n> insns.
This field is also used to store the 8-bit opcode suffix for the