summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp6
-rw-r--r--llvm/test/MC/AsmParser/X86/x86_instructions.s5
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 81967183ed9..4c51ed674e3 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1009,6 +1009,12 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
NameLoc);
}
+ // movsd -> movsl (when no operands are specified).
+ if (Name == "movsd" && Operands.size() == 1) {
+ delete Operands[0];
+ Operands[0] = X86Operand::CreateToken("movsl", NameLoc);
+ }
+
return false;
}
diff --git a/llvm/test/MC/AsmParser/X86/x86_instructions.s b/llvm/test/MC/AsmParser/X86/x86_instructions.s
index d0f6dbfc1a6..7f8a401c076 100644
--- a/llvm/test/MC/AsmParser/X86/x86_instructions.s
+++ b/llvm/test/MC/AsmParser/X86/x86_instructions.s
@@ -83,6 +83,11 @@
// CHECK: movsb
rep;movsb
+// rdar://8456361
+// CHECK: rep
+// CHECK: movsl
+ rep movsd
+
// CHECK: rep
// CHECK: lodsb
rep;lodsb
OpenPOWER on IntegriCloud