git: 2cd533b0af50 - stable/12 - Fix clang's internal assembler adding unwanted prefix to VIA xstore

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sat, 25 Dec 2021 11:56:02 UTC
The branch stable/12 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=2cd533b0af50e0bc24ef034ecfe2c679d51426b4

commit 2cd533b0af50e0bc24ef034ecfe2c679d51426b4
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-10-23 18:19:26 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-12-25 11:51:30 +0000

    Fix clang's internal assembler adding unwanted prefix to VIA xstore
    
    Merge commit 2d8c18fbbdd1 from llvm git (by Jessica Clarke):
    
      [X86] Don't add implicit REP prefix to VIA PadLock xstore
    
      Commit 8fa3e8fa1492 added an implicit REP prefix to all VIA PadLock
      instructions, but GNU as doesn't add one to xstore, only all the others.
      This resulted in a kernel panic regression in FreeBSD upon updating to
      LLVM 11 (https://bugs.freebsd.org/259218) which includes the commit in
      question. This partially reverts that commit.
    
      Reviewed By: craig.topper
    
      Differential Revision: https://reviews.llvm.org/D112355
    
    MFC after:      3 days
    
    (cherry picked from commit 4b9725184e315596aa401cecb230033c6d6d5f29)
---
 contrib/llvm-project/llvm/lib/Target/X86/X86InstrSystem.td | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSystem.td b/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSystem.td
index eb8740896e5d..89b6dbdab5dc 100644
--- a/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSystem.td
+++ b/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSystem.td
@@ -585,7 +585,7 @@ def XRSTORS64 : RI<0xC7, MRM3m, (outs), (ins opaquemem:$dst),
 //===----------------------------------------------------------------------===//
 // VIA PadLock crypto instructions
 let Defs = [RAX, RDI], Uses = [RDX, RDI], SchedRW = [WriteSystem] in
-  def XSTORE : I<0xa7, MRM_C0, (outs), (ins), "xstore", []>, TB, REP;
+  def XSTORE : I<0xa7, MRM_C0, (outs), (ins), "xstore", []>, TB;
 
 def : InstAlias<"xstorerng", (XSTORE)>;