[llvm] r275437 - ARM: fix vmov.i64 immediate validity check

Tim Northover via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 14 10:04:35 PDT 2016


Author: tnorthover
Date: Thu Jul 14 12:04:34 2016
New Revision: 275437

URL: http://llvm.org/viewvc/llvm-project?rev=275437&view=rev
Log:
ARM: fix vmov.i64 immediate validity check

Typo meant we were only checking the low byte (repeatedly).

Modified:
    llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    llvm/trunk/test/MC/ARM/fp-const-errors.s

Modified: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp?rev=275437&r1=275436&r2=275437&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Thu Jul 14 12:04:34 2016
@@ -1731,7 +1731,7 @@ public:
     if (!CE) return false;
     uint64_t Value = CE->getValue();
     // i64 value with each byte being either 0 or 0xff.
-    for (unsigned i = 0; i < 8; ++i)
+    for (unsigned i = 0; i < 8; ++i, Value >>= 8)
       if ((Value & 0xff) != 0 && (Value & 0xff) != 0xff) return false;
     return true;
   }

Modified: llvm/trunk/test/MC/ARM/fp-const-errors.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/fp-const-errors.s?rev=275437&r1=275436&r2=275437&view=diff
==============================================================================
--- llvm/trunk/test/MC/ARM/fp-const-errors.s (original)
+++ llvm/trunk/test/MC/ARM/fp-const-errors.s Thu Jul 14 12:04:34 2016
@@ -20,3 +20,6 @@ fconsts s1, #1.0
 
 fconstd d2, #1.0
 @ CHECK: error: invalid floating point immediate
+
+vmov.i64 d0, 0x8000000000000000
+@ CHECK: error: invalid operand for instruction




More information about the llvm-commits mailing list