This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2 3/4] x86: adjust segment override prefix emission


On Fri, Feb 14, 2020 at 3:44 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> Since we already suppress the prefix altogether when it's the default
> one for the chosen addressing mode, let's do so also when instruction
> prefix and override specified with the memory operand match. (Note that
> insn prefix specified segment overrides never get discarded.)
>
> gas/
> 2020-02-XX  Jan Beulich  <jbeulich@suse.com>
>
>         * config/tc-i386.c (process_operands): Also skip segment
>         override prefix emission if it matches an already present one.
>         * testsuite/gas/i386/prefix32.s: Add double segment override
>         cases.
>         * testsuite/gas/i386/prefix32.l: Adjust expectations.
>
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -7208,11 +7208,12 @@ duplicate:
>      }
>
>    /* If a segment was explicitly specified, and the specified segment
> -     is not the default, use an opcode prefix to select it.  If we
> -     never figured out what the default segment is, then default_seg
> -     will be zero at this point, and the specified segment prefix will
> -     always be used.  */
> -  if ((i.seg[0]) && (i.seg[0] != default_seg))
> +     is neither the default nor the one already recorded from a prefix,
> +     use an opcode prefix to select it.  If we never figured out what
> +     the default segment is, then default_seg will be zero at this
> +     point, and the specified segment prefix will always be used.  */
> +  if ((i.seg[0]) && (i.seg[0] != default_seg)
> +      && (i.seg[0]->seg_prefix != i.prefix[SEG_PREFIX]))

Since you are changing the code, please write

if (i.seg[0]
   && i.seg[0] != default_seg
   && i.seg[0]->seg_prefix != i.prefix[SEG_PREFIX])

OK with this change.

Thanks.


H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]