aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-gen.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2019-11-12 09:09:31 +0100
committerJan Beulich <jbeulich@suse.com>2019-11-12 09:09:31 +0100
commit51c8edf68bf1e16c6d05fbb31a36e0cc436a9750 (patch)
treeca465dc8565167792ae44eb3f95b338720c813e0 /opcodes/i386-gen.c
parent474da251bf92a11a08583080af77fa197570767f (diff)
downloadgdb-51c8edf68bf1e16c6d05fbb31a36e0cc436a9750.zip
gdb-51c8edf68bf1e16c6d05fbb31a36e0cc436a9750.tar.gz
gdb-51c8edf68bf1e16c6d05fbb31a36e0cc436a9750.tar.bz2
x86: fold EsSeg into IsString
EsSeg (a per-operand bit) is used with IsString (a per-insn attribute) only. Extend the attribute to 2 bits, thus allowing to encode - not a string insn, - string insn with neither operand requiring use of %es:, - string insn with 1st operand requiring use of %es:, - string insn with 2nd operand requiring use of %es:, which covers all possible cases, allowing to drop EsSeg. The (transient) need to comment out the OTUnused #define did uncover an oversight in the earlier OTMax -> OTNum conversion, which is being taken care of here.
Diffstat (limited to 'opcodes/i386-gen.c')
-rw-r--r--opcodes/i386-gen.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 4f0c7f2..2838fa4 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -451,8 +451,6 @@ static initializer operand_type_init[] =
"Class=RegMask" },
{ "OPERAND_TYPE_REGBND",
"Class=RegBND" },
- { "OPERAND_TYPE_ESSEG",
- "EsSeg" },
{ "OPERAND_TYPE_ACC8",
"Instance=Accum|Byte" },
{ "OPERAND_TYPE_ACC16",
@@ -725,7 +723,6 @@ static bitfield operand_types[] =
BITFIELD (Disp32S),
BITFIELD (Disp64),
BITFIELD (JumpAbsolute),
- BITFIELD (EsSeg),
BITFIELD (Byte),
BITFIELD (Word),
BITFIELD (Dword),
@@ -1747,7 +1744,7 @@ main (int argc, char **argv)
static_assert (ARRAY_SIZE (operand_types) + CLASS_WIDTH + INSTANCE_WIDTH
== OTNum);
- c = OTNumOfBits - OTMax - 1;
+ c = OTNumOfBits - OTNum;
if (c)
fail (_("%d unused bits in i386_operand_type.\n"), c);
#endif