diff options
author | Oliver Stannard <oliver.stannard@arm.com> | 2017-03-14 13:50:10 +0000 |
---|---|---|
committer | Oliver Stannard <oliver.stannard@arm.com> | 2017-03-14 13:50:10 +0000 |
commit | 6ee22c41f85b3e230ab4aa9f7d7d12c7745579f6 (patch) | |
tree | 62acf92b25df2b0bb8769e2f47de0730931f5611 | |
parent | 283316b5c02d4daa131024a238019ceb28fac9dc (diff) | |
download | bcm5719-llvm-6ee22c41f85b3e230ab4aa9f7d7d12c7745579f6.tar.gz bcm5719-llvm-6ee22c41f85b3e230ab4aa9f7d7d12c7745579f6.zip |
[ARM] Diagnose ARM MOVT without :lower16: or :upper16: expression
This instruction was missing from the list of opcodes that we check, so we were
hitting an llvm_unreachable in ARMMCCodeEmitter.cpp for the ARM MOVT
instruction, rather than the diagnostic that is emitted for the other MOVW/MOVT
instructions.
Differential revision: https://reviews.llvm.org/D30936
llvm-svn: 297739
-rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 1 | ||||
-rw-r--r-- | llvm/test/MC/ARM/diagnostics.s | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index f20ee1b91ac..1a6f8e763e2 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -6682,6 +6682,7 @@ bool ARMAsmParser::validateInstruction(MCInst &Inst, break; } case ARM::MOVi16: + case ARM::MOVTi16: case ARM::t2MOVi16: case ARM::t2MOVTi16: { diff --git a/llvm/test/MC/ARM/diagnostics.s b/llvm/test/MC/ARM/diagnostics.s index a1dd95f7d7f..549b13b7d42 100644 --- a/llvm/test/MC/ARM/diagnostics.s +++ b/llvm/test/MC/ARM/diagnostics.s @@ -491,10 +491,13 @@ foo2: mov r0, foo2 movw r0, foo2 + movt r0, foo2 @ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16 @ CHECK-ERRORS: ^ @ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16 @ CHECK-ERRORS: ^ +@ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16 +@ CHECK-ERRORS: ^ str r0, [r0, #4]! str r0, [r0, r1]! |