File tree 1 file changed +5
-2
lines changed
1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -1443,6 +1443,7 @@ def STDWPtrQRr : Pseudo<(outs),
1443
1443
// Load program memory operations.
1444
1444
let canFoldAsLoad = 1,
1445
1445
isReMaterializable = 1,
1446
+ mayLoad = 1,
1446
1447
hasSideEffects = 0 in
1447
1448
{
1448
1449
let Defs = [R0],
@@ -1469,8 +1470,7 @@ hasSideEffects = 0 in
1469
1470
Requires<[HasLPMX]>;
1470
1471
1471
1472
// Load program memory, while postincrementing the Z register.
1472
- let mayLoad = 1,
1473
- Defs = [R31R30] in
1473
+ let Defs = [R31R30] in
1474
1474
{
1475
1475
def LPMRdZPi : FLPMX<0,
1476
1476
1,
@@ -2033,6 +2033,9 @@ def Asr16 : ShiftPseudo<
2033
2033
// Non-Instruction Patterns
2034
2034
//===----------------------------------------------------------------------===//
2035
2035
2036
+ def : Pat<(load (add i16:$offset, (AVRWrapper tglobaladdr:$base))),
2037
+ (LPMRdZ (SUBIWRdK i16:$offset, tglobaladdr:$base))>;
2038
+
2036
2039
//:TODO: look in x86InstrCompiler.td for odd encoding trick related to
2037
2040
// add x, 128 -> sub x, -128. Clang is emitting an eor for this (ldi+eor)
2038
2041
You can’t perform that action at this time.
0 commit comments