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