From 8819ada6c48777c0dd0835d46f4a9dd3ecf2b0ec Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 8 Mar 2018 08:50:13 +0100 Subject: [PATCH] x86: fold redundant expressions in process_suffix() There's no point repeatedly evaluating i.types[op].bitfield.reg. --- 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 + * config/tc-i386.c (process_suffix): Do common part of register + checks first. + +2018-03-08 Jan Beulich + * 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; } } } -- 2.7.4