[binutils-gdb] x86: fold redundant expressions in process_suffix()
Jan Beulich
jbeulich@sourceware.org
Thu Mar 8 07:52:00 GMT 2018
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8819ada6c48777c0dd0835d46f4a9dd3ecf2b0ec
commit 8819ada6c48777c0dd0835d46f4a9dd3ecf2b0ec
Author: Jan Beulich <jbeulich@novell.com>
Date: Thu Mar 8 08:50:13 2018 +0100
x86: fold redundant expressions in process_suffix()
There's no point repeatedly evaluating i.types[op].bitfield.reg.
Diff:
---
gas/ChangeLog | 5 +++++
gas/config/tc-i386.c | 33 +++++++++++++--------------------
2 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d125b23..0f66f5e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2018-03-08 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (process_suffix): Do common part of register
+ checks first.
+
+2018-03-08 Jan Beulich <jbeulich@suse.com>
+
* config/tc-i386.c (parse_insn): Move success return up. Combine
failure returns.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 67e8069..83fd18c 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -5736,26 +5736,19 @@ process_suffix (void)
if (!i.tm.operand_types[op].bitfield.inoutportreg
&& !i.tm.operand_types[op].bitfield.shiftcount)
{
- if (i.types[op].bitfield.reg && i.types[op].bitfield.byte)
- {
- i.suffix = BYTE_MNEM_SUFFIX;
- break;
- }
- if (i.types[op].bitfield.reg && i.types[op].bitfield.word)
- {
- i.suffix = WORD_MNEM_SUFFIX;
- break;
- }
- if (i.types[op].bitfield.reg && i.types[op].bitfield.dword)
- {
- i.suffix = LONG_MNEM_SUFFIX;
- break;
- }
- if (i.types[op].bitfield.reg && i.types[op].bitfield.qword)
- {
- i.suffix = QWORD_MNEM_SUFFIX;
- break;
- }
+ if (!i.types[op].bitfield.reg)
+ continue;
+ if (i.types[op].bitfield.byte)
+ i.suffix = BYTE_MNEM_SUFFIX;
+ else if (i.types[op].bitfield.word)
+ i.suffix = WORD_MNEM_SUFFIX;
+ else if (i.types[op].bitfield.dword)
+ i.suffix = LONG_MNEM_SUFFIX;
+ else if (i.types[op].bitfield.qword)
+ i.suffix = QWORD_MNEM_SUFFIX;
+ else
+ continue;
+ break;
}
}
}
More information about the Binutils-cvs
mailing list