diff --git a/llvm/lib/Target/X86/X86InstrSystem.td b/llvm/lib/Target/X86/X86InstrSystem.td --- a/llvm/lib/Target/X86/X86InstrSystem.td +++ b/llvm/lib/Target/X86/X86InstrSystem.td @@ -584,7 +584,7 @@ //===----------------------------------------------------------------------===// // 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)>; diff --git a/llvm/test/MC/X86/padlock.s b/llvm/test/MC/X86/padlock.s --- a/llvm/test/MC/X86/padlock.s +++ b/llvm/test/MC/X86/padlock.s @@ -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]