aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ObjectFile.cpp
diff options
context:
space:
mode:
authorSergei Barannikov <barannikov88@gmail.com>2025-09-19 20:37:52 +0300
committerGitHub <noreply@github.com>2025-09-19 17:37:52 +0000
commit4cace1ff0f9a144de9f46f4521d140080e4e284d (patch)
treeaf623fad1af8a30cbbcf4003627171416522af10 /llvm/lib/Object/ObjectFile.cpp
parent4c7ebf825edabb5e0433b312ddac7914028e4488 (diff)
downloadllvm-4cace1ff0f9a144de9f46f4521d140080e4e284d.zip
llvm-4cace1ff0f9a144de9f46f4521d140080e4e284d.tar.gz
llvm-4cace1ff0f9a144de9f46f4521d140080e4e284d.tar.bz2
[ARM] Verify that disassembled instruction is correct (#157360)
This change adds basic `MCInst` verification (checks the number of operands) and fixes detected bugs. * `RFE*` instructions have only one operand, but `DecodeRFEInstruction` added two. * `DecodeMVEModImmInstruction` and `DecodeMVEVCMP` added a `vpred` operand, but this is what `AddThumbPredicate` normally does. This resulted in an extra `vpred` operand. * `DecodeMVEVADCInstruction` added an extra immediate operand. * `getARMInstruction` added a `pred` operand to instructions that don't have one (via `DecodePredicateOperand`). * `AddThumb1SBit` appended an extra register operand to instructions that don't modify CPSR (such as `tBL`). * Instructions in `NEONDup` namespace have `pred` operand that the generated code successfully decodes. The operand was added once again by `getARMInstruction`/`getThumbInstruction` via `AddThumbPredicate`. Functional changes extracted from #156540.
Diffstat (limited to 'llvm/lib/Object/ObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions