@@ -234,31 +234,6 @@ def imm_port6 : Operand<i8> {
234234// Addressing mode pattern reg+imm6
235235def addr : ComplexPattern<iPTR, 2, "SelectAddr", [], [SDNPWantRoot]>;
236236
237- // AsmOperand class for a pointer register.
238- // Used with the LD/ST family of instructions.
239- // See FSTLD in AVRInstrFormats.td
240- def PtrRegAsmOperand : AsmOperandClass { let Name = "Reg"; }
241- 
242- // A special operand type for the LD/ST instructions.
243- // It converts the pointer register number into a two-bit field used in the
244- // instruction.
245- def LDSTPtrReg : Operand<i16> {
246-  let MIOperandInfo = (ops PTRREGS);
247-  let EncoderMethod = "encodeLDSTPtrReg";
248- 
249-  let ParserMatchClass = PtrRegAsmOperand;
250- }
251- 
252- // A special operand type for the LDD/STD instructions.
253- // It behaves identically to the LD/ST version, except restricts
254- // the pointer registers to Y and Z.
255- def LDDSTDPtrReg : Operand<i16> {
256-  let MIOperandInfo = (ops PTRDISPREGS);
257-  let EncoderMethod = "encodeLDSTPtrReg";
258- 
259-  let ParserMatchClass = PtrRegAsmOperand;
260- }
261- 
262237//===----------------------------------------------------------------------===//
263238// AVR predicates for subtarget features
264239//===----------------------------------------------------------------------===//
@@ -896,7 +871,7 @@ let canFoldAsLoad = 1, isReMaterializable = 1 in {
896871
897872// Indirect loads.
898873let canFoldAsLoad = 1, isReMaterializable = 1 in {
899-  def LDRdPtr : FSTLD<0, 0b00, (outs GPR8:$reg), (ins LDSTPtrReg :$ptrreg),
874+  def LDRdPtr : FSTLD<0, 0b00, (outs GPR8:$reg), (ins PTRREGS :$ptrreg),
900875 "ld\t$reg, $ptrreg",
901876 [(set GPR8:$reg, (load i16:$ptrreg))]>,
902877 Requires<[HasSRAM]>;
@@ -919,13 +894,8 @@ let canFoldAsLoad = 1, isReMaterializable = 1 in {
919894// Indirect loads (with postincrement or predecrement).
920895let mayLoad = 1, hasSideEffects = 0,
921896 Constraints = "$ptrreg = $base_wb,@earlyclobber $reg" in {
922-  def LDRdPtrPi : FSTLD<0, 0b01,
923-  (outs GPR8
924-  : $reg, PTRREGS
925-  : $base_wb),
926-  (ins LDSTPtrReg
927-  : $ptrreg),
928-  "ld\t$reg, $ptrreg+", []>,
897+  def LDRdPtrPi : FSTLD<0, 0b01, (outs GPR8:$reg, PTRREGS:$base_wb),
898+  (ins PTRREGS:$ptrreg), "ld\t$reg, $ptrreg+", []>,
929899 Requires<[HasSRAM]>;
930900
931901 // LDW Rd+1:Rd, P+
@@ -937,7 +907,7 @@ let mayLoad = 1, hasSideEffects = 0,
937907 Requires<[HasSRAM]>;
938908
939909 def LDRdPtrPd : FSTLD<0, 0b10, (outs GPR8:$reg, PTRREGS:$base_wb),
940-  (ins LDSTPtrReg :$ptrreg), "ld\t$reg, -$ptrreg", []>,
910+  (ins PTRREGS :$ptrreg), "ld\t$reg, -$ptrreg", []>,
941911 Requires<[HasSRAM]>;
942912
943913 // LDW Rd+1:Rd, -P
@@ -1063,7 +1033,7 @@ def STSWKRr : Pseudo<(outs), (ins i16imm:$dst, DREGS:$src),
10631033// Indirect stores.
10641034// ST P, Rr
10651035// Stores the value of Rr into the location addressed by pointer P.
1066- def STPtrRr : FSTLD<1, 0b00, (outs), (ins LDSTPtrReg :$ptrreg, GPR8:$reg),
1036+ def STPtrRr : FSTLD<1, 0b00, (outs), (ins PTRREGS :$ptrreg, GPR8:$reg),
10671037 "st\t$ptrreg, $reg", [(store GPR8:$reg, i16:$ptrreg)]>,
10681038 Requires<[HasSRAM]>;
10691039
@@ -1087,8 +1057,8 @@ let Constraints = "$ptrreg = $base_wb,@earlyclobber $base_wb" in {
10871057 // ST P+, Rr
10881058 // Stores the value of Rr into the location addressed by pointer P.
10891059 // Post increments P.
1090-  def STPtrPiRr : FSTLD<1, 0b01, (outs LDSTPtrReg :$base_wb),
1091-  (ins LDSTPtrReg :$ptrreg, GPR8:$reg, i8imm:$offs),
1060+  def STPtrPiRr : FSTLD<1, 0b01, (outs PTRREGS :$base_wb),
1061+  (ins PTRREGS :$ptrreg, GPR8:$reg, i8imm:$offs),
10921062 "st\t$ptrreg+, $reg",
10931063 [(set i16:$base_wb, (post_store GPR8:$reg, i16:$ptrreg,
10941064 imm:$offs))]>,
@@ -1112,8 +1082,8 @@ let Constraints = "$ptrreg = $base_wb,@earlyclobber $base_wb" in {
11121082 // ST -P, Rr
11131083 // Stores the value of Rr into the location addressed by pointer P.
11141084 // Pre decrements P.
1115-  def STPtrPdRr : FSTLD<1, 0b10, (outs LDSTPtrReg :$base_wb),
1116-  (ins LDSTPtrReg :$ptrreg, GPR8:$reg, i8imm:$offs),
1085+  def STPtrPdRr : FSTLD<1, 0b10, (outs PTRREGS :$base_wb),
1086+  (ins PTRREGS :$ptrreg, GPR8:$reg, i8imm:$offs),
11171087 "st\t-$ptrreg, $reg",
11181088 [(set i16: $base_wb,
11191089 (pre_store GPR8:$reg, i16:$ptrreg, imm:$offs))]>,
0 commit comments