From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1909) id 3BC72385740D; Thu, 16 Sep 2021 11:44:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3BC72385740D 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 r11-9006] sparc: Add NOP in stack_protect_setsi if sparc_fix_b2bst enabled X-Act-Checkin: gcc X-Git-Author: Daniel Cederman X-Git-Refname: refs/heads/releases/gcc-11 X-Git-Oldrev: 7b30a12edf7a3a461bbfc9cbb29b3050c7164032 X-Git-Newrev: 3fd9656951bc88e20d475c989c03d5da507b973b Message-Id: <20210916114433.3BC72385740D@sourceware.org> Date: Thu, 16 Sep 2021 11:44:33 +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:44:33 -0000 https://gcc.gnu.org/g:3fd9656951bc88e20d475c989c03d5da507b973b commit r11-9006-g3fd9656951bc88e20d475c989c03d5da507b973b Author: Daniel Cederman Date: Thu Oct 1 09:11:38 2020 +0200 sparc: Add NOP in stack_protect_setsi 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_setsi): 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 c5d369626cc..2c53ec8fb41 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_setdi" [(set (match_operand:DI 0 "memory_operand" "=m")