aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-07-11 10:28:16 +0200
committerJan Beulich <jbeulich@suse.com>2018-07-11 10:28:16 +0200
commitbd59a6313dbbf349dff197975f1b6a78be51b7d6 (patch)
treeca7210e8435e3eaf210d14f83eecdbd957f28b0d /gas
parent7f5cad304773ecbfe8b390e0b5d79fe11edb2a6b (diff)
downloadbinutils-bd59a6313dbbf349dff197975f1b6a78be51b7d6.zip
binutils-bd59a6313dbbf349dff197975f1b6a78be51b7d6.tar.gz
binutils-bd59a6313dbbf349dff197975f1b6a78be51b7d6.tar.bz2
x86: simplify legacy prefix emission
The check_prefix label was bogus from the beginning: The special checking is supposed to happen for PadLock insns only; no 3-opcode-byte insn should go this path.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c14
2 files changed, 9 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ddb6235..e6a6d09 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2018-07-11 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (output_insn): Remove check_prefix label and
+ fold remaining expression.
+
+2018-07-11 Jan Beulich <jbeulich@suse.com>
+
* testsuite/gas/i386/cet.s, testsuite/gas/i386/x86-64-cet.s:
Add Intel cases with operand size specifiers.
* testsuite/gas/i386/cet-intel.d, testsuite/gas/i386/cet.d,
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index a7b8400..61c1518 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7676,22 +7676,16 @@ output_insn (void)
if (i.tm.base_opcode & 0xff000000)
{
prefix = (i.tm.base_opcode >> 24) & 0xff;
- goto check_prefix;
+ add_prefix (prefix);
}
break;
case 2:
if ((i.tm.base_opcode & 0xff0000) != 0)
{
prefix = (i.tm.base_opcode >> 16) & 0xff;
- if (i.tm.cpu_flags.bitfield.cpupadlock)
- {
-check_prefix:
- if (prefix != REPE_PREFIX_OPCODE
- || (i.prefix[REP_PREFIX]
- != REPE_PREFIX_OPCODE))
- add_prefix (prefix);
- }
- else
+ if (!i.tm.cpu_flags.bitfield.cpupadlock
+ || prefix != REPE_PREFIX_OPCODE
+ || (i.prefix[REP_PREFIX] != REPE_PREFIX_OPCODE))
add_prefix (prefix);
}
break;