[llvm] [AVR] Remove LPM/ELPM custom decoder (NFC) (PR #156928)

Sergei Barannikov via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 4 09:56:58 PDT 2025


https://github.com/s-barannikov created https://github.com/llvm/llvm-project/pull/156928

Follow-up to #156361.

>From 4337cebdd77fcebdca2c64046602413c1dd5f034 Mon Sep 17 00:00:00 2001
From: Sergei Barannikov <barannikov88 at gmail.com>
Date: Thu, 4 Sep 2025 19:55:19 +0300
Subject: [PATCH] [AVR] Remove LPM/ELPM custom decoder (NFC)

---
 llvm/lib/Target/AVR/AVRInstrFormats.td               | 12 +++---------
 llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp |  8 --------
 2 files changed, 3 insertions(+), 17 deletions(-)

diff --git a/llvm/lib/Target/AVR/AVRInstrFormats.td b/llvm/lib/Target/AVR/AVRInstrFormats.td
index eb4daf74545b0..7ffe2e1058b46 100644
--- a/llvm/lib/Target/AVR/AVRInstrFormats.td
+++ b/llvm/lib/Target/AVR/AVRInstrFormats.td
@@ -201,20 +201,14 @@ class FSTLD<bit type, bits<2> mode, dag outs, dag ins, string asmstr,
 //===---------------------------------------------------------------------===//
 class FLPMX<bit e, bit p, dag outs, dag ins, string asmstr, list<dag> pattern>
     : AVRInst16<outs, ins, asmstr, pattern> {
+  bits<0> z;
   bits<5> rd;
 
-  let Inst{15 - 12} = 0b1001;
-
-  let Inst{11 - 9} = 0b000;
-  let Inst{8} = rd{4};
-
-  let Inst{7 - 4} = rd{3 - 0};
-
+  let Inst{15 - 9} = 0b1001000;
+  let Inst{8 - 4} = rd;
   let Inst{3 - 2} = 0b01;
   let Inst{1} = e;
   let Inst{0} = p;
-
-  let DecoderMethod = "decodeFLPMX";
 }
 
 //===----------------------------------------------------------------------===//
diff --git a/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp b/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
index d874697185fac..a6d4655cb5300 100644
--- a/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
+++ b/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
@@ -150,14 +150,6 @@ static DecodeStatus decodeFRd(MCInst &Inst, unsigned Insn, uint64_t Address,
   return MCDisassembler::Success;
 }
 
-static DecodeStatus decodeFLPMX(MCInst &Inst, unsigned Insn, uint64_t Address,
-                                const MCDisassembler *Decoder) {
-  if (decodeFRd(Inst, Insn, Address, Decoder) == MCDisassembler::Fail)
-    return MCDisassembler::Fail;
-  Inst.addOperand(MCOperand::createReg(AVR::R31R30));
-  return MCDisassembler::Success;
-}
-
 static DecodeStatus decodeFFMULRdRr(MCInst &Inst, unsigned Insn,
                                     uint64_t Address,
                                     const MCDisassembler *Decoder) {



More information about the llvm-commits mailing list