[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