diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 7ffb889df39..e8888d6b500 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -662,6 +662,8 @@ def SETSr : I <"sets" , 0x98, MRM0r>, TB; // R8 = def SETSm : Im8<"sets" , 0x98, MRM0m>, TB; // [mem8] = def SETNSr : I <"setns", 0x99, MRM0r>, TB; // R8 = ! def SETNSm : Im8<"setns", 0x99, MRM0m>, TB; // [mem8] = ! +def SETPr : I <"setp" , 0x9A, MRM0r>, TB; // R8 = parity +def SETPm : Im8<"setp" , 0x9A, MRM0m>, TB; // [mem8] = parity def SETLr : I <"setl" , 0x9C, MRM0r>, TB; // R8 = < signed def SETLm : Im8<"setl" , 0x9C, MRM0m>, TB; // [mem8] = < signed def SETGEr : I <"setge", 0x9D, MRM0r>, TB; // R8 = >= signed diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 852b7103e0e..02d9fc5d17f 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -236,6 +236,7 @@ MachineInstr* X86RegisterInfo::foldMemoryOperand(MachineInstr* MI, case X86::SETAr: return MakeMInst( X86::SETAm, FrameIndex, MI); case X86::SETSr: return MakeMInst( X86::SETSm, FrameIndex, MI); case X86::SETNSr: return MakeMInst( X86::SETNSm, FrameIndex, MI); + case X86::SETPr: return MakeMInst( X86::SETPm, FrameIndex, MI); case X86::SETLr: return MakeMInst( X86::SETLm, FrameIndex, MI); case X86::SETGEr: return MakeMInst( X86::SETGEm, FrameIndex, MI); case X86::SETLEr: return MakeMInst( X86::SETLEm, FrameIndex, MI);