Hi,
On Wed, Jun 2, 2010 at 11:42 AM, Richard W.M. Jones <rjones(a)redhat.com> wrote:
I wonder what the performance impact is. NOPL appears to be a
variable length NOP (no-op). Obviously a very useful instruction for
things like alignment, and gcc seems to stuff lots of them into the
code:
$ objdump -d /bin/ls | wc -l
16867
$ objdump -d /bin/ls | grep nopl | wc -l
369
369/16867 ~ 2%
This is not a very fair comparison because we'd want to know how
frequently NOPL is executed, but I hope it shows that these
instructions are not infrequent.
I recall checking this when F12 was declared to go i686 but retain
support for Geode LX CPUs. NOPLs were common in x86_64, but seemed to
be very infrequent in 32-bit land (which is what would run on a Geode
anyway).
To see if this is still the case, I downloaded and extracted F13's
32-bit coreutils, and no binary appears to contain a single NOPL.
(Though I get a similar result as your test with x86_64.)
objdump -d {,usr/}{,s}bin/* | grep -Fc nopl
0
Having said that, AMD Geodes are slowwwwww anyway ...
I wouldn't exactly use it as a gaming rig, but a silent wireless
computer on <5W power can always be used for something.