x86: permit parenthesized expressions again as addressing scale factor
authorJan Beulich <jbeulich@suse.com>
Tue, 15 Jun 2021 05:57:11 +0000 (07:57 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 15 Jun 2021 05:57:11 +0000 (07:57 +0200)
commitcc0f96357e0b5bce4a1f02910cec2dd66e8990c5
tree5acb7dbf985bd464e6c24e64ab02a49fd4fb4780
parent93df3340fd5ad32f784214fc125de71811da72ff
x86: permit parenthesized expressions again as addressing scale factor

The description of e68c3d59acd0 ("x86: better respect quotes in
parse_operands()") wrongly states:

"In i386_att_operand(), which needs adjustment to remain in sync, besides
 respecting double quotes now, also change the logic such that we don't
 count parentheses anymore: Finding any opening or closing parenthesis or
 any double quote means we're done, because the subsequent parsing code
 wouldn't accept (extra) instances of these anyway."

I didn't pay attention to the possibility of the scale factor being
specified as an expression, which may contain parentheses. Thanks to
Martin for pointing this out. Restore prior behavior or matching
parentheses (backwards), while giving the variable a more suitable name.
Note that this simple and immediate fix is not ging to be enough: This
expression could itself involve quoted symbols. However, to address this
backwards parsing needs to be done away with altogether here (such that
parentheses which are part of such a quoted symbol name can also
properly be accounted for), which is going to be a more intrusive
change.
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/sib-intel.d
gas/testsuite/gas/i386/sib.d
gas/testsuite/gas/i386/sib.s