From bf4eca2e562d036f109f1782e95b233453b0d503 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 12 Dec 2018 11:40:28 +0000 Subject: [PATCH] re PR target/86806 (SPARC port needs updating for CVE-2017-5753) PR target/86806 * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. (speculation_barrier): New instruction for V9. From-SVN: r267053 --- gcc/ChangeLog | 6 ++++++ gcc/config/sparc/sparc.md | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a6916b95ac..2026219238f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-12-12 Eric Botcazou + + PR target/86806 + * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. + (speculation_barrier): New instruction for V9. + 2018-12-12 Segher Boessenkool Iain Sandoe diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index df769405190..431993cd70f 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -104,6 +104,9 @@ (define_c_enum "unspecv" [ UNSPECV_BLOCKAGE + + UNSPECV_SPECULATION_BARRIER + UNSPECV_PROBE_STACK_RANGE UNSPECV_FLUSHW @@ -7309,6 +7312,14 @@ visl") "" [(set_attr "length" "0")]) +;; We use membar #Sync for the speculation barrier on V9. + +(define_insn "speculation_barrier" + [(unspec_volatile [(const_int 0)] UNSPECV_SPECULATION_BARRIER)] + "TARGET_V9" + "membar\t64" + [(set_attr "type" "multi")]) + (define_expand "probe_stack" [(set (match_operand 0 "memory_operand" "") (const_int 0))] "" -- 2.30.2