x86 - add speculation_barrier pattern
authorRichard Earnshaw <rearnsha@arm.com>
Wed, 1 Aug 2018 08:16:38 +0000 (08:16 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Wed, 1 Aug 2018 08:16:38 +0000 (08:16 +0000)
commit31e962f2dd67eef0f148b60696df9d95cc1dd713
treef062402e6442ac356e0f274656bcad1c4f5e332e
parent71f10c42d09badbc3a847bdc0755b6d320eb6bc2
x86 - add speculation_barrier pattern

This patch adds a speculation barrier for x86, based on my
understanding of the required mitigation for that CPU, which is to use
an lfence instruction.

This patch needs some review by an x86 expert and if adjustments are
needed, I'd appreciate it if they could be picked up by the port
maintainer.  This is supposed to serve as an example of how to deploy
the new __builtin_speculation_safe_value() intrinsic on this
architecture.

* config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
(speculation_barrier): New insn.

From-SVN: r263196
gcc/ChangeLog
gcc/config/i386/i386.md