diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 4 | 
2 files changed, 7 insertions, 5 deletions
| diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 9e31833fca9..111afbf47a6 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -620,13 +620,10 @@ X86Operand *X86ATTAsmParser::ParseMemOperand(unsigned SegReg, SMLoc MemStart) {  bool X86ATTAsmParser::  ParseInstruction(StringRef Name, SMLoc NameLoc,                   SmallVectorImpl<MCParsedAsmOperand*> &Operands) { -  // FIXME: Hack to recognize "sal..." and "rep..." for now. We need a way to -  // represent alternative syntaxes in the .td file, without requiring -  // instruction duplication. +  // FIXME: Hack to recognize some aliases.    StringRef PatchedName = StringSwitch<StringRef>(Name)      .Case("repe", "rep")      .Case("repz", "rep") -    .Case("repnz", "repne")      .Case("push", Is64Bit ? "pushq" : "pushl")      .Case("pop", Is64Bit ? "popq" : "popl")      .Case("pushf", Is64Bit ? "pushfq" : "pushfl") @@ -721,7 +718,8 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,    // Determine whether this is an instruction prefix.    bool isPrefix =      PatchedName == "lock" || PatchedName == "rep" || -    PatchedName == "repne"; +    PatchedName == "repe" || PatchedName == "repz" || +    PatchedName == "repne" || PatchedName == "repnz";    // This does the actual operand parsing.  Don't parse any more if we have a diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 71e90c0ae6d..9df65293890 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -1269,6 +1269,10 @@ def : MnemonicAlias<"cdqe", "cltq">;  def : MnemonicAlias<"pushfd", "pushfl">;  def : MnemonicAlias<"popfd",  "popfl">; +def : MnemonicAlias<"repe", "rep">; +def : MnemonicAlias<"repz", "rep">; +def : MnemonicAlias<"repnz", "repne">; +  def : MnemonicAlias<"salb", "shlb">;  def : MnemonicAlias<"salw", "shlw">;  def : MnemonicAlias<"sall", "shll">; | 

