[PATCH] D123442: [MC][AVR] Implement decoding STD/LDD
Ben Shi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 9 04:21:20 PDT 2022
benshi001 added a comment.
This patch partially fixes
================
Comment at: llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp:279
+ const MCDisassembler *Decoder) {
+ // Decode LDD/STD with offset less than 8.
+ if ((Insn & 0xf000) == 0x8000) {
----------------
LDD/STD should be fully decoded by `decodeMemri`, but due to very complex reason, `decodeMemri` only correctly decodes LDD/STD with offset > 7, and the case offset <= 7 falls into `decodeLoadStore` (decoder method of LD/ST).
We should re-think the organization of definition of LD/ST/LDD/STD in `TD` files to avoid that. But currently I can not figure out a proper way, it invloves register allocation.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123442/new/
https://reviews.llvm.org/D123442
More information about the llvm-commits
mailing list