[llvm-commits] [llvm] r153636 - /llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
Bruno Cardoso Lopes
bruno.cardoso at gmail.com
Thu Mar 29 00:42:08 PDT 2012
On Thu, Mar 29, 2012 at 4:11 AM, Craig Topper <craig.topper at gmail.com> wrote:
> Author: ctopper
> Date: Thu Mar 29 02:11:23 2012
> New Revision: 153636
>
> URL: http://llvm.org/viewvc/llvm-project?rev=153636&view=rev
> Log:
> Only allow symbolic names for (v)cmpss/sd/ps/pd encodings 8-31 to be used with 'v' version of instructions.
Testcase?
> Modified:
> llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
>
> Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=153636&r1=153635&r2=153636&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
> +++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Thu Mar 29 02:11:23 2012
> @@ -950,20 +950,21 @@
> if ((PatchedName.startswith("cmp") || PatchedName.startswith("vcmp")) &&
> (PatchedName.endswith("ss") || PatchedName.endswith("sd") ||
> PatchedName.endswith("ps") || PatchedName.endswith("pd"))) {
> - bool IsVCMP = PatchedName.startswith("vcmp");
> + bool IsVCMP = PatchedName[0] == 'v';
> unsigned SSECCIdx = IsVCMP ? 4 : 3;
> unsigned SSEComparisonCode = StringSwitch<unsigned>(
> PatchedName.slice(SSECCIdx, PatchedName.size() - 2))
> - .Case("eq", 0)
> - .Case("lt", 1)
> - .Case("le", 2)
> - .Case("unord", 3)
> - .Case("neq", 4)
> - .Case("nlt", 5)
> - .Case("nle", 6)
> - .Case("ord", 7)
> - .Case("eq_uq", 8)
> - .Case("nge", 9)
> + .Case("eq", 0x00)
> + .Case("lt", 0x01)
> + .Case("le", 0x02)
> + .Case("unord", 0x03)
> + .Case("neq", 0x04)
> + .Case("nlt", 0x05)
> + .Case("nle", 0x06)
> + .Case("ord", 0x07)
> + /* AVX only from here */
> + .Case("eq_uq", 0x08)
> + .Case("nge", 0x09)
> .Case("ngt", 0x0A)
> .Case("false", 0x0B)
> .Case("neq_oq", 0x0C)
> @@ -987,7 +988,7 @@
> .Case("gt_oq", 0x1E)
> .Case("true_us", 0x1F)
> .Default(~0U);
> - if (SSEComparisonCode != ~0U) {
> + if (SSEComparisonCode != ~0U && (IsVCMP || SSEComparisonCode < 8)) {
> ExtraImmOp = MCConstantExpr::Create(SSEComparisonCode,
> getParser().getContext());
> if (PatchedName.endswith("ss")) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
--
Bruno Cardoso Lopes
http://www.brunocardoso.cc
More information about the llvm-commits
mailing list