summaryrefslogtreecommitdiff
path: root/opcodes/i386-opc.tbl
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2022-11-14 17:10:14 +0100
committerJan Beulich <jbeulich@suse.com>2022-11-14 17:10:14 +0100
commit255571cdbf05213cc96feefb779c4158df453398 (patch)
tree92daf98c6503570887e8cfbb77b3bff6d5a9a77d /opcodes/i386-opc.tbl
parent36f779c06332319d9dc2d456e098a99b2540cefc (diff)
downloadbinutils-gdb-255571cdbf05213cc96feefb779c4158df453398.tar.gz
x86: fold special-operand insn attributes into a single enum
Attributes which aren't used together in any single insn template can be converted from individual booleans to a single enum, as was done for a few other attributes before. This is more space efficient. Collect together all attributes which express special operand constraints (and which fit the criteria for folding).
Diffstat (limited to 'opcodes/i386-opc.tbl')
-rw-r--r--opcodes/i386-opc.tbl13
1 files changed, 11 insertions, 2 deletions
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 1c3673a10b4..7202f3f74f2 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -75,6 +75,17 @@
#define Size32 Size=SIZE32
#define Size64 Size=SIZE64
+#define AddrPrefixOpReg OperandConstraint=ADDR_PREFIX_OP_REG | \
+ No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf
+#define Anysize OperandConstraint=ANY_SIZE
+#define DistinctDest OperandConstraint=DISTINCT_DEST
+#define Implicit1stXmm0 OperandConstraint=IMPLICIT_1ST_XMM0
+#define ImplicitQuadGroup OperandConstraint=IMPLICIT_QUAD_GROUP
+#define NoDefMask OperandConstraint=NO_DEFAULT_MASK
+#define RegKludge OperandConstraint=REG_KLUDGE
+#define SwapSources OperandConstraint=SWAP_SOURCES
+#define Ugh OperandConstraint=UGH
+
#define IgnoreSize MnemonicSize=IGNORESIZE
#define DefaultSize MnemonicSize=DEFAULTSIZE
@@ -91,8 +102,6 @@
#define HLEPrefixRelease PrefixOk=PrefixHLERelease
#define NoTrackPrefixOk PrefixOk=PrefixNoTrack
-#define AddrPrefixOpReg AddrPrefixOpReg|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf
-
#define Space0F OpcodeSpace=SPACE_0F
#define Space0F38 OpcodeSpace=SPACE_0F38
#define Space0F3A OpcodeSpace=SPACE_0F3A