aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/arm_disassembler.c12
-rw-r--r--src/target/arm_disassembler.h1
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,