diff --git a/lib/Target/Mips/MipsInstrInfo.td b/lib/Target/Mips/MipsInstrInfo.td index 07e4abd519f..21527e37b68 100644 --- a/lib/Target/Mips/MipsInstrInfo.td +++ b/lib/Target/Mips/MipsInstrInfo.td @@ -406,27 +406,22 @@ class FMem op, dag outs, dag ins, string asmstr, list pattern, // Memory Load/Store let canFoldAsLoad = 1 in class LoadM op, string instr_asm, PatFrag OpNode, RegisterClass RC, - Operand MemOpnd, bit Pseudo>: + Operand MemOpnd>: FMem { - let isPseudo = Pseudo; -} + [(set RC:$rt, (OpNode addr:$addr))], IILoad>; class StoreM op, string instr_asm, PatFrag OpNode, RegisterClass RC, - Operand MemOpnd, bit Pseudo>: + Operand MemOpnd>: FMem { - let isPseudo = Pseudo; -} + [(OpNode RC:$rt, addr:$addr)], IIStore>; // 32-bit load. -multiclass LoadM32 op, string instr_asm, PatFrag OpNode, - bit Pseudo = 0> { - def #NAME# : LoadM, +multiclass LoadM32 op, string instr_asm, PatFrag OpNode> { + def #NAME# : LoadM, Requires<[NotN64, HasStdEnc]>; - def _P8 : LoadM, + def _P8 : LoadM, Requires<[IsN64, HasStdEnc]> { let DecoderNamespace = "Mips64"; let isCodeGenOnly = 1; @@ -434,11 +429,10 @@ multiclass LoadM32 op, string instr_asm, PatFrag OpNode, } // 64-bit load. -multiclass LoadM64 op, string instr_asm, PatFrag OpNode, - bit Pseudo = 0> { - def #NAME# : LoadM, +multiclass LoadM64 op, string instr_asm, PatFrag OpNode> { + def #NAME# : LoadM, Requires<[NotN64, HasStdEnc]>; - def _P8 : LoadM, + def _P8 : LoadM, Requires<[IsN64, HasStdEnc]> { let DecoderNamespace = "Mips64"; let isCodeGenOnly = 1; @@ -446,11 +440,10 @@ multiclass LoadM64 op, string instr_asm, PatFrag OpNode, } // 32-bit store. -multiclass StoreM32 op, string instr_asm, PatFrag OpNode, - bit Pseudo = 0> { - def #NAME# : StoreM, +multiclass StoreM32 op, string instr_asm, PatFrag OpNode> { + def #NAME# : StoreM, Requires<[NotN64, HasStdEnc]>; - def _P8 : StoreM, + def _P8 : StoreM, Requires<[IsN64, HasStdEnc]> { let DecoderNamespace = "Mips64"; let isCodeGenOnly = 1; @@ -458,11 +451,10 @@ multiclass StoreM32 op, string instr_asm, PatFrag OpNode, } // 64-bit store. -multiclass StoreM64 op, string instr_asm, PatFrag OpNode, - bit Pseudo = 0> { - def #NAME# : StoreM, +multiclass StoreM64 op, string instr_asm, PatFrag OpNode> { + def #NAME# : StoreM, Requires<[NotN64, HasStdEnc]>; - def _P8 : StoreM, + def _P8 : StoreM, Requires<[IsN64, HasStdEnc]> { let DecoderNamespace = "Mips64"; let isCodeGenOnly = 1;