aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-03-08 08:34:09 +0100
committerJan Beulich <jbeulich@suse.com>2018-03-08 08:34:09 +0100
commit38e314eb064ae94318deaa9544c2da3f46f5d319 (patch)
tree8099891ee394361b9e74f50921e3663bc33c81af /gas
parentd53e6b98a2599ba4ce6ad14f711b76e44a32eea5 (diff)
downloadgdb-38e314eb064ae94318deaa9544c2da3f46f5d319.zip
gdb-38e314eb064ae94318deaa9544c2da3f46f5d319.tar.gz
gdb-38e314eb064ae94318deaa9544c2da3f46f5d319.tar.bz2
x86: drop FloatD
It can be expressed by D, when making the consumer look at operand size to tell apart both uses.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c14
2 files changed, 12 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d45dd9c..f1c18aa 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2018-03-08 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (operand_size_match): Drop / replace uses of
+ .floatd.
+
+2018-03-08 Jan Beulich <jbeulich@suse.com>
+
* testsuite/gas/i386/intel-intel.d: New.
* testsuite/gas/i386/i386.exp: Run new test.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 3a21a35..16f1174 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -2027,7 +2027,7 @@ operand_size_match (const insn_template *t)
if (match)
return match;
- else if (!t->opcode_modifier.d && !t->opcode_modifier.floatd)
+ else if (!t->opcode_modifier.d)
{
mismatch:
i.error = operand_size_mismatch;
@@ -5446,7 +5446,7 @@ match_template (char mnem_suffix)
operand_types[1])))
{
/* Check if other direction is valid ... */
- if (!t->opcode_modifier.d && !t->opcode_modifier.floatd)
+ if (!t->opcode_modifier.d)
continue;
check_reverse:
@@ -5464,14 +5464,14 @@ check_reverse:
/* Does not match either direction. */
continue;
}
- /* found_reverse_match holds which of D or FloatDR
+ /* found_reverse_match holds which of D or FloatR
we've found. */
- if (t->opcode_modifier.d)
- found_reverse_match = Opcode_D;
- else if (t->opcode_modifier.floatd)
+ if (!t->opcode_modifier.d)
+ found_reverse_match = 0;
+ else if (operand_types[0].bitfield.tbyte)
found_reverse_match = Opcode_FloatD;
else
- found_reverse_match = 0;
+ found_reverse_match = Opcode_D;
if (t->opcode_modifier.floatr)
found_reverse_match |= Opcode_FloatR;
}