summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Leviant <eleviant@accesssoftek.com>2017-06-29 15:38:47 +0000
committerEugene Leviant <eleviant@accesssoftek.com>2017-06-29 15:38:47 +0000
commit6269d39f44d22a80e0eb84e987b4531d688333da (patch)
treee1f845748433b0d7d8199d8f7ad8e3c3a1609f2e
parent480907248e26ab2536542446d5ac5fa7c08518d3 (diff)
downloadbcm5719-llvm-6269d39f44d22a80e0eb84e987b4531d688333da.tar.gz
bcm5719-llvm-6269d39f44d22a80e0eb84e987b4531d688333da.zip
[llvm-objdump] Handle invalid instruction gracefully on ARM
Differential revision: https://reviews.llvm.org/D34813 llvm-svn: 306687
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp2
-rw-r--r--llvm/test/tools/llvm-objdump/ARM/invalid-instruction.s9
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index 585726208a8..5ab236b7fd4 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
@@ -486,7 +486,7 @@ DecodeStatus ARMDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
}
}
- Size = 0;
+ Size = 4;
return MCDisassembler::Fail;
}
diff --git a/llvm/test/tools/llvm-objdump/ARM/invalid-instruction.s b/llvm/test/tools/llvm-objdump/ARM/invalid-instruction.s
new file mode 100644
index 00000000000..a63300cadff
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/ARM/invalid-instruction.s
@@ -0,0 +1,9 @@
+@RUN: llvm-mc -triple arm-unknown-linux -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+
+.text
+ b l0
+ .inst 0xffffffff
+l0:
+
+@CHECK: 0: 00 00 00 ea b #0 <l0>
+@CHECK-NEXT: 4: ff ff ff ff <unknown>
OpenPOWER on IntegriCloud