forked from OSchip/llvm-project
[X86] Don't add implicit REP prefix to VIA PadLock xstore
Commit 8fa3e8fa14
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
This commit is contained in:
parent
b432583d28
commit
2d8c18fbbd
|
@ -584,7 +584,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)>;
|
||||
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
|
||||
|
||||
/// Check xstore does not get an implicit REP prefix but all other PadLock
|
||||
/// instructions do.
|
||||
|
||||
xstore
|
||||
// CHECK: xstore
|
||||
// CHECK: encoding: [0xf3,0x0f,0xa7,0xc0]
|
||||
// CHECK: encoding: [0x0f,0xa7,0xc0]
|
||||
xcryptecb
|
||||
// CHECK: xcryptecb
|
||||
// CHECK: encoding: [0xf3,0x0f,0xa7,0xc8]
|
||||
|
|
Loading…
Reference in New Issue