diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/target/arm_disassembler.c | 12 | ||||
-rw-r--r-- | src/target/arm_disassembler.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/target/arm_disassembler.c b/src/target/arm_disassembler.c index 1536679..f432f57 100644 --- a/src/target/arm_disassembler.c +++ b/src/target/arm_disassembler.c @@ -170,6 +170,18 @@ static int evaluate_pld(uint32_t opcode, return ERROR_OK; } + /* ISB */ + if ((opcode & 0x07f000f0) == 0x05700060) { + instruction->type = ARM_ISB; + + snprintf(instruction->text, + 128, + "0x%8.8" PRIx32 "\t0x%8.8" PRIx32 "\tISB %s", + address, opcode, + ((opcode & 0x0000000f) == 0xf) ? "SY" : "UNK"); + + return ERROR_OK; + } return evaluate_unknown(opcode, address, instruction); } diff --git a/src/target/arm_disassembler.h b/src/target/arm_disassembler.h index b73f24a..e9f4d44 100644 --- a/src/target/arm_disassembler.h +++ b/src/target/arm_disassembler.h @@ -107,6 +107,7 @@ enum arm_instruction_type { ARM_MRRC, ARM_PLD, ARM_DSB, + ARM_ISB, ARM_QADD, ARM_QDADD, ARM_QSUB, |