Intel syntax. Adjust special code, used to recognize cmp<comparison code>{ss,sd,ps...
authorDevang Patel <dpatel@apple.com>
Mon, 30 Jan 2012 22:47:12 +0000 (22:47 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 30 Jan 2012 22:47:12 +0000 (22:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149291 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/AsmParser/X86AsmParser.cpp
test/MC/X86/intel-syntax-encoding.s

index 0e8ab2982206303c56eb678c5e6924e84d1174eb..fd6efa63276598361a229b6b4a6e2059f37b3318 100644 (file)
@@ -981,10 +981,9 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
 
   Operands.push_back(X86Operand::CreateToken(PatchedName, NameLoc));
 
-  if (ExtraImmOp)
+  if (ExtraImmOp && !isParsingIntelSyntax())
     Operands.push_back(X86Operand::CreateImm(ExtraImmOp, NameLoc, NameLoc));
 
-
   // Determine whether this is an instruction prefix.
   bool isPrefix =
     Name == "lock" || Name == "rep" ||
@@ -1038,6 +1037,9 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
   else if (isPrefix && getLexer().is(AsmToken::Slash))
     Parser.Lex(); // Consume the prefix separator Slash
 
+  if (ExtraImmOp && isParsingIntelSyntax())
+    Operands.push_back(X86Operand::CreateImm(ExtraImmOp, NameLoc, NameLoc));
+
   // This is a terrible hack to handle "out[bwl]? %al, (%dx)" ->
   // "outb %al, %dx".  Out doesn't take a memory form, but this is a widely
   // documented form in various unofficial manuals, so a lot of code uses it.
index 3e7ad355f465128a7d4e01f93b2054068db14bc1..8891126475b57a836f736856dcc869dcc2d183ca 100644 (file)
@@ -39,3 +39,6 @@ LBB0_3:
 
 // CHECK: encoding: [0xd1,0xe7]
        shl     EDI, 1
+
+// CHECK: encoding: [0x0f,0xc2,0xd1,0x01]
+       cmpltps XMM2, XMM1