-
Notifications
You must be signed in to change notification settings - Fork 280
Incorrect thumb2 disassembly #8039
Copy link
Copy link
Labels
Arch: ARM/ThumbIssues with the ARM/Thumb architecture pluginIssues with the ARM/Thumb architecture pluginComponent: ArchitectureIssue needs changes to an architecture pluginIssue needs changes to an architecture pluginEffort: LowIssues require < 1 week of workIssues require < 1 week of workImpact: HighIssue adds or blocks important functionalityIssue adds or blocks important functionality
Milestone
Metadata
Metadata
Assignees
Labels
Arch: ARM/ThumbIssues with the ARM/Thumb architecture pluginIssues with the ARM/Thumb architecture pluginComponent: ArchitectureIssue needs changes to an architecture pluginIssue needs changes to an architecture pluginEffort: LowIssues require < 1 week of workIssues require < 1 week of workImpact: HighIssue adds or blocks important functionalityIssue adds or blocks important functionality
Version and Platform (required):
Bug Description:
There seems to be a case where in a thumb2 function, instructions are being disassembled as armv7 instead.
It isn't fully clear to me what the conditions are for this, it seems like it may happen after an
itblock?In this image, the instruction at address 6 is being disassembled as

stmlt, which is incorrect:Disassembling that instruction alone as thumb2 gives the correct result, which is a

binstruction:For some reason the instruction is being disassembled as armv7 rather than thumb2, even though the function is being created as thumb2.
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:
stmltinstead ofb)Expected Behavior:
The instruction at address 6 should be disassembled as thumb2.
As an example, this is what the disassembly looks like in IDA.