[PATCH]: x86 gas: allow 'rep' prefix on 'bsf' and 'bsr' instructions

Jan Beulich JBeulich@suse.com
Fri Jul 6 13:47:00 GMT 2012


>>> On 06.07.12 at 15:06, "H.J. Lu" <hjl.tools@gmail.com> wrote:
> On Fri, Jul 6, 2012 at 2:52 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>> On 21.06.12 at 23:36, Roland McGrath <mcgrathr@google.com> wrote:
>>> 'rep; bsf ...'/'rep; bsr ...' are encoded the same as 'tzcnt ...'/'lzcnt
>>> ...'.
>>
>> While tzcnt really is an extension of bsf, lzcnt is not one of bsr,
>> so I don't really follow why it's useful to allow the prefix there.
>>
> 
> It can be used to encode lzcnt with the older assembler,
> similar to pause.

You didn't get my point: rep bsr, for non-zero input, is _not_
equivalent to bsr (this equivalence exists only for bsf/tzcnt,
no matter what the Intel SDM says). Hence allowing this
combination is potentially misleading, and not useful to gcc
(which was the supposed original goal of the change).

On an older assembler (which would then also not support
bundle align mode) rep;bsr could be used equally well.

Jan



More information about the Binutils mailing list