Index: llvm/lib/Target/AVR/AVRInstrInfo.td
===================================================================
--- llvm/lib/Target/AVR/AVRInstrInfo.td
+++ llvm/lib/Target/AVR/AVRInstrInfo.td
@@ -182,7 +182,10 @@
 }
 
 // Address operand for `SP+imm` used by STD{W}SPQRr
-def memspi : Operand<iPTR> { let MIOperandInfo = (ops GPRSP, i16imm); }
+def memspi : Operand<iPTR> {
+  let MIOperandInfo = (ops GPRSP, i16imm);
+  let PrintMethod = "printMemspi";
+}
 
 def relbrtarget_7 : Operand<OtherVT> {
   let PrintMethod = "printPCRelImm";
Index: llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h
===================================================================
--- llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h
+++ llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h
@@ -43,6 +43,9 @@
     printPCRelImm(MI, OpNo, O);
   }
   void printMemri(const MCInst *MI, unsigned OpNo, raw_ostream &O);
+  void printMemspi(const MCInst *MI, unsigned OpNo, raw_ostream &O) {
+    printMemri(MI, OpNo, O);
+  }
 
   // Autogenerated by TableGen.
   std::pair<const char *, uint64_t> getMnemonic(const MCInst *MI) override;