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 @@ -1417,6 +1417,7 @@ def STDWPtrQRr : Pseudo<(outs),
1417
1417
// Load program memory operations.
1418
1418
let canFoldAsLoad = 1,
1419
1419
isReMaterializable = 1,
1420
+ mayLoad = 1,
1420
1421
hasSideEffects = 0 in
1421
1422
{
1422
1423
let Defs = [R0],
@@ -1437,8 +1438,7 @@ hasSideEffects = 0 in
1437
1438
Requires<[HasLPMX]>;
1438
1439
1439
1440
// Load program memory, while postincrementing the Z register.
1440
- let mayLoad = 1,
1441
- Defs = [R31R30] in
1441
+ let Defs = [R31R30] in
1442
1442
{
1443
1443
def LPMRdZPi : FLPMX<0,
1444
1444
1,
@@ -2007,6 +2007,9 @@ def Asr16 : ShiftPseudo<
2007
2007
// Non-Instruction Patterns
2008
2008
//===----------------------------------------------------------------------===//
2009
2009
2010
+ def : Pat<(load (add i16:$offset, (AVRWrapper tglobaladdr:$base))),
2011
+ (LPMRdZ (SUBIWRdK i16:$offset, tglobaladdr:$base))>;
2012
+
2010
2013
//:TODO: look in x86InstrCompiler.td for odd encoding trick related to
2011
2014
// add x, 128 -> sub x, -128. Clang is emitting an eor for this (ldi+eor)
2012
2015
You can’t perform that action at this time.
0 commit comments