@@ -72,8 +72,6 @@ def IsOrAdd: PatFrag<(ops node:$A, node:$B), (or node:$A, node:$B), [{
72
72
return isOrEquivalentToAdd(N);
73
73
}]>;
74
74
75
- def loadi64 : PatFrag<(ops node:$ptr), (i64 (load node:$ptr))>;
76
-
77
75
class wram_load_frag<PatFrag base_load> : PatFrag<(ops node:$ptr), (base_load node:$ptr), [{
78
76
return IsALoadFromAddrSpace(N, DPUADDR_SPACE::WRAM);
79
77
}]>;
@@ -82,6 +80,8 @@ class wram_store_frag<PatFrag base_store> : PatFrag<(ops node:$val, node:$ptr),
82
80
return IsAStoreToAddrSpace(N, DPUADDR_SPACE::WRAM);
83
81
}]>;
84
82
83
+ def wram_loadi64 : PatFrag<(ops node:$ptr), (i64 (wram_load_frag<load> node:$ptr))>;
84
+
85
85
multiclass WramLoadXPat<ImmOperand LdTy, PatFrag LoadOp, DPUInstruction Inst> {
86
86
def : Pat<(LdTy (wram_load_frag<LoadOp> SimpleRegOrCst:$ra)), (Inst SimpleRegOrCst:$ra, 0)>;
87
87
def : Pat<(LdTy (wram_load_frag<LoadOp> AddrFI:$ra)), (Inst AddrFI:$ra, 0)>;
@@ -633,7 +633,7 @@ let usesCustomInserter = 1 in {
633
633
def WRAM_LOAD_DOUBLErm : PseudoDPUInstruction<
634
634
(outs GP64_REG:$dc), (ins MEMri24:$addr),
635
635
"",
636
- [(set i64:$dc, (loadi64 ADDRESS_IN_STACK:$addr))]>;
636
+ [(set i64:$dc, (wram_loadi64 ADDRESS_IN_STACK:$addr))]>;
637
637
638
638
def WRAM_LOAD_DOUBLE_ALIGNEDrm : PseudoDPUInstruction<
639
639
(outs GP64_REG:$dc), (ins MEMri24:$addr),
@@ -700,8 +700,6 @@ let usesCustomInserter = 1 in {
700
700
[(MramStore64 i64:$db, ADDRESS_IN_STACK:$addr)]
701
701
>;
702
702
703
- // TODO: MRAM LOAD DOUBLE
704
-
705
703
def MRAM_LOADmr : MRAM_LOAD_X_mr<mram_load>;
706
704
707
705
def MRAM_LOAD_U8mr : MRAM_LOAD_X_mr<mram_zextloadi8>;
@@ -715,4 +713,9 @@ let usesCustomInserter = 1 in {
715
713
// Notice that this applies to "anyext from iXX, where XX is 8 or 16"
716
714
def MRAM_LOAD_X8mr : MRAM_LOAD_X_mr<mram_extloadi8>;
717
715
def MRAM_LOAD_X16mr : MRAM_LOAD_X_mr<mram_extloadi16>;
718
- }
716
+
717
+ def MRAM_LOAD_DOUBLEmr: PseudoDPUInstruction<
718
+ (outs GP64_REG:$dc), (ins MEMri24:$addr),
719
+ "",
720
+ [(set i64:$dc, (mram_load ADDRESS_IN_STACK:$addr))]>;
721
+ }
0 commit comments