Skip to content

Expand ARM and Thumb lifting coverage#8259

Open
zznop wants to merge 2 commits into
devfrom
test_armv7_lifting
Open

Expand ARM and Thumb lifting coverage#8259
zznop wants to merge 2 commits into
devfrom
test_armv7_lifting

Conversation

@zznop

@zznop zznop commented Jun 11, 2026

Copy link
Copy Markdown
Member
  • Adds lifting support for ~200 thumb instructions and ~50 ARM instructions (some of which are NEON or VFP extensions)
  • Performs condition coalescing of conditional branches that are at the end of if/then (IT instruction) patterns
  • Contains multiple bug fixes in existing lifting code
  • Simplifies some existing instructions that were previously lifted directly by using intrinsics


The two attached binaries (one for ARM and one Thumb) can be used to evaluate the lifting for each instruction (in addition to tests integrated into lift_check.py).

armv7_added_lift_arm.bin.zip
armv7_added_lift_thumb2.bin.zip

Closes #3968
Closes #5527

zznop added 2 commits June 11, 2026 16:48
Add LLIL support for a broad set of previously unimplemented or partially
implemented ARMv7, Thumb2, VFP, and NEON instructions.

Cover system, control, synchronization, hint, and coprocessor operations,
including MRS, MSR, VMSR, VMRS, SMC, HVC, CPS/CPSID/CPSIE, CLREX,
DMB, DSB, ISB, PLD, SETEND, SRS/RFE, STC/LDC variants, and related
intrinsics.

Add integer, DSP, saturation, CRC, multiply, and packed arithmetic lifting,
including CRC32 variants, QADD/QSUB forms, SSAT/USAT forms, SMMUL/SMMLA,
SMLA/SMLAL variants, SXT/UXT variants, REV/RBIT/SEL, packed add/sub
variants, UQASX/UQSAX, and Thumb writeback/control-transfer cases.

Expand VFP/NEON support for vector moves, arithmetic, comparisons,
conversions, shifts, narrowing/widening operations, structured loads/stores,
table lookup, reductions, duplicate/reverse/ext operations, and fused
multiply forms, wiring new intrinsics and metadata where needed.

Extend ARM/Thumb decoder support where required, including CRC32 Thumb
variants, and add focused ARM and Thumb lift tests for the new coverage.
@zznop zznop added this to the Krypton milestone Jun 11, 2026
@zznop zznop requested a review from rssor June 11, 2026 20:57
@zznop zznop self-assigned this Jun 11, 2026
@zznop zznop added the Arch: ARM/Thumb Issues with the ARM/Thumb architecture plugin label Jun 11, 2026
@zznop

zznop commented Jun 11, 2026

Copy link
Copy Markdown
Member Author
Screenshot 2026-06-11 at 5 02 59 PM Screenshot 2026-06-11 at 5 02 16 PM

Here's an after/before

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Arch: ARM/Thumb Issues with the ARM/Thumb architecture plugin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

thumb2 consistent it conditional lifting Armv7: Instruction Disassembly/Lifting Completion

1 participant