aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-09-09 21:45:00 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-09-09 21:45:00 +0000
commit73e0ad8220554c7b81380222c694cf5ba68f826f (patch)
tree37e3c8156706d6b818b196e43ba017a5630de3e1 /llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
parent58560a05ad15cd7439183e07e72bbb6b09d1f236 (diff)
downloadllvm-73e0ad8220554c7b81380222c694cf5ba68f826f.zip
llvm-73e0ad8220554c7b81380222c694cf5ba68f826f.tar.gz
llvm-73e0ad8220554c7b81380222c694cf5ba68f826f.tar.bz2
[Hexagon] Fix disassembler crash after r279255
When p0 was added as an explicit operand to the duplex subinstructions, the disassembler was not updated to reflect this. llvm-svn: 281104
Diffstat (limited to 'llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp')
-rw-r--r--llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
index 7bc08ec..e020351 100644
--- a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
+++ b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
@@ -1501,6 +1501,9 @@ void HexagonDisassembler::addSubinstOperands(MCInst *MI, unsigned opcode,
operand = getRegFromSubinstEncoding(inst & 0xf);
Op = MCOperand::createReg(operand);
MI->addOperand(Op);
+ if (opcode == Hexagon::V4_SA1_setin1)
+ break;
+ MI->addOperand(MCOperand::createReg(Hexagon::P0));
break;
case Hexagon::V4_SA1_cmpeqi:
// Rs 7-4, u 1-0