diff options
author | Tim Northover <tnorthover@apple.com> | 2016-07-14 17:04:34 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2016-07-14 17:04:34 +0000 |
commit | 6003fb58df1d099fec6c50c5ec0b83c4dddfe4bd (patch) | |
tree | 66ff0061cdc193e9b438223f7929389351584cda | |
parent | 69b46751804a8ac162fd219188cadddc6721ca44 (diff) | |
download | bcm5719-llvm-6003fb58df1d099fec6c50c5ec0b83c4dddfe4bd.tar.gz bcm5719-llvm-6003fb58df1d099fec6c50c5ec0b83c4dddfe4bd.zip |
ARM: fix vmov.i64 immediate validity check
Typo meant we were only checking the low byte (repeatedly).
llvm-svn: 275437
-rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 2 | ||||
-rw-r--r-- | llvm/test/MC/ARM/fp-const-errors.s | 3 |
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 |