svn commit: r315522 - in head: contrib/binutils/ld/emulparams sys/conf
Tijl Coosemans
tijl at FreeBSD.org
Sun Mar 19 14:22:50 UTC 2017
On Sun, 19 Mar 2017 13:04:50 +1100 (EST) Bruce Evans <brde at optusnet.com.au> wrote:
> On Sun, 19 Mar 2017, Ed Maste wrote:
>> Log:
>> use INT3 instead of NOP for x86 binary padding
>>
>> We should never end up executing the inter-function padding, so we
>> are better off faulting than silently carrying on to whatever function
>> happens to be next.
>>
>> Note that LLD will soon do this by default (although it currently pads
>> with zeros).
>>
>> Reviewed by: dim, kib
>> MFC after: 1 month
>> Sponsored by: The FreeBSD Foundation
>> Differential Revision: https://reviews.freebsd.org/D10047
>
> Is this a pessimization? Instruction prefetch near the end of almost
> every function now fetches INT3 instead of NOP. Both have to be
> decoded to decoded whether to speculatively execute them. INT3 is
> unlikely to be speculatively executed, but it takes extra work to
> decide not to do so.
I seem to vaguely remember that ud2 should be used to stop speculative
execution (and the instruction fetching and possible cache invalidation
because of it).
More information about the svn-src-head
mailing list