summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-10-13 21:00:04 +0000
committerJim Grosbach <grosbach@apple.com>2010-10-13 21:00:04 +0000
commit7e72ec6626b6eaa06519145dd81c5142b9ad7e3c (patch)
tree50b19c56398450515c05a94e7bf5875f1d85f9cb /llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
parentf106ecfa59981a830a00209ec704a01e57348422 (diff)
downloadbcm5719-llvm-7e72ec6626b6eaa06519145dd81c5142b9ad7e3c.tar.gz
bcm5719-llvm-7e72ec6626b6eaa06519145dd81c5142b9ad7e3c.zip
Refactor the ARM 'setend' instruction pattern. Use a single instruction pattern
and handle the operand explicitly. Flesh out encoding information. Add an explicit disassembler testcase for the instruction. llvm-svn: 116432
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp')
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
index a5494091c9f..c73ff6dd59b 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
+++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
@@ -2998,13 +2998,17 @@ static bool DisassembleMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
case ARM::WFE:
case ARM::WFI:
case ARM::SEV:
- case ARM::SETENDBE:
- case ARM::SETENDLE:
return true;
default:
break;
}
+ if (Opcode == ARM::SETEND) {
+ NumOpsAdded = 1;
+ MI.addOperand(MCOperand::CreateImm(slice(insn, 9, 9)));
+ return true;
+ }
+
// CPS has a singleton $opt operand that contains the following information:
// opt{4-0} = mode from Inst{4-0}
// opt{5} = changemode from Inst{17}
OpenPOWER on IntegriCloud