aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/arm/disassembler/arm_disasm.h
diff options
context:
space:
mode:
authorGravatar aroulin <andy.roulin@epfl.ch>2015-08-10 18:21:34 +0200
committerGravatar aroulin <andy.roulin@epfl.ch>2015-08-11 12:48:28 +0200
commit38c87733d9992927135e619d8710ed04785fdb5d (patch)
tree66d6b12711893aec8d769bae411490d644c60825 /src/core/arm/disassembler/arm_disasm.h
parent4a1db13072764f464db5217c6481b87074963d87 (diff)
arm_disasm: ARMv6 mul/div and abs media instructions
SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD, SMMLA, SMMUL, SMMLS USAD8, USADA8
Diffstat (limited to 'src/core/arm/disassembler/arm_disasm.h')
-rw-r--r--src/core/arm/disassembler/arm_disasm.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/arm/disassembler/arm_disasm.h b/src/core/arm/disassembler/arm_disasm.h
index c1bd1b94..259a7786 100644
--- a/src/core/arm/disassembler/arm_disasm.h
+++ b/src/core/arm/disassembler/arm_disasm.h
@@ -73,8 +73,17 @@ enum Opcode {
OP_SHSAX,
OP_SHSUB16,
OP_SHSUB8,
+ OP_SMLAD,
OP_SMLAL,
+ OP_SMLALD,
+ OP_SMLSD,
+ OP_SMLSLD,
+ OP_SMMLA,
+ OP_SMMLS,
+ OP_SMMUL,
+ OP_SMUAD,
OP_SMULL,
+ OP_SMUSD,
OP_SSAT,
OP_SSAT16,
OP_SSAX,
@@ -120,6 +129,8 @@ enum Opcode {
OP_UQSAX,
OP_UQSUB16,
OP_UQSUB8,
+ OP_USAD8,
+ OP_USADA8,
OP_USAT,
OP_USAT16,
OP_USAX,
@@ -193,6 +204,7 @@ class ARM_Disasm {
static Opcode DecodePackingSaturationReversal(uint32_t insn);
static Opcode DecodeMUL(uint32_t insn);
static Opcode DecodeMSRImmAndHints(uint32_t insn);
+ static Opcode DecodeMediaMulDiv(uint32_t insn);
static Opcode DecodeMedia(uint32_t insn);
static Opcode DecodeLDRH(uint32_t insn);
static Opcode DecodeALU(uint32_t insn);
@@ -202,6 +214,7 @@ class ARM_Disasm {
static std::string DisassembleBX(uint32_t insn);
static std::string DisassembleBKPT(uint32_t insn);
static std::string DisassembleCLZ(uint32_t insn);
+ static std::string DisassembleMediaMulDiv(Opcode opcode, uint32_t insn);
static std::string DisassembleMemblock(Opcode opcode, uint32_t insn);
static std::string DisassembleMem(uint32_t insn);
static std::string DisassembleMemHalf(uint32_t insn);