[rfc] nopl should not be output on -mtune=i686
H.J. Lu
hjl.tools@gmail.com
Tue Feb 8 17:23:00 GMT 2011
On Tue, Feb 8, 2011 at 9:10 AM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> Hi,
>
> I do not fully understand the intention when to use / not use nopl.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=579838#c32
> Nick Lowe wrote:
> # The NOPL instruction is not supported by all i686 processors, the coded
> # assumption was that they all did. This has been changed by the recent AMD
> # patches linked to by Quentin Neill so that it is not assumed and it's
> # specified as an extension where it is supported.
>
> Current binutils HEAD:
> -march | -mtune | nopl used? | after the attached patch: nopl used?
> - | - | no | no
> i686 | -/i686 | no | no
> - | i686 | yes = BUG | no
> core2 | -/core2 | yes | yes
> - | core2 | yes = BUG | no
>
> => Currently suppressing -march now produces more advanced code output, this
> does not seem correct to me.
By default, x86 assembler assumes that the target processor accepts
any instructions. You can restrict ISA sets by -march and .arch directive.
-mtune= doesn't change ISA. It seems that we want a way to restrict ISA
sets for NOP paddings without restricting ISA sets elsewhere?
> After the patch code built with only `-mtune=i686' then remains compatible
> with AMD Geode LX.
>
> The flag `+nop' (such as `-march=i686+nop') does not work for me as expected
> with HEAD and neither works with the patched code.
Please file a bug report.
Thanks.
H.J.
---
More information about the Binutils
mailing list