From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1909) id 22CF73857418; Thu, 16 Sep 2021 11:08:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 22CF73857418 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Daniel Hellstrom To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-3576] sparc: Add NOP in stack_protect_set32 if sparc_fix_b2bst enabled X-Act-Checkin: gcc X-Git-Author: Daniel Cederman X-Git-Refname: refs/heads/master X-Git-Oldrev: d4aa16699d4bcf9d335a206d3d8f6c1a80142aab X-Git-Newrev: a053dab90e69c2a8289c95caec236f239a2a764b Message-Id: <20210916110852.22CF73857418@sourceware.org> Date: Thu, 16 Sep 2021 11:08:52 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Sep 2021 11:08:52 -0000 https://gcc.gnu.org/g:a053dab90e69c2a8289c95caec236f239a2a764b commit r12-3576-ga053dab90e69c2a8289c95caec236f239a2a764b Author: Daniel Cederman Date: Thu Oct 1 09:11:38 2020 +0200 sparc: Add NOP in stack_protect_set32 if sparc_fix_b2bst enabled This is needed to prevent the Store -> (Non-store or load) -> Store sequence. gcc/ChangeLog: * config/sparc/sparc.md (stack_protect_set32): Add NOP to prevent sensitive sequence for B2BST errata workaround. Diff: --- gcc/config/sparc/sparc.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 24b76e0cacd..3ac074a244d 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -8353,9 +8353,15 @@ visl") (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) (set (match_scratch:SI 2 "=&r") (const_int 0))] "TARGET_ARCH32" - "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2" +{ + if (sparc_fix_b2bst) + return "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2\;nop"; + else + return "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2"; +} [(set_attr "type" "multi") - (set_attr "length" "3")]) + (set (attr "length") (if_then_else (eq_attr "fix_b2bst" "true") + (const_int 4) (const_int 3)))]) (define_insn "stack_protect_set64" [(set (match_operand:DI 0 "memory_operand" "=m")