From: Jan Beulich Date: Fri, 17 Nov 2023 10:20:25 +0000 (+0100) Subject: x86: fold conditionals in check_long_reg() X-Git-Tag: binutils-2_42~930 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9a1b71137d206f1ff73eee25423cf6d22814495;p=thirdparty%2Fbinutils-gdb.git x86: fold conditionals in check_long_reg() Simplify the code follow ing what check_{,q}word_reg() already do. This the also eliminates a stale comment talking about a warning when an error is raised. While there, correct a similarly stale comment in check_qword_reg() while there. --- diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 6dcdccbccd6..8d11955a88b 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -8112,8 +8112,10 @@ check_long_reg (void) i.suffix); return 0; } - /* Error if the e prefix on a general reg is missing. */ - else if (i.types[op].bitfield.word + /* Error if the e prefix on a general reg is missing, or if the r + prefix on a general reg is present. */ + else if ((i.types[op].bitfield.word + || i.types[op].bitfield.qword) && (i.tm.operand_types[op].bitfield.class == Reg || i.tm.operand_types[op].bitfield.instance == Accum) && i.tm.operand_types[op].bitfield.dword) @@ -8123,16 +8125,6 @@ check_long_reg (void) i.suffix); return 0; } - /* Warn if the r prefix on a general reg is present. */ - else if (i.types[op].bitfield.qword - && (i.tm.operand_types[op].bitfield.class == Reg - || i.tm.operand_types[op].bitfield.instance == Accum) - && i.tm.operand_types[op].bitfield.dword) - { - as_bad (_("incorrect register `%s%s' used with `%c' suffix"), - register_prefix, i.op[op].regs->reg_name, i.suffix); - return 0; - } return 1; } @@ -8161,7 +8153,7 @@ check_qword_reg (void) i.suffix); return 0; } - /* Warn if the r prefix on a general reg is missing. */ + /* Error if the r prefix on a general reg is missing. */ else if ((i.types[op].bitfield.word || i.types[op].bitfield.dword) && (i.tm.operand_types[op].bitfield.class == Reg