summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp2
-rw-r--r--llvm/test/MC/ARM/fp-const-errors.s3
2 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index d368e2349b3..7d49302f9a9 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -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;
}
diff --git a/llvm/test/MC/ARM/fp-const-errors.s b/llvm/test/MC/ARM/fp-const-errors.s
index 2a68ddbe727..a91799ba21d 100644
--- a/llvm/test/MC/ARM/fp-const-errors.s
+++ b/llvm/test/MC/ARM/fp-const-errors.s
@@ -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
OpenPOWER on IntegriCloud