The point that gets missed there is that, abstractly, a NOP is meant to be exactly as it says on the tin, a No Operation.
It's meant to do nothing at all - for a predefined number of clock cycles.
A NOP is commonly used for timing purposes, that completely breaks that contract.
Again, NOPL is not standard i686 - it's an extension supported by the vast, vast majority of i686 class processors. If you're compiling generically for i686, you cannot assume that it is present.
Bad patches like the above to work around broken compilation cause more harm than good, plastering over the real problem.
The frustrating thing is that broken semantics for i686 have led to absurd patches such as the following being proposed as a workaround:
http:// groups. google. com/group/ linux.kernel/ browse_ thread/ thread/ c1ec68f5498236d c/617726bec3159 5ed?show_ docid=617726bec 31595ed
The point that gets missed there is that, abstractly, a NOP is meant to be exactly as it says on the tin, a No Operation.
It's meant to do nothing at all - for a predefined number of clock cycles.
A NOP is commonly used for timing purposes, that completely breaks that contract.
Again, NOPL is not standard i686 - it's an extension supported by the vast, vast majority of i686 class processors. If you're compiling generically for i686, you cannot assume that it is present.
Bad patches like the above to work around broken compilation cause more harm than good, plastering over the real problem.