This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] x86: relax redundant REX prefix check
- From: "Jan Beulich" <JBeulich at suse dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: <binutils at sourceware dot org>
- Date: Wed, 30 May 2018 08:22:09 -0600
- Subject: Re: [PATCH] x86: relax redundant REX prefix check
- References: <5B0E55FD02000078001C6D8F@prv1-mh.provo.novell.com> <CAMe9rOqfsYt9E3C3S5HMhKDOBE7Egg08Xw1jun6u-RwcUR=a-g@mail.gmail.com>
>>> On 30.05.18 at 14:30, <hjl.tools@gmail.com> wrote:
>> --- a/gas/testsuite/gas/i386/rex.s
>> +++ b/gas/testsuite/gas/i386/rex.s
>> @@ -10,6 +10,16 @@ _start:
>> rex/fxsave (%r8,%r8)
>> rex64/fxsave (%r8,%r8)
>>
>> + rex.w add (%rax,%rax), %eax
>> + rex.r add (%rax,%rax), %eax
>> + rex.b add (%rax,%rax), %eax
>> + rex.x add (%rax,%rax), %eax
>> +
>> + rex.w add (%r8,%rax), %eax
>> + rex.r add (%rax,%r8), %eax
>> + rex.b add (%rax,%rax), %r8d
>
> Since R and B bits have been set in this case, shouldn't rex.r/rex.b
> be the extra
> REX prefix?
I may not understand your question. In all of the cases prefix and
operands specify non-overlapping sets of REX bits. In this last
quoted line, only REX.R gets set from processing the operands.
Jan