summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGalen Williamson <galen@vector35.com>2025-01-17 19:35:56 -0500
committerGalen Williamson <galen@vector35.com>2025-01-17 19:35:56 -0500
commit13e8a11adf4910c8871eb80a84f080652f76e72b (patch)
tree11d233355e243739a3be916ac788e9f5d9089143
parent1699c71999d29d32aba5c9f8fea193a661a4b02b (diff)
[thumb2] Fix #6328: "Invalid intrinsic lifting for MRS instruction: destination register incorrectly specified" by correctly specifying the intrinsic outputs
-rw-r--r--arch/armv7/thumb2_disasm/il_thumb2.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/armv7/thumb2_disasm/il_thumb2.cpp b/arch/armv7/thumb2_disasm/il_thumb2.cpp
index 8f9e9bab..e7b783a9 100644
--- a/arch/armv7/thumb2_disasm/il_thumb2.cpp
+++ b/arch/armv7/thumb2_disasm/il_thumb2.cpp
@@ -994,7 +994,8 @@ bool GetLowLevelILForThumbInstruction(Architecture* arch, LowLevelILFunction& il
break;
case armv7::ARMV7_MRS:
{
- int dest_reg = ReadILOperand(il, instr, 0);
+ int dest_reg = GetRegisterByIndex(instr->fields[instr->format->operands[0].field0], instr->format->operands[0].prefix);
+
int intrinsic_id = ARMV7_INTRIN_MRS;
il.AddInstruction(